Autor Tema: Bootloader Dudas?  (Leído 1820 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Somacruz

  • PIC10
  • *
  • Mensajes: 7
    • Vegatronica
Bootloader Dudas?
« en: 26 de Febrero de 2012, 01:46:10 »
  Hola compañeros del Foro:

 Hace poco tiempo que me empeze a iniciar el mundo de los PIC´s, me vi en la necesidad de armar mi programador asi que me arme el JDM el cual postie aqui http://www.todopic.com.ar/foros/index.php?topic=36173.new;topicseen#new al ver que se necesita aprender un lenguaje de programacion para poder trabajar con estos dispositivos al ver varias opciones me incline por C :mrgreen:, no se si sea la mejor opcion y si sea el lenguaje correcto para iniciar pero me incline por ese, he visto los ejemplos de CCS que puso vszener y me han funcionado bien y poco a poco estoy aprendiendo pero mirando por la red encontre algo que me llamo la atencion "bootloader"  :shock: :shock: , lo que entendi es que se trata de un programa residente en memoria del PIC y que nos permite la interaccion del dispositivo ya sea mediante "Serie o USB" evitandonos asi el problema del programador; por lo cual me maraville al pensar en la posibilidad de dejar de usar el JDM y empesar a usar USB en forma directa, me consegui unos 18F2550 y vi el Bootloader de Neo-Teo y otros de Microingenia pero he visto tantas paginas que me he llenado de dudas acerca de que es esto o aquello ojala y puedan aclararme el panorama, estas son mis dudas:

1.- Los "Bootloaders" que he encontrado en la red estan escritos en diferentes lenguajes, si uso el de "Neo-teo" (que tengo entendido que esta escrito en "Proton"), Tengo que escribir mis programas forzosamente en Proton? Op uedo usar otro lenguaje en forma indistinta, siempre y cuando pueda remapear(no se si lo dije bien :shock:) la memoria?????

2.- Tengo entendido que al usar un bootloader hay que anexar un codigo al programa que estoy realizando para direccionar la escritura y asi no se dañe el Bootloader, si usara el de Microingenia(Que esta en CCS) que codigo debo anexar por ejemplo si uso el codigo de vszener para encender un led  como este:

Código: [Seleccionar]
////////////////////////////////////////////////////////////////////////////////////
//   VsZeNeR"05     
//             6/Agosto/05
//
//Programa:   Parpadeo de un led cada 0.5s
//Version:   0.0
//
//Dispositivo: PIC 16F648A      Compilador:    CCS vs3.227
//Entorno IDE: MPLAB IDE v7.20   Simulador:    Proteus 6.7sp3
//
//Notas: Parpadeo de un led cada 0.5s por el pin RB0 del puerto B
//////////////////////////////////////////////////////////////////////////////////

#include <16f648a.h>         //pic a utilizar         
#fuses XT,NOWDT,NOPROTECT,PUT      //ordenes para el programador
#use delay (clock=4000000)         //Fosc=4Mhz
#use fast_io(b)

///PROGRAMA
void main(void)
{
   set_tris_b(0xFE);   //portb como salida(RB0,las demas desactivadas)
   disable_interrupts(GLOBAL);   //todas las interrupciones desactivadas
   
   do{   
      output_low(PIN_B0);          //led off
      delay_ms(500);           
      output_high(PIN_B0);        //led on
      delay_ms(500);
   }while(TRUE);                //bucle infinito
}


Que codigo deberia anexar aqui para hacer lo funcionar y no se dañe el bootloader?

Gracias por su atencion y disculpen estas preguntas de Novato y espero haber posteado en la seccion correcta
 


 
El conocimiento es publico, no privado

Desconectado Alumno

  • PIC10
  • *
  • Mensajes: 39
Re: Bootloader Dudas?
« Respuesta #1 en: 01 de Julio de 2012, 20:41:40 »
descargate de microchip MCHP_App_ Lib v2010_02_09_Installer una vez que lo instalas te vas a la capeta donde se instalo ( C:\Microchip Solutions\USB Device - Bootloaders\HID - Bootloader )
alli encontraras el FIRMWARE y el SOFTWARE PARA EJECUTAR EN PC.
Una vez grabado el BOOT puedes escribir tu programa en cualquier lenguaje y cualquier compilador pero siempre RESERVANDO las posiciones de memoria donde se encuentra el SEGMENTO DE CODIGO que creo es 1k, en C con el CCS yo lo pongo asi:
#define LOADER_END 0xFFF
#define LOADER_SIZE 0xEFF
#build(reset=LOADER_END+1, interrupt=LOADER_END+9)
#org 0, LOADER_END {}
El boot en modo HID creo que es mejor que el boot en modo CDC que tambien lo encuentras en esa carpeta, ademas junto con el firmware viene tambien el codigo del interfaz en PC escrito en VC# lo cual puedes modificarlo y adecuarlo a tus necesidades.