Ich entwickle eine eingebettete Software für mein benutzerdefiniertes Board (LPC1788). Mein Ziel ist es, Fähigkeiten und Erfahrungen in Bezug auf C-Programmierung für eingebettete Systeme zu verbessern.LPC1788 - Bootloader und shared library
Ich habe einen USB-Bootloader implementiert, der die Benutzeranwendung startet, falls sie existiert. Ansonsten wird es verwendet, um die Anwendung einfach über USB zu laden. Mein USB-Bootloader verwendet eine statische Bibliothek board.a
und auch die Benutzeranwendung.
Gibt es einen Trick, wie board.a
referenziert wird, die in die binäre von der Bootloader von der Benutzeranwendung verbunden wurde?
Mit anderen Worten, ich möchte Flash-Speicherplatz zu optimieren, indem Sie den Code board.a
nur einmal eingeben.
NB: Ich benutze LPCXpresso (NXP MCU Tools/GNU Builder) Machen es Arm-ohne-EABI-gcc (GNU ARM Embedded Toolchain)
Ich glaube nicht, dass es eine einfache Möglichkeit gibt, es zu tun, aber angenommen, dass Sie in Zukunft die Bibliothek board.a verbessern werden, so dass auch die userApp verbessert wird. Sie können die neue App mit der verbesserten Bibliothek hochladen, ohne den Bootloader zu berühren. Das ist die normale Arbeitsweise - ich meine: Du flashst den Bootloader nur einmal und die App einmal oder mehrmals. Ich denke, dass das Teilen der Bibliothek keine gute Idee ist. – linuxfan
Ja, Sie haben einen Grund, board.a zu aktualisieren, um den Bootloader zu aktualisieren (nicht normales Arbeiten). Ich wollte nur den Platz optimieren. Danke :) – Abderrezak
In der Theorie sehe ich keinen Grund, warum das nicht funktionieren würde. Aber es ist abhängig von Ihrer Toolchain (Compiler/Linker), also bearbeiten Sie Ihre Frage und fügen Sie Details dazu hinzu. – user694733