Asesoria sobre instrucciones ensamblador en Codewarrior

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Asesoria sobre instrucciones ensamblador en Codewarrior

1,340 次查看
oscarniño
Contributor III

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

标签 (1)
0 项奖励
回复
2 回复数

815 次查看
TICS_Fiona
NXP Employee
NXP Employee

Would you please describe the problem in English? So that more  engineers could understand it. Thank you.

Fiona Kuang

Technical Information & Commercial Support

0 项奖励
回复

815 次查看
oscarniño
Contributor III

Thanks for reply I have changed my question in English. Now I know a little bit more about how to make a bootloader but I still have troubles to finish it. In particular with set bootloader code on protected area as I have mentioned above.

0 项奖励
回复