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