🛠 Build local avec Device OS, ARM GCC et Particle CLI
Objetivos
Liberarse de cualquier IDE en línea (el antiguo Web IDE ha sido retirado): la cadena recomendada hoy en día es el repositorio device-os compilado con make y ARM GCC, y luego flasheado con Particle CLI, ya sea por OTA o por USB.
Material
- Un ordenador con Linux, macOS o Windows (WSI o herramientas nativas según las notas del repositorio)
- Toolchain ARM GCC (cortex-m3), GNU make, git, Node.js para Particle CLI
- 1 Particle Photon con un buen cable USB
Código completo
// photon-build-local.ino — projet minimal pour build local
// Arborescence type :
// mon-projet/src/mon-projet.ino
// mon-project/Makefile (incluant build.mk du dépôt device-os)
#include "application.h"
void setup {
pinMode(D7, OUTPUT);
Serial.begin(9600);
Serial.println("Build local ARM GCC - OK");
}
void loop {
digitalWrite(D7, HIGH); delay(300);
digitalWrite(D7, LOW); delay(300);
}
Verificación esperada
En el repositorio device-os (o una plantilla de proyecto que lo incluya), el comando make all (confirmado por el README del repositorio) produce un firmware.bin en la carpeta build. Luego: particle flash <nombre_del_dispositivo> firmware.bin por OTA, o por USB DFU (mantener SETUP, pulsar RESET, LED amarillo parpadeante) para un flasheo por cable. La versión de Device OS utilizada debe ser una 2.x LTS, ya que las ramas 1.x y 3.x están al final de su soporte.
Errores frecuentes
- Compilar con un Device OS fuera de soporte: la hoja de datos impone la gama 2.x LTS con soporte extendido.
- Toolchain ARM ausente o con versión incorrecta: make falla en cortex-m3; instalar un gcc-arm-none-eabi reciente.
- >
- Flashear un binario compilado para otra placa (Electron o Photon 2/P2): el firmware es específico para el Photon (STM32F205 + BCM43362).
- Device OS está bajo LGPLv3: su aplicación propietaria sigue siendo legal, pero mantenga intacta la licencia del sistema.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.inoArduinobouton-evenement.inoArduinofonction-distance.inoArduinocapteur-dht.inoArduinoruban-neopixel.inoArduinopwm-respiration.inoArduino