Gast
#1598358
Hallo, ich stehe gerade vor folgendem Problem und würde mich über einige Anregungen freuen und zwar entwickle ich gerade auf einem ARM Cortex M3, und zwar ein STM32 und bin gerade dabei einen schon vorhandenen Bootloader auf eine kryptographisch gesicherte Version umzubauen also AES256 und HMAC mit SHA1, der Krypto Code und alles laufen auch aber jetzt würde ich das ganze gerne dahingehend optmieren, dass Applikation und Bootloader die Kryptofunktionen gemeinsam nutzen und in Zukunft vielleicht auch noch SPI oder sonst was von der Treiberschicht. Denn die Krypto Funktionen sind ca 6KB groß und die will ich nur ungern doppelt hineinkompilieren weil sie die Applikation auch braucht und die sich eh nicht mehr ändern werden. Soweit so gut, nur wie geht das am einfachsten? Was mir mal so einfallen würde: 1) Beides gemeinsam kompilieren, Sections für Bootloader+Lib und Hauptapplikation, könnte dann auch den NVIC Table sharen. Gefällt mir recht gut, aber wie mach ich das mit den Sections für initialisierte Variablen, nicht initialisierten Variablen, globalen Variablen, die müssen ja für den Bootloader+Libs teil auch wenn ich an der Applikation schraube immer unverändert bleiben. Für den Code geht das ja einfach, aber globale Variablen und der Initialisierungsteil machen mir da Sorgen? 2) getrennt kompilieren, so ca wie ich es jetzt mache, dann müsste ich aber auch irgendwie schauen, dass sich globale Variablen nicht überschneiden, die Initialisierung könnt ich mir sparen weil beim Bootloader teil die globalen Sachen eh immer neu initialisiert werden, vielleicht wärs auch eine Optione alle globalen Variablen bei der Krypto Lib zu vermeiden, macht vieles einfacher. Aber wie sag ich dann meiner Hauptapplikation beim Linken wo sie die Funktionen findet? würde mich über einige Anregungen dazu freuen, mfg thomas