ARM+LINUX移植攻略(十)支持东华 3.5寸LCD输出console信息和BMP图片、logo

哈尔滨理工大学软件工程专业08-7李万鹏原创作品,转载请标明出处

http://blog.csdn.net/woshixingaaa/archive/2011/02/19/6194637.aspx

由于linux启动代码,仍然出现乱码,而我将启动信息输出到lcd就没有乱码。暂时这个问题还没有解决,lcd其实早已完成,今天整理下,再解决那个问题。

下面是我绘制的主要的lcd驱动调用流程图。start_armboot()lib_arm/board.c中,stdio_init()common/stdio.cdrv_video_init(),video_init(),video_logo (),video_fb_address()在drivers/video/cfb_console.c中,video_hw_init()drivers/video/s3c2410_fb.c中,board_video_init()board/samsung/TE2440II/TE2440II.c

ARM+LINUX移植攻略(十)支持东华 3.5寸LCD输出console信息和BMP图片、logo

最终调用了board_video_init()函数,这个函数由我们自己来编写,由于以前写过裸机的lcd程序,所以时序就可以直接拿来用,不用调了,哈哈。在这个函数中主要还是对那5lcd的控制寄存器进行初始化。这里要注意根据不同的屏,进行x,y的调整,我用的是东华WXCAT35-TG3#001,主要就是初始化一个GraphicDevice *pGD结构体。


明白上边的流程后一切变得很简单,只要根据自己的屏调整好时序就行了。添加一个驱动文件这个是一个外国的牛人已经写好的。在drivers/video/下添加s3c2410_fb.c。代码如下:

在你的配置头文件中添加如下宏定义:

这样就基本完成了,重新启动一下是不是就显示出samsunglogo了。如果先改成自己喜欢的图片,修改tools/logos/denx.bmp,记住一定是是8bppbmp图,修改Makefile文件,修改/tools目录下的Makefile文件,大约是44~46行,

denx.bmp 替换为你需要显示的 logo图片的文件名,保存退出,重新编译 uboot。图片的转化方法,在终端输入命令:
jpegtopnm $1 | ppmquant 31 | ppmtobmp -bpp 8 > $2
使用方法: (脚本名) ( 待处理的 JPG图片名) (输出文件名)

这样就可以显示出你自己喜欢的logo图片了。

如果想将串口的打印信息显示在lcd上,添加环境变量。

只要让stdout等于vga就可以了。在lib_arm/board.c文件中可以看到console_init初始化两次,我们修改的影响第二次的初始化,第一次的不影响,所以还会有部分输出信息显示在串口上的。Lcd就到这里,有什么问题我再及时改正吧。

你可能感兴趣的:(C++,c,linux,C#,脚本)