Autor Tema: Bootloader para pic24fj128ga010 micro SD  (Leído 3667 veces)

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

Desconectado ablanco93

  • PIC10
  • *
  • Mensajes: 15
Bootloader para pic24fj128ga010 micro SD
« en: 13 de Enero de 2011, 12:10:07 »
Hola que tal antes que nada les quiero enviar un saludos a todos y que tengan un feliz año.

El proyecto como el titulo del tema lo dice es un Bootloader para pic24fj128ga010 utilizando una micro SD y el compilador de microchip C30. Para todos aquellos que no sepan que es un bootloader, lo pueden verificar en esta pagina: http://dev.emcelettronica.com/what-microcontroller-bootloader-and-how-it-works

Bueno ahora que ya sabemos lo que es un Bootloader  viene lo interesante, lo primero que yo creo que se debe de hacer, es saber como poner nuestro código del bootloader en la memoria destinada para esto, la verdad no tengo mucha idea de como se haga en C30 pero en CCS creo que se usan estas instrucciones al inicio del programa:

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

Al poner estas instrucciones, le indicas al compilador la localidad de memoria en donde se pondra el programa. Mi pregunta es: ¿Como se hace esto en C30? Como le dices al compilador que el programa que estas haciendo es un bootloader?.

Y mi segunda pregunta es: ¿La libreria de microchip para la Micro SD cabe en el espacio de memoria reservado para el bootloader? por que esta libreria tiene 10,000! lineas de codigo y ocupa mucho espacio de memoria del pic, entonces me gustaria saber si se puede.

Muchas gracias anticipadas y me comprometo a que cuando termine este bootloader postear un tutorial con los pasos exactos para crearlo en C30, gracias =)


Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Bootloader para pic24fj128ga010 micro SD
« Respuesta #1 en: 13 de Enero de 2011, 12:53:02 »
Bootloader serial para PIC24 -> http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en530200

Allí tienes ejemplos para ver como se protege el sector de código, y verás que no se parece en nada a CCS  :mrgreen:

Luego el tema de leer un archivo desde una memoria SD lo veo poco adecuado para un bootloader para un microcontrolador, por la cantidad de memoria utilizada. Otra cosa seria usar un 18F que trabaje con la memoria y grabe por ISCP o serial el PIC24, pero sigue siendo un proyecto que no me cierra para nada  :mrgreen:


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado ablanco93

  • PIC10
  • *
  • Mensajes: 15
Re: Bootloader para pic24fj128ga010 micro SD
« Respuesta #2 en: 13 de Enero de 2011, 13:41:24 »
Hey Hola! muchas muchas gracias por tu pronta respuesta SUKY la verdad que siempre podemos contar contigo =) .
Ese application Note ya lo descargue desde que empece con el proyecto es bueno y trae mucha informacion, al igual que el application Note 1157 tambien tiene mucha informacion muy importante, pero por mas que leo y encuentro informacion no veo por donde empezar :S . Lo primero que hice fue, hacer un programa para  leer un archivo .HEX desde la micro SD utilizando la libreria de microchip, ahora lo que sigue o lo que yo creo que  es el siguiente paso es poner este programa que hice dentro de la localidad de memoria correspondiente al bootloader y eso es lo que no se como quedaria en el codigo :S no se si me pudieras ayudar con un simple ejemplo de que es lo que debo de ponerle a este programa que hice para que se guarde dentro de la localidad del bootloader. Encontre en el AN1157 esto:

MEMORY
}
  data  (a!xr) : ORIGIN = 0x800,  LENGTH = 0x2000
  reset        : ORIGIN = 0x0, LENGTH = 0x4
  ivt          : ORIGIN = 0x4,     LENGTH = 0xFC
  aivt         : ORIGIN = 0x104,     LENGTH = 0xFC
  program (xr) : ORIGIN = 0x400, LENGTH = 0x800 /*start & length of BL*/
  config2      : ORIGIN = 0xABFC, LENGTH = 0x2
  config1      : ORIGIN = 0xABFE, LENGTH = 0x2
{
__CONFIG2 = 0xABFC;
__CONFIG1 = 0xABFE;
__IVT_BASE  = 0x4;
__AIVT_BASE = 0x104;
__DATA_BASE = 0x800;
__CODE_BASE = 0x400;   /* Starting location of bootloader */

Ok, pero eso se lo pongo al inicio de mi programa? o va en otro lado?

Gracias =)

Desconectado ablanco93

  • PIC10
  • *
  • Mensajes: 15
Re: Bootloader para pic24fj128ga010 micro SD
« Respuesta #3 en: 13 de Enero de 2011, 16:16:53 »
Si se le debe de modificar los parámetros:

program (xr) : ORIGIN = 0x400, LENGTH = 0x800 /*start & length of BL*

__CODE_BASE = 0x400;   /* Starting location of bootloader */

Estos parametros se modifican en el archivo .gld ubicado en el linker escript del proyecto.  Asi, el programa que se compile se ubicara en esas posiciones de la memoria del programa, o me equivoco suky?

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Bootloader para pic24fj128ga010 micro SD
« Respuesta #4 en: 13 de Enero de 2011, 18:46:37 »
Freescale tiene un nota de aplicación interesante en donde el microcontrolador al conectarlo por USB, el PC lo reconoce como una memoria USB, luego solo queda copiar y pegar en la supuesta memoria el archivo a programar .S19 y con eso inicia el bootoloader


Desconectado scientist

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 999
Re: Bootloader para pic24fj128ga010 micro SD
« Respuesta #5 en: 13 de Enero de 2011, 20:09:49 »
Tambien el lpc1343 lo trae de fabrica, y no tienes que hacer nada en tu programa, para cargarlo, solo le descargas el .bin me parece, o es el .hex? la verdad no recuerdo muy bien, saludos
NO le digas a DIOS que tienes un gran problema, dile a tu problema que tienes un GRAN DIOS!!
Alma mia y castillo mio, mi Dios en quien yo confiare....

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Bootloader para pic24fj128ga010 micro SD
« Respuesta #6 en: 13 de Enero de 2011, 22:16:06 »
El mbed también, se conecta a USB y aparece un nuevo espacio de almacenamiento de 2 Mb, pero es todo un hardware adicional que trabaja con esa memoria y graba el microcontrolador. Ahora hacerlo en un PIC24, el bootloader ocuparia el 10% (o mas o menos) del micro  :shock: O habría que trabajar en un código más compacto que pueda trabajar con la FAT pero ocupar muchos menos recursos que la librería de Microchip. Hay que estudiarlo un poco.


Saludos!
No contesto mensajes privados, las consultas en el foro


 

anything