出現(xiàn)多年后,再寫Arduino可能毫無意義诺舔。我也是一直對朋友們說,主流開發(fā)用原廠SDK备畦,ARM mbed低飒,孩子們?nèi)ネ鍭rduino。因為Arduino沒有Debugger懂盐,ARM mbed有褥赊,balabala說了一大堆,忽悠了別人莉恼,騙了自己拌喉。我甚至忘記了自己移植到Freescale KL25Z上的USB OTG驅動實際上來自Arduino的一個非常底層的庫。健忘袄尿背!
Arduino不斷推出新開發(fā)板,對我來說捶惜,可能有些審美疲勞残家。直到Azure IoT DevKit出現(xiàn)給了我一悶棍:為什么Azure IoT DevKit底層使用ARM mbed,而API層面依然去兼容Arduino售躁?這使得我回頭再審視Arduino的發(fā)展坞淮。
Arduino陣營擴大了
我非常驚訝地發(fā)現(xiàn):如果說ARM mbed正在成為ARM內(nèi)核的IoT生態(tài)茴晋,那么非ARM內(nèi)核的IoT就非Arduino莫屬了。包括Arduino官方和第三方推出的開發(fā)板中回窘,包括了大多數(shù)ARM以及非ARM MCU和開發(fā)板:
- Atmel AVR诺擅,Atmel SAM/SAMD系列ARM MCU;
- STM32 NUCLEO系列啡直;
- Nordic nRF51/nRF52 BLE系列烁涌;
- Intel i586/i686/Edison/Curie系列;
- Windows IoT酒觅;
- ADI系列撮执;
- Azure IoT DevKit;
- ESP8266與ESP32系列舷丹;
- TI MSP430系列抒钱;
- RTL8195AM, RTL8711AM, RTL8711AF WiFi SoC;
- Microchip ChipKit PIC32颜凯,這個比較老的第三方谋币;
- Freescale Teensy,也算比較老的第三方症概;
- SiliconLabs Gecko系列(ARM)蕾额;
- Infineon XMC系列;
- MediaTek Linkit One彼城;
- iCE40 FPGA......
可以這么說诅蝶,Arduino幾乎涵蓋了大多數(shù)的MCU平臺∧己荆基本上只要有GCC秤涩,都有可能加上。所以未來司抱,出現(xiàn)RISC-V等新的Core筐眷,是非常可能的习柠。
Arduino的移植
早前的Maple/ChipKit/Teesy等第三方Arduino匀谣,要么重新編譯了Arduino IDE,要么用插件方式∽世#現(xiàn)在Arduino開發(fā)了Board Manger以及對應的JSON Index格式武翎。開發(fā)第三方的MCU框架更加容易了。通過Board Manager溶锭,可以把第三方的MCU直接加到Arduino IDE里去宝恶。
Arduino的調(diào)試能力
通過Microsoft Visual Studio Code調(diào)試Azure DevKit,發(fā)現(xiàn)Arduino這一塊居然被微軟補上了。而且VSC不僅僅可以支持Azure DevKit垫毙,其他開發(fā)板也可以哦霹疫。
目前測試的要是應用層代碼調(diào)試,底層調(diào)試還沒有測試過综芥。如果也可以的話丽蝎,那么Arduino無法用于生產(chǎn)環(huán)境的推論就要被推翻了。