hallo Leute, weiss jemand wie man Konstanten an bestimmte Zellen im Flash (PIC32) speichern kann? Gruß
wäre dann sehr dankbar wenn du es mir verraten kannst! Gruß
Dazu müsstet du erst mal damit rausrücken ob du Assembler C oder Basic benutzt um das Ding zu programmieren, meine Kristallkugel ist nämlich seit 5 Jahren in der Werkstatt und die bekommen das nicht hin ;-)
ich habe Pic32 erwähnt, also microchip, und wird mit C progrtammiert
o.k. vielleicht hilft dir das hier weiter http://www.sprut.de/electronic/pic/grund/eeprom.htm obwohl es sich noch auf die 16er bezieht dürfte die stategie noch die Gleiche sein nur mit längere Adresse halt im besonderen solltest du das Datascheet des prozessors konsultieren. In Assembler ist ein dirkter Speicherzugriff normal nicht so in Hochsprachen Basic böte noch Peek und Poke In C ist das Schon Komplizierter hier sorgt sich normaler weise der Compiler um soetwas. Die Hintertür ist die Verwendung von Zeigern in welche man direkt die Adresse schreibt. aber vorsicht der Compiler weiß davon nichts und das kann zum Programmbsturz führen. ansonsten bliebe Inline-Assembler
Der Linker kann's auch, jedenfalls der GNU-Linker vom C32. Muss man nur im Linker-Script rumfroschen, dann kann man dafür sorgen, dass die Daten exakt an der richtigen Stelle liegen und der Linker nicht Sonstwas dort plaziert. Ist halt eine eigene "Programmiersprache", dieses Zeug vom Linker-Script.
Genau, der Linker ist es, kriege aber irgendwie die .rodata nicht auf meiner section verschoben. Solle eigentlich nur die Firmware-Version (const) für meinen Bootloader sein, wird aber zusammen mit der App .rodata platziert. Gruß
Wird vermutlich einfacher, wenn du diese Variable in einer separaten Section plazierst. Siehe "__attribute__" im GCC Manual. Musst dann im Linker-Script nur diese spezielle Section an die richtige Stelle legen, nicht .rodata.
jep, das ist es _attribute_ ((section ("BOOTLOADER"))), muss nur an der richtigen Stelle platziert. vielen dank an beide. Gruß
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.