tianxiaoMCU 发表于 2018-7-1 22:12:02

SourceInsight 快速、精确导入 IAR/MDK工程 源码的Python脚本

        这个标题是不是有点熟悉{:titter:}

        最近有个项目用了颗WIFI soc,厂商提供的SDK很大,用source insight看的时候总是提示多处定义,甚是麻烦。受坛里 《不要错过!SourceInsight 快速、精确导入 Linux Kernel 源码的方法》的启发,自己用python搞了个类似的脚本,用着还行,特此分享;

        使用方法:将脚本放到IAR或MDK工程目录下(与.eww/.uvproj同级),运行脚本,一切正常的话就会在目录下生成一个txt文件,在source insight里导入便好。
        注意:运行脚本前须要编译一下工程!

FireHe 发表于 2018-7-1 22:25:17

{:lol:}顶一顶楼主,这个是好东西。

darkness27 发表于 2018-7-1 22:38:34

这个好东东西啊。。。膜拜加感谢。。。

hxke 发表于 2018-7-1 22:42:08

顶,拿来试试

chenchaoting 发表于 2018-7-1 22:54:10

多谢楼主

霸气侧漏 发表于 2018-7-1 23:02:47

厉害了   牛逼哄哄的

angler12 发表于 2018-7-1 23:27:55

这个爽,不用用手动筛查了,感谢撸主

maimaige 发表于 2018-7-2 00:41:19

mark 学习 一下 SourceInsight 快速、精确导入 IAR/MDK工程 源码的Python脚本

dgtg 发表于 2018-7-2 00:45:55

这个好啊!大大的赞一个!

eliterxzgxu 发表于 2018-7-2 06:46:43

感谢楼主分享

mypc16888 发表于 2018-7-2 06:47:47

感谢楼主分享

rei1984 发表于 2018-7-2 07:13:41

python2 还是python3的?

dwj0 发表于 2018-7-2 07:15:15

试试               

creep 发表于 2018-7-2 07:34:54

感谢分享,收藏!

li99932li 发表于 2018-7-2 08:10:14

多谢楼主 收藏!

mypear 发表于 2018-7-2 08:18:34

有这个工具方便多了

zsenbao 发表于 2018-7-2 08:26:34

这个不错,必须顶

gagmeng 发表于 2018-7-2 08:28:03

楼主厉害的,解决了一个困扰很久的问题,多谢

涵潇舒雅 发表于 2018-7-2 08:33:53

楼主,MDK for C51 不支持吗?
N76E003工程下,无法正常运行~

brwang1983 发表于 2018-7-2 08:35:56

好东西,感谢楼主

skype 发表于 2018-7-2 08:35:56

.py文件怎么运行

advarx21ic 发表于 2018-7-2 08:37:34

好东西,方便很多,谢谢

zhujie123 发表于 2018-7-2 08:42:02

好东西,太好用了。。。

security 发表于 2018-7-2 08:44:03

skype 发表于 2018-7-2 08:35
.py文件怎么运行

没有关联文件的话,就在命令行敲:python *.py。

icoyool 发表于 2018-7-2 08:48:17

东西还是好东西, SI还是提不起我的兴趣啊

xiaomu 发表于 2018-7-2 08:49:00

赞一个!

security 发表于 2018-7-2 08:52:54

icoyool 发表于 2018-7-2 08:48
东西还是好东西, SI还是提不起我的兴趣啊

那能提起你兴趣的类似工具是什么,能分享一下吗?

openmcu666 发表于 2018-7-2 08:55:06

人生苦短 我用python

tianxiaoMCU 发表于 2018-7-2 08:55:23

rei1984 发表于 2018-7-2 07:13
python2 还是python3的?

Python 3的,我自己用的V3.6.5

tianxiaoMCU 发表于 2018-7-2 08:57:14

涵潇舒雅 发表于 2018-7-2 08:33
楼主,MDK for C51 不支持吗?
N76E003工程下,无法正常运行~

目前不支持keil C51,C51的跟ARM的不太一样

guxingganyue 发表于 2018-7-2 08:58:44

好东西,留着备用

expresschs 发表于 2018-7-2 09:07:15

真是好东西,收藏备用。

icoyool 发表于 2018-7-2 09:34:33

security 发表于 2018-7-2 08:52
那能提起你兴趣的类似工具是什么,能分享一下吗?

我平时只写一点小项目, slickedit2017 和 Clion都够用了
slickedit2017 简单粗暴不用添加任何额外的文件, 找变量一找一个准
Clion有语法检测, 需要添加cmake文件, 找函数定义有点蛋疼(总数跳到声明那里), 但是写起来代码自动完成功能也很好

SC-Electronic 发表于 2018-7-2 13:41:10

都是9年义务教育,你咋这么优秀呢!

lhj200304 发表于 2018-7-2 13:55:05

si 3.5可以用吗?还是要4.0才可以用

gsq19920418 发表于 2018-7-2 14:28:47

留个爪,感觉以后会有用

ysyt_3 发表于 2018-7-2 15:56:32

好东西啊,让我都想学这语言了

kangzou1012 发表于 2018-7-2 16:33:45

这个脚本是好东西,感谢楼主分享哈

lzlym182 发表于 2018-7-2 16:37:44

工程师的痛咋就被你理解得这么透彻

涵潇舒雅 发表于 2018-7-2 16:38:13

tianxiaoMCU 发表于 2018-7-2 08:57
目前不支持keil C51,C51的跟ARM的不太一样

好的,其实C51 也没多少文件, 感谢楼主分享~{:lol:}

tianxiaoMCU 发表于 2018-7-2 18:44:19

lhj200304 发表于 2018-7-2 13:55
si 3.5可以用吗?还是要4.0才可以用

自从4出来后我就没用过3.5了,所以没有测试,如果你能测试一下并反馈,那是再好不过了

tyqhaha 发表于 2018-7-2 20:29:31

python万能~收藏

jaky80000 发表于 2018-7-2 20:44:54

mark 学习 一下 SourceInsight 快速、精确导入 IAR/MDK工程 源码的Python脚本

radar_12345 发表于 2018-7-2 21:32:23

没安装 python 要怎么搞?

tianxiaoMCU 发表于 2018-7-2 23:43:43

radar_12345 发表于 2018-7-2 21:32
没安装 python 要怎么搞?

我自己装有,所以就懒得打包了{:lol:}

LVmcu 发表于 2018-7-3 00:10:28

感谢楼主分享!!!!!!!

Eworm001 发表于 2018-7-3 04:43:42

Mark搜人岑sight精确导入

gamalot 发表于 2018-7-3 05:34:41

radar_12345 发表于 2018-7-2 21:32
没安装 python 要怎么搞?

装一个啊,python又不会占很多地方 ......

fenglove 发表于 2018-7-3 08:22:48

python 安装的版本是2.X貌似用不了,谢谢楼主

tianxiaoMCU 发表于 2018-7-3 08:58:11

fenglove 发表于 2018-7-3 08:22
python 安装的版本是2.X貌似用不了,谢谢楼主

我用的python 3

dreambox 发表于 2018-7-3 09:21:49

这个可以,不过不用SourceInsight了,现在用vscode

huangqi412 发表于 2018-7-3 09:34:32

涵潇舒雅 发表于 2018-7-2 08:33
楼主,MDK for C51 不支持吗?
N76E003工程下,无法正常运行~

让楼主稍微讲下解析原理,然后应该能照猫画虎一个。

ckhf 发表于 2018-7-3 10:11:07

我能说这个怎么运行脚本吗?{:lol:}必须装IDE?

duxingkei 发表于 2018-7-3 15:43:25

本帖最后由 duxingkei 于 2018-7-3 15:56 编辑

这是个好东西,下次有需求时拿来改改,蛮方便的

tianxiaoMCU 发表于 2018-7-3 20:46:02

ckhf 发表于 2018-7-3 10:11
我能说这个怎么运行脚本吗?必须装IDE?

装一个吧,不大个

yayagepei 发表于 2018-7-3 21:34:02

感觉很厉害的样子,下载来试试

关于以后 发表于 2018-7-3 23:30:56

赶紧下来试试!

Jmhh247 发表于 2018-7-6 14:50:50

顶楼主,试用了下,很不错。


有个小问题,不知道楼主测试的MDK4 是哪个版本?

我用 MDKV4.74,生成的.dep文件居然和工程文件同级(有设置输出文件夹),与MDK5不同。

修改了查找.dep的路径,已经可用了。

Jach 发表于 2018-7-6 16:20:10

ckhf 发表于 2018-7-3 10:11
我能说这个怎么运行脚本吗?必须装IDE?

You can use the portable version.
https://sourceforge.net/p/portable-python/activity/?page=0&limit=100#5ac91f473241d209d8691463
After unzip, run Console-Launcher.exe
Change to the directory the script is at
Run python myscript.py

hxke 发表于 2018-7-6 16:36:30

MDK输出在.uvprojx工程的子目录out下,这个脚本要怎么改?

hxke 发表于 2018-7-6 16:45:35

Jmhh247 发表于 2018-7-6 14:50
顶楼主,试用了下,很不错。




哪些地方修改查找路径

tianxiaoMCU 发表于 2018-7-6 23:25:53

Jmhh247 发表于 2018-7-6 14:50
顶楼主,试用了下,很不错。




我说呢,用keil 5编译的一直在out目录下的,原来工程文件同级下的那个是keil 4输出的

tianxiaoMCU 发表于 2018-7-6 23:31:21

hxke 发表于 2018-7-6 16:36
MDK输出在.uvprojx工程的子目录out下,这个脚本要怎么改?

用着有问题?现在就是在子目录out下去找的

Jmhh247 发表于 2018-7-7 09:21:13

hxke 发表于 2018-7-6 16:45
哪些地方修改查找路径

如果你只有MDK5,不用修改就行,楼主的代码OK!



修改这个路径只适用MDK4.74(其它版本我未测试),确保脚本与工程文件同级,然后
把第63行:
        OutputDirectory = os.path.normpath(os.path.join(os.getcwd(), OutputDirectory))



改成:
        OutputDirectory = os.path.normpath(os.getcwd())



如果想MDK5与MDK4共用,上面的改法不可取,最好重构。我现在只用MDK4。。。

Jmhh247 发表于 2018-7-7 09:22:38

tianxiaoMCU 发表于 2018-7-6 23:25
我说呢,用keil 5编译的一直在out目录下的,原来工程文件同级下的那个是keil 4输出的 ...

是啊,我看了自己的keil4后,又去同事电脑确认,确实keil 4同级,略坑。。。

hxke 发表于 2018-7-7 10:13:54

Jmhh247 发表于 2018-7-7 09:21
如果你只有MDK5,不用修改就行,楼主的代码OK!




谢谢,我只装了MDK5,*.dep文件也生成了,在工程目录的子目录Objects下。
编译工程后,运行脚本提示:
Please build the project once

hxke 发表于 2018-7-7 10:14:17

tianxiaoMCU 发表于 2018-7-6 23:31
用着有问题?现在就是在子目录out下去找的

谢谢,我只装了MDK5,*.dep文件也生成了,在工程目录的子目录Objects下。
编译工程后,运行脚本提示:
Please build the project once

hxke 发表于 2018-7-7 10:35:14

Jmhh247 发表于 2018-7-7 09:22
是啊,我看了自己的keil4后,又去同事电脑确认,确实keil 4同级,略坑。。。 ...

可以了,感谢,原来可能用keil4生成过工程,我把工程目录下的 project.eww和 project.ewp两个文件删除就可以了

hxke 发表于 2018-7-7 10:36:51

tianxiaoMCU 发表于 2018-7-6 23:31
用着有问题?现在就是在子目录out下去找的

可以了,感谢,原来可能用keil4生成过工程,我把工程目录下的 project.eww和 project.ewp两个文件删除就可以了

tianxiaoMCU 发表于 2018-7-7 22:30:35

针对Jmhh247 发现的问题做了修改

windancerhxw 发表于 2018-7-9 09:55:24


mark 学习 一下 SourceInsight 快速、精确导入 IAR/MDK工程 源码的Python脚本{:handshake:}

huangqi412 发表于 2018-7-9 16:42:50

熟悉的味道导入VS导入QT 导入。。。{:lol:}

cdlxzlp 发表于 2018-7-10 14:42:36

看来,坛友的力量是无穷大的。

LCH201328 发表于 2018-7-10 21:28:17

感谢分享,楼主好人

ckhf 发表于 2018-7-11 08:44:33

Jach 发表于 2018-7-6 16:20
You can use the portable version.
https://sourceforge.net/p/portable-python/activity/?page=0&limi ...

thinks,谢谢

ckhf 发表于 2018-7-11 09:40:07

tianxiaoMCU 发表于 2018-7-3 20:46
装一个吧,不大个

安装了python 3.7   你的小程序1.0版本的放IAR 下,运行提示如图,我运行IAR,还是没有反应啊,拖拽你的小程序到命令行下再回车也没有反应----------操作有误?

tianxiaoMCU 发表于 2018-7-11 22:53:30

ckhf 发表于 2018-7-11 09:40
安装了python 3.7   你的小程序1.0版本的放IAR 下,运行提示如图,我运行IAR,还是没有反应啊,拖拽你的 ...

放在IAR工程文件同级目录下,运行前编译一次工程。你的IAR版本是多少?

xinghuifly 发表于 2018-7-12 17:33:35

厉害了!!!

嵌入之梦2 发表于 2018-7-12 20:08:09

确实好用,谢了

xiaojian 发表于 2018-7-12 20:16:21

留个记号,明天试试

ckhf 发表于 2018-7-13 08:40:02

tianxiaoMCU 发表于 2018-7-11 22:53
放在IAR工程文件同级目录下,运行前编译一次工程。你的IAR版本是多少?

IAR ARM/7.10 对啊,和Project.eww同级

嵌入之梦2 发表于 2018-7-13 08:45:11

同问楼主,在MDK keil 5能用,IAR for ARM 6.3不能用

fengyunyu 发表于 2018-7-13 09:49:40

实用,lz厉害!

mypear 发表于 2018-7-13 10:48:59

实测过:文件扩展名称用大写C或H是关联不了,导不入。例如:aaa.C是导入不了。改为aaa.c才行

tkggsai2008 发表于 2018-7-13 11:42:13

貌似.s文件不能导出到txt文件中,LZ有没有什么办法

acai039033 发表于 2018-7-13 13:01:18

一直在网上搜这个东西,直到今天偶然看到 LZ好人

tianxiaoMCU 发表于 2018-7-13 22:14:24

tkggsai2008 发表于 2018-7-13 11:42
貌似.s文件不能导出到txt文件中,LZ有没有什么办法

只是脚本没有处理.s文件而已

tianxiaoMCU 发表于 2018-7-13 22:17:05

mypear 发表于 2018-7-13 10:48
实测过:文件扩展名称用大写C或H是关联不了,导不入。例如:aaa.C是导入不了。改为aaa.c才行 ...

谢谢反馈,不过后缀名大写这习惯还真是少见

tianxiaoMCU 发表于 2018-7-13 22:19:00

嵌入之梦2 发表于 2018-7-13 08:45
同问楼主,在MDK keil 5能用,IAR for ARM 6.3不能用

记下了,后面找个时间看看,最近忙疯了

tianxiaoMCU 发表于 2018-7-13 22:20:19

ckhf 发表于 2018-7-13 08:40
IAR ARM/7.10 对啊,和Project.eww同级

后面抽个时间看看,记下了。

yick 发表于 2018-7-14 07:21:00

source insight 4.0可以用么

maomao2016 发表于 2018-7-14 08:54:27

mark 学习 一下 SourceInsight 快速、精确导入 IAR/MDK工程 源码的Python脚本

nzk123 发表于 2018-7-14 11:28:20

为什么我运行了没有反应,Keil版本是4.72,python是3.4

xyzabc 发表于 2018-7-14 16:20:23

感谢楼主{:smile:}

tianxiaoMCU 发表于 2018-7-15 10:31:55

tkggsai2008 发表于 2018-7-13 11:42
貌似.s文件不能导出到txt文件中,LZ有没有什么办法

改了一下,自己测可以导出.s文件了

tianxiaoMCU 发表于 2018-7-15 10:33:08

yick 发表于 2018-7-14 07:21
source insight 4.0可以用么

我用的就是4.0的

tianxiaoMCU 发表于 2018-7-15 10:35:10

nzk123 发表于 2018-7-14 11:28
为什么我运行了没有反应,Keil版本是4.72,python是3.4

一点提示都没有?

nzk123 发表于 2018-7-15 17:23:10

tianxiaoMCU 发表于 2018-7-15 10:35
一点提示都没有?

双击后黑框一闪而过

xiangbin099 发表于 2018-7-15 19:11:47

谢谢分享{:lol:}{:lol:}

Dream_123 发表于 2018-7-15 19:28:41

谢谢分享,可以学习下
页: [1] 2 3
查看完整版本: SourceInsight 快速、精确导入 IAR/MDK工程 源码的Python脚本