• [国嵌攻略][097][U-Boot新手入门]


    嵌入式软件层次

    1.Bootloader

    2.Linux内核

    3.文件系统

    编译U-Boot

    1.解压uboot

    tar zxvf uboot.tar.gz

    2.清除uboot

    make distclean

    3.配置uboot

    make mini2440_config

    4.编译uboot

    ARCH指定处理器架构,CROSS_COMPLIE指明交叉工具链

    make ARCH=arm CROSS_COMPLIE=arm-linux-

    5.下载uboot

    ./dnw u-boot.bin 30000000

    uboot命令

    1.help:帮助命令

    示例:

    help   显示所有uboot支持的命令

    2.printenv(print):查看环境变量

    示例:

    printenv(print)   显示所有环境变量

    printenv(print) 环境变量名   显示指定的环境变量

    3.setenv:添加、修改和删除环境变量

    示例:

    setenv new_name new_value   添加环境变量

    setenv old_name new_value   修改环境变量

    setenv old_name             删除环境变量

    4.saveenv:保存环境变量

    示例:

    saveenv   保存所有环境变量到闪存

    5.tftp:文件下载

    示例:

    setenv ethaddr 12:34:56:78:9A:BC   设置网卡地址

    setenv ipaddr 192.168.1.230        设置开发板IP地址

    setenv serverip 192.168.1.100      设置服务器IP地址

    saveenv                            保存环境变量

    ping 192.168.1.100                 测试是否能ping通tftp服务器

    tftp 0x31000000 uImage         下载uImage到开发板的0x31000000位置

    配置tftp服务器

    vim /etc/xinetd.d/tftp       设置server_args=tftp服务器目录,disable=no

    /etc/inid.d/xinetd restart   启动tftp服务器

    netstat –a | grep tftp      查看tftp服务是否启动

    6.bootm:执行程序

    执行固定格式的2进制程序,固定格式是指加了相关信息头部的可执行程序。

    示例:

    bootm 0x31000000

    7.md:内存查看

    md采用十六进制和ASCII码两种形式来显示存储单元的内容。这条命令可以加长度标示符.b,.w和.l。

    示例:

    md 0x30000000     以十六进制显示内存数据

    md.b 0x30000000   以字节进制显示内存数据

    8.mm:内存修改

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

    mm 0x30000000     以十六进制修改内存数据

    9.nand erase:擦除闪存

    nand erase 闪存起始地址 擦除长度

    示例:

    nand erase 0x400000 0x500000   从闪存的4M位置处擦除5M大小的区域

    10.nand write:写入闪存

    nand write 内存起始地址 闪存起始地址 写入长度

    示例:

    nand write 0x31000000 0x400000 0x500000   把内存31000000位置写入5M到闪存4M位置

    11.nand read:读取闪存

    nand read 内存起始地址 闪存起始地址 读取长度

    示例:

    nand read  0x31000000 0x400000 0x500000   把闪存4M位置读取5M到内存31000000位置

    12.设置自动启动

    12.1.设置从闪存自动下载到内存,然后启动

    示例:

    setenv bootcmd nand read 31000000 400000 500000 ; bootm 31000000

    saveenv

    12.2.设置从网络自动下载到内存,然后启动

    setenv bootcmd tftp 31000000 uImage ; bootm 31000000

    saveenv

    注意:多条命令用;隔开,并且两边都要有空格

    设置uboot启动Linux内核

    1.查看环境变量

    print

    2.修改环境变量

    setenv ethaddr 12:34:56:78:9A:BC

    setenv ipaddr 192.168.1.230

    setenv serverip 192.168.1.100

    saveenv

    3.测试网络连接

    ping 192.168.1.100

    4.网络下载内核

    tftp 0x30008000 uImage

    5.内核写入闪存

    nand write 30008000 400000 500000

    6.设置自动启动

    setenv bootcmd nand read 30008000 400000 500000 ; bootm 30008000

    saveenv

  • 相关阅读:
    最易懂的语音自动增益原理介绍
    共振峰估计基础
    语音基音周期估计基础
    语音信号临界带宽的概念解释
    语音信号的时域维纳滤波器原理简介
    几种改进的谱减算法简介
    谱减算法的缺点和过减因子、谱下限的关系
    关于语音分帧时有重叠部分的原因分析
    x264命令参数与代码中变量的对应关系
    笔记--语音信号的预加重
  • 原文地址:https://www.cnblogs.com/d442130165/p/5237688.html
Copyright © 2020-2023  润新知