1. 制作SD卡
先准备一张2G的SD卡(不能用8G的,2G的卡和8G的卡协议不一样),和烧写SD卡的工具write_sd以及需要烧写到SD卡中的u-boot-movi.bin。将SD卡格式化后连接到Ubuntu虚拟机中,注意在SD卡需要插入到读卡器中,不能用电脑自带的SD卡槽,否则在Ubuntu下认不到。先执行ls /dev/sdb*,能够看见有一个/dev/sdb文件,说明Ubuntu认到SD卡了。如下图:
执行命令:sudo ./write_sd /dev/sdb u-boot-movi.bin
将u-boot写入SD卡中。将SD卡插入6410开发板中,将拨码开关设置为SD卡启动(开关1和2都拨到ON),连接串口运行minicom或其他串口终端(先保证串口配置是正确的),启动板子后串口正常打印则说明SD卡上成功烧写了U-boot。需要说明的是写入SD卡的u-boot-movi.bin支持DNW但不支持TFTP,而且write_sd这个工具制作出来似乎就是为了烧写u-boot-movi.bin这一个文件,不能写入其他的文件 ,因此我是借助u-boot-movi.bin烧写自己编译出的U-boot。
2. 使用DNW下载U-boot
先准备好要下载进Nandflash的U-boot “u-boot-nand.bin”
1)在板子终端中输入:dnw 50008000
2)在虚拟机中输入:sudo dnw u-boot-nand.bin
成功后在6410内存地址为50008000的地方存放的就是u-boot-nand.bin,此时要将该文件写入Nandflash的0地址中。
3)在板子终端输入:nand erase 0
每次要往Nandflash中写入新数据时一定要保证该区域是擦除过的。nand erase后面可以跟两个参数,第一个是要擦除的首地址,第二个参数是要擦除的大小,如果输入nand erase 0则是整片擦除。
4)在板子终端输入:nand write 50008000 0 32000
第4步的意思是将内存地址为50008000的数据写入Nandflash中,写入长度为0x32000个字节。32000这个数是根据u-boot-nand.bin文件大小而定的,我的u-boot-nand.bin不到200k,因此写入200k确保U-boot完全写入。
5)将板子设置为Nandflash启动(开关0和1都拨到off),重启后看打印信息,正常输出表明U-boot写入Nandflash成功并且能从Nandflash启动。
附:
write_sd 下载链接:https://files-cdn.cnblogs.com/files/Suzkfly/write_sd.zip
u-boot-movi.bin 下载链接:https://files-cdn.cnblogs.com/files/Suzkfly/u-boot-movi.zip
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?