1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1. 存储器理解
存储器是计算机结构的重要组成部分,存储器是用来存储程序代码和数据的部件,有了存储器计算机才具有记忆功能。按照存储介质的特性,可以分“易失性存储器”和“非易失性存储器”两类,易失和非易失是指存储器断电后,里面存储的内容是否会丢失,另一边的速度而言呢,易失性存储器的速度要快于非易失性存储器。 1.1 易失性存储器 按照RAM的物理存储机制,可以分为DRAM(Dynamic)和SRAM(Static)两类。首先,说一下目前所用的DRAM,其通讯时序是利用时钟进行同步通讯,所以起名为Synchronous DRAM,那么,后期为了进一步提高SDRAM的通讯速度,人们设计了DDR SDRAM存储器(Double Data Rate SDRAM),随后又发展出二、三、四代SDRAM,现在很多PC机上的内存条是DDRIII SDRAM存储器。另外,静态随机存储器SRAM的存储单元以锁存器来存储数据,结构比DRAM要复杂很多,所以生产相同容量的存储器,DRAM的成本要更低,且集成度更高。
1.2 非易失性存储器 半导体类的非易失性存储器有ROM和FLASH,感觉现在ROM使用的比较少了,貌似很多都被flash代替了。之前学单片机的时候,用的外接EEPROM算是一种ROM,不作过多介绍。FLASH的容量一般比EEPROM大得多,且在擦除时,一般以多个字节为单位。如有的FLASH存储器以4096个字节为扇区或者页(page)有的flash是以512个字节为扇区或者页,最小的擦除单位为一个扇区/页,至于叫做扇区还是叫做页看你使用的flash的手册。根据存储单元电路的不同,FLASH存储器又分为NOR FLASH和NAND FLASH。
1.3 Nordic的存储器 如下图所示NRF52832使用的存储器RAM是64KB,Flash为512KB,这里的RAM是SRAM(P24 Figure5),而我认为Flash是Nor Flash(为什么如此认为呢?是因为,我可以以字节为单位去读写内部flash,擦的时候还是以页为单位)。 1.3.1 内存映射 阐述完FLASH和SRAM的物理模型,那程序是怎么在这些存储器中运行的呢?Flash,SRAM寄存器和输入输出端口被组织在同一个4GB的线性地址空间内,可访问的存储器空间被分成8个主要块,每个块为512MB。存储器本身不具有地址信息,它的地址是由芯片厂商或用户分配,给存储器分配地址的过程就称为存储器映射,如果给存储器再分配一个地址就叫存储器重映射。NRF52832的内存映射如下图所示, 从图上可以看到,尽管给我们分配了这个大的地址空间,有很多我们用不完,所以芯片厂商只用了其中的一部分而已,我们最关心的有三个块,Block0用来设计成内部FLASH,Block1用来设计成内部RAM,Block2用来设计成片上的外设。 在nordic芯片中FLASH存储编译后下载的程序,SRAM是存储在程序运行中的临时创建数据(ARMv7,哈弗结构),故只要你不外扩存储器,写完的程序中只要在芯片上运行起来,所有数据也就会出现在这两个存储器中。我在想那在Flsah或者Ram内部是不是又会根据不同的功能把他们分为多个模块呢?答案是肯定的。 程序文件是编译链接后生成的可执行文件,比如.bin文件,会进行分区,如下图所示,
BIN文件大小 = CODE+RO-DATA+RW-DATA = 程序大小 = 程序占用的FLASH空间,为什么ZI-DATA不算?因为对于未初始化的变量BIN文件里面只需要两句话描述一下就可以了,大概就是记录下ZI-DATA的大小就好,程序运行时直接在RAM中开辟一个相应大小的空间。这里,不禁要问编译后的局部变量存放在什么区?上面局部变量属于栈空间,处理局部变量的方式和zi-data是一样的,在调用的函数中描述一下就好了。 RW-DATA+ZI-DATA = 程序所有变量的大小 (包括全局变量和局部变量,如果还不理解,可以看分散加载文件.sct文件) 在网上看到一张图,感觉很有意思。这张图是STM32程序下载到Flash上的存储结构。 一定要区分上电前和上电后程序的不同状态(rw-data上电前会存在flash,上电后会搬运到sram)。 参考网址:https://www.cnblogs.com/amanlikethis/p/3719529.html 其中,ZI-DATA对应了BSS段(未初始化数据段),RW-DATA对应数据段(初始化数据段),CODE对应代码段,RO-DATA对应数据段(通过观察.map文件对这段话有些质疑,没搞清楚,待核实)。 |
||
|
||
只有小组成员才能发言,加入小组>>
2565 浏览 0 评论
763浏览 1评论
524浏览 0评论
276浏览 0评论
458浏览 0评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 00:54 , Processed in 1.166555 second(s), Total 78, Slave 60 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号