热搜关键词: 电路基础ADC数字信号处理封装库PLC

pdf

beagle board blak emmc烧录

  • 1星
  • 2015-07-15
  • 981.3KB
  • 需要1积分
  • 6次下载
标签: am335x

am335x

BBB

am335x

emmc烧录

am335x

此文档为BBB烧写到EMMC中,有通过USB烧录和从SD卡烧录

文档内容节选

BeagleBone Black eMMC 烧写全记录基于 AM335x SDK06 eMMC 存储介质目前越来越广泛的应用在嵌入式系统中,AM335x 的用户也越来越多 的使用 EMMC 作为系统的主要存储介质目前 AM335x 的几款官方 demo 板中,只有 BeagleBone Black 上加入了对 eMMC 芯片的支持,很多用户也是参考 BeagleBone Black 进 行自己 AM335x 系统的 eMMC 设计笔者最近分别通过 TI Uniflash 和 SD 卡完成了 BeagleBone Black 上 eMMC 芯片的烧写验证工作,软件基于 AM335x Linux SDK06,总结出 来供大家参考 1 使用 TI UniFlash 工具通过 USB RNDIS 烧写 11 TI Uniflash 简介 Uniflash 是 TI 开发的存储器烧写工具,可以支持 AM335x 系统的 NAND Flash,NOR Flash SPI Flash,eMMC 烧写可以参考 wiki 上的 guide: httpprocessorswikitico......

BeagleBone Black eMMC 烧写全记½(基于 AM335x SDK06)
eMMC
存储介质目前越来越广泛的应用在嵌入式系统中,AM335x 的用户也越来越多
的½用
EMMC
½为系统的主要存储介质。目前
AM335x
的几款官方
demo
板中,只有
BeagleBone Black
上加入了对
eMMC
芯片的支持,很多用户也是参考
BeagleBone Black
行自己
AM335x
系统的
eMMC
设计。笔者最近分别通过
TI Uniflash
SD
卡完成了
BeagleBone Black
eMMC
芯片的烧写验证工½,½件基于
AM335x Linux SDK06,总结出
来供大家参考。
1.
½用
TI UniFlash
工具通过
USB RNDIS
烧写
1.1 TI Uniflash
简介
Uniflash
TI
开发的存储器烧写工具,可以支持
AM335x
系统的
NAND Flash,NOR
Flash, SPI Flash,eMMC
烧写。可以参考
wiki
上的
guide:
http://processors.wiki.ti.com/index.php/Sitara_Uniflash_Quick_Start_Guide,在
Windows
宿
主机上下½½并安装
Uniflash,并按照其中 3.3
节所述在
Windows
宿主机上安装
USB RNDIS
驱动。
1.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
Linux uImage
下½½到板子的
DDR3
中并运行。这个
Linux uImage
会通过执行启动脚本,
通过
tftp
的方式,将
Windows
宿主机上
Uniflash
设定的
tftp
目½下名为
debrick.sh
脚本下
½½并执行,debrick.sh 可实现
eMMC
的擦除和烧写。
1.3 eMMC
烧写流程
1.3.1
制½
u-boot-spl-restore.bin
u-boot-restore.img
用于烧½
eMMC
的特殊的
SPL
u-boot.img
可以通过指定特定的编译参数编译
SDK06
U-boot
源码获得,在编译之前需要加几个
patch
如下:
1)
延长
USB RNDIS
连接等待时间的
patch:
修改/drivers/usb/gadget/ether.c 文件:
index de880ff..926c6f2 100644
--- a/drivers/usb/gadget/ether.c
+++ b/drivers/usb/gadget/ether.c
@@ -108,7 +108,11 @@ static const char driver_desc[] = DRIVER_DESC;
|USB_CDC_PACKET_TYPE_PROMISCUOUS \
|USB_CDC_PACKET_TYPE_DIRECTED)
+#if defined(CONFIG_RESTORE_FLASH) && defined(CONFIG_SPL_USBETH_SUPPORT)
+#define USB_CONNECT_TIMEOUT (15 * CONFIG_SYS_HZ)
+#else
#define USB_CONNECT_TIMEOUT (3 * CONFIG_SYS_HZ)
+#endif
2)
½½
U-boot
cache
用于加快传输时间的
patch:
修改/include/configs/am335x_evm.h 文件:
index 90e35ee..efa1e90 100644
--- a/include/configs/am335x_evm.h
+++ b/include/configs/am335x_evm.h
@@ -236,6 +236,7 @@
#define CONFIG_CMD_FAT
#define CONFIG_FAT_WRITE
#define CONFIG_CMD_EXT2
+#define CONFIG_CMD_CACHE
3)
修改bootcmd启动参数,在/include/configs/am335x_evm.h 中182行修改如下:
#ifdef CONFIG_SPL_USBETH_SUPPORT
#define CONFIG_BOOTCOMMAND \
"dcache on; " \
"setenv autoload no; " \
"setenv ethact usb_ether; " \
"dhcp; "
\
"if tftp 81000000 uImage; then "
\
"bootm 81000000; "
"fi"
#else
\
加入以上
3
patch
之后,在
u-boot
源码目½下输入以下编译指令:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=flash-restore
am335x_evm_restore_flash_usbspl
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
目½下。
1.3.2
制½
uImage
用于烧½
eMMC
Linux uImage,以 Initcramf
的方式包含了一个用于烧½的
Ramdisk
文件系统,下面是具½配½和生成的步骤。
SDK06
Linux
源码目½下,执行:
make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm tisdk_am335x-evm_defconfig
make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm menuconfig
1)
配½内核所包含的文件系统目½。
将用于烧½的
Ramdisk
文件系统解压到虚拟机的某个目½下,如
/home/zhoujian/Flasher。
进入
general setup
目½,按图
1-1
配½
Initcramfs
所在目½
1-1
2)
进入
Device Drivers,按照图 1-2,图 1-3,图 1-4
和图
1-5
配½
kernel
USB
RNDIS
的支持
1-2
选择进入
Device Drivers
1-3
选择进入
USB support
展开预览

猜您喜欢

评论

zzhsfr
理论,期待实际教程
2017-06-24 08:09:40
登录/注册

意见反馈

求资源

回顶部

推荐内容

热门活动

热门器件

随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
×