admin 发表于 2021-1-19 13:38:46

英特尔Cyclone V SOC FPGA器件烧写EMMC方案(二、UBOOT 烧写img )

基于UBOOT的小尺寸镜像系统烧写

此方案最简单,所以放在最前面说。此方案实现的前提如下:1、系统镜像尺寸小于电路板上的DDR3内存大小。2、电路板上有SD卡槽。除此之外,不需要再有其他要求了,不需要网口,不需要USB接口、Nand Flash等。考虑到电路板上的存储空间一般都大于等于256MB,所以我们提供了一个尺寸为240MB的小尺寸系统镜像。名为AC540-SoC-Console-240M.img。
烧写步骤:
1、准备一张能正常启动电路板的SD卡,例如烧录了我们提供的“AC540-SoC-Console.img”镜像的SD卡。2、将AC540-SoC-Console-240M.img这个小尺寸镜像文件拷贝在制作好镜像的SD卡的FAT分区。3、使用SD卡启动开发板,在串口终端中连续按键盘任意键,让开发板停在UBOOT阶段。4、使用mmc list命令查看当前的MMC设备情况,可以看到,MMC设备只有一个,编号为0,如下图所示:5、使用fatls mmc 0命令查看该MMC设备中的FAT分区的内容,可以看到,分区中就有我们存放的AC540-SoC-Console-240M.img这个文件,如下图所示6、使用fatload mmc 0 0x1000000AC540-SoC-Console-240M.img命令将AC540-SoC-Console-240M.img文件内容读取到内存的0x1000000地址,如下图所示:7、拔出SD卡!8、拔出SD卡!9、拔出SD卡!10、             使用mmc rescan命令重新扫描MMC设备,以让EMMC挂载上,此命令无返回提示信息。11、             使用mmc write 0x10000000x0 0x78700命令将内存中从0x1000000地址开始的数据写入到MMC的第0号块起始的493312(0x78700)个块中,如下图所示。MMC写入是以块为单位的,每个块的容量是512字节,而上述读取到的img文件的长度为252575744字节,所以换算成块就是252575744/512 = 493312,十六进制值也就是0x787000。12、             在不插入SD卡的情况下,重启开发板,就能发现开发板正常开始运行了。此时就是运行的存储在EMMC中的系统。13、             进入系统之后,输入fdisk –l命令,查看磁盘的分区情况,如下图所示。14、             输入df –h命令查看系统分区的磁盘使用情况,可以看到,当前系统空间为139.1MB,已经使用了110.5MB,还剩余21.3MB可以使用。通过上述第14步的结果可以看出,该方案确实完成了EMMC的烧写,只不过对EMMC的存储空间利用率非常低,8GB的EMMC存储器,总共只使用了240MB,还有非常大的存储空间完全没有规划使用,浪费掉了。所以,这个方案比较适合那类对Linux系统空间容量要求不高的应用。
页: [1]
查看完整版本: 英特尔Cyclone V SOC FPGA器件烧写EMMC方案(二、UBOOT 烧写img )