歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Source Insight建工程之Kernel

Source Insight建工程之Kernel

日期:2017/2/28 16:07:09   编辑:Linux教程
不管你是從事於Linux內核工作還是出於興趣愛好,Linux內核源碼都是非常好的學習資源。意味著就要經常的和內核源碼大交道,那麼軟件工具就是少不了的。在Windows系統上確實有著許多好用的軟件,這點還是可以肯定的。對於像內核這種復雜龐大的源碼樹,Source Insight工具便是非常適合且好用的了。那麼怎樣去管理Linux內核源碼樹呢?很明顯Linux操作系統支持不同的體系結構的CPU,在/ARCH/目錄下有alpha、i386、parisc、sparc、arm、mips等各種具體架構的CPU相關的目錄。那麼在建立一個學習用的內核源碼樹工程時,當然我們只要添加我們所關心的CPU目錄和一些通用的目錄和文件。

一、建立工程文件夾

最好建立一個自己的管理Source Insight所有工程文件夾(例如在D:\建立文件夾 D:\SourInProject),然後分別創建單獨的工程文件夾。在這裡我們建的是Linux-2.6.22.6工程,那麼就建立一個文件夾名為:Linux-2.6.22.6Pro,在裡面放置linux-2.6.22.6源碼包,和一個准備放置Source Insight所創建的linux-2.6.22.6工程包SourInPro。這樣就很清晰,源碼和工程包單獨放在一個命名為Linux-2.6.22.6Pro下,即不同的工程都帶有一個源碼包和一個創建後的工程包。

二、如何創建工程

(1)、首先打開Source Insight軟件,配置好軟件所認識的文件後綴,點擊菜單欄上Options->Document Options,在Document Type下拉列表中,選擇C Source File,然後在右邊File filter:文本框中添加一些重要文件後綴;*.S;*.lds;Kconfig;*defconfig;*.in;Makefile等(否則點擊Add Tree添加目錄樹時,一些重要文件不被加入到工程,則要手動一個個加入)。然後再點擊菜單欄上的Project->New Project,在彈出的New Project對話窗口,New project name:(工程名)在這填Linux-2.6.22.6,Where do you want to store the project data files?(你想把你的工程文件存放在哪裡),在這我們填在上一步創建的D:\SourInProject\Linux-2.6.22.6Pro\SourInPro。然後一路OK,出現一個名為:Add and Remove Project Files對話框,下面我們就針對此對話窗口操作;

(2)、在Add and Remove Project Files對話框中,我們點擊左邊Directory我們預先放好的linux-2.6.22.6的源碼包,此時在右邊File Name將會顯示所有的源碼目錄文件。那麼我們如何選擇哪些文件是我們以後查看源碼更為緊密關聯的呢?

(3)第一步,我們可以把所有的文件都加進工程,畢竟大部分目錄文件還是通用的,然後我們去除一些我們所不關心的目錄和文件。點擊右邊File Name 框中頂層目錄..(一個向上的箭頭標識),這裡把Show only known document types(所熟知的文件類型)去掉勾選,否則很多重要的文件像Makefile、Kbuild等其它的文件沒有被加入。然後點擊Add All 在對話框中Add to Project 鉤上Recursively add lower sub-directories(意思遞歸添加子目錄文件);

(4)、顯然在/ARCH/目錄下有alpha、i386、parisc、sparc、arm、mips等各種具體架構的CPU相關的目錄。首先我們先把整個目錄Remove Tree,然後再添加我們所關心的目錄。在這裡我們進入Arch中的我們關心的Arm目錄,首先看到一些單獨的文件(比如Kconfig、Kconfig.debug等,一般頂層的單獨文件都是通用的),我們點擊Add All 在彈出的Add to Project對話框中去掉Include top level sub-directories。然後看到像Boot、Common、Configs、Kernel、Lib目錄,這些在Arm架構中都是些通用的目錄,我們依次選中它們,點擊Add Tree;接著是一些Mach-xxx目錄,那我們是哪個Mach呢,往後看有個Mach-s3c2410目錄,就是我們的Mach目錄,點擊Add Tree加入工程。再接著後面的目錄看上去就是通用的,但發現有幾個目錄是Plat-xxx,顯然我們屬於Plat-s3c24xx,所以從Mm目錄開始,一直到最後目錄(但中間Plat-xxx目錄,我們只選Plat-s3c24xx),我們點擊Add Tree。這樣整個Arch目錄我們已經搞定。

(5)、回到頂層目錄我們再往下看,發現一個Include目錄,同樣裡面也會有很多不同體系結構的目錄。進入Include目錄,發現有很多Asm-xxx的目錄,從名字上知道,Asm-arm是arm相關的頭文件,Asm-i386是x86相關的頭文件。顯然我們不需要那麼多不相關的目錄,我們回到頂層目錄,選中Include目錄,點擊Remove Tree去除整個目錄,然後再進入添加我們關系的目錄和文件。同是ARM架構的也有不同的架構,進入/Include/Asm-arm目錄,這裡會有一些單獨的文件,我們點擊Add All 在彈出的Add to Project對話框中去掉Include top level sub-directories,待會我們再處理這些子目錄。進入/Include/Asm-arm目錄,同樣把這裡面的許多的單獨文件先加入,同上步一樣操作。然後在這裡我們發現Arch-s3c2410是我們所關心的,進入/Include/Asm-arm/Arch-s3c2410目錄,點擊Add All加入所以文件。再回到/Include/Asm-arm目錄,後面Hardware、Mach、Plat-s3c24xx目錄都是通用的,我們選中它們,點擊Add Tree加入到工程。這時,/Include/Asm-xxx目錄我們已經搞定Asm-arm。接著回到/Include目錄,發現有個Asm-generic目錄,從名字上就知道是個通用的目錄,我們選中它,Add Tree加入工程。至此,/Include/Asm-xxx其它目錄我們不用考慮。接著從Crypto目錄開始到最後目錄Video目錄,都是一些通用的目錄和文件,從Crypto目錄開始,按shift,選擇到最後一個目錄,點擊Add Tree加入剩下的目錄。此時/Include目錄我們全部搞定;

(6)、最後再回到linux-2.6.22.6頂層目錄,剩下的沒有分析的目錄都是一些通用的目錄,在第一步我們已經全部加入此時我們不用理會。關閉Add and Remove Project Files對話窗口;

(7)最後我們點擊Source Insight菜單欄下的Project->Synchronize Files進行同步生成索引。至此,一個比較滿意的工程建立完畢。

Copyright © Linux教程網 All Rights Reserved