美文网首页程序员
嵌入式操作系统

嵌入式操作系统

作者: 哈尼克之牙 | 来源:发表于2018-10-23 23:13 被阅读4次

    实时操作系统

    一 实时操作系统的主要任务

    实时操作系统的主要任务是将电控单元的计算资源及存储资源采用一定的规则进行分配,从而使电控单元每个执行任务都能在规定的时间内完成。

    1. 系统的存储单元进行划分: 内存的分割与分配

    2. 计算资源的划分:目标任务的调动原理

            嵌入式操作系统和PC端的操作系统的区别体现在:电控单元的实时操作系统和软件紧密结合,可看作一个高度集成的程序。实时操作系统和软件的紧密结合可以更好的利用硬件资源,但降低了软件开发的可协作性,随着软件的复杂程度提高,这一缺陷也大大增大了软件的开发程度。近年来,随着AUTOSAR ( Automative Open System Architecture)的发展,嵌入式操作系统也开始出现逐渐独立于操作系统的趋势。

    三 嵌入式系统开发的必要任务

    1. 嵌入式系统最核心的任务为实现系统的开发任务,即实时执行各个功能任务,从而实现系统最基本的功能需求。如对于SCR系统,ECU需实时采集整车数据,进行算法运算,以及尿素喷射等功能。

            一般嵌入式系统仅有一个微控制器,虽可并行执行多个程序,但相应的运行速度也会下降。微控制器的并行并不是真正意义上的并行,因为嵌入式系统的单核运行,无法真正意义上的同时调度多个软件,一般而言嵌入式系统所称的并行为软实时,即特定的任务在一定时间内完成即可。

            在此引入两个关于实时操作系统的两个基本概念:

           调度器:实时操作系统中进行时间分配的部分称之为调度器(Scheduler)。如下图所示,调度器主要功能为在相应的时间内调用相应时间片的任务,如图所示,系统初始化完成,开始正常工作之后,一次轮流执行各个时间片,时间片的执行频率与其所在的时间周期成反比。

            任务:   调度器分配运算的各个程序称为任务(Task),软件预先定义各个任务所处的运算时间片,同一个时间片里可执行多个任务,各任务之间的先后关系由软件开发中预先定义好。如下图可知,在软件执行中task1的优先级高于task2的优先级。

           软件设计中,需要合理分配各个时间片负载度,同一个时间片内的各个任务执行时间不宜超过对应时间片所属的时间单元,以10ms的时间片为例,所有在10ms内的执行程序所消耗的时间不应10ms,否则会造成执行任务丢失的情况。

            除去正常的时间调度外,实时操作系统进行时间调度的一个重要原理是中断,中断时,正在运行的任务A暂时终止运行,而更紧急的任务B获取计算资源(控制器对紧急与否的判断一般根据优先级来决定),当任务B运行结束后,重新分配计算资源给任务A。中断可以通过软件、微控制器内部硬件或者某些输入输出端口的信号进行触发。更广泛的意义上来讲,微控制器的神色重启也是中断的一种形式。通过调度器可进行规律性的中断,通过一些信号值,例如来自传感器的某些警告值也可以进行突发性的中断,一般来说,硬件中断的优先级要高于软件中断。硬件中断发生时。操作系统会根据预先定义的表格来决定中断程序作何种响应,中断跳转的地址可以通过表格进行查找。

          对于中断程序,应尽量简练,以避免对正常程序调度产生影响。

    相关文章

      网友评论

        本文标题:嵌入式操作系统

        本文链接:https://www.haomeiwen.com/subject/wrzuzftx.html