在嵌入式系统的前期设计过程中,你必须决定所采用的嵌入式操作系统的类型。这是一个很重要的决定,因为这会影响到工程后期的发布以及软件的维护。本文中我将概括四种通用体系和一些值得考虑的观点。
没有标准的操作系统很多
嵌入式操作系统
都是非标准的操作系统。对于针对比较狭窄领域,尤其是使用带有非常有限资源的微控制器来说,这是一个很正常的现象。操作系统中最基本的操作是建立一个带有能够处理关键实时事件的中断服务程序(isr)的简单后台循环代码,过程非常简单,但却是相当出色。
然而,当项目增大,很多问题就随之产生。后台循环所需要的响应时间取决于循环次数最多所用的时间。当循环次数增多,所需要的时间就会增多,可预测的方面就减少。此时有用的方法就是将这些后台循环分成很多小部分,但这可能导致产生更复杂的系统而难于调试和维护。如果系统中有多个开发人员,这一情况会变成更加恶化。
没有优先级别的操作系统
一个简单的、没有优先级别的操作系统可以在一个大型后台循环中增添一些规则。这一方法对于中等大小的工程最为合适。
一个没有优先级别的操作系统可以将程序中的后台工作转化为可以预先处理的工作,而不需要将原来的程序分割成多个块。一个不存在优先级别的系统一般相对比较很容易的执行、调试,并且,在设计过程中不存在很多如资源共享的复杂操作。
这一系统的主要不足之处是开发人员必须时刻保护决定将cpu转交给其他任务的时间。如果转交时间延迟,即使只有一次,也会对整个操作系统的响应导致崩溃。 ]
具备优先级别的操作系统
一个完整的具备优先级别的操作系统可以处理包含多个相互竞争的任务和多个软件开发者。具备优先级别的操作系统在外部事件(比如中断,时间等)和操作系统调用之间转换。
任务根据它们之间相对的优先级别和分配的时间周期进行安排,这就可以让你从决定转换任务的时间之中解放出来,同时,也减少了任务之间的相互冲突。
这一特性带来了很多外在的复杂性。在优先级别的系统中的任务转换会使调试带来更多的困难,而且需要任务之间的相互通讯的外部机制。
然而,这一外部机制带来了新的问题,比如任务之间的死锁冒险。程序员必须学会使用新的技术和规则来处理这些问题,否则将会导致很多臭虫和不可靠的代码。
更改的桌面型操作系统
更改的桌面型操作系统,比如windows,linux,或者dos,都是一些流行的嵌入式装置,特别是基于用户界面的系统。这些操作系统非常能吸收人,因为它们功能特别完整,并且提供了开发人员一个熟悉的开发环境。
然而,这些系统却通常会出现资源危机,运行的控制器的性能也非常受限制,从而不能满足执行特定环境下的实时性能限制。
嵌入式操作系统的特定与标准的桌面型环境有很多不相同的地方,所以开发一个嵌入式产品并不是简单地遵循开发一个标准的桌面程序的方法那么的直接。
魅族Note8评测 使用体验可以说是千元价位的第一梯度
战略投资加快!柯力传感拓展工业物联网
韩国半导体巨头SK海力士第三季度净利润达63.3亿元
RISC-V发展以及中科院RISC-V开源处理器“香山”介绍
SK电讯正式进入了车载信息娱乐系统开发领域
如何选择正确的嵌入式操作系统类型
如何利用张量提升内存使用效率
索尔维创新研发出了矩形电磁线用材KetaSpire PEEK
让你一次看懂汽车工作原理,史上最强科普!
三菱plc基本指令介绍
EMC工程问题解答(九)
Altera 发布28-nm FPGA技术创新
太阳能电池配套蓄电池和负载的匹配
第三代半导体发展蓝图隐现 板块指数飙升逾10%备受外资青睐
巨人网络收购Alpha 全面拥抱人工智能市场
DS3144成帧器与DS3154 LIU的连接
aigo国民好物固态硬盘P3000怎么样?真的非常推荐!
“百万像素中中波双色制冷红外探测器”通过科技成果评价
上海电信建成千兆宽带接入第一城,引起各方高度关注
“以赛促学”是高校AI人才培养中的重要一环