NuttX

Skjermbilde programvare:
NuttX
Prog.varedetaljer:
Versjon: 7.9 Oppdatert
Last opp dato: 10 May 15
Utvikler: Gregory Nutt
Lisens: Gratis
Popularitet: 53

Rating: 4.0/5 (Total Votes: 1)

NuttX er en åpen kildekode, deterministisk og gratis real-time innebygd operativsystem (RTOS), designet fra offset til å være brukbare i dypt forankret, ressurs begrenset miljøer. Den har et lite fotavtrykk som er brukbare i mikro-kontrolleren miljøer, og det & rsquo; s fullt skalerbart fra bittesmå (8-bit) til moderat innebygd (32-bit) systemer.
Det har også som mål å være fullt kompatibel med standarder, for å være helt sann tid, og for å være helt åpen. NuttX har et rikt utvalg av OS sett, en modulær design, det er svært skalerbar og konfigurerbar, samt standarder kompatibel. Det er fordelt med en ikke-restriktiv BSD-lisens. Det blir ofte kalt av sine utviklere som «Tiny Linux." Funksjoner til en glanceKey funksjoner inkluderer kjerneoppgave ledelse, BSD socket grensesnitt, minne allocators (delt minne, standard heap memory allocation, beskyttet bygge med MPU, flat innebygd bygge, per-prosess hauger, granulat måler og dynamisk størrelse), minnekonfigurasjoner, porting anvisning, fullt preemptible, tickless drift, on-demand paging og system logging.
I tillegg kommer prosjekt med extensions å administrere forkjøpsrett, per-tråd, innebygd CPU belastning målinger, omfattende dokumentasjon, valgfrie oppgaver som inneholder adresse miljøer, ANSI-lignende og POSIX-lignende oppgave kontroller, klokker, pthreads, miljø variabler, signaler, kalt meldingskøer, timere, filsystem og teller semaforer.
Blant andre funksjoner kan vi nevne round-robin planlegging, FIFO, støtte for prioritert arv, støtte for SoC arkitektur, støtte for styret arkitekturer, støtte for nye prosessorarkitekturer, vaktbikkje timere, VxWorks-lignende oppgave ledelse, I / O omadressering og overføres & ldquo; kontrollerende terminaler & rdquo;. Støttet platformsNuttX støtter et bredt spekter av maskinvareplattformer, blant hvilke vi kan nevne mange ARM-prosessorer, inkludert ARM Cortex-M3, ARM926EJS, ARM7TDMI, ARM Cortex-M4, ARM Cortex-M0, ARM920T og ARM Cortex-A5, samt Atmel 8-bit AVR, Freescale M68HCS12, AVR32 avr plattformer.
I tillegg støtter den også ulike Intel plattformer, for eksempel Microchip PIC32MX (MIPS), 80c52 og 80-ganger; 86, Zilog plattformer, inkludert Zilog Z80, Zilog Z16F, Zilog Z8Encore! og Zilog eZ80 Acclaim !, og Renesas / Hitachi SuperH og Renesas M16C / 26 plattformer

Hva er nytt i denne utgaven.

  • Funksjoner: Flere nye funksjoner og utvidet funksjonalitet:
  • Kjerne OS:
  • Watchdog Timer Allocation: (1) Hvis vi går tom for pre-tildelt vaktbikkje ganger, vil logikken nå bevilge ytterligere timere fra haugen. En reserve av pre-tildelt vaktbikkje timere opprettholdes, slik at det alltid vil være tidtakere tilgjengelige for interrupt handlers. (2) Lagt til støtte for statisk allokert watchdog timer
  • Adresse Miljø Support: (2) Nye OS APIer integreres i all plattformspesifikke kontekst omkoblingslogikk (up_block_task (), up_unblock_task (), _exit (), og andre)
  • .
  • Kernel Bygg Support: (1) MPU basert & quot; kernel build & quot; omdøpt til en beskyttet bygge (CONFIG_BUILD_PROTECTED); lagt til støtte for en ny MMU-baserte & quot; kernel build & quot; (CONFIG_BUILD_KERNEL), (2) system samtale biblioteket kan nå bli bygget med CONFIG_NUTTX_KERNEL. Nytt utvalg *:. CONFIG_LIB_SYSCALL
  • System Startup: Legg konfigurasjonsmuligheter for å starte systemet fra et program på et filsystem (versus en adresse i minnet)
  • .
  • Startup Parameter pasninger: Det pleide å være to måter å passere parametere til nye oppgaver, avhengig av konfigurasjon: Enten (1) argv [] som opprettet som en matrise med hver streng strdup'ed. Eller (2) argv [] array og strenger ble opprettet på stakken før den nye oppgaven ble startet. Nå er det bare én vei, vei (2). Way (1) kan være litt mer kompakt, men dette er ikke verdt bære kompleksiteten i to ulike måter å gjøre det samme.
  • Board initialisering: Legg evne til å utføre innledende styret initialisering på en egen arbeidstaker tråden. Dette er nødvendig fordi det er mange tilfeller der initialisering logikk ikke kan utføre på start-up / IDLE tråden. Det er fordi blokkere eller venter er ikke tillatt på IDLE tråden.
  • Memory Management:
  • Granule tildeler: (1) Legg til en ny funksjon for å reservere un fordel regioner i granulat haugen. (2) Legg grensesnitt for å støtte FN-initialisering et granulat måleren.
  • Page tildeler: Legg en enkel fysisk side måler basert på eksisterende NuttX granulat måleren. Jeg er ikke sikker på om den granulat måleren er tilstrekkelig deterministisk for langvarig bruk rekkevidde, men det får bli en side måleren på plass for å teste svært raskt.
  • Fjern CONFIG_MM_MULTIHEAP: Non-multiheap operasjonen støttes ikke lenger
  • .
  • sbrk ():. Sbrk () er nå støttet i kjernen bygge å tillate dynamisk størrelse, pr-prosessen hauger
  • Per-Process Heaps: Space i begynnelsen av prosessen dataplass er nå reservert for brukeren heap ledelsesstrukturer. I kjernen byggemodus, er disse heap strukturer delt mellom kjernen og bruk kode for å tildele brukerspesifikke data.
  • User Heap Management: Når en privilegert tråd utganger, må vi bruke kjernen måleren for å frigjøre minne; når en svakstilte tråden utganger, trenger vi ikke å gjøre noe ... heap minne vil bli ryddet opp når adressen miljøet er revet ned.
  • Inter-Process Delt minne Support: (1) Legg gjennomføring og dokumentasjon for shmget (), shmctl (), shmat (), og shmdt (). (2) Legg system systemkall for å støtte brukeren samtalen porten til delt minne grensesnitt. (3) Legg plattformspesifikke grensesnitt definisjoner for å støtte den med delt minne.
  • Virtual Page tildeler: Legge til støtte for en per-prosess virtuell siden måleren. Dette er et nytt medlem av task_group_s struktur. Måleren må initialiseres når en ny bruker prosessen er startet og avmontere når prosessen gruppen er endelig ødelagt. Den brukes av shmat () og shmdt () for å plukke den virtuelle adressen på å kartlegge felles fysiske minnet.
  • filsystemer / Block Drivere / MTD:
  • SMART FS: SMART FS og SMART FS procfs oppdateringer fra Ken Pettit
  • .
  • MTD:. MTD Lese / skrive buffer lag vises er nå funksjonell
  • binære formater:
  • Per-Process Heap. Legg logikk for å initialisere per-prosessen bruker haugen når hver bruker prosessen er startet
  • Grafikk:
  • NxTerm: Endre alle forekomster av NxConsole å NxTerm
  • .
  • Nettverk:
  • PHY Avbryter: (1) Standard en PHY interrupt vedlegg grensesnitt. (2) Tilsett til støtte for en ioctl som kan brukes til å varsle en applikasjon når det er en endring i nettverksstatus signaliseres av et PHY avbrudds.
  • Forbedret Send Logic: I det siste, den første pakken sende til et nytt nettverk peer ville mislykkes; det skulle være noen oppføring i ARP tabellen for peer og så en ARP forespørsel kunne erstatte den første pakken. Nå som et alternativ hvis CONFIG_NET_ARP_SEND = y, all send logikk vil (1) sjekke om peer MAC-adressen er i ARP tabellen, og hvis ikke, (2) sende ARP forespørsler jevne mellomrom for å få kartlegging og (3) vente på ARP respons. Deretter (4) når ARP svar er mottatt deretter selve sendelogikken vil bli igangsatt. Således kan det forekomme en forsinkelse med den første pakken sendes til en ny node, men pakken skal ikke gå tapt
  • Host Simulering:
  • SPI FLASH Driver:. Emulert SPI FLASH driver for sim målet fra Ken Pettit
  • Intel x86:
  • Standard Host: Standard verts er nå x86_64 og -m32 alternativet velges automatisk for simulering bygger
  • .
  • Intel 8051 Familie:
  • 8051 Fjernet: Fjernet all støtte for 8051 familien arkitektur fra NuttX kilden treet. Den obsoleted koden sammen med fjerning patch kan nå bli funnet på diverse / obsoleted /. Denne koden ble fjernet fordi (1), selv om noe av funksjonaliteten er påvist, jeg kjenner ikke til noen virkelig vellykkede havnene NuttX til noen 8051, og (2) 8051, med sin hardware stack, tvinger begrensninger og komplikasjoner til andre arkitekturer og gjøre vekst og utvikling av NuttX mer kompleks.
  • Zilog ZNeo Boards:
  • configs / 16z: Støtte for dette brettet har blitt fjernet fra NuttX kildetre (men fortsatt kan finnes i misc / obsoleted katalog). Denne porten er ikke klar for bruk, men kan returnere til NuttX treet på et tidspunkt i fremtiden.
  • Atmel SAM3 / 4 Boards:
  • SAM4E-EK:. Legg til (1) en fullt funksjonell ILI9341-baserte LCD driver og (2) en fullt funksjonell NxWM konfigurasjon
  • ARMv7-A:
  • Adresse Environments: Legge til støtte for søknaden adresse miljøer ved hjelp av Cortex-A MMU. Implementere standardiserte plattformspesifikke grensesnitt NuttX adresse miljø støtte.
  • Cache Operations: Implementere standardiserte, plattformspesifikke cache operasjoner. Disse kalles fra ELF loader for å skylle D-cache og ugyldig I-cache etter en ELF-modulen har blitt lastet inn i minnet. Med denne endringen, ELF modulene fungerer riktig på SAMA5 / Cortex-A-plattformen.
  • Kernel Bygg: (1) Legg implementeringer av systemkall gate. (2) Legg CRT0 oppstart fil som kan knyttes med inne separat brukerprogrammer. (3) Legge til støtte for levering av bruk-modus signaler i kjernen bygge. (4) Legg logikk for å initialisere per-prosessen bruker haugen når hver bruker prosessen er startet. (5) ARMv7-A avvikshåndtering må jobbe litt annerledes hvis vi støtter brukermodusprosesser. Dette er fordi R13 og R14 er vekslet ulikt mellom bruker og SVC-modus.
  • Delt minne Support: (1) Legg logikk er nødvendig for å håndtere remapping av delt minne på kontekst brytere. (2) Utvide virtuelle / fysiske adresse konverter å inkludere adresser i delt minne. (3) Legg implementering av plattformspesifikke minnestøtte delt.
  • Atmel SAMA5D Drivere:
  • Nettverk Ioctls.: Implementere alle nettverks ioctls, inkludert den nye ioctl å sette PHY hendelsesvarsler
  • Adressekonverteringer. I kjernen bygge med adresse miljø, må logisk å kartlegge bruker virtuelle adresser til fysiske adresser, og vice versa
  • Atmel SAMA5D Boards:
  • SAMA5D3 Xplained, SAMA5D3-EK, og SAMA5D4-EK: Konverter eksisterende styret bestemt PHY avbrudds grensesnitt for å bruke nylig definerte standard grensesnitt
  • .
  • SAMA5D4-EK: Legg en konfigurasjon for testing kjernen bygge konfigurasjon. Det er konfigurasjoner for å starte opp enten fra et SD-kort eller fra og in-memory ROMFS filsystemet.
  • SAMA5D4-EK: Legg dokumentasjon / support for Rev E. bord
  • .
  • STMicro STM32 Drivere:
  • Ethernet: endret for å støtte endring av nettverk ioctl signatur endringer. Legger også til støtte for nye ioctl å sette PHY hendelsesvarsler.
  • STMicro STM32 Boards:
  • STM32F4Discovery med STM32F4DIS-BB: Legg et nettverk aktivert NSH konfigurasjon for STM32F4Discovery kortet med STM32F4DIS-BB basiskort installert. Inkluderer støtte for microSD-kortsporet på STM32F4DIS-BB basiskort.
  • TI TIVA Drivere:
  • TI CC3200: Legg støtte for TI CC3200. Fra Jim Ewing.
  • TI TIVA Boards:
  • TI CC3200 Launchpad: Legg støtte for TI CC3200 Launchpad. Fra Jim Ewing.
  • C Library:
  • meningsmåling (). Re-implementert meningsmåling () forsinkelse hjelp sem_timedwait ()
  • Configuration / Bygg System:
  • Eksporter Target: I kjernen eller beskyttet bygger, (1) bare bruker bibliotekene skal eksporteres, (2) ikke kopier interne header filer eller bygge skript om dette er en kjerne eller beskyttet bygge, og (3) behov å pakke opp brukeren C oppstartsfilen (crt0), ikke kjernen hodet objekt for kjernen og beskyttet bygger.
  • Program CFLAGS: Legg logikk som vil tillate oss å bygge bruker bibliotekene med ulike CFLAGS enn kjernen koden. Dette er nødvendig fordi vi trenger den -fno-vanligste alternativet når du bygger ELF-kode for å hindre SHN_COMMON omplasseringer.
  • Programmer:
  • NSH: NSH initiering av nettverket logikk Extend. Det er nå et alternativ som vil skape et nettverk monitor tråd som vil overvåke tilstanden til link. Når koblingen går ned, vil koden forsøke å grasiøst sette Ethernet driver i en down tilstand; Når linken kommer tilbake, vil koden forsøke å bringe nettverket opp igjen.
  • ELF. Eksempel: Den ELF test / eksempel har blitt utvidet slik at enkelte ELF testprogrammene kan koble mot syscall biblioteket (hvis det er tilgjengelig) eller mot C-bibliotek for å eliminere eller minimere behovet for symbol tabeller
  • NxTerm: Endre alle forekomster av NxConsole å NxTerm
  • .
  • MTDRWB. Eksempel: Legg et eksempel for å teste MTD R / W bufring
  • OS Test Eksempel: Legg en triviell test av sem_timedwait ()
  • .
  • Applikasjonskonfigurasjon / Bygg System:
  • Import Target: (1) Legg logikk som gjør at byggesaker mot en NuttX eksport pakke (vs. nuttx / kilden treet). (2) Legg .config å eksportere pakken. (3) Lag apps / import. Lag apps / import / Make.defs som gjør ting som definerer CFLAGS; ELF build krever -fno-vanlig i CFLAGS. Kopiere noen basen logikk fra nuttx / verktøy / Config.mk til apps / import / Make.defs. (4) Legg apps / import / scripts / gnu-elf.ld GCC linker script for ELF import bygger.
  • Alle Make-filer: (1) Legg en installasjon målet til alle Make-filer. For import bygge, gjør toppnivå Makefile nå to omganger: (1) bygger libapp.a, deretter (2) installerer programmene i apps / bin. (2) Legg programinstallasjon for CONFIG_BUILD_KERNEL i alle Make-filer som bygger en main (). (3) For kernel bygge, kan objektet fil som inneholder main () ikke gå inn i biblioteket på grunn av navnekollisjoner. Objektet filen må håndteres som et spesielt tilfelle i hvert Makefile.
  • alle innebygde programmer: Med kernel build (CONFIG_BUILD_KERNEL), inngangspunkt til alle oppgaver er main (), ikke noen xyz_main ()
  • .
  • NSH: Flere kommandoer må deaktiveres i kjernen bygge fordi de er avhengig av grensesnitt som ikke er tilgjengelige utenfor kjernen. Dd, df, losetup, mkfatfs, mkdr, og ps
  • apps / verktøy /: (1) Legg mkimport.sh å eksplodere en NuttX import pakken og installere i apps / import. (2) Legg mkromfsimg.sh skript for å lage en BOOT ROMFS filsystem bildet.
  • ELF og NxFLAT Eksempler:. Ikke bygg testtilfeller som bruker task_create () hvis det er en adresse miljø
  • Verktøy:
  • refresh.sh.: Legg et verktøy for å lage forfriskende konfigurasjoner enklere når du ønsker å gjøre mye av dem
  • mksyscall.c: Bygg syscalls som ikke trenger header filer
  • .
  • mkexport.sh.: Legg .config å eksportere pakke
  • apps / verktøy: Se ovenfor for nye apps / verktøy scripts
  • .
  • Arbeidet pågår. Følgende er funksjoner som er delvis implementert, men som finnes i denne utgaven. De er ikke sannsynlig å bli ferdig snart.
  • Prosesser: Mye av arbeidet i denne utgaven er fokusert på realisering av Unix-stil brukerprosesser i NuttX. Det er mer som må gjøres, men. Den fulle veikart og status er tilgjengelig på: http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
  • XMega: Det er noen fragmenter i stedet for en XMega port. Denne porten har egentlig ikke startet, men.
  • Galileo: Tilsvarende er det fragmenter i stedet for en Intel Galileo port. Porten ikke startet for alvor heller.
  • Bugfikses. Bare de mest kritiske feilrettinger er listet opp her (se ChangeLog for en oversikt over feilrettinger og for ytterligere og mer detaljert feilretting informasjon):
  • Kjerne OS:
  • Kernel bygge reparasjoner: (1) IDLE TCB oppsett må indikere at IDLE tråden er en privilegert, kjerne tråd. (2) Ikke bygg task_create () eller task_spawn () grensesnitt hvis det er en adresse miljø. (3) posix_spawn () kernel proxy tråden bør være en kjerne tråd, ikke en bruker oppgave.
  • Flere pthread grensesnitt: Legg const lagring klassen phthread parametere. Fra Freddie Chopin.
  • sched / klokke: Fjern rester av g_tickbias; behøver, i stedet for å bruke tid skjevhet til g_basetime for å gi riktig systemtiden.
  • System Samtaler: (1) Flere skrivefeil fast; korrigert integrering av exevc (), execvl (), posix_spawn (), og posix_spawnp () systemkall. (2) Hvis vi er konfigurert til å bruke en kjerne stabel mens i syscall håndtering, så vi trenger å bytte tilbake til brukeren stabelen for å levere et signal.
  • filsystemer / Block Drivere / MTD:
  • procfs: Fix noen procf brudd introdusert ved å omorganisere noen ikke-reorganizable datastrukturer. Fra Ken Pettit.
  • AT45: I at45db_bwrite (), er bufferen ikke økt når du skriver mer enn en side. Sourceforge bug # 34.
  • binære formater:
  • ELF omplasseringer: Noen flyttetypene ikke har en navngitt symbol forbundet med dem. Utformingen ikke står for dette tilfellet.
  • ELF Loader.: Kritisk feilretting .. BSS ble ikke blir fjernet
  • Memory Management:
  • Granule tildeler: Granule måleren initialisering bruker feil måleren til å sette av kjerneminne
  • .
  • privilegerte grupper: Legg et flagg til konsernstruktur: Dersom gruppen er opprettet av en kjerne tråd, da alle ressurser i gruppen må være privilegert
  • .
  • Cryptogrphic Support:
  • krypto / cryptodev.c: bane segmenter reverseres i include file path. Bemerket av Brennan Ashton.
  • Vanlige Drivere:
  • Common KAN øvre halvdel: I can_txdone, servitører på semafor bør informeres uavhengig av returverdien av can_xmit. Først den returnerer -EIO hvis det ikke er noen nye pakker, og andre opplysninger av servitører er om den siste overført pakken. Fra Daniel Lazlo Sitzer.
  • ARM:
  • System Samtaler: fikse en skrivefeil i systemkall ved henting parameter fra bunken: regs [REG_PC] 4 er adressen, ikke regs [REG_PC + 4]
  • .
  • STMicro STM32 Drivere:
  • STM32 F401 UART: Riktig støtte for USART6 på denne brikken. Fra Freddie Chopin.
  • STM32 FLASH løser: bruk size_t istedenfor uint16_t, gjøre grensesnittet mer generisk. Fra Freddie Chopin.
  • STM32 UART.: Fix for UART7 og UART8 på STM32 klokke aktivere fra Aton
  • CAN: På slutten av interrupt handler ble avbrudd blir deaktivert hvis alle pakker er blitt overført når avbruddet behandleren ble påberopt. Dette er problematisk, fordi interrupt handler kaller can_txdone () på den øvre halvdelen som kan Enqueue nye pakker å sende. Fjernet blokken helt, fordi can_txdone () kaller can_xmit () som deaktiverer avbrudd hvis det ikke er noen nye pakker å sende. Fra Daniel Lazlo Sitzer.
  • CAN:. Tilleggs STM32 CAN korreksjon foreslått av Max Holtzberg
  • STMicro ST32 Boards:
  • configs / mikroe-stm32f4: Fix noen kompilere bugs og mindre korreksjoner til mikroe-stm32f4 konfigurasjon kilde. Fra Ken Pettit.
  • ARM9 / ARMv7-A:
  • System Calls: Fix ARM7 / 9 og Cortex-A SYSCALLs: For tråder i SVC-modus, SVC instruksjoner clobbers R14. Dette må tas hensyn til i inline montering.
  • Task Oppsett: Alle oppgaver, selv brukermodus oppgaver, må starte i veileder modus før de kommer forbi oppstart trampoline
  • .
  • ARMv7-A: Endre up_fullcontextrestore () for CONFIG_BUILD_KERNEL. Det endret CPSR mens i kjernen. Det vil krasje dersom den nye CPSR er brukermodus mens du utfører i kjernen plass. Fikset ved å legge en SYS_context_restore systemkall. Det er et alternativ, enklere modifikasjon til up_fullcontextrestore () som kunne vært gjort: Det kan ha vært mulig å bruke SPSR stedet for CPRSR og deretter gjøre et unntak retur fra up_fullcontextrestore (). Det ville være mer effektiv, men jeg har aldri prøvd det.
  • Atmel SAM3 / 4 Boards:
  • SAM3X / Arduino Due: Fix skrivefeil i sam3x_periphclks.h; legge SCLK definisjoner for å board.h header fil. Fra Fabien Comte.
  • SAM3 RTT: Bare SAM4 familien har RTTDIS litt i MR register. SourceForge bug # 33 fra Fabien Comte.
  • C Library:
  • sscanf (): NuttX libc prøvde å gjette hvor mange karakterer å analysere, hentet dem inn i en buffer, deretter kjørte strtol () på at buffer. Det gjetning var ofte galt. En bedre tilnærming ville være å kalle strtol () direkte på inngangsdata ved hjelp av endptr returverdi for å bestemme hvor mange tegn til å hoppe etter parsing. Fra Kosma Moczek.
  • Math Library:. Korrigert ATAN2 implementeringer fra Denis Arnst
  • Floating Point Output: Bytt til lib_dtoa () for å fikse presisjon feil fra etterfølgende nuller. Fra Bob Doiron.
  • Programmer:
  • Fix NSH PS kommando. Hvis det ikke er noen argumenter, kan det skrives ut søppel for argument liste
  • Configuration / Bygg System:
  • Null Eksempel: Trenger du å inkludere config.h det for vite om dette er eller ikke er en kernel bygge. Dette problemet eksisterer fortsatt i flere andre fil som kan ha behov for å definere main ().

Hva er nytt i versjon 7.8:

  • Funksjoner: Flere nye funksjoner og utvidet funksjonalitet:
  • Kjerne OS:
  • Watchdog Timer Allocation: (1) Hvis vi går tom for pre-tildelt vaktbikkje ganger, vil logikken nå bevilge ytterligere timere fra haugen. En reserve av pre-tildelt vaktbikkje timere opprettholdes, slik at det alltid vil være tidtakere tilgjengelige for interrupt handlers. (2) Lagt til støtte for statisk allokert watchdog timer
  • Adresse Miljø Support: (2) Nye OS APIer integreres i all plattformspesifikke kontekst omkoblingslogikk (up_block_task (), up_unblock_task (), _exit (), og andre)
  • .
  • Kernel Bygg Support: (1) MPU basert & quot; kernel build & quot; omdøpt til en beskyttet bygge (CONFIG_BUILD_PROTECTED); lagt til støtte for en ny MMU-baserte & quot; kernel build & quot; (CONFIG_BUILD_KERNEL), (2) system samtale biblioteket kan nå bli bygget med CONFIG_NUTTX_KERNEL. Nytt utvalg *:. CONFIG_LIB_SYSCALL
  • System Startup: Legg konfigurasjonsmuligheter for å starte systemet fra et program på et filsystem (versus en adresse i minnet)
  • .
  • Startup Parameter pasninger: Det pleide å være to måter å passere parametere til nye oppgaver, avhengig av konfigurasjon: Enten (1) argv [] som opprettet som en matrise med hver streng strdup'ed. Eller (2) argv [] array og strenger ble opprettet på stakken før den nye oppgaven ble startet. Nå er det bare én vei, vei (2). Way (1) kan være litt mer kompakt, men dette er ikke verdt bære kompleksiteten i to ulike måter å gjøre det samme.
  • Board initialisering: Legg evne til å utføre innledende styret initialisering på en egen arbeidstaker tråden. Dette er nødvendig fordi det er mange tilfeller der initialisering logikk ikke kan utføre på start-up / IDLE tråden. Det er fordi blokkere eller venter er ikke tillatt på IDLE tråden.
  • Memory Management:
  • Granule tildeler: (1) Legg til en ny funksjon for å reservere un fordel regioner i granulat haugen. (2) Legg grensesnitt for å støtte FN-initialisering et granulat måleren.
  • Page tildeler: Legg en enkel fysisk side måler basert på eksisterende NuttX granulat måleren. Jeg er ikke sikker på om den granulat måleren er tilstrekkelig deterministisk for langvarig bruk rekkevidde, men det får bli en side måleren på plass for å teste svært raskt.
  • Fjern CONFIG_MM_MULTIHEAP: Non-multiheap operasjonen støttes ikke lenger
  • .
  • sbrk ():. Sbrk () er nå støttet i kjernen bygge å tillate dynamisk størrelse, pr-prosessen hauger
  • Per-Process Heaps: Space i begynnelsen av prosessen dataplass er nå reservert for brukeren heap ledelsesstrukturer. I kjernen byggemodus, er disse heap strukturer delt mellom kjernen og bruk kode for å tildele brukerspesifikke data.
  • User Heap Management: Når en privilegert tråd utganger, må vi bruke kjernen måleren for å frigjøre minne; når en svakstilte tråden utganger, trenger vi ikke å gjøre noe ... heap minne vil bli ryddet opp når adressen miljøet er revet ned.
  • Inter-Process Delt minne Support: (1) Legg gjennomføring og dokumentasjon for shmget (), shmctl (), shmat (), og shmdt (). (2) Legg system systemkall for å støtte brukeren samtalen porten til delt minne grensesnitt. (3) Legg plattformspesifikke grensesnitt definisjoner for å støtte den med delt minne.
  • Virtual Page tildeler: Legge til støtte for en per-prosess virtuell siden måleren. Dette er et nytt medlem av task_group_s struktur. Måleren må initialiseres når en ny bruker prosessen er startet og avmontere når prosessen gruppen er endelig ødelagt. Den brukes av shmat () og shmdt () for å plukke den virtuelle adressen på å kartlegge felles fysiske minnet.
  • filsystemer / Block Drivere / MTD:
  • SMART FS: SMART FS og SMART FS procfs oppdateringer fra Ken Pettit
  • .
  • MTD:. MTD Lese / skrive buffer lag vises er nå funksjonell
  • binære formater:
  • Per-Process Heap. Legg logikk for å initialisere per-prosessen bruker haugen når hver bruker prosessen er startet
  • Grafikk:
  • NxTerm: Endre alle forekomster av NxConsole å NxTerm
  • .
  • Nettverk:
  • PHY Avbryter: (1) Standard en PHY interrupt vedlegg grensesnitt. (2) Tilsett til støtte for en ioctl som kan brukes til å varsle en applikasjon når det er en endring i nettverksstatus signaliseres av et PHY avbrudds.
  • Forbedret Send Logic: I det siste, den første pakken sende til et nytt nettverk peer ville mislykkes; det skulle være noen oppføring i ARP tabellen for peer og så en ARP forespørsel kunne erstatte den første pakken. Nå som et alternativ hvis CONFIG_NET_ARP_SEND = y, all send logikk vil (1) sjekke om peer MAC-adressen er i ARP tabellen, og hvis ikke, (2) sende ARP forespørsler jevne mellomrom for å få kartlegging og (3) vente på ARP respons. Deretter (4) når ARP svar er mottatt deretter selve sendelogikken vil bli igangsatt. Således kan det forekomme en forsinkelse med den første pakken sendes til en ny node, men pakken skal ikke gå tapt
  • Host Simulering:
  • SPI FLASH Driver:. Emulert SPI FLASH driver for sim målet fra Ken Pettit
  • Intel x86:
  • Standard Host: Standard verts er nå x86_64 og -m32 alternativet velges automatisk for simulering bygger
  • .
  • Intel 8051 Familie:
  • 8051 Fjernet: Fjernet all støtte for 8051 familien arkitektur fra NuttX kilden treet. Den obsoleted koden sammen med fjerning patch kan nå bli funnet på diverse / obsoleted /. Denne koden ble fjernet fordi (1), selv om noe av funksjonaliteten er påvist, jeg kjenner ikke til noen virkelig vellykkede havnene NuttX til noen 8051, og (2) 8051, med sin hardware stack, tvinger begrensninger og komplikasjoner til andre arkitekturer og gjøre vekst og utvikling av NuttX mer kompleks.
  • Zilog ZNeo Boards:
  • configs / 16z: Støtte for dette brettet har blitt fjernet fra NuttX kildetre (men fortsatt kan finnes i misc / obsoleted katalog). Denne porten er ikke klar for bruk, men kan returnere til NuttX treet på et tidspunkt i fremtiden.
  • Atmel SAM3 / 4 Boards:
  • SAM4E-EK:. Legg til (1) en fullt funksjonell ILI9341-baserte LCD driver og (2) en fullt funksjonell NxWM konfigurasjon
  • ARMv7-A:
  • Adresse Environments: Legge til støtte for søknaden adresse miljøer ved hjelp av Cortex-A MMU. Implementere standardiserte plattformspesifikke grensesnitt NuttX adresse miljø støtte.
  • Cache Operations: Implementere standardiserte, plattformspesifikke cache operasjoner. Disse kalles fra ELF loader for å skylle D-cache og ugyldig I-cache etter en ELF-modulen har blitt lastet inn i minnet. Med denne endringen, ELF modulene fungerer riktig på SAMA5 / Cortex-A-plattformen.
  • Kernel Bygg: (1) Legg implementeringer av systemkall gate. (2) Legg CRT0 oppstart fil som kan knyttes med inne separat brukerprogrammer. (3) Legge til støtte for levering av bruk-modus signaler i kjernen bygge. (4) Legg logikk for å initialisere per-prosessen bruker haugen når hver bruker prosessen er startet. (5) ARMv7-A avvikshåndtering må jobbe litt annerledes hvis vi støtter brukermodusprosesser. Dette er fordi R13 og R14 er vekslet ulikt mellom bruker og SVC-modus.
  • Delt minne Support: (1) Legg logikk er nødvendig for å håndtere remapping av delt minne på kontekst brytere. (2) Utvide virtuelle / fysiske adresse konverter å inkludere adresser i delt minne. (3) Legg implementering av plattformspesifikke minnestøtte delt.
  • Atmel SAMA5D Drivere:
  • Nettverk Ioctls.: Implementere alle nettverks ioctls, inkludert den nye ioctl å sette PHY hendelsesvarsler
  • Adressekonverteringer. I kjernen bygge med adresse miljø, må logisk å kartlegge bruker virtuelle adresser til fysiske adresser, og vice versa
  • Atmel SAMA5D Boards:
  • SAMA5D3 Xplained, SAMA5D3-EK, og SAMA5D4-EK: Konverter eksisterende styret bestemt PHY avbrudds grensesnitt for å bruke nylig definerte standard grensesnitt
  • .
  • SAMA5D4-EK: Legg en konfigurasjon for testing kjernen bygge konfigurasjon. Det er konfigurasjoner for å starte opp enten fra et SD-kort eller fra og in-memory ROMFS filsystemet.
  • SAMA5D4-EK: Legg dokumentasjon / support for Rev E. bord
  • .
  • STMicro STM32 Drivere:
  • Ethernet: endret for å støtte endring av nettverk ioctl signatur endringer. Legger også til støtte for nye ioctl å sette PHY hendelsesvarsler.
  • STMicro STM32 Boards:
  • STM32F4Discovery med STM32F4DIS-BB: Legg et nettverk aktivert NSH konfigurasjon for STM32F4Discovery kortet med STM32F4DIS-BB basiskort installert. Inkluderer støtte for microSD-kortsporet på STM32F4DIS-BB basiskort.
  • TI TIVA Drivere:
  • TI CC3200: Legg støtte for TI CC3200. Fra Jim Ewing.
  • TI TIVA Boards:
  • TI CC3200 Launchpad: Legg støtte for TI CC3200 Launchpad. Fra Jim Ewing.
  • C Library:
  • meningsmåling (). Re-implementert meningsmåling () forsinkelse hjelp sem_timedwait ()
  • Configuration / Bygg System:
  • Eksporter Target: I kjernen eller beskyttet bygger, (1) bare bruker bibliotekene skal eksporteres, (2) ikke kopier interne header filer eller bygge skript om dette er en kjerne eller beskyttet bygge, og (3) behov å pakke opp brukeren C oppstartsfilen (crt0), ikke kjernen hodet objekt for kjernen og beskyttet bygger.
  • Program CFLAGS: Legg logikk som vil tillate oss å bygge bruker bibliotekene med ulike CFLAGS enn kjernen koden. Dette er nødvendig fordi vi trenger den -fno-vanligste alternativet når du bygger ELF-kode for å hindre SHN_COMMON omplasseringer.
  • Programmer:
  • NSH: NSH initiering av nettverket logikk Extend. Det er nå et alternativ som vil skape et nettverk monitor tråd som vil overvåke tilstanden til link. Når koblingen går ned, vil koden forsøke å grasiøst sette Ethernet driver i en down tilstand; Når linken kommer tilbake, vil koden forsøke å bringe nettverket opp igjen.
  • ELF. Eksempel: Den ELF test / eksempel har blitt utvidet slik at enkelte ELF testprogrammene kan koble mot syscall biblioteket (hvis det er tilgjengelig) eller mot C-bibliotek for å eliminere eller minimere behovet for symbol tabeller
  • NxTerm: Endre alle forekomster av NxConsole å NxTerm
  • .
  • MTDRWB. Eksempel: Legg et eksempel for å teste MTD R / W bufring
  • OS Test Eksempel: Legg en triviell test av sem_timedwait ()
  • .
  • Verktøy:









































  • Verktøy:




  • Verktøy:
























































































  • Verktøy:


























  • Bugfikses:






































































































Lignende programvare

Damn Small BSD
Damn Small BSD

3 Jun 15

Ubuntu Core
Ubuntu Core

9 Dec 15

FreeRTOS
FreeRTOS

20 Feb 15

Kommentarer til NuttX

Kommentarer ikke funnet
Legg til kommentar
Slå på bilder!