资讯
HOME
资讯
正文内容
NAND烧写软件 米尔ST MYD-YA15XC-T开发板——制作烧写镜像及SD卡烧写
发布时间 : 2024-11-24
作者 : 小编
访问数量 : 23
扫码分享至微信

米尔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性能,...

 旭贝尔奶粉  16万切糕 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部