c语言总结之存储类\作用域\生命周期\链接属性(const)--1

来源:互联网 发布:工业机器人您样编程 编辑:程序博客网 时间:2024/06/04 17:41

--基于c语言高级专题第七课内容:

C语言从四个不同角度看的运行规则,

1.存储类

2.作用域

3.生命周期

4.链接属性


 这节先来说说第一条-- 存储类

编译器根据自己的步骤(会细总结)把不同数据类型的数据按照不同运行平台的组织方式生成对应的镜像,这个镜像常见的组成部分主要分为几个部分,

代码段;

数据段:.data   .bss

堆;

栈;

再来看看常见单片机类平台的内存安排情况。

单片机内存分配一般包括两个部分ROM 和RAM,ROM也就是常说的flash,flash一般用来存储代码,我们用仿真器下载到的地方就是这个区域。另外,

有些单片机内部集成了EEPROM数据区,也会在这个flash分出一部分来用。RAM就是一般的运行内存,主要分为这几个部分,栈和变量区,栈作用基本一样,

存储函数局部变量;变量区会存储全局变量,全局数据,静态局部变量(static)等数据。单片机内部RAM的大小一般比较小,因此有时候程序中有大量数据

需要应用时,会选择加const的方式,这样编译器会将他定义在代码段,从而减轻ram的运行负担。


大型arm平台的内存管理:一般需要外扩RAM,如DRAM和SRAM,一般DRAM比较多,省钱。内部会有小容量的SRAM(速度相对快),用于启动代码和启动方式等

作用。同时,对于大型平台的嵌入式设备,光有运行内存还不够,一般都会加装硬盘设备,常用作硬盘设备的存储器有,nandflash inand sd卡等。而我们开发者比

较关心的一点就是程序从哪里下载,很大一部分选择从硬盘设备烧写或者sd启动设备的方式来开发,当然也有直接借助pc端的软件工具直接烧写到内存的,如三星的

DNW工具。





0 0
原创粉丝点击