Source Insight建工程之Kernel

來源:互聯網
上載者:User

       

        不管你是從事於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進行同步產生索引。至此,一個比較滿意的工程建立完畢。

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.