• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > winavr gcc快速入門

    winavr gcc快速入門

    作者: 時間:2011-11-08 來源:網絡 收藏

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

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

    說明如下:

    名稱
    說明
    Programmers Notepad
    GCC語言編輯器??商峁贸绦蚪涌凇?/TD>
    Mfile

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

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

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

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

    步驟一:打開 PN 工具

    步驟二: 編寫C源代碼

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

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

    你可以直接編輯 main.c 。

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

    步驟三: 準備 Makefile 文件

    編譯能生成可供AVR執行的代碼、仿真調試文件等。

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

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

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

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

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

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

    # Processor frequency.
    # 系統時鐘頻率(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

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

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

    # Optimization level, can be [0, 1, 2, 3, s].
    # 優化級別
    # ...... 下面的內容此處省略 ....

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

    步驟四:編譯 (Make All)

    按下圖操作。

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

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

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

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

    步驟五: 完成。

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



    關鍵詞: winavr gcc

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 锡林浩特市| 壶关县| 二手房| 梅河口市| 阳朔县| 巨鹿县| 太仆寺旗| 运城市| 清徐县| 南宁市| 息烽县| 苏尼特左旗| 海南省| 阜平县| 靖江市| 蒲城县| 策勒县| 平凉市| 佛坪县| 乌鲁木齐县| 麟游县| 龙南县| 汝阳县| 肇东市| 泗水县| 资兴市| 威信县| 松桃| 溧阳市| 临安市| 突泉县| 北安市| 鄂托克前旗| 固阳县| 板桥市| 渝中区| 仙游县| 赣榆县| 凤凰县| 若羌县| 静宁县|