转载说明:此文提到了s3cfb.h
原文地址:http://blog.csdn.net/lonelyrains/article/details/6700827
======================================================================================================
1、 烧录sd卡,4KB空间,u-boot_mmc.bin
条件:IROM_Fusing_Tool工具
注意:
① win7不支持IROM_Fusing_Tool,xp可以
② 无论是否烧录,sd卡的使用空间不会增加,总是4KB
2、 从sd卡启动,格式化nandflash
条件:dnw工具
注意:
① 打开dnw,配置串口,连接串口,长按空格再上电
② 拨码开关:1/2/3脚全拨向外
③ 格式化时,有询问是否格式话时需要输入Y,但是不会被打印在屏上,此时直接点回车,不然可能会因输入错误报错
3、 USB下载引导程序u-boot.bin文件
条件:dnw在windows下的USB驱动
注意:连接USB线,装载驱动,直到窗口标题栏显示USB:OK
4、 USB下载内核映像zImage文件
5、 USB下载crame文件系统
6、 将qtopia拷贝到sd卡中,从nandflash启动
7、 从sd卡下载qtopia
8、 从内核启动,导入字体文件wenqy.ttf
条件:串口或者网口FTP或者网口telnet+FTP
注意:
① wenqy.ttf是黑体,也可以从网上下载其他的开源字库
② 从内核启动,拨码1/2脚向内,3脚向外
③ 进入字库目录,全删掉,然后将字体拷贝至该目录即可。字体所在的目录为:/usr/local/QtEembedded***/lib/fonts
9、 linux开机画面设置步骤
① 下载三个工具:pngtopnm,pnmquant,pnmtoplainpnm
② 格式转换:
$ pngtopnm linuxlogo.png > linuxlogo.pnm
$ pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm
$ pnmtoplainpnm linuxlogo224.pnm > linuxlogo224.ppm
③ 将生成的文件替换在内核文件目录drivers/video/logo/下的开机文件。本版本的内核开机画面文件名为linux_logo_clut224.ppm
④ 重新编译内核(如果有其他修改,可暂时不编译,等一次修改完再编译,比如背光设置部分)
10、 目前版本的6410开发板背光设置
说明:drivers/video/Samsung/s3cfb.c文件,共有5处修改
① #include "s3cfb.h"下方添加:
- #include <asm/arch/gpio.h>
- #include <linux/gpio.h>
- #include <asm/uaccess.h>
- #include <plat/gpio-cfg.h>
- #include <plat/regs-gpio.h>
- #define GPIO_LCD_PWR_CTRL S3C64XX_GPF(15)
- #define LCD_PWR_CTRL_ON() s3c_gpio_setpin(GPIO_LCD_PWR_CTRL, 0)
- #define LCD_PWR_CTRL_OFF() s3c_gpio_setpin(GPIO_LCD_PWR_CTRL, 1)
- writel(tmp & ~(S3C_VIDCON0_ENVID_ENABLE | S3C_VIDCON0_ENVID_F_ENABLE), S3C_VIDCON0);
- LCD_PWR_CTRL_OFF();
③ void s3cfb_start_lcd(void)函数处
- writel(tmp | S3C_VIDCON0_ENVID_ENABLE | S3C_VIDCON0_ENVID_F_ENABLE, S3C_VIDCON0);
- printk("--->>Look--->>%s--->>LCD_PWR_ON !\n", __FUNCTION__);
- LCD_PWR_CTRL_ON();
④ static int __init s3cfb_probe(struct platform_device *pdev)函数处
- goto release_mem;}
- s3c_gpio_cfgpin(S3C64XX_GPF(15), S3C64XX_GPF_OUTPUT(15));
- gpio_direction_output(S3C64XX_GPF(15), 1);
- gpio_set_value(S3C64XX_GPF(15), 1);
- LCD_PWR_CTRL_OFF();
- printk("--->>This--->>%s--->>LCD_PWR_Ctrl__Init !\n", __FUNCTION__);
⑤ static int __init s3cfb_probe(struct platform_device *pdev) 函数处
- s3cfb_set_backlight_level(S3CFB_DEFAULT_BACKLIGHT_LEVEL);
- s3c_gpio_cfgpin(S3C64XX_GPF(15), S3C64XX_GPF_OUTPUT(15));
- gpio_direction_output(S3C64XX_GPF(15), 1);
- gpio_set_value(S3C64XX_GPF(15), 0);
- LCD_PWR_CTRL_ON();
- printk("--->>This,--->>%s--->>LCD_PWR_Ctrl First ON !\n", __FUNCTION__);
注意:
① 现存的两种版本的内核,0315和0609版本,将上述代码添加至0315版本,编译内核会报错;在0609版本中不会报错
② 背光设置和屏幕偏移部分的代码可以通过对比0315版本和0609版本的drivers/video文件夹的不同找到
11、 目前版本的6410开发板屏幕偏移
说明:drivers/video/Samsung/ s3cfb_video.h文件,共有1处修改
- s3cfb_video_parameter_t video_parameter=""
8,//40, /* front porch */
4,//48, /* hsync width */
16,//40, /* back porch */
5,//13, /* front porch */
1,//3, /* vsync width*/
7,//29, /* back porch */
注意:目前使用的一组参数是不偏移的参数,注释掉的一组参数是根据目前的屏幕框更改的偏移
12、 程序开机启动的设置
步骤:
① 修改ect/init.d/rcS文件,将”qtopia”处修改为
- #qtopia
- echo “starting software *** ….”
- start_software.sh
不能直接将外部写好的rcS文件cp到本目录覆盖源文件,即使设置了权限,仍可能导致操作系统识别不了,提示找不到rcS文件
② 编写start_software.sh脚本。需要到执行文件当前目录才能执行的,cd进入当前目录。
③ Qt库的预先导入:默认情况下,开机启动时是尚未导入QT库的,而操作系统启动之后才导入。不预先导入Qt库会报No such file错。在start_software.sh执行文件启动之前加入如下代码:
- export QTDIR=/usr/local/QtEmbedded-4.5.2
- export QPEDIR=/usr/local/QtEmbedded-4.5.2
- export PATH=$QTDIR/bin:$PATH
- export LD_LIBRARY_PATH=$QTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH
- export TSLIB_TSDEVICE=/dev/input/event1
- export TSLIB_CONFFILE=/usr/local/etc/ts.conf
- export TSLIB_PLUGINDIR=/usr/local/lib/ts
- export TSLIB_CALIBFILE=/etc/pointercal
- export QWS_MOUSE_PROTO="TSLIB:/dev/input/event1"
- export QWS_SIZE='480X272'
- # USB:/dev/input/mice"
- export QWS_KEYBOARD=TTY:/dev/tty1
- export LD_LIBRARY_PATH=/usr/local/QtEmbedded-4.5.2/lib:$LD_LIBRARY_PATH