Arduino有著豐富的第三方庫,因此開發(fā)起來非常的方便快捷,但是在實(shí)際的生產(chǎn)中,我們不可能使用Arduino IDE來進(jìn)行固件的燒錄,因?yàn)槭褂肁rduino IDE燒錄效率很低,而且要先幫工廠把環(huán)境搭建好,更重要的是燒錄時(shí)必須要打開源代碼,這可能會(huì)導(dǎo)致工廠泄露機(jī)密。因此,最好的方案還是將代碼轉(zhuǎn)成通用的bin文件燒錄。
廢話不多說,馬上開始講解。
1 Arduino生成bin文件
關(guān)于Arduino的環(huán)境搭建,庫安裝這些我就不介紹了,都走到量產(chǎn)這一步了不會(huì)有人還不知道吧。
打開Arduino IDE,打開 項(xiàng)目 -> 導(dǎo)出已編譯的二進(jìn)制文件,等待編譯完成即可在工程目錄下生成相應(yīng)的bin文件。
編譯成功后生成的bin文件:
2 bin文件燒錄
2.1 下載燒錄工具
燒錄bin文件的時(shí)候我們需要用到樂鑫的flash燒錄工具。
工具可以在樂鑫官網(wǎng)下載:https://www.espressif.com/zh-hans/support/download/other-tools
2.2 集齊MCU需要燒錄的固件
用Arduino IDE燒錄ESP8266、ESP32、ESP32-S2或者其他ESP系列的MCU時(shí)給我們的感覺是它僅僅燒錄了自己編寫的代碼以及底層支持庫。但實(shí)際上除了這些,還包含了啟動(dòng)文件,bootloader,sdk等。
因此,如果我們只燒錄Arduino生成的bin文件是無法正常運(yùn)行的。我們還需要找到另外幾個(gè)文件。
這幾個(gè)文件都在你安裝的開發(fā)板庫里面。比如你用的ESP32,那就是在esp32庫。
我這里以ESP32-S2為例講解,其他ESP系列的MCU也是一樣的。
首先我們要打開庫文件對應(yīng)的文件夾。
這個(gè)路徑可以在Arduino IDE的首選項(xiàng)里面看到。點(diǎn)擊一下這個(gè)路徑就可以彈出文件窗口。
在packages文件夾可以看到所有已安裝的開發(fā)板庫。比如我這里安裝了esp32和esp8266的庫。
進(jìn)入相應(yīng)的庫,找到partitions和sdk這兩個(gè)文件夾。
提示:我這個(gè)是esp32 v2.0.1版本的庫,其他MCU或者其他版本的庫文件框架可能會(huì)有區(qū)別,但是大體上應(yīng)該都是類似的。
1)第1個(gè)文件:boot_app0
在partitions文件夾里面。
2)第2個(gè)文件:bootloader
在sdk文件夾里面。
特別說明一下:目前esp32是有3個(gè)MCU的sdk的,選擇自己要用的即可。我這里用的是esp32-s2。
提示:dio、dout、qio和qout是spi的模式,40m和80m是flash的頻率,比較常用的是dio和40m。當(dāng)然,如果對性能有更高的要求可以選80m,在SPI作為主機(jī)時(shí)可以達(dá)到80MHz,但相應(yīng)的對硬件的抗干擾能力也有更高的要求。
3)第3個(gè)文件:app
這個(gè)是你實(shí)際的應(yīng)用代碼,也就是用Arduino IDE生成的bin文件。
4)第4個(gè)文件:default
和第1個(gè)文件一樣,也是在partitions文件夾里面。
2.3 燒錄固件
打開樂鑫的燒錄工具,選擇對應(yīng)的芯片和燒錄方式。
提示:ESP32-S2除了串口以外,還可以通過USB下載。
依次添加燒錄文件,并填寫相應(yīng)的燒錄地址,配置好相應(yīng)的模式。
我這里還是以ESP32-S2為例。
獲取燒錄文件地址的方法:這幾個(gè)地址可以在Arduino IDE燒錄時(shí)輸出的日志中找到。
連接好硬件設(shè)備,并且進(jìn)入下載模式。
進(jìn)入下載模塊的方法:按住boot鍵,然后再按reset鍵,最后松開boot鍵?;蛘甙醋oot鍵之后再上電。只要保證MCU啟動(dòng)時(shí),boot腳是低電平即可。
通過串口打印的信息可以確定是否已進(jìn)入下載模式。
進(jìn)入下載模式時(shí)可以看到以下信息:
在燒錄工具上選擇好對應(yīng)的com口,配置好波特率(波特率越大,下載速度越快)。
提示:ESP32-S2除了串口以外,還可以通過USB下載,要先進(jìn)入下載模式才能檢測到USB對應(yīng)的com口,或者之前運(yùn)行的代碼有把USB配置成虛擬串口也可以看到對應(yīng)的com口。
點(diǎn)擊START開始燒錄。
提示:燒錄固件之前可以先全部擦除一遍。如果點(diǎn)擊開始燒錄之后才發(fā)覺MCU沒有進(jìn)入燒錄模式,也可以在這里進(jìn)入,進(jìn)入之后馬上就會(huì)開始燒錄了。
等待下載完成后重啟一下即可。
結(jié)束語
好了,關(guān)于Arduino生成bin文件及燒錄方法的介紹就到這里。本文只列舉了ESP32-S2的情況,ESP8266和ESP32我也試過,也是一樣的,大家舉一反三即可。如果這篇文章對你有幫助,可以點(diǎn)贊收藏,如果還有什么問題,歡迎在評論區(qū)留言或者私信給我。