新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > μC/OS-Ⅱ在MC9S12A64上的移植及应用

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

作者:时间:2012-05-17来源:网络收藏

(3)发送信号量OSSemPost()函数。它也首先检查参数指针pevent指向的任务控制块是否是OSSemCreate()函数建立的,接着检查是否有任务在等待该信号量。如果有任务正在等待该信号量,就把其中的最高优先级任务从等待任务列表中删除并使它进入就绪状态。如果这时没有任务在等待该信号量,该信号量的计数值就简单地加1。

Sem=OSSemCreate(1); //创建一个信号量

OSSemPend(Sem,0,err);// 等待信号量

不可重入型函数…

OSSemPost(Sem); //释放信号量

3 基于μC/OS-II操作系统的

源程序移植完,用户就可以试着制作自己的项目。编写任务代码与以前在前后台系统中基本相同,不同的是要把每个任务独立编写成一个文件,最后由主程序统一调度。我们可以先分别用三个文件编写三个小任务,每个任务都要设置成死循环。为了方便调度,任务的起始地址应被强制定位在固定地址上,我就规定它们起始地址分别为0x8000,0x9000和0xA000,如果任务都比较复杂,可以将每个任务的程序都定位在0x8000-0xBFFF地址空间,但分配的页面不同。其余的程序都要下到0x4000开始的地址中,这些工作都是在程序下载时解决的。所以我下载的Targets选择的是Flash Application它可以把程序下到0x4000开始的地址中,交叉编译软件Code Warrior给出的连接文件__FLAT.prm是程序最终链接与定位用的,他给出了程序的装载地址,用户可以根据使用单片机的内存分配情况和应用要求来修改这个文件。在定位时我先定义了三个地址块,

PAGE_3C8000 = READ_ONLY 0x3C8000 TO 0x3C8FFF;

PAGE_3C9000 = READ_ONLY 0x3C9000 TO 0x3C9FFF;

PAGE_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内核工作原理入手,以为例介绍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


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭