新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 移植標(biāo)準(zhǔn)Linux到S3C2410

        移植標(biāo)準(zhǔn)Linux到S3C2410

        作者: 時間:2012-05-18 來源:網(wǎng)絡(luò) 收藏

        此處需要自行加入內(nèi)核解壓前處理器初始化文件head-s3c2410.s,示例代碼:

        .section .start, ax

        ___start:

        bic r2, pc, #0x1f @清除pc相關(guān)位,放于r2

        add r3, r2, #0x4000

        1: ldr r0, [r2], #32

        teq r2, r3

        bne 1b

        mcr p15, 0, r0, c7, c10, 4 @ 寫回 Write Buffer

        mcr p15, 0, r0, c7, c7, 0 @ 刷新 I D caches

        #if 0

        @ 禁用MMU ,caches

        ……

        #endif

        mov r0, #0x00200000

        1: subs r0, r0, #1

        bne 1b

        /arch/arm/kernel/ Makefile

        依樣將$(CONFIG_ARCH_2400) $(CONFIG_ARCH_2410) 加入

        no-irq-arch :=$(CONFIG_ARCH_INTEGRATOR) $(CONFIG_ARCH_CLPS711X)

        ……

        $(CONFIG_ARCH_AT91RM9200

        并添加 obj-$(CONFIG_MIZI) += ecard.o

        obj-$(CONFIG_ARCH_APM) +=apm2.o

        /arch/arm/kernel/entry-armv.S

        此文件主要定義CPU初始化時中斷處理部分[6],可參考處理器使用手冊,按處理器使用要求設(shè)置。

        /arch/arm/kernel/debug-armv.S

        此文件用于最基本的串口調(diào)試功能[6],包括調(diào)試串口的地址初始化、發(fā)送、等待、忙狀態(tài)定義等。使用此文件可以在啟動過程中打印出相關(guān)信息。

        /arch/arm/kernel/setup.c

        在此文件中要根據(jù)使用的板子設(shè)置幾個變量[5]。nr_banks指定了內(nèi)存塊的數(shù)量,bank指定了每塊內(nèi)存塊的范圍,PAGE_OFFSET是內(nèi)存起始地址,MEM_SIZE是內(nèi)存的大小。PAGE_OFFSET,MEM_SIZE要在/include/asm-arm/arch-s3c2410中定義。

        /arch/arm/mm/mm-armv.c

        此文件用于與硬件相關(guān)的內(nèi)存管理,如初始化內(nèi)存頁表內(nèi)存映射等。

        將init_maps->bufferable = 0;改為 init_maps->bufferable = 1;

        /arch/arm/mach-s3c2410

        建立相應(yīng)目錄并按照處理器使用要求編寫irq.c,mm.c,time.c,arch.c,Makefile,分別實現(xiàn)中斷控制器的初始化,地址的虛實映射關(guān)系,時鐘中斷和實時時鐘處理以及有關(guān)Ramdisk使用參數(shù)等的設(shè)置。

        /include/asm-arm/arch-s3c2410

        此目錄下定義用到的頭文件。

        至此工作基本完成,再進(jìn)行如下編譯過程,即可得到我們需要的映像文件[4]。

        make dep; make clean; make zImage

        linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 遵义市| 孟连| 涞源县| 盘锦市| 通城县| 富平县| 晋江市| 宕昌县| 巴南区| 栾城县| 屯昌县| 澄迈县| 南木林县| 安新县| 平潭县| 博爱县| 吴旗县| 长武县| 林芝县| 砚山县| 永德县| 若尔盖县| 临高县| 商河县| 虹口区| 城步| 揭西县| 常熟市| 康平县| 内丘县| 丽江市| 汉沽区| 昆明市| 郑州市| 凉山| 长兴县| 广安市| 城市| 杭州市| 漳州市| 东兴市|