(8)U-boot的移植
<1>成立工作目录
下载源码Uboot的源码:
#mkdir/root/build_uboot
#cd/root/build_uboot
把下载的源码拷贝到该目录,解压:
并把解压后目录更名为u-boot
#tarjxvfu-boot
创建主代码复制board/Samsung/smdk2410目录为board/Samsung/gec2440
#cp–arfboard/Samsung/smdk2410board/Samsung/gec2440
并修改目录下的Makefile将COBJS:
=修改成COBJS:
=复制include/config/为include/config/
#cpinclude/config/include/config/gec2440
修改顶层Makefile:
创建目标板信息,在smdk2410_config:
unconfig
@$(MKCONFIG)$(@:
_config=)armarm920t
Smdk2410samsungs3c24x0后面添加gec2440_config:
unconfig
@$(MKCONFIG)$(@:
_config=)armarm920tgec2440samsungs3c24x0修改Makefile规那么,将
_LIBS:
=$(subst$(obj),,$(LIBS))$(subst$(obj),,$(LIBBOARD))改成:
_LIBS:
=$(subst$(obj),,$(LIBBOARD))$(subst$(obj),,$(LIBS)
<2>进入目录配置编译
配置#makegec2440_config
#make
编译结果生成烧入开发板
<3>关于触摸板驱动移植
①添加代码:
将touchscreen驱动源码(复制drivers/input/touchscreen目录下的添加到源码目录drivers/input/touchscreen中。
将ADC驱动源码(复制drivers/char目录下的及头文件添加到源码目录drivers/char中。
②修改drivers/input/touchscreen/Makefile文件。
#vimdrivers/input/touchscreen/Makefile
Obj-$(CONFIG_TOUCHSCREEN_GEC2440)+=gec2440_ts.
③修改drivers/input/touchscreen/Kconfig文件
#vimdrivers/input/touchscreen/Kconfig添加
ConfigTOUCHSCREEN_GEC2440
Tristate”GEC2440touchscreeninputdriver”
Help
SayYhereifyouhavethes3c2440touchscreen.
④修改drivers/char/Makefile文件
#vimdrivers/char/Makefile添加
Obj-$(CONFIG_GEC2440_ADC)+=
⑤修改drivers/char/Kconfig文件
#vidriver/char/Kconfig
添加configGEC2440_ADC
Tristate”GEC2440_ADC”
----help--------
SayYhereifyouhavethes3c2440ADC.
⑥修改arch/arm/plat-s3c/include/plat/文件
#vimarch/arm/plat-s3c/include/plat/devs.
添加:
structs3c2410_ts_mach_info{intdelay;}
⑦修改arch/arm/mach-s3c2410/文件
#vimarch/arm/mach-s3c2410/
添加
Staticstructs3c2410_ts_mach_infogec2410_ts_cfg_initdata={
.delay=10000,
.presc=49,
.oversampling_shift=2,
};
在staticvoid_initsmdk2410_map_io(void)函数中添加:
s3c24xx_init_touchscreen(&gec2410_ts_cfg);
⑧修改arch/arm/mach-s3c2410/文件
#vimarch/arm/mach-s3c2410/
在staticstructplatform_device*smdk2440_devices[]_initdata
结构体中添加:
&s3c_device_ts,
⑨编译配置内核
#makemenuconfig
配置菜单添加驱动到内核:
DeviceDrivers--→
Inputdevicesupport---→
[*]Touchscreens-----→
<*>GEC2440touchscreeninputdriver
Characterdevices---→
<*>GEC2440_ADC
编译内核生成静态驱动模块
#make
⑩修改arch/arm/plat-s3c/include/plat/文件
#vimarch/arm/plat-s3c/include/plat/
添加:
structs3c2410_ts_mach_info{
intdelay;
intpresc;
intoversampling_shift;
};
void_init3c24xx_init_touchscreen(structs3c2410_ts_mach_info*hard_s3c2410_ts_info);
externstructplatform_devices3c_device_ts;
修改arch/arm/plat-s3c24xx/文件
#vimarch/arm/plat-s3c24xx/
在文件后面添加
/*Touchscreen*/
staticstructs3c2410_ts_mach_infos3c2410_ts_info;
void_inits3c24xx_init_touchscreen(structs3c2410_ts_mach_info*hard_s3c2410_ts_info);
{
memcpy($s3c2410_ts_info,hard_s3c2410_ts_info,sizeof(structs3c2410_ts_mach_info));
}
EXPORT_SYMBOL(s3c24xx_init_touchscreen);
structplatform_devices3c_device_ts={
.name=”s3c2410_ts”,
.id=-1,
.num_resources=ARRAY_SIZE(s3c_adc_resource),
.resource=s3c_adc_resource,
.dev={
.platform_data=$s3c2410_ts_info,
}
EXPORT_SYMBOL(s3c_device_ts);
在根文件系统中成立相关设备节点:
#mkdir/dev/input
#mknod/dev/inputevent0c1364
#mknod/dev/input/mouse0c1332
提示“…Read-onlyfilesystem”,或”mkdir:
cannotcreatedirectory‘/dev/input’:
Fileexists”.
解决方式如下:
#chmod777/dev/#mount–oremountrw/
基于qt3平台的应用程序
<9>
(9)驱动的移植
<1>关于USB驱动移植
①修改arch/arm/mach-s3c2410/文件
#include
#include
#include
#include
Staticstructs3c2410_hcd_infousb_gec2410_info={
.port[0]={
.flags=S3C2410_HCDFLG_USED,
};
Intusb_gec2410_init(void){
Unsignedlongupllvalue=(0x78<<12)|0xo2<<4)|(0x03);
Prink(“USBControl,(c)gec2410\n”);
&usb_gec2410_info;
while(upllvalue!
=_raw_readl(S3C2410_UPLLCON)){
_raw_write(upllvalue,S3C2410_UPLLCON);
mdelay
(1);
}
}return0;}
<2>在staticvoid_initsmdk2410_map_io()函数中添加usb_sbc2410_init()函数usb_getc2410_init();
<3>内核配置
支持热插拔
Generalsetup->
[*]Configurestandardkernelfeatures(forsmallsystems)->
<*>Supportforhot-pluggabledevices
让内核支持USB设备
Devicedrivers
Blockdevices-->
<*>LowPerformanceUSBBlockdriverSCSIdevicesupport-->
<*>SCSIgenericsupport
<*>ProbeallLUNsoneachSCSIdeviceUSBsupport-->
<*>SupportforHost-sideUSB
[*]USBdevicefilesystem
<*>USBMassStoragesupport
<*>USBMonitor
加入MSDOS文件系统和VFAT文件系统支持(为适应挂载U盘)
Filesystems-->
DOS/FAT/NTFilesystems-->
<*>MSDOSfssupport
<*>VFAT(Windows-95)fssupport
(936)DefaultcodepageforFAT
(cp936)DefaultiocharsetforFAT
使能(DOS分区)CONFIG_MSDOS_PARTITION
Filesystems-->
PartitionTypes-->
[*]PCBIOS(MSDOSpartitiontables)support
添加对中文字体库的支持
Filesystems-->
-*-Nativelanguagesupport-->
<*>SimplifiedChinesecharset(CP936,GB2312)
<*>NLSUTF8编译#make
五、系统测试
1测试目的
软件测试是软件开发的最后一个时期,测试的目的不是证明所开发的软件没有错误,而是尽可能的多发觉软件设计开发全周期中各个时期的错误,以便分析错误的性质与位置而加以纠正,纠正进程涉及到更正或从头设计相关的文档活动。
从而幸免用户在利历时显现不可预测的异样而致使整个系统崩溃。
二、测试条件
(1)系统条件
Linux操作系统
(2)人员选择
单元测试:
每一个模块的设计人员
系统测试:
设计小组的全部成员
验收测试:
α测试:
在咱们设计小组成员的指导下,进行测试
β测试:
完全由不是本小组的人员进行测试
3、测试方式
采纳黑盒测试和白盒测试兼并的测试方式,每当完成一项事件的处置时,便执行程序,进行测试,每完成一个模
展开阅读全文
相关搜索