Uboot指令与烧录
目录
1 NAND Flash:
1)地址空间说明
2)烧写u-boot
3)烧写内核
4)烧写文件系统
5)设置启动参数
2 SPI Flash:
1)地址空间说明
2)烧写u-boot
3)烧写内核
4)烧写文件系统
5)设置启动参数
3 EMMC:
1)地址空间说明
2)烧写u-boot
3)烧写内核
4)烧写文件系统
5)烧写参数区
6)烧写logo
- 🎈个人主页🎈:linux_嵌入式大师之路的博客-CSDN博客
- 🎉🎉🎉欢迎 👍点赞✍评论⭐收藏
- 🤝希望本文能对你有所帮助,欢迎在评论区交流讨论!🤝
1 NAND Flash:
以64M NAND Flash为例。
1)地址空间说明
| 1M | 3M | 32M | 28M |
|---------------|---------------|---------------|------------------------|
| boot | kernel | rootfs | other |
以下的操作均基于图示的地址空间分配,您也可以根据实际情况进行调整。
2)烧写u-boot
mw.b 82000000 ff 100000
tftp 82000000 u-boot-hi3519.bin
nand erase 0 100000
nand write 82000000 0 100000
reset
3)烧写内核
mw.b 82000000 ff 300000
tftp 82000000 uImage_hi3519
nand erase 100000 300000
nand write 82000000 100000 300000
4)烧写文件系统
mw.b 82000000 ff 2000000
tftp 82000000 rootfs_hi3519_2k_4bit.yaffs2
nand erase 400000 2000000
nand write.yaffs 82000000 400000 96d200 #注意:96d200为rootfs文件实际大小(16进制)
5)设置启动参数
setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=yaffs2 rw mtdparts=hinand:1M(boot),3M(kernel),32M(rootfs),28M(test)'
setenv bootcmd 'nand read 0x82000000 0x100000 0x300000;bootm 0x82000000'
sa
注意linux-3.18.y kernel默认文件系统只读,需要在bootargs中加入rw选项,文件系统才可读写
2 SPI Flash:
以16M SPI Flash为例。
1)地址空间说明
| 1M | 3M | 12M |
|---------------|---------------|---------------|
| boot | kernel | rootfs |
以下的操作均基于图示的地址空间分配,您也可以根据实际情况进行调整。
2)烧写u-boot
sf probe 0
mw.b 82000000 ff 100000
tftp 0x82000000 u-boot-hi3519.bin
sf probe 0
sf erase 0 100000
sf write 82000000 0 100000
reset
3)烧写内核
mw.b 82000000 ff 300000
tftp 82000000 uImage_hi3519
sf probe 0
sf erase 100000 300000
sf write 82000000 100000 300000
4)烧写文件系统
mw.b 82000000 ff C00000;tftp 0x82000000 rootfs_hi3519_64k.jffs2;
sf probe 0;sf erase 400000 C00000;sf write 82000000 400000 C00000
5)设置启动参数
setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 rw mtdparts=hi_sfc:1M(boot),3M(kernel),12M(rootfs)'
setenv bootcmd 'sf probe 0;sf read 0x82000000 0x100000 0x300000;bootm 0x82000000'
sa
注意linux-3.18.y kernel默认文件系统只读,需要在bootargs中加入rw选项,文件系统才可读写
3 EMMC:
1)地址空间说明
| 1M | 4M | 64M | 8M | 16M | 1M | 80M | 25600 M |
|---------|------------|-----------------|-------------|-------------|---------|-----------------|-----------------------|
| boot | kernel | rootfs | param | hibernate | logo | upgrade | storage |
以下的操作均基于图示的地址空间分配,您也可以根据实际情况进行调整。
2)烧写u-boot
mw.b 82000000 ff 100000;tftp 82000000 uboot_hi3519.bin;mmc write 0 82000000 0 400
3)烧写内核
mw.b 82000000 ff 400000;tftp 82000000 uImage_hi3519;mmc write 0 82000000 800 2000;
4)烧写文件系统
mw.b 82000000 ff 4000000;tftp 82000000 rootfs_hi3519.ext4;mmc write.ext4sp 0 82000000 2800 20000
5)烧写参数区
mw.b 82000000 ff 800000;tftp 82000000 paramfs_hi3519.ext4;mmc write.ext4sp 0 82000000 22800 4000;
6)烧写logo
mw.b 82000000 ff 100000;tftp 82000000 bootdisplay.bmp;mmc write 0 82000000 2E800 800;
正式版本:
setenv bootargs 'mem=512M console=ttyAMA0,115200 root=/dev/mmcblk0p3 rootfstype=ext4 ro rootwait blkdevparts=mmcblk0:1M(boot),4M(kernel),64M(rootfs),8M(param),16M(hibernate),1M(logo),80M(upgrade),25600M(storage) hbcomp=/dev/mmcblk0p5 hbtype=snap'
setenv bootcmd 'mmc read 0 82000000 800 2000;bootm 82000000';sa
setenv bootdelay 0;sa
相关文章:
Uboot指令与烧录
目录 1 NAND Flash: 1)地址空间说明 2)烧写u-boot 3)烧写内核 4)烧写文件系统 5)设置启动参数 2 SPI Flash: 1)地址空间说明 2)烧写u-boot 3)烧写内…...
Visual Studio中使用预编译头文件
预编译头文件(Precompiled Header,PCH)是一种C/C编译优化技术,用于提高大型项目的编译速度。PCH 文件包含了常用的头文件的预编译结果,它可以在编译其他源文件之前被加载到内存中,从而减少了重复的头文件解…...

C语言:选择+编程(每日一练Day15)
目录 选择题: 题一: 题二: 题三: 题四: 题五: 编程题: 题一:寻找奇数 思路一: 题二:寻找峰值 思路一: 本人实力有限可能对一些地方解…...
确定Mac\Linux系统的架构类型是 x86-64(amd64),还是 arm64 架构
我们在下载软件或镜像时会有很多版本,那需要根据我们的系统架构选择正确的软件或镜像版本。 要确定你的系统使用的是 x86-64(amd64) 还是 arm64 架构,可以使用以下方法之一: 使用 uname 命令: 打开终端&am…...
Python脚本
update_format.py 批量转视频格式,超级慢,没什么卵用 import os import asyncio import subprocess import concurrent.futures import tracemalloctracemalloc.start()# 创建日志文件 log_file open(conversion_log.txt, w)async def convert_mkv_t…...
Kotlin的遍历方法
for循环 在下面代码中1…10表示的是1到10,两边都是闭包,输出12345678910 for (i in 1..10) println(i)加上花括号也支持 for (i: Int in 1..10) {println(i)}另外,当对整数进行for循环时,Kotlin还提供了一个step函数来定义迭代的…...
AskIt: Unified Programming Interface for Programming with Large Language Models
本文是LLM系列文章,针对《AskIt: Unified Programming Interface for Programming with Large Language Models》的翻译。 AskIt:用于大型语言模型编程的统一编程接口 摘要1 引言2 动机例子3 设计与实现4 实验评估5 相关工作6 结论 摘要 在不断发展的软…...

【wireshark抓取数据包-PGSQL协议】
测试查看PGSQL协议的网络流量数据明细 1)捕获过滤的条件设置,tcp.port5432(数据库的端口) 2)上面是wireshark的主窗口,分三大主块:Packlist List(数据包列表)…...
【idea学习】
1.debug: 文章详解 2.导入SpringBoot项目 文章详情...

ZooKeeper数据模型/znode节点深入
1、Znode的数据模型 1.1 Znode是什么? Znode维护了一个stat结构,这个stat包含数据变化的版本号、访问控制列表变化、还有时间戳。版本号和时间戳一起,可让Zookeeper验证缓存和协调更新。每次znode的数据发生了变化,版本号就增加。…...

容器编排工具的比较:Kubernetes、Docker Swarm、Nomad
随着容器化技术的普及,容器编排工具成为了现代应用部署和管理的重要组成部分。容器编排工具能够自动化容器的部署、扩展和管理,从而提高应用的可靠性和可伸缩性。在众多的容器编排工具中,Kubernetes、Docker Swarm和Nomad是三个备受关注的主要…...
nginx--技术文档--架构体系--底层核心-原理
Nginx的架构体系可以概括为“一个核心、两个模型。” “一个核心”指Nginx的核心功能,即HTTP请求处理。Nginx作为一个高性能的Web服务器,其核心功能是处理HTTP请求,包括接收请求、解析请求、处理请求和返回响应等。 “两个模型”指Nginx的多…...

Java23种设计模式之【单例模式】
目录 一.单例模式的起源,和应用场景 1.单例模式的前世今生! 2.什么是单例模式? 2.1使用单例模式的注意事项 2.2如何理解单例模式? 2.3单例模式的优势以及不足! 2.4使用场景 二.实现 1.实现思路 1.1创建一个 S…...
SQLserver基础入门理论(超基础)二
♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏…...

macbookpro怎么删除软件没有鼠标
macbookpro怎么删除软件没有鼠标,macbookpro触摸板可以替代鼠标进行操作。左右键功能与鼠标相同,可用于执行删除操作。此外,还可以利用键盘上的Delete键来删除选中的文件。 删除软件方法 方法1、打开应用程序,键盘按住control,加点…...

华为数通方向HCIP-DataCom H12-821题库(单选题:241-260)
第241题 LS Request报文不包括以下哪一字段? A、通告路由器(Advertising Router) B、链路状态 ID (Link Srate ID) C、数据库描述序列号(Database Dascription Sequence lumber) D、链路状态类型 Link state type) 答案:C 解析: LS Request 报文中包括以下字段…...

PHP8内置函数中的变量函数-PHP8知识详解
在php8中,与变量相关的内置函数比较多,本文说一些比较重要的、常见的内置函数。今日着重讲解了5个,分别是:检测变量是否为空的函数empty()、判断变量是否定义过的函数isset()、销毁指定的变量的函数unset()、获取变量的类型的函数…...
9月3日,每日信息差
第一、中国中铁与广州市城中村改造做地主体签署战略合作框架协议。根据协议,双方将积极响应广州市统筹做地推进高质量发展工作精神,充分发挥双方优势资源,共同加大在物业复建安置、基础设施建设、综合开发投资、城中村改造(微改造…...

2023年了,java后端还有未来吗?
前言 Java当下确实是比较的内卷,但关键在于个人,可以看看不同地方(这里主要举例北上广深一线城市)对于Java开发工程师这个职位的具体要求: 在以下北上广深这些一线大城市的面试招聘当中不难看出,凡是工资…...

使用cmake,将github上的某一个库进行集成到vs2022上
可以参考如下链接的内容: (还未完成,将在后序补充) 1.首先使用cmake,得到对应库的lib,include,bin文件夹 可以参考 https://www.youtube.com/watch?vu5-Df1YlxCI 2.现在我用cmake对这个第三方库进行编译,生成了三个文件夹:一个放的是lib文件(lib文件…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...

基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...
OD 算法题 B卷【正整数到Excel编号之间的转换】
文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的:a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能
指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...

动态规划-1035.不相交的线-力扣(LeetCode)
一、题目解析 光看题目要求和例图,感觉这题好麻烦,直线不能相交啊,每个数字只属于一条连线啊等等,但我们结合题目所给的信息和例图的内容,这不就是最长公共子序列吗?,我们把最长公共子序列连线起…...

RushDB开源程序 是现代应用程序和 AI 的即时数据库。建立在 Neo4j 之上
一、软件介绍 文末提供程序和源码下载 RushDB 改变了您处理图形数据的方式 — 不需要 Schema,不需要复杂的查询,只需推送数据即可。 二、Key Features ✨ 主要特点 Instant Setup: Be productive in seconds, not days 即时设置 :在几秒钟…...