DS-MDK: Development Solution for Heterogeneous Systems
The DS-5 IDE provides project management for Cortex-M and Linux application development based on Eclipse CDT and can be extended with third-party plug-ins. The DS-MDK specific extensions cover several image viewers and the CMSIS Pack Manager that provides access to the CMSIS framework, software components, and their documentation.
Cortex-M software development is easier and faster when using CMSIS and related software components such as device drivers, board support, and middleware.
Typically, the Cortex-M device in a heterogeneous system executes from resource limited TCM (Tightly Coupled Memory). The ARM Compiler 5 generates the smallest code for Cortex-M based processors, which helps to achieve the best performance on such systems.
Simultaneous Application Debug
The DS-5 Debugger can verify all software applications that execute in the heterogeneous computer system. Complete system visibility is enabled using multiple simultaneous debug connections:
The Cortex-M application is debugged using a ULINKpro debug unit. Users can analyze the microcontroller application using RTOS aware-debugging and peripheral views.
- The Cortex-A Linux kernel is also debugged using a ULINKpro debug unit. The debugger lists kernel threads and processes and shows pending breakpoints on loadable modules and shared libraries.
The Cortex-A Linux application is debugged via gdbserver. The debugger supports multi-threaded application debugging and shows pending breakpoints on loadable modules and shared libraries.
Benefits of Heterogeneous Systems
Heterogeneous systems combine high computing power with fast, efficient I/O performance for application software and deterministic real-time I/O. The Cortex-A application processor runs a feature-rich operating system, such as Linux, and has the computing power for demanding applications. The energy-efficient Cortex-M processor typically executes a real-time operating system (RTOS) that provides fast start-up times. They can be permanently 'on' in battery-powered systems. The two processor systems typically exchange information via a fast, interrupt driven inter-process communication and shared memory.