关于UP-CUP6410开发板的烧写心得
更新:HHH   时间:2023-1-7


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中的小应用啦!。。。。。

好了,我相信这篇博客会帮助热爱嵌入式的亲们提供微薄之力的!谢谢你耐心看完,有错误之处,敬请指正!。。。。。


返回开发技术教程...