工具与软件:
自从使用 AM263Px 以来、在调试多核应用时一直遇到问题。 症状是、如果多个内核同时运行且两个内核都连接在一起。 我正在 AM263Px 控制卡评估模块上使用 SBL_NULL (而非 DEV_BOOT)。 我看到的症状是异常中断。
SDK 版本:
MCU_PLUS_SDK_am263px_09_02_00_56
我在此处创建了一个主题:
E2E-AM263X:数据中止故障排除、寄存器分析-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI MCU-PLUS-SDK 支持论坛
…μ A 但转到了其他工作、从不解决问题。
我还看到了相关讨论:
(+) E2E-AM273X:多核应用的调试不可靠-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI MCU-PLUS-SDK 支持论坛
(+) AM2634:多核 FreeRTOS 空项目无法正常工作-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛
(+) E2E-AM263X:多核调试目标配置/Gel 文件澄清-基于的微控制器论坛-基于 Arm 的微控制器- TI MCU-PLUS-SDK 支持论坛
我查看了这些、但在这些线程中没有看到解决方案。
我正在使用示例 SDK 工程:
/ipc_spinlock_sharedmem_am263px-cc_system_freertos_nortos
…μ A 来展示。
- 选择系统项目并单击"Debug"
- 这会在控制台中触发以下输出:
Cortex_R5_0:GEL 输出:在 R5F0上加载的 GEL 文件完成
Cortex_R5_0:GEL 输出:***OnTargetConnect ()已启动***
Cortex_R5_0:GEL 输出:AM263Px 初始化脚本已启动。
请稍候...
Cortex_R5_0:GEL 输出:AM263 Px_Cryst_Clock_Loss_Status ()已启动
Cortex_R5_0:GEL 输出:晶体时钟存在
Cortex_R5_0:GEL 输出:AM263Px_SOP_Mode ()已启动
Cortex_R5_0:GEL 输出:SOP 模式= 0x00000003
Cortex_R5_0:GEL 输出:
OSPI - 8S 功能引导模式
Cortex_R5_0:GEL 输出:AM263 Px_Read_Device_Type ()已启动
Cortex_R5_0:GEL 输出:EFuse 设备类型值= 0x000000AA
Cortex_R5_0:GEL 输出:AM263Px_dual_or_lockstep_mode ()已启动
Cortex_R5_0:GEL 输出:r5fss0 = 0x00000001
Cortex_R5_0:GEL 输出:r5fss1 = 0x00000000
Cortex_R5_0:GEL 输出:
R5FSS0采用双核模式
Cortex_R5_0:GEL 输出:
R5FSS1采用双核模式
Cortex_R5_0:GEL 输出:MSS_CTRL 控制寄存器未锁定
Cortex_R5_0:GEL 输出:MSS_TOP_RCM 控制寄存器未锁定
Cortex_R5_0:GEL 输出:MSS_RCM 控制寄存器未锁定
Cortex_R5_0:GEL 输出:MSS_IOMUX 控制寄存器未锁定
Cortex_R5_0:GEL 输出:TOP_CTRL 控制寄存器未锁定
Cortex_R5_0:GEL 输出:
*** R5FSS0重置双内核***
Cortex_R5_0:GEL 输出:
***R5FSS1重置双内核***
Cortex_R5_0:GEL 输出:R5F ROM Eclipse
Cortex_R5_0:GEL 输出:R5FSS0_0已释放
Cortex_R5_0:GEL 输出:R5FSS0_1已发布
Cortex_R5_0:GEL 输出:R5FSS1_0被释放
Cortex_R5_0:GEL 输出:R5FSS1_1已发布
Cortex_R5_0:GEL 输出:L2存储器初始化完成
Cortex_R5_0:GEL 输出:邮箱存储器初始化完成
Cortex_R5_0:GEL 输出:xxxx*** R5FSS0/1双核模式已配置****
Cortex_R5_0:GEL 输出:SYS_CLK DIVBY2
Cortex_R5_0:GEL 输出:DPLL_CORE_HSDIV0_CLKOUT0被选为 R5FSS 和 SYS CLK 的 CLK 源
Cortex_R5_0:GEL 输出:
CLK 已编程400MHz 且200MHz
Cortex_R5_0:GEL 输出:
***启用外围设备时钟***
Cortex_R5_0:GEL 输出:启用 RTI[0:3]时钟
Cortex_R5_0:GEL 输出:启用 RTI_WDT[0:3]时钟
Cortex_R5_0:GEL 输出:启用 UART[0:5]/LIN[0:5]时钟
Cortex_R5_0:GEL 输出:启用 QSPI 时钟
Cortex_R5_0:GEL 输出:启用 I2C 时钟
Cortex_R5_0:GEL 输出:启用跟踪时钟
Cortex_R5_0:GEL 输出:启用 MCAN[0:3]时钟
Cortex_R5_0:GEL 输出:启用 MMCSD 时钟
Cortex_R5_0:GEL 输出:启用 MCSPI[0:4]时钟
Cortex_R5_0:GEL 输出:启用 CONTROLSS 时钟
Cortex_R5_0:GEL 输出:启用 CPTS 时钟
Cortex_R5_0:GEL 输出:启用 RGMI[5、50,250]时钟
Cortex_R5_0:GEL 输出:启用 XTAL_TEMPSENSE_32K 时钟
Cortex_R5_0:GEL 输出:启用 XTAL_MMC_32K 时钟
Cortex_R5_0:GEL 输出:
***所有 IP 时钟均已启用***
Cortex_R5_0:AM263Px
Cortex_R5_0:选择的电路板:CC
Cortex_R5_0:选择的器件:标准
Cortex_R5_1:AM263Px
Cortex_R5_1:选择的电路板:CC
Cortex_R5_1:选择的器件:标准
3)
最终两个内核都在 main 暂停。
4)
我可以运行内核 r5fss0-0、并在停止内核 r5fss0-1时停止它。
5)
我可以运行内核 r5fss0-1、并在停止内核 r5fss0-0时停止它。
6)
但是、当我运行时、如果尝试同时运行内核 r5fss0-1、然后启动 r5fss0-0、r5fss0-1上会立即发生中止。
请提供建议。