新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > μC/OS-II在Cortex-M3系列单片机上的移植

μC/OS-II在Cortex-M3系列单片机上的移植

作者:时间:2009-02-04来源:网络收藏

  (2) OS_CPU_C.C文件

  在OS_CPU_C.C定义的C函数中,OSTaskStkInit()函数与CPU相关,所以代码需要修改该函数。其程序如下(初始化任务时调用此函数初始化任务使用的堆栈):

程序

  (3) OS_CPU_A.ASM文件

  μC/OSII的需要编写5个简单的汇编语言函数。

  ① OS_ENTER _CRITICAL( ): 关闭中断源。

  ② OS_EXIT_CRITICAL( ): 重开中断源。

  ③ OSStartHighRdy( ): 运行当前优先级最高的任务。

  ④ OSCtxSw( ): 一个任务放弃CPU使用权时调用。

  ⑤ OSIntCtxSw(): 在退出中断服务函数OSIntExit()中被调用,实现中断级任务切换。

  因为LM3S单片机目前只支持8位中断优先级中的高3位,所以这里把1左移5位即是00100000B,其宏定义为OS_CRITICAL_INT_PRIOEQU(15)。

  ARM CortexM3使用OSPendSV( )函数快捷地进行上下文切换。OSPendSV( )的C语言表述程序如下:

程序

  完成上述工作后,只要再根据目标板的实际情况编写Target目录中的3个文件,μC/OSII就可以运行在LM3S8962单片机上了。

3 实际应用

  工作完成后,编写了一段程序,可以进行CAN通信,按键控制LED灯,通过RS232串口与主机相连实现对SD卡的读写等操作。下面是程序的部分代码:

程序

  在Main.H中定义任务优先级为:

程序

  其中创建任务的任务代码为:

程序

  SDExample为方便观察SD卡操作任务编写的GUI界面,选好与程序对应的串口波特率,连接好硬件。从图2可以看到,对SD卡可以进行成功操作。

SD卡操作任务编写的GUI界面

图2 SD卡操作任务编写的GUI界面

  结语

  μC/OSII作为一个优秀的实时操作系统,已经被移植到各种体系结构的微处理器上。本设计实现了其在LM3S8962上的成功移植,并通过一个实例验证了移植的正确性。本次移植只是做了一些基础性工作,在此基础上还可进行进一步的开发,充分利用LM3S系列单片机的性能和μC/OSII的特点,在检测与维修领域发挥一定作用。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭