NuttX є відкритим вихідним кодом, детермінований безкоштовно в режимі реального часу вбудована операційна система (ОСРВ), розроблений з зсуву, щоб бути корисною в глибоко вбудованих, з обмеженими ресурсами навколишнього середовища. Він має невеликий розмір, який буде доступний в середовищі мікро-контролер, і & Rsquo; S повністю масштабованим від крихітної (8-біт), щоб пом'якшити Embedded (32-біт) системи.
Він також прагне бути повністю відповідає стандартам, щоб бути повністю в режимі реального часу, і бути повністю відкриті. NuttX має багатий набір функцій ОС, модульну конструкцію, це масштабується і налаштовується, а також відповідає стандартам. Він поширюється з неогранічітельного ліцензії BSD. Це часто називають його розробників, "Крихітний Linux." Функцій по glanceKey функції включають в себе основні завдання управління, інтерфейс сокетів BSD, розподільники пам'яті (розділяється пам'яті, стандартний розподіл динамічної пам'яті, захищену збірки з MPU, плоский вбудований білд, для кожного процесу купи, гранула розподільник і динамічно розміру), конфігурації пам'яті, керівництво по портированию, повністю перериватися, Tickless роботи, на вимогу підкачки і система реєстрації.
Крім того, проект йде з розширеннями для управління випередження, за-нить, вбудований у вимірах навантаження процесора, повної документації, додаткові завдання, які містять адреси середовища, ANSI-POSIX як і подібні елементи управління завдань, годинники, Pthreads, навколишнього середовища змінні, сигнали, названі черг повідомлень, таймери, файлової системи і рахункові семафори.
Серед інших особливостей можна згадати циклічного планування, FIFO, підтримка успадкування пріоритетів, підтримка архітектури SoC, підтримка архітектур борту, підтримку нових процесорних архітектур, сторожових таймерів, як VxWorks-управління завданнями, перенаправлення вводу / виводу і передаються і ldquo; управління терміналами та rdquo ;. Підтримувані platformsNuttX підтримує широкий спектр апаратних платформ, серед яких можна відзначити численні ARM процесори, в тому числі ARM Cortex-M3, ARM926EJS, ARM7TDMI, ARM Cortex-M4, ARM Cortex-M0, ARM920T і ARM Cortex-A5, а також 8-бітний AVR Atmel, Freescale M68HCS12, AVR32 Atmel AVR платформи.
Крім того, він також підтримує різні платформи Intel, такі як Microchip PIC32MX (MIPS), 80c52 і 80 & часи; 86, Zilog платформ, у тому числі Zilog Z80, Zilog Z16F, Zilog Z8Encore! і Zilog eZ80 Acclaim!, і M16C / 26 платформи Renesas / Hitachi SuperH і Renesas
Що нового У цьому випуску :.
- Особливості: Додаткові нові можливості і розширена функціональність:
- Основні ОС:
- Сторожовий таймер Розподіл: (1) Якщо ми запустимо з попередньо виділено час сторожового, логіка тепер виділити додаткові таймери з купи. Запас заздалегідь виділено таймерів сторожового підтримується, так що завжди буде таймери, доступні для обробників переривань. (2) Додана підтримка для статично розміщену сторожовий таймер
- Адреса середовища підтримки: (2) Нові OS API, інтегрований в усі конкретної платформи перемикання контексту логіка (up_block_task (), () up_unblock_task, _exit () та інші) .
- Ядро будувати підтримка: (1) MPU основі і Quot; збірка ядра і Quot; перейменований в захищеному збірки (CONFIG_BUILD_PROTECTED); додана підтримка нового ММУ основі і Quot; збірка ядра і Quot; (CONFIG_BUILD_KERNEL), (2) бібліотеки системних викликів тепер можуть бути побудовані з CONFIG_NUTTX_KERNEL. Новий вибір * :. CONFIG_LIB_SYSCALL
- Запуск системи: Додати параметри конфігурації для запуску системи з програми в файлової системі (в порівнянні з адресою в пам'яті) .
- Введення в експлуатацію Параметр: Там використовувалися два способи передачі параметрів до нових завдань, залежно від конфігурації: або (1) ARGV [], створену у вигляді масиву з кожного рядка strdup'ed. Або (2) ARGV [] були створені масиву і рядків у стеці перед запуском нової завданням. Тепер є тільки один шлях, шлях (2). Шлях (1), може бути трохи більш компактний, але це не варто носити складності двох різних способів робити те ж саме.
- Рада ініціалізації: Додати можливість виконати початкову ініціалізацію плати на окремому робочому потоці. Це необхідно, тому що є багато випадків, коли логіка ініціалізації не може виконати на запуск / холостий нитки. Це тому, що блокування або очікування не вирішується на IDLE нитки.
- Управління пам'яттю:
- Гранула розподільник: (1) Додати нову функцію резерву ООН-ALLOCATABLE регіони гранул купу. (2) Додати інтерфейси для підтримки не-ініціалізації гранул розподільник.
- Сторінка розподільник: Додати просту фізичну сторінку розподільник на основі існуючої NuttX гранул розподільника. Я не впевнений, якщо гранули розподільник достатньо детермінованим для тривалого використання діапазону, але він отримує отримати сторінку розподільник на місце для перевірки дуже швидко.
- Видаліть CONFIG_MM_MULTIHEAP: Чи не multiheap операція більше не підтримується .
- sbrk () :. Sbrk () тепер підтримується в збірці ядра, щоб дозволити динамічно розміру, за-процесу купи
- для кожного процесу Кучи: пробіл на початку простору даних процесу в даний час зарезервовані для структур управління користувачами купи. У режимі побудови ядра, ці купи структури розділені між кодом ядра і використовувати для того, щоб виділити дані користувача.
- Користувач Купа управління: Коли привілейовані виходить нитка, ми повинні використовувати розподільник ядра до вільної пам'яті; Коли непривілейованих виходить нитка, ми не повинні робити нічого, ... купа пам'яті буде очищений, коли адреса середовища знесені.
- межпроцессной Підтримка Спільна пам'ять: (1) Додати впровадження та документації для shmget (), shmctl (), Shmat (), і shmdt (). (2) Додати Система закликає підтримати ворота виклику користувачеві загальних інтерфейсів пам'яті. (3) Додати конкретної платформи визначення інтерфейсу, необхідні для підтримки спільної пам'яті.
- Віртуальний розподільник Сторінка: Додати підтримку для віртуального сторінку розподільника на процесі. Це новий член task_group_s структури. Розподільник слід буде почати, коли новий користувальницький процес запускається і Uninitialize, коли група процес остаточно зруйнований. Він використовується Shmat () і () shmdt вибрати віртуальний адресу, на яку зіставити загальну фізичну пам'ять.
- Файлові системи / Блок Драйвери / MTD:
- SMART FS: SMART FS і FS SMART PROCFS оновлення від Кена Петтіт .
- MTD :. З'являється МТД Читайте вперед / Написати буферний шар тепер функціонал
- Бінарні формати:
- Пер-процесу купчастого :. Додати логіку для ініціалізації користувача купу кожного процесу, коли кожен користувальницький процес запускається
- Графіка:
- NxTerm: Змінити всі входження в NxConsole NxTerm .
- Мережа:
- PHY Переривання: (1) Стандартизація інтерфейсу кріплення PHY переривання. (2) Додати підтримку для IOCTL, які можуть бути використані, щоб повідомити додаток, коли відбувається зміна в статусі мережі сигнализируется PHY переривання.
- Покращена Відправити Логіка: У минулому, перший пакет відправити новий мережевий однолітків провалиться; не було б ніякого запису в таблиці ARP для однолітків і так запит ARP може замінити цей перший пакет. Тепер в якості опції, якщо CONFIG_NET_ARP_SEND = у, все відправити логіка (1) перевірити, якщо однолітків MAC-адресу в таблиці ARP і, якщо ні, (2) періодично відправляти ARP запити, щоб отримати відображення і (3) почекати ARP відгук. Тоді (4), коли відповідь буде отримана ARP, то фактичне логіка відправки буде ініційовано. Таким чином, може бути затримка з першого переданого пакета в новий вузол, але пакет не повинен бути втрачений
- Хост Моделювання:
- SPI FLASH драйвера :. Емуляція SPI FLASH Драйвер для сім-мішені від Кена Петтіт
- Intel x86:
- За умовчанням Ведучий: господар замовчуванням тепер x86_64 і варіант -m32 буде автоматично вибрано для моделювання будує .
- Intel 8051 Сімейство:
- 8051 Вилучений: Вилучені всі підтримку архітектурі сімейства з вихідного дерева NuttX 8051. Застарів код разом з видалення патча тепер можна знайти на різнобічного / застарілих /. Цей код був видалений, тому що (1), хоча деякі функції було продемонстровано, що я не в курсі будь-яких дійсно успішних портів NuttX в будь 8051, і (2) 8051, з апаратним стеком, змушує обмеження і ускладнення на інші архітектури і зробити зростання і розвиток NuttX складніше.
- ZiLOG ZNeo плати:
- конфіги / 16Z: Підтримка для цієї плати була видалена з дерева вихідних NuttX (але все ще можна знайти в різнобічного / Зняті каталозі). Цей порт не готовий для використання, але може повернутися в NuttX дерева в якийсь момент в майбутньому.
- Atmel SAM3 / 4 плати:
- SAM4E-ЕК :. Додати (1) повністю функціональний ILI9341 основі РК-водія і (2) повністю функціональну конфігурацію NxWM
- ARMv7 -
- Адреса середовища: Додана підтримка адресних програм середовищах, що використовують Cortex-A MMU. Реалізація стандартних конкретної платформи інтерфейси NuttX підтримки адреса навколишнього середовища.
- Операції кеша: Реалізація стандартних, специфічні для платформи операції кеша. Вони викликаються з ELF завантажувач для того, щоб позбутися D-кеш і недійсним I-кеш після модуль ELF був завантажений в пам'ять. З цією зміною, ELF модулі коректно працювати на SAMA5 / Cortex-платформі.
- Ядро Статура: (1) Додати реалізацій воріт системних викликів. (2) Додати crt0 запуску файлу, який може бути пов'язаний з окремо збудованих користувача програм. (3) Додати підтримку для доставки сигналів використання режиму в збірці ядра. (4) Додати логіку для ініціалізації користувача купу кожного процесу, коли кожен користувальницький процес запускається. (5) ARMv7-обробка виключень повинен працювати трохи по-іншому, якщо ми підтримуємо процеси користувальницького режиму. Це відбувається тому, R13 і R14 мають вивантажується різному між користувачем і режимі SVC.
- Загальна підтримка Пам'ять: (1) Додати логіку, необхідну для обробки перепризначення розділяється пам'яті на перемикань контексту. (2) Розширення віртуальних / фізичних адрес переходів включити адреси в загальній пам'яті. (3) Додати реалізацію конкретної платформи загальної підтримки пам'яті.
- Atmel SAMA5D Драйвери:
- Мережа IOCTLs :. Реалізувати всі мережі IOCTLs, у тому числі нового IOCTL повідомлень, налаштування PHY подій
- Адреса Перетворення :. В ядро будувати з адресною середовища, повинні логіку користувальницької карти віртуальних адрес у фізичні адреси і навпаки
- Atmel SAMA5D плати:
- SAMA5D3 Xplained, SAMA5D3-ЕК, і SAMA5D4-ЕК: Перетворення існуючих інтерфейсів дошка конкретних PHY переривань використовувати тільки що певний стандартний інтерфейс .
- SAMA5D4-ЕК: Додати конфігурацію для тестування конфігурації збірки ядра. Є конфігурації для завантажитися або з SD-карти або з і в пам'яті ROMFS файлової системи.
- SAMA5D4-ЕК: Додати документації / підтримку Ред Е. борту .
- STMicro STM32 Драйвери:
- Ethernet: Модифікована підтримати зміни до мережевих змін IOCTL підпису. Крім того, додати підтримку нового IOCTL в повідомлень про події установки PHY.
- STMicro STM32 плати:
- STM32F4Discovery з STM32F4DIS-BB: Додати мережу включена конфігурація НШ для плати STM32F4Discovery з базовою платі STM32F4DIS-BB встановлений. Включає в себе підтримку для слота MicroSD-карти на основній платі STM32F4DIS-BB.
- TI Тива Драйвери:
- TI CC3200: Додати підтримку для CC3200 TI. З Джимом Юінга.
- TI Тива плати:
- TI CC3200 Launchpad: Додана підтримка для TI CC3200 Launchpad. З Джимом Юінга.
- Бібліотека C:
- Опитування () :. Re-реалізовані опитування () Затримка використання sem_timedwait ()
- Конфігурація / Система збирання:
- Експорт Мета: У ядрі або захищені будує, (1) тільки користувальницькі бібліотеки повинні бути експортовані, (2) не копіювати внутрішні файли заголовків або побудувати сценарії, якщо це ядро або захищені збірки, і (3) потреби укутати файл запуску користувач C (crt0), а не об'єкт голову ядра для ядра і захищені будує.
- Програма CFLAGS: Додати логіку, який дозволить нам будувати користувацькі бібліотеки з різними CFLAGS, ніж коду ядра. Це необхідно, тому що ми потребуємо -fno-спільний варіант, коли будівництво ELF код, щоб запобігти SHN_COMMON переселення.
- Застосування:
- НШ: Продовжити логіку ініціалізації НШ мережі. Існує в даний час варіант, який створить монітора нитка мережі, які будуть стежити за станом зв'язку. Коли зв'язок йде вниз, код намагатиметься витончено поставити драйвер Ethernet в натиснутому стані; При посилання повертається, код намагатиметься довести мережу назад.
- ELF. Приклад: тест ELF / приклад був продовжений тому окремі тестові програми ELF можна пов'язати з бібліотекою SYSCALL (якщо він є) або з бібліотекою C, щоб усунути або звести до мінімуму необхідність для таблиць символів
- NxTerm: Змінити всі входження в NxConsole NxTerm .
- MTDRWB. Приклад: Додати приклад для перевірки МПД R / W буферизації
- Приклад випробування ОС: Додати тривіальне випробування sem_timedwait () .
- Конфігурація Додаток / Система збирання:
- Імпорт Мета: (1) Додати логіку, яка дозволить створювати додатки проти експорту пакету NuttX (у порівнянні з nuttx / джерело дерева). (2) Додати файл .config експортувати пакет. (3) Створення додатки / імпорт. Створити додатків / імпорт / Make.defs, що робить речі, як визначення CFLAGS; ELF збірки потрібно -fno-поширеним в CFLAGS. Скопіюйте деяку підставу логіки від nuttx / інструменти / Config.mk до додатків / імпорт / Make.defs. (4) Додати Apps / імпорт / скрипти / GNU-elf.ld скрипт GCC компоновщика для імпорту ELF будує.
- Все make-: (1) Додати мета установки для всіх make-файлів. Для імпорту збірки, на вищому рівні Makefile тепер робить два проходи: (1) будує libapp.a, то (2) встановлює програми в додатках / відро для сміття. (2) Додати програму установки для CONFIG_BUILD_KERNEL у всіх make-файлів, які будують головний (). (3) Для збірки ядра, об'єктний файл, що містить основний () не може йти в бібліотеку, бо в імен. Об'єктний файл повинен бути оброблений як окремий випадок в кожному Makefile.
- Всі вбудовані програми: З збірки ядра (CONFIG_BUILD_KERNEL), точка входу для всіх завдань є основним (), а не якийсь xyz_main () .
- НШ: Деякі команди повинні бути відключені в збірці ядра тому, що вони залежать від інтерфейсів, які не доступні за межами ядра :. Дд, DF, losetup, mkfatfs, mkdr і пс
- додатки / інструменти /: (1) Додати mkimport.sh вибухнути в NuttX імпорт пакет і встановити в додатках / імпорту. (2) Додати mkromfsimg.sh скрипт для створення завантажувального ROMFS образ файлової системи.
- ELF і NxFLAT Приклади :. Не будуйте тестів, які використовують task_create (), якщо є адреса середовища
- Інструменти
- refresh.sh :. Додати інструмент, щоб зробити освіжаючі конфігурації легше, коли ви хочете, щоб зробити багато з них
- mksyscall.c: Створення системних викликів, які не вимагають файли заголовків .
- mkexport.sh :. Додати .config файл для експорту пакету
- додатки / інструменти: Дивіться вище нових додатків / інструменти сценаріїв .
- Зусилля в прогрес. Нижче наведені особливості, які частково реалізовані, але присутні в цьому випуску. Вони не можуть бути завершені найближчим часом.
- Процеси: Більша частина роботи в цьому випуску зосереджено на реалізації користувальницьких процесів Unix-стилю в NuttX. Існує ще належить зробити, однако. Повний план і статус доступний за адресою: http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
- XMEGA: Є деякі фрагменти в місце для XMEGA порт. Цей порт не дійсно почав, однако.
- Галілей: Точно так само, є фрагменти в місці для порту Intel Галілео. Порт не почала всерйоз теж.
- Виправлення. Тільки найкритичніші виправлення, перераховані тут (див змін для повного списку виправлень і додаткових, більш докладної інформації Виправлення):
- Основні ОС:
- Ядро побудувати виправлення: (1) Холостий хід установки УТС необхідно вказати, що IDLE нитка привілейованих, ядро нитку. (2) Не будуйте task_create () або task_spawn () інтерфейси, якщо є адреса середовища. (3) posix_spawn () проксі-ядро нитка повинна бути нитка ядра, що не призначена для користувача завдання.
- Кілька ниток інтерфейси: Додати константних клас зберігання для phthread параметри. З Фредді Шопена.
- Sched / годинник: Видалити залишки g_tickbias; потрібно, замість того, щоб застосовувати зміщення часу, щоб g_basetime для того, щоб забезпечити правильне системний час.
- Системні виклики: (1) Кілька друкарських помилок фіксованою; виправлені інтеграція exevc (), execvl (), posix_spawn (), і posix_spawnp системи () виклики. (2) Якщо ми налаштовані на використання стека ядра, а в обігу SYSCALL, то ми повинні повернутися до стека користувача, щоб доставити сигнал.
- Файлові системи / Блок Драйвери / MTD:
- PROCFS: Зафіксуємо деякий procf поломку введений шляхом реорганізації деякі не reorganizable структури даних. З Кеном Петтіт.
- AT45: В at45db_bwrite (), буфер не збільшується при написанні більше 1 сторінки. Sourceforge помилка # 34.
- Бінарні формати:
- ELF переселення: Деякі види переселення не мають імені символ, пов'язаний з ними. Дизайн не зареєстровані для цього випадку.
- ELF навантажувач :. Критичний Виправлення .. BSS був не очищається
- Управління пам'яттю:
- Гранула розподільник: Зерно ініціалізації розподільник використовує неправильний розподільник для скасування пам'яті ядра .
- привілейованих груп: Додати прапор групової структури: Якщо група створюється потік ядра, то всі ресурси в групі повинно бути привілейованим .
- Підтримка Cryptogrphic:
- крипто / cryptodev.c: сегменти Шлях назад в шляху пошуку файлів. Відзначив Бреннан Ештон.
- Загальні Драйвери:
- Загальні МОЖЕ верхня половина: В can_txdone, офіціанти на семафора повинні бути проінформовані, незалежно від значення, що повертається can_xmit. Спочатку повертає -EIO якщо немає нових пакетів, а по-друге інформація з офіціантів про останню переданої пакета. З Даніелем Ласло Sitzer.
- ARM:
- Системні виклики: Виправлена помилка в системному виклику при вибірці параметра з стека: статути [REG_PC] +4, це адресу, не статути [REG_PC + 4] .
- STMicro STM32 Драйвери:
- STM32 F401 UART: Правильно підтримка USART6 на цьому чіпі. З Фредді Шопена.
- STM32 FLASH фіксує: використовувати size_t замість uint16_t, зробити інтерфейс більш універсальним. З Фредді Шопена.
- STM32 UART :. Виправлення для UART7 і UART8 на STM32 години дати від Атон
- CAN: Наприкінці обробника переривання, переривання були відключені, якщо всі пакети були передані, коли обробник переривання був викликаний. Це проблематично, тому що обробник переривань викликає can_txdone () у верхній половині, які можуть поставити в чергу нові пакети для відправки. Вилучені блок в цілому, тому що can_txdone () викликає can_xmit (), яка відключає переривання, якщо немає нових пакетів для відправки. З Даніелем Ласло Sitzer.
- CAN :. Додаткова STM32 CAN корекція запропонував Макс Holtzberg
- STMicro ST32 плати:
- конфіги / mikroe-stm32f4: Fix кілька компіляції помилок і незначні поправки до джерела конфігурації mikroe-stm32f4. З Кеном Петтіт.
- ARM9 / ARMv7 -
- Системні виклики: Fix ARM7 / 9 і Cortex-A системних викликів: Для потоків в режимі SVC, інструкції SVC переопределяет R14. Це повинно бути враховано в вбудованого асемблера.
- Налаштування Задача: Усі завдання, навіть завдання користувальницького режиму, повинні початися в режимі супервізора, поки вони не пройти повз пускового батуті .
- ARMv7-: Змінити up_fullcontextrestore () для CONFIG_BUILD_KERNEL. Це змінило CPSR в ядрі. Це буде крах, якщо новий CPSR є користувальницький режим під час виконання у просторі ядра. Виправлено шляхом додавання системного виклику SYS_context_restore. Існує альтернатива, простіше модифікація up_fullcontextrestore (), що можна було зробити: Це, можливо, було можливо використовувати SPSR замість CPRSR, а потім зробити виняток повернення з up_fullcontextrestore (). Це було б більш ефективним, але я ніколи не пробував його.
- Atmel SAM3 / 4 плати:
- SAM3X / Arduino Завдяки: Fix опечатка в sam3x_periphclks.h; додати визначення SCLK, щоб board.h файл заголовка. Від Фаб'єн Конта.
- SAM3 RTT: тільки сім'я SAM4 має RTTDIS біт в регістрі MR. SourceForge помилка # 33 з Фаб'єн Конта.
- Бібліотека C:
- sscanf (): NuttX Libc намагався вгадати, скільки символів для розбору, екстрагували їх в буфер, а потім побіг strtol () на цей буфер. Це припущення часто неправильно. Краще було б називати strtol () безпосередньо на вхідних даних, використовуючи значення, що повертається endptr щоб визначити, скільки символів, щоб пропустити після розбору. Від Косми Moczek.
- Math Library :. Виправлено atan2 реалізаціями від Дениса Arnst
- плаваючою точкою Вихід: Перехід в lib_dtoa (), щоб виправити помилку точності від кінцевими нулями. З Бобом Doiron.
- Застосування:
- Команда Fix НШ. PS: Якщо немає аргументів, то вона може друк сміття для списку аргументів
- Конфігурація / Система збирання:
- NULL Приклад: необхідно включити config.h замовити його знати, якщо це є чи не є збірка ядра. Ця проблема все ще існує в ряді інших файлу, може знадобитися визначити основний ().
Передача
Що нового у версії 7.8:
- Особливості: Додаткові нові можливості і розширена функціональність:
- Основні ОС:
- Сторожовий таймер Розподіл: (1) Якщо ми запустимо з попередньо виділено час сторожового, логіка тепер виділити додаткові таймери з купи. Запас заздалегідь виділено таймерів сторожового підтримується, так що завжди буде таймери, доступні для обробників переривань. (2) Додана підтримка для статично розміщену сторожовий таймер
- Адреса середовища підтримки: (2) Нові OS API, інтегрований в усі конкретної платформи перемикання контексту логіка (up_block_task (), () up_unblock_task, _exit () та інші) .
- Ядро будувати підтримка: (1) MPU основі і Quot; збірка ядра і Quot; перейменований в захищеному збірки (CONFIG_BUILD_PROTECTED); додана підтримка нового ММУ основі і Quot; збірка ядра і Quot; (CONFIG_BUILD_KERNEL), (2) бібліотеки системних викликів тепер можуть бути побудовані з CONFIG_NUTTX_KERNEL. Новий вибір * :. CONFIG_LIB_SYSCALL
- Запуск системи: Додати параметри конфігурації для запуску системи з програми в файлової системі (в порівнянні з адресою в пам'яті) .
- Введення в експлуатацію Параметр: Там використовувалися два способи передачі параметрів до нових завдань, залежно від конфігурації: або (1) ARGV [], створену у вигляді масиву з кожного рядка strdup'ed. Або (2) ARGV [] були створені масиву і рядків у стеці перед запуском нової завданням. Тепер є тільки один шлях, шлях (2). Шлях (1), може бути трохи більш компактний, але це не варто носити складності двох різних способів робити те ж саме.
- Рада ініціалізації: Додати можливість виконати початкову ініціалізацію плати на окремому робочому потоці. Це необхідно, тому що є багато випадків, коли логіка ініціалізації не може виконати на запуск / холостий нитки. Це тому, що блокування або очікування не вирішується на IDLE нитки.
- Управління пам'яттю:
- Гранула розподільник: (1) Додати нову функцію резерву ООН-ALLOCATABLE регіони гранул купу. (2) Додати інтерфейси для підтримки не-ініціалізації гранул розподільник.
- Сторінка розподільник: Додати просту фізичну сторінку розподільник на основі існуючої NuttX гранул розподільника. Я не впевнений, якщо гранули розподільник достатньо детермінованим для тривалого використання діапазону, але він отримує отримати сторінку розподільник на місце для перевірки дуже швидко.
- Видаліть CONFIG_MM_MULTIHEAP: Чи не multiheap операція більше не підтримується .
- sbrk () :. Sbrk () тепер підтримується в збірці ядра, щоб дозволити динамічно розміру, за-процесу купи
- для кожного процесу Кучи: пробіл на початку простору даних процесу в даний час зарезервовані для структур управління користувачами купи. У режимі побудови ядра, ці купи структури розділені між кодом ядра і використовувати для того, щоб виділити дані користувача.
- Користувач Купа управління: Коли привілейовані виходить нитка, ми повинні використовувати розподільник ядра до вільної пам'яті; Коли непривілейованих виходить нитка, ми не повинні робити нічого, ... купа пам'яті буде очищений, коли адреса середовища знесені.
- межпроцессной Підтримка Спільна пам'ять: (1) Додати впровадження та документації для shmget (), shmctl (), Shmat (), і shmdt (). (2) Додати Система закликає підтримати ворота виклику користувачеві загальних інтерфейсів пам'яті. (3) Додати конкретної платформи визначення інтерфейсу, необхідні для підтримки спільної пам'яті.
- Віртуальний розподільник Сторінка: Додати підтримку для віртуального сторінку розподільника на процесі. Це новий член task_group_s структури. Розподільник слід буде почати, коли новий користувальницький процес запускається і Uninitialize, коли група процес остаточно зруйнований. Він використовується Shmat () і () shmdt вибрати віртуальний адресу, на яку зіставити загальну фізичну пам'ять.
- Файлові системи / Блок Драйвери / MTD:
- SMART FS: SMART FS і FS SMART PROCFS оновлення від Кена Петтіт .
- MTD :. З'являється МТД Читайте вперед / Написати буферний шар тепер функціонал
- Бінарні формати:
- Пер-процесу купчастого :. Додати логіку для ініціалізації користувача купу кожного процесу, коли кожен користувальницький процес запускається
- Графіка:
- NxTerm: Змінити всі входження в NxConsole NxTerm .
- Мережа:
- PHY Переривання: (1) Стандартизація інтерфейсу кріплення PHY переривання. (2) Додати підтримку для IOCTL, які можуть бути використані, щоб повідомити додаток, коли відбувається зміна в статусі мережі сигнализируется PHY переривання.
- Покращена Відправити Логіка: У минулому, перший пакет відправити новий мережевий однолітків провалиться; не було б ніякого запису в таблиці ARP для однолітків і так запит ARP може замінити цей перший пакет. Тепер в якості опції, якщо CONFIG_NET_ARP_SEND = у, все відправити логіка (1) перевірити, якщо однолітків MAC-адресу в таблиці ARP і, якщо ні, (2) періодично відправляти ARP запити, щоб отримати відображення і (3) почекати ARP відгук. Тоді (4), коли відповідь буде отримана ARP, то фактичне логіка відправки буде ініційовано. Таким чином, може бути затримка з першого переданого пакета в новий вузол, але пакет не повинен бути втрачений
- Хост Моделювання:
- SPI FLASH драйвера :. Емуляція SPI FLASH Драйвер для сім-мішені від Кена Петтіт
- Intel x86:
- За умовчанням Ведучий: господар замовчуванням тепер x86_64 і варіант -m32 буде автоматично вибрано для моделювання будує .
- Intel 8051 Сімейство:
- 8051 Вилучений: Вилучені всі підтримку архітектурі сімейства з вихідного дерева NuttX 8051. Застарів код разом з видалення патча тепер можна знайти на різнобічного / застарілих /. Цей код був видалений, тому що (1), хоча деякі функції було продемонстровано, що я не в курсі будь-яких дійсно успішних портів NuttX в будь 8051, і (2) 8051, з апаратним стеком, змушує обмеження і ускладнення на інші архітектури і зробити зростання і розвиток NuttX складніше.
- ZiLOG ZNeo плати:
- конфіги / 16Z: Підтримка для цієї плати була видалена з дерева вихідних NuttX (але все ще можна знайти в різнобічного / Зняті каталозі). Цей порт не готовий для використання, але може повернутися в NuttX дерева в якийсь момент в майбутньому.
- Atmel SAM3 / 4 плати:
- SAM4E-ЕК :. Додати (1) повністю функціональний ILI9341 основі РК-водія і (2) повністю функціональну конфігурацію NxWM
- ARMv7 -
- Адреса середовища: Додана підтримка адресних програм середовищах, що використовують Cortex-A MMU. Реалізація стандартних конкретної платформи інтерфейси NuttX підтримки адреса навколишнього середовища.
- Операції кеша: Реалізація стандартних, специфічні для платформи операції кеша. Вони викликаються з ELF завантажувач для того, щоб позбутися D-кеш і недійсним I-кеш після модуль ELF був завантажений в пам'ять. З цією зміною, ELF модулі коректно працювати на SAMA5 / Cortex-платформі.
- Ядро Статура: (1) Додати реалізацій воріт системних викликів. (2) Додати crt0 запуску файлу, який може бути пов'язаний з окремо збудованих користувача програм. (3) Додати підтримку для доставки сигналів використання режиму в збірці ядра. (4) Додати логіку для ініціалізації користувача купу кожного процесу, коли кожен користувальницький процес запускається. (5) ARMv7-обробка виключень повинен працювати трохи по-іншому, якщо ми підтримуємо процеси користувальницького режиму. Це відбувається тому, R13 і R14 мають вивантажується різному між користувачем і режимі SVC.
- Загальна підтримка Пам'ять: (1) Додати логіку, необхідну для обробки перепризначення розділяється пам'яті на перемикань контексту. (2) Розширення віртуальних / фізичних адрес переходів включити адреси в загальній пам'яті. (3) Додати реалізацію конкретної платформи загальної підтримки пам'яті.
- Atmel SAMA5D Драйвери:
- Мережа IOCTLs :. Реалізувати всі мережі IOCTLs, у тому числі нового IOCTL повідомлень, налаштування PHY подій
- Адреса Перетворення :. В ядро будувати з адресною середовища, повинні логіку користувальницької карти віртуальних адрес у фізичні адреси і навпаки
- Atmel SAMA5D плати:
- SAMA5D3 Xplained, SAMA5D3-ЕК, і SAMA5D4-ЕК: Перетворення існуючих інтерфейсів дошка конкретних PHY переривань використовувати тільки що певний стандартний інтерфейс .
- SAMA5D4-ЕК: Додати конфігурацію для тестування конфігурації збірки ядра. Є конфігурації для завантажитися або з SD-карти або з і в пам'яті ROMFS файлової системи.
- SAMA5D4-ЕК: Додати документації / підтримку Ред Е. борту .
- STMicro STM32 Драйвери:
- Ethernet: Модифікована підтримати зміни до мережевих змін IOCTL підпису. Крім того, додати підтримку нового IOCTL в повідомлень про події установки PHY.
- STMicro STM32 плати:
- STM32F4Discovery з STM32F4DIS-BB: Додати мережу включена конфігурація НШ для плати STM32F4Discovery з базовою платі STM32F4DIS-BB встановлений. Включає в себе підтримку для слота MicroSD-карти на основній платі STM32F4DIS-BB.
- TI Тива Драйвери:
- TI CC3200: Додати підтримку для CC3200 TI. З Джимом Юінга.
- TI Тива плати:
- TI CC3200 Launchpad: Додана підтримка для TI CC3200 Launchpad. З Джимом Юінга.
- Бібліотека C:
- Опитування () :. Re-реалізовані опитування () Затримка використання sem_timedwait ()
- Конфігурація / Система збирання:
- Експорт Мета: У ядрі або захищені будує, (1) тільки користувальницькі бібліотеки повинні бути експортовані, (2) не копіювати внутрішні файли заголовків або побудувати сценарії, якщо це ядро або захищені збірки, і (3) потреби укутати файл запуску користувач C (crt0), а не об'єкт голову ядра для ядра і захищені будує.
- Програма CFLAGS: Додати логіку, який дозволить нам будувати користувацькі бібліотеки з різними CFLAGS, ніж коду ядра. Це необхідно, тому що ми потребуємо -fno-спільний варіант, коли будівництво ELF код, щоб запобігти SHN_COMMON переселення.
- Застосування:
- НШ: Продовжити логіку ініціалізації НШ мережі. Існує в даний час варіант, який створить монітора нитка мережі, які будуть стежити за станом зв'язку. Коли зв'язок йде вниз, код намагатиметься витончено поставити драйвер Ethernet в натиснутому стані; При посилання повертається, код намагатиметься довести мережу назад.
- ELF. Приклад: тест ELF / приклад був продовжений тому окремі тестові програми ELF можна пов'язати з бібліотекою SYSCALL (якщо він є) або з бібліотекою C, щоб усунути або звести до мінімуму необхідність для таблиць символів
- NxTerm: Змінити всі входження в NxConsole NxTerm .
- MTDRWB. Приклад: Додати приклад для перевірки МПД R / W буферизації
- Приклад випробування ОС: Додати тривіальне випробування sem_timedwait () .
- Інструменти
- Інструменти
- Інструменти
- Інструменти
- Виправлення:
Передача
Коментар не знайдено