SSD202D-logo分区添加dtb

SSD202D-kernel-uimage后面加入dtb_旋风旋风的博客-CSDN博客

1.由于内核的uimage老是压缩解压缩,拿到压缩包里面dtb实在困难;

2.把dtb烧在后面又有安全隐患;而且还会有打包升级方法ota之类的很多;又毙掉了,

3.最后直接把dtb放在logo的包里,但是logo包要想添加好,也要深刻的理解

于是没办法,我还是往logo分区里面加,硬着头皮

logo的形成:

logo是在make image的时候跑了以下代码

//project/image/image.mk

logo_nofsimage:
	@echo [[$@]]
	$(PROJ_ROOT)/image/makefiletools/bin/dispcfggen -c -o $(logo$(RESOUCE))_202d -p $(LOGO_ADDR) -s $(BOOTLOGO_BUFSIZE) -d $(DISP_OUT_NAME)
	$(PROJ_ROOT)/image/makefiletools/bin/logogen -a -i $(PROJ_ROOT)/board/ini/misc/$(BOOTLOGO_FILE) -o $(logo$(RESOUCE))_202d
	$(PROJ_ROOT)/image/makefiletools/bin/logogen -a -i $(PROJ_ROOT)/board/ini/misc/upgrade.jpg -o $(logo$(RESOUCE))_202d

看似简单,实则涉及到dispcfggen和logogen

深度剖析

dispcfggen : -c 创建一个总头部  -o 输出文件 -p 地址 -s 空间大小 -d 屏名字

logogen : -a 添加到固件包里面 -i 输入文件 -o 输出文件

编译可以看到

[[logo_nofsimage]]
/home/sdk/project/image/makefiletools/bin/dispcfggen -c -o /home/sdk/project/image/o                           utput/images/logo_202d -p 0x7c00000 -s 0x300000 -d TM070RDH13
LOGO header size 56
First use: TM070R
Insert disp name: TM070RDH13
Disp header size (308) mhal pnl para size(192) spi cmd size(0)
Insert disp name: TM101
Disp header size (308) mhal pnl para size(192) spi cmd size(0)
Insert disp name: G101S
Disp header size (308) mhal pnl para size(192) spi cmd size(0)
Insert disp name: M101G
Disp header size (308) mhal pnl para size(192) spi cmd size(0)
Insert disp name: NV156
Disp header size (308) mhal pnl para size(192) spi cmd size(0)
Insert disp name: G215H
Disp header size (308) mhal pnl para size(192) spi cmd size(194)
Insert disp name: ZW_T101
Disp header size (308) mhal pnl para size(192) spi cmd size(0)
Insert disp name: HIB070
Disp header size (308) mhal pnl para size(192) spi cmd size(0)
Insert disp name: TS-B0700
Disp header size (308) mhal pnl para size(192) spi cmd size(14)
Data count 9, total size 2984(0xba8), first use addr 72(0x48)
dipslay_start=0x07c00000
dipslay_size=0x00300000
/home/sdk/project/image/makefiletools/bin/logogen -a -i /home/sdk/project/board/ini/                           misc/logo.jpg -o /home/sdk/project/image/output/images/logo_202d
Ready to open logo file /home/sdk/work/project/board/ini/misc/logo.jpg
Get file size 3653 sub head size 44
/home/sdk/project/image/makefiletools/bin/logogen -a -i /home/sdk/project/board/ini/                           misc/upgrade.jpg -o /home/sdk/project/image/output/images/logo_202d
Ready to open logo file /home/sdk/project/board/ini/misc/upgrade.jpg
Get file size 14485 sub head size 44

具体的dispcfggen和logogen是在

 

 这几条命令生成的;通过上面的代码可以读出生成的逻辑

 大致就是这样子,设计思路就是添加dtb,然后头部直接动态跳到dtb地址获取到

 于是有了一下添加

diff --git a/project/image/image.mk b/project/image/image.mk
index 174f8dddc..81040db12 100755
--- a/project/image/image.mk
+++ b/project/image/image.mk
@@ -7,6 +7,8 @@ BOOT_TARGET_FSIMAGE:=$(foreach n,$(BOOT_FSIMAGE_LIST),$(n)_$(FLASH_TYPE)_$($(n)$
 BOOT_TARGET_NOFSIMAGE:=$(foreach n,$(filter-out $(BOOT_FSIMAGE_LIST), $(BOOT_IMAGE_LIST)),$(n)_nofsimage)
 MKYAFFS2IMAGE=/work/projects/build/linux/sbin/mkyaffs2image610
 MKCRAMFS=$(shell which mkcramfs || which mkfs.cramfs)
+KERNEL_DTB_FILE:=$(PROJ_ROOT)/../kernel/arch/arm/boot/kernel.dtb
+KERNEL_DTB_BIT:=$(shell test -f $(KERNEL_DTB_FILE) && echo ye

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

谷歌云 | BigQuery 现在支持用于查询开放表格式的清单文件

Cloud Ace 是谷歌云全球战略合作伙伴,拥有 300 多名工程师,也是谷歌最高级别合作伙伴,多次获得 Google Cloud 合作伙伴奖。作为谷歌托管服务商,我们提供谷歌云、谷歌地图、谷歌办公套件、谷歌云认证培训服务。 开放表格式依赖嵌…

Golang下载安装

目录 1. 下载压缩包 2. 解压 3. 查看SDK是否安装成功 4. 配置环境变量 5. 查看环境变量是否配置成功 1. 下载压缩包 官网下载地址: All releases - The Go Programming Language Windows64位选择如下下载: 2. 解压 解压后内容如下: …

开源数据库Mysql_DBA运维实战 (DDL语句)

DDL DDL语句 数据库定义语言:数据库、表、视图、索引、存储过程. 例如:CREATE DROP ALTER DDL库 定义库{ 创建业务数据库:CREAATE DATABASE ___数据库名___ ; 数据库名要求{ a.区分大小写 b.唯一性 c.不能使用关键字如 create select d.不能单独使用…

unity拓展 unity自带的类(Tranform为例)

因为我们使用了ILRuntime热更,unity 打出的WebGL包,运行就会报找不到DoTween里面的方法,所以吧DoTween拓展到tranform类里面,这样就不会报错了,下面是示例 using DG.Tweening; using System.Collections; using Syste…

【CSS动画01--登录】

CSS动画01--登录 介绍代码HTMLCSSJS 介绍 当鼠标不同方向的划过时展示不同效果的登录&#xff0c;以上是一个简单的图片展示 代码 HTML <!DOCTYPE html> <html> <head><meta http-equiv"content-type" content"text/html; charsetutf-8&…

【第二讲---初识SLAM】

SLAM简介 视觉SLAM&#xff0c;主要指的是利用相机完成建图和定位问题。如果传感器是激光&#xff0c;那么就称为激光SLAM。 定位&#xff08;明白自身状态&#xff08;即位置&#xff09;&#xff09;建图&#xff08;了解外在环境&#xff09;。 视觉SLAM中使用的相机与常见…

Linux命令200例:crontab详解及应用场景(常用)

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌。CSDN专家博主&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &…

编译老版本c++程序 报错 msvcrt.dll 以及 0x000000 内存 不能为 “read“ 问题已解决

一般 win10 编译 xp对应老版本软件 调试采用 虚拟机形式进行测试&#xff0c;但是虚拟机中&#xff0c;无独立显卡&#xff0c;运行程序提示有&#xff0c;无法调用动态库&#xff0c;或者 内存无法读取&#xff0c;炸一看以为 winxp32位 内存识别只能3.7G.其实是显存无法使用…

idea 使用debug 启动项目的时候 出现 Method breakpoints may dramatically slow down debugging

问题: 1. 写了一段时间的代码&#xff0c;在debug启动项目后提示&#xff1a;Method breakpoints may dramatically slow down debugging 但是正常启动是可以的&#xff0c;debug不行。 2. idea 里面的项目&#xff0c;很多地方都有断点&#xff0c;现在想要取消全部的断点…

重塑DTC规则:元气森林的全渠道转型

元气森林作为迄今为止用5-6年时间最快达到70亿年销售额的饮料品牌&#xff08;统一、可口可乐、东鹏特饮都花了15年左右&#xff0c;康师傅花了10年&#xff09;。元气森林于2016年在北京创立&#xff0c;凭借健康产品理念和新潮营销方式&#xff0c;一款主打“0糖0卡0脂”概念…

k8s 认证和权限控制

k8s 的认证机制是啥&#xff1f; 说到 k8s 的认证机制&#xff0c;其实之前咋那么也有提到过 ServiceAccouont &#xff0c;以及相应的 token &#xff0c;证书 crt&#xff0c;和基于 HTTP 的认证等等 k8s 会使用如上几种方式来获取客户端身份信息&#xff0c;不限于上面几种…

JDBC封装与设计模式

什么是 DAO &#xff1f; Data Access Object(数据存取对象) 位于业务逻辑和持久化数据之间实现对持久化数据的访问 DAO起着转换器的作用&#xff0c;将数据在实体类和数据库记录之间进行转换。 ----------------------------------------------------- DAO模式的组成部分 …

QGIS3.28的二次开发五:VS使用QT插件创建UI界面

前面我们说了在创建项目时创建的是一个空项目&#xff0c;即不使用 Qt 提供的综合开发套件 Qt Creator&#xff0c;也不使用 Qt Visual Studio Tools 这类工具。 但是后面发现&#xff0c;如果我想要有更加满意的界面布局&#xff0c;还是要自己写一个UI文件&#xff0c;如果不…

【Python】基础语法:变量类型和动态类型

文章目录 1. 常量2. 变量3. 动态类型特性 努力经营当下 直至未来明朗 1. 常量 浮点数在内存中表示使用的是IEEE754标准&#xff0c;这套规则下&#xff0c;在内存中表示该浮点数额时候可能会存在微小的误差 在进行运算的时候&#xff0c;最好可以将数字&#xff08;字面值常…

Transformer(二)(VIT,TNT)(基于视觉CV)

目录 1.视觉中的Attention 2.VIT框架&#xff08;图像分类&#xff0c;不需要decoder&#xff09; 2.1整体框架 2.2.CNN和Transformer遇到的问题 2.3.1CNN 2.3.2Transformer 2.3.3二者对比 2.4.公式理解 3TNT 参考文献 1.视觉中的Attention 对于人类而言看到一幅图可以立…

UglifyJS 和JShaman相比有什么不同?都可以进行js混淆加密吗?

UglifyJS 和JShaman相比有什么不同&#xff1f; UglifyJS主要功能是压缩JS代码&#xff0c;减小代码体积&#xff1b;JShaman是专门用于对JS代码混淆加密&#xff0c;目的是让JS代码变的不可读、混淆功能逻辑、加密代码中的隐秘数据或字符&#xff0c;是用于代码保护的。 因此…

行业追踪,2023-08-10

自动复盘 2023-08-10 凡所有相&#xff0c;皆是虚妄。若见诸相非相&#xff0c;即见如来。 k 线图是最好的老师&#xff0c;每天持续发布板块的rps排名&#xff0c;追踪板块&#xff0c;板块来开仓&#xff0c;板块去清仓&#xff0c;丢弃自以为是的想法&#xff0c;板块去留让…

【CSS】CSS 布局——弹性盒子

Flexbox 是一种强大的布局系统&#xff0c;旨在更轻松地使用 CSS 创建复杂的布局。 它特别适用于构建响应式设计和在容器内分配空间&#xff0c;即使项目的大小是未知的或动态的。Flexbox 通常用于将元素排列成一行或一列&#xff0c;并提供一组属性来控制 flex 容器内的项目行…

【ts】【cocos creator】excel表格转JSON

需要将表格导出为text格式放到项目resources/text文件夹下 新建场景&#xff0c;挂载到Canvas上运行 表格文件格式&#xff1a; 保存格式选text tableToJson : import CryptoJS require(./FileSaver);const { ccclass, property } cc._decorator;ccclass export default c…

线程|线程的使用、四种实现方式

1.线程的实现方式 1.用户级线程 开销小&#xff0c;用户空间就可以创建多个。缺点是&#xff1a;内核无法感知用户级多个线程的存在&#xff0c;把其当作只有一个线程&#xff0c;所以只会提供一个处理器。 2.内核级线程 相对于用户级开销稍微大一点&#xff0c;可以利用多…
最新文章