156
4130
1万
资深工程师
本文详细介绍移植FreeRTOS到现有工程的方法。
1、现有工程的目录结构如下图所示,bsp是STM32固有的驱动库,PSP是自定义的设备驱动,APP是逻辑层。
使用特权
2、复制FreeRTOS文件夹到自己的工程目录,如下图所示。
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg (42.22 KB ) 下载附件 2019-6-18 13:38 上传
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg (42.22 KB )
下载附件
2019-6-18 13:38 上传
3、复制FreeRTOSConfig.h文件到Inc文件夹
2018112100292253.jpg (19.99 KB ) 下载附件 2019-6-18 13:38 上传
2018112100292253.jpg (19.99 KB )
4、复制freertos.c和stm32f0xx_hal_timebase_TIM.c文件到src_3_app文件夹。
20181121003058536.jpg (19.65 KB ) 下载附件 2019-6-18 13:38 上传
20181121003058536.jpg (19.65 KB )
5、按照下列目录结构加入FreeRTOS的源文件。
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg (25.46 KB ) 下载附件 2019-6-18 13:39 上传
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg (25.46 KB )
2019-6-18 13:39 上传
6、更改3个工程项目的包含文件路径,如下图所示。
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg (23.63 KB ) 下载附件 2019-6-18 13:39 上传
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg (23.63 KB )
7、去除1_bsp工程的CPP11编译选项,如下图所示。
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg (45.56 KB ) 下载附件 2019-6-18 13:39 上传
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg (45.56 KB )
8、至此,1_bsp应能够正确编译了,编译结果如下图所示。
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg (50.1 KB ) 下载附件 2019-6-18 13:39 上传
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg (50.1 KB )
9、打开2_bsp工程的include.h文件,加入对“cmsis_os.h”的包含语句。
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg (22.39 KB ) 下载附件 2019-6-18 13:40 上传
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg (22.39 KB )
2019-6-18 13:40 上传
20181121004458761.jpg (20.07 KB ) 下载附件 2019-6-18 13:40 上传
20181121004458761.jpg (20.07 KB )
10、打开target.cpp头文件,屏蔽SVC_Handler和PendSV_Handler函数,在SysTick_Handler函数中加入osSystickHandler()中断调用。
20181121004654167.jpg (15.49 KB ) 下载附件 2019-6-18 13:40 上传
20181121004654167.jpg (15.49 KB )
12、在3_app工程中加入freertos.c和stm32f0xx_hal_timebase_TIM.c文件。
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg (24.46 KB ) 下载附件 2019-6-18 13:41 上传
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg (24.46 KB )
2019-6-18 13:41 上传
发表回复 本版积分规则 回帖后跳转到最后一页
5
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注21ic项目外包
扫码关注21ic视频号
扫码关注21ic抖音号
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才 | 论坛帮助
京公网安备 11010802024343号