📄 lcd驱动程序往2_6_11内核移植 - ~ 悠悠风信子 ~ - csdnblog.htm
字号:
<TD style="WIDTH: 14%" align=middle>27</TD>
<TD style="WIDTH: 14%" align=middle>28</TD>
<TD style="WIDTH: 14%" align=middle>29</TD>
<TD style="WIDTH: 14%" align=middle>30</TD>
<TD style="WIDTH: 14%" align=middle>31</TD>
<TD class=CalOtherMonthDay style="WIDTH: 14%"
align=middle>1</TD></TR>
<TR>
<TD class=CalOtherMonthDay style="WIDTH: 14%"
align=middle>2</TD>
<TD class=CalOtherMonthDay style="WIDTH: 14%"
align=middle>3</TD>
<TD class=CalOtherMonthDay style="WIDTH: 14%"
align=middle>4</TD>
<TD class=CalOtherMonthDay style="WIDTH: 14%"
align=middle>5</TD>
<TD class=CalOtherMonthDay style="WIDTH: 14%"
align=middle>6</TD>
<TD class=CalOtherMonthDay style="WIDTH: 14%"
align=middle>7</TD>
<TD class=CalOtherMonthDay style="WIDTH: 14%"
align=middle>8</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<DIV class=left_title> 导航</DIV>
<UL class=list type=square>
<LI class=listitem><A class=mainmenu id=MyLinks1_csdnhome
href="http://www.csdn.net/">CSDN首页</A>
<LI class=listitem><A class=mainmenu id=MyLinks1_csdndev
href="http://dev.csdn.net/">CSDN技术中心</A>
<LI class=listitem><A class=mainmenu id=MyLinks1_HomeLink
title=到聚合站点 href="http://blog.csdn.net/">BLOG首页</A>
<LI class=listitem><A class=mainmenu id=MyLinks1_PersonalHome
title="访问 ~ 悠悠风信子 ~"
href="http://blog.csdn.net/youyoufengxinzi/">我的首页</A>
<LI><A id=MyLinks1_MyArticles title="查看 ~ 悠悠风信子 ~ 所有文章"
href="http://blog.csdn.net/youyoufengxinzi/MyArticles.aspx"
target=_blank>我的文章</A>
<LI class=listitem><A class=mainmenu id=MyLinks1_ContactLink
href="http://blog.csdn.net/youyoufengxinzi/contact.aspx">联系作者</A>
<LI class=listitem><A class=mainmenu id=MyLinks1_Syndication
href="http://blog.csdn.net/youyoufengxinzi/Rss.aspx">聚合</A> <A
id=MyLinks1_XMLLink
href="http://blog.csdn.net/youyoufengxinzi/Rss.aspx"><IMG
src="LCD驱动程序往2_6_11内核移植 - ~ 悠悠风信子 ~ - CSDNBlog.files/xml.gif"
border=0></A> <A id=MyLinks1_FeedLink
href="http://feeds.feedsky.com/csdn.net/youyoufengxinzi"
target=_blank><IMG
src="LCD驱动程序往2_6_11内核移植 - ~ 悠悠风信子 ~ - CSDNBlog.files/feedsky.gif"
border=0></A>
<LI class=listitem><A class=mainmenu id=MyLinks1_HyperLink5
href="http://search.csdn.net/search_blog.asp" target=_blank>搜索</A>
<LI class=listitem><A class=mainmenu id=MyLinks1_Admin
href="http://writeblog.csdn.net/">登录</A> </LI></UL>
<DIV class=blogStats>原创 - 26, 翻译 - 0, 转贴 - 0, 点击 - 3654, 评论 - 24,
Trackbacks -0 </DIV><SPAN id=RecentVisitors></SPAN>
<H3 class=listtitle>文章</H3>
<UL class=list>
<LI class=listitem><A
href="http://blog.csdn.net/youyoufengxinzi/category/280571.aspx">bmp</A><A
href="http://blog.csdn.net/youyoufengxinzi/category/280571.aspx/rss">(RSS)</A>
<LI class=listitem><A
href="http://blog.csdn.net/youyoufengxinzi/category/280476.aspx">framebuffer</A><A
href="http://blog.csdn.net/youyoufengxinzi/category/280476.aspx/rss">(RSS)</A>
<LI class=listitem><A
href="http://blog.csdn.net/youyoufengxinzi/category/280580.aspx">linux内核</A><A
href="http://blog.csdn.net/youyoufengxinzi/category/280580.aspx/rss">(RSS)</A>
<LI class=listitem><A
href="http://blog.csdn.net/youyoufengxinzi/category/281645.aspx">linux驱动</A><A
href="http://blog.csdn.net/youyoufengxinzi/category/281645.aspx/rss">(RSS)</A>
<LI class=listitem><A
href="http://blog.csdn.net/youyoufengxinzi/category/281906.aspx">常用</A><A
href="http://blog.csdn.net/youyoufengxinzi/category/281906.aspx/rss">(RSS)</A></LI></UL>
<H3 class=listtitle>收藏</H3>
<UL class=list></UL>
<H3 class=listtitle>相册</H3><!--category title-->
<UL class=list></UL>
<H3 class=listtitle>存档</H3>
<UL class=list>
<LI><A
href="http://blog.csdn.net/youyoufengxinzi/archive/2007/04.aspx">2007年04月(1)</A>
<LI><A
href="http://blog.csdn.net/youyoufengxinzi/archive/2007/03.aspx">2007年03月(4)</A>
<LI><A
href="http://blog.csdn.net/youyoufengxinzi/archive/2007/02.aspx">2007年02月(21)</A></LI></UL></TD></TR></TBODY></TABLE></TD>
<TD vAlign=top width="70%"
background="LCD驱动程序往2_6_11内核移植 - ~ 悠悠风信子 ~ - CSDNBlog.files/post_bg.gif">
<TABLE height=90 cellSpacing=0 cellPadding=5 width="100%" align=center
bgColor=white border=0>
<TBODY>
<TR>
<TD
background="LCD驱动程序往2_6_11内核移植 - ~ 悠悠风信子 ~ - CSDNBlog.files/post_bg.gif"><!--done-->
<DIV class=Tag>
<SCRIPT language=javascript
src="LCD驱动程序往2_6_11内核移植 - ~ 悠悠风信子 ~ - CSDNBlog.files/urltag.aspx"></SCRIPT>
<DIV style="CLEAR: both"></DIV></DIV><SPAN class=PreAndNext
id=viewpost.ascx_PreviousAndNextEntriesUp>
<DIV align=center><A
href="http://blog.csdn.net/youyoufengxinzi/archive/2007/02/27/1516248.aspx">上一篇: Writing
Linux LCD drivers </A> | <A
href="http://blog.csdn.net/youyoufengxinzi/archive/2007/02/27/1516241.aspx">下一篇: 关于Linux下的帧缓冲介绍</A></DIV></SPAN><BR>
<SCRIPT>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</SCRIPT>
<DIV class=post>
<DIV class=postTitle><A
href="http://blog.csdn.net/youyoufengxinzi/archive/2007/02/27/1516243.aspx"><IMG
height=13
src="LCD驱动程序往2_6_11内核移植 - ~ 悠悠风信子 ~ - CSDNBlog.files/authorship.gif"
width=15 border=0> LCD驱动程序往2.6.11内核移植</A> </DIV>
<DIV class=postText>
<P style="BACKGROUND: white"><FONT
size=2><SPAN>LCD</SPAN><SPAN><FONT
face=宋体>驱动程序往</FONT></SPAN><SPAN>2.6.11</SPAN><SPAN><FONT
face=宋体>内核</FONT></SPAN></FONT><SPAN><BR></SPAN><SPAN><FONT face=宋体
size=2>的移植总结</FONT></SPAN><SPAN><BR></SPAN><FONT size=2><SPAN><FONT
face=宋体>硬件环境:</FONT></SPAN><SPAN>SBC-2410X</SPAN><SPAN><FONT
face=宋体>开发板(</FONT></SPAN><SPAN>CPU</SPAN><SPAN><FONT
face=宋体>:</FONT></SPAN><SPAN>S3C2410X</SPAN><SPAN><FONT
face=宋体>)</FONT></SPAN></FONT><SPAN><BR></SPAN><SPAN><FONT face=宋体
size=2>内核版本:</FONT></SPAN><FONT
size=2><SPAN>2.6.11.1<BR></SPAN><SPAN><FONT
face=宋体>运行环境:</FONT></SPAN></FONT><FONT
size=2><SPAN>Debian2.6.8<BR></SPAN><SPAN><FONT
face=宋体>交叉编译环境:</FONT></SPAN></FONT><FONT
size=2><SPAN>gcc-3.3.4-glibc-2.3.3<BR></SPAN><SPAN><FONT
face=宋体>注:本驱动移植是基于</FONT></SPAN><SPAN>s3c2400 framebuffer </SPAN><FONT
face=宋体><SPAN>的驱动。</SPAN><SPAN></SPAN></FONT></FONT></P>
<P style="BACKGROUND: white"><FONT size=2><SPAN><FONT
face=宋体>一、从网上将</FONT></SPAN><SPAN>Linux</SPAN><SPAN><FONT
face=宋体>内核源代码下载到本机上,并将其解压:</FONT></SPAN></FONT><SPAN><BR><FONT
size=2>#tar jxf linux-2.6.11.1.tar.bz2<BR></FONT></SPAN><FONT
size=2><SPAN><FONT
face=宋体>二、打开内核顶层目录中的</FONT></SPAN><SPAN>Makefile</SPAN><SPAN><FONT
face=宋体>文件,这个文件中需要修改的内容包括以下两个方面。</FONT></SPAN></FONT><SPAN><BR></SPAN><FONT
size=2><SPAN><FONT face=宋体>(</FONT></SPAN><SPAN>1</SPAN><SPAN><FONT
face=宋体>)指定目标平台。</FONT></SPAN></FONT><SPAN><BR><FONT
size=2> </FONT></SPAN><SPAN><FONT face=宋体
size=2>移植前:</FONT></SPAN><SPAN><BR><FONT
size=2> ARCH ?= $(SUBARCH)<BR> </FONT></SPAN><SPAN><FONT
face=宋体 size=2>移植后:</FONT></SPAN><SPAN><BR><FONT
size=2> ARCH :=arm<BR></FONT></SPAN><FONT
size=2><SPAN><FONT face=宋体>(</FONT></SPAN><SPAN>2</SPAN><SPAN><FONT
face=宋体>)指定交叉编译器。</FONT></SPAN></FONT><SPAN><BR><FONT
size=2> </FONT></SPAN><SPAN><FONT face=宋体
size=2>移植前:</FONT></SPAN><SPAN><BR><FONT
size=2> CROSS_COMPILE ?=<BR> </FONT></SPAN><SPAN><FONT
face=宋体 size=2>移植后:</FONT></SPAN><SPAN><BR><FONT
size=2> CROSS_COMPILE :=/opt/crosstool/arm-s3c2410-linux-gnu/gcc-3.3.4-glibc-2.3.3/bin/arm-s3c2410-linux-gnu-<BR></FONT></SPAN><SPAN><FONT
face=宋体
size=2>注:这里假设编译器就放在本机的那个目录下。</FONT></SPAN><SPAN><BR></SPAN><SPAN><FONT
face=宋体
size=2>三、添加并修改驱动程序源代码,这涉及到以下几个方面。</FONT></SPAN><SPAN><BR></SPAN><FONT
size=2><SPAN><FONT face=宋体>(</FONT></SPAN><SPAN>1</SPAN><SPAN><FONT
face=宋体>)、将开发板配带的</FONT></SPAN><SPAN>LCD</SPAN><SPAN><FONT
face=宋体>驱动程序</FONT></SPAN><SPAN>s3c2400fb.c</SPAN><SPAN><FONT
face=宋体>、</FONT></SPAN><SPAN>s3c2400fb.h</SPAN><SPAN><FONT
face=宋体>源程序放到</FONT></SPAN><SPAN>drivers/video/</SPAN><SPAN><FONT
face=宋体>目录下,并修改名字为</FONT></SPAN><SPAN>s3c2410fb.c\s3c2400fb.h</SPAN><SPAN><FONT
face=宋体>。</FONT></SPAN></FONT><SPAN><BR><FONT
size=2>#cp s3c2400fb.c . drivers/video/s3c2410fb.c<BR></FONT></SPAN><FONT
size=2><SPAN><FONT face=宋体>(</FONT></SPAN><SPAN>2</SPAN><SPAN><FONT
face=宋体>)、在</FONT></SPAN><SPAN>s3c2410fb.c</SPAN><SPAN><FONT
face=宋体>驱动程序里面添加:</FONT></SPAN><SPAN>sbc_gpio_con_set()</SPAN><SPAN><FONT
face=宋体>、</FONT></SPAN><SPAN>sbc_gpio_pullup_set()</SPAN><SPAN><FONT
face=宋体>、</FONT></SPAN><SPAN>sbc_gpio_function_set()</SPAN><SPAN><FONT
face=宋体>的声明以及实现代码用以替代</FONT></SPAN><SPAN>2.4.18</SPAN><SPAN><FONT
face=宋体>代码中的</FONT></SPAN><SPAN>write_gpio_bit()</SPAN><SPAN><FONT
face=宋体>、</FONT></SPAN><SPAN>set_gpio_ctrl()</SPAN><SPAN><FONT
face=宋体>函数,因为在</FONT></SPAN><SPAN>2.4.18</SPAN><SPAN><FONT
face=宋体>中这两个函数都是用指针的方式对</FONT></SPAN><SPAN>CPU</SPAN><SPAN><FONT
face=宋体>寄存器进行设置,而在</FONT></SPAN><SPAN>2.6.11</SPAN><SPAN><FONT
face=宋体>的驱动程序里面用了</FONT></SPAN><SPAN>__raw_writel()</SPAN><SPAN><FONT
face=宋体>的方式对寄存器设置进行了封装。</FONT></SPAN></FONT><SPAN><BR></SPAN><FONT
size=2><SPAN><FONT
face=宋体>在驱动程序移植过程中由于是基于</FONT></SPAN><SPAN>S3C2400</SPAN><SPAN><FONT
face=宋体>的驱动,所以主要的修改工作就是根据所用开发板的硬件修改相应的寄存器的设置。</FONT></SPAN></FONT><SPAN><BR></SPAN><FONT
size=2><SPAN><FONT
face=宋体>主要的修改有:</FONT></SPAN><SPAN>s3c2410fb_mach_info</SPAN><SPAN><FONT
face=宋体>结构,这个结果主要定义了所用显示屏的一些信息,如时钟、大小等;修改</FONT></SPAN><SPAN>c2400fb_activate_var</SPAN><SPAN><FONT
face=宋体>函数中关于寄存器的设置,这个函数涉及到了</FONT></SPAN><SPAN>S3C2410 LCD</SPAN><SPAN><FONT
face=宋体>控制器的有关设置,这些寄存器的设置要根据所用的屏幕(</FONT></SPAN><SPAN>TFT/CSTN</SPAN><SPAN><FONT
face=宋体>)来进行设置;修改</FONT></SPAN><SPAN>s3c2400fb_set_controller_regs</SPAN><SPAN><FONT
face=宋体>和</FONT></SPAN><SPAN>s3c2400fb_lcd_init</SPAN><SPAN><FONT
face=宋体>函数,这个函数涉及到了</FONT></SPAN><SPAN>CPU</SPAN><SPAN><FONT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -