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

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