关于使用IAR在STM32上移植UCOS,双堆栈问题
现在有一个项目,用IAR的集成开发环境,MCU用的是STM32,移植了UCOS-II.
现在出现了一个问题,就是在任务里定义的局部变量直接使用的MSP堆栈,而不是使用PSP堆栈,这样导致的结果就是不能对定义的变量进行操作。
STM32不是有双堆栈嘛,内核使用的是MSP,任务使用的PSP,现在感觉任务使用的也是MSP堆栈,郁闷啊。。。请这方面高手指点一下。。。
特别声明一下,使用Keil MDK 是可以进行MSP和PSP切换,使用IAR就不行了,压抑啊。。。
[解决办法]
正打算过一个月就开始Cortex-M3的UCOS2的移植呢,还没开始就想好了到时用编译环境一定用KEIL,发现IAR界面啥的优化都不错,但似乎有一点很致命,启动代码似乎有些限制的感觉,不好随意的去修改,用keil应该没有这么些个麻烦问题。
你说IAR不能支持PSP和MSP的切换,这个应该不是吧。这个切换应该可以用软中断来做吧。
还没有CM3的实际移植经验,不敢瞎说。个人观点,仅供参考。