微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > μC/OS-Ⅱ在MC9S12A64上的移植及应用

μC/OS-Ⅱ在MC9S12A64上的移植及应用

时间:05-17 来源:互联网 点击:

GE_3CA000 = READ_ONLY 0x3CA000 TO 0x3CAFFF;

然后将任务的程序代码和常数代码分别放入不同的地址块,

TASK1CODESEG, TASK1STRINGSEG INTO PAGE_3C8000;

TASK2CODESEG, TASK2STRINGSEG INTO PAGE_3C9000;

TASK3CODESEG, TASK3STRINGSEG INTO PAGE_3CA000;

同时在每个任务的.C文件的开头加上

#pragma CODE_SEG TASK1(2.3)CODESEG

#pragma STRING_SEG TASK1(2.3)STRINGSEG

在末尾加上

#pragma CODE_SEG DEFAULT

#pragma STRING_SEG DEFAULT 即可实现任务的地址分配。

三个任务虽然分别用.C文件定义了,但并没有被任务程序调用过,它们的运行是靠μC/OS-II的任务调度实现的。没有被调用的函数不会自动链接到最终生成的目标代码中去,故要在链结文件中加上:

ENTRIES

Task1 Task2 Task3

END

在文件的最后,还要定义三个向量。第一个是应用程序的起始地址,第二个是软中断向量,第三个是定时中断的中断服务子程序的入口地址。

VECTOR ADDRESS 0xFFFE _Startup

VECTOR ADDRESS 0xFFF6 OSCtxSw

VECTOR ADDRESS 0xFFF0 OSTickISR

程序的定位与链接完成以后就可以编写主程序对个任务进行调度。如果运行无误,操作系统的大体框架就建立起来,用户以后可以将复杂的任务加进来,也可以添加一些功能,这些做起来就相对比较简单。

4 总结:

本文作者创新点在于从uCOS—II内核工作原理入手,以MC9S12A64为例介绍uCOS—II内核的移植过程及项目的创建。通过原理对其主要函数进行剖析,最后根据自身处理器及编译器的情况移植文件。创建项目最重要的是程序的链接与定位,这要对内核的结构、CPU的地址分配、链接文件有较深入地了解。uCOS—II实时操作系统的移入,不但可以提高系统的实时性、可靠性和稳定性,还提高了应用软件的可移植性,降低了开发人员的工作量。

参考文献

[1]邵贝贝 《单片机嵌入式的在线开发方法》 北京:清华大学出版社 2004

[2]J.Labrosse.uC/OS-II-源码公开的实时嵌人式操作系统[M],邵贝贝译.中国电力出版社.2001

[3]吴永,张旭东,赵自信.MicroC/OS-Ⅱ在80C196上的移植实现[J].微计算机信息,2006,1-2:60-62

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top