进来一直在弄ucos这种RTOS的实现机制,顺便将ucosIII弄过来。。。
看着MDK环境下的教程,往IAR环境上弄,真心有所不同。
显然,对IAR编译器,不是很了解,这块有一篇文章,论编译器对开发人的重要性。
嵌入式领域,你要了解你的编译器
关于CMSIS的定义,见 CMSIS 到底是什么?
IAR环境下,新建工程。
报错:
extern uint32_t __get_PSP(void); 已经在C:\Program Files\IAR Systems\Embedded Workbench 6.3\arm\inc\c\intrinsics.h文件中定义
extern uint32_t __get_MSP(void);已经在C:\Program Files\IAR Systems\Embedded Workbench 6.3\arm\inc\c\intrinsics.h文件中定义
原因:
这是由于IAR6.3已经加入了CM3的内核定义,就不需要ST库中的core_cm3.c 和 core_cm3.h 这两个文件的定义了
解决办法:
出自ST网站
直接删除core_cm3.c 和 core_cm3.h 这两个文件,然后在工程设置里面勾选 “Use CMSIS”
关于这个钩子选中还是不选,没发现什么不同。至少对于我最近的项目,没看出什么,,,
查找手段:
然后再看看IAR帮助文档:
这么说的:
这里插一嘴:The ARM versions of the IAR Systems development tools use the following default filename extensions to identify the produced files and other recognized file types: 下图是强调IAR提供了一个文件叫XXXXX.svd,默认不生成这文件,不过想要还是可以有的。
继续:
这狗其实说的很明白,就是一般不会翻这个文档。
另注:
….\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\Documentation\CMSIS_Core.htm这个文档,值得瞅瞅。
以上。