历史上的今天
今天是:2024年12月26日(星期四)
2018年12月26日 | stm32启动文件中heap与stack
2018-12-26 来源:eefocus
1)栈区(stack):由编译器自动分配和释放,存放函数的参数值、局部变量的值等,其操作方式类似于数据结构中的栈。
(2)堆区(heap):一般由程序员分配和释放,若程序员不释放,程序结束时可能由操作系统回收。分配方式类似于数据结构中的链表。
(3)全局区(静态区)(static):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统自动释放。
(4)文字常量区:常量字符串就是存放在这里的。
(5)程序代码区:存放函数体的二进制代码。
例如:
int a=0; //全局初始化区
char *p1; //全局未初始化区
main()
{
int b; //栈
char s[]="abc"; //栈
char *p3= "1234567"; //在文字常量区
static int c =0 ; //静态初始化区
p1= (char *)malloc(10); //堆区
strcpy(p1,"123456"); //"123456"放在常量区
}
所以堆和栈的区别:
stack的空间由操作系统自动分配/释放,heap上的空间手动分配/释放。
stack的空间有限,heap是很大的自由存储区。
程序在编译期和函数分配内存都是在栈上进行,且程序运行中函数调用时参数的传递也是在栈上进行。
上一篇:STM32 中断实现的程序步骤
下一篇:STM32之系统中断处理
史海拾趣
|
环境不好公司减人,失业了:L ,现在的工作真不好找,有招硬件工程师的,主要是做电脑周边数码产品,请推荐下,先谢了。 个人技能:①熟练电脑办公软件及图形软件和文字处理②熟电子产品PCBLAYOUT(多层板布线)软件POWERPCB、PADS2005/2007、PROTEL9 ...… 查看全部问答> |
|
目录 简介--------------------------------------------------------3 电源设计中的问题以及测量要求----------------------3 示波器与电源测量--------------------------------------3 开关电源基础--------------------------------------- ...… 查看全部问答> |
|
windows ce 6.0 platform builder 导出sdk 大家好,我自己定制的Windows ce 6.0 的系统,在build 的时候加了一些 sysgen变量,比如set SYSGEN_LIVESEARCH=1 set SYSGEN_LIVESEARCH_SAMPLE=1 ,然后得到的nk.bin的却是对的,但是我想导出sdk,比如他在系统有一个a.h的头文件和 a.lib的库,可 ...… 查看全部问答> |
|
学校要求做一个24小时的时钟 格式为 XX:XX (小时:分钟) 程序已经完成 但是显示的时候应该熄灭的灯管确实微微亮着的 比如应该显示6的时候 却有些像8 老师说是学校的设备达不到要求 如果使用两个中断就可以解决 我不知道该如何弄 还请各位大大 ...… 查看全部问答> |
|
刚开始接触嵌入式驱动的学习,有点迷惑,不知道怎么去下手,想问下linux驱动程序的开发环境是什么啊?我写的嵌入式驱动程序在什么地方运行啊?是不是有2中方法? 一是用gcc和gdb来进行开发吗? 二是利用ARM提供的开发环境(用Code Warrior和AXD)来开发吗? ...… 查看全部问答> |
|
西门子MC39i GPRS模块(不是猫) 使用AT+CGDATA="PPP",1指令后乱码问题 我做的内容简介: 通过GPRS模块发送彩信.不是在PC上运行程序发送,是在arm9开发板上运行. 在windows下使用串口调试助手,直接对GPRS模块发送AT指令(没有使用开发板),模块内置PPP协议.当使用AT+CGDATA=\"PPP\",1后,出现下面那种情况. 现在的问题是: ...… 查看全部问答> |
|
工控机交互界面,相对简单,所以可优化考虑用minigui或不用第三方图形库。在linux虚拟机上能运行就行,移植到arm我们自己完成。 需求和用户界面、菜单等基本画好了,详见: http://www.qiyedz.com/LinuxGuiDev.doc 要求有开发经验,有阶段性 ...… 查看全部问答> |
|
前些天看了不少LM3S811的资料,也跑过几个程序,感觉对它的编程可以分以下几个层面: 1:汇编级操作,直接采用汇编编程。即直接对LM3S811的寄存器操作,需要熟悉芯片Thumb指令以及外设的功能、指令,其基本道理类似于51,Thumb就是增强型的51指令 ...… 查看全部问答> |




