国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

怎樣將Android移植到FS2410開發(fā)板上

發(fā)布時間:2010-11-24 12:12    發(fā)布者:eetech
關(guān)鍵詞: Android , FS2410 , 開發(fā)板 , 移植
一、目前進展

1.Android已經(jīng)可以通過NFS在FS2410開發(fā)板上運行

二、目前缺陷

1.觸摸屏沒有校準(zhǔn)
2.Android中時鐘停止,結(jié)束zygote進程,系統(tǒng)重啟,時鐘更新,但再次停止不動
3.串口無法與GPRS模塊通訊

三、移植步驟

一、移植Android內(nèi)核到FS2410開發(fā)板上
1、下載linux-2.6.25-android-1.0_r1.tar.gz

2、將內(nèi)核解壓到用戶目錄,如/home/wangan/kernel.git

3、進入kernel.git文件夾,如cd "/kernel.git/

4、修改arch/arm/plat-s3c24xx/common-smdk.c文件中的nand flash分區(qū)設(shè)置,如gedit arch/arm/plat-s3c24xx/common-smdk.c
修改static struct mtd_partition smdk_default_nand_part[]結(jié)構(gòu)體為:
static struct mtd_partition smdk_default_nand_part[] = {
[0] = {
.name = "Boot Agent",
.size = SZ_256K,
.offset = 0,
},
  = {
.name = "Linux Kernel",
.offset = SZ_256K,
.size = SZ_2M - SZ_256K,
},
  = {
.name = "File System",
.offset = SZ_2M,
.size = SZ_32M - SZ_2M,
},
  = {
.name = "Other",
.offset = SZ_32M,
.size = SZ_32M,
}
};

5、在網(wǎng)站上下載IA32 GNU/Linux TAR。

6、將文件解壓到用戶目錄,如/home/wangan/arm-2008q3

7、進入arm-2008q3/bin文件夾,如cd "/arm-2008q3/bin/

8、添加當(dāng)前路徑進入環(huán)境變量,如export PATH=$PWD:$PATH,或修改"/.bashrc文件并重新登錄

9、進入內(nèi)核文件夾,如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內(nèi)核壓縮包中提取.config文件(注意:config前面有個“.”)放入kernel.git文件夾

12、運行make menuconfig
(1) 確保System Type ---> ARM system type ()中的內(nèi)容為Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443
(2) 確保System Type ---> S3C2410 Machines --->  SMDK2410/A9M2410被勾選
(3) 取消選擇與Goldfish相關(guān)的內(nèi)容
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相關(guān)的內(nèi)容
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內(nèi)核必須選項
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內(nèi)核可選選項
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選項,如系統(tǒng)支持請一并選擇

CONFIG_ANDROID_POWER =y
CONFIG_ANDROID_POWER_STAT =y
CONFIG_ANDROID_POWER_ALARM =y
(可以在Kconfig文件中查找ANDROID_POWER等字段進行選擇,或者直接修改.config文件)

13、退出并保存.config

二、移植LCD驅(qū)動到Linux-2.6.25內(nèi)核

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) 增加兩給結(jié)構(gòu)體
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()函數(shù)中增加s3c24xx_fb_set_platdata(&smdk2410_fb_info);

三、移植觸摸屏驅(qū)動到Linux-2.6.25內(nèi)核(參見《基于linux-2.26.5內(nèi)核的FS2410開發(fā)板觸摸屏驅(qū)動移植》)并制作zImage文件,如make

這里提一下,確保已經(jīng)勾選Device Drivers ---> Input device support ---> <*> Event interface,本人曾經(jīng)在這里徘徊,感謝游老師悉心教誨!

四、制作支持ARMv4的Android根文件系統(tǒng)

1、從下載Android的ARMv4版本根文件

2、在/dev下增加null和console兩個設(shè)備節(jié)點
mknod -m 660 null c 1 3
mknod -m 660 console c 5 1

3、在U-boot中修改啟動參數(shù)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命令

系統(tǒng)制作完成,現(xiàn)在應(yīng)該可以看到漂亮的大表了。首次啟動需要創(chuàng)建文件,大約17分鐘。然后每次啟動只需要2分鐘。
本文地址:http://www.4huy16.com/thread-41343-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
初級工 發(fā)表于 2011-3-15 15:32:13
猛人啊。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • “芯”光璀璨,鵬城共賞——2025 Microchip中國技術(shù)精英年會深圳站回顧
  • 技術(shù)熱潮席卷三城,2025 Microchip中國技術(shù)精英年會圓滿收官!
  • Microchip第22屆中國技術(shù)精英年會上海首站開幕
  • 常見深度學(xué)習(xí)模型介紹及應(yīng)用培訓(xùn)教程
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表