找回密码
 立即注册
查看: 25|回复: 2

使用SourceInsight理解复杂STC32G144K246工程

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:155
  • 最近打卡:2026-05-08 09:39:55
已绑定手机

3

主题

19

回帖

467

积分

中级会员

积分
467
发表于 昨天 15:28 | 显示全部楼层 |阅读模式
随着STC MCU功能日趋强大,项目工程早已不再是单文件或者千行内代码的规模,如何管理和理解复杂工程代码是一个问题。
用过SourceInsight\Eclipse\VSCode的码农们都知道,KEIL是一款优秀的编译调试环境,但它不是一个良好的代码开发环境,
如下是我们熟悉的Keil编程界面:


截图202605081405047689.jpg    

如下是SourceInsight编程界面:
截图202605081406589478.jpg
单从视觉感官上来说,一个像黑白电视机,一个则是色彩斑斓的彩电。
但是SourceInsight能做的远非代码着色这么简单。
比如随着你的鼠标移动到每一行代码,调用关系,代码符号定义实时更新,这是自动跟随你的鼠标动作的,不需要什么快捷键,上图中就是鼠标停留在nes_main时的情形。
再比如左侧的符号表,清楚地显示着当前文件中的定义的所有符号,你可以移动光标到左侧符号表,单击直达文件中符号的位置。
再比如下图中的我称之为超级查找功能的 look up reference,
截图202605081418545080.jpg   
keil的查找功能跟它比就是个玩具。
截图202605081434409348.jpg
上面对比只是冰山一角,有兴趣的可以自行网络检索。
对比下来,keil的代码编辑功能就像是远古的诺基亚功能机,而SourceInsight则是智能时代的安卓手机。
有了它编写查看代码不再枯燥,而是充满乐趣,且高效。

关于如何安装/汉化/和谐/使用SourceInsight的网上多如牛毛,但是少有有介绍如何精确导入工程代码的文档。
SourceInsight虽然有着优秀的代码编辑分析功能,但他有个致命缺陷:严格依赖你导入的工程源文件,如果导入工程源码不精确,则会出现找不到符号定义或者一个符号同时出现多个定义等现象,为代码分析带来困惑。
截图202605081455037158.jpg
截图202605081456028074.jpg

现在我提供一个脚本,按下述操作,可以一键生成导入SourceInsight的filelist,精确导入保证SourceInsight解析正常。
1:keil工程创建完毕后,点击keil魔术棒,点击listing选项,勾选C Preprocessor Listing选项,点击OK保存;
截图202605081500488495.jpg


2:编译一次keil工程;


3:将附件脚本放到keil工程
截图202605081557372527.jpg
  


4:双击运行脚本,即可生成SourceInsight_FileList.txt
截图202605081559102040.jpg    
截图202605081540237817.jpg
   截图202605081600122504.jpg

5:新建SourceInsight空白工程
截图202605081516472301.jpg
截图202605081518042495.jpg



6:将SourceInsight_FileList.txt导入SourceInsight空白工程,恭喜你,请愉快的开始编程吧!
截图202605081519157296.jpg   
截图202605081603226745.jpg      
   截图202605081523029947.jpg    
    截图202605081526144435.jpg

附上打包好的exe工具,以及python源码。




截图202605081405047250.jpg
截图202605081433521265.jpg
截图202605081521497538.jpg

KeilFileListGen.py

4.31 KB, 下载次数: 0

工具python源码

Keil工程文件列表生成器.exe

5.79 MB, 下载次数: 0

打包好的EXE文件

回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:887
  • 最近打卡:2026-05-08 07:56:26
已绑定手机

59

主题

2038

回帖

3869

积分

论坛元老

积分
3869
发表于 昨天 15:46 | 显示全部楼层
谢谢分享!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:243
  • 最近打卡:2026-05-09 00:06:43
已绑定手机

22

主题

422

回帖

1906

积分

金牌会员

DIY玩家

积分
1906
发表于 28 分钟前 | 显示全部楼层
对程序的管理能力强
真正的学徒往往怀着大师的心
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-5-9 00:34 , Processed in 0.128859 second(s), 62 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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