sunny0_0yao

    1. 有问必答--关于UCOS 115/36448 实时操作系统RTOS 2012-06-14
      楼主你好,我在移植过程中遇到了一个问题,始终找不到解决办法,请楼主指点迷津。 我使用的板子是LM4F232H5QD的开发套件,移植的程序是参照UCOSIII对LM3S9B92的例程进行修改的,使用的是IAR6.30。 调试时,在OSStart(&err)处设置断点,然后进入程序,单步运行,进入OSStartHighRdy(), 在运行完成:     LDR     R0, =OS_CPU_ExceptStkBase   ; Initialize the MSP to the OS_CPU_ExceptStkBase     LDR     R1, [R0]     MSR     MSP, R1    时发生错误,提示: The stack point for stack ‘CSTACK’(currently 0x20000D3C) is outside the stack range(0x200019C8 to 0x200021C8) 在OSInit(&err)中有运行OSInitHook(),而OSInitHook()的内容是: void  OSInitHook(void) {   OS_CPU_ExceptStkBase = (CPU_STK*)(OSCfg_ISRStkBasePtr + OSCfg_ISRStkSize – 1u); } 其中OSCfg_ISRStkSize值为128,OSCfg_ISRStkBasePtr=(CPU_STK*)&OSCfg_ISRStk[0];是系统自动分配的,编译时显示为0x20000B40。因为是双字,所以是0x20000B40+(128-1)*4=0x20000D3C. 堆栈生长方向是由高向低。 实在不知道该怎么修改,如果改变OSCfg_ISRStkSize 的大小,那么CSTACK的地址随着一起改变,仍然发生同样的错误。如果改变CSTACK的大小,结果也是这样,不晓得哪里出错了。请楼主帮忙看看。谢谢!

最近访客

< 1/1 >

统计信息

已有72人来访过

  • 芯积分:--
  • 好友:2
  • 主题:--
  • 回复:1

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言