Es muy util para identificar individualmente los dispositivos que fabricas, pero ten cuidado, es un arma de doble filo, esto también te obliga a tener una base de datos que sera bastante extensa si vendes mucho y un error en esa base de datos, puede que el bootloader se quede inservible para ese cliente.
La anulación de una placa pirateada es una de las utilidades, yo eso lo he visto aplicado en productos comerciales, y ha sido muy efectivo para tirar producto chino pirateado, en concreto interfaces de diagnosis para automoción, el fabricante crea una lista negra de números de serie, la mete en la siguiente actualización, y en cuanto la aplican las placas piratas, caen como chinches. Ten en cuenta que una lista negra no suele ser muy extensa, se trata de uno o varios números de serie, utilizados en cientos o miles de placas, todas con el mismo número de serie.
También se puede usar para personalizar un producto, para un cliente concreto que compre una mejora o encargue un diseño específico. En mi bootloader para PIC32 grabo otros dos códigos, uno por tipo de producto y otro por versión, para evitar que por error o deliberadamente se instalen ficheros de firmware de otro producto, o para evitar que se instalen versiones anteriores. Si el nº de serie de una placa está en la lista negra, puedo marcar una dirección en flash para impedir que vuelva a arrancar, o puedo incluso borrar el bootloader para dejar inservible la placa.
los pic si tienen, hasta donde llegan mis conocimientos como mínimo la revisión del dispositivo, lo que no se si es adcesible de alguna manera
No he utilizado nunca ese código, porque no permitiría bloquear una placa concreta, ni crear personalizaciones, pero bueno es saberlo, alguna utilidad se me ocurrirá.
Sobre los IDE, ayer estuve probando
Coocox y
EmBlocks, pude confirmar algo que ya comprobé hace tiempo, y descubrí algo nuevo. De momento todo está a favor de EmBlocks, y en contra de Coocox.
1.- Ya hace tiempo hubo una cosa que no me gustó nada de Coocox, y sigue igual, no lo han corregido, y eso que hay más gente quejándose de lo mismo en sus foros.
Coocox NO permite IMPORTAR directorios o árboles de directorios con sus correspondiente archivos, al proyecto. Si quieres añadir un conjunto de directorios y subdirectiorios con sus archivos de librerías, fuentes en C y archivos H, tienes que crear A MANO los directorios y subdirectorios y subir a mano uno a uno cada archivo. Osea que NO existe algo como "Importar directorio" al proyecto, alucinante. Responde la gente de Coocox a estas quejas, diciendo que se puede usar el "Drag and Drop", pero eso no importa nada, simplemente crea un vínculo a los directorios, de manera que si cambias esos directorios, o mueves el proyecto a otro ordenador, te da error, por perder los vínculos a los directorios originales. Todo esto no ocurre con EmBlocks, Si que tiene una opción para IMPORTAR directorios completos con sus subdirectorios y archivos contenidos, así que punto a favor de Emblocks.
2.-
La apertura de un proyecto en Coocox, es extremadamente LENTA, muy molesta, y eso aunque sea un mísero proyecto de los más simples, como un programa para endender y apagar un LED. También hay gente que ha reportado este problema en los foros de Coocox, parece que es debido a la lectura de la base de datos SQLite3 por parte de la DLL ICoodat.dll, cuando se abre un proyecto, dicén que lo resolverán, pero es un problema que ya anda coleando desde hace tiempo. Con EmBlocks no he notado este problema, los proyectos se abren con relativa rapidez.
3.-
EmBlocks permite añadir en TOOLS,
botones personalizados para llamar a aplicaciones externas, interesante para por ejemplo, crear un botón que llamé al software para programar el chip, en el caso de los STM32 para llamar al programa STM32-STLINK Utility de ST. Esto se puede hacer también en Eclipse, como ya documenté, pero NO se puede hacer en Coocox. Coocox facilita un programa propio (CoFlash), inpendiente del IDE para programar los chips, pero para eso mejor usar el de ST. Otro punto a favor de EmBlocks.
Así que creo que me decantaré por
EmBlocks, como ya comenté además permite importar proyectos de Coocox y MPLABX, y se trata de un IDE muy similar a Visual Studio, es casí un calco. Para los que hemos trabajado con VC++ nos resultará muy familiar.
En breve empezaré con las primeras pruebas, que serán crear las rutinas de lectura, modificación y escritura en tarjetas SD, luego las rutinas de borrado-escritura de flash, y finalmente encajarlo todo para que se lea y grabe el nuevo firmware. Veo que la filosofía del Link Scripter, es igual que con los PIC32, importante para compilar el firmware, creo que parte de las rutinas que usé para el PIC32, las podré usar para los STM32, cambiando solo las instrucciones concretas que borran y escriben en la Flash, me ahorrará bastante trabajo, es lo bueno que tiene el C, la portabilidad.