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

📄 00000002.htm

📁 水木社区 embeded 版精华区 下载
💻 HTM
字号:
<?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>BDM手册2                               turbolinux </title></head><body><center><h1>BBS 水木清华站∶精华区</h1></center><a name="top"></a>发信人:&nbsp;doot&nbsp;(ltt),&nbsp;信区:&nbsp;Embedded&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />标&nbsp;&nbsp;题:&nbsp;BDM手册2&nbsp;<br />发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Thu&nbsp;Oct&nbsp;26&nbsp;16:17:48&nbsp;2000)&nbsp;<br />&nbsp;<br />SECTION&nbsp;I&nbsp;<br />This&nbsp;section&nbsp;is&nbsp;not&nbsp;for&nbsp;old-&nbsp;timers,&nbsp;experienced&nbsp;debuggers,&nbsp;ICE&nbsp;gurus,&nbsp;and&nbsp;t&nbsp;<br />he&nbsp;like.&nbsp;It&nbsp;is&nbsp;<br />purely&nbsp;a&nbsp;light&nbsp;hearted&nbsp;look&nbsp;at&nbsp;the&nbsp;state&nbsp;of&nbsp;the&nbsp;art&nbsp;of&nbsp;microprocessor&nbsp;and&nbsp;mi&nbsp;<br />crocontroller&nbsp;<br />debugging&nbsp;through&nbsp;the&nbsp;years.&nbsp;The&nbsp;background&nbsp;is&nbsp;very&nbsp;helpful&nbsp;in&nbsp;understanding&nbsp;<br />&nbsp;on-&nbsp;chip&nbsp;<br />debugging.&nbsp;Skip&nbsp;to&nbsp;SECTION&nbsp;II&nbsp;for&nbsp;the&nbsp;specific&nbsp;information&nbsp;about&nbsp;on-&nbsp;chip&nbsp;de&nbsp;<br />bugging.&nbsp;<br />Debugging&nbsp;through&nbsp;history&nbsp;<br />First&nbsp;there&nbsp;was&nbsp;the&nbsp;“crash&nbsp;and&nbsp;burn”&nbsp;method&nbsp;of&nbsp;debugging.&nbsp;We&nbsp;have&nbsp;all&nbsp;done&nbsp;<br />&nbsp;this&nbsp;more&nbsp;<br />times&nbsp;then&nbsp;we&nbsp;admit.&nbsp;You&nbsp;decide&nbsp;to&nbsp;make&nbsp;a&nbsp;paper&nbsp;airplane.&nbsp;You&nbsp;fold&nbsp;it&nbsp;to&nbsp;the&nbsp;<br />&nbsp;best&nbsp;of&nbsp;your&nbsp;<br />ability,&nbsp;toss&nbsp;it&nbsp;and&nbsp;it&nbsp;glides&nbsp;like&nbsp;a&nbsp;set&nbsp;of&nbsp;car&nbsp;keys.&nbsp;Do&nbsp;you&nbsp;A:&nbsp;take&nbsp;a&nbsp;slow&nbsp;<br />&nbsp;motion&nbsp;video&nbsp;of&nbsp;its&nbsp;<br />flight,&nbsp;study&nbsp;it&nbsp;and&nbsp;modify&nbsp;the&nbsp;design,&nbsp;B:&nbsp;rent&nbsp;time&nbsp;at&nbsp;the&nbsp;wind&nbsp;tunnel&nbsp;at&nbsp;M&nbsp;<br />IT,&nbsp;C:&nbsp;crumble&nbsp;<br />it&nbsp;up,&nbsp;toss&nbsp;it,&nbsp;and&nbsp;try&nbsp;again,&nbsp;or&nbsp;D:&nbsp;claim&nbsp;that&nbsp;its&nbsp;sudden&nbsp;nose&nbsp;dive&nbsp;is&nbsp;a&nbsp;fe&nbsp;<br />ature?&nbsp;<br />You&nbsp;write&nbsp;your&nbsp;code,&nbsp;check&nbsp;it&nbsp;over&nbsp;once&nbsp;or&nbsp;twice,&nbsp;burn&nbsp;the&nbsp;EPROM&nbsp;and&nbsp;let&nbsp;it&nbsp;&nbsp;<br />run.&nbsp;If&nbsp;it&nbsp;<br />doesn’t&nbsp;work,&nbsp;you&nbsp;look&nbsp;at&nbsp;the&nbsp;code&nbsp;some&nbsp;more.&nbsp;At&nbsp;some&nbsp;point&nbsp;this&nbsp;is&nbsp;all&nbsp;we&nbsp;&nbsp;<br />have&nbsp;tools&nbsp;for.&nbsp;It&nbsp;<br />is&nbsp;not&nbsp;necessarily&nbsp;a&nbsp;bad&nbsp;method&nbsp;but&nbsp;it&nbsp;can&nbsp;be&nbsp;extremely&nbsp;slow.&nbsp;<br />There&nbsp;are&nbsp;several&nbsp;ways&nbsp;to&nbsp;improve&nbsp;the&nbsp;crash&nbsp;and&nbsp;burn&nbsp;method,&nbsp;an&nbsp;“informed”&nbsp;<br />&nbsp;crash&nbsp;and&nbsp;<br />burn,&nbsp;if&nbsp;you&nbsp;will.&nbsp;Many&nbsp;times&nbsp;we&nbsp;will&nbsp;sprinkle&nbsp;output&nbsp;messages&nbsp;at&nbsp;various&nbsp;pa&nbsp;<br />rts&nbsp;of&nbsp;our&nbsp;<br />code.&nbsp;If&nbsp;we&nbsp;are&nbsp;lucky&nbsp;enough&nbsp;to&nbsp;have&nbsp;a&nbsp;monitor&nbsp;or&nbsp;LCD&nbsp;output&nbsp;device,&nbsp;differe&nbsp;<br />nt&nbsp;tasks&nbsp;or&nbsp;<br />routines&nbsp;can&nbsp;“announce”&nbsp;their&nbsp;execution&nbsp;by&nbsp;displaying&nbsp;a&nbsp;message.&nbsp;Short&nbsp;of&nbsp;&nbsp;<br />this,&nbsp;a&nbsp;single&nbsp;<br />LED&nbsp;may&nbsp;blink&nbsp;or&nbsp;turn&nbsp;on&nbsp;at&nbsp;certain&nbsp;points&nbsp;of&nbsp;the&nbsp;code.&nbsp;If&nbsp;the&nbsp;code&nbsp;“goes&nbsp;i&nbsp;<br />n&nbsp;the&nbsp;weeds”,&nbsp;<br />“crashes”,&nbsp;etc.,&nbsp;we&nbsp;get&nbsp;an&nbsp;idea&nbsp;of&nbsp;where&nbsp;the&nbsp;problem&nbsp;lies&nbsp;by&nbsp;the&nbsp;last&nbsp;prop&nbsp;<br />er&nbsp;output.&nbsp;<br />After&nbsp;some&nbsp;time,&nbsp;the&nbsp;idea&nbsp;of&nbsp;a&nbsp;hardware&nbsp;single&nbsp;step&nbsp;was&nbsp;implemented.&nbsp;This&nbsp;le&nbsp;<br />t&nbsp;you&nbsp;cause&nbsp;<br />the&nbsp;processor&nbsp;to&nbsp;execute&nbsp;one&nbsp;instruction&nbsp;and&nbsp;then&nbsp;stop.&nbsp;At&nbsp;that&nbsp;point,&nbsp;vario&nbsp;<br />us&nbsp;signals&nbsp;could&nbsp;<br />be&nbsp;checked,&nbsp;etc.&nbsp;and&nbsp;you&nbsp;could&nbsp;determine&nbsp;what&nbsp;code&nbsp;was&nbsp;executing.&nbsp;The&nbsp;Intel&nbsp;&nbsp;<br />8041&nbsp;was&nbsp;an&nbsp;<br />early&nbsp;microcontroller&nbsp;that&nbsp;allowed&nbsp;single&nbsp;stepping&nbsp;via&nbsp;a&nbsp;small,&nbsp;external&nbsp;har&nbsp;<br />dware&nbsp;circuit.&nbsp;<br />At&nbsp;some&nbsp;point&nbsp;in&nbsp;history,&nbsp;someone&nbsp;(and&nbsp;after&nbsp;reading&nbsp;this&nbsp;I&nbsp;will&nbsp;get&nbsp;lots&nbsp;of&nbsp;<br />&nbsp;email&nbsp;claiming&nbsp;<br />credit)&nbsp;had&nbsp;the&nbsp;idea&nbsp;of&nbsp;a&nbsp;debugger&nbsp;monitor&nbsp;(aka&nbsp;ROM&nbsp;monitor).&nbsp;This&nbsp;is&nbsp;a&nbsp;smal&nbsp;<br />l&nbsp;piece&nbsp;of&nbsp;<br />code&nbsp;(that’s&nbsp;a&nbsp;relative&nbsp;statement)&nbsp;to&nbsp;help&nbsp;with&nbsp;debugging.&nbsp;It&nbsp;usually&nbsp;commu&nbsp;<br />nicates&nbsp;via&nbsp;a&nbsp;<br />serial&nbsp;interface&nbsp;to&nbsp;a&nbsp;host&nbsp;computer&nbsp;or&nbsp;some&nbsp;form&nbsp;of&nbsp;terminal.&nbsp;A&nbsp;basic&nbsp;monito&nbsp;<br />r&nbsp;allows&nbsp;for&nbsp;the&nbsp;<br />download&nbsp;of&nbsp;code,&nbsp;reading&nbsp;and&nbsp;writing&nbsp;of&nbsp;memory&nbsp;and&nbsp;registers,&nbsp;and&nbsp;perhaps&nbsp;m&nbsp;<br />ost&nbsp;<br />importantly&nbsp;setting&nbsp;breakpoints,&nbsp;single&nbsp;stepping,&nbsp;and&nbsp;real-&nbsp;time&nbsp;execution.&nbsp;&nbsp;<br />More&nbsp;complex&nbsp;<br />monitors&nbsp;may&nbsp;allow&nbsp;source&nbsp;code&nbsp;profiling,&nbsp;complex&nbsp;breakpoints,&nbsp;and&nbsp;more.&nbsp;<br />Soon&nbsp;after&nbsp;this,&nbsp;a&nbsp;new&nbsp;device&nbsp;was&nbsp;introduced.&nbsp;The&nbsp;ROM&nbsp;emulator&nbsp;is&nbsp;a&nbsp;plug-&nbsp;in&nbsp;<br />&nbsp;replacement&nbsp;<br />for&nbsp;the&nbsp;ROM&nbsp;chips&nbsp;on&nbsp;the&nbsp;target.&nbsp;The&nbsp;device&nbsp;is&nbsp;connected&nbsp;to&nbsp;the&nbsp;host&nbsp;compute&nbsp;<br />r&nbsp;via&nbsp;a&nbsp;serial,&nbsp;<br />parallel,&nbsp;or&nbsp;more&nbsp;recently,&nbsp;an&nbsp;ethernet&nbsp;link.&nbsp;In&nbsp;its&nbsp;simpliest&nbsp;form,&nbsp;the&nbsp;ROM&nbsp;<br />&nbsp;emulator&nbsp;<br />allows&nbsp;you&nbsp;to&nbsp;quickly&nbsp;download&nbsp;code&nbsp;(as&nbsp;opposed&nbsp;to&nbsp;programming&nbsp;the&nbsp;ROM&nbsp;in&nbsp;a&nbsp;&nbsp;<br />separate&nbsp;<br />programmer)&nbsp;and&nbsp;“crash&nbsp;and&nbsp;burn.”&nbsp;In&nbsp;its&nbsp;most&nbsp;sophisticated&nbsp;form,&nbsp;you&nbsp;can&nbsp;&nbsp;<br />download&nbsp;code&nbsp;<br />that&nbsp;contains&nbsp;a&nbsp;ROM&nbsp;monitor&nbsp;and&nbsp;communicate&nbsp;with&nbsp;the&nbsp;monitor&nbsp;via&nbsp;the&nbsp;emulato&nbsp;<br />r’s&nbsp;<br />connector.&nbsp;<br />Similiar&nbsp;in&nbsp;concept&nbsp;to&nbsp;the&nbsp;ROM&nbsp;emulator,&nbsp;the&nbsp;next&nbsp;major&nbsp;breakthrough&nbsp;in&nbsp;debu&nbsp;<br />gging&nbsp;was&nbsp;<br />the&nbsp;user&nbsp;friendly&nbsp;in-&nbsp;circuit&nbsp;emulator&nbsp;(ICE).&nbsp;This&nbsp;device&nbsp;allowed&nbsp;full&nbsp;acces&nbsp;<br />s&nbsp;to&nbsp;the&nbsp;<br />programmer’s&nbsp;model&nbsp;of&nbsp;the&nbsp;processor,&nbsp;hardware&nbsp;breakpoints,&nbsp;execution&nbsp;trace,&nbsp;<br />&nbsp;and&nbsp;much&nbsp;<br />more.&nbsp;The&nbsp;ICE&nbsp;typically&nbsp;used&nbsp;a&nbsp;special&nbsp;version&nbsp;of&nbsp;the&nbsp;processor&nbsp;called&nbsp;a&nbsp;“b&nbsp;<br />ond-&nbsp;out”.&nbsp;This&nbsp;<br />form&nbsp;of&nbsp;the&nbsp;chip&nbsp;has&nbsp;many&nbsp;more&nbsp;leads&nbsp;on&nbsp;it,&nbsp;bringing&nbsp;typically&nbsp;internal&nbsp;sign&nbsp;<br />als&nbsp;to&nbsp;the&nbsp;<br />outside&nbsp;to&nbsp;be&nbsp;monitored&nbsp;and&nbsp;manipulated.&nbsp;System,&nbsp;or&nbsp;external,&nbsp;memory&nbsp;is&nbsp;also&nbsp;<br />&nbsp;supplied&nbsp;<br />and&nbsp;may&nbsp;be&nbsp;mapped&nbsp;into&nbsp;the&nbsp;user&nbsp;space.&nbsp;This&nbsp;allows&nbsp;for&nbsp;debugging&nbsp;code&nbsp;before&nbsp;<br />&nbsp;a&nbsp;target&nbsp;<br />system&nbsp;exists!&nbsp;Typically&nbsp;an&nbsp;ICE&nbsp;is&nbsp;a&nbsp;complex&nbsp;piece&nbsp;of&nbsp;hardware&nbsp;and&nbsp;software&nbsp;&nbsp;<br />and&nbsp;is&nbsp;<br />considerably&nbsp;more&nbsp;expensive&nbsp;than&nbsp;a&nbsp;monitor&nbsp;based&nbsp;debugger.&nbsp;<br />The&nbsp;latest&nbsp;addition&nbsp;to&nbsp;the&nbsp;debugger&nbsp;arsenal&nbsp;is&nbsp;on-&nbsp;chip&nbsp;debugging&nbsp;(OCD).&nbsp;Ear&nbsp;<br />ly&nbsp;on-&nbsp;chip&nbsp;<br />debuggers&nbsp;were&nbsp;basically&nbsp;debug&nbsp;monitors&nbsp;written&nbsp;into&nbsp;the&nbsp;microcode&nbsp;of&nbsp;the&nbsp;ta&nbsp;<br />rget&nbsp;processor&nbsp;<br />(Motorola&nbsp;CPU32&nbsp;family&nbsp;of&nbsp;processors).&nbsp;More&nbsp;advanced&nbsp;systems&nbsp;added&nbsp;other&nbsp;fea&nbsp;<br />tures&nbsp;such&nbsp;<br />as&nbsp;real-&nbsp;time&nbsp;reading&nbsp;of&nbsp;the&nbsp;program&nbsp;counter&nbsp;(Analog&nbsp;Devices’&nbsp;SHARC&nbsp;process&nbsp;<br />or)&nbsp;and&nbsp;near&nbsp;<br />real-&nbsp;time&nbsp;reading&nbsp;of&nbsp;memory&nbsp;locations&nbsp;(Motorola’s&nbsp;ColdFire).&nbsp;The&nbsp;basic&nbsp;OCD&nbsp;<br />&nbsp;allows&nbsp;for&nbsp;<br />code&nbsp;download,&nbsp;reading&nbsp;and&nbsp;writing&nbsp;memory&nbsp;and&nbsp;processor&nbsp;resources,&nbsp;single&nbsp;st&nbsp;<br />epping,&nbsp;<br />processor&nbsp;reset,&nbsp;and&nbsp;status&nbsp;(running&nbsp;or&nbsp;halted).&nbsp;Typically,&nbsp;on-&nbsp;chip&nbsp;periphe&nbsp;<br />rals&nbsp;may&nbsp;be&nbsp;set&nbsp;<br />to&nbsp;shut&nbsp;down&nbsp;during&nbsp;OCD&nbsp;(as&nbsp;opposed&nbsp;to&nbsp;while&nbsp;the&nbsp;chip&nbsp;is&nbsp;executing&nbsp;user&nbsp;code&nbsp;<br />).&nbsp;<br />Some&nbsp;processors&nbsp;enhance&nbsp;their&nbsp;OCD&nbsp;with&nbsp;other&nbsp;resources&nbsp;truly&nbsp;creating&nbsp;comple&nbsp;<br />te&nbsp;on-&nbsp;chip&nbsp;<br />debuggers.&nbsp;IBMs&nbsp;4xx&nbsp;PowerPC&nbsp;family&nbsp;of&nbsp;embedded&nbsp;processors&nbsp;have&nbsp;a&nbsp;seven&nbsp;wire&nbsp;&nbsp;<br />interface&nbsp;<br />(“&nbsp;RISCTrace”)&nbsp;in&nbsp;addition&nbsp;to&nbsp;the&nbsp;OCD&nbsp;(“&nbsp;RISCWatch”)&nbsp;that&nbsp;allow&nbsp;for&nbsp;a&nbsp;co&nbsp;<br />mplete&nbsp;trace&nbsp;of&nbsp;the&nbsp;<br />processor’s&nbsp;execution.&nbsp;Simply&nbsp;capturing&nbsp;these&nbsp;lines&nbsp;in&nbsp;real-&nbsp;time,&nbsp;a&nbsp;debugg&nbsp;<br />er&nbsp;can&nbsp;then&nbsp;<br />display&nbsp;a&nbsp;full&nbsp;trace&nbsp;of&nbsp;the&nbsp;last&nbsp;&nbsp;x&nbsp;instructions&nbsp;executed.&nbsp;<br />&nbsp;<br />--&nbsp;<br />&nbsp;<br />※&nbsp;来源:·BBS&nbsp;水木清华站&nbsp;smth.org·[FROM:&nbsp;202.117.114.7]&nbsp;<br /><a href="00000001.htm">上一篇</a><a href="javascript:history.go(-1)">返回上一页</a><a href="index.htm">回到目录</a><a href="#top">回到页首</a><a href="00000003.htm">下一篇</a></h1></center><center><h1>BBS 水木清华站∶精华区</h1></center></body></html>

⌨️ 快捷键说明

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