Hallo zusammen, Ich arbeite derzeit an einem kleinen Projekt für das ich verschiedene kalibrier und einstelldaten benötige. Ich arbeite mit dem atsam3x8e und programmiere in atmel studio in c. Zunächst ein kleines Beispiel. Es wird eine temperaturmessung über einen ptc durchgeführt. Hierzu werden die digit-temperatur umrechnungswerte in einer tabelle gespeichert. Gibt es nun die nöglichkeit verschiedene ptcs anzuschließen, sind auch die tabellenwerte für jeden ptc unterschiedlich. Nun würde ich dem programm gerne sagen die tabelle liegt an der adresse xyz ohne dass an dieser adresse zum zeitpunkt des kompilierens die tatsächliche tabelle vorhanden ist. Dies ist ja ohne weiteres über einen pointer möglich. Die tabelle würde ich dann gerne zu einen späteren zeitpunkt in form eines textfiles oä. an das bereits kompilierte programm anfügen und dann das komplette programm auf den yc laden. Gibt es hierzu schon projekte oder wird das eine ewige bastellösung?
Du kannst deine Kalibrierwerte als Binärdatei abspeichern, in ein Objectfile konvertieren und dann mit den anderen Objekten zu deinem Binary zusammenlinken. Das wird gelegentlich mit Fonts oder Bildern gemacht. Forensuche hilft.
Viele MCs haben zu diesem Zweck einen EEPROM-Bereich, in dem die Applikation Daten ablegen kann. Notfalls kann man auch dafür eine Flash-Page reservieren, aber die Programmierung ist deutlich komplizierter. Bei manchen MCs muß die Applikation dafür sogar angehalten werden (100ms .. 10s). Über ein Programmiergerät lassen sich nur umständlich Daten zum Programm hinzufügen. Man muß den alten Inhalt erst auslesen, mit einem Editor die Daten hinzufügen, den Chip löschen und neu programmieren.
Mal ein kleines Beispiel für "Daten im Flash ablegen" Beitrag "Re: Daten ins Flash speichern mit dem STM32" Die Daten werden dann z.B. mit UART übertragen.
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.