嵌入式 uboot命令及内核启动参数

原创 2013年12月02日 14:49:47

 

tftp uclibc_64k.jffs2
sf probe 0
sf erase 0x380000 0x600000
sf write 0x80008000 0x380000 0x500000(内存起始地址 flash起始地址大小)

Uboot相关命令介绍

       printenv 查看环境变量

       setenv   添加,修改,删除环境变量

      例 setenv aaa 123 //添加环境变量aaa其值为123
         setenv aaa 789 //在上行变量基础上把aaa的值修改(重设)为789
         setenvaaa     //把aaa变量删除

       saveenv   保存环境变量

        flinfo   查看flash信息

        bdinfo   查看开发板信息


查看和修改内存值的指令(可以查看和修改SDRAM和寄存器值)

  [.b, .w,.l]代表了查看和修改形式:bit、word、long

md      查看内存

  参数   md.b [address]//按字节显示 
              md.w [address] //按字显示 
             md.l [address] //按长字显示

nm     修改内存值 (指定地址)

  参数    nm.b[address] //按字节显示 
              nm.w [address] //按字显示 
            nm.l [address] //按长字显示

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

  参数    mm.b[address] //按字节显示 
              mm.w [address] //按字显示 
           mm.l [address] //按长字显示

mw     用指定的数据填充内存

  参数    mw.b[address value ] //按字节显示 
             mw.w [address value ] //按字显示 
             mw.l [address value ] //按长字显示

cp    内存的拷贝(包括内存与Nor Flash间的数据拷贝)

  参数    cp.b[source target count] //按字节显示 
         cp.w [source target count]//按字显示  
         cp.l [source target count] //按长字显示

        例 cp source dest len


protect 扇区写保护(对Flash 写保护)

protect on all 保护全开
protect off all 保护解除

protect on startend    //startend是照起始地址和结束地址定义范围
protect off startend   //start是保护块的起始地址;
                    //end 是保护末尾块的结束地址。
例如:保护Sector 2和Sector 3区域命令为protect 20000 3ffff

protect on start+size        //start +size是照起始地址和操作字节数定义范围
protect off start +size //start是保护块的起始地址;
                      //size 是保护的字节数。
例如:保护Sector 2和Sector 3区域命令为protect 20000 +20000

protect on N:SF[-SL] 
protect off N:SF[-SL] 
               //N:SF[-SL]是按照组和扇区,N 表示Flash 的Block号,
               //SF 表示保护起始Sector号,SL 表示保护结束Sector号。
例如:保护Block1 的Sector 2和Sector 3区域命令为protect1:2-3

protect on bankN      //bank N是保护整个Block,
protect off bankN    //保护Block号为N 的整个Flash

erase  擦除Flash的命令

erase   all擦除全部


erase   startend    //start end是照起始地址和结束地址定义范围,
                    //start是擦除块的起始地址;
                   //end 是擦除末尾块的结束地址。
例如:擦除Sector 2和Sector 3区域命令为erase 20000 3ffff

erase   start+size          //start +size是照起始地址和操作字节数定义范围
                    //start是擦除块的起始地址;
                   //size 是擦除的字节数。
例如:擦除Sector 2和Sector 3区域命令为erase 20000 +20000

erase  N:SF[-SL] 
                 //N:SF[-SL]是按照组和扇区,N 表示Flash 的Block号,
               //SF 表示擦除起始Sector号,SL 表示擦除结束Sector号。
例如:保护Block1 的Sector 2和Sector 3区域命令为erase 1:2-3

erase   bankN        //bank N是擦除整个Block,
                    //擦除Block号为N 的整个Flash


从Nand flash中读数据
            Nand read dest(sdram) src(Flash) size

对Nand flash擦除数据
            Nand erase start size

向Nand flash中写数据
             Nand write src(sdram) dest size

 

    ---------------------------------bootarg--------------------------------

    bootfile=uImage

    serverip=192.168.1.177

    nfshost=192.168.1.177

    setbootargs=console=ttyS0,115200n8=noinitrd rw ip=192.168.1.80video:output=pal root=/dev/nfsnfsroot=192.168.1.177:/work/ramdisk,nolock mem=28M

    setbootcmd='tftp;bootm'

    setsetboot setenv bootargs \$(bootargs) eth=\$(ethaddr)

    setbootcmd 'run setboot; bootm 0x2040000'

    1.得到所有命令列表

    2.help: help usb, 列出USB功能的使用说明

    3.ping:注:只能开发板PING别的机器

    4.setenv: 设置互环境变量:

    5.setenv serverip 192.168.0.1

    6.setenv ipaddr 192.168.0.56

    7.setenv bootcmd ‘tftp 32000000 vmlinux; kgo 32000000’

    8.saveenv: 保存环境变量

    9.在设置好环境变量以后, 保存变量值

    10.tftp: tftp 32000000 vmlinux,把server(IP=环境变量中设置的serverip)中/tftpdroot/下的vmlinux通过TFTP读入到物理内存32000000处。

    11.kgo: 起动没有压缩的linux内核,kgo 32000000

    12.bootm:起动UBOOT TOOLS制作的压缩LINUX内核, bootm 3200000

    13.protect: 对FLASH进行写保护或取消写保护, protect on1:0-3(就是对第一块FLASH的0-3扇区进行保护),protect off 1:0-3取消写保护

    14.erase: 删除FLASH的扇区, erase 1:0-2(就是对每一块FLASH的0-2扇区进行删除)

    15.cp: 在内存中复制内容, cp 32000000 040000(把内存中0x32000000开始的0x40000字节复制到0x0处)

    16.mw: 对RAM中的内容写操作, mw 32000000 ff10000(把内存0x32000000开始的0x10000字节设为0xFF)

    17.md: 修改RAM中的内容, md 32000000(内存的起始地址)

    18.usb:

    lusb start: 起动usb 功能

    lusb info: 列出设备

    lusb scan: 扫描usb storage(u 盘)设备

    19.fatls:列出DOS FAT文件系统, 如:fatls usb 0列出第一块U盘中的文件

    20.fatload: 读入FAT中的一个文件,如:fatload usb 0:0 32000000 aa.txt

    21.把USB中的aa.txt 读到物理内存0x32000000处!

    22.flinfo: 列出flash的信息

    23.loadb: 准备用 KERMIT协议接收来自kermit或超级终端传送的文件。

    24.nfs: nfs 32000000 192.168.0.2:aa.txt , 把192.168.0.2(LINUX的NFS文件系统)中的NFS文件系统中的aa.txt 读入内存0x32000000处。

相关文章推荐

嵌入式内核制作、根文件系统及内核启动流程

嵌入式软硬件架构       软件:根文件系统、Linux内核、Bootloader       硬件:底层硬件嵌入式Linux系统由Linux内核与根文件系统两部分组成,缺一不可一、内核制作    ...

uboot源码阅读(六)大佬的命令 uboot引导内核启动

大佬的命令下来了,不过并不是每个人都有资格去执行这样的命令,有资格的都是经过层层选拔了的。在江湖中你也是要不断努力拼搏的,否则,小弟永远都是小弟。 下面就是解析输入的字符串,然后在命令列表中找到相对...
  • ecbtnrt
  • ecbtnrt
  • 2011年07月24日 21:05
  • 1850

嵌入式linux内核启动分析

  • 2013年08月22日 17:19
  • 546KB
  • 下载

Uboot移植之<二>------支持DM900、zImage内核启动

3.5 支持网络DM9000 3.6支持内核启动 3.7 支持yaffs2启动 3.8 支持menu菜单选项 3.9 其他 3.9.1支持Tab补全命令和上下键调用历史命令 3.9.2...

uboot内核启动过程源码分析

下面是我对uboot如何启动内核的代码进行的分析 需要了解的数据结构: bd 数据结构: typedef struct bd_info {     int bi_baudrate; /* s...
  • Doonavd
  • Doonavd
  • 2012年02月12日 13:42
  • 667

grub常用命令的使用与内核启动

  • 2010年07月18日 09:19
  • 61KB
  • 下载

嵌入式linux 内核启动时动态加载驱动模块的方法

前言手头有个项目底层基本结束,所有的驱动都已经写好,并且调试通过了,但是考虑到每次使用时都手动加载驱动,岂不是很“蠢”,能自动的事怎么能手动呢? 于是开始折腾“linux开机自动加载驱动”,百度,谷...

【实战】嵌入式linux修改内核启动的LOGO界面

默认是小企鹅,现在我们换成一张自己的图片。准备好BMP或者PNG 图片,若是别的格式的图片,可以使用Windows自带的画图软件打开,然后另存为BMP或者PNG格式,Logo图片分辨率不大于LCD分...

图文详解!嵌入式Linux内核启动主要分为这三个阶段

转载于http://mp.weixin.qq.com/s/tcYkKyn4CW0EIbR3ceTKeQ 嵌入式linux内核的启动全过程主要分为三个阶段。第一阶段为内核自解压过程,第...

嵌入式linux内核启动过程简明描述

一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次: 1. 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:嵌入式 uboot命令及内核启动参数
举报原因:
原因补充:

(最多只允许输入30个字)