储存器:就是只读寄存器(rom)和随机存取寄存器(ram),可以被理解为连接硬件和软件的桥梁。
在计算机系统里面可以认为是:临时存数据,指令地址,状态信息,它的存在是方便中央处理器快速访问和处理。
在硬件层面上面:软件可以通过访问特定寄存器来控制,操作硬件行为或者设置微控制器的参数。
我们写代码的时候,编译器将高级语言(c语言)转化为机械码,并且用寄存器来优化代码执行,比如存储变量,执行算术运算等。
sram和dram对应,区别是:前者是晶体管存数据,后者是电容存数据;
最大不同是dram必须时刻刷新操作来保持其内存储数据,断电就没了。
前者速度快稳定,成本高,集成度低;后者读写满,集成度高,成本低。
前者是高速缓存寄存器文件,后者是主要被用为内存,空间大和便宜。
rom和ram对应,区别是:
rom是断电也不丢失数据,只能读不能写或者该,就比如说是存储固定的系统指令和数据
ram是断电丢失数据,随队很快,随时读写,存储临时操作系统和程序和数据等等。
rom大部分是不可扩展,固定的。ram直接加内存条就行了。
程序存储器flash和eeprom对应,区别是:
flash以块或者页为单位进行擦除或者写入,eeprom是按照字节操作,eeprom比较温柔细腻,flash就很粗犷和豪放。
flash跑得快,eeprom运行慢。
eeprom的擦除次数高,flash是寿命长。
flash是用来存大量数据,如操作系统和应用程序和大型数据文件,eeprom是存储销量和频繁更新数据的,比如设备参数配置和用户设置等等。
寄存器:
DMA (数据转运小助手),他有权限直接访问上面的类型的数据:
直接进行外设和存储器或者存储器和存储器之间的高速数据传输,不用cpu干预,节约了资源,支持了软件触发和特定硬件出发。 c8t6有dma1一个通道,
软件读写寄存器就相当于控制硬件的执行
仲裁器,调度各个通道,防止产生冲突。
优先级,默认通道越小,优先级越高。
选择硬件出发需要看哪条通道,否则不能启动触发。
目标 数据宽度比 源端数据宽度大,在目标数据前面多出来的空位补0
目标 数据宽度比 源端数据宽度小,就是把多出来的高位删除掉。
(大转小,舍弃高位。小转大,那么我们就在前面进行补0的操作)