- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
事件驱动的实时嵌入式系统的设计
和实现
摘要嵌入式实时操作系统具有嵌入式软件共有的可裁剪、低功耗等特点;而实时操作系
统,可以满足系统对实时性的要求。但嵌入式实时系统需要增加额外的系统开销,随着系统
功能的增加,逐渐增加的开销将不容忽视。对于某些功能简单的嵌入式系统,本文提出了一
种实时嵌入式系统的设计方法,采用简单的方法和代码来建立一个快速、有效地系统。该嵌
入式软件系统主要包括主控循环系统、事件驱动任务、周期循环任务及软件计数器。在冰箱
嵌入式系统中进行了具体实现,满足实时性的同时降低了对系统资源的占用率。
关键字主控循环;事件驱动任务;周期任务;软件计时器
1引言
嵌入式实时系统中采用的操作系统,我们称为嵌入式实时操作系统,它既是嵌入式操作系
统,又是实时操作系统。作为一种嵌入式操作系统,它具有嵌入式软件共有的可裁剪、低功
耗等特点;而作为一种实时操作系统,可以满足系统对实时性的要求[1]。
但是,使用嵌入式实时操作系统还需要额外的ROM/RAM开销,2%~5%的CPU额外负荷
以及内核的费用;同时如果任务之间抢占CPU控制权处理不好,会产生系统崩溃、死机等
严重后果;而且随着对嵌入式实时操作系统需求的增长,将越来越多的功能添加到系统中,
使其变得越来越臃肿。对许多小型或中等嵌入式设备,尤其是对成本敏感的小型设备,使用
嵌入式实时操作系统会大大增加设备的成本,因而在本文中提出一种实时嵌入式软件系统的
设计方法。本文的设计思想主要包括主控循环系统、事件驱动任务、周期循环任务及软件计
时器四部分。
2系统设计
2.1主控制循环
该系统将软件分成独立的任务模块,支持事件驱动任务,将事件驱动任务输入到事件队列,
当接收到恰当地触发事件时,才开始执行。否则,使其空闲,只占用极少地处理时间;以预
置地速度执行周期任务(即不需要触发就可执行地任务)。根据需要,执行速度有准确计时
和相对计时(与每次主控循环的执行速度相关联)两种方式。
该系统是非抢占式系统(其他的任务不会无法中断正在运行的任务),不需要使用信号量
来保护数据。只有当任务条目函数返回数值时,才会中断所有任务。例如,一个有键盘、L
CD、RS-232端口、多个I/O和串行打印机的嵌入式系统。I/O状态的每次改变将导致发送
一条RS-232信息、打印输出和LCD更新。RS-232信息的接收将导致打印输出、LCD更新
和输出状态更新。
程序1主控循环
intmain(void)
{
Init_All();
for(;;)
{
IO_Scan();
IO_ProcessOutputs();
KBD_Scan();
PRN_Print();
LCD_Update();
RS232_Receive();
RS232_Send();
TMR_Process();
}
//此处可以添加异常处理代码
return(0);
}
在程序1中,无穷循环中的每个函数调用代表一个独立的任务,无论执行哪个函数,每个
任务必须在合理的时间内返回。
该系统的主要工作是事件驱动任务。每个任务都有一个输入事件队列。例如,IO_Process
Outputs是事件驱动任务,负责控制输出状态,当输出没有状态改变时,该任务处于空闲状
态。需要启动输出时,则给该任务发送一条事件消息。在该系统中,有三个任务会向IO_Pr
ocessOutputs发送事件消息:
●输入扫描器(IO_Scan)任务,当输入状态改变导致输出状态的改变;
●RS-232接收任务,当接收到RS-232消息,需要开启或关闭输出;
●按键扫描器任务(KBD_Scan),当完成一个条目时,需要开启或关闭输出。
其它的任务是周期任务,无需触发器即可运行。
有些需要运行地快一些,有些需要慢一点。例如,扫描输入需要比LCD的刷新快。为此
需要提供一些任务间通讯的简单方法。当输入状态发生急剧地变化时,RS-232无法发送所
有的消息。为此,应该降低从RS-232传送的I/O扫描器任务。这可以使用稳定的执行计数
器技术来实现。
除上述功能外,还需要另一外些重要功能。如使LCD上的光标按固定的频率刷新。这些
功能由TMR_Process间接调用,而不是由主控循环调用。TMR_Process是主控循环中唯一
一个非用户定义任务。
您可能关注的文档
最近下载
- 跨境电子商务就业能力展示.pptx VIP
- 南吕一枝花不伏老PPT课件.ppt
- 2024年华医网继续教育社区获得性肺炎的诊与治答案.docx VIP
- 《财经法规与会计职业道德》习题答案及解析.pdf VIP
- 水中桩基安全专项施工方案.pptx VIP
- 南芯产品规格书SC8905.pdf
- 名人-李大钊 -人物介绍.pptx VIP
- 梅建强教授治疗药物依赖性失眠经验总结-来源:现代中西医结合杂志(第2022012期)-河北省中西医结合学会、中华中医药学会.pdf VIP
- 2024年二建继续教育-项目管理实施规划(施工组织总设计)编制(必修)1、及答案.docx VIP
- 《企业内部控制基本规范》.pptx
文档评论(0)