El tema es que todavía no lo soluciono...voy de a poco...pero en cuanto termine lo posteo asi lo ven.
Fidodido...si podés explicar cuando tengas tiempo como hiciste para tratar el archivo hex estaría bueno
mientras yo sigo investigando como hacerlo en C#
Saludos !
Bueno yo programo en C30, entonces lo que hice fue colocar un monitor de puerto para ver que transfería el programa bullybootloader al PIC, intenta escaneando el puerto! si ya lo quieres hacer por USB no sabría como ayudar.
Si es así la transferencia del archivo cambia segun que tipo de PIC uses si es de 8, 16, "24", o 32 bit, es decir como el pic hace el arreglo de los registros.
Mira lo que hice yo para un PIC24Fj128ga010:
1. leer el .hex
2. Organizar el .hex por posicion de memoria:
2.1 Guardo cada linea del .hex en un arreglo de string[]
2.2 las posiciones 3, 4 y 5 de cada linea son la dirección de memoria, entero tipo hexadecimal. Organiza tu vector de menor a mayor.
2.3 las posiciones 1 y 2 indican cuantos bytes vamos a transferir al PIC, es decir 10 = 12 bytes, 0C = 9 bytes, 08 = 6 bytes y 04 = 3 bytes.
2.4 la posición 6 es el tipo de datos, nunca entendí para que eran esto, pero viendo el scaner de puertos me di cuenta que primero envia los datos 8 y luego los 0.
Esto es lo que me acuerdo ahora, luego te voy comentado del resto, espero que esto te ayude en algo!