这里给出摘要:
- 你可以获取设备一些不变的信息,如设备名,屏幕的组织(平面,象素,...)对应内存区 的长度和起始地址。
- 也可以获取能够发生变化的信息,例如位深,颜色格式,时序等。如果你改变这些值, 驱动程序将对值进行优化,以满足设备特性(返回EINVAL,如果你的设定,设备不支持)
- 你也可以获取或设定部分颜色表。
所有这些特性让应用程序十分容易的使用设备。X server可以使用/dev/fb*而不需知道硬件的寄存器是如何组织的。 XF68_FBDev是一个用于位映射(单色)X server,唯一要做的就是在应用程序在相应的位置设定是否显示。
在新内核中,帧缓冲设备可以工作于模块中,允许动态加载。这类驱动必须调用register_framebuffer()在系统中注册。使用模块更方便!
1.framebuffer在操作系统中处于什么位置 第2页呢?framebuffer属于驱动层
驱动和应用中间? 同上
和framebuffer一级的还有什么技术?
也就是说在开发一个系统的时候除了framebuffer还有什么别的选择?
独一无二,其他的选择功能就不完全一样了, 当然看你具体要实现什么, 可能你要实现的那个功能也是用其他方法可以实现的.
2.我们在开发一个新系统的时候如果想要用framebuffer的话,是否还需要自己写相关显示芯片基于framebuffer的驱动呢?
在Linux系统中有通用framebuffer驱动vesafb, 也有各自芯片的framebuffer, 芯片的framebuffer一般都有其加速功能, 当然vesafb对某些显示芯片也有加速功能. 自己写你必须要有技术资料,否则写出来的就是类似vesafb了.
那么如果我的芯片本身支持一些加速的特殊处理,在freambuffer中怎么体现?
根据技术资料来处理, 一般都是些寄存器的操作吧.
3.如何知道显示芯片是否支持framebuffer的操作?
一般都支持
选择framebuffer时候需要注意什么?
有相应的则使用相应的, 如果没有选择vesafb
怎样知道自己的系统是否适合使用framebuffer呢?
在内核中可以看到有没有你显卡型号的framebuffer,在 make menuconfig中查找, 如果有看到选上就是, 对应的内核目录为linux-2.6.*/drivers/video/