您好,登录后才能下订单哦!
UP-CUP6410开发板烧写心得
我一年之前跟着老师学习烧写过arm11的bootloader、内核、文件系统,那时候只知道该怎样一步步的烧写,并不知道没一步究竟为何要这么做,因为只是想烧着玩,刚好可以把实验室的那些坏的板子(同学们做实验时,不小心把bootloader破坏了,上电不能启动)拯救好,也就没有写文档来总结一下,一年后的现在板子又坏了一批,学弟想学可是我已经忘记的差不多了,于是花了两天的时间又重新学习了一遍,然后烧好了两个开发板,教会了学弟!现在写篇心得以后备用!以下仅仅是个人的理解,仅供参考!
烧写总得来讲分硬烧和软烧。
硬烧是指在开发板的bootloader已被破坏的情况(开发板不能够上电自动启动的情况)时,通过烧写软件DNW和烧写硬件UP-LINK来将u-boot.bin(bootloader文件中的一种)强行烧入NANDFLASH上的过程总称。
软烧是指只通过烧写软件DNW(或其他软件)来将u-boot.bin、zImage(linux内核)、rootfs_up6410.cramfs(文件系统)按照先后的顺序并跟据虚拟内存地址严格的烧到NANDFLASH上的过程总称。
一个开发板系统已经损坏(这里指bootloader已被破坏的情况)到烧写好需要先硬烧,后软烧的过程!如果是内核文件损坏、或文件系统损坏,直接软烧就可以了!
总体思想流程:先擦除(这里又叫格式化)NANDFLASH上的数据,然后再进行硬烧,接着在进行软烧!
前期准备:安装好USB驱动和并口(UP-LINK上并口线上的)驱动,接好线!
教你如何安装驱动
安装并口驱动:使用并口线将PC机和UP-LINK之间的并口连接好,在相对应将烧写目录里找到GIVEIO目录,并将整个GIVEIO目录拷贝到PC机的C盘下的\WINDOWS目录下,并将GIVEIO目录里面的giveio.sys拷贝到\WINDOWS\SYSTEM32\DRIVERS目录下,然后打开控制面板,选择添加硬件,选择下一步,选择是我已经连接到了此硬件,选择下一步,选择添加新的硬件设备,继续选择下一步,继续选择安装我手动从列表选择的硬件,选择显示所有设备,然后选择从磁盘安装,接着鼠标选择点击浏览,指定驱动的信息文件路径为 C:\WINDOWS\GIVEIO\geveio.inf,点击确定,并口驱动此时安装完成!
安装好USB驱动:使用USB线将PC机和UP-LINK之间的并口连接好,在相对应将烧写目录里找dao\DNW\USB Driver目录,其他的步骤和选择都和上面一样!
接线:电源线、串口线(注意有三个串口,选择接中间的口,其他口暂时不用没信号)、USB-Drive线
烧写流程分析:
一、擦除数据(格式化开发板)
需要使用开发板内在固化的WinCE启动开发板执行格式化过程。先将开发板的跳线模式(出厂模式0010)修改为NORFLASH模式(0101),里面是1,外面是0,进入WinCE的DNW软件,选择configuration菜单,选择option选项进入配置页面,配置好串口(com1)、波特率(1152000),虚拟内存地址(WinCE专用地址0x50030000)选择SerialPort菜单里的Connect选项,然后给开发板上电,接着按任意键出现一个菜单,选择DOWNLOAD&Run选项(这里是0),按回车后开始通过USB Port选择transmit传输\WinCE\BIN\EBOOT.nb0文件数据,等待几秒后,进入Eboot菜单项,选择A(高级格式化即清除所有的数据块)、E(清除保留的数据块)、F(进行低级格式化即从头一直删除到尾部)后,关闭WinCE的DNW,然后关掉开发板电源,将跳线拨到出厂模式。开始硬烧了。。。。
二、硬烧
在Windows系统下进入到Dos下使用并进入相对应的烧写目录找到SJF6410.exe文件来执行硬烧(此时应该先接好UP-LINK(指示灯由亮到灭)与开发板之间的插口,再给板子上电(UP-LINK指示灯由灭到亮),切忌不要先给板子上电在接上UP-LINK插口,否则开发板的电路可能会短路)。然后在该目录运行这个命令 SJF6410.EXE /f:u-boot.bin,开始选择菜单选项1(程序类型),回车后选择0(烧写程序),回车后选择0(烧写的目标起始地址为0),等待20分钟后烧写完成(#0-#104)时,选择2回车后退出!硬烧完毕!关闭开发板电源,拔掉UP-LINK并口,开始软烧了。。。
三、软烧(内核烧写、文件系统烧写)
第一次烧写后除BOOTLOADER外其他区域(内核区、文件系统区、应用程序区)仍为WINCE格式,需要使用nand烧写命令将其他格式化,变为LINUX格式。下面开始烧写:
1.内核烧写
使用DNW烧写软件,启动进入后检查配置,选择configuration菜单,选择option选项进入配置页面,配置好串口(com1),波特率(1152000),虚拟内存地址(WinCE专用地址0x50030000)选择SerialPort菜单里的Connect选项,然后给开发板上电,(如果前面都没有出现问题的话)此时DNW页面会显示一个跳动菜单信息,下面有倒计数,点击空格键,进入UP-CUP6410#烧写命令行。
输入dnw c0008000(系统虚拟内存的首地址),回车后,观察DNW软件标题是否为 COM口信息,USB为OK,ADDR为0x50030000,下面提示你等待传输数据(如果不是则检查USB数据线是否正确连接了PC机与开发板,USB驱动是否装好等),通过USB Port选择transmit选项开始传输zImage(系统内核),目的将zImage数据包传入系统内存区,在c0008000系统虚拟内存首地址处等待准备写入的空白地址区)。
UP-CUP6410# nand erase 40000 200000
这个命令是指以0x40000为擦除的首地址,擦除NANDFLASH上的0x200000大小的内存地址上的数据,命令格式是nand + erase+开始擦除的内存地址+往后擦除的大小。
UP-CUP6410# nand write c0008000 40000 200000
这个命令是指以0x40000为写入的首地址,将c0008000处等待准备写入的内核数据从NANDFLASH上的0x40000开始,写入大小为0x200000内存地址上,命令格式是nand + write+等待写入数据内存地址+写入的开始之处+往后写入的范围大小。
2.文件系统烧写
输入dnw c0008000(系统虚拟内存的首地址),回车后,观察DNW软件标题是否为 COM口信息,USB为OK,ADDR为0x50030000,下面提示你等待传输数据(如果不是则检查USB数据线是否正确连接了PC机与开发板,USB驱动是否装好等),通过USB Port选择transmit选项开始传输rootfs_up6410.cramfs(文件系统),目的将rootfs_up6410.cramfs数据包传入系统内存区,在c0008000系统虚拟内存首地址处等待准备写入的空白地址区)
UP-CUP6410# nand erase 300000 f00000
这个命令是指以0x300000为擦除的首地址,擦除NANDFLASH上的0xf00000大小的内存地址上的数据,命令格式是nand + erase+开始擦除的内存地址+往后擦除的大小。
UP-CUP6410# nand write c0008000 300000 f00000
这个命令是指以0x300000为写入的首地址,将c0008000处等待准备写入的文件系统数据从NANDFLASH上的0x300000开始,写入大小为0xf00000内存地址上,命令格式是nand + write+等待写入数据内存地址+写入的开始之处+往后写入的范围大小。
此时开发板烧写已经完成,可以重启开发板,看一下DNW显示的数据信息,感觉内心是不是特别的爽,充满着喜悦和激动,并夹带着成就感呢?
这里顺便再加一点东西吧!关于Demo的传输,原理是将yaffs安装包(DEMO)通过网络文件传输到开发板中!开始准备工作,插好网线,修改PC机的IP为192.168.1.*,因为开发板的IP为192.168.1.199,打开FLASHFXP,注完册后,点击会话菜单选择快速链接,此时输入服务器的IP为192.168.1.199,在PC下找到yaffs.tar.bz2后放入开发板 /tmp目录下,或者点击yaffs.tar.bz2右击后选择传送,也可以的!不好意思,要先打开超级终端或DNW后在进行网络传输文件!
传输完毕后,进入到/tmp目录下
tar xjvf yaffs.tar.bz2 –C /mnt/yaffs
等待解压完毕后,进入到yaffs目录下,就可以进行触屏运行Demo中的小应用啦!。。。。。
好了,我相信这篇博客会帮助热爱嵌入式的亲们提供微薄之力的!谢谢你耐心看完,有错误之处,敬请指正!。。。。。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。