推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

AVR单片机GCC程序设计.

更新时间:2019-05-20 23:28:01 大小:5M 上传用户:sun2152查看TA发布的资源 标签:avr单片机gcc程序设计 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

AVR-GCC中如何使用volatile关键字

volatile的字面含义是易变的,那么将一个变量指示为volatile是什么意思呢?是告诉编译器这个变量是易变的?事实上也是如此。在多任务、中断等环境下,变量可能被其他的任务改变,而编译器无法发现,volatile就是告诉编译器这个变量在其它任务(或中断)中可能要修改。

使用volatile是与编译器优化有关系的。先看看下面的例子:

编译器没有生成gFlag=1的机器码,在优化过程中gFlag=1被忽略了。在一般的C程序中这是没有问题的,但是如果gFlag是个单片机I/O口变量那就麻烦了,本来想从/0口输出一逻辑正脉冲的程序就这样被编译器优化掉了,显然不是我们所希望的。这时候该怎么办呢?请拿出利剑volatile,他能处理我们所遇到的麻烦。

将unsigned char gFlag=0;该为volatile unsigned char gFlag=0;后编译所产生的汇编代码如下:


部分文件列表

文件名 大小
AVR单片机GCC程序设计.pdf 5M

【关注B站账户领20积分】

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载