Android移植到FS2410開發(fā)板分析_第1頁
Android移植到FS2410開發(fā)板分析_第2頁
Android移植到FS2410開發(fā)板分析_第3頁
Android移植到FS2410開發(fā)板分析_第4頁
Android移植到FS2410開發(fā)板分析_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

精品文檔-下載后可編輯Android移植到FS2410開發(fā)板分析一、目前進(jìn)展

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

二、目前缺陷

1.觸摸屏沒有校準(zhǔn)

2.Android中時(shí)鐘停止,結(jié)束zygote進(jìn)程,系統(tǒng)重啟,時(shí)鐘更新,但再次停止不動(dò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、進(jìn)入kernel.git文件夾,如cd~/kernel.git/

4、修改arch/arm/plat-s3c24xx/common-smdk.c文件中的nandflash分區(qū)設(shè)置,如geditarch/arm/plat-s3c24xx/common-smdk.c

修改staticstructmtd_partitionsmdk_default_nand_part[]結(jié)構(gòu)體為:

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、在網(wǎng)站上IA32GNU/LinuxTAR。

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

7、進(jìn)入arm-2022q3/bin文件夾,如cd~/arm-2022q3/bin/

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

9、進(jìn)入內(nèi)核文件夾,如cd~/kernel.git/

10、修改Makefile文件,如geditMakefile

更改ARCH和CROSS_COMPILE

#ARCH?=$(SUBARCH)

ARCH?=arm

#CROSS_COMPILE?=arm-eabi-

CROSS_COMPILE?=arm-none-eabi-

11、從華清遠(yuǎn)見Linux-內(nèi)核壓縮包中提取。config文件(注意:config前面有個(gè)“?!保┓湃雓ernel.git文件夾

12、運(yùn)行makemenuconfig

(1)確保SystemTypeARMsystemtype()中的內(nèi)容為SamsungS3C2410,S3C2412,S3C2413,S3C2440,S3C2442,S3C2443

(2)確保SystemTypeS3C2410Machines[*]SMDK2410/A9M2410被勾選

(3)取消選擇與Goldfish相關(guān)的內(nèi)容

DeviceDriversCharacterdevicesGoldfishTTYDriver

DeviceDriversPowersupplyclasssupportGoldfishbatterydriver(NEW)

DeviceDriversRealTimeClockGOLDFISH(NEW)

DeviceDriversGraphicssupportSupportforframebufferdevicesGoldfishFramebuffer

(4)選擇S3C2410LCD相關(guān)的內(nèi)容

S3C2410處理器是Samsung公司基于ARM公司的ARM920T處理器核,采用0.18um制造工藝的32位微控制器。該處理器擁有:獨(dú)立的16KB指令Cache和16KB數(shù)據(jù)Cache,MMU,支持TFT的LCD控制器,NAND閃存控制器,3路UART,4路DMA,4路帶PWM的Timer,I/O口,RTC,8路10位ADC,TouchScreen接口,IIC-BUS接口,IIS-BUS接口,2個(gè)USB主機(jī),1個(gè)USB設(shè)備,SD主機(jī)和MMC接口,2路SPI。S3C2410處理器可運(yùn)行在203MHz。

DeviceDriversGraphicssupportSupportforframebufferdevices*S3C2410LCDframebuffersupport

DeviceDriversGraphicssupport[*]Bootuplogo[*]StandardblackandwhiteLinuxlogo

DeviceDriversGraphicssupport[*]Bootuplogo[*]Standard16-colorLinuxlogo

DeviceDriversGraphicssupport[*]Bootuplogo[*]Standard224-colorLinuxlogo

(5)選中Android內(nèi)核必須選項(xiàng)

KernelFeatures[*]UsetheARMEABItocompilethekernel

Generalsetup[*]Usefullshmemfilesystem

Generalsetup[*]EnableAndroid'sSharedMemorySubsystem

SystemType[*]SupportThumbuserbinaries

DeviceDriversAndroid[*]Androidlogdriver

DeviceDriversAndroid*BinderIPCDriver

(6)盡量選中Android內(nèi)核可選選項(xiàng)

DeviceDriversAndroid[*]RAMbufferconsole

DeviceDriversAndroid[*]Androidtimedgpiodriver

DeviceDriversAndroid[*]Onlyallowcertaingroupstocreatesockets

(7)其余CONFIG選項(xiàng),如系統(tǒng)支持請(qǐng)一并選擇

CONFIG_ANDROID_POWER=y

CONFIG_ANDROID_POWER_STAT=y

CONFIG_ANDROID_POWER_ALARM=y

(可以在Kconfig文件中查找ANDROID_POWER等字段進(jìn)行選擇,或者直接修改。config文件)

13、退出并保存。config

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

Linux是的自由電腦操作系統(tǒng)內(nèi)核。它是一個(gè)用C語言寫成,符合POSIX標(biāo)準(zhǔn)的類Unix操作系統(tǒng)。Linux早是由芬蘭黑客LinusTorvalds為嘗試在英特爾x86架構(gòu)上提供自由的類Unix操作系統(tǒng)而開發(fā)的。該計(jì)劃開始于1991年,在計(jì)劃的早期有一些Minix黑客提供了協(xié)助,而今天無數(shù)程序員正在為該計(jì)劃無償提供幫助。技術(shù)上說Linux是一個(gè)內(nèi)核?!皟?nèi)核”指的是一個(gè)提供硬件抽象層、磁盤及文件系統(tǒng)控制、多任務(wù)等功能的系統(tǒng)軟件。一個(gè)內(nèi)核不是一套完整的操作系統(tǒng)。

如果Linux內(nèi)核的可移植性和效率還不夠好,Linux還提供了其他一些特性,它們無法劃分到上面的分類中。作為一個(gè)生產(chǎn)操作系統(tǒng)和開源軟件,Linux是測(cè)試新協(xié)議及其增強(qiáng)的良好平臺(tái)。Linux支持大量網(wǎng)絡(luò)協(xié)議,包括典型的TCP/IP,以及高速網(wǎng)絡(luò)的擴(kuò)展(大于1GigabitEthernet[GbE]和10GbE)。Linux也可以支持諸如流控制傳輸協(xié)議(SCTP)之類的協(xié)議,它提供了很多比TCP更的特性(是傳輸層協(xié)議的接替者)。

Linux還是一個(gè)動(dòng)態(tài)內(nèi)核,支持動(dòng)態(tài)添加或刪除軟件組件。被稱為動(dòng)態(tài)可加載內(nèi)核模塊,它們可以在引導(dǎo)時(shí)根據(jù)需要(當(dāng)前特定設(shè)備需要這個(gè)模塊)或在任何時(shí)候由用戶插入。Linux的一個(gè)增強(qiáng)是可以用作其他操作系統(tǒng)的操作系統(tǒng)(稱為系統(tǒng)管理程序)。近,對(duì)內(nèi)核進(jìn)行了修改,稱為基于內(nèi)核的虛擬機(jī)(KVM)。這個(gè)修改為用戶空間啟用了一個(gè)新的接口,它可以允許其他操作系統(tǒng)在啟用了KVM的內(nèi)核之上運(yùn)行。除了運(yùn)行Linux的其他實(shí)例之外,Microsoft?Windows?也可以進(jìn)行虛擬化。惟一的限制是底層處理器必須支持新的虛擬化指令

1、進(jìn)入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)增加兩給結(jié)構(gòu)體

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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論