|
知识路径: > 嵌入式系统软件基础知识 > 嵌入式系统程序设计 > 嵌入式软件开发过程 > 嵌入式软件设计 > 特性设计技术 >
|
相关知识点:8个
|
|
|
|
嵌入式应用通常都有实时性的要求,即系统部分功能需要满足时间的限制。根据系统对时间的要求不同,可分为软实时要求和硬实时要求。对于软实时要求的系统,希望系统运行越快越好,不局限于特定任务在多长时间完成。对于硬实时系统,则有明确的任务执行时限的要求,如果系统运行不能满足该要求,则必须采取处理措施。
|
|
|
通常情况下,嵌入式系统对于硬实时和软实时都有要求,是两者的结合。在进行软件实时性设计时,需要考虑如下几个方面因素:
|
|
|
(1)通过合理划分实时单元和分时单元,提高系统的实时性能。例如,对于信号处理系统,对于信号的翻译、解释、转移、传递和应答是实时单元,通常要放到实时任务中处理。而对于运行过程中信息输出或故障信息记录,可以是分时单元,可以利用操作系统数据通信机制传递信息,或直接采用共享内存方式传递数据,由分时任务或系统后台任务进行数据处理。
|
|
|
(2)合理划分系统中的实时任务,提高系统运行效率、实时性和吞吐量。任务是实时系统运行的调度单元,具体管理系统中的各类资源,可以使用或等待CPU、存储空间或I/O设备等。任务彼此之间按照系统的调度策略执行,对于没有操作系统的系统,需自行编写调度算法。通常,任务与函数形式差异不大,但有确定的任务入口点、私有数据区、以及主体结构,表现为循环体或明确的中止状态(任务没有返回值)。任务划分粗细程度,对系统影响较大,划分过细则会引起任务频繁切换,如果划分不彻底,又会造成原本可并行的操作只能串行开展。为了达到效率和吞吐量之间的平衡与折衷,应遵循一定的任务分解规则(假设下述任务的发生都依赖于唯一的触发条件,如果两个任务能够满足下面的条件之一,则可以将其合理地分开):
|
|
|
.时间:两个任务所依赖的周期条件具有不同的频率和时间段。
|
|
|
.异步性:两个任务所依赖的条件没有相互的时间关系。
|
|
|
.优先级:两个任务所依赖的条件需要有不同的优先级。
|
|
|
.清晰性/可维护性:两个任务可以在功能上或逻辑上相互分开。
|
|
|
同时,在设计过程中尽量减少模块(任务)之间的数据通信,特别是控制耦合(即一个任务可控制另一个任务的执行流程或功能),如果必须出现,应采取相应措施(如,任务间通信)实现彼此之间的同步或互斥,以避免可能引起的临界资源冲突,防止死锁现象出现。
|
|
|
(3)在程序设计上采取措施,提高程序执行效率。比较常用的优化手段有:系统关中断/关调度范围尽可能最小化,采用简短的中断服务程序,循环体工作量最小化,将频繁使用的变量设置为寄存器变量,采用经典高效的算法(如查找、排序)等。
|
|
|