关于国产M0芯片的freertos的移植过程
我是刚接触到freertos的小白,这篇文章的目的是来记录一下自己的学习的相关经历。这次移植的国产芯片为CS32F030系列微控制器采用高性能的32位ARM® Cortex®-M0 内核,嵌入高达64Kbytes flash和8Kbytes SRAM,最高工作频率48MHz。
一.首先准备好一个裸机可以运行的demo工程。我用的是IAR9.0编译器,然后添加Freertos的源码(源码的下载在Freertos官网下载,运行exe文件即可)。如下图
include里文件直接照搬过来
,其中FreeRTOSConfig.h文件,可参考官方M0架构demo如CORTEX_M0_STM32F0518_IAR里的FreeRTOSConfig.h文件。
在protable文件夹中放编译器相关文件和内存管理相关文件这两个文件夹也是从FreeRTOS源码里复制过来的。
二.准备工作做好后开始进行移植工作,把freertos的源码和相关的内存管理代码,编译器相关代码,加入工程中。
然后添加新加文件的预编译的路径
开始编译MAKE一下会出现一堆错误
比如
Error[Li006]: duplicate definitions for XXX,这是在两个文件中有相同的定义,屏蔽相关空函数即可。
Error[Li005]: no definition for XXX是因为有些函数在FreeRTOSConfig启用了,但是没有相关函数在task里定义,可以做个空函数来代替,或者把FreeRTOSConfig里相关的功能关了 。
如果出现Error[2]: Failed to open #include file ‘FreeRTOSConfig.h’,这个错误说明这个.h文件你没加进工程或者没加进预编译路径。
三.解决完编译问题,就可以在main函数里写demo开始创建任务了,具体freertos代码教程可参考正点原子的教程和相关视频。