stm32(GD32,apm32),开优化后需要特别注意的地方

news2024/11/25 11:05:29

提到优化就不得不提及 volatile

使用场景
1:中断服务程序中修改的供其它程序检测的变量,需要加volatile; :
2:多任务环境下各任务间共享的标志,应该加volatile;
3:并行设备的硬件寄存器(如:状态寄存器)

还有一种就是今天遇到的查了半天,容易忘记

起因:
使用gd32F103cb来开发,然后采取i2c 协议操作eeprom,
调试eeprom写入的时候如图
在这里插入图片描述
延时2ms,在优化等级为O0的时候没问题,但是在等级为O3的时候经过调试发现,一直无法写入成功,因为我是采取TFDB方式来写入的,还以为移植TFDB出现了问题,最后直接通过调用最底层I2C 写入都失败,

让我们来看下这个延时函数的实现方法如下;
这个是我修改后的,加入了volatile
在这里插入图片描述
就是单纯的空运转,如果不加入关键字就会被优化掉,从而导致上述I2C的协议中延时出问题,最后导致因为协议问题无法写入eeprom。

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

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

相关文章

干货|数学建模必考的四大模型

数学建模国赛即将开始,小编总结近五年的数学建模ABC题题型,并根据题型总结建模常用的四大模型,如下: A题 一般A题偏物理方面,专业性更强,偏难,新手不建议选择A题,原因在于可能看不…

【ccf-csp题解】第1次csp认证-第四题-无线网络-题解

题目描述 思路讲解 可以把题目抽象为&#xff1a;从第1个点到第2个点&#xff0c;经过特殊点的数量不超过k的单源最短路径&#xff08;其中每条边的权重均为1&#xff09; 可以使用bfs解决这个问题&#xff0c;但是dist[][]数组和队列中放置的pair<int,int>元素不再是单…

【大魔王送书第二期】搞懂大模型的智能基因,RLHF系统设计关键问答

RLHF&#xff08;Reinforcement Learning with Human Feedback&#xff0c;人类反馈强化学习&#xff09;虽是热门概念&#xff0c;并非包治百病的万用仙丹。本问答探讨RLHF的适用范围、优缺点和可能遇到的问题&#xff0c;供RLHF系统设计者参考。 目录 RLHF是什么&#xff1f;…

京东API 接入说明(1688商品详情,关键字搜索商品等)

API地址:https://o0b.cn/anzexi 调用示例&#xff1a;https://api-gw.onebound.cn/jd/item_get/?keytest_api_key& &num_iid10335871600&&langzh-CN&secret 参数说明 通用参数说明 url说明 https://api-gw.onebound.cn/平台/API类型/ 平台&#xff1a;淘…

java修改版本不生效的解决办法

1、jdk安装使用了.exe文件直接运行安装&#xff0c;这个不用配置环境变量&#xff0c;惠子动生成运行的文件&#xff0c; 2、现象&#xff0c; 修改环境变量不生效 3、解决办法 dos命令页——>输入where java 将查到的文件按照路径删掉&#xff08;不要删除安装的文件&#…

docker笔记9:Docker-compose容器编排

目录 1.是什么&#xff1f; 2. 能干嘛&#xff1f; 3.去哪下&#xff1f; 4.安装步骤 ​编辑 5.卸载步骤 6.Compose核心概念 6.1概念 6.2 Compose常用命令 7.Compose编排微服务 7.1改造升级微服务工程docker_boot 7.2不用Compose 7.2.1 单独的mysql容器实例 7.3 …

[LeetCode周赛复盘] 第 112场双周赛20230903

[LeetCode周赛复盘] 第 112场双周赛20230903 一、本周周赛总结2839. 判断通过操作能否让字符串相等 I1. 题目描述2. 思路分析3. 代码实现 2840. 判断通过操作能否让字符串相等 II1. 题目描述2. 思路分析3. 代码实现 2841. 几乎唯一子数组的最大和1. 题目描述2. 思路分析3. 代码…

阻止 NTLM后无法登录远程桌面的原因

阻止 NTLM(NT LAN Manager) 攻击设置二 之前郑州景安的服务器被攻击&#xff0c;没过几天阿里云的也被攻击&#xff0c;且都是 NTLM 攻击。 Operating System: Windows Server 2008(R2) Enterprise Service Pack 1 64bit 一、winr 输入 gpedit.msc 二、依次进入&#xff1a;…

leetcode:268. 丢失的数字(python3解法)

难度&#xff1a;简单 给定一个包含 [0, n] 中 n 个数的数组 nums &#xff0c;找出 [0, n] 这个范围内没有出现在数组中的那个数。 示例 1&#xff1a; 输入&#xff1a;nums [3,0,1] 输出&#xff1a;2 解释&#xff1a;n 3&#xff0c;因为有 3 个数字&#xff0c;所以所有…

高效复用:RecyclerView内部嵌套横向列表时的优化技巧

背景 假设要实现下面的效果图&#xff1a; 如图所示&#xff0c;首先这是一个多样式的滑动列表&#xff08;截图里只列举了其中的3 种样式&#xff09;&#xff0c;整体外部使用 RecyclerView 来实现没什么疑问。那么截图第3个ItemView 中箭头指向的横向标签列表如何实现呢&am…

网络编程套接字 | 预备知识

在之后的文章中我们将来讲解网络编程中的相关知识点&#xff0c;再本文中我们首先来讲解一下网络编程中的预备知识&#xff1a; 预备知识 源IP地址和目的IP地址 在IP数据包中有两个IP地址分别是源IP地址和目的IP地址&#xff0c;此时这里就会出现一个问题就是&#xff1a;如…

Spring MVC 之MVC 体系结构、什么是SpringMVC

Spring MVC简介 MVC 体系结构三层架构MVC设计模式 Spring MVC 是什么&#xff1f;扩展知识Spring模块Data Access/Integration&#xff08;数据访问/集成&#xff09;Web&#xff08;网络层&#xff09;AOP&#xff08;面向切面&#xff09;Messaging&#xff08;消息传送&…

Invalid bound statement (not found): com.test.mapper.ItemsMapper.selectItems

分析原因 如下图&#xff0c;因为idea默认只会扫描resources目录下xml的文件&#xff0c;所有java目录下ItemsMapper.xml没有被扫描到&#xff0c;导致Invalid bound statement (not found): com.test.mapper.ItemsMapper.selectItems 解决办法 在pom文件中&#xff0c;增加…

【LeetCode-中等题】47. 全排列 II

文章目录 题目方法一&#xff1a;递归回溯去重 题目 相比较46题&#xff1a;不需要去重&#xff1a;【LeetCode-中等题】46. 全排列 需要做出的改变就是&#xff1a; 首先需要对待全排列的数组进行排序&#xff08;为去重操作做准备&#xff09; Arrays.sort(nums);//对数组…

Nacos Java SDK

概述部分 Maven 坐标 <dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId><version>${version}</version> </dependency>注意&#xff1a;由于Nacos Java SDK在2.0版本后引入了gRPC&am…

直播邀约|8个数字了解2023腾讯全球数字生态大会

2023腾讯数字生态大会&#xff0c;一起来看看吧~

NoSQL之Redis配置与优化(一)

关系数据库与非关系型数据库 &#xff1a; ●关系型数据库&#xff1a; 关系型数据库是一个结构化的数据库&#xff0c;创建在关系模型&#xff08;二维表格模型&#xff09;基础上&#xff0c;一般面向于记录。 SQL 语句&#xff08;标准数据查询语言&#xff09;就是一种基于…

软件工程:万字长文,说透常见的5种部署策略(文末有总结)

在软件工程中&#xff0c;最终的价值交付&#xff0c;都是要通过软件的部署上线来完成的。 那如何将新的或改进的软件功能交付给用户&#xff0c;同时还要确保高质量、稳定性和用户体验&#xff0c;选择适当的部署策略变得至关重要。 复杂软件工程中&#xff0c;新功能的部署…

GC Root

开章&#xff0c;不知道有没有小伙伴跟我一样&#xff0c;在快要毕业或者换工作的时候疯狂刷八股文&#xff0c;这样做有什么坏处呢 好多面试题自己都是靠死记硬背&#xff0c;这也是我们过后压根记不着这些内容的原因&#xff1b;每次面试问题需要自己反复去刷&#xff0c;甚…

C++初阶:C++入门

目录 一.iostream文件 二.命名空间 2.1.命名空间的定义 2.2.命名空间的使用 三.C的输入输出 四.缺省参数 4.1.缺省参数概念 4.2.缺省参数分类 4.3.缺省参数注意事项 4.4.缺省参数用途 五.函数重载 5.1.重载函数概念 5.2.C支持函数重载的原理--名字修饰(name Mangl…