NuttX

Software screenshot:
NuttX
Software detaljer:
Version: 7.9 Opdateret
Upload dato: 10 May 15
Udvikler: Gregory Nutt
Licens: Gratis
Popularitet: 53

Rating: 4.0/5 (Total Votes: 1)

NuttX er en open source, deterministisk og gratis real-time indlejrede operativsystem (RTOS), designet fra offset til at være anvendelige i dybt indlejret, ressource begrænset miljøer. Den har en lille fodaftryk, der er anvendeligt i mikro-controller-miljøer, og det & rsquo; s fuldt skalerbar fra lille (8-bit) til moderat indlejret (32-bit) systemer.
Målet er også at være i fuld overensstemmelse med standarder, at være fuldt realtid, og for at være helt åben. NuttX har en rig træk OS sæt, et modulært design, er meget skalerbar og konfigurerbar, samt standarder kompatibel. Det er fordelt med en ikke-restriktiv BSD-licens. Det er ofte døbt af sine udviklere som "Lille Linux." Funktioner til en glanceKey funktioner omfatter centrale opgavestyring, BSD socket interface, hukommelse målere (delt hukommelse, standard bunke hukommelse tildeling, beskyttet build med MPU, flad indlejret build, pr-proces dynger, granulat Målerens og dynamisk størrelse), hukommelse konfigurationer, portering guide, fuldt offensive, tickless drift, on-demand personsøgning og systemet logning.
Hertil kommer, at projektet kommer med udvidelser til at styre fortegningsretten, pr-gevind, indbygget CPU belastning målinger, omfattende dokumentation, valgfrie opgaver, der indeholder adresse miljøer ANSI-lignende og POSIX-lignende opgave kontroller, ure, pthreads, miljø variabler, signaler, opkaldt meddelelseskøer, timere, filsystem og tælle semaforer.
Blandt andre funktioner kan nævnes round-robin planlægning, FIFO, støtte til prioriterede arv, støtte til SoC arkitektur, støtte til bord arkitekturer, støtte til nye processor-arkitekturer, vagthund timere, VxWorks-lignende opgavestyring, I / O-omdirigering og transmitteret & ldquo; kontrollerende terminaler & rdquo;. Understøttet platformsNuttX understøtter en bred vifte af hardware-platforme, blandt hvilke vi kan nævne mange ARM-processorer, herunder ARM Cortex-M3, ARM926EJS, ARM7TDMI, ARM Cortex-M4, ARM Cortex-M0, ARM920T og ARM Cortex-A5, samt Atmel 8-bit AVR, Freescale M68HCS12, AVR32 Atmel AVR platforme.
Derudover er det også understøtter forskellige Intel-platforme, såsom mikrochip PIC32MX (MIPS), 80c52 og 80 & tider; 86, Zilog platforme, herunder Zilog Z80, Zilog Z16F, Zilog Z8Encore! og Zilog eZ80 Acclaim !, og Renesas / Hitachi SuperH og Renesas M16C / 26 platforme

Hvad er nyt i denne udgivelse:.

  • Features: Yderligere nye funktioner og udvidet funktionalitet:
  • Core OS:
  • Watchdog Timer Allocation: (1) Hvis vi løber tør for pre-tildelte vagthund gange, vil logikken nu tildele yderligere timere fra bunke. En reserve af præ-allokeret vagthund timere fastholdes således, at der altid vil være timere til rådighed for interrupt handlere. (2) Tilføjet understøttelse af statisk tildelt vagthund timer
  • Adresse Miljø Support: (2) Nye OS API'er integreret i alle platform-specifikke kontekst skifte logik (up_block_task (), up_unblock_task (), _exit (), og andre)
  • .
  • Kernel Byg Support: (1) MPU baseret & quot; kernel build & quot; omdøbt til en beskyttet build (CONFIG_BUILD_PROTECTED); tilføjede støtte til en ny MMU-baserede & quot; kernel build & quot; (CONFIG_BUILD_KERNEL), (2) Systemet call Biblioteket kan nu bygges med CONFIG_NUTTX_KERNEL. Nyt udvalg *:. CONFIG_LIB_SYSCALL
  • System Startup: Tilføj konfigurationsmuligheder til at starte systemet fra et program på et filsystem (versus en adresse i hukommelsen)
  • .
  • Startup Parameter Afleveringer: Der plejede at være to måder at videregive parametre til nye opgaver, afhængigt af konfigurationen: Enten (1) argv [] som skabt som et array med hver streng strdup'ed. Eller (2) argv [] array og strenge blev skabt på stakken, før den nye opgave blev startet. Nu er der kun én måde, måde (2). Måde (1) kan være lidt mere kompakt, men det er ikke værd bære kompleksiteten af ​​to forskellige måder at gøre det samme.
  • Board Initialisering: Tilføj evne til at udføre indledende bord initialisering på en separat arbejdstager tråd. Dette er nødvendigt, fordi der er mange tilfælde, hvor initialisering logik ikke kan udføre på opstart / IDLE tråd. Det er, fordi blokering eller venter er ikke tilladt på IDLE tråd.
  • Memory Management:
  • Granule Allocator: (1) Tilføj en ny funktion til at reservere un-allokerbare regioner i granulatet bunke. (2) Tilføj grænseflader til støtte un-initialisering et granulat allokatoren.
  • Side Allocator: Tilføj en simpel fysisk side fordelingsnøgle baseret på den eksisterende NuttX granulat allokatoren. Jeg er ikke sikker på, hvis granulatet måleren er tilstrækkelig deterministisk til langvarig brug rækkevidde, men det bliver få en side fordelingsnøgle på plads til at teste meget hurtigt.
  • Fjern CONFIG_MM_MULTIHEAP: Ikke-multiheap operation understøttes ikke længere
  • .
  • sbrk ():. Sbrk () er nu understøttet i kernen build at tillade dynamisk størrelse, pr-proces dynger
  • Per-Proces Dynger: Space i begyndelsen af ​​processen dataplads er nu reserveret til brugeren dynge ledelsesstrukturer. I kernen build-mode, er disse heap strukturer deles mellem kernen og anvendelse kode for at tildele bruger-specifikke data.
  • Bruger Heap Management: Når en privilegeret tråd udgange, er vi nødt til at bruge kernel allokatoren at frigøre hukommelse; når en upriviligerede tråd udgange, har vi ikke at gøre noget ... bunke hukommelse vil blive renset op, når adressen miljø er revet ned.
  • Inter-Proces Delt hukommelse Support: (1) Tilføj implementering og dokumentation for shmget (), shmctl (), shmat (), og shmdt (). (2) Tilføj systemet Systemet kalder at støtte brugeren opkald porten til den delte hukommelse grænseflader. (3) Tilføj platform-specifik grænseflade definitioner er nødvendige for at støtte den funktion med delt hukommelse.
  • Virtual Side Allocator: Tilføj support til en per-proces virtuel side allokatoren. Dette er et nyt medlem af den task_group_s struktur. Måleren skal initialiseres, når en ny bruger proces startes, og deinitialisere når processen gruppen endeligt ødelagt. Det bruges af shmat () og shmdt () for at vælge den virtuelle adresse på at kortlægge den delte fysiske hukommelse.
  • filsystemer / Bloker Drivers / MTD:
  • SMART FS: SMART FS og SMART FS procfs opdateringer fra Ken Pettit
  • .
  • MTD:. MTD Læs-ahead / Write buffer lag vises nu funktionel
  • binære formater:
  • Per-Proces Heap:. Tilføj logik at initialisere pr-processen bruger bunke når hver bruger startes
  • Grafik:
  • NxTerm: Ændre alle forekomster af NxConsole til NxTerm
  • .
  • Netværk:
  • PHY Afbryder: (1) Standardiser en PHY interrupt vedhæftet interface. (2) Tilføj støtte til en ioctl, der kan bruges til at anmelde en applikation, når der er en ændring i netværksstatus signaleres af en PHY interrupt.
  • Forbedret Send Logic: I fortiden, den første pakke sende til et nyt netværk peer ville svigte; ville der ikke være post i ARP-tabellen for peer og så en anmodning ARP kunne erstatte den første pakke. Nu som en mulighed, hvis CONFIG_NET_ARP_SEND = y, all Send logik vil (1) kontrollere, om peer MAC-adressen er i ARP-tabellen, og hvis ikke, (2) sende ARP anmodninger jævne mellemrum for at få den kortlægning og (3) vente på ARP svar. Derefter (4), når ARP svar er modtaget, vil den faktiske send logik initieres. Der kan således være en forsinkelse med den første pakke sendt til en ny peer, men pakken skal ikke tabt
  • Host Simulation:
  • SPI FLASH Driver:. Emuleret SPI FLASH driver for sim mål fra Ken Pettit
  • Intel x86:
  • Standard Vært: Standard værten er nu x86_64 og -m32 mulighed vil automatisk blive valgt til simulering bygger
  • .
  • Intel 8051 Familie:
  • 8051 Fjernet: Fjernet al støtte til 8051 familien arkitektur fra NuttX kildetræ. Den forældet kode sammen med fjernelsen patch kan nu findes på misc / forældet /. Denne kode blev fjernet, fordi (1) selv om der er påvist nogle funktioner, jeg er ikke bekendt med nogen virkelig succesrige havne i NuttX til enhver 8051, og (2) 8051, med sin hardware stak, tvinger begrænsninger og komplikationer til de andre arkitekturer og gøre vækst og udvikling af NuttX mere kompleks.
  • Zilog ZNeo Boards:
  • configs / 16z: Støtte til dette board er blevet fjernet fra NuttX kildetræ (men kan stadig findes i misc / forældet mappe). Denne port er ikke klar til brug, men kan vende tilbage til NuttX træet på et tidspunkt i fremtiden.
  • Atmel SAM3 / 4 Boards:
  • SAM4E-EK:. Tilføj (1) en fuldt funktionel ILI9341-baserede LCD-driver og (2) en fuldt funktionel NxWM konfiguration
  • ARMv7-A:
  • Adresse Environments: Tilføj support til ansøgning adresse miljøer ved hjælp af Cortex-A MMU. Gennemføre standardiserede platform-specifikke grænseflader NuttX adresse miljø support.
  • Cache Operations: Gennemføre standardiserede, platform-specifikke cache operationer. Disse kaldes fra ELF loader for at skylle D-cache og ugyldiggøre I-cache efter en ELF modulet er indlæst i hukommelsen. Med denne ændring, ELF moduler fungerer korrekt på SAMA5 / Cortex-A platform.
  • Kernel Build: (1) Tilføj implementeringer af systemet opkald gate. (2) Tilføj CRT0 opstart fil, der kan være forbundet med separat bygget brugerprogrammer. (3) Tilsæt støtte til levering af brug-mode signaler i kernen build. (4) Tilsæt logik at initialisere per-proces bruger dynge, når hver bruger startes. (5) ARMv7-A exception handling brug for at arbejde lidt anderledes, hvis vi støtter brugeren tilstand processer. Dette skyldes, R13 og R14 er sideinddelt forskelligt mellem bruger og SVC-tilstand.
  • Delt hukommelse Support: (1) Tilføj logik er nødvendige for at håndtere remapping af delt hukommelse på sammenhæng switches. (2) Udvid virtuelle / fysiske adresse konverteringer at omfatte adresser i delt hukommelse. (3) Tilføj implementering af platform-specifikke delt hukommelse støtte.
  • Atmel SAMA5D Drivers:
  • Netværk Ioctls:. Gennemføre alle netværk ioctls, herunder den nye ioctl til meddelelser setup PHY begivenhed
  • Adresse Konverteringer:. I kernen bygge med adresse miljø, brug logik at kortlægge brugernes virtuelle adresser til fysiske adresser, og omvendt
  • Atmel SAMA5D Boards:
  • SAMA5D3 Xplained, SAMA5D3-EK, og SAMA5D4-EK: Konverter eksisterende board specifikt PHY afbryde grænseflader til brug nyligt definerede standard interface
  • .
  • SAMA5D4-EK: Tilføj en konfiguration til at teste kernen build konfiguration. Der er konfigurationer at starte enten fra et SD-kort eller fra og in-memory ROMFS filsystem.
  • SAMA5D4-EK: Tilføj dokumentation / support til Rev E. board
  • .
  • STMicro STM32 Drivers:
  • Ethernet: Modificeret at støtte ændringen netværket ioctl signatur ændringer. Også tilføje understøttelse til nye ioctl at setup PHY meddelelser event.
  • STMicro STM32 Boards:
  • STM32F4Discovery med STM32F4DIS-BB: Tilføj et netværk aktiveret NSH konfiguration for STM32F4Discovery bord med STM32F4DIS-BB bundkort installeret. Omfatter støtte til microSD-kort slot på STM32F4DIS-BB basen bord.
  • TI TIVA Drivers:
  • TI CC3200: Tilføj support til TI CC3200. Fra Jim Ewing.
  • TI TIVA Boards:
  • TI CC3200 Launchpad: Tilføj support til TI CC3200 Launchpad. Fra Jim Ewing.
  • C-bibliotek:
  • meningsmåling ():. Re-implementeret meningsmåling () forsinkelse hjælp sem_timedwait ()
  • Konfiguration / Build System:
  • Eksport Mål: I kernen eller beskyttet bygger, (1) kun bruger bibliotekerne skal eksporteres, (2) ikke kopiere interne header filer eller bygge scripts, hvis dette er en kerne eller beskyttet build, og (3) behov at samle op brugeren C opstart fil (crt0), ikke kernen hoved objekt for kernen og beskyttede bygger.
  • Program CFLAGS: Tilføj logik, der vil tillade os at opbygge brugernes biblioteker med forskellige CFLAGS end kerne kode. Dette er nødvendigt, fordi vi har brug for den -fno-fælles løsning, når man bygger ELF kode for at forhindre SHN_COMMON flytninger.
  • Applikationer:
  • NSH: Forlæng NSH netværket initialisering logik. Der er nu en mulighed, der vil skabe et netværk skærm tråd, der vil overvåge tilstanden af ​​linket. Når linket går ned, vil koden forsøge at yndefuldt sætte Ethernet-driveren i en ned tilstand; Når linket kommer tilbage, vil koden forsøge at bringe netværket op igen.
  • ELF Eksempel:. Den ELF test / eksempel er blevet udvidet, så de enkelte testprogrammer ELF kan linke mod syscall biblioteket (hvis den er tilgængelig) eller imod C-biblioteket for at eliminere eller minimere behovet for symboltabeller
  • NxTerm: Ændre alle forekomster af NxConsole til NxTerm
  • .
  • MTDRWB Eksempel:. Tilføj et eksempel for at teste MTD R / W buffering
  • OS Test Eksempel: Tilføj en triviel test af sem_timedwait ()
  • .
  • Application Configuration / Build System:
  • Importer Mål: (1) Tilføj logik, der vil tillade opbygning af programmer mod en NuttX eksport pakke (vs. nuttx / kilde træ). (2) Føj .config fil at eksportere pakke. (3) Opret apps / import. Opret apps / import / Make.defs der gør ting som definerer CFLAGS; ELF build kræver -fno-almindelig i CFLAGS. Kopier nogle basen logik fra nuttx / værktøjer / Config.mk til apps / import / Make.defs. (4) Tilføj apps / import / scripts / gnu-elf.ld GCC linker script til ELF import bygger.
  • Alle Makefile: (1) Tilføj en installation mål for alle makefiler. For import build, nu øverste niveau Makefile gør to omgange: (1) bygger libapp.a, derefter (2) installerer programmer i apps / bin. (2) Tilføj program installation til CONFIG_BUILD_KERNEL i alle Makefile, der bygger en main (). (3) For kerne build, kan objektet fil, der indeholder main () ikke gå ind i biblioteket på grund af navn kollisioner. Objektet filen skal håndteres som et særligt tilfælde i hvert Makefile.
  • Alle Indbyggede programmer: Med kerne build (CONFIG_BUILD_KERNEL), indgang til alle opgaver er main (), ikke nogle xyz_main ()
  • .
  • NSH: Flere kommandoer skal være deaktiveret i kernen build fordi de er afhængige af grænseflader, der ikke er tilgængelige uden for kernen:. Dd, df, losetup, mkfatfs, mkdr og ps
  • apps / værktøjer /: (1) Tilføj mkimport.sh at eksplodere en NuttX import pakke og installere i apps / import. (2) Føj mkromfsimg.sh script til at oprette en BOOT ROMFS filsystem billede.
  • ELF og NxFLAT Eksempler:. Må ikke bygge testcases, der bruger task_create (), hvis der er en adresse miljø
  • Værktøj:
  • refresh.sh:. Tilføj et redskab til at gøre forfriskende konfigurationer lettere, når du ønsker at gøre en masse af dem
  • mksyscall.c: Byg syscalls der ikke behøver header-filer
  • .
  • mkexport.sh:. Tilføj .config fil at eksportere pakke
  • apps / værktøjer: Se ovenfor for nye apps / værktøjer scripts
  • .
  • Indsatsen i gang. Følgende er funktioner, der er delvist implementeret, men der er til stede i denne udgivelse. De er ikke sandsynligt snart at være afsluttet.
  • Processer: En stor del af arbejdet i denne udgivelse er fokuseret på realiseringen af ​​Unix-stil bruger processer i NuttX. Der er mere, der skal gøres, dog. Den fulde køreplan og status er tilgængelig på: http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
  • XMEGA: Der er nogle fragmenter i stedet for en XMEGA port. Denne havn har ikke rigtig i gang, dog.
  • Galileo: Tilsvarende er der fragmenter på plads for en Intel Galileo-port. Havnen ikke startet for alvor enten.
  • Bugfixes. Kun de mest kritiske fejlrettelser er vist her (se ChangeLog for den komplette liste af fejlrettelser og for yderligere og mere detaljerede bugfix information):
  • Core OS:
  • Kernel bygge rettelser: (1) IDLE TCB setup skal angive, at IDLE tråd er en privilegeret, kernel tråd. (2) Må ikke bygge task_create () eller task_spawn () grænseflader, hvis der er en adresse miljø. (3) posix_spawn () kernel proxy tråd skal være en kerne tråd, ikke en bruger opgave.
  • Flere pthread interfaces: Tilføj const storage class at phthread parametre. Fra Freddie Chopin.
  • Sched / clock: Fjern rester af g_tickbias; behøver i stedet at anvende tid skævhed til g_basetime for at give det rigtige system tid.
  • System opfordrer: (1) En række stavefejl fastsat; korrigeret integration af exevc (), execvl (), posix_spawn (), og posix_spawnp) systemet (opkald. (2) Hvis vi er konfigureret til at bruge en kerne stak, mens i syscall håndtering, så er vi nødt til at skifte tilbage til brugeren stakken for at levere et signal.
  • filsystemer / Bloker Drivers / MTD:
  • procfs: Fix nogle procf brud indført ved at reorganisere nogle ikke-reorganizable datastrukturer. Fra Ken Pettit.
  • AT45: I at45db_bwrite (), er bufferen ikke øget, når du skriver mere end 1 side. Sourceforge bug # 34.
  • binære formater:
  • ELF flytninger: Nogle flytning typer ikke har en navngiven symbol forbundet med dem. Designet har ikke højde for denne sag.
  • ELF Loader:. Kritisk bugfix .. BSS ikke blev ryddet
  • Memory Management:
  • Granule Allocator: Granule fordelingsnøgle initialisering bruger forkert fordelingsnøgle til at afsætte kernel memory
  • .
  • privilegerede grupper: Tilføj et flag til koncernstruktur: Hvis gruppen er skabt af en kerne tråd, så alle ressourcer i gruppen skal være privilegeret
  • .
  • Cryptogrphic Support:
  • krypto / cryptodev.c: Path segmenter tilbageført i omfatter filsti. Bemærket af Brennan Ashton.
  • Fælles Drivers:
  • Common KAN øverste halvdel: I can_txdone, tjener på Semaforens bør informeres uanset returværdien af ​​can_xmit. Først returnerer -EIO hvis der ikke er nye pakker, og for det andet de oplysninger af tjenerne er om den sidste overførte pakke. Fra Daniel Lazlo Sitzer.
  • ARM:
  • System opfordrer: Fix en stavefejl i systemet opkald, når hentning parameter fra stakken: regs [REG_PC] 4 er adressen, ikke regs [REG_PC +4]
  • .
  • STMicro STM32 Drivers:
  • STM32 F401 UART: Korrekt støtte til USART6 på denne chip. Fra Freddie Chopin.
  • STM32 FLASH løser: brug size_t stedet for uint16_t, gør grænsefladen mere generisk. Fra Freddie Chopin.
  • STM32 UART:. Fix for UART7 og UART8 om STM32 ur muligt fra Aton
  • CAN: Ved afslutningen af ​​interrupt handleren blev afbryder bliver deaktiveret, hvis alle pakker er overført, når interrupt handleren blev påberåbt. Dette er problematisk, fordi det interrupt handleren kalder can_txdone () i den øverste halvdel, som kan enqueue nye pakker til at sende. Fjernet blokken helt, fordi can_txdone () kalder can_xmit (), der deaktiverer afbryder, hvis der ikke er nye pakker til at sende. Fra Daniel Lazlo Sitzer.
  • CAN:. Yderligere STM32 CAN korrektion foreslået af Max Holtzberg
  • STMicro ST32 Boards:
  • configs / mikroe-stm32f4: Løs et par kompilere fejl og mindre rettelser til mikroe-stm32f4 konfiguration kilde. Fra Ken Pettit.
  • ARM9 / ARMv7-A:
  • System opfordrer: Fix ARM7 / 9 og Cortex-A SYSCALLs: For tråde i SVC-tilstand, SVC instruktioner clobbers R14. Dette skal der tages hensyn til i inline forsamling.
  • Task Setup: Alle opgaver, selv bruger tilstand opgaver, skal starte i supervisor tilstand, indtil de kommer forbi opstart trampolin
  • .
  • ARMv7-A: Ændre up_fullcontextrestore () for CONFIG_BUILD_KERNEL. Det ændrede CPSR mens i kernen. Det vil gå ned, hvis den nye CPSR er bruger-tilstand under udførelse i kernel space. Fast ved at tilføje et SYS_context_restore systemkald. Der er et alternativ, enklere ændring up_fullcontextrestore (), der kunne have været gjort: Det kunne have været muligt at anvende SPSR stedet for CPRSR og derefter gøre en undtagelse tilbage fra up_fullcontextrestore (). Det ville være mere effektivt, men jeg prøvede det aldrig.
  • Atmel SAM3 / 4 Boards:
  • SAM3X / Arduino Due: Fix slåfejl i sam3x_periphclks.h; tilføje SCLK definitioner board.h header fil. Fra Fabien Comte.
  • SAM3 RTT: Kun SAM4 familien har RTTDIS bit i MR registret. SourceForge bug # 33 fra Fabien Comte.
  • C-bibliotek:
  • sscanf (): NuttX libc forsøgt at gætte, hvor mange tegn at analysere, udvundet dem i en buffer, derefter kørte strtol () på den buffer. Det gæt var ofte forkert. En bedre løsning ville være at kalde strtol () direkte af indtastet data, ved hjælp af endptr returværdien til at bestemme, hvor mange tegn at springe efter parsing. Fra Kosma Moczek.
  • Math Library:. Rettet ARCTAN2 implementeringer fra Denis Arnst
  • Floating Punkt Output: Skift til lib_dtoa () til at fastsætte præcision fejl fra efterstillede nuller. Fra Bob Doiron.
  • Applikationer:
  • Fix NSH PS kommando:. Hvis der ikke er nogen argumenter, kunne det udskriver skrald for argument liste
  • Konfiguration / Build System:
  • Null Eksempel: Behov for at medtage config.h det orden vide, om dette er eller ikke er en kerne build. Dette problem eksisterer stadig i flere andre fil, der kan have brug for at definere main ().

Hvad er nyt i version 7.8:

  • Features: Yderligere nye funktioner og udvidet funktionalitet:
  • Core OS:
  • Watchdog Timer Allocation: (1) Hvis vi løber tør for pre-tildelte vagthund gange, vil logikken nu tildele yderligere timere fra bunke. En reserve af præ-allokeret vagthund timere fastholdes således, at der altid vil være timere til rådighed for interrupt handlere. (2) Tilføjet understøttelse af statisk tildelt vagthund timer
  • Adresse Miljø Support: (2) Nye OS API'er integreret i alle platform-specifikke kontekst skifte logik (up_block_task (), up_unblock_task (), _exit (), og andre)
  • .
  • Kernel Byg Support: (1) MPU baseret & quot; kernel build & quot; omdøbt til en beskyttet build (CONFIG_BUILD_PROTECTED); tilføjede støtte til en ny MMU-baserede & quot; kernel build & quot; (CONFIG_BUILD_KERNEL), (2) Systemet call Biblioteket kan nu bygges med CONFIG_NUTTX_KERNEL. Nyt udvalg *:. CONFIG_LIB_SYSCALL
  • System Startup: Tilføj konfigurationsmuligheder til at starte systemet fra et program på et filsystem (versus en adresse i hukommelsen)
  • .
  • Startup Parameter Afleveringer: Der plejede at være to måder at videregive parametre til nye opgaver, afhængigt af konfigurationen: Enten (1) argv [] som skabt som et array med hver streng strdup'ed. Eller (2) argv [] array og strenge blev skabt på stakken, før den nye opgave blev startet. Nu er der kun én måde, måde (2). Måde (1) kan være lidt mere kompakt, men det er ikke værd bære kompleksiteten af ​​to forskellige måder at gøre det samme.
  • Board Initialisering: Tilføj evne til at udføre indledende bord initialisering på en separat arbejdstager tråd. Dette er nødvendigt, fordi der er mange tilfælde, hvor initialisering logik ikke kan udføre på opstart / IDLE tråd. Det er, fordi blokering eller venter er ikke tilladt på IDLE tråd.
  • Memory Management:
  • Granule Allocator: (1) Tilføj en ny funktion til at reservere un-allokerbare regioner i granulatet bunke. (2) Tilføj grænseflader til støtte un-initialisering et granulat allokatoren.
  • Side Allocator: Tilføj en simpel fysisk side fordelingsnøgle baseret på den eksisterende NuttX granulat allokatoren. Jeg er ikke sikker på, hvis granulatet måleren er tilstrækkelig deterministisk til langvarig brug rækkevidde, men det bliver få en side fordelingsnøgle på plads til at teste meget hurtigt.
  • Fjern CONFIG_MM_MULTIHEAP: Ikke-multiheap operation understøttes ikke længere
  • .
  • sbrk ():. Sbrk () er nu understøttet i kernen build at tillade dynamisk størrelse, pr-proces dynger
  • Per-Proces Dynger: Space i begyndelsen af ​​processen dataplads er nu reserveret til brugeren dynge ledelsesstrukturer. I kernen build-mode, er disse heap strukturer deles mellem kernen og anvendelse kode for at tildele bruger-specifikke data.
  • Bruger Heap Management: Når en privilegeret tråd udgange, er vi nødt til at bruge kernel allokatoren at frigøre hukommelse; når en upriviligerede tråd udgange, har vi ikke at gøre noget ... bunke hukommelse vil blive renset op, når adressen miljø er revet ned.
  • Inter-Proces Delt hukommelse Support: (1) Tilføj implementering og dokumentation for shmget (), shmctl (), shmat (), og shmdt (). (2) Tilføj systemet Systemet kalder at støtte brugeren opkald porten til den delte hukommelse grænseflader. (3) Tilføj platform-specifik grænseflade definitioner er nødvendige for at støtte den funktion med delt hukommelse.
  • Virtual Side Allocator: Tilføj support til en per-proces virtuel side allokatoren. Dette er et nyt medlem af den task_group_s struktur. Måleren skal initialiseres, når en ny bruger proces startes, og deinitialisere når processen gruppen endeligt ødelagt. Det bruges af shmat () og shmdt () for at vælge den virtuelle adresse på at kortlægge den delte fysiske hukommelse.
  • filsystemer / Bloker Drivers / MTD:
  • SMART FS: SMART FS og SMART FS procfs opdateringer fra Ken Pettit
  • .
  • MTD:. MTD Læs-ahead / Write buffer lag vises nu funktionel
  • binære formater:
  • Per-Proces Heap:. Tilføj logik at initialisere pr-processen bruger bunke når hver bruger startes
  • Grafik:
  • NxTerm: Ændre alle forekomster af NxConsole til NxTerm
  • .
  • Netværk:
  • PHY Afbryder: (1) Standardiser en PHY interrupt vedhæftet interface. (2) Tilføj støtte til en ioctl, der kan bruges til at anmelde en applikation, når der er en ændring i netværksstatus signaleres af en PHY interrupt.
  • Forbedret Send Logic: I fortiden, den første pakke sende til et nyt netværk peer ville svigte; ville der ikke være post i ARP-tabellen for peer og så en anmodning ARP kunne erstatte den første pakke. Nu som en mulighed, hvis CONFIG_NET_ARP_SEND = y, all Send logik vil (1) kontrollere, om peer MAC-adressen er i ARP-tabellen, og hvis ikke, (2) sende ARP anmodninger jævne mellemrum for at få den kortlægning og (3) vente på ARP svar. Derefter (4), når ARP svar er modtaget, vil den faktiske send logik initieres. Der kan således være en forsinkelse med den første pakke sendt til en ny peer, men pakken skal ikke tabt
  • Host Simulation:
  • SPI FLASH Driver:. Emuleret SPI FLASH driver for sim mål fra Ken Pettit
  • Intel x86:
  • Standard Vært: Standard værten er nu x86_64 og -m32 mulighed vil automatisk blive valgt til simulering bygger
  • .
  • Intel 8051 Familie:
  • 8051 Fjernet: Fjernet al støtte til 8051 familien arkitektur fra NuttX kildetræ. Den forældet kode sammen med fjernelsen patch kan nu findes på misc / forældet /. Denne kode blev fjernet, fordi (1) selv om der er påvist nogle funktioner, jeg er ikke bekendt med nogen virkelig succesrige havne i NuttX til enhver 8051, og (2) 8051, med sin hardware stak, tvinger begrænsninger og komplikationer til de andre arkitekturer og gøre vækst og udvikling af NuttX mere kompleks.
  • Zilog ZNeo Boards:
  • configs / 16z: Støtte til dette board er blevet fjernet fra NuttX kildetræ (men kan stadig findes i misc / forældet mappe). Denne port er ikke klar til brug, men kan vende tilbage til NuttX træet på et tidspunkt i fremtiden.
  • Atmel SAM3 / 4 Boards:
  • SAM4E-EK:. Tilføj (1) en fuldt funktionel ILI9341-baserede LCD-driver og (2) en fuldt funktionel NxWM konfiguration
  • ARMv7-A:
  • Adresse Environments: Tilføj support til ansøgning adresse miljøer ved hjælp af Cortex-A MMU. Gennemføre standardiserede platform-specifikke grænseflader NuttX adresse miljø support.
  • Cache Operations: Gennemføre standardiserede, platform-specifikke cache operationer. Disse kaldes fra ELF loader for at skylle D-cache og ugyldiggøre I-cache efter en ELF modulet er indlæst i hukommelsen. Med denne ændring, ELF moduler fungerer korrekt på SAMA5 / Cortex-A platform.
  • Kernel Build: (1) Tilføj implementeringer af systemet opkald gate. (2) Tilføj CRT0 opstart fil, der kan være forbundet med separat bygget brugerprogrammer. (3) Tilsæt støtte til levering af brug-mode signaler i kernen build. (4) Tilsæt logik at initialisere per-proces bruger dynge, når hver bruger startes. (5) ARMv7-A exception handling brug for at arbejde lidt anderledes, hvis vi støtter brugeren tilstand processer. Dette skyldes, R13 og R14 er sideinddelt forskelligt mellem bruger og SVC-tilstand.
  • Delt hukommelse Support: (1) Tilføj logik er nødvendige for at håndtere remapping af delt hukommelse på sammenhæng switches. (2) Udvid virtuelle / fysiske adresse konverteringer at omfatte adresser i delt hukommelse. (3) Tilføj implementering af platform-specifikke delt hukommelse støtte.
  • Atmel SAMA5D Drivers:
  • Netværk Ioctls:. Gennemføre alle netværk ioctls, herunder den nye ioctl til meddelelser setup PHY begivenhed
  • Adresse Konverteringer:. I kernen bygge med adresse miljø, brug logik at kortlægge brugernes virtuelle adresser til fysiske adresser, og omvendt
  • Atmel SAMA5D Boards:
  • SAMA5D3 Xplained, SAMA5D3-EK, og SAMA5D4-EK: Konverter eksisterende board specifikt PHY afbryde grænseflader til brug nyligt definerede standard interface
  • .
  • SAMA5D4-EK: Tilføj en konfiguration til at teste kernen build konfiguration. Der er konfigurationer at starte enten fra et SD-kort eller fra og in-memory ROMFS filsystem.
  • SAMA5D4-EK: Tilføj dokumentation / support til Rev E. board
  • .
  • STMicro STM32 Drivers:
  • Ethernet: Modificeret at støtte ændringen netværket ioctl signatur ændringer. Også tilføje understøttelse til nye ioctl at setup PHY meddelelser event.
  • STMicro STM32 Boards:
  • STM32F4Discovery med STM32F4DIS-BB: Tilføj et netværk aktiveret NSH konfiguration for STM32F4Discovery bord med STM32F4DIS-BB bundkort installeret. Omfatter støtte til microSD-kort slot på STM32F4DIS-BB basen bord.
  • TI TIVA Drivers:
  • TI CC3200: Tilføj support til TI CC3200. Fra Jim Ewing.
  • TI TIVA Boards:
  • TI CC3200 Launchpad: Tilføj support til TI CC3200 Launchpad. Fra Jim Ewing.
  • C-bibliotek:
  • meningsmåling ():. Re-implementeret meningsmåling () forsinkelse hjælp sem_timedwait ()
  • Konfiguration / Build System:
  • Eksport Mål: I kernen eller beskyttet bygger, (1) kun bruger bibliotekerne skal eksporteres, (2) ikke kopiere interne header filer eller bygge scripts, hvis dette er en kerne eller beskyttet build, og (3) behov at samle op brugeren C opstart fil (crt0), ikke kernen hoved objekt for kernen og beskyttede bygger.
  • Program CFLAGS: Tilføj logik, der vil tillade os at opbygge brugernes biblioteker med forskellige CFLAGS end kerne kode. Dette er nødvendigt, fordi vi har brug for den -fno-fælles løsning, når man bygger ELF kode for at forhindre SHN_COMMON flytninger.
  • Applikationer:
  • NSH: Forlæng NSH netværket initialisering logik. Der er nu en mulighed, der vil skabe et netværk skærm tråd, der vil overvåge tilstanden af ​​linket. Når linket går ned, vil koden forsøge at yndefuldt sætte Ethernet-driveren i en ned tilstand; Når linket kommer tilbage, vil koden forsøge at bringe netværket op igen.
  • ELF Eksempel:. Den ELF test / eksempel er blevet udvidet, så de enkelte testprogrammer ELF kan linke mod syscall biblioteket (hvis den er tilgængelig) eller imod C-biblioteket for at eliminere eller minimere behovet for symboltabeller
  • NxTerm: Ændre alle forekomster af NxConsole til NxTerm
  • .
  • MTDRWB Eksempel:. Tilføj et eksempel for at teste MTD R / W buffering
  • OS Test Eksempel: Tilføj en triviel test af sem_timedwait ()
  • .
  • Værktøj:









































  • Værktøj:




  • Værktøj:
























































































  • Værktøj:


























  • Fejlrettelser:






































































































Lignende software

pfSense
pfSense

22 Jun 18

Jari OS
Jari OS

3 Jun 15

NAS4Free
NAS4Free

2 Oct 17

Kommentarer til NuttX

Kommentarer ikke fundet
Tilføj kommentar
Tænd billeder!