您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术uC/OS-II在ARM系统上的移植与实现 正文
uC/OS-II在ARM系统上的移植与实现

uC/OS-II在ARM系统上的移植与实现

点击数:7224 次   录入时间:03-04 11:41:52   整理:http://www.55dianzi.com   嵌入式系统-技术
    uC/OS - II 的移植及跑马灯和数码管的实现如下[9 ] :首先是C 语言入口函数Main (所有C 程序的入口) . 它里面包括调用函数ARMTargetInit () 初始化ARM处理器,调用OSInit ( ) 进行uC/ OS - II 操作系统初始化,然后调用OSTaskCreate ( ) 函数创建任务TaskLED 和TaskSEG,最后调用ARMTargetStart () 函数启动时钟节拍中断,并且调用OSStart ( ) 启动系统任务调度,由于在程序当中使用for ( ; ;) ,这是一个永无止境的回路,所以装置可以一直进行下去,直到关闭装置.
  void Main(void)
  {ARMTargetInit () ;
  uHALr printf (″uC/ OS - II # n″) ;
  OSInit () ;
  Sem1 = OSSEMCreate(0) ;
  Sem2 = OSSEMCreate(1) ;
  OSTaskCreate(TaskLED , (void 3 ) &IdLED , (OS STK 3 )
&StackLED[ STACKSIZE - 1 ] , 5) ;
  OSTaskCreate(TaskSEG, (void 3 ) &IdSEG, (OS STK 3 )
&StackSEG[ STACKSIZE - 1 ] , 6) ;
  ARMTargetStart () ;OSStart () ;
  return ;}

4  结语
    使用创建好的模板Temp 新建一个工程Temp ,并将模板中的Core 和Assemble 文件夹中的文件加入到工程Temp 中. 1) 新建一个文件Temp. c ,并将其添加到Temp 工程的App 文件夹中. 2) 打开Temp. c文件,添加两个任务,它们的任务处理函数分别为TaskLED() 和TaskSEG() . 3) 在TaskLED( ) 函数中每隔50 个时钟节拍使所有跑马灯闪烁一次(即按顺序亮,然后全亮,最后全灭,顺序循环) . 4) 在TaskSEG() 函数中每隔50 个时钟节拍切换一次数码管显示(循环从0~F 显示) . 5) 编译工程Temp ,如果出错,则进行修改后再编译. 6) 将Temp 下载并运行,看结果. 正确的结果是将每隔1/ 2 s 切换一次数码管显示,每隔1/ 2 s使所有跑马灯闪烁一次. 经持续了2 h试验,没有出现错误,跑马灯和数码管正常运转,结果证明移植成功.

参考文献:
[1 ]  雷必成, 吴高标, 吴永良. 嵌入式实时操作系统uC/ OS
- II 的移植探讨[J ] . 自动化技术与应用,2003 , (5) :1 —3.
[2 ]  邵贝贝. 嵌入式实时操作系统uC/ OS - II[M] . 第2 版.
北京:北京航空航天大学出版社,2003. 2 —30.
[3 ]  叶丰桥,黄海. uC/ OS - II 在51XA 上的移植应用[J ] .
工业控制计算机,2002 , (10) :1 —2.
[4 ]  田泽. 嵌入式开发与应用实验教程[M] . 北京: 北京航
空航天大学出版社,2004. 264 —270.
[5 ]  陈赜. ARM嵌入式技术实践教程[M] . 北京:北京航空
航天大学出版社,2005. 189 —203.
[6 ]  王田苗. 嵌入式系统设计与实例开发[M] . 北京: 清华
大学出版社,2003. 62 —89.
[7 ]  朱华军. uC/ OS - II 操作系统在ARM处理器上的技巧
[J ] . 计算机工程,2004 , (S1) :2 —3.
[8 ]  苏中义,杨宇. 嵌入式系统[J ] . 嵌入系统,2004 , (3) :11
[9 ]  曾鸣. uC/ OS - II 实时操作系统在嵌入式平台上进行
移植的一般方法和技巧[ J ] . 今日电子, 2004 , (11) :2 —3.



上一页  [1] [2] 


本文关键字:暂无联系方式嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术