NuttX

Software screenshot:
NuttX
Dettagli del software:
Versione: 7.9 Aggiornato
Data di caricamento: 10 May 15
Sviluppatore: Gregory Nutt
Licenza: Libero
Popolarità: 115

Rating: 4.0/5 (Total Votes: 1)

NuttX è un open source, sistema operativo embedded real-time deterministiche e gratuito (RTOS), progettato dalla compensazione di essere utilizzabile in ambienti risorse limitate profondamente radicate. Ha una piccola orma che è utilizzabile in ambienti di micro-controllore, e & rsquo; s completamente scalabile dalla piccola (8-bit) da moderatamente a sistemi embedded (a 32 bit).
Essa mira inoltre a essere pienamente conforme agli standard, per essere tempo completamente vero, e ad essere totalmente aperto. NuttX ha un ricco set di funzionalità del sistema operativo, una struttura modulare, è altamente scalabile e configurabile, nonché conforme agli standard. E 'distribuito con una licenza BSD non restrittivo. Si è spesso soprannominato dai suoi sviluppatori come "Piccolo Linux." Caratteristiche di una funzionalità glanceKey includono gestione di base delle attività, interfaccia socket BSD, allocatori memoria (memoria condivisa, allocazione di memoria heap standard costruire protetto con MPU, piatta costruire incorporato, per processo cumuli, allocatore granello e imprese in modo dinamico), configurazioni di memoria, guida porting, completamente interrompibile, funzionamento tickless, la registrazione on-demand paging e del sistema.
Inoltre, il progetto è dotato di estensioni per la gestione di prelazione, per-filo, integrata nelle misure carico della CPU, la documentazione completa, le attività opzionali che contengono ambienti di indirizzo, di controllo delle attività ANSI-like e POSIX-like, orologi, pthreads, ambiente variabili, segnali, code di messaggi di nome, timer, filesystem e contando semafori.
Tra le altre caratteristiche, possiamo citare round-robin scheduling, FIFO, il supporto per l'ereditarietà prioritario, supporto per l'architettura SoC, il supporto per le architetture da tavolo, il supporto per le nuove architetture di processori, timer watchdog, VxWorks-come la gestione delle attività, redirezione I / O e trasmesso & ldquo; controllare terminali & rdquo;. Supportato platformsNuttX supporta una vasta gamma di piattaforme hardware, tra i quali possiamo citare numerosi processori ARM, tra cui ARM Cortex-M3, ARM926EJS, ARM7TDMI, ARM Cortex-M4, ARM Cortex-M0, ARM920T e ARM Cortex-A5, così come la Atmel AVR 8-bit, Freescale M68HCS12, piattaforme AVR32 Atmel AVR.
Inoltre, supporta anche diverse piattaforme Intel, come MicroChip PIC32MX (MIPS), 80c52 e 80 & volte, 86, piattaforme Zilog, tra Zilog Z80, Zilog Z16F, Zilog Z8Encore! e Zilog eZ80 Acclaim !, e le M16C / 26 piattaforme Renesas / Hitachi SuperH e Renesas

Cosa c'è di nuovo in questa versione:.

  • Caratteristiche: Ulteriori nuove caratteristiche e funzionalità estese:
  • Nucleo OS:
  • Watchdog Timer Allocation: (1) Se siamo a corto di tempo pre-assegnati watchdog, la logica ora stanziare i timer aggiuntive dal mucchio. Una riserva di timer watchdog preassegnati viene mantenuta in modo che ci sarà sempre timer disponibili per gestori di interrupt. (2) Aggiunto il supporto per watchdog timer allocato staticamente
  • Indirizzo Ambiente Support: (2) Nuove API del sistema operativo integrato in tutto il contesto specifico per la piattaforma di commutazione logica (up_block_task (), up_unblock_task (), _exit (), e altri)
  • .
  • Kernel costruire il sostegno: (1) Il MPU basato & quot; kernel costruzione & quot; rinominato in una build protetta (CONFIG_BUILD_PROTECTED); aggiunto il supporto per il nuovo MMU a base di & quot; kernel costruzione & quot; (CONFIG_BUILD_KERNEL), (2) La biblioteca chiamata di sistema può essere costruito con CONFIG_NUTTX_KERNEL. Nuova selezione *:. CONFIG_LIB_SYSCALL
  • all'avvio del sistema: Aggiungere opzioni di configurazione per avviare il sistema da un programma su un file system (contro un indirizzo nella memoria)
  • .
  • Startup passaggio di parametri: Ci usato per essere due modi per passare parametri a nuovi compiti, a seconda della configurazione: Entrambi (1) argv [] come creato come una matrice con ogni stringa strdup'ed. O (2) argv [] array e stringhe sono stati creati sullo stack prima che la nuova attività è stato avviato. Ora, vi è solo un modo, vie (2). Way (1) potrebbe essere leggermente più compatto, ma questo non vale portare la complessità di due modi diversi di fare la stessa cosa.
  • inizializzazione Consiglio: Aggiungi la capacità di eseguire l'inizializzazione bordo iniziale su un thread di lavoro separato. Questo è necessario perché ci sono molti casi in cui la logica di inizializzazione non può eseguire in start-up / thread inattivo. Questo perché il blocco o di attesa non è consentita sul filo IDLE.
  • Memory Management:
  • granuli Allocator: (1) Aggiungere una nuova funzione per la prenotazione regioni un-definibili nel mucchio dei granuli. (2) Aggiungere interfacce per supportare-un l'inizializzazione di un allocatore granuli.
  • Pagina Allocator: aggiungere un semplice allocatore pagina fisica in base granulo allocatore NuttX esistente. Io non sono certo se l'allocatore granello è sufficientemente deterministico per l'uso a lungo raggio, ma diventa ottenere un allocatore pagina in luogo per il test molto rapidamente.
  • Rimuovi CONFIG_MM_MULTIHEAP: operazione non multiheap non è più supportato
  • .
  • sbrk ():. Sbrk () è ora supportato nella build del kernel per consentire dimensioni dinamicamente, i cumuli per processo
  • Per-Process Cumuli: spazio all'inizio dello spazio dati di processo è ora riservato per strutture di gestione heap utente. Nella modalità di compilazione del kernel, queste strutture heap sono condivisi tra il codice del kernel e l'uso al fine di allocare i dati specifici dell'utente.
  • User heap Gestione: Quando un privilegiato esce filo, dobbiamo utilizzare l'allocatore kernel per liberare la memoria; quando un privilegiati thread esce, non c'è bisogno di fare nulla ... memoria heap verrà ripulita quando l'ambiente indirizzo è abbattuto.
  • Inter-Process Support Memoria condivisa: (1) Aggiungere implementazione e documentazione per shmget (), shmctl (), shmat (), e shmdt (). (2) Aggiungi sistema chiamate di sistema per supportare la porta chiamata utente alle interfacce di memoria condivisa. (3) Aggiungere definizioni di interfaccia specifici della piattaforma necessari per sostenere la funzione della memoria condivisa.
  • pagina virtuale Allocator: Aggiungere il supporto per una pagina allocatore virtuale per processo. Si tratta di un nuovo membro della struttura task_group_s. L'allocatore deve essere inizializzato quando viene avviato un nuovo processo utente e uninitialize quando il gruppo processo è finalmente distrutto. E 'utilizzato da shmat () e shmdt () per selezionare l'indirizzo virtuale su cui mappare la memoria fisica condivisa.
  • File system / driver a blocchi / MTD:
  • SMART FS: FS SMART e SMART FS procfs aggiornamenti da Ken Pettit
  • .
  • MTD:. Appare il livello MTD read-ahead / scrittura buffer è ora funzionale
  • Formati dei Binari:
  • Per-Process Heap:. Aggiungere logica per inizializzare il cumulo utente per processo quando viene avviato ogni processo utente
  • Grafica:
  • nxterm: modificare tutte le occorrenze di NxConsole per nxterm
  • .
  • Rete:
  • PHY Allarmi: (1) Standardizzare un'interfaccia attaccamento PHY interrupt. (2) Aggiunta di un ioctl che può essere utilizzato per notificare un'applicazione quando vi è un cambiamento di stato della rete segnalato da un interrupt PHY.
  • Migliore Invia Logic: In passato, il primo pacchetto invia ad un nuovo peer fallirebbe; non ci sarebbe alcuna voce nella tabella ARP per il peer e quindi una richiesta ARP potrebbe sostituire quel primo pacchetto. Ora come un'opzione se CONFIG_NET_ARP_SEND = y, tutti trasmettono la logica sarà (1) verificare se l'indirizzo MAC pari è in tabella ARP e, se non, (2) inviare richieste ARP periodicamente per ottenere la mappatura e (3) attendere il risposta ARP. Poi (4) quando la risposta ARP viene ricevuto allora sarà avviata la logica attuale di invio. Così ci può essere un ritardo con il primo pacchetto inviato a un nuovo pari, ma il pacchetto non deve essere perso
  • Simulazione Host:
  • SPI FLASH driver:. Emulata autista SPI FLASH per il target sim da Ken Pettit
  • Intel x86:
  • Host di default: L'host di default è ora x86_64 e l'opzione -m32 verrà selezionata automaticamente per simulazione costruisce
  • .
  • Intel 8051 Famiglia:
  • 8051 Rimosso: Rimosso tutto il supporto per il 8051 l'architettura famiglia dalla struttura di origine NuttX. Il codice obsoleto insieme con la patch di rimozione si trova ora in misc / / Obsoleted. Questo codice è stato rimosso perché (1), anche se alcune funzionalità è stata dimostrata, non sono a conoscenza di qualsiasi porta veramente riusciti di NuttX a qualsiasi 8051, e (2) il 8051, con il suo stack di hardware, impone limitazioni e complicazioni alle altre architetture e rendere la crescita e lo sviluppo di NuttX più complesso.
  • ZiLOG ZNEO Boards:
  • configurazioni / 16Z: Il supporto per questa scheda è stato rimosso dalla struttura di origine NuttX (ma ancora si può trovare nella directory / Obsoleted vari). Questa porta non è pronta per l'uso, ma può restituire alla struttura NuttX ad un certo punto in futuro.
  • Atmel SAM3 / 4 schede:
  • SAM4E-EK:. Aggiungere (1) un driver LCD basato su ILI9341-pienamente funzionale e (2) una configurazione NxWM completamente funzionale
  • ARMv7-A:
  • Ambienti Indirizzo: Aggiungi il supporto per gli ambienti di indirizzi di applicazione utilizzando il Cortex-A MMU. Implementare interfacce specifiche della piattaforma standardizzati di NuttX sostegno dell'ambiente indirizzo.
  • Attività cache: Implementare standardizzati, le operazioni di cache specifiche della piattaforma. Questi sono chiamati dal caricatore ELF al fine di svuotare D-cache e invalidare I-cache dopo un modulo di ELF è stato caricato in memoria. Con questa modifica, i moduli ELF funzionano correttamente sul SAMA5 / Cortex-A piattaforma.
  • Kernel Corporatura: (1) Aggiungere le implementazioni di porta chiamata di sistema. (2) Aggiungere CRT0 file di start-up che può essere collegato con programmi utente costruiti separatamente. (3) Aggiungere il supporto per la consegna dei segnali uso in modalità nella compilazione del kernel. (4) Aggiungere logica per inizializzare il cumulo utente per processo quando viene avviato ogni processo utente. (5) ARMv7-A la gestione delle eccezioni ha bisogno di lavorare un po 'diverso, se sosteniamo processi in modalità utente. Questo perché R13 e R14 sono paging in modo diverso tra utente e la modalità SVC.
  • Shared Supporto Memoria: (1) Aggiungere la logica necessaria per gestire rimappatura della memoria condivisa su cambi di contesto. (2) Estendere conversioni di indirizzi virtuali / fisici per includere gli indirizzi di memoria condivisa. (3) Aggiungere attuazione del sostegno memoria condivisa specifico per la piattaforma.
  • Driver Atmel SAMA5D:
  • Rete ioctls:. Implementare tutti ioctls di rete, tra cui il nuovo ioctl per le notifiche degli eventi di installazione PHY
  • Conversioni Indirizzo:. In kernel costruiscono con l'ambiente indirizzo, necessario logica per mappare gli indirizzi virtuali in indirizzi fisici degli utenti, e viceversa
  • Atmel SAMA5D Boards:
  • SAMA5D3 Xplained, SAMA5D3-EK, e SAMA5D4-EK: Converti interfacce bordo PHY specifico interrupt esistente per utilizzare l'interfaccia standard di nuova definizione
  • .
  • SAMA5D4-EK: Aggiungere una configurazione per testare la configurazione di compilazione del kernel. Ci sono configurazioni per l'avvio o da una scheda SD o da e in memoria del file system romfs.
  • SAMA5D4-EK: Aggiungere documentazione / supporto per Rev E. bordo
  • .
  • Driver STMicro STM32:
  • Ethernet: modificato per supportare il cambiamento con la rete cambia firma ioctl. Anche aggiungere il supporto per nuovi ioctl di notifiche degli eventi di installazione PHY.
  • STMicro STM32 Boards:
  • STM32F4DISCOVERY con STM32F4DIS-BB: Aggiunta di una rete abilitata la configurazione NSH per la scheda STM32F4DISCOVERY con la scheda base STM32F4DIS-BB installato. Include il supporto per lo slot per schede microSD sulla scheda base STM32F4DIS-BB.
  • Driver TI Tiva:
  • TI CC3200: Aggiunge il supporto per il CC3200 TI. Da Jim Ewing.
  • TI Tiva Boards:
  • TI CC3200 Launchpad: Aggiunge il supporto per la TI CC3200 Launchpad. Da Jim Ewing.
  • C Library:
  • poll ():. Re-implementata poll () ritardo utilizzando sem_timedwait ()
  • Configurazione / Sistema Corporatura:
  • Esporta destinazione: nel kernel o protette costruisce, (1) solo le librerie utente devono essere esportati, (2) non copiare i file di intestazione interne o costruire script se questo è un kernel o costruire protetta, e (3) esigenze per impacchettare il file utente C avvio (crt0), non l'oggetto testa kernel per il kernel e protetto costruisce.
  • Programma CFLAGS: Aggiungere logica che ci permetterà di costruire librerie utente con CFLAGS diverse rispetto del codice del kernel. Questo è necessario perché abbiamo bisogno l'opzione -fno-comune quando si costruisce il codice ELF per evitare delocalizzazioni SHN_COMMON.
  • Applicazioni:
  • NSH: Estendere la logica inizializzazione della rete NSH. Vi è ora un'opzione che creerà un thread di monitoraggio di rete in grado di monitorare lo stato del collegamento. Quando il collegamento va giù, il codice tenterà di mettere con grazia il driver Ethernet in uno stato giù; Quando il collegamento ritorna, il codice cercherà di portare la rete di back up.
  • ELF. Esempio: Il test ELF / esempio è stato esteso in modo che i singoli programmi di test ELF possono collegare con la libreria SYSCALL (se disponibile) o contro la libreria C per eliminare o ridurre al minimo la necessità di tabelle di simboli
  • nxterm: modificare tutte le occorrenze di NxConsole per nxterm
  • .
  • MTDRWB. Esempio: Aggiungi un esempio per testare MTD R / W buffer
  • OS Prova Esempio: Aggiungi un test banale di sem_timedwait ()
  • .
  • Configurazione applicazione / Crea sistema:
  • Importa destinazione: (1) Aggiungere la logica che consentirà la creazione di applicazioni contro un pacchetto di esportazione NuttX (contro il / albero dei sorgenti nuttx). (2) Aggiungi file .config da esportare pacchetto. (3) Creare apps / importazione. Creare apps / import / Make.defs che fa cose come definire CFLAGS; Costruire ELF richiede -fno-comune in CFLAGS. Copiare una logica di base da nuttx / strumenti / Config.mk di apps / importazione / Make.defs. (4) Aggiungere apps / import / scripts / script GCC linker gnu-elf.ld per costruisce ELF importazione.
  • Tutti i Makefile: (1) Aggiungere un target installarlo su tutti i makefile. Per la costruzione di importazione, il Makefile di livello superiore ora fa due passaggi: (1) costruisce libapp.a, poi (2) installa i programmi in apps / bin. (2) Aggiungere l'installazione del programma per CONFIG_BUILD_KERNEL in tutti i Makefile che costruiscono un main (). (3) Per compilazione del kernel, il file oggetto contenente main () non può andare in biblioteca a causa di conflitti tra i nomi. Il file oggetto deve essere trattato come un caso speciale in ogni Makefile.
  • Tutti i programmi integrati: Con compilazione del kernel (CONFIG_BUILD_KERNEL), punto di ingresso per tutte le attività è main (), non qualche xyz_main ()
  • .
  • NSH: Diversi comandi devono essere disattivati ​​nella compilazione del kernel perché dipendono su interfacce che non sono disponibili al di fuori del kernel. Dd, df, losetup, mkfatfs, mkdr, e ps
  • apps / tools /: (1) Aggiungi mkimport.sh esplodere un pacchetto importazione NuttX e installare apps / importazione. (2) Aggiungere lo script mkromfsimg.sh per creare un'immagine di boot romfs filesystem.
  • ELF e NxFLAT Esempi:. Non costruire casi di test che utilizzano task_create () se c'è un ambiente indirizzo
  • Strumenti
  • refresh.sh:. Aggiungere uno strumento per rendere le configurazioni rinfrescanti più facile quando si vuole fare un sacco di loro
  • mksyscall.c: Costruire syscalls che non necessitano di file di intestazione
  • .
  • mkexport.sh:. Aggiungi file .config esportare pacchetto
  • apps / strumenti: Vedi sopra per le nuove apps / tools scripts
  • .
  • Gli sforzi in corso. Di seguito sono le caratteristiche che vengono parzialmente implementate ma presenti in questa versione. Essi non sono suscettibili di essere completata al più presto.
  • Processi: Gran parte dei lavori in questa versione si concentra sulla realizzazione di processi utente in stile Unix in NuttX. C'è ancora molto da fare, però. La tabella di marcia e lo stato completo è disponibile all'indirizzo: http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
  • XMEGA: Ci sono alcuni frammenti in vigore per una porta XMEGA. Quella porta non è davvero iniziato, però.
  • Galileo: Allo stesso modo, ci sono frammenti in vigore per una porta Intel Galileo. La porta non è stato avviato sul serio sia.
  • Bugfix. Solo le correzioni più importanti sono elencate qui (vedi il ChangeLog per l'elenco completo delle correzioni di bug e per ulteriori informazioni bugfix più dettagliate):
  • Nucleo OS:
  • Kernel costruire correzioni: (1) la configurazione IDLE TCB deve indicare che il filo IDLE è un filo privilegiata kernel. (2) Non costruire task_create () o task_spawn () interfacce se c'è un ambiente indirizzo. (3) posix_spawn () filo procura kernel dovrebbe essere un kernel thread, non è un compito dell'utente.
  • Diverse interfacce pthread: Aggiungi storage class const a phthread parametri. Da Freddie Chopin.
  • sched / orologio: Rimuovere vestigia di g_tickbias; bisogno, invece, di applicare la variazione dell'ora di g_basetime al fine di fornire l'ora di sistema corretto.
  • chiamate di sistema: (1) Diversi errori di battitura fissi; l'integrazione corretta di exevc (), chiamate di sistema execvl (), posix_spawn (), e posix_spawnp (). (2) Se ci sono configurate per utilizzare una pila kernel mentre nella gestione SYSCALL, allora abbiamo bisogno di tornare allo stack all'utente di fornire un segnale.
  • File system / driver a blocchi / MTD:
  • procfs: Fissare qualche rottura procf introdotto riorganizzando alcune strutture di dati non reorganizable. Da Ken Pettit.
  • AT45: In at45db_bwrite (), il buffer non è aumentata quando si scrive più di 1 pagina. Sourceforge bug # 34.
  • Formati dei Binari:
  • delocalizzazione ELF: Alcuni tipi di trasloco non hanno un simbolo denominato ad essi associati. Il design non ha considerazione per questo caso.
  • ELF Loader. Bugfix critica .. BSS non veniva cancellato
  • Memory Management:
  • Granule Allocator: inizializzazione allocatore Granello usa allocatore sbagliato a mettere da parte la memoria del kernel
  • .
  • Gruppi privilegiati: Aggiungi una bandiera per struttura di gruppo: se il gruppo è stato creato da un kernel thread, quindi tutte le risorse del gruppo devono essere privilegiati
  • .
  • Supporto Cryptogrphic:
  • crittografia / cryptodev.c: Segmenti invertiti in includono il percorso del file. Notato da Brennan Ashton.
  • Driver comuni:
  • Comune CAN metà superiore: In can_txdone, camerieri il semaforo deve essere informato, indipendentemente dal valore di ritorno di can_xmit. Prima restituisce -EIO se non ci sono nuovi pacchetti, e secondo l'informazione dei camerieri è circa l'ultimo pacchetto trasferito. Da Daniel Lazlo Sitzer.
  • ARM:
  • chiamate di sistema: Correggere un errore di battitura in chiamata di sistema durante il recupero dei parametri dallo stack: regs [REG_PC] 4 è l'indirizzo, non regs [REG_PC + 4]
  • .
  • Driver STMicro STM32:
  • STM32 F401 UART: il supporto corretto per USART6 su questo chip. Da Freddie Chopin.
  • STM32 FLASH fissa: usare size_t invece di uint16_t, rendere l'interfaccia più generico. Da Freddie Chopin.
  • STM32 UART:. Fix per UART7 e UART8 sull'orologio STM32 abilitazione da Aton
  • CAN: Alla fine del gestore di interrupt, gli interrupt venivano disattivato, se tutti i pacchetti sono stati trasferiti quando è stato richiamato il gestore di interrupt. Questo è problematico, perché il gestore di interrupt chiama can_txdone () della parte superiore che può accodare nuovi pacchetti da inviare. Rimosso il blocco del tutto, perché can_txdone () can_xmit chiama (), che disabilita gli interrupt se non ci sono nuovi pacchetti da inviare. Da Daniel Lazlo Sitzer.
  • CAN:. Ulteriori STM32 CAN correzione proposta da Max Holtzberg
  • STMicro ST32 Boards:
  • configs / MIKROE-STM32F4: Fix pochi compilazione bug e correzioni minori del sorgente di configurazione MIKROE-STM32F4. Da Ken Pettit.
  • ARM9 / ARMv7-A:
  • chiamate di sistema: Fix ARM7 / 9 e Cortex-A SYSCALL: per le discussioni in modalità SVC, le istruzioni SVC clobbers R14. Questo deve essere presa in considerazione in assembly inline.
  • Task Setup: Tutte le attività, anche le attività in modalità utente, deve iniziare in modalità supervisore sino ad arrivare oltre il trampolino di avvio
  • .
  • ARMv7-A: modifica up_fullcontextrestore () per CONFIG_BUILD_KERNEL. Ha cambiato CPSR mentre nel kernel. Che si blocca se il nuovo CPSR è la modalità utente durante l'esecuzione nello spazio del kernel. Risolto con l'aggiunta di una chiamata di sistema SYS_context_restore. Esiste un'alternativa, modifica semplice up_fullcontextrestore (), che si sarebbe potuto fare: Sarebbe stato possibile utilizzare il SPSR posto del Compressore e poi fare un ritorno deroga up_fullcontextrestore (). Sarebbe più efficiente, ma non ho mai provato.
  • Atmel SAM3 / 4 schede:
  • SAM3X / Arduino Due: Fix typo in sam3x_periphclks.h; aggiungi definizioni SCLK a board.h file di intestazione. Da Fabien Comte.
  • SAM3 RTT: Solo famiglia SAM4 ha RTTDIS bit nel registro MR. SourceForge bug # 33 da Fabien Comte.
  • C Library:
  • sscanf (): NuttX libc cercato di indovinare il numero di caratteri analizzare, loro estratti in un buffer, poi corse strtol () su tale buffer. Quella ipotesi era spesso sbagliato. Un approccio migliore sarebbe quello di chiamare il strtol () direttamente sui dati di input, utilizzando il valore di ritorno endptr per determinare il numero di caratteri per saltare dopo l'analisi. Da Kosma Moczek.
  • Biblioteca Matematica:. Corretto atan2 implementazioni da Denis Arnst
  • virgola mobile in uscita: Passare alla lib_dtoa () per la correzione di errore di precisione da zeri finali. Da Bob Doiron.
  • Applicazioni:
  • comando Fix NSH PS:. Se non ci sono argomenti, potrebbe stampare spazzatura per lista di argomenti
  • Configurazione / Sistema Corporatura:
  • Null Esempio: Necessità di includere per la config.h so se questo è o non è una compilazione del kernel. Questo problema esiste ancora in molti altri file che può essere necessario definire main ().

Cosa c'è di nuovo nella versione 7.8:

  • Caratteristiche: Ulteriori nuove caratteristiche e funzionalità estesa:
  • Nucleo OS:
  • Watchdog Timer Allocation: (1) Se siamo a corto di tempo pre-assegnati watchdog, la logica ora stanziare i timer aggiuntive dal mucchio. Una riserva di timer watchdog preassegnati viene mantenuta in modo che ci sarà sempre timer disponibili per gestori di interrupt. (2) Aggiunto il supporto per watchdog timer allocato staticamente
  • Indirizzo Ambiente Support: (2) Nuove API del sistema operativo integrato in tutto il contesto specifico per la piattaforma di commutazione logica (up_block_task (), up_unblock_task (), _exit (), e altri)
  • .
  • Kernel costruire il sostegno: (1) Il MPU basato & quot; kernel costruzione & quot; rinominato in una build protetta (CONFIG_BUILD_PROTECTED); aggiunto il supporto per il nuovo MMU a base di & quot; kernel costruzione & quot; (CONFIG_BUILD_KERNEL), (2) La biblioteca chiamata di sistema può essere costruito con CONFIG_NUTTX_KERNEL. Nuova selezione *:. CONFIG_LIB_SYSCALL
  • all'avvio del sistema: Aggiungere opzioni di configurazione per avviare il sistema da un programma su un file system (contro un indirizzo nella memoria)
  • .
  • Startup passaggio di parametri: Ci usato per essere due modi per passare parametri a nuovi compiti, a seconda della configurazione: Entrambi (1) argv [] come creato come una matrice con ogni stringa strdup'ed. O (2) argv [] array e stringhe sono stati creati sullo stack prima che la nuova attività è stato avviato. Ora, vi è solo un modo, vie (2). Way (1) potrebbe essere leggermente più compatto, ma questo non vale portare la complessità di due modi diversi di fare la stessa cosa.
  • inizializzazione Consiglio: Aggiungi la capacità di eseguire l'inizializzazione bordo iniziale su un thread di lavoro separato. Questo è necessario perché ci sono molti casi in cui la logica di inizializzazione non può eseguire in start-up / thread inattivo. Questo perché il blocco o di attesa non è consentita sul filo IDLE.
  • Memory Management:
  • granuli Allocator: (1) Aggiungere una nuova funzione per la prenotazione regioni un-definibili nel mucchio dei granuli. (2) Aggiungere interfacce per supportare-un l'inizializzazione di un allocatore granuli.
  • Pagina Allocator: aggiungere un semplice allocatore pagina fisica in base granulo allocatore NuttX esistente. Io non sono certo se l'allocatore granello è sufficientemente deterministico per l'uso a lungo raggio, ma diventa ottenere un allocatore pagina in luogo per il test molto rapidamente.
  • Rimuovi CONFIG_MM_MULTIHEAP: operazione non multiheap non è più supportato
  • .
  • sbrk ():. Sbrk () è ora supportato nella build del kernel per consentire dimensioni dinamicamente, i cumuli per processo
  • Per-Process Cumuli: spazio all'inizio dello spazio dati di processo è ora riservato per strutture di gestione heap utente. Nella modalità di compilazione del kernel, queste strutture heap sono condivisi tra il codice del kernel e l'uso al fine di allocare i dati specifici dell'utente.
  • User heap Gestione: Quando un privilegiato esce filo, dobbiamo utilizzare l'allocatore kernel per liberare la memoria; quando un privilegiati thread esce, non c'è bisogno di fare nulla ... memoria heap verrà ripulita quando l'ambiente indirizzo è abbattuto.
  • Inter-Process Support Memoria condivisa: (1) Aggiungere implementazione e documentazione per shmget (), shmctl (), shmat (), e shmdt (). (2) Aggiungi sistema chiamate di sistema per supportare la porta chiamata utente alle interfacce di memoria condivisa. (3) Aggiungere definizioni di interfaccia specifici della piattaforma necessari per sostenere la funzione della memoria condivisa.
  • pagina virtuale Allocator: Aggiungere il supporto per una pagina allocatore virtuale per processo. Si tratta di un nuovo membro della struttura task_group_s. L'allocatore deve essere inizializzato quando viene avviato un nuovo processo utente e uninitialize quando il gruppo processo è finalmente distrutto. E 'utilizzato da shmat () e shmdt () per selezionare l'indirizzo virtuale su cui mappare la memoria fisica condivisa.
  • File system / driver a blocchi / MTD:
  • SMART FS: FS SMART e SMART FS procfs aggiornamenti da Ken Pettit
  • .
  • MTD:. Appare il livello MTD read-ahead / scrittura buffer è ora funzionale
  • Formati dei Binari:
  • Per-Process Heap:. Aggiungere logica per inizializzare il cumulo utente per processo quando viene avviato ogni processo utente
  • Grafica:
  • nxterm: modificare tutte le occorrenze di NxConsole per nxterm
  • .
  • Rete:
  • PHY Allarmi: (1) Standardizzare un'interfaccia attaccamento PHY interrupt. (2) Aggiunta di un ioctl che può essere utilizzato per notificare un'applicazione quando vi è un cambiamento di stato della rete segnalato da un interrupt PHY.
  • Migliore Invia Logic: In passato, il primo pacchetto invia ad un nuovo peer fallirebbe; non ci sarebbe alcuna voce nella tabella ARP per il peer e quindi una richiesta ARP potrebbe sostituire quel primo pacchetto. Ora come un'opzione se CONFIG_NET_ARP_SEND = y, tutti trasmettono la logica sarà (1) verificare se l'indirizzo MAC pari è in tabella ARP e, se non, (2) inviare richieste ARP periodicamente per ottenere la mappatura e (3) attendere il risposta ARP. Poi (4) quando la risposta ARP viene ricevuto allora sarà avviata la logica attuale di invio. Così ci può essere un ritardo con il primo pacchetto inviato a un nuovo pari, ma il pacchetto non deve essere perso
  • Simulazione Host:
  • SPI FLASH driver:. Emulata autista SPI FLASH per il target sim da Ken Pettit
  • Intel x86:
  • Host di default: L'host di default è ora x86_64 e l'opzione -m32 verrà selezionata automaticamente per simulazione costruisce
  • .
  • Intel 8051 Famiglia:
  • 8051 Rimosso: Rimosso tutto il supporto per il 8051 l'architettura famiglia dalla struttura di origine NuttX. Il codice obsoleto insieme con la patch di rimozione si trova ora in misc / / Obsoleted. Questo codice è stato rimosso perché (1), anche se alcune funzionalità è stata dimostrata, non sono a conoscenza di qualsiasi porta veramente riusciti di NuttX a qualsiasi 8051, e (2) il 8051, con il suo stack di hardware, impone limitazioni e complicazioni alle altre architetture e rendere la crescita e lo sviluppo di NuttX più complesso.
  • ZiLOG ZNEO Boards:
  • configurazioni / 16Z: Il supporto per questa scheda è stato rimosso dalla struttura di origine NuttX (ma ancora si può trovare nella directory / Obsoleted vari). Questa porta non è pronta per l'uso, ma può restituire alla struttura NuttX ad un certo punto in futuro.
  • Atmel SAM3 / 4 schede:
  • SAM4E-EK:. Aggiungere (1) un driver LCD basato su ILI9341-pienamente funzionale e (2) una configurazione NxWM completamente funzionale
  • ARMv7-A:
  • Ambienti Indirizzo: Aggiungi il supporto per gli ambienti di indirizzi di applicazione utilizzando il Cortex-A MMU. Implementare interfacce specifiche della piattaforma standardizzati di NuttX sostegno dell'ambiente indirizzo.
  • Attività cache: Implementare standardizzati, le operazioni di cache specifiche della piattaforma. Questi sono chiamati dal caricatore ELF al fine di svuotare D-cache e invalidare I-cache dopo un modulo di ELF è stato caricato in memoria. Con questa modifica, i moduli ELF funzionano correttamente sul SAMA5 / Cortex-A piattaforma.
  • Kernel Corporatura: (1) Aggiungere le implementazioni di porta chiamata di sistema. (2) Aggiungere CRT0 file di start-up che può essere collegato con programmi utente costruiti separatamente. (3) Aggiungere il supporto per la consegna dei segnali uso in modalità nella compilazione del kernel. (4) Aggiungere logica per inizializzare il cumulo utente per processo quando viene avviato ogni processo utente. (5) ARMv7-A la gestione delle eccezioni ha bisogno di lavorare un po 'diverso, se sosteniamo processi in modalità utente. Questo perché R13 e R14 sono paging in modo diverso tra utente e la modalità SVC.
  • Shared Supporto Memoria: (1) Aggiungere la logica necessaria per gestire rimappatura della memoria condivisa su cambi di contesto. (2) Estendere conversioni di indirizzi virtuali / fisici per includere gli indirizzi di memoria condivisa. (3) Aggiungere attuazione del sostegno memoria condivisa specifico per la piattaforma.
  • Driver Atmel SAMA5D:
  • Rete ioctls:. Implementare tutti ioctls di rete, tra cui il nuovo ioctl per le notifiche degli eventi di installazione PHY
  • Conversioni Indirizzo:. In kernel costruiscono con l'ambiente indirizzo, necessario logica per mappare gli indirizzi virtuali in indirizzi fisici degli utenti, e viceversa
  • Atmel SAMA5D Boards:
  • SAMA5D3 Xplained, SAMA5D3-EK, e SAMA5D4-EK: Converti interfacce bordo PHY specifico interrupt esistente per utilizzare l'interfaccia standard di nuova definizione
  • .
  • SAMA5D4-EK: Aggiungere una configurazione per testare la configurazione di compilazione del kernel. Ci sono configurazioni per l'avvio o da una scheda SD o da e in memoria del file system romfs.
  • SAMA5D4-EK: Aggiungere documentazione / supporto per Rev E. bordo
  • .
  • Driver STMicro STM32:
  • Ethernet: modificato per supportare il cambiamento con la rete cambia firma ioctl. Anche aggiungere il supporto per nuovi ioctl di notifiche degli eventi di installazione PHY.
  • STMicro STM32 Boards:
  • STM32F4DISCOVERY con STM32F4DIS-BB: Aggiunta di una rete abilitata la configurazione NSH per la scheda STM32F4DISCOVERY con la scheda base STM32F4DIS-BB installato. Include il supporto per lo slot per schede microSD sulla scheda base STM32F4DIS-BB.
  • Driver TI Tiva:
  • TI CC3200: Aggiunge il supporto per il CC3200 TI. Da Jim Ewing.
  • TI Tiva Boards:
  • TI CC3200 Launchpad: Aggiunge il supporto per la TI CC3200 Launchpad. Da Jim Ewing.
  • C Library:
  • poll ():. Re-implementata poll () ritardo utilizzando sem_timedwait ()
  • Configurazione / Sistema Corporatura:
  • Esporta destinazione: nel kernel o protette costruisce, (1) solo le librerie utente devono essere esportati, (2) non copiare i file di intestazione interne o costruire script se questo è un kernel o costruire protetta, e (3) esigenze per impacchettare il file utente C avvio (crt0), non l'oggetto testa kernel per il kernel e protetto costruisce.
  • Programma CFLAGS: Aggiungere logica che ci permetterà di costruire librerie utente con CFLAGS diverse rispetto del codice del kernel. Questo è necessario perché abbiamo bisogno l'opzione -fno-comune quando si costruisce il codice ELF per evitare delocalizzazioni SHN_COMMON.
  • Applicazioni:
  • NSH: Estendere la logica inizializzazione della rete NSH. Vi è ora un'opzione che creerà un thread di monitoraggio di rete in grado di monitorare lo stato del collegamento. Quando il collegamento va giù, il codice tenterà di mettere con grazia il driver Ethernet in uno stato giù; Quando il collegamento ritorna, il codice cercherà di portare la rete di back up.
  • ELF. Esempio: Il test ELF / esempio è stato esteso in modo che i singoli programmi di test ELF possono collegare con la libreria SYSCALL (se disponibile) o contro la libreria C per eliminare o ridurre al minimo la necessità di tabelle di simboli
  • nxterm: modificare tutte le occorrenze di NxConsole per nxterm
  • .
  • MTDRWB. Esempio: Aggiungi un esempio per testare MTD R / W buffer
  • OS Prova Esempio: Aggiungi un test banale di sem_timedwait ()
  • .
































































































































































  • Bugfix:






































































































Programmi simili

Ubuntu Touch
Ubuntu Touch

17 Feb 15

Linux-on-android
Linux-on-android

19 Feb 15

BoxmaX.S3.5
BoxmaX.S3.5

15 Apr 15

Commenti a NuttX

I commenti non trovato
Aggiungi commento
Accendere le immagini!