MSP430 System Memory Map in Assembler Files nutzen?

Gast #5355227
Lesenswert?
• ▲
▼
Hallo MSPler,

wie kann ich die System Memory Map, die in den lnk_msp430xxxx.cmd-Files 
steht, in Assembler Files nutzen? Wenn ich z. B. RAM oder FLASH direkt 
adressieren will, muss ich die Adressen kennen. Typisch vielleicht: 
Löschen des gesamten RAMs oder Checksum über das gesamte FLASH.

C ist leider fast eine Fremdsprache für mich, und von dem, was da steht, 
verstehe ich weniger als von Böhmischen Dörfern. (Die würde ich ja 
wenigstens noch in Wikipedia finden...)

Ziel ist also das händische
1
RAM_Start  .equ    0x200
2
RAM_Size  .equ    1024
3
RAM_End    .equ    RAM_Start + RAM_Size
automatisch durch die Projekteinstellung zu ersetzen. Ist bestimmt ganz 
einfach für viele von euch...

Als Beispiel die lnk_msp430f2012.cmd. Ob noch weitere Files dazu 
gehören, kann ich nicht beurteilen. In den Zeilen
1
    RAM                     : origin = 0x0200, length = 0x0080
2
und
3
    FLASH                   : origin = 0xF800, length = 0x07E0
steht alles, was zurzeit für mich relevant ist.

DZDZ
Angehängte Dateien:
Gast #5355882
Lesenswert?
• ▲
▼
CCS6, --- hat's richtig erkannt.

Ich vermute, es hilft weder denen, die CCS kennen, noch denen, die es 
nicht kennen, weiter, aber ich poste mal etwas Code-Schnipsel aus der 
lnk_msp430xxxx.cmd:[code]

/*********************************************************************** 
*****/
/* Specify the system memory map 
*/
/*********************************************************************** 
*****/

MEMORY
{
    SFR                     : origin = 0x0000, length = 0x0010
...
    RAM                     : origin = 0x0200, length = 0x0800
    INFOA                   : origin = 0x1000, length = 0x0400
    FLASH                   : origin = 0x8000, length = 0x7FDC
...
    RESET                   : origin = 0xFFFE, length = 0x0002
}

/*********************************************************************** 
*****/
/* Specify the sections allocation into memory 
*/
/*********************************************************************** 
*****/

SECTIONS
{
    .bss        : {} > RAM                  /* Global & static vars 
*/
    .data       : {} > RAM                  /* Global & static vars 
*/
...
    .text       : {} > FLASH                /* Code 
*/
   .reset       : {}               > RESET  /* MSP430 Reset vector 
*/
}(/code]

Mir ist zwar klar, was da gemacht wird, aber die Syntax ist mir 
rätselhaft und wie ich die Labels, Konstanten oder wie immer man das 
nennen würde, die ich für Assembler brauche, kann ich gar nicht daraus 
schließen.
Gast #5355884
Lesenswert?
• ▲
▼
Die Code-Tags haben nicht funktioniert, wie man sieht - keine Ahnung, 
warum nicht. Ich fühle mich unschuldig. Mal noch ein Versuch:
[code]
   Zeile mit Code
[/code)
Lt. Vorschau geht immer noch nicht.

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.