专栏中心

EEPW首页 > 专栏 > 基于STM32的FreeRTOS应用的几个常见问题

基于STM32的FreeRTOS应用的几个常见问题

发布人:3249821294 时间:2019-09-29 来源:工程师 发布文章

1、怎样将 FreeRTOS 移植到不同的Cortex-M 内核?


答:若需将 FreeRTOS 移植到正确的Cortex-M 产品,您必须从正确的目录导入 “port.c”文件。例如,若微控制器是带有IAR 工具的 Cortex-M0 内核,则您必须从“FreeRTOS\Source\portable\IAR\ARM_CM0” 获取 port.c。


2、FreeRTOS 使用需要ROM/RAM?


答:这取决于您的编译器、代码架构,以及RTOS 内核配置。一般来说, RTOS 内核本身需要大约 5到 10 K 字节 ROM 空间。


如果创建的线程或队列数增加,RAM 使用量就会上升。


3、怎样设置 CPU 时钟?


答:CPU 时钟由 FreeRTOSConfig.h 中的 configCPU_CLOCK_HZ 定义,比如在STM32CubeF4固件内它由 SystemCoreClock 提供,表示 HCLK 时钟 (AHB 总线),通过调用SystemClock_Config() 函数配置 RCC 时钟时会设置此值。


4、怎样设置中断优先级?


答:任何使用 RTOS API 函数的中断服务程序,其优先级必须手动设置为大于等于FreeRTOSConfig.h 文件中configMAX_SYSCALL_INTERRUPT_PRIORITY 的设置值。这确保其中断的逻辑优先级低于等于configMAX_SYSCALL_INTERRUPT_PRIORITY设置的优先级。


5、怎样使用非 SysTick 时钟生成时间片中断?


答:用户可选择性地自己提供时间片中断源,方法是使用非SysTick 的定时器生成中断:


• 提供 vPortSetupTimerInterrupt() 的实现,它会以FreeRTOSConfig.h文件中定义的configTICK_RATE_HZ常量指定的频率产生中断。


• 将 xPortSysTickHandler() 配置为定时器中断的处理程序,确保xPortSysTickHandler()在FreeRTOSConfig.h 中未映射至 SysTick_Handler(),或在 port.c 中未被命名为SysTick_Handler()。


6、怎样启用无时间片空闲模式?


答:FreeRTOS 无时间片模式 (低功耗)通过进入睡眠模式并停止周期性的时间片中断来降低MCU 功耗。在 FreeRTOSConfig.h 中,将 configUSE_TICKLESS_IDLE 定义为 1,即可启用此功能。


当使用非 SysTick 定时器生成时间片中断时,也可启用无时间片空闲模式。用户必须添加下列动作至上一个问题所述内容:


• 在 FreeRTOSConfig.h 中,将 configUSE_TICKLESS_IDLE 设为 2。


• 根据 FreeRTOS 相关文档说明,定义portSUPPRESS_TICKS_AND_SLEEP()。


7、在做基于STM32的FREERTOS应用中出现比较频繁的问题是什么?


答:应属STACK溢出和中断优先级相关的问题。


以为内容取自于ST官方的一篇关于具有RTOS的STM32Cube开发应用的用户手册UM1722,该手册较为详细了介绍了如下内容。本文内容只是其中的FAQ部分。

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

美国放弃英伟达H20芯片出口限制:黄仁勋没办法高兴 或遭中国限购

C64x+ 网络培训(四)

视频 2010-03-12

高速电路设计_信号完整性的一些基本概念

C64x+ 网络培训(三)

视频 2010-03-12

如何快速解决传导型EMI问题?

元件/连接器 2025-04-10

从元器件到测试系统:Pickering品英集团55年为用户构建自动测试全生命周期降本增效生态

测试测量 2025-04-10

高速设计国外经典文献资料

关税博弈下,这些芯片或将涨价

国际视野 2025-04-10

人形机器人产业链企业解读之 “人形机器人关节之心缔造者 -- 绿的谐波 “

高速数字电路设计(1)

苹果要求供应商空运设备到美国:因零部件库存有限 供应链压力山大

文远知行采用BlackBerry QNX系统,打造极致安全的ADAS解决方案

汽车MCU排名TOP10,最新出炉

汽车电子 2025-04-10

C64x+ 网络培训(五)

视频 2010-03-12

三星已组建专注于1nm芯片开发的团队 量产目标定于2029年

EDA/PCB 2025-04-10

探索射频放大器线性化的模拟预失真基本概念

高速数字电路设计及EMC 设计

C64x+ 网络培训(一)

视频 2010-03-12

C64x+ 网络培训(二)

视频 2010-03-12
更多 培训课堂
更多 焦点
更多 视频

技术专区