Irgendein Elektrotechniker hat mir mal gesagt, dass jeder ARM M3 Prozessor gleich geflasht werden kann, egal von welchem Hersteller er kommt.
Ich nehme an, er meinte die Verwendung von JTAG, oder gibt es einen anderen Weg?
Übrigens, ich möchte einen leeren ARM-Prozessor ohne Bootloader flashen.
Ich nehme an, er meinte die Verwendung von JTAG, oder gibt es einen anderen Weg?
Wahrscheinlich nicht. ARM hat seinen eigenen Debugging-Bus-Standard – SWD (Single Wire Debug), der sehr gut spezifiziert ist. JTAG hingegen ist lediglich ein elektrischer Standard und ein Standard auf Schieberegisterebene, und es liegt an den Geräteherstellern, JTAG-Endpunkten und -Aktionen eine Bedeutung zu geben.
SWD-Programmierer sind für <5€ zu haben. Suchen Sie nach Produkten mit der Bezeichnung "STLink v2-kompatibel" oder so. Das ST im Namen rührt daher, dass sie auf dem Protokoll basieren, dass STmicro USB-zu-SWD-Adapter zwischen Hostrechner und Adapter sprechen, aber da sie nur SWD „transportieren“, funktionieren sie mit jedem SWD-kompatiblen Mikrocontroller.
Auf den meisten Entwicklungssystemen möchten Sie OpenOCD als "Treiber" für diese Geräte verwenden, damit Sie Bilder einfach flashen können (entweder direkt über OpenOCD oder mit zB GDB's load
). Wenn Sie mit einem absurden Betriebssystem festsitzen, das selbst für generische Geräte spezielle Treiber benötigt, müssen Sie wahrscheinlich die Tools von ST installieren.
Übrigens, ich möchte einen leeren ARM-Prozessor ohne Bootloader flashen.
Ja, das klingt nach einem klassischen Fall für SWD – ARM bietet Hardware dafür in seinen Kernen an, und die meisten Hersteller entscheiden sich dafür, diese zu verwenden und Pins zuzuweisen.
Beachten Sie auch, dass die meisten Hersteller (einschließlich ST) ihre "leeren" ICs mit einer Art Bootloader ausliefern, über den Sie Firmware über eine serielle Schnittstelle oder sogar USB in das Gerät laden können – suuuuper praktisch für die Herstellung.
Für ein bisschen Diskussion über SWD empfehle ich eigentlich (aus reinem Lesespaß) PoC||GTFO 0x10, S. 26 , das mit einer Einführung in die Debugging-Infrastruktur von ARM und SWD als Protokoll beginnt und dann weitergeht um zu erklären, wie man SWD-verbundene ARMs als ausgeklügelte IO-Expander anstelle von unabhängigen MCUs verwendet.
CHendrix