完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1、从AC5到AC6的转型之路——“两面包夹芝士”的堆栈模型 栈(Stack)“是我们用来分配局部变量、实现函数调用和在异常响应时保存被打断代码上下文的地方——具体细节不重要,在本文的讨论中,我们只需要记住以下信息: Cortex-M系统栈的生长方向是自上而下的,也就是随着更多内容被压入(PUSH)栈中,栈顶指针的地址值是越来越小的——也就是从地址值较大的位置向地址值较小的位置移动。 Cortex-M的栈顶指针指向的是“栈顶部的空位”。 从最大兼容性角度考虑,Cortex-M架构下栈存储空间必须对齐到8字节。 “堆(Heap)”是我们使用 malloc 申请动态存储空间时所必须用到的一种数据结构——通常由C语言的系统库提供。 堆本身只是一个内存管理的算法,它所要管理的RAM空间需要用户通过某种手段将指定大小的RAM空间交到Heap算法手里。 与栈不同,堆的生长方向其实完全由具体的管理算法决定,而堆的算法数量虽然不能说是灿若星辰,至少一双手肯定数不过来——但一般来说我们可以大体认为堆的生长方向是“自下而上的”——也就是从地址值较小的位置延伸到地址值较大的位置。 堆的对齐要求一般是4字节起步,8字节更好,情况不明的直接就32个字节吧。 |
|
相关推荐
|
|
飞凌嵌入式ElfBoard ELF 1板卡-CAN编程示例之开发板测试
688 浏览 0 评论
该问题是用APP给芯海科技的CST92F25芯片发指令是出现的
2316 浏览 1 评论
797 浏览 0 评论
1562 浏览 1 评论
2330 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 07:53 , Processed in 0.624796 second(s), Total 65, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号