有一塊ATmega128開發板,自從用了ubuntu后就開始吃灰了。其實linux進行avr單片機開發還是很方便的,就跟嵌入式一樣,只是將編譯器由arm-linux-gcc改為avr-gcc.
主要參考:apt-blog.net/developing_avr_under_linux
環境:ubuntu13.04
一、安裝avrdude
sudo apt-get install avrdude
這樣USBasp就被linux所支持了。
二、安裝編譯器:
sudo apt-get install gcc-avr binutils-avr avr-libc
這樣就可以了,開始linux下avr之旅吧
編譯程序命令:
avr-gcc -mmcu=atmega128 -Wall -Os -o led.o led.c
-mmcu即avr型號。
轉化為hex
avr-objcopy -j .text -j .data -O ihex led.o led.hex
.data主要用于存放數據;
三、燒寫程序:
sudo avrdude -p m128 -c usbasp -e -U flash:w:led.hex
m128即我的atmega128
linux下程序開發比較好的思想是寫Makefile
放個例子:
引自:omegav.no/wiki/index.php/AVR_on_linux#Makefile_example
###################################
# Makefile, for AVR Programming
PROJECT =
# Target name:
TARGET =
# Target type
MCU = atmega128
PROGRAMMER = usbasp
F_CPU = 16000000UL
SRC =
OBJ = $(SRC:.c=.o)
# Compiler / Linker flags:
CFLAGS = -mmcu=$(MCU) -Wall -Os -std=gnu99 -D F_CPU=$(F_CPU) -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
LDFLAGS = -mmcu=$(MCU) -Wl,-Map=$(TARGET).map
###################################
# Makerules:
.PHONY: compile flash clean
compile:$(TARGET).hex $(TARGET).eep $(TARGET).lss
flash: compile
avrdude -c $(PROGRAMMER) -P usb -p $(MCU) -U flash:w:$(TARGET).hex
# sleep 2
# avrdude -c $(PROGRAMMER) -P usb -p $(MCU) -U eeprom:w:$(TARGET).eep
clean:
rm -f $(OBJ) $(TARGET).*
###################################
# Psudorules:
%.eep: %.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex $< $@
%.hex: %.elf
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature $< $@
%.lss: %.elf
avr-objdump -h -S $< > $@
%.elf: $(OBJ)
avr-gcc $^ $(LDFLAGS) -o $@
%.o : %.c
avr-gcc $(CFLAGS) -c $< -o $@
上一篇:AVR mkii 被atmel studio 升級后無法用在AVRDUDESS的解決方法
下一篇:linux 下 avr開發環境的搭建
推薦閱讀
史海拾趣
FREESCALE (NXP) 公司發展的五個故事
故事一:從摩托羅拉剝離到獨立上市
FREESCALE的前身可以追溯到摩托羅拉的半導體部門。2002年,面對半導體業務的持續虧損,摩托羅拉集團決定剝離該部門。2004年,摩托羅拉半導體產品事業部正式更名為FREESCALE半導體公司,并在次年成功上市。這一剝離與上市過程標志著FREESCALE作為一個獨立實體的誕生,為其后續的發展奠定了基礎。獨立后的FREESCALE迅速調整戰略,專注于嵌入式電子解決方案,特別是在汽車電子、工業控制等領域取得了顯著成就。
故事二:與恩智浦(NXP)的合并
2015年,FREESCALE與另一家半導體巨頭恩智浦(NXP)達成合并協議,這是半導體行業內的一次重大整合。合并后的公司成為全球最大的汽車半導體供應商之一,并在多個關鍵技術領域占據領先地位。此次合并不僅增強了雙方的市場競爭力,還促進了資源共享和技術創新,為未來的增長開辟了更廣闊的空間。合并后的公司在全球范圍內擁有更強大的研發和銷售網絡,能夠更好地服務于全球客戶。
故事三:從虧損到盈利的轉型
在成為獨立公司之前,FREESCALE的前身——摩托羅拉的半導體部門曾長期面臨虧損困境。然而,在剝離并獨立運營后,FREESCALE通過一系列戰略調整和市場拓展措施,成功實現了從虧損到盈利的轉型。公司注重技術創新和產品研發,不斷推出符合市場需求的新產品,同時加強與客戶和合作伙伴的合作,共同推動行業發展。這些努力使得FREESCALE在激烈的市場競爭中脫穎而出,成為半導體行業的佼佼者。
故事四:技術創新的引領者
FREESCALE一直致力于技術創新,不斷推動半導體技術的進步。公司在嵌入式處理器、模擬芯片、射頻芯片等多個領域擁有深厚的技術積累和豐富的產品線。例如,FREESCALE推出的基于Arm Cortex-M系列的微控制器在智能家居、智能穿戴等領域得到了廣泛應用;其汽車半導體產品更是廣泛應用于高級駕駛員輔助系統、車載網絡等領域,為汽車行業的智能化轉型提供了有力支持。FREESCALE的技術創新不僅提升了自身產品的競爭力,也為整個行業的發展注入了新的活力。
故事五:全球布局與本地化服務
為了更好地服務全球客戶,FREESCALE(及合并后的NXP)在全球范圍內進行了廣泛的布局。公司在多個國家和地區設立了研發中心、生產基地和銷售網絡,能夠快速響應客戶需求并提供本地化服務。同時,FREESCALE還積極與全球各地的合作伙伴建立緊密關系,共同推動技術創新和市場拓展。這種全球布局與本地化服務的策略使得FREESCALE能夠更好地融入當地市場,為客戶提供更加貼心和高效的服務。
隨著公司業務的不斷發展,Allied公司開始積極拓展產品線,逐漸涵蓋了多種類型的電線電纜產品,滿足了不同客戶的需求。同時,公司還積極開拓新的市場領域,將產品推廣至全國范圍,并逐漸拓展至國際市場。通過不斷的產品創新和市場拓展,Allied公司的業務規模逐漸擴大,市場份額也穩步提升。
為了在全球市場上保持領先地位,正泰建立了北美、歐洲、亞太等三大全球研發中心,并與清華大學、上海交大等國內外知名院校、機構展開合作,探索“產學研”融合模式。通過整合全球創新資源,正泰在智能電網、新能源電車充電設施等前沿領域取得了一系列創新進展。這種全球研發體系的建立,不僅提升了公司的研發能力,也增強了公司的市場競爭力。
進入20世紀80年代和90年代,Harbour Industries繼續深化其在電纜領域的研發。為了滿足軍事和國防部門對電纜的特殊需求,公司開始研發并生產Mil-Spec(軍用規格)電纜。這些電纜不僅具備高度的耐用性和可靠性,還符合嚴格的軍事標準。Harbour憑借其在技術上的不斷創新和產品質量的持續提升,成功地將Mil-Spec電纜推向市場,并贏得了眾多軍事客戶和合作伙伴的信賴。
在供應鏈管理方面,Bomar Interconnect公司也進行了一系列優化措施。公司與供應商建立了長期穩定的合作關系,確保原材料的穩定供應和質量可控。同時,公司還加強了對供應鏈的監控和管理,通過信息化手段提高了供應鏈的透明度和效率。這些努力不僅降低了公司的采購成本,也提高了供應鏈的響應速度和靈活性。
經過數十年的迅速發展,汽車電子產品日益完善。為了滿足日趨嚴格的排放標準、逐漸提高的安全性能要求、以及用戶對舒適性的要求, 汽車電子產品的功能變得越來越多,控制單元模件也越來越復雜。如今, 汽車電子控制系統已朝著集成化綜合系統的方向發展。 ...… 查看全部問答∨ |
|
我定義了 SRAM_DATA1: inout std_logic_vector(15 downto 0); r : std_logic_vector(7 downto 0) 將SRAM_DATA1的前八位賦值給r,請問VHDL格式怎么寫?需要代碼. … 查看全部問答∨ |
|
小弟最近在做課程設計,做sdram讀取的時候用到pll進行倍頻產生sdram時鐘(100M),但是發現手頭上的板子的sdram接口是普通io口,而專用的pll輸出口卻被sdram地址端占用了,用QII編譯的時候報錯說必須接到pll專用輸出口,不知道有什么辦法可以輸出到 ...… 查看全部問答∨ |
|
關于有說EZ430-Chronos手表按鍵后有時會重啟的現象(實際可能非器件或軟件問題) 關于以前有帖子中說EZ430-Chronos按鍵后有時會重啟的現象 我以前也遇到這種情況,恰恰看到帖子中也說有類似現象,所以我以為可能是器件或者軟件有問題 后來特別最近重啟頻繁,沒有按下按鍵的時候也會重啟,重啟的時候還會長時間蜂鳴器響一陣。我 ...… 查看全部問答∨ |
早就想發本輯內容了,一直忙忙人生路……昨天一早聽說飛機失聯了,默默幫機上乘客及乘客們的親屬們祈禱。 之后發現以前同事在飛機上,頓時感覺整個人都不好了,第一次這樣的事情離自己這樣近,心里比自己乘飛機遇到顛簸時還忐忑。 先為同事求個祝 ...… 查看全部問答∨ |
如上圖,用3.3v給cd4046供電,通過變阻器調節9腳電壓。先進行V/F轉換,4腳輸出3khz頻率時,9腳電壓是2.08v,然后輸出頻率接F/V電路的14腳,怎么測得9腳電壓就不是2.08v了。而且4腳電壓一直是vdd/2.。。求大神解答 … 查看全部問答∨ |