官术网_书友最值得收藏!

5.1.2 MSM適用于Android的 Linux內(nèi)核的結(jié)構(gòu)

使用MSM處理器平臺(tái)的Linux內(nèi)核和標(biāo)準(zhǔn)的Linux內(nèi)核的差別有以下幾個(gè)方面:

MSM及其板級(jí)平臺(tái)機(jī)器的移植

MSM及其板級(jí)平臺(tái)一些虛擬設(shè)備的驅(qū)動(dòng)程序

Android中特有的驅(qū)動(dòng)程序和組件

MSM及其板級(jí)平臺(tái)機(jī)器的移植和MSM及其板級(jí)平臺(tái)一些虛擬設(shè)備的驅(qū)動(dòng)程序是硬件平臺(tái)相關(guān)的內(nèi)容。Android中特有的驅(qū)動(dòng)程序和組件是Android中特有的部分,這種內(nèi)容在Android平臺(tái)的Linux內(nèi)核中,是基本相同的。

在Android開源工程的網(wǎng)站上,使用git工具得到msm內(nèi)核的方式如下所示:

    $ git clone git://android.git.kernel.org/kernel/msm.git

通常情況下,MSM內(nèi)核git的代碼倉(cāng)庫(kù)中有origin/android-msm-2.6.29和origin/android-msm-2.6.29-nexusone兩個(gè)分支可以選擇。

選擇msm通用的2.6.29版本,并且進(jìn)行編譯的方式如下所示:

    $ git checkout -b android-msm-2.6.29 origin/android-msm-2.6.29
    $ make ARCH=arm msm_defconfig .config
    $ make ARCH=arm CROSS_COMPILE={path}/arm-none-linux-gnueabi-

選擇Nexus One中使用的MSM內(nèi)核版本,并且進(jìn)行編譯的方式如下所示:

    $ git checkout -b android-msm-2.6.29-nexusone origin/android-msm-2.6.29-nexusone
    $ make ARCH=arm mahimahi_defconfig .config
    $ make ARCH=arm CROSS_COMPILE={path}/arm-none-linux-gnueabi-

使用MSM平臺(tái)的Linux內(nèi)核主要有兩個(gè)版本,一個(gè)針對(duì)MSM7kxx系列的處理器,另一個(gè)針對(duì)QSD8kxx系列的處理器(snapdragon),它們使用了不同的Linux代碼和配置文件。對(duì)于前者其config文件的路徑為arch/arm/configs目錄中的msm_defconfig。對(duì)于后者,參考的硬件平臺(tái)即Nexus One,其config文件的路徑為arch/arm/configs目錄中的mahimahi_defconfig。

以Nexus One手機(jī)使用的MSM處理器的Linux內(nèi)核版本為例,其config文件為mahimahi_defconfig。

體系結(jié)構(gòu)方面的片斷如下所示:

    CONFIG_ARM=y
    CONFIG_ARM=y
    CONFIG_SYS_SUPPORTS_APM_EMULATION=y
    CONFIG_GENERIC_GPIO=y
    CONFIG_GENERIC_TIME=y
    CONFIG_GENERIC_CLOCKEVENTS=y
    CONFIG_MMU=y
    #
    # System Type
    #
    CONFIG_ARCH_MSM=y
    CONFIG_ARCH_QSD8K50=y
    CONFIG_ARCH_MSM_SCORPION=y
    CONFIG_MSM_MDP31=y

其中在系統(tǒng)類型方面,選擇了CONFIG_ARCH_MSM表示MSM系列,選擇CONFIG_ARCH_QSD8K50表示QSD8K50(QSD8250 或者QSD8650)處理器, CONFIG_ARCH_MSM_SCORPION表示處理器所使用的Scorpion內(nèi)核。

config文件后面配置的方面是MSM處理器使用的特性和板級(jí)類型,內(nèi)容如下所示:

    #
    # MSM Board Type
    #
    CONFIG_MACH_SWORDFISH=y
    CONFIG_MACH_MAHIMAHI=y
    # ......

SWORDFISH和MAHIMAHI都是基于MSM處理器開發(fā)板的名稱。

MSM處理器CPU部分的配置如下所示:

    #
    # Processor Type
    #
    CONFIG_CPU_32=y
    CONFIG_CPU_32v6K=y
    CONFIG_CPU_V7=y
    CONFIG_CPU_32v7=y
    CONFIG_CPU_ABRT_EV7=y
    CONFIG_CPU_PABRT_IFAR=y
    CONFIG_CPU_CACHE_V7=y
    CONFIG_CPU_CACHE_VIPT=y
    CONFIG_CPU_COPY_V6=y
    CONFIG_CPU_TLB_V7=y
    CONFIG_VERIFY_PERMISSION_FAULT=y
    CONFIG_CPU_HAS_ASID=y
    CONFIG_CPU_CP15=y
    CONFIG_CPU_CP15_MMU=y

在這里選擇了CONFIG_CPU_V7表示使用ARMv7的體系結(jié)構(gòu)。其他的相關(guān)配置也是包含了ARMv7所具有的功能。

主站蜘蛛池模板: 射洪县| 武宁县| 柳州市| 武山县| 茶陵县| 宁河县| 武邑县| 宜春市| 修文县| 民丰县| 荔波县| 卢龙县| 平阴县| 成安县| 曲周县| 兴仁县| 屯门区| 泗阳县| 苍溪县| 兖州市| 云龙县| 久治县| 玉门市| 司法| 西林县| 兴文县| 肇东市| 旬邑县| 金沙县| 大姚县| 凤凰县| 高安市| 河源市| 宝兴县| 大丰市| 台北市| 肇州县| 南召县| 南投县| 鄂托克前旗| 花莲市|