谁能帮忙解释下关于内存分配的问题

2019-07-15 09:29发布

谁能帮忙解释下关于内存分配的问题
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
Mr_RMS
1楼-- · 2019-07-15 23:42
人中狼 发表于 2017-10-19 22:51
最好能把问题说得具体一些

把程序烧到片子里,定义的一些变量。函数等是如何分配到内存的地址里的?
Mr_RMS
2楼-- · 2019-07-16 03:02
 精彩回答 2  元偷偷看……
人中狼
3楼-- · 2019-07-16 07:21
c语言的内存分配有自己的规则,51的话有一定的固定规则,这个要查c51的编程书籍
HARRY007
4楼-- · 2019-07-16 10:48
C语言深度剖析 第二版  楼主可以仔细看一下,总结了很多国外优秀的书的精华,很薄的一本书
愚塘霸主
5楼-- · 2019-07-16 16:09
一般mcu都是片内自带的flash,所以你要查看芯片知道手册,搞清楚你的memory分配。假如你的单片机内存是2kb,起始地址是0x1000-0x17FF。一般ide环境会根据你mcu内存分配,要设置你的栈,如果你的栈大小是256字节,如果你的栈向下生长,那你的栈起始地址是0x1800,栈顶指针。如果向上,栈顶指针0x1000。如果你还定义了堆大小,编译器会根据情况在你的ram范围里分配堆,其他未占用的ram就是你能用到的。一般情况下,你的静态变量全局量都在你未占用的ram。在函数中你声明的局部量在栈里。也有可能使用的cpu通用寄存器。而你的常量就会分配在flash里。你的函数这些代码也在flash里。
愚塘霸主
6楼-- · 2019-07-16 21:29
一般mcu都是片内自带的flash,所以你要查看芯片知道手册,搞清楚你的memory分配。假如你的单片机内存是2kb,起始地址是0x1000-0x17FF。一般ide环境会根据你mcu内存分配,要设置你的栈,如果你的栈大小是256字节,如果你的栈向下生长,那你的栈起始地址是0x1800,栈顶指针。如果向上,栈顶指针0x1000。如果你还定义了堆大小,编译器会根据情况在你的ram范围里分配堆,其他未占用的ram就是你能用到的。一般情况下,你的静态变量全局量都在你未占用的ram。在函数中你声明的局部量在栈里。也有可能使用的cpu通用寄存器。而你的常量就会分配在flash里。你的函数这些代码也在flash里。

一周热门 更多>