野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9095|回复: 1

此地方的 volatile 关键字有必要吗?

[复制链接]
发表于 2022-1-10 11:47:41 | 显示全部楼层 |阅读模式
首先说明下,这个帖子发上来是想讨论下 volatile 关键字的用法.
与 STM32 本身无关.

在 DMA 的例程当中 (附图),在 DMA_Config 函数中,有一个变量 Timeout 使用了关键字 "__IO"
我搜索了下,这个关键字其实就是 "volatile"

这个关键字,我自己也理解一些,好像为了防止优化,当访问寄存器时经常用这个东西.

我的问题就是:
------------------
       在 DMA_Config 中的这个变量 Timeout 如果不使用 "__IO" 会不会存在问题?此处的 "__IO" 有没有必要?

谢谢.
QQ截图20220110114355.png
回复

使用道具 举报

发表于 2022-1-11 08:50:56 | 显示全部楼层
我觉得这个地方加上的话会更好。加上这个__IO本条指令不会因C 编译器的优化而被省略,做到每一次都去读值,实时读取timeout的值,从而能准确判断

评分

参与人数 1火花 +1 收起 理由
渣渣川 + 1

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 06:07 , Processed in 0.038136 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表