关于FreeRTOS/Nuttx/Zephyr对于用户态程序实现的对比

前言:

现在很多单片机有MPU。比如STM32F4 F7 H7等以ARM CM3 CM4 CM为架构的单片机。那么现在很多RTOS都支持MPU配置,利用MPU实现用户态程序和内核态程序隔离。

从用户产品经理角度出发,作为RTOS的使用者,以一个简单的商业例子来说明,RTOS关于用户态程序这一特性,应该具备的要点:我是设备制造商,设备采用单片机芯片,我是XXRTOS的使用者,我希望我的设备具有二次开发能力,也就是说我的客户Tom购买了我的设备后,他可以写一些简单的程序来操控我的设备,并且TOM无法读取我内核固件,且TOM的程序发生意外时,内核可以捕获错误,从而停止运行TOM的程序。这就好像为Windows开发一个程序一样。那么可以得出,我必须为我的客户TOM分配一部分空间:RAM+FLASH。TOM的程序可以随心所欲的访问这些区域,但是不能访问内核区域。如图所示:

显然,Windows上面开发程序,TOM可以,定义全局变量,也可以调用OS提供的服务,比如创建线程,创建队列,串口发送等等。

比如TOM创建了两个线程,一个全局变量GA,他可以随心所以的操作全局变量GA,并发送串口数据。

int GA=1;

Thread1()

{

   GA=5;

  CreateThread(Thread2);

  UartSend("hello world!");

}

我们分析一下,XXRTOS应该具备:

1.TOM程序调用的OS的资源的句柄,应该都放到内核区域,也就是说Thread1/Thread2的任务控制块应该放到内核区域,因为如果放到了用户空间,自己就可以修改自己的TCB任务块,自

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值