MAX-IDE入門
出處:eejjyy 發(fā)布于:2007-04-29 09:33:42
MAX-IDE入門
MAX-IDE是為MAXQ系列微控制器開發(fā)的全功能開發(fā)和調(diào)試環(huán)境。MAX-IDE可以配合各種標(biāo)準(zhǔn)MAXQ評(píng)估板工作,提供項(xiàng)目級(jí)的開發(fā)環(huán)境、對(duì)于標(biāo)準(zhǔn)MAXQ調(diào)試功能的訪問、一個(gè)集成的宏匯編、以及在線應(yīng)用裝載功能(通過JTAG接口)。
簡(jiǎn)介
MAX-IDE是為MAXQ?微控制器系列提供的功能完備的開發(fā)和調(diào)試環(huán)境。它能夠與所有標(biāo)準(zhǔn)MAXQ評(píng)估板配合工作,具有以下特性。
用于MAXQ匯編應(yīng)用的項(xiàng)目級(jí)開發(fā)環(huán)境
集成的MAXQ宏匯編器,包括適用于所有MAXQ微控制器的標(biāo)準(zhǔn)頭文件
采用JTAG/TAP接口和ROM引導(dǎo)裝載器提供在線應(yīng)用裝載(適用于帶有閃存或者EEPROM程序存儲(chǔ)器的MAXQ微控制器)
通過JTAG/TAP接口實(shí)現(xiàn)在線調(diào)試,包括斷點(diǎn)、單步運(yùn)行和存儲(chǔ)器/寄存器查看
參考資料
更詳細(xì)信息,請(qǐng)參考MAXQ2000評(píng)估板數(shù)據(jù)資料,該資料可在評(píng)估板所附的CD或一下網(wǎng)址找到:。
安裝MAX-IDE
系統(tǒng)要求
操作系統(tǒng):Windows 98, Windows NT, Windows 2000, Windows ME或者Windows XP
至少一個(gè)未用的串行COM端口(用于與MAXQ評(píng)估板通信),或者一個(gè)USB至串口適配器和一個(gè)未用的USB端口。
運(yùn)行安裝程序
MAX-IDE的安裝包為MAX-IDE.zip,可以從MAXQ網(wǎng)頁(yè)。
該安裝包,解壓縮,然后運(yùn)行setup.exe,將MAX-IDE安裝到您的硬盤上。
在InstallShield對(duì)話框中,選擇典型安裝,安裝評(píng)估板MAXQ開發(fā)所需要的全部文件。
安裝完成后,可以從開始菜單啟動(dòng)MAX-IDE。
MAX-IDE安裝的文件
MAX-IDE的主執(zhí)行程序和幫助文件位于MAX-IDE根目錄下,默認(rèn)路徑為{Program Files}\MAX-IDE。其他文件在以下子目錄中。
Compilers子目錄含有MAX-IDE安裝的所有編譯器和匯編器的可執(zhí)行程序和數(shù)據(jù)文件。至少包含標(biāo)準(zhǔn)MAXQ匯編器;也可能會(huì)安裝一些其它匯編器和編譯器,和你的獲得渠道有關(guān)。
Devices子目錄含有庫(kù)、驅(qū)動(dòng)程序和配置文件,用于將應(yīng)用定位于各種MAXQ微控制器和評(píng)估板,并完成它們之間的通信。
Examples子目錄含有代碼實(shí)例(<device directory>/xxx_Demo),以及所有MAXQ微控制器的標(biāo)準(zhǔn)包含文件和庫(kù)(<device directory>/api)。
設(shè)置JTAG接口
JTAG適配板
通過一個(gè)專用的JTAG測(cè)試訪問端口(TAP),MAX-IDE與MAXQ微控制器的引導(dǎo)裝載程序和調(diào)試引擎接口,這個(gè)測(cè)試口符合JTAG IEEE標(biāo)準(zhǔn)1149。該接口由以下信號(hào)組成(它們通常與端口引腳復(fù)用):TMS (測(cè)試模式選擇)、TCK (測(cè)試時(shí)鐘)、TDI (測(cè)試數(shù)據(jù)輸入)和TDO (測(cè)試數(shù)據(jù)輸出)。
圖1顯示了串口-JTAG適配器(包含于所有MAXQ微控制器評(píng)估板中)是如何連接PC串行COM口和MAXQ微控制器的JTAG口的。
JTAG接口信號(hào)和電纜
JTAG適配器通過10芯帶狀電纜和2 x 5、0.100"間距的接插件與MAXQ評(píng)估板連接。該電纜傳輸?shù)男盘?hào)列在下面表1中。
表1. JTAG接口信號(hào)
連接評(píng)估板
根據(jù)所采用的評(píng)估板類型,需要對(duì)JTAG適配板、評(píng)估板或者兩者供電。此處給出兩個(gè)電路板的簡(jiǎn)要設(shè)置方法(表2);更詳細(xì)的說明請(qǐng)參考評(píng)估板數(shù)據(jù)資料。注意,無(wú)論是JTAG適配板還是MAXQ評(píng)估板,所用的電源均為直流電源,中心為正。
表2. 評(píng)估板設(shè)置
使用MAX-IDE時(shí),請(qǐng)按照以下步驟設(shè)置MAXQ評(píng)估板和JTAG適配板(圖2):
如上所述將電源接到JTAG適配板。
如上所述設(shè)置評(píng)估板和JTAG適配板的跳線??赡苓€需要根據(jù)評(píng)估需要設(shè)置評(píng)估板上其他的跳線或者DIP開關(guān);更詳細(xì)的信息請(qǐng)參考評(píng)估板數(shù)據(jù)資料。
連接2 x 5 10芯帶狀電纜到JTAG適配板上的P2插座和評(píng)估板上的對(duì)應(yīng)插座。連接器僅能從一個(gè)方向連接;否則,請(qǐng)確定紅線連接至兩個(gè)插座相同編號(hào)的引腳。
使用直通串行電纜將JTAG適配板上的J1連接至PC COM端口。
打開所有電源。
在MAX-IDE中建立項(xiàng)目
建立一個(gè)新的MAXQ匯編項(xiàng)目
按照以下步驟,在MAX-IDE中建立一個(gè)新的MAXQ匯編語(yǔ)言項(xiàng)目:
從MAX-IDE菜單選擇Device MAXQ JTAG。
選擇Project New Project。建立一個(gè)未命名的項(xiàng)目。
選擇Project Save Project As。選擇您希望保存項(xiàng)目(.prj 文件)的位置。
要建立一個(gè)新的匯編代碼文件,可選擇File New File。在文件中輸入?yún)R編代碼后,選擇File Save As,在你的項(xiàng)目目錄下保存新建立的.asm文件。下一步,選擇Project Add Files,選擇新建的文件,加入到項(xiàng)目中。
要將已有的匯編代碼文件加入到項(xiàng)目中,選擇Project Add Files,然后選擇要加入的文件。
不必將包含文件加入到項(xiàng)目中,匯編過程會(huì)自動(dòng)讀入包含文件。
MAXQ2000的一個(gè)匯編文件實(shí)例如下:
$include (..\api\maxQ2000.inc)
org 0000h
main:
jump $
end
以上$include行因包含文件的位置而異。關(guān)于$include和org偽指令的詳細(xì)信息,請(qǐng)參考本文檔的“使用MAX-IDE匯編器”一節(jié)。
關(guān)于匯編和包含文件的說明
全體MAXQ微控制器共有的系統(tǒng)寄存器(例如累加器、數(shù)據(jù)指針和循環(huán)控制寄存器)已在MAX-IDE匯編器中進(jìn)行了預(yù)定義。外設(shè)寄存器因器件而異,必須在包含文件中定義。用于各種MAXQ微控制器的標(biāo)準(zhǔn)包含文件隨MAX-IDE一起被安裝;上例中的包含文件是用于MAXQ2000的。
預(yù)處理偽指令(例如等同、定義和宏)不會(huì)在一個(gè)項(xiàng)目?jī)?nèi)的不同文件之間傳送。如果一個(gè)MAX-IDE匯編項(xiàng)目含有一個(gè)以上的匯編文件,各匯編文件必須含有它要用到的預(yù)處理偽指令或者文件包含偽指令。
不管項(xiàng)目中有多少匯編文件,每個(gè)文件的必須有"end"聲明。
不要在包含文件中加入"end"聲明。
項(xiàng)目中含有多個(gè)匯編文件時(shí),所有文件中的所有標(biāo)識(shí)符都為公用的;即,任何匯編文件中的代碼都可以調(diào)用或引用同一項(xiàng)目中任何其他匯編文件中的例程或標(biāo)號(hào)。
打開一個(gè)已有的項(xiàng)目
要打開一個(gè)以前建立的MAX-IDE項(xiàng)目,只需從菜單中選擇Project Open Project,然后選擇你希望打開的.prj文件。注意,如果JTAG適配板和評(píng)估板沒有正確連接和上電,打開MAXQ JTAG項(xiàng)目時(shí)可能會(huì)產(chǎn)生錯(cuò)誤信息。
當(dāng)一個(gè)項(xiàng)目已經(jīng)建立或者打開后,該項(xiàng)目中的匯編代碼文件將被列在左側(cè)的面板上。雙擊文件名可以將其打開,以便在MAX-IDE中進(jìn)行編輯,如下面的圖3所示。
運(yùn)行和調(diào)試代碼
編譯項(xiàng)目
要編譯項(xiàng)目文件,從菜單中選擇Debug Make或者Debug Build All,或者點(diǎn)擊工具條上這些命令的快捷按鈕,或者按下F7 (作用與Make相同)。MAXQ編譯器運(yùn)行,如果沒有錯(cuò)誤,消息窗口中將出現(xiàn)"Compiling...Build Successful."。構(gòu)建過程中的任何錯(cuò)誤將會(huì)出現(xiàn)在消息窗口中。
運(yùn)行項(xiàng)目
項(xiàng)目被成功編譯后,可以采用以下方法之一,在調(diào)試器中執(zhí)行該項(xiàng)目。
選擇Debug Run (F5)后,編譯后的項(xiàng)目代碼通過JTAG接口被裝入MAXQ微控制器并啟動(dòng)運(yùn)行。程序?qū)⒊掷m(xù)運(yùn)行,直到選擇了Debug Stop (Shift+F5)、點(diǎn)擊Pause按鈕或者程序執(zhí)行到斷點(diǎn)為止。
選擇Debug Step Into (F11)后,編譯后的程序被載入,在源代碼的行暫停程序執(zhí)行。
選擇Debug Run to Cursor (Control+F10)后,編譯后的程序被載入,并開始運(yùn)行,直到程序運(yùn)行到編輯窗口中光標(biāo)所在的行,或者遇到斷點(diǎn),先到者為準(zhǔn)。如果光標(biāo)不在源代碼行上,選擇該選項(xiàng)將導(dǎo)致錯(cuò)誤。
斷點(diǎn)用來使程序運(yùn)行到預(yù)定位置時(shí)暫停下來,可以采用以下三種方法之一設(shè)置或清除。
將光標(biāo)移到您希望建立斷點(diǎn)的行,選擇Debug Toggle Breakpoint。
將光標(biāo)移到您希望建立斷點(diǎn)的行,點(diǎn)擊工具條上的禁行燈圖標(biāo)。
在編輯窗口中,單擊您希望建立斷點(diǎn)的行號(hào)。
注意,可以將斷點(diǎn)設(shè)在沒有源代碼的行上,但是這不會(huì)起作用。MAXQ微控制器支持設(shè)4個(gè)斷點(diǎn);如果選擇Run to Cursor,這將占用一個(gè)斷點(diǎn),因此,在這種情況下,只能設(shè)置3個(gè)斷點(diǎn)。
選擇Debug Stop,或者單擊工具條上的Stop圖標(biāo),將完全停止程序運(yùn)行。但是,如果停止在行(Step Into)、光標(biāo)行(Run to Cursor)或者設(shè)置了斷點(diǎn)的行,接下來還可以使用單步模式運(yùn)行程序。也可以通過單擊Pause按鈕進(jìn)入單步模式。在該模式下,以綠色箭頭標(biāo)志當(dāng)前運(yùn)行所處的位置,可使用下列命令:
Debug Step Into (F11), Debug Step Over (F10)和Debug Step Out(Shift+F10),在匯編調(diào)試模式下,這些命令的作用相同,即執(zhí)行單個(gè)指令,將執(zhí)行點(diǎn)轉(zhuǎn)至下一指令。
Debug Run,從當(dāng)前位置開始運(yùn)行,直到下一個(gè)斷點(diǎn),如上所述。
Debug Run To Cursor,從當(dāng)前位置開始運(yùn)行,直到光標(biāo)所在的行,如上所述。
注意,運(yùn)行在匯編語(yǔ)言調(diào)試模式時(shí),Debug菜單下的High-Level Debug和Low-Level Debug設(shè)置不起作用。
顯示和編輯處理器寄存器
程序裝入并執(zhí)行了至少一條指令后,就可以利用調(diào)試器來查看和編輯MAXQ微控制器的寄存器。選擇Window Show Registers 將顯示寄存器組。隨著調(diào)試器中代碼的執(zhí)行,這些寄存器中的數(shù)值將隨之更新。雙擊可寫寄存器的數(shù)值區(qū)可以對(duì)其進(jìn)行編輯,可以輸入十六進(jìn)制、十進(jìn)制或二進(jìn)制的新值。
使用MAXQ2000評(píng)估板時(shí)應(yīng)注意:如果裝配了LCD子板,不要手動(dòng)編輯PO0, PD0, PO1, PD1, PO2, PD2, PO3或者PD3寄存器的值。當(dāng)帶有LCD時(shí),這些引腳上的靜態(tài)輸出會(huì)損壞LCD。
顯示和編輯處理器存儲(chǔ)器
程序裝入并至少執(zhí)行一條指令后,就可以查看和編輯MAXQ微控制器的內(nèi)部存儲(chǔ)器了。選擇Window Show Memory 將顯示內(nèi)部存儲(chǔ)器。通過顯示窗口中的下拉列表,你可以選擇查看代碼、數(shù)據(jù)或者堆棧存儲(chǔ)器。代碼和堆棧區(qū)用16位寬顯示,數(shù)據(jù)區(qū)用8位寬顯示。數(shù)據(jù)和堆棧區(qū)的存儲(chǔ)器值可以編輯,雙擊某個(gè)存儲(chǔ)器位置并輸入新值即可。
使用MAX-IDE匯編器
MAX-IDE提供一個(gè)多道匯編器,用于開發(fā)MAXQ匯編語(yǔ)言應(yīng)用程序。該匯編程序含有一個(gè)單道預(yù)處理器,能夠使用包含文件、符號(hào)等式、條件匯編和宏。匯編器和預(yù)處理器完全集成在MAX-IDE環(huán)境中。
有關(guān)如何使用宏以及其他預(yù)處理偽指令的舉例,請(qǐng)參考'Macro'實(shí)例項(xiàng)目。
一般語(yǔ)法MAXQ匯編器和預(yù)處理器均對(duì)大小寫不敏感。匯編語(yǔ)句遵循以下格式:
[label:] [opcode [parameter [, parameter]]] [;comment]
如以下代碼:main:
move Acc, A[2] ; copy A[2] to active accumulator
標(biāo)志符(例如上面的'main'標(biāo)號(hào))可以含有字符[a-zA-Z_?$0-9],但是不能以0-9數(shù)字開始。其長(zhǎng)度可以達(dá)到127個(gè)字符。
請(qǐng)參考MAXQ系列用戶指南,了解MAXQ微控制器系列的體系結(jié)構(gòu)、指令集、尋址模式和寄存器的詳細(xì)說明。
源文件
項(xiàng)目編譯時(shí),MAX-IDE項(xiàng)目窗口列出的所有匯編源文件(.asm)將按照窗口中文件列出順序進(jìn)行匯編。沒有提供鏈接器,因此,在匯編多個(gè)文件時(shí),就如同它們被合并到單個(gè)文件中進(jìn)行匯編一樣。
源文件可以包含偽指令、等同/定義、宏、條件匯編模塊和聲明等。任何源代碼文件的一行必須為END偽指令:
end
包含文件
不必刻意添加包含(.inc)文件到項(xiàng)目中。它們可以由“include”偽指令自動(dòng)讀入和解析,就如同包含文件的全部文本被加入到源文件中“Include”偽指令所在的位置一樣。
(source file): (equates.inc):
$include(equates.inc) ---> MASK1 equ 0FFh
MASK2 equ 0FEh
(resume parsing in source <---
file)
MAX-IDE為每種MAXQ微控制器提供標(biāo)準(zhǔn)包含文件,在其中定義了該類微控制器的外設(shè)寄存器組,以及應(yīng)用ROM所提供函數(shù)的地址。這些包含文件可用于所有匯編語(yǔ)言項(xiàng)目;它們位于MAX-IDE主安裝目錄的Examples子目錄中。
常數(shù)
語(yǔ)句或等同說明中作為立即數(shù)的常數(shù)可以采用以下四種格式之一。
十進(jìn)制(默認(rèn))—以非字符或'd'結(jié)尾。例如:10, 07d
二進(jìn)制—以'b'結(jié)尾。例如:01b, 1101101b
十六進(jìn)制—以0-9數(shù)字開始,以'h'結(jié)尾。例如:10h, 09FFEh
單字符—轉(zhuǎn)換為一個(gè)字節(jié)的ASCII值。例如:'A'
move Acc, #(1+1) ; 2 : Addition
move Acc, #(4-1) ; 3 : Subtraction
move Acc, #(2*2) ; 4 : Multiplication
move Acc, #(25/5) ; 5 : Division (truncated to integer)
move Acc, #(MIN(6,7)) ; 6 : Minimum of two values
move Acc, #(MAX(6, 7)) ; 7 : Maximum of two values
move Acc, #'A' ; ASCII value of 'A'
move Acc, #(550h 055h) ; 555h : Logical OR
move Acc, #(550h & 055h) ; 050h : Logical AND
move Acc, #(550h ^ 055h) ; 505h : Logical XOR
move Acc, HIGH(#1234h) ; 12h : Select high byte of word
move Acc, LOW(#1234h) ; 34h : Select low byte of word
move Acc, NOT(#0000h) ; FFFFh : Bitwise negation
move Acc, #001h << 7 ; 080h : Shift left
move Acc, #080h >> 7 ; 001h : Shift right
等同說明,即EQU偽指令,用來在任何使用常數(shù)的地方代替數(shù)字常數(shù)??梢允褂萌魏胃袷胶蜕厦嫠岬降某?shù)運(yùn)算符。標(biāo)號(hào)不被認(rèn)作常數(shù)。
ONE equ 01
TWO equ 02
move Acc, #ONE
move Acc, #(ONE+TWO)
等同也可以被后面的等同說明引用。
ONE equ 01
TWO equ ONE+ONE
定義
定義偽指令支持C風(fēng)格的直接文本替換,不需要額外的處理,常用于包含文件中定義外設(shè)寄存器。替換文本被限制為單行;不支持接續(xù)符。不支持C風(fēng)格的宏。
#define PO[0] M0[0]
move Acc, PO[0] ; Parses as 'move Acc, M0[0]'
數(shù)據(jù)聲明DB和DW偽指令用于在十六進(jìn)制文件的當(dāng)前位置插入原始數(shù)據(jù)字節(jié)(包括來自于字符串值的數(shù)據(jù)字節(jié))或字。
db 055h, 0AAh, 055h, 0AAh ; byte values
dw 0AAAAh, 05555h ; word values
db "MAX-IDE Environment " ; byte value for each char (padded to even count)
條件匯編
只有符合某些布爾條件時(shí),才對(duì)某塊代碼進(jìn)行匯編。具有以下格式。
IF (<boolean statement>)
statements
...
ENDIF
布爾表達(dá)式可以由常數(shù)、等同或者以下布爾運(yùn)算符組成:=, !=, <, <=, >, 和 >=。在條件匯編代碼塊中只能有代碼和包含語(yǔ)句,而不能有宏或者等同說明。
DEBUG equ 0
DOINC equ 1
IF (DEBUG != 0)
call RoutineDbg
ENDIF
IF (DEBUG = 0)
call Routine
ENDIF
IF (DOINC = 1)
$include(defines.inc)
ENDIF
宏
一段代碼所執(zhí)行的功能可以用宏來表示,每當(dāng)該功能被調(diào)用時(shí),它被當(dāng)?shù)卣归_并匯編。它們具有以下格式。
<identifier> MACRO [[PARAM <parm1>] [whitespace AND/OR comma] [<parm2>] ...]
[LOCAL <local1> [whitespace AND/OR comma] [<local2>] ...]
<macro assembly statements, local labels>
...
ENDM
簡(jiǎn)單的一類宏僅是在其被引用時(shí),將其代碼插入。所插入代碼中的等同、定義和嵌套的宏調(diào)用等均按常規(guī)方式處理。
ThreeNops MACRO
nop
nop
nop
ENDM
ThreeNops --> nop
nop
nop
Inc MACRO PARAM Register
push Acc
move Acc, Register
add #1
move Register, Acc
pop Acc
ENDM
Inc LC[0] --> push Acc
move Acc, LC[0]
add #1
move LC[0], Acc
pop Acc
宏也可以含有局部標(biāo)識(shí)符,代碼展開后對(duì)其重新命名,這樣每次引用宏時(shí)它們各不相同。
LoopN MACRO PARAM Count
LOCAL L1
move LC[0], Count
L1:
djnz LC[0], L1
ENDM
在引用這個(gè)宏時(shí),插入其代碼時(shí)標(biāo)號(hào)'L1'將被更改為一個(gè)不同的臨時(shí)標(biāo)號(hào)。
參考文獻(xiàn):
[1]. ROM datasheet http://www.hbjingang.com/datasheet/ROM_1188413.html.
[2]. MAXQ2000 datasheet http://www.hbjingang.com/datasheet/MAXQ2000_147494.html.
[3]. COM datasheet http://www.hbjingang.com/datasheet/COM_1118194.html.
[4]. asm datasheet http://www.hbjingang.com/datasheet/asm_1231013.html.
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 單片機(jī)技術(shù)特性與嵌入式開發(fā)實(shí)踐指南2026/1/7 10:00:02
- 單片機(jī)(MCU)與數(shù)字信號(hào)處理器(DSP)分類及選型技術(shù)指南2025/12/30 10:02:37
- 工業(yè)級(jí)DSP信號(hào)處理系統(tǒng):硬件適配與抗干擾工程方案2025/12/15 14:41:00
- HOLTEK推出HT32F65533G/733G內(nèi)建N/N預(yù)驅(qū)電機(jī)專用SoC單片機(jī)2025/11/26 14:11:41
- 什么是C51數(shù)據(jù)類型擴(kuò)充定義2025/10/27 13:59:22
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測(cè)試方法
- PCB電磁兼容(EMC)設(shè)計(jì)與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測(cè)量的低通濾波器設(shè)計(jì)與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題
- 電源IC在便攜式設(shè)備中的設(shè)計(jì)要點(diǎn)
- 連接器結(jié)構(gòu)設(shè)計(jì)常見問題分析









