U-boot(一):Uboot命令和tftp

        本文主要基于S5PV210探讨uboot。

uboot
        部署:uboot(180~400K的裸机程序)在Flash(可上电读取)、OS在FLash(nand)
        启动过程:上电后先执行uboot、uboot初始化DDR和Flash,将OS从Flash中读到DDR中启动OS,uboot结束
        特点:开机直接启动,引导操作系统内核启动并给内核传参

        uboot对Flash和DDR管理:uboot在Flash起始地址(扇区0/1,SoC决定,大小512KB/1MB),环境变量大小32KB左右,kernel大小3MB/5MB,rootfs大小2/3G,其余为自由分区,各分区紧挨排布,不堆叠

tftp服务器搭建

        预备:

                windows10

                unbuntu14.04

                S5PV210开发板

        网络配置:

               windows10配置:以太网配置IP:192.168.100.99,255.255.255.0,192.168.100.1

                ubuntu配置:NAT网卡连接网络,桥接网卡(网络模式选择以太网对应模式):192.168.100.100,255.255.255.0,192.168.100.1

                uboot(已烧录ubbot到210的sd卡)

set ipaddr    192.168.100.27

set gatewayip 192.168.100.1

set serverip  192.168.100.100

save

         uboot的IP配置及网络测试

   

           ubuntu部署tftp

apt-get install tftp-hpa tftpd-hpa xinetd -y

vim /etc/default/tftpd-hpa

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/root/tftp_file"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"


vim /etc/xinetd.d/tftp

service tftp
{
	socket_type = dgram
	wait = yes
	disable = no
	user = root
	protocol = udp
	server = /usr/sbin/in.tftpd
	server_args = -s /root/tftp_file
	#log_on_success += PID HOST DURATION
	#log_on_failure += HOST
	per_source = 11
	cps =100 2
	flags =IPv4
}


service tftpd-hpa start


mkdir /root/tftp_file

chmod 777 /root/tftp_file

测试

cd ~

touch /root/tftp_file/a.txt

tftp 127.0.0.1

get a.txt

quit

ls /root/a.txt

root目录下有下载完成的a.txt(来自/root/tftp_file)

          tftp测试

ububtu:上传zImage到/root/tftp_file

uboot:
    
    tftp 30008000 zImage

    movi read kernel 30008000

    bootm 30008000

      

uboot命令
        基础
                bdinfo:查看开发板基础信息             

x210 # bdinfo
arch_number = 0x00000998
env_t       = 0x00000000
boot_params = 0x30000100
DRAM bank   = 0x00000000
-> start    = 0x30000000
-> size     = 0x10000000
DRAM bank   = 0x00000001
-> start    = 0x40000000
-> size     = 0x10000000
ethaddr     = 00:40:5C:26:0A:5B
ip_addr     = 192.168.1.88
baudrate    = 115200 bps


                version:查看uboot版本

x210 # version

U-Boot 1.3.4-dirty (May 21 2016 - 18:17:00) for x210


                print/printenv:打印环境变量
                set/setenv:设置(删除)环境变量
                save/saveenv:保存环境变量
                reset:重启
                poweroff:关机
                注意:设置和打印和删除的环境变量均为uboot启动时从flash中读到DDR中的环境变量,save可将set设置的命令同步到flash中

        ddr
                md:打印内存值
                md [.b, .w, .l] address [# of objects]
                b:byte(1字节),w:word(2字节),l:long(4字节)
                address:起始地址,后跟字节长度
        

x210 # help md
md [.b, .w, .l] address [# of objects]
          - memory display

x210 # md.b 30000000
30000000: f2 28 3e 74 83 cc 34 9a ae 9a 98 a2 c6 d7 49 9b    .(>t..4.......I.
30000010: ff ab bb b1 db fa 55 3c 9f ff ff f4 7e be ff d1    ......U<....~...
30000020: f3 fc 3f d7 fe ff fe e2 9f b7 de eb 9f ff ae ef    ..?.............
30000030: 8e f5 de e7 3d f9 7c e2 6e f8 1f f8 dc ed 7e fd    ....=.|.n.....~.
x210 # md.w 30000000
30000000: 28f2 743e cc83 9a34 9aae a298 d7c6 9b49    .(>t..4.......I.
30000010: abff b1bb fadb 3c55 ff9f f4ff be7e d1ff    ......U<....~...
30000020: fcf3 d73f fffe e2fe b79f ebde ff9f efae    ..?.............
30000030: f58e e7de f93d e27c f86e f81f eddc fd7e    ....=.|.n.....~.
30000040: afbf fb93 7d6d 41ef febf edd8 6ffb 4bee    ....m}.A.....o.K
30000050: c259 79ed dd59 ae78 c718 cdca 2f49 fcea    Y..yY.x.....I/..
30000060: fdb5 8e6a 3def e3be 6eab feed def7 eeab    ..j..=...n......
30000070: f6f1 f6be 0935 59bd f0ff eab6 0f9b dc5b    ....5..Y......[.
x210 # md.l 30000000
30000000: 743e28f2 9a34cc83 a2989aae 9b49d7c6    .(>t..4.......I.
30000010: b1bbabff 3c55fadb f4ffff9f d1ffbe7e    ......U<....~...
30000020: d73ffcf3 e2fefffe ebdeb79f efaeff9f    ..?.............
30000030: e7def58e e27cf93d f81ff86e fd7eeddc    ....=.|.n.....~.
30000040: fb93afbf 41ef7d6d edd8febf 4bee6ffb    ....m}.A.....o.K
30000050: 79edc259 ae78dd59 cdcac718 fcea2f49    Y..yY.x.....I/..
30000060: 8e6afdb5 e3be3def feed6eab eeabdef7    ..j..=...n......
30000070: f6bef6f1 59bd0935 eab6f0ff dc5b0f9b    ....5..Y......[.
30000080: 1141df55 9f98bd6a e3d83e9e 39fcabf5    U.A.j....>.....9
30000090: ac479f9a dca771e2 6b61c763 cec95d3d    ..G..q..c.ak=]..
300000a0: a4c8ceff ffbbebaa ea22aebf fa8ecf9e    ..........".....
300000b0: ed7bfffe a1277d2b f4b4ff56 cb81deff    ..{.+}'.V.......
300000c0: d59d27e4 af0d3eed beed2ebf b399b789    .'...>..........
300000d0: 5cd5bd57 ffa8bef9 b52cf9a9 ede94ff6    W..\......,..O..
300000e0: 3eedc9f7 9ecab7ff 6a0bf777 6b1b46f9    ...>....w..j.F.k
300000f0: 73e639bb 255a8ccf 2ebfb8cb 7a3a5d37    .9.s..Z%....7]:z
x210 # 


                nm:修改指定内存地址的数据
                nm [.b, .w, .l] address

x210 # md.b 30000000
30000000: f2 28 3e 74 83 cc 34 9a ae 9a 98 a2 c6 d7 49 9b    .(>t..4.......I.
30000010: ff ab bb b1 db fa 55 3c 9f ff ff f4 7e be ff d1    ......U<....~...
30000020: f3 fc 3f d7 fe ff fe e2 9f b7 de eb 9f ff ae ef    ..?.............
30000030: 8e f5 de e7 3d f9 7c e2 6e f8 1f f8 dc ed 7e fd    ....=.|.n.....~.
x210 # nm.b 30000000
30000000: f2 ? 11
30000000: 11 ? q
x210 # md.b 30000000
30000000: 11 28 3e 74 83 cc 34 9a ae 9a 98 a2 c6 d7 49 9b    .(>t..4.......I.
30000010: ff ab bb b1 db fa 55 3c 9f ff ff f4 7e be ff d1    ......U<....~...
30000020: f3 fc 3f d7 fe ff fe e2 9f b7 de eb 9f ff ae ef    ..?.............
30000030: 8e f5 de e7 3d f9 7c e2 6e f8 1f f8 dc ed 7e fd    ....=.|.n.....~.


                mm:递归修改指定内存地址的数据
                mm [.b, .w, .l] address
       

x210 # mm.b 30000000
30000000: 11 ? f2
30000001: 28 ? 11
30000002: 3e ? q
x210 # md.b 30000000
30000000: f2 11 3e 74 83 cc 34 9a ae 9a 98 a2 c6 d7 49 9b    ..>t..4.......I.
30000010: ff ab bb b1 db fa 55 3c 9f ff ff f4 7e be ff d1    ......U<....~...
30000020: f3 fc 3f d7 fe ff fe e2 9f b7 de eb 9f ff ae ef    ..?.............
30000030: 8e f5 de e7 3d f9 7c e2 6e f8 1f f8 dc ed 7e fd    ....=.|.n.....~.


                mw:指定的数据填充内存
                mw [.b, .w, .l] address value [count]
                value:数据 count:数据的长度

x210 # mw.b 30000000 668899 2
x210 # md.b 30000000
30000000: 99 99 3e 74 83 cc 34 9a ae 9a 98 a2 c6 d7 49 9b    ..>t..4.......I.
30000010: ff ab bb b1 db fa 55 3c 9f ff ff f4 7e be ff d1    ......U<....~...
30000020: f3 fc 3f d7 fe ff fe e2 9f b7 de eb 9f ff ae ef    ..?.............
30000030: 8e f5 de e7 3d f9 7c e2 6e f8 1f f8 dc ed 7e fd    ....=.|.n.....~.
x210 # mw.b 30000000 668899 4
x210 # md.b 30000000
30000000: 99 99 99 99 83 cc 34 9a ae 9a 98 a2 c6 d7 49 9b    ......4.......I.
30000010: ff ab bb b1 db fa 55 3c 9f ff ff f4 7e be ff d1    ......U<....~...
30000020: f3 fc 3f d7 fe ff fe e2 9f b7 de eb 9f ff ae ef    ..?.............
30000030: 8e f5 de e7 3d f9 7c e2 6e f8 1f f8 dc ed 7e fd    ....=.|.n.....~.
x210 # 

 
                cp将原地址数据复制到目标地址
                cp [.b, .w, .l] source target count

x210 # md.b 30000000
30000000: 99 99 99 99 83 cc 34 9a ae 9a 98 a2 c6 d7 49 9b    ......4.......I.
30000010: ff ab bb b1 db fa 55 3c 9f ff ff f4 7e be ff d1    ......U<....~...
30000020: f3 fc 3f d7 fe ff fe e2 9f b7 de eb 9f ff ae ef    ..?.............
30000030: 8e f5 de e7 3d f9 7c e2 6e f8 1f f8 dc ed 7e fd    ....=.|.n.....~.
x210 #  md.b 30008000
30008000: f2 28 7f f7 9f ef ff ba bf ba f8 eb d6 f7 ba ff    .(..............
30008010: ff ab f3 e3 db fa 4d 3e df df c6 f6 be ab ee f9    ......M>........
30008020: f7 fc bf ff 7f ff bf e3 bf 9f df ef 97 ff ee e3    ................
30008030: 8e f5 de ef 39 f9 fe e7 ff ff ff fa ff ff ff fb    ....9...........
x210 # cp.b  30000000 30008000 4    
x210 # md.b 30008000
30008000: 99 99 99 99 9f ef ff ba bf ba f8 eb d6 f7 ba ff    ................
30008010: ff ab f3 e3 db fa 4d 3e df df c6 f6 be ab ee f9    ......M>........
30008020: f7 fc bf ff 7f ff bf e3 bf 9f df ef 97 ff ee e3    ................
30008030: 8e f5 de ef 39 f9 fe e7 ff ff ff fa ff ff ff fb    ....9...........


                cmp:比较两个地址段数据
                cmp [.b, .w, .l] addr1 addr2 count

x210 # md.b 30000000
30000000: 99 99 99 99 83 cc 34 9a ae 9a 98 a2 c6 d7 49 9b    ......4.......I.
30000010: ff ab bb b1 db fa 55 3c 9f ff ff f4 7e be ff d1    ......U<....~...
30000020: f3 fc 3f d7 fe ff fe e2 9f b7 de eb 9f ff ae ef    ..?.............
30000030: 8e f5 de e7 3d f9 7c e2 6e f8 1f f8 dc ed 7e fd    ....=.|.n.....~.
x210 # md.b 30008000
30008000: 99 99 99 99 9f ef ff ba bf ba f8 eb d6 f7 ba ff    ................
30008010: ff ab f3 e3 db fa 4d 3e df df c6 f6 be ab ee f9    ......M>........
30008020: f7 fc bf ff 7f ff bf e3 bf 9f df ef 97 ff ee e3    ................
30008030: 8e f5 de ef 39 f9 fe e7 ff ff ff fa ff ff ff fb    ....9...........
x210 # md.b 30009000
30009000: 5e f3 dd ff d7 f9 db e5 dc 9f df e7 f3 73 fd f4    ^............s..
30009010: 3c ff b6 ef c7 f5 bf f4 6f fd a6 f7 ff f2 a5 f7    <.......o.......
30009020: f7 ff ff ff f6 d7 e9 f3 cf 3f b3 ef ff 7f fc e1    .........?......
30009030: dc fd 77 f3 cd ff fd fb ed 93 ff ef 3f ff fe ec    ..w.........?...
x210 # cmp.b 30000000 30008000 1
Total of 1 byte were the same
x210 # cmp.b 30000000 30009000 1
byte at 0x30000000 (0x99) != byte at 0x30009000 (0x5e)
Total of 0 bytes were the same
x210 # 

        网络
                ipaddr:地址
                serverip:tftp服务器地址
                dhcp:自动获取地址
                ping:查看网络

        启动
                boot:读取环境变量bootcmd启动Linux
                bootz:启动 zImage 
                bootm: 启动 uImage 
                Image为内核映像文件
                zImage为映像压缩文件
                uImage是uboot映像文件,在zImage前加上64字节头,说明内核的版本、加载位置、生成时间、大小等信息

        flash
                nand scrub:擦除整个NAND,擦除bad block标记
                nand erase addr1 count:擦除NAND,count擦除字节数
                nand write addr offset count:内存数据写入NAND,offset是偏移地址
                nand read addr offset count :NAND数据读取到内存
                nand bad:测试NAND FLASH坏块    

                mmc info 设备的信息

x210 # mmcinfo
Device: S3C_HSMMC0
Manufacturer ID: 11
RCA: 0
OEM: 100
Name: 004GA 
Tran Speed: 52000000
Rd Block Len: 512
MMC version 4.0
High Capacity: Yes
Size: 3776MB (block: 7733248)
Bus Width: 4-bit


                mmc rescan [mode] 扫描开发板上MMC设备,包括EMMC和SD卡
                mmc list 查看开发板MMC设备

x210 # mmc list
S3C_HSMMC0_dev0
S3C_HSMMC2_dev1


                mmc dev 切换当前MMC设备:mmc dev [dev] [part]
                [dev]切换MMC设备号,[part]分区号
                mmc part查看分区
                mmc read 读取mmc设备数据 

                movi init  初始化moviNAND并显示信息
                movi read  {u-boot | kernel} {addr} [bytes(hex)] 读取某地址sd/mmc信息
                movi write {fwbl1 | u-boot | kernel} {addr} [bytes(hex)]写入数据sd/mmc的某地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/145471.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MES系统如何改进生产管理?

伴随机械制造业行业竞争逐渐加剧&#xff0c;越来越多企业意识到MES系统的重要性&#xff0c;慢慢积极主动把握和实施MES系统。可是纵观绝大部分企业或者MES生产商&#xff0c;对MES的掌握依然存在比较大的分歧。 有一些人说MES系统是企业信息化构建的中枢神经&#xff0c;也有…

Oracle(2-3) Basic Oracle Net Server Side Configuration

文章目录 一、基础知识1、The Listener Process监听器进程2、Connection Methods 连接方法3、Spawn and Bequeath Conn4、Direct Hand-Off Connections 直接切换连接5、Redirection Session 重定向会话6、Simple to Complex:N-Tier 简单到复杂&#xff1a;N层7、Service Config…

SQL-LABS

less8 and 11-- 12 发现存在注入点 接下来我们会接着用联合查询 和以往的题目不一样没显错位&#xff0c;也就是没有报错的内容&#xff0c;尝试用盲注 布尔型 length&#xff08;&#xff09;返回长度 substr&#xff08;&#xff09;截取字符串&#xff08;语法substr&a…

【Linux】 ls -l 和 grep

语法:用于显示指定工作目录下之内容 ls [-alrtAFR] [name...]将 /bin 目录以下所有目录及文件详细资料列出: ls -lR /bin将 /usr/local/bin 目录以下所有有关python列出: ls -l /usr/local/bin/ | grep python在使用 ls -l 命令时&#xff0c;第一列的字符表示文件或目录的类…

计算机组成原理——指令系统题库21-40

21、假定指令地址码给出的是操作数的存储地址&#xff0c;则该操作数采用的是什么寻址。 A、 立即    B、 直接     C、 基址     D、 相对 22、寄存器间接寻址方式的操作数存储在什么中 A、 通用寄存器    B、 存储单元     C、 程序计数器     …

【C++】STL的基本用法

目录结构 1. STL概念 1.2 常见容器 1.3 六大组件 2. STL容器之vector 1. vector 2. 基本用法示例 3. STL容器之map 1. map 2. 基本用法示例 1. STL概念 C中的STL是指标准模板库的缩写。STL提供了一组通用的模板类和函数&#xff0c;用于实现常见的数据结构和算法&…

【C/C++底层】内存分配:栈区(Stack)与堆区(Heap)

/*** poject * author jUicE_g2R(qq:3406291309)* file 底层内存分配&#xff1a;栈区(Stack)与堆区(Heap)* * language C/C* EDA Base on MVS2022* editor Obsidian&#xff08;黑曜石笔记软件&#xff09;* * copyright 2023* COPYRIGHT …

图文示例:Python程序的运行原理解读

文章目录 一、编译型语言&#xff08;C语言为例&#xff09;二、动态型语言三、程序是如何运行起来的&#xff1f;四、分析五、dir 函数六、def 指令七、pyc文件1.pyc文件三大作用 八、import 指令总结关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三…

软件工程分析报告05体系结构说明书——基于Paddle的肝脏CT影像分割

基于Paddle的肝脏CT影像分割系统的体系结构说明书 目录 HIPO图 H图 Ipo图 软件结构图 面向数据流的体系结构设计图 程序流程图 S图 用PDL语言描述的伪代码 HIPO图 H图 Ipo图 软件结构图 面向数据流的体系结构设计图 程序流程图 S图 PAD图 用PDL语言描述的伪代码 (1)…

【Hello Go】初识Go语言

初识Go语言 Go语言介绍Go语言是什么Go语言优势Go语言能用来做什么 Go语言环境安装第一个GO语言程序运行Go语言程序 Go语言介绍 Go语言是什么 go语言是是Google开发的一种静态强类型、编译型、并发型&#xff0c;并具有垃圾回收功能的编程语言. 静态类型&#xff1a;在静态类型…

【计算机网络】UDP协议

UDP的结构 我们学习一个协议最主要的就是理解它的报文格式&#xff0c;对于UDP协议来说 我们看下面的这张图。 16位UDP长度&#xff0c;表示整个数据报&#xff08;UDP首部UDP数据&#xff09;的最大长度。UDP报文长度占两个字节&#xff0c;16位表示的数据范围&#xff08;0-…

Java学习之路 —— Day3(内部类、枚举、泛型、API)

文章目录 1. 内部类2. 枚举3. 泛型 1. 内部类 成员内部类 就是类中的一个普通成员&#xff0c;类似普通的成员方法、成员变量。&#xff08;套娃&#xff09; public class Outer {public class Inner {private String name;public static String school;public String getNa…

爆火的迅雷网盘推广,一手云盘app拉新推广渠道必备项目 学习资料

迅雷网盘是目前几个主流网盘拉新推广之一 都可以通过”聚量推客“申请 目前主流的为&#xff1a;夸克网盘拉新、uc网盘推广、迅雷网盘&#xff0c;但是由于阿里的原因 夸克目前不对外开放名额&#xff0c;需要等待&#xff0c;取而代之主流的云盘推广就是迅雷网盘了 聚量推客…

linux基础知识

一、Linux权限详解 Linux的文件权限有以下设定&#xff1a; Linux下文件的权限类型一般包括读&#xff0c;写&#xff0c;执行。对应字母为 r、w、x。 Linux下权限的属组有 拥有者 、群组 、其它组 三种。每个文件都可以针对这三个属组&#xff08;粒度&#xff09;&#x…

bulldog靶机复现

注&#xff1a;个人笔记&#xff0c;有点简陋&#xff0c;仅供参考。 准备&#xff1a;把kali和靶机设置为同一网段&#xff08;NAT&#xff09; 信息搜集 主机扫描 nmap -sP -T4 10.4.7.0/24 扫描出靶机IP为&#xff1a;10.4.7.134 扫描端口、服务 nmap -A -T4 -p- 10.4.…

VRRP(虚拟路由器冗余协议)标准协议工作机制与优势介绍

VRRP标准协议 文章目录 VRRP标准协议简介VRRP标准协议基本概念VRRP标准协议工作机制主备选举主备倒换非抢占模式抢占模式 VRRP标准协议技术优势VRRP典型组网单备份组主备备份多备份组负载分担 推荐阅读 VRRP标准协议简介 VRRP&#xff08;Virtual Router Redundancy Protocol…

怎么阅读芯片源代码(rtl)

part one 主要的原则。 一个rtl可以是这样的&#xff1a; 经常大家习惯于算法和数据结构。对于设计的部分&#xff0c;落实不一定多。 另外一个rtl也可以是这样的&#xff1a; 所以从不同的层面来讲&#xff0c;一个Rtl有不同的表述。 首先大概把所有的部分浏览一遍&#x…

碳交易机制下考虑需求响应的综合能源系统优化运行(附带Matlab程序)

碳交易机制下考虑需求响应的综合能源系统优化运行&#xff08;附带Matlab程序&#xff09; 仿真平台&#xff1a;MATLABCPLEX 使用的是yalmipcplex求解器完成求解 资源地址&#xff1a; 碳交易机制下考虑需求响应的综合能源系统优化运行&#xff08;附带Matlab程序&#xff09…

CSRF 漏洞实战

CMS创建新用户 方法&#xff1a;攻击者可以利用 XSS 触发 CSRF 攻击。因为&#xff0c;可以利用 JS 发送 HTTP 请求。经过研究受害网站的业务流程&#xff0c;可以构造如下代码&#xff1a; 代码&#xff1a; <script> xmlhttp new XMLHttpRequest(); xmlhttp.open(&qu…

安装DevEco Studio时,遇到的ohpm报错(解决)

如上图所示&#xff0c;我试了网上的各种办法&#xff0c;包括官网的文档&#xff0c;运行init.bat也不行。 接下来我说一下我的办法&#xff1a; 我从官网下载安装包后&#xff0c;将bin文件添加在了环境变量里&#xff08;最终安装的位置&#xff0c;但是因为他会自己下载所…