完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近遇到两个问题,其中一个如下:问题1
我的芯片RAM为1K,但在默认的情况下可以用的只有588 Byte ,百度了一下解答是编译器默认将高512字节分配给堆栈,因此变量超出了了588就会报变量溢出。后我决定更改编译器的参数,但到变量参数更改页面发现RAM项却写着 714 ,然后我就讲714改成914,问题就解决了。那么问题来了,编译器分配的高512字节是用来干嘛的?主要是用来存放什么东西?目前由714->914的改变后,这个原来的512字节目前的大小是多少呢?芯片的RAM空间明明是1K,为什么编译器里面的参数是714? |
|
相关推荐
1个回答
|
|
问题来了,堆栈是干什么用的?
解释有很多,简单回答就是:调用程序就要出入栈。中断更要出入栈。栈里面既放数据又放地址。。。 最后,那个堆栈深度也是可以调的。。编译器里有选项设置。默认是0x100=512。调小点够用也成。 714也可能是历史遗留问题。。大家一般都是把工程文件带设置拷来拷去的。 甚至,你可以不用堆栈,这样的话,你就只能运行一个main,且不能有中断。子函数。 第二,STM32.。。。和STM8没有可比性。。。 数据位宽就是4倍。。编译器优化程度也不一样。 反正stm32比较大是肯定的。。 正确的做法,是把你的代码写好。软件仿真调试好。然后,看出来的code有多少。。。 当然,有经验的话,你就能估计出来了。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1614 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1541 浏览 1 评论
970 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
682 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1592 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
531浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
504浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 00:37 , Processed in 0.846694 second(s), Total 80, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号