历史上的今天
返回首页

历史上的今天

今天是: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是很大的自由存储区。


     程序在编译期和函数分配内存都是在栈上进行,且程序运行中函数调用时参数的传递也是在栈上进行。


推荐阅读

史海拾趣

中电熊猫(CEC)公司的发展小趣事

2007年,中电熊猫母公司中国电子信息集团公司(CEC)对熊猫电子进行了重组,全面推进平板显示全产业链发展。2015年,中电熊猫投资291.5亿元建设的8.5代液晶面板生产线投产,成为全球首条应用金属氧化物IGZO技术的超高分辨率液晶面板生产线。这一举措标志着中电熊猫在液晶面板产业中占据了重要地位,为后续的发展奠定了坚实基础。

Anixter Inc公司的发展小趣事

在发展过程中,中电熊猫积极寻求与国际巨头的合作。2009年,中电熊猫与日本夏普公司签署协议,引进第六代液晶面板项目。这一合作不仅为中电熊猫带来了先进的技术和管理经验,也为其后续的高世代液晶面板线布局提供了有力支持。通过与夏普等国际巨头的合作,中电熊猫逐渐在液晶显示产业中崭露头角。

无锡友达公司的发展小趣事

无锡友达电子有限公司自2002年成立以来,就致力于半导体集成电路设计领域。在初创阶段,公司凭借对高性能模拟和数模混合集成电路的深刻理解,迅速推出了多款性能优异的功放、电源等系统方案。这些产品在电视机、音响设备等领域的广泛应用,为公司赢得了市场的初步认可。通过不断的技术创新,无锡友达逐渐在电子行业崭露头角。

G-Mag Usa公司的发展小趣事

随着全球对环境保护意识的增强,G-Mag在2010年决定实施绿色转型战略。公司投入大量资源研发环保型电子产品和制造工艺,如开发可降解材料用于产品包装、优化生产线以减少能源消耗和废弃物排放等。同时,G-Mag还积极推广循环经济理念,与上下游企业合作建立废旧电子产品回收体系。这些举措不仅提升了G-Mag的品牌形象,还为其赢得了更多消费者的青睐和政府的支持。在绿色转型的推动下,G-Mag实现了可持续发展与经济效益的双赢。

Foxboro I C T Inc公司的发展小趣事

进入21世纪后,G-Mag意识到单一产品线难以满足市场多元化需求,于是开始实施并购扩张战略。2005年,G-Mag成功收购了国内一家领先的电子元器件制造商,这次收购不仅增强了G-Mag在供应链上的控制力,还为其带来了丰富的产品线和技术储备。随后几年,G-Mag又陆续完成了对多家在传感器、无线通信等领域具有优势企业的并购,逐步构建起了一个覆盖电子产业链上下游的庞大帝国。通过并购,G-Mag不仅实现了业务的快速增长,还巩固了其在电子行业中的领先地位。

德崧电子(D-SWITCH)公司的发展小趣事

在电子开关行业,防水性能一直是重要的技术指标。德崧电子(D-SWITCH)公司在成立初期就意识到了这一点,并投入大量资源进行研发。经过数年的努力,公司成功研发出了具有TUV IP67/IP68防水等级认证的防水型开关。这一突破性的技术不仅解决了市场上防水开关性能不稳定的问题,还大大提高了产品的可靠性和使用寿命。凭借这一技术优势,德崧电子在市场上迅速崭露头角,赢得了客户的广泛认可。

问答坊 | AI 解惑

失业了,有招硬件工程师的请推荐下,多谢!

环境不好公司减人,失业了: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的库,可 ...…

查看全部问答>

C语言单片机 时钟程序

学校要求做一个24小时的时钟 格式为 XX:XX (小时:分钟) 程序已经完成 但是显示的时候应该熄灭的灯管确实微微亮着的 比如应该显示6的时候 却有些像8 老师说是学校的设备达不到要求 如果使用两个中断就可以解决 我不知道该如何弄 还请各位大大 ...…

查看全部问答>

linux驱动学习的困惑

刚开始接触嵌入式驱动的学习,有点迷惑,不知道怎么去下手,想问下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后,出现下面那种情况. 现在的问题是: ...…

查看全部问答>

linux交互界面开发minigui

工控机交互界面,相对简单,所以可优化考虑用minigui或不用第三方图形库。在linux虚拟机上能运行就行,移植到arm我们自己完成。 需求和用户界面、菜单等基本画好了,详见: http://www.qiyedz.com/LinuxGuiDev.doc 要求有开发经验,有阶段性 ...…

查看全部问答>

CortexM0_LPC1100_GPIO示例代码程序下载

CortexM0_LPC1100_I2C_CAT1025示例代码程序下载…

查看全部问答>

M1卡应用总结

        前不久发了<<最近设计的M1读卡器(LPC11U14)>>https://bbs.eeworld.com.cn/thread-298692-1-1.html,一直没有时间对卡片操作进行说明。通过一段时间的努力,对M1卡的操作有了一定的认识, ...…

查看全部问答>

对LM2S811的编程

前些天看了不少LM3S811的资料,也跑过几个程序,感觉对它的编程可以分以下几个层面: 1:汇编级操作,直接采用汇编编程。即直接对LM3S811的寄存器操作,需要熟悉芯片Thumb指令以及外设的功能、指令,其基本道理类似于51,Thumb就是增强型的51指令 ...…

查看全部问答>