NuttX je open source, deterministický a volný real-time vložený operační systém (RTOS), navržený od offset, aby byl použitelný v hluboce vestavěných, prostředí zdroje omezené. Má malé rozměry, který je použitelný v prostředí mikro-řadiče, a to & rsquo; to plně škálovatelný z malé (8-bit) až středně vložený (32-bitové) systémy.
Jejím cílem je také, aby byl plně v souladu s normami, aby byly plně v reálném čase, a být naprosto otevřený. NuttX má bohatou funkce OS set, modulární konstrukci, to je vysoce škálovatelné a konfigurovatelné, stejně jako vyhovující standardům. Je distribuován s neomezující BSD licencí. To je často říkal jeho vývojáři jako "Drobeček Linuxu." Funkce na glanceKey funkce patří základní správu úloh, BSD socket rozhraní, paměťové rozdělování (sdílené paměti, standardní přidělení haldy paměti, chráněné Stavět s MPU, ploché vestavěný stavět, na proces hromady, granule alokátor a dynamicky velké), konfigurace paměti, portování průvodce, plně preemptible, bez taktu provozu, paging a systém logování on-demand.
Kromě toho projekt přichází s rozšířeními pro správu předkupní, per-závit, vestavěné měření zatížení CPU, komplexní dokumentace, nepovinné úlohy, které obsahují adresu prostředí, ANSI podobné a POSIX-jako ovládací prvky úkol, hodiny, pthreads, životní prostředí proměnné, signály, pojmenované fronty zpráv, časovače, souborových systémů a počítání semafory.
Mezi další funkce, můžeme zmínit round-robin plánování, FIFO, podpora pro prioritní dědictví, podporu pro SoC architekturu, podporu pro deskové architektury, podporu nových procesorových architektur, hlídací časovače, VxWorks podobné správu úloh, I / O a přesměrování přenášena & ldquo; ovládání terminálů & rdquo;. Podporované platformsNuttX podporuje širokou škálu hardwarových platforem, mezi které můžeme zmínit řadu ARM procesory, včetně ARM Cortex-M3, ARM926EJS, ARM7TDMI, ARM Cortex-M4, ARM Cortex-M0, ARM920T a ARM Cortex-A5, jakož i Atmel 8-bitové AVR, Freescale M68HCS12, AVR32 AVR plošiny.
Kromě toho také podporuje různé platformy Intel, jako jsou například mikročipem PIC32MX (MIPS), 80c52 a 80 časů; 86, Zilog platforem, včetně Zilog Z80, Z16F, Zilog Z8Encore! a Zilog eZ80 Acclaim !, a Renesas / Hitachi SuperH a Renesas M16C / 26 platformy
Co je nového v této verzi:.
- Vlastnosti: Další nové funkce a rozšířené funkce:
- Jádro OS:
- Watchdog Timer Alokace: (1) Pokud se nám dojdou předem přidělené časy hlídací, bude logika nyní přidělit další časovače z haldy. Rezerva pre-přidělené hlídací časovače se udržuje tak, že tam bude vždy časovače jsou k dispozici pro přerušení manipulátory. (2) Byla přidána podpora pro staticky přidělené watchdog časovač
- Adresa Support Životní prostředí: (2) Nové rozhraní API OS integrována do všech specifickým pro danou platformu kontextu spínací logiku (up_block_task (), up_unblock_task (), _exit () a další) .
- Kernel Build podpory: (1) MPU založený & quot; kernel build & quot; přejmenován na chráněné stavby (CONFIG_BUILD_PROTECTED); přidána podpora pro nový MMU-based & quot; kernel build & quot; (CONFIG_BUILD_KERNEL), (2) Knihovní systém hovor může být nyní postaven s CONFIG_NUTTX_KERNEL. Nový výběr *:. CONFIG_LIB_SYSCALL
- System Startup: Přidat možnosti konfigurace pro spuštění systému z programu na souborovém systému (oproti adresy v paměti) .
- Startup parametrů přihrávky: Tam použitý být dva způsoby, jak předat parametry nové úkoly, v závislosti na konfiguraci: Buď (1) argv [], jak byl vytvořen jako pole s každým řetězcem strdup'ed. Nebo (2) argv [] pole a struny byly vytvořeny na zásobníku dříve, než byl zahájen nový úkol. Nyní, je tam jen jedna cesta, cesta (2). Way (1), může být o něco kompaktnější, ale to nestojí za to nesou složitost dvěma různými způsoby, jak dělat totéž.
- Stravování Inicializace: Přidat schopnost provádět úvodní inicializace desky na samostatné pracovní podproces. To je nutné, protože existuje mnoho případů, kdy inicializace logika nemůže spouštět na start-up / nečinný podproces. To je proto, že blokování nebo čekání není povoleno na základní závit.
- Správa paměti:
- Granule Allocator: (1) Přidat novou funkci vyhradit un-allocatable regionů na granulí haldy. (2) Přidat rozhraní podporuje un-inicializaci granulí alokátor.
- Stránka Allocator: Přidat jednoduchý fyzikální stránky alokátor na základě stávajícího NuttX granulí alokátor. Nejsem si jistý, jestli granule alokátor je dostatečně deterministický pro dlouhodobé používání rozsahu, ale to dostane získat stránky alokátor na místě pro testování velmi rychle.
- Odstranit CONFIG_MM_MULTIHEAP: Non-multiheap provoz již není podporován .
- sbrk ():. Sbrk () je nyní podporována v sestavení jádra umožňující dynamicky velikosti, pro každý proces hromady
- Per-Process Hromady: Prostor na začátku prostoru procesních dat je nyní vyhrazeno pro řídících strukturách uživatele haldy. V režimu jádra sestavení, tyto haldy struktury jsou sdíleny mezi jádra a použití kódu, aby se přidělení specifické pro uživatele data.
- Uživatel Heap Management: Při privilegované závit východy, musíme použít alokátor jádra do volné paměti; když neoprávnění podproces ukončí, nemusíme dělat nic ... bude haldy paměti být vyčištěn, pokud je adresa prostředí stržen.
- Inter-Process Sdílená paměť Podpora: (1) Přidat implementaci a dokumentaci pro shmget (), shmctl (), shmat (), a shmdt (). (2) Přidat systém systém volá na podporu uživatele volání bránu do sdílené paměti rozhraní. (3) Přidat definic rozhraní specifické pro platformu potřebné k podpoře funkci sdílející paměť.
- Virtuální Stránka Allocator: Přidat podporu pro každý proces virtuální stránky alokátoru. Toto je novým členem task_group_s struktury. Alokátor musí být inicializována, když je nový uživatel proces začal a uninitialize kdy skupina proces je konečně zničen. To je používáno shmat () a shmdt () vybrat virtuální adresu, na které mapovat sdílené fyzické paměti.
- souborových systémů / block Drivers / MTD:
- SMART FS: SMART FS a SMART FS procfs aktualizace od Ken Pettit .
- MTD:. Objeví MTD Read-ahead / Write vyrovnávací vrstva je nyní funkční,
- binárních formátů:
- Per-Process Heap:. Přidat logiku inicializovat uživatelské hromadu na proces, kdy je každý uživatelský proces začal
- Grafika:
- NxTerm: Změnit všechny výskyty NxConsole na NxTerm .
- Networking:
- PHY Přeruší: (1) Standardizace přílohu rozhraní PHY přerušení. (2) Přidat podporu pro ioctl, který může být použit k upozornit žádost, pokud dojde ke změně ve stavu sítě signalizováno PHY přerušení.
- Lepší Poslat Logic: V minulosti, první paket poslat do nové sítě peer by nezdaří; neexistoval by žádný záznam v tabulce ARP pro peer, a tak požadavek ARP mohla nahradit ten první paket. Nyní jako možnost, pokud CONFIG_NET_ARP_SEND = y, vše odeslat logika (1), zkontrolujte, zda peer MAC adresa je v tabulce ARP, a pokud ne, (2) odesílání požadavků ARP pravidelně dostat mapování a (3), čekat na ARP odpověď. Poté (4), když je přijat odpověď ARP pak aktuální send logika bude zahájeno. Tak může být zpoždění s prvním paketu do nového peer, ale paket by neměl být ztracen
- Hostitel Simulace:
- SPI FLASH Driver:. Emulovaný SPI FLASH ovladač pro sim cíl od Kena Pettit
- Intel x86:
- Výchozí Host: Výchozí hostitel je nyní x86_64 a možnost -m32 bude automaticky vybrán pro simulaci staví .
- Intel 8051 Rodina:
- 8051 Odstraněno: Odstraněno veškerou podporu pro 8051 rodinného architektury ze zdrojového stromu NuttX. Zastaralé kód spolu s patchem odstranění lze nyní nalézt na Různé / zastaralé /. Tento kód byl odstraněn, protože (1), i když některé funkce byla prokázána, já nejsem vědom žádných skutečně úspěšných přístavy NuttX do jakéhokoli 8051, a (2) 8051, s jeho hardwarovou stack, nutí omezení a komplikace na ostatní architektury a aby růst a vývoj NuttX složitější.
- ZiLOG ZNeo Boards:
- configs / 16Z: Podpora této desce byl odstraněn ze zdrojového stromu NuttX (ale stále lze nalézt v Různé / zastaralé adresáře). Tento port není připraven k použití, ale může vrátit do stromu NuttX v určitém okamžiku v budoucnosti.
- Atmel SAM3 / 4 desky:
- SAM4E-EK:. Přidat (1) plně funkční ILI9341 bázi LCD ovladač a (2) plně funkční konfiguraci NxWM
- ARMv7-:
- Adresa Prostředí: Přidává podporu pro adresy aplikace prostředí pomocí Cortex-A MMU. Implementace standardizovaných rozhraní specifické pro platformu z NuttX podpory adresa životního prostředí.
- Cache Operations: Implementace standardizovaných, specifické pro platformu operace cache. Jedná se o tzv od ELF nakladače, aby vyprázdnění D-cache a vyvrátit I-cache po ELF modul byl načten do paměti. S touto změnou, ELF moduly pracují správně na SAMA5 / Cortex-A platformu.
- Kernel Build: (1) Přidat implementací systémových volání brány. (2) Přidat CRT0 start-up soubor, který může být propojen s samostatně postavené uživatelských programů. (3) Přidává podporu pro dodávku použití-mode signálů v sestavení jádra. (4) Přidat logiku pro inicializaci uživatelského hromadu na proces, kdy je každý uživatelský proces začal. (5) ARMv7-zpracování výjimek potřebuje pracovat trochu jinak, kdybychom podporují režim uživatel procesy. To je proto, že R13 a R14 jsou stránkovány odlišně mezi režimem SVC uživatelem a.
- Sdílená paměť Podpora: (1) Přidat logiky potřebnou pro zvládnutí přemapování sdílené paměti na kontextových přepínačů. (2) Rozšířit virtuální / fyzické adresy konverze zahrnout adresy ve sdílené paměti. (3) Přidat provádění sdílené paměti podporu specifickým pro danou platformu.
- Atmel SAMA5D Ovladače:
- Síť IOCTL:. Provádět všechny síťové ioctls, včetně nového ioctl k oznámení setup PHY událostí
- Adresa Konverze:. V kernel stavět s adresou prostředí, je třeba logiku mapování uživatelských virtuálních adres na fyzické adresy, a naopak
- Atmel SAMA5D Boards:
- SAMA5D3 Xplained, SAMA5D3-EK, a SAMA5D4-EK: Převést existující rozhraní deska specifická PHY přerušení používat nově definované standardní rozhraní .
- SAMA5D4-EK: Přidat konfigurace pro testování konfigurace sestavení jádra. K dispozici jsou konfigurace Abyste mohli zavést buď z SD karty nebo z a do paměti ROMFS souborového systému.
- SAMA5D4-EK: Přidat dokumentace / podporu pro Rev E. palubě .
- STMicro STM32 Ovladače:
- Ethernet: upravený na podporu změny k síťovým změnám ioctl podpisu. Také přidat podporu pro nové ioctl k upozornění na události setup PHY.
- STMicro STM32 Boards:
- STM32F4Discovery s STM32F4DIS-BB: Přidat síťovou konfiguraci povolen NSH pro desku STM32F4Discovery s instalovaným STM32F4DIS-BB základní desce. Zahrnuje podporu pro slotu pro microSD karty na STM32F4DIS-BB základní desce.
- TI Tiva Ovladače:
- TI CC3200: Přidat podporu pro TI CC3200. Od Jim Ewing.
- TI Tiva Boards:
- TI CC3200 Launchpad: Přidává podporu pro TI CC3200 Launchpad. Od Jim Ewing.
- C Library:
- poll ():. Re-implementován poll () zpoždění pomocí sem_timedwait ()
- Configuration / Build System:
- Export Target: V nebo chráněné jádře staví, (1) pouze uživatel knihovny by měly být vyváženy, (2) nemají kopírovat soubory vnitřních hlavičkové nebo stavět skripty, pokud to je jádro nebo chráněná stavba, a (3) potřeby aby zachumlat souboru spuštění uživatelského C (crt0), bez hlavy objekt jádra pro jádro a chráněné staví.
- Program CFLAGS: přidat logiku, která nám umožní, aby k vybudování uživatelských knihoven s různými CFLAGS než kód jádra. To je nutné proto, že jsme při budování ELF kódu, aby se zabránilo SHN_COMMON relokacím potřebovat -fno-společný možnost.
- Aplikace:
- NSH: Rozšířit inicializační logiku NSH sítě. Tam je nyní možnost, která vytvoří Network Monitor vlákno, které bude sledovat stav odkazu. Když spojení jde dolů, bude kód pokusí elegantně dát řidiči Ethernet ve vypnutém stavu; Když spojení vrátí, bude kód pokusí přivést sítě zpět nahoru.
- ELF. Příklad: ELF test / příklad byl rozšířen, takže jednotlivé zkušební programy ELF lze propojit proti knihovně syscall (pokud je k dispozici), nebo proti knihovny C odstranit nebo minimalizovat potřebu symbolů tabulky
- NxTerm: Změnit všechny výskyty NxConsole na NxTerm .
- MTDRWB. Příklad: Přidejte příklad otestovat MTD R / W do vyrovnávací paměti
- OS Zkušební příklad: Přidejte triviální test sem_timedwait () .
- Konfigurace Application / Build System:
- Importovat Target: (1) Přidat logiku, která umožní vytváření aplikací proti exportu balíčku NuttX (vs. nuttx / zdroj stromu). (2) Přidat .config soubor exportovat balíček. (3) Vytvoření apps / import. Vytvořit apps / import / Make.defs, že dělá věci, jako je definovat CFLAGS; ELF build vyžaduje -fno-common v CFLAGS. Zkopírovat některé základní logiku od nuttx / Nástroje / Config.mk k apps / import / Make.defs. (4) Přidat apps / import / scripts / GNU elf.ld GCC linker skript pro ELF import staví.
- Všechny Makefiles: (1) Přidat instalační cíl pro všechny makefiles. Pro dovozní sestavení, nejvyšší úrovně Makefile nyní dělá dvě přihrávky: (1) staví libapp.a, pak (2) nainstaluje programy do apps / bin. (2) Přidat instalaci pro CONFIG_BUILD_KERNEL programu ve všech Makefile, které staví main (). (3) Pro sestavení jádra, soubor objekt obsahující main (), nemůže jít do knihovny, protože jmenných kolizí. Soubor objekt musí být řešeny jako zvláštní případ v každém Makefile.
- Všechny vestavěné programy: s vestavěným jádra (CONFIG_BUILD_KERNEL), vstupní bod pro všechny úkoly, je main (), ne nějaký xyz_main () .
- NSH: Několik příkazy musí být zakázána v sestavení jádra, protože závisí na rozhraní, které nejsou k dispozici mimo jádra:. Dd, df, losetup, mkfatfs, mkdr, a ps
- apps / tools /: (1) Přidat mkimport.sh explodovat dovozní balíček NuttX a nainstalovat apps / importu. (2) Přidat mkromfsimg.sh skript pro vytvoření spouštěcí ROMFS souborového systému snímku.
- ELF a NxFLAT. Příklady: Nepoužívejte stavět testovací případy, které používají task_create (), pokud je adresa prostředí
- Nástroje:
- refresh.sh:. Přidat nástroj, aby osvěžující konfigurace jednodušší, když chcete udělat mnoho z nich
- mksyscall.c: Build systémová volání, které nepotřebují hlavičkové soubory .
- mkexport.sh:. Přidat .config soubor exportovat balíček
- apps / nářadí: Viz výše pro nové aplikace / tools skripty .
- úsilí ve vývoji. Následující jsou funkce, které jsou implementovány částečně, ale přítomné v této verzi. Oni nejsou pravděpodobné, že bude dokončen brzy.
- Procesy: Hodně práce v tomto vydání se zaměřuje na realizaci uživatelských procesů Unix stylu v NuttX. Tam je více je třeba udělat, nicméně. Plná plán a stav je k dispozici na adrese: http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
- XMEGA: Tam jsou některé fragmenty místem pro XMEGA portu. To port není opravdu začal, nicméně.
- Galileo: Podobně, tam jsou fragmenty na místě pro portu Intel Galileo. Port nebyla spuštěna v vážný jeden.
- Opravy chyb. Zde jsou uvedeny pouze ty kritické opravy chyb (viz changelog pro kompletní seznam oprav chyb a pro další, podrobnější informace Oprava chyby):
- Jádro OS:
- Kernel stavět opravy: (1) NECINNA nastavení TCB je třeba uvést, že IDLE vlákno je privilegovaný, jádro vlákno. (2) Nepoužívejte stavět task_create () nebo task_spawn () rozhraní, pokud je adresa prostředí. (3) posix_spawn () jádro zástupce vlákno by mělo být jádro vlákno, ne úkol uživatel.
- Několik pthread rozhraní: Přidat const kategorie ukládání do phthread parametrů. Z Freddie Chopin.
- Sched / hodiny: Odstraňte stopy g_tickbias; potřebují, místo toho, aby se vztahují na čas zaujatost g_basetime s cílem poskytnout správný systémový čas.
- Systém volání: (1) Několik překlepy pevná; opraveno integrace exevc (), execvl (), posix_spawn (), a posix_spawnp systémová () volání. (2) Pokud jsou konfigurovány na použití stohu jádra, zatímco při manipulaci syscall, pak musíme přepnout zpět na uživatele stohu dodat signál.
- souborových systémů / block Drivers / MTD:
- procfs: opravit některé procf zlomení zavedený reorganizace některých non-reorganizable datové struktury. Od Ken Pettit.
- AT45: V at45db_bwrite (), vyrovnávací paměti není zvýšena při psaní více než 1 stranu. Sourceforge bug # 34.
- binárních formátů:
- ELF přeložky: Některé typy přemístění nemají s názvem symbol spojený s nimi. Konstrukce neúčtovala pro daný případ.
- ELF nakladač:. Kritický bugfix .. BSS nebyl právě vymazán
- Správa paměti:
- Granule Allocator: Granule inicializace alokátor používá nesprávný alokátor na zrušení paměti jádra .
- privilegované skupiny: Přidejte vlajku strukturu skupiny: Pokud je skupina vytvořená na vlásku jádra, pak všechny prostředky ve skupině musí být privilegovaný .
- Cryptogrphic Support:
- kryptovací / cryptodev.c: Cesta segmenty zvrátit zahrnují cestu k souboru. Poznamenal Brennan Ashtonová.
- Společné Ovladače:
- Common CAN horní polovina: V can_txdone, číšníci na semaforu by měl být informován, bez ohledu na návratové hodnoty can_xmit. První vrátí -EIO pokud nejsou žádné nové pakety, a druhý informace z číšníků je o posledním převáděné paketu. Od Daniel Lazlo Sitzer.
- ARM:
- Systém Volání: Oprava překlep v systémovém volání při načítání parametru ze zásobníku: regs [REG_PC] 4 je adresa, ne regs [REG_PC + 4] .
- STMicro STM32 Ovladače:
- STM32 F401 UART: Správná podpora USART6 na tomto čipu. Z Freddie Chopin.
- STM32 FLASH opravuje: použití size_t místo uint16_t, aby rozhraní obecnější. Z Freddie Chopin.
- STM32 UART:. Oprava pro UART7 a UART8 na STM32 hodiny umožní od Aton
- CAN: Na konci obsluha přerušení, je přerušení byly zakázány, pokud všechny pakety byly převedeny při byla vyvolána popisovač přerušení. To je problematické, protože obsluha přerušení volání can_txdone () horní poloviny, které mohou Zařadí nové pakety k odeslání. Odstraněn blok úplně, protože can_txdone () volá can_xmit (), která zakáže přerušení, pokud nejsou k dispozici žádné nové pakety odeslat. Od Daniel Lazlo Sitzer.
- CAN:. Další korekce STM32 CAN navrhl Max Holtzberg
- STMicro ST32 Boards:
- configs / MIKROE-stm32f4: Oprava pár sestavit chyby a drobné opravy na zdroj konfigurace MIKROE-stm32f4. Od Ken Pettit.
- ARM9 / ARMv7-:
- Systém volání: Fix ARM7 / 9 a Cortex-A syscalls: Pro závity v režimu SVC, pokyny SVC clobbers R14. To je třeba brát v úvahu v sestavě inline.
- Nastavení Úkol: Všechny úlohy, dokonce i úkoly uživatelský režim, se musí začít v režimu Supervisor, dokud se dostat přes start-up trampolíně .
- ARMv7-: Změnit up_fullcontextrestore () pro CONFIG_BUILD_KERNEL. To změnilo CPSR zatímco v jádře. To bude selhat, pokud nový CPSR je uživatelský režim při provádění v prostoru jádra. Opraveno přidáním systémového volání SYS_context_restore. Tam je alternativní, jednodušší úprava up_fullcontextrestore (), která by mohla být provedeno: to by mohlo být možné použít SPSR namísto Cprsr a pak dělat návrat výjimku z up_fullcontextrestore (). To by bylo účinnější, ale nikdy jsem to nezkoušel.
- Atmel SAM3 / 4 desky:
- SAM3X / Arduino Due: Fix typo v sam3x_periphclks.h; přidat definice SCLK do board.h hlavičkový soubor. Z Fabien Comte.
- SAM3 RTT: Pouze SAM4 rodina má RTTDIS bit v registru MR. SourceForge bug # 33 z Fabien Comte.
- C Library:
- sscanf (): NuttX libc se pokusil odhadnout, kolik znaků analyzovat, extrahuje je do vyrovnávací paměti, a pak běžel strtol () na této vyrovnávací paměti. To odhad byl často špatně. Lepším přístupem by bylo zavolat strtol () přímo na vstupních dat, pomocí návratovou hodnotu endptr určit, kolik znaků přeskočit po analýze. Z Kosma Moczek.
- Math Library:. Opraveno atan2 implementací od Denis Arnst
- Floating Point Výstup: Změna lib_dtoa (), opravit chyby přesnosti od koncové nuly. Od Bob Doiron.
- Aplikace:
- Příkaz Fix NSH PS:. Pokud nejsou žádné argumenty, mohlo by to vytisknout odpadky na seznamu argumentů
- Configuration / Build System:
- Null Příklad: je třeba zahrnout config.h ho objednat vědět, jestli to je nebo není sestavení jádra. Tento problém stále existuje v několika dalších souboru, který může být nutné definovat main ().
Co je nového ve verzi 7.8:
- Vlastnosti: Další nové funkce a rozšířené funkce:
- Jádro OS:
- Watchdog Timer Alokace: (1) Pokud se nám dojdou předem přidělené časy hlídací, bude logika nyní přidělit další časovače z haldy. Rezerva pre-přidělené hlídací časovače se udržuje tak, že tam bude vždy časovače jsou k dispozici pro přerušení manipulátory. (2) Byla přidána podpora pro staticky přidělené watchdog časovač
- Adresa Support Životní prostředí: (2) Nové rozhraní API OS integrována do všech specifickým pro danou platformu kontextu spínací logiku (up_block_task (), up_unblock_task (), _exit () a další) .
- Kernel Build podpory: (1) MPU založený & quot; kernel build & quot; přejmenován na chráněné stavby (CONFIG_BUILD_PROTECTED); přidána podpora pro nový MMU-based & quot; kernel build & quot; (CONFIG_BUILD_KERNEL), (2) Knihovní systém hovor může být nyní postaven s CONFIG_NUTTX_KERNEL. Nový výběr *:. CONFIG_LIB_SYSCALL
- System Startup: Přidat možnosti konfigurace pro spuštění systému z programu na souborovém systému (oproti adresy v paměti) .
- Startup parametrů přihrávky: Tam použitý být dva způsoby, jak předat parametry nové úkoly, v závislosti na konfiguraci: Buď (1) argv [], jak byl vytvořen jako pole s každým řetězcem strdup'ed. Nebo (2) argv [] pole a struny byly vytvořeny na zásobníku dříve, než byl zahájen nový úkol. Nyní, je tam jen jedna cesta, cesta (2). Way (1), může být o něco kompaktnější, ale to nestojí za to nesou složitost dvěma různými způsoby, jak dělat totéž.
- Stravování Inicializace: Přidat schopnost provádět úvodní inicializace desky na samostatné pracovní podproces. To je nutné, protože existuje mnoho případů, kdy inicializace logika nemůže spouštět na start-up / nečinný podproces. To je proto, že blokování nebo čekání není povoleno na základní závit.
- Správa paměti:
- Granule Allocator: (1) Přidat novou funkci vyhradit un-allocatable regionů na granulí haldy. (2) Přidat rozhraní podporuje un-inicializaci granulí alokátor.
- Stránka Allocator: Přidat jednoduchý fyzikální stránky alokátor na základě stávajícího NuttX granulí alokátor. Nejsem si jistý, jestli granule alokátor je dostatečně deterministický pro dlouhodobé používání rozsahu, ale to dostane získat stránky alokátor na místě pro testování velmi rychle.
- Odstranit CONFIG_MM_MULTIHEAP: Non-multiheap provoz již není podporován .
- sbrk ():. Sbrk () je nyní podporována v sestavení jádra umožňující dynamicky velikosti, pro každý proces hromady
- Per-Process Hromady: Prostor na začátku prostoru procesních dat je nyní vyhrazeno pro řídících strukturách uživatele haldy. V režimu jádra sestavení, tyto haldy struktury jsou sdíleny mezi jádra a použití kódu, aby se přidělení specifické pro uživatele data.
- Uživatel Heap Management: Při privilegované závit východy, musíme použít alokátor jádra do volné paměti; když neoprávnění podproces ukončí, nemusíme dělat nic ... bude haldy paměti být vyčištěn, pokud je adresa prostředí stržen.
- Inter-Process Sdílená paměť Podpora: (1) Přidat implementaci a dokumentaci pro shmget (), shmctl (), shmat (), a shmdt (). (2) Přidat systém systém volá na podporu uživatele volání bránu do sdílené paměti rozhraní. (3) Přidat definic rozhraní specifické pro platformu potřebné k podpoře funkci sdílející paměť.
- Virtuální Stránka Allocator: Přidat podporu pro každý proces virtuální stránky alokátoru. Toto je novým členem task_group_s struktury. Alokátor musí být inicializována, když je nový uživatel proces začal a uninitialize kdy skupina proces je konečně zničen. To je používáno shmat () a shmdt () vybrat virtuální adresu, na které mapovat sdílené fyzické paměti.
- souborových systémů / block Drivers / MTD:
- SMART FS: SMART FS a SMART FS procfs aktualizace od Ken Pettit .
- MTD:. Objeví MTD Read-ahead / Write vyrovnávací vrstva je nyní funkční,
- binárních formátů:
- Per-Process Heap:. Přidat logiku inicializovat uživatelské hromadu na proces, kdy je každý uživatelský proces začal
- Grafika:
- NxTerm: Změnit všechny výskyty NxConsole na NxTerm .
- Networking:
- PHY Přeruší: (1) Standardizace přílohu rozhraní PHY přerušení. (2) Přidat podporu pro ioctl, který může být použit k upozornit žádost, pokud dojde ke změně ve stavu sítě signalizováno PHY přerušení.
- Lepší Poslat Logic: V minulosti, první paket poslat do nové sítě peer by nezdaří; neexistoval by žádný záznam v tabulce ARP pro peer, a tak požadavek ARP mohla nahradit ten první paket. Nyní jako možnost, pokud CONFIG_NET_ARP_SEND = y, vše odeslat logika (1), zkontrolujte, zda peer MAC adresa je v tabulce ARP, a pokud ne, (2) odesílání požadavků ARP pravidelně dostat mapování a (3), čekat na ARP odpověď. Poté (4), když je přijat odpověď ARP pak aktuální send logika bude zahájeno. Tak může být zpoždění s prvním paketu do nového peer, ale paket by neměl být ztracen
- Hostitel Simulace:
- SPI FLASH Driver:. Emulovaný SPI FLASH ovladač pro sim cíl od Kena Pettit
- Intel x86:
- Výchozí Host: Výchozí hostitel je nyní x86_64 a možnost -m32 bude automaticky vybrán pro simulaci staví .
- Intel 8051 Rodina:
- 8051 Odstraněno: Odstraněno veškerou podporu pro 8051 rodinného architektury ze zdrojového stromu NuttX. Zastaralé kód spolu s patchem odstranění lze nyní nalézt na Různé / zastaralé /. Tento kód byl odstraněn, protože (1), i když některé funkce byla prokázána, já nejsem vědom žádných skutečně úspěšných přístavy NuttX do jakéhokoli 8051, a (2) 8051, s jeho hardwarovou stack, nutí omezení a komplikace na ostatní architektury a aby růst a vývoj NuttX složitější.
- ZiLOG ZNeo Boards:
- configs / 16Z: Podpora této desce byl odstraněn ze zdrojového stromu NuttX (ale stále lze nalézt v Různé / zastaralé adresáře). Tento port není připraven k použití, ale může vrátit do stromu NuttX v určitém okamžiku v budoucnosti.
- Atmel SAM3 / 4 desky:
- SAM4E-EK:. Přidat (1) plně funkční ILI9341 bázi LCD ovladač a (2) plně funkční konfiguraci NxWM
- ARMv7-:
- Adresa Prostředí: Přidává podporu pro adresy aplikace prostředí pomocí Cortex-A MMU. Implementace standardizovaných rozhraní specifické pro platformu z NuttX podpory adresa životního prostředí.
- Cache Operations: Implementace standardizovaných, specifické pro platformu operace cache. Jedná se o tzv od ELF nakladače, aby vyprázdnění D-cache a vyvrátit I-cache po ELF modul byl načten do paměti. S touto změnou, ELF moduly pracují správně na SAMA5 / Cortex-A platformu.
- Kernel Build: (1) Přidat implementací systémových volání brány. (2) Přidat CRT0 start-up soubor, který může být propojen s samostatně postavené uživatelských programů. (3) Přidává podporu pro dodávku použití-mode signálů v sestavení jádra. (4) Přidat logiku pro inicializaci uživatelského hromadu na proces, kdy je každý uživatelský proces začal. (5) ARMv7-zpracování výjimek potřebuje pracovat trochu jinak, kdybychom podporují režim uživatel procesy. To je proto, že R13 a R14 jsou stránkovány odlišně mezi režimem SVC uživatelem a.
- Sdílená paměť Podpora: (1) Přidat logiky potřebnou pro zvládnutí přemapování sdílené paměti na kontextových přepínačů. (2) Rozšířit virtuální / fyzické adresy konverze zahrnout adresy ve sdílené paměti. (3) Přidat provádění sdílené paměti podporu specifickým pro danou platformu.
- Atmel SAMA5D Ovladače:
- Síť IOCTL:. Provádět všechny síťové ioctls, včetně nového ioctl k oznámení setup PHY událostí
- Adresa Konverze:. V kernel stavět s adresou prostředí, je třeba logiku mapování uživatelských virtuálních adres na fyzické adresy, a naopak
- Atmel SAMA5D Boards:
- SAMA5D3 Xplained, SAMA5D3-EK, a SAMA5D4-EK: Převést existující rozhraní deska specifická PHY přerušení používat nově definované standardní rozhraní .
- SAMA5D4-EK: Přidat konfigurace pro testování konfigurace sestavení jádra. K dispozici jsou konfigurace Abyste mohli zavést buď z SD karty nebo z a do paměti ROMFS souborového systému.
- SAMA5D4-EK: Přidat dokumentace / podporu pro Rev E. palubě .
- STMicro STM32 Ovladače:
- Ethernet: upravený na podporu změny k síťovým změnám ioctl podpisu. Také přidat podporu pro nové ioctl k upozornění na události setup PHY.
- STMicro STM32 Boards:
- STM32F4Discovery s STM32F4DIS-BB: Přidat síťovou konfiguraci povolen NSH pro desku STM32F4Discovery s instalovaným STM32F4DIS-BB základní desce. Zahrnuje podporu pro slotu pro microSD karty na STM32F4DIS-BB základní desce.
- TI Tiva Ovladače:
- TI CC3200: Přidat podporu pro TI CC3200. Od Jim Ewing.
- TI Tiva Boards:
- TI CC3200 Launchpad: Přidává podporu pro TI CC3200 Launchpad. Od Jim Ewing.
- C Library:
- poll ():. Re-implementován poll () zpoždění pomocí sem_timedwait ()
- Configuration / Build System:
- Export Target: V nebo chráněné jádře staví, (1) pouze uživatel knihovny by měly být vyváženy, (2) nemají kopírovat soubory vnitřních hlavičkové nebo stavět skripty, pokud to je jádro nebo chráněná stavba, a (3) potřeby aby zachumlat souboru spuštění uživatelského C (crt0), bez hlavy objekt jádra pro jádro a chráněné staví.
- Program CFLAGS: přidat logiku, která nám umožní, aby k vybudování uživatelských knihoven s různými CFLAGS než kód jádra. To je nutné proto, že jsme při budování ELF kódu, aby se zabránilo SHN_COMMON relokacím potřebovat -fno-společný možnost.
- Aplikace:
- NSH: Rozšířit inicializační logiku NSH sítě. Tam je nyní možnost, která vytvoří Network Monitor vlákno, které bude sledovat stav odkazu. Když spojení jde dolů, bude kód pokusí elegantně dát řidiči Ethernet ve vypnutém stavu; Když spojení vrátí, bude kód pokusí přivést sítě zpět nahoru.
- ELF. Příklad: ELF test / příklad byl rozšířen, takže jednotlivé zkušební programy ELF lze propojit proti knihovně syscall (pokud je k dispozici), nebo proti knihovny C odstranit nebo minimalizovat potřebu symbolů tabulky
- NxTerm: Změnit všechny výskyty NxConsole na NxTerm .
- MTDRWB. Příklad: Přidejte příklad otestovat MTD R / W do vyrovnávací paměti
- OS Zkušební příklad: Přidejte triviální test sem_timedwait () .
- Nástroje:
- Nástroje:
- Nástroje:
- Nástroje:
- Opravy chyb:
Komentáře nebyl nalezen