uboot中关于LCD的代码分析

发布者:心有所属最新更新时间:2025-02-14 来源: cnblogs关键字:uboot  LCD  s5pv210 手机看文章 扫描二维码
随时随地手机看文章

以下内容源于朱有鹏《物联网大讲坛》课程的学习,如有侵权,请告知删除。

 

1、在uboot-jiuding/board.c中,init_sequence中的display_banner中的open_backlight函数中,给GPF3_5输出高电平

   

 

 

  • 注释掉这一句uboot的LCD显示照样正常的,因为后面LCD操作的部分还会再做一遍的。

  • 真正的初始化LCD系统并且显示logo,在start_armboot函数的后段的x210_preboot_init函数中(这个函数在mpadfb.c文件中);此函数纯粹是九鼎在移植时添加的。如果我们自己移植uboot可以考虑自己去添加。

 

2、logo显示和LCD屏幕分辨率适配

LCD驱动mpadfb.c文件(此文件在uboot/drivers/video目录下)中,有一个函数mpadfb_init(),下面分析此函数。

(1)fb_init函数给framebuffer相关的数据结构赋值。

 

  • 左值的info是一个结构体,这个结构体描述fb驱动中的硬件设备参数的;

  • 右值的lcd是自己定义的一个数据结构,里面的值都是我们人为配置给驱动体系的。

 

(2)lcd_port_init看是lcd端口的初始化,端口就是GPIO,所以这个函数是在初始化LCD相关的SoC的引脚。

(3)lcd_reg_init是LCD的寄存器的初始化,就是SoC的LCD控制器中的那些寄存器的初始化。

(4)以上三个函数调用执行完后,LCD初始化就结束了。接下来是写东西和开背光。

(5)display_logo(&s5pv210_fb);这个函数负责把logo图片写到LCD的fb中去。

(6)backlight_brigness_init(1);负责开背光。

 

 

3、上面涉及的结构体

 


关键字:uboot  LCD  s5pv210 引用地址:uboot中关于LCD的代码分析

上一篇:ERROR: resetting DM9000 -> not responding dm9000 not found at 0x88000000问题解决
下一篇:linux内核Kernel3.0.8编译移植到天嵌210

推荐阅读最新更新时间:2026-03-25 15:52

S5PV210 uboot中的 MMU代码分析(1)
1:经过上一节的分析,如果采用SECTION虚拟地址映射的话; 程序员只需要做的事情: (1) 建立转换表,Tanslation Table; (2) 将TTB(转换表基地址Tanslation Table Base)写入协处理器CP15的C2寄存器,这里要注意转换表 基地址为16K对齐的(因为4096*32bit=16K)所以TTB的bit0-bit13为0。 (3) 使能MMU,将CP15的C1寄存器0bit写1; (4) 设置域的访问权限;设置C3寄存器; CPU/MMU做的事情: (1) CPU核心看到和用到的只是虚拟地址VA,至于VA如果去对应物理地址PA,CPU核心不理会,MVA是除CPU核心 外的其他部分看到的虚拟地
[单片机]
<font color='red'>S5PV210</font> <font color='red'>uboot</font>中的 MMU代码分析(1)
嵌入式开发(S5PV210)——LCD显示器
1、LCD介绍 1.LCD(Liquid Crystal Display)俗称液晶,这种材料的一大特点就是在电信号的驱动下液晶分子进行旋转,旋转会影响透光性,不同的透光性会透过不同的颜色的光,于是我们便看到显示屏上五颜六色的画面。 2.LCD是被动发光,LCD显示屏有一个背光板发出白光,液晶分子只是决定哪些波长的光透过去被人看到,但液晶本身并不会发光。这有点像月亮,本身不发光,被人们看到发光是反射太阳的光。 3.与之相对就有主动发光,比如CRT显示器和LED显示器。 4.应用领域:液晶显示器使用在电视机、手机、电脑等;户外大屏幕基本是使用LED,因为液晶是被动发光,背光强度有限,在户外光照这么强的境况下,根本看不清。 2、LC
[单片机]
嵌入式开发(<font color='red'>S5PV210</font>)——<font color='red'>LCD</font>显示器
S5PV210 三个Camera Interface/CAMIF/FIMC的区别
S5PV210有三个CAMIF单元,分别为CAMIF0 CAMIF1和CAMIF2。对应着驱动中的fimc0, fimc1, fimc2。在三星datasheet和驱动代码中CAMIF和FIMC(Fully Interactive Mobile Camera)这两个术语基本上可以互换的,后面我们都用FIMC代替CAMIF。这两个术语的称呼有很强的模糊性,尤其刚刚接触三星平台,会觉得这三个接口设备都是用来控制camera,实际上三个接口并不局限于只控制camera。 我们先看下datasheet中定义的CAMIF feature - 输入支持 1. ITU-R BT601/656/709 mode 2. DMA模式 3.
[单片机]
S5PV210 固件烧写 u-boot烧写
首先阅读CW210_CD自带光盘中CW210 开发板使用手册.pdf 使用usb 拨码开关置成usb启动。xx可以是ON或OFF。开发板上面也有丝印提示 usb线接好,串口线接好 使用DNW下载 自带光盘的usb驱动(x210 usb Driver)只适用于XP系统,如果在Windows 7下使用usb下载,只能使用linux dnw代替 配置DNW串口和下载地址,0xd0020010是x210_usb.bin的下载地址 连接串口,显示连接成功 此时,长按开发板复位按键 直到USB连接显示OK 现在可以通过usb发送文件,首先发送x210_usb.bin 修改下载地址,0x23e00000是u-boot.bin的下
[单片机]
<font color='red'>S5PV210</font> 固件烧写 u-boot烧写
s5pv210 的启动
1、开发板已启动从0x0获取数据(内部64k的硬盘,里面含有三星固化的BL0段代码),将其读到a8软核中,进行运算,主要用于初始化时钟,96k的内部IRAM.并负责 指定启动设备(通常为外部硬盘),从指定的启动设备中拷贝BL1段代码(不超过16k)到I RAM中(96k),并从BL1代码的启示位置开始运行. 2、BL1段代码再从启动设备中取BL1段后面的代码BL2段代码,也将其拷贝到96k的IRAM中(BL1,BL2属于u-boot部分)。并从BL2的起始地址开始运行。 3、然后BL2段代码初始化外部内存以及其他的配置,并将硬盘启动设备中的内核,根文件系统加载到SDRAM中(512m)再到OS开始的起始位置开始运行,并挂载根文件
[单片机]
<font color='red'>s5pv210</font> 的启动
基于s5pv210嵌入式linux使用其他动态、静态库文件程序的交叉编译
刚刚移植了sqlite3迫切想测试一些,结果将原来在ubuntu系统下写好且测试通过的程序,重新编译就报错,无法找到已定义的函数 这是由于没有使用库或者使用了错误的就、库造成的结果。 正确做法为: arm-none-linux-gnueabi-gcc –o database-test –L 你需要的库文件地址 –I 你需要的头文件的地址 xxx.c –lsqlite3 -L 指定自己的库地址 -I 指定的头文件地址 好了可以使用文件了 如果指定需要的头文件和库.可以分别在-I和-L中指定。
[单片机]
基于<font color='red'>s5pv210</font>嵌入式linux使用其他动态、静态库文件程序的交叉编译
【ARM裸机s5pv210 】GPIO
GPJ0CON 寄存器共32位,每个引脚用4位控制,16进制的话正好一个数可以控制一个引脚 GPJ0DAT 寄存器共8位,每个引脚用1位控制,16进制的话2个数控制8个引脚 小实验测试: //Makefile文件 led.bin: led.o arm-linux-ld -Ttext 0x0 -o led.elf $^ arm-linux-objcopy -O binary led.elf led.bin %.o : %.S arm-linux-gcc -o $@ $ -c %.o : %.c arm-linux-gcc -o $@ $ -c clean: rm *.o *
[单片机]
【ARM裸机<font color='red'>s5pv210</font> 】GPIO
s5pv210启动debian出错提示bash: cannot set terminal process group (-1): Inappropriate ioctl for device
1.启动参数如下: bootargs=root=/dev/nfs nfsroot=192.168.1.8:/opt/wheezy_fs ip=192.168.1.9:192.168.1.8:192.168.1.1:255.255.255.0::eth0:on init=/bin/bash console=ttySAC0,115200 1.1错误信息如下: bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this shell 2.修改启动参数: bootargs=root=/dev
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved