大家好!
现在我们在dm365 的芯片做应用开发,现在发现在编制图片是能看到明显的绘制过程,请问有什么办法可以快速的显示图片,dm365有没有像内存的整体搬移之类的机制,还有在demo中看到有一个frame_copy的接口,这个接口能否用在osd上应用?
谢谢!
CrazyQin:
回复 VampireDaVinci:
嗯,用的就是sod模块…昨天调试程序,发现ti的fb0有2块内存(可能就是一块连续的内存,分2部分使用,需要打印一下内存地址再确认),在绘制图片的时候就绘制在“幕后”的一块内存中,然后dispay_put就显示了这块内存的内容,之前显示的那块内存就转移到了“幕后”。这样就可以快速的显示图片,不会出现明显的绘制过程的现象。但是又出现了另外一个现象,就是两块内存的交替显示,导致了2块内存的内容不一致…
CrazyQin:
回复 CrazyQin:
刚刚打印内存地址查看了一下,fb0的内存虽然是2块,但2块的内存大小是一致的,简单来说就是2维数组。关于2部分内存内容同步,我查看了demo程序,程序中是同一内容分别向2块内存各绘制了1次…我也试了两块内存的memcpy的过程,发现在每次mecpy都有20ms的操作时间…请问还有没有更好的方法…
VampireDaVinci:
回复 CrazyQin:
1. 数据量有多大?
2. 2块内存是Ping-Pong工作的是么?
3. 20ms确实有些大,显示的分辨率有多大?
CrazyQin:
回复 VampireDaVinci:
图片的大小为720 * 576。显示的分辨率为480p
从程序的表现的现象是ping-pong工作机制,因为我依次画5个小图片,每次绘制后我会sleep一下,但最后画布上只显示了3个,而且每个图片的坐标位置也是相隔一图片的大小,我想另外两个应该是在另外一块内存中。
另外,在创建display的时候,可以设置属性修改fb的内存数目,ti默认的参数为2 块内存,也就是说内存数目都是可设的。