当前位置: 首页 > news >正文

Keil创建自定义的STM32标准库工程

注:以下工程创建将以STM32F103ZET6为例

1 下载需要的资料包

1.1 下载 Keil 的 STM32F103 芯片支持包

1.1.1 手动下载安装包

Keil官网:https://www.keil.com/
(1)进入官网,点击 Download。
在这里插入图片描述


(2)选择 Product Downloads,然后选择 MDK-Arm,进入之后选择 Device List。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


(3)直接输入芯片名称查找芯片支持包。
在这里插入图片描述

或选择供应商和内核查找芯片支持包
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


(4)下载支持包 点击 STM32F1xx_DFP,进入下载界面,点击 Download 下面的支持包。

在这里插入图片描述
在这里插入图片描述


下载完成之后,后续使用 Keil 的 Pack Installer 导入到项目中。

在这里插入图片描述

1.1.2 使用 Keil 的 Pack Installer 下载

点击如下图图标打开 Pack Installer ,
在这里插入图片描述


左侧 Device 找到 All Devices - STMicroelectronics - STM32F1 Series - STM32F103 - STM32F103ZE,右侧 Packs 窗口下找到 Keil::STM32F1xx_DFP, 点击右侧的 Install 下载。
在这里插入图片描述

1.2 下载STM32F103标准外设库

ST官网: https://www.st.com/content/st_com/en.html
在这里插入图片描述
选择 Tools&Software,


在这里插入图片描述
选择 STM32 embedded software,


在这里插入图片描述
选择 STM32 Standard Peripheral Labraries,


在这里插入图片描述
选择 F1 系列,


在这里插入图片描述
点击 Get latest 进行下载外设标准库。

2 创建工程文件夹

在这里插入图片描述

Core:存放从SDK中抽取的部分可能会修改的核心文件;
Driver:存放用户编写的外设驱动;
User:存放用户函数文件
Project:存放Keil工程文件,二进制目标文件;
SDK:存放CMSIS和HAL库(或标准库)
Clean.bat:清理Project里的Keil生成的工程文件;
Readme.txt:该工程的说明信息。

3 拷贝相关文件到工程目录

3.1 解压标准外设库包

在这里插入图片描述

3.2 拷贝相关文件

(1)拷贝启动文件

在这里插入图片描述
将 STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm 目录下的 startup_stm32f10x_hd.s 拷贝到 00_STM32_Demo\Core 目录下。


(2)拷贝系统初始化文件和外设寄存器描述文件

在这里插入图片描述

将 STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x 目录下的 {stm32f10x.h, system_stm32f10x.c, system_stm32f10x.h} 拷贝到 00_STM32_Demo\Core 目录下。

(3)拷贝内核寄存器描述文件

在这里插入图片描述
将 STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\CoreSupport\ 目录下的 {core_cm3.c, core_cm3.h} 拷贝到 00_STM32_Demo\Core 目录下。

4 Keil 创建项目工程

(1)新建项目工程。
Project - New uVision Project
在这里插入图片描述


找到对应的芯片类型。

在这里插入图片描述
在这里插入图片描述


(2)创建分组

在这里插入图片描述


(3)将本地本件添加到工程分组
在这里插入图片描述


添加文件之后需要更改文件类型,否则会出现下面的告警。

Rebuild started: Project: STM32_Demo
*** Using Compiler 'V6.14.1', folder: 'D:\Keil_v5\Core\ARM\ARMCLANG\Bin'
Rebuild target 'Target 1'
FCARM - Output Name not specified, please check 'Options for Target - Utilities'
Target not created.
Build Time Elapsed:  00:00:00

修改文件类型方法:
选中文件后右键,
在这里插入图片描述

File Type 更改为对应的文件类型,如下:
在这里插入图片描述

在这里插入图片描述
其他 .s 或 .c 文件同样设置。

注意:.h 文件添加到分组后不能设置为 “C Source File” 类型,可以设置为 “Text Document file” ,或者直接不要把 .h 文件添加到分组中,否则编译报错
在这里插入图片描述

报错信息如下:

在这里插入图片描述


(4)添加设备型号宏定义 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/92c26dbe25904d259bd7a45493471119.png)

在这里插入图片描述


(5)配置时钟和编译器版本
开发板使用8M外部晶振。
在这里插入图片描述
只能选择 version 5 的版本,不然编译报错,version 6版本有些语法不支持。


(6)配置目标文件输出路径和 listing 文件存放路径
在这里插入图片描述

在这里插入图片描述


(7)配置生成 hex 文件
在这里插入图片描述


(8)配置头文件路径和语法版本
在这里插入图片描述


(9)配置文件的编码格式
在这里插入图片描述


经以上步骤,配置完成。点击编译按钮开始编译代码,结果如下:
在这里插入图片描述

到此,以上可作为寄存器版工程
(10)拷贝标准库
将 STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\ 目录下的 {src, inc} 拷贝到 00_STM32_Demo\Driver\StdLib\ 目录下。
在这里插入图片描述


将 STM32F10x_StdPeriph_Lib_V3.6.0\Project\STM32F10x_StdPeriph_Template\stm32f10x_conf.h 拷贝到 00_STM32_Demo\Core 目录下。
在这里插入图片描述

将 标准库源文件添加到 Driver/StdLib Group。注意:下图文件类型要选择 C Source file(*.c)

在这里插入图片描述


添加一个使用 标准外设库 的宏 " USE_STDPERIPH_DRIVER"。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/3e62ecb490a844939c03ec176f770367.png)
最后再重新编译一下工程,0错误,0告警。

在这里插入图片描述

标准库工程模板创建完毕。

相关文章:

Keil创建自定义的STM32标准库工程

注:以下工程创建将以STM32F103ZET6为例 1 下载需要的资料包 1.1 下载 Keil 的 STM32F103 芯片支持包 1.1.1 手动下载安装包 Keil官网:https://www.keil.com/ (1)进入官网,点击 Download。 (2&#xf…...

React(1)基础入门

React(1)基础入门 Author: Once Day Date: 2025年4月10日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可参考专栏: FullStack开发_Once-Day的博客-CSDN博客 …...

Mysql8配置文件

Mysql8配置文件 修改my.cnf----配置持久化键(persistence key)配置表名不区分大小写 修改my.cnf----配置持久化键(persistence key) MySQL8初始化数据库之前配置好这些变量值,初始化数据库之后可能无法修改这个值。 # 服务端配置 [mysqld] ######## 数据目录和基…...

c/c++ 使用libgeotiff读取全球高程数据ETOPO

#include <geotiff.h> #include <geotiffio.h> #include <tiffio.h> #include <iostream> #include <xtiffio.h> void MyTIFFErrorHandler(const char* module, const char* fmt, va_list args) {// 格式化错误消息char buffer[1024];vsnprintf(…...

Spring Boot集成Nacos

1. 添加依赖 在pom.xml文件中添加Nacos相关依赖。根据Spring Boot版本选择合适的依赖版本&#xff1a; Spring Boot 3.2.x版本 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artif…...

CAP理论 与 BASE理论

一、分布式系统存在的问题 1.分布式系统 20世纪90年代&#xff0c;随着互联网应用的快速扩张&#xff0c;传统单机系统难以支撑高并发、跨地域的数据处理需求。分布式系统&#xff08;Distributed System&#xff09; 逐渐成为主流架构&#xff0c;分布式系统是由多台计算机&…...

C++(21)—类和对象(下) ⑥匿名对象

文章目录 一、匿名对象的定义与基本特性二、匿名对象与有名对象的对比1. 有名对象2. 匿名对象 三、匿名对象的构造与析构时机1. 构造与析构规则2. 示例分析 四、匿名对象的适用场景1. 临时调用对象方法2. 作为函数参数 五、总结 一、匿名对象的定义与基本特性 匿名对象&#x…...

Go环境变量配置

Go环境变量配置 一、下载 进入The Go Programming Language 点击下载对应操作系统的 安装成功界面如下图,默认安装到: usr/local/go/ 安装完成之后&#xff0c;在终端运行 go version&#xff0c;如果显示类似下面的信息&#xff0c;表明安装成功&#xff08;备注:darwin(其实…...

AI推理强,思维模型也有功劳【58】二八定律思维

giszz的理解&#xff1a;二八定律&#xff0c;我们说的和听的都比较多。20%的关键&#xff0c;是事物本质&#xff0c;做人不要贪心&#xff0c;也不要胡子眉毛一把抓。当然&#xff0c;也不要轻视那80%。 一、定义 二八定律思维模型&#xff0c;也被称为帕累托法则&#xff0…...

文件上传靶场

文件上传靶场 项目结构 upload-lab/ ├── Dockerfile └── www├── index.php└── upload└── flag.txt执行命令流程&#xff08;逐行执行&#xff09; 创建目录结构 # 创建目录结构 mkdir upload-lab;cd upload-lab mkdir -p www/upload# 创建flag文件 echo &qu…...

RV1106 OCR 识别算法

一 题记 目标是在某款 RV1106 低算力小板下跑通OCR文字识别算法&#xff0c;做个简单的应用&#xff0c;RK 官方模型库rk_model_zoo 有PP-OCR 的例子&#xff0c;但在 rv1106 上尚未支持。于是便打算折腾一吧。 二 方案甄选 参考国外某大佬的比较&#xff1a; 对比了几种方案…...

Linux实现翻译以及群通信功能

1.翻译功能实现 UdpServer.hpp文件 构造函数 接收一个端口号和一个回调函数&#xff0c;回调函数是传入一个执行方法&#xff0c;比如翻译方法。 UdpServer(uint16_t port,func_t func):_sockfd(defaultfd),_port(port),_isrunning(false),_func(func){}Init函数 首先创建了…...

[MRCTF2020]ezpop wp

本题考点:php反序列化的pop链 首先来了解一下pop链是什么,它类似于多米诺骨牌一环套一环,要调用这个成员方法然后去找能调用这个方法的魔术方法,最后一环接一环,完成一个链子,最终形成payload。 那么来了解一下这些魔术方法 __construct() //类的构造函数&#xff0…...

机器学习入门之Sklearn基本操作

、 Sklearn全称:Scipy-toolkit Learn是 一个基于scipy实现的的开源机器学习库。它提供了大量的算法和工具&#xff0c;用于数据挖掘和数据分析&#xff0c;包括分类、回归、聚类等多种任务。本文我将带你了解并入门Sklearn在机器学习中的基本用法。 获取方式 pip install sc…...

(二十二)安卓开发中的数据存储之SQLite简单使用

在Android开发中&#xff0c;SQLite是一种非常常用的数据库存储方式。它轻量、简单&#xff0c;非常适合移动设备上的数据管理。本文将通过通俗易懂的语言&#xff0c;结合代码示例和具体场景&#xff0c;详细讲解SQLite在Android中的使用。 1. 什么是SQLite? SQLite是一个开…...

docker compose搭建博客wordpress

一、前言 docker安装等入门知识见我之前的这篇文章 https://blog.csdn.net/m0_73118788/article/details/146986119?fromshareblogdetail&sharetypeblogdetail&sharerId146986119&sharereferPC&sharesourcem0_73118788&sharefromfrom_link 1.1 docker co…...

信息学奥赛一本通 1498:Roadblocks | 洛谷 P2865 [USACO06NOV] Roadblocks G

【题目链接】 ybt 1498&#xff1a;Roadblocks 洛谷 P2865 [USACO06NOV] Roadblocks G 【题目考点】 1. 图论&#xff1a;严格次短路径 严格次短路的路径长度必须大于最短路的路径长度。 非严格次短路的路径长度大于等于最短路的路径长度。 【解题思路】 每个交叉路口是一…...

学习笔记—C++—类和对象(三)

目录 类和对象 再探构造函数 类型转换 隐式类型转换 显式类型转换 C语言风格类型转换 C风格类型转换 static_cast dynamic_cast const_cast reinterpret_cast static成员 友元 友元函数 友元类 友元成员函数 内部类 匿名对象 匿名对象的使用场景&#xff1a;…...

句句翻译。

对这些单词整理&#xff0c;格式为&#xff1a;“overall /əʊvərɔːl/ adj.全面的,综合的,总体的adv.全部,总 计,一般来说,大致上,总体上n.外套,罩衣,工装连衣裤,工装 服 ” 4,4 A review published in January in Experimental Dermatology found that ceramide made sk…...

LeetCode 2999.统计强大整数的数目:上下界数位DP

【LetMeFly】2999.统计强大整数的数目&#xff1a;上下界数位DP 力扣题目链接&#xff1a;https://leetcode.cn/problems/count-the-number-of-powerful-integers/ 给你三个整数 start &#xff0c;finish 和 limit 。同时给你一个下标从 0 开始的字符串 s &#xff0c;表示一…...

具身导航中的视觉语言注意力蒸馏!Vi-LAD:实现动态环境中的社会意识机器人导航

作者&#xff1a;Mohamed Elnoor 1 ^{1} 1, Kasun Weerakoon 1 ^{1} 1, Gershom Seneviratne 1 ^{1} 1, Jing Liang 2 ^{2} 2, Vignesh Rajagopal 3 ^{3} 3, and Dinesh Manocha 1 , 2 ^{1,2} 1,2单位&#xff1a; 1 ^{1} 1马里兰大学帕克分校电气与计算机工程系&#xff0c; 2…...

FreeRTOS入门与工程实践-基于STM32F103(一)(单片机程序设计模式,FreeRTOS源码概述,内存管理,任务管理,同步互斥与通信,队列,信号量)

裸机程序设计模式 裸机程序的设计模式可以分为&#xff1a;轮询、前后台、定时器驱动、基于状态机。前面三种方法都无法解决一个问题&#xff1a;假设有A、B两个都很耗时的函数&#xff0c;无法降低它们相互之间的影响。第4种方法可以解决这个问题&#xff0c;但是实践起来有难…...

算法思想之位运算(二)

欢迎拜访&#xff1a;雾里看山-CSDN博客 本篇主题&#xff1a;算法思想之位运算(二) 发布时间&#xff1a;2025.4.13 隶属专栏&#xff1a;算法 目录 滑动窗口算法介绍六大基础位运算符常用模板总结 例题判定字符是否唯一题目链接题目描述算法思路代码实现 汉明距离题目链接题目…...

软考笔记day04

寻址方式 CISC RISC 流水线技术 存储系统 1、层次化存储系统 2、Cache 3、主存编址计算 输入输出技术 I/O 总线...

本地电脑如何连接windows云服务器

进行远程连接需要几个数据&#xff1a;用户名、密码、公网IP 打开本地cmd&#xff0c;输入命令mstsc打开远程连接面板&#xff0c; 在计算机输入框中输入云服务器的IP地址 点击“选项”展开&#xff0c;点击“本地资源”&#xff0c;然后点击“详细信息” 用户名通常为admin…...

Linux内核常见的调度策略

在 Linux 内核中&#xff0c;调度策略决定了任务如何被分配 CPU 时间以及任务之间的优先级关系。以下是五种常见的调度策略&#xff1a;STOP、DL&#xff08;Deadline&#xff09;、RT&#xff08;Real-Time&#xff09;、CFS&#xff08;Completely Fair Scheduler&#xff09…...

【Linux】进程优先级、进程切换、进程调度

Linux 1.进程优先级1.基本概念2.查看进程1.UID2.PRI、NI3.修改优先级&#xff08;PRI&#xff09; 3.竞争、独立、并行、并发 2.进程切换3.进程调度1.活动队列2.过期队列3.active、expired指针 1.进程优先级 1.基本概念 优先级&#xff1a;进程得到 CPU 资源分配的先后顺序。优…...

HCIP第十二天

LSA --- 链路状态通告 链路状态类型&#xff0c;链路状态ID&#xff0c;通告路由器 --- LSA的三元组 --- 可以唯一的标识出一条LSA Type --- OSPFv2中&#xff0c;常见的需要掌握LSA有6种 LS ID --- LSA的名字 --- 因为每一种LSA LS ID的生成方式都不相同&#xff0c;所以&am…...

Magnet Pro Macbook窗口分屏管理软件【提高效率工具】

Magnet Pro Macbook窗口分屏管理软件【提高效率工具】 一、介绍 Magnet Pro for Mac&#xff0c;是一款功能强大的窗口分屏管理软件&#xff0c;具有多种布局模式、窗口布局功能和其他工具&#xff0c;可以帮助您高效地进行多任务处理和管理工作。 拖动窗口到边缘&#xff0c…...

控制单元(Control Unit, CU)

一、控制单元的定义与核心作用 控制单元 是 CPU 的核心部件之一&#xff0c;负责 解析指令、生成控制信号 并 协调各硬件部件 的工作时序&#xff0c;确保指令按预定流程正确执行。 核心定位&#xff1a;计算机系统的“指挥中心”&#xff0c;通过控制总线与运算器、存储器、…...

JavaWeb 课堂笔记 —— 10 MySQL DML + DQL

本系列为笔者学习JavaWeb的课堂笔记&#xff0c;视频资源为B站黑马程序员出品的《黑马程序员JavaWeb开发教程&#xff0c;实现javaweb企业开发全流程&#xff08;涵盖SpringMyBatisSpringMVCSpringBoot等&#xff09;》&#xff0c;章节分布参考视频教程&#xff0c;为同样学习…...

基于 LSTM 的多特征序列预测-SHAP可视化!

往期精彩内容&#xff1a; 单步预测-风速预测模型代码全家桶-CSDN博客 半天入门&#xff01;锂电池剩余寿命预测&#xff08;Python&#xff09;-CSDN博客 超强预测模型&#xff1a;二次分解-组合预测-CSDN博客 VMD CEEMDAN 二次分解&#xff0c;BiLSTM-Attention预测模型…...

【C++】哈希扩展海量数据处理

目录 位图 位图面试题 C库中的位图bitset 位图优缺点 位图相关题目 布隆过滤器 布隆过滤器的介绍 布隆过滤器的应用 海量数据处理 位图 位图面试题 1.给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0c;如何快速判断一个整数是否在这40亿…...

考研数据结构精讲:数组与特殊矩阵的压缩存储技巧(包含真题及解析)

考研数据结构精讲&#xff1a;数组与特殊矩阵的压缩存储技巧 一、数组基础概念 1.1 数组的定义 数组是由相同数据类型的元素构成的有限序列&#xff0c;具有以下核心特性&#xff1a; 维度特性&#xff1a;支持一维到多维结构&#xff08;常见二维数组&#xff09;随机访问…...

【Android】ContentResolver的使用

在 Android 中&#xff0c;ContentResolver 是一个非常重要的类&#xff0c;它提供了与 ContentProvider 进行交互的方法。ContentProvider 是用于在不同应用程序之间共享数据的标准接口&#xff0c;而 ContentResolver 则是从客户端&#xff08;如 Activity 或 Service&#x…...

Python 的 collections 模块

1. deque (双端队列) 定义 deque&#xff08;读作 “deck”&#xff0c;即双端队列&#xff09;是一个支持从两端高效添加和删除元素的数据结构。相比列表&#xff08;list&#xff09;在头部操作的 O(n) 时间复杂度&#xff0c;deque 的两端操作都是 O(1)。 用途 队列和栈…...

浏览器发起调用到服务器的全过程解析

在 Web 应用的交互过程中&#xff0c;从用户在浏览器输入 URL 发起请求&#xff0c;到最终获取服务器返回的内容&#xff0c;背后涉及多个复杂而有序的步骤。理解这一过程&#xff0c;对于深入掌握 Web 开发、优化应用性能以及排查网络问题都具有重要意义。下面将详细阐述浏览器…...

塑料瓶识别分割数据集labelme格式976张1类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数)&#xff1a;976 标注数量(json文件个数)&#xff1a;976 标注类别数&#xff1a;1 标注类别名称:["Trash plastic"] 每个类别标注的框数…...

RuoYi-Vue升级为https访问-后端安装SSL证书(单台Linux服务器部署)

一、前言 当Nginx已经作为反向代理并成功配置了SSL证书时,前端客户端与Nginx的通信已经是加密的。但Nginx和后端服务之间的连接可能仍然存在明文传输的风险。 如果Nginx和后端服务位于同一台物理机器或者通过安全的内部网络(如私有VLAN或防火墙保护的内网)进行通信,则可以…...

【学习笔记】文件上传漏洞--中间件解析漏洞、编辑器安全

目录 一、IIS 二、Apache HTTP Server 三、Apache HTTPD 未知后缀解析漏洞 四、Apache HTTPD 换行解析漏洞 五、黑、白名单 六、nginx解析漏洞 七、编辑器漏洞 一、IIS 文件夹 正常&#xff1a;image/qq.jpg 执行&#xff1a;image.asp/qq.jpg qq.jpg就会被当做asp解…...

【论文阅读】UniAD: Planning-oriented Autonomous Driving

一、Introduction 传统的无人驾驶采用了区分子模块的设计&#xff0c;即将无人驾驶拆分为感知规划控制三个模块&#xff0c;这虽然能够让无人驾驶以一个很清晰的结构实现&#xff0c;但是感知的结果在传达到规划部分的时候&#xff0c;会导致部分信息丢失&#xff0c;这势必会…...

【第16届蓝桥杯C++C组】--- 数位倍数

Hello呀&#xff0c;小伙伴们&#xff0c;第16届蓝桥杯也完美结束了&#xff0c;无论大家考的如何&#xff0c;都要放平心态&#xff0c;今年我刚上大一&#xff0c;也第一次参加蓝桥杯&#xff0c;刷的算法题也只有200来道&#xff0c;但是还是考的不咋滴&#xff0c;但是拿不…...

【腾讯云智】20250329笔试算法题

文章目录 第一题1. 题目描述2. 思路解析3. AC代码 第二题1. 题目描述2. 思路解析3. AC代码 第三题1. 题目描述2. 思路解析3. AC代码 第一题 1. 题目描述 题目链接&#xff1a;牛牛的水果店 2. 思路解析 这题比较简单&#xff0c;按数学思维把题目的意思翻译过来就是给你一…...

【2025最新】windows本地部署LightRAG,完成neo4j知识图谱保存

之前在服务器部署neo4j失败&#xff0c;无奈只能在本地部署&#xff0c;导致后期所有使用的知识图谱数据都存在本地&#xff0c;这里为了节省时间&#xff0c;先在本地安装LigthRAG完成整个实验流程&#xff0c;后续在学习各种服务器部署和端口调用。从基础和简单的部分先做起来…...

思考力提升的黄金标准:广度、深度与速度的深度剖析

文章目录 引言一、广度的拓展&#xff1a;构建多元知识网络1.1 定义与重要性1.2 IT技术实例与提升策略小结&#xff1a;构建多元知识网络&#xff0c;提升IT领域思考力广度 二、深度的挖掘&#xff1a;追求知识的精髓2.1 定义与重要性2.2 IT技术实例与提升策略小结&#xff1a;…...

7个向量数据库对比:Milvus、Pinecone、Vespa、Weaviate、Vald、GSI 和 Qdrant

7个向量数据库对比&#xff1a;Milvus、Pinecone、Vespa、Weaviate、Vald、GSI 和 Qdrant 本文简要总结了当今市场上正在积极开发的7个向量数据库&#xff0c;Milvus、Pinecone、Vespa、Weaviate、Vald、GSI 和 Qdrant 的详细比较。 我们已经接近在搜索引擎体验的基础层面上涉…...

计算机组成原理笔记(十五)——3.5指令系统的发展

不同类型的计算机有各具特色的指令系统&#xff0c;由于计算机的性能、机器结构和使用环境不同&#xff0c;指令系统的差异也是很大的。 3.5.1 x86架构的扩展指令集 x86架构的扩展指令集是为了增强处理器在多媒体、三维图形、并行计算等领域的性能而设计的。这些扩展指令集通…...

Rust 中的Relaxed 内存指令重排演示:X=0 Y=0 是怎么出现的?

&#x1f525; Rust 中的内存重排演示&#xff1a;X0 && Y0 是怎么出现的&#xff1f; 在并发编程中&#xff0c;我们经常会听说“内存重排&#xff08;Memory Reordering&#xff09;”这个术语&#xff0c;但它似乎总是只出现在理论或者别人口中的幻觉里。本文将通过…...

vp 2023 icpc 合肥 解题补题记录 [F E J G]

gym 链接: https://codeforces.com/gym/104857 F. Colorful Balloons 血签, 用 map 存一下每个颜色气球出现的次数, 找出出现次数大于一半的颜色. #include<bits/stdc.h> using namespace std;#define int long long #define endl \nsigned main() {int n;cin >> …...

学习SqlSugar的跨库查询基本用法

使用SqlSugar操作数据库通常都是单库操作&#xff0c;跨库查询的情况要么是单个系统数据不完整&#xff0c;需要其它系统的关联业务数据支撑&#xff0c;要么就是需要整合汇总多个系统的数据进行数据数据分析、处理、展示。遇到上述情况&#xff0c;可以要求另外的系统提供查询…...