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 нити. Это потому, что блокирования или ожидание не разрешается на 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-драйвера:. Эмуляция 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-A:
  • Адрес среды: Добавлена ​​поддержка адресных приложений средах, использующих Cortex-A MMU. Реализация стандартных конкретной платформы интерфейсы NuttX поддержки адрес окружающей среды.
  • Операции кэша: Реализовать стандартизированные платформы конкретных операций кэша. Они вызываются из ELF загрузчик для того, чтобы избавиться D-кэш и недействительным I-кэш после модуль ELF был загружен в память. С этим изменением, ELF модули корректно работать на SAMA5 / Cortex-A платформы.
  • Ядро Телосложение: (1) Добавить реализаций ворот системных вызовов. (2) Добавить crt0 запуска файла, который может быть связан с отдельно построенных пользовательских программ. (3) Добавить поддержку для доставки сигналов использование режима в сборке ядра. (4) Добавить логику для инициализации пользователя кучу каждого процесса, когда каждый пользовательский процесс запускается. (5) ARMv7-A обработка исключений должен работать немного по-другому, если мы поддерживаем процессы пользовательского режима. Это происходит потому, 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 строит.
  • Все файлы Makefile: (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) Холостой ход установки УТС необходимо указать, что холостой нить является привилегированным, ядро ​​нить. (2) Не стройте task_create () или task_spawn () интерфейсы, если есть адрес среды. (3) posix_spawn () прокси-ядро нить должна быть нить ядра, а не пользовательская задача.
  • Несколько нитей интерфейсы: Добавить константный класс хранения для phthread параметры. С Фредди Шопена.
  • Плановое / часы: Удалить остатки 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-A:
  • Системные вызовы: Fix ARM7 / 9 и Cortex-A системных вызовов: Для потоков в режиме SVC, инструкции SVC переопределяет R14. Это должно быть принято во внимание в встроенного ассемблера.
  • Настройка Задача: Все задачи, даже задачи пользовательского режима, должны начаться в режиме супервизора, пока они не пройти мимо пускового батуте
  • .
  • ARMv7-A: Изменить 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 нити. Это потому, что блокирования или ожидание не разрешается на 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-драйвера:. Эмуляция 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-A:
  • Адрес среды: Добавлена ​​поддержка адресных приложений средах, использующих Cortex-A MMU. Реализация стандартных конкретной платформы интерфейсы NuttX поддержки адрес окружающей среды.
  • Операции кэша: Реализовать стандартизированные платформы конкретных операций кэша. Они вызываются из ELF загрузчик для того, чтобы избавиться D-кэш и недействительным I-кэш после модуль ELF был загружен в память. С этим изменением, ELF модули корректно работать на SAMA5 / Cortex-A платформы.
  • Ядро Телосложение: (1) Добавить реализаций ворот системных вызовов. (2) Добавить crt0 запуска файла, который может быть связан с отдельно построенных пользовательских программ. (3) Добавить поддержку для доставки сигналов использование режима в сборке ядра. (4) Добавить логику для инициализации пользователя кучу каждого процесса, когда каждый пользовательский процесс запускается. (5) ARMv7-A обработка исключений должен работать немного по-другому, если мы поддерживаем процессы пользовательского режима. Это происходит потому, 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 / дерева исходных текстов).
  • Инструменты








  • Применение:

  • Файловые системы:
  • Сеть:
  • Графика:





  • Библиотека



  • Применение:


  • Сеть:
  • Файловые системы:

  • Графика:


  • Библиотека


  • Применение:

  • Файловые системы:







  • Применение:


  • Инструменты

  • Файловые системы:


  • Инструменты
  • Применение:




  • Файловые системы:






  • Применение:

  • Build System:







  • Build System:
  • Применение:







  • Применение:

  • Файловые системы:






  • Применение:












































  • Файловая система:

  • Драйверы:




  • Сеть:
  • Графика:
  • Build System:



  • Инструменты
  • Применение:


  • Драйверы:

  • Файловые системы:
  • Сеть:




















  • Применение:
  • Исправления:






































  • Элемент
































































Похожие программы

BoxmaX.S3.5
BoxmaX.S3.5

15 Apr 15

NDT GINGER
NDT GINGER

15 Apr 15

Boxmax Ds
Boxmax Ds

14 Apr 15

Комментарии к NuttX

Комментарии не найдены
добавить комментарий
Включите картинки!