• 【原创】-- Linux 下利用dnw进行USB下载


    原帖地址: http://blog.csdn.net/jjzhoujun2010

         http://blog.csdn.net/yf210yf/article/details/6700391

         http://www.cnblogs.com/lixiaoming90/archive/2013/03/21/2973837.html

    1、开发环境:

      开发板是 OK6410  PC操作系统 Ubuntu 14.04

      USB 转串口线

    2、安装配置minicom:

      2.1 下载安装minicom

      sudo apt-get install minicom

      2.2 运行minicom
      运行“sudo minicom -s”命令进入配置界面(或者直接运行“sudo minicom”, 然后同时按下“回车+A”,再按Z,最后按O,同样进入配置界面)

      2.3 配置串口
      选择 “串口设置”,进入串口配置界面

      选择串口设备: 在Linux下,COM0端口为 /dev/ttyS0,COM1端口为 /dev/ttyS1, 我的串口线连在COM1端口,因此选择 /dev/ttyS1
      设置波特率和帧格式  115200 8N1(115200 8N1:115200为波特率, 8表示帧数据长度为8,N表示无奇偶校验位,1表示1位停止位)

      注意: 如果没有使用USB转串口,而是直接使用串口,那么Serial Device要配置为/dev/ttyS0 (2)如果使用USB转串口,在插入USB转串口后,则需要查看dev下是否存  在ttyUSB0, 若没有,则创建一个: mknod /dev/ttyUSB0 c 188 0

      本人采用USB转串口线,所以选择串口为 /dev/ttyUSB0
      

      2.4保存配置
      有两个保存选项:“设置保存为dfl” 和 “ 设置保存为.. ”
      1、设置保存为dfl: 将配置保存为默认配置,下次运行 ”sodu minicom“命令时,自动启用该配置
      2、设置保存为.. :保存配置文件,下次运行 “sudo minicom 配置名” 时启用配置文件。比如我将配置文件保存为myconf,那么运行"sudo minicom myconf"将启用配置.

      2.5 退出后再次进入

      先退出


      运行"sudo minicom 配置名"启用配置。如果配置名为空,则启用默认配置。

      下次在输入minicon 即可直接进入。

      命令minicom是进入串口超级终端画面,而minicom -s为配置minicom。

      注意:非正常关闭minicom,会在/var/lock下创建几个文件LCK*,这几个文件阻止了minicom的运行,将它们删除后即可恢复。

      使用配置好的设置再次启动后,minicom中就可以打印串口信息了。

    3、dnw  for  linux

      注意:不同的开发板使用的dnw可能不同,具体情况及DNW编写方法有待下一步整理(》》》),此处使用的是已经修改好的针对OK6410的dnw

      3.1  dnw由两部分构成:USB驱动和下载工具,USB驱动便是secbulk文件夹,下载工具是DNW文件夹

           下载地址:https://files.cnblogs.com/lixiaoming90/dnw_linux.rar

           文件名:DnwLinux.rar

      3.2  安装dnw

         解压缩,之后会看到dnw_linux文件夹,进入该文件夹

         3.2.1  secbulk编译安装
         $ cd secbulk

         $ make

         之后会有secbulk.ko模块文件

         加载该模块到内核(注意:需要root权限)

         $ sudo insmod secbulk.ko

        加载后用dmesg命令可以看到模块已经成功加载
         [  238.007970] secbulk:secbulk loaded
         [  238.009101] usbcore: registered new interface driver secbulk

      使用lsmod也可以看看加载成功没。

          $ lsmod | grep secbulk

         常见问题: can not open /dev/secbulk0,  则表示该模块没有加载成功或者dnw没有root权限

        3.2.2 dnw编译安装

         $ cd dnw

        $ gcc –o dnw dnw.c

      注意:

      1、能会有一些警告,不过可以忽略。在dnw下生成dnw工具

      2、将dnw复制到/bin目录下,这样就可以在任意文件目录下调用dnw命令。  

      3、 因为要用dnw的话,要确保secbulk驱动加载到内核,为了避免每次都要手动加载,因此修改/etc/init.d/rc.local文件(root权限),在后面加上下面一句:

           insmod /….你的secbulk.ko文件目录/secbulk.ko

           保存退出完事。

      3.3  dnw运用

      3.3.1 下载到内存

      打开两个终端,一个输入minicom命令,打开串口调试,当开发板加载uboot时按下PC上的空格键,使其停在下载模式,输入以下命令:

      SMDK6410# dnw  0x50008000

         此时终端打印以下信息,说明USB连接成功,就等待你下载传输了。情况如下:

         2

      在另外一个终端输入以下命令,下载文件:

         $ dnw /你要下载的文件路径/文件名

         下载过程和结果如下:

          4

         到此为止,dnw的介绍结束。

      程序已经下载到内存中,如果想在内存中运行改程序程序,命令如下:

         SMDK6410#  go 0x50008000

      

      3.3.2 下载到NandFlash

         下载到NandFlash中的代码掉电后依旧可用

      步骤如下:

        (1)制作烧写Uboot的SD卡

        (2)设置开发板为SD卡启动,启动后按PC上的空格键停在Uboot下载调试界面,下面的就跟上面的步骤一样,将程序通过USB烧写到内存中

        (3)将NandFlash中的0~1M的空间擦除,再把下到内存地址中的程序烧写到NandFlash的0~100000空间中(uboot中默认的是16进制)

                  SMDK6410#  nand erase 0 100000

                  SMDK6410#  nand write.e 0x50008000 0 100000

         (4)设置开发板为NandFlash启动,重启。

            

  • 相关阅读:
    解决一切日期问题的日期类
    汉诺塔类型问题解析
    窗口滑动
    大暑假集训总结(反思)
    找硬币题解
    Fiolki题解
    大逃亡题解
    Luogu6080 [USACO05DEC]Cow Patterns G
    Luogu3193 HNOI2008 GT考试
    Codeforces1355F Guess Divisors Count
  • 原文地址:https://www.cnblogs.com/apolloenterprise/p/4320422.html
Copyright © 2020-2023  润新知