在看这篇博客之前,建议大家先参考前一篇博客海思篇之开机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行),进行如下修改:
  1. 添加如下代码:
    #define CONFIG_EXTRA_ENV_SETTINGS
    #define CONFIG_JPEG_ADDR “0x4a500000” //jpeg_addr
    #define CONFIG_JPEG_SIZE “0xee28” //jpeg_size
    #define CONFIG_VOBUF “0x4a800000” //vobuf
  2. 修改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行),修改如下:
  1. 在数组的末尾加上:
    #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代码版)相关推荐

  1. 海思篇之开机logo的加载(Hi3531a命令版)

    一,海思logo加载的实现流程 海思的加载主要是在uboot启动后(kernel起来之前),输入相关的命令来实现的,具体要用到什么命令,以及命令的顺序,则可以参考海思的开发文档<HiMPP 开机 ...

  2. 海思篇之基于openCV的png图片拼接

    一.拼接原理 我们在现实中要把两张图片或横或竖地排列在一起,则首先要有一个平整的桌面或者一块平整的面板,这在编程中也一样的,而这个平整的面就是图层,或者可以理解为一张更大的矩形图片,这个矩形图片大到可 ...

  3. 【海思篇】【Hi3516DV300】二、使用串口烧写映像

    目的:将上一章节编译出的映像文件烧写到板子上:让更多的爱好者了解海思.加入海思. 目录 1 准备工作 2 开始烧写 3 配置启动参数 4 结果 1 准备工作 1)准备海思工具HiTool.exe,启动 ...

  4. k n:linux kernel 从开机,到加载内核镜像到内存

    原文地址: linux的内核运行原理是怎么样的呢?如何从开机,到加载内核镜像到内存? linux的内核运行原理是怎么样的呢?如何从开机,到加载内核镜像到内存? 最佳答案 本回答由提问者推荐 头像 匿名 ...

  5. ZYNQ7000 FSBL加载启动代码详解

    参考资料: https://blog.csdn.net/zhaoxinfan/article/details/54958641 https://blog.csdn.net/asmartkiller/a ...

  6. 模块加载过程代码分析1

    一.概述 模块是作为ELF对象文件存放在文件系统中的,并通过执行insmod程序链接到内核中.对于每个模块,系统都要分配一个包含以下数据结构的内存区. 一个module对象,表示模块名的一个以null ...

  7. iOS 利用webView加载html代码,在代理中获取html页面的链接时出现的问题

    getDetailWebview.loadHTMLString(webViewData as String, baseURL:NSURL(string: "\(ProBaseWeb)&quo ...

  8. 从内存中加载DLL Delphi版(转)

    源:从内存中加载DLL DELPHI版 原文 : http://www.2ccc.com/article.asp?articleid=5784 MemLibrary.pas //从内存中加载DLL D ...

  9. jQuery模拟原生态App上拉刷新下拉加载效果代码

    以下任意均可: 1. jQuery模拟原生态App上拉刷新下拉加载效果代码,鼠标上拉时会显示loading字样,并且会模拟加载一条静态数据,支持触屏设备使用. 原文:http://www.sucaij ...

最新文章

  1. vSphere PowerCLI安装及命令
  2. java lambda使用_在Java 8 Lambda上使用Apache Commons Functor功能接口
  3. elastichd的使用教程_ElasticSearch可视化工具ElasticHD安装
  4. 使用Cron和PHP检测网页是否被篡改
  5. 西安80北京54,2000和WGS84互转C#程序
  6. android 计算器边框,Android计算器——入门
  7. 游戏开发之编程语言5选和游戏引擎3选
  8. 改变Android应用图标
  9. 避坑11_VScode在vue文件内template无法使用tab补齐标签
  10. matlab自由落体程序,基于MATLAB的自由落体运动仿真.pdf
  11. 详述 Java 语言中的格式化输出
  12. java ppt转换为html5,Apache POI PPT - PPT转换为图片
  13. HTML学习2之常用标签详细介绍
  14. 解决Could not find method xxx for arguments问题
  15. mysql将数据拟合曲线_强大的matlab数据科学拟合库cftool——直接导入数据进行拟合...
  16. CELLID GET
  17. linux文件2的权限,2_Linux_文件和权限处理命令
  18. linux沙盒游戏,沙盒游戏_PE沙盒游戏合集,欢迎⊙ω⊙_安卓应用游戏下载- AppChina应用汇...
  19. 未来星计算机一级分数截图,学生成绩统计与分析系统2.0(全新升级)
  20. 简明教程 | Docker篇 · 其一:基础入门

热门文章

  1. h61 nvme硬盘_NVMe和PCIE谁对固态硬盘的影响更大?
  2. jquery日历之昨天--今天--明天
  3. python人狗大战游戏_day23 python学习 类 人狗大战
  4. 闲谈JVM(二):浅析新老生代参数配置
  5. 《点睛:ActionScript3.0游戏互动编程》——第2章 融会贯通—大话图层样式与滤镜2.1 Photoshop图层样式初体验...
  6. 网络安全实验室---解密关
  7. 24个基本指标精粹讲解(18)--PSY
  8. 计算机二级python刷题笔记(1)
  9. oracle12c 异机恢复,Oracle 11g RMAN 异机恢复
  10. 打印机form2尺寸_注册您的Form 2打印机,享受更多福利!