chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux內(nèi)核入口stext段分析

麥辣雞腿堡 ? 來(lái)源:嵌入式Linux系統(tǒng)開(kāi)發(fā) ? 作者:Jasonangel ? 2023-09-28 17:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

stext 段

從上面的ENTRY(stext)可以知道,一開(kāi)始是運(yùn)行stext段,這個(gè)段內(nèi)的代碼是 start_kernel 函數(shù)前匯編環(huán)境的初始化。

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

圖片

preserve_boot_args 保存 bootloader 傳遞過(guò)來(lái)的參數(shù)。

el2_setup 是設(shè)置 Linux 啟動(dòng)模式是 EL2。Linux 有 EL0、EL1、EL2、EL3 四種異常啟動(dòng)模式,這里設(shè)置一開(kāi)始是EL2,EL2 支持虛擬內(nèi)存技術(shù),然后注釋說(shuō)明后面又退回 EL1,在 EL1 啟動(dòng) kernel。EL3 一般是只在安全模式使用。

set_cpu_boot_mode_flag 保存上面 cpu 的啟動(dòng)模式。

__create_page_tables 創(chuàng)建頁(yè)表。

__cpu_setup 初始化CPU,這里主要是初始化和 MMU 內(nèi)存相關(guān)的 CPU 部分。

__primary_switch 這里會(huì)進(jìn)行跳轉(zhuǎn)。

在同一個(gè)文件中,會(huì)跳轉(zhuǎn)到這里,739 行開(kāi)啟了MMU。然后最重要的是跳轉(zhuǎn)到

__primary_switched 函數(shù)。先把 __primary_switched 地址放到 x8 寄存器中,再跳轉(zhuǎn)到 x8,也就是跳轉(zhuǎn)到__primary_switched。

圖片

接下來(lái)分析 __primary_switched 函數(shù):

圖片

圖片

324-327 初始化了 init 進(jìn)程的內(nèi)存信息,開(kāi)辟了內(nèi)存空間。

329-334 設(shè)置了向量表。

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1416

    瀏覽量

    41444
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11511

    瀏覽量

    213847
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4381

    瀏覽量

    64907
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Linux內(nèi)核data和bss的區(qū)別

    從進(jìn)程的角度,Linux內(nèi)核是采用虛擬地址空間的,如下兩張圖所示,分別為32位、64位系統(tǒng)下進(jìn)程地址空間的大概布局。
    發(fā)表于 10-13 17:07 ?1w次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>data<b class='flag-5'>段</b>和bss<b class='flag-5'>段</b>的區(qū)別

    Linux內(nèi)核地址映射模型與Linux內(nèi)核高端內(nèi)存詳解

    的數(shù)據(jù)可能不在內(nèi)存中。 Linux內(nèi)核地址映射模型 x86 CPU采用了頁(yè)式地址映射模型。進(jìn)程代碼中的地址為邏輯地址,經(jīng)過(guò)頁(yè)式地址映射后,才真正訪問(wèn)物理內(nèi)存。
    發(fā)表于 05-08 10:33 ?3599次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>地址映射模型與<b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>高端內(nèi)存詳解

    飛凌嵌入式ElfBoard ELF 1板卡-Linux內(nèi)核移植之內(nèi)核啟動(dòng)流程

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

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-Linux內(nèi)核移植之內(nèi)核啟動(dòng)流程

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

    「正點(diǎn)原子Linux連載」第三十六章Linux內(nèi)核啟動(dòng)流程

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

    Linux內(nèi)核啟動(dòng)流程-迅為IMX6ULL開(kāi)發(fā)板(一)

    指明了Linux內(nèi)核入口函數(shù)為stext,因此要分析Linux內(nèi)核第二階
    發(fā)表于 07-17 11:13

    AT32 MCU Cortex M4內(nèi)核入門指南

    AT32 MCU Cortex M4內(nèi)核入門指南主要介紹了AT32 M4 內(nèi)核系統(tǒng)架構(gòu),并針對(duì)M4 內(nèi)核自帶的位帶、硬件浮點(diǎn)運(yùn)算單元和滴答時(shí)鐘中斷功能進(jìn)行基礎(chǔ)講解和案例解析。
    發(fā)表于 10-25 08:08

    基于內(nèi)核入侵的木馬設(shè)計(jì)與實(shí)現(xiàn)

             通過(guò)內(nèi)核入侵是木馬入侵 Linux 系統(tǒng)的一種重要形式,其原理是利用Linux 內(nèi)核
    發(fā)表于 09-05 08:32 ?9次下載

    linux內(nèi)核啟動(dòng)內(nèi)核解壓過(guò)程分析

    linux啟動(dòng)時(shí)內(nèi)核解壓過(guò)程分析,一份不錯(cuò)的文檔,深入了解內(nèi)核必備
    發(fā)表于 03-09 13:39 ?1次下載

    基于Linux 2.6內(nèi)核Makefile分析

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

    關(guān)于Linux 2.6內(nèi)核Makefile的分析

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

    linux內(nèi)核入門教材之linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)第二版中文版免費(fèi)下載

    此書是當(dāng)今首屈一指的linux內(nèi)核入門最佳圖書。作者是為2.6內(nèi)核加入了搶占的人,對(duì)調(diào)度部分非常精通,而調(diào)度是整個(gè)系統(tǒng)的核心,因此本書是很權(quán)威的。這本書講解淺顯易懂,全書沒(méi)有列舉一條匯編語(yǔ)句,但是
    發(fā)表于 10-15 18:20 ?0次下載
    <b class='flag-5'>linux</b><b class='flag-5'>內(nèi)核入</b>門教材之<b class='flag-5'>linux</b><b class='flag-5'>內(nèi)核</b>設(shè)計(jì)與實(shí)現(xiàn)第二版中文版免費(fèi)下載

    嵌入式Linux內(nèi)核移植相關(guān)代碼分析

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

    【站友投遞】linux內(nèi)核啟動(dòng)流程

    Linux內(nèi)核啟動(dòng)流程 arch/arm/kernel/head-armv.S 該文件是內(nèi)核最先執(zhí)行的一個(gè)文件,包括內(nèi)核入口ENTRY(
    發(fā)表于 04-02 14:38 ?539次閱讀

    Linux內(nèi)核GPIO操作函數(shù)的詳解分析

    本文檔的主要內(nèi)容詳細(xì)介紹的是Linux內(nèi)核GPIO操作函數(shù)的詳解分析免費(fèi)下載。
    發(fā)表于 01-22 16:58 ?28次下載