Mac OS下編譯 Atmega32a Bootloader
最近畫了幾個小板子,主控選來選去最終還是用的?Atmega32a,眾所周知,這個芯片是沒自帶USB的,需要通過V-USB,白說了?V-USB?是通過程序?qū)崿F(xiàn)的低速USB。
Atmega32a?的這個板子在嘉立創(chuàng)的開源廣場能找到鍵盤和最小系統(tǒng)的例子,pcb?原理也是比較簡單的。但是在畫板子的時候會有一個問題,就是這個用?V-USB?實現(xiàn)的針腳與?BOOT?位的針腳并不統(tǒng)一,因為是程序?qū)崿F(xiàn)的該部分內(nèi)容,所以就要把問題再往深一步考慮——Bootloader。詳述該部分?Bootloader?的資料就不算多了,搜來搜去都指向了一個大神@全橋整活器的平價QMK,在他的視頻也是比較簡單的提到了Bootloader?的來源,好在給出了Bootloader?的?github?地址,USBaspLoader,https://github.com/baerwolf/USBaspLoader。
下載到源碼心理就基本有一半底了,剩下的就是吃吃代碼和根據(jù)需要改改針腳了。在它的?Readme?里提到兩個平臺的編譯方式,如果是?windows?用?WinAVR?這個?IDE?工具,我下載了,但是并不好用,可能是環(huán)境沒有配置正確,于是放到一邊,研究另外一個平臺的編譯方式。
類?Unix?平臺。如果你直接在終端里?make?的話會提示錯誤,那是因為在你的環(huán)境里沒有?avr-gcc?這個轉(zhuǎn)譯工具,為了解決這個問題,在?Readme里寫著需要?GNU工具和?avr-libc?庫,并給了鏈接https://www.nongnu.org/avr-libc/user-manual/install_tools.html。打開鏈接后介紹得很詳細(xì),首先看?Required Tools,三個必須工具:GUN Binutils,GCC,AVR Libc。下邊我一一介紹。
這個?GUN Binutils,根據(jù)介紹寫著需要先下載一個包,解壓后編譯再安裝,過程并不復(fù)雜,但是這個國外的網(wǎng)啊,是真的不太好,反正我是一直連接不上,下載后也是問題頻出。后來就換了一個法子:如果你安裝過?Homebrew,就可以通過?
brew install coreutils
安裝?GUN Coreutils,這個是?binutils?的基礎(chǔ)或者依賴,安裝完成之后,再輸入命令?
brew install binutils
至此,第一個?GUN Binutils?安裝完畢,還剩下兩個了。
于是我想著通過同樣的方法直接輸入?brew install avr-gcc,但是會報錯,告訴我沒有?avr-gcc,問我是不是打錯了。不要緊,還好網(wǎng)上關(guān)于?Mac OS?安裝?Arduino?的文章不少,通過?brew tap tonylabs/homebrew-avr更新,但是這個讓我輸入我的?github?用戶和密碼,我輸入了幾次都報錯(也有可能是我忘記了密碼),轉(zhuǎn)試了另外一個方法,通過輸入?
brew tap osx-cross/avr?
成功更新。之后再輸入?
brew install?avr-gcc
可以安裝。在安裝的過程中可能會提示缺少?xcode,等安裝完畢后再輸入
xcode-select –install
到這里?avr-gcc?已經(jīng)安裝完畢。
在安裝?avr-gcc?的同時應(yīng)該是?avr-libc同時安裝上了。而我當(dāng)時走了彎路,摸到了?avr-libc?的?github,https://github.com/avrdudes/avr-libc/,一頓操作安裝無果,唉,所以才萌發(fā)寫出了這篇文章。
全部安裝之后,再回到之前下載好的?USBaspLoader目錄,輸入?make clean,再?make all,全部搞定。把生成的?main.hex?刷到你的芯片里吧。

我的 Intel Mac OS 是這樣安裝的,還有一臺 M2的 Air,等有空了也試一下。
下一步計劃應(yīng)該是使用?CH32V208的?host?功能配合可以?QMK?的芯片實現(xiàn)一個雙模鍵盤,成功之后也會和大家分享的。大家等我消息吧。