Hi, wie definiere ich mit der IAR ARM Workbench einen initialisierten Array im Flash an einer bestimmten Position? Also so was in der Art:
1 | const p[4] @ 0x4000 = {0x00,0x01,0x02,0x04}; |
Gruß Sam
|
Forum: Mikrocontroller und Digitale Elektronik IAR Array im FlashHi, wie definiere ich mit der IAR ARM Workbench einen initialisierten Array im Flash an einer bestimmten Position? Also so was in der Art:
Gruß Sam Hallo Jörg, gut beobachtet, aber am Datentyp liegts nicht. Also nochmal. Wie definiere ich mit der IAR ARM Workbench einen initialisierten Array im Flash an einer bestimmten Position? Also so was in der Art:
Gruß Sam Sam schrieb: > Wie definiere ich mit der IAR ARM Workbench einen initialisierten Array > im Flash an einer bestimmten Position? Dein Compilerhandbuch bzw. die Online-Hilfe weiß da nichts drüber? >
Gibts eine Fehlermeldung wenn du das versuchst? Die Syntax sieht ja auf den ersten Blick nicht so schlecht aus. Wie würde das denn ausschauen, wenn es kein Array wäre? Wo kommt denn dann die Adressangabe hin?
oder geht das überhaupt nicht? Da gibts zwei Möglichkeiten: 1. Segment definieren im Linke file dann #pragma constseg=MYSEGMENT const unsigned char Test; #pragma constseg=default 2. const unsigned char Test @ 0xa190 = 0x23; Gruss Peter Habs grad mit array probiert const unsigned char Esel[2] @ 0xa190 = {0x23, 0x56}; geht so..... Peter Ziemlich sauber wäre es, wenn Du den gewünschten Speicherbereich (section) für das Array im Linker-Script definierst und dann irgendwie mit einem Pragma oder so im C-Code festlegst, dass das Array in dieser Sektion abgelegt werden soll. In der Doku zu Deinem Compiler/Linker sollte stehen, wie sowas geht. Ich kann es leider auch nicht aus dem Ärmel schütteln, sonst hätte ich das gerne getan. Hallo Karl Heinz, der Compiler gibt mir folgende Fehlermeldung: Error[Be022]: location address not allowed for initialized variables (writeable variables without the __no_init attribute) Zur Meldung habe ich folgenden Link: http://supp.iar.com/Support/?note=15461&from=search+result Wenn ich nun exakt nach 'solution, part 3' vorgehe (also mit __root usw.), dann bekomme ich genau den gleichen Fehler, nämlich Error[Be022]. Gruß Sam @Peter: Kann ich ein Segment über Project->Options definieren? Falls ja, wie geht das? @Johnny: Ich les mir jetzt mal die Doku durch und hoffe was zu finden. Danke für die Hilfe. Gruß Sam 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
Noch kein Account? Hier anmelden.
|
|