linux 32bit真彩开机logo的实现

RK3588开机画面定制全攻略:从U-Boot Logo到Android动画的完整实现 在嵌入式系统与物联网设备开发中,开机画面定制是品牌展示与用户体验的关键环节。其核心原理涉及系统启动流程的多个阶段:U-Boot引导程序负责显示静态Logo,而内核启动后的Android/Linux系统则通过bootanimation服务播放动态动画。这项技术的价值在于,它不仅是视觉呈现,更直接影响用户对设备品质的第一印象,尤其在智能终端、工业控制等场景中至关重要。要实现完美定制,开发者需要深入理解图像格式转换、分区结构、帧缓冲机制等底层知识,并掌握bootanimation.zip的规范制作。本文基于RK3 阅读详情
1.修改kernel/drivers/video/fbmem.c

int fb_show_logo(struct fb_info *info, int rotate)
{
#ifdef TRUE_COLOR
        fb_show_truecolor_logo(info);
        return 1;
#else    
    int y;

    y = fb_show_logo_line(info, rotate, fb_logo.logo, 0,
                  num_online_cpus());
    y = fb_show_extra_logos(info, y, rotate);

    return y;
#endif
void fb_show_truecolor_logo(struct fb_info *info)
{
    unsigned int i = 0,j=0,tmp;
    unsigned char pixel[4];

unsigned char* addr = (unsigned char*)info->screen_base;


for(i = 0; i<info->var.xres; i++) {
        
        tmp = ((info->var.yres)*(info->var.xres))*4-((info->var.xres)*4)*i;
        
        for(m=0;m<((info->var.xres)*4);m+=4)
        {
               
            pixel[0] = truecolor_logo_data[tmp+m+2];
            pixel[1] = truecolor_logo_data[tmp+m+3];
            pixel[2] = truecolor_logo_data[tmp+m+0];
            pixel[3] = truecolor_logo_data[tmp+m+1];
            *(addr+(j++)) = pixel[0];
            *(addr+(j++)) = pixel[1];
            *(addr+(j++)) = pixel[2];
            *(addr+(j++)) = pixel[3];
        }

    }

}


linux驱动开发扩展--内核启动logo drivers/video/samsung/s3cfb.c static int __devinit s3cfb_probe(struct platform_device *pdev) { ... #if !defined(CONFIG_FRAMEBUFFER_CONSOLE) && defined(CONFIG_LOGO) if (fb_prepare_logo( fbdev->fb[pdata->default_win], FB_ROTATE_UR)) { . 阅读详情

相关推荐

海康工业相机 Could not find module MvCameraControl.dll(已解决)

【代码】海康摄像机 Could not find module MvCameraControl.dll(已解决)

hmbbpdx的博客 2224

Linux驱动开发之RGB565转RGB888

一、前言 在前面介绍FrameBuffer子系统曾说过一帧的概念:“我们将铺满一个lcd屏幕的数据称为一帧”。 那么,在每一帧数据中又由许多个像素点构成。 这些像素点就是本文的正题——RGB数据。 所谓RGB数据,就是按照RED、GREEN、BLUE这样顺序排列的图像数据。 而RGB565和RGB888这些英文字母后面的数字则是代表每种颜色的数据占据多少位了,所以RGB565在内存中占据16位,而RGB888在内存中占据24位。 在实际项目中,一些平台因为不支持RGB888,只支持RGB565,

陈子陌的博客 1524

AI图像去噪实战:5种最新深度学习模型在超声图像处理中的效果对比(附代码)

本文对比了2022至2024年间五种前沿深度学习模型在超声图像去噪领域的实战效果,包括FDDL-Net、MG-CNFNet、Dual-TranSpeckle、可控去噪模型及Wave-Mamba。文章深入剖析了各模型的核心创新与架构,并提供了可运行的代码片段,旨在帮助医学影像算法工程师根据不同的性能、速度与临床需求,选择最合适的AI图像去噪解决方案。

1a2s3d4f5g的博客 915

linux显示启动logo源码分析以及修改显示logo

1、linux显示启动logo整个流程分析 (1)logo图片在内核源码中是以ppm格式的文件保存,在编译内核时会把ppm格式的文件自动转换成.c文件,在c文件中会构造一个struct linux_logo结构体变量, 变量名字就是文件的名字,struct linux_logo结构体在内核中用来表示一副logo图像信息; (2)内核在初始化显示器后,会按照配置去匹配合适的struct linux_logo结构体,也就是查找logo图片; (3)将logo图像显示到默认屏幕上; 2、linux显示启动lo

weixin_42031299的博客 6286

记录:N10激光雷达串口编程,将数据存进 SQLite,并进行 ROS2 - cartographer 单雷达建图

N10 系列采用 TOF(time of flight)测距原理,通过测量调制激光的发射、返回时间差来测量物体与传感器的相对距离。激光发射器发出调制脉冲激光,内部定时器开始 从t1时刻计算时间,当激光照射到目标物体后,部分能量返回,当雷达接收到返回的激光信号时,在t2时刻停止内部定时器计时,光速C,激光雷达到达物体的距离D为:经过N10系列激光雷达内嵌的信号处理单元的实时解算得到探测物体的距离值,结合高精度自适应角度测量模块输出的角度信息,可以得到量程内周围 360 度环境 的二维平面信息。

m0_74013893的博客 1096

Ubuntu 24.04 + RTX 5090 部署 OpenVLA-OFT:从环境配置到机器人任务评估实战

本文详细记录了在Ubuntu 24.04 LTS系统上,为全新RTX 5090显卡配置CUDA 12.8+与PyTorch 2.7.1+开发环境,并成功部署OpenVLA-OFT视觉语言模型进行机器人任务评估的完整实战流程。文章重点解决了驱动安装、依赖版本冲突、路径设置等核心难题,为在最新硬件上运行先进AI机器人模型提供了可靠的避坑指南和性能观察。

n8m7b6v5c4的博客 595

kernle下制作动态logo

在uboot中实现logo的好处是反映速度快。 在kernel中实现logo的好处是,不管是android还是什么其他平台,logo显示无需考虑上层平台。 参照三星平台的写法,logo的显示一方面是开机时产品的标志,另一方面也是lcd驱动执行后显示屏工作正常的标志。 所以logo的显示自然就藏于lcd驱动代码当中。   static int __devinit s3c

zhanzheng520的专栏 1052

从TI官方手册里挖细节:TPS5430负压电路那个不起眼却救命的Cd电容

本文深入解析TPS5430负压电路中关键Cd电容的作用与设计要点,揭示其在DC-DC电源设计中的重要性。通过对比TI手册和实战案例,详细阐述Cd电容在高频电流回路、能量缓冲和噪声抑制中的核心功能,并提供选型与布局指南,帮助工程师避免芯片烧毁风险,提升电路稳定性。

weixin_27102543的博客 357

把图形写入linux内核,如何在linux内核启动时添加显示图片

内核版本为2.6.30.4为了实现了在linux内核启动时不仅仅是只显示一个静态的全屏logo, 而是显示能够表示内核正在启动的进度条,因此需要能够在启动过程中直接操纵framebuffer的功能。 而进度条则可以很简单的使用多次贴图来实现。既然在启动时能够显示logo,那么按照自己的要求来贴图也就是可能的。关于logo的显示可以参考fbmem.c和logo.c文件。在fbmem.c中fb_pre...

weixin_29251131的博客 954

2023华为od机试C卷【推荐多样性】Java&Go 实现

推荐多样性需要从多个列表中选择元素,一次性要返回N屏数据(窗口数量),每屏展示K个元素(窗口大小),选择策略1.各个列表元素需要做穿插处理,即先从第一个列表中为每屏选择一元素,再从第二个列表中为每屏选择一个元素,依次类推2.每个列表的元素尽量均分为N份,如果不够N个,也要全部分配完,

MISAYAONE的博客 2181

HSM 网络安全 信息安全

HSM HSM信息安全功能 汽车电子网络安全中HSM 的应用场景 选择适合汽车电子网络安全的 HSM 符合汽车安全标准和法规要求的HSM HSM 在汽车电子网络安全中的可靠性和安全性 评估汽车电子网络的安全性 汽车 HSM(Hardware Security Module)模块开发 汽车 HSM(Hardware Security Module)模块测试

天赐好车的博客 1238

嵌入式Linux下真彩Logo的实现

目前嵌入式产品越来越多了,一般都能带Logo显示启动的。让我们来看看Logo显示是怎么做的(我仅仅做Linux方面的,没有做过WinCE的)。 参考一些嵌入式平台的做法,基本是fb_prepare_logo(struct fb_info *info, int rotate)、fb_show_logo(struct fb_info *info, int rotate)两个函数实现的。但是该两

Behard的专栏 3509

IgH EtherCAT 从入门到精通:第 4 章 网络设备驱动选型与配置

摘要:本章详细介绍了EtherCAT主站网络设备驱动的选型与配置。IgH EtherCAT Master提供Generic通用驱动和Native原生驱动两种方案:Generic驱动通过Linux Socket接口实现,兼容性强但实时性较差;Native驱动通过修改网卡驱动绕过内核协议栈,具有更低延迟和更小抖动。文章具体分析了e1000/e1000e/igb/igc等Intel网卡驱动以及r8169/8139too等Realtek驱动的配置方法,并提供了驱动选型建议。对于实时性要求高的场景,推荐使用Nativ

从事嵌入式linux android驱动开发,拥有全栈能力 304

基于RK3568的UBoot功能开发和启动Kernel:实战

基于正点原子RK3568开发板实战UBoot功能开发和启动Kernel

weixin_43390831的博客 218

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Android系统的开机画面显示过程分析

好几个月都没有更新过博客了,从今天开始,老罗将尝试对Android系统的UI实现作一个系统的分析,也算是落实之前所作出的承诺。提到Android系统的UI,我们最先接触到的便是系统在启动过程中所出现的画面了。Android系统在启动的过程中,最多可以出现三个画面,每一个画面都用来描述一个不同的启动阶段。本文将详细分析这三个开机画面的显示过程,以便可以开启我们对Android系统UI实现的分析...

mmdev 754

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

linux开机企鹅数量,linux logo居中,小企鹅的数量问题

logo居中:1、设置logo图片在屏幕中的位置vi drivers/video/fbmem.c找到"fb_show_logo_line"函数,把image.dx = 0;image.dy = y;改为#ifdef CONFIG_LOGO_LOWERPOWER_WARNING /*no config*/if(1 == get_battery_status()){image.dx = (info-...

weixin_29116603的博客 580

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

修改linux内核开机logo并居中全屏显示

修改linux内核开机logo并居中全屏显示 1.准备图片   使用ubuntu自带的绘图软件GIMP是最为快捷的方式,使用命令进行转换也可以,实际测试中用命令转换图片老提示错误,所以就用GIMP的方式处理了。具体流程如下:  (1)打开GIMP软件并加载图片资源(file->open),自己的原图片格式应该不限制,我的是bmp格式的。  (2)点击Image->mode->I

mu0206mu的专栏 5815

Linux FB Console---boot logo and the flash cursor

1 Remove the flash cursor when booting into Linux kenrel(开机光标)drivers/video/console/fbcon.c  change:   static void fb_flashcursor(void *private) {   ...}   static void fbcon_cursor(struct vc_data *vc, int mode) {...}To:   static void fb_flashcursor(void *p

2153

虚拟无限--对虚拟机与虚拟化的简单整理

        虚拟无限                                       ---------对虚拟机与虚拟化的简单整理                     BaiShi   http://baishi.8561.net作者的话  这些天想装个虚拟机来学习用,于是便找找相关的资料,为和我一样为虚拟机的选择而困惑的朋友写下了这篇文章.我这个人就是喜欢总结和整

BaiShi 在路上 7303

24、32位真彩色

24、32位真彩色:1.24位定位:DWORD pixel_addr = 3*(x) + y*lpitch;       video_buffer[pixel_addr] = blue;       video_buffer[pixel_addr+1] = green;       video_buffer[pixel_addr+2] = red;知识回顾:lPitch表示从画面一行行首数据到下一

starEye的专栏 2056

x86 汇编语言:从实模式到保护模式

第二章 程序的重定位难题 完成某个工作的所有指令,必须集中在一起,处于内存的某个位置,形成一个段,叫做代码段。要是指令并没有一条挨着一条存放,中间夹杂了其他非指令的数据,处理器将因为不能识别而出错。 程序总要操作大量的数据,这些数据也应该集中在一起,位于内存中的某个地方,形成一个段,叫做数据段。...

丁胜利的博客 5791

MyOS(五):由实模式进入保护模式(32位)

操作系统内核真正要发挥功能的话,必须进入保护模式,从而实现32位的寻址。之前我们一直是处于实模式,实模式寻址只有16位,最多就寻址到1M左右的内存 从实模式到保护模式,是计算法技术跨时代的发展。从笨拙的Dos界面,黑底白字的那种冷漠界面到win95各种色彩斑斓的窗口,两者之间的区别其实就是实模式和保护模式的天壤之别。 保护模式中,最重要的一个概念莫过于”保...

hxxjxw的博客 581

24bit真彩色 32bit真彩色

颜色 32bit颜色: ARGB Alpha : 8 Red : 8 Green : 8 Blue : 8 24bit颜色: RGB Red : 8 Green : 8 Blue : 8 #ff ff ff白色 #00 00 00黑色 #ff 00 00红色 # ff ff 00 #ff ff ff ff 每...

weixin_30858241的博客 528

DOS常用命令

DOS常用命令美好的新DOS时代   DOS是世界上使用人数最多的操作系统。尽管许多人由于种种原因而使用了其它操作系统或操作环境,如Windows等,但是,由于DOS确实非常方便实用,操作起来效率非常高、简单快捷,而且功能也非常强大,从文件和磁盘操作到网络和多媒体操作等样样都能方便的做到,而且能做到许多在Windows等系统或环境下做不到或做不好的事情,所以它深受人们的喜爱。直到现在,它一直被人们

学习........ 5794

linux 显示logo的过程

Linux显示开机logo的函数调用: 1 register_framebuffer 2 ---> do_register_framebuffer 3 ---> fb_notifier_call_chain,传递参数FB_EVENT_FB_REGISTERED和还有fb_info的event结构 4 -...

pengdonglin137的专栏 198

修改内核启动logo的方法

内核启动logo 创建logo图片: 1、内核默认的logo图片为drivers/video/logo/logo_linux_clut224.ppm file logo_linux_clut224.ppm 先得到图片的大小,然后再用gimp等工具创建一个同样大

jaylondon的技术博客 5187
上一篇: Android的垃圾回收机制(android refbase类(sp wp))
下一篇: init.omap4pandaboard.rc & kernel support android system
wonview
博客等级 码龄19年 19粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值