2

我可以在 SDCC 的代码段中排除某些地址吗?例如,如果我的代码段跨越 addr。0x0000 到 0x4000,我能以某种方式告诉链接器/编译器避免添加地址吗?从 0x2000 到 0x2100 并且不在那里放置任何代码?

两个实际案例是:

  1. 用新的(完全不同的!)版本替换 ROM,并希望保持与旧 ROM 的二进制兼容性。旧ROM中的某些绝对地址被现有软件调用,我想提供“兼容模式”,确保至少最常见的跳转仍然有效。
  2. 如果我“触摸”某些地址,则内存映射硬件会对 ROM 造成不利影响(例如禁用它!)。所以我想确保那里没有放置任何代码。

我可以创建多个段并手动为它们分配函数直到“满”,但我想知道我是否可以从编译器/链接器那里获得任何帮助?因为代码经常更改,我不想调整每个错误修复进入哪个段,这会增加几个字节的函数大小......

4

0 回答 0