搜索
bottom↓
回复: 49

完整精确导入Linux Kernel u-boot到SourceInsight与Understand与SlickEdit

  [复制链接]

出0入0汤圆

发表于 2015-7-7 10:28:01 | 显示全部楼层 |阅读模式
本帖最后由 QQ373466062 于 2015-7-7 13:07 编辑

如题,以前做有效代码行统计的时候写的一个脚本,发现改一下就可以用于:完整精确导入Linux Kernel u-boot到SourceInsight与Understand与SlickEdit。
脚本解析make过程中间产生的文件依赖关系,完整的找到所有被包含的头文件与.c文件,以及依赖的头文件。
以后还会添加Eclipse的支持。

脚本使用方法:
1. 编译kernel或者u-boot
2. 使用脚本指定编译好的kenrel或者u-boot目录,与输出目录
3. 使用即可。

下面是使用方法的GIF示例,文件很大,需要耐心等待一下(也不知道是否可以显示GIF,再打开GIF好像不会自动播放了,不知道是不是cache的缘故,大家可以到github看GIF演示):
1. 产生:


2. Source Insight使用Filelist


3. Understand使用Filelist


4. SlickEdit工程


脚本地址:
https://github.com/tonyho/Generate_Kernel_Uboot_Project_forIDE
等方便的时候再上传上来。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2015-7-7 10:49:23 | 显示全部楼层
不错,很好的办法~~

出0入0汤圆

发表于 2015-7-7 11:41:27 | 显示全部楼层
好东西啊,很好办法支持顶

出0入0汤圆

发表于 2015-7-7 11:42:58 | 显示全部楼层
楼主,谢了,在liux上试一下,新服务器很爽,图片打开很快,

出0入0汤圆

发表于 2015-7-7 11:43:02 | 显示全部楼层
MARK                        

出0入0汤圆

发表于 2015-7-7 12:19:33 | 显示全部楼层
cool ! 必须顶.

出0入0汤圆

发表于 2015-7-7 19:09:10 | 显示全部楼层
不好用,总是提示头文件not found,而且速度很慢
而且这个不知道dts/dtsi导入

谁能做个可以把整个android编译文件导出??那才是神器

出0入0汤圆

发表于 2015-7-7 21:44:24 | 显示全部楼层
LZ  ,u-boot 出问题:
Source code type is: [u-boot]
Header file[.h] copied number: [5]sed: -e expression #1, char 19: unknown option to `s'
Header file[.h] copied number: [8]
Type 2 item number: 8
Copying type 1 header file[.h], item index: [125]cp: cannot stat `misc/sample.vpj': No such file or directory
cp: cannot stat `misc/sample.vpw': No such file or directory
sed: can't read sample.vpj: No such file or directory
sed: can't read sample.vpj: No such file or directory
sed: can't read sample.vpj: No such file or directory
sed: can't read sample.vpw: No such file or directory
mv: cannot stat `sample.vpj': No such file or directory
mv: cannot stat `sample.vpw': No such file or directory

生成的file_list有问题,分析发现 file_list应该是 include/asm-asm/...  和  include/asm-asm/arch-XXX/...   
但是生成的是 include/asm/...  和  include/asm/arch/
内核暂时没发现问题.

出0入0汤圆

 楼主| 发表于 2015-7-8 14:04:40 | 显示全部楼层
forum 发表于 2015-7-7 19:09
不好用,总是提示头文件not found,而且速度很慢
而且这个不知道dts/dtsi导入

多谢使用与反馈。
头文件not found,是对gcc libc中的头文件提示,所以不影响
dts/dtsi在ToDoList中
很慢,确实是的,因为做了多次verify与循环check,同时每一个编译的文件都有一个依赖文件,都需要读取一把,确实需要优化。
快慢与机器性能也有关系,同时建立project一天也不会做很多次,所以还是能够接受的。

出0入0汤圆

 楼主| 发表于 2015-7-8 14:05:00 | 显示全部楼层
forum 发表于 2015-7-7 19:09
不好用,总是提示头文件not found,而且速度很慢
而且这个不知道dts/dtsi导入

多谢使用与反馈。
头文件not found,是对gcc libc中的头文件提示,所以不影响
dts/dtsi在ToDoList中
很慢,确实是的,因为做了多次verify与循环check,同时每一个编译的文件都有一个依赖文件,都需要读取一把,确实需要优化。
快慢与机器性能也有关系,同时建立project一天也不会做很多次,所以还是能够接受的。

出0入0汤圆

 楼主| 发表于 2015-7-8 14:06:00 | 显示全部楼层
forum 发表于 2015-7-7 19:09
不好用,总是提示头文件not found,而且速度很慢
而且这个不知道dts/dtsi导入

多谢使用与反馈。
头文件not found,是对gcc libc中的头文件提示,所以不影响
dts/dtsi在ToDoList中
很慢,确实是的,因为做了多次verify与循环check,同时每一个编译的文件都有一个依赖文件,都需要读取一把,确实需要优化。
快慢与机器性能也有关系,同时建立project一天也不会做很多次,所以还是能够接受的。

出0入0汤圆

 楼主| 发表于 2015-7-8 14:15:10 | 显示全部楼层
gaojieqq123 发表于 2015-7-7 21:44
LZ  ,u-boot 出问题:
Source code type is:
Header file[.h] copied number: [5]sed: -e expression #1,  ...

谢谢使用与反馈。
u-boot这边为了支持有SPL的u-boot,添加了一些特殊对应。看起来是sed命令出错了。方便将环境(u-boot)给我调试一下吗?

出0入0汤圆

发表于 2015-7-8 14:18:52 | 显示全部楼层
试了,发现内核根目录下的init文件夹内*.c文件找不出来,linux内核版本3.4

出0入0汤圆

发表于 2015-7-8 14:26:53 | 显示全部楼层
elipse应该有选项可以根据makefile导入工程的,像内核这种理论上也是可以的。我在NetBeans上试过,但是前提电脑要好,否则过程极其得卡。

出0入0汤圆

 楼主| 发表于 2015-7-8 15:13:15 | 显示全部楼层
brahen 发表于 2015-7-8 14:26
elipse应该有选项可以根据makefile导入工程的,像内核这种理论上也是可以的。我在NetBeans上试过,但是前提 ...

看了看确实是的,不需要这个脚本了

出0入0汤圆

发表于 2015-7-8 16:15:38 | 显示全部楼层
QQ373466062 发表于 2015-7-8 14:15
谢谢使用与反馈。
u-boot这边为了支持有SPL的u-boot,添加了一些特殊对应。看起来是sed命令出错了。方便 ...

网盘连接:http://pan.baidu.com/s/1gdGUfPh  已编译

出0入0汤圆

 楼主| 发表于 2015-7-8 16:20:34 | 显示全部楼层
licheng0620 发表于 2015-7-8 14:18
试了,发现内核根目录下的init文件夹内*.c文件找不出来,linux内核版本3.4

谢谢反馈。
确实存在这个问题,原因是这个目录下面没有生成.XXX.o.cmd make依赖文件,所以脚本无法找到。下次提交修复。

出0入0汤圆

发表于 2015-7-8 16:44:39 | 显示全部楼层
本帖最后由 licheng0620 于 2015-7-8 16:45 编辑
QQ373466062 发表于 2015-7-8 16:20
谢谢反馈。
确实存在这个问题,原因是这个目录下面没有生成.XXX.o.cmd make依赖文件,所以脚本无法找到。 ...


手动打开这个文件夹有是有生成*.o,*.o.cmd文件的,

出0入0汤圆

发表于 2015-7-8 17:36:28 | 显示全部楼层
又一个新的方法,去试试看

出0入0汤圆

 楼主| 发表于 2015-7-8 18:15:22 | 显示全部楼层
licheng0620 发表于 2015-7-8 16:44
手动打开这个文件夹有是有生成*.o,*.o.cmd文件的,

.o.cmd确实是存在的,是写的正则表达式的问题,已经修正。

出0入0汤圆

 楼主| 发表于 2015-7-8 18:16:04 | 显示全部楼层


谢谢。已经修正提交。

出0入0汤圆

发表于 2015-7-9 16:46:52 | 显示全部楼层
不错,支持一下,一直都是加入很多没用的文件,这下整个世界清爽了!

出0入0汤圆

发表于 2015-7-11 23:19:25 来自手机 | 显示全部楼层
感觉很不错啊,谢谢楼主。

出0入0汤圆

发表于 2015-7-12 00:27:45 | 显示全部楼层
mark一个,研究一下。

出0入0汤圆

发表于 2015-9-15 22:05:03 | 显示全部楼层
mark                                 

出0入0汤圆

发表于 2016-3-2 21:04:17 | 显示全部楼层
太牛了。佩服佩服。

出0入0汤圆

发表于 2016-3-2 21:12:45 | 显示全部楼层
正需要这工具,谢谢

出0入0汤圆

发表于 2016-8-16 00:23:01 | 显示全部楼层
使用这个脚本,在编译uboot或则kernel,使用-C参数的情况时,无法输出文件列表。

出0入0汤圆

发表于 2016-8-16 00:44:06 | 显示全部楼层
强帖留名,正准备用呢

出0入0汤圆

发表于 2016-8-16 08:03:59 | 显示全部楼层
mark,谢谢

出150入640汤圆

发表于 2016-8-23 22:37:39 | 显示全部楼层
谢谢分享!!!

出0入0汤圆

发表于 2017-1-29 12:08:24 | 显示全部楼层
新年好!

我的uboot放在/uboot-sunxi目录下(具体路径/home/lvy/lich/uboot/uboot-sunxi)
PF_Prj_Gen.sh和getopttest.sh放在uboot目录下,cd到这个目录执行
PF_Prj_Gen.sh /home/lvy/lich/uboot/uboot-sunxi getopttest.sh /home/lvy/lich/uboot/uboot-sunxi

都是找不到命令。

请教应该怎么输入命令。

出0入0汤圆

发表于 2017-9-23 12:16:53 | 显示全部楼层
谢谢分享,有空搞一搞。

出0入0汤圆

发表于 2018-1-11 13:58:18 | 显示全部楼层
不错啊!方便看代码。
谢谢!

出0入0汤圆

发表于 2018-7-2 00:39:31 | 显示全部楼层
mark  一下 太厉害了

出0入0汤圆

发表于 2018-7-11 14:55:09 | 显示全部楼层
好贴顶起来

出0入0汤圆

发表于 2018-7-13 22:52:13 | 显示全部楼层
不错,很好的办法~~

出0入0汤圆

发表于 2018-7-16 10:55:07 | 显示全部楼层
论坛高手如云

出0入0汤圆

发表于 2018-7-18 09:53:36 | 显示全部楼层
学习学习

出0入0汤圆

发表于 2018-11-29 15:16:51 | 显示全部楼层
本帖最后由 云中飞雪 于 2018-11-30 07:24 编辑

Hi
        非常感谢
        楼主
        还继续跟开发吗?我导入U-Boot时遇到,如图片所示,能解决吗?
谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2018-11-30 13:45:11 | 显示全部楼层
云中飞雪 发表于 2018-11-29 15:16
Hi
        非常感谢
        楼主

看起来是还没编译过?   需要先编译uboot和kernel

出0入0汤圆

发表于 2018-11-30 14:39:26 | 显示全部楼层
QQ373466062 发表于 2018-11-30 13:45
看起来是还没编译过?   需要先编译uboot和kernel

编译了。Kernel没问题。U-boot就出现图片这样

出0入0汤圆

发表于 2018-11-30 14:45:36 | 显示全部楼层
QQ373466062 发表于 2018-11-30 13:45
看起来是还没编译过?   需要先编译uboot和kernel

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2018-12-3 12:19:18 | 显示全部楼层
能帮忙看看吗?这个太有用了

出0入0汤圆

 楼主| 发表于 2018-12-3 15:24:11 | 显示全部楼层
云中飞雪 发表于 2018-12-3 12:19
能帮忙看看吗?这个太有用了

抱歉,暂时时间不允许,可能需要等一段时间了。  另外可以的话,你注意看看目录给定的参数(目录路径) 是否正确。  也可以下载uboot官方的来编译对比看看。

出0入0汤圆

发表于 2018-12-4 07:25:06 | 显示全部楼层
QQ373466062 发表于 2018-12-3 15:24
抱歉,暂时时间不允许,可能需要等一段时间了。  另外可以的话,你注意看看目录给定的参数(目录路径)  ...

好。谢谢

出150入640汤圆

发表于 2019-2-17 18:00:34 | 显示全部楼层
楼主牛逼,昨天在知乎上看到,下载且试用了,非常棒,没想到是坛友,mobiling

出0入0汤圆

发表于 2019-3-28 11:01:49 | 显示全部楼层
QQ373466062 发表于 2015-7-8 14:06
多谢使用与反馈。
头文件not found,是对gcc libc中的头文件提示,所以不影响
dts/dtsi在ToDoList中

如何加入 dts dtsi 文件?

出0入0汤圆

发表于 2019-5-19 17:02:22 | 显示全部楼层
也有这个需求,标记一下。

出0入42汤圆

发表于 2019-8-2 10:00:35 | 显示全部楼层
楼主,我使用的时候发现source insight 点击Add from list 不能导入文件,我就把生成的FileList_SourceInsight.txt 里面的“/” 换成“\”,同时在每一行的前面加上绝对路径,然后就可以导入了。
非常感谢楼主提供的工具,现在看kernel代码稍微简单点了

出0入0汤圆

发表于 2019-8-2 10:08:50 | 显示全部楼层
感谢楼主分享!!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 -- 东莞阿莫电子网站 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2022-10-2 17:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表