如何優雅的使用source insight閱讀linux源碼-Generate_Kernel_Uboot_Project_forIDE【轉】

轉自:https://blog.csdn.net/tao475824827/article/details/106562452?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_paycolumn_v3&utm_relevant_index=2

1. 引言
source insight是一直在用的代碼閱讀器了,升級到4.0之後,基本功能都有了,覺得也挺順手。
主要問題就是,在面對很多文件的大工程中,導入文件和同步時間都太長了,尤其是Linux內核,文件又多,而且代碼源文件還在linux服務器上,是smb掛載上來的。建一個工程大幾個小時,都不敢關,因爲有時候下次再一開,工程崩了,我也就崩了。
因爲這個原因,轉去了Vscode一段時間,某天突然在網上看到了可以精準導入linux源碼到SI的方法,趕緊來試一下。
基本原理就是,把整個工程完整編譯一遍,根據編譯過程中的中間變量生成依賴關係,根據依賴關係導入SI。

2. 資源
主要用到的是 “Generate_Kernel_Uboot_Project_forIDE” 工具。

github上有

Github原版
下不動的可以來下這個:

碼雲鏡像 - Generate_Kernel_Uboot_Project_forIDE
3. 步驟
3.1 重編完整代碼
先進入linux內核源碼路徑,把之前的編譯內容全部清除掉。然後重編代碼。

#!/bin/sh
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_defconfig
#make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j16 > build_log.txt
1
2
3
4
5
用distclean而不是clean。

 

 


3.2 根據編譯結果生成對應的依賴文件
進入2中下載的工具Generate_Kernel_Uboot_Project_forIDE文件夾,
運行

./PF_Prj_Gen.sh ../../../I.MX6U/openedv/1__DemoCode/11___OpenEdv_Board_Uboot_Linux/linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek ./RelyFile
1
格式是:

./PF_Prj_Gen.sh linux源碼路徑 輸出文件夾
1
需要自己把Linux源碼的路徑寫入。
注意輸出文件夾不要和當前文件夾下已有文件夾同名,會報錯。

輸出如下:

 

 

會在當前文件夾下生成一個RelayFile的文件夾,進入後可以找到一個FileList_SourceInsight.txt文件。

 

 


3.3 建立source insight工程
新建一個SI工程,前面都隨便。

 

 

 

 

 

直到添加文件的地方。

 

 


選擇add from list,導入剛纔生成的FileList_SourceInsight.txt,再sync一下即可。


4. 使用遇到的問題
4.1 Source code is : [unknown]
之前在家裏找IMX6的工程很方便。
但是在單位找xilinx ZYNQ的工程就沒找到。
運行腳本時,報錯:

 

 

看了一下腳本,
腳本是在當前目錄下去找 u-boot 和 vmlinux 來判斷當前是linux工程還是uboot工程。
所以我在linux目錄下,touch了一個vmlinux,再運行腳本,就成功了。

4.2 add from list 不成功
有些時候add from list 一直不成功。
add之後先未響應,卡一會,恢復之後工程裏也沒有文件添加進來。
於是我修改了FileList_SourceInsight.txt
1、把所有的斜槓換成反斜槓
2、使用列編輯模式,在每行前面添加了完整的路徑。
重新add form list 就好了。

 

 

————————————————
版權聲明:本文爲CSDN博主「tao475824827」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/tao475824827/article/details/106562452

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章