Image
Image

lxs0026

+ 关注

粉丝 1     |     主题 93     |     回帖 1161

FreeRTOS-stm32f407移植
2022-11-18 12:23
  • ST MCU
  • 40
  • 3163
  代码 #include "sys.h" #include "delay.h" #include "usart.h" #include "led.h" #include "FreeRTOS.h" # ...  
  设计 设计4个任务 start_task():用来创建其它三个任务 led0_task():控制LED0的闪烁 led1_ ...  
  移植验证 1、目的 用一个简单的FreeRTOS应用代码来测试下,移植是否成功  
  done 到此处 编译没问题 就可以了  
  注释掉FreeRTOSConfig.h里的重复定义函数SysTick_Handler()  
  去掉 SysTick_Handler 的重复定义 再编译 ..\OBJ\LED.axf: Error: L6200E: Symbol SysTick_Handler multi ...  
  修改 delay.h //void delay_ms(u16 nms); void delay_ms(u32 nms);  
  增加宏定义 #define SYSTICK_CLKSOURCE_HCLK ((uint32_t)0x00000004)  
  增加引用 #if SYSTEM_SUPPORT_OS #include "FreeRTOS.h" //FreeRTOS使用 #include "task.h" #endif ...  
  //延时nus //nus:要延时的us数. //nus:0~190887435(最大值即2^32/fac_us@fac_us=22.5) vo ...  
  修改三个延时函数 delay_us 和 delay_xms 不会导致任务切换。 delay_ms 是对 FreeRTOS 中的延时函数 vTas ...  
  代码如下  
  delay_init()修改 delay_init() 是用来初始化滴答定时器和延时函数 FreeRTOS的系统时钟是由滴答定时器提供 ...  
  代码如下 extern void xPortSysTickHandler(void); //systick中断服务函数,使用OS时用到 void SysTick_Hand ...  
  SysTick_Handler()修改 FreeRTOS的心跳是有滴答定时器产生的,根据FreeRTOS的系统时钟节拍设置好滴答定时 ...  
  修改delay.c文件 涉及到FreeRTOS的系统时钟  
  ......  
  删除 OSIntEnter(); OSIntExit(); UCOS里进出中断的函数  
  修改usart.c文件 添加FreeRTOS.h头文件,  
  ......  
2
3
近期访客