首先addr是一个32位的整形数据(比如是0x80040000),代表的是一个地址(地址一般都是32位的),(VU32*)就是把这个整数强制转换成一个指针(这个指针还是32位的,只不过它指向的数据是32位的),这个指针指向的地址里面存了一个类型为vu32的变量x,(vu32)addr就是把这个x赋值给data。

再来看另一个例子(怎么样通过寄存器的地址来操作寄存器,就是给寄存器赋值,下面这句话就可以操作寄存器):

很多时候我们会看到下面的宏定义

#define MEM_ADDR(addr) *((volatile unsigned long *)(addr))

这里的addr是一个寄存器的地址(其实地址就是一个32位的数值,比如0x80040000),要将它强制转化成一个指针(并且声明这个指针指向的内容是一个32位的long型变量)
用(unsigned long )(addr) 即可,这样就成了一个真正的有血有肉的地址了。
前面再加一个
号,就可以访问这个地址得到其中的变量值了。

在C语言中,unsigned char *p; 定义p为一个指向unsigned char的地址指针;而 *p=1;就是向这个指针指向的地址所存储的变量赋值为1了。
至于中间加一个volatile关键字,则指示编译器不要自作主张对此进行优化,必须每次老老实实地去直接访问这个地址!!!

data=*(vu32*)addr;的理解?相关推荐

  1. I2C_ADDRS(addr, addrs...)理解

    IIC驱动中的宏定义: /* Internal numbers to terminate lists */ #define I2C_CLIENT_END 0xfffeU /* Construct an ...

  2. 数据中心Data Center——学习与理解

    数据中心 大型数据中心示意图 数据中心相关概念 对数据中心发展及现有理解 传统数据中心概述 现代数据中心概述 为什么需要大二层? 那么又为什么非要实现虚拟机的热迁移呢? 传统网络的二层为什么大不起来? ...

  3. 【stm32f407】flash编程

    一.Flash介绍 不同型号的STM32F40xx/41xx,其FLASH容量也有所不同,最小的只有128K字节,最大的则达到了1024K字节.STM32F4的FLASH容量为1024K字节,如参考手 ...

  4. HAL库内部flash及IAP(boot)升级

    1.内部flash的用法 1.闪存模块存储器组织(STM32F407) STM32的闪存模块由:主存储器.系统存储器.OPT区域和选项字节等4部分组成.如下图所示: 1.主储存器(flash):有11 ...

  5. STM32之内部FLASH原理

    不同型号的 STM32,其 FLASH 容量也有所不同,最小的只有 16K 字节,最大的则达到了 1024K 字节.市面上 STM32F1 开发板使用的芯片是 STM32F103系列,其 FLASH ...

  6. stm32f4内部flash讲解

    基础简介 不同芯片内部的flah大小不同,stm32f407内部flah是1M(1024K)大小,其结构划分如图所示: STM32F4 的闪存模块由:主存储器.系统存储器. OPT 区域和选项字节等 ...

  7. (39)STM32——FLASH闪存

    目录 学习目标 成果展示 介绍 组成 主存储器 系统存储器 OTP 区域 选项字节 读取 编程 寄存器 步骤 擦除 扇区擦除 批量擦除 寄存器 代码 总结 学习目标 本节我们要来介绍一下关于FLASH ...

  8. STM32最小板完成音频数据的读取与DAC播放

    目录 一.Flash简单介绍 1.Flash操作流程与操作选址 1.1.Flash操作流程 1.2 .如何查找并选定要写入Flash十六进制地址 2.Flash读写等相关原理 2.1.闪存的读取 2. ...

  9. STM32F103C8T6的flash读写

    目录 一.原理 二.使用cubeMX创建工程 三.编译运行调试 四.总结 五.参考资料 一.原理 STM32F1 的闪存(Flash)模块由:主存储器.信息块和闪存存储器接口寄存器等 3 部分组成.下 ...

最新文章

  1. c语言程序竞赛,2015年江西理工大学C语言程序设计竞赛(初级组)
  2. CUDA 纹理的使用
  3. Linux 环境下 jdk1.8 maven3.2.3 Git2.8.0 安装脚本
  4. php计算一段时间工作日,PHP计算8小时工作日的一半
  5. python函数主要通过接口与外界通信_PySpark源码解析,用Python调用高效Scala接口,搞定大规模数据分析...
  6. .net 时间操作(datetime数据类型,datetime方法)
  7. 优学院java架构52破解_2021年优学院Java程序设计(山西工程职业学院)课后习题答案...
  8. 2016北航计算机学院研究生院,北京航空航天大学2016年计算机考研分数线_北京航空航天大学考研复试分数线...
  9. My Thirty-Second Page - 对称二叉树 - By Nicolas
  10. 怎么将PDF文件转换成Word文档?
  11. 谷歌又放大招 Disco Diffusion!AI生成超高质量绘画!
  12. python实现四种基本图形的面积计算 :圆形,长方形,正方形,梯形。
  13. java 根据pdf模板表单生成对应pdf(用于荣誉证书等生成)
  14. Word在试图打开文件时遇到错误。 请尝试下列方法: 检查文档或驱动器的文件权限。 确保有足够的内存和磁盘空间。 用文本恢复转换器打开文件。
  15. 【阅读】阅读软件Calibre以及电子书下载地址
  16. 关于win10连网显示“网络使用较旧的安全标准。建议连接到其他网络”的解决方法
  17. 菜鸟获取CSDN积分技巧
  18. iOSnbsp;nbsp;常用代码
  19. 桥接路由器总是掉线_Win7系统下tl-wr886n无线桥接上网总掉线如何解决
  20. C语言学习二:VS的使用

热门文章

  1. 网站建设的基本流程及服务端开发简介
  2. 分享一个SlideShare:《做卓有成效的程序员》
  3. 基于网络爬虫的负面信息搜集系统
  4. 解决Win10系统由于INF文件失效导致安卓MTP驱动安装失败的问题
  5. Android播放音频工具类
  6. SLAM基础 —— 视觉与IMU融合(VIO基础理论)
  7. c语言流动字体显示的程序,1602字符液晶显示屏程序详解(C语言详细解说)
  8. 文艺女青年成功转型为女汉子
  9. Java 获取昨天的日期
  10. Help 药盒_疯狂的设计