海思Hi3519AV100 EMMC启动模式深度解析:uboot配置修改与内存参数调试实战

海思3516u-boot参数设置说明 一、使用HiTool烧写: nor/nand flash与emmc使用的镜像不一致,nor/nand flash可使用官方SDK中编译好的镜像来烧写,emmc需配置config为emmc方式重新编译出镜像才能烧写; 烧写nor/nand flash或emmc前,先将启动模式配置到相应模式: 参考《HiBurn 工具使用指南.pdf》将镜像烧写到flash/emmc中 二、配置u-boo... 阅读详情

海思Hi3519AV100 EMMC启动模式深度解析:uboot配置修改与内存参数调试实战

如果你已经成功地在海思Hi3519AV100平台上跑通了SPI Nor Flash启动,那么转向EMMC启动模式时,可能会觉得不过是换个存储介质,配置一下分区表而已。但真正上手后,尤其是当板子烧录完一片寂静,串口只有零星打印甚至毫无反应时,那种挫败感会瞬间将你拉回现实。EMMC启动,特别是涉及到uboot的内存参数配置,远不止是修改一个BOOT_MEDIA=emmc那么简单。它更像是一场与芯片底层启动流程和内存映射的精密对话,任何一个参数的错位,都可能导致整个系统在加载的临界点上“失声”。

这篇文章,就是为你——那些已经熟悉海思SDK基础编译流程,却在EMMC启动的深水区遇到棘手问题的中高级开发者准备的。我们不重复那些“第一步解压SDK,第二步执行sdk.unpack”的基础操作,而是直接切入核心:为什么uboot在EMMC模式下需要对内存参数进行特殊配置? 我们将以PHYS_SDRAM_1_SIZE这个关键宏为线索,深入剖析海思SDK中osdrv_mem_cfg.sh脚本的运作机制,并结合真实的调试案例,展示如何定位和解决因内存参数错误导致的系统无法启动问题。你会发现,解决这类问题的过程,本身就是对海思平台启动架构一次绝佳的理解机会。

1. 理解EMMC启动模式下uboot内存配置的特殊性

在SPI Nor Flash启动时,uboot的加载和运行相对“线性”。芯片的BootROM从固定的SPI地址读取uboot镜像到内部SRAM或直接映射的DDR内存中执行。然而,切换到EMMC启动模式后,情况变得复杂。EMMC是一种块设备,其访问协议和时序与SPI Flash截然不同,uboot在初始阶段需要先初始化EMMC控制器,然后才能从中读取更大的uboot镜像或内核。

这个初始化过程,严重依赖于正确的DDR配置。因为EMMC控制器驱动、数据缓冲区以及uboot自身重定位后的运行空间,都需要在DDR内存中。如果uboot编译时预设的DDR大小(PHYS_SDRAM_1_SIZE)与实际板载的DDR容量不符,就可能引发一系列诡异的问题:

  • uboot无法完成重定位:uboot在初始阶段(可能在SRAM中运行)会将自己拷贝到DDR的高端地址运行以获取更大空间。如果DDR大小设置错误,这个拷贝的目标地址可能无效,导致程序跑飞。
  • EMMC读写失败:驱动EMMC进行读写操作需要DMA缓冲区,这些缓冲区地址如果超出了真实DDR范围,会导致数据传输失败,表现为uboot无法从EMMC加载后续镜像。
  • 内存越界与数据损坏:错误的内存边界会导致栈或堆操作破坏其他关键数据,引发不可预知的崩溃,这类问题最难调试。

那么,PHYS_SDRAM_1_SIZE这个值是如何传递给uboot源码的呢?答案就藏在海思SDK的osdrv目录下的一个关键脚本——osdrv_mem_cfg.sh中。这个脚本是连接顶层.config配置与底层uboot、内核内存参数的核心桥梁。许多开发者只知其存在,却不知其详细运作逻辑,一旦出现问题便无从下手。

注意:海思不同系列、不同版本的SDK,其内存配置脚本的名称和路径可能略有差异(例如mem_cfg.sh或osdrv_mem_cfg.sh),但核心原理相通。本文以Hi3519AV100_SDK_V2.0.1.0中的osdrv_mem_cfg.sh为例进行剖析。

2. 解剖osdrv_mem_cfg.sh:内存参数传递的完整链条

要修改内存参数,不能盲目地直接去改uboot/include/configs/hi3519av100.h文件,因为每次执行make OSDRV_CROSS=arm-himix200-linux BOOT_MEDIA=emmc all时,这个头文件可能会被脚本重新生

海思Hi3519AV100/Hi3556AV100安全启动机制深度解析:从OTP到完整系统保护 本文深度解析了海思Hi3519AV100和Hi3556AV100芯片的安全启动机制。从OTP存储器的物理特性与分区设计讲起,详细拆解了从ROM Code执行到DDR初始化、Bootloader验签的完整安全启动流程,并探讨了如何通过Uboot扩展构建完整的系统镜像保护链,为嵌入式设备提供从硬件到软件的全面安全保障。 阅读详情

相关推荐

Hi3519AV100 调试系列 ——网络RGMII改为RMII

主芯片:Hi3519AV100 SDK版本:Hi3519AV100R001C02SPC010 开发系统:Ubuntu 16.04 Flash :SPI nor Flash Hi3519AV100默认采用的是RGMII的千兆网络,客户采用的是GMII,所以需要修改配置 大体分三步: 1、修改配置表 2、修改uboot下头文件 3、修改kernel下DTS(设备树源码) 配置表...

MUSEN_ETC的博客 6235

海思3519AV100 emmc分区避坑指南:从uboot配置到data分区挂载全流程

本文详细解析了海思3519AV100平台eMMC分区的全流程避坑指南。从分区规划、U-Boot的bootargs参数配置,到文件系统制作与烧录,最后实现data分区的自动挂载,确保HiTool、U-Boot与内核配置严格一致,帮助开发者高效完成嵌入式存储部署。

weixin_28285943的博客 658

海思Hi3519DV500 SDK编译进阶:如何根据你的存储介质(SPI Nor/NAND vs eMMC)选择正确的编译参数?

本文深入解析海思Hi3519DV500 SDK编译过程中如何根据存储介质(SPI Nor/NAND vs eMMC)选择正确的编译参数。通过对比两种存储方案的硬件特性差异,详细说明U-Boot配置、内核编译和设备树调整的关键步骤,帮助开发者避免常见的启动问题,提升开发效率。

weixin_29191669的博客 424

海思Hi3519AV100 sensor移植实战:IMX586驱动调试与硬件验证全流程

本文详细解析了在海思Hi3519AV100平台上移植索尼IMX586传感器的全流程实战。内容涵盖从硬件I2C通信验证、驱动代码移植与修改,到内核配置、时钟设定,以及使用示波器进行硬件信号深度验证和ISP图像调优等关键步骤,为开发者提供了一套清晰、可复现的sensor移植与调试方法。

weixin_29168393的博客 395

Hi3519AV100╱Hi3556AV100 U-boot 移植应用开发指南.pdf

Hi3519AV100 is a surveillance IP camera, motion camera, Panorama camera, rearview mirror, aerial photography uav and other product areas launched high Performance, low power consumption 4K Ultra HD Mobile Camera SOC.The chip Support h.265 / h.264 codec, high coding/decoding performance 4 k * 2 k @ 60 FPS / 1080 p @ 240 FPS;The chip integrates with the fourth generation Hays ISP, support WDR, multilevel noise reduction, six-axis anti-shake and a variety of image enhancement and Correction algorithm to provide customers with professional image quality.At the same time, the chip 4K RAW data output is also supported for post editing of movies.The chip Using advanced low power technology and low power architecture design, to provide users with longer Battery life.

Hi3519AV100 3.3V╱1.8V 管脚使用指南.pdf

Hi3519AV100 3.3V╱1.8V 管脚使用指南.pdf, 本文档直供参考学习

Hi3519AV100 DDR4 参数配置方法_ddr4_海思_

Hi3519AV100 DDR4 参数配置方法,希望这份资料对你有用

将AAL图谱对应到Yeo7大网络中【原理,代码分析】

本文介绍了将AAL2图谱映射到Yeo7大功能网络的方法。通过整合皮层(Yeo2011)、小脑(Buckner2011)和纹状体(Choi2012)三个区域的功能网络图谱,采用投票机制确定每个AAL区域的网络归属。具体步骤包括:1)统计每个AAL区域体素在各网络图谱中的分布;2)选择体素数量最多的网络作为该区域的最终标签。该方法实现了从解剖结构到功能网络的映射,可获得120个AAL区域对应的7大功能网络标签。

yes666666的博客 2209

Qt+OpenGL+Cesium三件套:打造高性能3D GIS桌面应用的5个关键点

本文深入探讨了如何利用Qt、OpenGL和Cesium数据规范构建高性能桌面级3D GIS应用。文章聚焦于五个关键点:架构选型、OpenGL渲染优化、3D Tiles数据解析与调度、内存与多线程管理,以及高级特性实现,旨在帮助开发者在C++生态中打造不依赖网络、运算能力更强的重型3D地理信息客户端。

weixin_28197941的博客 381

自动驾驶技术路线之争:纯视觉与多模态融合的成本与性能博弈

本文深入剖析了自动驾驶领域两大主流技术路线——纯视觉与多模态融合的本质差异。文章从成本结构、性能博弈与商业逻辑等多维度展开,揭示了纯视觉方案在硬件成本与数据算力投入上的权衡,以及多模态融合方案在安全冗余与感知稳定性方面的优势。这场技术路线之争,实则是车企在性能、成本与商业化落地之间寻求平衡的综合博弈。

weixin_29038303的博客 391

高斯投影坐标正反算算法(python)

高斯坐标正反算算法,在正算的时候,y的第一个数字表示是用几度带换算的,第二个数字和第三个数字表示带号。该程序是根据武汉大学出版社出版的第三版的《大地测量学基础》编写, 用于课程实验学习。

weixin_64338372的博客 4588

【实战】ESP32 + LN298N 实现电动推杆的闭环位置伺服控制

本文详细介绍了如何使用ESP32微控制器和LN298N电机驱动模块,为普通电动推杆增加编码器反馈,实现精准的闭环位置伺服控制。文章从硬件选型与接线讲起,深入解析了编码器四倍频计数原理与位置换算,并重点阐述了PID控制算法的核心思想、代码实现及参数整定方法,旨在帮助读者从零构建一个反应迅速、定位精准的智能执行器系统。

weixin_29195615的博客 320

别慌!Oracle MOS登录页面大变样?5分钟搞定新旧账号登录全流程

本文详细解析Oracle MOS登录页面改版后的新旧账号登录流程,帮助用户快速适应账号体系变革。针对传统MOS账号和OCI账号的不同应用场景,提供5分钟内完成无缝切换的实用指南,包括登录步骤、书签设置和密码管理策略,助力数据库管理用户高效访问Oracle技术支持资源。

weixin_30275415的博客 519

FPGA经验谈系列文章——3、逻辑级数

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Xilinx FPGA开发tips系列——前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的

gzy0506的博客 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

上一篇: Node.js版本太低导致windsurf配置MCP报错?手把手教你升级到v22.17.0并修复TransformStream问题
下一篇: Selenium IDE在Chrome中的实战应用:如何高效录制和回放Web测试用例
梦想总是可以实现的
博客等级 码龄6年 105粉丝 1480原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值