大学生
最后登录1970-1-1
在线时间 小时
注册时间2016-2-5
|
最近在学习STemWin,用的429的开发板,第一次接触,没有老师指导感觉好难,很多代码都得不到解释,特别是LTDC和DMA2D的驱动问题。
首先想问的是在emWin里,第X层绘图和LTDC的第X层是不是指的同一块buff?或者说,在emWin里,是将几层混合完了直接送给LTDC的第1层,而LTDC的第0层不需要考虑数据的更新?
第二点就是各种驱动的编写,到底是怎样的流程,现在看到好多版本的驱动,写法都不一样。
还有就是在这个《06. emWin_touch_V5.28_ARGB1555》工程中的源代码里,有这样一段代码
static void _LCD_CopyBuffer(int LayerIndex, int IndexSrc, int IndexDst)
{
U32 BufferSize, AddrSrc, AddrDst;
BufferSize =_GetBufferSize(LayerIndex); //800*480;
AddrSrc = _aAddr[LayerIndex] + BufferSize * IndexSrc;
AddrDst = _aAddr[LayerIndex] + BufferSize * IndexDst;
_DMA_Copy(LayerIndex, (void *)AddrSrc, (void *)AddrDst, _axSize[LayerIndex], _aySize[LayerIndex], 0, 0);
}
好像最终要将该函数用于emWin,但完全不懂那个IndexSrc和IndexDst,_aAddr[LayerIndex]好像是LTDC的显存,AddrSrc、AddrDst计算结果这两个都是LTDC显存的首地址+屏幕一层所占显存数的整数倍?这地址是不是应该由emWin来确定?
恳请老师解答。
最后希望老师们能够早点出点参考书,辛苦了
|
|