AT91SAM7, CrossWorks, non_init section

Gast #1544660
Lesenswert?

Hallo,

ich möchte eine Variable beim Neustart des AT91SAM7 nicht neu 
initialisieren. Meines Wissens nach kann man dies unter CrossWorks ARM 
1.7 so lösen, in dem die Variable in die "non_init" section gemappt 
wird.
1
int x  __attribute__((section(".non_init")));

Wenn ich das Projekt kompiliere bekomme ich folgende Fehlermeldung:

"cyclic memory section dependency with section .fast_run"

Hat da jemand von euch schon Erfahrungen? Muss ich eventuell noch etwas 
im flash_placement file ändern?

Danke.

Gruss
Nobbie
Gast #1544839
Lesenswert?

Hi

schau mal in dein Verzeichnis von Crossworks: "..\targets" nach,
da sind alle "Placements Files" enthalten.

Deine ".non_init" Section ist laut meinen Files nur für Externen RAM (S 
oder SD) gesetzt.

Entweder du verschiebst diese oder erstellst dir eine eigene im internen 
RAM.

mfg

Stephan

PS: Schau auch mal bei Crossworks unter "Linking and section placement" 
in der Hilfe nach.
Gast #1544866
Lesenswert?

Hi Stephan,

ich habe mir eine separate section im internen SRAM angelegt:
1
- <MemorySegment name="Internal SRAM;SRAM;SDRAM;DRAM">
2
  <ProgramSection size="0x3C" load="No" name=".vectors_ram" /> 
3
  <ProgramSection alignment="4" load="No" name=".fast_run" /> 
4
  <ProgramSection name=".non_init2" load="No" alignment="0x4" /> 
5
  </MemorySegment>
6
  </Root>

alleine durch das anlegen der section ".non_init2" generiert mit 
CrossWorks die Fehlermeldung: "cyclic memory section dependency with 
section .fast_run"

Hast du/ihr eine Idee, was da schief läuft?

Danke und Gruss
Nobbie
Gast #1553966
Lesenswert?

Hi Stephan,

bis jetzt noch nicht. Ich habe das Problem jetzt auch erst mal aus 
zeitlichen Gründen nach "hinten gerückt".

Die Fehlermeldung ist also nach wie vor vorhanden. Sobald ich wieder 
mehr Zeit habe, will ich mich damit ausführlicher beschäftigen 
(Supportanfrage bei Rowley).

Solltest du zwischenzeitlich eine Lösung gefunden haben, dann bitte mal 
posten.

Danke und Gruss
Nobbie

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren