问题描述
我可以在 SDCC 中排除代码段内的某些地址吗?例如,如果我的代码段从 addr 跨越。 0x0000 到 0x4000,我可以以某种方式告诉链接器/编译器避免 addr.从 0x2000 到 0x2100 并且没有在那里放置任何代码?
这两个实际案例是:
- 用新的(完全不同的!)版本替换 ROM,并希望保持与旧 ROM 的二进制兼容性。旧 ROM 中的某些绝对地址被现有软件调用,我想提供“兼容模式”,以确保至少大多数常见跳转仍然有效。
- 如果我“触摸”某些地址,内存映射硬件会对 ROM 做一些讨厌的事情(例如禁用它!)。所以我想确保那里没有放置任何代码。
我可以创建多个段并手动为它们分配函数直到“满”,但我想知道是否可以从编译器/链接器获得任何帮助?因为代码经常更改,而且我不想为每个将函数大小增加几个字节的错误修复调整进入哪个段的内容...
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)