1、程序和内存
程序:数据+算法
内存的本质就是存储代码和数据的。
数据和代码的存储方式不同,可分为冯诺依曼结构和哈佛结构。
单片机中将变量数据等存放在SRAM中,将程序存储到Flash中,常量通常存储在Flash中。
系统角度
语言角度
寄存器、缓存、内存的关系
寄存器离CPU最近c语言移位,接下来是缓存,最后是内存。
CPU只与寄存器中进行存取,寄存器从内存读取数据,但由于寄存器和内存读取速度相差太大,所以产生了缓存。
寄存器()是 CPU 中用于存储数据的单元,而寄存器是位于 CPU 内部的单元。
位,字节c语言移位,半字,字的概念和内存位宽
CPU32位系统一般指数据线位32位,数据线越多一次传输处理的数据越多,性能越好。
若要向内存写入一个数据,向控制总线传输写指令,地址总线上面传输内存地址,数据总线传输要写入内存的数据。
内存单位:GB、MB、KB、B、bit
CPU和内存之间的数据传送单位通常是一个字长,32位的系统一个字为4byte。
stm32是32bit处理器,所以它的字是32bit的(一次处理4字节长度的数据)。半字自然就是16bit(2字节);
内存编址以字节为单位,一个内存单元就是一个字节,无论多少位内存都以字节位单位进行内存编址。
数据类型占用字节大小
占用的大小由编译器决定。
数据类型+*是指针类型,是地址,地址线为32位,则所有的该类型占8个字节。
int a = 5; 若为32位系统,占4个字节,若内存地址从,代表一个字节长度,分配了4个连续的地址。
数据总线,地址总线,存储容量的关系
地址总线AB
一个cpu的N根地址总线,则可以说这个CPU的地址总线宽度为N。这样cpu最多可以寻址2的N次方个内存单元。
数据总线DB
8根数据总线传送一个8位二进制,数据线数量相当于每单元的位数。
存储容量
存储容量=单元数*每单元的位数,一般每单元位数都是8。
例子:若256KB的SRAM具有8条数据线,则他具有多少条地址线,存储容量多少。
256KB = 2^18B 地址线为18条,8位则数据线8条,存储容量256KB*8。
管理内存——数组、结构体、栈、堆
数组
结构体
栈
堆
静态存储区
2、C语言位操作
常用操作符
对寄存器位操作
清零
置一
位取反
移位构建特定二进制数
移位来构造二进制
宏定义完成位运算
宏定义来置位
宏定义清除某位
END
限时特惠:本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情
站长微信:Jiucxh