📄 写自己的frame buffer device driver - ~ 悠悠风信子 ~ - csdnblog.htm
字号:
width=15 border=0> 写自己的frame buffer device driver </A></DIV>
<DIV class=postText>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan"
align=left><SPAN>准备开始写我们自己的驱动之前,请详细阅读如下文件:<SPAN></SPAN></SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan"
align=left><EM><SPAN>\Documentation\fb</SPAN></EM><SPAN>目录<SPAN> </SPAN></SPAN><STRONG><SPAN>vesafb.txt</SPAN></STRONG><STRONG><SPAN>,<SPAN>matroxfb.txt</SPAN>,<SPAN>sa1100fb.txt</SPAN></SPAN></STRONG><STRONG><SPAN><BR></SPAN></STRONG><EM><SPAN>\drivers\video</SPAN></EM><SPAN>目录<SPAN> </SPAN></SPAN><STRONG><SPAN>fbmem.c</SPAN></STRONG><STRONG><SPAN>,<SPAN>fbgen.c</SPAN>,<SPAN>fbmon.c</SPAN>,<SPAN>fbcmap.c</SPAN></SPAN></STRONG><STRONG><SPAN><BR></SPAN></STRONG><STRONG><SPAN> skeletonfb.c</SPAN></STRONG><STRONG><SPAN><BR></SPAN></STRONG><STRONG><SPAN> vesafb.c</SPAN></STRONG><STRONG><SPAN>,<SPAN>sa1100fb.c</SPAN>,<SPAN>sa1100fb.h</SPAN></SPAN></STRONG><SPAN><BR></SPAN><EM><SPAN>include\linux</SPAN></EM><SPAN>目录<SPAN> </SPAN></SPAN><STRONG><SPAN> fb.h</SPAN></STRONG><SPAN></SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan"
align=left><SPAN>最值得关注的是</SPAN><STRONG><SPAN><FONT
face="Times New Roman">skeletonfb.c</FONT></SPAN></STRONG><STRONG><SPAN>,</SPAN></STRONG><SPAN>该文件给出了一个</SPAN><SPAN><FONT
face="Times New Roman">fb device </FONT></SPAN><SPAN>驱动的框架</SPAN><SPAN></SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan"
align=left><SPAN>准备好了,就开始写自己的</SPAN><SPAN><FONT
face="Times New Roman">fram buffer device driver</FONT></SPAN><SPAN>:)</SPAN><SPAN></SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN>还是要补充点,下面是<SPAN>/linux/fb.h</SPAN>的部分注释,加粗的是常用的,红色是关键的,一般不可少。旁边没有汉字,要么很简单没必要加注,要么就用不到!</SPAN><SPAN></SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN>注释:<SPAN><A
href="mailto:good02xaut@hotmail.com"><SPAN>good02xaut@hotmail.com</SPAN></A></SPAN></SPAN><SPAN></SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN>#ifndef _LINUX_FB_H</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN>#define _LINUX_FB_H</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN><FONT
face="Times New Roman"></FONT></SPAN> </P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN>#include <linux/tty.h></SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN>#include <asm/types.h></SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN><FONT
face="Times New Roman"></FONT></SPAN> </P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN>/* Definitions of frame buffers<SPAN> </SPAN>*/</SPAN><SPAN></SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">#define FB_MAJOR<SPAN> </SPAN>29<SPAN> </SPAN>/*</SPAN><SPAN
style="COLOR: red">主设备号<SPAN>*/</SPAN></SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">#define FB_MAX<SPAN> </SPAN>32<SPAN> </SPAN>/* sufficient for now */</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN></SPAN> </P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN>/* ioctls</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN><SPAN> </SPAN>0x46 is 'F'<SPAN> </SPAN>*/</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">#define FBIOGET_VSCREENINFO<SPAN> </SPAN>0x4600</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">#define FBIOPUT_VSCREENINFO<SPAN> </SPAN>0x4601</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">#define FBIOGET_FSCREENINFO<SPAN> </SPAN>0x4602</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">#define FBIOGETCMAP<SPAN> </SPAN>0x4604</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">#define FBIOPUTCMAP<SPAN> </SPAN>0x4605</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">#define FBIOPAN_DISPLAY<SPAN> </SPAN>0x4606</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">/* 0x4607-0x460B are defined below */</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">/* #define FBIOGET_MONITORSPEC<SPAN> </SPAN>0x460C */</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">/* #define FBIOPUT_MONITORSPEC<SPAN> </SPAN>0x460D */</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">/* #define FBIOSWITCH_MONIBIT<SPAN> </SPAN>0x460E */</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">#define FBIOGET_CON2FBMAP<SPAN> </SPAN>0x460F</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">#define FBIOPUT_CON2FBMAP<SPAN> </SPAN>0x4610</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">#define FBIOBLANK<SPAN> </SPAN>0x4611<SPAN> </SPAN>/* arg: 0 or vesa level + 1 */</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">#define FBIOGET_VBLANK<SPAN> </SPAN>_IOR('F', 0x12, struct fb_vblank)</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">#define FBIO_ALLOC<SPAN> </SPAN>0x4613</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">#define FBIO_FREE<SPAN> </SPAN>0x4614</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">#define FBIOGET_GLYPH<SPAN> </SPAN>0x4615</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">#define FBIOGET_HWCINFO<SPAN> </SPAN>0x4616</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">#define FBIOPUT_MODEINFO<SPAN> </SPAN>0x4617</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">#define FBIOGET_DISPINFO<SPAN> </SPAN>0x4618</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN style="COLOR: red"></SPAN> </P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN style="COLOR: red"></SPAN> </P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN
style="COLOR: red">#define FB_TYPE_PACKED_PIXELS<SPAN> </SPAN>0<SPAN> </SPAN>/* Packed Pixels<SPAN> </SPAN>*/</SPAN></P>
<P
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -