劉詠濤,陳寶龍,申 瀟
(天津交通職業(yè)學(xué)院,天津 300110)
IAR EWARM環(huán)境下的電腦鼠軟件開(kāi)發(fā)調(diào)試方法研究
劉詠濤,陳寶龍,申 瀟
(天津交通職業(yè)學(xué)院,天津 300110)
電腦鼠比賽是重要的大學(xué)生競(jìng)賽項(xiàng)目之一。文章介紹了電腦鼠軟件開(kāi)發(fā)環(huán)境IAR EWARM以及軟件程序開(kāi)發(fā)流程,主要講述了在IAR EWARM軟件平臺(tái)下安裝底層驅(qū)動(dòng)庫(kù)的方法和軟件環(huán)境的選件設(shè)置中參數(shù)配置方法,并對(duì)電腦鼠軟件開(kāi)發(fā)與調(diào)試技巧做了分析與總結(jié),有助于初學(xué)電腦鼠開(kāi)發(fā)與調(diào)試的學(xué)生快速掌握電腦鼠軟件開(kāi)發(fā)與調(diào)試流程。
電腦鼠;IAR EWARM;選件設(shè)置
電腦鼠是一種小型機(jī)器人車輛,英文名稱Micromouse,是使用嵌入式微控制器、傳感器和機(jī)電運(yùn)動(dòng)部件構(gòu)成的一種智能行走裝置[1]。電腦鼠是一種大學(xué)生競(jìng)賽項(xiàng)目產(chǎn)品,其主要功能是自動(dòng)在規(guī)定的迷宮賽場(chǎng)中搜索最佳路徑并以最快速度完成沖刺。該項(xiàng)目起源于美國(guó),至今已有30多年歷史,現(xiàn)在我國(guó)高校中是一種非常盛行的比賽。
電腦鼠的軟件程序是實(shí)現(xiàn)其功能和提高其性能的核心組成部分,電腦鼠程序采用專用的嵌入式軟件開(kāi)發(fā)環(huán)境進(jìn)行開(kāi)發(fā)和調(diào)試,本文以IAR公司的軟件集成開(kāi)發(fā)環(huán)境為例介紹電腦鼠軟件開(kāi)發(fā)調(diào)試環(huán)境配置及程序開(kāi)發(fā)調(diào)試方法。
IAR EWARM是一個(gè)針對(duì)ARM處理器的集成開(kāi)發(fā)環(huán)境,包含項(xiàng)目管理器、編輯器、C/C++編譯器和ARM匯編器、連接器XLINK和支持RTOS的調(diào)試工具C-SPY。在EWARM環(huán)境下可以使用C/C++和匯編語(yǔ)言方便地開(kāi)發(fā)嵌入式應(yīng)用程序。對(duì)比其他的ARM開(kāi)發(fā)環(huán)境,IAR EWARM具有入門容易、使用方便和代碼緊湊等特點(diǎn)。本文以IAR EWARM 4.42a版本為例,微控制器采用基于ARM Cotex-M3內(nèi)核的LM3S615。
調(diào)試器是嵌入式軟件程序下載到單片機(jī)并進(jìn)行代碼調(diào)試的工具。LM LINK是由廣州致遠(yuǎn)電子有限公司開(kāi)發(fā)的低成本高性能USB JTAG調(diào)試器,專門用于對(duì)流明諾瑞系列單片機(jī)程序的下載與調(diào)試。
LM LINK采用USB接口與電腦連接,打破傳統(tǒng)的用并口和串口下載程序的方式,無(wú)論是臺(tái)式電腦還是筆記本電腦都易于應(yīng)用。
流明諾瑞驅(qū)動(dòng)庫(kù)是基于ARM Cotex-M3微控制器芯片訪問(wèn)外設(shè)的底層驅(qū)動(dòng)程序代碼集合[2],電腦鼠控制程序需要連接驅(qū)動(dòng)庫(kù)才能控制電腦鼠運(yùn)行。因此,在配置軟件環(huán)境前需要安裝流明諾瑞驅(qū)動(dòng)庫(kù)。
流明諾瑞驅(qū)動(dòng)庫(kù)是一系列的系統(tǒng)文件,包括連接器命令文件(*.xcl),驅(qū)動(dòng)庫(kù)頭文件,以及底層驅(qū)動(dòng)函數(shù)庫(kù)。最新的流明諾瑞驅(qū)動(dòng)庫(kù)可從官網(wǎng)(http://www.ti.com.cn/product/cn/LM3S615/toolssoftware)下載。安裝驅(qū)動(dòng)庫(kù)的任務(wù)是把相應(yīng)的驅(qū)動(dòng)庫(kù)文件拷貝到指定的目錄,并在新建軟件項(xiàng)目時(shí)進(jìn)行配置。具體操作如下。
(1)拷貝連接器命令文件。將連接器命令文件復(fù)制到IAR EWARM的默認(rèn)路徑下面,即把文件“standalone.xcl”復(fù)制并粘貼到“$TOOLKIT_DIR$IAR SystemsEmbedded Workbench 4.0 Kickstartarmconfig”目錄下,并更改名稱為“l(fā)nk_LM3.xcl”,便于識(shí)別此連接文件用于ARM Cotex-M3內(nèi)核單片機(jī)。
(2)拷貝驅(qū)動(dòng)庫(kù)頭文件。在軟件安裝目錄“inc”文件夾下新建一個(gè)“Luminary”文件夾,把驅(qū)動(dòng)庫(kù)根目錄中以及驅(qū)動(dòng)庫(kù)“src”文件夾和驅(qū)動(dòng)庫(kù)“inc”文件夾中的頭文件(*.h)復(fù)制粘貼到文件夾“Luminary”下。這樣避免每次編譯連接時(shí)系統(tǒng)提示選擇需要連接的文件目錄。
(3)拷貝底層驅(qū)動(dòng)函數(shù)庫(kù)。在驅(qū)動(dòng)庫(kù)根目錄下打開(kāi)“$TOOLKIT_DIR$ DriverLibsrcewarm Exe”,復(fù)制函數(shù)庫(kù)文件“driverlib.r79”。在軟件IAR EWARM的安裝目錄“$TOOLKIT_DIR$IAR SystemsEmbedded Workbench 4.0 Kickstart armlib”下新建一個(gè)“Luminary”文件夾,把“driverlib.r79”粘貼到該文件夾下。
通過(guò)以上操作即完成了流明諾瑞驅(qū)動(dòng)庫(kù)安裝。
首先創(chuàng)建一個(gè)基于ARM工具鏈的新項(xiàng)目,然后在新項(xiàng)目中創(chuàng)建3個(gè)文件組。文件組用于對(duì)項(xiàng)目文件分類放置,使項(xiàng)目結(jié)構(gòu)清晰和便于管理,3個(gè)文件組分別是startup文件組,src文件組和lib文件組。
startup文件組用于存放項(xiàng)目引導(dǎo)文件“startup.c”,src文件組用于存放項(xiàng)目代碼文件,項(xiàng)目代碼由開(kāi)發(fā)項(xiàng)目的程序員編寫(xiě),lib文件組用于存放底層驅(qū)動(dòng)函數(shù)庫(kù)文件。
創(chuàng)建文件組后,把項(xiàng)目引導(dǎo)文件和底層驅(qū)動(dòng)函數(shù)庫(kù)文件分別加入相應(yīng)的文件組。在src文件組中創(chuàng)建項(xiàng)目代碼文件并編寫(xiě)代碼。
生成新項(xiàng)目和添加文件后的下一步是為項(xiàng)目設(shè)置選件。設(shè)置項(xiàng)目選件是非常重要的一步,如果設(shè)置不當(dāng),編譯、連接就會(huì)出錯(cuò),就無(wú)法生成正確的代碼文件。
IAR EWARM允許為工作區(qū)中的任何一級(jí)目錄和文件單獨(dú)設(shè)置選件,但是用戶必須首先為整個(gè)項(xiàng)目設(shè)置通用選件。由于項(xiàng)目配置內(nèi)容繁多,以下僅對(duì)項(xiàng)目開(kāi)發(fā)的主要配置選件進(jìn)行設(shè)置,細(xì)節(jié)部分可參考LM3S615數(shù)據(jù)手冊(cè)。
2.3.1 通用選件設(shè)置
打開(kāi)或新建一個(gè)項(xiàng)目后,在“Project”項(xiàng)下拉列表中選擇“Option”選項(xiàng),即可打開(kāi)選件設(shè)置窗口。在“General Option”的“Target”選項(xiàng)中選擇單片機(jī)內(nèi)核和單片機(jī)型號(hào)以及字符編碼格式。此處選擇內(nèi)核Cotex-M3,選擇單片機(jī)Luminary LM3S615,字節(jié)順序選擇Little,即小端格式。堆棧對(duì)齊方式選擇4 bytes。
2.3.2 C/C++編譯器選件設(shè)置
在編譯器選件設(shè)置中要添加流明諾瑞驅(qū)動(dòng)庫(kù)頭文件,因此在附加include文件目錄中寫(xiě)入“$TOOLKIT_DIR$INCLuminary”,以便編譯器能夠找到驅(qū)動(dòng)庫(kù)函數(shù)的聲明,否則編譯無(wú)法通過(guò)。
2.3.3 Assembler選件設(shè)置
本項(xiàng)選用默認(rèn)設(shè)置。
2.3.4 連接器選件設(shè)置
連接器選件包括Output,Extra output,List和Config選項(xiàng)。
Output選項(xiàng)允許用戶選擇輸出文件是否帶調(diào)試信息。
Extra output選項(xiàng)可選是否產(chǎn)生附加的輸出文件及其格式。
List選項(xiàng)允許生成存儲(chǔ)器分配MAP文件。
Config選項(xiàng)定義連接器命令文件。連接器命令文件中包含連接器的各項(xiàng)命令行參數(shù),主要用于控制程序各種代碼段和數(shù)據(jù)段在存儲(chǔ)器中如何分布。在連接器命令文件中,選擇覆蓋默認(rèn)設(shè)置,選擇連接器命令文件lnk_LM3.xcl。在程序復(fù)位入口點(diǎn)欄輸入ResetISR,當(dāng)系統(tǒng)上電時(shí)啟動(dòng)文件由ResetISR處開(kāi)始執(zhí)行。
2.3.5 Debugger選件設(shè)置
調(diào)試器的選件設(shè)置包括調(diào)試工具選擇和程序下載設(shè)置。用戶可根據(jù)自己的需要進(jìn)行配置。
電腦鼠程序是基于紅外傳感器的自動(dòng)機(jī)器人車輛,傳感器的校準(zhǔn)和程序調(diào)試是同時(shí)進(jìn)行的。
當(dāng)電腦鼠的速度較慢時(shí),對(duì)傳感器的信號(hào)強(qiáng)度要求較低,即傳感器信號(hào)在一定距離范圍內(nèi)被檢測(cè)到即可,但是在沖刺階段,當(dāng)電腦鼠速度較快時(shí),傳感器信號(hào)必須處于某一限定區(qū)間內(nèi),否則會(huì)出現(xiàn)撞壁或提前轉(zhuǎn)彎現(xiàn)象,導(dǎo)致電腦鼠中途失控,無(wú)法完成走迷宮任務(wù)。
電腦鼠程序功能包括搜索算法開(kāi)發(fā)、極限速度值設(shè)定、加速度調(diào)節(jié)以及轉(zhuǎn)彎角度調(diào)節(jié)等。
搜索算法中有右手法則、左手法則、中右法則、中左法則、中心法則等[3]。以右手法則為例,程序首先判斷右方是否有路,然后判斷前方是否有路,最后判斷左方是否有路,轉(zhuǎn)彎優(yōu)先方向依次是右、前、左,如果前3個(gè)方向均無(wú)路,電腦鼠將轉(zhuǎn)彎180°后回到上一個(gè)記憶的路口。其他的算法類似。
通過(guò)電腦鼠在迷宮中的表現(xiàn),可更改極限速度值、加速度值以及轉(zhuǎn)彎角度,優(yōu)先保證電腦鼠完成迷宮搜索,然后調(diào)整程序參數(shù)和傳感器值,逐步提高電腦鼠的速度,使其性能不斷優(yōu)化。
電腦鼠的程序開(kāi)發(fā)與調(diào)試是學(xué)生學(xué)習(xí)電腦鼠的重要內(nèi)容,本文對(duì)開(kāi)發(fā)工具驅(qū)動(dòng)庫(kù)的安裝、工具的配置、程序開(kāi)發(fā)與調(diào)試方法進(jìn)行了分析與介紹,特別是底層驅(qū)動(dòng)庫(kù)的安裝和IAR EWARM集成開(kāi)發(fā)環(huán)境的配置,對(duì)于軟件程序是否能夠正常編譯連接及下載調(diào)試至關(guān)重要。本文有助于學(xué)生了解開(kāi)發(fā)環(huán)境,熟悉開(kāi)發(fā)流程以及工作技巧,快速提高開(kāi)發(fā)技能。
[1]方金亮,談?dòng)⒆?,周怡?基于ARM的IEEE標(biāo)準(zhǔn)電腦鼠研究與實(shí)現(xiàn)[J].機(jī)械制造與自動(dòng)化,2008(5):99-101.
[2]Luminary Micro,Inc.Stellaris? Peripheral Driver Library User’s Guide.[EB/OL].(2012-06-11)[2017-10-25].http://www.ti.com/tool/sw-drl.
[3]李龍林,桂泉.基于AVR ATmega128的迷宮電腦鼠軟件設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2014(11):2660-2663.
Study on debugging method of computer mouse software in IAR EWARM environment
Liu Yongtao, Chen Baolong, Shen Xiao
(Tianjin Vocational College of Traffic, Tianjin 300110, China)
The computer mouse competition is one of the important college student competitions. This paper introduces the software development environment of IAR EWARM and the software program development process. It mainly introduces the method of installing the underlying driver library and the configuration method of the software environment in the IAR EWARM software platform, and analyzes and summaries the develops and debugs the computer mouse software skills, help beginners computer mouse development and debugging of students quickly grasp the computer mouse software development and debugging process.
computer mouse; IAR EWARM; option settings
劉詠濤(1977— ),男,河北安國(guó)人,工程師,碩士;研究方向:嵌入式系統(tǒng)開(kāi)發(fā)。