uC/OS-II在C8051F上的移植
文件大小: 71k
源码售价: 10 个金币 积分规则     积分充值
资源说明:uC/OS-II在C8051F上的移植 1 开发工具和运行环境   实现μC/OS-II的移植,要求所用的C编译器支持混合编程。KEIL C51可为众多的8051派生器件编程。我们选用的是KEIL7.02集成开发环境,仿真板基于C8051F015芯片。 2 移植中所需修改的文件   和CPU相关的文件主要有三个,分别是汇编文件OS_CPU_A.ASM、C语言文件 OS_CPU_C.C和头文件OS_CPU.H。 2.1 OS_CPU.H文件   OS_CPU.H文件中定义了数据类型及与硬件相关的基本信息。其中改动部分如下:typedef unsigned char OS_STK; 【uC/OS-II在C8051F上的移植】涉及的是实时操作系统(uC/OS-II)在微控制器C8051F上的适配和移植工作。C8051F系列是Silicon Labs公司生产的高性能8051微控制器,具有内置闪存、模拟功能和数字接口等特点。移植过程中主要涉及到以下几个方面: 1. **开发工具和运行环境**: 在移植μC/OS-II到C8051F上时,需要一个支持8051系列的混合编程C编译器。这里选择了KEIL C51 V7.02作为开发工具,它是一个集成开发环境,适用于多种8051派生器件。同时,开发平台基于C8051F015芯片的仿真板,提供了硬件调试和运行环境。 2. **移植中所需修改的文件**: 移植工作主要涉及三个文件: - **OS_CPU_A.ASM**:这是汇编语言文件,包含了与特定CPU架构相关的初始化和关键操作,如任务上下文切换和中断服务。 - **OS_CPU_C.C**:包含C语言实现的CPU相关功能,如任务切换钩子函数和其他与处理器特性相关的函数。 - **OS_CPU.H**:头文件,定义了与特定CPU相关的数据类型和常量,以及硬件特定的宏定义。 3. **OS_CPU.H文件的修改**: - `OS_STK`:定义为8位无符号字符类型,表示堆栈的宽度,因为C8051F的堆栈操作是以字节为单位。 - `OS_ENTER_CRITICAL()` 和 `OS_EXIT_CRITICAL()`:这两个宏用于进入和退出临界区,以防止中断干扰核心操作。通过设置中断屏蔽位来关闭和恢复中断。 - `OS_STK_GROWTH`:设置为0,表示堆栈从低地址向高地址增长。 - `OS_TASK_SW()`:定义任务切换函数,模拟中断过程并在中断返回时执行任务切换。在C8051F015上,由于没有软中断,所以直接映射为`OSCtxSw()`函数。 4. **OS_CPU_A.ASM文件的修改**: - 使用`NAME`声明该文件为`OS_CPU_A`,以便编译器识别。 - 函数声明和段定义:根据8051汇编语言的规范,声明函数段如`?PR?OSStartHighRdy?OS_CPU_A SEGMENT CODE`,并用`PUBLIC`声明函数,如`PUBLIC OSStartHighRdy`。 - 数据声明:声明全局变量如`OSTCBCur`,以及调用外部子程序如`OSTaskSwHook`,遵循特定格式。 - 堆栈管理:由于C8051F的堆栈指针8位,因此需要在IDATA区分配64字节的堆栈空间,并找到KEIL分配的堆栈起点。 完成以上步骤后,需要进行编译、链接并测试,确保移植后的μC/OS-II在C8051F上能正常运行,包括任务创建、调度、中断处理等功能。移植过程中需要注意对硬件资源的充分利用,以及优化代码以适应微控制器的限制,如内存和处理能力。同时,要确保移植后的系统满足实时性和稳定性要求。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。