NuttX - NuttX

NuttX
NuttX logo.png
NuttX логотипі
ӘзірлеушіГрегори Нут
ЖазылғанC, C ++, құрастыру
ОЖ отбасыНақты уақыттағы операциялық жүйелер
Жұмыс жағдайыАғымдағы
Дереккөз моделіАшық ақпарат көзі
Бастапқы шығарылым2007; 13 жыл бұрын (2007)
Соңғы шығарылым10.0 / 2020 ж. 3 желтоқсан; 5 күн бұрын (2020-12-03) [1]
Маркетингтің мақсатыКіріктірілген жүйелер
ПлатформаларҚОЛ, AVR, AVR32, HCS12, LM32, MIPS, RISC-V, SuperH, Xtensa LX6, x86, x86-64, Z80
Ядро түріШынайы уақыт Микро ядролы
ЛицензияApache лицензиясы 2.0
Ресми сайтnuttx.apache.org

NuttX Бұл нақты уақыттағы операциялық жүйе (RTOS ) екпінімен техникалық стандарттар сәйкестік және шағын өлшем. Бастап масштабталатын 8 бит дейін 64 бит микроконтроллер қоршаған орта, NuttX-тің негізгі стандарттары келесіден тұрады Портативті операциялық жүйенің интерфейсі (POSIX ) және Американдық ұлттық стандарттар институты (ANSI). Қосымша стандарт бағдарламалық интерфейстер (API) Unix және басқа да жалпы RTOS (мысалы VxWorks ) осы стандарттар бойынша қол жетімсіз немесе терең ендірілген ортаға сәйкес келмейтін функциялар үшін қабылданады, мысалы шанышқы.

NuttX алғаш рет 2007 жылы Gregory Nutt шығарды ақысыз және бастапқы көзі ашық бағдарламалық жасақтама рұқсат етілген BSD лицензиясы. Қазіргі уақытта ол инкубациядан өтіп жатыр Apache бағдарламалық қамтамасыздандыру қоры.

Іске асыру

NuttX тек қана бағдарламалау тілінде жазылған C және қолданады Kconfig GNU теңшеу және құру файлдар жүйе үшін. Бағдарламаның таралуы ядро және айтарлықтай мөлшері орта бағдарламалық жасақтама және тақтаны қолдау коды және құрылғы драйверлері. Ядро және басқа кодтардың көпшілігін түпнұсқа авторы Грегори Нут жазған. Ол қолдайды бастапқы код тек қана және қоғамдастықтың барлық жарналарын мақұлдауы керек.

Басты ерекшеліктер

  • Стандарттарға сәйкес келеді
  • Тапсырмаларды басқару
    • Тапсырмаларды басқару
    • Процестер (Міндетті емес)
    • POSIX / ANSI тәрізді тапсырмаларды басқару элементтері
  • Модульдік дизайн
  • Толық алдын ала
  • Әрине, ауқымды
  • Жоғары конфигурацияланған
  • Процессордың жаңа сәулетіне, SoC сәулетіне немесе тақта архитектурасына оңай кеңейеді
  • Жоспарлаушылар
  • Шынайы уақыт, детерминирленген, басым мұрагерлікті қолдайтын
  • Кенесіз операция
  • IPC
  • POSIX ағындары (pthreads),
  • Бірнеше файлдық жүйелер[қайсы? ]
  • VxWorks - тапсырмаларды басқару және қарауыл таймерлері сияқты
  • BSD ұя интерфейсі
  • Алдын алуды басқаруға арналған кеңейтімдер
  • Симметриялық мультипроцесс (SMP)
  • Жүктелетін ядро ​​модульдері
  • Жад конфигурациясы
    1. жалпақ ендірілген құрылыс
    2. MPU көмегімен қорғалған құрылым
    3. MMU көмегімен ядро ​​құрастыру
  • Жад бөлгіштер
    1. стандартты үйінді жадыны бөлу
    2. түйіршік бөлгіш
    3. ортақ жады
    4. динамикалық өлшемді, бір процеске арналған үйінділер
  • Жергілікті жад (TLS)
  • Тұқым қуалаушылық бақылау терминалдары, псевдотерминалдар (PTY) және кіріс шығыс (I / O) қайта бағыттау
  • Сұраныс бойынша пейджинг
  • Жүйені тіркеу
  • Ашық, жалпақ ендірілген RTOS ретінде немесе жүйенің шақыру қақпасының интерфейсі бар бөлек құрастырылған, қауіпсіз ядросы ретінде салынуы мүмкін
  • Орнатылған, бір ағынға арналған CPU жүктемесін өлшеу
  • Custom NuttX C стандартты кітапхана

Қолдау көрсетілетін платформалар

  • ҚОЛ
    • ARM7 TDMI (TI TMS320 C6571, Calypso, MoxART, NXP LPC214x, LPC2378, STMicro STR71x)
    • ARM9 20T (Freescale i.MX1)
    • ARM9 26EJS (TI DM320, NXP LPC31xx)
    • ARM Cortex-A 5 (Atmel SAMA5D2, SAMA5D3, SAMA5D4)
    • ARM Cortex-A 8 (Allwinner A10)
    • ARM Cortex-A 9 (NXP / Freescale i.MX6)
    • ARM Cortex-R 4 / R4F (TI TMS570, Samsung Artik)
    • ARM Cortex-M 0 (nuvoTon: NUC120, NXP: KL25Z, KL26Z, LPC11xx, Atmel: SAMD20 / 21, SAML21, ST Micro STM32 F0)
    • ARM Cortex-M 3 (ST Micro STM32 F1 / F2 / L1, TI / Stellaris LM3S, NXP LPC17xx, Atmel SAM3U / 3X, SiliconLabs EFM32)
    • ARM Cortex-M 4 (өзгермелі нүктелік қондырғымен / онсыз: ST Micro STM32 F3 / F4 / L4 / L4 +, TI / Stellaris LM4F / TM4C, NXP LPC43xx / LPC54xx, Freescale Kinetis K20 / K28 / K40 / 60/64/66, Atmel SAM4C / 4E / 4S / 4L, Infineon XMC4xxx, Nordic NRF52xxx, Sony CXD5602 / Spresense[2])
    • ARM Cortex-M 7 (Atmel SAMV71 / SAME70, ST Micro STM32 F7 / H7, NXP i.MX RT)
  • Atmel AVR
    • Atmel 8-биттік AVR (AT90USB, ATmega)
    • AVR32
  • Фрешкальді M68HCS12
  • Intel
  • MIPS
    • MicroChip PIC32MX (MIPS32 24Kc)
    • MicroChip PIC32MZ (MIPS32 M14k)
  • Misoc
    • LM32 (Qemu)
  • OpenRISC
    • mor1kx
  • Renesas / Hitachi
    • Renesas / Hitachi SuperH
    • Renesas M16C / 26
  • RISC-V
    • NEXT RISC-V NR5Mxx (RV32IM)
    • GreenWaves GAP8 (RV32IM)
  • Xtensa LX6
    • Expressif ESP32
  • Зилог

Файлдық жүйе

  • Кішкентай жадтағы, түбірлік псевдо-файлдық жүйе
  • Виртуалды файлдық жүйе (VFS)
  • Орнатылатын көлемдер. Бекіту нүктесін, файлдық жүйені және блоктық құрылғы драйверін байланыстырыңыз
  • Жалпы жүйелік тіркеуді қолдау (SYSLOG)
  • Файлдарды бөлу кестесі (FAT) 12/16/32 файлдық жүйені қолдау
  • Желілік файлдық жүйе (NFS) клиент, NFS қолдайды, 3 нұсқасы, UDP
  • NXFFS: кішкене тозуды тегістейтін құрал жедел жад файлдық жүйе
  • SMART: флэш-файл жүйесі, Ken Pettit
  • SPI негізіндегі карталардың жалпы драйвері: MultiMediaCard (MMC) және Secure Digital (SD / SDHC)
  • Ромфтар файлдық жүйені қолдау
  • BINFS псевдо-файлдық жүйені қолдау
  • HOSTFS файлдық жүйесін қолдау (тек модельдеу)
  • Union файлдық жүйесі: файлдық жүйелерді біріктіруді және қабаттастыруды қолдайды
  • PROCFS (/ proc) жалған файлдық жүйесі
  • Мына форматтарды қолдайтын екілік жүктеуші:
  • PATH айнымалы қолдау
  • TFTP және FTP арқылы файлдарды тасымалдау (алу және қою), HTML (wget) және Zmodem (sz және rz)
  • Intel HEX конверсиялары

Құрылғы драйверлері

  • VFS таңба және блок драйверлерін қолдайды
  • Асинхронды енгізу / шығару (AIO)
  • Желі, USB флеш (хост), USB (құрылғы), сериялық, I2C, I2S, NAND, контроллердің аймақтық желісі (CAN автобусы ), ADC, DAC, PWM, Quadrature Encoder және timer драйверінің архитектуралары
  • ЖЖҚ дискісі немесе диск, құбырлар, FIFO, / dev / null, / dev / zero драйверлері
  • SPI негізіндегі немесе SDIO негізіндегі MMC / SD / SDH карталарына арналған жалпы драйвер
  • Қуатты басқарудың ішкі жүйесі
  • Модбус FreeModBus 1.5.0 нұсқасымен қамтамасыз етілген қолдау
  • Графикалық құрылғылар: фрейм-буфер драйверлер, графикалық және сегменттік LCD драйверлер
  • Аудио ішкі жүйе: Кодектер, аудио кіріс және шығыс драйверлері. Пәрмен жолы және медиа ойнатқыштың графикалық қосымшалары
  • Криптографиялық ішкі жүйе
  • Кіріс құрылғылары: сенсорлық экран, USB пернетақтасы, USB тінтуірі, GPIO негізіндегі түймелер және пернетақта
  • Жад технологиясы құрылғылары
  • Аналогты құрылғылар: қолдау аналогты-сандық түрлендіргіш (ADC), аналогты цифрлық түрлендіргіш (DAC), мультиплексорлар және күшейткіштер
  • Жүйені тіркеу құрылғылары
  • Тасымалдау бойынша нұсқаулық[3]

C / C ++ кітапханасы

Желі

NuttX құрамына кіретін желілік стек алынған uIP (микро IP), бастапқыда Адам Данкельс.

Flash қолдау

USB қолдау

Хост

  • USB хост контроллері драйверлеріне және құрылғыға тәуелді USB класс драйверлеріне арналған USB хост архитектурасы.
  • Atmel SAMA5Dx, NXP LPC17xx, LPC31xx және STmicro STM32 үшін қол жетімді USB хост контроллері драйверлері.
  • Құрылғыға тәуелді USB класс драйверлері USB жадында және HID пернетақтасында қол жетімді.
  • USB концентраторлары үшін жіксіз қолдау.

Құрылғы

  • USB құрылғысының контроллері драйверлеріне және құрылғыға тәуелді USB класс драйверлеріне арналған гаджетке ұқсас архитектура
  • PIC32, Atmel AVR, SAM3, SAM4 және SAMA5Dx, NXP LPC17xx, LPC214x, LPC313x және LPC43xx, Silicon Laboraties EFM32, STMicro STM32 F1, F2, F3, F4 және TI3 үшін қол жетімді USB құрылғысы контроллері драйверлері.
  • Құрылғыға тәуелді USB класс драйверлері USB сериялық және USB жадында қол жетімді
  • USB күйін келтіру үшін кіріктірілген USB қадағалау функциясы

Графикалық қолдау

  • Фреймбуфер жүргізушілер
  • Сұйық-кристалды дисплей (LCD) драйверлер параллель де, SPI де LCD үшін және органикалық жарық шығаратын диод үшін (OLED )
  • СКД драйверлерін сегментациялау
  • VNC сервері
  • NX Graphics ішкі жүйесі: кадрлық буфер немесе LCD драйверлерімен жұмыс жасайтын графикалық кітапхана, терезе жүйесі және қаріпті қолдау.
  • NuttX виджеттері:[6] A графикалық интерфейс (GUI) консервативті түрде жазылған C ++ NX графикасымен біріктірілген
  • NuttX терезе менеджері:[7] кішкентай, NX графикалық ішкі жүйесіне және NuttX виджеттеріне негізделген

NuttX қолданатын жобалар

  • Тингси Интернет заттары (IoT) әзірлеуші ​​құрылғы.[8]
  • PX4 автопилоты әртүрлі автономды платформаларды басқару үшін NuttX пайдаланады.[9]
  • Biffer Board көптеген RTOS қолдайды, соның ішінде NuttX.[10]
  • MP3 ойыншы NuttX-пен іске асырылды.[11]
  • OsmocomBB ұялы телефондарға арналған операциялық жүйені жасау үшін NuttX пайдаланады.[12]
  • NuttX көмегімен іске асырылатын сыммен басқарылатын үй жүйесі.[13]
  • Бейне өнімділігін өлшеу құрылғысы.[14]
  • NuttX RTOS үшін төмен қуатты енгізілген бағдарламалық жасақтаманы оңтайландыру.[15]
  • Motorola Moto Z.[16][17]
  • Sony өзінің аудио процессорларында NuttX пайдаланады.[18]
  • Samsung NuttX RTOS негізінде TizenRT туралы хабарлайды.[19]

Әдебиеттер тізімі

  1. ^ «NuttX-10.0 шығарылды». Алынған 2020-02-17.
  2. ^ «Spresense көп ядролы және қуат тиімділігін біріктіреді». Алынған 5 қыркүйек, 2019.
  3. ^ «Портативті нұсқаулық». Алынған 22 қараша 2012.
  4. ^ «uClibc ++». Алынған 22 қараша 2012.
  5. ^ «cJSON». Алынған 22 қараша 2012.
  6. ^ «NuttX виджеттері». Алынған 22 қараша 2012.
  7. ^ «NxWM». Алынған 22 қараша 2012.
  8. ^ «Thingsee». Алынған 27 шілде 2015.
  9. ^ «Автопилот PX4». Алынған 3 мамыр 2013.
  10. ^ «Бифферборд». Алынған 22 қараша 2012.
  11. ^ «Детрон тақтасында MP3 ойнататын Nuttx». Алынған 22 қараша 2012.
  12. ^ «OsmocomBB». Алынған 22 қараша 2012.
  13. ^ «Үйде қайнатылатын сымдар жүйесі». Алынған 22 қараша 2012.
  14. ^ «Бейне өнімділігін өлшеуге арналған ішкі жүйені жобалау. Петтери Аймоненнің магистрлік диссертациясы» (PDF). Алынған 22 шілде 2014.
  15. ^ «NuttX RTOS үшін төмен қуатты енгізілген бағдарламалық жасақтаманы оңтайландыру. Диего Санчес Лопестің электр техникасын бітіру монографиясы» (PDF). Алынған 12 шілде 2015.
  16. ^ «Moto Mods микробағдарламасы: шолу». Алынған 28 желтоқсан 2016.
  17. ^ «Modul Moto Z Android телефоны DIY және RPi HAT қондырмаларын қолдайды». Алынған 22 тамыз 2016.
  18. ^ «Cortex-M3 / NuttX / C ++ 11 көмегімен аудио өнімдерді әзірлеу» (PDF). Архивтелген түпнұсқа (PDF) 20 қаңтар 2017 ж. Алынған 20 қаңтар 2017.
  19. ^ «Tizen RT». Алынған 21 ақпан 2017.

Сыртқы сілтемелер