ThreadX

  THREADX SNAPSHOT

  • Industry Leader
  • Over 5.4 Billion Deployments
  • Small-footprint
  • Fast, deterministic execution
  • Simple, easy-to-use
  • Advanced Technology :
       Picokernel™ architecture
       Preemption-Threshold™ scheduling
       Event-chaining™
       Performance metrics
       Execution profiling
       System event tracing
  • Multicore support(AMP & SMP)
  • Memory Protection via ThreadX Modules
  • Fastest Time-To-Market
  • Royalty-Free
  • Full, highest-quality source code
  • Pre-certified by TUV and UL to safety standards
  • MISRA compliant
  • Supports most popular architectures
  • Supports most popular tools


Industry Leading ThreadX RTOS

ThreadX는 2017년 현재까지 62억개 이상의 제품에 탑재되어 구동중이며(*조사기관 : VDC Research),
Express Logic, Inc.(http://www.rtos.com) 웹사이트를 통해서 매일 업데이트되고 있습니다.

1. Small Footprint

ThreadX는 Application에서 사용된 기능(Function)만을 가지고 최종 이미지(Binary 등)를 만들기 때문에
사용하지 않은 기능들은 자동으로 배제시켜서
Compact한 이미지를 만들어 낼 수 있습니다. 

The minimal footprint of ThreadX is under 2KB on Microcontrollers.

  • Core Services(Requires): 2,000 Bytes
  • Queue Services: 900 bytes
  • Event Flag Services: 900 bytes
  • Semaphore Services: 450 bytes
  • Mutex Services: 1200 bytes
  • Block Memory Services: 550 bytes
  • Byte Memory Services: 900 bytes
  • 2. Fast Response

    ThreadX는 우선순위 선점형(Preemptive) 커널로 외부 이벤트들에 빠르게 반응(Fast Response)하고
    정해진 시간내에 동작합니다(Deterministic). 

  • Boot Time: 300 cycles
  • Context Switch Time: 20 cycles
  • Semaphore Get: 30 cycles
  • * Timing based on ThreadX V5.1, configured for maximum performance and minimal size.

     

    3. Instant On

    ThreadX는 초기화와 Application Thread의 스케쥴링을 시작하는데 최소 300 cycles이 필요합니다.
    (ex. 300MHz의 CPU일 경우 300 Cycles이면 1us에 동작함을 의미함)
    *부팅시간이 짧아야 하는 Consumer와 Medical Devices에서 매우 중요한 이슈입니다.

    4. ThreadX Safety-Critical Certification Pack

    Click Here for More Information
    The ThreadX Certification Pack™ is a 100% complete, turnkey, industry-specific, stand-alone package that provides ALL of the ThreadX evidence needed to certify or successfully submit the ThreadX based product to the highest reliability and criticality levels required for safety-critical Aviation, Medical, and Industrial systems.
     

    Certifications supported include DO-178B, ED-12B, DO-278, FDA510(k), IEC-62304, IEC-60601, ISO-14971, UL-1998, IEC-61508, CENELEC EN50128, BS50128, and 49CFR236. Please click on this heading for more information on certification.

     

    5. Easy To Use

    ThreadX는 매우 사용하기 쉽습니다.
    API 이름 또한 실제 연관된 함수이름을 사용하고 있어서 ThreadX APIs를 직관적으로 이해하기 쉽습니다.
    그리고, TX_API.H 한줄을 Application software에 Include하면 Application objects에 ThreadX
    라이브러리들도 함께 링크가 되어 바로 사용할 수 있습니다 – it’s that simple! 

    #include “tx_api.h” <– 한줄 추가하면 끝!

    #define DEMO_STACK_SIZE 1024
    #define DEMO_BYTE_POOL_SIZE 9120
    #define DEMO_BLOCK_POOL_SIZE 100
    #define DEMO_QUEUE_SIZE 100

    그리고, 매우 훌륭한 Documentation을 제공합니다.

     

    6. No Mysteries

    ThreadX Complete C와 Assembly 소스코드를 제공하여 ThreadX가 어떻게 동작하는지 자세하게
    볼 수 있습니다. “Black Box” 되어 있는 Commercial RTOS를 사용하여 불편했던 경험이 있는 엔지니어들에게는 아주
    유용할 것이라고 생각합니다.

    7. Complete Multitasking Facilities

    ThreadX는 Multitasking facilities의 Complete Set을 제공합니다. 

    Including:

  • Threads
  • Application Timers
  • Message Queues
  • Counting Semaphores
  • Mutexes
  • Event Flags
  • Block Memory Pools
  • Byte Memory Pools
  •  

    8. Advanced Technology

  • Small, fast picokernel™ architecture
  • Dynamically Downloadable Application Modules
  • Memory Protection for Downloadable Modules
  • Automatic scaling (small footprint)
  • Deterministic processing
  • Fast real-time performance
  • Preemptive and cooperative scheduling
  • Flexible thread priority support (32 – 1024 priority levels)
  • Dynamic system object creation
  • Unlimited number of system objects
  • Optimized interrupt handling
  • Preemption-threshold™
  • Priority inheritance
  • Event-chaining™
  • Fast software timers
  • Flexible memory utilization
  • Run-time performance metrics
  • Run-time stack analysis
  • Built-in system trace
  • Execution Profiling
  • Vast processor support
  • Vast development tool support
  • Completely endian neutral
  • 9. Dynamic Creation

    ThreadX는 시스템 리소스를 동적으로 만들수 있습니다.
    그리고, 사용할 ThreadX 리소스들의 수에 대해서 정해진 제한은 없으며 시스템 Objects의 수로 인해서 성능에
    어떠한 영향도 미치지 않습니다.

    10. Downloadable, Memory-Protected Application Modules

    Downloadable, memory-protected application modules은 ThreadX 기반 Application을 동적으로
    로드하고, Application Threads를 실시간으로 추가하여 실행하는 것이 가능합니다.
    Application은 추가적인 메모리 공간이나 footprint의 증가없이 확장된 기능을 얻을 수 있으며,
    이 기술을 이용하여 사용자 요구 재설정((On-demand reconfiguration)과 지연된 시스템을 위한
    Application 업데이트가 가능합니다.
     

    ThreadX Downloadable Application Module technology는
    1. Application 코드 사이즈가 초과되었을 경우/
    2. 새로운 모듈을 추가했을 경우/
    3. 부분적으로 펌웨어를 업데이트 했을 경우/

    위의 상황에 유용하게 사용하실 수 있습니다.

    11. Preemption-Threshold ™

    Express Logic’s innovative Preemption-Threshold technology has been the subject of many white papers, both commercial and academic.

    Here are several to choose from:

  • White paper containing an overview of Express Logic’s technique of reducing context switches. Overview of Preemption-Threshold
  • Wang, Concordia University, and Saksena, University of Pittsburgh, on Scheduling Fixed-Priority Tasks with Preemption Threshold. http://www.cs.utah.edu/~regehr/reading/open_papers/preempt_thresh.pdf
  • R. Ghattas and A. G. Dean. Preemption threshold scheduling: Stack optimality, enhancements and analysis. In RTAS ’07: Proc. of the 13th IEEE Real Time and Embedded Technology and Applications Symposium, 2007. 2007_Preemption-Threshold_Scheduling_Ghattas_and_Dean.pdf
  • G. Yao and G. Buttazzo, Reducing Stack with Intra-Task Threshold Priorities in Real-Time Systems, Proc. of the 10th Int. Conf. on Embedded Software, 2010.2010_10_PTS_paper_by_Yao_and_Buttazzo.pdf
  •  

    12. Priority Inheritance

    ThreadX Mutex Object에서 우선순위 역전현상을 피하기 위하여 우선순위 상속(Priority Inheritance)을 합니다.

    13. Event-Chaining ™

    ThreadX의 Event-chaining technology는 Application이 다양한 System Objects 상에서
    “Chain together”하는 것을 허용하는 기술입니다. 예를들어, Single Thread가 활성화 되기 전
    다른 Queues, Semaphores, etc 상에서 suspend되어 대기한다고 생각해 보십시오.
    이는 복합적인 시스템 이벤트들은 더 적은 Threads를 사용함으로서, 관리하기가 더욱 쉬워진다는 것을
    의미합니다. – 즉, SpaceCPU Cycles 절약.
     

    For a brief tutorial on Event Chaining, click – HERE

    14. Fast Software Timers

    ThreadX Application timers를 한번만 또는 주기적으로 이용할 수 있습니다.
    ThreadX는 Application Timer들이 Activation 상태인지 Expiration인지를
    Linear searching(선형 비교검색)없이 관리하여 Communications 와 Process control과 같은
    Timer-Centric Applications의 Overhead의 수를 효과적으로 줄여줍니다.

     

    15. Flexible Memory Utilization

    ThreadX Control blocks 과 Memory 영역은 thread stacks, message queues 에 관련 되어지고, Memory pools 은 Hardware의 any address 공간에 쉽게 located(Run-time 중에도) 할 수 있습니다.
    예를들어, ThreadX 는 높은 우선순위 Thread 를 Fast Memory area(RAM)에 위치시켜서 그 성능을 쉽게
    끌어올릴 수 있습니다.

    16. Run-time Performance Metrics

    ThreadX 는 Optional Run-time 성능 정보를 제공합니다.
    이 정보는 하나의 Object를 기준하여 제공될 뿐만 아니라 모든 Objects 클래스를 통해서도 사용하실 수 있습니다.
    예를들어, Thread Objects의 성능 정보를 보면, ThreadX는 Resumptions(재개)/suspensions(중지)/Preemptions(선취)/priority inversions(우선순위 역전)/ time-slices(시분할)/ timeouts 등에 대한 정보들을 각각의 Thread와 모든 Thread의 Track을 저장한다.
    이 정보의 종류는 Application tuning 뿐만 아니라 Thread 기아 현상과 같은 다양한 문제들을 Debug 하는데 필수적입니다.

    17. Run-time Stack Analysis

    ThreadX는 Optional Run-time Stack Analysis를 제공합니다.
    만약 가능하다면, ThreadX run-time stack analysis 는 Thread가 Scheduled 하기 전에 Thread Stack Parameters를 실행하면, 전형적인 Stack Overflow로 인한 문제로부터 피하는 것을 도울 수 있습니다. 게다가 ThreadX run-time stack analysis는 각각의 Thread의 Stack 사용 정보등을 확인하여 Thread Stack 의 Requrement를 조정 할 수 있습니다. 

    To learn more, and to find out about other stack analysis tools from Express Logic, please click –HERE

     

    18. Execution Profile Kit (EPK)

    The ThreadX Execution Profile Kit (EPK) 는 Threads, ISRs(Interrupt Service Routines), 시스템 Idle 상태를 위하여
    동적으로 Applications의 Track Execution time 을 제공합니다. 이것은 특별하게 최적화와 최대한의 성능으로 끌어
    올리기 위한 Application 튜닝에 사용되며, Debugging 하는데 도움이 됩니다. EPK 루틴은 Events 와 Global 변수들
    뿐만 아니라 TX_THREAD Control Block 들까지의 Delta time을 저장하는 시간을 계산합니다.

    19. Dedicated ISR Stack

    ThreadX는 모든 ISR 처리방식을 위한 반납된 스택을 이용하기 때문에 가능한 작은 Thread 스택을 유지합니다.

    20. Built-in System Trace

    ThreadX 는 TraceX 라는 Graphical Event-Analysis Tool을 이용하여 Optional 시스템 Trace 기능을 제공합니다. 만약 EVENT_TRACE가 Enable 되면, ThreadX는 TraceX 에서 볼수 있도록 계산된 이벤트 정보를 Trace Buffer에 저장합니다. Size, Location, Contents of Trace는 완벽하게 Application 제어 아래에 있으며, 이 Application은 Custom events를 Tarce Buffer에 삽입할수도 있습니다.
    Click – HERE to learn about TraceX.

    21. Vast Processor Support

    ThreadX 는 현재 대부분의 CISC, RISC와 DSP Processors 를 지원하고 있습니다. ThreadX 자체가 Portable Design 되었기 때문에, ThreadX는 새로운 Processor Family에 최대 4주 이내에 Porting 할 수 있습니다.

    22. Vast Development Tool Support

    ThreadX 는 현재 각각의 Processor에서 사용하는 거의 대부분의 개발환경을 지원합니다. 게다가, Kernel Awareness 기능을 대부분의 Debugger(아래참조)에서 이용할 수 있습니다.

    지원개발환경 : ARM RealView, Wind River Workbench, IAR C-SPY, Freescale CodeWarrior,
    Microchip MPLAB, Renesas HEW, Lauterbach TRACE32, Analog VisualDSP, and GHS MULTI

    23. Express Logic Gets You to Market First

    Express Logic의 제품들은 고객을 위해서 아주 쉽게 사용할 수 있도록 설계 되었습니다.
    ThreadX를 이용하여 고객 제품을 개발했을 때 Time to Market 이 가장 빠릅니다.
     

    THREADX PROCESSOR SUPPORT

      Licensing Overview

      ThreadX는 Royalty free 제품이고 라이센스 계약을 하셔야 합니다.
      당사로 연락주시면 라이센스별 허용범위 및 가격 등에 대한 정보를 상세하게 알려드리겠습니다. 감사합니다.

      Company : 이노에스제이(주)
      Tel : 02-6268-4500
      E-mail : info@innosj.com