基于ARM7内核的UCO S-II移植研究
摘要嵌入式操作系统的移植是设计开发的重要一环文章从全局和细节上分别研究了UC O S-II移植过程中的技术要点并着重从移植后代码的可靠性、健壮性和通用性等方面进行了研究。
关键词嵌入式操作系统移植 UC O S
由于基于ARM7内核的各种芯片之间有着很大的差异这些差异主要表现在存储系统不同、片内外设不同、中断源不同等。这就造成了嵌入式操作系统移植的不可避免性而嵌入式操作系统移植效果的优劣直接影响着目标系统的整体质量。文中采用LPC2000系列ARM7微控制器以及ADS编译器对UCO S-II的移植过程进行了测试研究。
1 UC/O S-II的移植步骤
UC/OS-II是一个占先式的实时多任务内核由ANSI C语言编写包含小部分汇编代码供不同架构的处理器使用能够管理64个任务主要系统功能包括内存块管理、任务管理、消息队列管理、信号量、互斥信号量、事件标志组、消息邮箱等。从移植UC O S-II的过程来看逻辑上可分作三大组成部分与处理器无关的内核代码、与处理器有关的核心代码、与软硬件环境设置有关的配置代码。其中与处理器无关的内核代码主要包括O S_CORE.C、 O S_FLAG.C、OS_MBOX.C、OS_MEM.C、OS_MUTEX.C、OS_Q.C、OS_SEM.C、OS_TASK.C、O S_TIM E.C、UC O S_II.C、UC O S_II.H它们主要实现任务管理、信号量、 内存管理、 消息队列、系统调度等功能 与处理器有关的核心代码主要包括OS_CPU.H、OS_CPU_A.ASM、OS_CPU_C.C它们主要与操作系统的移植相关与软硬件环境设置有关的配置代码主要包括OS_CFG.H、 INCLUDES.H它们主要用于剪裁和设置操作系统。 以上文件名为UC O S-II的默认设置无须严格按照上述名称命名文件。
由UC O S-II的逻辑结构可以看出其移植工作主要集中在与处理器有关的核心代码部分。实际测试中遵循了如下步骤。第一对OS_CPU.H进行移植这部分工作主要包括首先定义与处理器有关的数据类型如BOOLEAN、INT8U、 INT8S 等 其次进行与处理器有关的宏定义主要包括OS_ENTER_CRITICAL以及OS_EXIT_CRITICAL再次编写软中断函数主要包括OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()。第二对OS_CPU_A.ASM进行移植依据ADS编译器扩展名规则将文件名改为OS_CPU_A.S主要工作是编写4个汇编语言函数名称为O S StartH ighRdy()、O S CtxS w()、O S IntCtxSw()、O STickISR()。US O S-II启动时调用O S Start()而O S Start()又调用O S StartHighRdy()
继阿里云服务商推出轻量服务器后,腾讯云这两年对于轻量服务器的推广力度还是比较大的。实际上对于我们大部分网友用户来说,轻量服务器对于我们网站和一般的业务来说是绝对够用的。反而有些时候轻量服务器的带宽比CVM云服务器够大,配置也够好,更有是价格也便宜,所以对于初期的网站业务来说轻量服务器是够用的。这几天UCLOUD优刻得香港服务器稳定性不佳,于是有网友也在考虑搬迁到腾讯云服务器商家,对于轻量服务器官方...
棉花云官网棉花云隶属于江西乐网科技有限公司,前身是2014年就运营的2014IDC,专注海外线路已有7年有余,是国内较早从事海外专线的互联网基础服务提供商。公司专注为用户提供低价高性能云计算产品,致力于云计算应用的易用性开发,并引导云计算在国内普及。目前公司研发以及运营云服务基础设施服务平台(IaaS),面向全球客户提供基于云计算的IT解决方案与客户服务(SaaS),拥有丰富的国内BGP、双线高防...
昨天有在"盘点2021年主流云服务器商家618年中大促活动"文章中整理到当前年中大促618活动期间的一些国内国外的云服务商的促销活动,相对来说每年年中和年末的活动力度还是蛮大的,唯独就是活动太过于密集,而且商家比较多,导致我们很多新人不懂如何选择,当然对于我们这些老油条还是会选择的,估计没有比我们更聪明的进行薅爆款新人活动。有网友提到,是否可以整理一篇当前的这些活动商家中的促销产品。哪些商家哪款产...