stm32启动文件

这是学习FreeRTOS的第一个自己移植的demo

之前任务切换不成功,在别的例子上看到stm32f107的启动文件应该是 startup_stm32f10x_md.s而不是 startup_stm32f10x_cl.s,换成正确的启动文件,就可以切换任务了

但是stm32f107文件对应的启动文件就是startup_stm32f10x_cl.s!!!通过对比知道还要将系统时钟的中断 SysTick_Handler入口改为FreeRTOS的与硬件相关的文件port.c中去,

在port.c中对应就是xPortSysTickHandler了,所以将SysTick_Handler换成立马就可以实现任务切换了!


FreeRTOS的移植不仅仅只是将FreeRTOS的文件拷贝过来就算完事了,主要是涉及软件正常跑起来所需要的硬件相关的地方要对应起来,这里就是FreeRTOS所涉及到的硬件是

void xPortPendSVHandler( void );
void xPortSysTickHandler( void );
void vPortSVCHandler( void );

三个中断才能运行,因为利用vTaskDelay延时实现阻塞切换任务,是利用系统时钟来计时,计时就需要硬件的系统时钟中断计数来支持了,之前就是没配置正确系统时钟的中断,所以我说当系统时钟中断发生了,但是不能正确的跳转到FreeRTOS中的中断处理,任务就没法切换了!


移植的关键是正确配置软件跑起来所需要的硬件资源!比如这次FreeRTOS任务切换所需要的硬件系统时钟的中断。


在移植过程中,将FreeRTOSV8.0换成V7.3,在换的过程中,觉得不要像网上的移植文档那样,将文件都集中在include和source两个文件夹中,打乱了FreeRTOS原本的文件结构,这样做不利于后期FreeRTOS的版本升级,后期升级肯定要对比文件的,文件结构不同就不利于对比!其他比如驱动库、文件系统、lwip等其他软件包也是同样的道理。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值