新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Ubuntu上AVR單片機開發(fā)環(huán)境設(shè)置

        Ubuntu上AVR單片機開發(fā)環(huán)境設(shè)置

        作者: 時間:2016-11-19 來源:網(wǎng)絡(luò) 收藏
        操作系統(tǒng):ubuntu 13.04(32 bits)

        AVR單片機:ATmega644pa

        本文引用地址:http://www.104case.com/article/201611/318405.htm

        首先要明確,我們在Ubuntu(或者Linux)上開發(fā)AVR單片機應(yīng)包括兩大部分:

        程序編譯、程序下載。

        環(huán)境布置:

        程序編譯使用Linux下的編譯器——avr-gcc,通過以下指令安裝:
        sudo apt-get install gcc-avr   #這是avr的交叉編譯器

        sudo apt-get install avr-libc  #這是編譯要用的庫

        另外還有一個工具,目前感覺沒什么用,先記下來
        sudo apt-get install gdb-avr   #gdb反向調(diào)試工具,反匯編

        程序的下載使用avrdude,安裝命令:

        sudo apt-get install avrdude



        程序的編譯和下載步驟

        第一步:編譯程序

        avr-gcc -mmcu=atmega644p -Wall -Os -o main.o main.c

        第二步:到HEX文件里面


        avr-objcopy -j .text -j .data -O ihex  main.o main.hex

        至于這一步到底做了什么,我也只知道大概是把 .o 文件中的特定部分(例如 .text 和 .data段)

        到 .hex 文件中。

        詳見 avr-objcopy --help 和 readelf -a main.o

        第三步:下載程序到單片機


        sudo avrdude -p m644p -c usbasp -e -U flash:w:main.hex


        其中
        -p 表示選擇芯片,例如m644p
        -c 選擇下載器,例如usbasp
        -e 表示燒錄前清空
        -U 表示存儲器操作類型,使用方式:-U memtype:op:filename[:format]

        詳見 man avrdude

        另外,有時我們還需要讀取或者寫入單片機的熔絲位(熔絲高位:hfuse;熔絲低位:lfuse;熔絲擴展位:efuse)

        可以通過以下命令得到

        讀取熔絲高位

        sudo avrdude -p m644p -c usbasp -e -U hfuse:r:hfuse.hex:h

        寫熔絲位:

        sudo avrdude -p m644p -c usbasp -e -U hfuse:w:0xde:m


        評論


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

        關(guān)閉
        主站蜘蛛池模板: 扬中市| 嘉义市| 许昌市| 敦化市| 上栗县| 陇西县| 京山县| 定结县| 科技| 淮南市| 武宣县| 奇台县| 和平区| 江都市| 邵阳市| 信阳市| 巴中市| 双桥区| 堆龙德庆县| 旅游| 乐都县| 理塘县| 革吉县| 新乡县| 永修县| 都安| 吴川市| 浑源县| 廊坊市| 武隆县| 潍坊市| 石屏县| 洛宁县| 神池县| 泰宁县| 万源市| 宁蒗| 平乡县| 新绛县| 潜山县| 文昌市|