打印
[STM32F1]

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

[复制链接]
3317|43
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zwll|  楼主 | 2021-7-7 20:50 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
用IAR编译的程序,第一次把程序下进STM32里后,不运行,但是复位后就能运行,或者掉电再上电也能运行。为什么把程序第一次下进STM32不运行?

BOOT1=0  BOOT0=0  从用户闪存启动,正常的工作模式。
   

    IAR中在的linker 中作如下设置
stm32f10x_flash.icf 对应生成的代码放在内部 flash 中运行

为什么会是这个样子?

使用特权

评论回复
沙发
ousj| | 2021-7-7 20:53 | 只看该作者
应该是仿真器问题吧

使用特权

评论回复
板凳
tian111| | 2021-7-7 20:55 | 只看该作者
这里打勾了没有?

使用特权

评论回复
地板
tian111| | 2021-7-7 20:57 | 只看该作者

使用特权

评论回复
5
tian111| | 2021-7-7 20:59 | 只看该作者
对,打了没

使用特权

评论回复
6
zwll|  楼主 | 2021-7-7 21:00 | 只看该作者
Run to main  打上钩了。就是第一下进程序后,不能运行,要复位或者断电再上电就能运行了

使用特权

评论回复
7
supernan| | 2021-7-7 21:03 | 只看该作者
另外,和我加入UCOSiii没关系吧

使用特权

评论回复
8
zwll|  楼主 | 2021-7-7 21:04 | 只看该作者
我觉得不像是仿真器的问题,不知道那儿没设置对,哎,怎么个整呀!

使用特权

评论回复
9
zhenykun| | 2021-7-7 21:06 | 只看该作者
应该是哪里设置问题;

使用特权

评论回复
10
dengdc| | 2021-7-7 21:08 | 只看该作者
用KEIL也一样的;

使用特权

评论回复
11
dingy| | 2021-7-7 21:10 | 只看该作者
软件的仿真器设置部分;

使用特权

评论回复
12
zwll|  楼主 | 2021-7-7 21:13 | 只看该作者
我先说下现象,把程序第一次下进CPU没运行,复位后或重新上电正常运行,太奇怪了!

使用特权

评论回复
13
wuhany| | 2021-7-7 21:15 | 只看该作者

还有什么现象?能再详细描述下吗?

使用特权

评论回复
14
zwll|  楼主 | 2021-7-7 21:17 | 只看该作者
在IAR的debugger方式下,出现一个报警
The stack pointer for stack 'CSTACK' (currently 0x20000E20) is outside the stack range (0x20001C18 to 0x20002018)
查了些资料,说是堆栈溢出,我就开了一个任务,点亮LED灯,用的是CPU的PC3、PC4、PC5引脚。

使用特权

评论回复
15
zwll|  楼主 | 2021-7-7 21:24 | 只看该作者
一步一步跟踪调试,发现问题就出在任务切换的时候,在空闲任务void  OS_IdleTask (void *p_arg)   ,在这个函数里死循环。

使用特权

评论回复
16
zwll|  楼主 | 2021-7-7 21:26 | 只看该作者
为什么复位后就能正常运行了,哎 。。。

使用特权

评论回复
17
chenjunt| | 2021-7-7 21:28 | 只看该作者
设置选项中有一个 Reset and Run,打勾选中后保持即可。

使用特权

评论回复
18
zwll|  楼主 | 2021-7-7 21:30 | 只看该作者
我用的IAR编译的,里面没有Reset and Run这项

使用特权

评论回复
19
ousj| | 2021-7-7 21:32 | 只看该作者
KEIL下载设置中有但不清楚IAR

使用特权

评论回复
20
ousj| | 2021-7-7 21:35 | 只看该作者
还有就是BOOT0,B00T1接高度电平的问题, 刚开始接触STM32时遇到过这个问题,但年代久远忘记了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

885

主题

11314

帖子

5

粉丝