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

📄 00000019.htm

📁 水木社区 embeded 版精华区 下载
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<?xml version="1.0" encoding="gb2312"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"/><title>linux for ppc chapter 18               jacobw </title></head><body><center><h1>BBS 水木清华站∶精华区</h1></center><a name="top"></a>发信人:&nbsp;plato&nbsp;(纯真年代),&nbsp;信区:&nbsp;Embedded&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />标&nbsp;&nbsp;题:&nbsp;linux&nbsp;for&nbsp;ppc&nbsp;chapter&nbsp;18&nbsp;<br />发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Wed&nbsp;May&nbsp;30&nbsp;23:22:52&nbsp;2001)&nbsp;<br />&nbsp;<br />Next&nbsp;Previous&nbsp;Contents&nbsp;<br />----------------------------------------------------------------------------&nbsp;<br />----&nbsp;<br />18.&nbsp;Debugging&nbsp;<br />18.1&nbsp;BDM&nbsp;<br />BDM&nbsp;is&nbsp;way&nbsp;cool,&nbsp;especially&nbsp;if&nbsp;you&nbsp;are&nbsp;bringing&nbsp;up&nbsp;a&nbsp;custom&nbsp;board&nbsp;and&nbsp;don't&nbsp;&nbsp;<br />want&nbsp;to&nbsp;invest&nbsp;in&nbsp;an&nbsp;In&nbsp;Circuit&nbsp;Emulator.&nbsp;You&nbsp;should&nbsp;definitely&nbsp;include&nbsp;a&nbsp;BD&nbsp;<br />M&nbsp;connector&nbsp;on&nbsp;any&nbsp;custom&nbsp;hardware,&nbsp;and&nbsp;all&nbsp;off-the-shelf&nbsp;boards&nbsp;have&nbsp;it.&nbsp;Fo&nbsp;<br />r&nbsp;a&nbsp;broad&nbsp;introduction,&nbsp;see:&nbsp;<a href="http://www.macraigor.com/zenofbdm.pdf">http://www.macraigor.com/zenofbdm.pdf</a>&nbsp;<br />Be&nbsp;careful&nbsp;to&nbsp;ensure&nbsp;that&nbsp;the&nbsp;CPU&nbsp;watchdog&nbsp;is&nbsp;disabled&nbsp;in&nbsp;your&nbsp;BDM&nbsp;probes'&nbsp;c&nbsp;<br />onfiguration&nbsp;file,&nbsp;otherwise&nbsp;it&nbsp;will&nbsp;continually&nbsp;reset&nbsp;the&nbsp;CPU&nbsp;and&nbsp;nothing&nbsp;w&nbsp;<br />ill&nbsp;work.&nbsp;In&nbsp;particulary,&nbsp;the&nbsp;watchdog&nbsp;is&nbsp;enabled&nbsp;at&nbsp;reset&nbsp;and&nbsp;must&nbsp;be&nbsp;disab&nbsp;<br />led&nbsp;if&nbsp;you&nbsp;wish&nbsp;to&nbsp;single&nbsp;step&nbsp;from&nbsp;reset.&nbsp;Also&nbsp;check&nbsp;that&nbsp;DER&nbsp;is&nbsp;zero'd&nbsp;whe&nbsp;<br />n&nbsp;running&nbsp;with&nbsp;the&nbsp;debugger.&nbsp;Leaving&nbsp;the&nbsp;BDM&nbsp;probe&nbsp;connected&nbsp;can&nbsp;interfere&nbsp;w&nbsp;<br />ith&nbsp;the&nbsp;target&nbsp;if&nbsp;it&nbsp;is&nbsp;not&nbsp;configured&nbsp;absolutely&nbsp;correctly,&nbsp;which&nbsp;usually&nbsp;i&nbsp;<br />nvolves&nbsp;the&nbsp;BDM&nbsp;probe&nbsp;being&nbsp;completely&nbsp;passive&nbsp;once&nbsp;the&nbsp;kernel&nbsp;is&nbsp;running.&nbsp;S&nbsp;<br />ymptoms&nbsp;are&nbsp;that&nbsp;the&nbsp;kernel&nbsp;crashes&nbsp;with&nbsp;the&nbsp;BDM&nbsp;probe&nbsp;connected,&nbsp;but&nbsp;runs&nbsp;f&nbsp;<br />ine&nbsp;without&nbsp;it.&nbsp;If&nbsp;you&nbsp;are&nbsp;using&nbsp;BDM&nbsp;and&nbsp;experience&nbsp;unexpected&nbsp;kernel&nbsp;crashe&nbsp;<br />s,&nbsp;try&nbsp;disconnecting&nbsp;the&nbsp;BDM&nbsp;probe.&nbsp;<br />If&nbsp;you're&nbsp;using&nbsp;an&nbsp;off-the-shelf&nbsp;board&nbsp;which&nbsp;already&nbsp;has&nbsp;a&nbsp;working&nbsp;rom&nbsp;monit&nbsp;<br />or,&nbsp;you&nbsp;generally&nbsp;won't&nbsp;need&nbsp;to&nbsp;use&nbsp;BDM&nbsp;at&nbsp;all,&nbsp;as&nbsp;you&nbsp;can&nbsp;get&nbsp;by&nbsp;fine&nbsp;with&nbsp;&nbsp;<br />just&nbsp;the&nbsp;serial&nbsp;console.&nbsp;Many&nbsp;developers,&nbsp;particularly&nbsp;those&nbsp;bringing&nbsp;up&nbsp;a&nbsp;c&nbsp;<br />ustom&nbsp;board&nbsp;from&nbsp;scratch,&nbsp;find&nbsp;BDM&nbsp;invaluable;&nbsp;to&nbsp;others&nbsp;it&nbsp;can&nbsp;be&nbsp;more&nbsp;trou&nbsp;<br />ble&nbsp;than&nbsp;it's&nbsp;worth.&nbsp;One&nbsp;advantage&nbsp;of&nbsp;a&nbsp;BDM&nbsp;interface&nbsp;over&nbsp;a&nbsp;kernel&nbsp;debugger&nbsp;<br />&nbsp;is&nbsp;that&nbsp;you&nbsp;can&nbsp;really&nbsp;&quot;freeze&quot;&nbsp;the&nbsp;CPU&nbsp;including&nbsp;all&nbsp;timers,&nbsp;interrupts&nbsp;et&nbsp;<br />c.&nbsp;<br />MMU&nbsp;Support&nbsp;<br />Some&nbsp;BDM&nbsp;debuggers&nbsp;are&nbsp;capable&nbsp;of&nbsp;performing&nbsp;MMU&nbsp;table&nbsp;walks,&nbsp;which&nbsp;is&nbsp;essen&nbsp;<br />tial&nbsp;for&nbsp;debugging&nbsp;in&nbsp;virtual&nbsp;memory&nbsp;environments&nbsp;such&nbsp;as&nbsp;Linux&nbsp;because&nbsp;othe&nbsp;<br />rwise&nbsp;the&nbsp;BDM&nbsp;port&nbsp;merely&nbsp;deals&nbsp;with&nbsp;raw&nbsp;physical&nbsp;addresses.&nbsp;However,&nbsp;many&nbsp;B&nbsp;<br />DM&nbsp;systems&nbsp;can't&nbsp;do&nbsp;this,&nbsp;so&nbsp;check&nbsp;with&nbsp;the&nbsp;vendor&nbsp;that&nbsp;they&nbsp;support&nbsp;MMU&nbsp;tab&nbsp;<br />le&nbsp;walks&nbsp;on&nbsp;the&nbsp;particular&nbsp;CPU&nbsp;you're&nbsp;interested&nbsp;in&nbsp;before&nbsp;committing&nbsp;to&nbsp;one&nbsp;<br />;&nbsp;otherwise&nbsp;it&nbsp;will&nbsp;be&nbsp;almost&nbsp;impossible&nbsp;to&nbsp;use&nbsp;once&nbsp;the&nbsp;kernel&nbsp;has&nbsp;turned&nbsp;t&nbsp;<br />he&nbsp;MMU&nbsp;on.&nbsp;See:&nbsp;<a href="http://lists.linuxppc.org/listarcs/linuxppc-embedded/199909/">http://lists.linuxppc.org/listarcs/linuxppc-embedded/199909/</a>&nbsp;<br />msg00021.html.&nbsp;<br />Once&nbsp;the&nbsp;kernel&nbsp;is&nbsp;running&nbsp;you&nbsp;can&nbsp;use&nbsp;gdb&nbsp;remotely&nbsp;or&nbsp;even&nbsp;run&nbsp;it&nbsp;natively&nbsp;&nbsp;<br />on&nbsp;the&nbsp;target&nbsp;hardware&nbsp;if&nbsp;you&nbsp;have&nbsp;enough&nbsp;RAM.&nbsp;It&nbsp;may&nbsp;be&nbsp;worth&nbsp;providing&nbsp;ext&nbsp;<br />ra&nbsp;RAM&nbsp;on&nbsp;some&nbsp;of&nbsp;your&nbsp;development&nbsp;boards&nbsp;to&nbsp;allow&nbsp;for&nbsp;this.&nbsp;<br />GDB&nbsp;on&nbsp;BDM&nbsp;<br />See&nbsp;&quot;Using&nbsp;GDB&nbsp;for&nbsp;Remote&nbsp;Debugging:&nbsp;BDM&nbsp;Support&quot;&nbsp;in&nbsp;the&nbsp;CrossGCC&nbsp;FAQ&nbsp;at:&nbsp;ht&nbsp;<br />tp://www.objsw.com/CrossGCC/FAQ-7.html&nbsp;<br />BDM&nbsp;debugging&nbsp;under&nbsp;GDB&nbsp;is&nbsp;not&nbsp;supported&nbsp;by&nbsp;all&nbsp;BDM&nbsp;hardware&nbsp;vendors.&nbsp;See&nbsp;th&nbsp;<br />e&nbsp;thread:&nbsp;<a href="http://www.oarcorp.com/rtems/freesupport/rtemslistArchive/1999/jul">http://www.oarcorp.com/rtems/freesupport/rtemslistArchive/1999/jul</a>&nbsp;<br />y/msg00057.html&nbsp;<br />To&nbsp;support&nbsp;BDM&nbsp;debugging&nbsp;under&nbsp;gdb&nbsp;requires&nbsp;the&nbsp;appropriate&nbsp;remote-*&nbsp;device&nbsp;&nbsp;<br />in&nbsp;GDB,&nbsp;and&nbsp;possibly&nbsp;a&nbsp;kernel&nbsp;driver.&nbsp;If&nbsp;you&nbsp;are&nbsp;cross-developing,&nbsp;you&nbsp;must&nbsp;&nbsp;<br />configure&nbsp;gdb&nbsp;as&nbsp;follows&nbsp;to&nbsp;include&nbsp;the&nbsp;appropriate&nbsp;devices:&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;%&nbsp;configure&nbsp;--target=powerpc-linux&nbsp;<br />The&nbsp;following&nbsp;systems&nbsp;currently&nbsp;support&nbsp;BDM&nbsp;debugging&nbsp;on&nbsp;gdb:&nbsp;<br />BDM4GDB&nbsp;<br /><a href="http://bdm4gdb.sourceforge.net/">http://bdm4gdb.sourceforge.net/</a>&nbsp;<br />An&nbsp;open&nbsp;user-supported&nbsp;project&nbsp;to&nbsp;build&nbsp;your&nbsp;own&nbsp;PowerPC&nbsp;BDM&nbsp;interface&nbsp;at&nbsp;ex&nbsp;<br />tremely&nbsp;low&nbsp;cost.&nbsp;Supports&nbsp;extensible&nbsp;Flash&nbsp;programming&nbsp;and&nbsp;implements&nbsp;softw&nbsp;<br />are-tablewalk&nbsp;so&nbsp;you&nbsp;have&nbsp;MMU&nbsp;support;&nbsp;you&nbsp;can&nbsp;use&nbsp;GDB&nbsp;to&nbsp;debug&nbsp;kernel&nbsp;code&nbsp;&nbsp;<br />(single&nbsp;stepping,&nbsp;breakpoints,&nbsp;etc.)&nbsp;and/or&nbsp;inspect&nbsp;kernel&nbsp;data.&nbsp;<br />If&nbsp;you&nbsp;don't&nbsp;want&nbsp;to&nbsp;build&nbsp;it&nbsp;yourself,&nbsp;the&nbsp;adapter&nbsp;is&nbsp;available&nbsp;at&nbsp;cost&nbsp;fro&nbsp;<br />m&nbsp;Denx,&nbsp;subject&nbsp;to&nbsp;availability.&nbsp;<br />MPCBDM&nbsp;<br /><a href="http://www.vas-gmbh.de/software/mpcbdm/">http://www.vas-gmbh.de/software/mpcbdm/</a>&nbsp;<br />The&nbsp;precursor&nbsp;to&nbsp;the&nbsp;BDM4GDB&nbsp;project,&nbsp;courtesy&nbsp;of&nbsp;Frank&nbsp;Przybylski.&nbsp;<br />PPCBDM&nbsp;<br /><a href="http://cyclone.parad.ru/ppcbdm/">http://cyclone.parad.ru/ppcbdm/</a>&nbsp;<br />The&nbsp;ultra&nbsp;low&nbsp;hardware&nbsp;cost&nbsp;precursor&nbsp;to&nbsp;MPCBDM&nbsp;and&nbsp;BDM4GDB,&nbsp;courtesy&nbsp;of&nbsp;Ser&nbsp;<br />gey&nbsp;Drazhnikov.&nbsp;<br />Abatron&nbsp;<br /><a href="http://www.abatron.ch/BDI/bdiGDB.html">http://www.abatron.ch/BDI/bdiGDB.html</a>&nbsp;<br />Has&nbsp;an&nbsp;ideal&nbsp;BDM/JTAG&nbsp;emulation&nbsp;solution&nbsp;for&nbsp;Linux&nbsp;hosting,&nbsp;with&nbsp;Linux&nbsp;MMU&nbsp;s&nbsp;<br />upport&nbsp;specifically&nbsp;in&nbsp;mind.&nbsp;It&nbsp;is&nbsp;an&nbsp;Ethernet-based&nbsp;unit&nbsp;which&nbsp;has&nbsp;a&nbsp;telnet&nbsp;<br />&nbsp;interface&nbsp;with&nbsp;which&nbsp;one&nbsp;can&nbsp;program&nbsp;various&nbsp;popular&nbsp;flash&nbsp;parts.&nbsp;This&nbsp;is&nbsp;i&nbsp;<br />deal&nbsp;for&nbsp;Linux&nbsp;since&nbsp;one&nbsp;can&nbsp;build&nbsp;a&nbsp;kernel&nbsp;and&nbsp;expect&nbsp;script&nbsp;the&nbsp;programmin&nbsp;<br />g&nbsp;process&nbsp;automagically.&nbsp;<br />Their&nbsp;external&nbsp;box&nbsp;implements&nbsp;the&nbsp;standard&nbsp;GDB&nbsp;remote&nbsp;protocol&nbsp;allowing&nbsp;you&nbsp;&nbsp;<br />to&nbsp;host&nbsp;debugging&nbsp;on&nbsp;any&nbsp;platform&nbsp;that&nbsp;can&nbsp;host&nbsp;GDB.&nbsp;<br />Huntsville&nbsp;Microsystems&nbsp;<br /><a href="http://www.hmi.com/bmd.htm">http://www.hmi.com/bmd.htm</a>&nbsp;<br />Patches&nbsp;to&nbsp;add&nbsp;support&nbsp;to&nbsp;gdb&nbsp;are&nbsp;available&nbsp;in:&nbsp;<a href="ftp://ftp.hmi.com/pub/gdb/">ftp://ftp.hmi.com/pub/gdb/</a>&nbsp;<br />Macraigor&nbsp;Systems&nbsp;<br /><a href="http://www.macraigor.com/">http://www.macraigor.com/</a>&nbsp;<br />Currently&nbsp;only&nbsp;support&nbsp;Windoze&nbsp;platform,&nbsp;but&nbsp;say&nbsp;Linux&nbsp;support&nbsp;for&nbsp;the&nbsp;Kestr&nbsp;<br />el&nbsp;device&nbsp;(but&nbsp;not&nbsp;the&nbsp;Wiggler,&nbsp;Raven,&nbsp;etc)&nbsp;should&nbsp;be&nbsp;available&nbsp;sometime&nbsp;in&nbsp;&nbsp;<br />September&nbsp;2000.&nbsp;<br />OCD&nbsp;Commander&nbsp;is&nbsp;a&nbsp;free&nbsp;assembly&nbsp;level&nbsp;debugger&nbsp;for&nbsp;Windows,&nbsp;which&nbsp;may&nbsp;work&nbsp;&nbsp;<br />under&nbsp;VMWare.&nbsp;I&nbsp;couldn't&nbsp;get&nbsp;it&nbsp;to&nbsp;work&nbsp;with&nbsp;the&nbsp;Raven/Blackbird&nbsp;interface&nbsp;o&nbsp;<br />n&nbsp;the&nbsp;Embedded&nbsp;Planet&nbsp;CLLF&nbsp;under&nbsp;Windows;&nbsp;it&nbsp;wouldn't&nbsp;single&nbsp;step&nbsp;correctly.&nbsp;<br />&nbsp;<br />Beware&nbsp;that&nbsp;the&nbsp;1999&nbsp;version&nbsp;of&nbsp;OCD&nbsp;Commander&nbsp;silently&nbsp;truncates&nbsp;S-records&nbsp;l&nbsp;<br />onger&nbsp;than&nbsp;20&nbsp;bytes&nbsp;during&nbsp;download,&nbsp;so&nbsp;you'll&nbsp;need&nbsp;to&nbsp;patch&nbsp;objcopy&nbsp;or&nbsp;writ&nbsp;<br />

⌨️ 快捷键说明

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