NuttX

Software skärmdump:
NuttX
Mjukvaruinformation:
Version: 7.9 Uppdaterad
Ladda upp dagen: 10 May 15
Utvecklare: Gregory Nutt
Licens: Gratis
Popularitet: 53

Rating: 4.0/5 (Total Votes: 1)

NuttX är en öppen källkod, deterministisk och gratis realtidsinbäddade operativsystem (RTOS), utformad från förskjutningen för att kunna användas i djupt inbäddade, resurs begränsade miljöer. Den har ett litet fotavtryck som är användbar i mikro-controller miljöer, och det och rsquo; s fullt skalbar från små (8-bit) till måttligt inbäddade (32-bitars) system.
Det syftar också till att vara fullt kompatibel med standarder, för att vara helt i realtid, och att vara helt öppen. NuttX har en rik funktion OS set, en modulär design, det är mycket skalbar och konfigurerbar, samt standarder kompatibel. Den distribueras med en icke-restriktiv BSD-licensen. Det är ofta dubbad av dess utvecklare som "Tiny Linux." Funktioner till ett glanceKey funktioner inkluderar kärn ärendehantering, BSD socket gränssnitt, minne fördelnings (delat minne, standard hög minnesallokering, skyddad bygga med MPU, platt inbäddade bygga, per-process högar, granulat allokerare och dynamiskt storlek), minneskonfigurationer, portning guide, helt preemptible, Tick drift, on-demand paging och systemloggning.
Dessutom har projektet kommer med tillägg för att hantera företrädesrätt, per-tråd, inbyggd CPU lastmätningar, omfattande dokumentation, frivilliga uppgifter som innehåller adressmiljöer, ANSI-liknande och POSIX-liknande uppgift kontroller, klockor, pthreads, miljö variabler, signaler, heter meddelandeköer, timers, filsystemet och räknar semaforer.
Bland andra funktioner kan nämnas round-robin schemaläggning, FIFO, stöd för prioritetsarv, stöd för SoC arkitektur, stöd för styrelse arkitekturer, stöd för nya processorarkitekturer, väktartimrarna, VxWorks-liknande ärendehantering, I / O-omdirigering och överföras & ldquo; styrning terminaler & rdquo;. platformsNuttX stöds stöder ett brett utbud av hårdvaruplattformar, bland vilka kan nämnas ett flertal ARM-processorer, inklusive ARM Cortex-M3, ARM926EJS, ARM7TDMI, ARM Cortex-M4, ARM Cortex-M0, ARM920T och ARM Cortex-A5, samt Atmel 8-bitars AVR, Freescale M68HCS12, AVR32 Atmel AVR plattformar.
Dessutom stöder det också olika Intel-plattformar, såsom Microchip PIC32MX (MIPS), 80c52 och 80 & gånger; 86, Zilog plattformar, inklusive Zilog Z80, Zilog Z16F, Zilog Z8Encore! och Zilog Ez80 Acclaim !, och Renesas / Hitachi SuperH och Renesas M16C / 26 plattformar

Vad är nytt i den här versionen.

  • Funktioner: Ytterligare nya funktioner och utökad funktionalitet:
  • Kärn OS:
  • Watchdog Timer Tilldelning: (1) Om vi ​​får slut på förhand tilldelade vakthund gånger, kommer logiken nu avsätta ytterligare timers från högen. En reserv på förhand tilldelade väktartimers bibehålls så att det alltid kommer att finnas timers tillgängliga för avbrottslastare. (2) Stöd för statiskt tilldelade watchdog timer
  • Adress Miljö Support: (2) nya operativsystemet API: er integrerade i alla plattformsspecifik kontextväxling logik (up_block_task (), up_unblock_task (), _exit (), och andra)
  • .
  • Kernel Build Support: (1) MPU baserade & quot; kärnan bygga & quot; omdöpt till en skyddad bygga (CONFIG_BUILD_PROTECTED); lagt till stöd för en ny MMU-baserade & quot; kärnan bygga & quot; (CONFIG_BUILD_KERNEL), (2) Systemet samtals biblioteket kan nu byggas med CONFIG_NUTTX_KERNEL. Nytt val *:. CONFIG_LIB_SYSCALL
  • systemstart: Lägg konfigurationsalternativ för att starta systemet från ett program på ett filsystem (jämfört med en adress i minnet)
  • .
  • Startup Parameter Passningsspel: Det brukade vara två sätt att skicka parametrar till nya uppgifter, beroende på konfiguration: Antingen (1) argv [] som skapades som en matris med varje sträng strdup'ed. Eller (2) argv [] array och strängar skapades på stacken innan den nya uppgiften startades. Nu finns det bara ett sätt, sätt (2). Way (1) kan vara något mer kompakt, men det är inte värt bära komplexiteten i två olika sätt att göra samma sak.
  • Board Initiering: Lägg förmåga att utföra inledande styrelsen initiering på en separat arbetstråd. Detta behövs eftersom det finns många fall där initiering logik inte kan utföra på uppstart / IDLE tråden. Det beror på att blockera eller väntar är inte tillåten på IDLE tråden.
  • Memory Management:
  • Granule Allocator: (1) Lägg till en ny funktion för att reservera un-allokerbara regioner i granulat högen. (2) Lägg till gränssnitt för att stödja FN-initiera ett granulat allokeraren.
  • Sida allokatom: Lägg till en enkel fysisk sida allokeraren baserat på befintliga NuttX granulat allokeraren. Jag är inte säker på om granulat allokeraren är tillräckligt deterministisk för långväga användning, men det blir få en sida allokerare på plats för att testa mycket snabbt.
  • Ta bort CONFIG_MM_MULTIHEAP: Icke-multiheap operation stöds inte längre
  • .
  • sbrk ():. Sbrk () stöds nu i kärnan bygga för att möjliggöra dynamiskt storlek, per-process högar
  • Per-Process Heaps: Space i början av processen datautrymme är nu reserverat för användare heap ledningsstrukturer. I kärnan byggläget är dessa heap strukturer delas mellan kärnan och använd kod för att fördela användarspecifika data.
  • Användar Heap Management: När en privilegierad gäng utgångar, måste vi använda kärnan allokerare att frigöra minne; när en oprioriterade gäng utgångar, behöver vi inte göra något ... heap minne kommer att rengöras när adress miljön rivas.
  • Inter-Process Shared Memory Support: (1) Lägg till genomförande och dokumentation för shmget (), shmctl (), shmat (), och shmdt (). (2) Lägg till systemets systemanrop för att stödja användaren samtalet porten till de delade minnesgränssnitt. (3) Lägg till gränssnittsdefinitioner plattformsspecifika krävs för att stödja den funktion som delar minne.
  • Virtual Sida allokatom: Lägg till stöd för en per-process virtuell sida allokeraren. Detta är en ny medlem i task_group_s struktur. Den fördelnings måste initieras när en ny användarprocess startas och avinitiera när processgrupp slutligen förstörs. Det används av shmat () och shmdt () för att välja den virtuella adress, på vilken att kartlägga den delade fysiska minnet.
  • filsystem / Block Drivers / MTD:
  • SMART FS: SMART FS och SMART FS procfs uppdateringar från Ken Pettit
  • .
  • MTD:. MTD Läs-ahead / Skriv buffertlager verkar fungerar nu
  • Binary Format:
  • Per-Process Heap. Lägg logik för att initiera per processanvändar högen när varje användare process startas
  • Grafik:
  • NxTerm: Ändra alla förekomster av NxConsole till NxTerm
  • .
  • Nätverk:
  • PHY Avbryter: (1) Standardisera en PHY avbrottsfäst gränssnitt. (2) Lägg till stöd för ett ioctl som kan användas för att meddela en ansökan när det sker en förändring i nätverksstatus signaleras med en PHY avbrott.
  • Förbättrad Skicka Logic: Förr i tiden, det första paketet skickas till ett nytt nätverk inbördes skulle misslyckas; det skulle finnas någon post i ARP tabellen för referensgruppen och så en ARP begäran skulle kunna ersätta det första paketet. Nu som ett alternativ om CONFIG_NET_ARP_SEND = y, alla skickar logik kommer (1) kontrollera om peer MAC-adressen är i ARP tabellen och, om inte, (2) skicka ARP förfrågningar med jämna mellanrum för att få kartläggning och (3) vänta på ARP svar. Därefter (4) när ARP svar fick då själva skicka logiken kommer att inledas. Således kan det finnas en fördröjning med det första paketet skickas till en ny peer, men paketet bör inte gå förlorad
  • Värd Simulering:
  • SPI FLASH Driver:. Emulerad SPI FLASH drivrutinen för sim målet från Ken Pettit
  • Intel x86:
  • Standard Värd: Standard värd är nu x86_64 och alternativet -m32 väljs automatiskt för simulering bygger
  • .
  • Intel 8051 Familj:
  • 8051 Bort: Borttagen allt stöd för 8051 familjen arkitektur från NuttX källkodsträdet. Den föråldrade koden tillsammans med avlägsnandet patch kan nu hittas på misc / föråldrade /. Denna kod togs bort eftersom (1), även om vissa funktioner har visats, jag känner inte till några riktigt framgångsrika hamnar NuttX till alla 8051, och (2) 8051, med sin hårdvara stack, tvingar begränsningar och komplikationer till andra arkitekturer och göra tillväxt och utveckling av NuttX mer komplex.
  • Zilog ZNeo Boards:
  • configs / 16Z: Stöd för detta kort har tagits bort från NuttX källkodsträdet (men fortfarande kan hittas i misc / föråldrade katalog). Denna port är inte redo för användning men kan återvända till NuttX träd någon gång i framtiden.
  • Atmel SAM3 / 4 Boards:
  • SAM4E-EK:. Lägg till (1) ett fullt fungerande ILI9341 baserade LCD föraren och (2) en fullt fungerande NxWM konfiguration
  • ARMv7-A:
  • Adressmiljöer: Lägg till stöd för ansökan adress miljöer med Cortex-A MMU. Genomföra standardiserade plattformsspecifika gränssnitt NuttX adress miljöstöd.
  • Cache Operations: Genomföra standardiserade, cacheoperationer plattformsspecifika. Dessa kallas från ELF lastaren för att spola D-cache och ogiltigförklara I-cache efter en ELF-modulen har laddats in i minnet. Med denna förändring, ELF moduler fungerar korrekt på SAMA5 / Cortex-En plattform.
  • Kernel Build: (1) Lägg till implementeringar av systemanrop grind. (2) Lägg till CRT0 start fil som kan kopplas till separat byggda användarprogram. (3) Lägg till stöd för leverans av användnings modsignaler i kärnan bygga. (4) Lägg till logik för att initiera per processanvändar högen när varje användare processen startas. (5) ARMv7-A undantagshantering måste arbeta lite annorlunda om vi stöder användarläge processer. Detta beror på att R13 och R14 är olika paged mellan användaren och SVC-läge.
  • Shared Memory Support: (1) Lägg till logik som krävs för att hantera mappning av delat minne på kontext växlar. (2) Utöka virtuella / fysiska adress konverteringar att inkludera adresser i delat minne. (3) Lägg till genomförandet av plattformsspecifika delat minne stöd.
  • Atmel SAMA5D Drivers:
  • Nätverk ioctls. Genomföra alla nätverks ioctls, inklusive den nya ioctl anmälningar inställning PHY händelse
  • Adress omvandlingar. I kärnan bygga med adress miljö, behöver logik för att kartlägga användarnas virtuella adresser till fysiska adresser, och vice versa
  • Atmel SAMA5D Boards:
  • SAMA5D3 Xplained, SAMA5D3-EK och SAMA5D4-EK: Konvertera befintliga fordonsbaserat specifikt PHY avbrotts gränssnitt för att använda nydefinieras standardgränssnitt
  • .
  • SAMA5D4-EK: Lägg en konfiguration för att testa kärnan bygga konfigurationen. Det finns konfigurationer att starta antingen från ett SD-kort eller från och in-memory ROMFS filsystem.
  • SAMA5D4-EK: Lägg dokumentation / support för Rev E. styrelse
  • .
  • STMicro STM32 Drivers:
  • Ethernet: Modifierad att stödja övergången till förändringar nätverks ioctl signatur. Också lägga till stöd för nya ioctl anmälningar inställning PHY händelse.
  • STMicro STM32 Boards:
  • STM32F4DISCOVERY med STM32F4DIS-BB: Lägg ett nätverk aktiverat NSH konfiguration för STM32F4DISCOVERY styrelse med STM32F4DIS-BB baskort installerad. Inkluderar stöd för microSD-kortplats på STM32F4DIS-BB baskort.
  • TI Tiva Drivers:
  • TI CC3200: Lägg till stöd för TI CC3200. Från Jim Ewing.
  • TI Tiva Boards:
  • TI CC3200 Launchpad: Lägg till stöd för TI CC3200 Launchpad. Från Jim Ewing.
  • C-bibliotek:
  • omröstning ():. Åter genomfört undersökning () fördröjning använder sem_timedwait ()
  • Konfiguration / byggsystem:
  • Exportera Mål: I kärnan eller skyddade bygger, (1) endast de bibliotek användar ska exporteras, (2) inte kopiera interna header-filer eller bygga manus om detta är en kärna eller skyddad bygga, och (3) behov att bunta upp användaren C startfilen (crt0), inte kärnan huvudobjekt för kärnan och skyddas bygger.
  • Program CFLAGS: Lägg logik som kommer att tillåta oss att bygga användar bibliotek med olika CFLAGS än kernel kod. Detta behövs eftersom vi behöver -fno-common alternativ när man bygger ELF-kod för att förhindra SHN_COMMON omlokaliseringar.
  • Program:
  • NSH: Förläng NSH nätverksinitiering logik. Det finns nu ett alternativ som kommer att skapa ett nätverk bildskärm tråd som kommer att övervaka tillståndet i länken. När länken går ner, kommer koden att försöka graciöst sätta Ethernet-drivrutinen i en ned tillstånd; När länken kommer tillbaka, kommer koden försöka bringa nätverket tillbaka upp.
  • ELF Exempel:. ELF test / exempel har utvidgats så att enskilda ELF testprogram kan länka mot syscall biblioteket (om det är tillgängligt) eller mot C-biblioteket för att eliminera eller minimera behovet av symboltabeller
  • NxTerm: Ändra alla förekomster av NxConsole till NxTerm
  • .
  • MTDRWB Exempel:. Lägg till en exempel att testa MTD R / W buffring
  • OS Testexempel: Lägga till en trivial test av sem_timedwait ()
  • .
  • Application Configuration / byggsystem:
  • Importera mål: (1) Lägg till logik som gör det möjligt att bygga applikationer mot en NuttX exportpaket (kontra nuttx / källkodsträd). (2) Lägg .config fil att exportera paketet. (3) Skapa apps / import. Skapa apps / import / Make.defs som gör saker som definierar CFLAGS; ELF build kräver -fno-common i CFLAGS. Kopiera några grundlogik från nuttx / verktyg / Config.mk till apps / import / Make.defs. (4) Lägg till apps / import / scripts / gnu-elf.ld GCC länk skript för ELF import bygger.
  • Alla Make: (1) Lägg till en installations mål att alla makefiler. För import build gör toppnivåMakeFile nu två passager: (1) bygger libapp.a, sedan (2) installerar program i appar / bin. (2) Lägg till installationsprogram för CONFIG_BUILD_KERNEL i alla Makefiler som bygger en main (). (3) För kärn bygga, kan objektfilen innehåller main () inte gå in i biblioteket på grund av namnkollisioner. Objektet filen måste hanteras som ett specialfall i varje Makefile.
  • Alla inbyggda program: Med kärna bygga (CONFIG_BUILD_KERNEL), inkörsport till alla uppgifter är main (), inte någon xyz_main ()
  • .
  • NSH: Flera kommandon måste inaktiveras i kärnan bygga eftersom de är beroende av gränssnitt som inte är tillgängliga utanför kärnan. Dd, df, losetup, mkfatfs, mkdr och ps
  • apps / verktyg /: (1) Lägg till mkimport.sh att explodera en NuttX import paketet och installera appar / import. (2) Lägg mkromfsimg.sh skript för att skapa en BOOT ROMFS filsystem bilden.
  • ELF och NxFLAT Exempel:. Bygg inte testfall som använder task_create () om det finns en adress miljö
  • Verktyg:
  • refresh.sh. Lägg ett verktyg för att göra uppfriskande konfigurationer lättare när du vill göra en hel del av dem
  • mksyscall.c: Bygg syscalls som inte behöver huvudfiler
  • .
  • mkexport.sh. Lägg .config fil att exportera paketet
  • apps / verktyg: Se ovan för nya program / verktyg manus
  • .
  • Arbetet pågår. Följande är funktioner som delvis genomförs, men som förekommer i den här versionen. De är inte sannolikt att slutföras inom kort.
  • Processer: Mycket av arbetet i denna utgåva är inriktad på förverkligandet av Unix-stil användarprocesser i NuttX. Det finns mer att göra, dock. Hela färdplan och status finns på: http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
  • XMega: Det finns några fragment i stället för en XMega port. Det hamn har verkligen inte börjat, men.
  • Galileo: Likaså finns det fragment i stället för en Intel Galileo-port. Porten inte inletts på allvar heller.
  • Buggfixar. Endast de mest kritiska buggfixar listas här (se ändringsloggen för fullständig lista över buggfixar och för ytterligare, mer detaljerad bugfix information):
  • Kärn OS:
  • Kernel bygga korrigeringar: (1) IDLE TCB inställning behöver indikera att tomgångs tråden är en privilegierad, kärna tråd. (2) Bygg inte task_create () eller task_spawn () gränssnitt om det finns en adress miljö. (3) posix_spawn () kernel proxy tråd bör vara en kärntråd, inte en användaruppgift.
  • Flera pthread gränssnitt: Lägg const lagringsklass till phthread parametrar. Från Freddie Chopin.
  • Sched / klocka: Ta bort rester av g_tickbias; behöver, i stället för att tillämpa tids förspänning g_basetime för att ge den rätta systemtiden.
  • systemanrop: (1) Flera stavfel fast; korrigerad integration av exevc (), execvl (), posix_spawn (), och posix_spawnp () systemanrop. (2) Om vi ​​är konfigurerade för att använda en kärna stack medan syscall hantering, då måste vi gå tillbaka till användaren stacken för att leverera en signal.
  • filsystem / Block Drivers / MTD:
  • procfs: Fixa några procf brott infördes genom att omorganisera vissa icke-reorganizable datastrukturer. Från Ken Pettit.
  • AT45: I at45db_bwrite (), är bufferten inte ökar när du skriver mer än 1 sida. Sourceforge bugg # 34.
  • Binary Format:
  • ELF omlokaliseringar: Vissa omlokalisering typer inte har en namngiven symbol i samband med dem. Designen inte redogöra för detta fall.
  • ELF Loader. Kritisk buggfix .. BSS inte rensas
  • Memory Management:
  • Granule Allocator: Granule allocator initiering använder fel allokerare att avsätta kernel minne
  • .
  • privilegierade grupper: Lägg en flagga till koncernstruktur: Om gruppen är skapad av en kärna tråd, då alla resurser i gruppen måste vara privilegierade
  • .
  • Cryptogrphic Support:
  • krypto / cryptodev.c: bansegment omvända inkluderar sökvägen. Noteras av Brennan Ashton.
  • Vanliga Drivers:
  • Common KAN övre halvan: I can_txdone, servitörer på semaforen bör informeras oavsett returvärdet av can_xmit. Först åter -EIO om det inte finns några nya paket, och andra uppgifter av servitörer är om den sista överförda paketet. Från Daniel Lazlo Sitzer.
  • ARM:
  • systemanrop: Fixa ett stavfel i systemanrop när hämtar parameter från stacken: Receptacles [REG_PC] +4 är adressen, inte regs [REG_PC + 4]
  • .
  • STMicro STM32 Drivers:
  • STM32 F401 UART: Korrekt stöd för USART6 på detta chip. Från Freddie Chopin.
  • STM32 FLASH fixar: använd size_t istället för uint16_t, göra gränssnittet mer generisk. Från Freddie Chopin.
  • STM32 UART. Fix för UART7 och UART8 på STM32 klockaktiverings från Aton
  • CAN: Vid slutet av avbrottshanteraren ades avbrotten att inaktiveras om samtliga paket har överförts när avbrottshanteraren åberopades. Detta är problematiskt, eftersom avbrottshanteraren anropar can_txdone () av ​​den övre halvan som kan köa nya paket att skicka. Tog bort blocket helt och hållet, eftersom can_txdone () kallar can_xmit () som inaktiverar avbryter om det inte finns några nya paket att skicka. Från Daniel Lazlo Sitzer.
  • CAN. Ytterligare STM32 CAN korrigering föreslås av Max Holtzberg
  • STMicro ST32 Boards:
  • configs / MIKROE-stm32f4: Fixa några sammanställa buggar och mindre korrigeringar till MIKROE-stm32f4 konfigurationskälla. Från Ken Pettit.
  • ARM9 / ARMv7-A:
  • systemanrop: Fix ARM7 / 9 och Cortex-A SYSCALLs: För trådar i SVC-läge, SVC instruktioner clobbers R14. Detta måste beaktas i inline montering.
  • Task Setup: Alla uppgifter, även användarläge uppgifter, måste börja i supervisor läge tills de komma förbi start studsmatta .
  • ARMv7-A: Ändra up_fullcontextrestore () för CONFIG_BUILD_KERNEL. Det förändrade CPSR medan kärnan. Det kommer att krascha om den nya CPSR är användarläge samtidigt som körs i kärnan rymden. Fast genom att tillsätta ett SYS_context_restore systemanrop. Det finns ett alternativ, enklare modifiering up_fullcontextrestore () som kunde ha gjorts: Det kan ha varit möjligt att använda SPSR istället för Kompr och sedan göra ett undantag avkastning från up_fullcontextrestore (). Det skulle vara mer effektivt, men jag har aldrig provat det.
  • Atmel SAM3 / 4 Boards:
  • SAM3X / Arduino grund: Fix stavfel i sam3x_periphclks.h; lägg SCLK definitioner att board.h header-fil. Från Fabien Comte.
  • SAM3 RTT: Endast SAM4 familj har RTTDIS bit i MR-registret. Sourceforge bugg # 33 från Fabien Comte.
  • C-bibliotek:
  • sscanf (): NuttX libc försökte gissa hur många tecken att tolka, extraherades dem i en buffert, sedan sprang strtol () på den buffert. Det gissning var ofta fel. En bättre lösning skulle vara att ringa strtol () direkt på ingångsdata, använda endptr returvärdet för att bestämma hur många tecken att hoppa efter tolkning. Från Kosma Moczek.
  • Math Library. Korrigerad atan2 implementeringar från Denis Arnst
  • Floating Point Output: Byt till lib_dtoa () för att fastställa exakt fel från avslutande nollor. Från Bob Doiron.
  • Program:
  • kommandot Fix NSH PS:. Om det inte finns några argument, kan det ut sopor för argumentlista
  • Konfiguration / byggsystem:
  • Null Exempel: Behovet av att inkludera config.h det för vet om det är eller inte är en kärna bygga. Detta problem kvarstår i flera andra fil som kan behöva definiera main ().

Vad är nytt i version 7.8:

  • Funktioner: Ytterligare nya funktioner och utökad funktionalitet:
  • Kärn OS:
  • Watchdog Timer Tilldelning: (1) Om vi ​​får slut på förhand tilldelade vakthund gånger, kommer logiken nu avsätta ytterligare timers från högen. En reserv på förhand tilldelade väktartimers bibehålls så att det alltid kommer att finnas timers tillgängliga för avbrottslastare. (2) Stöd för statiskt tilldelade watchdog timer
  • Adress Miljö Support: (2) nya operativsystemet API: er integrerade i alla plattformsspecifik kontextväxling logik (up_block_task (), up_unblock_task (), _exit (), och andra)
  • .
  • Kernel Build Support: (1) MPU baserade & quot; kärnan bygga & quot; omdöpt till en skyddad bygga (CONFIG_BUILD_PROTECTED); lagt till stöd för en ny MMU-baserade & quot; kärnan bygga & quot; (CONFIG_BUILD_KERNEL), (2) Systemet samtals biblioteket kan nu byggas med CONFIG_NUTTX_KERNEL. Nytt val *:. CONFIG_LIB_SYSCALL
  • systemstart: Lägg konfigurationsalternativ för att starta systemet från ett program på ett filsystem (jämfört med en adress i minnet)
  • .
  • Startup Parameter Passningsspel: Det brukade vara två sätt att skicka parametrar till nya uppgifter, beroende på konfiguration: Antingen (1) argv [] som skapades som en matris med varje sträng strdup'ed. Eller (2) argv [] array och strängar skapades på stacken innan den nya uppgiften startades. Nu finns det bara ett sätt, sätt (2). Way (1) kan vara något mer kompakt, men det är inte värt bära komplexiteten i två olika sätt att göra samma sak.
  • Board Initiering: Lägg förmåga att utföra inledande styrelsen initiering på en separat arbetstråd. Detta behövs eftersom det finns många fall där initiering logik inte kan utföra på uppstart / IDLE tråden. Det beror på att blockera eller väntar är inte tillåten på IDLE tråden.
  • Memory Management:
  • Granule Allocator: (1) Lägg till en ny funktion för att reservera un-allokerbara regioner i granulat högen. (2) Lägg till gränssnitt för att stödja FN-initiera ett granulat allokeraren.
  • Sida allokatom: Lägg till en enkel fysisk sida allokeraren baserat på befintliga NuttX granulat allokeraren. Jag är inte säker på om granulat allokeraren är tillräckligt deterministisk för långväga användning, men det blir få en sida allokerare på plats för att testa mycket snabbt.
  • Ta bort CONFIG_MM_MULTIHEAP: Icke-multiheap operation stöds inte längre
  • .
  • sbrk ():. Sbrk () stöds nu i kärnan bygga för att möjliggöra dynamiskt storlek, per-process högar
  • Per-Process Heaps: Space i början av processen datautrymme är nu reserverat för användare heap ledningsstrukturer. I kärnan byggläget är dessa heap strukturer delas mellan kärnan och använd kod för att fördela användarspecifika data.
  • Användar Heap Management: När en privilegierad gäng utgångar, måste vi använda kärnan allokerare att frigöra minne; när en oprioriterade gäng utgångar, behöver vi inte göra något ... heap minne kommer att rengöras när adress miljön rivas.
  • Inter-Process Shared Memory Support: (1) Lägg till genomförande och dokumentation för shmget (), shmctl (), shmat (), och shmdt (). (2) Lägg till systemets systemanrop för att stödja användaren samtalet porten till de delade minnesgränssnitt. (3) Lägg till gränssnittsdefinitioner plattformsspecifika krävs för att stödja den funktion som delar minne.
  • Virtual Sida allokatom: Lägg till stöd för en per-process virtuell sida allokeraren. Detta är en ny medlem i task_group_s struktur. Den fördelnings måste initieras när en ny användarprocess startas och avinitiera när processgrupp slutligen förstörs. Det används av shmat () och shmdt () för att välja den virtuella adress, på vilken att kartlägga den delade fysiska minnet.
  • filsystem / Block Drivers / MTD:
  • SMART FS: SMART FS och SMART FS procfs uppdateringar från Ken Pettit
  • .
  • MTD:. MTD Läs-ahead / Skriv buffertlager verkar fungerar nu
  • Binary Format:
  • Per-Process Heap. Lägg logik för att initiera per processanvändar högen när varje användare process startas
  • Grafik:
  • NxTerm: Ändra alla förekomster av NxConsole till NxTerm
  • .
  • Nätverk:
  • PHY Avbryter: (1) Standardisera en PHY avbrottsfäst gränssnitt. (2) Lägg till stöd för ett ioctl som kan användas för att meddela en ansökan när det sker en förändring i nätverksstatus signaleras med en PHY avbrott.
  • Förbättrad Skicka Logic: Förr i tiden, det första paketet skickas till ett nytt nätverk inbördes skulle misslyckas; det skulle finnas någon post i ARP tabellen för referensgruppen och så en ARP begäran skulle kunna ersätta det första paketet. Nu som ett alternativ om CONFIG_NET_ARP_SEND = y, alla skickar logik kommer (1) kontrollera om peer MAC-adressen är i ARP tabellen och, om inte, (2) skicka ARP förfrågningar med jämna mellanrum för att få kartläggning och (3) vänta på ARP svar. Därefter (4) när ARP svar fick då själva skicka logiken kommer att inledas. Således kan det finnas en fördröjning med det första paketet skickas till en ny peer, men paketet bör inte gå förlorad
  • Värd Simulering:
  • SPI FLASH Driver:. Emulerad SPI FLASH drivrutinen för sim målet från Ken Pettit
  • Intel x86:
  • Standard Värd: Standard värd är nu x86_64 och alternativet -m32 väljs automatiskt för simulering bygger
  • .
  • Intel 8051 Familj:
  • 8051 Bort: Borttagen allt stöd för 8051 familjen arkitektur från NuttX källkodsträdet. Den föråldrade koden tillsammans med avlägsnandet patch kan nu hittas på misc / föråldrade /. Denna kod togs bort eftersom (1), även om vissa funktioner har visats, jag känner inte till några riktigt framgångsrika hamnar NuttX till alla 8051, och (2) 8051, med sin hårdvara stack, tvingar begränsningar och komplikationer till andra arkitekturer och göra tillväxt och utveckling av NuttX mer komplex.
  • Zilog ZNeo Boards:
  • configs / 16Z: Stöd för detta kort har tagits bort från NuttX källkodsträdet (men fortfarande kan hittas i misc / föråldrade katalog). Denna port är inte redo för användning men kan återvända till NuttX träd någon gång i framtiden.
  • Atmel SAM3 / 4 Boards:
  • SAM4E-EK:. Lägg till (1) ett fullt fungerande ILI9341 baserade LCD föraren och (2) en fullt fungerande NxWM konfiguration
  • ARMv7-A:
  • Adressmiljöer: Lägg till stöd för ansökan adress miljöer med Cortex-A MMU. Genomföra standardiserade plattformsspecifika gränssnitt NuttX adress miljöstöd.
  • Cache Operations: Genomföra standardiserade, cacheoperationer plattformsspecifika. Dessa kallas från ELF lastaren för att spola D-cache och ogiltigförklara I-cache efter en ELF-modulen har laddats in i minnet. Med denna förändring, ELF moduler fungerar korrekt på SAMA5 / Cortex-En plattform.
  • Kernel Build: (1) Lägg till implementeringar av systemanrop grind. (2) Lägg till CRT0 start fil som kan kopplas till separat byggda användarprogram. (3) Lägg till stöd för leverans av användnings modsignaler i kärnan bygga. (4) Lägg till logik för att initiera per processanvändar högen när varje användare processen startas. (5) ARMv7-A undantagshantering måste arbeta lite annorlunda om vi stöder användarläge processer. Detta beror på att R13 och R14 är olika paged mellan användaren och SVC-läge.
  • Shared Memory Support: (1) Lägg till logik som krävs för att hantera mappning av delat minne på kontext växlar. (2) Utöka virtuella / fysiska adress konverteringar att inkludera adresser i delat minne. (3) Lägg till genomförandet av plattformsspecifika delat minne stöd.
  • Atmel SAMA5D Drivers:
  • Nätverk ioctls. Genomföra alla nätverks ioctls, inklusive den nya ioctl anmälningar inställning PHY händelse
  • Adress omvandlingar. I kärnan bygga med adress miljö, behöver logik för att kartlägga användarnas virtuella adresser till fysiska adresser, och vice versa
  • Atmel SAMA5D Boards:
  • SAMA5D3 Xplained, SAMA5D3-EK och SAMA5D4-EK: Konvertera befintliga fordonsbaserat specifikt PHY avbrotts gränssnitt för att använda nydefinieras standardgränssnitt
  • .
  • SAMA5D4-EK: Lägg en konfiguration för att testa kärnan bygga konfigurationen. Det finns konfigurationer att starta antingen från ett SD-kort eller från och in-memory ROMFS filsystem.
  • SAMA5D4-EK: Lägg dokumentation / support för Rev E. styrelse
  • .
  • STMicro STM32 Drivers:
  • Ethernet: Modifierad att stödja övergången till förändringar nätverks ioctl signatur. Också lägga till stöd för nya ioctl anmälningar inställning PHY händelse.
  • STMicro STM32 Boards:
  • STM32F4DISCOVERY med STM32F4DIS-BB: Lägg ett nätverk aktiverat NSH konfiguration för STM32F4DISCOVERY styrelse med STM32F4DIS-BB baskort installerad. Inkluderar stöd för microSD-kortplats på STM32F4DIS-BB baskort.
  • TI Tiva Drivers:
  • TI CC3200: Lägg till stöd för TI CC3200. Från Jim Ewing.
  • TI Tiva Boards:
  • TI CC3200 Launchpad: Lägg till stöd för TI CC3200 Launchpad. Från Jim Ewing.
  • C-bibliotek:
  • omröstning ():. Åter genomfört undersökning () fördröjning använder sem_timedwait ()
  • Konfiguration / byggsystem:
  • Exportera Mål: I kärnan eller skyddade bygger, (1) endast de bibliotek användar ska exporteras, (2) inte kopiera interna header-filer eller bygga manus om detta är en kärna eller skyddad bygga, och (3) behov att bunta upp användaren C startfilen (crt0), inte kärnan huvudobjekt för kärnan och skyddas bygger.
  • Program CFLAGS: Lägg logik som kommer att tillåta oss att bygga användar bibliotek med olika CFLAGS än kernel kod. Detta behövs eftersom vi behöver -fno-common alternativ när man bygger ELF-kod för att förhindra SHN_COMMON omlokaliseringar.
  • Program:
  • NSH: Förläng NSH nätverksinitiering logik. Det finns nu ett alternativ som kommer att skapa ett nätverk bildskärm tråd som kommer att övervaka tillståndet i länken. När länken går ner, kommer koden att försöka graciöst sätta Ethernet-drivrutinen i en ned tillstånd; När länken kommer tillbaka, kommer koden försöka bringa nätverket tillbaka upp.
  • ELF Exempel:. ELF test / exempel har utvidgats så att enskilda ELF testprogram kan länka mot syscall biblioteket (om det är tillgängligt) eller mot C-biblioteket för att eliminera eller minimera behovet av symboltabeller
  • NxTerm: Ändra alla förekomster av NxConsole till NxTerm
  • .
  • MTDRWB Exempel:. Lägg till en exempel att testa MTD R / W buffring
  • OS Testexempel: Lägga till en trivial test av sem_timedwait ()
  • .
  • Verktyg:









































  • Verktyg:




  • Verktyg:
























































































  • Verktyg:


























  • Buggfixar:






































































































Liknande mjukvara

ktap
ktap

18 Feb 15

perfmon2
perfmon2

12 May 15

Kommentarer till NuttX

Kommentarer hittades inte
Kommentar
Slå på bilder!