你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

求大神帮我解决调试问题

[复制链接]
zi约 提问时间:2017-8-5 16:19 /
阅读主题, 点击返回1楼
收藏 评论41 发布时间:2017-8-5 16:19
41个回答
zi约 回答时间:2017-8-6 17:14:32
你用的什么芯片???我的是STM32F031的,我的RAM地址跟你的不一样。。。
zi约 回答时间:2017-8-6 17:18:34
zhao.zhao 发表于 2017-8-6 17:11
我刚试过,完全没问题,不过我试的是个小程序,全局变量很少,堆栈也不大,在写之前,0x20001000-0x20001ff ...

怎么判断堆栈小了,我程序可能有点大,不过我前面加大堆栈调试过还是一样。。。
zhao.zhao 回答时间:2017-8-6 17:18:46
p.jpg
zhao.zhao 回答时间:2017-8-6 17:26:16
你可能理解错了,你的全局变量+静态变量+堆栈+系统占用(大概有300多个字节)要小于0x1000个字节,要不可能会被中途改了。所以最好不要直接这样操作内存,你可以开个数组,让系统帮你来分配内存,这样相对要安全很多
zhao.zhao 回答时间:2017-8-6 17:27:33
我的是STM32F407ZET6
zi约 回答时间:2017-8-7 08:10:13
zhao.zhao 发表于 2017-8-6 17:27
我的是STM32F407ZET6

最后这边是把RAM——END调到0x20000900以下就不进错误,往上就进错误,可这边的RAM是0x20000000到0x20000fff..
zi约 回答时间:2017-8-7 08:11:55

最后这边是把RAM——END调到0x20000900以下就不进错误,往上就进错误,可这边的RAM是0x20000000到0x20000fff
cuyebiren 回答时间:2017-8-7 08:54:07
zi约 发表于 2017-8-7 08:11
最后这边是把RAM——END调到0x20000900以下就不进错误,往上就进错误,可这边的RAM是0x20000000到0x20000 ...

看你意思应该是0X20000000-0X20000900被分配到了堆栈区,而直接操作这个区是非法的。。。你可以试试把起始地址改为堆栈结束地址(启动文件有堆栈大小)之前和之后看结果

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

zi约 回答时间:2017-8-7 10:15:00
cuyebiren 发表于 2017-8-7 08:54
看你意思应该是0X20000000-0X20000900被分配到了堆栈区,而直接操作这个区是非法的。。。你可以试试把起 ...

现在是从0x20000000到0x20000900不进异常中断,而0x20000000到0x20000ffc就有问题,我理解你的意思是把起始地址0x20000000改为另一个地址,是这个意思吗???
zhao.zhao 回答时间:2017-8-7 18:38:49
0x2000_0000 开始是不能修改的,这里开始的是全局变量、系统变量、堆栈区。原来的0x2000_1000 开始倒是可能的,因为这个区域已经跨过了前面讲的3个区域了。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版