【Android源码 栏目提醒】:网学会员为需要Android源码 的朋友们搜集整理了ANDROID开源项目向博创2410实验箱上的移植 - 综合课件相关资料,希望对各位网友有所帮助!
Android开源项目向博创2410实验箱上的移植指导老师孟宁结题答辩小组成员姓名性别学号角色秦国利男SA09225328组长魏巍男SA09225329 组员杨绍文男SA09225152组员李伟男SA09225399 组员责任矩阵报告内容项目概述设计目标设计思路移植过程重点和难点项目总结参考文献项目概述Android是基于Linux内核的软件平台和操作系统早期由Google开发后由开放手机联盟Open Handset Alliance开发。
它采用了软件堆层software stack又名为软件叠层的架构主要分为三部分底层以Linux核心为基础由c语言开发只提供基本功能。
中间层包括函数库Library和虚拟机Virtual Machine由C开发。
最上层是各种应用软件包括通话程序短信程序等应用软件则由各公司自行开发以java编写。
我们移植的Android系统其内核版本为linux-2.6.25。
Android体系结构设计目标将Android成功移植到博创的2410试验箱上添加和修改最基本的驱动程序系统运行后能进行最基本的操作编写一简单应用程序使之能在系统中成功运行该设计思路遵循嵌入式系统移植的基本思路设计思路移植过程搭建交叉编译环境将交叉编译工具arm-linux-none-gnu解压到工作目录然后设置环境变量打开用户主目录下的.bashrc在这个文件中加入export PATHPATH:/.../ arm-linux-none-gnu/bin修改内核根目录下的Makefile文件设置交叉编译工具的路径ARCH armCROSS_COMPILE…/arm-linux-none-gnueabi-移植过程修改VIVI bootloader因为博创2410自带的VIVI的MTD分区表默认如下。
可以看只给内核分1M空间和根文件系统3M空间而实际Android内核编译后大于1M根文件系统也大于3M所以修改要修改VIVI移植过程找到VIIV的arch/s3c2410/smdk.c 修改NAND flash分区如下移植过程??修改后分区的大小要跟archarmplat-s3c24xxcommon-smdk.c中分区相同如下移植过程添加和修改驱动程序本小组所完善的驱动程序主要有LCD驱动、USB接口驱动、网卡驱动、触摸屏驱动。
LCD驱动1修改arch/arm/mach-s3c2410/mach-smdk2410.c文件添加头文件include 2添加初始化s3c2410的LCD控制器时所需的参数3添加LCD控制器的寄存器参数设置函数查找smdk2410_init添加如下代码static void __init smdk2410_initvoids3c24xx_fb_set_platdataqt2410_lcd_info//设置LCD控制器的寄存器参数移植过程USB驱动因Linux2.6版本的内核已有完善的usb驱动程序因此只需在arch/arm/mach-s3c2410/mach-smdk2410.c中添加usb接口相关的初始化信息1添加Usb接口相关的结构体struct s3c2410_hcd_info usb_s3c2410_info .port0 .flags S3C_HCDFLG_USED2移植过程移植过程3在smdk2410_map_io函数最后添加:smdk2410_usb_init博创2410S所配网卡AX88796NE2000兼容网卡驱动1修改arch/arm/目录下的Kconfig文件增加ISA总线支持使其在make menuconfig 时出现NE2000的网卡配置选项2修改include/asm-arm/arch-s3c2410文件夹下的map.h文件。
加入AX88796的地址映射3修改arch/arm/mach-s3c2410文件夹下的mach-smdk2410.c文件。
在smdk2410_iodesc 中加入AX88796的地址信息。
4修改网卡驱动的主要文件drivers/net/ne.c 移植过程触摸屏驱动1首先打一个补丁s3c2410_touchscreen.patch该补丁主要是在设备文件、配置文件已经驱动程序中添加与触摸屏相关的数据、参数和方法。
2arch/arm/mach-s3c2410/mach-smdk2410.c中添加与触摸屏相关的结构体static struct s3c2410_ts_mach_info smdk2410_ts_cfg __initdata .delay 20000 .presc 49 .oversampling_shift 2 并添加支持触摸屏平台代码的信息这个找到一个名为smdk2410_devices的结构体指针数组里添加s3c_device_ts然后在smdk2410_map_io函数里添加set_s3c2410ts_infosmdk2410_ts_cfg移植过程3修改driver/input/touchscreen/Makefile添加如下内容obj-CONFIG_TOUCHSCREEN_S3C2410 s3c2410_ts.o4将驱动s3c2410_ts.c放置在driver/input/touchscreen/下面编译内核在make menuconfig配置界面中将上面所述的驱动模块以及与android相关的模块选中保存配置后make zImage制作根文件系统下载内核源码用busybox工具制作根文件系统编写一小应用程序将其放在根文件系统/data/app目录下烧写VIVI、内核、根文件系统重点和难点??Android内核十分庞大要想搞明白需要花费大量精力。
??必须对博创2410的系统组成架构非常清楚不然就无法根据它来修改内核代码来配置各个模块的取舍。
??没有编写驱动程序的经验对于驱动程序的编写与移植感到比较艰难。
??由于Android根文件系统比较庞大制作根文件系统遇到很大困难通过此个项目使我对android系统架构较深入的了解对我们将来在该领域的发展积累了很多前期经验。
该项目的设计目标接近完成但距离一个完善的手机操作系统还有一定的差距仍需改进。
尚需要完善的驱动有:音频驱动、键盘驱动、Flash内存驱动、照相机驱动、蓝牙驱动等。
??Linux设备驱动程序学习??嵌入式Android_Linux开发_博客??嵌入式Linux系统移植??Android系统及根文件目录分析??
Android源码编译的几个问题??Android根文件系统启动过程??NANDFlash Partition??Android根文件系统制作方法??Android 中文论坛非常感谢孟宁老师的悉心指导
上一篇:
[计算机软件及应用]毕设论文
下一篇:
Function GetIp(IP) 获得ip asp