Archiv für Juli, 2020

Bootloader anpassen

LED’s auf eigenes Board umstellen
Werden die LEDs woanders definiert funktioniert
void SysTick_Handler(void) nicht mehr
board_definitions_arduino_mkrzero.h
#define BOARD_LED_PORT (0)
#define BOARD_LED_PIN (5)
#define BOARD_LEDRX_PORT (0)
#define BOARD_LEDRX_PIN (6)
#define BOARD_LEDTX_PORT (0)
#define BOARD_LEDTX_PIN (7)
//#define BOARD_LED_PORT (1)
//#define BOARD_LED_PIN (8)

Bootloader Crystalless
Der Quarz auf der Schaltung ist sehr langsam. Startup Zeit bis zu 2 Sekunden. Wird auf Crystalless umgeschalten wird der interne Quarz verwendet, dadurch reduziert sich die Startup Zeit auf 0,5 Sekunden. Die 0,5 Sekunden kommen vom Warten auf das Betätigen des Resettasters.
mkrzero.build.extra_flags=-DCRYSTALLESS -DUSE_ARDUINO_MKR_PIN_LAYOUT -D__SAMD21G18A__ {build.usb_flags}
in Arduino\arduino-nightly\portable\packages\arduino\hardware\samd\1.8.6\boards.txt einfügen

Bootloader für MKRZero erstellen

Board Einrichten
arduino-nightly-windows.zip runterladen und entpacken
portable unter Arduino\arduino-nightly erstellen.
-> Arduino\arduino-nightly\portable
Visualstudio mit VisualMicro starten
VisualMicroExplorer starten
->vMicro\VisualMicroExplorer
Manage Boards -> MKRZero in Suche eingeben
Arduino SAMD Boards (32-bits ARM Cortex-M0+) installieren
Hier sollte nun der Bootloader sein
Arduino\arduino-nightly\portable\packages\arduino\hardware\samd\1.8.6\bootloaders\zero
Doppelklick auf samd21_sam_ba.cproj öffnet das AtmelStudio.

Projekt Eigenschaften Einstellen
Release wählen
Eigenschaften des Projekts wählen
„Use External Makefole“ checken
MakeFile eintragen
Arduino\arduino-nightly\portable\packages\arduino\hardware\samd\1.8.6\bootloaders\zero\Makefile

MakeFile bearbeiten
Wegen dem portable Ordner müssen die Pfade entsprechend angepasst werden

auskommentieren
#MODULE_PATH?=$(LOCALAPPDATA)/Arduino15/packages/arduino
Einfügen
MODULE_PATH?=X:/XXX/Arduino/arduino-nightly/portable/packages/arduino

Daten in den entsprechenden Pfad kopieren
$(HEX): $(ELF)
@echo ———————————————————-
@echo Creating flash binary
„$(OBJCOPY)“ -O ihex $(BUILD_PATH)/$< $@
cp $(HEX) ../mkrzero/
cp $(BIN) ../mkrzero/

Prozessor in MakeFile einstellen
# —————————————————————————–
#Boards definitions
#BOARD_ID?=arduino_zero
BOARD_ID?=arduino_mkrzero
#NAME?=samd21_sam_ba
NAME?=samd21_sam_ba_arduino_mkrzero

Original Bootloader sichern
Arduino\arduino-nightly\portable\packages\arduino\hardware\samd\1.8.6\bootloaders\mkrzero\samd21_sam_ba_arduino_mkrzero.bin
Arduino\arduino-nightly\portable\packages\arduino\hardware\samd\1.8.6\bootloaders\mkrzero\samd21_sam_ba_arduino_mkrzero.bin
umbenennen in z.B.
samd21_sam_ba_arduino_mkrzero.bin.org
samd21_sam_ba_arduino_mkrzero.hex.org

BootLoader schreiben
In Visualstudio vMicro->Uploader->HardwareProgrammer auswählen
danach vMicro->Uploader->Burn Bootloader wählen