海思篇之开机logo的加载(Hi3531a代码版)
在看这篇博客之前,建议大家先参考前一篇博客海思篇之开机logo的加载(Hi3531a命令版),在了解了logo加载的流程之后,接下来的代码篇才会更容易理解。我用的开发板是Hi3531a,不同的版本可能有所不同,这里仅供大家参考。
- 找到/HisiSDK/Hi3531A_SDK_V1.0.5.0/osdrv/opensource/uboot/u-boot-2010.06/include/configs/hi3531a.h这个文件并打开,修改Environment Configuration这个模块的内容(大概在170行),进行如下修改:
- 添加如下代码:
#define CONFIG_EXTRA_ENV_SETTINGS
#define CONFIG_JPEG_ADDR “0x4a500000” //jpeg_addr
#define CONFIG_JPEG_SIZE “0xee28” //jpeg_size
#define CONFIG_VOBUF “0x4a800000” //vobuf- 修改CONFIG_BOOTCOMMAND宏定义为:
#define CONFIG_BOOTCOMMAND “setenv jpeg_addr 0x4a500000;setenv jpeg_size 0xee28;setenv vobuf 0x4a800000;nand read 0x42000000 0x7c00000 0xee28;decjpg;startvo 0 36 7;startvl 0 0x4a800000 1280 0 0 1280 720;mw.b 0x42000000 0xff 0x400000;nand read 0x42000000 0x100000 0x400000;bootm 0x42000000”
注意:
1) 这里CONFIG_BOOTCOMMAND 下的前3条命令参考上一篇博客海思篇之开机logo的加载(Hi3531a命令版);
2)nand read 0x42000000 0x7c00000 0xee28是指从海思nand flash的0x7c00000地址中读取0xee28长度的数据到内存地址0x42000000 作为缓存数据(图片);
3)接下来的decjpg,startvo,startvl 同样参考前面的海思篇之开机logo的加载(Hi3531a命令版);
4)mw.b 0x42000000 0xff 0x400000是指清空内存地址0x42000000上的长度为0x400000字节的缓存数据;
5)nand read 0x42000000 0x100000 0x400000是从nand flash读取kernel到内存地址0x42000000;
6)bootm 0x42000000是指kernel的加载地址。
效果图如下:
- 找到/HisiSDK/Hi3531A_SDK_V1.0.5.0/osdrv/opensource/uboot/u-boot-2010.06/common/env_common.c这个文件并打开,修改数组default_environment[]的内容(大概在60行),修改如下:
- 在数组的末尾加上:
#ifdef CONFIG_EXTRA_ENV_SETTINGS
//CONFIG_EXTRA_ENV_SETTINGS
“jped_addr=” CONFIG_JPEG_ADDR “\0”
“jped_size=” CONFIG_JPEG_SIZE “\0”
“vobuf=” CONFIG_VOBUF “\0”
#endif
效果图如下:
- 关闭以上两个文件,编译uboot,最后生成.bin文件,如下图:
最后把编译生成的uboot烧录到板子就OK啦!
海思篇之开机logo的加载(Hi3531a代码版)相关推荐
- 海思篇之开机logo的加载(Hi3531a命令版)
一,海思logo加载的实现流程 海思的加载主要是在uboot启动后(kernel起来之前),输入相关的命令来实现的,具体要用到什么命令,以及命令的顺序,则可以参考海思的开发文档<HiMPP 开机 ...
- 海思篇之基于openCV的png图片拼接
一.拼接原理 我们在现实中要把两张图片或横或竖地排列在一起,则首先要有一个平整的桌面或者一块平整的面板,这在编程中也一样的,而这个平整的面就是图层,或者可以理解为一张更大的矩形图片,这个矩形图片大到可 ...
- 【海思篇】【Hi3516DV300】二、使用串口烧写映像
目的:将上一章节编译出的映像文件烧写到板子上:让更多的爱好者了解海思.加入海思. 目录 1 准备工作 2 开始烧写 3 配置启动参数 4 结果 1 准备工作 1)准备海思工具HiTool.exe,启动 ...
- k n:linux kernel 从开机,到加载内核镜像到内存
原文地址: linux的内核运行原理是怎么样的呢?如何从开机,到加载内核镜像到内存? linux的内核运行原理是怎么样的呢?如何从开机,到加载内核镜像到内存? 最佳答案 本回答由提问者推荐 头像 匿名 ...
- ZYNQ7000 FSBL加载启动代码详解
参考资料: https://blog.csdn.net/zhaoxinfan/article/details/54958641 https://blog.csdn.net/asmartkiller/a ...
- 模块加载过程代码分析1
一.概述 模块是作为ELF对象文件存放在文件系统中的,并通过执行insmod程序链接到内核中.对于每个模块,系统都要分配一个包含以下数据结构的内存区. 一个module对象,表示模块名的一个以null ...
- iOS 利用webView加载html代码,在代理中获取html页面的链接时出现的问题
getDetailWebview.loadHTMLString(webViewData as String, baseURL:NSURL(string: "\(ProBaseWeb)&quo ...
- 从内存中加载DLL Delphi版(转)
源:从内存中加载DLL DELPHI版 原文 : http://www.2ccc.com/article.asp?articleid=5784 MemLibrary.pas //从内存中加载DLL D ...
- jQuery模拟原生态App上拉刷新下拉加载效果代码
以下任意均可: 1. jQuery模拟原生态App上拉刷新下拉加载效果代码,鼠标上拉时会显示loading字样,并且会模拟加载一条静态数据,支持触屏设备使用. 原文:http://www.sucaij ...
最新文章
- vSphere PowerCLI安装及命令
- java lambda使用_在Java 8 Lambda上使用Apache Commons Functor功能接口
- elastichd的使用教程_ElasticSearch可视化工具ElasticHD安装
- 使用Cron和PHP检测网页是否被篡改
- 西安80北京54,2000和WGS84互转C#程序
- android 计算器边框,Android计算器——入门
- 游戏开发之编程语言5选和游戏引擎3选
- 改变Android应用图标
- 避坑11_VScode在vue文件内template无法使用tab补齐标签
- matlab自由落体程序,基于MATLAB的自由落体运动仿真.pdf
- 详述 Java 语言中的格式化输出
- java ppt转换为html5,Apache POI PPT - PPT转换为图片
- HTML学习2之常用标签详细介绍
- 解决Could not find method xxx for arguments问题
- mysql将数据拟合曲线_强大的matlab数据科学拟合库cftool——直接导入数据进行拟合...
- CELLID GET
- linux文件2的权限,2_Linux_文件和权限处理命令
- linux沙盒游戏,沙盒游戏_PE沙盒游戏合集,欢迎⊙ω⊙_安卓应用游戏下载- AppChina应用汇...
- 未来星计算机一级分数截图,学生成绩统计与分析系统2.0(全新升级)
- 简明教程 | Docker篇 · 其一:基础入门
热门文章
- h61 nvme硬盘_NVMe和PCIE谁对固态硬盘的影响更大?
- jquery日历之昨天--今天--明天
- python人狗大战游戏_day23 python学习 类 人狗大战
- 闲谈JVM(二):浅析新老生代参数配置
- 《点睛:ActionScript3.0游戏互动编程》——第2章 融会贯通—大话图层样式与滤镜2.1 Photoshop图层样式初体验...
- 网络安全实验室---解密关
- 24个基本指标精粹讲解(18)--PSY
- 计算机二级python刷题笔记(1)
- oracle12c 异机恢复,Oracle 11g RMAN 异机恢复
- 打印机form2尺寸_注册您的Form 2打印机,享受更多福利!