Forum: Mikrocontroller und Digitale Elektronik MSP430 System Memory Map in Assembler Files nutzen?


von Der Zahn der Zeit (Gast)


Angehängte Dateien:

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

von nix Versteher (Gast)


Lesenswert?

Welche IDE oder welcher Compiler/ASM?

von --- (Gast)


Lesenswert?

Code Composter

von Der Zahn der Zeit (Gast)


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.

von Der Zahn der Zeit (Gast)


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.

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.