当前位置:首页 > 智能硬件 > 智能硬件
[导读]摘要:通过分析μC/OS-II操作系统的安全性与稳定性,利用Cortex-M3内核上配置的MPU(Memory Protection Unit,存储器保护单元),把内存划分为特权级与用户级两个区。对移植到内核上的μC/OS-II实时操作系统进行

摘要:通过分析μC/OS-II操作系统的安全性与稳定性,利用Cortex-M3内核上配置的MPU(Memory Protection Unit,存储器保护单元),把内存划分为特权级与用户级两个区。对移植到内核上的μC/OS-II实时操作系统进行改进与优化,使操作系统与用户任务在不同的访问等级下运行,并且使用不同的堆栈指针,以提高系统的安全性与稳定性。
关键词:μC/OS-II;Cortex-M3;存储器保护单元;安全性;稳定性

引言
    μC/OS-II是基于优先级的可剥夺型内核,实时性较强,但不区分用户空间和系统空间,使得系统的安全性变差。而μC/OS-II官网提供的基于Cortex-M3内核移植的μC/OS-II操作系统,一直运行在特权级下,用户程序也可以访问操作系统的变量和常量,导致系统的安全性与稳定性变得更差。

1 开发坏境与Cortex-M3内核简介
    使用IAR 5.30开发环境,移植μC/OS-II 2.86到Cortex-M3内核上,选用配置了MPU的LPC1786处理器作为硬件实验平台。
    Cortex-M3处理器支持:两种工作模式,线程模式和处理模式;两种访问等级,特权级和用户级;两个堆栈指针,主堆栈指针(MSP)和进程堆栈指针(PSP)。异常处理工作在“处理模式+特权级+MSP”下;线程模式下,访问等级与堆栈指针可以相互搭配使用;但是在用户级下,对特殊功能寄存器和系统控制空间(SCS)的大部分寄存器的访问是禁止的。
    如果处理器(如LPC1700系列、LM3S系列等)配置有MPU,可通过设定内存的访问权限大幅度地提高系统的安全性。

2 μC/OS-II内核简介
    μC/OS-II操作系统凭借其源代码公开、结构小巧、内核可剥夺、实时性高等诸多特性而得到广泛的应用,并且μC/OS-II绝大部分代码是用C语言编写的,便于移植到各种内核上。它提供了诸如任务调度、任务管理、时间管理、内存管理、中断管理,以及任务间的同步与通信等实时内核的基本功能,而没有提供输入输出管理、文件系统、图形用户接口及网络组件之类的额外服务。但由于μC/OS-II具有较好的可移植性和开源性,用户可以根据实际应用添加所需要的服务,而且系统移植只需修改文件OS_CPU_C.C、OS_CPU.H、OS_CPU_A.ASM。

3 μC/OS-II操作系统移植的改进
    如果用户任务运行在“用户级+PSP”状态下,而调用操作系统函数时运行在“特权级+MSP”状态下,再配合MPU的使用,可以使系统的安全性与稳定性得到很大的提高。
3.1 设置系统寄存器
    系统任务(统计任务、空闲任务等)只使用主堆栈指针MSP,并且一直运行在特权级下;而用户任务则使用PSP、MSP两个堆栈。在系统初始化时,设置MPU的相关寄存器,把内存分为特权级与用户级两个区,如图1所示。PSP分配在用户区,MSP、系统变量与常量分配在特权区,以提高系统的安全性。


3.2 修改系统函数
    为了任务首次运行时,可以进入相应的访问等级和使用相应的堆栈指针,在任务创建时,加入工作状态参数mode。在ucos_ii.h中定义访问等级与堆栈选择的常量:

3.2.1 修改任务控制块OS_TCB
    在任务控制块中加入MSP指针,形式如下:

3.2.2 修改任务创建函数
    在任务创建函数的参数中加入mode参数,形式如下:

    对OSTaskCreateExt()函数做的修改同上。
3.2.3 修改堆栈初始函数
    在堆栈初始化时,把mode值存储在MSP底部,以便任务第一次运行时进入相应的运行状态(特权级还是用户级,使用MSP还是PSP)。系统任务的mode是OS_Mode_PRIVILEGE | OS_Mode_MSP,任务创建时PSP为0;而用户任务为OS_Mode_USER | OS_Mode_PSP。
    堆栈初始函数的参数中加入mode参数,形式如下:

    OS_TCBInit()函数把堆栈初始化得到的堆栈指针存入OS_TCB中。


3.3 修改OS_CPU_A.ASM文件中的函数
    在OS_CPU_A.ASM文件中,只需修改函数PendSV_Handler(PendSV服务例程),任务切换是由它来完成的。
    PendSV服务例程的流程如图2所示。


3.4 系统函数的使用
    系统函数都是在“特权级+MSP”状态下执行的,因此,在用户任务调用系统函数前,应先切换到“特权级+MSP”状态,系统函数执行完毕后再切换到“用户级+PSP”状态。具体代码如下。
   
   
    在特权级下通过置位CONTRO[0]来进入用户级,而用户级下是不能直接修改CONTROL[0]回到特权级的,必须通过一个异常,在异常例程中修改CONTROL[0],才能在返回到线程模式后拿到特权级。通常的方法是使用软中断SVC。
    因此,从“用户级+PSP”状态下切换到“特权级+MSP”状态的实现方法是:在用户级下执行SVC指令,在SVC异常服务函数中清零CONTROL[0]位,再返回到线程模式下清零CONTROL[1]位切换到MSP;而从“特权级+MSP”状态下切换到“用户级+PSP”状态下,只需置位CONTROL[0]与CONTROL[1]。

4 系统测试
    在基于第二代Correx-M3内核的LPC1786处理器的语音识别系统上,对修改后的操作系统进行测试。具体测试过程为:首先创建3个信号量0、1、2(计数器初始值都为0);ADC按10 kHz的频率对语音信号采样,采样200点(也就是一帧数据)后发送信号量0(发生中断级切换);任务0(优先级0)请求信号量0,并对语音信号预处理并检测语音信号的起始端与结束端;当任务0检测到起始端后,每处理完一帧数据都发送信号量1(产生任务级切换),直到检测到结束端,任务1(优先级1)请求道信号量1后对真正的语言信号进行特征提取;当任务0检测到语音信号结束端时发送信号量2,任务2(优先级2)获得信号量2后利用DWT算法对语音信号进行识别并显示到LCD屏上。
    测试结果表明,改进后的系统抗干扰能力、稳定性和安全性均大大增强,并且系统连续稳定地运行很长时间,没有出现任何问题,可见系统移植成功。

结语
    改进后的系统,内存的使用没有增加,只是增加了很小的系统开销;但配合MPU使用,使系统的安全性和稳定性得到了很大的提高。该方法可广泛应用于对系统安全性与稳定性要求比较高的场合。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

柏林2025年9月9日 /美通社/ -- 2025年9月5日,纳斯达克上市公司优克联集团(NASDAQ: UCL)旗下全球互联品牌GlocalMe,正式亮相柏林国际消费电子展(IFA 2025),重磅推出融合企...

关键字: LOCAL LM BSP 移动网络

深圳2025年9月9日 /美通社/ -- PART 01活动背景 当技术的锋芒刺穿行业壁垒,万物互联的生态正重塑产业疆域。2025年,物联网产业迈入 "破界创造"与"共生进化" 的裂变时代——AI大模型消融感知边界,...

关键字: BSP 模型 微信 AIOT

"出海无界 商机无限"助力企业构建全球竞争力 深圳2025年9月9日 /美通社/ -- 2025年8月28日, 由领先商业管理媒体世界经理人携手环球资源联合主办、深圳•前海出海e站通协办的...

关键字: 解码 供应链 AI BSP

柏林2025年9月9日 /美通社/ -- 柏林当地时间9月6日,在2025德国柏林国际电子消费品展览会(International Funkausstellung...

关键字: 扫地机器人 耳机 PEN BSP

武汉2025年9月9日 /美通社/ -- 7月24日,2025慧聪跨业品牌巡展——湖北•武汉站在武汉中南花园酒店隆重举办!本次巡展由慧聪安防网、慧聪物联网、慧聪音响灯光网、慧聪LED屏网、慧聪教育网联合主办,吸引了安防、...

关键字: AI 希捷 BSP 平板

上海2025年9月9日 /美通社/ -- 9月8日,移远通信宣布,其自研蓝牙协议栈DynaBlue率先通过蓝牙技术联盟(SIG)BQB 6.1标准认证。作为移远深耕短距离通信...

关键字: 蓝牙协议栈 移远通信 COM BSP

上海2025年9月9日 /美通社/ -- 为全面落实党中央、国务院和上海市委、市政府关于加快发展人力资源服务业的决策部署,更好发挥人力资源服务业赋能百业作用,8月29日,以"AI智领 HR智链 静候你来&quo...

关键字: 智能体 AI BSP 人工智能

北京2025年9月8日 /美通社/ -- 近日,易生支付与一汽出行达成合作,为其自主研发的"旗驭车管"车辆运营管理平台提供全流程支付通道及技术支持。此次合作不仅提升了平台对百余家企业客户的运营管理效率...

关键字: 一汽 智能化 BSP SAAS

深圳2025年9月8日 /美通社/ -- 晶泰科技(2228.HK)今日宣布,由其助力智擎生技制药(PharmaEngine, Inc.)发现的新一代PRMT5抑制剂PEP0...

关键字: 泰科 AI MT BSP

上海2025年9月5日 /美通社/ -- 由上海市经济和信息化委员会、上海市发展和改革委员会、上海市商务委员会、上海市教育委员会、上海市科学技术委员会指导,东浩兰生(集团)有限公司主办,东浩兰生会展集团上海工业商务展览有...

关键字: 电子 BSP 芯片 自动驾驶
关闭