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.

[参考译文] TDA4VM:mcu1_0 (mcusw)和 MPU (vision_apps)之间的 Cdddipc

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1012222/tda4vm-cddipc-between-mcu1_0-mcusw-and-mpu-vision_apps

器件型号:TDA4VM
Thread 中讨论的其他器件:SYSBIOS

软件 版本:  RTOS-07-03-00-07   QNX-07-03-00

引导模式:  SPL (SD 卡)

参考  

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1008492/faq-tda4vm-cddipc-between-mcu1_0-mcusw-and-mcu2_1-vision_apps-based-on-sdk-v7-3

MCU1_0 (运行 AUTOSAR)和 MCU2_1 (运行视觉应用)之间的 IPC 已实现。

我们的项目需要在 mcu1_0 (mcusw)和 MPU (vision_apps)之间实现 Cddipc,这是否可以实现?  

我们已根据  参考 示例实现修改了 mcu1_0 (mcusw)和 MPU (vision_apps)的代码。

但启动期间发生异常。 Blow 是完整的错误日志。

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
U-Boot SPL 2020.01-svn2648 (Jun 18 2021 - 13:47:28 +0800)
SYSFW ABI: 3.1 (firmware rev 0x0015 '21.1.1--v2021.01a (Terrific Lla')
Reading on-board EEPROM at 0x50 failed -1
Trying to boot from MMC2
Loading Environment from MMC... *** Warning - No MMC card found, using default environment
Starting ATF on ARM64 core...
NOTICE: BL31: v2.4(release):07.03.00.005-dirty
NOTICE: BL31: Built : 00:15:40, Apr 10 2021
U-Boot SPL 2020.01-svn2648 (Jun 18 2021 - 18:12:17 +0800)
SYSFW ABI: 3.1 (firmware rev 0x0015 '21.1.1--v2021.01a (Terrific Lla')
Reading on-board EEPROM at 0x50 failed -1
Trying to boot from MMC2
i2c_write: error waiting for data ACK (status=0x116)
Error reading output register
U-Boot 2020.01-svn2648 (Jun 18 2021 - 18:12:17 +0800)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 

正在启动 tiipc-mgr..
Mailbox_plugInterrupt:中断号489、ARG 0x435ED018
Mailbox_plugInterrupt:中断号490、ARG 0x435ED1B8
Mailbox_plugInterrupt:中断号491、ARG 0x435ED358
Mailbox_plugInterrupt:中断号492、ARG 0x435ED4F8
Mailbox_plugInterrupt:中断号493、ARG 0x435ED698

Process 57360 (tiipc-mgr) terminated SIGSEGV code=1 fltno=11 IP=00000031435a310c (/ti_fs/tibin/tiipc-mgr@lus+0x00000000000000004dac) mapaddr=00000001ef=0000002400000184
存储器故障(转储内核)

 mcu1_0 (mcusw)和 MPU (vision_apps)之间 cddipc 的 vring_base_address 设置为0xB0000000,对吗?

如何解决 核心转储问题?

我们的项目基于 TROS+QNX (版本7.3)。

谢谢!  

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

    大家好、 :  

    可实现 MCU1_0 (cddipc)和 MPU (QNX、视觉应用)之间的 IPC。

    MPU (QNX)的 IPC 与 MPU (Linux)上实现的 IPC 不同、而 QNX 的 IPC 与其他主域内核(RTOS)上实现的 IPC 相似。

    我认为无需从 MPU (QNX 侧)进行许多更改。

    对于 MCU1_0、请参阅示例 CDD_IPC_PROFILE_APP ($mcusw/mcus_demos/profile/cddIpc)。

    为了更好地了解您的环境、请告诉我:

    1. IPC 是否在 MCU1_0 (mcusw、cddipc)和其他运行 TI-RTOS (视觉应用)的主域内核之间工作?
    2. IPC 是否在 A72 (QNX、VISION 应用程序)和其他运行 TI-RTOS (VISION 应用程序)的主域内核之间工作?  

    如果执行上述两项操作、那么在 A72 (QNX、VISION 应用程序)和 MCU1_0 (mcusw、cddipc)之间处理 IPC 将是一个良好的起点。

    谢谢。

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

    尊敬的 Peter:

     Q1:IPC 是否在 MCU1_0 (mcusw、cddipc)和其他运行 TI-RTOS (视觉应用)的主域内核之间工作?

    A1:我不知道 IPC  IPC 是否在 MCU1_0 (mcusw、cddipc)和其他运行 TI-RTOS (VISION 应用)的主域内核之间工作。

    如何测试它?   

    Q2:IPC 是否在 A72 (QNX、VISION 应用程序)和其他运行 TI-RTOS (VISION 应用程序)的主域内核之间工作?  

    A2:IPC  在 A72 (QNX、VISION 应用程序)和其他主域内核之间运行良好。  

    这可以通过运行./vx_app_arm_ipc.out 来验证。  

     

    正如您所说、对于  MCU1_0、我们引用了示例 CDD_IPC_PROFILE_APP ($mcusw/mcus_demos/profile/cddIpc)。

    ,我们还提到 $mcusw/mcus_demos/inter_core_comm/ipc_remote、  代码移植到  MPU (QNX、VISION 应用程序)。

    编译、生成一个新的*。out 文件、如 vx_app_arm_ipc.out。

    通过执行此操作、我们认为 MCU1_0 (cddipc)和 MPU (QNX、视觉应用)可以使用 cddipc 相互通信。

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

    大家好、 :  

    如上所述、MPU1_0 (A72、QNX)和其他主域内核之间的 IPC 正常工作。

    因此、我们不需要将 IPC_REMOTE 示例集成到 QNX 中。 QNX 侧的 IPC 已初始化。

    A72 (QNX)端需要为 MPU1_0启用 MCU1_0 IPC。

    基于上述内容、您是否会根据您的 QNX 环境进行一次实验:

    1.在$vision_apps/vision_apps_build_flags.mk 中启用 build_cpu_MCU1_0

    2.在 $vision_apps/apps/basic_demos/app_tirtos/common/app_cfg.h 中启用 ENABLE_IPC_MCU1_0

    在本实验中、除了上述更改之外、不要更改 SDK 中的其他文件。

    然后重建 vision_apps、并在 QNX 控制台中运行 vision_apps_init.sh。

    从控制台输出中、我们预计会看到一些 MCU1_0日志(IPC ECO 测试结果)。

    请共享控制台输出。

    谢谢。

      

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

    1.在$vision_apps/vision_apps_build_flags.mk 中启用 build_cpu_MCU1_0

    2.在 $vision_apps/apps/basic_demos/app_tirtos/common/app_cfg.h 中启用 ENABLE_IPC_MCU1_0

    3.cd vision_apps,make SDK

    4.CP /mcusw/binary/base_project_mcu1/bin/j721e_evm/base_project_mcu1_mcu1_0_debug.xer5f 美元       $/vision_apps/out/J7/R5F/SYSBIOS/release/vx_app_tirtos_QNX_mcu1_0.out

    5.使 QNX_FS_CREATE _SD、使 QNX_FS_INSTALL_SD。

    6. cd vision_apps,实现 uboot。   

    7. CP $/PSDKLA/board-support/u-boot-2020.01 +gitAUTOINC+2781231a33-g2781231a33/j721e-ARM64-QNX/tispl.bin /media/($user)/boot/-f

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    U-Boot SPL 2020.01-svn2210 (Apr 19 2021 - 14:47:42 +0800)
    SYSFW ABI: 3.1 (firmware rev 0x0015 '21.1.1--v2021.01a (Terrific Lla')
    Reading on-board EEPROM at 0x50 failed -1
    do_board_detect!
    Trying to boot from MMC2
    Loading Environment from MMC... *** Warning - No MMC card found, using default environment
    Starting ATF on ARM64 core...
    NOTICE: BL31: v2.4(release):07.03.00.005-dirty
    NOTICE: BL31: Built : 00:15:40, Apr 10 2021
    U-Boot SPL 2020.01-svn2648 (Jun 25 2021 - 10:24:59 +0800)
    SYSFW ABI: 3.1 (firmware rev 0x0015 '21.1.1--v2021.01a (Terrific Lla')
    Reading on-board EEPROM at 0x50 failed -1
    Trying to boot from MMC2
    i2c_write: error waiting for data ACK (status=0x116)
    Error reading output register
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
     

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

    如果 mcusw mcu1_0不被使用。  

    1.在$vision_apps/vision_apps_build_flags.mk 中启用 build_cpu_MCU1_0

    2.在 $vision_apps/apps/basic_demos/app_tirtos/common/app_cfg.h 中启用 ENABLE_IPC_MCU1_0

    3.cd vision_apps,make SDK

    4.使 QNX_FS_CREATE _SD、使 QNX_FS_INSTALL_SD。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    U-Boot SPL 2020.01-svn2210 (May 11 2021 - 10:51:16 +0800)
    SYSFW ABI: 3.1 (firmware rev 0x0015 '21.1.1--v2021.01a (Terrific Lla')
    Reading on-board EEPROM at 0x50 failed -1
    Trying to boot from MMC2
    Loading Environment from MMC... *** Warning - No MMC card found, using default environment
    Starting ATF on ARM64 core...
    NOTICE: BL31: v2.4(release):07.03.00.005-dirty
    NOTICE: BL31: Built : 00:15:40, Apr 10 2021
    U-Boot SPL 2020.01-svn2210 (May 17 2021 - 11:26:41 +0800)
    SYSFW ABI: 3.1 (firmware rev 0x0015 '21.1.1--v2021.01a (Terrific Lla')
    Reading on-board EEPROM at 0x50 failed -1
    Trying to boot from MMC2
    i2c_write: error waiting for data ACK (status=0x116)
    Error reading output register
    U-Boot 2020.01-svn2210 (May 17 2021 - 11:26:41 +0800)
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    [MCU1_0] 0.038299 s: ### CPU Frequency <ORG = 1000000000 Hz>, <NEW = 1000000000 Hz>
    [MCU1_0] 0.038345 s: APP: Init ... !!!
    [MCU1_0] 0.038367 s: MEM: Init ... !!!
    [MCU1_0] 0.038397 s: MEM: Created heap (DDR_SHARED_MEM, id=0, flags=0x00000004) @ e0000000 of size 8388608 bytes !!!
    [MCU1_0] 0.038452 s: MEM: Init ... Done !!!
    [MCU1_0] 0.038472 s: IPC: Init ... !!!
    [MCU1_0] 0.038501 s: IPC: 7 CPUs participating in IPC !!!
    [MCU1_0] 0.045337 s: IPC: Init ... Done !!!
    [MCU1_0] 0.045398 s: APP: Syncing with 6 CPUs ... !!!
    [MCU1_0] 4.468090 s: APP: Syncing with 6 CPUs ... Done !!!
    [MCU1_0] 4.468349 s: REMOTE_SERVICE: Init ... !!!
    [MCU1_0] 4.469989 s: REMOTE_SERVICE: Init ... Done !!!
    [MCU1_0] 4.475082 s: APP: Init ... Done !!!
    [MCU1_0] 4.476682 s: APP: Run ... !!!
    [MCU1_0] 4.478758 s: IPC: Starting echo test ...
    [MCU1_0] 4.483789 s: APP: Run ... Done !!!
    [MCU1_0] 4.484964 s: IPC: Echo status: mpu1_0[x] mcu1_0[s] mcu2_0[x] mcu2_1[x] C66X_1[P] C66X_2[.] C7X_1[.]
    [MCU1_0] 4.485070 s: IPC: Echo status: mpu1_0[x] mcu1_0[s] mcu2_0[x] mcu2_1[x] C66X_1[P] C66X_2[P] C7X_1[.]
    [MCU1_0] 4.485154 s: IPC: Echo status: mpu1_0[x] mcu1_0[s] mcu2_0[x] mcu2_1[x] C66X_1[P] C66X_2[P] C7X_1[P]
    [MCU1_0] 4.542821 s: IPC: Echo status: mpu1_0[x] mcu1_0[s] mcu2_0[x] mcu2_1[P] C66X_1[P] C66X_2[P] C7X_1[P]
    [MCU1_0] 4.697467 s: IPC: Echo status: mpu1_0[x] mcu1_0[s] mcu2_0[P] mcu2_1[P] C66X_1[P] C66X_2[P] C7X_1[P]
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    链接至  https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1001368/tda4vm-after-builded-mcu1_0-run-vision-apps-demos-for-display-ipc-error-occurs

    在我提交相关 IPC 问题之前。

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

    大家好, :  

    很抱歉、您共享的主题中缺少信息。

    根据 VISION 应用程序中的 IPC 回波测试结果、MCU1_0 (VISION 应用程序)和 MPU (A72、QNX、VISION 应用程序)之间的 IPC 正常工作。  

    因此、IPC 已成功初始化。

    是否要删除 ti_fs/scripts/user.sh 中的 IPC 初始化?

    然后重新启动设备,再次检查 vision_apps_init 日志。 让我们看看视觉应用回波测试是否可以通过 MCU1_0成功。

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

    尊敬的 Peter:  

    根据 VISION 应用程序中的 IPC 回波测试结果、MCU1_0 (VISION 应用程序)和 MPU (A72、QNX、VISION 应用程序)之间的 IPC 正常工作。  

    那么、您是如何得出这一结论的。?

    上面我给出了两个回复。  最后一个是 在 EVM 上运行 TI 软件。   MCU1_0 (VISION APP)和 MPU (A72、QNX、VISION APP)之间的 IPC 无法正常工作。  该链接 有相关说明。

    我们希望使用 cddipc、一个原因是 MCU1_0 (VISION 应用)和 MPU (A72、QNX、VISION 应用)之间的 IPC 无法正常工作。

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

    大家好, :  

    很抱歉,这是我的误解。

    我将在内部进行讨论、稍后再与您讨论。

    谢谢。

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

    您好 Peter:

    我有一些问题要问您。

    在有关 mcu1_0 (mcusw)和 MCU2_1 (vision_apps)之间 Cdddipc 的示例中。 在 cddipc_vision.diff 中、  

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    --- a/apps/basic_demos/app_tirtos/common/app_init.c
    +++ b/apps/basic_demos/app_tirtos/common/app_init.c
    @@ -494,7 +494,8 @@ int32_t appInit()
    if((host_os_type == APP_HOST_TYPE_LINUX) || (host_os_type == APP_HOST_TYPE_QNX))
    {
    /* dont sync with MPU1 running linux/qnx since that is taken care by the kernel */
    - if(ipc_init_prm.enabled_cpu_id_list[i]!=APP_IPC_CPU_MPU1_0)
    + if((ipc_init_prm.enabled_cpu_id_list[i]!=APP_IPC_CPU_MPU1_0)
    + &&(ipc_init_prm.enabled_cpu_id_list[i]!=APP_IPC_CPU_MCU1_0))
    {
    sync_cpu_id_list[num_sync_cpus] = ipc_init_prm.enabled_cpu_id_list[i];
    num_sync_cpus++;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    我的理解是  ,用于 MultiProc 配置的 IPC_mpSetConfig()、mcu1_0 (mcusw)和 MCU2_1 (vision_apps)是一对一的。 如果我为    mcu1_0 (mcusw)和 MCU2_1 (vision_apps)执行另一个 RPMessage_create()。 应调用 IPC_mpSetConfig()。 对吗?

    2.下面显示 了在调用 IPC_initVirtIO()与 在线内核配对之前应使用 IPC_isRemoteReady()。  您认为应该为 IPC 初始化完成此操作吗?  在您的示例中、是否应用了此函数?

     

    3.在我的应用程序中关于 cddipc beteen mcu1_0 (mcusw)和 MPU (vision_apps),我认为我只需要调用 RPMessage_create()来创建新的,如用于 在 MPU 和 MCU 之间进行通信的'channel'或'task'。 对吗?

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

    大家好、 :  

    请查看我的以下评论:

    1.你是对的。

    仅 Linux IPC 需要此功能。  

      RTOS/QNX IPC 不需要它。

    3.我同意你的意见。

      我没有 QNX 环境来验证这一点。

    谢谢。