• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 移植標準Linux到S3C2410

    移植標準Linux到S3C2410

    作者: 時間:2012-05-18 來源:網絡 收藏

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

    .section .start, ax

    ___start:

    bic r2, pc, #0x1f @清除pc相關位,放于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],可參考處理器使用手冊,按處理器使用要求設置。

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

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

    /arch/arm/kernel/setup.c

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

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

    此文件用于與硬件相關的內存管理,如初始化內存頁表內存映射等。

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

    /arch/arm/mach-s3c2410

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

    /include/asm-arm/arch-s3c2410

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

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

    make dep; make clean; make zImage

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


    關鍵詞: S3C2410 Linux 標準 移植

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 汉寿县| 洛宁县| 晋江市| 东源县| 息烽县| 叶城县| 宜黄县| 清河县| 闵行区| 通州区| 札达县| 剑川县| 山丹县| 绥宁县| 柞水县| 区。| 遂宁市| 秭归县| 寻乌县| 临沭县| 鹤岗市| 麻江县| 四平市| 共和县| 克东县| 华坪县| 边坝县| 郯城县| 浮山县| 汕头市| 青浦区| 沁阳市| 永德县| 陵川县| 全南县| 扶风县| 兴化市| 吉安市| 巢湖市| 六盘水市| 汉阴县|