<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          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://www.ex-cimer.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的默認規(guī)則%.o : %.S 或 %.o : %.c
            可以知道arch/arm/kernel/head.o與arch/arm/kernel/head.S對應。
            另外,查找arch/arm/kernel/目錄下,有那個文件有“stext”字樣



          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();