Autor Tema: Necesito hacer bootloader USB con Software de PC propio  (Leído 4853 veces)

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

Desconectado Menta

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 607
Necesito hacer bootloader USB con Software de PC propio
« en: 11 de Abril de 2010, 05:18:34 »
Me interesa usar la técnica del bootloader para cargar un .hex en un pic18F4550.
Es para una aplicación comercial, y requiero que un programa que yo diseñado por mí en VB pueda, entre otras cosas, pasárselo por usb...
Es decir, no quiero usar el PDFSUSB.exe ni nada por el estilo... a no ser que lo pueda usar por líneas de comando, es que necesito que sea transparente y que el usuario para actualizar enchufe, apriete un botón y listo... el asunto es que no sé por dónde empezar. Qué me recomiendan?
Existe algún bootloader open source? o una AN para este fin?
me interesan ejemplos, links de lectura, webs, cualquier material es bien recibido.
Muchas Gracias

EDITO: a ver si me explico mejor con lo de open source... además de poder comandarlo en forma transparente desde la pc, necesito programarlo en SDCC y según lei en el hilo Bootloader USB para PIC18F4550 a full. de picmouse sólo funciona con el C18 de microchip y lo mismo debe ocurrir con el de CCS o no? por eso necesito saber de alguno de código libre o en su defecto saber más o menos como encarar hacerlo uno mismo, no encuentro una AN al respecto  :(
« Última modificación: 11 de Abril de 2010, 06:05:00 por Menta »
     

Desconectado Manofwar

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 156
Re: Necesito hacer bootloader USB con Software de PC propio
« Respuesta #1 en: 11 de Abril de 2010, 09:33:14 »
Hola Menta:

Creo que no has leído por completo ese hilo. Mira esta respuesta, es el 5º o 6º post, dice qué hay que hacer para que funcione en CCS

hola picmouse, ya logre hacer lo que queremos, hacerlo con ccs
 ahora,lo unico que tenemos que hacer, es no grabar nada de nuestro programa en las direcciones de la 0x00 hasta la 0x7FF, ya probe varios programas y funcionan que dan miedo, aqui lo unico que tenemos que anexar a nuestro programa es:

Código: [Seleccionar]

#define LOADER_END 0x7FF
#define LOADER_SIZE 0x6FF
#build(reset=LOADER_END+1, interrupt=LOADER_END+9)
#org 0, LOADER_END {} // nothing will replace the bootloader memory space
// END OF bootloader definition



aqui os pongo un ejemplo que funciona muy bien

Código: [Seleccionar]
#include <18F2550.h>
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay(clock=48000000)
#include <usb_cdc.h>
#define LOADER_END 0x7FF
#define LOADER_SIZE 0x6FF
#build(reset=LOADER_END+1, interrupt=LOADER_END+9)
#org 0, LOADER_END {} // nothing will replace the bootloader memory space
// END OF bootloader definition


void main() {

usb_cdc_init();
usb_init(); //inicializamos el USB

while (!usb_cdc_connected()) {}
while (true)
{
usb_task();
if(usb_enumerated())
{
usb_cdc_putc(0x41);
}
}
}

solo hay que anexarlo a cualquier programa y chevere, cuando vayamos a programarlo con el PDFUSB nos va a salir una advertencia, le decimos que no, y lo programamos, listo, saludos y espero les haya ayudado

NOTA: solo una aclaracion, al parecer con el metodo que menciono, no podemos configurar los FUSES, se quedarian como el programa del bootloader lo tiene


Y en este enlace hablan de cómo hacer un bootloader con el SDCC

http://sourceforge.net/apps/trac/sdcc/wiki/Compile%20and%20link%20a%20bootloader%20using%20SDCC

Mi inglés es pésimo, pero me parece ver similitudes con la forma de hacerlo en CCS.

Saludos
« Última modificación: 11 de Abril de 2010, 09:36:35 por Manofwar »
Saludos desde Almería, España

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Necesito hacer bootloader USB con Software de PC propio
« Respuesta #2 en: 11 de Abril de 2010, 09:42:04 »
Revisa el siguiente bootloader que ha comentado felixls en otro post, puede ser de mucha utilidad:

http://vasco.gforge.enseeiht.fr/

Edit: El anterior es solo para Linux  :? Mejor este:

http://www.diolan.com/pic/bootloader_dwn.html?zenid=7e6216f3a88d0dbdd445ebaeb5b8a90c

 :mrgreen:

Saludos!
« Última modificación: 11 de Abril de 2010, 09:50:27 por Suky »
No contesto mensajes privados, las consultas en el foro

Desconectado Menta

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 607
Re: Necesito hacer bootloader USB con Software de PC propio
« Respuesta #3 en: 11 de Abril de 2010, 10:21:15 »
gracias manofwar, tienes razón, no leí todo el hilo ya que mis dudas eran básicas y al poner bootloader en el buscador salen muchos hilos y lo que pedía era en sí un consejo de por dónde me convenía entrarle al tema... porque no sabía lo que estaba hecho y lo que no... al ver que decía picmouse que era sólo para c18 desestimé el hilo... mi inglés es como el tuyo... digamos que entiendo, pero voy muy lento y me saturo rápido... voy a intentar leerlo, muchas thanks...


gracias suky, creo que este último link me va a servir, justo lo acababa de encontrar... está hecho en mplab (asm) pero está super documentado, como para que hasta un tipo tan duro como yo lo entienda, sólo que ahora tengo que ponerme a leer todo, de principio a fin...

Algo muy interesante que no había tenido en cuenta... tiene un sistema de encriptación del .hex !!! Me es muy útil y ni siquiera lo había considerado.
« Última modificación: 11 de Abril de 2010, 10:34:59 por Menta »
     

Desconectado Manofwar

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 156
Re: Necesito hacer bootloader USB con Software de PC propio
« Respuesta #4 en: 11 de Abril de 2010, 10:53:46 »

Ese último enlace me va a servir a mí también. Estaba buscando algo del usb en asm.

Gracias Suky.

Saludos
Saludos desde Almería, España

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Necesito hacer bootloader USB con Software de PC propio
« Respuesta #5 en: 11 de Abril de 2010, 17:44:49 »
bueno otra es que el PDFSUSB.exe y el HID usb de los bootloaders dentro de sus aplicaciones traen el Codigo fuente de estos para poder modificarlos a gusto o si no usando el ResHack y un editor Hexadecimal puedes retransformarlos sin problema alguno


 

anything