制作u-boot LCD开机logo 及LCD字符显示错误的解决
来源:互联网 发布:.tv域名价格 编辑:程序博客网 时间:2024/05/16 18:18
转自:http://www.linuxidc.com/Linux/2011-08/39658.htm
想显示logo,当然我们首先要做的是修改完善lcd的驱动,修改驱动这一块我就不赘述了,网上一搜一大把,不过推荐一下Tekkaman Ninja 的博客,参照他的肯定是没问题的。
以下引自Tekkaman Ninja
/**********************************************************************************
图片的放置路径
所有的开机logo都放在了 /tools/logos 之下,你只需要将你的班子作对应的logo替换就好了。
对于S3C2440,你只需要将denx.bmp替换成你想要的logo就好了。
对于ATMEL的芯片,据说会显示ATMEL的logo,所以替换那个logo即可。
但是你所替换的logo必须和原来的大小、格式一模一样,否则会出现u-boot使用过程中宕机重启的后果。
在制作图片前,请您现确认您的Linux主机上安装了Netpbm工具包。如果是Ubuntu,你可以直接用新立得安装;如果是别的发行版,可以在 Netpbm主页 下载源代码编译。
将你想要的图片裁减成160*96的JPG图片,然后用以下的脚本处理一下就好了:
#!/bin/sh
#install Netpbm first
jpegtopnm $1 | ppmquant 31 | ppmtobmp -bpp 8 > $2
可以用任何工具把需要处理的logo图片转换成bmp格式图片,大小160*96像素,色彩深度256色,即8bpp(8位色深),然后保存为你需要的文件名字。
做完上述工作后logo的显示是没问题的,由于我用的uboot版本为 2008.10 与Tekkaman Ninja 不同 ,修改完的代码编译后,uboot版本信息在LCD上的显示无法换行,有一部分的版本信息被覆盖,导致显示不正常。这一度让我很没头绪,到底从哪解决呢?
现在看来还是我不了解版本信息是如何被打印的,导致我无从下手解决这个问题,最后反复看源码总算找到了这句话
printf ("%s\n", version_string);
添加打印的正是版本信息,good
再搜关键字version_string,
发现在drivers/video/cfb_console.c 1200行左右有下面这个函数
static void *video_logo (void)
{
char info[128];
extern char version_string;
int space, len, y_off = 0;
可见在LCD打印信息的语句是在这个函数里的
logo_plot (video_fb_address, VIDEO_COLS, 0, 0);
sprintf (info, " %s", &version_string);//这是在LCD上打印信息的语句
space = (VIDEO_LINE_LEN / 2 - VIDEO_INFO_X) / VIDEO_FONT_WIDTH;
len = strlen(info);
if (len > space) {
video_drawchars (VIDEO_INFO_X, VIDEO_INFO_Y,
(uchar *)info, space);
video_drawchars (VIDEO_INFO_X + VIDEO_FONT_WIDTH,
VIDEO_INFO_Y + VIDEO_FONT_HEIGHT,
(uchar *)info + space, len - space);
y_off = 1;
} else
video_drawstring (VIDEO_INFO_X, VIDEO_INFO_Y, (uchar *)info);
红色部分是需要添加的代码 目前只发现2008.10这个版本的uboot需要添加这部分代码,如果其他版本的uboot出现这种情况,大家不妨检查一下这个函数,或许会找到原因。
编译,运行,好的,显示没任何问题了。
- 制作u-boot LCD开机logo 及LCD字符显示错误的解决
- 制作uboot LCD开机logo 及LCD字符显示错误的解决
- 制作uboot LCD开机logo以及lcd字符显示错误的解决方法
- 嵌入式ARM LCD 开机LOGO的制作
- 基于s3c2440的u-boot-2010.3 LCD驱动流程以及LOGO的显示详解
- 修改u-boot的开机logo及显示过程
- 修改u-boot的开机logo及显示过程
- 修改u-boot的开机logo及显示过程
- u-boot的开机logo及显示过程
- 修改u-boot的开机logo及显示过程
- 高通LCD 开机logo制作
- 高通LCD 开机logo制作
- 【从制作logo到LCD显示或者VGA显示logo】
- U-BOOT LCD分析
- U-BOOT LCD分析
- U-BOOT LCD分析
- U-BOOT LCD分析
- s3c2440的LCD字符显示
- maya2012 安装破解教程 图文教程!
- 城头变换Android旗
- PHP分页效率终结版!
- hibernate 对应关系配置
- Spring在ssh框架中的作用
- 制作u-boot LCD开机logo 及LCD字符显示错误的解决
- Java_9_16课堂总结
- 对CRITICAL_SECTION理解的总结
- Struts1 和Struts2的区别
- PLSQL配置
- Source Insight 宏-单行注释
- 统计10个同学语数外三门成绩的平均分。
- linux下连接mssql1.
- 数据结构_内部排序_插入排序小练习