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

📄 00000004.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手册4                               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手册4&nbsp;<br />发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Thu&nbsp;Oct&nbsp;26&nbsp;16:19:56&nbsp;2000)&nbsp;<br />&nbsp;<br />SECTION&nbsp;II&nbsp;-&nbsp;On-&nbsp;Chip&nbsp;Debugging&nbsp;<br />What&nbsp;is&nbsp;OCD?&nbsp;-&nbsp;Hardware,&nbsp;Software,&nbsp;…&nbsp;<br />In&nbsp;the&nbsp;general&nbsp;sense,&nbsp;on-&nbsp;chip&nbsp;debugging&nbsp;is&nbsp;a&nbsp;combination&nbsp;of&nbsp;hardware&nbsp;and&nbsp;so&nbsp;<br />ftware,&nbsp;both&nbsp;<br />on&nbsp;and&nbsp;off&nbsp;the&nbsp;chip.&nbsp;The&nbsp;part&nbsp;that&nbsp;resides&nbsp;on&nbsp;the&nbsp;chip&nbsp;is&nbsp;implemented&nbsp;in&nbsp;var&nbsp;<br />ious&nbsp;ways.&nbsp;It&nbsp;<br />may&nbsp;be&nbsp;a&nbsp;microcode&nbsp;based&nbsp;monitor&nbsp;(Motorola&nbsp;CPU32)&nbsp;or&nbsp;hardware&nbsp;implemented&nbsp;re&nbsp;<br />sources&nbsp;<br />(IBM&nbsp;PPC403).&nbsp;There&nbsp;may&nbsp;be&nbsp;resources&nbsp;used&nbsp;that&nbsp;are&nbsp;available&nbsp;to&nbsp;the&nbsp;end-&nbsp;use&nbsp;<br />r’s&nbsp;code&nbsp;such&nbsp;<br />as&nbsp;breakpoint&nbsp;registers&nbsp;(most&nbsp;embedded&nbsp;PowerPC&nbsp;implementations)&nbsp;or&nbsp;dedicated&nbsp;<br />&nbsp;hardware&nbsp;<br />purely&nbsp;used&nbsp;by&nbsp;the&nbsp;OCD&nbsp;such&nbsp;as&nbsp;instruction&nbsp;stuff&nbsp;buffers&nbsp;(also&nbsp;in&nbsp;embedded&nbsp;P&nbsp;<br />owerPC&nbsp;<br />implementations).&nbsp;<br />On-&nbsp;chip&nbsp;debugging&nbsp;does&nbsp;require&nbsp;some&nbsp;external&nbsp;hardware,&nbsp;however&nbsp;minimal&nbsp;it&nbsp;m&nbsp;<br />ay&nbsp;be.&nbsp;<br />There&nbsp;must&nbsp;communication&nbsp;between&nbsp;the&nbsp;chip&nbsp;and&nbsp;debugger&nbsp;host.&nbsp;In&nbsp;most&nbsp;cases&nbsp;t&nbsp;<br />his&nbsp;is&nbsp;via&nbsp;<br />a&nbsp;dual-&nbsp;row&nbsp;pin&nbsp;header&nbsp;and&nbsp;several&nbsp;pins&nbsp;on&nbsp;the&nbsp;processor.&nbsp;The&nbsp;IBM&nbsp;403&nbsp;family&nbsp;<br />&nbsp;uses&nbsp;the&nbsp;<br />JTAG&nbsp;port&nbsp;pins,&nbsp;in&nbsp;addition&nbsp;to&nbsp;RESET,&nbsp;power&nbsp;sense&nbsp;and&nbsp;ground,&nbsp;and&nbsp;connects&nbsp;v&nbsp;<br />ia&nbsp;a&nbsp;16&nbsp;pin&nbsp;<br />dual-&nbsp;row&nbsp;header.&nbsp;Motorola&nbsp;BDM&nbsp;typically&nbsp;uses&nbsp;five&nbsp;dedicated&nbsp;pins&nbsp;(sometimes&nbsp;<br />&nbsp;multiplexed&nbsp;<br />with&nbsp;real-&nbsp;time&nbsp;execution&nbsp;functions),&nbsp;power,&nbsp;ground,&nbsp;and&nbsp;at&nbsp;least&nbsp;one&nbsp;reset,&nbsp;<br />&nbsp;all&nbsp;terminating&nbsp;<br />in&nbsp;a&nbsp;10&nbsp;pin&nbsp;dual-&nbsp;row&nbsp;header.&nbsp;Many&nbsp;of&nbsp;the&nbsp;DSP&nbsp;chips&nbsp;use&nbsp;a&nbsp;Texas&nbsp;Instruments&nbsp;&nbsp;<br />style&nbsp;<br />standard&nbsp;JTAG&nbsp;interface.&nbsp;Motorola&nbsp;has&nbsp;expanded&nbsp;the&nbsp;interface’s&nbsp;internal&nbsp;def&nbsp;<br />inition&nbsp;to&nbsp;<br />include&nbsp;its&nbsp;DSP&nbsp;BDM&nbsp;equivalent,&nbsp;OnCE.&nbsp;<br />On-&nbsp;chip&nbsp;resources&nbsp;are&nbsp;only&nbsp;half&nbsp;the&nbsp;story.&nbsp;A&nbsp;target&nbsp;system&nbsp;with&nbsp;an&nbsp;OCD&nbsp;proc&nbsp;<br />essor&nbsp;and&nbsp;its&nbsp;<br />dual-&nbsp;row&nbsp;header&nbsp;are&nbsp;useless&nbsp;unless&nbsp;you&nbsp;have&nbsp;a&nbsp;host&nbsp;to&nbsp;communicate&nbsp;with.&nbsp;The&nbsp;<br />&nbsp;host&nbsp;runs&nbsp;<br />your&nbsp;debugger&nbsp;software&nbsp;and&nbsp;interfaces&nbsp;to&nbsp;the&nbsp;OCD&nbsp;header&nbsp;in&nbsp;various&nbsp;ways.&nbsp;The&nbsp;<br />&nbsp;debugger&nbsp;<br />on&nbsp;the&nbsp;host&nbsp;implements&nbsp;the&nbsp;user&nbsp;interface&nbsp;displaying&nbsp;your&nbsp;code,&nbsp;processor&nbsp;re&nbsp;<br />sources,&nbsp;target&nbsp;<br />memory,&nbsp;etc.&nbsp;The&nbsp;hardware&nbsp;interface&nbsp;may&nbsp;be&nbsp;one&nbsp;of&nbsp;many&nbsp;types.&nbsp;The&nbsp;simplest&nbsp;i&nbsp;<br />s&nbsp;typically&nbsp;<br />a&nbsp;“wiggler”,&nbsp;a&nbsp;device&nbsp;that&nbsp;interfaces&nbsp;the&nbsp;parallel&nbsp;port&nbsp;of&nbsp;an&nbsp;IBM&nbsp;type&nbsp;PC&nbsp;&nbsp;<br />to&nbsp;an&nbsp;OCD&nbsp;header&nbsp;<br />(Software&nbsp;Development&nbsp;Systems&nbsp;BDM,&nbsp;Motorola&nbsp;ICD&nbsp;cable).&nbsp;This&nbsp;is&nbsp;both&nbsp;simple&nbsp;&nbsp;<br />and&nbsp;slow.&nbsp;<br />Other&nbsp;interfaces&nbsp;are&nbsp;serial&nbsp;port&nbsp;(RS-&nbsp;232)&nbsp;to&nbsp;OCD&nbsp;converters&nbsp;(Cygnus),&nbsp;high&nbsp;&nbsp;<br />speed&nbsp;parallel&nbsp;<br />port&nbsp;to&nbsp;OCD&nbsp;(Macraigor&nbsp;Systems),&nbsp;ethernet&nbsp;to&nbsp;OCD&nbsp;(Cygnus,&nbsp;Macraigor&nbsp;Systems)&nbsp;<br />,&nbsp;ISA&nbsp;bus&nbsp;<br />card&nbsp;to&nbsp;OCD&nbsp;(Nohau),&nbsp;and&nbsp;others.&nbsp;Cost&nbsp;of&nbsp;host&nbsp;software&nbsp;runs&nbsp;from&nbsp;$49&nbsp;to&nbsp;seve&nbsp;<br />ral&nbsp;thousand&nbsp;<br />dollars.&nbsp;The&nbsp;hardware&nbsp;typically&nbsp;costs&nbsp;from&nbsp;$100&nbsp;to&nbsp;$3000&nbsp;(wiggler&nbsp;vs.&nbsp;ethern&nbsp;<br />et&nbsp;interface).&nbsp;<br />Types&nbsp;of&nbsp;OCD&nbsp;<br />BDM&nbsp;(Motorola&nbsp;CPU16,&nbsp;CPU32,&nbsp;ColdFire)&nbsp;<br />As&nbsp;mentioned&nbsp;previously,&nbsp;Motorola&nbsp;coined&nbsp;the&nbsp;term&nbsp;BDM&nbsp;(Background&nbsp;Mode&nbsp;Debug&nbsp;<br />)&nbsp;with&nbsp;<br />its&nbsp;CPU32&nbsp;family&nbsp;of&nbsp;microcontrollers.&nbsp;This&nbsp;was&nbsp;followed&nbsp;by&nbsp;the&nbsp;CPU16&nbsp;family,&nbsp;<br />&nbsp;and&nbsp;then&nbsp;<br />ColdFire.&nbsp;These&nbsp;BDMs&nbsp;are&nbsp;extremely&nbsp;similar.&nbsp;They&nbsp;build&nbsp;upon&nbsp;the&nbsp;concept&nbsp;of&nbsp;a&nbsp;<br />&nbsp;ROM&nbsp;<br />monitor&nbsp;and&nbsp;have&nbsp;a&nbsp;similar&nbsp;command&nbsp;set.&nbsp;The&nbsp;core&nbsp;of&nbsp;the&nbsp;hardware&nbsp;interface&nbsp;c&nbsp;<br />onsists&nbsp;of&nbsp;a&nbsp;<br />serial&nbsp;data&nbsp;in,&nbsp;serial&nbsp;data&nbsp;out,&nbsp;serial&nbsp;clock/&nbsp;breakpoint,&nbsp;and&nbsp;freeze&nbsp;status&nbsp;<br />&nbsp;signal.&nbsp;The&nbsp;commands&nbsp;<br />are&nbsp;shifted&nbsp;into&nbsp;the&nbsp;chip&nbsp;serially&nbsp;and&nbsp;are&nbsp;17&nbsp;bits&nbsp;in&nbsp;length.&nbsp;The&nbsp;command&nbsp;se&nbsp;<br />t&nbsp;for&nbsp;the&nbsp;<br />CPU32&nbsp;is&nbsp;as&nbsp;follows:&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RAREG/&nbsp;RDREG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;read&nbsp;address&nbsp;or&nbsp;data&nbsp;register&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WAREG/&nbsp;WDREG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write&nbsp;address&nbsp;or&nbsp;data&nbsp;register&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RSREG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;read&nbsp;system&nbsp;control&nbsp;register&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WSREG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write&nbsp;system&nbsp;control&nbsp;register&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;READ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;read&nbsp;memory&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WRITE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write&nbsp;memory&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DUMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;read&nbsp;memory&nbsp;block&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write&nbsp;memory&nbsp;block&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run&nbsp;CPU&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call&nbsp;user&nbsp;patch&nbsp;code&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CPU&nbsp;reset&nbsp;instruction&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;null&nbsp;command&nbsp;<br />These&nbsp;commands&nbsp;closely&nbsp;mirror&nbsp;those&nbsp;that&nbsp;have&nbsp;been&nbsp;used&nbsp;for&nbsp;years&nbsp;in&nbsp;ROM&nbsp;mon&nbsp;<br />itors.&nbsp;<br />Single&nbsp;stepping&nbsp;is&nbsp;accomplished&nbsp;via&nbsp;hardware&nbsp;control&nbsp;of&nbsp;the&nbsp;BDM&nbsp;port&nbsp;or&nbsp;by&nbsp;p&nbsp;<br />lacing&nbsp;a&nbsp;<br />software&nbsp;breakpoint&nbsp;type&nbsp;of&nbsp;instruction&nbsp;in&nbsp;the&nbsp;code&nbsp;stream.&nbsp;<br />The&nbsp;processor&nbsp;is&nbsp;not&nbsp;aware&nbsp;of&nbsp;the&nbsp;BDM&nbsp;engine,&nbsp;it&nbsp;is&nbsp;not&nbsp;seen&nbsp;as&nbsp;an&nbsp;exception&nbsp;<br />&nbsp;or&nbsp;interrupt.&nbsp;<br />There&nbsp;is&nbsp;a&nbsp;“background”&nbsp;instruction,&nbsp;“BGND”&nbsp;which&nbsp;causes&nbsp;the&nbsp;processor&nbsp;t&nbsp;<br />o&nbsp;enter&nbsp;BDM&nbsp;<br />when&nbsp;it&nbsp;is&nbsp;executed.&nbsp;BDM&nbsp;is&nbsp;left,&nbsp;and&nbsp;real-&nbsp;time&nbsp;code&nbsp;execution&nbsp;is&nbsp;resumed,&nbsp;&nbsp;<br />upon&nbsp;the&nbsp;GO&nbsp;<br />command&nbsp;being&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="00000003.htm">上一篇</a><a href="javascript:history.go(-1)">返回上一页</a><a href="index.htm">回到目录</a><a href="#top">回到页首</a><a href="00000005.htm">下一篇</a></h1></center><center><h1>BBS 水木清华站∶精华区</h1></center></body></html>

⌨️ 快捷键说明

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