Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

10/01/2011 #1


Mantener datos en flash al reprogramar - PIC32
Hola a todos!

Estoy desarrollando un dispositivo electrónico basado en el microcontrolador PIC32 y ahora estoy enfrentando el problema de guardar el Número de Serie del equipo sin perder esa información al hacer un update del firmware.

El problema es que al reprogramar el PIC se borra toda la memoria flash, reseteando así el Número de Serie.

La reprogramacíon se hace a través del ejemplo dado por Microchip "HID Bootloader". A partir de MPLAB IDE exporto un .HEX y lo cargo con el software del Bootloader. Al exportar verifico que el área dedicada a la Program Flash no se superponga con el área donde se encuentra el Número de Serie, pero no está funcionando bien.

Alguien tiene alguna idea de como hacer que los datos permanezcan ante una reprogramación?
Muchas gracias!!
10/01/2011 #2

Avatar de Scooter

Desconozco como funcionan los pic, pero las flash se borran por páginas, si quieres conservar algo tendrá que estar alejado de las direcciones del programa para que "caiga" en otra página.
Lee el datasheet para saber de que tamaño son las páginas, lo malo es que perderás una entera para guardar solo el serial.
10/01/2011 #3


Scooter, gracias por la respuesta.

Si, la flash funciona por páginas, en el pic32 cada página es de 4096 bytes, y efectivamente, el borrado es por página como mínimo. Por como diseñé el código, el número de serie está alojado en la página más alejada del código en la flash. El problema que estoy teniendo es no saber como hacer que al momento de programar no se borre todo el contenido de la flash y me preserve la página que contiene en número de serie.

Muchas gracias igual por la ayuda!
10/01/2011 #4

Avatar de Scooter

Nunca he usado pics, pero en el AT80c51ED2 no pasaba eso si no recuerdo mal, solo se pisaba el trozo necesario.... ahora que pienso no te lo aseguro, me parece que FLIP (la aplicación de atmel) lo borraba entero.
Otra opción es que intentes hacer IAP (In Aplication Programming) en lugar de usar un programador. Dejar una parte mínima del firmware con un cargador y el número de serie para cargar el resto del firm. Eso si que lo hacía sin pegas el atmel. Habían unas rutinas en la rom que se llama y graban la flash sin salir de tu aplicación.
Esta opción sería la mejor porque podrías incluir mas seguridad para evitar que cualquiera lo flashee y por ejemplo que se pueda hacer a distancia por gprs o como yo hacía sin detener la aplicación de usuario (grabando la nueva a otra área de memoria, claro, sin pisar la anterior)
11/01/2011 #5


Scooter!
Muchisimas gracias solucioné el problema
"Dejar una parte mínima del firmware con un cargador y el número de serie para cargar el resto del firm." fue la frase que me prendió la lamparita.
Te agradezco mucho la ayuda y tu tiempo.
Un abrazo
11/01/2011 #6

Avatar de Scooter

No hay de que, tan solo es un enfoque, una idea. Me alegro de haber sido útil.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.