如果在RAM中,main函数的上方有定义常量数组的话,执行后会覆盖掉我的常量数组。
1.如果我在数组和main之间预留一块没用的空间的话执行结果就正确。但这种方法不可取,因为函数写长了有可能又覆盖到数组了。
2.我在ldf文件中改了存储器的类型也不行。IADR为数组的空间。
IADR { TYPE(ROM) START(0x0000bf7c) END(0x0000bfff) WIDTH(8) }
3.将数组用汇编伪指令定义为不可修改的。但找不到汇编伪指令。
我的数组定义是:**_asm都是函数入口地址。
.VAR iadr_list[33] =
_excpt_asm,
_isr00_asm, _isr01_asm, _isr02_asm, _isr03_asm,
_isr04_asm, _isr05_asm, _isr06_asm, _isr07_asm,
_isr08_asm, _isr09_asm, _isr10_asm, _isr11_asm,
_isr12_asm, _isr13_asm, _isr14_asm, _isr15_asm,
_isr16_asm, _isr17_asm, _isr18_asm, _isr19_asm,
_isr20_asm, _isr21_asm, _isr22_asm, _isr23_asm,
_isr24_asm, _isr25_asm, _isr26_asm, _isr27_asm,
_isr28_asm, _isr29_asm, _isr30_asm, _isr31_asm;