📄 理解和使用linux的硬件抽象层hal - colorant的专栏 - csdn博客.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0061)http://blog.csdn.net/colorant/archive/2008/07/04/2611559.aspx -->
<HTML xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>理解和使用Linux的硬件抽象层HAL - colorant的专栏 - CSDN博客</TITLE>
<META content=彩色蚂蚁 name=author>
<META content=Csdn name=Copyright>
<META
content=说来惭愧,基于ARM平台的驱动做了这么长时间了,以前一直在kernel里面忙活,很少了解上层应用相关的发展,也没有接触过HAL和DBUS。因为最近做的项目上层是基于X86的软件框架来做,和以前的模式也有较大的变化,借此机会也想了解一下上层应用和底层驱动的配合和以前有什么不同,所以很自然的就需要了解Hal。记录一下自己的学习理解吧。
name=description>
<META http-equiv=Content-Type content="text/html; charset=utf-8"><LINK
href="http://profile.csdn.net/colorant/picture/1.ico" rel="Shortcut Icon"><LINK
media=all
href="理解和使用Linux的硬件抽象层HAL - colorant的专栏 - CSDN博客.files/Cogitation_1.css"
type=text/css rel=stylesheet><LINK media=all
href="理解和使用Linux的硬件抽象层HAL - colorant的专栏 - CSDN博客.files/csdn_favbykimi.css"
type=text/css rel=stylesheet>
<SCRIPT
src="理解和使用Linux的硬件抽象层HAL - colorant的专栏 - CSDN博客.files/jquery-1.2.3.pack.js"
type=text/javascript></SCRIPT>
<SCRIPT
src="理解和使用Linux的硬件抽象层HAL - colorant的专栏 - CSDN博客.files/jquery.highlighter.js"
type=text/javascript></SCRIPT>
<SCRIPT src="理解和使用Linux的硬件抽象层HAL - colorant的专栏 - CSDN博客.files/highlighter.js"
type=text/javascript></SCRIPT>
<LINK title=RSS href="http://feeds.feedsky.com/csdn.net/colorant"
type=application/rss+xml rel=alternate>
<META content="MSHTML 6.00.2900.3527" name=GENERATOR></HEAD>
<BODY id=defaultuser>
<DIV id=csdnblog_allwrap>
<FORM id=Form1 name=Form1 action=2611559.aspx method=post><INPUT
id=" __VIEWSTATE" type=hidden name=__VIEWSTATE>
<DIV id=csdnblog_midwrap>
<DIV id=csdnblog_header>
<H1><A id=Header1_HeaderTitle
href="http://blog.csdn.net/colorant/">colorant的专栏</A></H1>
<H2>彩色蚂蚁的Linux博客</H2>
<UL id=personalnav>
<LI><A href="http://hi.csdn.net/my.html" target=_blank>欢迎
zhenwenxian!</A></LI>
<LI><A href="http://writeblog.csdn.net/Signout.aspx">退出</A></LI>
<LI><A href="http://blog.csdn.net/zhenwenxian">我的博客</A></LI>
<LI><A href="http://writeblog.csdn.net/configure.aspx"
target=_blank>配置</A></LI>
<LI><A href="http://writeblog.csdn.net/PostEditPlain.aspx"
target=_blank>写文章</A></LI>
<LI><A href="http://writeblog.csdn.net/PostList.aspx"
target=_blank>文章管理</A></LI>
<LI><A href="http://blog.csdn.net/" target=_blank>博客首页</A></LI></UL>
<UL id=blogsearchsty>
<LI><INPUT class=bolgsearch id=inputSearch
onkeydown="return keyb(event)"></LI>
<LI class=selectsty><SELECT id=Search_ddlSearchScope
name=Search:ddlSearchScope><OPTION value=all selected>全站</OPTION><OPTION
value=colorant>当前博客</OPTION></SELECT></LI>
<LI><INPUT class=bolggobtn onclick=checkNull() type=button value=搜索></LI></UL>
<UL id=menu>
<LI><A href="http://hi.csdn.net/colorant">空间</A></LI>
<LI><A class=on href="http://blog.csdn.net/colorant">博客</A></LI>
<LI><A
href="http://hi.csdn.net/colorant/profile/contactlist/1.html">好友</A></LI>
<LI><A href="http://album.hi.csdn.net/" target=_blank>相册</A></LI>
<LI><A class=last
href="http://hi.csdn.net/colorant/profile/notebook/1.html">留言</A></LI></UL></DIV>
<DIV id=csdnblog_content>
<DIV class=gutter>
<DIV class=default_contents>
<DIV class=user_article>
<SCRIPT
src="理解和使用Linux的硬件抽象层HAL - colorant的专栏 - CSDN博客.files/LoadFeedbackCount.js"
type=text/javascript></SCRIPT>
<H1 class=title_txt><IMG height=16 alt=原创
src="理解和使用Linux的硬件抽象层HAL - colorant的专栏 - CSDN博客.files/authorship.gif" width=15
border=0> 理解和使用Linux的硬件抽象层HAL <CITE class=fav_csdnstylebykimi><A
class=fav_csdnstylebykimi title=收藏到我的网摘中,并分享给我的朋友
href="javascript:d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(saveit=window.open('http://wz.csdn.net/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'saveit','scrollbars=no,width=590,height=300,left=75,top=20,status=no,resizable=yes'));saveit.focus();">收藏</A></CITE></H1>
<DIV class=blogstory>
<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>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center"
align=center><STRONG><SPAN
style="FONT-SIZE: 18pt; FONT-FAMILY: 宋体; mso-font-kerning: 14.0pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">理解和使用</SPAN></STRONG><STRONG><SPAN
lang=EN-US
style="FONT-SIZE: 18pt; FONT-FAMILY: Arial; mso-font-kerning: 14.0pt">Linux</SPAN></STRONG><STRONG><SPAN
style="FONT-SIZE: 18pt; FONT-FAMILY: 宋体; mso-font-kerning: 14.0pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">的硬件抽象层</SPAN></STRONG><STRONG><SPAN
lang=EN-US
style="FONT-SIZE: 18pt; FONT-FAMILY: Arial; mso-font-kerning: 14.0pt">HAL
<O:P></O:P></SPAN></STRONG></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center"
align=center><FONT size=3><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">作者:刘旭晖</SPAN><SPAN
lang=EN-US><FONT face="Times New Roman"> Raymond</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">转载请注明出处</SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center"
align=center><FONT size=3><SPAN lang=EN-US><FONT
face="Times New Roman">Email</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">:</SPAN><SPAN
lang=EN-US><A href="mailto:colorant@163.com"><FONT face="Times New Roman"
color=#0000cc>colorant@163.com</FONT></A><FONT face="Times New Roman">
</FONT></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center"
align=center><FONT size=3><SPAN lang=EN-US><FONT
face="Times New Roman">BLOG</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">:</SPAN><SPAN
lang=EN-US><A href="http://blog.csdn.net/colorant/"><FONT
face="Times New Roman">http://blog.csdn.net/colorant/</FONT></A></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center"
align=center><FONT size=3><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">主页:</SPAN><SPAN
lang=EN-US><FONT
face="Times New Roman">http://rgbbones.googlepages.com/</FONT></SPAN></FONT></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><O:P><FONT
face="Times New Roman" size=3></FONT></O:P></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">说来惭愧,基于</SPAN><SPAN
lang=EN-US><FONT face="Times New Roman">ARM</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">平台的驱动做了这么长时间了,以前一直在</SPAN><SPAN
lang=EN-US><FONT face="Times New Roman">kernel</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里面忙活,很少了解上层应用相关的发展,也没有接触过</SPAN><SPAN
lang=EN-US><FONT face="Times New Roman">HAL</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</SPAN><SPAN
lang=EN-US><FONT face="Times New Roman">DBUS</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。因为最近做的项目上层是基于</SPAN><SPAN
lang=EN-US><FONT face="Times New Roman">X86</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的软件框架来做,和以前的模式也有较大的变化,借此机会也想了解一下上层应用和底层驱动的配合和以前有什么不同,所以很自然的就需要了解</SPAN><SPAN
lang=EN-US><FONT face="Times New Roman">Hal</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。记录一下自己的学习理解吧。</SPAN></FONT></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><FONT
size=3>本人的能力和测试时间有限,可能下文中有些理解、分析不一定准确,欢迎联系指正。</FONT></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><O:P><FONT
face="Times New Roman" size=3></FONT></O:P></SPAN></P>
<H1 style="MARGIN: 0cm 0cm 0pt 24.1pt"><SPAN lang=EN-US
style="mso-fareast-font-family: 'Times New Roman'"><SPAN
style="mso-list: Ignore"><FONT face="Times New Roman">1<SPAN
style="FONT: 7pt 'Times New Roman'"><FONT
size=6>
</FONT></SPAN></FONT></SPAN></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">相关说明</SPAN></H1>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><O:P><FONT
face="Times New Roman" size=3></FONT></O:P></SPAN></P>
<H2 style="MARGIN: 0cm 0cm 0pt 31.2pt"><SPAN lang=EN-US
style="mso-fareast-font-family: 'Times New Roman'"><SPAN
style="mso-list: Ignore"><FONT face="Times New Roman">1.1<SPAN
style="FONT: 7pt 'Times New Roman'"><FONT
size=5>
</FONT></SPAN></FONT></SPAN></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">网站资源</SPAN></H2>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -