Woher weiß der Linker, welche Regions ins Hexfile kommen?

Gast #5524244
Lesenswert?
• ▲
▼
Hallo zusammen,

folgendes Problem:
Ich habe einen STM32F407VG mit "Core Coupled Memory" (CCM = spezielles 
RAM) an 0x10000000.
Mein Linker-File sieht so aus:
1
MEMORY
2
{
3
FLASH (rx)     : ORIGIN = 0x08000000, LENGTH = 1024K  
4
SRAM1 (xrw)    : ORIGIN = 0x20000000, LENGTH = 112K
5
SRAM2 (xrw)    : ORIGIN = 0x2001C000, LENGTH = 16K
6
CCRAM (xrw)    : ORIGIN = 0x10000000, LENGTH = 64K 
7
}
und
1
  .ccram :
2
  {
3
    . = ALIGN(8);
4
    *(.ccram)
5
    *(.ccram*)
6
    . = ALIGN(8);
7
  } >CCRAM

Das funktioniert aber nur, solange das CCM komplett ungenutzt ist. 
Sobald ich eine Variable ins CCM hineinlege, wird ein ELF-File erzeugt, 
das den ST-Link dazu bringt, den Bereich ab 0x10000000 flashen zu wollen 
(was natürlich nicht geht).
Wenn ich aus dem ELF-File ein HEX-File erzeuge, sehe ich darin auch 
einen Datenblock voller Nullen ab 0x10000000.

Ich muss also irgendwie dem Linker sagen können, dass der CCM-Bereich 
nicht ins ELF- bzw. HEX-File hinein soll. Ich dachte eigentlich, das 
geht über die Flags (xrw), aber das scheint's ja nicht zu sein, denn bei 
RAM und CCM sind die gleichen Flags angegeben.

Wie geht das denn? Danke.
Gast #5524938
Lesenswert?
• ▲
▼
Ein Schuß ins Blaue:

 .ccram (NOLOAD): ...

Mal geschaut, ob es nicht vollständigen Support 
(initialisierte/uninitialisierte Daten mit entsprendem Startupcode für's 
Kopieren/Löschen) für das CCRAM bereits gibt?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.