FreeRTOS移植到STM32F407

添加FreeRTOS源码

所需的源码路径如下:
FreeRTOSv202107.00
FreeRTOS
Source添加该文件夹下的所有.c文件
include文件夹添加到工程路径
portable
RVDS
ARM_CM4F添加.c以及文件路径
MemMang选择内存管理算法 如heap_4.c
Demo可从中选取对应芯片的FreeRTOSConfig.h文件进行修改
CORTEX_M4F_STM32F407ZG-SK
FreeRTOSConfig.h
或参考正点原子FreeRTOSConfig.h

FreeRTOSConfig.h配置文件修改

  1. 修改条件编译宏
    在这里插入图片描述
/* Ensure stdint is only used by the compiler, and not the assembler. */
#if defined(__ICCARM__)||defined(__CC_ARM)||defined(__GNUC__)
	#include <stdint.h>
	extern uint32_t SystemCoreClock;
#endif
  1. 关闭钩子函数(HOOK)
#define configUSE_IDLE_HOOK				  0  //1
#define configUSE_TICK_HOOK				  0  //1
#define configCHECK_FOR_STACK_OVERFLOW 	  0 //堆栈溢出检测 vApplicationStackOverflowHook
#define configUSE_MALLOC_FAILED_HOOK	  0
  1. 需要将stm32f407xx .h(其他系列的芯片找对应的文件)中的 _NVIC_PRIO_BIT 4U改为4
    需要将_NVIC_PRIO_BIT  4U改为4

修改SYSTEM文件

直接移植正点原子的FreeRTOS教程对应的SYSTEM文件夹,不过要进行适当修改

修改中断相关文件

STM32在stm32f4xx_it.c和FreeRTOS的port.c提供相同了SVC_Handler()PendSV_Handler()SysTick_Handler,三个中断服务函数。因此需要屏蔽对应的中断服务函数:

  1. 直接在stm32f4xx_it.c中屏蔽对应的函数;
  2. 可在FreeRTOSConfig.h中注释掉对应的宏定义。

程序测试

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FreeRTOS是一个开源的实时操作系统,可以用于嵌入式系统的开发。要将FreeRTOS移植STM32F407上,需要进行以下几个步骤。 首先,需要包含FreeRTOS的头文件和移植文件。头文件包含了FreeRTOS的函数声明和宏定义,移植文件是连接FreeRTOS和具体硬件的桥梁。在移植文件中,可以根据使用的开发环境选择需要的文件,其他文件可以删除。\[1\] 其次,需要修改delay_us()函数。这个函数用于实现微秒级的延时。在函数中,需要根据系统的时钟频率和延时时间计算出需要的时钟周期数,并使用SysTick定时器进行延时。\[2\] 然后,需要屏蔽FreeRTOSSTM32F407提供的相同的中断服务函数。在stm32f4xx_it.c文件中,可以直接屏蔽对应的函数。另外,也可以在FreeRTOSConfig.h文件中注释掉对应的宏定义。这样可以避免中断冲突。\[3\] 最后,进行程序测试,确保FreeRTOSSTM32F407上正常运行。 总结起来,将FreeRTOS移植STM32F407上需要包含头文件和移植文件,修改延时函数,屏蔽相同的中断服务函数,并进行程序测试。 #### 引用[.reference_title] - *1* *2* [STM32F407移植FreeRTOS操作系统](https://blog.csdn.net/weixin_42960194/article/details/128965478)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [FreeRTOS移植STM32F407](https://blog.csdn.net/pwzpwz1/article/details/128544576)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值