FreeRTOS在STM32F407上从头开始移植
程序员文章站
2024-02-22 18:40:04
...
到https://www.freertos.org/下载FreeRTOS源码。
1. 在裸机工程中新建ReeRTOS文件夹
2. 复制源码
portable 是不同单片机移植用的,这里只用到Keil、MemMang、RVDS,可以把其他删除
3. 在keil工程中添加分组
heap_4.c 在MemMang中,port.c 在RVDS\ARM_CM4F(STM32F407有FPU)
4. keil工程中添加头文件路径
编译一下,出错了
从FreeRTOS的Demo中复制相应的文件到工程的FreeRTOS\include下
编译一下,出错了
在FreeRTOSConfig.h中修改
/* Ensure stdint is only used by the compiler, and not the assembler. */
#ifdef __ICCARM__
#include <stdint.h>
extern uint32_t SystemCoreClock;
#endif
为
#if defined(__ICCARM) || defined(__CC_ARM) || defined(__GNUC__)
#include <stdint.h>
extern uint32_t SystemCoreClock;
#endif
这样SystemCoreClock就可以被条件编译到了。
编译一下,出错了
重复编译了,屏蔽掉stm32f4xx_it.c中void SVC_Handler(void)、void PendSV_Handler(void)、void SysTick_Handler(void)。
编译一下,出错了
按下图修改宏定义为0
编译一下,OK了。
4. 设置优先级
以STM32CubeMX中的FreeRTOS生成的代码来分析,优先级配置。自己移植可以参考。
ystem tick time系统滴答定时器,优先级最低,优先级15
TIM1定时器作为HAL超时计时判断用。
不使用STM32CubeMX中的FreeRTOS自动生成,则NVIC如下:
上一篇: c#入门之实现简易存款利息计算器示例
推荐阅读
-
FreeRTOS在STM32F407上从头开始移植
-
嵌入式操作系统学习(1) 在IAR平台下移植FreeRTOS与µC/OS-III到cortex-m3芯片
-
在ARM Cortex-M上实现FreeRTOS性能计数器
-
Oracle 10g在Windows上移植
-
Linux-4.9.2内核在mini2440上的移植(十一)——触摸屏驱动移植
-
Linux-4.9.2内核在mini2440上的移植(九)——LCD驱动移植
-
FreeRTOS在STM32F4上移植
-
IAR-FreeRTOS在mega328p中的移植
-
在Ubuntu中,STM32F103C8T6移植FreeRTOS点亮一盏灯
-
嵌入式Linux之我行嵌入式数据库SQLite在2440上的移植