μCOS-II 在MC9S12DG128 上的移植

μCOS-II 在MC9S12DG128 上的移植,第1张

 1 前 言

在采用前后台系统软件设计模式的嵌入式系统中,主程序是一个无限循环,单任务顺序执行,通过设置一个或多个中断来处理异步事件。这种系统对于简单的应用是可以的,但对于实时性要求比较高的、处理任务较多的应用,就会暴露出实时性差、系统可靠性低、稳定性差等缺点。μC/OS-II 是一个源代码公开、可移植、可裁剪的实时多任务 *** 作系统,具有低成本、稳定可靠、实时性好等优点,是专门针对微处理器和微控制器设计的实时内核,它的内核可以做到很小,很适合在单片机系统上移植。移植了μC/OS-II 的嵌入式系统可以使各个任务独立工作,互不干涉,很容易实现准时而且无误执行,使实时应用程序的设计和扩展变得容易,使应用程序的设计过程大为减化。本文选用飞思卡尔(Freescale)公司的16 位单片机MC9S12DG128 作为硬件平台,针对MC9S12DG128 的存储器组织和体系结构,对μC/OS-II 源代码作了相应的改写,最终实现了μC/OS-II *** 作系统在MC9S12DG128 上的移植。通过μC/OS-II 在MC9S12DG128 上的移植,可以掌握移植和测试μC/OS-II 的实质内容,同时也很容易将其移植到其它的CPU 平台上。

2 MC9S12DG128 的体系结构(存储器的组织)

微控制器内部不同的存储器占用不同的存储空间,也就是说,不同的地址范围,它们均占据特定的地址空间,这些存储器和内部集成模块的地址分配并不是固定不变的,用户自己可以重新分配,但建不要轻易改动默认的映射空间,应直接采用默认地址映射空间。图1 是MC9S12DGl28 复位后的内存空间分配情况。其中,地址$0000~$03FF 为1KB 寄存器空间; $0000~$1FFF 为8KB RAM(可见7KB);$0000~$07FF 为2KBEEPROM(不可见)。

μCOS-II 在MC9S12DG128 上的移植,μC/OS-II 在MC9S12DG128 上的移植,第2张

图1 MC9S12DGl28 复位后的内存空间分布情况

可以通过设置INITRG,INITRM,INIteE 寄存器来重新分配各存储器的位置。这些寄存器只能写一次,建议在初始化时分配存储器的位置。如果映射出现地址重叠时,S12CPU 内部的优先级控制逻辑会自动屏蔽级别较低的资源,保留级别最高的资源。寄存器具有最高优先级,与其重叠的RAM 和EEPROM 此时无效。存储器的优先级如下表所列。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2643520.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-12
下一篇 2022-08-12

发表评论

登录后才能评论

评论列表(0条)

保存