Configurar libreria de microchip MCHPUSB para que funcione con bootloader

hola que tal. estoy tratando de hacer funcionar la libreria de microchip "Device - MCHPUSB - Generic Driver Demo" que esta escrita en c18 para que funcione con bootloader ya que no dispongo de programadora. el bootloader ya lo tengo instalado en el pic. el problema es que no se como configurar esa libreria para que me la tome el bootloader. necesito a alguien que conosca el tema si me puede ayudar a configurar esa libreria. gracias ...
 
Si ya tienes el booloader en el pic. ¿cual es tu duda?

Si no tienes programadora de pics. ¿como es que ya tienes el bootloader en el pic?

En caso que alguien te haya grabado el bootloader en el pic, solo te resta saber como subir programas a traves del USB Booloader de microchip. que supongo es tu duda. Si esta es tu duda debes tomar en cuenta que el booloader grabado en tu PIC, ocupa memoria y por tanto debes hacer que los programas que tu generes, Inicien en otra dirección (generalmente después de donde termina el programa del bootloader) en mi caso todos mis programas quedan organizados para que operen a partir de la dirección $1000, yo que ocupo el compilador de lenguaje basic (proton IDE), debo avisarle al compilador usando la siguiente linea de comando:

Declare PROTON_START_ADDRESS = $1000

y con esto el ejecutable .HEX queda debidamente configurado, para ser usado por el bootloader de microchip. Obviamente cada compilador tiene su propio comando para "avisar" o reorganizar los programas. Pero es obligado tomar en cuenta este punto, para hacerlos compatibles con el bootloader.

Yo comenze con un simple programa BLINK (encender/apagar led) para probar tanto mi bootloader, como lo necesario a contemplar dentro de mi compilador....Yo te recomendaría lo mismo, y ya después desarrollaras cosas mas complejas.

Espero te sirva mi comentario. Yo estoy mas que satisfecho con el booloader ya que en verdad ahorro mucho tiempo y para los que no tienen programador, es una opción muy versátil.

Saludos
 
Como dice miborbolla, precisas usar un linker script para que al grabar tu programa no escriba el sector de memoria donde está el bootloader, y también cambiar usar un pseudo-vector de reset (el vector de reset lo usa el bootloader, si detecta que no hay un pedido de cargar un nuevo programa entonces salta a ese vector de reset virtual y ahí empieza a correr tu programa).

Acá hay una buena guía:
http://www.picprojects.net/usbbootloader/index.html
Mira la sección "Application Software for usage of the Bootloader".

Hace un par de años no uso pics así que estoy un poco oxidado, y mi software/librerías de usb instaladas deben ser obsoletas. Pero buscá en los programas de ejemplo los archivos .lkr que dicen
rm18f4550 - MCHPUSB Bootload.lkr (en mi vieja instalación está en /Microchip Solutions/USB Device - CDC - Serial Emulator/CDC - Serial Emulator

En esos archivos se ve que aparece las líneas
Código:
CODEPAGE   NAME=boot       START=0x0            END=0x7FF          PROTECTED
CODEPAGE   NAME=vectors    START=0x800          END=0x0x829        PROTECTED

La primera define la zona de memoria del bootloader como protegida (el linker o enlazador que genera el .hex final no escribirá nada allí siguiendo esa directiva) y el 2do hace que el vector de reset de la aplicación se escriba en 0x800, que es el reset "virtual" que comentaba más arriba.
 
Atrás
Arriba