Programar en la propia Flash

#1
Hola:



Hace años buscaba información como programar la memoria Flash ya con un PIC16F84A programado. Tenía entendido queno se podóa, solo la EEPROM y RAM. Leyendo el libro del 16F886 y parecidos que este si se puede hacer y proteger parte del código.

Sabía lo de proteger parte del código. Una cosa que quiero saber. ¿Para qué escribir así mismo la Flash?

Siempre he pensado que es sólo para un bootloader y ya está.

Por lo que he leído, se puede no solo escribir, sino leer. También peudes hacerlo desde el Firmware principal crear códigos para crear más en la Faslh, cosas así, para eso lo hago desde el propio MPLAB.

Son detallitos que no cojo idea para qué usarlo exactamente y no veo mucho su interés por la gran red.

Un saludo.
 
#2
Saludos, te daré mi punto de vista:

Que un PIC sea "autoprogramable" lo veo más encaminado a lo que le dicen "Obsolescencia programada". Un ejemplo: algún contador que lleve el registro de un determinado evento, y cuando este alcance un cierto valor le diga al PIC que se bloquee, para esto se alteraría una determianda instrucción en el programa principal. (De igual forma esta idea se implementaría fácilmente con un registro de EEPROM).

Veo más lógica la parte de lectura de la flash, personalmente hago uso de esta función en especial cuando trabajo con tablas de caracteres, es más sencillo direccionar los datos por medio del registro EEADRH que estar usando instrucciónes RETLW para formar la tabla.
 
#3
Hola:

Tiene protección por bloques de códigos precisamente para que no altere el programa principal. La protección de lo activas y usas parte de la memoria donde no estés protegido, así no tendrás problemas.

Se puede hacer para la absolescencia programada, siempre pensé que se puede hacer con los PIC que tienen EEPROM y sin EEPROM no se puede hacer nada o usas técnicas poco efectivas para hacer el PIC inservible durante un tiempo.


Por lo que veo, se puede hacer para un Bootloader, actualizar el PIC o el tema de la absolescencia programada.

¿Habrá otro función para tal fin que no sea la indicada arriba?
Por ejemplo, desde el puerto serie o USB, se pueda introducir partes del código. Total, ni se para que.

Un saludo.
 
Arriba