SPRADA3 july 2023 AM2631 , AM2631-Q1 , AM2632 , AM2632-Q1 , AM2634 , AM2634-Q1
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) \
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.
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.
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.