久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > ARM Linux內核啟動流程

ARM Linux內核啟動流程

作者: 時間:2016-11-21 來源:網絡 收藏
操作ARM Linux內核主要分為哪幾個步驟,下面杭州碩數就為大家講解一下這個啟動的流程。

ARM Linux內核綜述
  啟動分兩步,
  首先是硬件相關部分,入口是arch/arm/kernel/head.S代碼文件中的ENTRY(stext)函數;
  然后是硬件無關部分,入口函數是init/main.c代碼文件中的start_kernel函數。

本文引用地址:http://cqxgywz.com/article/201611/319248.htm

ARM Linux內核硬件相關部分
  1. 我們平臺是arm,自然硬件相關部分代碼在arch/arm/里面。
  2. 平臺相關部分的核心代碼自然在arch/arm/kernel/里面。
  3. 找入口函數,必須從對應目錄的Makefile和鏈接腳本*.lds入手!
    # ls arch/arm/kernel/
    得到一個Makefile文件和一個vmlinux.lds文件
    # vim arch/arm/kernel/Makefile
    看到有一句extra-y := $(head-y) init_task.o vmlinux.lds,則說明其使用鏈接腳本為vmlinux.lds
    還有一句head-y := head$(MMUEXT).o
    # vim arch/arm/kernel/vmlinux.lds
    看到有一句ENTRY(stext),則說明入口函數為stext

 4. 結合上面3句關鍵的代碼,可以推測stext函數在arch/arm/kernel/head*.S或arch/arm/kernel/head*.c
  # ls arch/arm/kernel/head*
  得到arch/arm/kernel/head-common.S arch/arm/kernel/head-nommu.S arch/arm/kernel/head.o arch/arm/kernel/head.S
  再結合Makefile的默認規則%.o : %.S 或 %.o : %.c
  可以知道arch/arm/kernel/head.o與arch/arm/kernel/head.S對應。
  另外,查找arch/arm/kernel/目錄下,有那個文件有“stext”字樣



評論


技術專區

關閉