Bei 16KB-Calliopes klappt die Speicherzuweisung nicht, wenn die HEX für 32KB erstellt wurde und kann daher dann nicht ausgeführt werden. Wenn beide Calliope Versionen verwendet werden würde ich einheitlich die 16KB Varianten verwenden, wenn ich mit den Hex Dateien arbeite (die ja vermutlich dann per USB oder aus dem Flash-Laufwerk geladen werden).
Die erste Übertragung beim programmieren per App ist dann ohne Partial Flashing. Alle weiteren Übertragungen mit, wenn man dort das 32KB Template gewählt hat. Da in der App ja direkt übertragen wird sollte die 32KB-Hex-Datei auch nirgendwo wieder auftauchen und daher keine Kompaitibilitätsprobleme verursachen.
Die Bluetooth Einstellungen sind teil der Hex-Datei, von daher ist es grundsätzlich richtig, das man sich mit jeder alten Datei auch wieder alte Einstellungen aufspielt.
Die Änderungen in dem Update jetzt betreffen aber in erster Linie das Template für 32KB, das unter der Überschrift „Neues Projekt (iOS)“ steht. Wer das Template mit 16KB verwendet hat oder ganz regulär über „Neues Projekt“ gegangen ist hat eine Hex Datei, die die selben Einstellungen enthält wie auch die aus dem kommenden Update.
Wurde die Hex-Datei mit einer älteren MakeCode Version erstellt können die Bluetooth Einstellungen abweichend sein, z.B. war früher ja immer das drücken von A+B+Reset nötig, um den Calliope per Bluetooth sichtbar zu machen. Aber grundsätzlich sollten auch die älteren Dateien, die über „Neues Projekt“ erstellt wurden kompatibel sein.
Wenn man allerdings eine Hex-Datei hat, welche ungewünschte Einstellungen hat und man diese umwandeln möchte reicht es nicht die nur in MakeCode zu laden - dabei werden in dem Projekt auch die Einstellungen geladen, welche in der Hex Datei verwendet sind. Man muss also zusätzlich entweder in die JavaScript Ansicht wechseln und den Code in ein neues Projekt kopieren, oder in die Projekteinstellungen, auf „Einstellungen als Text bearbeiten“ und dort dann alles unter „yotta“ löschen.
Noch ist das Update aber nicht mal als Beta verfügbar, von daher heißt es vorerst ohnehin erst einmal abwarten.
Beim übertragen wird die Hex Datei ausgelesen und nur der eigentliche Programmteil in den 256KB flash Speicher geladen. Der ganze overhead von MakeCode wird verworfen und vom mini weder gelesen, noch gespeichert.
Das übertragen macht der Bootloader und dieser macht tatsächlich nicht viel mehr als das aufspielen der HEX Datei auf den Interfaceprozessor.
In der HEX Datei ist das vollständige Programm, das direkt auf dem Prozessor ausgeführt wird. Die Hex-Datei ist also nicht nur ein Programm, das auf einem Betriebsystem auf dem mini installiert wird, sondern sie ist sozusagen selbst das ganze Betriebssystem. Und neben dem von Nepo und MakeCode genutzten System (ARM mbed OS) gibt es auch alternativen, wie z.B. „Lancester Runtime“, „RIOT OS“, „Zephyr“ oder „Apache Mynewt“.