3.1 μC/OS-II 操作系统的移植
我们使用的 μC/OS-II 是一个完整、可移植、可固化、可剪裁的占先式实时多任务的实 时操作系统内核,使用标准的ANSIC 语言编写, 并包含一段汇编语言代码,被广泛地应用 于各种架构的微处理器上。
在本系统中,μC/OS-II 的移植主要是修改3 个与ARM 处理器体系结构相关的文件: OS_CPU.H、OS_CPU.C 和OS_CPU_A.ASM。OS_CPU.H 文件为系统通用量设置的移植文 件,采用C 语言描述。包含数据类型定义、堆栈单位、堆栈增长方向和宏定义,需根据处 理器进行相应修改;OS_CPU.C 文件为系统管理代码的移植文件, 采用C 语言描述; OS_CPU_A.ASM 文件为处理器相关代码的移植文件, 采用ARM 的汇编语言描述。
3.2 控制器编程
将操作系统成功移植到LPC2214 上后,就可以对主机端系统进行软件设计。下面是主 机端主函数的代码:
int main (void)
{
OSInit();
OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[127], 5);
OSStart();
}
主函数首先对操作系统进行初始化,初始化完成后,创建启动任务,设置任务的优先级, 并开始进行多任务操作。启动任务TaskStart 主要完成各个模块的初始化,包括开发板的初 始化TargetInit(),射频芯片的初始化Init_RF(),控制器AD 转换的初始化Init_ADC(),USB 接口芯片的初始化Init_D12()等,并将射频无线接受设置为接收模式。最后调用主执行函数 TaskDisplay()进行任务处理。
3.3 USB 编程
在主机端软件设计中,USB接口设计是非常重要的一环。USB接口,即通用串行总线。 这是针对PC机外设的一种新型接口技术,具有终端用户使用方便、应用性广泛、能同步传 输宽带、灵活性强和实现成本低等特性。USB的基本通信流和分层模型如图2所示。
为简化USB 设备的开发过程,USB 提出了设备类的概念。HID(Human Interface Device) 设备类,即人机接口设备。典型的HID 设备如键盘、鼠标。客户软件可以直接使用操作系 统内置的HID 设备类驱动程序(hidclass.sys)和HID 小驱动程序(hidusb.sys)与HID 设备进行通信。