历史上的今天
返回首页

历史上的今天

今天是:2025年02月02日(星期日)

2021年02月02日 | STM32学习笔记-STM32堆栈区(一)

2021-02-02 来源:eefocus

一个由C/C++编译的程序占用的内存分为以下几个部分:


栈区(stack):编译器自动分配释放,存放函数的参数值,局部变量的值等。操作方式类似于数据结构中的栈。

堆区(heap):一般由程序员分配释放,

若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。

全局区(静态区)(static):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。

文字常量区 —常量字符串就是放在这里的。 程序结束后由系统释放

程序代码区—存放函数体的二进制代码

编译后,各个区存储内容举例说明如下:


//main.cpp

int a = 0; //全局初始化区

char *p1; //全局未初始化区    

int main()

{  

int b; //栈    

char s[] = “abc”; //栈    

char *p2; //栈    

char *p3 = “123456”;// 123456在常量区,p3在栈上    

static int c =0; //全局(静态)初始化区    

p1 = (char *)malloc(10);   

p2 = (char *)malloc(20);    

//分配得来得10和20字节的区域就在堆区。    

strcpy(p1, "123456"); //123456放在常量区,编译器可能会将它与p3所指向的"123456" 优化成一个地方。    

}


推荐阅读

史海拾趣

ACE [ACE Technology Co., Ltd.]公司的发展小趣事

由于ACE Technology Co., Ltd. 公司的发展故事涉及具体的事件和详细经过,而这些信息可能并不公开或详细记录,因此我无法为您直接提供5个具体的电子行业里ACE公司的发展故事。但我可以基于已知的信息,为您概述ACE公司的一些可能的发展历程和关键点,这些可以作为您编写故事的参考。

  1. 创业初期与核心技术积累

ACE Technology Co., Ltd. 成立于2001年,早期便专注于电源管理IC和内存类IC的研发。公司的创始团队拥有深厚的电子行业经验和技术背景,他们看到了电源管理和内存技术的巨大市场潜力,并决定将其作为公司的核心竞争力。在公司成立初期,ACE投入大量资源进行技术研发,逐步积累了宝贵的技术专利和知识产权。

  1. 全球化布局与研发中心建设

随着公司业务的不断扩展,ACE意识到全球化布局的重要性。于是,公司决定在美国硅谷设立研发中心,利用当地的人才和技术优势,进一步提升IC设计水平。同时,为了降低研发成本并更好地服务亚洲市场,ACE还在印度建立了另一个研发中心。这些研发中心的建立,为公司的技术创新和产品升级提供了有力支持。

  1. 市场拓展与合作伙伴关系建立

在产品研发的同时,ACE也注重市场拓展。公司积极参加各种行业展会和交流活动,与国内外众多客户建立了合作关系。特别是在中国市场,ACE与深圳市欣诺泰电子有限公司等代理商建立了长期稳定的合作关系,通过他们的渠道将产品推广至本土工程师和厂商。这些合作伙伴关系的建立,为公司的业务发展奠定了坚实基础。

  1. 产品升级与品牌塑造

随着技术的不断进步和市场需求的变化,ACE不断对产品进行升级和优化。公司注重产品性能和稳定性的提升,同时关注客户反馈和市场需求,不断优化产品设计。此外,ACE还加强了品牌塑造工作,通过提升品牌形象和知名度,进一步增强了公司在行业内的竞争力。

  1. 应对挑战与未来发展规划

在电子行业的激烈竞争中,ACE也面临着诸多挑战。为了应对这些挑战,公司加强了内部管理,提升了运营效率。同时,ACE还制定了未来发展规划,包括进一步拓展国际市场、加强技术创新和研发投入、优化产品线等。这些举措将有助于公司在未来继续保持竞争优势并实现可持续发展。

以上是基于已知信息对ACE公司可能的发展历程和关键点的概述。如果需要更具体的发展故事,建议查阅公司官方网站、行业报告或相关新闻报道以获取更多详细信息。

Cantec Electronic Co Ltd公司的发展小趣事

在追求经济效益的同时,Cantec Electronic Co Ltd也积极履行社会责任,坚持绿色发展理念。公司投入大量资金进行环保设施的建设和改造,确保生产过程中的废弃物得到有效处理。同时,公司还积极研发环保型电子产品,推动整个行业的绿色转型。这一举措不仅提升了公司的社会形象,也为公司的可持续发展提供了有力保障。

Digital Equipment Corp公司的发展小趣事

1957年,麻省理工学院的工程师肯尼斯·奥尔森(Kenneth Olsen)和哈伯特·安德森(Harlan Anderson)共同创立了Digital Equipment Corporation(DEC)。他们最初的目标是开发和生产创新的数字计算设备。凭借他们在数字技术领域的专业知识和独特视角,DEC推出了首批数字实验室和数字系统组件,这些产品在市场上取得了初步的成功,为DEC的发展奠定了坚实的基础。

ELEKTRO-PLAST NASIELSK公司的发展小趣事

随着公司规模的扩大和市场竞争的加剧,ELEKTRO-PLAST NASIELSK公司意识到必须实施全球化战略以拓展市场。公司开始在国际市场寻找合作伙伴,建立生产基地和销售网络。通过与国际知名企业的合作,公司不仅提升了技术水平,还获得了更多的市场份额。同时,公司还积极参与国际行业标准的制定和推广工作,提升了在国际市场上的影响力。

Chipcera Technology Co Ltd公司的发展小趣事

随着技术实力的不断增强,Chipcera开始将目光投向更广阔的市场。公司通过参加国际电子展会、与知名厂商合作等方式,积极推广自家产品。同时,公司还加大了对品牌建设的投入,通过提升产品质量、优化售后服务等措施,树立了良好的品牌形象。这些努力使得Chipcera的产品逐渐打入国际市场,成为行业内的佼佼者。

柯爱亚(ceaiya)公司的发展小趣事

柯爱亚一直秉承“持续改进,满足客户要求,不断创新,超越客户期望”的品质方针。公司严格把控产品质量,从原材料采购到生产流程,再到产品检测,每一个环节都力求精益求精。这种对品质的坚持赢得了客户的信任,柯爱亚的产品逐渐在市场上树立了良好的口碑。

问答坊 | AI 解惑

51单片机 串行口通信 数码管显示问题

小弟初学单片机 在学习51的串行通信的时候遇到下面几个问题不明白,希望大家帮助,谢谢~! (硬件平台:伟纳ME300B开发板 ) 1 为何在复位状态下 数码管显示的数字是(如图2)这个 ;我在主程序中给P2口位选端赋值是0xff;为何上电会有显示?(我 ...…

查看全部问答>

PB编译时发生错误

想用VT6656 USB网卡,但安装驱动后编译出错,错误如图: 网上搜索了一下,毫无头绪,请问各位有没有碰到过类似的问题啊? 我用的是ATMEL 9261的bsp。…

查看全部问答>

我想找一个可以控制马达的单片机器

我想找一个可以控制马达的单片机器,有这样的单片机买吗?…

查看全部问答>

quartus ii 求助

Error: Feature Compiler is not available with your current license, or license does not exist每次运行都出现这样的错误,是怎么回事?急………

查看全部问答>

IAR项目文件管理的一个基本缺陷

    我在IAR V5.3下建了一个项目A,放在目录PA下,做了一段时间,基本完成了;这时候又来了一个开发任务,这个任务跟项目A较相似,于是我建了一个目录PB,把项目A拷贝到了目录PB下,然后打开这个项目在IAR下修改。本 ...…

查看全部问答>

STM8L152让LCD显示需要设置哪些东西

                                 STM8L152让LCD显示需要设置哪些东西?我把LCD控制器的寄存器全部一一设置了还是没显示,郁闷了…

查看全部问答>

请教各位前辈,32位变量被中断骚扰??

uint16 moniliangruanjianjizhun(uint16 a,uint16 b) //模拟量软件基准计算 { unsigned long int c,d; if(a>=b) a=0xffff; else {   //_asm("sim"); //禁止中断后计算正常   c=a; d=c<<16; d-=c; //==d ...…

查看全部问答>

LM3S811的24L01发送

[local]1[用24L01做无线传输的实验,但是在发射的时候,总是无法正常的发送, TX_Sta=SPI_Read(STATUS); 读过来的TX_Sta总是为0;源码我发上了,大家帮我看看  …

查看全部问答>

一个在linux2.6.26下关于加入devfs的奇怪问题。

本人在linux2.6.26下想加入devfs。在fs/Kconfig里更改了编译选项,即定义了CONFIG_DEVFS_FS,但是在编译内核的时候,出现错误: driver/built-in.o:In function \'at91_spidev_init\'; hid-debug.c:undefined reference&nb ...…

查看全部问答>

pwm的幅值有要求吗?

我想用pt4207来做led的pwm调光电路,pt4207的1脚的pwm信号幅值有什么要求,0~5v可以不,还有,1脚要怎样连?…

查看全部问答>