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

📄 00000008.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手册end                             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手册end&nbsp;<br />发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Thu&nbsp;Oct&nbsp;26&nbsp;16:25:47&nbsp;2000)&nbsp;<br />&nbsp;<br />OCD&nbsp;specifics&nbsp;<br />There&nbsp;are&nbsp;a&nbsp;handful&nbsp;of&nbsp;OCD&nbsp;debuggers&nbsp;available&nbsp;on&nbsp;the&nbsp;market.&nbsp;They&nbsp;range&nbsp;in&nbsp;&nbsp;<br />price&nbsp;from&nbsp;<br />freeware&nbsp;to&nbsp;several&nbsp;thousand&nbsp;dollars.&nbsp;All&nbsp;of&nbsp;them&nbsp;give&nbsp;you&nbsp;the&nbsp;basics:&nbsp;read&nbsp;&nbsp;<br />and&nbsp;write&nbsp;<br />registers,&nbsp;read&nbsp;and&nbsp;write&nbsp;memory,&nbsp;download&nbsp;code,&nbsp;single&nbsp;step,&nbsp;run,&nbsp;etc.&nbsp;Most&nbsp;<br />&nbsp;give&nbsp;you&nbsp;<br />source&nbsp;level&nbsp;debug&nbsp;capabilities.&nbsp;Some&nbsp;work&nbsp;only&nbsp;with&nbsp;assembly&nbsp;code,&nbsp;others&nbsp;w&nbsp;<br />ith&nbsp;any&nbsp;<br />language.&nbsp;The&nbsp;differences&nbsp;of&nbsp;most&nbsp;concern&nbsp;are&nbsp;how&nbsp;the&nbsp;aforementioned&nbsp;situati&nbsp;<br />ons&nbsp;are&nbsp;<br />handled.&nbsp;Is&nbsp;there&nbsp;“hidden”&nbsp;initialization?&nbsp;Are&nbsp;there&nbsp;“user&nbsp;friendly”&nbsp;tra&nbsp;<br />ps?&nbsp;And&nbsp;what&nbsp;about&nbsp;<br />that&nbsp;start-&nbsp;up&nbsp;stuff?&nbsp;<br />Just&nbsp;like&nbsp;getting&nbsp;out&nbsp;of&nbsp;bed&nbsp;in&nbsp;the&nbsp;morning&nbsp;is&nbsp;tough&nbsp;for&nbsp;many&nbsp;of&nbsp;us,&nbsp;some&nbsp;pr&nbsp;<br />ocessors&nbsp;need&nbsp;a&nbsp;<br />helping&nbsp;hand&nbsp;coming&nbsp;out&nbsp;of&nbsp;reset.&nbsp;Let&nbsp;us&nbsp;assume&nbsp;that&nbsp;my&nbsp;suggestions&nbsp;for&nbsp;desi&nbsp;<br />gning&nbsp;your&nbsp;<br />prototype&nbsp;were&nbsp;ignored.&nbsp;Your&nbsp;target&nbsp;has&nbsp;its&nbsp;boot&nbsp;chip&nbsp;select&nbsp;attached&nbsp;to&nbsp;a&nbsp;R&nbsp;<br />OM&nbsp;chip&nbsp;of&nbsp;<br />some&nbsp;type.&nbsp;Since&nbsp;this&nbsp;is&nbsp;debug&nbsp;time,&nbsp;there&nbsp;is&nbsp;no&nbsp;code&nbsp;in&nbsp;the&nbsp;ROM&nbsp;as&nbsp;of&nbsp;yet.&nbsp;&nbsp;<br />You&nbsp;have&nbsp;a&nbsp;<br />debugger&nbsp;connected&nbsp;to&nbsp;the&nbsp;OCD&nbsp;header&nbsp;and&nbsp;want&nbsp;to&nbsp;start&nbsp;testing&nbsp;your&nbsp;code.&nbsp;Yo&nbsp;<br />u&nbsp;have&nbsp;the&nbsp;<br />debugger&nbsp;reset&nbsp;the&nbsp;target&nbsp;and&nbsp;then&nbsp;download&nbsp;your&nbsp;code.&nbsp;WRONG!&nbsp;Upon&nbsp;reset,&nbsp;th&nbsp;<br />e&nbsp;only&nbsp;<br />properly&nbsp;setup&nbsp;chip&nbsp;select&nbsp;line&nbsp;will&nbsp;be&nbsp;the&nbsp;boot&nbsp;chip&nbsp;select.&nbsp;This&nbsp;is&nbsp;pointi&nbsp;<br />ng&nbsp;to&nbsp;useless&nbsp;ROM.&nbsp;<br />Whatever&nbsp;chip&nbsp;select&nbsp;is&nbsp;attached&nbsp;to&nbsp;your&nbsp;RAM&nbsp;must&nbsp;be&nbsp;initialized.&nbsp;But&nbsp;by&nbsp;who&nbsp;<br />&nbsp;(or&nbsp;what)?&nbsp;<br />Some&nbsp;debuggers&nbsp;have&nbsp;built&nbsp;in&nbsp;setups&nbsp;for&nbsp;known&nbsp;hardware&nbsp;such&nbsp;as&nbsp;various&nbsp;manuf&nbsp;<br />acturer’s&nbsp;<br />development&nbsp;boards.&nbsp;Usually&nbsp;you&nbsp;can&nbsp;describe&nbsp;your&nbsp;custom&nbsp;target&nbsp;via&nbsp;dialogs&nbsp;&nbsp;<br />to&nbsp;tell&nbsp;the&nbsp;<br />debugger&nbsp;how&nbsp;to&nbsp;setup&nbsp;the&nbsp;board.&nbsp;Other&nbsp;debuggers&nbsp;allow&nbsp;you&nbsp;to&nbsp;write&nbsp;command&nbsp;&nbsp;<br />files&nbsp;<br />(“&nbsp;macros”,&nbsp;“scripts”,&nbsp;etc.)&nbsp;to&nbsp;do&nbsp;the&nbsp;setup.&nbsp;These&nbsp;files&nbsp;have&nbsp;commands&nbsp;&nbsp;<br />such&nbsp;as&nbsp;WRITEL&nbsp;<br />0x1234,&nbsp;0x5678&nbsp;which&nbsp;would&nbsp;write&nbsp;a&nbsp;LONG&nbsp;value&nbsp;of&nbsp;hexadecimal&nbsp;1234&nbsp;to&nbsp;locatio&nbsp;<br />n&nbsp;<br />hexadecimal&nbsp;5678.&nbsp;With&nbsp;some&nbsp;debuggers&nbsp;you&nbsp;must&nbsp;explicitly&nbsp;run&nbsp;the&nbsp;command&nbsp;fi&nbsp;<br />le&nbsp;every&nbsp;<br />time&nbsp;you&nbsp;reset&nbsp;the&nbsp;processor,&nbsp;others&nbsp;do&nbsp;this&nbsp;automatically.&nbsp;Again,&nbsp;the&nbsp;main&nbsp;&nbsp;<br />problem&nbsp;with&nbsp;<br />doing&nbsp;this&nbsp;is&nbsp;that&nbsp;your&nbsp;code&nbsp;is&nbsp;now&nbsp;in&nbsp;an&nbsp;environment&nbsp;that&nbsp;is&nbsp;different&nbsp;from&nbsp;<br />&nbsp;the&nbsp;reset&nbsp;<br />environment,&nbsp;and&nbsp;your&nbsp;code&nbsp;did&nbsp;not&nbsp;cause&nbsp;this&nbsp;change.&nbsp;If&nbsp;the&nbsp;only&nbsp;command&nbsp;is&nbsp;<br />&nbsp;a&nbsp;setup&nbsp;of&nbsp;<br />the&nbsp;RAM&nbsp;chip&nbsp;select,&nbsp;this&nbsp;is&nbsp;probably&nbsp;not&nbsp;too&nbsp;big&nbsp;a&nbsp;problem.&nbsp;Probably.&nbsp;<br />Another&nbsp;setup&nbsp;issue&nbsp;is&nbsp;the&nbsp;speed&nbsp;of&nbsp;the&nbsp;target&nbsp;processor.&nbsp;Many&nbsp;of&nbsp;the&nbsp;newer&nbsp;&nbsp;<br />processors&nbsp;use&nbsp;<br />an&nbsp;inexpensive&nbsp;32&nbsp;kilohertz&nbsp;crystal&nbsp;along&nbsp;with&nbsp;an&nbsp;on-&nbsp;chip&nbsp;phase&nbsp;lock&nbsp;loop&nbsp;(&nbsp;<br />pll)&nbsp;to&nbsp;boost&nbsp;the&nbsp;<br />system&nbsp;frequency.&nbsp;Upon&nbsp;reset,&nbsp;the&nbsp;pll&nbsp;is&nbsp;at&nbsp;some&nbsp;default&nbsp;value,&nbsp;quite&nbsp;possib&nbsp;<br />ly&nbsp;a&nbsp;very&nbsp;slow&nbsp;<br />one.&nbsp;Often,&nbsp;your&nbsp;application’s&nbsp;initialization&nbsp;code&nbsp;will&nbsp;set&nbsp;the&nbsp;pll&nbsp;to&nbsp;some&nbsp;<br />&nbsp;faster&nbsp;value,&nbsp;but&nbsp;<br />during&nbsp;debug&nbsp;this&nbsp;only&nbsp;happens&nbsp;after&nbsp;your&nbsp;code&nbsp;is&nbsp;downloaded.&nbsp;If&nbsp;the&nbsp;debugge&nbsp;<br />r&nbsp;does&nbsp;not&nbsp;do&nbsp;<br />any&nbsp;type&nbsp;of&nbsp;setup&nbsp;(hidden&nbsp;or&nbsp;not)&nbsp;and&nbsp;you&nbsp;do&nbsp;a&nbsp;download&nbsp;(via&nbsp;the&nbsp;boot&nbsp;chip&nbsp;s&nbsp;<br />elect),&nbsp;the&nbsp;<br />processor&nbsp;is&nbsp;most&nbsp;likely&nbsp;running&nbsp;at&nbsp;a&nbsp;slow&nbsp;speed.&nbsp;This&nbsp;will&nbsp;slow&nbsp;down&nbsp;your&nbsp;d&nbsp;<br />ownload&nbsp;which&nbsp;<br />is&nbsp;always&nbsp;too&nbsp;long,&nbsp;no&nbsp;matter&nbsp;what&nbsp;the&nbsp;speed!&nbsp;This&nbsp;is&nbsp;another&nbsp;reason&nbsp;that&nbsp;yo&nbsp;<br />u&nbsp;must&nbsp;<br />thoroughly&nbsp;think&nbsp;about&nbsp;how&nbsp;the&nbsp;setup&nbsp;will&nbsp;work.&nbsp;<br />Talking&nbsp;about&nbsp;speed,&nbsp;one&nbsp;more&nbsp;issue&nbsp;that&nbsp;has&nbsp;not&nbsp;been&nbsp;discussed&nbsp;is&nbsp;raw&nbsp;OCD&nbsp;s&nbsp;<br />peed.&nbsp;All&nbsp;of&nbsp;<br />the&nbsp;OCD&nbsp;protocols&nbsp;are&nbsp;implemented&nbsp;serially.&nbsp;The&nbsp;limit,&nbsp;or&nbsp;maximum&nbsp;OCD&nbsp;speed,&nbsp;<br />&nbsp;is&nbsp;usually&nbsp;<br />a&nbsp;function&nbsp;of&nbsp;the&nbsp;CPU&nbsp;clock&nbsp;speed.&nbsp;Typically,&nbsp;the&nbsp;OCD&nbsp;may&nbsp;only&nbsp;run&nbsp;one-&nbsp;thir&nbsp;<br />d&nbsp;or&nbsp;one-&nbsp;half&nbsp;<br />of&nbsp;the&nbsp;CPU&nbsp;speed.&nbsp;Most&nbsp;OCD&nbsp;hardware&nbsp;interfaces&nbsp;start&nbsp;at&nbsp;a&nbsp;slow&nbsp;speed&nbsp;since&nbsp;t&nbsp;<br />he&nbsp;processor&nbsp;<br />speed&nbsp;usually&nbsp;cannot&nbsp;be&nbsp;determined.&nbsp;If&nbsp;the&nbsp;speed&nbsp;of&nbsp;the&nbsp;interface&nbsp;is&nbsp;not&nbsp;set&nbsp;<br />&nbsp;for&nbsp;the&nbsp;maximum&nbsp;<br />speed&nbsp;(either&nbsp;the&nbsp;fastest&nbsp;the&nbsp;CPU&nbsp;will&nbsp;handle&nbsp;or&nbsp;the&nbsp;fastest&nbsp;the&nbsp;interface&nbsp;c&nbsp;<br />an&nbsp;run,&nbsp;which&nbsp;<br />ever&nbsp;is&nbsp;slower)&nbsp;the&nbsp;speed&nbsp;of&nbsp;debugging&nbsp;is&nbsp;affected.&nbsp;This&nbsp;is&nbsp;most&nbsp;obvious&nbsp;in&nbsp;&nbsp;<br />the&nbsp;download&nbsp;<br />speed&nbsp;of&nbsp;code.&nbsp;Some&nbsp;debuggers&nbsp;will&nbsp;allow&nbsp;you&nbsp;to&nbsp;modify&nbsp;the&nbsp;interface&nbsp;speed&nbsp;i&nbsp;<br />n&nbsp;a&nbsp;command&nbsp;<br />file.&nbsp;You&nbsp;would&nbsp;do&nbsp;this&nbsp;only&nbsp;after&nbsp;you&nbsp;set&nbsp;any&nbsp;pll&nbsp;speed,&nbsp;of&nbsp;course.&nbsp;Additio&nbsp;<br />nally,&nbsp;you&nbsp;will&nbsp;<br />probably&nbsp;have&nbsp;to&nbsp;set&nbsp;the&nbsp;interface&nbsp;speed&nbsp;to&nbsp;be&nbsp;slow&nbsp;at&nbsp;the&nbsp;start&nbsp;of&nbsp;the&nbsp;comm&nbsp;<br />and&nbsp;file.&nbsp;Why?&nbsp;<br />Once&nbsp;you&nbsp;RESET&nbsp;the&nbsp;target&nbsp;processor,&nbsp;it&nbsp;is&nbsp;running&nbsp;at&nbsp;its&nbsp;default&nbsp;speed.&nbsp;If&nbsp;&nbsp;<br />this&nbsp;is&nbsp;slow,&nbsp;you&nbsp;<br />must&nbsp;slow&nbsp;the&nbsp;interface&nbsp;to&nbsp;do&nbsp;your&nbsp;pll&nbsp;setup,&nbsp;then&nbsp;speed&nbsp;up&nbsp;the&nbsp;interface.&nbsp;A&nbsp;<br />nd&nbsp;you&nbsp;thought&nbsp;<br />this&nbsp;was&nbsp;going&nbsp;to&nbsp;be&nbsp;easy.&nbsp;Ideally,&nbsp;you&nbsp;may&nbsp;have&nbsp;a&nbsp;macro&nbsp;that&nbsp;runs&nbsp;whenever&nbsp;&nbsp;<br />you&nbsp;hit&nbsp;the&nbsp;<br />debugger&nbsp;RESET&nbsp;TARGET&nbsp;button&nbsp;or&nbsp;command&nbsp;on&nbsp;your&nbsp;debugger&nbsp;that&nbsp;will:&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;1.&nbsp;Reset&nbsp;the&nbsp;target&nbsp;CPU&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;2.&nbsp;Lower&nbsp;the&nbsp;OCD&nbsp;speed&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;3.&nbsp;Set&nbsp;the&nbsp;processor&nbsp;PLL&nbsp;for&nbsp;desired&nbsp;speed&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;4.&nbsp;Raise&nbsp;the&nbsp;OCD&nbsp;speed&nbsp;to&nbsp;as&nbsp;fast&nbsp;as&nbsp;the&nbsp;processor&nbsp;will&nbsp;allow&nbsp;<br />So&nbsp;how&nbsp;do&nbsp;you&nbsp;choose&nbsp;a&nbsp;debugger?&nbsp;<br />Bascially,&nbsp;use&nbsp;the&nbsp;information&nbsp;in&nbsp;this&nbsp;paper,&nbsp;ask&nbsp;questions&nbsp;of&nbsp;the&nbsp;vendor,&nbsp;a&nbsp;<br />nd&nbsp;see&nbsp;the&nbsp;<br />debugger&nbsp;in&nbsp;use.&nbsp;Does&nbsp;it&nbsp;work&nbsp;with&nbsp;your&nbsp;favorite&nbsp;compiler?&nbsp;How&nbsp;does&nbsp;it&nbsp;commu&nbsp;<br />nicate&nbsp;with&nbsp;<br />the&nbsp;target?&nbsp;What&nbsp;is&nbsp;the&nbsp;“invasiveness”&nbsp;and&nbsp;are&nbsp;those&nbsp;items&nbsp;fully&nbsp;documente&nbsp;<br />d?&nbsp;<br />I&nbsp;am&nbsp;prejudiced&nbsp;about&nbsp;debuggers.&nbsp;I&nbsp;have&nbsp;written&nbsp;and&nbsp;marketed&nbsp;several&nbsp;from&nbsp;ba&nbsp;<br />sic&nbsp;DOS&nbsp;<br />assembly&nbsp;language&nbsp;based&nbsp;debuggers&nbsp;to&nbsp;complete&nbsp;Windows&nbsp;based&nbsp;high&nbsp;level&nbsp;syste&nbsp;<br />ms.&nbsp;For&nbsp;<br />these&nbsp;reasons,&nbsp;I&nbsp;will&nbsp;leave&nbsp;you&nbsp;to&nbsp;your&nbsp;own&nbsp;devices.&nbsp;Feel&nbsp;free&nbsp;to&nbsp;contact&nbsp;me&nbsp;<br />&nbsp;for&nbsp;information&nbsp;<br />about&nbsp;debuggers&nbsp;and&nbsp;what&nbsp;I&nbsp;have&nbsp;to&nbsp;offer.&nbsp;<br />Good&nbsp;luck&nbsp;and&nbsp;good&nbsp;debugging.&nbsp;<br />Craig&nbsp;Haller&nbsp;<br />President&nbsp;<br />Macraigor&nbsp;Systems&nbsp;Inc.&nbsp;<br />P.&nbsp;O.&nbsp;Box&nbsp;1008&nbsp;<br />Brookline&nbsp;Village,&nbsp;MA&nbsp;02147&nbsp;<br />(617)&nbsp;739-&nbsp;8693&nbsp;<br />(617)&nbsp;739-&nbsp;8694&nbsp;-&nbsp;fax&nbsp;<br />www.&nbsp;macraigor.&nbsp;com&nbsp;<br />craig@&nbsp;macraigor.&nbsp;com&nbsp;<br />&nbsp;<br />--&nbsp;<br />&nbsp;<br />※&nbsp;来源:·BBS&nbsp;水木清华站&nbsp;smth.org·[FROM:&nbsp;202.117.114.7]&nbsp;<br /><a href="00000007.htm">上一篇</a><a href="javascript:history.go(-1)">返回上一页</a><a href="index.htm">回到目录</a><a href="#top">回到页首</a><a href="00000009.htm">下一篇</a></h1></center><center><h1>BBS 水木清华站∶精华区</h1></center></body></html>

⌨️ 快捷键说明

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