uboot环境变量的讲解

2023-11-16


1.环境变量的作用域和全局变量相同;环境变量的生命周期为一旦设置好环境变量并保存好后,下次开机还存在;而全局变量在关机后就灭亡了,下次开机产生了一个新的全局变量。

2.环境变量如何参与程序运行 
(1)环境变量有2份,分别在Flash和DDR中。uboot开机时一次性从Flash中读取全部的环境变量到DDR中作为环境变量的初始值,uboot使用过程中都是用DDR中的这一份。用户可以使用saveenv指令将DDR中的环境变量重新写入Flash中去更新Flash中的环境变量,下次开机时又会从Flash中再读一次。 
(2)环境变量在uboot中是用字符串表示的,即uboot中是按照字符匹配的方式区分各个环境变量的,在使用时一定要注意正确的输入字符。

3.自动运行倒数时间:bootdelay 
(1)设置开机自动倒计时环境变量bootdelay:set bootdelay 10;save;reset。 
(2)删除某个错误的环境变量:set botdlay;即删除了错误的环境变量botdlay。

4.网络设置:ipaddr serverip 
(1)ipaddr是开发板的本地IP地址。 
(2)serverip是tftp服务器的IP地址。 
(3)gatewayip是开发板的本地网关地址。 
(4)netmask是子网掩码。 
(5)ethaddr是开发板的本地网卡的MAC地址。

5.自动运行命令设置:bootcmd 
(1)uboot启动后会开机自动倒数bootdelay秒,如果没人按回车键打断启动,则uboot会自动运行启动命令来启动内核;uboot执行启动命令实际上是uboot在内部执行了bootcmd这个环境变量的值所对应的命令集。 
(2)bootcmd=nand read 0x30008000 0x600000 0x500000 ;bootm 0x30008000。将NandFlash中的kernel分区(kernel分区起始地址为0x600000,大小为5MB)读取到DDR内存的0x30008000地址处;然后调用启动命令bootm从内存地址0x30008000处启动内核。 
(3)设置bootcmd环境变量:set bootcmd ‘nand read 0x30008000 0x600000 0x500000; bootm 0x30008000’。必须加单引号”括起来保证设置的正确。

6.uboot给kernel传参:bootargs 
(1)linux内核启动时可以接收uboot传递过来的启动参数,这些启动参数的内容和形式是uboot和内核事先约定好的,内核在这些启动参数的指导下完成整个启动过程。该设计方式是为了保证内核在不重新编译的情况下可以使用不同的方式启动。我们需要在uboot中设置环境变量bootargs,然后bootm命令启动内核时会自动将bootargs传给内核。 
(2)bootargs=root=/dev/mtdblock4(根文件系统存放路径是在NandFlash中的第4个分区)rootfstype=yaffs2(根文件系统的类型是yaffs2)init=/init(linux的进程1(init进程)的路径是/init) console=ttySAC0,115200(控制台使用串口0,波特率是115200)。 
(3)在内核移植的时候内核传参非常重要,需要沉下心将内核传递的各个参数的意义真正弄明白。

7.新建、删除、更改环境变量 
(1)新建环境变量,使用set var value。 
(2)更改环境变量,使用set var value。 
(3)删除环境变量,使用set var。 
(4)修改完成环境变量后一定要保存(save),否则下次开机更改就又没了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

uboot环境变量的讲解 的相关文章

  • Vmware安装虚拟机出现attempting to start up from?一文帮你解决

    有很多小伙伴在安装windows是会出现一个attempting to start up from提示 然后就会进入一个蓝色的页面 也就是下边这两张图 这时候会让你选择在这时候有很多小伙伴就懵了 我应该怎么选择 不要方 下边我来教你解决 下
  • 两数相加(java)

    给你两个 非空 的链表 表示两个非负的整数 它们每位数字都是按照 逆序 的方式存储的 并且每个节点只能存储 一位 数字 请你将两个数相加 并以相同形式返回一个表示和的链表 你可以假设除了数字 0 之外 这两个数都不会以 0 开头 例 输入
  • ChatGPT之后,值得关注的垂直领域大模型

    垂直领域大模型是指在特定的领域或行业中经过训练和优化的大型语言模型 与通用语言模型相比 垂直领域大模型更专注于某个特定领域的知识和技能 具备更高的领域专业性和实用性 题图 from unsplash 与通用大模型相比 垂直领域大模型具有以下
  • VMware下安装win7教程

    上课会用到win7 闲来无事记录下安装win7过程 我是不会说教傻子朋友的 一 安装镜像 在网上找了好多不行最后找到了 Windows7 64位 ed2k file cn windows 7 ultimate with sp1 x64 dv
  • .c文件生成.cgi文件

    方法一 hello c文件 方法二 base h cgic c cgic h file upload c多文件同时编译
  • 计算机网络—Http协议的特点,基本格式,状态码,get和post的区别

    目录 一 Http协议是什么 1 什么是Http协议 2 Http协议的特点 3 Cookie和 Session的区别 面试常考 二 Http协议的基本格式 1 Http请求 Request 2 Http响应 Response 3 协议格式
  • Cesium 物理隔绝-取消默认请求bing底图

    说明 场景是物理隔绝的网络 即不能使用在线地图服务 这里有一个认证 在离线没网的情况下会一直请求卡在那里 解决方案 直接上代码 var defaultImagery new Cesium ProviderViewModel name def
  • POJ - 2531 Network Saboteur

    A university network is composed of N computers System administrators gathered information on the traffic between nodes
  • LInux下Mplayer字幕乱码,日文字体部分乱码解决方案

    ASS字幕如果不能加载的话 则需要把ASS字幕编码由utf16转换为utf8 用gedit也可以用这个也可以 iconv f utf16 t utf8 subtitle utf16 ass gt subtitle utf8 ass 在Pre
  • doris & StarRocks 错题本

    一 spark streaming load写入失败 Reason column count mismatch expect 25 real 1 src line demo masking 1 2018 02 17 1 B35C300672
  • 【排序算法(一)】各种排序算法的主要方式和复杂度分析

    概念 1 排序 按关键字有序的序列 2 稳定性 假设ki kj 1 lt i j lt n i j 且在排序前ri领先于rj 即i
  • 以区块链技术助力高新技术发展和产业创新

    摘要 区块链技术作为一种新兴技术 其核心特点是去中心化 具有广阔发展前景 将区块链技术作为自主创新和高新技术发展的重要突破口 是当前产业创新的重要途径之一 区块链技术发展的关键是攻克核心技术 为此 应加强相关领域的应用和实践探索 从实践中总
  • Chrome浏览器无法打开特定的网页

    问题描述 chrome浏览器 版本为 87 0 4280 66 正式版本 64 位 打开除了特定网页的其他网页均正常 解决方法 单机Chrome浏览器右上角的 自定义及控制Google Chrome gt 设置 S 将 设置 页面往下拖动后
  • (2022 CVPR) Unbiased Teacher v2

    Unbiased Teacher v2 Semi supervised Object Detection for Anchor free and Anchor based Detectors https github com faceboo
  • 国际基因编辑科技发展报告

    来源 全球技术地图 作者 贾晓峰 中国科学技术信息研究所 摘要 以特异性的改变遗传物质靶向基因序列为目标的基因编辑技术是近年生命科学领域最热门的研究领域之一 围绕基因编辑的相关领域研究和人物事件连续多年入选Nature国际科学事件和科学人物
  • Android MediaCodec硬件解码视频播放

    1 MediaCodec 是什么 MediaCodec类可以访问底层媒体编解码器框架 StageFright 或 OpenMAX 即编解码组件 是Android 的低层多媒体基础设施的一部分 通常与MediaExtractor MediaS
  • 推动刷脸支付为入口的场景新零售新科技浪潮

    刷脸支付正呈现不断创新 与其他数字化软硬件无缝链接 场景深入 更新迭代 打造人性化服务等势头较好局面 但火爆的背后应该是谨慎的对待 而不是疯狂增长 此外 随着刷脸支付的不断深入 移动支付也更加深入到生活多场景 这也为 刷脸支付 未来的市场扩
  • 进程间的通信方式与同步方式有哪些?进程间的通信方式与同步方式区别是什么?线程之间的通信方式与同步方式有哪些?线程间的通信方式与同步方式区别是什么?一文全部搞懂

    进程间的通信方式与同步方式有哪些 进程间的通信方式与同步方式区别是什么 线程之间的通信方式与同步方式有哪些 线程间的通信方式与同步方式区别是什么 本文会详细解释这几个问题 一开始在学习操作系统的时候经常糊涂 感觉比较混乱 进程间的通信方式与
  • 1055 集体照 (25 分)

    拍集体照时队形很重要 这里对给定的 N 个人 K 排的队形设计排队规则如下 每排人数为 N K 向下取整 多出来的人全部站在最后一排 后排所有人的个子都不比前排任何人矮 每排中最高者站中间 中间位置为 m 2 1 其中 m 为该排人数 除法
  • 个人笔记1

随机推荐

  • JSON Schema 详解

    简介 要真正理解 JSON Schema 首先需要知道什么是 JSON JSON 代表 JavaScript对象表示法 是一种简单的数据交换格式 它最初是万维网的一个符号 因为JavaScript存在于大多数Web浏览器中 而JSON是基于
  • WifiUtils wifi工具类

    import java util ArrayList import java util List import android content Context import android net wifi ScanResult impor
  • docker学习笔记2(狂神)

    Docker的常用命令 然后我们来学我们最重要的镜像命令 docker images 查看所有本地的主机上的镜像 docker search搜索镜像 docker pull下载镜像 docker pull 镜像名 tag 指定版本下载 do
  • springboot的启动原理之@SpringBootConfiguration和@ComponentScan注解

    SpringBootApplication EnableTransactionManagement EnableScheduling ComponentScan basePackages cn MapperScan cn mapper pu
  • Vue element 日期选择器 el-date-picker设置选择范围在一周内

    需求 防止时间范围内的查询到数据过多 希望设置最大可选一周的是时间范围 完成效果 见下图 知道了怎么禁用时间 想要达到预期的效果 要拿到第一次选择的日期 查看element文档 onPick可返回每次选中的时间 完整代码如下
  • 51单片机按键控制数码管0~9_(51单片机)课设项目1-按键控制步进电机转向、转速、启停。...

    总体设计方案 硬件部分实现电机转动和数码管显示 包括控制开关模块 电机转动模块 数码管显示模块 软件部分实现对步进电机的控制功能 主要设计思想通过控制程序的开关来控制电机的转动启停 方向 速度 电源驱动AT89C51单片机 在单片机中装载程
  • git cz配置)

    git cz配置 npm install g commitizen echo path cz conventional changelog gt czrc
  • 基于 Web 端的人脸识别身份验证

    效果展示 人脸识别效果图 前言 近些年来 随着生物识别技术的逐渐成熟 基于深度学习的人脸识别技术取得了突破性进展 准确率显著提高 现阶段 人脸识别身份验证作为非常重要的身份验证方式 已被广泛的应用于诸多行业和领域 例如 支付宝付款 刷脸签到
  • 主流的深度学习优化方法(SGD,SGDM,Adagrad,RMSProp,Adam)

    文章目录 0 前言 1 SGD 2 SGD with momentum SGDM 3 Adagrad 4 RMSProp root mean square prop 5 Adam 0 前言 介绍主流的深度学习优化方法 SGD SGD wit
  • 登陆远程服务器的Tomcat管理页面

    在远程服务器上安装了一个tomcat8 5 配置好用户后重新启动tomcat 发现 8080可以访问 登录管理页面报403访问受限 详细信息如下 You are not authorized to view this page By def
  • C语言代码写直角三角形

    include
  • 关于BUCK-BOOST电路的负压生成

    在一些实际应用中 我们时常会用到需要提供负压的场合 针对负压的设计 小白之前就讲述过一种方式 即采用charge pump的方法 然而呢 由于其带负载能力的不足 往往在一些设计中不被采用 同时 小白之前还见到过呦采用变压器隔离绕组反接的方式
  • 斐波那契数列递归算法和非递归算法以及其时间复杂度分析

    1 在学习数据结构这门课的过程中 发现斐波那契数列的递归算法以及非递归算法 以及其时间复杂度分析是一个小难点 所以特别总结一下 斐波那契数列的表达式 Fibonacci数列简介 F 1 1 F 2 1 F n F n 1 F n 2 n g
  • 配置Flutter开发环境

    安装 Flutter SDK 下载好 Flutter SDK 压缩包 flutter windows 3 0 3 stable zip 将 Flutter SDK 压缩包 解压到一个目录下 设置环境变量 FLUTTER STORAGE BA
  • Lua : 流程控制也没啥,if/嵌套仅需知

    目录 1 if else end 语法 2 if elseif else end 语法 3 if的嵌套 Lua中流程控制 使用if 和if的嵌套就好 当然goto也可以用于流程控制 其实我在想 C C 中如此好用的switch 语法 Lua
  • Java研发京东4面:事务隔离+乐观锁+HashMap+秒杀设计+微服务(面试真题)

    在朋友圈看到一个以前的同事这些天去京东面试了 就让他整理了一下面试官问了些他什么 然后就有了这篇文章 这篇文章主要介绍了 Java岗 京东的四次面试 面试题全为面试真题 一面 基础面 约1小时 二面 问数据库较多 三面 综合面 约一个小时
  • 6.STM32中断优先级管理

    1 中断 stm32的芯片通常有90多个以上的中断 具有16级可编程的中断优先级 2 中断管理方法 1 首先对STM32中断进行分组 有组0 4 同时对每一个中断设置一个抢占优先级和一个响应优先级值 分组配置是在寄存器SCB gt AIRC
  • 【Python】工程与包(2)

    创建工程及第三方包管理 New environment using 新建的项目里有一个venv virtualenv 文件夹 专门存放本项目所依赖的第三方模块 Existing interpreter 表示新建的项目所依赖的第三方模块是存放
  • 推荐工具url

    https www processon com diagrams 很好的web画图工具 https www tapd cn letters from top nav worktable v2 产品 研发 测试工具
  • uboot环境变量的讲解

    1 环境变量的作用域和全局变量相同 环境变量的生命周期为一旦设置好环境变量并保存好后 下次开机还存在 而全局变量在关机后就灭亡了 下次开机产生了一个新的全局变量 2 环境变量如何参与程序运行 1 环境变量有2份 分别在Flash和DDR中