NuttX

Скріншот програми:
NuttX
Дані програми:
Версія: 7.9 оновлений
Дата завантаження: 10 May 15
Розробник: Gregory Nutt
Ліцензія: Безкоштовно
Популярність: 115

Rating: 4.0/5 (Total Votes: 1)

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 ()
  • .
  • Інструменти









































  • Інструменти




  • Інструменти
























































































  • Інструменти


























  • Виправлення:






































































































Схожі програми

Cloudium OS
Cloudium OS

20 Feb 15

OpenNAS
OpenNAS

17 Feb 15

FreeDOS
FreeDOS

11 May 15

TOMOYO Linux
TOMOYO Linux

11 May 15

NuttX

Коментар не знайдено
додати коментар
Включіть картинки!
Пошук за категоріями