APP下载

为RTX51Tiny项目添加管程模块※

2013-09-21汪晓兢

单片机与嵌入式系统应用 2013年11期
关键词:机制

汪晓兢

(中国航天科工集团第三研究院 总体设计部,北京 100074)

RTX51Tiny是应用于8051系列单片机的小型多任务实时操作系统,它完全集成在Keil C51编译器中,体积小,简洁高效,能够实现独立不相关的多任务并发执行,具体相关伙伴组任务之间的同步机制。被广泛应用在8051系列单片机的软件开发项目中。

当Tiny系统打开时间片(timeshare≠0)时,系统中多任务由内核按时间片轮转调度,并发运行。但这时只有独立不相关任务能够按时间片并发推进;而对于有共享资源关联的(非伙伴组之间的)相关任务,Tiny却缺少对共享资源争用的管理工具。信号量是一种有效的、对共享资源进行保护的管理工具;管程是具有同等表达能力的另一种高级同步管理工具。

信号量实现两种管理机制:互斥和同步,两者完全由程序员负责。

管程相应实现两种管理机制:互斥锁和条件变量。理论上编译器负责互斥自动加锁部分,条件变量部分仍需程序员负责,这使程序员出错几率减少一半。管程机制的目标是为了更易于编写正确的程序,管程相对信号量更易于检错和控制。

信号量设计方法见参考文献[1]。信号量的优点是通用性,可以做成库函数,一次设计,长久应用。而管程,理论上是编译器依赖,与条件变量一起,随具体项目设计而不同。

Keil C51没有管程支持,影响管程C语言应用的原因大多是一种习惯概念:“管程是语言概念,C语言并不支持它。……要使用管程,就需要一种带有管程的语言。”实际上,对Tiny这样的小系统,富有好奇心和探索欲的程序员可以自己代劳,替代编译器完成管程结构成分的功能。

登录APP查看全文

猜你喜欢

机制
构建“不敢腐、不能腐、不想腐”机制的思考
自制力是一种很好的筛选机制
“三项机制”为追赶超越蓄力
丹凤“四个强化”从严落实“三项机制”
保留和突破:TPP协定ISDS机制中的平衡
定向培养 还需完善安置机制
破除旧机制要分步推进
氢气对缺血再灌注损伤保护的可能机制
注重机制的相互配合
打基础 抓机制 显成效