Estoy empezando con MSP430 y Code Composer Studio (CCS).
Quiero hacer un proyecto de ensamblaje puro. En este momento, tengo un programa "hola mundo" que no hace más que encender un LED en el Launchpad MSP430F5529.
Sin embargo, cuando ejecuto este programa en el depurador, la ejecución comienza en la dirección 0x0000 en lugar de en mi punto de entrada designado, llamado RESET (0x10000). Puedo ver que la PC está configurada inicialmente a 0x0000. Si lo configuro manualmente en la ventana de visualización para REAJUSTAR, el programa se ejecuta como se esperaba.
He declarado que RESET es global y he configurado la opción del vinculador para que RESET sea el punto de entrada.
Supongo que tengo un problema con la configuración del depurador o con el cargador (de arranque), pero podría estar totalmente en el camino equivocado.
.cdecls C,LIST,"msp430.h" ; Include device header file
;-------------------------------------------------------------------------------
.text ; Assemble into program memory
.retain ; Override ELF conditional linking
; and retain current section
.retainrefs ; Additionally retain any sections
; that have references to current
; section
;-------------------------------------------------------------------------------
.global RESET
RESET mov.w #__STACK_END,SP ; Initialize stackpointer
StopWDT mov.w #WDTPW|WDTHOLD,&WDTCTL ; Stop watchdog timer
;-------------------------------------------------------------------------------
; Main loop here
bis.b #01h, &P1DIR
bis.b #01h, &P1OUT
;-------------------------------------------------------------------------------
; Stack Pointer definition
;-------------------------------------------------------------------------------
.global __STACK_END
.sect .stack
;-------------------------------------------------------------------------------
; Interrupt Vectors
;-------------------------------------------------------------------------------
.sect ".reset" ; MSP430 RESET Vector
.short RESET