Wince下GetTickCount函数不能再计时的原因
来源:互联网 发布:知乎 朱炫出新书 编辑:程序博客网 时间:2024/06/05 19:21
这几天遇到了一个怪现象,有段代码有用到GetTickCount函数,但代码执行一直不是自己想要的结果;追踪代码发现GetTickCount函数压根就没有再计时,前后两句GetTickCount函数居然读到的时间是一样的。
通过分析BSP的一些相关代码发现,GetTickCount函数能够正确运行是依赖一个定时器中断的,而这段代码正好把这个IRQ形式的定时器中断关掉了,所以造成了GetTickCount函数不能再计时的现象。一般看IRQ的中断处理函数OEMInterruptHandler就可以发现这一点,跟OALTimerIntrHandler()函数有关的Timer定时器处理分支就是系统用于GetTickCount函数的定时器,这个定时器的功能就是It provides 1ms time tick at any power mode except sleep mode。一般看BSP包里面的OALTimerInit( )函数也可以看到BSP包将使用那个定时器来做系统的1ms Tick Timer.
一般的BSP包里面有System_DisableIRQ( )/System_EnableIRQ( )/System_DisableFIQ( )/System_EnableFIQ( )这样的底层操作函数的。一般是用汇编语言写的函数,像我手头上用的BSP就是一个system.s汇编语言文件中定义了这些IRQ/FIQ的中断操作函数。
0 0
- Wince下GetTickCount函数不能再计时的原因
- GetTickCount函数计时置0的解决办法
- windows下面的GetTickCount计时函数
- clock、GetTickCount的计时
- GetTickCount() 函数的使用
- GetTickCount()函数的陷阱!
- linux下的GetTickCount
- Windows API一日一练(69)GetTickCount函数 计时函数
- Linux下的计时函数
- 毫秒级和纳秒级计时的API--timeGetTime、GetTickCount、QueryPerformanceCounter
- linux上的GetTickCount函数
- linux上的GetTickCount函数
- 关于GetTickCount函数的用法
- Linux上的GetTickCount函数
- windows下的精确计时函数
- linux下c++的计时函数
- wince下serlocaltime失效的原因
- wince sip输入法不能获取输入焦点的原因
- linux内核奇遇记之md源代码解读之十四raid5非条块内读
- Log4j的配置文件
- 对于HBuilder和appcan的比较
- 重写ColorDialog
- ASIHTTPRequest类库简介和使用说明
- Wince下GetTickCount函数不能再计时的原因
- Oracle数据库操作总是显示运行中无法成功,删除表时报错 resource busy and acquire with NOWAIT specified
- 【Unity 3D】学习笔记二十九:游戏实例——简单小地图制作
- heroku 简易中文教程
- windows7安装python、pip、virtualenv
- SQL Server + Oracle订阅发布
- Win7旗舰版中的IIS配置asp.net的运行环境
- Java Tutorial/Database/DatabaseMetadata
- 职责链模式+策略模式+反射,完美实现下机操作(一)