内核中架构相关代码简介
以下內(nèi)容源于朱友鵬《物聯(lián)網(wǎng)大講堂》課程的學(xué)習(xí),如有侵權(quán),請告知刪除。
1、內(nèi)核代碼基本分為3塊
(1)arch:本目錄下全是cpu架構(gòu)有關(guān)的代碼
(2)drivers:本目錄下全是硬件的驅(qū)動
(3)其他:相同點(diǎn)是這些代碼都和硬件無關(guān),因此系統(tǒng)移植和驅(qū)動開發(fā)的時(shí)候這些代碼幾乎都是不用關(guān)注的。
2、架構(gòu)相關(guān)的常用目錄名及含義
(1)mach(machine architecture)
- arch/arm目錄下的一個(gè)mach-xx目錄就表示一類machine,表明這類machine都用xx這個(gè)cpu來做主芯片(譬如mach-s5pv210這個(gè)文件夾里面都是用s5pv210作為主芯片的開發(fā)板machine);
- mach-xx目錄里面的一個(gè)mach-yy.c文件中定義了一個(gè)開發(fā)板(一個(gè)開發(fā)板對應(yīng)一個(gè)機(jī)器碼),這個(gè)是可以被擴(kuò)展的。
(2)plat(platform)
- plat在這里可以理解為SoC,也就是說這個(gè)plat目錄下都是SoC里面的一些硬件(內(nèi)部外設(shè))相關(guān)的一些代碼。在內(nèi)核中把SoC內(nèi)部外設(shè)相關(guān)的硬件操作代碼就叫做平臺設(shè)備驅(qū)動。
(3)include
- 這個(gè)include目錄中的所有代碼都是架構(gòu)相關(guān)的頭文件。(linux內(nèi)核通用的頭文件在內(nèi)核源碼樹根目錄下的include目錄里)。
3、補(bǔ)充
(1)內(nèi)核中的文件結(jié)構(gòu)很龐大、很凌亂(不同版本的內(nèi)核可能一個(gè)文件存放的位置是不同的)。
(2)頭文件目錄include有好幾個(gè),譬如:
kernel/include ? ? ?內(nèi)核通用頭文件
kernel/arch/arm/include 架構(gòu)相關(guān)的頭文件
kernel/arch/arm/include/asm
kernel\arch\arm\include\asm\mach
kernel\arch\arm\mach-s5pv210\include\mach
kernel\arch\arm\plat-s5p\include\plat
(3)內(nèi)核中包含頭文件時(shí)有一些格式
#include <linux/kernel.h>? kernel/include/linux/kernel.h
#include <asm/mach/arch.h> ? ? ? ?kernel/arch/arm/include/asm/mach/arch.h
#include <asm/setup.h>? kernel\arch\arm\include\asm/setup.h
#include <plat/s5pv210.h>? kernel\arch\arm\plat-s5p\include\plat/s5pv210.h
(4)有些同名的頭文件是有包含關(guān)系的,有時(shí)候我們需要包含某個(gè)頭文件時(shí)可能并不是直接包含他,而是包含一個(gè)包含它的頭文件。
總結(jié)
以上是生活随笔為你收集整理的内核中架构相关代码简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 共轭梯度法及其matlab程序
- 下一篇: 熟识三菱PLC编程基本指令