NuttX

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

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









































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




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
























































































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


























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






































































































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

MenuetOS
MenuetOS

20 Feb 15

Nucle-DOS
Nucle-DOS

17 Feb 15

NuttX

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