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

📄 00000007.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手册7                               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手册7&nbsp;<br />发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Thu&nbsp;Oct&nbsp;26&nbsp;16:25:07&nbsp;2000)&nbsp;<br />&nbsp;<br />6:&nbsp;Set&nbsp;up&nbsp;FLASH&nbsp;ROM&nbsp;for&nbsp;writability.&nbsp;<br />There&nbsp;are&nbsp;tools&nbsp;on&nbsp;the&nbsp;market&nbsp;that&nbsp;allow&nbsp;for&nbsp;programming&nbsp;of&nbsp;FLASH&nbsp;EEPROM&nbsp;whi&nbsp;<br />le&nbsp;it&nbsp;is&nbsp;<br />on&nbsp;the&nbsp;target&nbsp;board.&nbsp;These&nbsp;tools&nbsp;work&nbsp;through&nbsp;the&nbsp;on-&nbsp;chip&nbsp;debugger.&nbsp;By&nbsp;conf&nbsp;<br />iguring&nbsp;the&nbsp;<br />FLASH&nbsp;in&nbsp;such&nbsp;a&nbsp;way&nbsp;that&nbsp;the&nbsp;processor&nbsp;can&nbsp;write&nbsp;to&nbsp;it,&nbsp;the&nbsp;work&nbsp;of&nbsp;programm&nbsp;<br />ing&nbsp;it&nbsp;is&nbsp;<br />much&nbsp;easier.&nbsp;This&nbsp;might&nbsp;entail&nbsp;simply&nbsp;running&nbsp;a&nbsp;WRITE&nbsp;line&nbsp;to&nbsp;the&nbsp;chip&nbsp;(5&nbsp;vo&nbsp;<br />lt&nbsp;only&nbsp;<br />FLASH)&nbsp;and/&nbsp;or&nbsp;the&nbsp;addition&nbsp;of&nbsp;12&nbsp;volts&nbsp;controlled&nbsp;by&nbsp;a&nbsp;port&nbsp;pin&nbsp;(preferred)&nbsp;<br />&nbsp;or&nbsp;a&nbsp;jumper.&nbsp;<br />Typically&nbsp;this&nbsp;means&nbsp;adding&nbsp;a&nbsp;trace&nbsp;or&nbsp;two&nbsp;to&nbsp;the&nbsp;PC&nbsp;board.&nbsp;Definitely&nbsp;worth&nbsp;<br />&nbsp;the&nbsp;added&nbsp;<br />copper.&nbsp;(The&nbsp;author&nbsp;sells&nbsp;such&nbsp;a&nbsp;program!)&nbsp;<br />Designing&nbsp;Your&nbsp;Product&nbsp;<br />Many&nbsp;of&nbsp;the&nbsp;same&nbsp;issues&nbsp;apply&nbsp;here&nbsp;as&nbsp;in&nbsp;designing&nbsp;your&nbsp;prototype.&nbsp;<br />1:&nbsp;Use&nbsp;it!&nbsp;<br />This&nbsp;is&nbsp;not&nbsp;as&nbsp;obvious&nbsp;as&nbsp;it&nbsp;is&nbsp;with&nbsp;the&nbsp;prototype.&nbsp;There&nbsp;are&nbsp;many&nbsp;reasons&nbsp;t&nbsp;<br />o&nbsp;have&nbsp;access&nbsp;to&nbsp;<br />the&nbsp;OCD&nbsp;in&nbsp;a&nbsp;final&nbsp;product.&nbsp;With&nbsp;the&nbsp;proper&nbsp;host&nbsp;support,&nbsp;FLASH&nbsp;EEPROM&nbsp;progr&nbsp;<br />amming&nbsp;<br />is&nbsp;possible,&nbsp;production&nbsp;line&nbsp;testing,&nbsp;in-&nbsp;field&nbsp;debug&nbsp;and&nbsp;much&nbsp;more.&nbsp;Even&nbsp;if&nbsp;<br />&nbsp;you&nbsp;don’t&nbsp;intend&nbsp;<br />to&nbsp;use&nbsp;it&nbsp;after&nbsp;production&nbsp;starts,&nbsp;the&nbsp;lack&nbsp;of&nbsp;access&nbsp;to&nbsp;OCD,&nbsp;if&nbsp;it&nbsp;is&nbsp;ultim&nbsp;<br />ately&nbsp;needed,&nbsp;may&nbsp;<br />be&nbsp;very&nbsp;costly.&nbsp;<br />2:&nbsp;Place&nbsp;the&nbsp;specified&nbsp;header&nbsp;on&nbsp;your&nbsp;board,&nbsp;if&nbsp;possible.&nbsp;<br />It&nbsp;is&nbsp;not&nbsp;nearly&nbsp;as&nbsp;important&nbsp;as&nbsp;with&nbsp;the&nbsp;prototype&nbsp;to&nbsp;use&nbsp;the&nbsp;factory&nbsp;speci&nbsp;<br />fied&nbsp;header.&nbsp;See&nbsp;<br />the&nbsp;hints&nbsp;in&nbsp;the&nbsp;prototype&nbsp;section&nbsp;for&nbsp;using&nbsp;a&nbsp;different&nbsp;header&nbsp;if&nbsp;necessary&nbsp;<br />.&nbsp;<br />3:&nbsp;Watch&nbsp;those&nbsp;traces!&nbsp;<br />This&nbsp;is&nbsp;as&nbsp;important,&nbsp;if&nbsp;not&nbsp;more,&nbsp;than&nbsp;with&nbsp;the&nbsp;prototype.&nbsp;Your&nbsp;product&nbsp;may&nbsp;<br />&nbsp;be&nbsp;in&nbsp;a&nbsp;less&nbsp;<br />friendly&nbsp;environment&nbsp;(electrical&nbsp;noise,&nbsp;etc.)&nbsp;and&nbsp;you&nbsp;may&nbsp;not&nbsp;be&nbsp;able&nbsp;to&nbsp;con&nbsp;<br />trol&nbsp;the&nbsp;<br />environment&nbsp;as&nbsp;easily.&nbsp;<br />4:&nbsp;Watch&nbsp;those&nbsp;resistors!&nbsp;<br />As&nbsp;important&nbsp;as&nbsp;with&nbsp;the&nbsp;prototype&nbsp;if&nbsp;not&nbsp;more&nbsp;so.&nbsp;You&nbsp;want&nbsp;to&nbsp;ensure&nbsp;that&nbsp;a&nbsp;<br />ll&nbsp;start&nbsp;up&nbsp;<br />parameters&nbsp;are&nbsp;correct,&nbsp;this&nbsp;is&nbsp;especially&nbsp;important&nbsp;with&nbsp;Motorola’s&nbsp;BDM&nbsp;in&nbsp;<br />terfaces.&nbsp;<br />5:&nbsp;Set&nbsp;up&nbsp;FLASH&nbsp;EEPROM&nbsp;for&nbsp;writability.&nbsp;<br />This&nbsp;is&nbsp;extremely&nbsp;important.&nbsp;The&nbsp;ability&nbsp;to&nbsp;easily&nbsp;program&nbsp;FLASH,&nbsp;both&nbsp;on&nbsp;th&nbsp;<br />e&nbsp;production&nbsp;<br />line&nbsp;and&nbsp;in&nbsp;the&nbsp;field,&nbsp;will&nbsp;prove&nbsp;invaluable.&nbsp;Additionally,&nbsp;this&nbsp;allows&nbsp;you&nbsp;&nbsp;<br />to&nbsp;eliminate&nbsp;the&nbsp;<br />use&nbsp;of&nbsp;sockets&nbsp;for&nbsp;the&nbsp;EEPROMs.&nbsp;See&nbsp;the&nbsp;prototype&nbsp;section&nbsp;for&nbsp;hints&nbsp;on&nbsp;imple&nbsp;<br />mentation.&nbsp;<br />Choosing&nbsp;a&nbsp;Debugger&nbsp;<br />Some&nbsp;general&nbsp;thoughts&nbsp;and&nbsp;information&nbsp;on&nbsp;debuggers,&nbsp;then&nbsp;specifics&nbsp;about&nbsp;OCD&nbsp;<br />&nbsp;debuggers.&nbsp;<br />First,&nbsp;the&nbsp;“invasiveness”&nbsp;of&nbsp;debuggers.&nbsp;By&nbsp;this&nbsp;I&nbsp;refer&nbsp;to&nbsp;the&nbsp;amount&nbsp;of&nbsp;s&nbsp;<br />ystem&nbsp;setup&nbsp;that&nbsp;<br />the&nbsp;debugger&nbsp;does&nbsp;for&nbsp;the&nbsp;user.&nbsp;A&nbsp;ROM&nbsp;monitor&nbsp;typically&nbsp;must&nbsp;do&nbsp;some&nbsp;setup,&nbsp;&nbsp;<br />such&nbsp;as&nbsp;<br />setting&nbsp;up&nbsp;the&nbsp;stack,&nbsp;initializing&nbsp;chip&nbsp;selects,&nbsp;etc.&nbsp;An&nbsp;OCD&nbsp;debugger&nbsp;does&nbsp;n&nbsp;<br />ot&nbsp;have&nbsp;to&nbsp;do&nbsp;<br />this&nbsp;but&nbsp;often&nbsp;does.&nbsp;Why&nbsp;does&nbsp;this&nbsp;matter?&nbsp;If&nbsp;the&nbsp;debugger&nbsp;does&nbsp;ANY&nbsp;setup&nbsp;wo&nbsp;<br />rk&nbsp;and&nbsp;your&nbsp;<br />code&nbsp;does&nbsp;not&nbsp;reproduce&nbsp;this&nbsp;setup&nbsp;in&nbsp;the&nbsp;exact&nbsp;way&nbsp;(and&nbsp;possibly&nbsp;at&nbsp;the&nbsp;exa&nbsp;<br />ct&nbsp;time)&nbsp;your&nbsp;<br />code&nbsp;will&nbsp;not&nbsp;be&nbsp;running&nbsp;in&nbsp;the&nbsp;same&nbsp;environment&nbsp;as&nbsp;when&nbsp;it&nbsp;is&nbsp;tested.&nbsp;This&nbsp;&nbsp;<br />is&nbsp;a&nbsp;perfect&nbsp;<br />example&nbsp;of&nbsp;why&nbsp;your&nbsp;code&nbsp;will&nbsp;work&nbsp;with&nbsp;the&nbsp;debugger&nbsp;but&nbsp;not&nbsp;directly&nbsp;out&nbsp;of&nbsp;<br />&nbsp;ROM.&nbsp;An&nbsp;<br />OCD&nbsp;debugger&nbsp;may&nbsp;or&nbsp;may&nbsp;not&nbsp;have&nbsp;to&nbsp;do&nbsp;setup,&nbsp;it&nbsp;actually&nbsp;depends&nbsp;on&nbsp;your&nbsp;ha&nbsp;<br />rdware&nbsp;<br />configuration&nbsp;as&nbsp;we&nbsp;will&nbsp;see.&nbsp;Other&nbsp;similar&nbsp;invasions&nbsp;are&nbsp;the&nbsp;initialization&nbsp;<br />&nbsp;of&nbsp;general&nbsp;<br />registers,&nbsp;setup&nbsp;of&nbsp;an&nbsp;oscillator&nbsp;pll,&nbsp;etc.&nbsp;<br />Second,&nbsp;there&nbsp;are&nbsp;also&nbsp;different&nbsp;thoughts&nbsp;on&nbsp;how&nbsp;much&nbsp;the&nbsp;debugger&nbsp;should&nbsp;pr&nbsp;<br />otect&nbsp;you,&nbsp;<br />the&nbsp;user.&nbsp;A&nbsp;common&nbsp;target&nbsp;has&nbsp;a&nbsp;bank&nbsp;of&nbsp;RAM&nbsp;into&nbsp;which&nbsp;your&nbsp;code&nbsp;is&nbsp;loaded&nbsp;f&nbsp;<br />or&nbsp;testing.&nbsp;<br />Assume&nbsp;your&nbsp;code&nbsp;is&nbsp;running&nbsp;in&nbsp;real-&nbsp;time&nbsp;and&nbsp;it&nbsp;“goes&nbsp;into&nbsp;the&nbsp;weeds”&nbsp;(no&nbsp;<br />t&nbsp;&nbsp;your&nbsp;code!),&nbsp;in&nbsp;<br />other&nbsp;words&nbsp;there&nbsp;may&nbsp;be&nbsp;an&nbsp;errant&nbsp;pointer&nbsp;and&nbsp;you&nbsp;are&nbsp;now&nbsp;executing&nbsp;out&nbsp;of&nbsp;&nbsp;<br />uninitialized&nbsp;<br />RAM,&nbsp;garbage&nbsp;code.&nbsp;You&nbsp;may&nbsp;not&nbsp;know&nbsp;this&nbsp;and&nbsp;the&nbsp;code&nbsp;may&nbsp;go&nbsp;for&nbsp;a&nbsp;while,&nbsp;re&nbsp;<br />eking&nbsp;all&nbsp;<br />sorts&nbsp;of&nbsp;havoc,&nbsp;until,&nbsp;for&nbsp;some&nbsp;reason&nbsp;the&nbsp;debugger&nbsp;regains&nbsp;control.&nbsp;This&nbsp;is&nbsp;<br />&nbsp;a&nbsp;tough&nbsp;one&nbsp;to&nbsp;<br />debug&nbsp;unless&nbsp;you&nbsp;have&nbsp;a&nbsp;large&nbsp;trace&nbsp;buffer.&nbsp;Alternatively,&nbsp;the&nbsp;debugger&nbsp;coul&nbsp;<br />d&nbsp;have&nbsp;filled&nbsp;<br />memory&nbsp;with&nbsp;some&nbsp;specific&nbsp;instruction&nbsp;before&nbsp;downloading&nbsp;your&nbsp;code.&nbsp;If&nbsp;this&nbsp;&nbsp;<br />is&nbsp;a&nbsp;BREAK,&nbsp;<br />BGND,&nbsp;TRAP,&nbsp;or&nbsp;INTERRUPT&nbsp;instruction&nbsp;that&nbsp;the&nbsp;debugger&nbsp;would&nbsp;recognize,&nbsp;a&nbsp;br&nbsp;<br />eak&nbsp;<br />would&nbsp;have&nbsp;occurred&nbsp;at&nbsp;the&nbsp;first&nbsp;errant&nbsp;instruction.&nbsp;Should&nbsp;the&nbsp;debugger&nbsp;do&nbsp;&nbsp;<br />this&nbsp;<br />automatically?&nbsp;What&nbsp;about&nbsp;interrupt&nbsp;vector&nbsp;tables?&nbsp;Should&nbsp;the&nbsp;debugger&nbsp;fill&nbsp;&nbsp;<br />in&nbsp;all&nbsp;<br />uninitialized&nbsp;vectors&nbsp;and&nbsp;trap&nbsp;on&nbsp;their&nbsp;use?&nbsp;<br />Some&nbsp;of&nbsp;these&nbsp;issues&nbsp;are&nbsp;easier&nbsp;to&nbsp;deal&nbsp;with&nbsp;than&nbsp;others,&nbsp;depending&nbsp;on&nbsp;the&nbsp;t&nbsp;<br />arget&nbsp;chip.&nbsp;The&nbsp;<br />embedded&nbsp;PowerPC&nbsp;chips&nbsp;have&nbsp;many&nbsp;options&nbsp;for&nbsp;protecting&nbsp;the&nbsp;user.&nbsp;By&nbsp;setting&nbsp;<br />&nbsp;bits&nbsp;in&nbsp;a&nbsp;<br />register&nbsp;you&nbsp;can&nbsp;cause&nbsp;the&nbsp;on-&nbsp;chip&nbsp;debugging&nbsp;mode&nbsp;to&nbsp;be&nbsp;entered&nbsp;(hence,&nbsp;a&nbsp;b&nbsp;<br />reakpoint)&nbsp;for&nbsp;<br />various&nbsp;events&nbsp;such&nbsp;as&nbsp;execution&nbsp;of&nbsp;an&nbsp;unrecognized&nbsp;opcode,&nbsp;misaligned&nbsp;data&nbsp;&nbsp;<br />fetch,&nbsp;etc.&nbsp;If&nbsp;<br />the&nbsp;debugger&nbsp;secretly&nbsp;sets&nbsp;these&nbsp;bits,&nbsp;you&nbsp;are&nbsp;debugging&nbsp;in&nbsp;a&nbsp;different&nbsp;envi&nbsp;<br />ronment&nbsp;than&nbsp;<br />that&nbsp;in&nbsp;which&nbsp;your&nbsp;code&nbsp;will&nbsp;run.&nbsp;This&nbsp;is&nbsp;probably&nbsp;OK,&nbsp;but&nbsp;is&nbsp;it?&nbsp;Does&nbsp;your&nbsp;&nbsp;<br />debugger&nbsp;give&nbsp;<br />you&nbsp;access&nbsp;to&nbsp;these&nbsp;bits?&nbsp;<br />&nbsp;<br />--&nbsp;<br />&nbsp;<br />※&nbsp;来源:·BBS&nbsp;水木清华站&nbsp;smth.org·[FROM:&nbsp;202.117.114.7]&nbsp;<br /><a href="00000006.htm">上一篇</a><a href="javascript:history.go(-1)">返回上一页</a><a href="index.htm">回到目录</a><a href="#top">回到页首</a><a href="00000008.htm">下一篇</a></h1></center><center><h1>BBS 水木清华站∶精华区</h1></center></body></html>

⌨️ 快捷键说明

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