data=*(vu32*)addr;的理解?
首先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;的理解?相关推荐
- I2C_ADDRS(addr, addrs...)理解
IIC驱动中的宏定义: /* Internal numbers to terminate lists */ #define I2C_CLIENT_END 0xfffeU /* Construct an ...
- 数据中心Data Center——学习与理解
数据中心 大型数据中心示意图 数据中心相关概念 对数据中心发展及现有理解 传统数据中心概述 现代数据中心概述 为什么需要大二层? 那么又为什么非要实现虚拟机的热迁移呢? 传统网络的二层为什么大不起来? ...
- 【stm32f407】flash编程
一.Flash介绍 不同型号的STM32F40xx/41xx,其FLASH容量也有所不同,最小的只有128K字节,最大的则达到了1024K字节.STM32F4的FLASH容量为1024K字节,如参考手 ...
- HAL库内部flash及IAP(boot)升级
1.内部flash的用法 1.闪存模块存储器组织(STM32F407) STM32的闪存模块由:主存储器.系统存储器.OPT区域和选项字节等4部分组成.如下图所示: 1.主储存器(flash):有11 ...
- STM32之内部FLASH原理
不同型号的 STM32,其 FLASH 容量也有所不同,最小的只有 16K 字节,最大的则达到了 1024K 字节.市面上 STM32F1 开发板使用的芯片是 STM32F103系列,其 FLASH ...
- stm32f4内部flash讲解
基础简介 不同芯片内部的flah大小不同,stm32f407内部flah是1M(1024K)大小,其结构划分如图所示: STM32F4 的闪存模块由:主存储器.系统存储器. OPT 区域和选项字节等 ...
- (39)STM32——FLASH闪存
目录 学习目标 成果展示 介绍 组成 主存储器 系统存储器 OTP 区域 选项字节 读取 编程 寄存器 步骤 擦除 扇区擦除 批量擦除 寄存器 代码 总结 学习目标 本节我们要来介绍一下关于FLASH ...
- STM32最小板完成音频数据的读取与DAC播放
目录 一.Flash简单介绍 1.Flash操作流程与操作选址 1.1.Flash操作流程 1.2 .如何查找并选定要写入Flash十六进制地址 2.Flash读写等相关原理 2.1.闪存的读取 2. ...
- STM32F103C8T6的flash读写
目录 一.原理 二.使用cubeMX创建工程 三.编译运行调试 四.总结 五.参考资料 一.原理 STM32F1 的闪存(Flash)模块由:主存储器.信息块和闪存存储器接口寄存器等 3 部分组成.下 ...
最新文章
- c语言程序竞赛,2015年江西理工大学C语言程序设计竞赛(初级组)
- CUDA 纹理的使用
- Linux 环境下 jdk1.8 maven3.2.3 Git2.8.0 安装脚本
- php计算一段时间工作日,PHP计算8小时工作日的一半
- python函数主要通过接口与外界通信_PySpark源码解析,用Python调用高效Scala接口,搞定大规模数据分析...
- .net 时间操作(datetime数据类型,datetime方法)
- 优学院java架构52破解_2021年优学院Java程序设计(山西工程职业学院)课后习题答案...
- 2016北航计算机学院研究生院,北京航空航天大学2016年计算机考研分数线_北京航空航天大学考研复试分数线...
- My Thirty-Second Page - 对称二叉树 - By Nicolas
- 怎么将PDF文件转换成Word文档?
- 谷歌又放大招 Disco Diffusion!AI生成超高质量绘画!
- python实现四种基本图形的面积计算 :圆形,长方形,正方形,梯形。
- java 根据pdf模板表单生成对应pdf(用于荣誉证书等生成)
- Word在试图打开文件时遇到错误。 请尝试下列方法: 检查文档或驱动器的文件权限。 确保有足够的内存和磁盘空间。 用文本恢复转换器打开文件。
- 【阅读】阅读软件Calibre以及电子书下载地址
- 关于win10连网显示“网络使用较旧的安全标准。建议连接到其他网络”的解决方法
- 菜鸟获取CSDN积分技巧
- iOSnbsp;nbsp;常用代码
- 桥接路由器总是掉线_Win7系统下tl-wr886n无线桥接上网总掉线如何解决
- C语言学习二:VS的使用