uboot中log处理
位图或logo和开机显示画面,是两个完全不同的东西。
logo显示uboot相关信息,如版本号等。
开机画面是用户下载到固定位置后uboot加载的。
1.开机画面
在uboot中使用splash screen可以实现u-boot启动后,在LCD上显示自定义图片。
#define CONFIG_SPLASH_SCREEN 1
#define CONFIG_EXTRA_ENV_SETTINGS \
"splashimage=10080000\0"
并且要定义splashimage变量以及splash变量所定义的地址存放bmp图片。
2. log图片
include/bmp_logo.h //定义logo相关属性及数据, 由工具制作而成。
12 #define BMP_LOGO_WIDTH 240
13 #define BMP_LOGO_HEIGHT 109
14 #define BMP_LOGO_COLORS 30
15 #define BMP_LOGO_OFFSET 16
3.实现过程
common/lcd.c
start_armboot() --> devices_init()/devices.c
-->drv_lcd_init()/ common/lcd.c
-->lcd_init() /common/lcd.c
-->lcd_clear()
-->lcd_logo()
--> lcd_display_bitmap(addr, 0, 0); //显示开机画面
--> bitmap_plot(0, 0); //显示logo
4.lcd相关数据结构,定义于include/lcd.h
typedef struct vidinfo {
162 u_long vl_col; /* Number of columns (i.e. 640) */
163 u_long vl_row; /* Number of rows (i.e. 480) */
164 u_long vl_clk; /* pixel clock in ps */
165
166 /* LCD configuration register */
167 u_long vl_sync; /* Horizontal / vertical sync */
168 u_long vl_bpix; /* Bits per pixel, 0 = 1, 1 = 2, 2 = 4, 3 = 8, 4 = 16 */
169 u_long vl_tft; /* 0 = passive, 1 = TFT */
170
171 /* Horizontal control register. */
172 u_long vl_hsync_len; /* Length of horizontal sync */
173 u_long vl_left_margin; /* Time from sync to picture */
174 u_long vl_right_margin; /* Time from picture to sync */
175
176 /* Vertical control register. */
177 u_long vl_vsync_len; /* Length of vertical sync */
178 u_long vl_upper_margin; /* Time from sync to picture */
179 u_long vl_lower_margin; /* Time from picture to sync */
180
181 u_long mmio; /* Memory mapped registers */
182 } vidinfo_t;
183
184 extern vidinfo_t panel_info;
typedef struct vidinfo {
162 u_long vl_col; /* Number of columns (i.e. 640) */
163 u_long vl_row; /* Number of rows (i.e. 480) */
164 u_long vl_clk; /* pixel clock in ps */
165
166 /* LCD configuration register */
167 u_long vl_sync; /* Horizontal / vertical sync */
168 u_long vl_bpix; /* Bits per pixel, 0 = 1, 1 = 2, 2 = 4, 3 = 8, 4 = 16 */
169 u_long vl_tft; /* 0 = passive, 1 = TFT */
170
171 /* Horizontal control register. */
172 u_long vl_hsync_len; /* Length of horizontal sync */
173 u_long vl_left_margin; /* Time from sync to picture */
174 u_long vl_right_margin; /* Time from picture to sync */
175
176 /* Vertical control register. */
177 u_long vl_vsync_len; /* Length of vertical sync */
178 u_long vl_upper_margin; /* Time from sync to picture */
179 u_long vl_lower_margin; /* Time from picture to sync */
180
181 u_long mmio; /* Memory mapped registers */
182 } vidinfo_t;
183
184 extern vidinfo_t panel_info;
该结构体示例化panel_info定义于board/atmel/at91sam9g10ek/sam9g10ek.c中:
297 vidinfo_t panel_info = {
298 vl_col: 320,
299 vl_row: 240,
300 vl_clk: 6400000,
301 vl_sync: ATMEL_LCDC_INVLINE_INVERTED |
302 ATMEL_LCDC_INVFRAME_INVERTED|
303 ATMEL_LCDC_INVCLK_INVERTED,
304 vl_bpix: 3,
305 vl_tft: 1,
306 vl_hsync_len: 1,
307 vl_left_margin: 70,
308 vl_right_margin:18,
309 vl_vsync_len: 1,
310 vl_upper_margin:13,
311 vl_lower_margin:9,
312 mmio: AT91SAM9261_LCDC_BASE,
313 };
uboot中log处理的更多相关文章
- uboot-tiny4412启动流程(下)----如何将自己的裸板测试程序加入uboot中启动测试
今天在工作上搞了一天高通的芯片uboot程序,目的是希望将一个裸板的程序移植到uboot中,并且开机让它运行.这个芯片是NXP4330,目前是高通的一个芯片,基于ARM-contexA9架构,那么就跟 ...
- uboot中添加FIQ中断及相关问题
本文主要说明了在uboot中添加FIQ中断时遇到的问题以及对应的解决办法. 首先交代一下项目的软硬件环境.硬件方面,使用s3c2440作为主控芯片,外接串口.网卡等设备.软件方面,主控芯片上电后运行u ...
- u-boot中nandflash初始化流程分析(转)
u-boot中nandflash初始化流程分析(转) 原文地址http://zhuairlunjj.blog.163.com/blog/static/80050945201092011249136/ ...
- (四)ubuntu学习前传—uboot中对Flash和DDR的管理
1.uboot阶段Flash的分区 (1)所谓分区,就是说对Flash进行分块管理.(2)PC机等产品中,因为大家都是在操作系统下使用硬盘的,整个硬盘由操作系统统一管理,操作系统会使用文件系统帮我们管 ...
- uboot中gd的定义和使用
近期在做uboot中nand启动相关的工作,遇到一个问题一直纠结着.如今最终明确了这个问题,想想还有好多兄弟在某个黑暗的角落里或者某台电脑前纠结着呢,所以赶紧写下来以供查阅. uboot versio ...
- u-boot中分区和内核MTD分区关系
一.u-boot中环境变量与uImage中MTD的分区关系 分区只是内核的概念,就是说A-B地址放内核,C-D地址放文件系统,(也就是规定哪个地址区间放内核或者文件系统)等等. 一般我们只需要分3-4 ...
- 关于Yaffs2在u-boot中的支持
开发板是一块2G的MLC的NandFlash,页大小8k+512,为其移植u-boot到yaffs2这了.以前在Mini2440上移植过2k+64的slc的NandFlash的Yaffs2支持,当然也 ...
- uboot中raise:Signal #8 caught的根本原因
在移植uboot时编译一切正常,但uboot启动中载入自己写的网卡驱动出现故障,一直在打印raise:Signal #8 caught google 百度了一番,也有非常多人遇到了这个问题,大家都说 ...
- 分析uboot中 make xxx_config过程
make xxx_config实质上就是调用了 首先看MKCONFIG: [注意]SRCTREE=源文件下的目录 之后的语句: @$(MKCONFIG) $(@:_config=) arm arm92 ...
随机推荐
- [转载][转]修改/proc目录下的参数优化网络性能
原文地址:[转]修改/proc目录下的参数优化网络性能作者:雪人 网络优化 注意: 1. 参数值带有速度(rate)的参数不能在loopback接口上工作. 2.因为内核是以HZ为单位的内部时钟来定义 ...
- Python 的 Numpy 库
Numpy: # NumPy库介绍 # NumPy的安装 # NumPy系统是Python的一种开源的数值计算扩展 # 可用来存储和处理大型矩阵. # 因为不是Python的内嵌模块,因此 ...
- C#Copy
1.浅拷贝(值类型): public class LightCopy { public int Val { get; set; } public LightCopy(int ival) { Val = ...
- PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)
2014-06-01 Created By BaoXinjian
- DBA_实践指南系列5_Oracle Erp R12日常运维和管理(案例)
2013-12-05 Created By BaoXinjian
- C 标准库IO缓冲区和内核缓冲区的区别
1.C标准库的I/O缓冲区 UNIX的传统 是Everything is a file,键盘.显示器.串口.磁盘等设备在/dev 目录下都有一个特殊的设备文件与之对应,这些设备文件也 ...
- 图解最小生成树 - 普里姆(Prim)算法
我们在图的定义中说过,带有权值的图就是网结构.一个连通图的生成树是一个极小的连通子图,它含有图中全部的顶点,但只有足以构成一棵树的n-1条边.所谓的最小成本,就是n个顶点,用n-1条边把一个连通图连接 ...
- unity5 Orthographic模式相机视截体尺寸计算
一,通过编辑器中数值计算. 如图,相机为Orthographic模式,其camera size为5.57,是什么含义呢,经过测量,发现视图中视截体的高度是5.57x2. 那么视截体的宽度怎么决定呢? ...
- unity save layout
调整完布局,点Save Layout,并命名,就得到一个新的layout,以后可以直接在下拉菜单中选择并切换到此布局.
- cocos2dx 3.x designResolutionSize须主动设置
cocos2dx 3.x最初设置screenSize和designResolutionSize的地方如下: bool AppDelegate::applicationDidFinishLaunchin ...