Autor Tema: grabar pic con bootloader  (Leído 2185 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Agustina

  • PIC16
  • ***
  • Mensajes: 113
grabar pic con bootloader
« en: 12 de Mayo de 2007, 15:27:48 »
Hola! es mi primer post en este foro!  :-/  estaba buscando información acerca del bootloader de CCS y me encontré con este foro! muy bueno! me parece bastante completo!
Queria saber si alguien ha utilizado este bootloader ya que debo terminar mi trabajo de tesis para mi carrera y necesito un bootloader que sea confiable y entendible. Por lo que he leido no muchos usan este bootloader lamentablemente. El problema es que yo debo usar éste ya que todo mi trabajo esta escrito en C (CCS) y me exigen que asi sea, por lo que estoy obligada a usar este bootloader. Además, como el programa que debo cargar usa casi el 95% de la memoria flash, el bootloader debe ser muy pequeño.

El microcontrolador con el que trabajo es el 18F252. He seguido al pie de la letra las instrucciones del bootloader pero no logro hacerlo funcionar. Cuando utilizo el programa SIOW.EXE al tratar de grabar el micro con el programa llega al 4% y me da un error de TIMEOUT.

Alguien que haya trabajado con este bootloader me podria dar una mano? he intentado grabar el programa bootload.c tambien y me da el mismo error. Esoty utilizando una notebook con puerto usb y un cable usb-rs232 que funciona perfectamente, lo he usado en otras aplicaciones.


Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: grabar pic con bootloader
« Respuesta #1 en: 13 de Mayo de 2007, 02:03:20 »
La clave para que te funcione el bootloader es que las direcciones de memoria ocupadas por el bootloader no se pisen con las que utiliza el programa.
Para ello, nada mejor que echar un vistazo a la pantalla de "estadísticas" del compilador CCS. Ahí verás que tu programa ocupa desde xxxxxx hasta yyyyy (a veces son varios bloques discontinuos). Mira también lo mismo en el bootloader y comprueba que no se "pisan".
Si tienes que hacer modificaciones para que tu programa cambie de ubicación, tendrás que utilizar las directivas:

#build( reset=XXXX, interrupt=XXXX)
Establece la ubicación del vector de Reset y de Interrupciones.

#org XXXX,XXXX {}
Reserva un bloque de memoria y no lo utiliza.

#org XXXX,XXXX
Reserva un bloque de memoria e incluye dentro la siguiente función del programa.

Es probable que por más que lo intentes no consigas ajustar para que entre todo en la memoria (tu programa ocupa bastante) por lo que te recomiendo eches un vistazo al Tiny Bootloader


 

anything