題:
了解編譯/鏈接/上傳過程(因此我不必使用IDE)
Ash
2014-04-27 22:35:02 UTC
view on stackexchange narkive permalink

我最近開始和arduino UNO玩(沒有任何微控制器的經驗)。我想使用emacs代替IDE,並且我也想知道IDE在幕後的作用,以便能夠編寫自己的makefile。我發現的教程已經過時,或者作為一系列步驟顯示,沒有任何解釋。如果有人可以向我解釋使用gcc-avr和avr-dude的整個編譯/鏈接/上傳過程以及IDE如何使用它,我將不勝感激。

您可以在“文件”→“首選項”下通過“在以下過程中顯示詳細的輸出:☑編譯☑上傳”來了解情況。
幾乎重複:[通過終端編譯代碼](http://arduino.stackexchange.com/q/35280)。在我對該問題的回答中,請參閱指向arduino-builder和Sudar Muthu'Makefile的鏈接。
一 回答:
Ignacio Vazquez-Abrams
2014-04-27 22:53:52 UTC
view on stackexchange narkive permalink

如果您想對IDE進行精確的複制,但又希望它是從命令行驅動的,那麼 Ino就是這樣做的。完整的Arduino構建過程涉及從很多地方復制很多文件,並且通常不容易複製。

如果您準備放開.ino文件和Arduino庫,則可以獲得更簡單的工具集。 avr-gcc編譯,avrdude上傳,就完成了。這是我來自一個簡單項目的makefile之一:

  CC = avr-gccCXX = avr-c ++ CXXFLAGS = -Wall -Wextra -mmcu = atmega1284p -OsCFLAGS = $(CXXFLAGS)BINARY = ledmatrixOBJECTS =全部:$(BINARY)↹@ avr-size $ < $(BINARY):$(OBJECTS)clean:↹@ rm -f $(BINARY)$(BINARY).hex $(OBJECTS)上傳:$(BINARY) ).hex↹@ avrdude -c usbasp -p m1284p -U flash:w:$ <:i%.hex:%↹@ avr-objcopy -j .text -j .data -O ihex $ < $ @。PHONY:所有乾淨的上載 

如果要復制粘貼,請確保用製表符替換所有“↹”。

編輯:

我已經在Github上使用構建系統創建了一個存儲庫

謝謝,您的makefile幾乎是我想要的。但是我猜想擺脫這些庫意味著我將無法使用諸如digitalWrite()之類的功能?在那種情況下,我應該在哪裡學習它們的普通C等效項?
Arduino庫將包含它們的等效項,但閱讀起來可能有些學識。我建議找到一個低級的AVR教程來學習,該教程將向您解釋各種寄存器和外圍設備。哦,還有數據表。 **始終**獲取數據表。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...