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.mklogo_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/mkyaffs2image610MKCRAMFS=$(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.rhkb.cn/news/93691.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JVM】Java内存泄露的排查思路?

文章目录 Java内存为什么会泄露?java内存泄露的排查思路 Java内存为什么会泄露? Java内存泄露(Memory Leak)是指在Java程序中,无用的对象占用了堆内存,但无法被垃圾回收器回收释放,从而导致可用…

前端原生写自定义旋转变换轮播图

html部分&#xff1a; <div class"banner_box"><div class"swiperWrapper" v-show"bannerList.length>0"><div class"swiper-item" :id"swiperSlide${index}" :class"{active:index0,next:index1,pr…

简单易懂的 Postman Runner 参数自增教程

目录 什么是 Postman Runner&#xff1f; Postman Runner 如何实现参数自增&#xff1f; 步骤一&#xff1a;设置全局参数 步骤二&#xff1a;将全局参数带入请求参数 步骤三&#xff1a;实现参数自增 资料获取方法 什么是 Postman Runner&#xff1f; Postman Runner 是…

docker的网络模式

docker0网络 docker容器的 虚拟网关loopback &#xff1a;回环网卡、TCP/IP网卡是否生效virtual bridge&#xff1a;linux 自身继承了一个虚拟化功能&#xff08;kvm架构&#xff09;&#xff0c;是原生架构的一个虚拟化平台&#xff0c;安装了一个虚拟化平台之后就会系统就会自…

Linux —— 文件系统

目录 一&#xff0c;背景 二&#xff0c;文件系统 一&#xff0c;磁盘简介 磁盘分为SSD、机械磁盘&#xff1b;机械磁盘&#xff0c;即磁盘高速转动&#xff0c;磁头移动到读写扇区所在磁道&#xff0c;让磁头在目标扇区上划过&#xff0c;即可完成对扇区的读写操作&#xff…

web后端解决跨域问题

目录 什么是跨域问题 为什么限制访问 解决 什么是跨域问题 域是指从一个域名的网页去请求另一个域名的资源。比如从www.baidu.com 页面去请求 www.google.com 的资源。但是一般情况下不能这么做&#xff0c;它是由浏览器的同源策略造成的&#xff0c;是浏览器对js施加的安全…

【C++起飞之路】类和对象 —— 类

类 ~ ~ ~ 一、面向过程和面向对象初步认识a. 面向过程编程b. 面向对象编程例如&#xff1a;无人机送货系统1、面向过程编程方式2、面向对象编程方式 二、类的引入1、定义类的关键字2、栈的手动实现a. C语言实现栈b. C实现栈 三、类的定义类的两种定义方式&#xff1a; 四、类的…

基于IMX6ULLmini的linux裸机开发系列一:汇编点亮LED

思来想去还是决定记录一下点灯&#xff0c;毕竟万物皆点灯嘛 编程步骤 使能GPIO时钟 设置引脚复用为GPIO 设置引脚属性(上下拉、速率、驱动能力) 控制GPIO引脚输出高低电平 使能GPIO时钟 其实和32差不多 先找到控制LED灯的引脚&#xff0c;也就是原理图 文件名 C:/Us…

使用vscode进行远程调试

官方调试手册&#xff1a;vscode官方调试手册 1.安装python扩展 如果是远程连接的话&#xff0c;一定要在ssh上启用扩展。不然创建基于python的配置文件时就会提示&#xff0c;无python扩展。 2.新建配置文件&#xff0c;并修改参数 点击左侧第四个按钮&#xff0c;运行与调试…

k8s v1.27.4二进制部署记录

记录二进制部署过程 #!/bin/bash#升级内核 update_kernel() {rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.orgyum -y install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpmyum --disablerepo"*" --enablerepo"elrepo-kernel&q…

Swagger-ui在idea中的使用

1.添加依赖 <!--添加swagger2相关概念--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><!--添加swagger-ui相关功能--><de…

浅谈Spring与字节码生成技术

概要 今天来谈一谈我们熟知的Spring框架和字节码技术有什么联系。 Java程序员几乎都了解Spring。 它的IoC&#xff08;依赖反转&#xff09;和AOP&#xff08;面向切面编程&#xff09;功能非常强大、易用。而它背后的字节码生成技术&#xff08;在运行时&#xff0c;根据需要…

带你了解—使用内网穿透,公网远程访问本地硬盘文件

文章目录 前言1. 下载cpolar和Everything软件3. 设定http服务器端口4. 进入cpolar的设置5. 生成公网连到本地内网穿透数据隧道 总结 前言 随着云概念的流行&#xff0c;不少企业采用云存储技术来保存办公文件&#xff0c;同时&#xff0c;很多个人用户也感受到云存储带来的便利…

带你了解SpringBoot支持的复杂参数--自定义对象参数-自动封装

&#x1f600;前言 本篇博文是关于SpringBoot 在响应客户端请求时支持的复杂参数和自定义对象参数&#xff0c;希望您能够喜欢&#x1f60a; &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章…

FPGA GTP全网最细讲解,aurora 8b/10b协议,OV5640摄像头板对板视频传输,提供2组4套工程源码和技术支持

目录 1、前言免责声明 2、我这里已有的 GT 高速接口解决方案3、GTP 全网最细解读GTP 基本结构GTP 发送和接收处理流程GTP 的参考时钟GTP 发送接口GTP 接收接口GTP IP核调用和使用 4、设计思路框架OV5640摄像头配置及采集视频数据组包GTP aurora 8b/10b数据对齐视频数据解包图像…

Oracle外部表ORACLE_LOADER方式加载数据

当数据源为文本或其它csv文件时&#xff0c;oracle可通过使用外部表加载数据方式&#xff0c;不需要导入可直接查询文件内的数据。 1、如下有一个文件名为&#xff1a;test1.txt 的数据文件。数据文件内容为&#xff1a; 2、使用sys授权hr用户可读写 DATA_PUMP_DIR 目录权限&a…

苹果支付的实现

由于app经常需要用到支付功能&#xff0c;然而ios用户&#xff0c;是无法用支付宝、微信进行支付&#xff0c;这时候只能用到苹果支付。苹果支付是苹果公司推出的一种在线支付方式&#xff0c;用户可以通过苹果支付购买应用、内购道具等等。 原理 苹果支付的实现原理是通过在…

力扣75——多维动态规划

总结leetcode75中的多维动态规划算法题解题思路。 上一篇&#xff1a;力扣75——一维动态规划 力扣75——多维动态规划 1 不同路径2 最长公共子序列3 买卖股票的最佳时机含手续费4 编辑距离1 - 4 解题总结 1 不同路径 题目&#xff1a; 一个机器人位于一个 m x n 网格的左上角…

Python发送QQ邮件

使用Python的smtplib可以发送QQ邮件&#xff0c;代码如下 #!/usr/bin/python3 import smtplib from email.mime.text import MIMEText from email.header import Headersender 111qq.com # 发送邮箱 receivers [222qq.com] # 接收邮箱 auth_code "abc" # 授权…

力扣 518. 零钱兑换 II

题目来源&#xff1a;https://leetcode.cn/problems/coin-change-ii/description/ C题解&#xff08;来源代码随想录&#xff09;&#xff1a; 这是一道典型的背包问题&#xff0c;一看到钱币数量不限&#xff0c;就知道这是一个完全背包。但本题和纯完全背包不一样&#xff0c…