Im Hauptprogramm (z.B. main.s43) werden globale Variablen als PUBLIC deklariert und definiert. Mit EXTERN werden Funktionen aus den Modulen eingebunden. Struktur Hauptprogramm (main.s43): include "msp430x11x1.h" #include "local_header.h" ; ------------------------- Externe Funktionen -------------------------------- EXTERN function1; EXTERN function2; ;------------------------- Variable deklarieren ------------------------------- PUBLIC variable1; variable_01 equ 202h; ... weitere Variable ;------------------------------ Progmm starten -------------------------------- ORG 0xxxxh ; Program Start (Adresse ist je nach Prozessortyp verschieden) ; Anfang Code Memory MSP430F149 ;------------------------------------------------------------------------------ ; Initialisierungsteil RESET mov.w #0xxxxh,SP ; Stack initialisieren mainloop ; hier kommen alle Anweisungen zum Programmablauf jmp mainloop ; ;****************************************************************************** ; Interrupt Vectors Used MSP430x11x1 ;****************************************************************************** ORG 0FFFEh ; MSP430 RESET Vector DW RESET ; ORG 0FFF0h ; Timer_A CCR[1/2] Vector DW HND_CCIFGx ; ORG 0FFF2h ; Timer_A0 Vector (Interrupt Vektor ) DW HND_CCIFG0 ; ORG 0FFE4h ; Port 1.x Interrupt Vektor DW P1_ISR ; ORG 0FFE6h ; Port 2.x Interrupt Vektor DW P2_ISR ; ;****************************************************************************** ;Ende main.s43 In einem lokalen Header-File (local_header.h) werden Namen für die Register definiert : #ifndef __local_header #define __local_header ;************ CPU Register ********************************************** ; #define Reg_04 R4 // #define Reg_05 R5 // #define Reg_06 R6 // #define Reg_07 R7 // #define Reg_08 R8 // #define Reg_09 R9 // #define Reg_10 R10 // #define Reg_11 R11 // #define Reg_12 R12 // #define Reg_13 R13 // #define Reg_14 R14 // ;#define Reg_15 R15 // ; ; End of Header-Modul #endif /* #ifndef __local_header */ ;Ende local_header.h In einem Programmodul (modul_01.s43) werden die externen Funktionen definiert, als PUBLIC deklariert und die im Hauptgramm (main.s43) definierten globalen Variablen verwendet. Als entscheidend hat sich der Befehl "RSEG CODE" erwiesen. #include "msp430x14x.h" #include "local_header.h" MODULE modul_01 RSEG CODE ;---------------------- Externe Variable deklarieren -------------------------- EXTERN variable_01; ;------------------- PUBLIC Funktionen in dieser Datei ------------------------ PUBLIC function1 PUBLIC function2 ;****************************************************************************** function1 ... Assembler-Code; ret ;****************************************************************************** function2 ... Assembler-Code; ret ;****************************************************************************** ... weitere Funktionen ENDMOD END ; Ende modul_01.s43