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

 

  1.   1
  2.   摘要
  3.   商标
  4. 引言
  5. 器件命名规则
  6. AM263x 中的 R5 内核和 TCM
    1. 3.1 Am263x 中的 R5 内核命名规则
  7. AM263x 系列的示例支持
  8. 双核器件 (AM2632) 的 IPC 示例支持
    1. 5.1 选项 1(使用 MulticoreImageGen.js)
    2. 5.2 选项 2(四核系统工程到双核系统工程迁移指南)
  9. 双核器件 (AM2632) 的系统工程示例支持
  10. CCS 中的目标配置
    1. 7.1 先决条件
    2. 7.2 创建一个目标配置
  11. 连接到目标核心
  12. LaunchPad 和 ControlCARD 的硬件说明
    1. 9.1 标准模拟器件的 LaunchPad 引脚排列
    2. 9.2 标准模拟器件 LaunchPad 中的 ADC 和 DAC 映射
    3. 9.3 引脚多路复用映射 - 标准模拟器件 - LaunchPad
    4. 9.4 标准模拟器件 ControlCARD 中的 ADC 和 DAC 映射
  13. 10总结
  14. 11参考文献

选项 2(四核系统工程到双核系统工程迁移指南)

此过程有助于将现有 IPC Notify 示例导入为双核系统工程,其中 R50_0 作为主内核,R51_0 作为远程内核。需要在用于 IPC Notify 的 SDK 中的 makefile 中完成以下更改。根据器件类型 CC 或 LP 选择文件夹。

打开 examples\drivers\ipc\ipc_notify_echo\am263x-cc\system_freertos_nortos\ makefile 处的 system_freertos_nortos makefile。

  • 保留 CORE_0 定义。从第 18 和 19 行中移除 CORE_1 和 CORE_2 定义,因为这些定义不是必需的。

  • 按如下所示定义 CORE_1:

CORE_1=--script ../r5fss1-0_nortos/example.syscfg --context r5fss1-0 --output ../r5fss1-0_nort os/ti-arm-clang/generated
  • 从 CORES 中移除 $(CORE_3) 和 $(CORE_2)。按如下所示定义 CORES。

CORES = \
$(CORE_1) \
$(CORE_0) \
  • 从 all: syscfg 部分删除 r5fss0-1 和 r5fss1-1 实例。
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)
  • 从 clean 部分删除 r5fss0-1 和 r5fss1-1 实例。

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)
  • 从 scrub 部分删除 r5fss0-1 和 r5fss1-1 实例。

scrub: 
$(MAKE) -C ../r5fss0-0_freertos/ti-arm-clang/ scrub 
$(MAKE) -C ../r5fss1-0_nortos/ti-arm-clang/ scrub
  • 从 MULTI_CORE_APP_PARAMS 部分删除 r5fss0-1 和 r5fss1-1 实例。

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) \
  • 从 MULTI_CORE_APP_PARAMS_XIP 部分删除 r5fss0-1 和 r5fss1-1 实例。

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) \
  • 从 MULTI_CORE_BOOTIMAGE_DEPENDENCY 部分删除 r5fss0-1 和 r5fss1-1 实例。

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 \

打开以下位置的 projectspec makefile: examples\drivers\ipc\ipc_notify_echo\am263x-cc\system_freertos_nortos\ makefile_projectspec

在此 makefile 文件中进行以下更改:

  • 从 clean 部分删除 r5fss0-1 和 r5fss1-1 实例,以便仅支持 r5fss0-0 和 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

打开以下位置的 bootimage_gen makefile: examples\drivers\ipc\ipc_notify_echo\am263x-cc\system_freertos_nortos\ makefile_system_ccs_bootimage_gen

在此 makefile 文件中进行以下更改:

  • 从 MULTI_CORE_APP_PARAMS 部分删除 r5fss0-1 和 r5fss1-1 实例。

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) \
  • 从 MULTI_CORE_APP_PARAMS_XIP 部分删除 r5fss0-1 和 r5fss1-1 实例。

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) \

打开以下位置的系统 projectspec 文件: examples\drivers\ipc\ipc_notify_echo\am263x-cc\system_freertos_nortos\ system.projectspec

在此 projectspec 文件中进行以下更改:

  • 删除 r5fss0-1 和 r5fss1-1 projectspec 文件,使其不再随 system_freertos_nortos 工程一起导入(第 4 行和第 6 行)。

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

打开以下位置的系统 projectspec 文件: examples\drivers\ipc\ipc_notify_echo\am263x-cc\system_freertos_nortos\ system.xml

在此 projectspec 文件中进行以下更改:

  • 从 xml 文件中删除 r5fss0-1 和 r5fss1-1 内核工程配置,并仅保留 0-0 和 1-0 内核。按如下所示将内核 1 修改为 r5fss1-0 内核。

<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"/>

修改系统工程 makefile 后,将此示例导入 CCS。此步骤与其他系统工程相同。

GUID-BA1699B5-31C4-4CCD-957A-B05F4E0945AF-low.png图 5-4 导入 IPC Notify 的双核系统工程

修改 example.syscfg 以支持对内核 0-0 和 1-0 的 IPC Notify 功能。然后,禁用内核 1-0 和 1-1 的 IPC Notify 功能。

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

按如下所示更改远程内核 ID 列表以仅支持内核 1-0,并删除其余内核。在 ipc_notify_echo_am263x-cc_r5fss0-0_nortos_ti-arm-clang 和 ipc_notify_echo_am263x-cc_r5fss1-0_nortos_ti-arm-clang 工程的 ipc_notify_echo .c 文件中进行此更改。

uint32_t gRemoteCoreId[] = {
    CSL_CORE_ID_R5FSS1_0, 
    CSL_CORE_ID_MAX 
};
现在编译系统工程来为内核 0-0 和 1-0 生成组合的应用映像。此应用映像可以刷写到 AM2632 器件上。

GUID-2550136E-D656-492C-BCE4-FA7406E746CA-low.png图 5-7 为双核工程生成应用映像
注: AM2631 是单核器件,单核器件不支持 IPC 示例。