嵌入式实时操作系统μC/OS-II 在P89V51RD2中的移植
发布时间:2008/5/27 0:00:00 访问次数:442
自嵌入式系统开发以来,很长时间都采用前后台系统软件设计模式:主程序为一个无限循环,单任务顺序执行。通过设置一个或多个中断 来处理异步事件。这种系统对于简单的应用是可以的,但对于实时性要求比较高的、处理任务较多的应用,就会暴露出实时性差、系统可靠性低、稳定性差等缺点。μc/os-ii 是一种基于优先级的抢占式多 任务实时操作系统, 包含了实时内核、任务管理、时间管理、任务间通信同步(信号量,邮箱,消息 队列)和内存管理等功能。它可以使各个任务独立工作,互不干涉,很容易实现准时而且无误执行,使实时应用程序的设计和扩展变得容易,使应用程序的设计过程大为减化。而且它内核源代码公开,可移植性强,为编程人员提供了很好的一个软件平台。通过μc/os-ii在p89v51rd2 上的移植,可以掌握移植和测试μc/os-ii 的实质内容,很容易将其移植到其它的cpu平台上。
μc/os-ii 介绍
μc /os-ii是一个完整的、可移植、可固化、可裁剪的占先式实时多任务内核。μc/os-ii绝大部分的代码是用ansi的c语言编写的,包含一小部 分汇编代码,使之可供不同架构的微处理器使用。至今,从8位到6 4位,μc/os-ii已在超过40种不同架构上的微处理器上运行。μc/os-ii已经在世界范围内得到广泛应用,包括很 多领域, 如 手机、路由器、集线器、不间断电源、飞行器、医疗设备及工业控制 上。实际上,μc/os-ii已经通过了非常严格的 测试,并且得到了美国航空管 理局(federal aviation administration)的认证,可以用在飞行器上。这说明μc/os-ii是稳定可靠的,可用于与人性命攸关的安全紧要(safety critical)系统。除此以外,μc/os-ii 的鲜明特点就是源码公开,便于移植和维护。
μc/os-ii 内核结构
多任务系统中,内核负责管理各个任务 ,或者说为每个任务分配cpu 时间 ,并且负责任务之间的通讯。内核提供的基本服务是任务切换。 μc/os-ii可以管理多达64个任务。由于它的作者占用和保留了8个任务,所以留给用户应用程序最多 可有56个任务。赋予各个任务的优先级必须是不相同的。这意味着μc/os-ii不支持时间片轮转调度法 (round-robin scheduli ng)。μc/os-ii为每个任务设置独立的 堆栈空间,可以快速实现任务切换 。μc/os-ii近似地每时每刻总是让优先级最高的就绪任务处于运行状态,为了保证这一点,它在调用系统api 函数、中断结束、定时中断结束时总是执行调度算法,μc/os-ii通过事先计算好数据简化了运算量,通过精心设计就绪表结构使得延时可预知。
p89v51rd2 微处理器介绍
p89v51rd2是philips公司生产的一款80c51微控制器,包含64kb flash和1024字节的数据ram。p89v51rd2的典型特性是它的x2方式选项。利用该特性,设计者可使应用程序以传统的80c51时钟频率(每个机器周期包含12个时钟)或x2 方式(每个机器周期包含6个时钟)的时钟频率运行,选择x2方式可在相同时钟频率下获得2倍的吞吐量。从该特性获益的另一种方法是将时钟频率减半来保持特性不变,这 样可以极大地降低emi。flash程序存储器支持并行和串行在系统编程(isp),isp允许在软件控制下对成品中的器件进行重复编程。应用固件的 产生/更新能力实现了isp的大范围应用。 5v的工作电压,操作频率为0~40mhz。p89v51rd2的资源和isp的功能使得它很适合用来做μc/os-ii的移植调试。并不需要购买仿真器和编程器等额外投资。
μc/os-ii 的移植
移植就是使μc/os-ii能在p89v51rd2上运行。为了方便移植,大部分的μc/os-ii的代码是用c语言编写的;但是仍需要用c语言和汇编语言编写一些处理器硬件相关的代码,这是因为μc/os-ii在读/写处理器寄存器时,只能通过汇编语言来实现。由于μc/os-ii在设计时就已经充分考虑了可移植性,所以μc/os-ii的移植相对来说是比较容易的。
硬件平台构成
由于p89v51rd2是一款80c51微控制器,片内包含了64kb的flash程序存储器,并且支持串行在线编程(isp)。使它在rom空间上很适合做μc/os-ii的移植。但是它片内ram空间很有限,只有1kb,不能满足μc/os-ii对ram的要求。但是由于p89v51rd2可以扩展ram空间,使这一问题得以解决。我们为它扩展了一片32kb的ram来构成移植μc/os-ii的硬件平台。这样p89v51rd2就满足了移植μc/os-ii的所有要求。
编译器的选择
由于μc/os-ii绝大部分代码是用标准的c语言编写的,所以c语言开发工具对于μc/os-ii是必不可少的。由于μc/os-ii是一个可剥夺行的占先式内核,所以要求c编译器可以产生可重入型代码。笔者选择keil c51集成开发环境作为开发工具。该开发工具有c编译器,汇编器和链接定位器等工具构成。链接器用来将不同模块(编译过或汇编过的文件)链接成目标文件,定位器则允许将代码和数据放置在目标处理器的
自嵌入式系统开发以来,很长时间都采用前后台系统软件设计模式:主程序为一个无限循环,单任务顺序执行。通过设置一个或多个中断 来处理异步事件。这种系统对于简单的应用是可以的,但对于实时性要求比较高的、处理任务较多的应用,就会暴露出实时性差、系统可靠性低、稳定性差等缺点。μc/os-ii 是一种基于优先级的抢占式多 任务实时操作系统, 包含了实时内核、任务管理、时间管理、任务间通信同步(信号量,邮箱,消息 队列)和内存管理等功能。它可以使各个任务独立工作,互不干涉,很容易实现准时而且无误执行,使实时应用程序的设计和扩展变得容易,使应用程序的设计过程大为减化。而且它内核源代码公开,可移植性强,为编程人员提供了很好的一个软件平台。通过μc/os-ii在p89v51rd2 上的移植,可以掌握移植和测试μc/os-ii 的实质内容,很容易将其移植到其它的cpu平台上。
μc/os-ii 介绍
μc /os-ii是一个完整的、可移植、可固化、可裁剪的占先式实时多任务内核。μc/os-ii绝大部分的代码是用ansi的c语言编写的,包含一小部 分汇编代码,使之可供不同架构的微处理器使用。至今,从8位到6 4位,μc/os-ii已在超过40种不同架构上的微处理器上运行。μc/os-ii已经在世界范围内得到广泛应用,包括很 多领域, 如 手机、路由器、集线器、不间断电源、飞行器、医疗设备及工业控制 上。实际上,μc/os-ii已经通过了非常严格的 测试,并且得到了美国航空管 理局(federal aviation administration)的认证,可以用在飞行器上。这说明μc/os-ii是稳定可靠的,可用于与人性命攸关的安全紧要(safety critical)系统。除此以外,μc/os-ii 的鲜明特点就是源码公开,便于移植和维护。
μc/os-ii 内核结构
多任务系统中,内核负责管理各个任务 ,或者说为每个任务分配cpu 时间 ,并且负责任务之间的通讯。内核提供的基本服务是任务切换。 μc/os-ii可以管理多达64个任务。由于它的作者占用和保留了8个任务,所以留给用户应用程序最多 可有56个任务。赋予各个任务的优先级必须是不相同的。这意味着μc/os-ii不支持时间片轮转调度法 (round-robin scheduli ng)。μc/os-ii为每个任务设置独立的 堆栈空间,可以快速实现任务切换 。μc/os-ii近似地每时每刻总是让优先级最高的就绪任务处于运行状态,为了保证这一点,它在调用系统api 函数、中断结束、定时中断结束时总是执行调度算法,μc/os-ii通过事先计算好数据简化了运算量,通过精心设计就绪表结构使得延时可预知。
p89v51rd2 微处理器介绍
p89v51rd2是philips公司生产的一款80c51微控制器,包含64kb flash和1024字节的数据ram。p89v51rd2的典型特性是它的x2方式选项。利用该特性,设计者可使应用程序以传统的80c51时钟频率(每个机器周期包含12个时钟)或x2 方式(每个机器周期包含6个时钟)的时钟频率运行,选择x2方式可在相同时钟频率下获得2倍的吞吐量。从该特性获益的另一种方法是将时钟频率减半来保持特性不变,这 样可以极大地降低emi。flash程序存储器支持并行和串行在系统编程(isp),isp允许在软件控制下对成品中的器件进行重复编程。应用固件的 产生/更新能力实现了isp的大范围应用。 5v的工作电压,操作频率为0~40mhz。p89v51rd2的资源和isp的功能使得它很适合用来做μc/os-ii的移植调试。并不需要购买仿真器和编程器等额外投资。
μc/os-ii 的移植
移植就是使μc/os-ii能在p89v51rd2上运行。为了方便移植,大部分的μc/os-ii的代码是用c语言编写的;但是仍需要用c语言和汇编语言编写一些处理器硬件相关的代码,这是因为μc/os-ii在读/写处理器寄存器时,只能通过汇编语言来实现。由于μc/os-ii在设计时就已经充分考虑了可移植性,所以μc/os-ii的移植相对来说是比较容易的。
硬件平台构成
由于p89v51rd2是一款80c51微控制器,片内包含了64kb的flash程序存储器,并且支持串行在线编程(isp)。使它在rom空间上很适合做μc/os-ii的移植。但是它片内ram空间很有限,只有1kb,不能满足μc/os-ii对ram的要求。但是由于p89v51rd2可以扩展ram空间,使这一问题得以解决。我们为它扩展了一片32kb的ram来构成移植μc/os-ii的硬件平台。这样p89v51rd2就满足了移植μc/os-ii的所有要求。
编译器的选择
由于μc/os-ii绝大部分代码是用标准的c语言编写的,所以c语言开发工具对于μc/os-ii是必不可少的。由于μc/os-ii是一个可剥夺行的占先式内核,所以要求c编译器可以产生可重入型代码。笔者选择keil c51集成开发环境作为开发工具。该开发工具有c编译器,汇编器和链接定位器等工具构成。链接器用来将不同模块(编译过或汇编过的文件)链接成目标文件,定位器则允许将代码和数据放置在目标处理器的