OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4548|回复: 7

无法进行调试,但是能够识别

[复制链接]

3

主题

15

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2016-7-9
在线时间
12 小时
发表于 2016-9-1 11:22:02 | 显示全部楼层 |阅读模式
1金钱
我用的芯片是STM32F429
STLINK进行调试
调试的时候不停的报这个警告。
Thu Sep 01, 2016 11:11:09: The stack pointer for stack 'CSTACK' (currently 0x1FFEE8A8) is outside the stack range (0x20000128 to 0x20002128)
Thu Sep 01, 2016 11:11:10: The stack pointer for stack 'CSTACK' (currently 0x1FFEE8A0) is outside the stack range (0x20000128 to 0x20002128)
Thu Sep 01, 2016 11:11:11: The stack pointer for stack 'CSTACK' (currently 0x1FFEE890) is outside the stack range (0x20000128 to 0x20002128)
Thu Sep 01, 2016 11:11:13: The stack pointer for stack 'CSTACK' (currently 0x1FFEE890) is outside the stack range (0x20000128 to 0x20002128)
Thu Sep 01, 2016 11:11:17: The stack pointer for stack 'CSTACK' (currently 0x1FFEE890) is outside the stack range (0x20000128 to 0x20002128)
Thu Sep 01, 2016 11:11:17: The stack pointer for stack 'CSTACK' (currently 0x1FFEE890) is outside the stack range (0x20000128 to 0x20002128)
Thu Sep 01, 2016 11:11:18: The stack pointer for stack 'CSTACK' (currently 0x1FFEE890) is outside the stack range (0x20000128 to 0x20002128)
Thu Sep 01, 2016 11:11:53: The stack pointer for stack 'CSTACK' (currently 0x1FFEE890) is outside the stack range (0x20000128 to 0x20002128)
Thu Sep 01, 2016 11:11:54: The stack pointer for stack 'CSTACK' (currently 0x1FFEE890) is outside the stack range (0x20000128 to 0x20002128)
Thu Sep 01, 2016 11:11:55: The stack pointer for stack 'CSTACK' (currently 0x1FFEE890) is outside the stack range (0x20000128 to 0x20002128)
Thu Sep 01, 2016 11:11:55: The stack pointer for stack 'CSTACK' (currently 0x1FFEE890) is outside the stack range (0x20000128 to 0x20002128)
Thu Sep 01, 2016 11:11:56: The stack pointer for stack 'CSTACK' (currently 0x1FFEE890) is outside the stack range (0x20000128 to 0x20002128)


我的程序首先运行的是这个函数。当运行到标红的那句时,调试箭头消失,无法继续进行调试。于是乎,我就退出了调试。当我再次点击调试时,系统提示:无法连接到设备了。
于是,我用STM32 ST-LINK Utility选择 select "Connect Under Reset" mode from Target->Settings menu 。进行连接,然后擦除芯片,才可以进行下一次调试。


GPIO_InitTypeDef GPIO_InitStructure;

        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);

        //***************************************************************************
        /* PA输出 */
        GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;       
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;       
        GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;      
        GPIO_InitStructure.GPIO_PuPd= GPIO_PuPd_NOPULL;
        GPIO_Init(GPIOA, &GPIO_InitStructure);



我怀疑应该是我程序的问题:
我的 stm32f4xx_adc.c里面有这个


/* ADC CCR register Mask */
#define CR_CLEAR_MASK             ((uint32_t)0xFFFC30E0)  

我的stm32f4xx_dac.c里面也有这个
/* CR register Mask */
#define CR_CLEAR_MASK              ((uint32_t)0x00000FFE)


是不是这个东西引起的问题?是不是我的这两个文件有问题?





正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11546
金钱
11546
注册时间
2014-4-1
在线时间
1315 小时
发表于 2016-9-1 11:34:56 | 显示全部楼层

系统信息已经说了,
堆栈指针跑飞了。


回复

使用道具 举报

3

主题

15

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2016-7-9
在线时间
12 小时
 楼主| 发表于 2016-9-1 12:00:57 | 显示全部楼层
本帖最后由 云和送 于 2016-9-1 12:25 编辑
xuande 发表于 2016-9-1 11:34
系统信息已经说了,
堆栈指针跑飞了。

亲,怎么改啊? QQ图片20160901122404.png
QQ图片20160901122409.png
QQ图片20160901122413.png
file:///C:\Users\tongguowei\Documents\Tencent Files\363328538\Image\C2C\0RV$J7)`B1TDXUPM)X`9P8J.png



回复

使用道具 举报

3

主题

15

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2016-7-9
在线时间
12 小时
 楼主| 发表于 2016-9-2 16:50:58 | 显示全部楼层
都这么久了,没人遇到过这个问题么?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-9-3 20:37:07 | 显示全部楼层
应该不是你说的地方引起的问题。 看看你是否有很大的全局数组,最后还是不行的话,建议直接写个简单的代码测试下吧。
回复

使用道具 举报

3

主题

15

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2016-7-9
在线时间
12 小时
 楼主| 发表于 2016-9-4 09:48:29 | 显示全部楼层
正点原子 发表于 2016-9-3 20:37
应该不是你说的地方引起的问题。 看看你是否有很大的全局数组,最后还是不行的话,建议直接写个简单的代码 ...

正解,main函数里定义的数组太大了。改小点就好了。
回复

使用道具 举报

3

主题

15

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2016-7-9
在线时间
12 小时
 楼主| 发表于 2016-9-4 09:49:34 | 显示全部楼层
正点原子 发表于 2016-9-3 20:37
应该不是你说的地方引起的问题。 看看你是否有很大的全局数组,最后还是不行的话,建议直接写个简单的代码 ...

管理员怎么结贴?
回复

使用道具 举报

17

主题

142

帖子

0

精华

高级会员

Rank: 4

积分
897
金钱
897
注册时间
2016-2-16
在线时间
162 小时
发表于 2016-9-4 10:07:55 | 显示全部楼层
我也遇到这问题,提示堆栈指针由问题,程序中定义了一个较大的数组(3840个u8的数)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-11 05:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表