MAX-IDE是MAXQ系列微控制器的全功能應(yīng)用開發(fā)和調(diào)試環(huán)境。MAX-IDE設(shè)計(jì)用于與所有標(biāo)準(zhǔn)MAXQ評估套件配合使用,以提供基于項(xiàng)目的開發(fā)環(huán)境、對標(biāo)準(zhǔn)MAXQ調(diào)試功能的訪問、集成的宏匯編器以及使用JTAG接口的在線應(yīng)用加載。
概述
MAX-IDE是MAXQ系列微控制器的全功能、應(yīng)用開發(fā)和調(diào)試環(huán)境。它適用于所有標(biāo)準(zhǔn)的MAXQ評估板,并提供以下功能。
基于項(xiàng)目的MAXQ裝配開發(fā)環(huán)境
集成MAXQ宏匯編器,包括所有MAXQ微控制器的標(biāo)準(zhǔn)頭文件
使用JTAG/TAP接口和ROM引導(dǎo)加載程序加載在線應(yīng)用(用于帶閃存或EEPROM程序存儲器的MAXQ微控制器)
通過JTAG/TAP接口提供的在線調(diào)試功能包括斷點(diǎn)、分步程序執(zhí)行和存儲器/寄存器內(nèi)容查看
安裝 MAX-IDE
系統(tǒng)要求
操作系統(tǒng):Windows 98、Windows NT、Windows 2000、Windows ME 或 Windows XP??
至少一個空閑串行COM端口(與MAXQ評估板通信需要),或一個USB轉(zhuǎn)串行適配器和一個空閑USB端口
運(yùn)行安裝程序
MAX-IDE 的安裝包是 MAX-IDE.zip。
下載此軟件包,解壓縮并運(yùn)行安裝程序.exe以將MAX-IDE安裝到硬盤驅(qū)動器。
在InstallShield對話框中,選擇典型安裝,這將使用評估套件安裝MAXQ應(yīng)用開發(fā)所需的所有文件。
安裝完成后,可以從“開始”菜單啟動MAX-IDE。
最大集成集成組件安裝的文件
MAX-IDE 的主要可執(zhí)行文件和幫助文件位于 MAX-IDE 根目錄中,缺省情況下位于 {Program Files}MAX-IDE。其他文件位于以下子目錄中。
編譯器子目錄包含隨MAX-IDE安裝的所有編譯器和匯編程序的可執(zhí)行文件和數(shù)據(jù)文件。這至少包括標(biāo)準(zhǔn)的MAXQ匯編器;根據(jù)您使用的發(fā)行版,也可以安裝其他匯編程序和編譯器。
器件子目錄包含庫、驅(qū)動程序和配置文件,用于所有MAXQ微控制器和評估板的目標(biāo)應(yīng)用,并與所有MAXQ微控制器和評估板進(jìn)行通信。
Example子目錄包含所有MAXQ微控制器的代碼示例(在/xxx_Demo中)和標(biāo)準(zhǔn)包含文件和庫(在/api中)。
設(shè)置JTAG接口
串行轉(zhuǎn)JTAG適配器板
MAX-IDE通過專用的JTAG測試訪問端口(TAP)接口與MAXQ微控制器的引導(dǎo)加載程序和調(diào)試引擎功能接口,該接口與JTAG IEEE標(biāo)準(zhǔn)1149兼容。此接口由以下信號組成,這些信號通常與端口引腳多路復(fù)用:TMS(測試模式選擇)、TCK(測試時鐘)、TDI(測試數(shù)據(jù)輸入)和 TDO(測試數(shù)據(jù)輸出)。
圖1說明了所有MAXQ微控制器評估套件附帶的串行轉(zhuǎn)JTAG適配器如何在PC串行COM端口和MAXQ微控制器的JTAG接口之間提供接口層。
圖1.用于MAXQ的串行至JTAG接口
JTAG接口信號和電纜
串行轉(zhuǎn)JTAG適配器板通過10連接器帶狀電纜連接到MAXQ評估板,兩端各有一個2×5 0.100“間隔的插座。該電纜承載的信號列于下表 1 中。
引腳編號 | 信號類型 | 信號名稱 | 信號描述 |
1 | 輸入至最大限量 | TCK | JTAG/TAP測試時鐘 |
2 | 地 | 接地 | 地 |
3 | 最大分量輸出 | UD。 | JTAG/TAP測試數(shù)據(jù)輸出 |
4 | 參考 | VREF | 由MAXQ套件提供,用于設(shè)置串行轉(zhuǎn)JTAG板輸出的JTAG信號的基準(zhǔn)電平 |
5 | 輸入至最大限量 | TMS | JTAG/TAP測試模式選擇 |
6 | 輸入至最大限量 | nRST | 漏極開路驅(qū)動,連接MAXQ復(fù)位線 |
7 | 沒有 | .KEY | 用于JTAG電纜對準(zhǔn)的鍵控引腳 |
8 | 權(quán)力 | VCC5 | +5.0V (±5%) 電源由 JTAG 板提供 |
9 | 輸入至最大限量 | TDI | JTAG/TAP測試數(shù)據(jù) |
10 | 地 | 接地 | 地 |
連接評估套件
根據(jù)所使用的評估套件類型,串行轉(zhuǎn)JTAG接口板和/或評估板可能需要電源。此處提供了設(shè)置兩個板的簡要說明(表 2);有關(guān)更詳細(xì)的說明,請參閱評估板數(shù)據(jù)手冊。注意,串行轉(zhuǎn)JTAG板或任何MAXQ評估板使用的所有電源都是直流電源,中心柱正極。
評估套件 | 吉泰格電源 | 套件電源 | 跳線設(shè)置 | JTAG標(biāo)頭 |
最大Q2000 | 5V, ±5% | 沒有 | JTAG—關(guān)閉 JH1, JH2, JH3Kit—關(guān)閉 JU11;在 JU1、JU2、JU1 收盤 2+3 | J4 |
為了設(shè)置MAXQ評估板和串行轉(zhuǎn)JTAG板(圖2)以與MAX-IDE配合使用:
將電源連接到串行轉(zhuǎn)JTAG板,如上所示。
設(shè)置評估套件和串行轉(zhuǎn)JTAG板的任何跳線,如上所示。可能需要在評估套件板上進(jìn)行額外的跳線或DIP開關(guān)設(shè)置,以訪問某些套件功能;有關(guān)更多詳細(xì)信息,請參閱評估套件數(shù)據(jù)手冊。
將串行轉(zhuǎn)JTAG板上的P2接頭的5×10 2連接器帶狀電纜連接到評估板上的相應(yīng)接頭。連接器可以鍵控以僅以一個方向連接;如果不是,請驗(yàn)證紅線是否連接到兩個接頭上的同一引腳。
將串行到JTAG板上的直通串行電纜從J1連接到PC COM端口。
打開所有電源。
圖2.MAXQ2000評估板和串行轉(zhuǎn)JTAG板
在 MAX-IDE 中使用項(xiàng)目
創(chuàng)建新的MAXQ裝配項(xiàng)目
要在MAX-IDE中創(chuàng)建新的MAXQ匯編語言項(xiàng)目,請執(zhí)行以下步驟。
從MAX-IDE菜單中,選擇器件→MAXQ JTAG。
選擇“項(xiàng)目”→“新建項(xiàng)目”。將創(chuàng)建一個無標(biāo)題的項(xiàng)目。
選擇“項(xiàng)目”→“將項(xiàng)目另存為”。選擇要保存項(xiàng)目的位置(.prj 文件)。
要創(chuàng)建新的匯編語言文件,請選擇“文件”→“新建文件”。將程序集代碼輸入到文件中后,選擇“文件”→“另存為”,并將新創(chuàng)建的 .asm 文件保存在項(xiàng)目目錄中。接下來,選擇“項(xiàng)目”→“添加文件”,然后選擇要添加到項(xiàng)目中的新創(chuàng)建的文件。
若要將現(xiàn)有匯編語言文件添加到項(xiàng)目中,只需選擇“項(xiàng)目”→“添加文件”,然后選擇要添加到項(xiàng)目中的文件。
包含文件不需要正式添加到項(xiàng)目中,因?yàn)樗鼈兪窃诮M裝過程中自動讀取的。
MAXQ2000的示例裝配文件為:
$include (..\api\maxQ2000.inc) org 0000h main: jump $ end
上面的$include行將根據(jù)包含文件的位置而有所不同。有關(guān) $include 和 org 指令的更多詳細(xì)信息,請參閱本文檔的“使用 MAX-IDE 匯編器”部分。
有關(guān)匯編和包含文件的說明
所有MAXQ微控制器通用的系統(tǒng)寄存器(如累加器、數(shù)據(jù)指針和環(huán)路控制寄存器)在MAX-IDE匯編器中預(yù)定義。每個器件的外設(shè)寄存器都不同,必須在包含文件中定義。每個MAXQ微控制器的MAX-IDE安裝都包含標(biāo)準(zhǔn)包含文件;上例所示的包含文件用于MAXQ2000。
預(yù)處理器指令(如等式、定義和宏)不會在項(xiàng)目內(nèi)的文件之間傳遞。如果MAX-IDE程序集項(xiàng)目包含多個程序集文件,則任何預(yù)處理器指令或包含文件指令都必須包含在使用它們的每個匯編文件中。
無論項(xiàng)目中的程序集文件數(shù)如何,每個文件的末尾都必須顯示“end”語句。
不要將“end”語句放在包含文件的末尾。
當(dāng)項(xiàng)目中包含多個程序集文件時,所有文件中的所有標(biāo)識符都是有效的公共標(biāo)識符;也就是說,任何程序集文件中的代碼都可以調(diào)用例程或引用該項(xiàng)目中任何其他程序集文件中定義的標(biāo)簽。
打開現(xiàn)有項(xiàng)目
要打開以前創(chuàng)建的MAX-IDE項(xiàng)目,只需從菜單中選擇“項(xiàng)目→打開項(xiàng)目”,然后選擇要打開的項(xiàng)目的.prj文件。注意,當(dāng)串行轉(zhuǎn)JTAG板和評估板未正確連接并上電時,打開MAXQ JTAG項(xiàng)目可能會導(dǎo)致錯誤信息。
創(chuàng)建或打開項(xiàng)目后,項(xiàng)目中包含的匯編代碼文件將在左側(cè)面板中列出。雙擊文件名將打開它,以便在 MAX-IDE 中進(jìn)行編輯,如下圖 3 所示。
圖3.MAX-IDE 項(xiàng)目環(huán)境。
執(zhí)行和調(diào)試代碼
編譯項(xiàng)目
若要編譯項(xiàng)目文件,請從菜單中選擇“調(diào)試→生成”或“調(diào)試→全部生成”,單擊工具欄上這些命令的快捷按鈕之一,或按 F7(與 Make) 相同)。MAXQ匯編器將運(yùn)行;如果沒有錯誤,則消息“正在編譯...構(gòu)建成功“將顯示在”消息“窗口中。生成中的任何錯誤也將顯示在“消息”窗口中。
運(yùn)行項(xiàng)目
成功編譯項(xiàng)目后,可以使用幾種方法之一在調(diào)試器中執(zhí)行該項(xiàng)目。
選擇調(diào)試→運(yùn)行(F5)將通過JTAG接口將編譯好的項(xiàng)目代碼加載到MAXQ微控制器中并開始執(zhí)行。程序執(zhí)行將繼續(xù),直到選擇“調(diào)試→停止”(Shift+F5)、單擊“暫?!卑粹o或遇到斷點(diǎn)。
選擇“調(diào)試”→單步執(zhí)行 (F11) 將加載已編譯的程序并在第一個源代碼行停止執(zhí)行。
選擇“調(diào)試”→“運(yùn)行到光標(biāo)”(Control+F10) 將加載已編譯的程序,開始執(zhí)行并運(yùn)行,直到執(zhí)行點(diǎn)到達(dá)編輯光標(biāo)所占據(jù)的行或到達(dá)斷點(diǎn)(以先發(fā)生者為準(zhǔn))。如果光標(biāo)不在源代碼行上,則選擇此選項(xiàng)將導(dǎo)致錯誤。
斷點(diǎn)在預(yù)定位置停止程序執(zhí)行,可以通過以下三種方法之一進(jìn)行設(shè)置或清除。
將光標(biāo)移動到要斷點(diǎn)的行,然后選擇“調(diào)試”→“切換斷點(diǎn)”。
將光標(biāo)移動到要斷點(diǎn)的行,然后單擊工具欄中的紅綠燈圖標(biāo)。
在編輯窗口中單擊要斷點(diǎn)的行的行號。
請注意,斷點(diǎn)可以放在非源代碼行上,但這不會有任何影響。MAXQ微控制器允許一次設(shè)置多達(dá)4個斷點(diǎn);如果選擇了“運(yùn)行到光標(biāo)”,則會占用一個斷點(diǎn),因此在這種情況下只能設(shè)置三個斷點(diǎn)。
選擇“調(diào)試”→“停止”或單擊工具欄中的“停止”圖標(biāo)將完全關(guān)閉程序執(zhí)行。但是,當(dāng)執(zhí)行在第一行(單步執(zhí)行)、游標(biāo)行(運(yùn)行到光標(biāo))或設(shè)置了斷點(diǎn)的行處停止時,程序可能會以分步模式執(zhí)行。也可以通過單擊“暫停”按鈕進(jìn)入分步模式。在此模式下,當(dāng)前執(zhí)行點(diǎn)用綠色箭頭標(biāo)記,可以使用以下命令。
調(diào)試→單步執(zhí)行 (F11)、調(diào)試→單步執(zhí)行 (F10) 和調(diào)試→單步執(zhí)行 (Shift+F10) 在程序集調(diào)試模式下都具有相同的效果,即執(zhí)行單個指令并將執(zhí)行點(diǎn)移動到下一條指令。
調(diào)試→運(yùn)行將從當(dāng)前執(zhí)行點(diǎn)運(yùn)行,直到到達(dá)下一個斷點(diǎn),如上所述。
調(diào)試→運(yùn)行到游標(biāo)將從當(dāng)前執(zhí)行點(diǎn)運(yùn)行,直到到達(dá)游標(biāo)行,如上所述。
請注意,在匯編語言調(diào)試模式下運(yùn)行時,“調(diào)試”菜單中的“高級調(diào)試”和“低級別調(diào)試”設(shè)置不起作用。
顯示和編輯處理器寄存器
一旦程序加載完畢并執(zhí)行了至少一條指令,就可以使用調(diào)試器查看和編輯MAXQ微控制器的寄存器。選擇“窗口”→顯示→寄存器將顯示寄存器集。這些值將在調(diào)試器中單步執(zhí)行代碼時更新。可寫寄存器可以通過雙擊其值字段并以十六進(jìn)制、十進(jìn)制或二進(jìn)制輸入新值來編輯。
MAXQ2000套件說明: 如果連接了LCD子板,請勿手動編輯寄存器PO0、PD0、PO1、PD1、PO2、PD2、PO3或PD3的值。在連接液晶屏的情況下將這些針腳輸出設(shè)置為靜態(tài)值可能會損壞液晶屏。
顯示和編輯處理器內(nèi)存
一旦程序加載完畢并執(zhí)行了至少一條指令,就可以查看和編輯MAXQ微控制器的內(nèi)部存儲器。選擇“窗口”→顯示→內(nèi)存將顯示內(nèi)部存儲器。您可以通過從顯示屏上的下拉列表中進(jìn)行選擇來查看代碼、數(shù)據(jù)或堆棧內(nèi)存。內(nèi)存以 16 位寬度顯示代碼和堆??臻g,以 8 位寬度顯示數(shù)據(jù)空間??梢酝ㄟ^雙擊內(nèi)存位置并輸入新值來編輯數(shù)據(jù)或堆??臻g中的內(nèi)存值。
使用MAX-IDE匯編程序
MAX-IDE提供了一個多通道匯編器,可用于用MAXQ匯編語言開發(fā)應(yīng)用程序。此匯編程序包括一個單通道預(yù)處理器,它提供了使用包含文件、符號等值、條件程序集和宏的功能。匯編器和預(yù)處理器與MAX-IDE環(huán)境完全集成。
有關(guān)如何使用宏和其他預(yù)處理器指令的示例,請參閱“宏”示例項(xiàng)目。
一般語法
MAXQ匯編器和預(yù)處理器都不區(qū)分大小寫。程序集語句遵循以下格式:
[label:] [opcode [parameter [, parameter]]] [;comment]
如以下示例代碼所示:
main: move Acc, A[2] ; copy A[2] to active accumulator
標(biāo)識符(如上面顯示的“主”標(biāo)簽)可能包含字符 [a-zA-Z_?$0-9],但它們不能以 0-9 數(shù)字開頭。它們的長度最多為 127 個字符。
請參考MAXQ系列用戶指南,詳細(xì)了解MAXQ微控制器系列的架構(gòu)、指令集、尋址模式和內(nèi)核寄存器。
源文件
MAX-IDE項(xiàng)目窗口中列出的所有匯編源(.asm)文件將在編譯項(xiàng)目時按照它們在窗口中的顯示順序進(jìn)行匯編。未提供鏈接器,因此多個文件的組裝方式與合并到單個文件中然后組裝的方式相同。
源文件可能包含指令、等值/定義、宏、條件程序集塊和語句。任何源文件的最后一行都必須包含 END 指令:
end
包含文件
包含 (.inc) 文件不需要顯式添加到項(xiàng)目中。相反,它們通過 include 指令自動讀入和分析,這會導(dǎo)致解析包含文件,就好像它的所有文本都出現(xiàn)在源文件中而不是 include 指令一樣。
(source file): (equates.inc): $include(equates.inc) ---> MASK1 equ 0FFh MASK2 equ 0FEh (resume parsing in source <--- file)
包含文件可能包含指令、等值、宏和 DB/DW 數(shù)據(jù)語句,但它們可能不包含程序集例程。包含文件不需要以 END 指令結(jié)尾。
MAX-IDE為每個MAXQ微控制器提供了一個標(biāo)準(zhǔn)的包含文件,該文件定義了該微控制器的外設(shè)寄存器集以及實(shí)用程序ROM提供的功能地址。這些包括文件可用于所有匯編語言項(xiàng)目;它們位于主 MAX-IDE 安裝目錄下的“示例”子目錄中。
常數(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)換為字節(jié) ASCII 值。示例:“A”
以下運(yùn)算符也只能在常量中使用并等同定義;這些語句的評估在預(yù)處理階段執(zhí)行,在解析常量值之前。
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ù)字替換。他們可以使用上面為常量定義的所有格式和常量運(yùn)算符。標(biāo)簽不被識別為常量。
ONE equ 01 TWO equ 02 move Acc, #ONE move Acc, #(ONE+TWO)
等值也可用于后續(xù)等值的定義中。
ONE equ 01 TWO equ ONE+ONE
定義
定義允許直接 C 樣式文本替換,無需額外處理,并且最常用于包含文件中以定義外設(shè)寄存器。替換文本限制為一行;沒有公認(rèn)的延續(xù)字符。無法識別 C 樣式宏。
#define PO[0] M0[0] move Acc, PO[0] ; Parses as 'move Acc, M0[0]'
數(shù)據(jù)關(guān)鍵字
DB 和 DW 指令可用于將原始字節(jié)(包括字符串值中的字節(jié))或單詞插入到當(dāng)前位置的十六進(jìn)制文件中。
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ù)據(jù)值將插入到代碼空間中。因此,如果 DB 語句發(fā)生在兩組指令語句之間,則定義的字節(jié)數(shù)必須為偶數(shù),以防止出現(xiàn)字對齊程序集錯誤。
條件組裝
條件語句允許僅在滿足特定布爾條件時才組裝代碼塊。它們具有以下形式。
IF () statements ... ENDIF
布爾語句使用常量、等值和以下布爾運(yùn)算符定義:=、!=、<、<=、> 和 >=。條件程序集塊中只能使用代碼和包含語句,不能使用宏或等值。
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
宏
宏允許使用代碼塊來定義函數(shù),這些代碼塊在每次調(diào)用函數(shù)時進(jìn)行內(nèi)聯(lián)擴(kuò)展和組裝。它們具有以下形式。
MACRO [[PARAM ] [whitespace AND/OR comma] [ ] ...] [LOCAL [whitespace AND/OR comma] [ ] ...] ... ENDM
最簡單的宏類型只不過是在每次引用時插入其代碼。插入代碼中的等式、定義和嵌套宏調(diào)用都將正常處理。
ThreeNops MACRO nop nop nop ENDM ThreeNops --> nop nop nop
宏可以選擇定義一個或多個參數(shù),這些參數(shù)是在引用宏時傳遞的值。這些值將粘貼到展開的代碼中。以下宏使用參數(shù)為任何可寫寄存器(Acc除外)提供“INC”函數(shù),代價是一級堆??臻g。
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)識符,這些標(biāo)識符在擴(kuò)展的代碼中重命名,以便它們在宏的每個引用中都是唯一的。
LoopN MACRO PARAM Count LOCAL L1 move LC[0], Count L1: djnz LC[0], L1 ENDM
在上面的宏中,每次引用宏并插入其代碼時,“L1”標(biāo)簽都將重命名為不同的臨時值。
審核編輯:郭婷
-
微控制器
+關(guān)注
關(guān)注
48文章
7454瀏覽量
150851 -
寄存器
+關(guān)注
關(guān)注
31文章
5294瀏覽量
119814 -
存儲器
+關(guān)注
關(guān)注
38文章
7430瀏覽量
163514
發(fā)布評論請先 登錄
相關(guān)推薦
評論