一、建立工程文件夾
最好建立一個(gè)自己的管理Source Insight所有工程文件夾(例如在D:\建立文件夾 D:\SourInProject),然后分別創(chuàng)建單獨(dú)的工程文件夾。在這里我們建的是Linux-2.6.22.6工程,那么就建立一個(gè)文件夾名為:Linux-2.6.22.6Pro,在里面放置linux-2.6.22.6源碼包,和一個(gè)準(zhǔn)備放置Source Insight所創(chuàng)建的linux-2.6.22.6工程包SourInPro。這樣就很清晰,源碼和工程包單獨(dú)放在一個(gè)命名為Linux-2.6.22.6Pro下,即不同的工程都帶有一個(gè)源碼包和一個(gè)創(chuàng)建后的工程包。
二、如何創(chuàng)建工程
(1)、首先打開Source Insight軟件,配置好軟件所認(rèn)識的文件后綴,點(diǎn)擊菜單欄上Options->Document Options,在Document Type下拉列表中,選擇C Source File,然后在右邊File filter:文本框中添加一些重要文件后綴;*.S;*.lds;Kconfig;*defconfig;*.in;Makefile等(否則點(diǎn)擊Add Tree添加目錄樹時(shí),一些重要文件不被加入到工程,則要手動一個(gè)個(gè)加入)。然后再點(diǎn)擊菜單欄上的Project->New Project,在彈出的New Project對話窗口,New project name:(工程名)在這填Linux-2.6.22.6,Where do you want to store the project data files?(你想把你的工程文件存放在哪里),在這我們填在上一步創(chuàng)建的D:\SourInProject\Linux-2.6.22.6Pro\SourInPro。然后一路OK,出現(xiàn)一個(gè)名為:Add and Remove Project Files對話框,下面我們就針對此對話窗口操作;
(2)、在Add and Remove Project Files對話框中,我們點(diǎn)擊左邊Directory我們預(yù)先放好的linux-2.6.22.6的源碼包,此時(shí)在右邊File Name將會顯示所有的源碼目錄文件。那么我們?nèi)绾芜x擇哪些文件是我們以后查看源碼更為緊密關(guān)聯(lián)的呢?
(3)第一步,我們可以把所有的文件都加進(jìn)工程,畢竟大部分目錄文件還是通用的,然后我們?nèi)コ恍┪覀兯魂P(guān)心的目錄和文件。點(diǎn)擊右邊File Name 框中頂層目錄..(一個(gè)向上的箭頭標(biāo)識),這里把Show only known document types(所熟知的文件類型)去掉勾選,否則很多重要的文件像Makefile、Kbuild等其它的文件沒有被加入。然后點(diǎn)擊Add All 在對話框中Add to Project 鉤上Recursively add lower sub-directories(意思遞歸添加子目錄文件);
(4)、顯然在/ARCH/目錄下有alpha、i386、parisc、sparc、arm、mips等各種具體架構(gòu)的CPU相關(guān)的目錄。首先我們先把整個(gè)目錄Remove Tree,然后再添加我們所關(guān)心的目錄。在這里我們進(jìn)入Arch中的我們關(guān)心的Arm目錄,首先看到一些單獨(dú)的文件(比如Kconfig、Kconfig.debug等,一般頂層的單獨(dú)文件都是通用的),我們點(diǎn)擊Add All 在彈出的Add to Project對話框中去掉Include top level sub-directories。然后看到像Boot、Common、Configs、Kernel、Lib目錄,這些在Arm架構(gòu)中都是些通用的目錄,我們依次選中它們,點(diǎn)擊Add Tree;接著是一些Mach-xxx目錄,那我們是哪個(gè)Mach呢,往后看有個(gè)Mach-s3c2410目錄,就是我們的Mach目錄,點(diǎn)擊Add Tree加入工程。再接著后面的目錄看上去就是通用的,但發(fā)現(xiàn)有幾個(gè)目錄是Plat-xxx,顯然我們屬于Plat-s3c24xx,所以從Mm目錄開始,一直到最后目錄(但中間Plat-xxx目錄,我們只選Plat-s3c24xx),我們點(diǎn)擊Add Tree。這樣整個(gè)Arch目錄我們已經(jīng)搞定。
(5)、回到頂層目錄我們再往下看,發(fā)現(xiàn)一個(gè)Include目錄,同樣里面也會有很多不同體系結(jié)構(gòu)的目錄。進(jìn)入Include目錄,發(fā)現(xiàn)有很多Asm-xxx的目錄,從名字上知道,Asm-arm是arm相關(guān)的頭文件,Asm-i386是x86相關(guān)的頭文件。顯然我們不需要那么多不相關(guān)的目錄,我們回到頂層目錄,選中Include目錄,點(diǎn)擊Remove Tree去除整個(gè)目錄,然后再進(jìn)入添加我們關(guān)系的目錄和文件。同是ARM架構(gòu)的也有不同的架構(gòu),進(jìn)入/Include/Asm-arm目錄,這里會有一些單獨(dú)的文件,我們點(diǎn)擊Add All 在彈出的Add to Project對話框中去掉Include top level sub-directories,待會我們再處理這些子目錄。進(jìn)入/Include/Asm-arm目錄,同樣把這里面的許多的單獨(dú)文件先加入,同上步一樣操作。然后在這里我們發(fā)現(xiàn)Arch-s3c2410是我們所關(guān)心的,進(jìn)入/Include/Asm-arm/Arch-s3c2410目錄,點(diǎn)擊Add All加入所以文件。再回到/Include/Asm-arm目錄,后面Hardware、Mach、Plat-s3c24xx目錄都是通用的,我們選中它們,點(diǎn)擊Add Tree加入到工程。這時(shí),/Include/Asm-xxx目錄我們已經(jīng)搞定Asm-arm。接著回到/Include目錄,發(fā)現(xiàn)有個(gè)Asm-generic目錄,從名字上就知道是個(gè)通用的目錄,我們選中它,Add Tree加入工程。至此,/Include/Asm-xxx其它目錄我們不用考慮。接著從Crypto目錄開始到最后目錄Video目錄,都是一些通用的目錄和文件,從Crypto目錄開始,按shift,選擇到最后一個(gè)目錄,點(diǎn)擊Add Tree加入剩下的目錄。此時(shí)/Include目錄我們?nèi)扛愣ǎ?/p>
(6)、最后再回到linux-2.6.22.6頂層目錄,剩下的沒有分析的目錄都是一些通用的目錄,在第一步我們已經(jīng)全部加入此時(shí)我們不用理會。關(guān)閉Add and Remove Project Files對話窗口;
(7)最后我們點(diǎn)擊Source Insight菜單欄下的Project->Synchronize Files進(jìn)行同步生成索引。至此,一個(gè)比較滿意的工程建立完畢。