避免软件延时被编译器优化
来源:互联网 发布:mina 收不到数据 编辑:程序博客网 时间:2024/05/30 02:25
在编译器中可以设置优化等级,在高优化等级下,软件延时会被优化,使得软件延时的时间间隔变短,如下所示,会被优化的代码,假设时钟周期是1us(1MHz),则安下面的程序,则延时估计会在1ms左右。但如果编译器设置了高优化等级,则下面的延时远没有1ms。
unsigned int repeatCount = 1000;
while (repeatCount--) ;
可以用下面的方法解决:
volatile unsigned int repeatCount = 1000;
while (repeatCount--) ;
在变量前面加关键词volatile就可以避免被优化,关于volatile的用法参见网上资料说明。
====
http://hi.baidu.com/my_father_110/item/7e0b2d296f146780af48f5b3
- 避免软件延时被编译器优化
- 自定义延时函数可防止被编译器优化
- 避免编译器优化的用法,Volatile的使用
- 编译器调整 避免出错
- 编译器优化
- 编译器优化
- 编译器优化
- DSP软件延时
- cc2541软件延时函数
- CC2540 IAR 最高优化下软件延时函数严重不准确解决方法
- 一种简单的软件延时
- IAR软件调试延时时间
- 1.Deferrable 延时校验(优化)
- timer的延时和优化
- 软件避免坑
- 代码优化--避免全局变量
- C 编译器优化(1)
- 眼见为实 编译器的优化
- Crawler Index Page
- ASP.NET MVC 4 Bundles
- tcl expect 安装
- 服务器端保存viewstate
- Win32串口编程
- 避免软件延时被编译器优化
- tlb tlh tli文件(COM)
- $@ 与 $*的区别
- 类集框架(二)
- [開發記錄] 函式庫調用 - GPIO控制 之二
- 创建静态库Cocoa Touch Static Library
- Java JDK 为什么要封装类?
- ORA-01589错误的解决过程
- Polyrate