【北京迅为】《STM32MP157开发板嵌入式开发指南》-第二十五章 Source Insight 的安装和使用

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7+单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板+底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐用,可满足高速信号环境下使用。共240PIN,CPU功能全部引出:底板扩展接口丰富底板板载4G接口(选配)、千兆以太网、WIFI蓝牙模块HDMI、CAN、RS485、LVDS接口、温湿度传感器(选配)光环境传感器、六轴传感器、2路USB OTG、3路串口,CAMERA接口、ADC电位器、SPDIF、SDIO接口等


第二十五章 Source Insight 的安装和使用

本章内容对应视频讲解链接(在线观看):https://www.bilibili.com/video/BV1M7411m7wT?p=27

Source Inisght是一款在Windows下运行的功能强大的代码查看,编辑的工具,我们可以在该软件下进行代码编写和查看,编写完成以后通过ssh拷贝到Ubuntu系统下去编译。Source Inisght的下载地址:https://www.sourceinsight.com/download/,如下图所示:

我们已经下载了该软件,放在光盘资料的“iTOP-STM32MP157开发板网盘资料汇总\01_开发所需PC软件\08_Source Insight)” 目录下,双击“sourceinsight40107-setup.exe”开始安装,首先是安装首界面,然后点击“Next”按钮,如下图所示: 

然后是“License协议许可”界面,选择“I accept the  terms in the license adreement”选项,然后点击“Next”按钮,如下图所示: 

然后是安装路径选择,我们选择好安装到的路径,然后点击“Next”按钮继续下一步,如下图所示: 

然后是安装确认界面,如果前面的设置确认没有问题,点击“Install”按钮,开始安装,如下图所示: 

安装过程的界面如下图所示: 

最后会显示安装完成界面,点击“Finish”按钮,完成安装,如下图所示: 

安装成功以后会在桌面生成“Source  Insight 4.0”的快捷图标,如下图所示: 

 然后双击图6.4.8的快捷图标,启动Source Inisght 4.0,首先会出现License许可对话框,因为Source Inisght是收费软件,所以需要购买License,如果购买了License,输入License,如果没有购买License可以免费试用30天,然后点击“Next”按钮,继续下一步,如下图所示:

 然后进入信息填写界面,填写完信息,然后点击“Next”按钮就可以了,如下图所示,在后面弹出窗口一路点击“Next”按钮就可以了。

最后进入到Source Inisght,由于这是我们第一次打开,所以会出现如下图所示界面,然后点击界面中的“Cancel”按钮。 

然后会弹出对话框,我们点击“确定”按钮,如下图所示: 

 

然后会出现“创建工程的对话框”,我们点击“否”按钮,不创建工程,如下图所示: 

 

现在我们进入到Source Inisght界面,如下图所示: 

 

下面我们讲解一下Source Inisght下创建工程。

使用Source Inisght查看代码,我们需要创建一个工程,首先我们创建文件夹“hello”用来保存工程的所有文件(Source Inisght的工程文件、程序源码)注意:Source Inisght的工程路径不能有中文路径!在刚才创建的“hello”文件夹下建立source_insight文件夹用来保存Source Insight 的工程文件,如下图所示:

 

然后点击Source Insight界面的“Project->New Project”,开始创建工程,如下图所示: 

 

然后打开新建工程对话框,分别输入工程名称,工程保存的目录(图建立的文件夹),然后点击“OK”按钮,如图下所示: 

 

然后进入工程设置界面,我们检查确认下工程保存的目录是否正确,确认没有问题以后,点击“OK”按钮,如下图所示: 

然后进入向工程添加文件的界面,我们首先选中工程的根目录,然后点击“Add All”按钮,添加工程根目录下的所有源文件到工程中,在该窗口的下部分会显示添加的所有源文件,添加完成后,点击“Close”按钮,如下图所示: 

然后弹出添加文件确认对话框,我们选中“包含子目录下的所有源文件”,然后点击“OK”按钮,如图6.4.20所示: 

然后会弹出没有源文件的提示窗口(因为我们这里新建的文件夹里面还没有存放任何源文件,所以会有这个提示),我们点击“确定”按钮,如下图所示:

我们点击该图中的“Close”按钮,至此完成新建工程。新建工程完毕以后Source  Insight界面如下图 所示: 

我们发现图6.4.22界面都是空的,看着和没有创建工程时候的界面没有区别,这是因为我们新建的工程默认没有源文件,所以看起来是这样的。

下面我们开始在工程里面新建三个源文件:main.c、calc.h、calc.c,首先新建main.c,点击“File->New”,如下图所示:

 

然后打开新建文件窗口,我们输入新建文件的名称main.c,然后点击“OK”按钮,如下图所示: 

 

main.c文件创建完成,我们点击“File->Save”保存文件(可以按键盘的Ctrl+s组合键来保存),我们保存在hello文件夹,如下图所示: 

点击了“保存”按钮以后,会弹出“是否要将刚才创建的main.c加入到工程”的对话框,我们点击“是”按钮,添加main.c到“hello”工程里面,如下图所示: 

然后Source Insight界面如下图所示: 

我们需要打开软件的项目文件管理窗口,我们点击“View->Panels->Project File List”,如下图所示: 

打开项目文件的窗口如下图所示: 

在上图文件列表里面,我们可以看到目前我们的工程有一个文件了(main.c)。我们用同样的方法分别创建calc.h、calc.c并添加到我们的hello工程里面,最终工程里面的所有文件如图: 

然后我们开始编辑main.c(在项目文件列表里面,鼠标双击main.c即可打开main.c文件),如下图所示: 

打开main.c文件以后,我们在编辑区输入如下代码: 

#include <stdio.h>                                                                    
#include "calc.h"                                                                     int main(int argc, char *argv[])                                                      
{                                                                                     int a = 3, b = 7, sum;                                                        sum = calc(a, b);                                                             printf("%d + %d = %d\n", a, b, sum);                                          return 0;                                                                     
}

编辑完以后保存后的界面如图下所示: 

我们看到图6.4.33中字体显示大小和格式显示有点不美观,我们可以点击“Options->File Type Options...”打开文件类型设置窗口,然后找到“Screen Font”按钮,如下图所示: 

然后打开字体设置窗口,我们在字体里面设置成“Verdana”,字形选择“常规”,大小选择“四号”,如下图所示: 

然后会弹出修改确认对话框,我们输入“yes”,然后点击“Yes”按钮,如下图所示: 

然后回到文件类型设置界面,点击关闭图标,完成字体的修改,如下图所示: 

现在我们看到程序源码显示美观很多了,如下图所示: 

同样的方式我们打开calc.h,输入如下代码: 

#ifndef _CALC_H                                                                         
#define _CALC_H                                                                         int calc(int a, int b);                                                                 
#endif          

编辑完保存后,如下图所示

然后打开calc.c,输入下面的代码:

#include "calc.h"                                                                       int calc(int a, int b)                                                                  
{                                                                                       return (a+b);                                                                   
}  

编辑完保存后,如下图所示:

至此,工程中的三个文件已经全部编辑完毕,下面我们需要对整个工程做一下同步,同步的目的是把文件中发的函数做下关联,比如函数之间的调用关系通过同步Source Insight会自动的追踪出来然后保存到工程文件里面,首先点击“Project->Synchronize Files”,如下图所示: 

然后会打开同步对话框,我们选中“强制同步所有的工程文件”,然后点击“Start”按钮开始同步,如下图所示: 

由于我们的工程只有三个文件,所以同步很快。

同步完成以后我们来看下Source Insight如何查看代码,首先打开main.c,鼠标光标我们定位到main函数的地方,我们可以看到Source Insight的下部分窗口会显示main函数的定义,如下图所示:

然后我们看到main函数里面调用了函数“calc”,如果要查看calc函数的定义以及所在的文件,我们可以把当前光标定位到calc这个函数上(鼠标在这个函数上点击一下),然后在Source Insight的下部分窗口会显示calc函数的定义以及所在的文件,如下图所示: 

我们可以在函数定义的窗口鼠标双击,就会跳转到定义函数的文件,如下图所示: 

如果我们查看完calc函数的定义,想要返回到之前的main函数处,我们可以点击菜单栏的“返回”快捷图标,可以返回到main函数的定义处,如下图所示: 

返回到main函数后,鼠标会自动定位到调用calc函数的位置,如下图所示: 

通过上面的步骤我们可以对Source Insight有了初步的了解,用这个软件查看编辑源码会大大提高我们的工作效率。

初次安装好Source Insight,如果打开有中文的文件,中文字符可能会显示乱码,如下图所示:

这是因为Source Insight默认的编码方式没有设置正确,我们需要修改下编码方式,点击“Options->Preferences…”,如下图所示: 

打开以后选择“Files”,然后在“Default encoding”列表选择“Chinese Simplified(GB2312) CP:936”,最后点击“确定”按钮,如下图所示: 

然后我们先关闭main.c文件,在重新打开main.c文件,可以看到中文显示正常了,如下图所示: 

至此关于Source Insight软件的安装使用我们就介绍到这里,更多详细的更深入的使用大家可以去网上找下相关的资料来学习。 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/55722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ElasticSearch备考 -- Multi match

一、题目 索引task有3个字段a、b、c&#xff0c;写一个查询去匹配这三个字段为mom&#xff0c;其中b的字段评分比a、c字段大一倍&#xff0c;将他们的分数相加作为最后的总分数 二、思考 通过题目要求对多个字段进行匹配查询&#xff0c;可以考虑multi match、bool query操作。…

RabbitMQ的相关题

一、 MQ的作⽤及应⽤场景 类似问题: 项⽬什么场景下使⽤到了MQ, 为什么需要MQ? RabbitMQ 的作⽤?使⽤场景有哪些? RabbitMQ…

【JWT安全】portswigger JWT labs 全解

目录 1.利用有缺陷的 JWT 签名验证 ①接受任意签名 lab1:通过未验证的签名绕过 JWT 身份验证 ②接受无签名的token lab2:通过有缺陷的签名验证来绕过 JWT 身份验证 2.暴力破解密钥 ①使用hashcat lab3:通过弱签名密钥绕过 JWT 身份验证 3.JWT 标头参数注入 ①通过 jwk…

多模态大语言模型(MLLM)-InstructBlip深度解读

前言 InstructBlip可以理解为Blip2的升级版&#xff0c;重点加强了图文对话的能力。 模型结构和Blip2没差别&#xff0c;主要在数据集收集、数据集配比、指令微调等方面下文章。 创新点 数据集收集&#xff1a; 将26个公开数据集转换为指令微调格式&#xff0c;并将它们归类…

大数据新视界 --大数据大厂之 GraphQL 在大数据查询中的创新应用:优化数据获取效率

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

【C++】--类和对象(3)

&#x1f911;个人主页: 起名字真南 &#x1f911;个人专栏:【数据结构初阶】 【C语言】 【C】 目录 1 深入构造函数2 类型转换3 static成员4 友元函数5 内部类6 匿名对象 1 深入构造函数 之前我们实现构造函数的时候&#xff0c;初始化成员变量都是在函数体内赋值&#xff0c…

selenium有多个frame页时的操作方法(5)

之前文章我们提到&#xff0c;在webdriver.WebDriver类有一个switch_to方法&#xff0c;通过switch_to.frame()可以切换到不同的frame页然后才再定位某个元素做一些输入/点击等操作。 比如下面这个测试网站有2个frame页&#xff1a;http://www.sahitest.com/demo/framesTest.h…

5.toString()、构造方法、垃圾回收、静态变量与静态方法、单例设计模式、内部类

文章目录 一、toString()1. 优缺点2. 使用方法举例① Dos类里更省事的方法 ② Application里 二、构造方法1. 导入2. 什么是构造方法3. 怎么写构造方法① 无参的构造方法(无参构造器)② 有参的构造方法(有参构造器)③ 注意 4. 构造方法的重载 三、再探this1. 给成员变量用2. 给…

【用户管理 添加用户 超级用户 用户和组】

用户管理 添加用户超级用户用户和组 添加用户 介绍用户的管理操作 比如&#xff0c;添加一个用户 sudo useradd -m test1 其中&#xff0c;sudo表示管理员身份运行 修改用户密码 sudo passwd test1 删除用户 sudo userdel test 超级用户 1.首次使用时&#xff0c;需要给roo…

快速区分 GPT-3.5 与 GPT-4

问&#xff1a;鲁迅为什么暴打周树人&#xff1f; GPT3.5回答 各种稀奇古怪的理由 GPT4回答 正确区分鲁迅和周树人是同一个人 国内GPT入口 https://ai-to.cn/url/?ulihaimao

Android Preference的使用以及解析

简单使用 values.arrays.xml <?xml version"1.0" encoding"utf-8"?> <resources><string-array name"list_entries"><item>Option 1</item><item>Option 2</item><item>Option 3</item&…

初始Linux(二)基础命令

前言&#xff1a; 之前那一篇我们已经介绍了一部分的基础命令&#xff0c;当然那只不过是九牛一毛&#xff0c;本篇我们继续介绍一些比较重要且需要掌握的基础命令。 mv命令&#xff1a; 其实这个命令有两个功能&#xff0c;一个是移动&#xff08;剪切&#xff09;文件&#…

linux如何与网络时间对齐(雪花算法ID重复)

文章目录 前言一、可能引发什么问题&#xff1f;二、调整步骤1.查看当前系统时间2.修改为中国时区3.同步网络时间4. 雪花id重复 总结 前言 linux服务器是部署服务的不二之选,有个小问题不可忽略&#xff1a; 会发现默认的服务器时间并非中国时区,时间也是相差八小时,中国时区…

(笔记)第三期书生·浦语大模型实战营(十一卷王场)–书生基础岛第5关---XTuner 微调个人小助手认知

学员闯关手册&#xff1a;https://aicarrier.feishu.cn/wiki/ZcgkwqteZi9s4ZkYr0Gcayg1n1g?open_in_browsertrue 课程视频&#xff1a;https://www.bilibili.com/video/BV1tz421B72y/ 课程文档&#xff1a; https://github.com/InternLM/Tutorial/tree/camp3/docs/L1/XTuner 关…

ThreadLocal原理解析及面试

基本使用 讲原理之前&#xff0c;我简单写个demo小程序说说怎么使用 public class TestThreadLocal {public static void main(String[] args) throws InterruptedException {ThreadLocal<String> tl new ThreadLocal();/**主线程设置了一个值*/tl.set("SSSSSs&…

Java生成二维码示例(带logo以及文字描述)

先看一下生成效果 普通二维码 普通带文本二维码 带logo二维码 带logo带文本二维码 直接上代码 这里主要是用的第三方工具生成二维码的&#xff0c;所以我们需要先引入 jar 包 <dependency><groupId>com.google.zxing</groupId><artifactId>core</…

2024诺贝尔生理学或医学奖:RNA技术将拯救人类世界

生信碱移 miRNA领域获得最新诺贝尔奖 “我好像接到了真的诺贝尔委员会的电话&#xff01;” 加里鲁夫坎 2024年诺贝尔医学奖得主 ▲ 两位诺贝尔奖获奖得主。来源:诺贝尔生理学或医学奖委员会。 就在今天&#xff0c;卡罗林斯卡学院的诺贝尔大会决定将2024年诺贝尔生理学或医学…

动手学深度学习(李沐)PyTorch 第 6 章 卷积神经网络

李宏毅-卷积神经网络CNN 如果使用全连接层&#xff1a;第一层的weight就有3*10^7个 观察 1&#xff1a;检测模式不需要整张图像 很多重要的pattern只要看小范围即可 简化1&#xff1a;感受野 根据观察1 可以做第1个简化&#xff0c;卷积神经网络会设定一个区域&#xff0c…

无人机之飞行算法篇

无人机的飞行算法是一个复杂而精细的系统&#xff0c;它涵盖了多个关键技术和算法&#xff0c;以确保无人机能够稳定、准确地执行飞行任务。 一、位置估计 无人机在空中飞行过程中需要实时获取其位置信息&#xff0c;以便进行路径规划和控制。这通常通过以下传感器实现&#…

基于STM32的模拟舞台灯光控制系统设计

引言 本项目设计了一个基于STM32的模拟舞台灯光控制系统&#xff0c;可以通过调节灯光的亮度、颜色和模式&#xff0c;实现多种灯光效果模拟&#xff0c;如渐变、闪烁和跟随节奏的灯光变化。该系统结合了LED灯条、PWM控制和按钮输入等&#xff0c;实现了舞台灯光的多样化展示。…