c - bootlin - linux embedded pdf



linux incorporato, blocco dello stato dell'applicazione, riavvio (1)

Volete il checkpoint delle applicazioni , quindi forse la libreria Berkley Lab Checkpoint Restart potrebbe aiutarvi.

Potresti forse usare la chiamata di sistema mmap (2) , se sei sicuro che tutti i dati hanno indirizzi fissi, ecc ...

Per conoscere i tuoi attuali segmenti di memoria e mappature, leggi (dalla tua applicazione) il file /proc/self/maps . C'è anche /proc/self/smaps ecc. Scopri di più su proc (5) , cioè /proc/

Abbiamo un'applicazione incorporata, ora richiede il suo stato per essere salvato e ricaricato. Proprio come nei giochi per PC, in cui lo salvate prima di uscire e respirare un po 'di aria fresca. Il prodotto è silenzioso ed evoluto in natura, nessun disegno adeguato in modo da identificare i dati da salvare non è un'opzione.

Il software è in C quindi tutti i dati hanno indirizzi fissi (.data segment), sono anche deterministici, a e nessun allocazioni di memoria dinamica. Quindi, in teoria, faccio un backup di questo segmento di dati in un file e sul riavvio dell'applicazione lo aggiorna dal file. Questo approccio probabilmente salverà molti più dati di quelli richiesti, ma io sono d'accordo.

Come posso farlo in tempi brevi?
Inoltre, come posso identificare l'inizio e la fine del segmento .data in fase di esecuzione?





embedded-linux