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