成人免费无码不卡毛片,亚洲AⅤ无码精品一区二区三区,国产尤物精品视频,久久精品日本亚洲,欧美成人一区三区无码乱码A片,中文字日产幕码一区二区色哟哟,亞洲日韓中文字幕網AV

  • 正文
  • 推薦器件
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

Linux BSP實戰(zhàn)課(SoC bringup篇):Kernel 的初始化過程

2023/11/21
5071
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

最全最詳細(xì)的Linux BSP 實戰(zhàn)教程,共100篇,包含SOC Bringup, Uboot, 內(nèi)核啟動, 中斷, 時鐘, 電源, GPIO, DMA, 低速總線, 高速總線, 音頻, 顯示, 攝像頭, 網(wǎng)絡(luò)驅(qū)動等;博主創(chuàng)建了專門的專欄技術(shù)討論群,以及免費的ChatGPT使用,和大佬們一起討論實戰(zhàn);經(jīng)過兩年的輸出和完善打磨,將碎片化的知識進(jìn)行整理;通過圖文并茂的方式淺入深出。

內(nèi)核運行的第一行代碼

.head.text 文本段

Head.S

start_kernel

setup_arch

mm_init

sched_init

init_IRQ

tick_init

init_timers

hrtimers_init

softirq_init

time_init

console_init

vfs_caches_init

rest_init

 

上文我們講到,內(nèi)核中各個階段的初始化非常重要,涉及內(nèi)容很多,比如內(nèi)存管理,進(jìn)程管理,文件系統(tǒng),中斷管理,時鐘管理等。就算淺嘗輒止的描述每個模塊,至少也要一萬字的總結(jié),所以內(nèi)核的重要程度很有必要單獨作為一章梳理。

讓我們一起正式進(jìn)入內(nèi)核的世界,站在內(nèi)核的角度,內(nèi)核之前的所有程序都是系統(tǒng)引導(dǎo)程序,其中 CPU 的狀態(tài)如下:

r0 = 0.

r1 = CPU 類型.

r2 = kernel參數(shù)list的物理地址.

irq & fiq 必須關(guān)閉.

MMU 必須關(guān)閉,這里內(nèi)存地址都是物理地址.

D-cache 必須關(guān)閉,I-cache 沒有要求.

內(nèi)核運行的第一行代碼

Linux啟動,會啟動內(nèi)核編譯后的文件 vmlinux,vmlinux 是一個 ELF 文件,按照 ./arch/arm64/kernel/vmlinux.lds 設(shè)定的規(guī)則進(jìn)行鏈接,vmlinux.lds 是 vmlinux.lds.S 編譯之后生成的。所以為了確定 vmlinux 內(nèi)核的起始地址, 首先通過 vmlinux.lds.S 鏈接腳本進(jìn)行分析。如下所示:

$?readelf?-h?vmlinux
ELF?Header:
??Magic:???7f?45?4c?46?02?01?01?00?00?00?00?00?00?00?00?00
??Class:?????????????????????????????ELF64
??Data:??????????????????????????????2's?complement,?little?endian
??Version:???????????????????????????1?(current)
??OS/ABI:????????????????????????????UNIX?-?System?V
??ABI?Version:???????????????????????0
??Type:??????????????????????????????DYN?(Shared?object?file)
??Machine:???????????????????????????AArch64
??Version:???????????????????????????0x1
??Entry?point?address:???????????????0xffff800010000000
??Start?of?program?headers:??????????64?(bytes?into?file)
??Start?of?section?headers:??????????494679672?(bytes?into?file)
??Flags:?????????????????????????????0x0
??Size?of?this?header:???????????????64?(bytes)
??Size?of?program?headers:???????????56?(bytes)
??Number?of?program?headers:?????????5
??Size?of?section?headers:???????????64?(bytes)
??Number?of?section?headers:?????????38
??Section?header?string?table?index:?37
$?readelf?-l?vmlinux

Elf?file?type?is?DYN?(Shared?object?file)
Entry?point?0xffff800010000000
There?are?5?program?headers,?starting?at?offset?64

Program?Headers:
??Type???????????Offset?????????????VirtAddr???????????PhysAddr
?????????????????FileSiz????????????MemSiz??????????????Flags??Align
??LOAD???????????0x0000000000010000?0xffff800010000000?0xffff800010000000
?????????????????0x0000000001beacdc?0x0000000001beacdc??RWE????10000
??LOAD???????????0x0000000001c00000?0xffff800011c00000?0xffff800011c00000
?????????????????0x00000000000c899c?0x00000000000c899c??R?E????10000
??LOAD???????????0x0000000001cd0000?0xffff800011cd0000?0xffff800011cd0000
?????????????????0x0000000000876200?0x0000000000905794??RW?????10000
??NOTE???????????0x0000000001bfaca0?0xffff800011beaca0?0xffff800011beaca0
?????????????????0x000000000000003c?0x000000000000003c??R??????4
??GNU_STACK??????0x0000000000000000?0x0000000000000000?0x0000000000000000
?????????????????0x0000000000000000?0x0000000000000000??RW?????10

?Section?to?Segment?mapping:
??Segment?Sections...
???00?????.head.text?.text?.got.plt?.rodata?.pci_fixup?__ksymtab?__ksymtab_gpl?__ksymtab_strings?__param?__modver?__ex_table?.notes
???01?????.init.text?.exit.text?.altinstructions
???02?????.init.data?.data..percpu?.hyp.data..percpu?.rela.dyn?.data?__bug_table?.mmuoff.data.write?.mmuoff.data.read?.pecoff_edata_padding?.bss
???03?????.notes
???04

通過上面的查詢可知,此 vmlinux 為一個 aarch64 架構(gòu)平臺的 ELF 可執(zhí)行文件,其程序入口的地址為 0xffff800010000000,此段對應(yīng)的 section 為.head.text .text .got.plt......,所以 vmlinux 的入口在 .head.text 文本段。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
KSZ9031RNXCC 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER

ECAD模型

下載ECAD模型
$2.81 查看
KSZ8895FQXIA 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER, PQFP128

ECAD模型

下載ECAD模型
$13.57 查看
G3VM-61GR2 1 OMRON Corporation Transistor Output SSR,

ECAD模型

下載ECAD模型
$6.64 查看

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

針對嵌入式人工智能,物聯(lián)網(wǎng)等專業(yè)技術(shù)分享和交流平臺,內(nèi)容涉及arm,linux,android等各方面。

连江县| 高阳县| 黎平县| 庆安县| 怀宁县| 梓潼县| 安岳县| 曲水县| 石渠县| 那曲县| 青铜峡市| 惠州市| 墨玉县| 中江县| 武威市| 武乡县| 东源县| 凤台县| 玉环县| 石阡县| 涞源县| 万宁市| 五华县| 威信县| 靖宇县| 贵德县| 鄂州市| 马山县| 岫岩| 南宫市| 依安县| 雅安市| 巴里| 自贡市| 濮阳县| 汽车| 昆山市| 时尚| 绍兴市| 大名县| 陇南市|