📄 linux设备驱动程序学习(2)-调试技术 - linux设备驱动程序 - tekkaman ninja.htm
字号:
style="COLOR: rgb(0,0,204)">,</SPAN> <SPAN
style="COLOR: rgb(0,0,255)">char</SPAN> <SPAN
style="COLOR: rgb(0,0,204)">*</SPAN><SPAN
style="COLOR: rgb(0,0,204)">*</SPAN>argv<SPAN
style="COLOR: rgb(0,0,204)">)</SPAN><BR><SPAN
style="COLOR: rgb(0,0,204)">{</SPAN><BR> <SPAN
style="COLOR: rgb(0,0,255)">int</SPAN>
level<SPAN
style="COLOR: rgb(0,0,204)">;</SPAN><BR>
<SPAN style="COLOR: rgb(0,0,255)">if</SPAN>
<SPAN
style="COLOR: rgb(0,0,204)">(</SPAN>argc<SPAN
style="COLOR: rgb(0,0,204)">=</SPAN><SPAN
style="COLOR: rgb(0,0,204)">=</SPAN>2<SPAN
style="COLOR: rgb(0,0,204)">)</SPAN> <SPAN
style="COLOR: rgb(0,0,204)">{</SPAN><BR> level
<SPAN style="COLOR: rgb(0,0,204)">=</SPAN> <SPAN
style="COLOR: rgb(255,0,0)">atoi</SPAN><SPAN
style="COLOR: rgb(0,0,204)">(</SPAN>argv<SPAN
style="COLOR: rgb(0,0,204)">[</SPAN>1<SPAN
style="COLOR: rgb(0,0,204)">]</SPAN><SPAN
style="COLOR: rgb(0,0,204)">)</SPAN><SPAN
style="COLOR: rgb(0,0,204)">;</SPAN> <SPAN
style="COLOR: rgb(255,153,0)">/* the chosen
console
*/</SPAN><BR> <SPAN
style="COLOR: rgb(0,0,204)">}</SPAN> <SPAN
style="COLOR: rgb(0,0,255)">else</SPAN> <SPAN
style="COLOR: rgb(0,0,204)">{</SPAN><BR> <SPAN
style="COLOR: rgb(255,0,0)">fprintf</SPAN><SPAN
style="COLOR: rgb(0,0,204)">(</SPAN><SPAN
style="COLOR: rgb(255,0,0)">stderr</SPAN><SPAN
style="COLOR: rgb(0,0,204)">,</SPAN> <SPAN
style="COLOR: rgb(255,0,255)">"%s: need a single
arg\n"</SPAN><SPAN
style="COLOR: rgb(0,0,204)">,</SPAN>argv<SPAN
style="COLOR: rgb(0,0,204)">[</SPAN>0<SPAN
style="COLOR: rgb(0,0,204)">]</SPAN><SPAN
style="COLOR: rgb(0,0,204)">)</SPAN><SPAN
style="COLOR: rgb(0,0,204)">;</SPAN> <SPAN
style="COLOR: rgb(255,0,0)">exit</SPAN><SPAN
style="COLOR: rgb(0,0,204)">(</SPAN>1<SPAN
style="COLOR: rgb(0,0,204)">)</SPAN><SPAN
style="COLOR: rgb(0,0,204)">;</SPAN><BR> <SPAN
style="COLOR: rgb(0,0,204)">}</SPAN><BR> <SPAN
style="COLOR: rgb(0,0,255)">if</SPAN> <SPAN
style="COLOR: rgb(0,0,204)">(</SPAN>syslog<SPAN
style="COLOR: rgb(0,0,204)">(</SPAN>8<SPAN
style="COLOR: rgb(0,0,204)">,</SPAN><SPAN
style="COLOR: rgb(255,0,0)">NULL</SPAN><SPAN
style="COLOR: rgb(0,0,204)">,</SPAN>level<SPAN
style="COLOR: rgb(0,0,204)">)</SPAN> <SPAN
style="COLOR: rgb(0,0,204)"><</SPAN> 0<SPAN
style="COLOR: rgb(0,0,204)">)</SPAN> <SPAN
style="COLOR: rgb(0,0,204)">{</SPAN>
<BR> <SPAN
style="COLOR: rgb(255,0,0)">fprintf</SPAN><SPAN
style="COLOR: rgb(0,0,204)">(</SPAN><SPAN
style="COLOR: rgb(255,0,0)">stderr</SPAN><SPAN
style="COLOR: rgb(0,0,204)">,</SPAN><SPAN
style="COLOR: rgb(255,0,255)">"%s:
syslog(setlevel): %s\n"</SPAN><SPAN
style="COLOR: rgb(0,0,204)">,</SPAN><BR> argv<SPAN
style="COLOR: rgb(0,0,204)">[</SPAN>0<SPAN
style="COLOR: rgb(0,0,204)">]</SPAN><SPAN
style="COLOR: rgb(0,0,204)">,</SPAN><SPAN
style="COLOR: rgb(255,0,0)">strerror</SPAN><SPAN
style="COLOR: rgb(0,0,204)">(</SPAN><SPAN
style="COLOR: rgb(255,0,0)">errno</SPAN><SPAN
style="COLOR: rgb(0,0,204)">)</SPAN><SPAN
style="COLOR: rgb(0,0,204)">)</SPAN><SPAN
style="COLOR: rgb(0,0,204)">;</SPAN><BR> <SPAN
style="COLOR: rgb(255,0,0)">exit</SPAN><SPAN
style="COLOR: rgb(0,0,204)">(</SPAN>1<SPAN
style="COLOR: rgb(0,0,204)">)</SPAN><SPAN
style="COLOR: rgb(0,0,204)">;</SPAN><BR> <SPAN
style="COLOR: rgb(0,0,204)">}</SPAN><BR> <SPAN
style="COLOR: rgb(255,0,0)">exit</SPAN><SPAN
style="COLOR: rgb(0,0,204)">(</SPAN>0<SPAN
style="COLOR: rgb(0,0,204)">)</SPAN><SPAN
style="COLOR: rgb(0,0,204)">;</SPAN><BR><SPAN
style="COLOR: rgb(0,0,204)">}</SPAN></SPAN></CODE></P></TD></TR></TBODY></TABLE><BR
style="FONT-FAMILY: 楷体"><FONT
style="FONT-FAMILY: 楷体"
size=3>最关键的</FONT><CODE><SPAN
style="COLOR: rgb(0,0,0)"><FONT
style="FONT-FAMILY: 楷体" size=3>“<SPAN
style="COLOR: rgb(255,1,2)">syslog(8,NULL,level</SPAN></FONT><SPAN
style="COLOR: rgb(0,0,204)"><FONT
style="FONT-FAMILY: 楷体" size=3><SPAN
style="COLOR: rgb(255,1,2)">)</SPAN>”</FONT><FONT
size=3><SPAN
style="COLOR: rgb(0,1,2)"></SPAN></FONT></SPAN></SPAN></CODE><FONT
size=3>语句我不理解,没有找到相关资料。但是通过在ARM9板上的实验表明:程序是ok的!我用Hello
world模块做了实验,现象和书上的一致。</FONT><CODE><SPAN
style="COLOR: rgb(0,0,0)"><SPAN
style="COLOR: rgb(0,0,204)"><SPAN
style="COLOR: rgb(0,1,2)"><BR></SPAN></SPAN></SPAN></CODE>
<TABLE style="BORDER-COLLAPSE: collapse"
borderColor=#999999 cellSpacing=0 cellPadding=0
width="95%" bgColor=#f1f1f1 border=1>
<TBODY>
<TR>
<TD>
<P
style="MARGIN: 5px; LINE-HEIGHT: 150%"><CODE><SPAN
style="COLOR: rgb(0,0,0)"><SPAN
style="COLOR: rgb(0,0,204)">[</SPAN>Tekkaman2440@SBC2440V4<SPAN
style="COLOR: rgb(0,0,204)">]</SPAN><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN>cd <SPAN
style="COLOR: rgb(0,0,204)">/</SPAN>tmp<SPAN
style="COLOR: rgb(0,0,204)">/</SPAN><BR><SPAN
style="COLOR: rgb(0,0,204)">[</SPAN>Tekkaman2440@SBC2440V4<SPAN
style="COLOR: rgb(0,0,204)">]</SPAN><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN><SPAN
style="COLOR: rgb(255,1,2)">./setlevel
1</SPAN><BR><SPAN
style="COLOR: rgb(0,0,204)">[</SPAN>Tekkaman2440@SBC2440V4<SPAN
style="COLOR: rgb(0,0,204)">]</SPAN><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN>cd <SPAN
style="COLOR: rgb(0,0,204)">/</SPAN>lib<SPAN
style="COLOR: rgb(0,0,204)">/</SPAN>modules<SPAN
style="COLOR: rgb(0,0,204)">/</SPAN><BR><SPAN
style="COLOR: rgb(0,0,204)">[</SPAN>Tekkaman2440@SBC2440V4<SPAN
style="COLOR: rgb(0,0,204)">]</SPAN><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN>insmod
hello<SPAN
style="COLOR: rgb(0,0,204)">.</SPAN>ko<BR><SPAN
style="COLOR: rgb(0,0,204)">[</SPAN>Tekkaman2440@SBC2440V4<SPAN
style="COLOR: rgb(0,0,204)">]</SPAN><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN>rmmod
hello<BR><SPAN
style="COLOR: rgb(0,0,204)">[</SPAN>Tekkaman2440@SBC2440V4<SPAN
style="COLOR: rgb(0,0,204)">]</SPAN><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN>cd <SPAN
style="COLOR: rgb(0,0,204)">/</SPAN>tmp<SPAN
style="COLOR: rgb(0,0,204)">/</SPAN><BR><SPAN
style="COLOR: rgb(0,0,204)">[</SPAN>Tekkaman2440@SBC2440V4<SPAN
style="COLOR: rgb(0,0,204)">]</SPAN><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN><SPAN
style="COLOR: rgb(255,1,2)">./setlevel
7</SPAN><BR><SPAN
style="COLOR: rgb(0,0,204)">[</SPAN>Tekkaman2440@SBC2440V4<SPAN
style="COLOR: rgb(0,0,204)">]</SPAN><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN>cd <SPAN
style="COLOR: rgb(0,0,204)">/</SPAN>lib<SPAN
style="COLOR: rgb(0,0,204)">/</SPAN>modules<SPAN
style="COLOR: rgb(0,0,204)">/</SPAN><BR><SPAN
style="COLOR: rgb(0,0,204)">[</SPAN>Tekkaman2440@SBC2440V4<SPAN
style="COLOR: rgb(0,0,204)">]</SPAN><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN>insmod
hello<SPAN
style="COLOR: rgb(0,0,204)">.</SPAN>ko<BR>Hello<SPAN
style="COLOR: rgb(0,0,204)">,</SPAN> Tekkaman
Ninja !<BR><SPAN
style="COLOR: rgb(0,0,204)">[</SPAN>Tekkaman2440@SBC2440V4<SPAN
style="COLOR: rgb(0,0,204)">]</SPAN><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN>rmmod
hello<BR>Goodbye<SPAN
style="COLOR: rgb(0,0,204)">,</SPAN> Tekkaman
Ninja !<BR> Love Linux <SPAN
style="COLOR: rgb(0,0,204)">!</SPAN>Love ARM
<SPAN style="COLOR: rgb(0,0,204)">!</SPAN> Love
KeKe <SPAN
style="COLOR: rgb(0,0,204)">!</SPAN><BR><SPAN
style="COLOR: rgb(0,0,204)">[</SPAN>Tekkaman2440@SBC2440V4<SPAN
style="COLOR: rgb(0,0,204)">]</SPAN><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN>
</SPAN></CODE></P></TD></TR></TBODY></TABLE><FONT
size=3><BR>还有通过对<CODE><SPAN
style="COLOR: rgb(0,0,0)"><SPAN
style="COLOR: rgb(255,1,2)">/proc/sys/kernel/printk</SPAN>的访问来改变</SPAN></CODE></FONT><FONT
size=3>console_loglevel的值:</FONT><BR><BR>
<TABLE style="BORDER-COLLAPSE: collapse"
borderColor=#999999 cellSpacing=0 cellPadding=0
width="95%" bgColor=#f1f1f1 border=1>
<TBODY>
<TR>
<TD>
<P
style="MARGIN: 5px; LINE-HEIGHT: 150%"><CODE><SPAN
style="COLOR: rgb(0,0,0)"><SPAN
style="COLOR: rgb(0,0,204)">[</SPAN>Tekkaman2440@SBC2440V4<SPAN
style="COLOR: rgb(0,0,204)">]</SPAN><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN>echo <SPAN
style="COLOR: rgb(255,1,2)">1</SPAN> <SPAN
style="COLOR: rgb(0,0,204)">></SPAN> <SPAN
style="COLOR: rgb(0,0,204)">/</SPAN>proc<SPAN
style="COLOR: rgb(0,0,204)">/</SPAN>sys<SPAN
style="COLOR: rgb(0,0,204)">/</SPAN>kernel<SPAN
style="COLOR: rgb(0,0,204)">/</SPAN>printk</SPAN></CODE></P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -