Sobre este post, veremos como actualizar el firmware para nuestro OSD MinimOSD Versiónt 2.2.

un OSD controla la información propia y se realiza mediante un circuito integrado diseñado exclusivamente para el. Consiste en una conmutación controlada entre la señal de vídeo y la señal correspondiente al color de los caracteres y parámetros a monitorizar. De ésta forma, sólo se ven afectadas algunas líneas y por un determinado tiempo por la inclusión de la información que se desee mostrar. wikipedia

Herramientas

  • PC de desarrollo con Ubuntu 16.04 instalado
  • MinimOSD V2.2
  • Modulo USBasp
MinomOSD Ver 2.2
Modulo USBasp.

Instalando Herramientas

Acceder al PC de desarrollo via SSH o directamente sobre el host e instalar las dependencias para poder compilar el codigo.

$ sudo apt-get install arduino-mk

Clonando minimosd-extra night-ghost

Sobre nuestro directorio de Apps o el directorio de trabajo actual clonar el repositorio del Firmware para MinimOSD.

$ git clone https://github.com/night-ghost/minimosd-extra.git

Accedemos al direcotrio de trabajo y clonamos los submodulos

$ cd minimosd-extra/
$ git submodule init && git submodule update

Compilando el codigo fuente con el script 0-build

El desarrollador, ha creado unos scripts muy simples que nos pueden ayudar a compilar el código fuente para algún dispositivo y Protocolo en especial, para este caso vamos acceder al directorio clonado y al directorio de trabajo "MinimOsd_Extra" para encontrar el script que compilara el código.

El script que utilizaremos en este caso, creara el binario en Hexadecimal para nuestro modulo OSD basado en el chip atmega328p que es el chip por default, adicional compilara el codigo utilizando el protocolo Mavlink, vemos una variante de Mavlink que ha sido modificada para el proyecto PX4 que tambien compilaremos en algun momento.

en este punto podremos con nuestro editor favorito, modificar los parámetros del script.

$ cd MinimOsd_Extra/
$ ./0-build.sh

#Salida del sistema
-------------------------
Arduino.mk Configuration:
- [AUTODETECTED]       CURRENT_OS = LINUX 
- [AUTODETECTED]       ARDUINO_DIR = /usr/share/arduino 
- [COMPUTED]           ARDMK_DIR = /usr/share/arduino (relative to Common.mk)
- [AUTODETECTED]       ARDUINO_VERSION = 105 
- [DEFAULT]            ARCHITECTURE =  
- [DEFAULT]            VENDOR = arduino 
- [DEFAULT]            ARDUINO_SKETCHBOOK =  
- [BUNDLED]            AVR_TOOLS_DIR = /usr/share/arduino/hardware/tools/avr (in Arduino distribution)
- [COMPUTED]           ARDUINO_LIB_PATH = /usr/share/arduino/libraries (from ARDUINO_DIR)
- [COMPUTED]           ARDUINO_VAR_PATH = /usr/share/arduino/hardware/arduino//variants (from ARDUINO_DIR)
- [COMPUTED]           BOARDS_TXT = /usr/share/arduino/hardware/arduino//boards.txt (from ARDUINO_DIR)
- [USER]               USER_LIB_PATH = ../libraries 
- [DEFAULT]            PRE_BUILD_HOOK = pre-build-hook.sh 
- [USER]               BOARD_TAG = atmega328 
- [COMPUTED]           CORE = arduino (from build.core)
- [USER]               VARIANT = standard 
- [COMPUTED]           OBJDIR = build-atmega328 (from BOARD_TAG)
- [COMPUTED]           ARDUINO_CORE_PATH = /usr/share/arduino/hardware/arduino//cores/arduino (from ARDUINO_DIR, BOARD_TAG and boards.txt)
- [DETECTED]           MONITOR_BAUDRATE = 38400  (in sketch)
- [DEFAULT]            OPTIMIZATION_LEVEL = s 
- [DEFAULT]            MCU_FLAG_NAME = mmcu 
- [USER]               CFLAGS_STD = -fno-exceptions -Wl,--gc-sections -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   -Waddr-space-convert 
- [USER]               CXXFLAGS_STD = -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   
- [AUTODETECTED]       DEVICE_PATH =  
- [DEFAULT]            FORCE_MONITOR_PORT =  
- [AUTODETECTED]       Size utility: AVR-aware for enhanced output
-
-                      ARDUINO_LIBS =
- [USER]                 FastSerial
- [USER]                 GCS_MAVLink
- [USER]                 SingleSerial
- [USER]                 TimerSerial
- [USER]                 fast_io
- [COMPUTED]           BOOTLOADER_PARENT = /usr/share/arduino/hardware/arduino//bootloaders (from ARDUINO_DIR)
- [COMPUTED]           ARDMK_VERSION = 1.5 
- [COMPUTED]           CC_VERSION = 4.9.2 (avr-gcc)
-------------------------
mkdir -p build-atmega328
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   OSD_Max7456.cpp -o build-atmega328/OSD_Max7456.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   Spi.cpp -o build-atmega328/Spi.o
Spi.cpp: In static member function ‘static void SPI::mode(byte)’:
Spi.cpp:33:10: warning: variable ‘tmp’ set but not used [-Wunused-but-set-variable]
     byte tmp = SPSR;
          ^
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -x c++ -include dummy_header.h -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   MinimOsd_Extra.ino -o build-atmega328/MinimOsd_Extra.o
In file included from MinimOsd_Extra.ino:160:0:
Func.h: In function ‘void pan_toggle()’:
Func.h:284:1: warning: label ‘next_panel’ defined but not used [-Wunused-label]
 next_panel:
 ^
/usr/share/arduino/hardware/tools/avr/bin/avr-gcc -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wl,--gc-sections -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   -Waddr-space-convert /usr/share/arduino/hardware/arduino//cores/arduino/wiring.c -o build-atmega328/core/wiring.o
/usr/share/arduino/hardware/tools/avr/bin/avr-gcc -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wl,--gc-sections -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   -Waddr-space-convert /usr/share/arduino/hardware/arduino//cores/arduino/WInterrupts.c -o build-atmega328/core/WInterrupts.o
/usr/share/arduino/hardware/tools/avr/bin/avr-gcc -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wl,--gc-sections -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   -Waddr-space-convert /usr/share/arduino/hardware/arduino//cores/arduino/wiring_digital.c -o build-atmega328/core/wiring_digital.o
/usr/share/arduino/hardware/tools/avr/bin/avr-gcc -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wl,--gc-sections -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   -Waddr-space-convert /usr/share/arduino/hardware/arduino//cores/arduino/wiring_pulse.c -o build-atmega328/core/wiring_pulse.o
/usr/share/arduino/hardware/tools/avr/bin/avr-gcc -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wl,--gc-sections -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   -Waddr-space-convert /usr/share/arduino/hardware/arduino//cores/arduino/wiring_analog.c -o build-atmega328/core/wiring_analog.o
/usr/share/arduino/hardware/tools/avr/bin/avr-gcc -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wl,--gc-sections -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   -Waddr-space-convert /usr/share/arduino/hardware/arduino//cores/arduino/wiring_shift.c -o build-atmega328/core/wiring_shift.o
/usr/share/arduino/hardware/tools/avr/bin/avr-gcc -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wl,--gc-sections -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   -Waddr-space-convert /usr/share/arduino/hardware/arduino//cores/arduino/avr-libc/realloc.c -o build-atmega328/core/avr-libc/realloc.o
/usr/share/arduino/hardware/tools/avr/bin/avr-gcc -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wl,--gc-sections -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   -Waddr-space-convert /usr/share/arduino/hardware/arduino//cores/arduino/avr-libc/malloc.c -o build-atmega328/core/avr-libc/malloc.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   /usr/share/arduino/hardware/arduino//cores/arduino/IPAddress.cpp -o build-atmega328/core/IPAddress.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   /usr/share/arduino/hardware/arduino//cores/arduino/Tone.cpp -o build-atmega328/core/Tone.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   /usr/share/arduino/hardware/arduino//cores/arduino/WString.cpp -o build-atmega328/core/WString.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   /usr/share/arduino/hardware/arduino//cores/arduino/Print.cpp -o build-atmega328/core/Print.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   /usr/share/arduino/hardware/arduino//cores/arduino/HID.cpp -o build-atmega328/core/HID.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   /usr/share/arduino/hardware/arduino//cores/arduino/Stream.cpp -o build-atmega328/core/Stream.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   /usr/share/arduino/hardware/arduino//cores/arduino/USBCore.cpp -o build-atmega328/core/USBCore.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   /usr/share/arduino/hardware/arduino//cores/arduino/new.cpp -o build-atmega328/core/new.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   /usr/share/arduino/hardware/arduino//cores/arduino/WMath.cpp -o build-atmega328/core/WMath.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   /usr/share/arduino/hardware/arduino//cores/arduino/main.cpp -o build-atmega328/core/main.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   /usr/share/arduino/hardware/arduino//cores/arduino/HardwareSerial.cpp -o build-atmega328/core/HardwareSerial.o
/usr/share/arduino/hardware/arduino//cores/arduino/HardwareSerial.cpp: In function ‘void store_char(unsigned char, ring_buffer*)’:
/usr/share/arduino/hardware/arduino//cores/arduino/HardwareSerial.cpp:100:9: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (i != buffer->tail) {
         ^
/usr/share/arduino/hardware/arduino//cores/arduino/HardwareSerial.cpp: In function ‘void __vector_18()’:
/usr/share/arduino/hardware/arduino//cores/arduino/HardwareSerial.cpp:129:21: warning: unused variable ‘c’ [-Wunused-variable]
       unsigned char c = UDR0;
                     ^
/usr/share/arduino/hardware/arduino//cores/arduino/HardwareSerial.cpp: In member function ‘void HardwareSerial::begin(long unsigned int, byte)’:
/usr/share/arduino/hardware/arduino//cores/arduino/HardwareSerial.cpp:370:11: warning: unused variable ‘current_config’ [-Wunused-variable]
   uint8_t current_config;
           ^
/usr/share/arduino/hardware/arduino//cores/arduino/HardwareSerial.cpp: In member function ‘virtual size_t HardwareSerial::write(uint8_t)’:
/usr/share/arduino/hardware/arduino//cores/arduino/HardwareSerial.cpp:469:12: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   while (i == _tx_buffer->tail)
            ^
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   /usr/share/arduino/hardware/arduino//cores/arduino/CDC.cpp -o build-atmega328/core/CDC.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   ../libraries/FastSerial/FastSerial.cpp -o build-atmega328/userlibs/FastSerial/FastSerial.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   ../libraries/FastSerial/vprintf.cpp -o build-atmega328/userlibs/FastSerial/vprintf.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   ../libraries/FastSerial/BetterStream.cpp -o build-atmega328/userlibs/FastSerial/BetterStream.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   ../libraries/FastSerial/MyStream.cpp -o build-atmega328/userlibs/FastSerial/MyStream.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   ../libraries/GCS_MAVLink/GCS_MAVLink.cpp -o build-atmega328/userlibs/GCS_MAVLink/GCS_MAVLink.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   ../libraries/SingleSerial/vprintf.cpp -o build-atmega328/userlibs/SingleSerial/vprintf.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   ../libraries/SingleSerial/BetterStream.cpp -o build-atmega328/userlibs/SingleSerial/BetterStream.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   ../libraries/SingleSerial/SingleSerial.cpp -o build-atmega328/userlibs/SingleSerial/SingleSerial.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   ../libraries/SingleSerial/MyStream.cpp -o build-atmega328/userlibs/SingleSerial/MyStream.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wno-deprecated-declarations -std=gnu++11  -fno-exceptions -Wl,--gc-sections -fno-threadsafe-statics -felide-constructors  -fconserve-space -fno-enforce-eh-specs -fno-rtti -fvisibility-inlines-hidden -fno-use-cxa-atexit -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   ../libraries/TimerSerial/TimerSerial.cpp -o build-atmega328/userlibs/TimerSerial/TimerSerial.o
/usr/share/arduino/hardware/tools/avr/bin/avr-gcc -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions -Wl,--gc-sections -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   -Waddr-space-convert ../libraries/fast_io/fast_io.c -o build-atmega328/userlibs/fast_io/fast_io.o
/usr/share/arduino/hardware/tools/avr/bin/avr-gcc -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -x assembler-with-cpp ../libraries/FastSerial/ultoa_invert.S -o build-atmega328/userlibs/FastSerial/ultoa_invert.o
/usr/share/arduino/hardware/tools/avr/bin/avr-gcc -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -x assembler-with-cpp ../libraries/FastSerial/ftoa_engine.S -o build-atmega328/userlibs/FastSerial/ftoa_engine.o
/usr/share/arduino/hardware/tools/avr/bin/avr-gcc -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -x assembler-with-cpp ../libraries/SingleSerial/ultoa_invert.S -o build-atmega328/userlibs/SingleSerial/ultoa_invert.o
/usr/share/arduino/hardware/tools/avr/bin/avr-gcc -MMD -c -mmcu=atmega328p -DF_CPU=16000000 -DARDUINO=105  -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino//cores/arduino -I/usr/share/arduino/hardware/arduino//variants/standard     -I../libraries/FastSerial   -I../libraries/GCS_MAVLink   -I../libraries/SingleSerial   -I../libraries/TimerSerial   -I../libraries/fast_io -Wall -ffunction-sections -fdata-sections -Os -x assembler-with-cpp ../libraries/SingleSerial/ftoa_engine.S -o build-atmega328/userlibs/SingleSerial/ftoa_engine.o
/usr/share/arduino/hardware/tools/avr/bin/avr-ar rcs build-atmega328/libcore.a  build-atmega328/core/WInterrupts.o  build-atmega328/core/wiring.o  build-atmega328/core/wiring_pulse.o  build-atmega328/core/wiring_analog.o  build-atmega328/core/wiring_digital.o  build-atmega328/core/wiring_shift.o  build-atmega328/core/avr-libc/realloc.o  build-atmega328/core/avr-libc/malloc.o  build-atmega328/core/Tone.o  build-atmega328/core/Print.o  build-atmega328/core/Stream.o  build-atmega328/core/WString.o  build-atmega328/core/IPAddress.o  build-atmega328/core/new.o  build-atmega328/core/main.o  build-atmega328/core/HardwareSerial.o  build-atmega328/core/WMath.o  build-atmega328/core/USBCore.o  build-atmega328/core/HID.o  build-atmega328/core/CDC.o     build-atmega328/userlibs/FastSerial/FastSerial.o build-atmega328/userlibs/FastSerial/vprintf.o build-atmega328/userlibs/FastSerial/BetterStream.o build-atmega328/userlibs/FastSerial/MyStream.o build-atmega328/userlibs/GCS_MAVLink/GCS_MAVLink.o build-atmega328/userlibs/SingleSerial/vprintf.o build-atmega328/userlibs/SingleSerial/BetterStream.o build-atmega328/userlibs/SingleSerial/SingleSerial.o build-atmega328/userlibs/SingleSerial/MyStream.o build-atmega328/userlibs/TimerSerial/TimerSerial.o build-atmega328/userlibs/fast_io/fast_io.o build-atmega328/userlibs/FastSerial/ultoa_invert.o build-atmega328/userlibs/FastSerial/ftoa_engine.o build-atmega328/userlibs/SingleSerial/ultoa_invert.o build-atmega328/userlibs/SingleSerial/ftoa_engine.o
/usr/share/arduino/hardware/tools/avr/bin/avr-gcc -ffast-math -finline-functions-called-once  -finline-small-functions -fno-data-sections -fmerge-all-constants -fmerge-constants -fomit-frame-pointer  -fno-optimize-sibling-calls  -fno-early-inlining  -fno-aggressive-loop-optimizations -fassociative-math -freciprocal-math -fno-signed-zeros -fno-trapping-math -fsingle-precision-constant -fno-caller-saves -funsigned-bitfields -fipa-pta  -fwrapv -fno-strict-aliasing -fverbose-asm  -DHARDWARE_TYPE=0 -DUSE_MAVLINK=1   -mrelax -mcall-prologues  -Wl,--relax   -Wl,-Map -Wl,build-atmega328/map.map -Wl,--cref -fwhole-program -mmcu=atmega328p -Wl,--gc-sections -Os -o build-atmega328/MinimOsd_Extra.elf build-atmega328/OSD_Max7456.o build-atmega328/Spi.o build-atmega328/MinimOsd_Extra.o build-atmega328/libcore.a  -lc -lm
/usr/share/arduino/hardware/tools/avr/bin/avr-objcopy -j .eeprom --set-section-flags=.eeprom='alloc,load' \
	--change-section-lma .eeprom=0 -O ihex build-atmega328/MinimOsd_Extra.elf build-atmega328/MinimOsd_Extra.eep
/usr/share/arduino/hardware/tools/avr/bin/avr-objcopy: --change-section-lma .eeprom=0x0000000000000000 never used
/usr/share/arduino/hardware/tools/avr/bin/avr-objcopy -O ihex -R .eeprom build-atmega328/MinimOsd_Extra.elf build-atmega328/MinimOsd_Extra.hex

/usr/share/arduino/hardware/tools/avr/bin/avr-size --mcu=atmega328p -C --format=avr build-atmega328/MinimOsd_Extra.elf
AVR Memory Usage
----------------
Device: atmega328p

Program:   30642 bytes (93.5% Full)
(.text + .data + .bootloader)

Data:       1646 bytes (80.4% Full)
(.data + .bss + .noinit)

Una vez compilado, tendremos sobre el mismo directorio uno nuevo llamado "build-atmega328"

Accedemos al directorio y listamos los archivos, podremos ver el hexadecimal que se acaba de crear MinimOsd_Extra.hex

$ cd build-atmega328
$ ls -l

#Salida del sistema
total 636
drwxrwxr-x 3 heberth heberth   4096 sep  9 14:36 core
-rw-rw-r-- 1 heberth heberth 141088 sep  9 14:36 libcore.a
-rw-rw-r-- 1 heberth heberth 200020 sep  9 14:36 map.map
-rw-rw-r-- 1 heberth heberth  15623 sep  9 14:36 MinimOsd_Extra.d
-rw-rw-r-- 1 heberth heberth     13 sep  9 14:36 MinimOsd_Extra.eep
-rwxrwxr-x 1 heberth heberth  55232 sep  9 14:36 MinimOsd_Extra.elf
-rw-rw-r-- 1 heberth heberth  86205 sep  9 14:36 MinimOsd_Extra.hex
-rw-rw-r-- 1 heberth heberth      0 sep  9 14:36 MinimOsd_Extra.hex.sizeok
-rw-rw-r-- 1 heberth heberth 107368 sep  9 14:36 MinimOsd_Extra.o
-rw-rw-r-- 1 heberth heberth    879 sep  9 14:36 OSD_Max7456.d
-rw-rw-r-- 1 heberth heberth   7148 sep  9 14:36 OSD_Max7456.o
-rw-rw-r-- 1 heberth heberth    752 sep  9 14:36 Spi.d
-rw-rw-r-- 1 heberth heberth   1712 sep  9 14:36 Spi.o
drwxrwxr-x 7 heberth heberth   4096 sep  9 14:36 userlibs```

Instalando el Firmware sobre el OSD.

Una vez compilado el Firmware para nuestro OSD, lo que hace falta es cargarlo en memoria. para ello, conectamos nuestro USBasp al OSD siguiendo la siguiente conexión:

Conexión del Programador USBasp y Puerto Estándar ISCP o ISP de Arduino (atmega328p)
Pines de Conexión para el puerto ISP.

Conectado el USBasp al modulo MinimOSD, procedemos a flashear sobre su memoria el Hexadecimal compilado.

avrdude -c /etc/avrdude.conf -v -patmega328p -cusbasp -Pusb -Uflash:w:./MinimOsd_Extra.hex:i


#Salida del sistema
avrdude: Version 6.2
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/etc/avrdude.conf"
         User configuration file is "/home/heberth/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : usb
         Using Programmer              : usbasp
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : usbasp
         Description     : USBasp, http://www.fischl.de/usbasp/

avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: safemode: hfuse reads as DA
avrdude: safemode: efuse reads as FD
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file "./MinimOsd_Extra.hex"
avrdude: writing flash (30642 bytes):

Writing | ################################################## | 100% 19.25s

avrdude: 30642 bytes of flash written
avrdude: verifying flash memory against ./MinimOsd_Extra.hex:
avrdude: load data flash data from input file ./MinimOsd_Extra.hex:
avrdude: input file ./MinimOsd_Extra.hex contains 30642 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 15.60s

avrdude: verifying ...
avrdude: 30642 bytes of flash verified

avrdude: safemode: hfuse reads as DA
avrdude: safemode: efuse reads as FD
avrdude: safemode: Fuses OK (E:FD, H:DA, L:FF)

avrdude done.  Thank you.

Si es correcto el proceso, veremos como empieza detectando el dispositivo y leyendo su memoria actual, escribe el nuevo firmware y confirma la escritura del mismo indicando que fue OK el proceso.

Referencias:

minimosd-extra
Building-the-code-on-linux-&-windows10-using-linux-subsystem-(ubuntu)
Flashing-Grbl-to-an-Arduino