Ubuntu上AVR單片機(jī)開發(fā)環(huán)境設(shè)置
AVR單片機(jī):ATmega644pa
本文引用地址:http://m.butianyuan.cn/article/201611/318405.htm首先要明確,我們?cè)?strong>Ubuntu(或者Linux)上開發(fā)AVR單片機(jī)應(yīng)包括兩大部分:
程序編譯、程序下載。
環(huán)境布置:
程序編譯使用Linux下的編譯器——avr-gcc,通過以下指令安裝:sudo apt-get install gcc-avr #這是avr的交叉編譯器
sudo apt-get install avr-libc #這是編譯要用的庫
另外還有一個(gè)工具,目前感覺沒什么用,先記下來
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
第三步:下載程序到單片機(jī)
sudo avrdude -p m644p -c usbasp -e -U flash:w:main.hex
其中
-p 表示選擇芯片,例如m644p
-c 選擇下載器,例如usbasp
-e 表示燒錄前清空
-U 表示存儲(chǔ)器操作類型,使用方式:-U memtype:op:filename[:format]
詳見 man avrdude
另外,有時(shí)我們還需要讀取或者寫入單片機(jī)的熔絲位(熔絲高位:hfuse;熔絲低位:lfuse;熔絲擴(kuò)展位: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
評(píng)論