从周立功网站下载的“Keil uVision3在EasyARM系列开发板上的工程模板”包含两个文件夹,分别是EasyARM2100和EasyARM2200。该两个模板对应的开发板分别是EasyARM2100和EasyARM2200。
将EasyARM2100模板复制到相应目录后,根据模板内的使用说明设置好编译器环境,编译提示出现以下错误:
1、 .\debug_in_RAM\Project.axf: Error: L6238E: startup.o(vectors) contains invalid call from '~PRES8' function to 'REQ8' function FIQ_Exception.
2、 .\debug_in_RAM\Project.axf: Error: L6238E: startup.o(vectors) contains invalid call from '~PRES8' function to 'REQ8' function TargetResetInit.
不知道使用了周立功模板的朋友是否碰到了这个问题,如果碰到,可以和我一起探讨!目前该问题已经被我解决,但不知道大家是怎么解决的,欢迎大家各抒己见!
解决方法:
建议1、
在startup.s中顶部加个
PRESERVE8
就行了.
没有什么要修改了.
建议2、
从ads到rv,基本上要修改下列参数
1>.汇编模块前面加 PORESERVE8
2>.连接器选项中的 -first 改为 --first
3>.fromelf 的参数都要变成 -- ,
比如fromelf --bin --outoput a.bin a.axf 即可从axf文件生成bin文件,用于下载
具体点,就是在
; PRESERVE8//添加的一个标号
CO
AREA Init,CO
ENTRY
注释处将“;”去掉,就可在MDK中编译通过,不拿掉就会出现
.\Debug_in_ChipFlash\Project.axf: Error: L6238E: startup.o(vectors) contains invalid call from '~PRES8' function to 'REQ8' function FIQ_Exception.
.\Debug_in_ChipFlash\Project.axf: Error: L6238E: startup.o(vectors) contains invalid call from '~PRES8' function to 'REQ8' function TargetResetInit.
我验证的加在此处:
CO
AREA Init,CO
ENTRY
PRESERVE8
;interrupt vectors
;中断向量表
Reset