4203|4

1246

帖子

18

TA的资源

五彩晶圆(初级)

楼主
 

不具备USBdevice的6410电路板使用tftp完成操作系统的烧写和配置 [复制链接]

手头有一块6410的电路板,硬件上usbdevice接口功能不正常,无法使用dnw工具完成uboot、内核和文件系统的烧写,摸索了一段时间,通过uboot支持的dm9000驱动,使用tftp将操作系统写入成功,发个经验贴,顺便做个记录
1、首先u-boot(SD卡)烧写进SD卡,工具不限,只要成功即可,我使用的是友善提供的SD-Flasher.exe工具。顺便说一下,如果开发板上连SD卡接口都没有
的话,也可以使用仿真器(如Jlink)通过Jtag接口将uboot下载至SDRAM中,第一步的目的就是将uboot拷贝至SDRAM中运行!
2、接下来使用在SDRAM中运行的Uboot功能,通过tftp下载UbootNandFlash
其实是通过tftp下载uboot至SDRAM的固定地址,然后在通过nand命令,将SDRAM的固定内存段拷贝至nand的固定地址处,长度也固定!
为了正常使用tftp,
首先需要配置IP,将PC本地连接的IP电路板IP配置在同一网段,ipaddr6410IPgatewayip是网关,serveripPCIP,需要在PC段设置静态IP,设置完成之后一定要saveenv将设置写入flash之中,否则下载启动有得重新设置:
MINI6410 # setenv ipaddr 192.168.1.3
MINI6410 # setenv gatewayip 198.168.1.1
MINI6410 # setenv serverip 192.168.1.2
MINI6410 # saveenv



接下来需要在PC端下载TFTP服务软件,安装之后打开软件配置,主要是配置Current Directory,这个路径下主要是存放你需要下载的文件的。同时需要关闭防火墙。



我的6410 IP192.168.1.3PC机的本地连接IP192.168.1.2。可以在uboot上通过ping 192.168.1.2来测试网络是否连接好了。如果可以ping通,那么会出现:
好了接下来利用命令完成uboot的nand烧写:
MINI6410 # nand erase 0x0 0x80000 //擦除nand,uboot启动地址,参考手册可知起始地址是0x0
MINI6410 # tftp 0xc0008000u-boot_nand-ram128.bin //烧入SDAM

MINI6410 # nand write 0xc0008000 0x0 0x80000 //写入nand的固定地址


可以观察一下0x0处的数据:
MINI6410 # nand dump 0x0





下面把开发板启动开关拨动到从NandFlash启动的配置,重新上电。

我用的是友善的uboot,信息打印正确!
这时候需要重新设置网络:
MINI6410 # setenv ipaddr 192.168.1.3
MINI6410 # setenv gatewayip 198.168.1.1
MINI6410 # setenv serverip 192.168.1.2
MINI6410 # saveenv

3、下载linux内核zImage到nand
把需要下载的文件发到刚刚设置的tftpboot目录下,就可以使用下面的方法来下载了,比如我们要下载linux内核zImage:
tftpc0008000 zImage



这样就将linux内核镜像加载到了起始地址为0xc0008000的内存中
擦出相关nand地址段
nand erase 0x80000 0x500000 //这里的地址要与Uboot的打印地址一致,也就是编译Uboot时设定的内核启动地址和大小一致。

写入相应的地址段:



重新启动:

3、烧写文件系统
设置启动项 bootargs
setenv bootargs "root=/dev/mtdblock2rootfstype=yaffs2 console=ttySAC0,115200"
saveenv

我的电路板的SDRAM是128M的,所以文件系统不能太大,可以稍微精简一下,烧录成功后再补充!

生成yaffs2文件的方法就不赘述了,网上有很多教程,准备好生成的rootfs.img,下载制作的镜像,烧写flash:
利用Uboot命令可查看,我的SDRAM起始地址为0x50000000 ~0x58000000

所以使用烧写地址可选为0x51000000
下载文件系统:
根据内核打印的信息可知:文件系统的地址写在:0x580000 大小0x3FA80000

nand erase 0x580000 0x3FA80000  //擦除文件系统所在的整个分区,即filesystem分区
传递文件系统镜像:
tftp 0x51000000 rootfs.img
完成传输后会打印出信息:
所以传输的文件大小就为5e3e9c0 hex
nand write.yaffs 0x51000000 0x580000 0x5e3e9c0//这里烧写的字节数,即5e3e9c0,为上面提示的传输字节数
重启后,内核启动,系统启动成功!!



4、总结
当然到了内核启动部分,也可以设置成NFS调试,然后再写入文件系统,看个人喜好了!
这三部分烧写完毕后,才能进行相关驱动和应用程序的开发了,算是进行开发的第一步吧!希望对自己和别人有所帮助!






此帖出自ARM技术论坛

最新回复

好久不见楼主,原来在研究6410  详情 回复 发表于 2016-3-7 12:27
点赞 关注
个人签名
 

回复
举报

2万

帖子

74

TA的资源

管理员

沙发
 
很详尽的经验分享,赞一个
此帖出自ARM技术论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 

回复

20

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
楼主给力啊!!!赞一个
此帖出自ARM技术论坛
 
 
 

回复

5979

帖子

8

TA的资源

版主

4
 
好久不见楼主,原来在研究6410
此帖出自ARM技术论坛

点评

业余时间玩一玩,工作中也用不到  详情 回复 发表于 2016-3-7 15:02
 
个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
===================================
做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
 
 

回复

1246

帖子

18

TA的资源

五彩晶圆(初级)

5
 
本帖最后由 anananjjj 于 2016-3-7 15:14 编辑
chenzhufly 发表于 2016-3-7 12:27
好久不见楼主,原来在研究6410

业余时间玩一玩,工作中也用不到6410资料多一些,用来搞linux,学的比较全面,现在搞dsp多一些,觉得linux的学习不能
落下,当然还有老大你经常搞得fpga啦,我始终是不得要领,只是使用了它的一些简单的逻辑和分频功能
并未玩到高级的东西
此帖出自ARM技术论坛
 
个人签名
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表