RTOS笔记08——调试与优化

01-中断API与任务API

包括中断版本和任务版本,如下

各自独立出来的原因:任务可以阻塞,但是在中断不能有太多延时,必须尽快完成

特殊之处在于:中断版函数后还有一位参数,即此函数是否会调度更高优先级的任务(任务和中断有优先级划分吗),若是有,则将其记录下来,在函数执行完毕后再调度此高优先级任务。而再任务版函数中,则是直接调度,一方面可能占用性能,另一方面,高优先级任务可能导致卡死,不能接着进行下去。

02-实时性优化

在任务执行过程中,若发生中断,则立刻执行中断。若是在中断中写队列且队列唤醒了更高优先级的任务,则系统仍然运行之前的任务,直到运行到下一次tick,系统重新调度到更高优先级的任务。这里产生了高优先级任务的一定延迟,可以通过以下方法优化

调度后,高优先级任务立刻执行,不会有任何延迟。

03-互斥量等安全的本质

相比于全局变量,互斥量更加的安全,其主要原因就在于,freertos系统中,全局变量计算容易被打断,而互斥量计算则不会被打断。不会被打断是因为,在调度过程中,他首先关闭了所有中断和任务调度,在完成计算后才会恢复调度,所以,IIC等过程并不唯一需要互斥量,可以用关闭调度器的方式来代替。

 04-逐个优化栈空间的大小

05-统计所有栈空闲情况

打印出的效果如图

只需要

其中,函数的参数负责存放系统任务的信息

06-统计所有任务占用cpu资源的情况

将 02 的函数换成下面这一个就行了

效果如图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值