μC/OS-II在S3C44BOX处理器上的移植
发布时间:2008/5/27 0:00:00 访问次数:326
摘要:介绍实时操作系统μc/os-ii的特点和内核结构,给出μc/os-ii在samsung嵌入式s3c44box arm7微处理器上的移植的步骤及详细相关代码,同时阐述μc/os-ii在应用中应注意的问题。
关键词:μc/os-ii s3c44box 移植 实时操作系统
μc/os-ii功能强大,支持56个用户任务,其内核为占先式,支持信号量、邮箱、消息队列等多种常用的进程间通信机制,现已成功应用到众多商业嵌入式系统中,是一个成熟稳定的实时内核。与大多商用rtos不同的是,μc/os-ii公开所有的源代码,90%的代码使用标准的ansi c语言书写,程序可读性强、移植性好;同时它可免费获得,即使商业应用也只收取少量的许可费用。因此,对μc/os-ii实时操作系统的学习研究、开发、应用具有重要意义。
samsung s3c44b0x微处理器是三星公司专为手持设备和其它嵌入式应用提供的高性价比的微控制器解决方案。它使用arm公司的16位/32位risc结构,内核是arm7tdmi,工作在66mhz,片上集成了以下部件:8k cache、外部存储器控制器、lcd控制器、4个dma通道、2个uart、1个多主i2c总线控制器、1个i2c总线控制器,以及5通道pwm定时器和1个内部定时器、8通道12位adc等,能够与常用的外围设备实现无缝连接,功能强大。目前,国内应用较为广泛。
1 μc/os-ii实时操作系统结构
图1说明了μc/os-ii的软硬件体系结构。应用程序处于整个系统的顶层,每个任务都可以认为自已独占了cpu,因而可以设计成为一个无限循环。μc/os-ii处理器无关的代码提供了μc/os-ii的系统服务,应用程序可以使用这些api函数进行内存管理、任务间通信及创建、删除任务等。
大部分的μc/os-ii代码是使用ansi c语言书写的,因此μc/os-ii的可移植性好,然而仍需要使用c和汇编语言写一些处理器相关代码。μc/os-ii的移植需要满足以下要求:
①处理器的c编译器可以产生可重入代码;
②可以使用c调用进入和退出临界区代码;
③处理器必须支持硬件中断,并且需要一个定时中断源;
④ 处理器需要能够容纳一定数据的硬件堆栈;
⑤处理器需要有能够在cpu寄存器与内核和堆栈交换数据的指令。
s3c44b0x处理器完全满足上述要求。
2 实时内核μc/os-ii在s3c44b0x上的移植
我们使用arm sdt编译器,移植μc/os-ii主要包括以下几个步骤。
(1)设置os_cpu.h中与处理器和编译器相关的代码
*************************************************
与编译器相关的数据类型
*************************************************
typedef unsigned char boolean;
typedef unsigned char int8u; /*8位无符号整数*/
typedef signed char int8s; /*8位有符号整数*/
typedef unsigned short int16u; /*16位有
摘要:介绍实时操作系统μc/os-ii的特点和内核结构,给出μc/os-ii在samsung嵌入式s3c44box arm7微处理器上的移植的步骤及详细相关代码,同时阐述μc/os-ii在应用中应注意的问题。
关键词:μc/os-ii s3c44box 移植 实时操作系统
μc/os-ii功能强大,支持56个用户任务,其内核为占先式,支持信号量、邮箱、消息队列等多种常用的进程间通信机制,现已成功应用到众多商业嵌入式系统中,是一个成熟稳定的实时内核。与大多商用rtos不同的是,μc/os-ii公开所有的源代码,90%的代码使用标准的ansi c语言书写,程序可读性强、移植性好;同时它可免费获得,即使商业应用也只收取少量的许可费用。因此,对μc/os-ii实时操作系统的学习研究、开发、应用具有重要意义。
samsung s3c44b0x微处理器是三星公司专为手持设备和其它嵌入式应用提供的高性价比的微控制器解决方案。它使用arm公司的16位/32位risc结构,内核是arm7tdmi,工作在66mhz,片上集成了以下部件:8k cache、外部存储器控制器、lcd控制器、4个dma通道、2个uart、1个多主i2c总线控制器、1个i2c总线控制器,以及5通道pwm定时器和1个内部定时器、8通道12位adc等,能够与常用的外围设备实现无缝连接,功能强大。目前,国内应用较为广泛。
1 μc/os-ii实时操作系统结构
图1说明了μc/os-ii的软硬件体系结构。应用程序处于整个系统的顶层,每个任务都可以认为自已独占了cpu,因而可以设计成为一个无限循环。μc/os-ii处理器无关的代码提供了μc/os-ii的系统服务,应用程序可以使用这些api函数进行内存管理、任务间通信及创建、删除任务等。
大部分的μc/os-ii代码是使用ansi c语言书写的,因此μc/os-ii的可移植性好,然而仍需要使用c和汇编语言写一些处理器相关代码。μc/os-ii的移植需要满足以下要求:
①处理器的c编译器可以产生可重入代码;
②可以使用c调用进入和退出临界区代码;
③处理器必须支持硬件中断,并且需要一个定时中断源;
④ 处理器需要能够容纳一定数据的硬件堆栈;
⑤处理器需要有能够在cpu寄存器与内核和堆栈交换数据的指令。
s3c44b0x处理器完全满足上述要求。
2 实时内核μc/os-ii在s3c44b0x上的移植
我们使用arm sdt编译器,移植μc/os-ii主要包括以下几个步骤。
(1)设置os_cpu.h中与处理器和编译器相关的代码
*************************************************
与编译器相关的数据类型
*************************************************
typedef unsigned char boolean;
typedef unsigned char int8u; /*8位无符号整数*/
typedef signed char int8s; /*8位有符号整数*/
typedef unsigned short int16u; /*16位有
上一篇:CF卡在手机测试系统中的应用