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