星空网 > 软件开发 > 操作系统

SST

SST(Super Simple Task) 是一个基于任务优先级、抢占式、事件驱动、RTC、单堆栈的超级简单任务调度器,它基于Rober Ward一篇论文的思想,Miro Samek用C重新编程实现的,它是QP中QK的的基本思想。

QK加上状态机事件处理的方法QEP,再加上任务的注册与事件的保存与分发功能QF,再加上串口调试功能QSpy,再加上基于模型驱动的开发QM,就成了QP。

2015年,QP获得“嵌入式计算设计”顶级发明奖【1】。

1.SST层次结构

SSTimages/loading.gif' data-original="http://images2015.cnblogs.com/blog/815490/201512/815490-20151201221846233-750553701.gif" />

2.SST总体结构

SST

  • 发送事件(产生事件)

    SST_post(目标任务优先级prio,信号sig,参数para ),发送事件到prio任务对应事件队列,置1队列状态位。

  • 调度(消耗事件)

    SST_schedule_(void ),调度任务函数,队列空时,清0队列状态位。

  • 队列状态表置1

    SST_readySet_ |= tcb->mask_ 队列中放入事件时,对应位置1;

  • 队列状态表清0

    SST_readySet_ &= ~tcb->mask_ 队列中无事件时,对应位清0.

3.SST TCB结构

SST

4.发送事件SST_post()流程图

SST

5.调度SST_schedule()流程图

SST

6.头文件关系

SST

7.进入中断宏、,退出中断宏、及中断中的使用

  • 中断的进入宏
#define SST_ISR_ENTRY(pin_, isrPrio_) do { \ (pin_) = SST_currPrio_; \   /*1.保存被中断的任务优先级(当前优先级)到pin中*/ SST_currPrio_ = (isrPrio_); \ /*2.设置ISR的优先级isrPrio为当前优先级*/ SST_INT_UNLOCK(); \      /*3.开中断*/} while (0)
  • 中断的退出宏
#define SST_ISR_EXIT(pin_, EOI_command_) do { \ SST_INT_LOCK(); \     /*1.关中断*/ (EOI_command_); \     /*2.结束当前中断*/ SST_currPrio_ = (pin_); \ /*3.恢复被中断前任务优先级为当前任务*/ SST_schedule_(); \     /*4.调度*/} while (0)
  • 中断中使用宏例子
//键盘中断ISR static void interrupt kbdISR(){  uint8_t pin;  uint8_t key = inport(0x60); //取键值  displayPreemptions(SST_currPrio_, KBD_ISR_PRIO); //测试用,显示被抢占次数   SST_ISR_ENTRY(pin, KBD_ISR_PRIO);    /*1.进入中断*/  SST_post(KBD_TASK_PRIO, KBD_SIG, key);  /*2.发事件到KbdTask任务*/  SST_ISR_EXIT(pin, outportb(0x20, 0x20)); /*3.退出中断*}

结束语

如果把Rober Ward的论文比喻成一粒不起眼的种子,Miro Samek的SST就是一个小树苗,而Miro Samek的QP则长成了参天大树,这棵树已经成长了十年,2015年,QP获得“嵌入式计算设计”顶级发明奖【1】。

参考:
【1】QP获得“嵌入式计算设计”2015年顶级发明奖




原标题:SST

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

易达全球物流:https://www.goluckyvip.com/news/1873.html
欧捷物流问答:https://www.goluckyvip.com/news/1874.html
Lazada物流发货方式订单管理完整版介绍!:https://www.goluckyvip.com/news/1875.html
Lazada物流发货方式订单管理完整版介绍!-跨境知道:https://www.goluckyvip.com/news/1876.html
Shopee不要再去花冤枉钱去做广告站内引流小技巧-跨境知道:https://www.goluckyvip.com/news/1877.html
虾皮(Shopee)跨境电商,选品上品的正确思路分享-跨境知道:https://www.goluckyvip.com/news/1878.html
青岛崂山旅游攻略自驾游(详细介绍崂山自驾游路线和景点):https://www.vstour.cn/a/404242.html
海南旅游景点的路线 海南旅游景点大全攻略自驾游:https://www.vstour.cn/a/404243.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流