μCOSII操作系统在各种处理器上移植.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
μCOSII操作系统在各种处理器上移植

μC/OS-Ⅱ操作系统在各种处理器上的移植 长江大学 杨青胜 徐爱钧 摘要 介绍μC/OS-II操作系统的应用和移植条件;阐述μC/OS-Ⅱ操作系统在普通的51单片机,NXP公司的LPC2210,ALTERA公司的Nios II 三种处理器上的移植。 关键字 μC/OS-II 移植 51单片机 LPC2210 Nios II PortingμC/ OS - Ⅱto Various processor Yangtze University Yang Qingsheng Xu Aijun Abstract : Introduced the μC/OS-II operating system application and transplant conditions;Explained the μC/OS-II operating system on 51 common microprocessor ,NXPs LPC2210, ALTERAs Nios II three processors transplant. Key Words: μC/OS-II port 51 microprocessor LPC2210 Nios II μC/OS-II操作系统是一种抢占式多任务、单内存空间、微小内核的嵌入式操作系统,具有高效、紧凑的特点。它具有执行效率高、占用空间小、可移植性强、实时性能良好和可扩展性强 等特点。采用μc/os-ii实时操作系统可以有效地对任务进行调度;对各任务赋予不同的优先级可以保证任务及时响应,而且采用实时操作系统,降低了程序的复杂度,方便程序的开发和维护。#define OS_ENTER_CRITICAL( ) asm(“PFX 8\n WRCTL%g0;”) //关中断 # define OS_EXIT _CRITICAL( ) asm( “PFX 9\n WRC T L%g 0 ;”) //开中断 ③定义堆栈的增长方向 堆栈的增长方向通过设置OS_STK_GROWTH为0或者1来确定 51单片机中只能设置为0,表示堆栈是从下往上增长的。 LPC2210中则可以设置成0或者1,都可以。 Nios II 中则只能设置成1,表示堆栈是从上往下增长的。 OS-CPU-C. C的实现 OS_CPU_C.C中主要应改写堆栈初始化函数OSTaskStkIint(),必须根据移植时统一定义的任务堆栈结构进行初始化,其他9个钩子函数只需说明即可,也可根据移植时用户自己的需要编写相应的操作代码。 以LPC2210为例,堆栈空间从高到低依次存放着 PC, LR, R12, R11, ……R1, R0, CPSR, OsEnterSum (如下图)。每个任务都有独立的 Os-EnterSum, 在任务切换时保存和恢复各自的 OsEnter-Sum值。各个任务开关中断的状态可以不同,这样实现了开关中断的嵌套。 PC LC R12 R11 … R1 R0 CPSR Os-EnterSum OS_STK*OSTaskStkInit(void(*task)(void*pd),void*pdata,OS_STK*ptos, INT16U opt) { OS_STK*stk; opt=opt; stk=stk; *stk=(OS_STK)task; *--stk=(OS_STK)task; *--stk=0; *--stk=0; *--stk=0; *--stk=0; *--stk=0; *--stk=0; *--stk=0;*--stk=0; *--stk=0; *--stk=0; *--stk=0; *--stk=0; *--stk=(unsigned int)pdata; *--stk=(USER_USING_MODE|0x00); *--stk=0; return(stk); } 关于51单片机和Nios II处理器的这部分移植,限于篇幅,请参看文后参考文献。 OS-CPU-A. S的实现 这部分需要对处理器的寄存器进行操作,所以必须用汇编语言来编写 。μC/OS-II移植要求用户编写 4个简单的汇编语言函数 : OSStartHighRdy( ) ,OSCtxSw( ),OSIntCtxSw( ) ,OSTickISR( )。 OSStartHighRdy()的任务是进行任务调度和切换; OS

文档评论(0)

ipad0d + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档