0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Understand软件

科技绿洲 来源:明解嵌入式 作者:明解嵌入式 2023-06-22 09:18 次阅读

平时在开发嵌入式程序的时候大多数使用的都是keil软件,一般小的工程使用keil没感觉到有什么问题,但是当工程比较大的时候,比如移植了FreeRTOS系统或者LWIP网络系统时,代码全部编译一次就要花费很长时间,特别是开启了点击函数右键跳转的功能之后,速度更加慢。有时候只是为了查看一下代码,为了能够使用函数跳转功能,就不得不把工程全部编译一遍。

  为了提高开发效率,一般查看代码的时候会使用vscode 和 source insight 这类软件,但是vscode占用内存比较大,电脑配置比较低的话,电脑就会比较卡。source insight占用内存比较小,功能和使用方法上感觉没有vscode方便,但是source insight 有个优点就是可以查看函数调用关系图。

图片

  这个功能用起来感觉很方便,特别是查看别人代码的时候,能有一个直观的感受。于是平时就是vscode 和 source insight 这两个软件交替使用。

  直到前几天无意中发现了Understand这个软件之后,vscode 和 source insight 就再也不想用了,特别是Understand 强大函数关系图生成功能。用一次之后就再也回不去了。先上一张图感受下。

图片

  下面就详细说一下如何使用Understand软件。在浏览器中直接搜索Understand 进行下载安装破解,具体过程网上教程很多,这里就不再演示了。

图片

  下载安装完成之后,打开软件。

图片

  如果要查看代码的话,不能像vscode那样直接把文件夹拖入到软件界面中直接打开。要使用这个软件必须给要查看代码先建一个工程。

  在桌面上新建一个code文件夹准备存放Understand的工程文件,FreeRTOS移植实验是要查看的代码。也可以不新建code文件夹,Understand的把工程文件直接存放在FreeRTOS移植实验里面。

图片

图片

  不过我一般习惯在将Understand的工程文件单独放在另外的目录里面。这样查看别人的代码时,不会破坏keil工程文件的完整性。

  接下来在Understand软件中新建工程,选择文件–新建–工程。

图片

  在弹出的界面中点 添加文件夹按钮,添加要查看的keil工程文件夹。

图片

  这里选择要查看的这个 FreeRTOS移植实验

图片

  单击继续按钮

图片

  选择第二个选项,不编译代码。

图片

  接下来选择Understand工程文件存放目录,默认会创建在keil工程目录里面,在这里将工程目录设置为刚才新建code文件夹路径。

图片

  单击后面的 … 按钮,将工程路径选择为code文件夹,然后点保存按钮。

图片

  工程路径设置好之后,单击创建工程按钮,开始新建工程。新建工程的时候需要花费十几秒的时候对工程文件进行扫描,这里要耐心等待一会。

图片

  工程扫描完成之后,就会自动出现一个工程文件分析的界面,在这个界面中可以看到工程里面各部分代码的占比情况。

图片

  第一个图展示的是代码、注释、未使用、预编译、空白 这些占用行数。

图片

  第二张图展示的是不同代码在工程中的占比。通过这个可以看出FreeRTOS占30.1%,库函数占了62.7%。

图片

  通过下面的柱形图中还能看出比较占比比较大的函数和文件。

图片

  通过这个整体的分析图让我们对这个工程文件构成有一个整体的印象。下面开始使用这个软件对代码进行具体的分析。在软件界面的左侧选择工程浏览,然后打开user文件夹里面的main.c文件。

图片

  在main.c文件中双击选中main函数,然后在工具栏中点这个连接按钮。

  在这里选择第一个选项

图片

  图片

此时就会显示出main函数中调用了哪些函数。

图片

  这里默认情况下只显示了1层的调用关系,如果要显示多层调用关系还需要设置一下。界面有右上方有两个 三条横线的图标,点击下面这个三条横线图标。

图片

  将这个被调用的深度设置为3。

图片

  接着把调用深度也设置为3。

图片

  接下来就会重新生成一个函数调用关系图。

图片

  滚动鼠标滚轮可以放大缩小这个关系调用图。

图片

  通过这个关系调用图就可以很清晰的看出来main函数分别调用了哪些函数,而这些函数里面又继续调用了哪些函数。这样即使不用看代码直接通过这个函数调用关系图就能看出来main函数里面都完成了哪些功能。

  接下来依然选择main函数,在关系调用中选择第二个功能。

图片

  通过右上角的的选项按钮将层设置为5,这样就会显示出一个5层的调用关系图。

图片

  在这个调用关系中可以看到,好多函数都调用了同一个函数。而有些函数是我们不需要关心的,那么就可以在这个函数上单击鼠标右键,选择隐藏,将这个函数隐藏掉不显示。

图片

图片

  如果想要重点关心某一个函数的调用关系,可以在函数上右键,选择高亮显示。比如在这里要重点关心任务创建函数。

图片

  此时任务创建函数前面和它相关函数和路线都会被高亮显示。

图片

  如果想进一步了解这个函数的其他信息,可以在这个函数上单击鼠标右键,在属性中查看,这里就不再一一列举了。

图片

  接下来看关系调用的第三个选项。

图片

  此时就会生出一个main函数内部的执行流程。

图片

  接下来看关系调用的第四个选项。

图片

  这个列出来了main函数调用的函数和main函数的返回值。

图片

  接下来看关系调用的第五个选项。

图片

  这个列出来了main函数所包含的头文件和宏定义

图片

  接下来看关系调用的最后一个选项。

图片

  这个会显示出main函数调用的那些初始化函数都包含在哪些c文件中。

图片

  通过上面这个6种功能,可以对main函数和其他函数的调用关系进行各种方式的分析,让我们对这个工程代码能进一步的深入了解。

  同样Understand软件也可以直接查看代码。如果要跳转到函数内部时,按住ctrl键,单击鼠标左键,就能直接跳转到函数中。后退一步的快捷键是ctrl+alt+p 。

图片

图片

  如果想要使用快捷键的话,可以在菜单栏选择Tool—options

图片

  在打开的设置界面中选择Key Bindings,在右边区域中就可以查看和设置快捷键。

图片

  查看函数的时候,在函数开始位置的大括号处双击鼠标左键,就会自动选中函数所包含的代码块。

图片

  将鼠标放在函数名上面时,会显示函数的参数和返回值。同样将鼠标放在宏定义的值上时,会显示宏定义的值。

图片

图片

  这个软件还有很多强大的功能,在这里只是粗略的介绍了一下,其他功能大家在使用的过程中自己慢慢探索。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件
    +关注

    关注

    69

    文章

    4943

    浏览量

    87474
  • 函数
    +关注

    关注

    3

    文章

    4331

    浏览量

    62604
  • 代码
    +关注

    关注

    30

    文章

    4788

    浏览量

    68602
收藏 人收藏

    评论

    相关推荐

    Scientific Toolworks Understand有用过没

    不知论坛里的大佬们有用过Scientific Toolworks Understand的没?
    发表于 12-11 10:23

    移植tslib库出现selected device is not a touchscreen I understand的解决方法

    “selected device is nota touchscreen I understand"为什么会这样?原因非常简单:tslib中的输入系统和内核input系统版本不匹配,当然也有其他原因
    发表于 01-23 15:51

    软件如何控制实际的FPGA布线

    FPGA编译器生成一个比特流来配置FPGA芯片。它是如何工作的?在软件中,节点,源,接收器,路由由int,strcuture,链表,指针,矩阵表示,我的意思是,在软件软件中,它没有物理线的概念,如线
    发表于 04-15 14:17

    是否有任何免费软件可以帮助用户更好地理解平衡的VNA测量

    亲爱的先生:我是VNA平衡测量的新手。过去,安捷伦过去常常分发大量免费软件,以便向客户介绍最新的行业发展。关于平衡S参数测量,有人可以告诉我是否有任何免费软件可以帮助用户更好地理解平衡的VNA测量
    发表于 04-23 12:27

    Power MOSFET Basics:Understand

    This is the second in a series of application notes that definethe fundamental behavior of MOSFETs, both as standalonedevices and as switching devices implemented in aswitchmode power supply (SMPS). The first application note1
    发表于 11-26 11:18 23次下载

    UNDERSTANDING BATTERY LIFE IN

    UNDERSTAND
    发表于 03-04 09:32 29次下载

    labview软件的高级PID控制算法

    of different element, like Encoder resolution, ADC sampling rate, etcand understand how does it affect the system. Another benefit is
    发表于 07-01 11:03 50次下载

    Understanding Common-Mode Sign

    Abstract: To understand how common-mode signals are created and then suppressed, you should
    发表于 02-23 11:27 1512次阅读
    Understanding Common-Mode Sign

    了解共模信号-Understanding Common-Mo

    Abstract: To understand how common-mode signals are created and then suppressed, you should first
    发表于 04-24 15:18 701次阅读
    了解共模信号-Understanding Common-Mo

    了解共模信号-Understanding Common-Mo

    Abstract: To understand how common-mode signals are created and then suppressed, you should first
    发表于 04-29 09:35 1719次阅读
    了解共模信号-Understanding Common-Mo

    Understand Thermal Derating As

    Understand Thermal Derating Aspects of PWM ICs to Ensure the Best System Performance Abstract
    发表于 05-29 08:36 1370次阅读
    <b class='flag-5'>Understand</b> Thermal Derating As

    通过BeeKit技术进行ZigBee医疗应用开发

    On completion of this course, attendees should: Understand the basics of IEEE 802.15.4 and ZigBee
    发表于 10-09 17:47 44次下载
    通过BeeKit技术进行ZigBee医疗应用开发

    关于英特尔MPI库

    This session helps beginner and intermediate users understand the capabilities in the Intel® MPI Library.
    的头像 发表于 09-20 07:07 3611次阅读

    第2部分:使用Node-RED的程序

    Understand how to use the Node-RED* interface to add sensors and send data to the AWS* cloud.
    的头像 发表于 10-26 07:17 6686次阅读

    人工智能与边缘机器学习重要性

    look at key trends in these areas and understand their importance.
    的头像 发表于 09-13 05:25 1292次阅读