智能家居系统数字显示终端设计方案
3) OS_CPU_A.ASM 文件。μC/OSII 的移植需要编写5 个简单的汇编语言函数。
OS_ENTER _CRITICAL (): 关闭中断源;
OS_EXIT_CRITICAL (): 重开中断源;
OSStartHighRdy (): 运行当前优先级最高的任务;
OSCtxSw (): 一个任务放弃CPU 使用权时调用;
OSIntCtxSw (): 在退出中断服务函数OSIntExit() 中被调用, 实现中断级任务切换。
LPC1758使用OSPendSV()函数快捷地进行上下文切换。OSPendSV()的C语言表述程序为OSPendSV: 关中断;
if (PSP ! =NULL)
{
//保存R4~R11 到任务堆栈SP_process;
OSTCBCur>OSTCBStkPtr = SP_process;
}
OSTaskSwHook ();
OSPrioCur = OSPrioHighRdy;
OSTCBCur = OSTCBHighRdy;
PSP = OSTCBHighRdy>OSTCBStkPtr;
//从新任务堆栈中恢复R4~R11;
/恢复中断;
//异常返回;
完成上述工作后, 只要再根据目标板的实际情况编写Target 目录中的3 个文件, μC/OSII 就可以运行在处理器上了。
3 重点解决数字显示模块的组网问题
1) 角色介绍。ZigBee 标准网络定义了3 种角色, 分别是协作员、路由和端节点。
协作员(coordinator) 负责启动整个网络, 它是网络的第一个设备, 协作员选择一个信道和一个网络ID, 随后就可以启动网络。
路由(router) 的功能是允许其他设备加入网络, 协助网络中其他终端设备通信。
端节点(end device) 没有特定的维持网络结构的责任, 它可以选择睡眠或唤醒两种工作状态, 功耗小, 可使用电池供电。
评论