Domanda

Vorrei poter avere un sistema operativo di base e un file system di base per la fascia alta MSP430 probabilmente MSP430F5438 . So di poter scegliere qualcosa come FreeRTOS , IAR PowerPac o Micrium per nominare solo alcune delle opzioni per il sistema operativo e il file system. Tuttavia, vorrei poter avere anche la possibilità di caricare piccole applet o thread in una seconda volta, idealmente togliendo questo codice aggiuntivo dal file system. Il mio obiettivo non è di dover eseguire il reflash dell'intero dispositivo per modificare o implementare una funzione sul dispositivo incorporato. Non sono sicuro di dove dirigermi per implementare questa capacità o se devo passare a un altro processore come un ARM.

È stato utile?

Soluzione

MSP430 è un ottimo controller, ma se vuoi eseguire un sistema operativo e caricare app senza masterizzarle in flash, probabilmente dovresti passare a ARM (un'altra grande piattaforma con molti microcontrollori basati su ARM).

Altri suggerimenti

Sono abbastanza sicuro che dovrai sempre eseguire il reflash dell'MSP 430 ogni volta che vuoi cambiare il codice del programma. Naturalmente un bootloader può aggiornare il flash da solo, quindi ti consigliamo di creare un programma che agisca come un bootloader ma aggiorni solo parti ceratin della memoria del programma, ovvero dove desideri posizionare le tue applet. E poi dovrai sapere quale posizione di memoria ogni area del flash in cui si trova il codice dell'applet in modo da poterlo chiamare.

Potresti anche riscontrare un problema con l'esecuzione del codice in queste applet. Se esiste solo un percorso di memoria da cui vuoi eseguirli, puoi compilarli tenendo presente quello. Se desideri diverse applet diverse che potrebbero essere eseguite da qualsiasi "spazio applet" in memoria, potresti avere dei problemi perché non sapranno da quale indirizzo stanno partendo.

E, naturalmente, nessuna di queste applet sarà in grado di essere molto grande. Quanto spazio occuperà il tuo RTOS?

Il controller Msp430 è supportato da diversi sistemi operativi che possono fornire la funzionalità desiderata. Alcuni di essi forniscono OTA (programmazione via etere). Alcuni forniscono file system (basati su flash). Tuttavia, ciò spesso implica l'utilizzo della memoria flash per memorizzare il programma caricato.

Ecco un paio di SO attualmente attivi che supportano msp430:

Contiki - Sistema operativo per " Internet delle cose " ;. Fornisce proto-thread.

MansOS - un sistema operativo simile a unix che supporta thread e OTA per dispositivi msp430.

Flash
Su un msp430 è possibile cancellare / riscrivere il flash integrato in blocchi da 512byte (il flash utente può gestire blocchi più piccoli).
Quindi il tuo bootloader / stable-RTOS potrebbe riprogrammare il chip con questo "software"
È un po 'complicato reindirizzare gli interrupt, ma ciò può essere fatto con un salto di reindirizzamento dal "reale" tabella vettoriale in una tabella vettoriale dell'applicazione.

Chiamata stable / RTOS
È anche possibile richiamare le funzioni della parte stabile dalle applicazioni, è possibile incorporare nella parte stabile una tabella di salto fissa per ciascuna funzione, quindi l'applicazione sa come chiamare la funzione, anche se si crea un'altra versione stabile / RTOS.

RAM
Se consenti solo un'applicazione, è facile.
Devi riservare un po 'di RAM per il tuo RTOS stabile e il resto della RAM può essere utilizzato dall'applicazione.

Ma per risolvere il problema con il posizionamento delle variabili potrebbe essere complicato, se si desidera utilizzare più di un'applicazione.
Per riservare la RAM da un'applicazione preferirei quindi l'allocazione dinamica, ma anche in questo caso è necessario un puntatore per i blocchi allocati dinamici e questi puntatori sono fissi in base o le applicazioni utilizzano variabili nello stack.

Ci sono alcune FRAM msp430 che vale la pena dare un'occhiata. Tuttavia non è ancora molta memoria.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top