19-任务设计要点

任务的优先级,任务的中断处理,任务的运行时间、逻辑、状态都需要清楚的知道,才能对程序的运行了如指掌。

在设计框架之初就需要考虑的问题:任务的环境,上下文执行时间是否合理等等。

FreeRTOS 中程序运行的上下文包括:

  • 中断服务函数。(注意点比较多)

中断服务函数是一种特别需要注意上下文的环境,运行在非任务的执行环境下,在这个执行环境中,不能使用挂起当前任务的操作(1、在中断服务函数中,不能调用挂起当前任务函数的操作),2、不允许调用任何会阻塞运行的API函数接口,3、中断服务程序保持精简短小,快进快出(一般在中断服务函数中只做标记事件的发生,然后通知任务,让相关任务执行相关处理)

  • 普通任务。

在设计任务的时候,不能让任务出现死循环(任务函数中只有就绪态,没有阻塞态),这样低优先级的任务就会无法运行,因此需要在合适的位置,添加阻塞状态。

  • 空闲任务。

保证CPU每时每刻都有事情做

  • 任务执行时间。

需要考虑下边的两个时间

  1. 任务的开始到结束的时间——运行时间
  2. 任务的周期执行的时间——响应周期

任务A的运行时间1ms 响应时间10ms   优先级 1

任务B的运行时间20ms 响应时间50ms  优先级 2

在在运行任务A的时候,被阻塞,会执行任务B,任务B执行完后,已经超过了任务A的响应时间,就会影响到实时性。

综上,一般运行时间短的任务会设置更高的优先级

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值