由于种种原因,不得不由IAR转战KEIL的学习,计划将原来IAR下的工程搬运到KEIL下运行,随之而来的一个问题就是二者的兼容性,不得不说一山容不得二虎啊,种种的Bug,闹心啊!
1.首先一点就是二者的启动文件不同,习惯了IAR下的自动添加启动文件,而KEIL好像略胜一筹,在选择了器件型号之后自动复制启动文件到工程中。这一点必须要注意啊。
2、第二个不同点就是二者支持的一些变量类型的特殊字符不同, IAR不识别EXPORT;PUBLIC PendSV_Handler /*此处IAR识别PUBLIC,需要进行一下替换方能实现正常的工作,// EXTERN PendSV_Handler /*若用此语句则会出现重复定义的错误。
3、就是在汇编下,KEIL不识别“//”的注释语言,需要用“;”来代替,还有就是一系列的编程规则,注释必须顶头写,代码空一格或是一个“Tab”.
4、另外说一下,uCOSII的由IAR搬运KEIL,直接过来肯定是必挂无疑的,最好参考Micrium 官方原文件,利用Micrium 原文件D:\Micrium\Software\uCOS-II\Ports\arm-cortex-m3\Generic\RealView代替原来IAR下的uCOS-II\Ports中的文件,并略做修改使得工程得以正常运行。完成了keil下的正常运行,实现了预期的功能,在此感谢大牛jobs的指点,在此表示衷心的感谢。
同时将我的移植工程贴出来供大家参考之用。
KEIL4.5.3版本+ST3.5的库+uCOSII2.86版。