基于STM32的FreeRTOS应用问题解答

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部分()。
stm32单片机中文官网
意法半导体/st/stm

BMS能否在变局中开新局?
MAX77650 PMIC如何利用SIMO技术为电压轨供电
高通骁龙888影像技术将享有极致体验
华为P50 Pocket折叠屏手机怎么样
主流快充方案的几种设计思路探讨
基于STM32的FreeRTOS应用问题解答
仪表运放在没有输入信号时有很大的50HZ输出,怎么抑制?
台半导体封测产业完成整并最后一步
物联网包括了哪一些技术
LED防爆灯驱动电源的功能具有怎样的特性
NAND Flash和NOR Flash的差别
爆苹果的iPhone 12将配备无线充电和反向无线充电
如何选择PCBA检测方法
中科驭数等单位牵头发布行业首部DPU评测方法技术白皮书
步进电机的专业术语
苏宁818:“燃客城”下智慧零售的蓬勃野心
谷歌野心再增10亿移动用户
风河发布Linux平台升级套件Wind River Linux 4 Update Pack 2
易通自动化极大程度地为客户提高生产效率,降低生产制造成本
电网智能仓储管理系统解决方案