UM10503
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2012. All rights reserved.
User manual
Rev. 1.3 — 6 July 2012
13 of 1269
NXP Semiconductors
UM10503
Chapter 2: LPC43xx ARM Cortex-M0 co-processor and Inter- Process
2.4.1 Hardware
Instead of using dedicated hardware, the IPC uses existing hardware components. The
buffers in shared memory can use any of the available SRAM. The buffer pointers are
maintained in software. The interrupts are captured in the processor’s NVIC and cleared
in the CREG block (see
and
).
2.4.2 Interrupt handling
The ARM Cortex-M4 and ARM Cortex-M0 trigger interrupts to each other via CREG
registers M4TXEVENT and M0TXEVENT (see
). The M4-to-M0 and
M0-to-M4 interrupts use the SendEvent instruction (SEV) to raise the signal TXEV. This
signal is captured by CREG. It should be cleared by the interrupt handler of the receiving
core.
2.5 IPC Protocol description
The IPC supports low-level interfaces, e.g. a register level interface, but also higher levels
like an API.
The ARM Cortex-M4 host CPU is always master. It initiates commands to the ARM
Cortex-M0 that mimic a hardware register level interface. The commands can be issued
either synchronously (wait for the reply message) or asynchronously (not wait for the reply
message) depending on the host application.
The ARM Cortex-M0 responds to commands given by the ARM Cortex-M4 by issuing
messages.
Since the ARM Cortex-M4 and ARM Cortex-M0 cannot at the same time write to the same
location, there is no need for a synchronization object (e.g. a semaphore) in this IPC.
Fig 3.
Dual-core block diagram
= M0 subsystem
= M4 subsystem
= shared
RAM
HOST_MSG_BUFFER
Cortex M4
(Master)
Cortex M0
(Slave)
Read
Pointer
Write
Pointer
Write
Pointer
Read
Pointer
RAM
HOST_CMD_BUFFER
Interrupt
Interrupt
AHB