<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          winavr gcc快速入門

          作者: 時間:2011-11-08 來源:網(wǎng)絡(luò) 收藏

          我們網(wǎng)站的研發(fā)部統(tǒng)一使用 WinAVR(即GCC)。我們會在所有的新手入門范例、應(yīng)用范例中使用GCC開發(fā)代碼。詳細原因、軟件下載及安裝方法請參考:AVR開發(fā)軟件的選擇與安裝。

          軟件安裝好后,你就能在電腦上看到如下的功能菜單:

          說明如下:

          名稱
          說明
          Programmers Notepad
          GCC語言編輯器。可提供應(yīng)用程序接口。
          Mfile

          GCC需要一個叫 makefile 的參數(shù)文件才能進行編譯。Mfile 是一個工具,可以讓用戶方便地修改 makefile 上的參數(shù)。不過我們不推薦使用它。我們推薦直接用記事本打開 makefile 進行編輯。

          AVR Insight
          仿真調(diào)試工具
          TkInfo
          GNU的超文本瀏覽器
          Uninstall WinAVR
          卸載 WinAVR 軟件
          WinAVR User Manual
          WinAVR 用戶手冊
          GNU Maunals Online
          GNU的在線幫助
          AVR-libc Manual
          AVR GCC的C語言函數(shù)庫幫助手冊

          從上表可見,WinAVR 的功能看來很多。但我們只推薦使用PN (Programmers Notepad )。

          讓我們演示如何使用PN進行GCC代碼的編輯、編譯。

          步驟一:打開 PN 工具

          步驟二: 編寫C源代碼

          菜單 File --> Open 打開預(yù)先放在 C:avr_test 目錄下的C源文件。這個源文件來自我們的新手入門的第一個范例,文件名叫 main.c 。你可以點擊此處下載這個C文件壓縮包(需要解壓后才能使用,不要改名)。為了方便閱讀,我們將這個main.c 排版成彩色的網(wǎng)頁格式,你也可以直接點擊這里查看main.c 的具體內(nèi)容。

          打開main.c 后,看到如下的界面

          你可以直接編輯 main.c 。

          編輯完成,保存后,我們就可以進行下面的編譯工作。

          步驟三: 準備 Makefile 文件

          編譯能生成可供AVR執(zhí)行的代碼、仿真調(diào)試文件等。

          可能大家會奇怪,上面的main.c 代碼,沒有告訴電腦AVR芯片的型號、工作頻率等,電腦如何知道這些數(shù)據(jù)?

          WinAVR/GCC 使用一個叫 Makefile 的文件,存放這些參數(shù)。在WinAVR上也有一個叫mfile的應(yīng)用程序去處理這個Makefile 文件。但我們測試時發(fā)現(xiàn),mfile 的缺陷很多,不好用,并且容易弄錯。我們推薦大家直接用記事本等,直接編譯這個文件。為了方便閱讀與修改,我們將最常用的內(nèi)容,放到Makefile的最前面,并且作了中文注解。

          你可以點擊此處下載這個makefile文件的壓縮包((需要解壓后才能使用,不要改名))。為了方便閱讀,我們將這個Makefile排版成彩色的網(wǎng)頁格式,你也可以直接點擊這里查看makefile的具體內(nèi)容。

          在我們的示范Makefile,會看到以下的內(nèi)容。建議大家只修改:單片機的類型、系統(tǒng)時鐘頻率、目標文件名及C源文件名這四項。大家可參考我們的示范修改:

          #這是一個簡單makefile,僅用于初學者使用
          #修改于WINAVR20050214所生成的makefile
          #簡單實驗只需更改 [單片機類型][目標文件名][C源文件名][系統(tǒng)時鐘頻率]即可
          #修改好參數(shù)后另存到單片機程序所在目錄,然后執(zhí)行[make all]命令
          #生成 燒錄FLASH的*.hex,燒錄EEPROM的*.eep,調(diào)試用的*.elf 文件
          #
          # www.OurAVR.com

          # MCU name
          # 單片機類型 參考格式是:atmega8 / at90s2313 / attiny15
          MCU = atmega16

          # Processor frequency.
          # 系統(tǒng)時鐘頻率(Hz),用于生成延時 _delay_us() _delay_ms() 見delay.h
          # This will define a symbol, F_CPU, in all source code files equal to the
          # processor frequency. You can then use this symbol in your source code to
          # calculate timings. Do NOT tack on a 'UL' at the end, this will be done
          # automatically to create a 32-bit value in your source code.
          F_CPU = 1000000

          # Target file name (without extension).
          # 目標文件名(即生成的.hex/.eep/.elf的文件名)
          TARGET = main

          # List C source files here. (C dependencies are automatically generated.)
          # C源文件名(不帶路徑)
          # 多個文件名間用空格隔開 例如 SRC = file1.c file2.c file3.c
          # 不需要加上 h頭文件
          SRC = $(TARGET).c

          #**************后面內(nèi)容基本不需要修改,除非你是老手*****************************#

          # Output format. (can be srec, ihex, binary)
          # 輸出燒錄文件格式
          FORMAT = ihex

          # Optimization level, can be [0, 1, 2, 3, s].
          # 優(yōu)化級別
          # ...... 下面的內(nèi)容此處省略 ....

          將我們這個示范的 Makefile 文件,下載后拷貝到 c:avr_test 目錄中。上面我們已經(jīng)設(shè)置了ATmega16芯片,工作在1M的頻率里,主文件名叫 main.c ,只有一個文件。

          步驟四:編譯 (Make All)

          按下圖操作。

          編譯成功后,會有如下的 Process Exit Code: 0 的信息。

          如果結(jié)果不是0,表明編譯有問題,請檢查你的 c:avr_test 目錄是否有main.c 與 Makefile 兩個文件。

          編譯成功后,原來只有2個文件的目錄,現(xiàn)在變成了如下圖的文件清單:

          重要說明:如果你需要重新編譯一次,最好先運行一下 Make Clean ,以保證編譯不受干擾。比如你修改了 Makefile 的MCU類型,如果你不使用 Make Clean, 就會得出錯誤的結(jié)果。

          步驟五: 完成。

          燒錄(ISP下載)、運行,與JTAG調(diào)試方法,請參考我們的新手入門中的有關(guān)范例。



          關(guān)鍵詞: winavr gcc

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();