2009-09-12 11 views
6

Me gustaría poder tener un sistema operativo básico y un sistema de archivos básico para el MSP430 de gama alta, probablemente el MSP430F5438. Sé que puedo ir con algo como FreeRTOS, IAR PowerPac o Micrium para nombrar solo algunas de las opciones para el sistema operativo y el sistema de archivos. Sin embargo, me gustaría tener la capacidad de cargar miniaplicaciones o subprocesos en un momento posterior idealmente para obtener este código adicional fuera del sistema de archivos. Mi objetivo no es tener que actualizar todo el dispositivo para cambiar o implementar una función en el dispositivo incorporado. No estoy seguro de a dónde dirigirme para implementar esta habilidad o si necesito cambiar a otro procesador como un ARM.¿Escritura de aplicación incrustada para msp430?

Respuesta

3

El MSP430 es un controlador excelente, pero si desea ejecutar un sistema operativo y cargar aplicaciones sin grabarlas para flashear, probablemente debería cambiar a ARM (otra gran plataforma con muchos microcontroladores basados ​​en ARM).

+0

El espacio de direcciones en el msp430 es de 16 bits, que incluye todos los rom y ram. No es que no puedas ejecutar un SO y aplicaciones dentro de ese espacio, pero no creo que encuentres un msp430 con la cantidad de memoria que deseas a menos que uses algo como openmsp430 en un fpga y ajustas la cantidad de ram y rom. –

+0

Esta aplicación está siendo impulsada por el costo, así que me inclino a las palabras como un dispositivo flash. Lo que busco es poder tener una parte estable del firmware y una parte dinámica. Me gustaría poder hacer un reflash remoto de la parte dinámica sin tocar la parte estable. Si la actualización falla, no quiero perder la parte estable. Estaba convencido de que podía compilar la parte dinámica como un bloque independiente de código de posición independiente y luego tener ganchos en la parte estable. Simplemente no estoy seguro de que el MSP430 pueda manejar esto. ¿Alos podría un ARM basado en flash manejar esto? –

+0

En ambos casos, debería poder borrar porciones pequeñas (relativas a la totalidad) del flash mientras se ejecuta desde otras partes del flash. Todavía no he hecho un gestor de arranque msp430, así que no conozco las cosas del flasheo en el chip, pero lo he hecho con algunos ARM, mientras que el flash se disparaba desde otras partes del flash. –

2

Estoy bastante seguro de que siempre tendrá que volver a actualizar el MSP 430 cada vez que desee cambiar el código del programa. Por supuesto, un gestor de arranque puede actualizar el flash por sí mismo, por lo que solo querrá crear un programa que funcione como un gestor de arranque, pero que solo actualice las partes de la memoria del programa, es decir, dónde quiere que se coloquen sus miniaplicaciones. Y luego tendrá que saber qué ubicación de memoria tiene cada área del flash donde está el código de su applet para que pueda llamarlo.

También se encontrará con un problema al ejecutar el código en estos applets. Si solo hay una ubicación de memoria desde la que desea ejecutarlas, puede compilarlas teniendo esto en cuenta. Si desea varios applets diferentes que puedan ejecutarse desde cualquier 'espacio de applet' en la memoria, entonces podría tener problemas porque no sabrán de qué dirección están partiendo.

Y, por supuesto, ninguno de estos applets podrá ser muy grande. ¿Cuánto espacio tomará su RTOS?

0

Hay algunas partes FRAM msp430 que también pueden valer la pena mirar. Sin embargo, aún no es mucha memoria.

1

flash
En un msp430 puede borrar/reescribir el flash a bordo en trozos 512 bytes (el flash usuario puede manejar trozos más pequeños).
Así que su bootloader/stable-RTOS podría reprogramar el chip con estas "aplicaciones".
Es un poco complicado redirigir las interrupciones, pero eso se puede hacer con un salto de redirección de la tabla de vector "real" a una tabla de vector de aplicación.

Calling estable/RTOS
También es posible llamar a las funciones de la parte estable de las aplicaciones, se podría construir en la parte estable de una tabla de saltos fija para cada función, por lo que la aplicación sabe cómo llamar a la función , incluso si construye otra versión estable/RTOS.

RAM
Si solo permite una aplicación, esto es fácil.
Debe reservar algo de RAM para su RTOS estable, y la aplicación puede usar el resto de la RAM.

Pero resolver el problema con la colocación de sus variables podría ser complicado, si desea utilizar más de una aplicación.
Para reservar RAM de una aplicación, preferiría la asignación dinámica, pero incluso entonces necesita un puntero para los bloques asignados dinámicos, y estos punteros son de base fija o sus aplicaciones usan variables en la pila.

2

El controlador Msp430 es compatible con varios OS-es que pueden proporcionar la funcionalidad que desee. Algunos de ellos proporcionan OTA (programación inalámbrica). Algunos proporcionan sistemas de archivos (basados ​​en flash). Sin embargo, esto a menudo significará usar memoria flash para almacenar el programa cargado.

Aquí hay un par actualmente activos OS-es msp430 de apoyo:

Contiki - OS para "Internet de las cosas". Proporciona proto-hilos.

MansOS - un sistema operativo unix que admite subprocesos y OTA para dispositivos msp430.

Cuestiones relacionadas