NuttX е с отворен код, детерминирана и безплатен реално време вградена операционна система (RTOS), проектирана от офсета да бъдат използваеми в дълбоко вкоренени, ограничени ресурси среди. Той има малък отпечатък, който е използваем в микро-контролер среди, и то & rsquo; е напълно мащабируеми от малка (8-битов) до умерено вградени (32-битова) системи.
Тя има за цел също така да бъде напълно съвместима със стандартите, за да бъде напълно реално време, както и да бъде напълно отворен. NuttX има богата функция OS набор, модулен дизайн, той е силно мащабируем и конфигурируеми, както и съвместим със стандартите. Той се разпространява с лиценз неограничителен BSD. Тя често е наричан от своите разработчици като "Tiny Linux." Качества с един glanceKey функции включват ядро за управление на задачите, BSD гнездо интерфейс, памет разпределители (споделена памет, стандарт разпределение грамада памет, защитена строителство с MPU, плосък вграден строителство, на-процес купове, гранула Allocator и динамично определяне на размера), памет конфигурации, пренасяне за употреба, напълно търпящи изпреварване, tickless операция, при поискване пейджинг и система за сеч.
В допълнение, проектът предлага с разширения за управление на предпочтително изкупуване, на конци, вграден измервания CPU натоварване, изчерпателна документация, незадължителни задачи, които съдържат адреса среди, ANSI-подобни и POSIX-подобни проверки за изпълнение на задачи, часовници, pthreads, околна среда променливи, сигнали, наречени съобщение опашки, таймери, файловата система и преброяване семафори.
Сред другите функции, можем да споменем кръгла Робин график, FIFO, подкрепа за приоритет наследство, подкрепа за архитектурата SoC, подкрепа за борда на архитектури, подкрепа за нови процесорни архитектури, пазител таймери, VxWorks подобни на управление на задачите, I / O пренасочване и предава & ldquo; контролиране терминали & rdquo;. Подкрепа platformsNuttX поддържа голямо разнообразие от хардуерни платформи, сред които можем да споменем многобройните ARM процесори, включително и ARM Cortex-M3, ARM926EJS, ARM7TDMI, ARM Cortex-M4, ARM Cortex-M0, ARM920T и ARM Cortex-A5, както и Atmel 8-битов AVR, Freescale M68HCS12, AVR32 Atmel AVR платформи.
Освен това, тя също така поддържа различни Intel платформи като микрочип PIC32MX (MIPS), 80c52 и 80-пъти; 86, Zilog платформи, включително Zilog Z80, Zilog Z16F, Zilog Z8Encore! и Zilog eZ80 Acclaim !, и M16C / 26 платформи Renesas / Hitachi SuperH и Renesas
Какво ново в тази версия:.
- Характеристики: Допълнителни нови функции и разширена функционалност:
- Ядро OS:
- Watchdog Timer Разпределение: (1) Ако останете без предварително разпределени пъти антимонополни, логиката сега ще отпусне допълнителни таймери от купчината. A резерв от предварително разпределени таймери антимонополни се поддържа, така че винаги ще има таймери разположение за прекъсване товарачи. (2) Добавена е поддръжка за статично разпределени пазител таймер
- Адрес Environment Support: (2) новата ОС APIs интегрирани в цялата платформа-специфичен контекст превключване логика (up_block_task (), up_unblock_task (), _exit (), и др) .
- Kernel Билд Support: (1) MPU базирани & quot; изгражда ядрото & quot; преименувана на защитено строителство (CONFIG_BUILD_PROTECTED); добавена поддръжка за нов MMU базирани & quot; изгражда ядрото & quot; (CONFIG_BUILD_KERNEL), (2) библиотека система разговор вече може да бъде построена с CONFIG_NUTTX_KERNEL. New избор *:. CONFIG_LIB_SYSCALL
- System Startup: Добави опции за конфигуриране, за да стартирате системата от програма на файловата система (в сравнение с адрес в паметта) .
- Startup Предаването на параметри: Няма да бъдат използвани два начина да преминават параметри за нови задачи, в зависимост от конфигурацията: или (1) argv [], както е създаден като масив с всяка струна strdup'ed. Или (2) argv [] масив и струни бяха създадени в стека преди да започне новата задача. Сега, има само един начин, начин (2). Way (1) може да е малко по-компактен, но това не си струва да носят сложността на два различни начини за правене на едно и също нещо.
- Board Инициализация: Добави способност да извършва първоначална борда инициализация на отделна нишка работник. Това е необходимо, защото има много случаи, в които инициализация логика не може да изпълни по стартиране / IDLE конец. Това е така, защото блокира или чакат не е разрешено на IDLE конец.
- управление на паметта:
- Granule Allocator: (1) Добавяне на нова функция за резервиране на ООН allocatable региони в гранула куп. (2) Добавяне на интерфейси за подкрепа на ООН инициализиране гранула разпределител.
- Page Allocator: Добави проста физическа страница разпределител въз основа на съществуващата NuttX гранула разпределител. Аз не съм сигурен, ако гранула разпределител е достатъчно детерминирана за дълга употреба диапазон, но тя стане получите страница разпределител на мястото за тестване много бързо.
- Премахване CONFIG_MM_MULTIHEAP: Non-multiheap работа вече не се поддържа .
- sbrk ():. Sbrk () вече се поддържа в изграждането на ядрото да се позволи динамично размер, купове на процеса
- Per-Process Купища: Space в началото на данните пространство процес сега е запазен за структури за управление на потребителите куп. В режим на ядрото строителство, тези натрупаш структури се разпределят между ядрото и използване код, за да се разпредели специфични за потребителя данни.
- Потребителски Heap Management: Когато привилегированите изходи конци, с които трябва да се използва за заделяне на ядрото да се освободи памет; когато едно непривилегировани изходи конци, ние не трябва да правите нищо ... паметта на стека ще бъдат почистени, когато адресът среда е разрушена.
- Inter-Process Support споделена памет: (1) Добавяне на изпълнение и документация за shmget (), shmctl (), shmat (), и shmdt (). (2) Добави система система призовава за подкрепа на портата на потребителя призив за обща памет интерфейси. (3) Добави платформа специфични определения интерфейс, необходими за подпомагане на обща памет.
- Virtual Page Allocator: Добави подкрепа за виртуална страница разпределител на-процес. Това е нов член на task_group_s структура. The разпределителя трябва да се инициализира, когато се стартира нов процес за употреба и деинициализиране когато групата процес е окончателно разрушен. Той се използва от shmat () и shmdt (), за да изберете виртуалния адрес, върху която да очертае общата физическа памет.
- файлови системи / Блок Drivers / MTD:
- SMART FS: SMART FS и SMART FS procfs актуализации от Ken Петит .
- MTD:. Се появява слой MTD Read-напред / Write буфер в момента функционира
- Binary формати:
- Per-Process Heap:. Добави логика за инициализиране на потребителя грамадата на процеса, когато се стартира всеки процес за употреба
- Graphics:
- NxTerm: Промяна на всички срещания на NxConsole да NxTerm .
- Networking:
- PHY Прекъсва: (1) Стандартизиране закрепване интерфейс PHY прекъсване. (2) Добавяне на подкрепа за IOCTL, че може да се използва за уведомяване на заявление, когато има промяна в състоянието на мрежата сигнализира с PHY прекъсване.
- Подобрена Send Logic: В миналото, на първия пакет изпрати на нова мрежа партньорска ще се провали; няма да има запис в таблицата ARP за партньорската и така един искане ARP може да замени този първи пакет. Сега като опция, ако CONFIG_NET_ARP_SEND = Y, всички изпратите логика (1) ще провери дали партньорската MAC адреса е в таблицата ARP, и ако не, (2) да изпрати ARP заявки периодично, за да получите най-картографиране и (3) да изчака отговор ARP. След това (4), когато отговорът ARP се получава след това ще започне действителното изпрати логика. По този начин може да има забавяне с първия пакет изпратен в нов партньорски, но пакетът не трябва да се губи
- Host Simulation:
- SPI FLASH Driver:. Емулирана SPI флаш водача за SIM целта от Ken Петит
- Intel x86:
- Default Водещ: приемащата по подразбиране е сега x86_64 и опцията -m32 автоматично ще бъде избран за симулация изгражда .
- Intel 8051 Family:
- 8051 Премахнато: премахнала всички подкрепа за 8051 семейството архитектура от източник дървото NuttX. The остарял код заедно с пластир отстраняване сега може да се намери в Разни / остарял /. Този код е отстранен, защото (1), въпреки че някои функции е доказано, че не съм наясно с всички наистина успешните пристанища на NuttX към някое 8051, и (2) 8051, с хардуера си стак, принуждава ограничения и усложнения на другите архитектури и да направи растежа и развитието на NuttX по-сложна.
- Zilog ZNeo Табла:
- довереник / 16Z: Подкрепа за този форум е бил отстранен от източник дървото NuttX (но все още може да се намери в Разни / остарял директория). Този порт не е готова за използване, но може да се върне към дървото NuttX в някакъв момент в бъдеще.
- Atmel SAM3 / 4 Табла:
- SAM4E-EK:. Добави (1) напълно функционална ILI9341-базирани LCD драйвер и (2) с напълно функционална конфигурация NxWM
- ARMv7-A:
- Адрес Environments: добави поддръжка за адрес заявление среди с помощта на Cortex-A MMU. Прилагане стандартизирани специфични за дадена платформа интерфейси на NuttX подкрепа адрес среда.
- Операции Cache: Прилагане на стандартизирани, специфични за дадена платформа операции кеш. Те се наричат от ELF товарач, за да промиете D-кеша и обезсили I-кеша след модул ELF е била заредена в паметта. С тази промяна, ELF модули работят правилно на SAMA5 / Cortex-A платформа.
- Kernel Build: (1) Добави внедрявания на системата разговор порта. (2) Добави CRT0 стартиране файл, който може да бъде свързан с отделно изградени потребителски програми. (3) Добави подкрепа за доставка на използване режим сигнали за избухването на ядрото. (4) Добави логика за инициализиране на потребителя грамадата на процеса, когато се стартира всеки процес за употреба. (5) ARMv7-A боравене изключение трябва да работи малко по-различно, ако ние подкрепяме процесите на потребителски режим. Това е така, защото R13 и R14 са пейджъра различен между потребителя и режим SVC.
- Споделено с поддържана памет: (1) Добави логика е необходимо да се справят ремапинг споделена памет от контекста ключове. (2) Разширяване виртуални / физически адрес реализации да включва адреси в общата памет. (3) Добави изпълнение на платформа, специфични за споделена памет, поддръжка.
- Atmel SAMA5D драйвери:
- Network Ioctls:. Изпълнение на всички мрежови ioctls, включително новата IOCTL да уведомления настройка PHY събития
- Адрес Реализации:. В ядрото изграждат с адрес среда, се нуждаят от логика да картографира потребителски виртуални адреси на физически адреси и обратно
- Atmel SAMA5D Табла:
- SAMA5D3 Xplained, SAMA5D3-EK, и SAMA5D4-EK: Конвертиране на съществуващата борда специфична PHY прекъсват интерфейси за използване новодефинираната стандартен интерфейс .
- SAMA5D4-EK: Добави конфигурация за тестване на конфигурацията изгражда ядрото. Има конфигурации, за да зарежда от SD карта или от и в памет ROMFS файлова система.
- SAMA5D4-EK: Добави документация / подкрепа за Rev E. борда .
- STMicro STM32 драйвери:
- Ethernet: модифициран за поддържане на промяната към промените IOCTL подпис мрежата. Също така добави поддръжка за новата IOCTL да уведомления настройка PHY събитие.
- STMicro STM32 Табла:
- STM32F4Discovery с STM32F4DIS-BB: Добавяне на мрежов включен конфигурация NSH за STM32F4Discovery дъската с базовата платка STM32F4DIS-BB инсталиран. Включва поддръжка за слота за микроб карта на базовата платка STM32F4DIS-BB.
- TI Тива драйвери:
- TI CC3200: Добави подкрепа за CC3200 TI. От Джим Юинг.
- TI Тива Табла:
- TI CC3200 Launchpad: Добави подкрепа за TI CC3200 старт. От Джим Юинг.
- C Library:
- анкета ():. Re-реализира анкета () незабавно, използвайки sem_timedwait ()
- Configuration / Build System:
- Export Target: В ядрото или защитена изгражда, (1) Само потребителят, библиотеките трябва да бъдат изнесени, (2) не копирайте вътрешни заглавни файлове или изграждане на скриптове, ако това е ядрото или защитена строителство, и (3) нужди да се обединят до файла с потребителското C стартиране (crt0), а не на главата обект на ядрото за ядрото и защитени изгражда.
- Program CFLAGS: Добави логика, която ще ни позволи да се изгради потребителски библиотеки с различни CFLAGS от код на ядрото. Това е необходимо, защото ние се нуждаем от -fno-общ вариант при изграждането на ELF код, за да се предотврати SHN_COMMON премествания.
- Приложения:
- NSH: Разширете инициализация логиката на NSH мрежа. Сега има една опция, която ще създаде нишка мрежа монитор, който ще следи състоянието на връзката. Когато връзката върви надолу, кодът ще се опита да грациозно сложи драйвера за Ethernet в определяне на държава; Когато връзката се връща, кодът ще се опита да донесе мрежата обратно нагоре.
- ELF Пример:. Изпитвателната ELF / примера е разширена, така че отделните програми ELF изпитване могат да се свържат срещу SYSCALL библиотеката (ако е налична) или срещу библиотеката C да се елиминират или сведат до минимум необходимостта от символни таблици
- NxTerm: Промяна на всички срещания на NxConsole да NxTerm .
- MTDRWB Пример:. Добави пример за тестване MTD R / W буфериране
- OS Тестов пример: Добави тривиална тест на sem_timedwait () .
- Configuration Application / Build System:
- Import Target: (1) Добавяне на логика, която ще даде възможност за строеж срещу износа на пакетите NuttX (vs. на nuttx / източник дървото). (2) Добави .config файла да изнася пакет. (3) Създаване на приложения / внос. Създайте приложения / внос / Make.defs който прави неща, като определи CFLAGS; ELF строителство изисква -fno-често при CFLAGS. Копирайте някои базовата логика от nuttx / инструменти / Config.mk да Apps / внос / Make.defs. (4) Добавяне на приложения / внос / скриптове / GNU-elf.ld GCC свързваща скрипт за изгражда ELF внос.
- Всички Makefile-ове: (1) добавете инсталирате цел за всички Makefile-ове. За изграждането на вноса, Makefile на най-високо ниво в момента прави две минавания: (1) изгражда libapp.a, тогава (2) инсталира програмите в приложения / бен. (2) Добави инсталационна програма за CONFIG_BUILD_KERNEL във всички Makefile-ове, които изграждат главната (). (3) За изгражда ядрото, обектния файл, съдържащ основна () не може да отиде в библиотеката, защото на името сблъсъци. Файлът обект трябва да се обработва като специален случай във всеки Makefile.
- Всички вградени програми: С изгражда ядрото (CONFIG_BUILD_KERNEL), входна точка за всички задачи е основният (), а не някакъв xyz_main () .
- NSH: Няколко команди трябва да бъде забранена в изграждането на ядрото, защото те зависят от интерфейси, които не са достъпни извън ядрото:. Дд, DF, losetup, mkfatfs, mkdr и PS
- Apps / инструменти /: (1) Добави mkimport.sh да взривят един NuttX пакет внос и инсталиране на приложения / внос. (2) Добави mkromfsimg.sh скрипт, за да се създаде образ BOOT ROMFS файлова система.
- ELF и NxFLAT Примери:. Не се изгради тестовете, които използват task_create (), ако е налице адрес среда
- Инструменти:
- refresh.sh:. Добавяне на инструмент, за да се направи освежаващи конфигурации по-лесно, когато искате да направите много от тях
- mksyscall.c: Изграждане syscalls, че не се нуждаят от заглавните файлове .
- mkexport.sh:. Добави .config файла да изнася пакет
- Apps / инструменти: виж по-горе за нови приложения / инструменти скриптове .
- Усилията в ход. По-долу са функции, които са частично изпълнени, но присъстват в тази версия. Те не са вероятно най-скоро, за да бъде завършен.
- процеси: Голяма част от работата в тази версия е насочена към реализирането на потребителските процеси Unix-стил в NuttX. Има още да се направи, обаче. Пълният пътната карта и статутът е на разположение на адрес: http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
- XMega: Има някои фрагменти в място за XMega порт. Това пристанище наистина не е започнал, обаче.
- Galileo: По същия начин, има фрагменти в място за порт за Intel Galileo. Пристанището не е започнало на шега двамата.
- Фиксирани бъгове. Най-критичните поправки са изброени Само тук (виж ChangeLog за пълния списък на поправки и за допълнителна, по-подробна Bugfix информация):
- Ядро OS:
- Kernel изгради поправки: (1) IDLE настройка TCB трябва да покаже, че IDLE нишката е привилегирован, ядрото конец. (2) Не се изгради task_create () или task_spawn () интерфейси, ако е налице адрес среда. (3) posix_spawn () ядрото прокси конец трябва да бъде една нишка на ядрото, а не задача на потребителя.
- Няколко pthread интерфейси: Добави Конст клас за съхранение на phthread параметри. От Freddie Chopin.
- sched / часовник: Отстранете остатъци от g_tickbias; е нужно, вместо да приложи пристрастия време да g_basetime, за да се осигури правилното време системата.
- System разговори: (1) Няколко печатни грешки фиксирани; коригирана интеграция на exevc (), execvl (), posix_spawn (), и posix_spawnp () системни повиквания. (2) Ако са конфигурирани да използват стека на ядрото, докато в SYSCALL работа, тогава ние трябва да се върнете обратно към купчината потребител, за да достави на сигнал.
- файлови системи / Блок Drivers / MTD:
- procfs: Fix някои procf счупване, въведена с реорганизация на някои не-reorganizable структури от данни. От Ken Петит.
- At45: В at45db_bwrite (), буферът не се увеличава, когато пишете повече от 1 страница. Sourceforge бъг # 34.
- Binary формати:
- ELF премествания: Някои видове преместването не разполагат с име символ, свързан с тях. Дизайнът не отчита този случай.
- ELF Loader:. Critical Bugfix .. BSS не е бил изчистен
- управление на паметта:
- Granule Allocator: Granule разпределител инициализация използва погрешно разпределител за заделяне на памет ядрото .
- Привилегировани Групи: Добавяне на флаг в група структура: Ако групата е създадена от една нишка на ядрото, а след това всички ресурси в групата трябва да са привилегировани .
- Cryptogrphic Support:
- крипто / cryptodev.c: Път сегменти са възстановени обратно в включват файл пътека. Отбелязано от Бренън Аштън.
- Общи драйвери:
- Общата МОЖЕ горната половина: В can_txdone, сервитьори на семафора трябва да бъдат информирани, независимо от крайния резултат от изпълнението can_xmit. Първо той се връща -EIO ако не са налице нови пакети и втора информацията от сервитьорите е за последния прехвърля пакета. От Daniel Ласло Sitzer.
- ARM:
- System призовава: Fix правописна грешка в системата повикване, когато извличането параметър от комина: редовните играчи [REG_PC] 4 е адресът не, редовните играчи [REG_PC + 4] .
- STMicro STM32 драйвери:
- STM32 F401 UART: Правилно подкрепа за USART6 на този чип. От Freddie Chopin.
- STM32 FLASH поправя: използвайте size_t вместо uint16_t, направи интерфейс по-общ. От Freddie Chopin.
- STM32 UART:. Фикс за UART7 и UART8 на STM32 часовник даде възможност от Aton
- Мога: В края на прекъсване манипулатор, прекъсва са били с увреждания, ако всички пакети са били прехвърлени, когато прекъсват манипулатор е извикана. Това е проблематично, тъй като прекъсват манипулатор призовава can_txdone () на горната половина, който може да Enqueue нови пакети за изпращане. Премахнато блока като цяло, тъй can_txdone () can_xmit призовава (), която забранява прекъсва, ако не са налице нови пакети за изпращане. От Daniel Ласло Sitzer.
- Мога:. Допълнителна корекция STM32 CAN предложено от Max Holtzberg
- STMicro ST32 Табла:
- довереник / mikroe-stm32f4: Fix някои съставят бъгове и малки корекции на източника конфигурация на mikroe-stm32f4. От Ken Петит.
- ARM9 / ARMv7-A:
- System призовава: Fix ARM7 / 9 и Cortex-A SYSCALLs: За теми в режим SVC, инструкциите SVC clobbers R14. Това трябва да се вземе предвид при сглобяването инлайн.
- Task Setup: Всички задачи, дори задачи потребителски режим, трябва да стартира в режим на надзорник, докато те се сблъскваше със стартовия батут .
- ARMv7-A: Промяна up_fullcontextrestore () за CONFIG_BUILD_KERNEL. Тя променя CPSR докато в ядрото. Това ще се срине, ако новата CPSR е потребителски режим по време на изпълнение в ядрото пространство. Фиксирана чрез добавяне на система разговор SYS_context_restore. Съществува алтернатива, по-проста модификация up_fullcontextrestore (), която можеше да се направи: Можеше да е възможно да се използва SPSR вместо CPRSR и след това направете едно връщане изключение от up_fullcontextrestore (). Това би било по-ефективно, но никога не съм го пробвал.
- Atmel SAM3 / 4 Табла:
- SAM3X / Arduino Due: Fix Типо в sam3x_periphclks.h; добави SCLK определения, за да board.h заглавния файл. От Фабиен Comte.
- SAM3 RTT: Само SAM4 семейство има RTTDIS малко в регистъра на MR. SourceForge бъг # 33 от Фабиен Comte.
- C Library:
- sscanf (): NuttX библшотеката се опита да отгатне колко знака да се анализира, да ги извлича в буфер, а след това се завтече strtol () на този буфер. Това предположение често не е наред. По-добрият подход би бил да се обадя strtol () директно на входните данни, чрез обратно стойността на endptr за да се определи колко знака да пропуснете след разбор. От Козма Moczek.
- Math Library:. Поправен ATAN2 реализации от Denis Arnst
- Floating Point Output: Промяна в lib_dtoa (), за да се определи прецизно грешка от затварящите нули. От Боб Doiron.
- Приложения:
- команда Fix NSH PS:. Ако няма аргументи, тя може да отпечатате боклук за списък аргумент
- Configuration / Build System:
- Null Пример: необходимостта да се включат config.h я цел знам дали това е или не е ядрото строителство. Този проблем все още съществува в няколко други файл, който може да се наложи да се определи главната ().
Какво ново във версия 7.8:
- Характеристики: Допълнителни нови функции и разширена функционалност:
- Ядро OS:
- Watchdog Timer Разпределение: (1) Ако останете без предварително разпределени пъти антимонополни, логиката сега ще отпусне допълнителни таймери от купчината. A резерв от предварително разпределени таймери антимонополни се поддържа, така че винаги ще има таймери разположение за прекъсване товарачи. (2) Добавена е поддръжка за статично разпределени пазител таймер
- Адрес Environment Support: (2) новата ОС APIs интегрирани в цялата платформа-специфичен контекст превключване логика (up_block_task (), up_unblock_task (), _exit (), и др) .
- Kernel Билд Support: (1) MPU базирани & quot; изгражда ядрото & quot; преименувана на защитено строителство (CONFIG_BUILD_PROTECTED); добавена поддръжка за нов MMU базирани & quot; изгражда ядрото & quot; (CONFIG_BUILD_KERNEL), (2) библиотека система разговор вече може да бъде построена с CONFIG_NUTTX_KERNEL. New избор *:. CONFIG_LIB_SYSCALL
- System Startup: Добави опции за конфигуриране, за да стартирате системата от програма на файловата система (в сравнение с адрес в паметта) .
- Startup Предаването на параметри: Няма да бъдат използвани два начина да преминават параметри за нови задачи, в зависимост от конфигурацията: или (1) argv [], както е създаден като масив с всяка струна strdup'ed. Или (2) argv [] масив и струни бяха създадени в стека преди да започне новата задача. Сега, има само един начин, начин (2). Way (1) може да е малко по-компактен, но това не си струва да носят сложността на два различни начини за правене на едно и също нещо.
- Board Инициализация: Добави способност да извършва първоначална борда инициализация на отделна нишка работник. Това е необходимо, защото има много случаи, в които инициализация логика не може да изпълни по стартиране / IDLE конец. Това е така, защото блокира или чакат не е разрешено на IDLE конец.
- управление на паметта:
- Granule Allocator: (1) Добавяне на нова функция за резервиране на ООН allocatable региони в гранула куп. (2) Добавяне на интерфейси за подкрепа на ООН инициализиране гранула разпределител.
- Page Allocator: Добави проста физическа страница разпределител въз основа на съществуващата NuttX гранула разпределител. Аз не съм сигурен, ако гранула разпределител е достатъчно детерминирана за дълга употреба диапазон, но тя стане получите страница разпределител на мястото за тестване много бързо.
- Премахване CONFIG_MM_MULTIHEAP: Non-multiheap работа вече не се поддържа .
- sbrk ():. Sbrk () вече се поддържа в изграждането на ядрото да се позволи динамично размер, купове на процеса
- Per-Process Купища: Space в началото на данните пространство процес сега е запазен за структури за управление на потребителите куп. В режим на ядрото строителство, тези натрупаш структури се разпределят между ядрото и използване код, за да се разпредели специфични за потребителя данни.
- Потребителски Heap Management: Когато привилегированите изходи конци, с които трябва да се използва за заделяне на ядрото да се освободи памет; когато едно непривилегировани изходи конци, ние не трябва да правите нищо ... паметта на стека ще бъдат почистени, когато адресът среда е разрушена.
- Inter-Process Support споделена памет: (1) Добавяне на изпълнение и документация за shmget (), shmctl (), shmat (), и shmdt (). (2) Добави система система призовава за подкрепа на портата на потребителя призив за обща памет интерфейси. (3) Добави платформа специфични определения интерфейс, необходими за подпомагане на обща памет.
- Virtual Page Allocator: Добави подкрепа за виртуална страница разпределител на-процес. Това е нов член на task_group_s структура. The разпределителя трябва да се инициализира, когато се стартира нов процес за употреба и деинициализиране когато групата процес е окончателно разрушен. Той се използва от shmat () и shmdt (), за да изберете виртуалния адрес, върху която да очертае общата физическа памет.
- файлови системи / Блок Drivers / MTD:
- SMART FS: SMART FS и SMART FS procfs актуализации от Ken Петит .
- MTD:. Се появява слой MTD Read-напред / Write буфер в момента функционира
- Binary формати:
- Per-Process Heap:. Добави логика за инициализиране на потребителя грамадата на процеса, когато се стартира всеки процес за употреба
- Graphics:
- NxTerm: Промяна на всички срещания на NxConsole да NxTerm .
- Networking:
- PHY Прекъсва: (1) Стандартизиране закрепване интерфейс PHY прекъсване. (2) Добавяне на подкрепа за IOCTL, че може да се използва за уведомяване на заявление, когато има промяна в състоянието на мрежата сигнализира с PHY прекъсване.
- Подобрена Send Logic: В миналото, на първия пакет изпрати на нова мрежа партньорска ще се провали; няма да има запис в таблицата ARP за партньорската и така един искане ARP може да замени този първи пакет. Сега като опция, ако CONFIG_NET_ARP_SEND = Y, всички изпратите логика (1) ще провери дали партньорската MAC адреса е в таблицата ARP, и ако не, (2) да изпрати ARP заявки периодично, за да получите най-картографиране и (3) да изчака отговор ARP. След това (4), когато отговорът ARP се получава след това ще започне действителното изпрати логика. По този начин може да има забавяне с първия пакет изпратен в нов партньорски, но пакетът не трябва да се губи
- Host Simulation:
- SPI FLASH Driver:. Емулирана SPI флаш водача за SIM целта от Ken Петит
- Intel x86:
- Default Водещ: приемащата по подразбиране е сега x86_64 и опцията -m32 автоматично ще бъде избран за симулация изгражда .
- Intel 8051 Family:
- 8051 Премахнато: премахнала всички подкрепа за 8051 семейството архитектура от източник дървото NuttX. The остарял код заедно с пластир отстраняване сега може да се намери в Разни / остарял /. Този код е отстранен, защото (1), въпреки че някои функции е доказано, че не съм наясно с всички наистина успешните пристанища на NuttX към някое 8051, и (2) 8051, с хардуера си стак, принуждава ограничения и усложнения на другите архитектури и да направи растежа и развитието на NuttX по-сложна.
- Zilog ZNeo Табла:
- довереник / 16Z: Подкрепа за този форум е бил отстранен от източник дървото NuttX (но все още може да се намери в Разни / остарял директория). Този порт не е готова за използване, но може да се върне към дървото NuttX в някакъв момент в бъдеще.
- Atmel SAM3 / 4 Табла:
- SAM4E-EK:. Добави (1) напълно функционална ILI9341-базирани LCD драйвер и (2) с напълно функционална конфигурация NxWM
- ARMv7-A:
- Адрес Environments: добави поддръжка за адрес заявление среди с помощта на Cortex-A MMU. Прилагане стандартизирани специфични за дадена платформа интерфейси на NuttX подкрепа адрес среда.
- Операции Cache: Прилагане на стандартизирани, специфични за дадена платформа операции кеш. Те се наричат от ELF товарач, за да промиете D-кеша и обезсили I-кеша след модул ELF е била заредена в паметта. С тази промяна, ELF модули работят правилно на SAMA5 / Cortex-A платформа.
- Kernel Build: (1) Добави внедрявания на системата разговор порта. (2) Добави CRT0 стартиране файл, който може да бъде свързан с отделно изградени потребителски програми. (3) Добави подкрепа за доставка на използване режим сигнали за избухването на ядрото. (4) Добави логика за инициализиране на потребителя грамадата на процеса, когато се стартира всеки процес за употреба. (5) ARMv7-A боравене изключение трябва да работи малко по-различно, ако ние подкрепяме процесите на потребителски режим. Това е така, защото R13 и R14 са пейджъра различен между потребителя и режим SVC.
- Споделено с поддържана памет: (1) Добави логика е необходимо да се справят ремапинг споделена памет от контекста ключове. (2) Разширяване виртуални / физически адрес реализации да включва адреси в общата памет. (3) Добави изпълнение на платформа, специфични за споделена памет, поддръжка.
- Atmel SAMA5D драйвери:
- Network Ioctls:. Изпълнение на всички мрежови ioctls, включително новата IOCTL да уведомления настройка PHY събития
- Адрес Реализации:. В ядрото изграждат с адрес среда, се нуждаят от логика да картографира потребителски виртуални адреси на физически адреси и обратно
- Atmel SAMA5D Табла:
- SAMA5D3 Xplained, SAMA5D3-EK, и SAMA5D4-EK: Конвертиране на съществуващата борда специфична PHY прекъсват интерфейси за използване новодефинираната стандартен интерфейс .
- SAMA5D4-EK: Добави конфигурация за тестване на конфигурацията изгражда ядрото. Има конфигурации, за да зарежда от SD карта или от и в памет ROMFS файлова система.
- SAMA5D4-EK: Добави документация / подкрепа за Rev E. борда .
- STMicro STM32 драйвери:
- Ethernet: модифициран за поддържане на промяната към промените IOCTL подпис мрежата. Също така добави поддръжка за новата IOCTL да уведомления настройка PHY събитие.
- STMicro STM32 Табла:
- STM32F4Discovery с STM32F4DIS-BB: Добавяне на мрежов включен конфигурация NSH за STM32F4Discovery дъската с базовата платка STM32F4DIS-BB инсталиран. Включва поддръжка за слота за микроб карта на базовата платка STM32F4DIS-BB.
- TI Тива драйвери:
- TI CC3200: Добави подкрепа за CC3200 TI. От Джим Юинг.
- TI Тива Табла:
- TI CC3200 Launchpad: Добави подкрепа за TI CC3200 старт. От Джим Юинг.
- C Library:
- анкета ():. Re-реализира анкета () незабавно, използвайки sem_timedwait ()
- Configuration / Build System:
- Export Target: В ядрото или защитена изгражда, (1) Само потребителят, библиотеките трябва да бъдат изнесени, (2) не копирайте вътрешни заглавни файлове или изграждане на скриптове, ако това е ядрото или защитена строителство, и (3) нужди да се обединят до файла с потребителското C стартиране (crt0), а не на главата обект на ядрото за ядрото и защитени изгражда.
- Program CFLAGS: Добави логика, която ще ни позволи да се изгради потребителски библиотеки с различни CFLAGS от код на ядрото. Това е необходимо, защото ние се нуждаем от -fno-общ вариант при изграждането на ELF код, за да се предотврати SHN_COMMON премествания.
- Приложения:
- NSH: Разширете инициализация логиката на NSH мрежа. Сега има една опция, която ще създаде нишка мрежа монитор, който ще следи състоянието на връзката. Когато връзката върви надолу, кодът ще се опита да грациозно сложи драйвера за Ethernet в определяне на държава; Когато връзката се връща, кодът ще се опита да донесе мрежата обратно нагоре.
- ELF Пример:. Изпитвателната ELF / примера е разширена, така че отделните програми ELF изпитване могат да се свържат срещу SYSCALL библиотеката (ако е налична) или срещу библиотеката C да се елиминират или сведат до минимум необходимостта от символни таблици
- NxTerm: Промяна на всички срещания на NxConsole да NxTerm .
- MTDRWB Пример:. Добави пример за тестване MTD R / W буфериране
- OS Тестов пример: Добави тривиална тест на sem_timedwait () .
- Инструменти:
- Инструменти:
- Инструменти:
- Инструменти:
- Фиксирани бъгове:
Коментари не е намерена