micropython中断优先级_stm32cubemx 配置freertos中断优先级

本文介绍了在STM32CubeMX中集成FreeRTOS时,如何配置中断优先级,特别是解释了为何不推荐使用SYSTICK作为HAL timebase的原因,以及FreeRTOS中configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY参数的作用。强调了中断优先级配置对于实时系统的重要性,以及在使用Micropython中断优先级时的考虑。
摘要由CSDN通过智能技术生成

stm32cubeMx 直接集成freertos,可以不需要自己手动移植只需要把freertos的选项勾选就可以。

但是生成的代码工程中,freertos暴露给用户的API接口并不是原生的freertos接口,是经过cmsis-rtos进行一次包装之后的。所以如果使用信号量、消息邮箱、定时器等等接口的时候要查询cmsis-rtos文档,并且cmsis-rtos有不同的版本,现在cubemx中集成的是v1版本,后期有可能会集成v2的。参考链接如下:

http://www.keil.com/pack/doc/CMSIS/RTOS/html/index.html

勾选了freertos然后生成工程代码的时候stm32cubemx会有个提示框弹出来:

它会强烈建议你把timebase源切换到非systick。这一步可能会有很多人搞不清楚,为什么不使用systick而要另外用个定时器。这里首先要弄明白的是这里的HAL timebase并不是freertos的任务调度器时钟。freertos的调度时钟是强制性使用systick的并且systick的中断优先级被设置为最低(这个原因后面叙述)。

这个hal timebase实际上是hal 库需要使用到的tick计数源,如果深入去看hal库会发现有很多有超时功能的函数接口就需要用到这个hal timebase。所以生成代码时候就强烈建议hal timebase和freertos 使用的systick不要共用。systick已经被强制为最低优先级,hal timebase用的话就可能产生计数不准的情况。

那么systick为什么被设置为最低优先级也是有原因的,因为freertos是一个嵌入式实时操作系统࿰

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值