This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:TI C/C++编译器
大家好,
我曾经使用传统COFF作为我的程序的输出格式。 但是 在程序升级到CCSV6之后,输出格式必须为elf,因为新的编译器不再支持COFF。
我曾经将向量表放在AM1808的本地ram(0xFFFF0000)上, 这是通过汇编代码中的".sect"命令实现的,如下所示:
.sect ".intvecs"
Int_VECS: ; 例外 地址
LDR PC,__c_int00 ;重置中断 (0xFFFF0000)
单词0 ;未定义的指令中断 (0xFFFF0004)
LDR PC,__SWI_handler ;软件中断 (0xFFFF0008)
单词0 ;预取中止中断 (0xFFFF000C)
单词0 ;数据中止中断 (0xFFFF0010)
单词0 ;保留用于将来扩展 (0xFFFF0014)
LDR PC,__IRQ_handler ;IRQ中断 (0xFFFF0018)
;LDR PC,[PC,#-0xA1C] ; HPIVR2 IRQs
LDR PC,__FIQ) handler ;FIQ中断 (0xFFFF001C)
在.cmd文件中,.intvecs扇区被分配给ARM的本地ram:
内存
{
ARMRAM: O = 0000 l = 0x0.2万
.
}
章节
{
intvecs > ARMRAM
二,委员会的报告
}
然后,在编译后,可以在地图文件中找到扇区.intvect:
intvecs 0 ff0万000030</s>0.003万
ff0万000030 ARM9_intvecs.obj0.003万 ARM9_intvecs.obj (.intvecs)
但是,如果输出格式更改为elf,则在地图文件中找不到.intvect扇区,并且在最终二进制文件中遗漏了整个矢量表。
如何将汇编代码的扇区以elf格式放入预定义地址?
黄先生。