background image

                                            

3  系统移植

ARM 芯片获得了许多实时操作系

(Real Time Operating 

System)供应商的支持,比较知

名的有:

Windows 

CE、Linux 、pSOS 、VxWorks 

Nucleus、OSE、eCOS、μC/OS-II

等,我们将在税控收款机系统上

移植

μC/OS-II。

3.1  μC/OS-II 移植

LPC2214 的 ARM7TDMI-S 内核

ARM ADS 作为编译器移植 μC/OS-II。包括以下内容:①设置 OS_CPU.H 头文件中与处理器和编译器相关的代码如:

整数、浮点数、堆栈等数据类型定义,打开或者关闭中断函数设置,定义堆栈增长方向,任务切换的执行代码。

②用 C 语言在

OS_CPU_C.C 文件中编写 6 个操作系统相关函数:任务堆栈初始化函数 OSTaskStkInit( ),μC/OS-II 在执行某些操作

时调用的用户函数:

OSTaskCreateHook( )、OSTaskDelHook( )、OSTaskSwHook( )、OSTaskStatHook( 

)、OSTimeTickHook(  )③ 在 OS_CPU.ASM 文件中用汇编语言编写四个与处理器相关的函数:运行优先级最高的就绪任

OSStartHighRdy( )、任务级的任务切换函数 OSCtxSw( )、中断级的任务切换函数 OSIntCtxSw( )、中断服务函数

OSTickISR( )。这里介绍的是通用方法,在具体的项目中还有很多工作要作。

3.2  建立完整的嵌入式实时系统

μC/OS-II 提供的仅仅是一个任务调度的内核,要想实现一个以 LPC2214 为主控单元,应用于税控收款机的嵌入式实时多

任务操作系统,还需相当多的扩展工作。主要包括:

① 建立文件系统相关的 API 函数:如初始化文件函数 InitOSFile( )、通过文件缓冲区读写数据函数 ReadOSFile( )和

WriteOSFile( )、打开和关闭文件函数 OpenOSFile( )和 CloseOSFile( )。

② 为外部设备建立驱动程序并规范相应的 API 函数。外设驱动程序可以对系统提供访问外围设备接口,把操作系统和外围

设备分离开来。当外围设备改变的时候,只需更换相应的驱动程序,不必修改操作系统的内核以及运行在操作系统的软件。

如:液晶驱动、键盘驱动、

UART 接口驱动等。

③ 创建图表用户接口 GUI 函数,实现 Unicode 字库的显示及相关函数。

④ 系统的消息队列。消息相关函数在各个任务之间、用户应用程序之间以及用户应用程序和系统的各个任务之间通常是通过

消息来传递信息和同步的。

⑤ 税控收款机软件设计采用模块化思想,其用户程序的开发大体分为如下部分:主程序、自检诊断模块、IC 卡读写模块 、

UART 通讯模块、开票模块、液晶显示和按键等人机接口模块。