uCOS-II 代码移植测试

 当用户为自己的处理器做完uCOS-II的移植后,下面就应该的验证移植的OS是否可以正常工作。首先,不加任何应用代码来测试移植好的OS,也就是说,应该首先测试内核自身的运行状况。这样代码即不复杂,又可以知道是否则OS移植问题。

      下面是需要移植的步骤:

      ①. 确保C编译器、汇编编译器及链接器正常工作;

      ②. 验证OSTaskStkInit()和OSStartHighRdy()函数;

      ③. 验证OSCtxSw()函数;

      ④. 验证OSIntCtxSw()和OSTickISR()函数。

1. 最小的TEST代码:

int main(void) 

     OSInit();      
     OSStart();
}

如果编译没有问题,说明基本移植通过,下面就可以进行真正的测试工作了。

2.  验证OSTaskStkInit()和OSStartHighRdy()函数:

    修改OS_CFG.H文件,设置OS_TASK_STAT_EN 为0,以禁止统计任务。因为没有添加应用任何,所以唯一的任务是OS的空闲任务:OS_TaskIdle()。如果能在OS_TaskIdle()任务的循环中运行,且在无限循环中已经执行几次,那么说明这一步验证成功。

3. 验证OSCtxSw()函数:

    这一步比较容易,只要添加一个应用程序,并不断切换到空闲任务。并在应用程序中添加OSTimeDly(1),如下:

void TestTask(void *pdata)

{

    pdata = pdata;

    while(1)

    {

        OSTimeDly(1);

    }

}

如果OSCtxSw()并没有将用户带入OSTimeDly(),则应当查明原因,纠正OSCtxSw()函数的错误。

4.  验证OSIntCtxSw()和OSTickISR()函数:

    建议单独运行ISR程序,而不调用OSIntExit()。

总结:

    如果以上几步均也通过,在说明OS移植通过,可以编写应用程序代码了。以上测试是需要硬件平台的,并不是利用软件模拟的,所以要先保证硬件没有问题。为了方便观察测试的结果,可以在代码中加入个LED的开关代码,通过观察LED的状态获知OS是运行状态;当然如果你用的软件平台和硬件支持单步调试的话,完全可以不用添加LED,也很方便的知道运行结果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值