OpenEdv-开源电子网

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

KEIL为什么不报错,高手过来指点一二

[复制链接]

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2020-10-31 10:14:18 | 显示全部楼层 |阅读模式
栈空间大小,对程序非常重要.
汇编启动文件的第一行 代码,定义的就是栈空间大小.
我出于好奇,直接修改了 这个定义为0
居然,编译正常通过了.
KEIL为什么不检查栈空间益出呢?没有想明白,有没有高手指点指点呀?
Stack_Size      EQU     0x00000000
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2020-10-31 11:10:02 | 显示全部楼层
编译器只看你语法,不会看你逻辑。。。要是能看逻辑,代码就没bug了
回复 支持 反对

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2020-10-31 11:17:40 | 显示全部楼层
就检查逻辑是不是意味着程序员也要失业了
一分耕耘一分收获。
回复 支持 反对

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
 楼主| 发表于 2020-10-31 11:39:01 | 显示全部楼层
本帖最后由 操作系统 于 2020-10-31 11:54 编辑

个人想法,
栈空间溢出 应该是编译器 应该做的事情..
这样子 就不会等到死机了.才知道是溢出了.完全不管的话,,复位时,栈顶初始化的位置 是不是 应该设置在 内存的尾部是最安全的.
例如: 8K RAM..  设置在 0X20002000-4的位置.

实测,,栈顶 设置为 内存的屁股  完全可以正常运行..啥事都没有.
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 07:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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