百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

嵌入式为何钟爱SourceInsight?(嵌入式浅谈)

csdh11 2025-04-09 15:17 11 浏览

1

函数

不管是玩单片机,还是嵌入式Linux,只要是与硬件结合比较紧密的部分,目前基本上还是C语言。当然了,不知道以后C语言会不会被取代,即便哪天被某种更加优秀的语言取代,对于大部分使用者而言也仅仅只是语法发生一些变化而已。

更何况目前C语言渗透到嵌入式行业的各个角落,即使编程语言需要替代也是一个渐变的过程。

想必大家在入门C语言的时候,一定会碰到这样的问题:“C语言程序的基本组成单位是什么?”如果你没坚定的回答上来,那得怀疑一下自己的C语言功底了。

没错,C语言程序是由函数构成的,函数是C程序的基本组成单位。这句话很简单,但是也同样太值得深入思考了,为什么不是变量、也不是执行顺序呢?

在往期的一些文章中,其实隐隐约约有提到过一些,只要你把函数名称规范好、函数封装有理有据,基本上不需要写太多的注释,函数的名称就是最好的“文档”说明,而要读懂这篇“文档”无非就是要理顺函数之间的调用关系。

2

调用关系

没错,理顺函数之间的调用关系确实是你理解C语言程序、了解其代码原理和实现过程的关键,特别是一些大型工程代码,几乎不可能留给你足够的时间一句一句的参悟,更何况很多算法和处理策略都是比较成熟的实现,没必要重复的、花大量的时间去理解,当然了,如果你是针对性的学习和优化那就另当别论了。

对于理顺函数之间的调用关系不同的人有不同的方式方法,比如一个函数一个函数的粗略阅读,然后单独拧出相关函数进行记录和整理,最后变成流程图或者结构图等等。

也有朋友通过直接在函数内部添加打印函数,程序一旦运行就可以在相应的打印窗口列出函数之间的调用层次关系。

当然还有非常多的方法,每种方法有优劣,但从效率方面考虑还是让软件根据我们的需求自动识别函数调用关系,并以一种更加形象直观的方式呈现给我们来使用和理解。

对于目前在嵌入式软件中比较优秀的编辑器都有着查看函数调用关系的功能或者插件,而我用得比较多的还是Souceinsight的Relation Window窗口。你可能会问了,为什么喜欢用SI?当然是简洁、方便喽,能够满足我平时的阅码需求。

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。

点击这里找小助理0元领取:加微信领取资料




3

SI的Relation Window

那么,这里就根据我平时的使用,简单聊一聊SI这块的功能。

SourceInsight的符号关系功能展示在如下位置打开:

这里简单的编写了一个函数调用关系,来看看关系窗口的展示:

可以看出函数调用关系已经为我们完整的展示。

并且可以通过点击左下角相关设置来改变函数调用关系的样式,SI的关系窗口主要是两种类型的视图:outline大纲视图和图形视图,前面我们展示了大纲视图,如下是另外两种图形视图展示:

有这功能在手,理解程序的速度不知道加快多少倍?

当然了再好的功能也需要使用者多熟悉,并勤加练习,不仅如此有时候我们需要了解更多的符号信息或者筛选出我们想要了解的关系,那么这些配置项目都可以在关系窗口的配置中供我们使用。

比如是否需要对符号进行自动跟踪的设置,对函数调用展开到第几层,对于关系视图中那些类型的符号可以过滤或者展示等等都可以根据你所要展示的效果进行设置,以便我们剔除掉一些不需要关注的符号关系信息,更加直观的分析整个工程的全貌。



原文链接:
https://mp.weixin.qq.com/s/1a-Kw7n_xVk3rgitegwOfg

转载自:嵌入式微处理器

原文链接:嵌入式为何钟爱SourceInsight?

本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。

相关推荐

西门子 S7-200 SMART PLC 连接Factory IO的方法

有很多同学不清楚如何西门子200smart如何连接FactoryIO,本教程为您提供了如何使用西门子S7-200SMARTPLC连接FactoryIO的说明。设置PC和PLC之间的...

西门子博图高级仿真软件的应用(西门子博途软件仿真)

1.博图高级仿真软件(S7-PLCSIMAdvancedV2.0)S7-PLCSIMAdvancedV2.0包含大量仿真功能,通过创建虚拟控制器对S7-1500和ET200SP控制器进行仿真...

PLC编程必踩的6大坑——请对号入座,评论区见

一、缺乏整体规划:面条式代码问题实例:某快递分拣线项目初期未做流程图设计,工程师直接开始编写传送带控制程序。后期增加质检模块时发现I/O地址冲突,电机启停逻辑与传感器信号出现3处死循环,导致项目延期2...

统信UOS无需开发者模式安装软件包
统信UOS无需开发者模式安装软件包

原文链接:统信UOS无需开发者模式安装软件包...

2025-05-05 14:55 csdh11

100个Java工具类之76:数据指纹DigestUtils

为了提高数据安全性,保证数据的完整性和真实性,DigestUtils应运而生。正确恰当地使用DigestUtils的加密算法,可以实现数据的脱敏,防止数据泄露或篡改。...

麒麟KYLINIOS软件仓库搭建02-软件仓库添加新的软件包

#秋日生活打卡季#原文链接:...

Java常用工具类技术文档(java中工具类的作用)

一、概述Java工具类(UtilityClasses)是封装了通用功能的静态方法集合,能够简化代码、提高开发效率。本文整理Java原生及常用第三方库(如ApacheCommons、GoogleG...

软路由的用法(自动追剧配置)(软路由教学)

本内容来源于@什么值得买APP,观点仅代表作者本人|作者:值友98958248861环境和需求...

统信UOS命令行设置未签名软件安装权限
统信UOS命令行设置未签名软件安装权限

原文链接:...

2025-05-05 14:54 csdh11

【密钥环】统信或者麒麟操作系统上打开浏览器的问题汇总
【密钥环】统信或者麒麟操作系统上打开浏览器的问题汇总

#头条家时光#...

2025-05-05 14:54 csdh11

统信UOS或者麒麟KYLINOS上软件包有未满足的依赖关系

#秋日生活打卡季#原文链接:...

C语言之Makefile(C语言之前的语言)

以下是如何使用Makefile编译C语言代码的详细教程,适合初学者理解其核心概念和操作步骤。一、为什么需要Makefile?当项目包含多个源文件(如.c和.h)时,手动逐个编译效率低下且容...

一文搞定FastDFS的搭建和使用(fastdfs怎么样)

1.FastDFS概述FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文...

代码复查常见问题第一弹(代码复审属于____________,不实际运行程序)

RequestMapping滥用:必须指定请求方式Controller需要异常捕获...

Filament Creator材质编辑工具的实现

对于PBR材质来说,想要通过PBR属性还原真实的渲染效果,需要有一定的材质编辑能力。材质编辑工具通过提供实时编辑材质并且实时预览效果的能力,降低PBR材质编辑的门槛...