GCSC 发表于 2026-5-8 15:28:46

使用SourceInsight理解复杂STC32G144K246工程

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


   

如下是SourceInsight编程界面:

单从视觉感官上来说,一个像黑白电视机,一个则是色彩斑斓的彩电。
但是SourceInsight能做的远非代码着色这么简单。
比如随着你的鼠标移动到每一行代码,调用关系,代码符号定义实时更新,这是自动跟随你的鼠标动作的,不需要什么快捷键,上图中就是鼠标停留在nes_main时的情形。
再比如左侧的符号表,清楚地显示着当前文件中的定义的所有符号,你可以移动光标到左侧符号表,单击直达文件中符号的位置。
再比如下图中的我称之为超级查找功能的 look up reference,

keil的查找功能跟它比就是个玩具。

上面对比只是冰山一角,有兴趣的可以自行网络检索。
对比下来,keil的代码编辑功能就像是远古的诺基亚功能机,而SourceInsight则是智能时代的安卓手机。
有了它编写查看代码不再枯燥,而是充满乐趣,且高效。

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



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



2:编译一次keil工程;


3:将附件脚本放到keil工程




4:双击运行脚本,即可生成SourceInsight_FileList.txt
   



5:新建SourceInsight空白工程





6:将SourceInsight_FileList.txt导入SourceInsight空白工程,恭喜你,请愉快的开始编程吧!

   
      
   

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




jwd 发表于 2026-5-8 15:46:59

谢谢分享!

狂热主宰 发表于 2026-5-9 00:06:43

对程序的管理能力强
页: [1]
查看完整版本: 使用SourceInsight理解复杂STC32G144K246工程