SPRADA3 july   2023 AM2631 , AM2631-Q1 , AM2632 , AM2632-Q1 , AM2634 , AM2634-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. Introduction
  5. Device Nomenclature
  6. R5 Cores and TCM in AM263x
    1. 3.1 R5 Core Nomenclature in Am263x
  7. Example Support for AM263x Family
  8. IPC Example Support for Two-Core Devices (AM2632)
    1. 5.1 Option 1 Using MulticoreImageGen.js
    2. 5.2 Option Two (Migration Guide from a Four-Core System Project to a Two-Core System Project)
  9. System Project Example Support for Two-Core Devices (AM2632)
  10. Target Configuration in CCS
    1. 7.1 Prerequisites
    2. 7.2 Creating a Target Configuration
  11. Connecting to the Target Core
  12. Hardware Description for Launch Pad and Control Card
    1. 9.1 Launchpad Pinout for Standard Analog Devices
    2. 9.2 ADC and DAC Mapping in Launchpad for Standard Analog
    3. 9.3 Pinmux Mapping - Standard Analog - Launch Pad
    4. 9.4 ADC and DAC Mapping in Control Card for Standard Analog
  13. 10Summary
  14. 11References

Option Two (Migration Guide from a Four-Core System Project to a Two-Core System Project)

This process helps to import the existing IPC Notify example as a 2-core system project with R50_0 as the main core and R51_0 as the remote core. The following changes need to be done in the make files in the SDK for IPC Notify. Choose the folder depending on your device type CC or LP.

Open the system_freertos_nortos makefile at the locaion:examples\drivers\ipc\ipc_notify_echo\am263x-cc\system_freertos_nortos\ makefile.

  • Retain the CORE_0 definition. Remove CORE_1 and CORE_2 definitions from lines 18 and 19 as these are not required.

  • Define CORE_1 as below:

CORE_1=--script ../r5fss1-0_nortos/example.syscfg --context r5fss1-0 --output ../r5fss1-0_nort os/ti-arm-clang/generated
  • Remove $(CORE_3) and $(CORE_2) from CORES. And define CORES as shown.

CORES = \
$(CORE_1) \
$(CORE_0) \
  • Remove r5fss0-1 and r5fss1-1 instances from all: syscfg section.
all: 
syscfg $(MAKE) -C ../r5fss0-0_freertos/ti-arm-clang/ all
$(MAKE) -C ../r5fss1-0_nortos/ti-arm-clang/ all 
$(MAKE) $(MULTI_CORE_BOOTIMAGE_NAME)
  • Remove r5fss0-1 and r5fss1-1 instances from clean section.

clean: 
$(MAKE) -C ../r5fss0-0_freertos/ti-arm-clang/ clean
$(MAKE) -C ../r5fss1-0_nortos/ti-arm-clang/ clean 
$(RM) $(MULTI_CORE_BOOTIMAGE_NAME) 
$(RM) $(MULTI_CORE_BOOTIMAGE_NAME_SIGNED) 
$(RM) $(MULTI_CORE_BOOTIMAGE_NAME_XIP)
  • Remove r5fss0-1 and r5fss1-1 instances from scrub section.

scrub: 
$(MAKE) -C ../r5fss0-0_freertos/ti-arm-clang/ scrub 
$(MAKE) -C ../r5fss1-0_nortos/ti-arm-clang/ scrub
  • Remove r5fss0-1 and r5fss1-1 instances from MULTI_CORE_APP_PARAMS section.

MULTI_CORE_APP_PARAMS = \

../r5fss0-0_freertos/ti-arm-clang/ipc_notify_echo.$(PROFILE).rprc@$(BOOTIMAGE_CORE_ID_r5fss0-0) \

 ../r5fss1-0_nortos/ti-arm-clang/ipc_notify_echo.$(PROFILE).rprc@$(BOOTIMAGE_CORE_ID_r5fss1-0) \
  • Remove r5fss0-1 and r5fss1-1 instances from MULTI_CORE_APP_PARAMS_XIP section.

MULTI_CORE_APP_PARAMS_XIP = \

 ../r5fss0-0_freertos/ti-arm-clang/ipc_notify_echo.$(PROFILE).rprc_xip@$(BOOTIMAGE_CORE_ID_r5fss0-0) \

 ../r5fss1-0_nortos/ti-arm-clang/ipc_notify_echo.$(PROFILE).rprc_xip@$(BOOTIMAGE_CORE_ID_r5fss1-0) \
  • Remove r5fss0-1 and r5fss1-1 instances from MULTI_CORE_BOOTIMAGE_DEPENDENCY section.

MULTI_CORE_BOOTIMAGE_DEPENDENCY = \
 ../r5fss0-0_freertos/ti-arm-clang/ipc_notify_echo.$(PROFILE).rprc \
../r5fss1-0_nortos/ti-arm-clang/ipc_notify_echo.$(PROFILE).rprc \

Open the projectspec makefile at the location: examples\drivers\ipc\ipc_notify_echo\am263x-cc\system_freertos_nortos\ makefile_projectspec.

Make the following changes in this makefile:

  • Remove r5fss0-1 and r5fss1-1 instances from clean section to support only r5fss0-0 and r5fss1-0.

clean:
$(CCS_ECLIPSE) -noSplash -data $(MCU_PLUS_SDK_PATH)/ccs_projects -application com.ti.ccstudio.apps.projectBuild -ccs.projects
$(PROJECT_NAME) -ccs.configuration
$(PROFILE) -ccs.clean
$(MAKE) -C ../r5fss0-0_freertos/ti-arm-clang/ -f makefile_projectspec clean
$(MAKE) -C ../r5fss1-0_nortos/ti-arm-clang/ -f makefile_projectspec clean

Open the bootimage_gen makefile at the location: examples\drivers\ipc\ipc_notify_echo\am263x-cc\system_freertos_nortos\ makefile_system_ccs_bootimage_gen.

Make the following changes in this makefile:

  • Remove r5fss0-1 and r5fss1-1 instances from MULTI_CORE_APP_PARAMS section.

MULTI_CORE_APP_PARAMS = \
../ipc_notify_echo_am263x-cc_r5fss0-0_freertos_ti-arm-clang/$(PROFILE)/ipc_notify_echo_am263x-cc_r5fss0-0_freertos_ti-arm-clang.rprc@$(BOOTIMAGE_CORE_ID_r5fss0-0) \
../ipc_notify_echo_am263x-cc_r5fss1-0_nortos_ti-arm-clang/$(PROFILE)/ipc_notify_echo_am263x-cc_r5fss1-0_nortos_ti-arm-clang.rprc@$(BOOTIMAGE_CORE_ID_r5fss1-0) \
  • Remove r5fss0-1 and r5fss1-1 instances from MULTI_CORE_APP_PARAMS_XIP section.

MULTI_CORE_APP_PARAMS_XIP = \
 ../ipc_notify_echo_am263x-cc_r5fss0-0_freertos_ti-arm-clang/$(PROFILE)/ipc_notify_echo_am263x-cc_r5fss0-0_freertos_ti-arm-clang.rprc_xip@$(BOOTIMAGE_CORE_ID_r5fss0-0) \
../ipc_notify_echo_am263x-cc_r5fss1-0_nortos_ti-arm-clang/$(PROFILE)/ipc_notify_echo_am263x-cc_r5fss1-0_nortos_ti-arm-clang.rprc_xip@$(BOOTIMAGE_CORE_ID_r5fss1-0) \

Open the system projectspec file at the location: examples\drivers\ipc\ipc_notify_echo\am263x-cc\system_freertos_nortos\ system.projectspec.

Make the following changes in thisprojectspec file:

  • Remove r5fss0-1 and r5fss1-1 projectspec files from getting imported with the system_freertos_nortos project (lines 4 and 6).

<projectSpec>
<import spec="../r5fss0-0_freertos/ti-arm-clang/example.projectspec"/>
<import spec="../r5fss1-0_nortos/ti-arm-clang/example.projectspec"/>

Open the system projectspec file at the location: examples\drivers\ipc\ipc_notify_echo\am263x-cc\system_freertos_nortos\ system.xml.

Make the following changes in this projectspec file:

  • Remove r5fss0-1 and r5fss1-1 cores project configurations from the xml file and only keep 0-0 and 1-0 cores. Modify core 1 as r5fss1-0 core as shown below.

<project configuration="@match" id="project_0" name="ipc_notify_echo_am263x-cc_r5fss0-0_freertos_ti-arm-clang">
</project>
<core id="MAIN_PULSAR_Cortex_R5_0_0" project="project_0"/>
<project configuration="@match" id="project_1" name="ipc_notify_echo_am263x-cc_r5fss1-0_nortos_ti-arm-clang">
</project>
<core id="MAIN_PULSAR_Cortex_R5_1_0" project="project_1"/>

After modifying the system project make files, import this example into your CCS. This step is the same as the other system projects.

GUID-BA1699B5-31C4-4CCD-957A-B05F4E0945AF-low.pngFigure 5-4 Importing Dual-Core System Project for IPC Notify

Modify your example.syscfg to support IPC notify feature to the cores 0-0 and 1-0. Subsequently, disable IPC Notify feature for cores 1-0 and 1-1.

GUID-3F763349-AC40-40C8-B3C1-385F06B9CE43-low.pngFigure 5-5 IPC Notify R50_0 Syscfg
GUID-786D9A2C-9807-4414-AF82-053A04B36F7E-low.pngFigure 5-6 IPC Notify R50_0 Syscfg

Change the Remote Core ID List to support only core 1-0, and remove rest of the cores as shown below. Make this change in ipc_notify_echo .c file of both ipc_notify_echo_am263x-cc_r5fss0-0_nortos_ti-arm-clang and ipc_notify_echo_am263x-cc_r5fss1-0_nortos_ti-arm-clang projects.

uint32_t gRemoteCoreId[] = {
    CSL_CORE_ID_R5FSS1_0, 
    CSL_CORE_ID_MAX 
};
Now build the system project to generate a combined app image for core 0-0 and 1-0. This app image can be flashed on to your AM2632 device.

GUID-2550136E-D656-492C-BCE4-FA7406E746CA-low.pngFigure 5-7 Appimage Generated for Dual-Core Project
Note: AM2631 is a single core device and IPC Examples are not supported for single-core devices.