Linux学习——uboot入门_linux uboot-程序员宅基地

技术标签: 学习  java  Linux  前端  

        uboot是一个裸机程序,是一个bootloader,用于启动Linux 或者其他其他系统。

        uboot主要工作是初始化DDR,因为Linux是运行在DDR里的,Linux镜像(Zimage /ulmage)+设备树(.dtb)存放在SD、EMMC、NAND、SPI Flash等外置存储器中。Uboot需要将Linux镜像从外置Flash拷贝到DDR中,linux系统才能运行。

一、uboot编译、下载 体验

        先不做移植,体验下uboot的编译和下载。

1.1 进入ubuntu系统

        解压提供的压缩文件tar -v -vxjf uboot-imx-2016.03-2.1.0-g4475ea1-v1.3.tar.bz2

1.2 清理工程

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean

1.3 配置工程

 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig

1.4 编译

 make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j12

        可通过创建shell 脚本完成上面的操作。

给shell脚本权限:chmod 777 shell.sh

执行shell脚本 :./shell.sh

1.5 烧录bin文件到sd卡

1.6 uboot启动

使用MobaXterm_Personal_20.2软件  打开调试信息。

 二、uboot命令

 2.1 查询命令

        2.1.1查看板子信息 bdinfo

2.1.2  输出环境变量信息 printenv

2.1.3 查看uboot版本号version

2.2 环境变量操作命令

        环境变量environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。修改.新建.删除环境变量 setenv、保存环境变量saveenv。

2.2.1 修改已经存在的环境变量值

        setenv修改开机延时为5s,然后保存saveenv,这样重启才可以生效。

 修改字符串类型要使用<单引号’   ’>将字符串括起来。

2.2.2 新建环境变量

        新建环境变量author 值为 : ZXL

 2.2.3 删除环境变量

        将环境变量的值设置为空值 即可删除。删除境变量author 

 2.3 内存操作命令

2.3.1 显示指定内存值 md

md.b 0x80000000 14: 显示0x80000000地址开始的20(0x14)个字节(b)数字都是16进制形式

 

2.3.2 修改指定内存值 nm   

        格式为:   nm [.b, .w, .l] address,

        例如: 修改.b格式,0x80000000 地址的数据为 0x12

         输入完成以后按下回车,然后再输入‘q’即可退修改。

 2.3.3 连续修改指定内存值 mm

        mm 命令也是修改指定地址内存值的,使用 mm 修改内存值的时候地址会自增,而使用命令 nm 的话地址不会自增。

2.3.4 指定的数据填充一段内存 mw

 使用.b格式将0x80000000起始的0x10个内存块填充成0xaa

2.3.5数据拷贝命令cp

                

        source 为源地址,target 为目的地址,count为拷贝的长度。

        例如以.b格式将0x80000000地址处的0x10个内存块,拷贝到0x80000020位置。

 

 2.3.6 比较命令cmp

        用于比较两段内存的数据是否相等

        

例如 查看0x80000020 和0x80000000 两端地址的前0x10个字节是否想到,因为刚才刚做了拷贝此时应该是相等的。

 

比较查看0x80000030 和0x80000000,结果应该不相等。

 2.4 网络操作命令

        使用网络前,需要设置本机、和服务器的的一些网络参数。

 

 

2.4.1 ping命令

ping 172.18.1.100

2.4.2 dhcp命令

        dhcp 用于从路由器获取 IP 地址,前提得开发连接到路由器上的,如果开发板是和电脑直连的,那么 dhcp 命令就会失败。

2.3.3 nfs命令

        nfs(Network File System)网络文件系统,通过 nfs 可以在计算机之间通过网络来分享资源,我们也可以通过nfs功能将系统镜像文件写入到电路板中。

  • 首先需要安装nfs服务: sudo apt-get install nfs-kernel-server rpcbind
  • 创建nfs路径

       

  • 修改nfs配置文件   sudo vi /etc/exports

  • 重启 NFS 服务  sudo /etc/init.d/nfs-kernel-server restart

然后nfs就可以使用了,格式如下:

        nfs 80800000 172.18.1.100:/home/zxl/linux/nfs/zImage

80800000” 表 示 zImage 保存在电路板上的地址 ,“172.18.1.100:/home/zxl/linux/nfs/zImage”表示zImage文件在172.18.1.100这个主机中路径为/home/zxl/linux/nfs/zImage。

 2.3.4 tftp命令

         tftp 命令的作用和 nfs 命令一样,都是用于通过网络下载东西到 DRAM 中,只是 tftp 命令
使用的 TFTP 协议,Ubuntu 主机作为 TFTP 服务器。因此需要在 Ubuntu 上搭建 TFTP 服务器。

  • 需要安装 tftp-hpa 和 tftpd-hpa    

                        sudo apt-get install tftp-hpa tftpd-hpa 

                         udo apt-get install xinetd

  • 创建tftp的文件路径
  • 修改配置文件
  1.                 cd /etc/
  2.                 cd xinetd.d/
  3.                 sudo vi tftp
    1. 修改这个文件的内容如下啊:
    2.  

  • sudo service tftpd-hpa start    启动ftp     

         cd /etc/default/

        sudo vi tftpd-hpa

修改内容如下:

  •  重启tftp服务器   sudo service tftpd-hpa restart

 下载文件到80800000地址上

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_34301282/article/details/127089360

智能推荐

python使用seaborn对上海的二手房数据进行分析_上海二手房房价可视化分析-程序员宅基地

文章浏览阅读667次。python数据分析_上海二手房房价可视化分析

关于goland2021.1无法debug的问题解决方案_goland无法debug-程序员宅基地

文章浏览阅读7.4k次。来到这里的看官估计要喷我了,心想估计又是千篇一律的复制的文章,这里告诉你,让您失望了。初转go,发现无法debug根本没法干活,难受,旁边的小老弟dubug的飞起,咱老干部在这干着急啊,幸好时间已经是周五了,决定在家一定要好好搞一搞这玩意。IDE的部分问题没截图(没心情啊,失落),除问题时的配置我大概说一下:go version: go1.16.8 darwin/amd64goland:2021.1.2,依稀记得看版本信息里有个x86_64mac:11.5.1,M1当我debug我的_goland无法debug

Android修改ro.debuggable 的四种方法-程序员宅基地

文章浏览阅读2.7w次,点赞15次,收藏71次。目录一、使用一键Root工具二、使用mprop工具(重启失效)三、Magisk 重置 ro.debuggable (重启失效)四、MagiskHide Props Config 模块修改(永久有效)查看getprop ro.debuggable的值:adb shell getprop ro.debuggable一、使用一键Root工具使用Root工具,一键root后ro.debuggable一般就为1了常见的root工具:KingRoot、360超级Root、百度一键Ro_ro.debuggable

洛谷——P1075 [NOIP2012 普及组] 质因数分解_【noip2012普及组】质因数分解c++-程序员宅基地

文章浏览阅读480次。P1075 [NOIP2012 普及组] 质因数分解题目描述已知正整数nn是两个不同的质数的乘积,试求出两者中较大的那个质数。输入格式一个正整数nn。输出格式一个正整数pp,即较大的那个质数。输入输出样例输入 #1复制21输出 #1复制7java:package com.kk.luogu;import java.util.Scanner;//P1075 [NOIP2012 普及组] 质因数分解public class P1075 { public stati_【noip2012普及组】质因数分解c++

基于PysimpleGUI+pymysql建立的简单管理系统(6)—查找功能_pysimplegui 管理系统-程序员宅基地

文章浏览阅读116次。基于PysimpleGUI+pymysql建立的简单管理系统(6)_pysimplegui 管理系统

Java工作流详解(附6大工作流框架对比)-程序员宅基地

文章浏览阅读1.4w次,点赞7次,收藏58次。Jflow是一个国产的开源工作流引擎,与业务场景结合紧密,再带表单引擎,数据表较多,中文概念较多,可配置型性强,支持作为中间件模式的集成。配置点集中在,节点属性,流程属性,方向条件。概念名词比较清晰,文档全面。有qq群技术支持。流程设计器界面干净,从节点类型分类,分流,合流,分合流,子线程等等。表单与流程完美结合,与其它几款流程引擎设计理念不同。Jflow更适用,贴近用户操作。表单引擎中的精华是审核组件,满足国内审批要求的需求,退回,分合流审核,会签,并行处理,队列处理,概念清晰,容易理解。_工作流

随便推点

Prometheus入门与实战_prometheus 入门-程序员宅基地

文章浏览阅读276次。1.Prometheus介绍 1.什么是监控? 从技术角度来看,监控是度量和管理技术系统的工具和过程,但监控也提供从系统和应用程序生成的指标到业务价值的转换。这些指标转换为用户体验的度量,为业务提供反_prometheus 入门

YOLOv3训练自己的数据(linux)_imagenet预训练权重yolov3-程序员宅基地

文章浏览阅读2.7k次,点赞2次,收藏14次。一、下载相关文件1.下载预训练权重文件YOLOv3使用在Imagenet上预训练好的模型参数的基础上继续训练。下载链接为https://pjreddie.com/media/files/darknet53.conv.74或使用wget命令下载:wget https://pjreddie.com/media/files/darknet53.conv.742.下载YOLOv3..._imagenet预训练权重yolov3

【vue】vue-Router 常见面试题_vue-router面试题-程序员宅基地

文章浏览阅读1w次,点赞15次,收藏160次。【vue】vue-Router 常见面试题文章目录【vue】vue-Router 常见面试题一、vue-Router基本使用二、常见面试题1.vue-router 路由钩子函数是什么 执行顺序是什么2. vue-router 动态路由是什么 有什么问题(1) params 方式(2) query 方式(3) params 和 query 的区别3.$route 和 $router 的区别4.Vue-Router 的懒加载如何实现5.vue-router 中常用的路由模式hash 模式history 模式6_vue-router面试题

vue+vuex+router初体验_vue安装zeromq-程序员宅基地

文章浏览阅读587次。前言本人是java开发出生,工作需要研究node/vue,在学习期间参照很多博文,书写示例代码,文中肯定会有很多不专业的地方,记录一方面用于自己梳理知识脉络,一方面方便日后查询,同时还可以让和我处于相同情况的码农们有个参考,废话不多说了,开始撸代码,这才是每个码农关心的问题.vue环境搭建没有详细了解的npm的伙伴们不要紧张,照着做就可以,用的多了就了解了,至于他是怎么实现的需要有精力的童鞋们研究,_vue安装zeromq

Swift 语句(Statements)_swfit did you mean to use a 'do' statement?-程序员宅基地

文章浏览阅读529次。在 Swift 中,有两种类型的语句:简单语句和控制流语句。简单语句是最常见的,用于构造表达式或者声明。控制流语句则用于控制程序执行的流程,Swift 中有三种类型的控制流语句:循环语句、分支语句和控制传递语句。循环语句用于重复执行代码块;分支语句用于执行满足特定条件的代码块;控制传递语句则用于修改代码的执行顺序。在稍后的叙述中,将会详细地介绍每一种类型的控制流语句。是否将分号(;)添加到_swfit did you mean to use a 'do' statement?

Android 自定义FloatView实现悬浮视图_android floatview-程序员宅基地

文章浏览阅读6.3k次,点赞2次,收藏9次。 前言:自定义FlaotView不需要任何权限,继承FrameLayout,通过WindowManager实现悬浮。资源文件:drawable、drawable-hdpi、layout菜单背景(menu_bg.xml):&lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;selector ="http://s..._android floatview