AnsweredAssumed Answered

Asesoria sobre instrucciones ensamblador en Codewarrior

Question asked by Oscar Niño on May 19, 2015

Que tal, estoy buscando una forma de insertar código ensamblador en codewarrior específicamente la función ORG para colocar el contador del programa en una posición especifica. Esto es porque quiero colocar código de un programa en un bloque especifico de memoria. Estoy intentando hacer un Bootloader pero en el ejemplo que he visto no se como posicionan el código del Bootloader en la posición protegida. He visto que lo que se hace es redireccionar los vectores de interrupción todo esto entiendo que lo hacen al redireccionar el vector de reset y el NVOPT. sin embargo en el ejemplo que vi solo se que envían el código de un lugar a otro a través de la instrucción goto y las etiquetas pero como puedo saber en que dirección esta la etiqueta o mas allá de eso como puedo yo poner una etiqueta digamos en la dirección 0xFFC0 por decir un ejemplo y después poner otra etiqueta en la dirección 0x80C0 para poner en una el código usuario y en la otra el código de bootloader. Por esta razón estaba buscando la manera de insertar la función ORG en codewarrior ya que lo que entiendo es que esta pone el contador del programa en la posición que quiero. he probado con:

 

asm org 0xXXXX;

__asm org 0xXXXX;

asm {org 0xXXXX;}

asm (org 0xXXXX;)

 

y no he obtenido resultado me marca siempre un error si agrego la librería iostrem.h me marca error en otra la ccstddef.h

 

Hi, I'm looking a way to use a assambler language into codewarrior. Actually the instruction ORG because this instruction set the Program Couter at the address that I indicate. I've tried with some diferents modes like:

 

asm org 0xXXXX;

__asm org 0xXXXX;

asm {org 0xXXXX;}

asm (org 0xXXXX;)

 

but they don't work. Doing this I try to make a bootloader. I've read the datasheet of MCU MC9S08QE32 which is that I use and a example that I've uploaded(just main). Maybe I need to be more specific; I don't know how to write the Bootloader code at the block protected because when I check the .map file the code wroten is in the unprotected area(0x800-0xF1FF) and the protected area is 0xF200 to 0xFFFF and this file don't show me that any code is on that block that's why I'm looking for use the instruction ORG, to write the bootloader on this area. I've redirected the interruption vectors through the NVPROT and know(well I think so) how to receive data from the SCI and program, erase and check in the flash on background debug mode.anybody could help me.

Original Attachment has been moved to: main.c.zip

Outcomes