當前位置:編程學習大全網 - 編程語言 - 可以用IAR給Arduino寫程序嗎?

可以用IAR給Arduino寫程序嗎?

壹. Proteus仿真平臺簡介

Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風標電子技術有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。現已受到電子類特別是單片機愛好者、從事單片機教學的教師、致力於單片機開發應用等的科技工作者的青睞。以前的如EWB等軟件只能仿真數字電路和模擬電路,不能仿真CPU和程序。

當前網上Proteus有7.8 SP2,7.10 SP0,8.0等幾個版本,這幾個JM的版本都比較穩定。這些版本的元件模型格式是兼容的,DSN仿真原理文件是壹樣的。8.0版本只是把DSN原理圖、軟件編輯環境和編譯器集成為壹個工程文件,成為壹個象“傻瓜相機”壹樣的東西,但對初學Proteus者比較方便,因為內部已經集成了程序編輯器和可下載不同的編譯器。

7.xx版本,DSN仿真原理、編輯器和編譯器三者是獨立的。而8.0版本是集成的。8.0版本在多CPU仿真時,設置不太容易;集成後軟件有點大,不如7.xx版本簡潔。

二. 開發三步曲

編輯器

用戶選擇用自己的喜歡的編輯器(如Notepad++,Utraedit,Source Insight,vim,slickedit,notepad等),用此寫源程序。

C/C++編譯器

用戶按CPU型號選擇自己喜歡的C/C++編譯器(如Winavr,CodeSourcery,Keil,IAR,WinARM,Watcom等等),壹般的編譯器都可以生成標準的.hex,和.elf格式的可執行目標文件。 Arduino IDE實際使用的是Winavr中的gcc。用此把第壹步寫的源程序編譯成.hex和.elf文件。

硬件仿真圖

Proteus中的Model下有元件仿真庫,用戶使用這些仿真元件,設計出自己的硬件仿真原理圖,也叫.dsn文件。在Proteus環境下,用自己設計的.dsn文件,在CPU中加載第二步生成的.hex或.elf文件,就可以仿真運行了。.elf文件內部包含調試信息,可以單步、設置斷點調試程序。

三. Arduino UNO硬件仿真原理圖

本仿真電路圖(HW目錄下Arduino UNO.dsn文件)可以仿真Arduino Diecimila,或Arduino UNO板。前者采用FT232芯片做為串行通信模塊,後都采用ATMEGA16U2微處理器代替了FT232,它們都是在USB上實現壹個異步串行通信的功能。我們在仿真中,采用了Proteus中的串行口物理接口模型COMPIM,COMPIM完全可以代替串行通信的功能,它實現了與實際PC機物理串行接口RS232的連接,使仿真的虛擬世界與真實的世界連接。

圖1-Arduino UNO硬件仿真原理圖

圖中左下角增加了兩個串行通信虛擬終端VT1和VT2,用於調試串行通信接收數據或發送數據使用。其它為Arduino Diecimila或UNO的仿真電路,詳細標註了引腳名稱,與實現電路板壹樣。用Proteus仿真工具可以雙擊Arduino UNO.dsn打開Arduino仿真電路圖。

四. Arduino開發軟件下載及設置

1.下載並安裝Arduino集成開發環境(Arduino IDE)

到官網上下載並安裝Arduino IDE,當前最新穩定版本為1.0.6版本。

http://arduino.cc

http://arduino.cc/en/Main/Software

2.選擇Arduino板類型及串行口

如圖2,仿真時,選擇前兩個板都可以,在與實際Arduino板連接時,選擇相對應的板,並選擇相對應的串行口。

***因本文使用Arduino仿真開發方法,在仿真電路圖中,只要選擇目標執行文件.hex或.elf文件就相當於加載程序,所以不用串行口加載程序。

圖2-選擇板子型號

圖3-選擇串行口

3.設置Arduino IDE個人偏好(重要)

選擇File->Preferences

圖4-選擇preferences

找到設置偏好文件preferences.txt

圖5-選擇preferences.txt

用編輯器打開偏好設置文件preferences.txt

1.在arduino工具的File->preferences中找到preferences.txt文件,用記事本打開。

2.在preferences.txt文件的最後加壹行,編輯加入 build.path=d:\MyHexDir,目錄名自己定。為了觀察方便,(本人設置是build.path=d:###ArduinoDbgDir )。

3先關閉Arduino IDE;

4之後保存preferences.txt;

以上順序不要變。這樣就可以在Arduino編譯時,看到d:\MyHexDir目標下的目標文件,而不會自動刪除。

4. 編譯

(1)雙擊SW\Blink目錄下的源文件Blink.ino,自動打開Arduino IDE。

(2)點擊Sketch->Verify/Compile編譯生成目標文件,目標文件在d:\MyHexDir下(本人的在d:###ArduinoDbgDir目錄下 )。

(3)點擊CP.bat,會把.hex和.elf文件復制更新到當前.ino所在目錄下。可以自己編輯CP.bat文件,改變目錄。

(4)在Proteus中設置好壹次.hex或.elf文件的位置就可以,以後更新.hex或.elf文件時,自動認為已經加載最新的。

五. 第壹個Hello World程序仿真運行

Hello World程序就是在計算機屏幕上顯示“Hello,World!”的壹個程序,在嵌入式系統開發中,LED的閃爍程序就是Hello World程序,Hello World程序很簡約,壹般它是程序員在新的開發環境中第壹個要運行的程序,但是簡約並不簡單。

雖然Hello World程序很簡約,但是,為了這個簡約的程序能夠運行,需要進行開發工具鏈的選擇、配置開發工具鏈,這需要大量繁瑣的工作要做。Hello World程序能否運行,可以驗證妳的編譯、開發環境、運行環境是否正確。

第壹個程序Blink.ino如下:

///0. 引腳定義

#define LED_PIN ? 13 //定義LED引腳為13號數據引腳(DIG13)

///1. 初始化

void setup() {

pinMode(LED_PIN,OUTPUT); // 初始化DIG13為輸出

}

///2. 循環

void loop() {

?digitalWrite(LED_PIN,HIGH); //DIG13輸出高電平

?delay(1000); //延時1秒

?digitalWrite(LED_PIN,LOW); ?//DIG13輸出低電平

?delay(1000); //延時1秒

}

(1)用Arduino IDE打開Blink.ino,編譯之;

(2)在d:\MyHexDir目錄下會生成.hex和.elf文件等;

(3)點擊.ino所在目錄下的CP.bat, 本目錄多了兩個文件.hex和.elf;

(4)用Proteus打開HW\Arduino UNO.dsn,雙擊Atmga 328P微處理器,在Program file項中選擇上邊SW\Blink\Blink.hex文件,或Blink.elf文件,若加載Blink.elf文件,則可以單步或設置斷點調試;

(5)在Proteus中點擊左下角運行仿真,如果圖1中的LED小燈閃爍,則妳的仿真運行環境設置正確。

  • 上一篇:2021雲南紅河河口縣事業單位校園招聘3名教師公告 ?
  • 下一篇:java的不同學習階段
  • copyright 2024編程學習大全網