Android移植到FS2410开发板分析_第1页
Android移植到FS2410开发板分析_第2页
Android移植到FS2410开发板分析_第3页
Android移植到FS2410开发板分析_第4页
Android移植到FS2410开发板分析_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑Android移植到FS2410开发板分析一、目前进展

1.Android已经可以通过NFS在FS2410开发板上运行

二、目前缺陷

1.触摸屏没有校准

2.Android中时钟停止,结束zygote进程,系统重启,时钟更新,但再次停止不动

3.串口无法与GPRS模块通讯

三、移植步骤

一、移植Android内核到FS2410开发板上

1、linux-2.6.25-android-1.0_r1.tar.gz

2、将内核解压到用户目录,如/home/wangan/kernel.git

3、进入kernel.git文件夹,如cd~/kernel.git/

4、修改arch/arm/plat-s3c24xx/common-smdk.c文件中的nandflash分区设置,如geditarch/arm/plat-s3c24xx/common-smdk.c

修改staticstructmtd_partitionsmdk_default_nand_part[]结构体为:

staticstructmtd_partitionsmdk_default_nand_part[]={

[0]={

.name="BootAgent",

.size=SZ_256K,

.offset=0,

},

[1]={

.name="LinuxKernel",

.offset=SZ_256K,

.size=SZ_2M-SZ_256K,

},

[2]={

.name="FileSystem",

.offset=SZ_2M,

.size=SZ_32M-SZ_2M,

},

[3]={

.name="Other",

.offset=SZ_32M,

.size=SZ_32M,

}

};

5、在网站上IA32GNU/LinuxTAR。

6、将文件解压到用户目录,如/home/wangan/arm-2022q3

7、进入arm-2022q3/bin文件夹,如cd~/arm-2022q3/bin/

8、添加当前路径进入环境变量,如exportPATH=$PWD:$PATH,或修改~/.bashrc文件并重新登录

9、进入内核文件夹,如cd~/kernel.git/

10、修改Makefile文件,如geditMakefile

更改ARCH和CROSS_COMPILE

#ARCH?=$(SUBARCH)

ARCH?=arm

#CROSS_COMPILE?=arm-eabi-

CROSS_COMPILE?=arm-none-eabi-

11、从华清远见Linux-内核压缩包中提取。config文件(注意:config前面有个“。”)放入kernel.git文件夹

12、运行makemenuconfig

(1)确保SystemTypeARMsystemtype()中的内容为SamsungS3C2410,S3C2412,S3C2413,S3C2440,S3C2442,S3C2443

(2)确保SystemTypeS3C2410Machines[*]SMDK2410/A9M2410被勾选

(3)取消选择与Goldfish相关的内容

DeviceDriversCharacterdevicesGoldfishTTYDriver

DeviceDriversPowersupplyclasssupportGoldfishbatterydriver(NEW)

DeviceDriversRealTimeClockGOLDFISH(NEW)

DeviceDriversGraphicssupportSupportforframebufferdevicesGoldfishFramebuffer

(4)选择S3C2410LCD相关的内容

S3C2410处理器是Samsung公司基于ARM公司的ARM920T处理器核,采用0.18um制造工艺的32位微控制器。该处理器拥有:独立的16KB指令Cache和16KB数据Cache,MMU,支持TFT的LCD控制器,NAND闪存控制器,3路UART,4路DMA,4路带PWM的Timer,I/O口,RTC,8路10位ADC,TouchScreen接口,IIC-BUS接口,IIS-BUS接口,2个USB主机,1个USB设备,SD主机和MMC接口,2路SPI。S3C2410处理器可运行在203MHz。

DeviceDriversGraphicssupportSupportforframebufferdevices*S3C2410LCDframebuffersupport

DeviceDriversGraphicssupport[*]Bootuplogo[*]StandardblackandwhiteLinuxlogo

DeviceDriversGraphicssupport[*]Bootuplogo[*]Standard16-colorLinuxlogo

DeviceDriversGraphicssupport[*]Bootuplogo[*]Standard224-colorLinuxlogo

(5)选中Android内核必须选项

KernelFeatures[*]UsetheARMEABItocompilethekernel

Generalsetup[*]Usefullshmemfilesystem

Generalsetup[*]EnableAndroid'sSharedMemorySubsystem

SystemType[*]SupportThumbuserbinaries

DeviceDriversAndroid[*]Androidlogdriver

DeviceDriversAndroid*BinderIPCDriver

(6)尽量选中Android内核可选选项

DeviceDriversAndroid[*]RAMbufferconsole

DeviceDriversAndroid[*]Androidtimedgpiodriver

DeviceDriversAndroid[*]Onlyallowcertaingroupstocreatesockets

(7)其余CONFIG选项,如系统支持请一并选择

CONFIG_ANDROID_POWER=y

CONFIG_ANDROID_POWER_STAT=y

CONFIG_ANDROID_POWER_ALARM=y

(可以在Kconfig文件中查找ANDROID_POWER等字段进行选择,或者直接修改。config文件)

13、退出并保存。config

二、移植LCD驱动到Linux-2.6.25内核

Linux是的自由电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux早是由芬兰黑客LinusTorvalds为尝试在英特尔x86架构上提供自由的类Unix操作系统而开发的。该计划开始于1991年,在计划的早期有一些Minix黑客提供了协助,而今天无数程序员正在为该计划无偿提供帮助。技术上说Linux是一个内核。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。

如果Linux内核的可移植性和效率还不够好,Linux还提供了其他一些特性,它们无法划分到上面的分类中。作为一个生产操作系统和开源软件,Linux是测试新协议及其增强的良好平台。Linux支持大量网络协议,包括典型的TCP/IP,以及高速网络的扩展(大于1GigabitEthernet[GbE]和10GbE)。Linux也可以支持诸如流控制传输协议(SCTP)之类的协议,它提供了很多比TCP更的特性(是传输层协议的接替者)。

Linux还是一个动态内核,支持动态添加或删除软件组件。被称为动态可加载内核模块,它们可以在引导时根据需要(当前特定设备需要这个模块)或在任何时候由用户插入。Linux的一个增强是可以用作其他操作系统的操作系统(称为系统管理程序)。近,对内核进行了修改,称为基于内核的虚拟机(KVM)。这个修改为用户空间启用了一个新的接口,它可以允许其他操作系统在启用了KVM的内核之上运行。除了运行Linux的其他实例之外,Microsoft?Windows?也可以进行虚拟化。惟一的限制是底层处理器必须支持新的虚拟化指令

1、进入kernel.git文件夹,如cd~/kernel.git/

2、修改arch/arm/mach-s3c2410/mach-smdk2410.c文件,如geditarch/arm/mach-s3c2410/mach-smdk2410.c

(1)增加头文件#includeasm/arch/fb.h

(2)增加两给结构体

staticstructs3c2410fb_displaysmdk2410_lcd_cfg__initdata={

.lcdcon5=S3C2410_LCDCON5_FRM565|

S3C2410_LCDCON5_INVVLINE|

S3C2410_LCDCON5_INVVFRAME|

S3C2410_LCDCON5_PWREN|

S3C2410_LCDCON5_HWSWP,

.type=S3C2410_LCDCON1_TFT,

.width=320,

.height=240,

.pixclock=174757,

.xres=320,

.yres=240,

.bpp=16,

.left_margin=16,

.right_margin=59,

.hsync_len=9,

.upper_margin=2,

.lower_margin=6,

.vsync_len=16,

};

staticstructs3c2410fb_mach_infosmdk2410_fb_info__initdata={

.displays=smdk2410_lcd_cfg,

.num_displays=1,

.default_display=0,

.gpccon=0xaa955699,

.gpccon_mask=0xffc003cc,

.gpcup=0x0000ffff,

.gpcup_mask=0xffffffff,

.gpdcon=0xaa95aaa1,

.gpdcon_mask=0xffc0fff0,

.gpdup=0x0000faff,

.gpdup_mask=0xffffffff,

.lpcsel=0xf82,

};

(3)在smdk2410_ini

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论