完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
第8课第2节说NOR启动,NOR Flash基地址为0,片内RAM地址为0x40000000,这里RAM地址为什么是0x40000000?
第8课第7节说NOR启动,设置栈地址为0x40000000+4096,在4KRAM的顶部,为什么是4096不是0? |
|
相关推荐
3个回答
|
|
栈的设置可以参考http://blog.csdn.net/fengyuwuzu0519/article/details/68936929
CPU的内存RAM空间存放规律一般是分段的,从地址向高地址,依次为:程序段(.text),BSS段,然后上面还可能会有堆空间,然后最上面才是堆栈段,这样安排堆栈,是因为堆栈的特点决定的,所以堆栈的指针SP初始化一般在堆栈段的高地址,也就是内存的高地址,然后让堆栈指针向下增长(其实就是递减)。这样做的好处就是堆栈空间远离了其他段,不会跟其他段重叠,造成修改其他段数据,而引起不可预料的后果,还有设置堆栈大小的原则,要保证栈不会下溢出到数据空间或者程序空间。所谓堆栈溢出,是指堆栈指针SP向下增长到其他段空间,如果栈指针向下增长到其他段空间,称为堆栈溢出。堆栈溢出会修改其他空间的值,严重情况下可造成死机. |
|
|
|
|
|
|
|
这个你可以看2440的芯片手册,硬件决定的,手册上有说明,在存储管理器那一章。
|
|
|
|
只有小组成员才能发言,加入小组>>
197个成员聚集在这个小组
加入小组为什么点亮LED的例子放在NORFlash上跑会出现奇怪的现象?
2137 浏览 6 评论
1945 浏览 5 评论
韦东山老师推出的《玩转ARM裸机实战》课程将帮你以上问题一扫而光!
4499 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-1 03:44 , Processed in 0.676436 second(s), Total 81, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号