Servus, ich habe da eine Frage und zwar habe ich erfolgreich den Bootloader Code von Kreative Chaos ins Atmel Studio 6.2 importiert und mit dem CAN-Debugger von Kreatives Chaos getestet. Dabei habe ich das original HEX file von Kreatives Chaos für den Debugger benutzt. Nun muss ich, da die Hardware etwas anders ist, die Software von Debugger etwas anpassen. Ich habe alles soweit hingekriegt außer die Stelle mit prog_char und zwar nach langer Suche im Internet habe ich so verstanden, dass man prog_char durch constant_char ersetzen darf. Bin mir aber nicht 100% sicher, dass es richtig ist. Somit darf man den Code: static prog_char s_help[] = "help"; So schreiben: static const char s_help[] = "help"; Ist das wirklich richtig? Ich habe leider Probleme mich mit dem CAN-Debugger zu verbinden und den Bootloader anzusprechen. Hat da jemand vielleicht schon was gemacht in Atmel Stufio 6.2? Gruss Micha
Hallo, hat niemand einen Plan oder einfach keine Lust zu antworten? Sorry das ich so direkt Frage! Gruss Micha
prog_char wird irgend ein Makro sein, daß das Attribute für "im FLASH ablegen" versteckt. Damit ist es zwar quasi auch "static const", aber eben doch nicht ganz das gleiche. Ich vermute mal die Software ist in C ohne ++, dann kann man die EmbededC Erweiterungen des GCC nutzen.
1 | static const __flash char s_help[] = "help"; |
sollte genau das machen, was geplant war: ein String im FLASH ablegen. Den kann man aber nur an Funktionen übergeben, die einen "char __flash *" oder einen universellen "char __memx *" erwarten. Zugreifen kann man dann auf die Daten ohne jegliche pgm_read*-Funktionen einfach per C Statements. In C++ gibt's das leider nicht. BTW, waren die CC-Sourcen nicht immer schon für GCC? Was mußte da portiere werden?
Bastler schrieb: > BTW, waren die CC-Sourcen nicht immer schon für GCC? Was mußte da > portiere werden? Das liegt wohl an einer neueren Version der AVR-Libc. prog_char gilt als deprecated. http://www.nongnu.org/avr-libc/changes-1.8.html
Bastler, Jürgen H. danke für die Rückmeldung. Der Fehler ist jetzt weg, jetzt kriege ich aber einen anderen Fehler. Siehe Bild. Kann jemand damit was anfangen? Gruss Micha
Mach es so.
1 | static const char s_help[] PROGMEM = "help"; |
@ Micha (Gast) >Der Fehler ist jetzt weg, jetzt kriege ich aber einen anderen Fehler. >Siehe Bild. Kann jemand damit was anfangen? Schon mal überlegt, dass man die Fehlermeldung aus dem Fenster als TEXT kopieren und hier reinkopieren kann?
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.