嵌入式学习笔记_知识点

嵌入式学习笔记_知识点

DRAM和SRAM的区别

两者都是随机存取器的一种,上电数据保持,掉电数据消失,不同的是,DRAM需要周期性的更新,SRAM不需要。

CPU数据总线、地址总线、位数与内存大小的关系

cpu的位数是指数据总线的位数,一般来说cpu的数据总线与地址总线相同,cpu的寻址范围为2exp(地址总线数),如32位cpu代表有32根数据总线,32根地址总线,则寻址范围为2exp32=4G,故32位cpu对应内存最大为4G,64位cpu为16G。

位和字节

内存单元的大小单位:位(1bit),字节(8bit)。特别注意,字、半字、双字这些单位具体有多少位是依赖于平台的定义,没有通用的定义。

内存编址

内存单元包含地址和空间,一个内存地址对应的空间是固定的,为一个字节(8bit),这也是字节的起源。

内存对齐

分配硬件上连续的内存为对齐访问,否则为非对齐访问,对齐访问效率更高。

c语言中数据类型、函数名的本质

数据类型代表占内存单元的数量和解析方式,函数名代表一段代码的内存首地址。

C语言中数据类型的强制转换

本质上是改变该变量的内存单元数量以及解析方式,内存单元中保存的bit信息不变。

c语言指针变量和普通变量

两者区别只在于普通变量保存数值,指针变量保存地址,如:

int *a; //假如编译器分配变量a的内存地址0x00000000

表示0x00000000开始的4字节中存储了1个地址,该地址往后的4个字节中存储着int类型的整数,第一个4字节表示内存地址的大小,第二个4字节表示int类型的大小。

c语言结构体内嵌指针实现面向对象

struct node
{
	int var;				//普通变量
	void (*pFunc)(void);	//函数指针
}

c语言堆内存与栈内存

栈内存:自动申请、自动释放;内存空间反复使用,需要初始化;栈内存有上限,容易溢出,适用于局部变量;

堆内存:手动申请、手动释放;不释放使用完毕的内存会造成内存泄露,程序崩溃;内存空间大,适用于存储大量数据。

posted @ 2020-05-31 20:12  樱花小猪  阅读(287)  评论(0编辑  收藏  举报