Angenommen, ich habe ein sehr einfaches Programm, das auf einem ARM Cortex M0 + -Prozessor einwandfrei funktioniert. Wie viel muss ich ändern, damit es auf einem ARM Cortex M4-Prozessor funktioniert, vorausgesetzt, sie stammen beide von derselben Firma und ich habe den neuen Cores-Header importiert.
Mir fällt einfach kein Grund ein, warum es nicht funktionieren sollte. Sie verwenden einen ähnlichen Befehlssatz. Ich meine, der M4 hat einen viel umfangreicheren Thumb-2-Befehlssatz als der M0+. Meiner Erfahrung nach behalten Unternehmen dasselbe Namensschema bei, wenn sie ihre ARM-Geräteheader erstellen.
Die CPU sollte Ihnen keine Probleme bereiten, da Sie sagen, dass der Befehlssatz eines M4 eine Obermenge des M0/M0+-Befehlssatzes ist. Beachten Sie, dass das Timing unterschiedlich sein kann, sodass das auf Beschäftigt-Warten basierende Timing möglicherweise nicht gleich funktioniert.
Peripheriegeräte können ein PITA sein, ich würde nicht davon ausgehen, dass sie gleich sind, es sei denn, die Datenblätter lesen dasselbe.
Wenn Ihre Software im ASM-/kompilierten Format vorliegt, funktioniert sie (da Cortex M4 eine Obermenge von Cortex M0 ist), aber suboptimal.
Wenn Ihre Software in C/C++ ist (im Wesentlichen kann sie neu kompiliert werden), müssen Sie wählen:
Beachten Sie jedoch, dass Peripheriegeräte möglicherweise nicht vollständig kompatibel sind, insbesondere wenn der Hersteller sich nicht um eine solche Kompatibilität kümmert. Wenn der Hersteller darauf achtet und Ihre Software reservierte Bits von Reset-Werten ändert, funktionieren Peripheriegeräte möglicherweise nicht wie erwartet.
Majenko
Flippiger Kerl
sternenblau
Chris Stratton