zoukankan      html  css  js  c++  java
  • 1.ok6410移植bootloader,移植u-boot,学习u-boot命令

                ok6410移植u-boot

    既然是移植u-boot当然首先需要u-boot源码,这里的u-boot代码是由国嵌提供的。

    一、配置编译u-boot

      A. 解压 u-boot 压缩文件
      B. 进入解压生成文件中
      C. 执行 make distclean 和 make clean
      D. make forlinx_nand_ram256_config
      E. make CROSS_COMPILE=arm-linux- ARCH=arm

      其中D. make forlinx_nand_ram256_config是配置u-boot,至于后面的参数是因为我用的是飞凌公司的Ok6410A开发板,可以通过查看u-boot里面makefile的目标文件得到。进入u-boot解压好的源码中执行:vim Makefile   使用低行模式/forlinx

      其中E步骤中的:make CROSS_COMPILE=arm-linux- ARCH=arm 是指定makefile中可能使用到的编译器arm-linux-,并且指定平台arm进行编译

    二、下载镜像文件到开发板

      选择从SD卡启动然后通过dnw下载生成的u-boot.bin文件:/home/dnw  u-boot.bin  50000000

    三、u-boot命令学习

      上一步下载完u-boot镜像后,设置开发板从nandflash启动

      待开发板从nandflash启动以后进入命令行,通过help命令查看当前开发板可以支持的命令。下面学习几个通用的u-boot命令

    3.1 查看环境变量
      printenv =print
    3.2 添加、修改、删除环境变量
      1).setenv name value
        add/modify
      2).setenv name
        delete
    3.3 保存环境变量到 flash
      saveenv=save
    3.4 通过 tftp 进行文件下载(CRT 下面操作)
      #setenv ipaddr 192.168.2.1 (开发板 ip)
      #setenv serverip 192.168.2.3(tftp 服务器的地址)

      #save 进行保存 

      #ping 192.168.2.3 测试网络是否畅通
      #tftp 0xc0008000 zImage (这里使用tftp下载程序需要在pc机上搭建tftp服务器)
      为 ok6410 下载内核映像(不同的开发板地址不一样)

    3.5 执行程序

      bootm {addr} {arg}

      执行固定格式的 2 进制程序

      例: bootm 0xc0008000

    3.6 查看内存内容

      md 显示内存区的内容

      md 采用十六进制和 ASCII 码两种形式来显示存储单元的内容。

      这条命令还可以采用长度标识符.l, .w 和.b :

      md [.b, .w, .l] address

      范例:

      md.w 100000

    3.7修改内存内容

      mm 修改内存,地址自动递增。

      mm [.b, .w, .l] address

      mm 提供了一种互动修改存储器内容的方法。它会显示地址和当前值,然后提示用户输入。如果你输入了一个合法的十六进制数,这个新的值将会被写入该地址。然后提示下一个地址。如果你没有输入任何值,只是按了一下回车,那么该地址的内容保持不变。如果想结束输入,则输入空格,然后回车。

      => mm 100000

    8.擦除 nand flash

      nand erase 起始地址 start 长度 len

      擦除 start 处开始的,长度为 len 的区域

      范例:
      #nand erase 0x400000 0x500000

    3.9写/读 nand flash

      nand   write  内存起始地址  flash  起始地址    长度 len

      将内存起始地址处,长度为 len 的数据,写入 flash 起始地址处。

      范例:

      #nand write c0008000 400000 500000

      nand read 内存起始地址 flash 起始地址 长度 len

      将 flash 起始地址处,长度为 len 的数据,读到内存起始地址处。

      范例:

      #nand read c0008000 400000 500000

    3.10设置自启动

      A. 设置从 nand flash 自动启动

        #setenv bootcmd nand read c0008000 400000 500000 ; bootm c0008000

      B. 设置自动下载内核到内存后启动

        #setenv bootcmd tftp c0008000 uImage ; bootm c0008000

  • 相关阅读:
    《算法竞赛入门经典》 例题35 生成元 (Digit Generator, ACM ICPC Seoul 2005,UVa)
    《算法竞赛入门经典》 例题35 生成元 (Digit Generator, ACM ICPC Seoul 2005,UVa)
    《算法竞赛入门经典》 例题35 生成元 (Digit Generator, ACM ICPC Seoul 2005,UVa)
    SVN分支
    SVN分支
    SVN 版本回退
    SVN 版本回退
    如何在excel中取消合并单元格后内容自动填充?
    如何在excel中取消合并单元格后内容自动填充?
    如何让自己像打王者荣耀一样发了疯、拼了命的学习?
  • 原文地址:https://www.cnblogs.com/wmx-learn/p/5321360.html
Copyright © 2011-2022 走看看