系统与设计
的意见

嵌入式处理器的需求和操作系统的选择

硬实时的需求,多个特权模式,和其他因素,指出嵌入式系统需要什么类型的操作系统。

受欢迎程度

对于每一个嵌入式产品,软件开发人员需要考虑是否需要一个操作系统;如果是这样,什么类型的操作系统。操作系统相差很大,从实时操作系统与一个很小的内存占用的通用操作系统,如Linux和一组丰富的功能。

为你的产品选择适当的类型的操作系统,因此工作所需的嵌入式处理器的特点,极大地取决于你是否面临一个硬实时的要求。安全至上和工业系统比如防抱死制动系统和运动控制将有坚硬的最大响应时间。在光谱的另一端,消费系统,如音频或游戏设备可以容忍缓冲,只要平均性能来说是足够的。这样的系统是软实时需求。

裸露的金属

硬实时要求可以通过编写所谓的裸机软件直接控制底层硬件。裸机编程通常是利用处理器资源是非常有限的,软件是很简单的,和/或实时要求非常严格,引入进一步抽象层将满足这些硬实时需求复杂化。这种方法的缺点是,这种裸机软件需要写成一个任务(加上中断例程),使程序员很难维护软件的复杂性增加。

实时操作系统

在处理更复杂的嵌入式软件,通常有利于采用实时操作系统(RTOS)。它允许程序员将嵌入式软件分成多个线程的执行是由小型、低开销RTOS的“内核”。使用多线程模式使开发人员能够创建和维护更复杂的软件,同时仍然允许足够的反应。rtos通常采用“优先级”分配给各个线程的概念。RTOS可以“先发制人”(暂停)低优先级线程支持那些有更高的优先级,这样可以满足所需的实时约束。RTOS的使用往往成为必要采用复杂的库或协议栈时(如TCP / IP或蓝牙),因为这已经第三方软件通常由多个线程。今天有一个广泛的选择开源和商业许可的rtos。

嵌入式处理器的要求一个简单的操作系统,如FreeRTOS或西风,是真正的谦虚。它足以RISC-V处理器只有机器模式(M)和一个计时器外围。因此这些操作系统可以运行在任何Codasip RISC-V核心或西方数字SweRV内核。然而,严格的软件开发是需要机器模式提供了不受约束的访问所有内存和外围设备与相关的风险。额外保护有可能通过一个专门的RTOS功能安全如发达,像SAFERTOS或安全。

如果一个处理器内核支持机器(M)和用户(U)特权模式和物理内存保护(PMP),可以建立受信任的代码之间的分离与无约束(访问)和其他应用程序代码。PMP,受信任的代码设置规则为每个应用程序代码的一部分,说内存(或设备)的哪些部分是允许访问。PMP例如可以用来防止第三方代码干扰应用程序的其余部分的数据,或检测堆栈溢出。采用PMP因此增加系统的安全,但在需要额外的硬件支持的成本。

丰富的操作系统

应用程序需要更高级的用户界面,复杂的I / O和网络,如机顶盒或娱乐系统,操作系统可能过于简单。同样如果有复杂计算,要求一个完整的处理隔离和多任务处理,文件系统和存储支持,或一个完整的应用程序代码中分离从硬件设备驱动程序。这些系统通常有软实时的需求,可以通过一个通用的最好丰富的操作系统,如Linux。在前文中提到的,Linux需要多个RISC-V特权模式——机器,主管和用户模式(M S, U)——以及内存管理单元(MMU) "虚拟到物理"地址转换。同时,这样的系统明显更大的内存占用比一个简单的RTOS。

最后,对于嵌入式系统,既需要硬实时的反应和功能丰富的操作系统(如Linux,通常与两个处理器通信子系统设计,支持一个RTOS和其他运行Linux。



留下一个回复


(注意:这个名字会显示公开)

Baidu