关于FreeRTOS实现微秒级tick问题
本帖最后由 leileimh 于 2023-3-16 11:29 编辑我想在N32G435RB芯片上跑FreeRTOS,并且实现一个8khz频率的任务。目前想的是修改config_rate_hz为1000000,也就是tick为1us,想知道这样是否合适,或者还是单独开个定时器中断来跑这个任务(这个任务大概运行时间30us左右),不知道哪个合适,或者有没有更好的方案(主要目前板子还没到,实测不了,希望大伙能给点建议,谢谢!) 肯定不行.
进出中断是有代价的, 光保存与恢复10多个寄存器,所用的时间就不少,中断太频繁, mcu就不用干什么了,一直在保存/恢复寄存器中.
tick这么高肯定不合适,另外开个定时器中断处理吧 每125us个周期,执行一个30us的任务。
看看其它任务的优先级与占用时间,再评估一下。感觉,您这个系统不适合使用RTOS了。 兄弟 跑空循环吧 30us 够了定时器和改tick不太现实 我之前也考虑过 RTOS的节拍1us?切换不过来的,死翘翘。 使用独立中断 FreeRTOS不是us实现的 吗? 有没有嵌入式开发的学习路线,越详细越好 这个为什么要修改为us级别呢 FreeRTOS切换会占用多大的时钟资源呢 freertos要学多长时间 freertos任务切换需要多少个时钟周期 tick这么高肯定不太好实现 感觉干不了别的了 速度太高了降低十倍的速度应该差不多 跑系统也不是什么都能实现的 建议楼主降速处理 单独开个定时器中断来跑这个任务是不太合适的 sanfuzi 发表于 2023-4-9 15:29
freertos要学多长时间
不用专门去学 一边调试一边接触就行 这个规划设计是明显不合理的,100kHz的的中断,即便裸机跑也不应该使用。
RTOS上下文切换比中断入栈的开销大多了。
一般情况下,个人不建议使用间隔在100us内的持续触发中断。 wsdmzz 发表于 2023-3-17 15:17
兄弟 跑空循环吧 30us 够了定时器和改tick不太现实 我之前也考虑过
那么需要跑多少个空循环大概够30us呢
页:
[1]
2