STM32CubeIDE基础学习-代码编译介绍

news2024/10/26 2:34:15

STM32CubeIDE基础学习-代码的编译介绍


前言

当写完代码后,即在调试和下载代码之前都是需要对工程代码进行编译的操作,不然是无法正常进行代码调试和下载的,所以编译这一步是一个关键步骤。

下面就来介绍下STM32CubeIDE软件环境的代码编译方法和编译生成的信息分析。


方法1
这个软件的代码编译按钮类似一个铁锤的样子,点击就可以编译程序,如下图所示:

在这里插入图片描述

如果点击展开之后,可以看到有两个模式,其中一个是Debug和另一个是Release模式,如下图所示:

在这里插入图片描述

下面就简单总结一下这两个模式的区别
1、Debug模式是用于开发调试程序的,代码编译结果是包含各种调试信息,默认系统不做优化处理。
2、Release模式一般是用于最终生成最终的代码,提供别人下载使用,代码编译结果会进行各种优化处理,从而可以令代码大大减小内存占用,运行速度也得到提升。

注意
1、这个代码优化应该是系统编译器优化的,不是人为优化的。
2、代码调试时,单步调试仅在Debug模式下支持。

方法2
快捷键:Ctrl+B,或点击Project下的Build All,可以编译代码如下图所示:

在这里插入图片描述

这里也可以选择设置Debug和Release两个模式,如下图所示:

在这里插入图片描述

点击编译后可以看到工程栏会生成一个Debug文件夹,里面存放相关编译信息文件:

在这里插入图片描述

注意,可以看到现在输出文件还是没有hex烧写文件的,需要设置输出才行,具体输出设置方法,可以看下后面的对应文章。

最终编译后会有以下的提示信息:

在这里插入图片描述

这个输出框主要反馈给程序员是否有语法错误等信息的,程序是否能正常执行,要看代码编写的逻辑是否正确。

编译结束后会有提示内容,具体编译结果里面内容含义描述如下

text 是代码段,用来存放程序执行代码的一块内存区域。
data(data segment)段,是已经初始化的变量,属于静态内存分配。
bss(block started by symbol)段,是未初始化的全局变量,属于静态内存分配。
dec(decimal即十进制数),是 text、data 和 bss 的算术和。
hex(hexadecimal即十六进制),其对应的数值是 dec 的十六进制格式。

以上是程序没有加载到内存前的3段信息,程序的大小就是text代码段的大小。

如果编译结束提示Build Finished.0 error ,0 warnings.则表示程序0 错误,0 警告,仅仅代表程序没有任何语法问题,注意,没有语法错误并不代表程序功能能正常执行,具体要分析代码执行逻辑。


总结

以上就是STM32CubeIDE软件环境的代码编译方法步骤了,虽然这个操作不是重点,但是关键步骤一环。

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

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

相关文章

Spring Boot 3核心技术与最佳实践

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 highlight: a11y-dark 引言 Spring Boot作为…

C++ · 代码笔记3 · 引用

目录 前言011引用初探_引用与普通变量012引用初探_引用作为函数参数013引用初探_引用作为函数返回值014引用初探_引用返回局部函数造成的错误015引用初探_多级引用020引用与指针递增的区别030const与引用040使用const限定的函数形参引用 前言 本笔记所涉及到的编程环境与 《C …

社区店选址案例分享:从成功案例中汲取经验

想开实体店或创业的朋友们,大家好!我是一名鲜奶吧5年的创业者,今天我将以开店专家的角度,为大家分享一些社区店选址的成功案例,希望能给你们带来启发和帮助。 选址是实体店成功的关键之一,而社区店更是要注…

16 进程终止

终止的结果 进程终止后,释放申请的相关内核数据结构和对应的数据和代码。本质就是释放系统资源 终止的场景 代码跑完,结果正确代码跑完,结果不正确代码没有跑完,程序崩溃 进程常见退出方法 正常退出: 1.main返回 …

selenium-java web自动化测试工具抓取百度搜索结果实例

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

高中数学:函数类高阶题目考法汇总(较难)

1、基本性质类问题 2、解抽象函数不等式问题 在1的基础上 解题思路: 根据f的单调性,去f 将问题转化成具体不等式问题。 例题: 对于第三小问,每一个变形前面,都要加上只要证、即证关键词,才不会被扣过程…

【STM32+HAL】姿态传感器陀螺仪MPU6050模块

一、准备工作 有关OLED屏初始化的问题,详见【STM32HAL】OLED显示初始化配置 二、所用工具 1、芯片:STM32F10C8T6 2、CUBEMX配置软件 3、 6 轴运动处理组件MPU6050 三、实现功能 OLED屏显示姿态角 四、HAL配置步骤 1、开启I2C1进行MPU6050通信 2、开…

红队攻击手“实战”特训

伴随着新的一年的到来,我们最新一期的红队攻防,也如约而至~ 每一期我们都会做二次学员反馈,根据同学们的真实反馈和需求,来调整讲师及授课内容 新的一期我们增加了C基础,python基础,汇编基础的课程&#…

LeetCode 刷题 [C++] 第139题.单词拆分

题目描述 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 题目分析 背包问题特征: 是否…

用云手机进行舆情监测有什么作用?

在信息爆炸的时代,舆情监测成为企业和政府决策的重要工具。通过结合云手机技术,舆情监测系统在品牌形象维护、市场竞争、产品研发、政府管理以及市场营销等方面发挥着关键作用,为用户提供更智能、高效的舆情解决方案。 1. 品牌形象维护与危机…

Codeforces Round 928 G. Vlad and Trouble at MIT 【树形DP】

G. Vlad and Trouble at MIT 题意 给定一颗 n n n 个节点的树,每个节点有一个学生,学生有三种类型: 参加派对的 P P P 类型,会制造噪音想要睡觉的 S S S 类型,不希望被吵到有没有噪音都可以的 C C C 类型 噪音会…

VUE3中ArcGIS JsAPI 4.27 Map 隐藏地图黑色边框

问题: vue3中引入arcgis jsapi 地图加载后,点击地图会出现黑色边框,看起来很不协调 解决方案: 新建自定义CSS文件,输入一下样式内容,并在vue页面直接用import引入即可。 注意:直接写到vue页面…

C++复习笔记——泛型编程模板

01 模板 模板就是建立通用的模具,大大提高复用性; 02 函数模板 C另一种编程思想称为 泛型编程 ,主要利用的技术就是模板 C 提供两种模板机制:函数模板和类模板 函数模板语法 函数模板作用: 建立一个通用函数,其函…

【洛谷 P8682】[蓝桥杯 2019 省 B] 等差数列 题解(数学+排序+差分)

[蓝桥杯 2019 省 B] 等差数列 题目描述 数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一部分的数列,只记得其中 N N N 个整数。 现在给出这 N N N 个整数,小明想知道包含这 N N N 个整数的最短的等差数列有几项? 输…

Mybatis-Plus:几个好的用法

项目使用mybatis-plus,同事的用法让我很难苟同,于是自己百度了一些用法,分享一下。 一、静态适配器 最好使用官方提供的ObjectUtils,比较全面,不用加载不同的对象工具。 com.baomidou.mybatisplus.core.toolkit /*** 设置查询适配…

C# 由左上、右下两个坐标点计算矩形的长、宽以及两点的距离

一、计算长、宽 直接使用坐标点计算 // 定义矩形左上角和右下角的坐标 Point topLeft new Point(0, 0); Point bottomRight new Point(5, 10); // 计算矩形的长和宽 int width bottomRight.X - topLeft.X;//矩形宽度 int height bottomRight.Y - topLeft.Y;//矩形高度或是…

实战-Sealos一键部署k8s集群-2024.3.7(测试成功)

目录 [toc] 原文链接 实战-Sealos一键部署k8s集群-2024.3.7(测试成功) | 彦 推荐文章 我的开源项目: 开源项目 | 彦 实验环境 centos7.6 1810,5.4.270-1.el7.elrepo.x86_64sealos v5.0.0-beta4k8s v1.28.7 (当前时间:2024年3月7日 k8s最新版…

ruoyi-vue框架密码加密传输

先看一下改造后的样子,输入的密码不会再以明文展示。 下面我主要把前后端改造的代码贴出来。 1.后端代码 RsaUtils类 在com.ruoyi.common.utils包下新建RsaUtils类,RsaUtils添加了Component注解 generateKeyPair()构建密钥对添加了Bean注解 在项目启动…

AI助力剧本创作:如何5分钟内构思出热门短剧大纲

人工智能重塑短剧行业:从剧本创作到市场推广 在当今短剧行业的飞速发展中,剧本创作的质量及其更新的速度已然成为短剧能否转化为热门作品的关键性因素。然而,随着短剧创作成本的日益攀升,一个卓越的剧本无论在创作时间上还是在构思…

java中的多线程通信问题介绍

在多线程编程中,通信是线程间协调和同步的重要手段。由于线程是独立执行的,它们需要一种机制来交换信息和协调它们的行为。Java 提供了多种方式来实现线程间的通信,包括共享内存、消息传递、条件变量和共享对象等。 1. 共享内存 在 Java 中&a…