当前位置: 首页 > news >正文

【Linux开发】Hi3516dv300-DC-182型开发板显示开机logo的相关操作

在这里插入图片描述

个人主页~


Hi3516dv300-DC-182型开发板显示开机logo的相关操作

  • 一、改变烧录内容
  • 二、改变环境变量
    • 1、修改内核启动参数
    • 2、修改启动时执行的命令序列

我们可以在Hi3516dv300-DC-182型开发板烧录的时候,对结构进行更改,将我们的开机logo加载到烧录固件内容当中

一、改变烧录内容

在这里插入图片描述
将原本的26M的根文件系统的最后1M裁掉,然后在后面加上1M的图片logo, 这里的长度都是以M为单位的,所以我们取最小单位1M,其内容分别是1M的boot(引导程序),4M的kernel(核心),以及25M的rootfs(根文件系统),和1M的logo(一张图片)

二、改变环境变量

因为我们修改了烧录的内容,所以我们要对环境变量进行重新配置,才能让程序正确启动起来,以下是要修改的环境变量:

setenv bootargs 'mem=128M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 rw mtdparts=hi_sfc:1M(boot),4M(kernel),25M(rootfs),1M(logo)'
setenv bootcmd 'sf probe 0;
sf read 0x82000000 0x1E00000 0x100000;
setenv jpeg_addr 0x82000000;
setenv jpeg_size 0x100000;
setenv jpeg_emar_buf 0x82200000;
setenv vobuf 0x90000000;
decjpg 0;
startvo 0 32 10;
startvl 0 0x90000000 1920 0 0 1920 1080;
sf read 0x96000000 0x100000 0x400000;
bootm 0x96000000'
saveenv

实际上这里配置了两个大的环境变量,一个是bootargs(内核启动参数),另一个是bootcmd(启动时执行的命令序列),bootcmd中的配置小环境变量我们用回车分开了,方便注释,实际上,上面的' '之间的都是属于一个大的环境变量

1、修改内核启动参数

setenv bootargs 'mem=128M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 rw mtdparts=hi_sfc:1M(boot),4M(kernel),25M(rootfs),1M(logo)'

bootargs 是一个特殊的环境变量,它保存着传递给 Linux 内核的启动参数

  • mem=128M:该参数指定了系统可用的内存大小为 128MB
  • console=ttyAMA0,115200:它表明使用 ttyAMA0 作为控制台设备,通信波特率为 115200
  • root=/dev/mtdblock2:指定根文件系统所在的设备为 mtdblock2mtd 代表内存技术设备,常用于闪存设备
  • rootfstype=jffs2:说明根文件系统的类型是 JFFS2(Journaling Flash File System 2),这是一种专门为闪存设计的日志型文件系统
  • rw:表示以读写模式挂载根文件系统
  • mtdparts=hi_sfc:1M(boot),4M(kernel),25M(rootfs),1M(logo):此参数对 MTD 设备进行分区。hi_sfc 是 MTD 设备名,后面依次为各个分区的大小和名称,即 1MB 的 boot 分区、4MB 的 kernel 分区、25MB 的 rootfs 分区以及 1MB 的 logo 分区

2、修改启动时执行的命令序列

bootcmd 作用是定义系统启动时自动执行的命令序列

  • sf probe 0sf 代表 SPI Flash,此命令用于探测 SPI Flash 设备,0 是设备编号
  • sf read 0x82000000 0x1E00000 0x100000:从 SPI Flash 的 0x1E00000 地址处读取 0x100000 字节的数据到内存的 0x82000000 地址处
  • setenv jpeg_addr 0x82000000:设置环境变量 jpeg_addr0x82000000,表示 JPEG 图片的内存地址
  • setenv jpeg_size 0x100000:设置环境变量 jpeg_size0x100000,表示 JPEG 图片的大小
  • setenv jpeg_emar_buf 0x82200000:设置环境变量 jpeg_emar_buf0x82200000,代表 JPEG 解码的临时缓冲区地址
  • setenv vobuf 0x90000000:设置环境变量 vobuf0x90000000,表示视频输出缓冲区的地址
  • decjpg 0:调用 JPEG 解码程序对之前读取的 JPEG 图片进行解码,0 是解码参数
  • startvo 0 32 10:启动视频输出功能,03210 是视频输出的相关参数
  • startvl 0 0x90000000 1920 0 0 1920 1080:启动视频层显示,0 是视频层编号,0x90000000 是视频缓冲区地址,19201080 分别代表视频的宽度和高度,即分辨率为1080p
  • sf read 0x96000000 0x100000 0x400000:从 SPI Flash 的 0x100000 地址处读取 0x400000 字节的数据到内存的 0x96000000 地址处,这部分数据是 Linux 内核
  • bootm 0x96000000:启动内存中位于 0x96000000 地址处的内核

显示开机logo的操作就到这里了~

在这里插入图片描述

相关文章:

  • 神经网络-Day49
  • OpenCV——图像基本操作(一)
  • Android Framework预装traceroute执行文件到system/bin下
  • React Native 开发环境搭建(全平台详解)
  • uni-app学习笔记三十四--刷新和回到顶部的实现
  • 国产化Excel处理组件Spire.XLS教程:用 Java 获取所有 Excel 工作表名称(图文详解)
  • Xcode 16 集成 cocoapods 报错
  • 成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
  • MySQL 安装与使用详解
  • CSS3 常用功能详细使用指南
  • ORA-01804错误解决指南
  • 体育平台接入足球数据 API:重构用户体验与商业价值的「数字引擎」
  • 什么是知识产权管理系统?知识产权管理系统有哪些功能?
  • 使用python进行图像处理—图像标识与NumPy(3)
  • Spring 框架(1)
  • deepseek+coze开发的智能体页面
  • 生产集群环境中优雅使用 Docker Network
  • 自动化测试系列 —— UI自动化测试
  • .NET开发主流框架全方位对比分析
  • Jetpack Compose 与 ViewModel 的完美结合
  • 做网站的基本功能/网站免费推广网站
  • 企业网站备案要求/贵州seo和网络推广
  • 网站建设 佛山市/引流推广是什么意思
  • 网站的push运营怎么做/搜索引擎优化的主要特征
  • 用j2ee作的网站/免费自己建网站
  • 怎么做网站收广告费/全网营销国际系统