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.
我们需要将 IPC 从 A72上的 QNX 通信到 mcu1_0/1 (MCU 域)上的 RTOS。
根据 SDK 示例、我尝试从 SD 构建并运行、但电路板崩溃或没有输出。
在哪里可以找到更改、构建和运行系统的工作分步说明?
EVM:Jacinto J721EXCP01EVM 和 J7200XSOMG01EVM DRA821
SDK j7200:
08_00_12 RTOS
08_00_00 QNX
08_00_05 Linux
BSP:BSP_ti-j7200-evm_br-710_be-710_SVN934683_JBN6.zip
~环境(从 μ C/ti-processor-sdk-rtos-j7200-evm-08_00_00_12/):
导出 PSDK_RTOS_PATH=${PWD}
导出 PSDK_QNX_path=${PSDK_RTOS_PATH}/psdkqa
导出 pdk_version=pdk_j7200_08_00_00_37
导出 pdk_path=${psdk_rtos_path}/${pdk_version}
导出 QNX_BASH=/home/$USER/qnx710
导出 QNX_BSP_NAME=BSP_ti-j7200-evm_br-710_be-710_SVN934683_JBN6.zip
导出 QNX_BSP_path=${QNX_BASE}/BSP
导出 QNX_BSP_VERSION=710_SVN933027_JBN3
导出 QNX_sdp_version=710
导出 BUIL_QNX_A72=yes
导出配置文件=释放
导出板=j7200_evm
使 EVM 正常工作的示例附件
(“Processor SDK QNX J7200”中的段落编号):
----------------------------------------------------
3.2.2.步骤2:将文件复制到 SD 卡- QNX + SBL 引导应用程序-看起来正常
IPC_TEST
IPC_ECHO_TEST (内核:mpu1_0)…
响应器 Fxn 将保持活动状态。 完成后、请使用 Ctrl-c 退出测试。
SendTask4:mpu1_0 <->MCU2_1、乒- 10、pong - 10完成
SendTask3:mpu1_0 <->MCU2_0、乒- 10、pong - 10完成
----------------------------------------------------
3.2.3.步骤2a:将文件复制到 SD 卡- QNX + SPL-Uboot
(命令校正)
启动失败。
输出:
U-Boot SPL 2021.01-g53e79d0e89 (2021年8月7日- 08:12:48 +0000)
型号:德州仪器 K3 J7200 SoC
电路板:J7200X-PM2-SOM 修订版 E6
SYSFW ABI:3.1 (固件版本0x0015 '21.5.0--v2021.05 (极好的 Llam')
尝试从 MMC2引导
在 ARM64内核上启动 ATF...
注意: BL31:v2.5 (发行版):08.00.004-脏
注意: BL31:构建时间: 2021年8月7日07:25:50
U-Boot SPL 2021.01-g53e79d0e89 (2021年8月7日- 07:28:31 +0000)
型号:德州仪器 K3 J7200 SoC
电路板:J7200X-PM2-SOM 修订版 E6
SYSFW ABI:3.1 (固件版本0x0015 '21.5.0--v2021.05 (极好的 Llam')
检测到:J7X-BASE-CPB 修订版 E3
检测到:J7X-VSC8514-ETH 修订版 E2
尝试从 MMC2引导
am654_sdhci sdhci@4fb0000:pinctrl_select_state_full:uclass_get_device_by_phandle_id:err=-19
U-Boot 2021.01-g53e79d0e89 (2021年8月7日- 07:28:31 +0000)
SoC: J7200 SR1.0
型号:德州仪器 K3 J7200 SoC
电路板:J7200X-PM2-SOM 修订版 E6
DRAM: 4 GiB
闪存:0字节
MMC: sdhci@4f80000:0、sdhci@4fb0000:1
正在从 MMC 加载环境... ***警告- CRC 错误,使用默认环境
IN: 串行@2800000
输出: 串行@2800000
ERR: 串行@2800000
检测到:J7X-BASE-CPB 修订版 E3
检测到:J7X-VSC8514-ETH 修订版 E2
NET: am65_cpsw_nuss_slave 以太网@46000000:K3 CPSW:nuss_ver:0x6BA02102 cpsw_ver:0x6BA82102 ale_ver:0x00293904端口:1 MDIO_freq:1000000
eth0:以太网@46000000
按任意键停止自动引导: 0
切换到分区#0,确定
mmc1是当前器件
在器件1上找到 SD/MMC
无法加载'boot.scr'
在3ms (180.7KiB/s)内读取556字节
从 uEnv.txt 加载了 env
正在从 mmc1导入环境...
正在运行 envcmd ...
GPIO:引脚 GPIO@22_17 (GPIO 126)值为1
GPIO:引脚 GPIO@22_16 (GPIO 125)值为0
k3_r5f_rproc r5f@41000000:内核1已在使用中。 rproc 命令不起作用
k3_r5f_rproc r5f@41400000:内核2已在使用中。 rproc 命令不起作用
在73ms (88.6 MIB/s)内读取6782412字节
使用数据加载远程处理器2@addr=0x82000000 6782412字节:成功!
4792548字节在52ms 内读取(87.9MiB/s)
使用数据加载远程处理器3@addr=0x82000000 4792548字节:成功!
8349640字节在90ms 内读取(88.5 MIB/s)
##正在启动应用程序,地址为0x80080000...
MMU:16位 ASID 44位 PA TCR_EL1=b5183519
CPU0:MPIDR = 8000000
CPU0:MIDR=411fd080 Cortex-A72 r1p0
CPU0:CWG=4 ERG=4 Dminline=4 Iminline=4 PIPT
CPU0:CLIDR = a200023 LUU=1 LOC=2 LOI=1
CPU0:L1高速缓存48K 线性=64 Set/Way=256/3
CPU0:L1 Dcache 32K linesz=64 Set/Way=256/2
CPU0:L2 Unified 1024K linesz=64 Set/Way=1024/16
正在加载 IFS...decompressing...done
CPU1:MPIDR = 8000000001
CPU1:MIDR=411fd080 Cortex-A72 r1p0
CPU1:CWG=4 ERG=4 Dminline=4 Iminline=4 PIPT
CPU1:CLIDR=a200023 LUU=1 LOC=2 LOI=1
CPU1:L1高速缓存48K 线性=64 Set/Way=256/3
CPU1:L1 Dcache 32K linesz=64 Set/Way=256/2
CPU1:L2 Unified 1024K linesz=64 Set/Way=1024/16
系统页面,网址为 phys:000080011000 user:ffff8040254000 kern:ffff8040251000
从 vffffff80600883c0开始下一个程序
容差范围内的所有 ClockCycles 偏移
欢迎使用 TI J7200 EVM 板上的 QNX Neutrino 7.1.0!
正在启动随机服务...
启动串行驱动程序
启动 i2c 驱动程序
正在启动 MMC/SD 存储卡驱动程序... eMMC
正在启动 MMC/SD 存储卡驱动程序... SD
在 USB3SS0上启动 XHCI 驱动程序
错误: 从 S-EL1在0x8000000上接收到未处理的外部中止
错误: 异常原因=0综合征=bbf000000
来自 EL0的未处理异常
X0 = 0x00000049c4648bd0
X1 = 0x0000000000000000
X2 = 0x0000001028c30000
X3 = 0x0000000000000000
x4 = 0x0000001028c30000
X5 = 0x0000001028c30000
X6 = 0x0000000000000000
X7 = 0x0000000000000000
X8 = 0x000000000000000c
X9 = 0x000000010001
X10 = 0x0000000000000b00
X11 = 0x000000010000
X12 = 0x00000000000000000000
X13 = 0x000000000040
X14 = 0x0000005037afd36d
X15 = 0x00000000000000000000
X16 = 0x00000039fe6c6988
X17 = 0x00000039fe65aef0
X18 = 0x0000005037afd2bd
X19 = 0x00000049c4648bd0
X20 = 0x00000049c4648bd0
X21 = 0x00000049c4648ca0
X22 = 0x000000010000
X23 = 0x00000039fe703b00
X24 = 0x00000039fe703000
X25 = 0x00000039fe719160
X26 = 0x00000049c4648c10
X27 = 0x0000002e91a3d3d0
X28 = 0x0000005037afdb60
X29 = 0x0000005037afd8b0
X30 = 0x00000039fe6fd928
SCR_EL3 = 0x000000000000073d
sctlr_EL3 = 0x000030cd183f
CPTR_EL3 = 0x0000000000000000
TCR_EL3 = 0x000080803520
DAIF = 0x00000000000002c0
MACE_EL3 = 0x00000000004404ff
spsr_EL3 = 0x0000000000000000
ELR_EL3 = 0x00000039fe6faa38
ttbr0_EL3 = 0x000070010c00
ESR_EL3 = 0x00000000bf000000
FAR_EL3 = 0x0000000000000000
spsr_el1 = 0x000080000000
ELR_EL1 = 0x00000039fe65af00
spsr_abt = 0x0000000000000000
spsr_und = 0x0000000000000000
spsr_IRQ = 0x0000000000000000
spsr_fiq = 0x0000000000000000
sctlr_el1 = 0x000034d5db1d
actlr_el1 = 0x0000000000000000
cpacr_el1 = 0x0000000000000000
csselr_el1 = 0x0000000000000002
SP_el1 = 0xffff80830df000
ESR_el1 = 0x000056000051
ttbr0_el1 = 0x000d0008f79d6000
ttbr1_el1 = 0x00008000b000
mair_el1 = 0x0000000044ea0400
amair_el1 = 0x0000000000000000
TCR_el1 = 0x00000014b5983599
tpidr_el1 = 0x0000000000000000
tpidr_el0 = 0x0000000000000000
tpidrro_el0 = 0x0000005037afdf30
PAR_EL1 = 0x0000000000000000
mpidr_el1 = 0x000080000000
afsr0_el1 = 0x0000000000000000
afsr1_el1 = 0x0000000000000000
contexttidr_el1 = 0x0000000000000000
vbar_el1 = 0xffff8060089000
cntp_ctl_el0 = 0x0000000000000000
cntp_cval_el0 = 0x0000000000000000
CNTV_ctl_el0 = 0x0000000000000005
CNTV_cval_el0 = 0x000036370e02
Cntkctl_el1 = 0x0000000000000002
SP_el0 = 0x00007000a3d0
ISR_el1 = 0x000000000040
dacr32_el2 = 0x0000000000000000
ifsr32_el2 = 0x0000000000000000
cpuectlr_el1 = 0x0000001b00000040
cpumerrsr_el1 = 0x0000000000000000
l2merrsr_el1 = 0x0000000000000000
--------------------------------------
5.4. IPC 资源管理器
------------------
构建 u-boot 部件以与 mcu1_0通信。
“make -s ex02_BIOS_multicore_echo_testb_freertos Board=j7200_EVM core=mcu1_0 -J2”–没有执行任何操作,但我们在文件夹中有“ex02_BIOS_multicore_echo_testb_freertos_mcu1_0_release_strip.xer5f"
pdk_j7200_08_00_00_37/packages/ti/binary/ex02_BIOS_multicore_echo_testb_freertos/bin/j7200_evm/
将文件复制到 Linux SDK 并构建 u-boot 器件:
CP ${PSDK_RTOS_PATH}/pdk_j7200_08_00_xx/packages/ti/binary/ipc_echo_testb_freertos/bin/j7200_evm/ex02_bios_multicore_echo_testb_freertos_mcu1_0_release_strip.xer5f ${pv7_evm_linux_remote_test_remote_remote_remote_remote_remote_remote_remote_board/linux_support_remote_remote_remote_remote_remote_remote_remote_remote_remote_release_linux
CD ${PSDK_Linux_path}
使 u-boot_clean
进行 u-boot
处理 SD。
上电后–无输出。
尊敬的 Arthur:
您将哪个固件映像用于 MCU1_0? 您需要为 MCU1_0使用 ex02_BIOS_multicore_echo_testb 固件映像。 默认情况 下、Linux SDK 引导加载程序二进制文件使用 Linux 兼容的 IPC_ECHO_TESB_mcu1_0固件映像构建。
有关在 QNX 上运行 IPC 测试的信息、请参阅以下常见问题解答:
此致
Suman
我的同事 Arthur 询问了不起作用的 EVM j7200示例。
随附链接的答案适用于 j721e -另一个电路板、另一个 SDK。
我们找不到有关如何在 J7200上为 mcu1_0/1构建和运行 IPC 测试的工作示例。
事先谢谢、
Igor
尊敬的 Suman:
现在我使用的是新的 J7200 SDK 08_01_00、情况有所改善(TI PDK Git 的 SDK osal\src 文件中遗漏了该内容)。
我成功运行了 MCU0_1的 IPC 回波测试。
我有疑问:
1。
仅当我使用 ex02_BIOS_multicore_echo _testb_freertos_mcu1_0_release_strip.xer5f (重命名为 IPC_ECHO_testb_mcu1_0_release_strip.xer5f)构建 tispl.bin 并将 ex02_BIOS_rove_ECHO_b_freertexe_b_mcu1_tex0_mcu/rtf0 (重命名为0)/mcu_rtf_rtf_rtf0时、IPC 回显式 w_mc0_rtf_rtw_rtw_rtw_m0_rtw_rtw_rtw_rtw_m0
同一 MCU 固件存在于两个位置是否正常? 也许有一种更简单的方法来构建和运行 MCU0_1固件?
2.
在 J7200文档中,仅介绍了 MCU0_1“IPC echo test”的一个示例,并且有单独的 ex02_BIOS_multicore_echo_testb_freertOS 编译。
为 MCU0_1构建和运行示例有哪些限制和特殊之处?
3.
在哪里可以找到从 MPU 到 MCU0_1的大数据传输示例?
事先谢谢、
Igor
抱歉、我当然是指 mcu1 _0 (不是 MCU0_1)。
"Processor SDK RTOS J7200 08_01_00"一段中的大多数文档都是"8.3. 使用 SYSFW 进行 MCU1_0应用开发"是指 j721 EVM 和“vision_apps”,与 j7200 EVM 无关。
Igor。
您好 Igor、
[引用 userid="425184" URL"~/support/processors-group/processors/f/processors-forum 1062552/dra821u-IPC-from-QNX-on-a72至 RTOS-on-mcu1_0-1-MCU-domain/3942748#3942748"](我在 TI PDK 的 SDK osal\src 文件中遗漏了内容)[/quote是的、上载了一个需要在默认安装之上应用的修补程序。 此主题上也报告了这种情况: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1066206/tda4vm-sdk8-1-qnx-rtos-build-failure
重命名严格与默认 U-Boot 构建命令使用的文件名有关。 U-Boot 构建使用名称 IPC_ECHO_testb_mcu1_0_release_strip.xer5f、这实际上是 Linux 友好型 MCU1_0 DM 固件映像。 此映像不能按原样用于 QNX、因此您需要使用 QNX 适当 的 ex02_BIOS_multicore_echo_testb_freertos_mcu1_0_release_strip.xer5f 固件文件。
将固件文件复制到 ${ROOTFS}/lib/firmware 中与默认的 U-Boot Early 引导 env 变量有关。 MCU1_0 DM 固件不需要此功能(它合并为 A72 SPL tispl.bin 二进制文件、这是一个合适的映像)、但其他 R5F (如 MCU2_0和 MCU2_1)需要此功能。
2.您使用什么链接来进行此陈述?
IPC 示例的 PSDK QNX 文档 确实提到了正确的映像。 8.0 SDK 提供了两个等效映像、一个映像与 SYS/BIOS 相同、另一个映像与 FreeRTOS 相同。 从8.1 SDK 开始、SYS/BIOS 完全取消配置、仅提供 FreeRTOS 映像。
3. J7200 ATM 没有现成的大数据传输示例,J721E 上的现有示例基于 Vision Apps。 我将在接下来的几周内添加有关这方面的常见问题解答。
感谢您指出文档中存在的空白、我将在内部跟进、以便为下一个 SDK 修复此问题。
此致
Suman
尊敬的 Suman:
感谢您的回答。
但我仍然不知道如何在 SPL 引导模式下在 mcu1_0上构建和运行其他 PDK 示例(例如 enet_lwip_example_freertos)。
可以告诉我吗?
此致、
Igor
您好 Igor、
有关 MCU1_0 IPC 的原始问题是否已解决、或者您仍需要在此处进行澄清?
运行 MCU1_0的以太网是主题与主题标题分开的、建议为此打开一个新的主题。
此致
Suman