This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] LP-AM261:工业通信双核示例

Guru**** 2577385 points
Other Parts Discussed in Thread: AM2612

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1556333/lp-am261-industrial-comms-dual-core-example

器件型号:LP-AM261
Thread 中讨论的其他器件:AM2612

工具/软件:

您好:

我想知道是否有任何将 AM2612 的两个内核与工业通信 SDK 一起使用的示例。 我们希望能够在一个核心中运行现场总线堆栈、并 将另一个核心用于我们的应用、该应用将处理数据、然后将其发送到现场总线堆栈。 我尝试了创建一个示例工程、我的团队成员也可以导入到 CCS 中作为起点、但在正确编译时遇到了问题、我假设我没有正确设置 sys config 文件、因为我不知道如何修改这些文件以使用双核、并尝试复制我在 MCU+ SDK 中从双核示例看到的内容。 具体来说、当我尝试将工程导入 CCS20 并进行编译时、会收到以下错误消息。 我认为我遇到的问题主要是不知道如何正确修改系统配置文件、尤其是内存区域。

[278]Building target: "profinet_dual_core_am261x-lp_r5fss0-1_freertos_ti-arm-clang.out"
[279]Invoking: Arm Linker
[280]"C:/ti/ti_cgt_arm_llvm_4.0.1.LTS/bin/tiarmclang.exe" -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -DSOC_AM261X -D_DEBUG_=1 -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -Wl,-m"profinet_dual_core.Debug.map" -Wl,-i"C:/ti/ind_comms_sdk_am261x_10_02_00_17/mcu_plus_sdk/source/kernel/freertos/lib" -Wl,-i"C:/ti/ind_comms_sdk_am261x_10_02_00_17/mcu_plus_sdk/source/drivers/lib" -Wl,-i"C:/ti/ti_cgt_arm_llvm_4.0.1.LTS/lib" -Wl,--reread_libs -Wl,--diag_suppress=10063 -Wl,--diag_wrap=off -Wl,--display_error_number -Wl,--warn_sections -Wl,--gen_xml_func_hash -Wl,--xml_link_info="profinet_dual_core_am261x-lp_r5fss0-1_freertos_ti-arm-clang_linkInfo.xml" -Wl,--ram_model -o "profinet_dual_core_am261x-lp_r5fss0-1_freertos_ti-arm-clang.out" "./syscfg/ti_dpl_config.o" "./syscfg/ti_drivers_config.o" "./syscfg/ti_drivers_open_close.o" "./syscfg/ti_pinmux_config.o" "./syscfg/ti_power_clock_config.o" "./syscfg/ti_board_config.o" "./syscfg/ti_board_open_close.o" "./syscfg/ti_enet_config.o" "./syscfg/ti_enet_open_close.o" "./syscfg/ti_enet_soc.o" "./syscfg/ti_enet_lwipif.o" "./main.o" "./r5f_0_1_main.o" -Wl,-l"syscfg/linker.cmd"  -Wl,-lfreertos.am261x.r5f.ti-arm-clang.debug.lib -Wl,-ldrivers.am261x.r5f.ti-arm-clang.debug.lib -Wl,-llibc.a -Wl,-llibsysbm.a 
[281]"syscfg/linker.cmd", line 74: error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section, or the section contains padded functions. run placement with alignment fails for section "GROUP_4" size 0x126c9.  Available memory ranges:
[282]   OCRAM        size: 0x10000      unused: 0x3218       max hole: 0x3218    
[283]error #10010: errors encountered during linking; "profinet_dual_core_am261x-lp_r5fss0-1_freertos_ti-arm-clang.out" not built
[284]tiarmclang: error: tiarmlnk command failed with exit code 1 (use -v to see invocation)
[285]gmake[1]: *** [makefile:151: profinet_dual_core_am261x-lp_r5fss0-1_freertos_ti-arm-clang.out] Error 1
[286]gmake: *** [makefile:145: all] Error 2
[287]**** Build Finished ****
[288]**** Build of configuration Debug for project profinet_dual_core_am261x-lp_system_freertos ****
[289]"C:\\ti\\ccs2020\\ccs\\utils\\bin\\gmake" -k system-post-build 
 
[290]C:/ti/ccs2020/ccs/utils/bin/gmake -C C:\Users\maniojo\workspace_ccstheia\profinet_dual_core_am261x-lp_system_freertos -f makefile_system_ccs_bootimage_gen OUTNAME=profinet_dual_core_system PROFILE=Debug INDUSTRIAL_COMMUNICATIONS_SDK_PATH=C:/ti/ind_comms_sdk_am261x_10_02_00_17 CG_TOOL_ROOT=C:/ti/ti_cgt_arm_llvm_4.0.1.LTS CCS_INSTALL_DIR=C:\ti\ccs2020\ccs\ CCS_IDE_MODE=desktop
[291]gmake[1]: Entering directory 'C:/Users/maniojo/workspace_ccstheia/profinet_dual_core_am261x-lp_system_freertos'
[292] Boot multi-core image: Debug/profinet_dual_core_system.appimage ...
[293]C:\ti\ccs2020\ccs\/tools/node/node C:/ti/ind_comms_sdk_am261x_10_02_00_17/mcu_plus_sdk/tools/boot/multicoreImageGen/multicoreImageGen.js --devID 55 --out Debug/profinet_dual_core_system.appimage ../profinet_dual_core_am261x-lp_r5fss0-0_freertos_ti-arm-clang/Debug/profinet_dual_core_am261x-lp_r5fss0-0_freertos_ti-arm-clang.rprc@0 ../profinet_dual_core_am261x-lp_r5fss0-1_freertos_ti-arm-clang/Debug/profinet_dual_core_am261x-lp_r5fss0-1_freertos_ti-arm-clang.rprc@1  >> Debug/temp_stdout_Debug.txt
[294]gmake[1]: Leaving directory 'C:/Users/maniojo/workspace_ccstheia/profinet_dual_core_am261x-lp_system_freertos'
 
[295]File ../profinet_dual_core_am261x-lp_r5fss0-1_freertos_ti-arm-clang/Debug/profinet_dual_core_am261x-lp_r5fss0-1_freertos_ti-arm-clang.rprc does not exist
[296]gmake[1]: *** [makefile_system_ccs_bootimage_gen:64: all] Error 1
[297]gmake: [makefile:15: system-post-build] Error 2 (ignored)
[298]**** Build Finished ****

我附上了一个尝试导入 CCS20 的工程的 zip 文件。

e2e.ti.com/.../am261x_5F00_profinet_5F00_dual_5F00_core_5F00_template.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Joe,请允许我有时间回到这里。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是否有更新?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Joe、

    您可以参阅存储器配置器部分:

    您需要 确保没有在不同内核中配置重叠的存储器区域。

    一种方法是使用 MCU PLUS SDK 中的系统工程并对其进行修改以满足您的需求、另一种方法是采用静态存储器配置(例如,在链接器中手动为每个内核分配一个组。)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:Nilabh、

    我首先使用一个空系统工程作为基础、然后进行了更改、因此第一个内核引入了所有 PROFINET 代码、方式与 PROFINET 示例相同。 我已经浏览过我的内存区域、并且我的 SYSCFG 不会出现任何错误或警告。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Joe、

    错误日志显示链接器中的存储器冲突、让我在调用之前先看看它。 那么我们就可以在通话中进行讨论了。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:Nilabh、

    自会议以来、我们决定在设计中添加 PSRAM。 是否可以帮助让多核 Profinet 工程使用 PSRAM 运行?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Joe、

    请参阅随附的 syscfg、这是从 PSRAM 运行代码所需的唯一更改:

    请注意、OSPI 时钟在 166/4 下运行、因此程序执行很慢、我们也正在为 PSRAM 启用 166MHz。

    /cfs-file/__key/communityserver-discussions-components-files/908/example_2800_1_2900_.syscfg