女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux內核入口stext段分析

麥辣雞腿堡 ? 來源:嵌入式Linux系統開發 ? 作者:Jasonangel ? 2023-09-28 17:07 ? 次閱讀

stext 段

從上面的ENTRY(stext)可以知道,一開始是運行stext段,這個段內的代碼是 start_kernel 函數前匯編環境的初始化。

linux4.14/arch/arm64/kernel/head.S

圖片

preserve_boot_args 保存 bootloader 傳遞過來的參數。

el2_setup 是設置 Linux 啟動模式是 EL2。Linux 有 EL0、EL1、EL2、EL3 四種異常啟動模式,這里設置一開始是EL2,EL2 支持虛擬內存技術,然后注釋說明后面又退回 EL1,在 EL1 啟動 kernel。EL3 一般是只在安全模式使用。

set_cpu_boot_mode_flag 保存上面 cpu 的啟動模式。

__create_page_tables 創建頁表。

__cpu_setup 初始化CPU,這里主要是初始化和 MMU 內存相關的 CPU 部分。

__primary_switch 這里會進行跳轉。

在同一個文件中,會跳轉到這里,739 行開啟了MMU。然后最重要的是跳轉到

__primary_switched 函數。先把 __primary_switched 地址放到 x8 寄存器中,再跳轉到 x8,也就是跳轉到__primary_switched。

圖片

接下來分析 __primary_switched 函數:

圖片

圖片

324-327 初始化了 init 進程的內存信息,開辟了內存空間。

329-334 設置了向量表。

336-340 保存了FDT,也就是 flat device tree 。

342-348 清除了BSS 段,我們知道一般是內存四區:堆區、棧區、全局區、代碼區。其中全局區可以再分為 data 段和 BSS 段,BSS段存儲了未初始化的變量,這里將BSS段進行清零操作,否則內存中的值是不確定的,這是一個傳統操作。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內核
    +關注

    關注

    3

    文章

    1408

    瀏覽量

    41075
  • Linux
    +關注

    關注

    87

    文章

    11456

    瀏覽量

    212742
  • 函數
    +關注

    關注

    3

    文章

    4367

    瀏覽量

    64141
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Linux內核data和bss的區別

    從進程的角度,Linux內核是采用虛擬地址空間的,如下兩張圖所示,分別為32位、64位系統下進程地址空間的大概布局。
    發表于 10-13 17:07 ?9817次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內核</b>data<b class='flag-5'>段</b>和bss<b class='flag-5'>段</b>的區別

    Linux內核地址映射模型與Linux內核高端內存詳解

    的數據可能不在內存中。 Linux內核地址映射模型 x86 CPU采用了頁式地址映射模型。進程代碼中的地址為邏輯地址,經過頁式地址映射后,才真正訪問物理內存。
    發表于 05-08 10:33 ?3582次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內核</b>地址映射模型與<b class='flag-5'>Linux</b><b class='flag-5'>內核</b>高端內存詳解

    飛凌嵌入式ElfBoard ELF 1板卡-Linux內核移植之內核啟動流程

    /kernel/vmlinux.lds可以找到內核入口ENTRY(stext): 而stext存在于arch/arm/kernel/head.S中: 在stext下有一個__mma
    發表于 01-06 09:51

    嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-Linux內核移植之內核啟動流程

    /kernel/vmlinux.lds可以找到內核入口ENTRY(stext):而stext存在于arch/arm/kernel/head.S中:在stext下有一個__mmap_sw
    發表于 01-07 09:20

    「正點原子Linux連載」第三十六章Linux內核啟動流程

    *(.ARM.exidx.exit.text)508 *(.ARM.extab.exit.text)509......645}第493行的ENTRY指明了了Linux內核入口,入口stex
    發表于 03-17 11:07

    Linux內核啟動流程-迅為IMX6ULL開發板(一)

    指明了Linux內核入口函數為stext,因此要分析Linux內核第二階
    發表于 07-17 11:13

    AT32 MCU Cortex M4內核入門指南

    AT32 MCU Cortex M4內核入門指南主要介紹了AT32 M4 內核系統架構,并針對M4 內核自帶的位帶、硬件浮點運算單元和滴答時鐘中斷功能進行基礎講解和案例解析。
    發表于 10-25 08:08

    基于內核入侵的木馬設計與實現

             通過內核入侵是木馬入侵 Linux 系統的一種重要形式,其原理是利用Linux 內核
    發表于 09-05 08:32 ?9次下載

    linux內核啟動內核解壓過程分析

    linux啟動時內核解壓過程分析,一份不錯的文檔,深入了解內核必備
    發表于 03-09 13:39 ?1次下載

    基于Linux 2.6內核Makefile分析

    基于2.4內核的,可以說關于2.6內核Makefile相關的文章鳳毛麟角,筆者抽時間完成了這篇分析文章,讓讀者迅速熟悉Linux最新Makefile體系,從而加深對
    發表于 09-18 19:09 ?0次下載
    基于<b class='flag-5'>Linux</b> 2.6<b class='flag-5'>內核</b>Makefile<b class='flag-5'>分析</b>

    關于Linux 2.6內核Makefile的分析

    的介紹文章都是基于2.4內核的,可以說關于2.6內核Makefile相關的文章鳳毛麟角,筆者抽時間完成了這篇分析文章,讓讀者迅速熟悉Linux最新Makefile體系,從而加深對
    發表于 11-02 10:12 ?1次下載

    linux內核入門教材之linux內核設計與實現第二版中文版免費下載

    此書是當今首屈一指的linux內核入門最佳圖書。作者是為2.6內核加入了搶占的人,對調度部分非常精通,而調度是整個系統的核心,因此本書是很權威的。這本書講解淺顯易懂,全書沒有列舉一條匯編語句,但是
    發表于 10-15 18:20 ?0次下載
    <b class='flag-5'>linux</b><b class='flag-5'>內核入</b>門教材之<b class='flag-5'>linux</b><b class='flag-5'>內核</b>設計與實現第二版中文版免費下載

    嵌入式Linux內核移植相關代碼分析

    分析 */ /* 內核入口點 */ ENTRY(stext) /* 程序狀態,禁止FIQ、IRQ,設定SVC模式 */ mov r0, #F_BIT | I_BIT | MODE_SVC@ make
    發表于 04-02 14:37 ?322次閱讀

    【站友投遞】linux內核啟動流程

    Linux內核啟動流程 arch/arm/kernel/head-armv.S 該文件是內核最先執行的一個文件,包括內核入口ENTRY(
    發表于 04-02 14:38 ?515次閱讀

    Linux內核GPIO操作函數的詳解分析

    本文檔的主要內容詳細介紹的是Linux內核GPIO操作函數的詳解分析免費下載。
    發表于 01-22 16:58 ?28次下載