这几天遇到了一个麻烦的问题一直没解决,很闹心!
在使用嵌入式linux时,对同一个显示设备进行内存映射后(这里使用的是两次映射,一次是minigui库完成的,一次是自己完成的)。直接对显存进行操作(主要是进行画线,由于minigui画线效率很低)后,画面会出现闪烁的特征。这里我自己分析主要有这么几种原因:
1,由于画线前,要进行线性插值运算,可能由于插值算法的原因出现了抖动,而产生线条闪烁。但是在进行了非插值和改进插值算法的情况下都作了试验,闪烁效果还是在,所以我感觉不是插值引起闪烁。
2,由于显示帧速度不够,经过统计发现显示速率大概在25/秒。一般人的眼识别率在24/秒,所以也不是显示的问题。
3,由于对映射内存区域的修改没有及时的更新到文件产生,我在每刷一帧时加入了msync进行同步,效果还是不是很明显。
4,跟linux的内存映射机制有关,这个没搞明白,因为对统一设备映射两次,那么如果两个进程同时修改映射区域相同的内容是,系统是如何来进行更新的?覆盖?
头痛啊!!!!!
还有就是13806显示驱动的配置,怎么配也都和元太的LCD(640*480)不能很好的吻合,总是偏几个像素。@_@!!
1,由于画线前,要进行线性插值运算,可能由于插值算法的原因出现了抖动,而产生线条闪烁。但是在进行了非插值和改进插值算法的情况下都作了试验,闪烁效果还是在,所以我感觉不是插值引起闪烁。
2,由于显示帧速度不够,经过统计发现显示速率大概在25/秒。一般人的眼识别率在24/秒,所以也不是显示的问题。
3,由于对映射内存区域的修改没有及时的更新到文件产生,我在每刷一帧时加入了msync进行同步,效果还是不是很明显。
4,跟linux的内存映射机制有关,这个没搞明白,因为对统一设备映射两次,那么如果两个进程同时修改映射区域相同的内容是,系统是如何来进行更新的?覆盖?
头痛啊!!!!!
还有就是13806显示驱动的配置,怎么配也都和元太的LCD(640*480)不能很好的吻合,总是偏几个像素。@_@!!
将想法付诸于实践,借此来影响他人是一个人存在的真正价值