IAR arm下的一个错误,不知道怎么解决
时间:10-02
整理:3721RD
点击:
之前的一个AT91SAM9261的工程,现在拿出来看编译后出现如图的错误14处,是什么原因
跳到错误所在的代码,截个图看看!
某个值越界或非法或类型错误!
这个工程是之前一个成熟产品的软件,软件应该没问题,现在是用的新的版本的IAR打开的才出现的这问题
编译器不一样,出现这种问题正常的!对IAR来说,某些语句可能就被认为有错误!
IAR好像有个编译优化等级的,设置一下!说不定就好了!
还是不行,很奇怪,显示的错误全是uc0s系统里的变量
就这样,没什么特别的
不知道,问问其他人吧~~
问题解决,认真研究了一下这个错误信息,这个错误的字面意思是数值超出了范围,KIND显示LDR_PC字眼,最终发现是LDR指令中的操作数超出了指令要求的范围,但是这个指令是UCOS的源代码中的,怎么会有错误,最终又发现,这个程序文件是几年前的xp系统下的代码,现在换到WIN8系统,字符集不兼容,有些字符识别不了,例如本例中的LDR R4, =OS_Running中的=号识别不了,手动改一下解决问题,不过改的地方很多,不兼容的字符可能不止=号,最好査看一下源码