Multicore Development#

Multicore development covers: Application development in a mixed Linux / remote core system, peripheral and memory allocation, IPC, and more.

Introduction

TI’s Sitara devices are multicore processors that allow processing tasks to be split across Linux and remote cores. This section will focus on remote cores that are running software from the MCU+ SDK.

Note

“remote core” means any core in the processor that is not the Linux cores. From a Linux perspective, any core running MCU+ software is a “remote core”.

This section does not discuss PRU development. For more information about PRU, please refer to the PRU Training in the Processor SDK documentation.

Remote core development in a Linux system is different than remote core development for a system without Linux cores. Differences include:

  1. Firmware that is initialized by Linux has specific project requirements.

  2. The process to debug a remote core while Linux is running is different from debugging a remote core while Linux is not running.

  3. Finally, multicore designs require coordination between the Linux cores and the remote cores:

    • System resource allocation

      • Peripherals

      • Memory

    • System configuration

      • Pinmux

      • Interrupts

      • DMA & system level resources

    • Inter-processor Communication (IPC)

    • Boot flow of processor cores


What is covered in this section?

The Multicore Development section discusses: