RAM
RAM: 随机存储器,可以随时进行读写操作,速度很快,掉电以后数据会丢失。比如内存条、 SRAM、 SDRAM、 DDR 等都是 RAM。
ROM
ROM 是 read only memory的简称“只读存储器”这个定义不准确。比如手机,通常会告诉你这个手机是 4+64 或 6+128 配置,说的就是 RAM 为 4GB 或 6GB, ROM 为 64G 或128GB。但是这个 ROM 是 Flash, 比如 EMMC、NAND、NOR,因为历史原因,很多人还是将Flash 叫做 ROM。但是,这些都是可以进行写操作的!只是写起来比较麻烦,要先发送要先进行擦除,然后在发送要写的地址或扇区,最后才是要写入的数据。可以看出,相比于 RAM,向 ROM 或者 Flash 写入数据要复杂很多,因此意味着速度就会变慢(相比 RAM),但是 ROM 和 Flash 可以将容量做的很大,而且掉电以后数据不会丢失,适合用来存储资料,比如音乐、图片、视频等信息。
RAM发展史
1、SRAM 的全称叫做 Static Random-Access Memory,也就是静态随机存储器,这里的“静态”说的就是只要 SRAM 上电,那么 SRAM 里面的数据就会一直保存着,直到 SRAM 掉电。
2、SDRAM 集成度高、功耗低、成本低、适合做大容量存储,但是需要定时刷新来保证数据不会丢失。
3、DDR 全称是 Double Data Rate SDRAM,也就是双倍速率 SDRAM。
DDR硬件
1、控制线
2、地址线
3、BANK 选择线
4、数据线
5、高低字节选择
IMX8 DDR
IMX8 使用DDRC 控制器 , 因为对电气性能的要求,所以DDR PIN专属的,不存在复用。
压力测试
NXP 提供了一个非常好用的 DDR 初始化工具,此工具特点如下:
此工具通过 USB OTG 接口与开发板相连接,也就是通过 USB OTG 口进行 DDR 的初始化与测试。
此工具有一个默认的配置文件,为 excel 表,通过此表可以设置板子的 DDR 信息,最 后生成一个.ds结尾的 DDR 初始化脚本文件。这个.ds 文件就包含了 DDR 的初始化信息,一般都是寄存器地址和对应的寄存器值。
此工具会加载.ds 表里面的 DDR 初始化信息,然后通过 USB OTG 接口向板子下载DDR 相关的测试代码,包括初始化代码。
对此工具进行简单的设置,即可开始 DDR 测试,一般要先做校准,因为不同的 PCB其结构肯定不同,必须要做一次校准,校准完成以后会得到两个寄存器对应的校准值,我们需要用这个新的校准值来重新初始化 DDR。
此工具可以测试板子的 DDR 超频性能,一般认为 DDR 能够以超过标准工作频率10%~20%稳定工作的话就认定此硬件 DDR 走线正常。
此工具也可以对 DDR 进行 12 小时的压力测试。
操作方式:
安装表格要求更改型号、参数;
把更改表格后生成DCD_CFG_file拷贝到SCFW的\platform\board\mx8qx_mek\dcd\imx8qx_dcd_1.2GHz.cfg中,放到编译;
再编译SCFW, make qm R=B0 DDR_CON=ddr_stress_test_parser;
将编译出的.BIN文件改名为mx8qxb0_scfw_download.bin放入工具包bin目录下,将ds放入script目录下;
把文件的内容DDR Stress Test Script拷贝到.ds中;
拨码开关选择USB启动再重启;
点击connect、选择生成的.ds文件;
点击download(不知下载到那里了);
下载成功够,点击压力测试:这个主要是PCB设计完成后,硬件工程师可以使用这个验证layout是否合理,一般 DDR3 能够超频到比标准频率高于10%~15%的话就认为硬件没有问题;
可以设置1200-1600MHz,点击stress test,进行测试,测试时间比较长,测试完成会自动停止,可以根据log判断,再那里失败的;
Uboot的配置文件更改:./uboot-imx/include/configs/imx8qxp_mek.h;
查看更改成功
编译uboot重新烧写,启动后查看启动log或者 cat /proc/meminfo 是否更改成功