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.

[参考译文] DRA821U:IPC 从 A72上的 QNX 更改为 mcu1_0/1上的 RTOS (MCU 域)

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1062552/dra821u-ipc-from-qnx-on-a72-to-rtos-on-mcu1_0-1-mcu-domain

器件型号:DRA821U
主题中讨论的其他器件:DRA821

我们需要将 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 测试的信息、请参阅以下常见问题解答:

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1015234/faq-tda4vm-ipc_test-on-psdk-qnx-7-2-psdk-qnx-7-3

    此致

    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