⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000019.htm

📁 水木社区 embeded 版精华区 下载
💻 HTM
📖 第 1 页 / 共 2 页
字号:
e&nbsp;your&nbsp;own&nbsp;S-record&nbsp;generator&nbsp;to&nbsp;work&nbsp;around&nbsp;this.&nbsp;<br />They&nbsp;have&nbsp;flash&nbsp;programming&nbsp;software&nbsp;available&nbsp;for&nbsp;download,&nbsp;but&nbsp;the&nbsp;website&nbsp;<br />&nbsp;doesn't&nbsp;mention&nbsp;that&nbsp;it&nbsp;isn't&nbsp;actually&nbsp;free:&nbsp;you&nbsp;have&nbsp;to&nbsp;pay&nbsp;for&nbsp;the&nbsp;key&nbsp;to&nbsp;<br />&nbsp;use&nbsp;it.&nbsp;<br />If&nbsp;you're&nbsp;prepared&nbsp;to&nbsp;do&nbsp;your&nbsp;debugging&nbsp;under&nbsp;Windoze,&nbsp;you&nbsp;can&nbsp;use&nbsp;the&nbsp;Cygwi&nbsp;<br />n&nbsp;tools&nbsp;from&nbsp;<a href="http://sources.redhat.com/cygwin/">http://sources.redhat.com/cygwin/</a>&nbsp;to&nbsp;build&nbsp;a&nbsp;gdb&nbsp;cross-debugger&nbsp;<br />&nbsp;which&nbsp;runs&nbsp;under&nbsp;Windoze&nbsp;and&nbsp;uses&nbsp;the&nbsp;Wigglers.dll&nbsp;to&nbsp;talk&nbsp;to&nbsp;the&nbsp;target.&nbsp;N&nbsp;<br />ote&nbsp;that&nbsp;Wigglers.dll&nbsp;also&nbsp;loads&nbsp;other&nbsp;DLLs,&nbsp;so&nbsp;copy&nbsp;all&nbsp;the&nbsp;DLLs&nbsp;that&nbsp;come&nbsp;&nbsp;<br />with&nbsp;OCD&nbsp;Commander&nbsp;from&nbsp;<a href="http://www.macraigor.com/">http://www.macraigor.com/</a>&nbsp;into&nbsp;your&nbsp;GDB&nbsp;directory&nbsp;an&nbsp;<br />d&nbsp;use&nbsp;the&nbsp;command:&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;(gdb)&nbsp;target&nbsp;ocd&nbsp;wiggler&nbsp;<br />You&nbsp;can&nbsp;also&nbsp;do&nbsp;this&nbsp;remotely,&nbsp;by&nbsp;using&nbsp;rproxy,&nbsp;described&nbsp;below.&nbsp;<br />EST&nbsp;Corporation&nbsp;<br /><a href="http://www.estc.com/">http://www.estc.com/</a>&nbsp;<br />They've&nbsp;ported&nbsp;their&nbsp;VisionXD&nbsp;UNIX&nbsp;debugger&nbsp;to&nbsp;Linux&nbsp;and&nbsp;it&nbsp;is&nbsp;available&nbsp;wit&nbsp;<br />h&nbsp;their&nbsp;parallel&nbsp;port&nbsp;of&nbsp;Ethernet&nbsp;based&nbsp;probe.&nbsp;It&nbsp;can&nbsp;program&nbsp;flash&nbsp;parts&nbsp;an&nbsp;<br />d&nbsp;do&nbsp;source&nbsp;level&nbsp;debugging.&nbsp;It&nbsp;costs&nbsp;$6k&nbsp;or&nbsp;$8k&nbsp;depending&nbsp;on&nbsp;parport&nbsp;or&nbsp;Eth&nbsp;<br />ernet&nbsp;connection.&nbsp;The&nbsp;Windoze&nbsp;version&nbsp;is&nbsp;only&nbsp;$4k.&nbsp;:-/&nbsp;<br />Beware&nbsp;that&nbsp;the&nbsp;EST&nbsp;tools&nbsp;don't&nbsp;handle&nbsp;the&nbsp;Linux&nbsp;zImage&nbsp;properly.&nbsp;See:&nbsp;http:&nbsp;<br />//lists.linuxppc.org/listarcs/linuxppc-embedded/200002/msg00073.html&nbsp;<br />Other&nbsp;debuggers&nbsp;<br />There&nbsp;are&nbsp;many&nbsp;other&nbsp;sources&nbsp;of&nbsp;BDM&nbsp;hardware&nbsp;probes&nbsp;and&nbsp;debuggers,&nbsp;but&nbsp;many&nbsp;&nbsp;<br />vendors&nbsp;still&nbsp;lag&nbsp;way&nbsp;behind&nbsp;as&nbsp;far&nbsp;as&nbsp;Linux&nbsp;support.&nbsp;Commercial&nbsp;solutions&nbsp;w&nbsp;<br />hich&nbsp;do&nbsp;not&nbsp;support&nbsp;a&nbsp;Linux&nbsp;development&nbsp;host:&nbsp;<br />Mentor&nbsp;(X-ray)&nbsp;<br /><a href="http://www.mentor.com/embedded/xray/index.html">http://www.mentor.com/embedded/xray/index.html</a>&nbsp;<br />Huntsville&nbsp;Microsystems&nbsp;(SourceGate)&nbsp;<br /><a href="http://www.hmi.com/bmd.htm">http://www.hmi.com/bmd.htm</a>&nbsp;<br />Tasking&nbsp;(CrossView&nbsp;Pro)&nbsp;<br /><a href="http://www.tasking.com/products/PPC/ppcsolution.htm#debugger">http://www.tasking.com/products/PPC/ppcsolution.htm#debugger</a>&nbsp;<br />SDS&nbsp;(SingleStep)&nbsp;<br /><a href="http://www.sdsi.com/product/powerpc/index.php3#power">http://www.sdsi.com/product/powerpc/index.php3#power</a>&nbsp;<br />Applied&nbsp;Microsystems&nbsp;(PowerTap):&nbsp;<br /><a href="http://www.amc.com/products/powertap.html">http://www.amc.com/products/powertap.html</a>&nbsp;<br />Lauterbach&nbsp;<br /><a href="http://www.lauterbach.com/">http://www.lauterbach.com/</a>&nbsp;<br />18.2&nbsp;Serial&nbsp;Console&nbsp;<br />Virtually&nbsp;all&nbsp;boards&nbsp;use&nbsp;a&nbsp;serial&nbsp;console&nbsp;on&nbsp;SMC1&nbsp;for&nbsp;boot&nbsp;messages&nbsp;and&nbsp;gene&nbsp;<br />ral&nbsp;debugging.&nbsp;Connect&nbsp;it&nbsp;to&nbsp;a&nbsp;serial&nbsp;port&nbsp;on&nbsp;your&nbsp;Linux&nbsp;development&nbsp;machine&nbsp;<br />,&nbsp;where&nbsp;you&nbsp;can&nbsp;run&nbsp;minicom&nbsp;to&nbsp;interact&nbsp;with&nbsp;the&nbsp;board.&nbsp;<br />18.3&nbsp;GDB&nbsp;<br />Once&nbsp;the&nbsp;kernel&nbsp;is&nbsp;running,&nbsp;you&nbsp;can&nbsp;use&nbsp;gdb&nbsp;in&nbsp;several&nbsp;different&nbsp;ways&nbsp;to&nbsp;deb&nbsp;<br />ug&nbsp;user&nbsp;space&nbsp;programs:&nbsp;<br />gdbserver&nbsp;<br />You&nbsp;can&nbsp;run&nbsp;gdbserver&nbsp;on&nbsp;your&nbsp;target&nbsp;and&nbsp;run&nbsp;gdb&nbsp;back&nbsp;on&nbsp;your&nbsp;development&nbsp;ma&nbsp;<br />chine,&nbsp;even&nbsp;if&nbsp;you're&nbsp;cross&nbsp;developing.&nbsp;This&nbsp;requires&nbsp;far&nbsp;less&nbsp;resources&nbsp;tha&nbsp;<br />n&nbsp;running&nbsp;all&nbsp;of&nbsp;gdb&nbsp;on&nbsp;your&nbsp;target.&nbsp;See:&nbsp;<a href="http://qslinux.org/docs/cross/gdb/">http://qslinux.org/docs/cross/gdb/</a>&nbsp;<br />index.html&nbsp;<br />If&nbsp;you're&nbsp;cross-developing,&nbsp;remember&nbsp;to&nbsp;configure&nbsp;your&nbsp;gdb&nbsp;as&nbsp;described&nbsp;earl&nbsp;<br />ier.&nbsp;<br />rproxy&nbsp;<br /><a href="http://www.std.com/qqi/labslave/rproxy.html">http://www.std.com/qqi/labslave/rproxy.html</a>&nbsp;<br />This&nbsp;in&nbsp;an&nbsp;extended/enhanced&nbsp;gdbserver,&nbsp;which&nbsp;can&nbsp;also&nbsp;run&nbsp;on&nbsp;Windoze&nbsp;and&nbsp;ta&nbsp;<br />lk&nbsp;to&nbsp;BDM&nbsp;devices&nbsp;not&nbsp;yet&nbsp;supported&nbsp;by&nbsp;Linux.&nbsp;<br />native&nbsp;<br />If&nbsp;you&nbsp;have&nbsp;lots&nbsp;of&nbsp;RAM,&nbsp;you&nbsp;can&nbsp;run&nbsp;gdb&nbsp;directly&nbsp;on&nbsp;your&nbsp;target.&nbsp;If&nbsp;you&nbsp;are&nbsp;<br />&nbsp;cross&nbsp;developing,&nbsp;you&nbsp;need&nbsp;to&nbsp;configure&nbsp;gdb&nbsp;with:&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;%&nbsp;configure&nbsp;--host=powerpc-linux&nbsp;<br />18.4&nbsp;Kernel&nbsp;<br />Some&nbsp;kernels&nbsp;include&nbsp;&quot;kgdb&quot;&nbsp;support&nbsp;for&nbsp;using&nbsp;gdb&nbsp;for&nbsp;kernel&nbsp;debugging,&nbsp;enab&nbsp;<br />led&nbsp;by&nbsp;configuring&nbsp;with&nbsp;CONFIG_KGDB.&nbsp;<br />18.5&nbsp;Oops&nbsp;Messages&nbsp;<br />You&nbsp;get&nbsp;these&nbsp;whenever&nbsp;something&nbsp;truly&nbsp;bad&nbsp;happens&nbsp;in&nbsp;the&nbsp;kernel.&nbsp;Learn&nbsp;to&nbsp;k&nbsp;<br />now&nbsp;and&nbsp;respect&nbsp;them&nbsp;--&nbsp;they&nbsp;are&nbsp;your&nbsp;friend,&nbsp;not&nbsp;your&nbsp;enemy.&nbsp;For&nbsp;general&nbsp;in&nbsp;<br />fo&nbsp;on&nbsp;how&nbsp;to&nbsp;understand&nbsp;them,&nbsp;see&nbsp;the&nbsp;file&nbsp;Documentation/oops-tracing.txt&nbsp;in&nbsp;<br />&nbsp;the&nbsp;kernel&nbsp;source&nbsp;tree.&nbsp;<br />You'll&nbsp;get&nbsp;a&nbsp;long&nbsp;way&nbsp;just&nbsp;by&nbsp;looking&nbsp;up&nbsp;the&nbsp;instruction&nbsp;at&nbsp;the&nbsp;address&nbsp;indi&nbsp;<br />cated&nbsp;by&nbsp;NIP&nbsp;on&nbsp;the&nbsp;first&nbsp;line&nbsp;of&nbsp;the&nbsp;Oops&nbsp;in&nbsp;the&nbsp;output&nbsp;of:&nbsp;<br />objdump&nbsp;--disassemble&nbsp;vmlinux&nbsp;<br />This&nbsp;will&nbsp;show&nbsp;you&nbsp;the&nbsp;instruction&nbsp;causing&nbsp;the&nbsp;fault.&nbsp;Work&nbsp;backwards&nbsp;to&nbsp;find&nbsp;<br />&nbsp;the&nbsp;line&nbsp;of&nbsp;C&nbsp;source&nbsp;code&nbsp;associated&nbsp;with&nbsp;it,&nbsp;and&nbsp;add&nbsp;printk's&nbsp;around&nbsp;it&nbsp;to&nbsp;<br />&nbsp;find&nbsp;what&nbsp;is&nbsp;going&nbsp;wrong.&nbsp;<br />For&nbsp;more&nbsp;help&nbsp;with&nbsp;decoding&nbsp;kernel&nbsp;panic&nbsp;messages,&nbsp;see:&nbsp;<a href="http://lists.linuxpp">http://lists.linuxpp</a>&nbsp;<br />c.org/listarcs/linuxppc-embedded/199912/msg00090.html&nbsp;<br />18.6&nbsp;printk&nbsp;<br />printk&nbsp;is&nbsp;an&nbsp;indispensible&nbsp;tool.&nbsp;You&nbsp;can&nbsp;use&nbsp;it&nbsp;to&nbsp;add&nbsp;checkpointing,&nbsp;print&nbsp;&nbsp;<br />kernel&nbsp;values&nbsp;that&nbsp;you&nbsp;can't&nbsp;get&nbsp;to&nbsp;via&nbsp;/proc,&nbsp;etc&nbsp;etc.&nbsp;It&nbsp;can&nbsp;be&nbsp;called&nbsp;any&nbsp;<br />where,&nbsp;including&nbsp;interrupt&nbsp;routines,&nbsp;provided&nbsp;you're&nbsp;prepared&nbsp;for&nbsp;some&nbsp;inter&nbsp;<br />esting&nbsp;output.&nbsp;<br />Note&nbsp;that&nbsp;during&nbsp;the&nbsp;boot&nbsp;process,&nbsp;the&nbsp;kernel&nbsp;&quot;prints&quot;&nbsp;lots&nbsp;of&nbsp;stuff,&nbsp;and&nbsp;it&nbsp;<br />&nbsp;all&nbsp;goes&nbsp;into&nbsp;a&nbsp;buffer,&nbsp;to&nbsp;emerge&nbsp;quite&nbsp;late&nbsp;in&nbsp;the&nbsp;boot&nbsp;process&nbsp;when&nbsp;the&nbsp;s&nbsp;<br />erial&nbsp;console&nbsp;port&nbsp;is&nbsp;initialized&nbsp;with&nbsp;the&nbsp;call&nbsp;to&nbsp;console_init.&nbsp;This&nbsp;eventu&nbsp;<br />ally&nbsp;calls&nbsp;register_console&nbsp;which&nbsp;will&nbsp;dump&nbsp;out&nbsp;the&nbsp;logged&nbsp;messages.&nbsp;So&nbsp;you&nbsp;&nbsp;<br />can't&nbsp;necessarily&nbsp;assume&nbsp;that&nbsp;the&nbsp;kernel&nbsp;didn't&nbsp;get&nbsp;to&nbsp;your&nbsp;checkpoint&nbsp;just&nbsp;&nbsp;<br />because&nbsp;the&nbsp;printk&nbsp;message&nbsp;didn't&nbsp;appear&nbsp;on&nbsp;the&nbsp;serial&nbsp;port&nbsp;during&nbsp;this&nbsp;part&nbsp;<br />&nbsp;of&nbsp;the&nbsp;boot&nbsp;sequence.&nbsp;<br />----------------------------------------------------------------------------&nbsp;<br />----&nbsp;<br />Next&nbsp;Previous&nbsp;Contents&nbsp;&nbsp;<br />&nbsp;<br />--&nbsp;<br />&nbsp;<br />※&nbsp;来源:·BBS&nbsp;水木清华站&nbsp;smth.org·[FROM:&nbsp;166.111.161.8]&nbsp;<br /><a href="00000018.htm">上一篇</a><a href="javascript:history.go(-1)">返回上一页</a><a href="index.htm">回到目录</a><a href="#top">回到页首</a><a href="00000020.htm">下一篇</a></h1></center><center><h1>BBS 水木清华站∶精华区</h1></center></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -