u-boot的烧写及使用

版权声明: https://blog.csdn.net/qq_38697681/article/details/82555792
  1. SD启动盘制作
    1. 将SD卡启动制作工具/sd_fusing拷贝到Linux下
    2. 将SD卡插入电脑并识别
    3. 进入sd_fusing执行如下操作

$ make

$ chmod   777   sd_fusing.sh

$ sudo    ./sd_fusing.sh    /dev/sdb(sdb为sd卡在ubuntu的设备节点)

  1. u-boot的烧写
    1. 运行串口通信程序(putty)
    2. 关闭开发板电源,将拨码开关SW2调至0110(SD启动模式)后打开电源
    3. 将刚才做好的SD启动盘插入SD卡插槽
    4. 重新打开开发板能够看到如下界面
    5. 设置板子环境变量

# setenv   serverip   192.168.1.200  //和ubuntu ip 一直

# setenv   ipaddr    192.168.1.100   //板子的ip 不要和windows 和Ubuntu冲突

    1. 将镜像文件/u-boot.bin拷贝到ubuntu的/tftpboot目录下
    2. 烧写

# tftp   20008000   u-boot.bin

# nand  erase   0   100000

# nand   write   20008000   0   100000

    1. 关闭开发板电源,将拨码开关SW2调至1000(NAND启动模式)后打开电源可以看到如下界面表示烧写成功

  1. 通过网络加载内核和文件系统
    1. 将镜像文件/zImage拷贝到ubuntu的 /tftpboot下
    2. 将镜像文件/rootfs.tar.bz2拷贝到ubuntu的 /source下并解压
    3. 修改虚拟机nfs配置文件/etc/exports,添加如下内容并重启nfs服务

source/rootfs  *(rw,sync,no_subtree_check,no_root_squash)

    1. 重新驱动nfs服务

$ sudo   /etc/init.d/nfs-kernel-server restart

    1. 设置启动参数

# setenv   bootcmd   tftp    20008000   zImage\;  go   20008000

#setenvbootargs  root=nfs  nfsroot=192.168.1.100:/source/rootfs  ip=192.168.1.200  init=/linuxrc  console=ttySAC0,115200

# saveenv

    1. 启动开发板看到如下现象表示成功通过网络挂载:

  1. u-boot其他命令
    1. u-boot支持的命令我们可以通过在终端上输入”?”查看

 

 

  1. 交叉编译和交叉调试
    1. 编辑程序源码myapp.c(自己写一个简单的c程序)
    2. 交叉编译后复制到/source/rootfs   (编译时添加选项-g)

# arm-cortex_a8-linux-gnueabi-gcc myapp.c –o myapp -g

    1. 复制gdbserver到/source/rootfs    (gdbserver在工具链安装路径下查找)
    2. 在开发板上如下运行

# gdbserver  192.168.1.200:1234  myapp &

    1. 在主机上运行交叉调试器

$ arm-cortex_a8-linux-gnueabi-gdb  myapp

    1. 在交叉调试器下和开发板gdbserver建立连接

(gdb)  target  remote  192.168.1.200:1234

设置断点,输入命令c开始调试程序(注意观察串口输出)

 

实验中用的工具:https://github.com/XiaoYaoNet/U-boot

猜你喜欢

转载自blog.csdn.net/qq_38697681/article/details/82555792
今日推荐