UBOOT LCD驱动流程

uboot2010.3关于LCD输出的处理-LCD初始化设置 1.start_armboot()------stdio_init()------drv_video_init()为LCD初始化函数。该函数主要完成上层结构体的初始化、LCD设备注册,以及底层硬件初始化。 int drv_video_init (void) { int skip_dev_init; struct stdio_dev console_dev; /* Check if 阅读详情
很多情况下都需要在UBOOT的阶段就要显示LOGO,直到内核启动完毕后UI接管FrameBuffer为止。这样可以避免内核启动过程的这段时间大约5-8秒内的黑屏。

UBOOT中的LCD驱动比较简单。

[start_armboot@Board.c] -> [devices_init@device.c] -> [drv_video_init@cfb_console.c] -> [video_init]

这部分就是真正我们要修改的地方,video_init 主要作的内容初始化硬件 video_hw_init,然后显示LOGO图片video_logo。

  • 初始化LCD video_hw_init的调用代码一般是在driver/video/$CPU_fb.c中。 只要是设定好LCD的各个IO口,并且初始化一个GraphicDevice的设备空间。这部分需要改动的地方是Videomodes.c/.h中的mesa_modes和res_mode_init 参数, 这些参数可以从LCD硬件手册中找到。 
    • GraphicDevice 需要设定LCD的X/Y/BPP/显存地址及大小等参数。
    • 真正进行LCD各IO口初始化的部分为调用 board_video_init(pGD), 这个函数定义在$BoardName/$TARGET.c 中, 初始化PWM,VDn,显存地址大小对齐及其使能等等的各个寄存器,这个部分需要参考具体的LCD手册。
  • 硬件初始化完后,我们可以从Nor/Nand或其他某处得到LOGO信息加载到内存处,在video_logo的代码处进行显示 video_display_bitmap
图片显示完毕后,如果后续没有对FB进行处理,则LOGO会一直保持, 这样我们可以在Kernel处进行LCD驱动初始化时无须初始化寄存器和显存,因为UBOOT已经作了这个步骤,我们这样就可以保持LOGO直到UI接管FB为止。
[SPRD]展讯平台 LCD(SPI)启动流程及驱动分析 点击“硬核王同学” 选择“关注|点赞|收藏” 福利干货第一时间送达! 阅读详情

相关推荐

uboot移植-野火imx6ull

野火imx6ull pro开发板tftp服务的搭建IMX6ULL开发板参考的是NXP官方的I.MX6ULL EVK开发板做的硬件。Linux的移植要复杂的多,在移植Linux之前我们需要先移植一个 bootloader 代码,这个 bootloader 代码用于启动Linux 内核,bootloader有很多,常用的就是 U-Boot。

colortztzztzt的博客 1805

Linux驱动开发:uboot移植流程_linux驱动 uboot(1)

内部有个以太网MAC外设,也就是ENET,需要外接一个PHY芯片来实现网络通信功能,也就是内部 MAC+外部 PHY 芯片的方案。大家可能听过DM9000这个网络芯片,在一些没有内部MAC的CPU中,比如三星的 2440,4412 等,就会采用DM9000来实现联网功能。DM9000提供了一个类似SRAM的访问接口,主控CPU通过这个接口即可与DM9000进行通信,DM9000就是一个MAC+PHY芯片。有两个网络接口ENET1和ENET2,正点原子的开发板提供了这两个网络接口,其中ENET1和ENET2。

hnsgsdsagaaq的博客 926

避坑指南:sherpa-onnx中文语音识别模型实测对比(2024最新版)

本文实测对比了sherpa-onnx框架下Paraformer、Zipformer、SenseVoice等主流中文语音识别模型。针对不同应用场景,从准确率、延迟、资源占用等维度提供选型建议,并分享部署避坑指南与最佳实践,帮助开发者高效选择本地语音转文字方案。

xray4的博客 2280

uboot LCD驱动修改和启动logo修改

uboot LCD驱动修改和启动logo修改

qq_24330911的博客 5739

【Allegro学习笔记】常规标贴封装创建-0402封装创建实例

摘要 本文主要介绍如何使用Allegro制作表面贴装封装。 所使用的软件 使用Allegro制作常规贴片封装主要使用的软件有Pad Designer和Allegro 1 0402类封装制作 1.1 0402类封装焊盘分析 0402封装尺寸图如图1...

Honglong 1万+

OpenClaw 接入智谱 GLM-5-Turbo 龙虾套餐:完整避坑指南与 SOP

OpenClaw 接入智谱 GLM-5-Turbo 的核心在于“端点匹配”和“多渠道验证”。端点匹配:龙虾套餐必须用标准端点。多渠道验证:遇到 TUI 不显示时,用curl或飞书机器人验证,不要被 Bug 误导。希望这份 SOP 能帮你顺利跑通 OpenClaw + GLM-5-Turbo,享受强大的 AI 编程助手!

Aaron_liu20的博客 1703

uboot屏幕适配源码解析,displays 实例内的参数,经过各种计算各种形式各种传递,然后把几乎所有的参数传入这个函数,然后读写soc 寄存器,适配自己的lcd屏幕

displays 实例内的参数,经过各种计算各种形式各种传递,然后把几乎所有的参数传入这个函数,然后读写soc 寄存器,适配自己的lcd屏幕

二进制模----细微行动改变影响世界 485

产品经理必看!用Cursor自动生成符合开发规范的技术文档(含UI设计规则模板)

本文详细介绍了产品经理如何利用Cursor工具自动生成符合开发规范的技术文档,并整合UI设计规则模板。通过配置标准化文档结构和设计关联规则,Cursor能有效解决术语不统一、结构混乱等问题,提升跨团队协作效率。文章包含实际案例、规则配置要点及企业级实施方案,帮助产品经理快速掌握AI辅助文档生成技巧。

emacs5lisp的博客 224

九、移植u-boot-2016.03到Jz2440之修改源码支持LCD、显示logo

1233

Louis@L.M.的博客 1612

modbus

从机地址 功能码 起始地址高位 起始地址低位 数量高位 数量低位 字节数 0001H高位 0001H低位 0002H高位 0002H低位 CRC高位 CRC低位。每个输入寄存器的长度为2个字节。其中,CDH对应线圈0013H到001AH的内容,01H对应线圈001B到001CH的内容,未使用位用0填充。从机地址 功能码 起始地址高位 起始地址低位 寄存器数量高位 寄存器数量低位 CRC高位 CRC低位。从机地址 功能码 起始地址高位 起始地址低位 寄存器数量高位 寄存器数量低位 CRC高位 CRC低位。

lunhuicnm的博客 9754

MZI and MI Optical Waveguide(马赫曾德与迈克尔逊光波导)

注意,这里的 “镜子” 并不是真的在波导中做一个镜子出来,而是通过使用一个 1x2 的 MMI 结构将 MMI 输出的两个端口连接起来形成一个 “宽带镜子”。对于这里形成镜子的详细原理,后面有时间了我们再做更加详细地介绍。,它由一个 splitter 构成和两个仿佛带有 “镜子” 的臂组成。相比较于 MZI,光波可以在它的臂中传输,最终从进光口处出去得到相长或者相消干涉,很明显,在。)的折射率,从而使得两个臂上产生的相位差值不同,最终得到相长或者相消干涉的结果。这里,给大家介绍一下。,它更像是一个折叠的。

u011699626的博客 2454

uboot2012 LCD驱动流程及机制分析

学习Uboot有一段时间了,对LCD的流程没有深入了解过,借助于sourceinsight对LCD的驱动流程进行分析 board_init_r()(Board.c) ===>stdio_init()(Stdio.c)===>drv_video_init()(Cfb_console.c)====>video_init()===>video_hw_init()(S3c24x0_fb.c)=====>

fz835304205的专栏 1453

【ACP】2025-最新-疑难题解析- 练习二汇总

全球加速是优化公网访问的,负载均衡是分发流量的,公网 NAT 网关是处理公网 IP 的,高速通道是建私网连接但不直接提供固定私网地址功能。C 是客户端加密方式,D 是 ECS 云盘加密,都不属于 OSS 服务器端加密。某企业想使用云服务器 ECS + 负载均衡 SLB + 弹性伸缩 (Auto Scaling) 的架构搭建一个企业级门户网站,技术负责人对于负载均衡和弹性伸缩配合使用没有经验,于是将他理解的两种产品配合使用的一些技术细节列成了一个表单,并请作为架构师的您帮他做一下鉴别,以下哪些项是正确的?

jundao1997的专栏 297

UBOOT LCD驱动流程 (

很多情况下都需要在UBOOT的阶段就要显示LOGO,直到内核启动完毕后UI接管FrameBuffer为止。这样可以避免内核启动过程的这段时间大约5-8秒内的黑屏。 UBOOT中的LCD驱动比较简单。 [start_armboot@Board.c] -> [devices_init@device.c] -> [drv_video_init@cfb_console.c] ->

fengyee_zju的专栏 1180

Multisim14使用教程详尽版--(2025最新版)

摘要:本文详细介绍了Multisim14电路仿真软件的功能和使用方法。主要内容包括:1)主流电路仿真软件比较,突出Multisim在教学、竞赛设计中的优势;2)软件界面说明,涵盖菜单栏、工具栏、元器件库和仪器仪表;3)18类元器件分类详解及其使用操作;4)15种仪器仪表的原理和应用场景;5)电路原理图设计与仿真流程;6)基本电路分析方法(直流静态工作点分析、交流分析等)。文章还提供了硬件工程师笔试面试相关资源链接,涵盖电阻、电容、三极管等器件知识及AD软件操作指南。通过系统讲解,帮助用户掌握Multisim

XU157303764的博客 2万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Mtk android LCD开机启动过程

/bootable/bootloader/uboot/arch/arm/lib/board.c   void start_armboot (void) {             …...........省略部分函数 //功能函数初始化 即函数队列 LCD驱动相关挂载调用    for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++

Wilsonboliu的专栏 6231

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

sc7731 Android 5.1 LCD驱动简明笔记之一

基于展讯sc7731 - Android 5.1 代码分析浏览。将屏蔽细节,把握整体,并且不涉及其他设备和LCD的交互。 以下对sc7731 lcd大体流程进行简要说明。 第一,lcd 的两个阶段 1. 在uboot引导系统阶段,大约1~5秒左右,需要打印一个厂商log。这里对驱动要求非常简单,只要能打印log即可. (下面皆以lcd_ili9486e_mipi.c为例)驱动文...

素炒瓢儿白的优快云博客 735

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

OK6410移植UBOOT 2012.10全部过程

经过差不多一个月的移植,uboot2012.10 已经在OK6410开发板上运行起来。 主要实现的功能有DNW下载,LCD现实,DM9000,MMC驱动,NAND等等。 启动方式有: 1.SDRAM运行,需要先把OK6410_SDboot.nb0烧录到SD卡上,设置从SD卡启动,通过DNW下载就直接运行u-boot.bin 2.SD卡启动,把u-boot_mmc.nb0烧写到SD卡后,

STANzxd的专栏 1304

LCD 驱动过程详解

MTK 平台LCD 驱动的整个过程的讲解 <!-- p {margin-bottom:0.21cm} --> MTK_LCD_Driver 代码的路是在/mediatek/source/kernel/driver/vedio/mtkfb.c module_init(mtkfb_init);模块初始化函数 int__init mtkfb_init(void) {

sunweizhong1024的专栏 2万+

LCD DRM驱动框架分析二

本文是基于rk3566 / rk3568平台从LCD代码层面上对LCD DRM框架进行分析。 一、uboot阶段 1、涉及的驱动文件 2、uboot代码流程分析 2.1)各probe函数的加载 2.1.1)各bind函数是在设备和驱动匹配时(uboot启动阶段)加载的。 2.1.2)各probe函数是在rockchip_display_probe中解析设备树时,通过uclass_get_device_by_xxx(uclass_get_device_by_ofnode/uclass_get.

qq_33782617的博客 5565

Linux驱动开发:uboot移植流程

Linux系统启动的第一个关键程序bootloader,也就是说芯片上电后先运行一段bootloader程序。bootloader 和 Linux 内核的关系 就跟 PC 上的 BIOS 和 Windows 的关系一样,bootloader 就相当于 BIOS。所以Linux 系统移植第一步就需要进行bootloader的移植,现有的bootloader有很多,比如:U-Boot、vivi、RedBoot 等,其中以 U-Boot 使用最为广泛。内部有个以太网MAC外设,也就是ENET,需要外接一个PHY。

指尖动听知识库 361

uboot和linux内核移植流程简述

uboot移植流程简述

拉依达不拉跨的博客 1749

uboot show logo

本文使用uboot2010.03版本,2010.06版本同样适用,在XC2440板上实现显示bmp logo 首先需要有LCD的驱动支持,XC2440板的LCD驱动是:drivers/video/xc2440_lcd.c 显示LOGO的函数调用流程: 在arch/arm/lib/board.c中的start_armboot调用common/stdio.c中的stdio_ini

技术无捷径,一步一脚印 1025
上一篇: HX8369 驱动调试总结
下一篇: uboot源码分析1-start.s
小艾的01
博客等级 码龄14年 121粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值