首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

关于DSP程序中宏定义#define 以及 volatile的用法分析

关于DSP程序中宏定义#define 以及 volatile的用法分析

初学DSP者,经常会在DSP程序中发现类似如下面的程序的写法,很多同学不是很懂,今天在这里,给大家简要分析一下
程序
  • #define GPIO01           *( volatile Uint32* )( GPIO_BASE + 0x34 )

复制代码
这是什么用法?

这里使用的是宏定义,具体用法估计都懂吧,不会的请查看C语言相关内容;
也就是说 这句可以改成这样
  • #define GPIO-01           *( volatile Uint32* )( GPIO_BASE + 0x34 )

复制代码
或者 #define hello      *( volatile Uint32* )( GPIO_BASE + 0x34 ) 等等

意思都是一样的;
下面我们来说说这句的意思
  • #define GPIO01           *( volatile Uint32* )( GPIO_BASE + 0x34 )

复制代码
意思是 GPIO01等于地址( GPIO_BASE + 0x34 )的值;

即GPIO01 就是一个对( GPIO_BASE + 0x4 )进行强制转换成( volatile Uint32* )类型的指针,再用“*”取这个地址的内容;

如此我们在编写程我需要对地址 GPIO_BASE + 0x34赋值的话,只需这样写 "GPIO01=0x1234;"(不包含"")
继承事业,薪火相传
返回列表