5.6 物联网RK3399项目开发实录-Android开发之U-Boot 编译及使用(wulianjishu666)

物联网入门到项目实干案例下载:

https://pan.baidu.com/s/1fHRxXBqRKTPvXKFOQsP80Q?pwd=h5ug

---------------------------------------------------------------------------------------------------------------------------------

U-Boot 使用

前言

RK U-Boot 基于开源的 U-Boot 进行开发,工作模式有启动加载模式和下载模式。启动加载模式是 U-Boot 的正常工作模式,嵌入式产品发布时,U-Boot 都工作在此模式下,主要用于开机时把内存中的内核加载到内存中,启动操作系统;下载模式主要用于将固件下载到闪存,开机时长按 Recovery 键可进入下载模式。本文简单说明 U-Boot 的使用,更多相关文档请看 SDK 下面的 RKDocs/common/uboot/RockChip_Uboot 开发文档 V3.0.pdf

编译

编译 U-Boot 与编译内核类似,编译前把默认配置写入 .config,执行:

  • Android:

make rk3399_box_defconfig
  • linux:

make firefly-rk3399

如果需要修改相关选项,也可以用:

make menuconfig

编译:

make ARCHV=aarch64

编译后生成:

u-boot/uboot.img
u-boot/trust.img
u-boot/RK3399MiniLoaderAll_Vx.xx.bin

烧录

打开烧录工具,板子接好 USB OTG 线,接通电源时按住 Recovery 键,使开发板进入 U-Boot 的下载模式,在烧录工具中选择编译好的 Loader 文件,点击执行即可,如下图:

_images/uboot_download.jpg

确认是否正确烧写新的 Loader

如果你已经成功烧写你最新编译的 Loader,在开机的串口输出中可以看到类似如下信息:

#Boot ver: 2016-12-19#1.05

如果打印的时间及版本与你编译的一致,说明你成功更新了 Loader。

进入 U-Boot 命令行模式

由于 Firefly 产品主要用于开发,所以我们默认设置开机时有1秒的倒计时,如果这时候在串口输入任意键即可进入 U-Boot 命令行模式。 发布的产品是不需要进入 U-Boot 命令行模式的,如果需要设置U-Boot默认不进入命令行模式的,可以做如下修改:

在文件 u-boot/include/configs/rk33plat.h

/* mod it to enable console commands.  */
#define CONFIG_BOOTDELAY               0

把宏 CONFIG_BOOTDELAY 改为 0 即默认不进入命令行模式。

一级 Loader(RK3328)

U-BOOT 作为一级 Loader 模式,那么仅支持 EMMC 存储设备,编译完成后生成的镜像:

RK3288LoaderU-BOOT_V2.17.01.bin

其中 V2.17.01 是发布的版本号,rockchip 定义U-Boot loader 的版本,其中 2.17 是根据存储版本定义的,客户务必不要修改这个版本,01 是 U-Boot 定义的小版本,用户根据实际需求在 Makefile 中修改。

二级 Loader(RK3399/RK3399PRO)

U-Boot 作为二级 Loader 模式,那么固件支持所有的存储设备,该模式下,需要 MiniLoader 支持,通过宏 CONFIG_MERGER_MINILOADER 进行配置生成。同时引入 Arm Trusted,Firmware 会生成 trust image,这个通过宏 CONFIG_MERGER_TRUSTIMAGE 进行配置生成。RK3399 使用二级 Loader,编译生成的镜像为:

u-boot/uboot.img
u-boot/trust.img
u-boot/RK3399MiniLoaderAll_V1.05.bin

其中 V1.05 是发布的版本号,rockchip 定义 U-Boot loader 的版本,其中 1.05 是根据存储版本定义的,客户务必不要修改这个版本。uboot.img 是 U-Boot 作为二级 loader 的打包。 trust.img 是 U-Boot 作为二级 loader 的打包。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

首个基于SSM-Transformer混合架构,开源商业大模型Jamba

3月29日,知名AI研究实验室AI21在官网开源了,首个基于SSM-Transformer混合架构的商业大模型——Jamba。 目前,ChatGPT、Stable Difusion 、Lyria等产品使用的皆是Transformer架构,虽然在捕捉序列内长距离依赖关系、泛化能力、特征…

【数据结构】新篇章 -- 顺序表

🌈 个人主页:白子寰 🔥 分类专栏:python从入门到精通,魔法指针,进阶C,C语言,C语言题集,C语言实现游戏👈 希望得到您的订阅和支持~ 💡 坚持创作博文…

今天起,Windows可以一键召唤GPT-4了

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 发布在https://it.weoknow.com 更多资源欢迎关注 微软 AI 大计的最后一块拼图完成了? 把 Copilot 按钮放在 Window…

【算法】01背包问题(代码+详解+练习题)

题目: 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。 输入格式 第一行两个整…

基于LEAP模型的能源环境发展、碳排放建模预测及不确定性分析

在国家“3060”碳达峰碳中和的政策背景下,如何寻求经济-能源-环境的平衡有效发展是国家、省份、城市及园区等不同级别经济体的重要课题。根据国家政策、当地能源结构、能源技术发展水平以及相关碳排放指标制定合理有效的低碳能源发展规划需要以科学准确的能源环境发…

Nessus【部署 01】Linux环境部署漏洞扫描工具Nessus最新版详细过程分享(下载+安装+注册+激活)

Nessus最新版详细部署过程分享 1. 获取激活码2.主程序下载安装启动2.1 下载2.2安装2.3 启动 3.许可证及插件3.1 许可证获取3.2 插件安装 4.安装总结 Nessus官方网站: https://www.tenable.com/products/nessus/nessus-essentials 及介绍: 国际数据公司&…

MyBatis——Dao代理服务

MyBatis框架提供一个用用来降低开发人员进行Dao层开发负担技术,开发人员只需要书写SQL映射文以及用于推送sql语句的Dao接口即可 此时由MyBatis框架负责在内存中创建Dao接口的实现类并生成其实例对象 MyBatis框架作者提供Dao代理服务是面对的问题: 如何确认Dao接口与…

【面试专题】Spring高频面试题

1.Spring应该很熟悉吧?来介绍下你的Spring的理解 有些同学可能会抢答,不熟悉!!! 好了,不开玩笑,面对这个问题我们应该怎么来回答呢?我们给大家梳理这个几个维度来回答 1.1 Spring的发展历程 先介绍Spring是怎么来的…

vue3组合式函数

vue3的组合式函数的作用是封装和复用响应式状态的函数。只能在setup 标签的script标签汇总或者setup函数中使用。 普通的函数只能调用一次,但是组合式函数接受到响应式参数,当该值发生变化时,也会触发相关函数的重新加载。 如下 定义了一个…

【docker】Dockerfile自定义镜像

📝个人主页:五敷有你 🔥系列专栏:中间件 ⛺️稳中求进,晒太阳 1.Dockerfile自定义镜像 常见的镜像在DockerHub就能找到,但是我们自己写的项目就必须自己构建镜像了。 而要自定义镜像,就…

嵌入式网络硬件方案

一. 简介 本文来了解一下嵌入式有些网络中,涉及的网络硬件方案。 注意:本文说明的是有些网络。 提起网络,我们一般想到的硬件就是“网卡”,“网卡”这个概念最早从电脑领域传出来,顾名思义就是能上网的卡。在电脑领…

如何使用剪映专业版剪辑视频

1.操作界面功能介绍 2.时间线的使用 拖动前端后端缩减时长,有多个素材可以拖动调节前后顺序拼接。 分割视频 删除

【数据结构】——二叉树堆的实现

大佬们点点关注,点点赞?! 前言 在上篇博客中我们已经介绍了树和二叉树的相关概念,相信大家都已经清楚了树和二叉树的基本思想,下面我们就来着重看看二叉树堆的实现。 在看堆的实现,我们先看看二叉树的顺…

《QT实用小工具·一》电池电量组件

1、概述 项目源码放在文章末尾 本项目实现了一个电池电量控件,包含如下功能: 可设置电池电量,动态切换电池电量变化。可设置电池电量警戒值。可设置电池电量正常颜色和报警颜色。可设置边框渐变颜色。可设置电量变化时每次移动的步长。可设置…

脑部肿瘤检测YOLOV8

脑部肿瘤检测,采用YOLOV8训练得到PT模型,然后转换成ONNX,OPENCV调用,支持C/PYTHON/ANDORID开发脑部肿瘤检测YOLOV8

Windows安装TortoiseSVN客户端结合Cpolar实现公网提交文件到本地服务器

文章目录 前言1. TortoiseSVN 客户端下载安装2. 创建检出文件夹3. 创建与提交文件4. 公网访问测试 前言 TortoiseSVN是一个开源的版本控制系统,它与Apache Subversion(SVN)集成在一起,提供了一个用户友好的界面,方便用…

第二篇:3.1 广告印象(AD Impression) - IAB与MRC及《增强现实广告效果测量指南1.0》

--- 我为什么要翻译美国IAB科技公司系列标准 翻译计划 第一篇概述—IAB与MRC及《增强现实广告效果测量指南》之目录、适用范围及术语第二篇广告效果测量定义和其他矩阵之- 3.1 广告印象(AD Impression)第三篇广告效果测量定义和其他矩阵之- 3.2 可见度 …

云数据仓库Snowflake论文完整版解读

本文是对于Snowflake论文的一个完整版解读,对于从事大数据数据仓库开发,数据湖开发的读者来说,这是一篇必须要详细了解和阅读的内容,通过全文你会发现整个数据湖设计的起初原因以及从各个维度(架构设计、存算分离、弹性…

【解決|三方工具】Obi Rope 编辑器运行即崩溃问题

开发平台:Unity 2021.3.7 三方工具:Unity资产工具 - Obi Rope   问题背景 使用Unity三方开发工具 - Obi Rope 模拟绳索效果。配置后运行 Unity 出现报错并崩溃。通过崩溃日志反馈得到如下图所示 这是一个序列化问题造成的崩溃,指向性为 Obi…

SpringSecurity学习总结(三更草堂)

SpringSecurity安全框架的核心功能是认证和授权: 认证:验证当前访问系统的是不是本系统的用户,并且要确认具体是哪个用户。 授权:经过认证后判断当前用户是否具有进行某个操作的权限。 一般来说中大型的项目都是使用SpringSecurit…