如何优雅的使用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

posted @ 2022-04-05 14:16  Sky&Zhang  阅读(1458)  评论(0编辑  收藏  举报