294|3

10

帖子

0

资源

一粒金砂(初级)

国产M0芯片移植FreeRTOS笔记一

本帖最后由 LONGSHEN1 于 2020-9-10 17:14 编辑

笔者趁着闲暇将FreeRTOS移植到一个国产MCU上,FreeRTOS还是非常容易移植的,网上的参考资料也非常多,FreeRTOS 在全球嵌入式市场分析报告中一直是小型嵌入式操作系统使用率最高的,以下是移植记录:

 

一、前期准备

准备一个 简单的工程模板,比如一个点亮LED的程序即可;

 

二、源码下载

从网址 https://sourceforge.net/projects/freertos/files/FreeRTOS/V8.2.3/ 下载 V8.2.3
版本,这个是 8.X 系列里面最高版本了,9.0 版本还处于测试阶段,我们暂不使用。
 
三、文件导入
 
1、在工程模板中建立FreeRTOS文件夹,用于存放FreeRTOS源文件 image.png
2、将 FreeRTOSV8.2.3 软件包中路径:FreeRTOSV8.2.3\FreeRTOS\Source 里面如下所有文件复制到工程模板FreeRTOS文件夹中
image.png

 

3、将 FreeRTOSConfig.h 复制到工程模板中,该文件在 FreeRTOSV8.2.3 软件包的路径:
FreeRTOSV8.2.3\FreeRTOS\Demo\CORTEX_STM32F103_Keil,这是官方整理好的配置文件。
 
4、将源码文件添加到 MDK 的工程项目中,添加后的效果如下
image.png
其中 heap_4.c 文件路径: FreeRTOS\Source\portable\MemMang
port.c 和 portmacro.h 文件的路径:FreeRTOS\Source\portable\RVDS\ARM_CM0,由于笔者使用的是 M0内核的,所以移植文件也要添加 M0内核的,这个内核文件根据不同平台选择对应的文件。
 
5、新创建一个 includes.h 文件,将所有的头文件都集中到这个头文件下。
 
6、添加相应的头文件路径
image.png
 
7、最后一步,同时也是最重要的一步,修改 FreeRTOSConfig.h 配置文件(用户根据自己的配置进行修改
 
8、FreeRTOSConfig.h 文件中定义堆大小,FreeRTOS 内核,用户动态内存申请,任务栈等都需要用这个空间,用户需根据自己使用的mcu内存大小,填入合适的值
image.png
 
9、中断服务程序映射到 CMSIS 定义的标准名称
#define vPortSVCHandler SVC_Handler
#define xPortPendSVHandler PendSV_Handler
 
另外用户需要将xPortSysTickHandler(void)滴答定时器映射到mcu定时器上
image.png
10、至此移植完成,由于很多细节没有描述非常详细,大家可以共同交流完善。

回复

327

帖子

0

资源

一粒金砂(中级)

这国产M0是哪个品牌的


回复

2495

帖子

1

资源

五彩晶圆(初级)

10.3都出来了,这是哪年的文章。。。

个人签名人已离开,无事别找,找也找不到。

回复

10

帖子

0

资源

一粒金砂(初级)

freebsder 发表于 2020-9-16 22:26 10.3都出来了,这是哪年的文章。。。

早期移植的,没怎么关注官网更新


回复
您需要登录后才可以回帖 登录 | 注册

关闭
站长推荐上一条 1/5 下一条

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表