米尔ST MYD-YA15XC-T开发板——制作烧写镜像及SD卡烧写
一、制作烧写镜像 1.1、环境准备 执行命令 sudo apt-get install kpartx fdisk mount dosfstools e2fsprogs 1.2、将SDCardUpdater-ya15xc.tar.bz2工具复制到ubuntu系统
1.3、制作烧写包 执行命令:sudo ./CreateSDUpdateImage-myir mfgimages ya15xc-t
最后生成用于SD卡的烧写包
二、制作SD卡烧写器 2.1、打开Win32DiskImager软件,选择img镜像文件,写入SD卡
2.2、开发板设置BOOT方式
2.3、开发板上电烧写系统
2.4、BOOT设置为NAND启动
进入文件系统,烧写系统完成。
iCEasy商城为您传授BeagleBone® Black eMMC烧写全记录
eMMC存储介质目前越来越广泛的应用在嵌入式系统中,AM335x的用户也越来越多的使用eMMC作为系统的主要存储介质。目前AM335x的几款官方demo板中,只有BeagleBone®Black上加入了对eMMC芯片的支持,很多用户也是参考BeagleBone®Black进行自己AM335x系统的eMMC设计。笔者最近分别通过TI Uniflash和SD卡完成了BeagleBone®Black上eMMC芯片的烧写验证工作,软件基于AM335xLinux SDK06,总结出来供大家参考。
一、使用TI UniFlash工具通过USBRNDIS烧写
1、TI Uniflash简介
Uniflash是TI开发的存储器烧写工具,可以支持AM335x系统的NAND Flash,NORFlash,SPIFlash,eMMC烧写。可以参考wiki上的guide,在Windows宿主机上下载并安装Uniflash,并按照其中3.3节所述在Windows宿主机上安装USBRNDIS驱动。
2、eMMC烧写原理
本文介绍的验证方法是使用Uniflash工具通过USB对BeagleBone® Black上的eMMC进行烧写,原理是通过Romcode,SPL和u-boot三个阶段,将一个专门用于eMMC烧写的Linux操作系统在BeagleBone® Black板上运行起来,并自动运行脚本进行烧写。
第一阶段,通过设置AM335x的sysboot管脚,使AM335x的启动项包含USB0启动。BeagleBone® Black的默认启动设置为:MMC1->MMC0->UART0->USB0,MMC1和MMC0分别连接了eMMC和SD卡,如果eMMC为空,并且不插SD卡,芯片上电后执行的Romcode就会执行USB启动。Romcode会初始化USB RNDIS以太网络通信协议,通过Windows宿主机上Uniflash自带的DHCP服务器进程拿到分配的IP地址,然后再通过Windows宿主机上Uniflash自带的TFTP服务器进程将Uniflash设定的tftp目录下用于eMMC烧写的特殊的SPL下载到AM335x的内部ram中并运行。
第二阶段,用于eMMC烧写的特殊的SPL执行之后,会初始化USB RNDIS以太网络通信协议,并通过Windows宿主机上Uniflash自带的DHCP服务器程序拿到分配的IP地址,然后再通过宿主机上Uniflash自带的TFTP服务器程序将Uniflash设定的tftp目录下用于eMMC烧写的特殊的U-boot.img下载到板子上的DDR3中并运行。
第三阶段,用于eMMC烧写的特殊的U-boot.img执行之后,通过执行u-boot中的DHCP和TFTP命令,将Windows宿主机上Uniflash设定的tftp目录下的用于烧录eMMC的LinuxuImage下载到板子的DDR3中并运行。这个LinuxuImage会通过执行启动脚本,通过tftp的方式,将Windows宿主机上Uniflash设定的tftp目录下名为debrick.sh脚本下载并执行,debrick.sh可实现eMMC的擦除和烧写。
3、eMMC烧写流程
(1)制作u-boot-spl-restore.bin和u-boot-restore.img
用于烧录eMMC的特殊的SPL和u-boot.img可以通过指定特定的编译参数编译SDK06的U-boot源码获得,在编译之前需要加几个patch如下:
延长USB RNDIS连接等待时间的patch,修改/drivers/usb/gadget/ether.c文件:
使能U-boot中cache用于加快传输时间的patch。修改/include/configs/am335x_evm.h 文件:
修改bootcmd启动参数,在/include/configs/am335x_evm.h中182行修改如下:
加入以上 3 个 patch 之后,在 u-boot 源码目录下输入以下编译指令:
在U-boot源码目录下的boards.cfg文件中,可以看到am335x_evm_restore_flash_usbspl这个编译选项设定了宏RESTORE_FLASH,SPL_USBETH_SUPPORT。
生成的u-boot.img和u-boot-spl.bin分别在在flash-restore\和flash-restore\spl目录下,要将其改为u-boot-restore.img和u-boot-spl-restore.bin并放置Windows宿主机上Uniflash设定的tftp目录下。
(2)制作uImage
用于烧录eMMC的LinuxuImage,以Initcramf的方式包含了一个用于烧录的Ramdisk文件系统,下面是具体配置和生成的步骤。
在SDK06的Linux源码目录下,执行:
配置内核所包含的文件系统目录。
将用于烧录的Ramdisk文件系统解压到虚拟机的某个目录下,如/home/zhoujian/Flasher。进入general setup目录,按图1-1配置Initcramfs所在目录。
▲图1-1
进入Device Drivers,按照图1-2、图1-3、图1-4和图1-5配置kernel对USBRNDIS的支持
▲图1-2选择进入DeviceDrivers
▲图1-3选择进入USB support
▲图1-4选择进入USB Gadgetsupport
▲图1-5在USB GadgetDrivers中,只保留Ethernet Gadget(with CDC Ethernet support)和RNDIS support
保存退出后,执行:
将生成的\arch\arm\boot\uImage 放置 Windows 宿主机上 Uniflash 设定的 tftp 目录下。如果对速度有要求,可在menuconfig的界面中,选择[Device Drivers]->[ Network devicesupport]->[ Ethernet driversupport],如图 1-6 所示,将 kernel 中的 CPSW 驱动去掉,从而停掉系统启动后的以太网DHCP脚本的执行,以节省时间。
▲图1-6
(3)进行烧写
将eMMC烧录脚本debrick.sh放置Windows宿主机上Uniflash设定的tftp目录下。将要烧写到eMMC中的MLO,u-boot.img和uImage压缩成debrick.sh脚本指定的boot_partition.tar.gz:
将要烧写到eMMC中的文件系统压缩文件名改为 rootfs_partition.tar.gz,和boot_partition.tar.gz一起放置 Windows 宿主机上 Uniflash 设定的tftp 目录下。在 Windows 上运行 Uniflash,可以按图 1-7 所示指定 tftp 目录为C:\AM335x_Flashtool\images
▲图 1-7
点击 Start Flashing 按钮,通过 USB 线连接BeagleBone® Black和宿主机,eMMC 的烧写可自动完成。
二、使用SD卡烧写
BeagleBone® Black上带有SD卡,也可以通过SD卡进行eMMC的烧写,可将SDK06自带的prebuild image中的MLO,u-boot.img,uImage以及上一章提到的用于烧写eMMC的文件系统烧写到 SD 卡中,然后将 SD 卡中的内容通过 Ubuntu 虚拟机显示出来,并对此文件系统中的内容做如下改动。
将 SD 卡上文件系统中的/etc/init.d/fetcher.sh 改为:
将debrick.sh脚本拷贝到SD卡上文件系统中的/home/root/目录下,并将其中tftp传输的部分去掉:
将要烧写到eMMC中的MLO,u-boot.img和uImage压缩成debrick.sh脚本指定的boot_partition.tar.gz:
将要烧写到eMMC中的文件系统压缩文件名改为 rootfs_partition.tar.gz,和boot_partition.tar.gz一起拷贝到 SD 卡上文件系统中的/home/root/目录下。
在给BeagleBone® Black上电之前,插上制作好内容的 SD 卡,按住板子的 S2 开关,然后通过 USB 线连接BeagleBone® Black和宿主机给板子上电,会自动执行eMMC的烧写。
三、总结和参考文档
Linux 系统从eMMC上启动,需要修改 u-boot 的 mmcdev 参数,将其由默认的 0 改为1,也可以直接修改/include/configs/am335x_evm.h中的 73 行为"mmcdev=1\0"\,然后重新编译。
第一次烧写,可以从板子的 J1 插针引出 UART0 信号到主机超级终端查看烧写流程。
如果用户是自己做的板子,那么也可以在针对自己板子移植好的 U-boot 和 Linux 源代码的基础上,按照上面所讲的加入对eMMC烧写的支持。
对于 Linux SDK 07,操作步骤基本类似,未来会继续验证。
相关问答
天博APP官网下载地址(官方)APP下载安装IOS/Android通用版/手...[回答]东芝存储(TOSHIBH)是内存卡小型品牌。东芝(TOSHIBA)是日本最大的半导体制造商,亦是第二大综合电机制造商,隶属于三井集团旗下。东芝原名东京芝浦电...
3ds如何备份 nand ?要备份3DS的nand,首先需要安装一个自制软件,比如GodMode9。然后,将SD卡插入电脑,复制并备份SD卡上的所有文件。接下来,在3DS主界面上,启动GodMode9软件,...
逻辑运算里,将表达式AB+AC转换成只使用 NAND 的表达式,并画出...[最佳回答]AB+AC=NAND(NAND(A,B),NAND(A,C))电路自己画吧.
3dsll开机黑屏 nand 能修好吗?-ZOL问答那得看具体是硬件不行了还是软件问题。
想学嵌入式 软件 ,哪款开发板比较好?第二,选择开发板要注意硬件资源(包括:CPU、ROM、RAM、各种接口)其中NanDFlash、NorFlash和SDRAM的大小一定要满足自已开发的要求。我们要做到花最少的钱学...
【Iheven'tapenandIdon'thaveapen的区别?没事好玩】作业帮[回答]Ihaven'tapen我从来没拥有过钢笔.Idon'thaveapen我现在没有(可能在家裏有)
【初學者用】10张图带你玩转switch大气层破解和自制系统-ZOL问答而破解软件通常需要通过修改固件或加载自制固件等方式来实现。在进行这种操作...1:【新手用】几张图看懂switch破解,备份nand和安装nsp等2:【新手用】几张图看...
路由器 nand 刷坏了怎么恢复?如果路由器的NAND被刷坏了,可以尝试通过以下步骤来恢复:准备一个与路由器兼容的USB烧录器和一根USB数据线。将路由器的NAND芯片从主板上拆焊下来,并将其插...
华为工具 软件 供应商?华为50家核心供应商名单:1、Foxconn(富士康):全球最大的电子产品代工厂,迄今在中国大陆、台湾、日本、东南亚及美洲、欧洲等地拥有200余家子公司和派驻机...
半岛平台下载(官方)APP下载安装/网站网页通用版入口英特尔520系列120GB固态硬盘特尔固态硬盘520可提供高达80,000次的4K随机写入IOPS(每秒输入输出操作)性能以及高达50,000次的4K随机读取IOPS性能,...