0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

IAR編譯器和MAXQ2000評估板入門

星星科技指導(dǎo)員 ? 來源:ADI ? 作者:ADI ? 2023-03-02 14:18 ? 次閱讀

應(yīng)用筆記描述了如何創(chuàng)建、構(gòu)建和調(diào)試用C語言編寫的、針對MAXQ?平臺的應(yīng)用。演示了MAXQ2000的一些特性。

介紹

MAXQ平臺由一套世界級的工具支持,即IAR的MAXQ嵌入式工作臺。本應(yīng)用筆記描述了如何創(chuàng)建、構(gòu)建和調(diào)試用C語言編寫的面向MAXQ平臺的應(yīng)用。本文還將演示MAXQ2000的一些特性,MAXQ<>是MAXQ系列的首款微控制器。

本應(yīng)用筆記使用MAXQ平臺IAR編譯器1.12B版編寫。這些說明也適用于產(chǎn)品的更高版本。這些指令用于MAXQ2000評估板。

設(shè)置MAXQ2000評估板

在開始編寫代碼之前,我們先連接MAXQ2000評估板。該套件應(yīng)隨附 3 塊板,一塊帶有小型 LCD 屏幕。最大的電路板(如圖1所示,連接LCD子板)是實際的MAXQ2000評估板。我們將在本文檔后面討論該板的功能。拿起LCD板,連接到標(biāo)有J2000的MAXQ3評估板上的接頭。

pYYBAGQAP72AS7zQAACClThiIFM233.jpg


圖1.MAXQ2000評估板,附有LCD板。

評估套件中的剩余電路板是JTAG板。MAXQ2000加載器和調(diào)試引擎使用JTAG協(xié)議進(jìn)行通信。由于幾乎沒有用于個人計算機(jī)的通用商用JTAG適配器,達(dá)拉斯半導(dǎo)體公司提供了串行到JTAG轉(zhuǎn)換器板。評估套件還應(yīng)包含一個小型連接器。使用該連接器連接MAXQ2000評估板和JTAG板,如圖2所示。電纜將MAXQ4評估板上標(biāo)有J2000的針座連接到JTAG板上標(biāo)有P2的針座。請注意,連接器的紅色一側(cè)位于兩塊板上標(biāo)記為引腳“1”和“2”的一側(cè)。

poYBAGQAP7-Ab5qjAABraBU4zkc964.jpg


圖2.MAXQ2000評估板連接到JTAG板。

MAXQ3評估板上應(yīng)放置2000個跳線。接頭 JU1、JU2 和 JU1 上的引腳 2 和 3 應(yīng)一起跳線。此外,請確保晶體放置在Y1處(靠近板上的微處理器)。本應(yīng)用筆記中的演示程序假設(shè)晶體為13.5Mhz。JTAG板還應(yīng)放置3個跳線。跳線應(yīng)放置在接頭 JH1、JH2 和 JH3 上。

此設(shè)置中使用的電源輸出 5V ±5% DC 和 300mA,中心正極。將電源插入JTAG板上的電源插孔J2。

最后,我們需要將PC串行端口連接到JTAG板。使用普通的9針直通串行電纜將計算機(jī)上的一個串行端口連接到JTAG板上的串行端口(注意:不要連接到MAXQ2000評估板上的串行端口...有關(guān)正確連接的詳細(xì)信息,請參閱圖 3)。

pYYBAGQAP8CAY9h-AAB-XcmvChE599.jpg


圖3.串行電纜的正確位置,連接到JTAG板。

我們現(xiàn)在已準(zhǔn)備好開始使用 IAR 工具。

IAR 編譯器入門:Hello World

IAR為MAXQ平臺提供了一個代碼大小有限的編譯器的評估副本。MAXQ2000評估板隨附的CD提供。此外,還可以從 http://www.iar.com 下載評估副本。按照說明進(jìn)行安裝,選擇安裝位置和選項的默認(rèn)值。請注意,IAR 嵌入式工作臺產(chǎn)品僅適用于 Windows? 平臺。

通過“開始”菜單中的鏈接啟動IAR嵌入式工作臺:IAR系統(tǒng)IAR嵌入式工作臺,用于MAXQ IAR嵌入式工作臺。現(xiàn)在我們將為MAXQ2000評估板創(chuàng)建一個簡單的應(yīng)用。

創(chuàng)建新工作區(qū)。在“文件”下,選擇“新建”。將出現(xiàn)一個對話框,為您提供“源/文本”和“工作區(qū)”之間的選擇。選擇工作區(qū),然后單擊確定。將出現(xiàn)一個文件對話框,要求您輸入新工作區(qū)的名稱。瀏覽到要保存新工作區(qū)的位置,然后輸入工作區(qū)名稱。對于這個項目,我們將工作空間稱為“helloworld”。輸入工作區(qū)名稱后,單擊保存。

打開工作區(qū)后,我們需要創(chuàng)建一個項目。在“項目”菜單下,選擇“創(chuàng)建新項目”。將彈出另一個文件對話框。確保在下拉框“工具鏈”下選擇了MAXQ。輸入項目的名稱,然后單擊“創(chuàng)建”按鈕。我們將我們的項目稱為“helloproject”。

現(xiàn)在我們已經(jīng)創(chuàng)建了一個項目,我們需要將其配置為與MAXQ2000評估板一起使用。在項目管理器窗口中,右鍵單擊顯示“helloproject - 調(diào)試”的行,然后單擊“選項”項(圖 4)。大多數(shù)默認(rèn)選項都可以,但我們需要更改一些設(shè)置。

poYBAGQAP8GAAY_1AAAddDo8FC4003.gif


圖4.右鍵單擊項目。

在項目選項中,選擇“類別”下的“云易”,然后選擇“包括”選項卡。在對話框底部,選中標(biāo)有“覆蓋默認(rèn)值”的框,然后單擊下面編輯行右側(cè)的小按鈕(標(biāo)記為“...”)。應(yīng)出現(xiàn)文件選擇對話框。選擇文件“l(fā)nkmaxq200x.xcl”1,然后單擊打開。項目選項對話框應(yīng)如圖 5 所示。

pYYBAGQAP8KAQkURAAAuTVYFBMA316.gif


圖5.為MAXQ2000設(shè)置正確的鏈接器選項。

現(xiàn)在選擇 C-SPY 調(diào)試器 在類別下。在標(biāo)有“驅(qū)動程序”的下拉框下,選擇JTAG。這告訴IAR嵌入式工作臺在實際硬件上調(diào)試應(yīng)用程序,而不是在軟件模擬器上。還要確保選擇的“設(shè)備描述文件”是“$TOOLKIT_DIR$Configmaxq200x.ddf”。圖 6 顯示了此對話框窗口的正確配置。

poYBAGQAP8OAccVpAAAposBqsO0581.gif


圖6.用于MAXQ2000的調(diào)試器選項

最后一個需要的項目選項在項目JTAG中,這是C-SPY調(diào)試器在類別列表下的子項目。在標(biāo)有“COM端口:”的編輯框中,輸入PC上用于與MAXQ2000評估板通信的COM端口。通常,這將是COM1或COM2,盡管許多具有USB串行端口適配器的用戶將使用COM4或更高版本。

現(xiàn)在我們已經(jīng)正確配置了IAR工具,以便與MAXQ2000評估板配合使用。單擊項目選項窗口中的確定按鈕。接下來,我們需要為我們的項目創(chuàng)建一些源代碼。首先,我們將從一個簡單的HelloWorld風(fēng)格的應(yīng)用程序開始,它只是切換一個LED。

單擊工具欄上的“新建文件”按鈕(工具欄最左側(cè)的空白頁)或從“文件”菜單中選擇“新建”。選擇源/文本,然后單擊確定按鈕。將出現(xiàn)一個標(biāo)有“無標(biāo)題1”的新窗口。在新窗口中鍵入以下代碼:

#include void main() { unsigned int counter1; unsigned int counter2; PD0 = 0xff; while (1) { for (counter1 = 0; counter1 < 0xffff; counter1++) ? ? ?{ ? ? ? ?for (counter2 = 0; counter2 < 0x10; counter2++) ? ? ? ?{ ? ? ? ?} ? ? ?} ? ? ?PO0 = PO0 ^ 0xff; ? ?} } 通過單擊“保存”按鈕(工具欄上的磁盤圖標(biāo))或從菜單中選擇“文件保存”來保存此文件。在出現(xiàn)的文件對話框中,鍵入“demo.c”作為文件名,然后單擊保存。請注意,文件“demo.c”不會出現(xiàn)在項目窗口中。在構(gòu)建項目之前,我們需要將此源文件添加到項目中。右鍵單擊項目窗口中的“helloproject - 調(diào)試”行,然后選擇“添加文件...”從菜單中。出現(xiàn)文件對話框時,選擇文件“demo.c”,然后單擊“打開”?,F(xiàn)在源代碼已添加,我們已準(zhǔn)備好構(gòu)建。

在“項目”菜單下,選擇“全部重建”選項。屏幕底部的消息窗口應(yīng)輸出大量數(shù)據(jù),結(jié)尾為:

Total number of errors: 0 Total number of warnings: 0 如果出現(xiàn)任何錯誤或警告,請確保正確輸入代碼并按照項目設(shè)置的所有說明進(jìn)行操作。此時可能出現(xiàn)的一個常見警告是“文件的最后一行結(jié)束,沒有換行符”。如果收到此錯誤,請轉(zhuǎn)到源代碼的最后一行,然后按幾次 Enter 鍵,在最后一個右括號 ('}') 之后創(chuàng)建一些新行。

成功構(gòu)建項目后,即可運(yùn)行它。確保JTAG板和MAXQ2000板已連接并供電,如本文檔第一部分所述。此外,對于第一個演示,我們需要打開一個開關(guān),使 LED 段點(diǎn)亮。找到標(biāo)有 SW6 的開關(guān),然后將 8 號開關(guān)轉(zhuǎn)到打開(上部)位置。若要運(yùn)行項目,請選擇“項目”菜單,然后選擇“調(diào)試”選項。應(yīng)出現(xiàn)一個窗口,告訴您正在下載應(yīng)用程序。

項目將從在可執(zhí)行代碼的第一行“PD0 = 0xff;”處命中其第一個斷點(diǎn)開始。稍后我們將探討 IAR 嵌入式工作臺中可用的調(diào)試選項?,F(xiàn)在,只需點(diǎn)擊工具欄中的GO按鈕(三個藍(lán)色箭頭)或在“調(diào)試”菜單下選擇GO。您應(yīng)該看到大多數(shù) LED 段大約每秒閃爍一次。

我們剛剛使用IAR嵌入式工作臺編譯、加載并運(yùn)行了MAXQ2000評估板的第一個應(yīng)用。接下來,我們將使我們的示例應(yīng)用程序稍微復(fù)雜一些。之后,我們將討論MAXQ2000評估板的一些特性,然后介紹IAR嵌入式工作臺中的一些調(diào)試特性。

一個簡單的應(yīng)用:在LCD上顯示計數(shù)器

現(xiàn)在我們已經(jīng)成功切換了 LED,讓我們繼續(xù)討論更復(fù)雜的事情 - 使用 LCD。MAXQ2000微控制器集成了132段LCD控制器和片內(nèi)電阻分壓器,用于對比度控制。它還能夠直接向LCD屏幕供電。MAXQ2000評估板帶有一個簡單的靜態(tài)LCD屏幕,該屏幕有四位數(shù)字以及一些簡單的標(biāo)點(diǎn)符號(幾個冒號和句點(diǎn),見圖7)。首先,我們將編寫一個僅在LCD上實現(xiàn)計數(shù)器的應(yīng)用程序。稍后,我們將詳細(xì)討論控制LCD的代碼,并顯示一個更復(fù)雜的示例。

使用前面描述的步驟創(chuàng)建新的工作區(qū)和項目(請記住,您需要為此新項目重新輸入所有 XLINK、C-SPY 和 JTAG 選項)。我們將此工作區(qū)稱為 LCDDemo,并將項目稱為 SimpleLCD。下載此示例的源代碼。將文件 lcdcounter.c 放入您剛剛創(chuàng)建 LCDDemo 項目的同一目錄中。在IAR項目窗口中,右鍵單擊顯示“SimpleLCD - 調(diào)試”的行,然后選擇“添加文件...”。選擇我們剛剛添加的文件 lcdcounter.c,然后單擊打開。

在運(yùn)行項目之前,讓我們看一下代碼的幾個重要部分。首先,一直向下滾動到文件底部,到讀取 void main() 的行。這是應(yīng)用程序的主要入口點(diǎn)。您可以看到我們初始化 LCD(函數(shù) initLCD),然后在 (1) 時進(jìn)入無限循環(huán)。主循環(huán)調(diào)用一個函數(shù) show,該函數(shù)在 LCD 屏幕上顯示一個數(shù)字。每次通過循環(huán)時,我們將值計數(shù)遞增 1,如果超過 19999,則滾動,即我們的 LCD 屏幕可以顯示的最大值。

讓我們繼續(xù)運(yùn)行應(yīng)用程序。單擊“調(diào)試”按鈕(工具欄最右側(cè))或從菜單中選擇“項目調(diào)試”。請注意,IAR 嵌入式工作臺會在將應(yīng)用加載到評估套件之前自動構(gòu)建應(yīng)用。我們再次看到 IAR 顯示更改為調(diào)試模式,并且在 void main() 中的第一行代碼處停止執(zhí)行。按下GO按鈕(三個藍(lán)色箭頭)并查看顯示屏。它應(yīng)該迅速向上計數(shù)。如果你觀察的時間足夠長,當(dāng)它接近20000時,它會環(huán)繞。

現(xiàn)在是時候展示MAXQ2000評估板中更有用的功能之一——RESET按鈕。評估板左下方是一個標(biāo)有SW2和RESET的開關(guān)。按下按鈕并觀看液晶屏。它應(yīng)該立即再次從 0 重新開始。此按鈕連接到微控制器的復(fù)位引腳 - 如果您需要重新啟動應(yīng)用程序,只需按此按鈕即可。

MAXQ2000評估板的特點(diǎn)

現(xiàn)在我們已經(jīng)使用MAXQ2000評估板的LCD子板構(gòu)建了一個應(yīng)用,讓我們仔細(xì)看看評估板附帶的所有玩具。這里不介紹評估板的所有元件,但您可以在MAXQ2000評估板原理圖和“MAXQ2000評估板入門指南”中找到更多信息,兩者都在評估板隨附的CD上提供。

液晶子板

我們已經(jīng)看到了LCD板的運(yùn)行情況。段和公共信號的產(chǎn)生由MAXQ微控制器上的幾個寄存器控制。LCD子板已接線,因此可以輕松地將數(shù)字寫入LCD屏幕上四個位置中的任何一個。由于每個 7 段 LCD 數(shù)字的映射相同,因此我們在代碼中包含下表,以幫助我們編寫正確的 LCD 寄存器值:

#define LCD_PATTERN_0 0x03F #define LCD_PATTERN_1 0x006 #define LCD_PATTERN_2 0x05B #define LCD_PATTERN_3 0x04F #define LCD_PATTERN_4 0x066 #define LCD_PATTERN_5 0x06D #define LCD_PATTERN_6 0x07D #define LCD_PATTERN_7 0x007 #define LCD_PATTERN_8 0x07F #define LCD_PATTERN_9 0x067 int PATTERNS[] = { LCD_PATTERN_0, LCD_PATTERN_1, LCD_PATTERN_2, LCD_PATTERN_3, LCD_PATTERN_4, LCD_PATTERN_5, LCD_PATTERN_6, LCD_PATTERN_7, LCD_PATTERN_8, LCD_PATTERN_9 }; int getLCDDigit(int digit) { return PATTERNS[digit]; } 使用 getLCDDigit 函數(shù),我們可以使用以下代碼將值寫入控制器屏幕: 該 LCD 板還可以顯示周期和冒號,使其成為時鐘、溫度讀數(shù)和任何其他簡單數(shù)字顯示的理想選擇。圖7顯示了LCD子板上段的完整圖,以及用于啟用每個段的LCD寄存器位。/* write the value 612 to the LCD screen */ LCD2 = getLCDDigit(6); LCD1 = getLCDDigit(1); LCD0 = getLCDDigit(2);

pYYBAGQAP8SAULrsAAA8uw5HVxY816.jpg


圖7.將LCD段映射到MAXQ2000寄存器位。

按鈕

MAXQ2000評估板上有三個按鈕,兩個可以連接到外部中斷,一個可以連接到微控制器上的復(fù)位信號。重置按鈕可用于重新啟動應(yīng)用程序的執(zhí)行,如前面使用 LCD 計數(shù)器演示的那樣。

如果由開關(guān)啟用,其他兩個按鈕可以連接到外部中斷。每個按鈕都有一對可以連接的外部中斷。按鈕 1(在評估板上標(biāo)有 SW4)可連接到端口 5 引腳 2(外部中斷 #10)或端口 5 引腳 3(外部中斷 #11)。按鈕 2(在評估板上標(biāo)有 SW5)可連接到端口 7 引腳 0(外部中斷 #14)或端口 7 引腳 1(外部中斷 #15)。下表描述了可用于將按鈕連接到外部中斷引腳的開關(guān)。

開關(guān)(設(shè)置為開) 連接按鈕 到端口引腳... 外部中斷#
SW6,開關(guān) 2 按鈕 1 (SW4) 端口 5 引腳 2 10
SW6,開關(guān) 3 按鈕 1 (SW4) 端口 5 引腳 3 11
SW6,開關(guān) 4 按鈕 2 (SW5) 端口 7 引腳 0 14
SW6,開關(guān) 5 按鈕 2 (SW5) 端口 7 引腳 1 15

請注意,這些引腳具有替代功能,這就是為什么我們可以選擇可以連接到按鈕的外部中斷的原因。例如,端口 7 引腳 0 和 1 用于 UART 0 的串行端口發(fā)送和接收線路。如果將按鈕綁定到其中一個按鈕上,您將很難使用 UART 0 功能。請記住,MAXQ2000上有兩個UART,因此在決定如何配置MAXQ2000評估板時,有一些選擇。

串行連接器

MAXQ2000評估板包含一個9引腳串行連接器和一個RS-232電平轉(zhuǎn)換器。這意味著您可以使用普通的直通串行電纜,將其從評估套件連接到PC。這與用于連接到較小的串行轉(zhuǎn)JTAG板的串行電纜相同。

為了通過此串行端口讀取傳入數(shù)據(jù),SW3上的1號交換機(jī)必須處于ON位置。請注意,如果使用引腳 P7.1 生成外部中斷(如果 SW6.5 為 ON),這可能會產(chǎn)生沖突。要通過此串行端口寫入數(shù)據(jù),SW7 上的第 1 號交換機(jī)必須處于 ON 位置。同樣,如果使用 P7.0 生成外部中斷(如果 SW6.4 為 ON),這可能會產(chǎn)生沖突。

發(fā)光二極管面板

我們已經(jīng)在簡單的HelloWorld風(fēng)格的應(yīng)用程序中使用了我們的LED面板。讓我們仔細(xì)看看我們在該面板上看到的確切內(nèi)容。圖 8 顯示了 LED 面板及其輸出引腳關(guān)聯(lián)的各個燈。

poYBAGQAP8WAZyTAAAA_SovDBC4707.jpg


圖8.將LED映射到MAXQ2000寄存器位。

為了將值寫入 I/O 端口,我們首先需要設(shè)置要輸出的端口 0 引腳的方向。每個引腳都有一個獨(dú)立的輸入/輸出方向控制。在我們的第一個應(yīng)用程序中,我們使用以下代碼行來設(shè)置要輸出的所有端口 0 引腳:

PD0 = 0xff; 當(dāng)相應(yīng)的I/O端口設(shè)置為輸出時,當(dāng)PO0寄存器中的相應(yīng)位設(shè)置為1時,該引腳的LED將亮起。請注意,開關(guān)組 SW8 上的第 6 號開關(guān)必須處于 ON 位置才能為 LED 陣列供電。

MAX1407

MAXQ2000評估板帶有MAX1407,具有4通道16位模數(shù)轉(zhuǎn)換器和兩個10位數(shù)模轉(zhuǎn)換器。MAXQ2000通過片內(nèi)SPI?主機(jī)與其通信。這使得MAX1407成為MAXQ2000與實際信號接口的完美伴侶器件。在線應(yīng)用2示例使用熱敏電阻和MAXQ2000評估板顯示當(dāng)前溫度。查看此示例應(yīng)用程序中的源代碼,了解有關(guān)運(yùn)行該應(yīng)用程序所需執(zhí)行的硬件連接和配置的信息。

使用 IAR 編譯器調(diào)試應(yīng)用程序

現(xiàn)在讓我們進(jìn)入一個新的應(yīng)用程序,它將向我們介紹IAR調(diào)試工具。像我們之前所做的那樣創(chuàng)建一個新的工作區(qū)和項目。我們將我們的工作空間稱為“l(fā)cdtime”,將我們的項目稱為“rtc_demo”?,F(xiàn)在,從本應(yīng)用筆記3的源下載中添加源文件lcd_rtc.c。構(gòu)建此應(yīng)用,點(diǎn)擊DEBUG按鈕將其加載到MAXQ2000評估板上。

此應(yīng)用程序?qū)嶋H上是我們之前編寫的LCD計數(shù)器應(yīng)用程序的擴(kuò)展。當(dāng)您開始運(yùn)行它時,它看起來是一樣的 - 在LCD屏幕上顯示快速遞增的計數(shù)。但是,按下SW4按鈕,應(yīng)用程序?qū)@示實時時鐘的當(dāng)前值。乍一看,這似乎不太有用,因為時間幾乎肯定是不正確的。按幾次SW5按鈕,您將看到分鐘增量。如果您還需要增加小時數(shù),您可能很快就會厭倦按下此按鈕。在這種情況下,您可以按住 SW5 按鈕并按 SW4 按鈕以增加小時數(shù)。如果再次自行按下 SW4 按鈕,您將切換回計數(shù)器顯示。

繼續(xù)并通過點(diǎn)擊GO按鈕(三個藍(lán)色箭頭)運(yùn)行此應(yīng)用程序。稍微嘗試一下,以了解應(yīng)用程序的功能。一旦您掌握了該應(yīng)用程序,我們將使用它來介紹IAR的一些調(diào)試工具。

使用 IAR 進(jìn)行調(diào)試:暫停應(yīng)用程序

在應(yīng)用程序運(yùn)行時,用工具欄左側(cè)的紅手按下按鈕。您也可以轉(zhuǎn)到“調(diào)試”菜單并選擇“中斷”。這將導(dǎo)致處理器停止,IAR 將在應(yīng)用程序中顯示您的當(dāng)前位置。

應(yīng)用程序暫停后,您有多種選擇。如果將鼠標(biāo)懸停在調(diào)試工具欄上的其他一些按鈕(帶有藍(lán)色箭頭的其他按鈕)上,您將看到彈出一個提示窗口,并告訴您按鈕的功能。一些更有用的按鈕是:

單步跳過:單步執(zhí)行下一條指令。如果下一條指令是函數(shù)調(diào)用,則按此按鈕不會將您帶入函數(shù)進(jìn)行調(diào)試。

步入:步入下一條指令。如果下一條指令是函數(shù)調(diào)用,則按此按鈕將帶您進(jìn)入被調(diào)用的函數(shù)。

運(yùn)行到光標(biāo):運(yùn)行應(yīng)用程序,直到執(zhí)行到達(dá)光標(biāo)在代碼中的當(dāng)前位置。這可能比使用斷點(diǎn)功能運(yùn)行到代碼中的特定點(diǎn)更方便一些。

Go:允許應(yīng)用程序正常執(zhí)行??梢酝ㄟ^按暫停按鈕或到達(dá)斷點(diǎn)來停止應(yīng)用程序。

使用 IAR 進(jìn)行調(diào)試:斷點(diǎn)

斷點(diǎn)允許我們在應(yīng)用程序到達(dá)特定位置時停止應(yīng)用程序。讓我們用一個例子來說明這一點(diǎn)。如果應(yīng)用程序仍在運(yùn)行,請將其停止。在代碼中找到函數(shù) pushButtonInterrupt,并找到以下行:

IF (EIF1 & 0x04) 右鍵單擊此行,然后從彈出菜單中選擇選項切換斷點(diǎn)(而不是選項“切換書簽”!紅色的“X”應(yīng)出現(xiàn)在此行左側(cè)的邊距中。現(xiàn)在再次點(diǎn)擊調(diào)試按鈕并通過按 GO 按鈕運(yùn)行應(yīng)用程序。您應(yīng)該看到液晶屏計數(shù)器正在執(zhí)行。

按 SW5 按鈕。您會注意到計數(shù)器應(yīng)用程序似乎凍結(jié)了。如果您回顧一下 IAR 嵌入式工作臺,您會發(fā)現(xiàn)應(yīng)用程序已停止,并且我們向其添加斷點(diǎn)的行已突出顯示,如圖 9 所示。

pYYBAGQAP8aAcFFZAAA2OKHqDZI367.gif


圖9.在 IAR 嵌入式工作臺中遇到斷點(diǎn)。

斷點(diǎn)是調(diào)試應(yīng)用程序時非常有用的工具。開發(fā)人員通常想知道代碼路徑是否已被遵循或丟失。例如,如果我們的按鈕中斷例程不起作用,我們可能不得不考慮兩種選擇:1)按鈕中斷例程代碼編碼不正確,因此我們看不到預(yù)期的內(nèi)容,以及2)按鈕中斷代碼根本沒有執(zhí)行。使用斷點(diǎn),我們可以確定數(shù)字 2 是否是這種情況,這將有助于我們確定將調(diào)試工作集中在何處。

使用 IAR 進(jìn)行調(diào)試:局部變量

在應(yīng)用程序仍處于斷點(diǎn)處的情況下,打開 LOCALS 窗口(如果尚未打開)。您可以通過選擇“查看”菜單下的“局部變量”選項來打開此窗口。如果您仍然暫停在我們之前設(shè)置斷點(diǎn)的行上,則局部變量窗口應(yīng)如下所示:

pYYBAGQAQX6AUtK_AAA6WQPIrQ8998.png


圖 10.IAR 嵌入式工作臺中的局部變量窗口。

請注意兩個條目 temp 和 time。temp 變量用于顯示 PI7 寄存器的值。請注意,另一個入場時間顯示<不可用>。這意味著該變量當(dāng)前不在作用域中 - 它要么沒有值,要么函數(shù)不會再次使用其值。

“LOCALS”窗口顯示在應(yīng)用程序已暫停的函數(shù)中聲明和使用的變量。這是一個強(qiáng)大的工具,用于告訴我們應(yīng)用程序的當(dāng)前狀態(tài) - 我們可以檢查變量中的意外值,或者根據(jù)變量的值確定應(yīng)用程序下一步將轉(zhuǎn)到何處。

但這并不是 LOCALS 窗口所能做的全部 - 您可以在程序執(zhí)行期間更改變量的值。單擊 temp 的值(可能是 1),然后輸入一個新的整數(shù)值。您剛剛更改了正在執(zhí)行的應(yīng)用程序的狀態(tài)。這允許開發(fā)人員查看他們的應(yīng)用程序如何對不同的輸入做出反應(yīng),而無需重新構(gòu)建和重新加載應(yīng)用程序。

使用 IAR 進(jìn)行調(diào)試:監(jiān)視窗口

在應(yīng)用程序仍處于暫停狀態(tài)的情況下,打開“監(jiān)視”窗口(“查看監(jiān)視”)。在表達(dá)式下,輸入 pbcount。值 1 應(yīng)出現(xiàn)在 WATCH 窗口中(除非您按下了更多按鈕并讓應(yīng)用程序再次運(yùn)行)。監(jiān)視窗口允許我們輸入所需的任何表達(dá)式,并向我們顯示該表達(dá)式的計算值。在本例中,我們輸入了一個全局變量的名稱,該變量告訴我們輸入了多少次按鈕中斷代碼。監(jiān)視窗口比這更強(qiáng)大一些,但是在監(jiān)視窗口中再次單擊pbcount,然后鍵入pbcount ^0x05。IAR 嵌入式工作臺將評估此表達(dá)式(以 5 表示 pbcount 值的獨(dú)占 OR),并顯示結(jié)果 (4)。

poYBAGQAP8iAItZEAAAT1HoKk-I001.gif


圖 11.IAR 嵌入式工作臺中表達(dá)式的監(jiān)視窗口。

使用 IAR 進(jìn)行調(diào)試:調(diào)用堆棧

打開調(diào)用堆棧(查看調(diào)用堆棧)。調(diào)用堆棧顯示已調(diào)用的函數(shù),以到達(dá)代碼當(dāng)前正在執(zhí)行的位置?,F(xiàn)在,由于我們正在處理中斷,因此僅顯示 pushButtonInterrupt() (以及一些調(diào)試信息)。讓我們稍微逐步瀏覽一下應(yīng)用程序,看看這個窗口的運(yùn)行情況。我們將向下轉(zhuǎn)到標(biāo)記為中斷 15 的代碼段下的 showTime() 行。您可以多次按單步跳過,也可以右鍵單擊該行并選擇運(yùn)行到光標(biāo)。您現(xiàn)在應(yīng)該突出顯示 showTime() 行。按下 STEP INTO 按鈕,我們應(yīng)該看到 showTime() 函數(shù)中的第一行代碼突出顯示。再次查看調(diào)用堆棧 - 現(xiàn)在 showTime() 函數(shù)是列出的第一行,后跟 pushButtonInterrupt()。由于它是一個堆棧,因此首先列出我們當(dāng)前所在的函數(shù),然后是調(diào)用我們的函數(shù),然后是調(diào)用該函數(shù)的函數(shù),依此類推。

poYBAGQAQY2AHNunAAAm2PSPZSs825.png


圖 12.IAR 嵌入式工作臺中的調(diào)用堆棧。

使用 IAR 進(jìn)行調(diào)試:內(nèi)存窗口

IAR 嵌入式工作臺還允許我們查看運(yùn)行應(yīng)用程序的設(shè)備的內(nèi)存。選擇查看內(nèi)存以查看內(nèi)存窗口。第一次打開此窗口時,它可能顯示代碼段的內(nèi)存內(nèi)容。單擊下拉框,您可以看到我們可以查看的內(nèi)存類型的選項。選擇“數(shù)據(jù)”選項,查看MAXQ2000片內(nèi)RAM的內(nèi)容。

poYBAGQAP8qADzoMAAAyi3q6AcM044.gif


圖 13.內(nèi)存內(nèi)容顯示在 IAR 嵌入式工作臺中。

就像 LOCALS 窗口一樣,我們可以直接在此處更改 RAM 的值。突出顯示其中一個條目,然后鍵入要查看的新十六進(jìn)制值。與 LOCALS 窗口一樣,對于開發(fā)人員來說,這是一個有用的工具,無需重新生成和重新加載應(yīng)用程序即可更改其應(yīng)用程序的狀態(tài)。

使用 IAR 進(jìn)行調(diào)試:寄存器窗口

與內(nèi)存窗口類似的是寄存器窗口(查看寄存器)。該窗口顯示MAXQ2000的寄存器映射。首先出現(xiàn)的寄存器是MAXQ平臺的核心寄存器,如累加器、數(shù)據(jù)指針和環(huán)路計數(shù)器。單擊下拉框,您可以看到其他幾個選項。例如,選擇端口 I/O 寄存器?,F(xiàn)在可以查看和編輯與MAXQ2000上輸入/輸出端口相關(guān)的所有寄存器。

pYYBAGQAP8uAPgbTAAAaUbHbiPo951.gif


圖 14.寄存器內(nèi)容顯示在 IAR 嵌入式工作臺中。

故障 排除

與開始使用任何新設(shè)備一樣,人們在第一次嘗試通信時通常會遇到一些問題。通過驗證是否遵循了本文檔第一部分中的所有說明(例如電路板連接和項目配置),可以解決許多問題。以下是一些更常見的問題和解決方案:

問題 可能的解決方案
當(dāng)我點(diǎn)擊調(diào)試時,IAR根本沒有抱怨,但我的MAXQ2000硬件什么也沒做。 確保在C-SPY調(diào)試器項目選項下選擇了JTAG驅(qū)動程序。
我收到一個錯誤,抱怨一個損壞的 *.d66 文件。 確保在 XLINK
poYBAGQAP8yAKXHvAAAAsUeLxSE186.gif
包含選項下,您已選擇使用 lnkmaxq200x.xcl 文件覆蓋默認(rèn)的 XCL 文件。
我已經(jīng)正確配置了所有內(nèi)容,但是當(dāng)我按下調(diào)試按鈕時無法加載應(yīng)用程序。 確保沒有其他軟件正在使用您選擇的COM端口。通常,PDA軟件將從您啟動計算機(jī)時開始擁有串行端口。您可以選擇其他COM端口,也可以關(guān)閉PDA軟件。
IAR 嘗試開始加載應(yīng)用程序,但它永遠(yuǎn)不會通過。我所有的電纜和配置都是正確的。 嘗試重新啟動 IAR 嵌入式工作臺。

對于將應(yīng)用程序加載到MAXQ2000上的這些和其它問題,打開屏幕底部消息窗口中的“工具輸出”選項卡可能很有用。此處列出的消息可能會為您提供有關(guān)加載失敗原因的線索。

結(jié)論

MAXQ2000是達(dá)拉斯半導(dǎo)體公司首款從MAXQ平臺推出的器件,是一款功能強(qiáng)大的低成本、低功耗微控制器,為消費(fèi)類應(yīng)用提供了大量的外設(shè)支持。在IAR嵌入式工作臺的支持下,復(fù)雜的應(yīng)用程序可以用C語言編寫,并在強(qiáng)大的工具的幫助下進(jìn)行調(diào)試,從而產(chǎn)生快速的上市時間和高質(zhì)量的產(chǎn)品。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7334

    瀏覽量

    150093
  • 半導(dǎo)體
    +關(guān)注

    關(guān)注

    334

    文章

    26311

    瀏覽量

    209953
  • 嵌入式
    +關(guān)注

    關(guān)注

    5045

    文章

    18816

    瀏覽量

    298465
收藏 人收藏

    評論

    相關(guān)推薦

    MAXQ2000微控制與MAX4397是如何連接的?

    MAX4397是什么?MAXQ2000微控制與MAX4397是如何連接的?
    發(fā)表于 06-04 06:15

    使用MAXQ2000評估的應(yīng)用實例

    摘要:本文介紹了利用MAXQ系列微控制開發(fā)一個產(chǎn)品的具體技術(shù)。MAXQ2000評估被用來開發(fā)一個特殊處理
    發(fā)表于 04-23 17:33 ?34次下載

    采用MAXQ2000進(jìn)行音頻濾波

    集成了乘累加單元(MAC)和單周期內(nèi)核的MAXQ2000非常適合用作通用微控制。MAXQ2000所具有的性能和I/O外設(shè)適合多種應(yīng)用:如鬧鐘、手持醫(yī)療設(shè)備、數(shù)字讀取等需要低功耗、高
    發(fā)表于 12-25 23:24 ?34次下載

    采用MAXQ2000 USB “拇指”評估套件進(jìn)行設(shè)計

    采用MAXQ2000 USB “拇指”評估套件進(jìn)行設(shè)計 本應(yīng)用筆記介紹使用USB “拇指”評估(EV)套件快速開發(fā)MAXQ2000 RISC微控制
    發(fā)表于 01-13 08:03 ?805次閱讀
    采用<b class='flag-5'>MAXQ2000</b> USB “拇指”<b class='flag-5'>評估</b>套件進(jìn)行設(shè)計

    采用MAXQ2000 USB “拇指”評估套件進(jìn)行設(shè)計

    摘要:本應(yīng)用筆記介紹使用USB “拇指”評估(EV)套件快速開發(fā)MAXQ2000 RISC微控制所需要的步驟。文檔解釋了怎樣安裝和配置評估套件的硬件和軟件,怎樣開發(fā)并裝入
    發(fā)表于 04-23 15:54 ?689次閱讀
    采用<b class='flag-5'>MAXQ2000</b> USB “拇指”<b class='flag-5'>評估</b>套件進(jìn)行設(shè)計

    利用MAXQ2000設(shè)計電壓表

    摘要:本應(yīng)用筆記演示了如何配置MAXQ2000微控制實現(xiàn)簡單的電壓表設(shè)計。該應(yīng)用采用MAXQ2000評估,其中包括4½位段
    發(fā)表于 04-23 16:07 ?807次閱讀
    利用<b class='flag-5'>MAXQ2000</b>設(shè)計電壓表

    Rowley CrossWorks和MAXQ2000評估

    摘要:MAXQ2000是功能強(qiáng)大的低成本、低功耗微控制,具備支持多種應(yīng)用系統(tǒng)的豐富外設(shè)。Rowley Associates提供了強(qiáng)大的MAXQ開發(fā)環(huán)境CrossWorks,在該工具的支持下,可以用C語言編寫復(fù)雜
    發(fā)表于 04-23 16:43 ?1440次閱讀
    Rowley CrossWorks和<b class='flag-5'>MAXQ2000</b><b class='flag-5'>評估</b><b class='flag-5'>板</b>入

    IAR編譯器MAXQ2000評估使用入門

    摘要:本應(yīng)用筆記說明如何建立、構(gòu)建和調(diào)試面向MAXQ®平臺、以C語言編寫的應(yīng)用程序,并演示MAXQ2000的某些特性。 引言MAXQ平臺得到了世界一流工具的支持,
    發(fā)表于 04-23 17:22 ?1226次閱讀
    <b class='flag-5'>IAR</b><b class='flag-5'>編譯器</b>和<b class='flag-5'>MAXQ2000</b><b class='flag-5'>評估</b><b class='flag-5'>板</b>使用<b class='flag-5'>入門</b>

    采用MAXQ2000進(jìn)行音頻濾波

    摘要:集成了乘累加單元(MAC)和單周期內(nèi)核的MAXQ2000非常適合用作通用微控制(µC) 。MAXQ2000所具有的性能和I/O外設(shè)適合多種應(yīng)用:如鬧鐘、手持醫(yī)療設(shè)備、數(shù)字讀取
    發(fā)表于 04-23 17:27 ?1009次閱讀
    采用<b class='flag-5'>MAXQ2000</b>進(jìn)行音頻濾波

    MAXQ7665評估快速入門

    摘要:本應(yīng)用筆記是快速入門。它解釋了怎樣安裝并配置IAR Embedded Workbench?。此外,它提供簡要的說明來編譯、鏈接、調(diào)試MAXQ7665微控制
    發(fā)表于 05-02 10:42 ?711次閱讀
    <b class='flag-5'>MAXQ</b>7665<b class='flag-5'>評估</b><b class='flag-5'>板</b>快速<b class='flag-5'>入門</b>

    采用MAXQ2000實現(xiàn)與MAX1169的高速I2C接口

    并不帶有MAXQ2000微控制;系統(tǒng)通過SCL、SDA以及GND將MAXQ2000評估和MAX1169
    發(fā)表于 04-06 15:34 ?5次下載
    采用<b class='flag-5'>MAXQ2000</b>實現(xiàn)與MAX1169的高速I2C接口

    使用MAXQ2000和MAX7312進(jìn)行LED打靶練習(xí)游戲

    本應(yīng)用筆記提供了將MAXQ2000微控制MAXQ20內(nèi)核)連接至MAX7312 16位端口擴(kuò)展所需的全部固件。應(yīng)用示例是一個LED目標(biāo)練習(xí)游戲。示例裝配程序是專門為
    的頭像 發(fā)表于 01-14 14:58 ?824次閱讀
    使用<b class='flag-5'>MAXQ2000</b>和MAX7312進(jìn)行LED打靶練習(xí)游戲

    使用MAXQ2000進(jìn)行音頻濾波

    乘法累加單元(MAC)和單周期內(nèi)核的組合使MAXQ2000成為多功能微控制(μC)。MAXQ2000具有性能和I/O外設(shè),非常適合許多應(yīng)用:鬧鐘、手持醫(yī)療設(shè)備、數(shù)字讀數(shù)——任何需要低功耗、高性能和大量I/O的應(yīng)用。通過集成MA
    的頭像 發(fā)表于 03-02 14:13 ?793次閱讀
    使用<b class='flag-5'>MAXQ2000</b>進(jìn)行音頻濾波

    如何將MAXQ2000用作電壓表

    本應(yīng)用筆記演示如何為簡單的電壓表應(yīng)用配置MAXQ2000微控制。應(yīng)用使用MAXQ2000評估,該評估
    的頭像 發(fā)表于 03-03 14:27 ?647次閱讀
    如何將<b class='flag-5'>MAXQ2000</b>用作電壓表

    選擇MAXQ2000微控制和MAX1132 ADC接口的SPI時鐘模式

    圖1所示為MAX1132評估原理圖,圖2給出了系統(tǒng)的配置圖。為連接MAX1132評估MAXQ2000
    的頭像 發(fā)表于 06-12 16:54 ?532次閱讀
    選擇<b class='flag-5'>MAXQ2000</b>微控制<b class='flag-5'>器</b>和MAX1132 ADC接口的SPI時鐘模式