18.5 Linux 帧缓冲设备显示缓冲区的申请与释放
在嵌入式系统中,一种常见的方式是直接在 RAM (随机存取存储器)空间中分配一段显示缓冲区,典型结构如图 18.4 所示。
图18.4 在 RAM 中分配显示缓冲区
分析:
在分配显示缓冲区时一定要考虑cache的一致性问题,因为系统往往会通过DMA方式搬移数据,合适的方式是使用 dma_alloc_writecombine()函数分配一段writecombining区域,对应的 writecombining区域由dma_free_writecombine()函数释放,如代码清单18.10 所示。
writecombining 意味着“写合并”,它允许写入的数据被合并,并临时保存在写合并缓冲区(WCB)中,直到进行一次 burst 传输而不再需要多次 single 传输。通过 dma_alloc_