ThreadX


De Wikipedia, la enciclopedia libre
  (Redirigido desde Express Logic )
Saltar a navegación Saltar a búsqueda

Azure RTOS ThreadX es una, altamente determinista incrustado sistema operativo en tiempo real (RTOS) programada sobre todo en el lenguaje C .

Descripción general

ThreadX fue desarrollado y comercializado originalmente por Express Logic de San Diego, California , Estados Unidos. El autor de ThreadX (y el autor original de Nucleus RTOS en 1990) es William Lamie, [2] quien también fue presidente y director ejecutivo de Express Logic.

Microsoft compró Express Logic por una suma no revelada el 18 de abril de 2019. [3]

El nombre ThreadX se deriva de los hilos que se utilizan como elementos ejecutables, y la letra X representa el cambio de contexto , es decir, cambia los hilos. ThreadX proporciona funciones de programación preventiva basada en prioridades, respuesta rápida a interrupciones , gestión de memoria , comunicación entre subprocesos, exclusión mutua , notificación de eventos y sincronización de subprocesos . Las principales características tecnológicas distintivas de ThreadX incluyen umbral de preferencia , herencia de prioridad , gestión eficiente del temporizador, temporizadores de software rápidos, diseño de picokernel , encadenamiento de eventos y tamaño pequeño: tamaño mínimo en unEl procesador de arquitectura ARM tiene aproximadamente 2 KB.

ThreadX admite entornos de procesadores de múltiples núcleos mediante multiprocesamiento asimétrico (AMP) o multiprocesamiento simétrico (SMP). El aislamiento de subprocesos de aplicación con protección de memoria de unidad de gestión de memoria (MMU) o unidad de protección de memoria (MPU) está disponible con los módulos ThreadX.

ThreadX cuenta con amplias certificaciones de seguridad de Technischer Überwachungsverein (TÜV, inglés: Technical Inspection Association) y UL (anteriormente Underwriters Laboratories) y cumple con MISRA C de la Asociación de confiabilidad de software de la industria del motor .

ThreadX es la base de la plataforma X-Ware de Internet de las cosas (IoT) de Express Logic , que también incluye compatibilidad con el sistema de archivos integrado (FileX), compatibilidad con la interfaz de usuario integrada (GUIX), conjunto de protocolos de Internet integrado (TCP / IP) y conectividad en la nube (NetX). / NetX Duo) y compatibilidad con bus serie universal ( USB ) (USBX). ThreadX ha ganado una alta valoración por parte de los desarrolladores y es un RTOS muy popular. [4] A partir de 2017 , según la firma de investigación de mercados VDC Research, ThreadX RTOS se ha convertido en uno de los RTOS más populares del mundo, habiéndose implementado en más de 6.2 mil millones de dispositivos, incluidos productos electrónicos de consumo, dispositivos médicos, aplicaciones de redes de datos, y SoC. [5]

ThreadX se distribuye mediante un modelo de marketing en el que se proporciona el código fuente y las licencias son libres de regalías .

Plataformas compatibles

  • Dispositivos analógicos
    • Blackfin
    • CM4xx
    • Microcontroladores de precisión
    • SHARC
    • Microcontroladores ULP
  • Andes
    • RISC-V
  • BRAZO
    • ARM7
    • ARM9
    • BRAZO Cortex-A
    • BRAZO Cortex-R
    • BRAZO Cortex-M
    • ARM Cortex-A de 64 bits
    • TrustZone de ARMv8M
  • Cadencia
    • Xtensa
  • CEVA
    • TeakLite-III
  • eSi-RISC
    • eSi-16x0
    • eSi-32x0
  • Infineon
    • XMC1000
    • XMC4000
  • Intel
    • Nios II
    • Ciclón
    • Arria 10
    • x86
  • Pastilla
    • AVR32
    • PIC24
    • dsPIC33
    • PIC32
    • SAM CV
    • SAM9
    • SAMA5
  • MIPS
    • MIPS32 4Kx
    • MIPS32 14Kx
    • MIPS32 24Kx
    • MIPS32 34Kx
    • MIPS32 74Kx
    • MIPS32 1004Kx
    • interAptiv
    • microAptiv
    • proAptiv
    • Clase M
  • NXP
    • ColdFire + / ColdFire
    • i.MX
    • Kinetis
    • LPC
    • PowerPC
    • S32
  • Renesas
    • H8 / 300H
    • RX
    • RZ
    • SH
    • Sinergia
    • V850
  • S T
    • STM32F0
    • STM32F1
    • STM32F2
    • STM32F3
    • STM32F4
    • STM32F7
    • STM32L
  • Laboratorios de silicio
    • Geco
    • Gecko gigante
    • Gecko gigante S1
    • Feliz, gecko
    • Jade Gecko
    • Leopardo, gecko
    • Perla Gecko
    • Pequeño gecko
    • Wonder Gecko
    • Zero Gecko
  • ARCO
    • ARCO 600
    • ARCO 700
    • ARCO EM
    • ARC HS
  • Instrumentos Texas
    • C674x
    • C64x +
    • Hércules
    • MSP430
    • SimpleLink MSP432
    • Sitara
    • Tiva-C
  • Xilinx
    • Microblaze
    • Zynq-7000
    • Zynq UltraScale +

Historia

ThreadX se introdujo por primera vez en 1997. ThreadX 4 se introdujo en 2001. ThreadX 5 se introdujo en 2005 y es la última versión de 2020 .

FileX: el sistema de archivos integrado para ThreadX se introdujo en 1999.

NetX: la pila de red TCP / IP integrada para ThreadX se introdujo en 2002.

USBX: el soporte USB integrado para ThreadX se introdujo en 2004.

ThreadX SMP para entornos SMP de varios núcleos se introdujo en 2009.

Los módulos ThreadX se introdujeron en 2011.

ThreadX obtuvo certificaciones de seguridad para: TÜV IEC 61508 en 2013 y UL 60730 en 2014.

GUIX: la interfaz de usuario integrada para ThreadX se introdujo en 2014.

Microsoft compró Express Logic por una suma no revelada el 18 de abril de 2019. [3]

Tecnología

ThreadX implementa un algoritmo de programación preventiva basado en prioridades con una característica patentada llamada umbral de preferencia. Se ha demostrado que este último proporciona una mayor granularidad dentro de las secciones críticas, reduce los cambios de contexto y ha sido objeto de investigación académica sobre cómo garantizar la programación. [6]

ThreadX proporciona una construcción única llamada encadenamiento de eventos, [7] donde la aplicación puede registrar una función de devolución de llamada en todas las interfaces de programación de aplicaciones (API) que pueden señalar un evento externo. Esto ayuda a las aplicaciones a encadenar varios objetos públicos en ThreadX, de modo que un hilo pueda bloquear eficazmente varios objetos.

ThreadX también proporciona semáforos de conteo , mutex con herencia de prioridad opcional, indicadores de eventos , colas de mensajes , temporizadores de software, memoria de bloque de tamaño fijo y memoria de bloque de tamaño variable. Todas las API en ThreadX que bloquean los recursos también tienen un tiempo de espera opcional.

ThreadX ofrece compatibilidad con procesadores multinúcleo a través de AMP o SMP. El aislamiento del código de la aplicación está disponible a través del componente ThreadX Modules.

Componentes mayores

Los componentes ThreadX RTOS incluyen:

  1. Sistema de archivos incrustado
  2. Interfaz gráfica de usuario integrada
  3. Redes integradas
  4. USB integrado
  5. Certificación de seguridad
  6. embalaje

Sistema de archivos incrustado

FileX es el sistema de archivos integrado para ThreadX. FileX es compatible con los formatos FAT12 , 16 , 32 y exFAT . Este último amplía el tamaño de los archivos FAT más allá de los 4 GB, lo que es especialmente útil para archivos de video y requiere una licencia directamente de Microsoft para su uso. FileX también ofrece tolerancia a fallas y admite medios de memoria flash directa NOR y NAND a través de un producto de nivelación de desgaste flash llamado LevelX.

Interfaz gráfica de usuario integrada

GUIX es la interfaz gráfica de usuario (GUI) integrada para ThreadX. GUIX proporciona un sistema de tiempo de ejecución 2D (entorno) para aplicaciones integradas que ejecutan ThreadX. GUIX admite varios dispositivos de visualización con una variedad de resoluciones de pantalla y profundidades de color. Hay muchos widgets gráficos predefinidos disponibles. Una herramienta de host WYSIWYG de Windows llamada GUIX Studio genera automáticamente código C para que GUIX se ejecute en tiempo de ejecución.

Redes integradas

NetX Duo es el sistema TCP / IP integrado para ThreadX. NetX Duo admite redes IPv4 e IPv6 junto con protocolos como ARP, Auto IP, DHCP, DNS, DNS-SD, FTP, HTTP, ICMP, IGMP, mDNS, POP3, PPP, PPPoE, RARP, TFTP, SNTP, SMTP, SNMP y TELNET. La seguridad de red de la capa IP la proporciona IPsec. La seguridad de la capa de socket TCP y UDP es proporcionada por TLS y DTLS, respectivamente. El soporte del protocolo IoT Cloud incluye CoAP, MQTT y LWM2M. NetX Duo también es compatible con Thread y 6LoWPAN. En 2017, ThreadX y NetX Duo se convirtieron en productos certificados por Thread. [8]

USB integrado

USBX es el sistema de bus serie universal ( USB ) integrado para ThreadX. USBX admite tanto el host como el dispositivo. El soporte del controlador de host incluye EHCI, OHCI y controladores de host USB patentados. USBX también es compatible con OTG. El soporte de clase USBX incluye Audio, Asix, CDC / ACM, CDC / ECM, DFU, GSER, HID, PIMA, Printer, Prolific, RNDIS y Storage.

Certificación de seguridad

ThreadX (y FileX y NetX Duo) han sido precertificados por SGS-TÜV Saar según las siguientes normas de seguridad: IEC 61508 SIL 4, IEC 62304 Clase C, ISO 26262 ASIL D y EN 50128 SW-SIL 4.

ThreadX (y FileX y NetX Duo) han sido precertificados por UL según las siguientes normas de seguridad: UL / IEC 60730, UL / IEC 60335, UL 1998

ThreadX también ha sido certificado según los estándares DO-178 por varias empresas militares y aeroespaciales. Es compatible con las bibliotecas populares de Transport Layer Security (SSL / TLS) como wolfSSL . [9]

embalaje

A partir de 2017, ThreadX está empaquetado como parte de X-Ware IoT Platform en código fuente completo y sin pago de regalías por tiempo de ejecución .

Productos que lo usan

Algunos productos de alto perfil utilizando ThreadX gama de pequeños dispositivos portátiles, a impresoras Hewlett-Packard , e incluso la NASA ‘s Deep Impact sonda espacial . [10]

La línea Raspberry Pi de computadoras de placa única ejecuta ThreadX como un blob binario en la unidad de procesamiento de gráficos (GPU). Esto controla el arranque inicial , que a su vez se usa para arrancar sistemas operativos secundarios como Linux , y continúa operando en un rol más privilegiado incluso después del proceso de arranque. [11]

Ver también

  • Motor de administración Intel (ME)

Referencias

  1. ^ https://github.com/azure-rtos/threadx/tags
  2. ^ Cole, Bernard; McConnel, Toni (3 de septiembre de 2010). "Bill Lamie: historia de un hombre y sus sistemas operativos en tiempo real" . Embebido . AspenCore.
  3. ↑ a b Janakiram, MSV (21 de abril de 2019). "¿Cómo ayuda la adquisición de Express Logic a Microsoft y al ecosistema de IoT?" . Forbes .
  4. ^ Carbone, John. "RTOS de alto rendimiento" ThreadX ": Express Logic: permite un menor tiempo de comercialización y un menor costo de desarrollo" . Renesas .
  5. ^ "IoT y sistemas operativos integrados" . Investigación de VDC . Consultado el 31 de julio de 2018 .
  6. ^ Wang, Yun; Saksena, Manas. "Programación de tareas de prioridad fija con umbral de preferencia" (PDF) . Departamento de Ciencias de la Computación . Universidad de Utah.
  7. ^ "El encadenamiento de eventos permite que los sistemas en tiempo real respondan a múltiples eventos en tiempo real de manera más eficiente" (PDF) . Express Logic .
  8. ^ "Productos certificados de hilo" . Grupo de subprocesos .
  9. ^ "wolfSSL con soporte mejorado para ThreadX / NetX" . wolfSSL . 2018-01-16 . Consultado el 13 de febrero de 2019 .
  10. ^ "" Deep Impact "de la NASA emplea sistemas integrados para marcar la diana a 80 millones de millas de distancia" . Sistemas militares integrados .
  11. ^ "¿Qué le pasa a la Raspberry Pi" . Sea dueño de sus bits .

enlaces externos

  • Sitio web oficial
  • ¿Qué es Azure RTOS ThreadX? | Documentos de Microsoft
  • http://www.mapusoft.com//wp-content/uploads/documents/threadx-os-simulator.pdf
Obtenido de " https://en.wikipedia.org/w/index.php?title=ThreadX&oldid=1053593840 "