1.首先需要注意的是STM32F1x标准库下CMSIS这个库中包含的core_m3.c和core_m3.h两个文件,这个和IAR()安装目录下的CMSIS中core_m3.h文件并不一样, 安装目录下的文件(V2.30)要比标准库(1.30)下的文件版本新。安装目录下的core_m3.h将intrinscis.h中做了进一步包装,又包含了core_cmFunc.h和core_cmInstr.h两个文件。然而标准库下并没有这两个文件。这样的区别就是如果需要使用intrinscis.h头文件,使用安装目录的core_m3.h就可以了,使用标准库下的core_m3.h则需要另外包含intrinscis.h头文件。
2. 这里遇到的是使用了标准库下的core_m3.h和FreeRTOSv10融合的问题,在FreeRTOS中使用了intrinscis.h头文件,然后和core_m3.h中发生冲突,因为core_m3.h重定义了某些函数导致的,考虑到安装库下的版本比较新,就使用该版本的core_m3.h文件,具体操作是删除core_m3.c文件,然后在IAR中勾选optional下CMSIS选项,该问题解决,但是此时freertos仍然使用的IAR下intrinscis.h头文件,经过查看源代码,在core_Func.h和core_cmInstr.h中已经将intrinscis做了封装,所以将使用intrinscis.h的portmacro.h更改为core_m3.h,然后添加stm32f10x.h同样可以编译成功。
IAR中新建FreeRTOS工程问题
最新推荐文章于 2024-03-21 10:09:17 发布