UC/OS-II在ARM微处理器上的移植及编译

本文介绍了如何将uCOS-II操作系统移植到ARM920T处理器上,包括实验目的、内容、预备知识、实验设备和工具、实验原理以及详细步骤。通过实验,展示了在ARMADS1.2环境下实现多任务切换,并讨论了移植过程中的挑战和心得。
摘要由CSDN通过智能技术生成

一、实验目的

1.了解uCOS-II内核的主要结构。

2.掌握将uCOS-II内核移植到ARM920T处理器上的基本方法。

二、实验内容

1.将uCOS-II内核移植到ARM920T微处理器上。

2.编写两个简单任务,在开发板显示器上观察两个任务的切换。

三、预备知识

1.掌握在ARMADS1.2集成开发环境中编写和调试程序的基本过程。

2.了解ARM920T处理器的结构。

3.了解uCOS-II系统结构。

四、实验设备及工具

硬件:ARM嵌入式开发平台、用于ARM920T的JTAG仿真器、PC机Pentium100以上。

软件:PC机操作系统Win2000或WinXP、ARMADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。

五、实验原理

所谓移植,指的是一个操作系统可以在某个微处理器或者微控制器上运行。虽然uCOS-II的大部分源代码是用C语言写成的,仍需要用C语言和汇编语言完成一些与处理器相关的代码。比如:uCOS-II在读写处理器、寄存器时只能通过汇编语言来实现。因为uCOS-II在设计的时候就已经充分考虑了可移植性,所以,uCOS-II的移植还是比较容易的。

要使uCOS-II可以正常工作,处理器必须满足以下要求:

1.处理器的C编译器能产生可重入代码。

可重入的代码指的是一段代码(如一个函数)可以被多个任务同时调用,而不必担心会破坏数据。也就是说,可重入型函数在任何时候都可以被中断执行,过一段时间以后又可以继续运行,而不会因为在函数中断的时候被其他的任务重新调用,影响函数中的数据。下面的两个例子可以比较可重入型函数和非可重入型函数:

程序1:可重入型函数

void swap(int *x, int *y)

{

int temp;

       temp=*x;

*x=*y;

*y=temp;

}

程序2:非可重入型函数

int temp;

void swap(int *x, int *y)

{

       temp=*x;

       *x=*y;

       *y=temp;

}

程序1中使用的是局部变量temp作为变量。通常的C编译器,把局部变量分配在栈中。所以,多次调用同一个函数,可以保证每次的temp互不受影响。而程序2中temp定义的是全局变量,多次调用函数的时候,必然受到影响。

代码的可重入性是保证完成多任务的基础,除了在C程序中使用局部变量以外,还需要C编译器的支持。笔者使用的是ARM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值