当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]怎样将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文件中的nand flash分区设置,如gedit arch/arm/plat-s3c24xx/common-smdk.c
修改static struct mtd_partition smdk_default_nand_part[]结构体为:
static struct mtd_partition smdk_default_nand_part[] = {
       [0] = {
              .name      = "Boot Agent",
              .size = SZ_256K,
              .offset     = 0,
       },
       [1] = {
              .name      = "Linux Kernel",
              .offset = SZ_256K,
              .size = SZ_2M - SZ_256K,
       },
       [2] = {
              .name      = "File System",
              .offset = SZ_2M,
              .size = SZ_32M - SZ_2M,
       },
       [3] = {
              .name      = "Other",
              .offset     = SZ_32M,
              .size = SZ_32M,
       }
};

5、在网站上下载IA32 GNU/Linux TAR。

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

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

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

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

10、修改Makefile文件,如gedit Makefile
更改ARCH和CROSS_COMPILE
#ARCH          ?= $(SUBARCH)
ARCH            ?= arm
#CROSS_COMPILE      ?= arm-eabi-
CROSS_COMPILE       ?= arm-none-eabi-

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

12、运行make menuconfig
(1) 确保System Type  ---> ARM system type ()中的内容为Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443
(2) 确保System Type  ---> S3C2410 Machines  ---> [*] SMDK2410/A9M2410被勾选
(3) 取消选择与Goldfish相关的内容
Device Drivers  ---> Character devices  ---> < > Goldfish TTY Driver
Device Drivers  ---> Power supply class support  ---> < >   Goldfish battery driver (NEW)
Device Drivers  ---> Real Time Clock  ---> < >   GOLDFISH (NEW)
Device Drivers  ---> Graphics support  ---> Support for frame buffer devices  ---> < >   Goldfish Framebuffer
(4) 选择S3C2410 LCD相关的内容
Device Drivers  ---> Graphics support  ---> Support for frame buffer devices  ---> <*>   S3C2410 LCD framebuffer support
Device Drivers  ---> Graphics support  ---> [*] Bootup logo  ---> [*]   Standard black and white Linux logo
Device Drivers  ---> Graphics support  ---> [*] Bootup logo  ---> [*]   Standard 16-color Linux logo
Device Drivers  ---> Graphics support  ---> [*] Bootup logo  ---> [*]   Standard 224-color Linux logo
(5) 选中Android内核必须选项
Kernel Features  ---> [*] Use the ARM EABI to compile the kernel
General setup  ---> [*] Use full shmem filesystem
General setup  ---> [*] Enable Android's Shared Memory Subsystem
System Type  ---> [*] Support Thumb user binaries
Device Drivers  ---> Android  ---> [*] Android log driver
Device Drivers  ---> Android  ---> <*> Binder IPC Driver
(6) 尽量选中Android内核可选选项
Device Drivers  ---> Android  ---> [*] RAM buffer console
Device Drivers  ---> Android  ---> [*] Android timed gpio driver
Device Drivers  ---> Android  ---> [*] Only allow certain groups to create sockets
(7) 其余CONFIG选项,如系统支持请一并选择
CONFIG_ANDROID_POWER =y
CONFIG_ANDROID_POWER_STAT =y
CONFIG_ANDROID_POWER_ALARM =y
(可以在Kconfig文件中查找ANDROID_POWER等字段进行选择,或者直接修改.config文件)

13、退出并保存.config [!--empirenews.page--]

二、移植LCD驱动到Linux-2.6.25内核
1、 进入kernel.git文件夹,如cd ~/kernel.git/
2、 修改arch/arm/mach-s3c2410/mach-smdk2410.c文件,如gedit arch/arm/mach-s3c2410/mach-smdk2410.c
(1) 增加头文件#include <asm/arch/fb.h>
(2) 增加两给结构体
static struct s3c2410fb_display smdk2410_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,
};

static struct s3c2410fb_mach_info smdk2410_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_init()函数中增加s3c24xx_fb_set_platdata(&smdk2410_fb_info); 

三、移植触摸屏驱动到Linux-2.6.25内核(参见《基于linux-2.26.5内核的FS2410开发板触摸屏驱动移植》)并制作zImage文件,如make
       这里提一下,确保已经勾选Device Drivers  ---> Input device support  ---> <*>   Event interface,本人曾经在这里徘徊,感谢游老师悉心教诲! 

四、制作支持ARMv4的Android根文件系统
1、从下载Android的ARMv4版本根文件
2、在/dev下增加null和console两个设备节点
mknod -m 660 null c 1 3
mknod -m 660 console c 5 1
3、在U-boot中修改启动参数init为/init,完整的命令行如:root=nfs nfsroot=169.254.7.118:/source/rootfs ip=169.254.7.119 console=ttySAC0,115200 init=/init
4、修改/init.rc文件,去除除mount tmpfs tmpfs /sqlite_stmt_journals size=4m之外的所有mount命令
系统制作完成,现在应该可以看到漂亮的大表了。首次启动需要创建文件,大约17分钟。然后每次启动只需要2分钟。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

亘喜生物科技集团宣布正在中国开展的、旨在全面评估GC007g治疗复发/难治性急性B淋巴细胞白血病效果的1/2期注册性临床试验顺利进入2期研究阶段,首例入组患者已给药。GC007g是亘喜生物旗下的一款靶向CD19的供者来源...

关键字: 移植 CD

随着2003年10月安迪鲁宾联合几位朋友创建了Android公司,后来影响众人的智能设备操作系统公司由此而生(2005年被Google收购)。现如今,世界上越来越多的智能终端包括手机、TV、SmartBox和IoT、汽车...

关键字: Android 内核开源

北京2022年9月9日 /美通社/ -- 诺诚健华(香港联交所代码:09969)今天宣布,tafasitamab (Minjuvi®)联合来那度胺治疗不适合自体干细胞移植 (ASCT) 条件的复发/难治弥漫性大B...

关键字: VI NJU BSP 移植

(全球TMT2022年9月7日讯)爱立信在与谷歌最近的一次合作中,与生态系统合作伙伴成功展示了爱立信网络基础设施可支持单台Android 13设备上的多个切片,同时满足企业(工作模式)和消费者应用。同时,该演示首次为运...

关键字: Android 爱立信 网络切片 带宽

北京2022年9月7日 /美通社/ -- 网络切片技术可以满足不同的业务需求,是为运营商和企业全方位实现5G价值的关键所在。为更好地发掘5G潜力、实现5G价值,爱立信近日携手谷歌成功展示了灵活性更高的网络切片技术,推动网...

关键字: Android 爱立信 网络切片 RS

42Gears客户可以继续使用MDM套件管理升级过的Android设备 印度班加罗尔, 2022年9月6日 /美通社/ -- 随着谷歌Android 13的最新发布,42G...

关键字: Android RS GE DM

伦敦2022年8月29日 /美通社/ -- 继此前Canonical宣布Ubuntu已可运行于RISC-V 处理器及硬件之后,现在自豪地宣布发布支持更多款RISC-...

关键字: UBUNTU 开发板 RISC-V CANONICAL

苏州2022年8月19日 /美通社/ -- 近日,华中科技大学同济医学院附属协和医院心外科董念国教授团队运用与心擎医疗联合研发的短中期体外全磁悬浮心室辅助装置MoyoAssist®,成功救治三例危重的终...

关键字: 磁悬浮 移植 IC 静脉

摘要:借助Android智能移动平台,结合百度地图开源SDK,综合运用电子地图功能、定位功能、路径导航功能,设计了一款包含地图显示功能、实时定位功能、路径规划功能、景点搜索及展示功能的Android手机端智能化的移动自助...

关键字: Android 移动自助旅游系统 百度地图

Hello大家好,我是米尔的工程师。现在车规级芯片市场潜力巨大,需求旺盛,芯片都在逐渐走向国产化。本期要介绍的主角是MYD-YT507H开发板,是米尔结合国产工业级平台CPU:全志T507-H芯片研制的CPU模组,接下来...

关键字: 米尔电子 处理器 开发板

嵌入式教程

6897 篇文章

关注

发布文章

编辑精选

技术子站

关闭