ucos-ii在MC9S12XDP512上的移植

本文详细介绍uCos-II实时操作系统版本2.52在MC9S12XDP512微控制器上的移植过程及注意事项。包括工程配置、源文件添加、关键函数实现等内容,并提供了一个简单的测试案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      搞了几天,总算把ucos-ii移植到MC9S12XDP512上了。做个简短的笔记。

      ucos-ii版本:2.52, 编译器:Freescale CodeWarrior5.9 芯片:MC9S12XDP512

      移植步骤:

      1.  根据向导建立新的工程,芯片选择MC9S12XDP512,其余默认配置;

      2.  将ucos-ii通用源文件复制到工程的Sources目录下下:OS_CORE.C,OS_DBG.C,OS_FLAG.C,OS_MBOX.C,OS_MEM.C,

           OS+MUTEX.C,OS_Q.C,OS_SEM.C,OS_TASK.C,OS_TIME.C,uCos_II.H,os_cfg.h并将这些文件添加到工程中;

      3. 创建新文件,并命名为includes.h,将其添加到工程中,includes.h文件内容为:

     

      4. 创建新文件OS_CPU.H,并将其添加到工程中,OS_CPU.H文件内容为:

     

   5. 创建新文件os_cpu_c.c,并添加到工程中,os_cpu_c.c文件内容较多,主要有以下部分:

      1. 以下函数均为空: OSTaskCreateHook(),OSTaskDelHook(),OSTaskSwHook(),OSTaskIdleHook(),

          OSTaskStatHook(),OSTimeTickHook(),OSInitHookBegin(),OSInitHookEnd(),OSTCBInitHook(),

      2. OSTaskStkInit()函数内容: 该函数主要模拟中断产生时CPU的压栈过程,根据芯片资料(IS12CpuV1.pdf),中断的压栈次序为:

          SP+7  RTNH:RTNL  (返回地址)
          SP+5  Y
          SP+3  X
          SP+1  D(B:A)
          SP      CCR

        由上,OSTaskStkInit()内容为:

            

      3. 由于CodeWarrior可以内联汇编,因此将以下4个需要由汇编编写的函数也放于Os_cpu_c.c中:OSStartHighRdy(),

          OSCtxSw(), OSIntCtxSw(),OSTickISR().注意,这4个函数都应该编写在非分页区,4个函数的内容为:

   

    6. 按自己需要修改os_cfg.h配置文件

    7. 在main.c中编写如下测试代码:

  

 

整个工程在我的资源里

 

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值