[STM32F1] IAR堆栈溢出The stack pointer for stack 'CSTACK' is outside the stack range

[复制链接]
 楼主| zwll 发表于 2021-7-7 21:37 | 显示全部楼层
RE: IAR编译 The stack pointer for stack 'CSTACK' is outside the stack range
 楼主| zwll 发表于 2021-7-7 21:39 | 显示全部楼层
我的问题应该和BOOT0,B00T1的设置没关系,现在我发现问题是这个
The stack pointer for stack 'CSTACK' (currently 0x20000E20) is outside the stack range (0x20001C18 to 0x20002018)

一步一步跟踪调试,发现问题就出在任务切换的时候,在空闲任务void  OS_IdleTask (void *p_arg)   ,在这个函数里死循环
 楼主| zwll 发表于 2021-7-7 21:41 | 显示全部楼层
The stack pointer for stack 'CSTACK' (currently 0x20000E20) is outside the stack range (0x20001C18 to 0x20002018)
没人知道这是为什么?
heweibig 发表于 2021-7-7 21:43 | 显示全部楼层
应用程序启动时要有一个堆栈,不管是裸机,还是基于uCOS,,那就是CSTACK堆栈uCOS-III运行起来后,每个任务有自己的堆栈
zhenykun 发表于 2021-7-7 21:45 | 显示全部楼层
所以,当任务运行的时候,IAR编译器会识别到堆栈指针不在CSTACK之内
heweibig 发表于 2021-7-7 21:47 | 显示全部楼层
嗯,所以会报The stack pointer for stack 'CSTACK' (currently 0x20007A1C) is outside the stack range (0x20008B88 to 0x20009B88) 这个不是问题,是正常的
stly 发表于 2021-7-7 21:49 | 显示全部楼层
当然,uCOS-III官方移植中,中断堆栈也是独立的,专门用于处理中断
dingy 发表于 2021-7-7 21:51 | 显示全部楼层
这个好处就是:每个任务堆栈不必考虑中断嵌套层数,从而不用为中断嵌套增加堆栈大小。
dengdc 发表于 2021-7-7 21:54 | 显示全部楼层
所以执行中断程序时,也会报The stack pointer for stack 'CSTACK' (currently 0x20007A1C) is outside the stack range (0x20008B88 to 0x20009B88) CSTACK只是在系统启动时使用,之后就没用了
huwr 发表于 2021-7-7 21:55 | 显示全部楼层
所以可以配置的小一点,一面造成太大的浪费
 楼主| zwll 发表于 2021-7-7 21:56 | 显示全部楼层
先说下程序现象,用IAR编译的程序,第一次把程序下进STM32里后,不运行,但是复位后就能运行,或者掉电再上电也能运行。为什么把程序第一次下进STM32不运行?
 楼主| zwll 发表于 2021-7-7 21:57 | 显示全部楼层
一步一步跟踪调试,发现问题就出在任务切换的时候,在空闲任务void  OS_IdleTask (void *p_arg)   ,移植在这个函数里死循环
wyjie 发表于 2021-7-7 21:58 | 显示全部楼层
我刚刚也遇到了同样的问题,现在解决了,楼主试试project/options/runtime checking/debugger/download里面的use flash loader打勾试试
午夜粪车 发表于 2021-7-7 21:59 | 显示全部楼层
我现在也遇到了这种问题,下载下来直接运行没事,就是在进行仿真调试的时候会出现栈溢出。楼主解决了吗?麻烦给我说一下吧
xxmmi 发表于 2021-7-7 22:00 | 显示全部楼层
xxmmi 发表于 2021-7-7 22:00 | 显示全部楼层
遇到同样问题+1;
  
不过我是所有栈都说溢出,恳请高手指导
renyaq 发表于 2021-7-7 22:01 | 显示全部楼层
我换了一个烧录器就可以了   估计是接线错误  还没查清楚
ousj 发表于 2021-7-7 22:02 | 显示全部楼层
程序下进去就需要复位动作的啊
xxrs 发表于 2021-7-7 22:02 | 显示全部楼层
OS有自己的栈管理,那个信息可以无视。
 楼主| zwll 发表于 2021-7-7 22:04 | 显示全部楼层

明白了,多谢大家讨论这么多哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部