文档详情

ucos-II在ARM7上的移植代码(含详细注释).doc

发布:2017-08-18约1.02万字共8页下载文档
文本预览下载声明
uc/os-II在ARM7上的移植代码(含详细注释) 本人现在正在看有关UCoseII的操作系统的内容,这篇文章主要介绍了在S3C44B0上移植的关键代码,含有详细注解,感觉还蛮不错,详细会对大家有所帮助! 1 RTOS简介 随着电子产品和设备的应用的复杂化和智能化,原来在电子产品中占统治地位的单片机和较简单的程序结构已经难以满足要求。加之微处理器芯片本身性能的大幅提高,对软件的要求也随之提高,而实时操作系统(Real Time Operation System,以下简称为RTOS)很好满足了这些需求。 RTOS以其较好的实时性、较少的硬件资源以及强大的任务管理、资源管理等功能,在嵌入式产品的应用领域日趋广阔。RTOS同时体现了一种新的系统设计思想和开放的软件开发框架,开发者在无需过多考虑和更改系统其他任务的情况下可以集中精力设计应用任务模块,缩短了研发周期和对单个开发者的依赖。因此RTOS的应用是嵌入式软件设计编写中从小规模设计到团队开发的一个必然选择。 μC/OS-II(MicroC/OS-II)是一个可以基于ROM运行的、源码开放的、可裁减的、抢占式实时多任务内核, 内核的设计者在编写时尽最大限度采用ANSI C语言,并充分考虑了可移植性,因此,μC/OS-II已经移植到数十种处理器上,且已成功应用于从消费电子产品到航空设备的领域中。 2 ARM7系列处理器简介 依靠ARM公司提供的优秀的ARM7 内核,其合作伙伴根据市场需要和技术发展趋势生产出各具特色的芯片。ARM7 系列处理器可具有16位/32位双RISC指令集、片内高速cache、三级流水线、片上JTAG调试、高速内存管理(MMU)等功能,支持大多数操作系统,在中低端16/32位嵌入式产品解决方案中应用十分广泛。比较有代表性的S3C44B0x是三星公司开发的基于ARM7 内核的32位微处理器,除了具备ARM7系列处理器的低功耗,高性能,小体积等优点外,且价格低廉。 ARM7系列处理器结构支持7种处理模式,方便用户管理某些需要保护的硬件资源,处理器模式见表1。除用户模式外,其他模式均可自由的访问系统所有资源并改变处理器工作模式,称为特权模式,而特权模式中除系统模式(sys)外,也被称为异常模式。在用户模式下,用户任务可以通过软中断指令,进入异常模式,来访问需要的资源。μC/OS-移植与ARM7 处理器上时,一个难点就在于处理器模式切换时对另一工作模式下现场的保存和恢复,本文分析了任务切换时不使用软中断而直接在svc模式下运行操作系统和用户任务的移植方法,可以较简洁易懂地实现。表1 ARM7 处理器模式 处理器模式 说明 用户 usr 正常用户程序执行模式 快速中断 fiq 高速数据传送及DMA通道处理模式 通用中断irq 通用中断处理模式 管理 svc 操作系统保护模式 中止abt 存储器保护或实现虚拟存储器 未定义und 支持硬件协处理器的软件仿真 系统 sys 供需访问系统资源的任务使用 3 μC/OS-在ARM7处理器上的移植 3.1 移植的要求 要使μC/OS-正常运行于某处理器上,须满足以下要求: 1)处理器的C编译器能产生可重入代码; 2)可以在C语言代码中打开和关闭中断; 3)处理器支持中断,并且能产生定时中断(通常在10至100Hz之间); 4)处理器支持能够容纳一定量数据(可能是几千字节)的硬件堆栈; 5)处理器有将堆栈指针和其它CPU寄存器读出和存储到堆栈或内存中的指令。 笔者针对目前应用较广泛的基于ARM7内核的S3C44B0x处理器,在ARM公司的IDE开发环境ADS1.2中完成了μC/OS-的移植,并编写了应用任务实现多任务的调度。 3.2 移植过程 基于μC/OS-的硬/软件体系结构如下图1。 图1 μC/OS-硬件/软件体系结构 μC/OS-的移植集中在OS_CPU.h,OS_CPU_A.s,OS_CPU.c这三个文件上,下面分别详细介绍三个文件中的函数和需要修改或者编写的代码。3.2.1 OS_CPU.h的移植 该文件定义了和处理器及编译器相关的定义及一些全局函数声明。由于ARM7 处理器字长为32位,半字长为16位,字节为8位,因此在OS_CPU.h文件修改与编译器相关的定义如下: typedef unsigned char BOOLEAN; typedef unsigned char INT8U; typedef signed char INT8S; typedef unsigned short INT16U; /*某些编译器中int是32位的,故统一用short表示*/ typedef signed short INT16S; typedef uns
显示全部
相似文档