SPRUJ79A November 2024 – December 2025 F29H850TU , F29H859TU-Q1
FILE: rtdma_ex2_cpu1_cpu3_multi_ra_c29x1.c
This example shows how to initiate a DMA transfer on CPU1 from a shared peripheral which is owned by CPU3. In this specific example, a timer ISR is used on CPU3 to initiate a SPI transfer which will trigger the CPU1 DMA. CPU1's DMA will then in turn update the ePWM1 CMPA value for the PWM which it owns. The PWM output can be observed on the GPIO pins.
In this example, an EPWM is allocated to CPU1 and SPI and an RTDMA channel to CPU3 in the rtdma_ex2_cpu1_cpu3_multi_ra.syscfg file. This generates a resourceAllocation.json file at rtdma_ex2_cpu1_cpu3_multi_ra/RA/syscfg folder. The CPU specific syscfg file further configures its pre-allocated resources. The individual CPU projects can be built independent of each other.
When using CCS for debugging this Multi-core example, after launching the debug session,
For FLASH configuration, this example is run in FLASH BANKMODE2, where CPU3 has access to FLASH (FRI-2). Refer to the Flash Plugin documentation to know about changing FLASH BANKMODEs and more. Additionally, the CPAx and CDAx RAMs are used for allocating various RAM sections. When importing the Project in CCS 20.3.0, do verify if the Resource allocation specific flags are set. If not, update the Project Properties -> Build -> Tools -> SysConfig -> Miscellaneous -> Other flags to include the appropriate flag. For projects having the .syscfg file in "Define Resource Allocations" mode, add the following flag: enableResourceAllocationSetup For CPUx projects having .syscfg files in "Configure using Predefined Resource Allocations" mode, add the following flag: resourceAllocation <path to resourceAllocation.json file> for example, resourceAllocation ....\rtdma_ex2_cpu1_cpu3_multi_ra\RA\syscfg\resourceAllocation.json
External Connections
Watch Pins