基于BM3803的操作系统移植和应用研究

基于BM3803的操作系统移植和应用研究
移动视频监控李钊;李文新;金田
【摘 要】BM3803是基于SPARC V8体系结构的国产化嵌入式处理器,具有功能强、抗辐照、高可靠、可扩展性好和低功耗等特点,可用于板上嵌入式实时计算机系统,能适合多种航天应用功能及性能要求。在BM3803上移植操作系统可以使应用工程软件人员从硬件平台相关的繁琐设计中解放出来,专注于具体的应用软件开发研究。介绍了在 BM3803处理器上移植μC/OS﹣Ⅱ操作系统所开展工作,分析了 SPARC V8体系架构中寄存器的特点,结合μC/OS﹣Ⅱ操作系统的移植需求,给出了μC/OS﹣Ⅱ操作系统在 BM3803上的移植方法,经测试表明该移植方法合理正确,为应用程序的开发和使用创造了条件。%BM3803 is a domestic embedded processor based on the SPARC V8 architecture.It has some advantages such as strong function,good irradiation resistance,high reliability,scalability and low power consumption etc.By transplanting the operation system into the BM3803,the software engineer could be liberated out of the complex designing works and be more concentrated on the study of the specific application software.In the paper,some specific wo
rks of transplanting theμC/OS﹣Ⅱ system into the BM3803 are introduced,and then the characteristics of the registers in the SPARC V8 system are analyzed.Finally,an effective method of successfully transplanting theμC/OS﹣Ⅱ system into the BM3803 is given which is validated by testing. The results could provide convenient conditions for the design and use of the application programs.
【期刊名称】《雷达科学与技术》
【年(卷),期】2016(014)003
【总页数】7页(P311-316,323)
【关键词】BM3803处理器;操作系统;移植;SPARC V8架构
【作 者】李钊;李文新;金田
【作者单位】成都华信电子设备厂中国空间技术研究院 510所,甘肃兰州 730030;中国空间技术研究院 510所,甘肃兰州 730030;中国空间技术研究院 510所,甘肃兰州 730030
【正文语种】中 文
【中图分类】TN957;TP368.1
0 引言
嵌入式操作系统目前发展迅猛,被运用于飞机、雷达、航天等各个领域[1]。BM3803是基于SPARC V8体系结构的32位精简指令国产化嵌入式处理器,可用于板上嵌入式实时计算机系统,具有功能强、抗辐照、高可靠和低功耗等特点,能适合多种航天应用功能及性能要求。在BM3803上,移植操作系统可以使应用工程软件人员从与硬件平台相关的繁琐设计中解放出来,专注于具体的应用软件开发研究。μC/OS-Ⅱ(Micro Control Operation System Two)操作系统是一个可以基于ROM运行、可裁减、抢占式、实时多任务内核,可移植性强,特别适合于微处理器和控制器,达到了DO-178B从E级到A级的标准。
本文结合BM3803的寄存器功能及μC/OS-Ⅱ操作系统的特点,详细介绍了将μC/OS-Ⅱ操作系统移植到BM3803平台的过程,并给出相应测试结果。
1 BM3803寄存器介绍
对于SPARC架构的CPU来说,其最大的特点是窗口寄存器结构。每组寄存器窗口包含32个窗口寄存器,分为4类:inputs,locals,outputs,globals,每类各8个,通常记为i0~i7,l0~l7,o0~o7和g0~g7,其中g0~g7是全局寄存器,其余24个为窗口的寄存器,相邻寄存器之间的关系如图1所示[2]。
图1 相邻窗口寄存器之间的相互关系
由图1可以注意到相邻寄存器窗口的outputs同时又是下一个窗口的inputs,这被称作寄存器公用。寄存器窗口数为NWINDOWS,该值为21~25,即为2,4,8,16,32五种情况。在BM3803中该值为8。8组寄存器中有一组是当前窗口寄存器(CWP),同时也有一组是无效寄存器(WIM)。窗口寄存器之间通过加减来实现对程序的调度,比较常见操作是SAVE指令和RESTORE指令。SAVE指令能使当前窗口指针CWP减1,起到保存调用程序窗口的作用。RESTORE指令的作用相反,会使CWP加1,从而恢复调用程序的窗口。
8组寄存器一般分为4种状态,分别是Current态、Invalid态、Used态和Unused态,如果假设%WIM的值为0x06,而CWP为2,则8组寄存器窗口的状态分配如下:W2,Current;W3、W4、W5,Used;W6,Invalid;W7、W0、W1,Unused。整体的寄存器窗口寄存器组的原理如
图2所示[3]。
除了窗口寄存器外,还有特殊状态寄存器,包括处理器状态寄存器(%PSR)、窗口无效掩码寄存器(%WIM)、异常基址标志寄存器(%TBR)、乘法/除法寄存器(%Y)、程序计数器(%PC,%NPC)和辅助状态寄存器(%ASR)。其中最重要的是处理器状态寄存器和窗口无效掩码寄存器。
PSR一共32位,包含了多种字段来控制处理器和保持状态信息[3]。PSR可以被SAVE,RESTORE,Ticc,RETT以及所有可以修改条件码的指令所修改。PSR的格式如表1所示,其中比较重要的是第0~4位,这组成当前窗口指针(CWP),而第5位(ET)表示能否使用陷阱,1表示可以使用,表1为其字段分配。
图2 窗口寄存器整体示意图
表1 PSR字段的分配Impl Ver Icc Reserved EC EF 31~28 27~24 23~20 19~14 13 12 PIL S PS ET CWP 11~8 7 6 5 4~0
WIM由管理软件控制,硬件利用WIM来决定执行一条SAVE,RESTORE或者RETT指令是否
会产生窗口上溢或下溢陷阱。陷阱是一种特殊的中断形式。BM3803有8组寄存器窗口,因此该寄存器的低8位有效。当执行SAVE,RESTORE或者RETT指令时,CWP的当前值与WIM比较。如果SAVE,RESTORE或者RETT指令使CWP指向一个“无效”寄存器组,也就是对应的WIM位等于1(WIM[CWP]=1)的寄存器组的话,就会产生一个窗口上溢或者窗口下溢陷阱。当因为CWP减1而发生窗口上溢陷阱时,通常会将Used状态的寄存器的值保存在RAM中。而当因为CWP加1而发生窗口下溢陷阱时,会将之前因为上溢陷阱保存于RAM中的寄存器的值读取出来,以用于恢复之前的状态。
2 嵌入式操作系统μC/OS-Ⅱ
嵌入式操作系统μC/OS-Ⅱ由Labrosse编写,历经20多年,其具有较高的可靠性和稳定性,达到了多类标准要求。本文使用的是其2.90版,其代码结构可分为3个部分,如图3所示。
图3 μC/OS-Ⅱ的组成结构
由图3可见,μC/OS-Ⅱ的组成包含3个部分,操作系统源代码、与配置相关代码和与移植相关代码。下面分别介绍这3个文件的组成。
树脂吸附
(1)操作系统源代码是实现操作系统基本功能的代码文件,组成包括:
os_core.c:操作系统内核文件,主要功能包括内核初始化、任务切换、事件块管理等;
os_task.c:操作系统任务管理文件;
os_time.c:操作系统时间管理文件;
os_flag.c:操作系统事件标志组管理文件;
os_mbox.c:操作系统邮箱消息管理文件;
集热罩os_mem.c:操作系统内存管理文件;
os_sem.c:操作系统信号量管理文件;
os_mutex.c:操作系统互斥性信号量管理文件;
os_tmr.c:操作系统定时器管理文件;
yig滤波器
os_q.c:操作系统消息队列管理文件;
ucos_ii.c:源代码的包含文件,作用是把源代码所包含的C语言文件放置到一个文件里,使得编译器能够直接编译;
ucos_ii.h:头文件,负责内核函数参数设置。
(2)与配置相关代码主要是为了符合应用的需要而改写的,结构组成包括:
includes.h:与应用相关的包含文件,作用是加载与应用相关的一些头文件,根据实际情况要做相应修改;
os_cfg.h:系统内核配置文件的头文件;
os_dbg.c:内核调试数据和编译函数文件。
(3)与移植相关代码有3个[4]:
os_cpu.h:头文件,负责与处理器相关变量、类型和宏的定义,比如堆栈方向、开关中断的方式等;
os_cpu.s:汇编文件,负责与处理器直接相关的函数,主要是任务切换函数。因为C语言不太方便对寄存器直接进行操作所以用汇编语言编写,同时也是移植的难点;

本文发布于:2024-09-22 01:39:05,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/154962.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:寄存器   文件   处理器
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议