NuttX

Software screenshot:
NuttX
Software informatie:
Versie: 7.9 Bijgewerkt
Upload datum: 10 May 15
Ontwikkelaar: Gregory Nutt
Licentie: Gratis
Populariteit: 53

Rating: 4.0/5 (Total Votes: 1)

NuttX is een open source, deterministische en gratis real-time embedded besturingssysteem (RTOS), ontworpen vanuit de offset bruikbaar in diep verankerd, resource beperkte omgevingen te zijn. Het heeft een kleine footprint, dat bruikbaar is in de micro-controller-omgevingen, en het & rsquo; s volledig schaalbaar van klein (8-bit) tot matige ingebed (32-bit) systemen.
Zij beoogt ook volledig voldoet aan de normen zijn, volledig real time en volledig open zijn. NuttX heeft een rijke functie OS set, een modulair ontwerp, het is zeer schaalbaar en configureerbaar, evenals voldoen aan de standaard. Het wordt gedistribueerd met een niet-beperkende BSD-licentie. Het wordt vaak genoemd door de ontwikkelaars als "Tiny Linux." Kenmerken in een glanceKey kenmerken zijn kerntaak management, BSD socket-interface, geheugen allocators (gedeeld geheugen, standaard heap geheugen toewijzing, beschermd bouwen met MPU, vlakke ingesloten build, per-proces afvalbergen, korrel allocator en dynamisch en kleinbedrijf), geheugen configuraties, porting gids, volledig preemptible, tik-bediening, on-demand paging en logging systeem.
Daarnaast is het project wordt geleverd met uitbreidingen van het voorkeursrecht, per draad, ingebouwde CPU load metingen, uitgebreide documentatie, optionele taken dat adres omgevingen, ANSI-achtige en POSIX-achtige taak controles, klokken, pthreads bevatten, omgeving te beheren variabelen, signalen, genaamd bericht wachtrijen, timers, het bestandssysteem en het tellen van semaforen.
Onder andere functies, kunnen we noemen round-robin scheduling, FIFO, steun voor prioritaire erfenis, steun voor de SoC architectuur, ondersteuning voor board architecturen, ondersteuning voor nieuwe processor architecturen, watchdog timers, VxWorks-achtige taakbeheer, I / O redirection en doorgegeven & ldquo; beheersen terminals & rdquo;. Ondersteunde platformsNuttX ondersteunt een breed scala aan hardware platforms, waaronder kunnen we talloze ARM-processors, waaronder ARM Cortex-M3, ARM926EJS, ARM7TDMI, ARM Cortex-M4, ARM Cortex-M0, ARM920T en ARM vermelden Cortex-A5, evenals de Atmel 8-bit AVR, Freescale M68HCS12, AVR32 Atmel AVR platforms.
Bovendien, het ondersteunt ook verschillende Intel-platforms, zoals MicroChip PIC32MX (MIPS), 80c52 en 80 & tijden; 86, Zilog platforms, met inbegrip van Z80, Zilog Z16F, Zilog Z8Encore! en Zilog eZ80 Acclaim !, en de Renesas / Hitachi SuperH en Renesas M16C / 26 platforms

Wat is nieuw in deze release:.

  • Kenmerken: Extra nieuwe functies en uitgebreide functionaliteit:
  • Core OS:
  • Watchdog timer Toewijzing: (1) Als we uit de pre-toegewezen waakhond tijden lopen, de logica wordt nu extra timers uit de heap toewijzen. Een reserve van vooraf toegewezen watchdog timers wordt gehandhaafd, zodat er altijd zal zijn timers beschikbaar voor interrupt handlers. (2) Ondersteuning toegevoegd voor statisch toegewezen watchdog timer
  • Adres Milieu Ondersteuning: (2) Nieuw OS API's geïntegreerd in alle platform-specifieke context switching logica (up_block_task (), up_unblock_task (), _exit (), en anderen)
  • .
  • Kernel Build Ondersteuning: (1) De MPU gebaseerd & quot; kernel build & quot; omgedoopt tot een beschermd build (CONFIG_BUILD_PROTECTED); toegevoegde ondersteuning voor de nieuwe MMU-gebaseerde & quot; kernel build & quot; (CONFIG_BUILD_KERNEL), (2) Het systeem call bibliotheek kan nu worden gebouwd met CONFIG_NUTTX_KERNEL. Nieuwe selectie *:. CONFIG_LIB_SYSCALL
  • System Startup: Voeg configuratie-opties om het systeem van een programma op een bestandssysteem (versus een adres in het geheugen) start
  • .
  • Startup Parameter pass: Vroeger waren er twee manieren om parameters door te geven aan nieuwe taken, afhankelijk van de configuratie: Ofwel (1) argv [] zo gemaakt als een array met elke snaar strdup'ed. Of (2) argv [] array en strings werden gemaakt op de stapel voor de nieuwe taak werd gestart. Nu, er is maar één weg, weg (2). Way (1) zou kunnen zijn iets compacter, maar dit is niet de moeite waard dragen de complexiteit van twee verschillende manieren om hetzelfde te doen.
  • Board initialisatie: het vermogen toe aan de eerste raad van bestuur de initialisatie uit te voeren op een aparte thread werker. Dit is noodzakelijk omdat er veel gevallen waarin initialisatie logica niet kan uitvoeren bij het opstarten / IDLE thread. Dat komt omdat het blokkeren of wachtruimte is niet toegestaan ​​op de IDLE thread.
  • Memory Management:
  • Korrel Allocator: (1) Voeg een nieuwe functie om niet-toewijsbare regio behouden in de korrel heap. (2) interfaces toe aan-un initialiseren van een korrel allocator.
  • ondersteunen
  • Pagina Allocator: Voeg een eenvoudige fysieke pagina allocator op basis van de bestaande NuttX korrel allocator. Ik ben niet zeker of de korrel allocator voldoende deterministisch voor lange afstand te gebruiken, maar het wordt krijgt een pagina allocator in de plaats voor zeer snel te testen.
  • Verwijder CONFIG_MM_MULTIHEAP: Non-multiheap werking wordt niet langer ondersteund
  • .
  • sbrk ():. Sbrk () wordt nu ondersteund in de kernel te bouwen om dynamisch en kleinbedrijf, per-proces hopen toestaan ​​
  • Per-Process Heaps: Space aan het begin van het proces data ruimte is nu gereserveerd voor de gebruiker heap managementstructuren. In de kernel build-modus worden deze hoop structuren gedeeld tussen de kernel en het gebruik code om de gebruiker-specifieke gegevens toe te wijzen.
  • Gebruikers Heap Management: Wanneer een bevoorrechte thread uitgangen, moeten we de kernel allocator om geheugen vrij te gebruiken; wanneer een onbevoegde thread uitgangen, we hebben niet om iets te doen ... heap geheugen worden opgeruimd als het adres milieu wordt afgebroken.
  • Inter-Process Gedeeld Geheugen Ondersteuning: (1) de uitvoering en documentatie toevoegen voor shmget (), shmctl (), shmat (), en shmdt (). (2) Voeg systeem systeem oproepen naar de gebruiker oproep poort te ondersteunen om het gedeelde geheugen interfaces. (3) Voeg platform-specifieke interface definities die nodig zijn om het gedeelde geheugen functie ondersteunen.
  • Virtual Pagina Allocator: ondersteuning toevoegen voor een per-proces virtuele pagina allocator. Dit is een nieuw lid van de task_group_s structuur. De allocator moet worden geïnitialiseerd wanneer een nieuwe gebruiker wordt gestart en uninitialize wanneer het proces groep uiteindelijk vernietigd. Het wordt gebruikt door shmat () en shmdt () om het virtuele adres waarop de gedeelde fysieke geheugen kaart te halen.
  • File Systems / Block Drivers / MTD:
  • SMART FS: SMART FS en SMART FS procfs update van Ken Pettit
  • .
  • MTD. De MTD lezen-ahead / Write buffer laag verschijnt nu functioneel
  • Binary-indelingen:
  • Per-Proces Heap. Logica toevoegen aan de per-proces gebruiker heap initialiseren wanneer elke gebruiker wordt gestart
  • Graphics:
  • nxterm: Wijzig alle exemplaren van NxConsole tot nxterm
  • .
  • Netwerken:
  • PHY Interrupts: (1) Standaardiseren een PHY interrupt bevestiging interface. (2) ondersteuning toevoegen voor een ioctl dat kan worden gebruikt om een ​​applicatie op de hoogte wanneer er een verandering in de status van het netwerk gesignaleerd door een PHY interrupt.
  • Verbeterde Send Logic: In het verleden, het eerste pakket naar een nieuwe peer-netwerk zou mislukken; zou er geen vermelding in de ARP-tabel voor de referentiegroep en dus een ARP verzoek kon dat eerste pakket vervangen. Nu als een optie als CONFIG_NET_ARP_SEND = y, alle stuur logica (1) controleren of de peer-MAC-adres in de ARP-tabel, en zo niet, (2) Stuur ARP verzoeken regelmatig om de mapping te krijgen en (3) wachten op de ARP antwoord. Vervolgens (4) wanneer de ARP-respons wordt ontvangen dan de feitelijke send logica wordt gestart. Zo er een vertraging met het eerste pakket naar een nieuwe collega kan zijn, maar het pakket niet verloren mag gaan
  • Host Simulatie:
  • SPI FLASH Driver:. Geëmuleerde SPI FLASH driver voor de sim doel van Ken Pettit
  • Intel x86:
  • Standaard Host: De standaard gastheer is nu x86_64 en de optie -m32 zal automatisch worden geselecteerd voor simulatie bouwt
  • .
  • Intel 8051 Familie:
  • 8051 Verwijderd: Verwijderd alle steun voor de 8051-familie architectuur uit de NuttX source tree. De verouderd code samen met de verwijdering patch is nu te vinden op misc / Obsoleted /. Deze code werd verwijderd omdat (1), hoewel sommige functies is aangetoond, ik ben niet bewust van enige echt succesvolle havens van NuttX elke 8051, en (2) de 8051, met zijn hardware stack, dwingt beperkingen en complicaties aan de andere architecturen en maak de groei en ontwikkeling van NuttX complexer.
  • ZiLOG ZNeo Boards:
  • configs / 16Z: Ondersteuning voor dit bord is verwijderd uit de NuttX source tree (maar kan nog steeds worden gevonden in de misc / Obsoleted directory). Deze poort is niet klaar voor gebruik, maar kan op een bepaald moment in de toekomst terug te keren naar de NuttX boom.
  • Atmel SAM3 / 4 Boards:
  • SAM4E-EK:. Voeg (1) een volledig functionele ILI9341 gebaseerde LCD-driver en (2) een volledig functionele NxWM configuratie
  • ARMv7-A:
  • Adres Environments: ondersteuning toevoegen voor toepassing adres omgevingen met behulp van de Cortex-A MMU. Implementeren gestandaardiseerde platform-specifieke interfaces van NuttX adres milieu steun.
  • Cache Operations: implementeren gestandaardiseerde, platform-specifieke cache operaties. Deze worden genoemd van de ELF loader om D-cache spoelen en ongeldig I-cache na een ELF-module is in het geheugen geladen. Met deze verandering, correct ELF modules werken op de SAMA5 / Cortex-A platform.
  • Kernel Build: (1) implementaties van system call gate toe. (2) Voeg CRT0 start-up bestand dat kan worden verbonden met afzonderlijk ingebouwde gebruikersprogramma's. (3) steun toe voor de levering van het gebruik-modus signalen in de kernel te bouwen. (4) logische Naar de per-proces user heap geïnitialiseerd wanneer elke gebruiker wordt gestart. (5) ARMv7-A exception handling nodig heeft om een ​​beetje anders werken als we steunen user mode processen. Dit komt omdat R13 en R14 anders zijn opgeroepen tussen gebruiker en SVC gecontroleerd.
  • Gedeeld Geheugen Ondersteuning: (1) de logica die nodig zijn om te behandelen remapping gedeeld geheugen op context switches toevoegen. (2) Extend virtueel / fysiek adres omzettingen naar adressen in het gedeelde geheugen bevatten. (3) uitvoering van platform-specifieke gedeeld geheugen ondersteuning toevoegen.
  • Atmel SAMA5D Drivers:
  • Netwerk ioctls:. Implementeer alle netwerk ioctls, waaronder de nieuwe ioctl setup PHY meldingen
  • Adres conversies. In kernel te bouwen met adres milieu, moeten de logica van de gebruiker virtuele adressen naar fysieke adressen in kaart, en vice versa
  • Atmel SAMA5D Boards:
  • SAMA5D3 Xplained, SAMA5D3-EK en SAMA5D4-EK: Zet bestaande board specifieke PHY interrupt interfaces aan nieuw gedefinieerde standaard interface gebruiken
  • .
  • SAMA5D4-EK: Voeg een configuratie voor het testen van de kernel build configuratie. Er zijn configuraties te starten of vanaf een SD-kaart of van en in-memory romfs bestandssysteem.
  • SAMA5D4-EK: Voeg documentatie / support voor Rev E. board
  • .
  • STMicro STM32 Drivers:
  • Ethernet: aangepast aan de wijziging van het netwerk ioctl handtekening veranderingen te ondersteunen. Voeg ook ondersteuning voor nieuwe ioctl setup PHY evenement meldingen.
  • STMicro STM32 Boards:
  • STM32F4DISCOVERY met STM32F4DIS-BB: Voeg een netwerk ingeschakeld NSH configuratie voor de STM32F4DISCOVERY bord met de STM32F4DIS-BB base board geïnstalleerd. Bevat ondersteuning voor de microSD-kaartsleuf op de STM32F4DIS-BB base board.
  • TI Tiva Drivers:
  • TI CC3200: ondersteuning toevoegen voor de TI CC3200. Van Jim Ewing.
  • TI Tiva Boards:
  • TI CC3200 Launchpad: ondersteuning toevoegen voor de TI CC3200 Launchpad. Van Jim Ewing.
  • C Library:
  • poll ():. Re-geïmplementeerd poll () vertraging met sem_timedwait ()
  • Configuratie / Build Systeem:
  • Exporteer Target: In de kernel of beschermde bouwt, (1) alleen de gebruiker bibliotheken moeten worden geëxporteerd, (2) geen interne header bestanden te kopiëren of bouwen van scripts als dit is een kernel of beschermde build, en (3) behoeften te bundelen van de gebruiker C opstartbestand (crt0), niet de kernel hoofd object voor de kernel en beschermd bouwt.
  • Programma CFLAGS: logica die ons zal toelaten om de gebruiker bibliotheken met verschillende CFLAGS dan kernel code te bouwen toe. Dit is nodig omdat we de -fno-gemeenschappelijke optie bij het bouwen van ELF code SHN_COMMON verhuizingen te voorkomen.
  • Toepassingen:
  • NSH: Verleng de NSH netwerk initialisatie logica. Er is nu een optie die een netwerk-monitor draad die de toestand van de link zal volgen zal creëren. Als de link naar beneden gaat, wordt de code proberen te sierlijk zet de Ethernet-driver in een down toestand; Wanneer de koppeling terugkomt, wordt de code proberen om het netwerk een back-up te brengen.
  • ELF. Voorbeeld: De ELF-test / voorbeeld is uitgebreid, zodat de individuele ELF-test programma kunt koppelen tegen de SYSCALL bibliotheek (indien beschikbaar) of tegen de C-bibliotheek te elimineren of te minimaliseren van de noodzaak tot symbool tabellen
  • nxterm: Wijzig alle exemplaren van NxConsole tot nxterm
  • .
  • MTDRWB Voorbeeld:. Voeg een voorbeeld voor MTD R / W buffering testen
  • OS Test Voorbeeld: Voeg een triviale test van sem_timedwait ()
  • .
  • Application configuratie / bouwsysteem:
  • Import Doel: (1) de logica dat het bouwen van applicaties tegen een NuttX exportpakket (versus de nuttx / source tree) kunt toevoegen. (2) Voeg .config bestand pakket exporteren. (3) Maak apps / import. Maak apps / import / Make.defs dat soort dingen bepalen CFLAGS doet; ELF build vereist -fno-common in CFLAGS. Kopieer enkele base logica van nuttx / tools / Config.mk om apps / import / Make.defs. (4) Voeg apps / import / scripts / gnu-elf.ld GCC linker script voor ELF import bouwt.
  • Alle Makefiles: (1) Voeg een installatie doel om alle makefiles. Voor de invoer build, de top-level Makefile nu doet twee passes: (1) bouwt libapp.a, daarna (2) installeert het programma in apps / bin. (2) Voeg programma-installatie voor CONFIG_BUILD_KERNEL in alle Makefiles dat het bouwen van een main (). (3) Voor de kernel te bouwen, het object bestand met main () kan niet in de bibliotheek vanwege de naam botsingen. Het object bestand moet worden behandeld als een speciaal geval in elk Makefile.
  • Alle ingebouwde programma's: Met kernel build (CONFIG_BUILD_KERNEL), toegangspunt voor alle taken is de belangrijkste (), niet een xyz_main ()
  • .
  • NSH: Verschillende opdrachten moeten worden uitgeschakeld in de kernel te bouwen, omdat ze afhankelijk zijn van interfaces die niet beschikbaar zijn buiten de kernel. Dd, df, losetup, mkfatfs, mkdr en ps
  • apps / tools /: (1) mkimport.sh toevoegen aan een NuttX import-pakket ontploffen en installeren apps / import. (2) Voeg mkromfsimg.sh script om een ​​afbeelding BOOT romfs bestandssysteem te maken.
  • ELF en NxFLAT Voorbeelden:. Heeft testcases dat task_create () als er een adres gebruiken omgeving niet bouwen
  • Extra:
  • refresh.sh:. Voeg een hulpmiddel om verfrissende configuraties gemakkelijker te maken als u wilt veel van hen doen
  • mksyscall.c: Build syscalls die geen header bestanden nodig hebben
  • .
  • mkexport.sh:. Voeg .config bestand pakket exporteren
  • apps / gereedschap: zie hierboven voor nieuwe apps / gereedschappen scripts
  • .
  • De inspanningen In Progress. De volgende zijn de kenmerken die gedeeltelijk worden uitgevoerd, maar die aanwezig zijn in deze release. Ze zijn niet waarschijnlijk binnenkort worden afgerond.
  • Processes: Een groot deel van het werk in deze release is gericht op de realisatie van de Unix-stijl gebruiker processen in NuttX. Er is meer te doen, echter. De volledige roadmap en de status is beschikbaar op: http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
  • XMEGA: Er zijn een aantal fragmenten in de plaats voor een XMEGA poort. Dat poort niet echt begonnen, echter.
  • Galileo: Ook zijn er fragmenten in de plaats voor een Intel Galileo-poort. De haven niet in alle ernst begon ook niet.
  • Bugfixes. Alleen de meest kritische bugfixes zijn hier vermeld (zie de ChangeLog voor de volledige lijst met bugfixes en voor bijkomende, meer gedetailleerde bugfix informatie):
  • Core OS:
  • Kernel bouwen fixes: (1) IDLE TCB setup nodig heeft om aan te geven dat de IDLE thread is een bevoorrechte, kernel thread. (2) niet te bouwen task_create () of task_spawn () interfaces als er een adres omgeving. (3) posix_spawn () kernel proxy thread zou een kernel thread, niet een gebruiker taak zijn.
  • Verscheidene pthread interfaces: Voeg const opslag klasse parameters phthread. Van Freddie Chopin.
  • Sched / klok: Verwijder de overblijfselen van g_tickbias; moeten daarentegen de tijd voorspanning toepassing g_basetime teneinde het juiste systeemtijd geven.
  • Systeem Oproepen: (1) Een aantal typefouten vastgesteld; gecorrigeerde integratie van exevc (), execvl (), posix_spawn (), en posix_spawnp () system calls. (2) Als we zijn geconfigureerd om een ​​kernel stack gebruiken terwijl in SYSCALL hanteren, dan moeten we om terug te schakelen naar de gebruiker stack om een ​​signaal te leveren.
  • File Systems / Block Drivers / MTD:
  • procfs: Fix sommige procf breuk geïntroduceerd door het reorganiseren van een aantal niet-reorganizable datastructuren. Van Ken Pettit.
  • AT45: In at45db_bwrite (), wordt de buffer niet verhoogd bij het schrijven van meer dan 1 pagina. Sourceforge bug # 34.
  • Binary-indelingen:
  • ELF verhuizingen: Sommige soorten verhuizing niet een naam symbool verband met hen te hebben. Het ontwerp niet goed zijn voor dat geval.
  • ELF Loader:. Kritische bugfix .. BSS werd niet ontruimd
  • Memory Management:
  • Korrel Allocator: Korrel allocator initialisatie gebruikt verkeerde allocator om vernietiging kernel geheugen
  • .
  • Privileged Groepen: Voeg een vlag om groepsstructuur: Als de groep wordt gecreëerd door een kernel thread, dan worden alle bronnen in de groep moet bevoorrecht worden
  • .
  • Cryptogrphic Ondersteuning:
  • crypto / cryptodev.c: Path segmenten omgekeerd bevatten bestandspad. Opgemerkt door Brennan Ashton.
  • Common Drivers:
  • Common CAN bovenste helft: In can_txdone, obers op de semafoor moeten worden geïnformeerd, ongeacht de return waarde van can_xmit. Eerst terug -EIO als er geen nieuwe pakketten, en de tweede van de informatie van de obers is ongeveer het laatste overgedragen pakket. Van Daniel Lazlo Sitzer.
  • ARM:
  • Systeem Oproepen: Fix een typfout in het systeem bellen als het ophalen van de parameter van de stapel: regs [REG_PC] 4 is het adres, niet regs [REG_PC + 4]
  • .
  • STMicro STM32 Drivers:
  • STM32 F401 UART: De juiste ondersteuning voor USART6 op deze chip. Van Freddie Chopin.
  • STM32 FLASH verhelpt: gebruik size_t plaats van uint16_t, maken-interface meer generiek. Van Freddie Chopin.
  • STM32 UART:. Fix voor UART7 en UART8 op STM32 klok staat van Aton
  • CAN: Aan het einde van de interrupt handler werden de interrupts zijn uitgeschakeld, als alle pakketten zijn overgedragen toen de interrupt handler werd aangeroepen. Dit is problematisch, omdat de interrupt handler roept can_txdone () van de bovenste helft die nieuwe pakketten kunnen Enqueue verzenden. Verwijderd het blok helemaal, want can_txdone () noemt can_xmit (), die interrupts uitschakelen als er geen nieuwe pakketten te sturen. Van Daniel Lazlo Sitzer.
  • CAN:. Extra STM32 CAN correctie voorgesteld door Max Holtzberg
  • STMicro ST32 Boards:
  • configs / MIKROE-stm32f4: Fix een paar stellen bugs en kleine correcties aan de MIKROE-stm32f4 configuratie bron. Van Ken Pettit.
  • ARM9 / ARMv7-A:
  • Systeem Oproepen: Fix ARM7 / 9 en Cortex-A syscalls: Voor discussies in SVC-modus, de SVC instructies clobbers R14. Dit moet rekening worden gehouden in de inline assembly.
  • Task Setup: Alle taken, zelfs user mode taken moeten starten in supervisor modus totdat ze voorbij de start-up trampoline krijgen
  • .
  • ARMv7-A: up_fullcontextrestore () wijzigen voor CONFIG_BUILD_KERNEL. Het veranderde CPSR terwijl in de kernel. Dat zal crashen als de nieuwe CPSR is user mode tijdens het uitvoeren in de kernel ruimte. Vastgesteld door een SYS_context_restore systeem aanroep toe te voegen. Er is een alternatief, eenvoudiger wijziging up_fullcontextrestore (), die had kunnen worden gedaan: Het zou mogelijk zijn geweest om de SPSR plaats van de CPRSR gebruiken en doe dan een uitzondering terugkeer uit up_fullcontextrestore (). Dat zou efficiënter zijn, maar ik heb nooit geprobeerd.
  • Atmel SAM3 / 4 Boards:
  • SAM3X / Arduino Due: Fix typo in sam3x_periphclks.h; add SCLK definities header bestand board.h. Van Fabien Comte.
  • SAM3 RTT: Alleen SAM4 familie heeft RTTDIS beetje in de MR-register. SourceForge bug # 33 van Fabien Comte.
  • C Library:
  • sscanf (): NuttX libc probeerde te raden hoeveel personages te ontleden, onttrokken ze in een buffer, dan liep strtol () op die buffer. Dat gok was vaak verkeerd. Een betere aanpak zou zijn om strtol (rechtstreeks bellen) op de input data, met behulp van de endptr return waarde te bepalen hoeveel tekens over te slaan na het ontleden. Van Kosma Moczek.
  • Math Library:. Gecorrigeerde atan2 implementaties van Denis Arnst
  • Floating Point Output: Wijziging lib_dtoa () om de precisie fout te herstellen van trailing nullen. Van Bob Doiron.
  • Toepassingen:
  • Fix NSH PS commando:. Als er geen argumenten, kon het huisvuil argument lijst af te drukken
  • Configuratie / Build Systeem:
  • Null Voorbeeld: Behoefte om onder config.h is om te weten of dit wel of niet een kernel te bouwen. Dit probleem bestaat nog steeds in een aantal andere bestanden die mogelijk moeten voornaamste te definiëren ().

Wat is nieuw in versie 7.8:

  • Kenmerken: Extra nieuwe functies en uitgebreide functionaliteit:
  • Core OS:
  • Watchdog timer Toewijzing: (1) Als we uit de pre-toegewezen waakhond tijden lopen, de logica wordt nu extra timers uit de heap toewijzen. Een reserve van vooraf toegewezen watchdog timers wordt gehandhaafd, zodat er altijd zal zijn timers beschikbaar voor interrupt handlers. (2) Ondersteuning toegevoegd voor statisch toegewezen watchdog timer
  • Adres Milieu Ondersteuning: (2) Nieuw OS API's geïntegreerd in alle platform-specifieke context switching logica (up_block_task (), up_unblock_task (), _exit (), en anderen)
  • .
  • Kernel Build Ondersteuning: (1) De MPU gebaseerd & quot; kernel build & quot; omgedoopt tot een beschermd build (CONFIG_BUILD_PROTECTED); toegevoegde ondersteuning voor de nieuwe MMU-gebaseerde & quot; kernel build & quot; (CONFIG_BUILD_KERNEL), (2) Het systeem call bibliotheek kan nu worden gebouwd met CONFIG_NUTTX_KERNEL. Nieuwe selectie *:. CONFIG_LIB_SYSCALL
  • System Startup: Voeg configuratie-opties om het systeem van een programma op een bestandssysteem (versus een adres in het geheugen) start
  • .
  • Startup Parameter pass: Vroeger waren er twee manieren om parameters door te geven aan nieuwe taken, afhankelijk van de configuratie: Ofwel (1) argv [] zo gemaakt als een array met elke snaar strdup'ed. Of (2) argv [] array en strings werden gemaakt op de stapel voor de nieuwe taak werd gestart. Nu, er is maar één weg, weg (2). Way (1) zou kunnen zijn iets compacter, maar dit is niet de moeite waard dragen de complexiteit van twee verschillende manieren om hetzelfde te doen.
  • Board initialisatie: het vermogen toe aan de eerste raad van bestuur de initialisatie uit te voeren op een aparte thread werker. Dit is noodzakelijk omdat er veel gevallen waarin initialisatie logica niet kan uitvoeren bij het opstarten / IDLE thread. Dat komt omdat het blokkeren of wachtruimte is niet toegestaan ​​op de IDLE thread.
  • Memory Management:
  • Korrel Allocator: (1) Voeg een nieuwe functie om niet-toewijsbare regio behouden in de korrel heap. (2) interfaces toe aan-un initialiseren van een korrel allocator.
  • ondersteunen
  • Pagina Allocator: Voeg een eenvoudige fysieke pagina allocator op basis van de bestaande NuttX korrel allocator. Ik ben niet zeker of de korrel allocator voldoende deterministisch voor lange afstand te gebruiken, maar het wordt krijgt een pagina allocator in de plaats voor zeer snel te testen.
  • Verwijder CONFIG_MM_MULTIHEAP: Non-multiheap werking wordt niet langer ondersteund
  • .
  • sbrk ():. Sbrk () wordt nu ondersteund in de kernel te bouwen om dynamisch en kleinbedrijf, per-proces hopen toestaan ​​
  • Per-Process Heaps: Space aan het begin van het proces data ruimte is nu gereserveerd voor de gebruiker heap managementstructuren. In de kernel build-modus worden deze hoop structuren gedeeld tussen de kernel en het gebruik code om de gebruiker-specifieke gegevens toe te wijzen.
  • Gebruikers Heap Management: Wanneer een bevoorrechte thread uitgangen, moeten we de kernel allocator om geheugen vrij te gebruiken; wanneer een onbevoegde thread uitgangen, we hebben niet om iets te doen ... heap geheugen worden opgeruimd als het adres milieu wordt afgebroken.
  • Inter-Process Gedeeld Geheugen Ondersteuning: (1) de uitvoering en documentatie toevoegen voor shmget (), shmctl (), shmat (), en shmdt (). (2) Voeg systeem systeem oproepen naar de gebruiker oproep poort te ondersteunen om het gedeelde geheugen interfaces. (3) Voeg platform-specifieke interface definities die nodig zijn om het gedeelde geheugen functie ondersteunen.
  • Virtual Pagina Allocator: ondersteuning toevoegen voor een per-proces virtuele pagina allocator. Dit is een nieuw lid van de task_group_s structuur. De allocator moet worden geïnitialiseerd wanneer een nieuwe gebruiker wordt gestart en uninitialize wanneer het proces groep uiteindelijk vernietigd. Het wordt gebruikt door shmat () en shmdt () om het virtuele adres waarop de gedeelde fysieke geheugen kaart te halen.
  • File Systems / Block Drivers / MTD:
  • SMART FS: SMART FS en SMART FS procfs update van Ken Pettit
  • .
  • MTD. De MTD lezen-ahead / Write buffer laag verschijnt nu functioneel
  • Binary-indelingen:
  • Per-Proces Heap. Logica toevoegen aan de per-proces gebruiker heap initialiseren wanneer elke gebruiker wordt gestart
  • Graphics:
  • nxterm: Wijzig alle exemplaren van NxConsole tot nxterm
  • .
  • Netwerken:
  • PHY Interrupts: (1) Standaardiseren een PHY interrupt bevestiging interface. (2) ondersteuning toevoegen voor een ioctl dat kan worden gebruikt om een ​​applicatie op de hoogte wanneer er een verandering in de status van het netwerk gesignaleerd door een PHY interrupt.
  • Verbeterde Send Logic: In het verleden, het eerste pakket naar een nieuwe peer-netwerk zou mislukken; zou er geen vermelding in de ARP-tabel voor de referentiegroep en dus een ARP verzoek kon dat eerste pakket vervangen. Nu als een optie als CONFIG_NET_ARP_SEND = y, alle stuur logica (1) controleren of de peer-MAC-adres in de ARP-tabel, en zo niet, (2) Stuur ARP verzoeken regelmatig om de mapping te krijgen en (3) wachten op de ARP antwoord. Vervolgens (4) wanneer de ARP-respons wordt ontvangen dan de feitelijke send logica wordt gestart. Zo er een vertraging met het eerste pakket naar een nieuwe collega kan zijn, maar het pakket niet verloren mag gaan
  • Host Simulatie:
  • SPI FLASH Driver:. Geëmuleerde SPI FLASH driver voor de sim doel van Ken Pettit
  • Intel x86:
  • Standaard Host: De standaard gastheer is nu x86_64 en de optie -m32 zal automatisch worden geselecteerd voor simulatie bouwt
  • .
  • Intel 8051 Familie:
  • 8051 Verwijderd: Verwijderd alle steun voor de 8051-familie architectuur uit de NuttX source tree. De verouderd code samen met de verwijdering patch is nu te vinden op misc / Obsoleted /. Deze code werd verwijderd omdat (1), hoewel sommige functies is aangetoond, ik ben niet bewust van enige echt succesvolle havens van NuttX elke 8051, en (2) de 8051, met zijn hardware stack, dwingt beperkingen en complicaties aan de andere architecturen en maak de groei en ontwikkeling van NuttX complexer.
  • ZiLOG ZNeo Boards:
  • configs / 16Z: Ondersteuning voor dit bord is verwijderd uit de NuttX source tree (maar kan nog steeds worden gevonden in de misc / Obsoleted directory). Deze poort is niet klaar voor gebruik, maar kan op een bepaald moment in de toekomst terug te keren naar de NuttX boom.
  • Atmel SAM3 / 4 Boards:
  • SAM4E-EK:. Voeg (1) een volledig functionele ILI9341 gebaseerde LCD-driver en (2) een volledig functionele NxWM configuratie
  • ARMv7-A:
  • Adres Environments: ondersteuning toevoegen voor toepassing adres omgevingen met behulp van de Cortex-A MMU. Implementeren gestandaardiseerde platform-specifieke interfaces van NuttX adres milieu steun.
  • Cache Operations: implementeren gestandaardiseerde, platform-specifieke cache operaties. Deze worden genoemd van de ELF loader om D-cache spoelen en ongeldig I-cache na een ELF-module is in het geheugen geladen. Met deze verandering, correct ELF modules werken op de SAMA5 / Cortex-A platform.
  • Kernel Build: (1) implementaties van system call gate toe. (2) Voeg CRT0 start-up bestand dat kan worden verbonden met afzonderlijk ingebouwde gebruikersprogramma's. (3) steun toe voor de levering van het gebruik-modus signalen in de kernel te bouwen. (4) logische Naar de per-proces user heap geïnitialiseerd wanneer elke gebruiker wordt gestart. (5) ARMv7-A exception handling nodig heeft om een ​​beetje anders werken als we steunen user mode processen. Dit komt omdat R13 en R14 anders zijn opgeroepen tussen gebruiker en SVC gecontroleerd.
  • Gedeeld Geheugen Ondersteuning: (1) de logica die nodig zijn om te behandelen remapping gedeeld geheugen op context switches toevoegen. (2) Extend virtueel / fysiek adres omzettingen naar adressen in het gedeelde geheugen bevatten. (3) uitvoering van platform-specifieke gedeeld geheugen ondersteuning toevoegen.
  • Atmel SAMA5D Drivers:
  • Netwerk ioctls:. Implementeer alle netwerk ioctls, waaronder de nieuwe ioctl setup PHY meldingen
  • Adres conversies. In kernel te bouwen met adres milieu, moeten de logica van de gebruiker virtuele adressen naar fysieke adressen in kaart, en vice versa
  • Atmel SAMA5D Boards:
  • SAMA5D3 Xplained, SAMA5D3-EK en SAMA5D4-EK: Zet bestaande board specifieke PHY interrupt interfaces aan nieuw gedefinieerde standaard interface gebruiken
  • .
  • SAMA5D4-EK: Voeg een configuratie voor het testen van de kernel build configuratie. Er zijn configuraties te starten of vanaf een SD-kaart of van en in-memory romfs bestandssysteem.
  • SAMA5D4-EK: Voeg documentatie / support voor Rev E. board
  • .
  • STMicro STM32 Drivers:
  • Ethernet: aangepast aan de wijziging van het netwerk ioctl handtekening veranderingen te ondersteunen. Voeg ook ondersteuning voor nieuwe ioctl setup PHY evenement meldingen.
  • STMicro STM32 Boards:
  • STM32F4DISCOVERY met STM32F4DIS-BB: Voeg een netwerk ingeschakeld NSH configuratie voor de STM32F4DISCOVERY bord met de STM32F4DIS-BB base board geïnstalleerd. Bevat ondersteuning voor de microSD-kaartsleuf op de STM32F4DIS-BB base board.
  • TI Tiva Drivers:
  • TI CC3200: ondersteuning toevoegen voor de TI CC3200. Van Jim Ewing.
  • TI Tiva Boards:
  • TI CC3200 Launchpad: ondersteuning toevoegen voor de TI CC3200 Launchpad. Van Jim Ewing.
  • C Library:
  • poll ():. Re-geïmplementeerd poll () vertraging met sem_timedwait ()
  • Configuratie / Build Systeem:
  • Exporteer Target: In de kernel of beschermde bouwt, (1) alleen de gebruiker bibliotheken moeten worden geëxporteerd, (2) geen interne header bestanden te kopiëren of bouwen van scripts als dit is een kernel of beschermde build, en (3) behoeften te bundelen van de gebruiker C opstartbestand (crt0), niet de kernel hoofd object voor de kernel en beschermd bouwt.
  • Programma CFLAGS: logica die ons zal toelaten om de gebruiker bibliotheken met verschillende CFLAGS dan kernel code te bouwen toe. Dit is nodig omdat we de -fno-gemeenschappelijke optie bij het bouwen van ELF code SHN_COMMON verhuizingen te voorkomen.
  • Toepassingen:
  • NSH: Verleng de NSH netwerk initialisatie logica. Er is nu een optie die een netwerk-monitor draad die de toestand van de link zal volgen zal creëren. Als de link naar beneden gaat, wordt de code proberen te sierlijk zet de Ethernet-driver in een down toestand; Wanneer de koppeling terugkomt, wordt de code proberen om het netwerk een back-up te brengen.
  • ELF. Voorbeeld: De ELF-test / voorbeeld is uitgebreid, zodat de individuele ELF-test programma kunt koppelen tegen de SYSCALL bibliotheek (indien beschikbaar) of tegen de C-bibliotheek te elimineren of te minimaliseren van de noodzaak tot symbool tabellen
  • nxterm: Wijzig alle exemplaren van NxConsole tot nxterm
  • .
  • MTDRWB Voorbeeld:. Voeg een voorbeeld voor MTD R / W buffering testen
  • OS Test Voorbeeld: Voeg een triviale test van sem_timedwait ()
  • .













































  • Extra:
























































































  • Extra:


























  • Bugfixes:






































































































Vergelijkbare software

LiveCD-Games
LiveCD-Games

20 Feb 15

Linux-VServer
Linux-VServer

2 Jun 15

NetBSD
NetBSD

22 Jun 18

Reacties op NuttX

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!