(1)uboot编译记录

发布时间:2026/9/22 14:34:33

(1)uboot编译记录 进入u-boot目录先清除之前编译出的内容保证目录纯净make distclean然后编译./make.sh CROSS_COMPILE/home/teng/my3506sdk/rk3506/prebuilts/gcc/linux-x86/arm/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf- alientek_rk3506 --spl-new根据传入的参数alientek_rk3506会去找u-boot/configs路径下的alientek_rk3506_defconfig这个文件。对比了正点原子的alientek_rk3506_defconfig这个文件和同路径下瑞芯微自身提供的rk3506_defconfig进行文本差异对比发现本质上就两处差异1.uboot用到的设备树换成了alientek-rk3506uboot做为微型操作系统也有自己的设备树设备树里只配置了最核心需要用到的功能。2.注释掉了AB分区功能右侧瑞芯微自带的是打开的继续跟踪第1点差异进到u-boot/arch/arm/dts/路径下对比正点原子写的设备树alientek-rk3506.dts和瑞芯微官方写的设备树rk3506-evb.dts的差异发现就改了个名说明设备树根本没啥差异正点原子给的sdk在uboot里面就只关闭了AB分区功能。然后就在u-boot目录里面生成了一个rk3506_spl_loader_v1.06.111.bin文件和uboot.img这就是最终的结果rk3506_spl_loader_v1.06.111.bin分析使用./rkbin/tools/boot_merger unpack -i ./u-boot/rk3506_spl_loader_v1.06.111.bin -o ./unpack_test指令解包log:********boot_merger ver 1.35********input loader is ./u-boot/rk3506_spl_loader_v1.06.111.binoutput directory is ./unpack_testextracting entry471,fileUsbHead.binextracting entry471,filerk3506b_ddr_750MHz_.binextracting entry472,filerk3506_usbplug_v1.binextracting entryloader,fileFlashHead.binextracting entryloader,fileFlashData.binextracting entryloader,fileFlashBoot.binInfo:Unpack loader ok.ls ./unpack_test/FlashBoot.bin FlashHead.bin rk3506_usbplug_v1.binFlashData.bin rk3506b_ddr_750MHz_.bin UsbHead.binrk3506_spl_loader_v1.06.111.bin里面包含了上面的6个文件其中rk3506_usbplug_v1.bin和UsbHead.bin顾名思义是用来处理usb的接收我们用瑞芯微开发者工具usb通信发来文件的只在ddr内存中运行。FlashHead.binIDB 头 / 芯片通行证内容包含固定的 RKNS或 RCVN魔术字。rk3506b_ddr_750MHz_.bin和FlashData.bin不同名但是同一个文件内容负责在 BootROM 阶段接管 CPU初始化开发板外部 DDR3/DDR4/LPDDR 内存颗粒的机器码。也就是用来点亮内存ddr的由瑞芯微提供的不开源的。FlashBoot.bin也就是二级引导spl负责加载uboot的现在来分析使用瑞芯微开发工具烧录这个rk3506_spl_loader_v1.06.111.bin会是什么样的场景地址0x00000000文件rk3506_spl_loader_v1.06.111.bin执行瑞芯微开发工具会把rk3506_spl_loader_v1.06.111.bin拆成上述的6个文件其中rk3506_usbplug_v1.bin、UsbHead.bin、rk3506b_ddr_750MHz_.bin会加载到ddr中运行也就是初始化了usb可以用usb接收后续的文件。FlashHead.bin、FlashData.bin、FlashBoot.bin这三个文件会有下面的操作制作 4 个防伪头工具把 FlashHead.bin 复制 4 份排成一排。拼接核心驱动紧接着在这 4 个头的屁股后面把 FlashData.binDDR驱动拼接上去。拼接搬运工再在 FlashData.bin 的屁股后面把 FlashBoot.bin拼接上去。填充对齐最后用 0x00 或 0xFF 把整个尾部补齐到扇区对齐。然后把按照上面规则缝合好的二进制大块写入到eMMC的0x40 扇区rk3506_idblock_v1.06.111.img分析就是上面FlashHead.bin、FlashData.bin、FlashBoot.bin这三个按照上面提到的规则打包出来的文件uboot.img这个就是需要烧录进去的uboot镜像其他分析编译过程用到的配置文件/rkbin/RKBOOT/RK3506BMINIALL.ini可以看到明确指出FlashDatabin/rk35/rk3506b_ddr_750MHz_v1.06.binFlashBootbin/rk35/rk3506_spl_v1.11.bin[CHIP_NAME] NAMERK350F [VERSION] MAJOR1 MINOR1 [CODE471_OPTION] NUM1 Path1bin/rk35/rk3506b_ddr_750MHz_v1.06.bin [CODE472_OPTION] NUM1 Path1bin/rk35/rk3506_usbplug_v1.02.bin [LOADER_OPTION] NUM2 LOADER1FlashData LOADER2FlashBoot FlashDatabin/rk35/rk3506b_ddr_750MHz_v1.06.bin FlashBootbin/rk35/rk3506_spl_v1.11.bin [LOADER2_PARAM] LOAD_ADDR0x3f00000 FLAG0x0 [OUTPUT] PATHrk3506_spl_loader_v1.06.111.bin IDB_PATHrk3506_idblock_v1.06.111.img [SYSTEM] NEWIDBtrue [FLAG] 471_RC4_OFFtrue RC4_OFFtrue CREATE_IDBtrue
延伸阅读

更多相关文章

2026/9/22 17:17:20

Python分页爬虫实战:从电影天堂案例解析健壮爬取架构与反爬策略

1. 项目概述:从“电影天堂”说起,为什么分页爬取是必修课最近在整理自己的电影收藏库,想找一些经典老片的高清资源,很自然地就想到了“电影天堂”这类老牌资源站。手动一页页翻找效率太低,于是顺手写了个Python脚本来帮…

2026/9/22 20:13:58

目录与规范版本 diff 及质量规则引擎:用 Python 构建规范变更识别、状态冲突与字段缺失检测系统

㊗️本期内容已收录至专栏《Python爬虫实战》,持续完善知识体系与项目实战,建议先订阅收藏,后续查阅更方便~ ㊙️本期爬虫难度指数:⭐⭐⭐⭐⭐(专家级) 🉐福利: 一次订阅后,专栏内的所有文章可永久免费看,持续更新中,保底1000+(篇)硬核实战内容。 全文目录: 🌟…

2026/9/22 23:53:33

火灾发生时,你真的能安全逃生吗?

详细介绍:(本文为上篇,介绍系统构成;下篇将介绍智能自检、场景定制与真实案例)浓烟中,那道绿光是你的希望当火灾突发,浓烟迅速吞噬光明,市电被切断,浓烟迅速吞噬光明。在…

2026/9/23 9:58:01

Switch 上跑 Vita3K:从 Linux 环境搭建到 PSV 游戏兼容性实测

1. 为什么要在 Switch 上折腾 Vita3K:先想清楚这件事值不值把 Vita3K 装到 Switch 上,本质上是在一台掌机上跑另一台掌机的模拟器。这件事听起来很极客,但实际体验取决于你对"能跑"和"跑得好"的预期差。Vita3K 是目前唯一…

2026/9/23 9:58:01

2026年AI配音工具技术选型:7款方案能力边界与隐性成本实测

配音软件哪个好用?做技术教程或批量内容生产时,这个问题几乎每个月都会被问一遍。自己录环境不允许,外包成本高,AI配音工具又参差不齐。2026年,TTS市场已经分层清晰:轻量免费工具满足个人创作者快速出稿&am…

2026/9/23 9:58:01

ossine高频面试题拆解:3招搞定代码跑不通的调试死局

ossine高频面试题拆解:3招搞定代码跑不通的调试死局 复制来的代码跑不通,报错信息满屏飞,盯着屏幕发呆半小时没头绪?这是很多开发者在准备面试或做项目时遇到的噩梦。尤其是当面试官抛出关于 ossine 的 高频面试题…

2026/9/23 9:58:01

5个细节拆解中国网络电视台下载源码 面试必问

5个细节拆解中国网络电视台下载源码 面试必问 版本升级后 API 全变了,手里攥着旧版代码却跑不通,这种崩溃感谁懂?最近不少开发者在复盘 中国网络电视台下载 模块时,发现新版接口签名逻辑彻底重构,老一套的 MD5…

2026/9/23 9:58:01

孢子秘籍新手避坑:最佳实践与底层原理图解

孢子秘籍新手避坑:最佳实践与底层原理图解 刚把语法书翻烂,代码能跑通 Hello World,但让你搭个完整项目就脑子一片空白?这是绝大多数初学者的死穴。别慌,这不代表你笨,而是你缺了一套从代码片段到系统架构的 最佳实践…

2026/9/23 9:53:01

Matlab主从博弈模型在区域能源系统优化中的应用

1. 项目背景与核心价值区域综合能源系统(RIES)作为能源互联网的重要载体,正在重塑传统能源供应模式。这个Matlab项目通过构建多主体主从博弈的分层优化模型,解决了区域能源系统中经济性与低碳性难以协同优化的行业痛点。我在参与某…

2026/9/22 10:02:42

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/22 9:07:39

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/23 0:01:54

3个实战技巧搞定形式英语:从看教程到跑通性能优化

3个实战技巧搞定形式英语:从看教程到跑通性能优化 看了一堆教程还是不会写项目?别慌,这种“眼高手低”的困境在开发者圈子里太常见了。很多人以为卡点在语法,其实真正拦路虎是缺乏将知识点串联成完整链路的能力。今天咱们不聊虚的,直接拿【形式英语】这…

2026/9/22 16:34:32

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/22 20:01:30

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/22 13:25:41

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码