Express Logic’s ThreadX brings big-system features to Cortex-M3/-M4

New Update

Electronics Design Show, COVENTRY, UK: Express Logic Inc., the worldwide leader in royalty-free real-time operating systems (RTOSes), announced the immediate availability of ThreadX with Downloadable Application Modules (ThreadX with DAMs) for ARM Cortex-M3/-M4 systems.


ThreadX with DAMs enables ThreadX-based applications to dynamically run application code that is not statically linked with the main system executable image. This enables selected application threads to be packaged into a module and guarded by the Cortex-M3/-M4 MPU. This also helps to prevent unintended access from outside the module's memory space and protect the system from any unintended actions of threads within a module.

With ThreadX with DAMs, applications gain increased functionality without the cost or footprint of additional memory. This is because the DAMs can be dynamically activated to provide additional functionality, such as on-demand reconfiguration and application updates for deployed systems.

The ThreadX with DAMs technology is ideal for situations in which total application code size exceeds available memory, new application modules need to be added after the product is deployed, or partial firmware updates are required. For greater system security, the technology also enables memory protection of individual threads and groups of threads.


The architecture of the kernel-module structure used in ThreadX with DAM is one that is not typically found in RTOSes serving Cortex-M3/-M4 systems. Instead, the architecture mirrors the kernel-module structure more commonly found in large virtual-memory operating systems, such as Windows and Linux.

The Module Manager that is part of ThreadX with DAMs and resident within the ThreadX kernel interfaces with each module and fields all module requests for ThreadX API services. Although there is only one copy of the Module Manager, there is no limit on the number of modules that can be loaded at one time or the number of threads in any one module.

If desired, selected application threads can be linked directly with the ThreadX kernel and made to reside in target memory as part of its main executable image, rather than as part of a module. This option enables developers to avoid having to reload the modules containing these threads and helps to guarantee the best possible performance.