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.

[参考译文] Linux/TDA2PXEVM:在 tda2px 板故障时运行 VISION SDK 演示

Guru**** 2540720 points
Other Parts Discussed in Thread: PGA460

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/761622/linux-tda2pxevm-run-vision-sdk-demo-on-the-tda2px-board-fail

器件型号:TDA2PXEVM
Thread 中讨论的其他器件:PGA460

工具/软件:Linux

大家好、

我在 tda2px 板上运行视觉 SDK 演示、但有时会失败、我只使用 A15和 IPU2内核。 按以下方式记录:

HOST] OSA:MEM:0:将0xa0100000映射到大小为0x00100000的0xa6ffa000

[主机] OSA:MEM:1:将0x84203000映射到0x9f5fa000、大小为0x07a00000

[主机] OSA:MEM:2:将0xa0200000映射到大小为0x00040000的0xa7d1c000

[主机] OSA:MEM:3:已将0xa02c0000映射到大小为0x00080000的0x9f57a000

[主机] OSA:MEM:4:已将0x00000000映射到大小为0x00000000的0x00000000

[主机] OSA:主机远程日志共享存储器@ 0xa024f140

[主机] OSA:IPU2远程日志共享存储器@ 0xa0363da0

断言(system_ipc.c|System_ipcInit|119)

[host][host ]  1417.277343 s: 系统:系统 A15正在进行初始化!!!

[host][host ]  1417.277404 s: 系统:IPC:正在初始化!!

[host][host ]  1417.277404 s: 系统:IPC:通知初始化正在进行!!!

[host][host ]  1417.277496 s: 系统:IPC:[IPU2]套接字绑定失败(无效参数,22)!!!

[host][host ]  1417.277557 s: 系统:IPC:[IPU2]通知 RX 通道创建失败(端点= 81)!!!

您能帮我找出问题吗?

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

    您能否提供更多详细信息:您的 VisionSDK 是哪个版本、您是否进行了任何更改?

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、yordan、
    版本为0304、我们只更改了用例、错误"[IPU2]套接字绑定失败(无效参数、22)!!!" 我认为这是 IPC 问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您在 SDK 中进行了哪些更改?
    请尝试构建新的 SDK 并禁用除 IPU2和 A15之外的所有内核、然后尝试一次。

    如果您未修改核心 Links_FW 中的任何内容、则不会出现此问题。

    此致、
    Anuj
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Anuj:
    这是我们的配置:

    $ make -s showconfig
    编号
    # Build Config 为[ tda2p_evm_linux_all ]
    # Build Config 文件为@/home/cfan5/projects/android/6AO.1.1/visionSDK_0304/vision_sdk/configs/tda2px_evm_linux_all/cfg.mk
    # Build Config .h 文件为@/home/cfan5/projects/android/6AO.1.1/visionSDK_0304/vision_sdk/links_fw/include/config/apps/tda2px_evm_linux_all/system_cfg.h
    # Build CPUs 为@ ipu2 a15_0
    编号
    应用程序中包含的 CPU 数量、
    # PROC_IPU1_0_INCLUDE=否
    # PROC_IPU1_1_INCLUDE=否
    # PROC_IPU2_include=是
    # PROC_DSP1_INCLUDE=否
    # PROC_DSP2_INCLUDE=否
    # PROC_EVE1_INCLUDE=否
    # PROC_EVE2_INCLUDE=否
    # PROC_EVE3_INCLUDE=否
    # PROC_EVE4_INCLUDE=否
    # PROC_A15_0_include=是
    编号
    #平台配置,
    # vsdk_Board_type=TDA2PX_EVM [选项:TDA2XX_EVM TDA2EX_EVM TDA3XX_EVM TDA3XX_RVP TDA2XX_RVP]
    # platform=tda2per-evm
    # DUAL_A15_SMP_BIOS=否
    # IPU1_SMP_BIOS=否
    # DDR_MEM=DDR_MEM_1024M [选项:DDR_MEM_128M DDR_MEM_512M DDR_MEM_1024M]
    # EMIFMODE=Single_EMIF_512Mb [选项:single_EMIF_512Mb single_EMIF_1GB ref build_pdk.mk
    # NDK_PROC_TO_USE=NONE [选项:A15_0 ipu1_0 ipu1_1 ipu2 none]
    # NSP_TFDTP_INCLUDE=否[选项:是否]
    # TDA2EX_ETHSRV_Board=no [选项:是否]
    # FATFS_PROC_TO_USE=NONE [选项:ipu1_0 none]
    # radar_Board=none [选项:TDA3XX_AR12_ALPS TDA3XX_AR12_VIB_DAB_BOOSTER TDA3XX_RADAR None]
    编号
    #构建配置、
    # build_os=linux [选项:Windows_NT Linux]
    # build_dependency_always=no
    # build_Algorithms=否
    # build_INFOADAS=否
    # profile = release [选项:debug release]
    # KW_BUILD =否
    # cplusplus_build=no
    # IPU_PRIMARY_CORE=ipu2 [选项:ipu1_0 ipu2]
    # IPU_secondary 核心=ipu1_0 [选项:ipu1_0 ipu2]
    # A15_target_os=Linux [选项:BIOS Linux QNX]
    # bsp_stw_package_select=所有[选项:所有 VPS-iss-dss 仅 VPS-VPS-VIP-VPE]
    编号
    #安全模块配置、
    # RTI_INCLUDE=否
    # ECC_FFI 包含=否
    # DCC_ESM_INCLUDE=否
    编号
    #视频模块配置,
    # IVAHD_INCLUDE=yes
    # VPE_INCLUDE=yes
    # CAL_INCLUDE=否
    # iSS_include=否
    # iSS_ENABLE_DEBUG_TAPS =否
    # WDR_LDC_INCLUDE=否
    # dss_include=yes
    编号
    #打开计算配置、
    # OpenCL_include=否
    # target_rootdir=/home/cfan5/projects/android/6AO.1.1/mydroid
    # ENABLE_OpenCV=否
    # ENABLE_OpenCV_TESS=NO
    # OPENVX_INCLUDE=否
    编号
    #日志配置、
    # ENABLE_UART_LOG=yes
    # enable_network_log=no
    # ENABLE_CCS_LOG=NO
    # CIO_REDIRECT =是
    编号
    # IPC 配置、
    # WORKQ_INCLUDE=否
    # IPC_LIB_INCLUDE=否
    编号
    #环视配置、
    # SRV_FAST_BOOT_INCLUDE=否
    编号
    #其他模块配置、
    # AVB_INCLUDE=否
    # DCAN 包含=否
    # radar_only=no
    # CPU_IDLE_ENABLED =是
    # FAST_BOOT_INCLUDE=NO
    # DATA_VIS_INCLUDE=否
    # HS_DEVICE_=否
    # Ultrasonic include=否
    # PGA450=否
    # PGA460=否
    # ENABLE_All_DEPTH =否
    编号
    # Linux 配置、
    # default_uBoot_config=dra7xx_evm_vision_config
    # default_kernel_config=ti_sdk_dra7x_release_defconfig
    # default_dtb=dra76-evm-infoadas。dtb
    # CMEM_INCLUDE=yes
    # IPUMM_include=否
    # IPU1_EVELOADER_INCLUDE=否
    # STANCED_RVC_INCLUDE=否
    # build_ADAM_car=no
    编号
    #构建中包含 ALG 插件、
    编号
    编号
    #构建中包含的用例、
    # uC_disp_dist_src_display_android_no_cap
    编号
    编号
    #个不需要但包含在配置[ tda2p_evm_linux_all ]中的 CPU,
    编号
    编号
    需要但未包含在配置[ tda2px_evm_linux_all ]中的 CPU 数量,
    编号
    #错误:IPU1_0必须包含在应用程序中
    编号
    #编辑/home/cfan5/projects/android/6AO.1.1/visionSDK_0304/vision_sdk/build/configs/tda2px_evm_linux_all/cfg.mk 以在应用程序中包括或排除 CPU


    我们还更改了 apps/build/tda2px/mem_segure_define_linux.xs 文件:

    /*
    *==== MEM_SEGM_SEGML.xs ===
    *==== 所有内核内存映射配置的单个文件====
    *

    KB=1024;
    MB=KB*KB;

    /*内核内部存储器资源的分配*/
    DSP1_L2_SRAM_ADDR = 0x40800000;
    DSP1_L2_SRAM_SIZE = 288*KB;

    DSP2_L2_SRAM_ADDR = 0x41000000;
    DSP2_L2_SRAM_SIZE = 288*KB;

    EVE1_SRAM_ADDR = 0x42000000;
    EVE1_SRAM_SIZE = 1*MB;

    EVE2_SRAM_ADDR = 0x42100000;
    EVE2_SRAM_SIZE = 1*MB;

    /* DDR3内存映射1.5GB */
    /*********
    必需 大小地址 用于 可高速缓存
    A15-Linux 64MB 0x8000000
    SR1 + NDK、 128MB 0x84000000 SR1+NDK 对所有内核都是
    IPU2-BIOS 80MB 0x99000000 Vision-SDK FWK (12MB 孔)
    IPU1-BIOS 32MB 0x9e000000 IPU2内核 IPU1是
    DSP1-BIOS 64MB 0xA1000000无线电(+分析算法) 16MB 不可高速缓存-无线电需要
    DSP2-BIOS 32MB 0xA3000000 SRV 算法 对 DSP2来说是
    A15、IPU1/2、DSP1/2 32MB 0xA0000000 SR0 不适用于所有内核
    EVE 64MB 0xA5000000
    SR2_base_ADDR 0xA9000000
    A15-Linux 0xC0000000 (交错结束)
    (小部分 /
    DDR3_ADDR = 0x8000000;
    DDR3_size = 1024*MB;
    DDR3_Linux_MEM_OFFSET = 64*MB;

    /*在不同内核上运行的不同组件的地址和大小定义*/
    NDK_START_ADDR = ddr3_base_ADDR_0 + ddr3_linux_MEM_offset;
    NDK_MEM_SIZE = 2*MB
    SR1_FRAME_buffer_size =122*MB;
    SR1_buff ECC_ASIL_SIZE = 4*KB;
    SR1_buff ECC QM_SIZE = 4*KB;
    SR1_buff 非 ECC_ASIL_SIZE = 4*KB;



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

    您是否已将 DTB 名称修改为 uenv.txt 文件中的 dra76-EVM-infoadas.dTB。

    此致、
    Anuj
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Anuj:
    我想知道 uenv.txt 在哪里、uboot dir 是什么? 内核目录? VisionSdk 目录?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    它将在 SD 卡的引导分区中提供、在该分区中将放置 MLO。

    此致、
    Anuj
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Anuj:
    谢谢、现在我们不是从 SD 卡引导、所以不使用 uenv.txt 文件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    那么、如何引导?

    此致、
    Anuj
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我们从 EMMC 启动系统、
    首先从 EMMC 加载 uboot、然后从 uboot 加载内核、我们将通过设置内核 DTS 文件来加载 M4固件。 然后运行 apps.out。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您能否尝试使用 SD 引导。
    它将确认在引导模式或代码中是否存在任何问题。

    此致、
    Anuj
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    抱歉、我们的主板没有 SD 卡插槽、很奇怪、只是在运行的某个时候会出现此故障。 此错误可能与套接字驱动程序有关?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您能不能单步执行代码并检查它到底发生了什么错误。
    请检查 System_ipcNotifyInit()内部。

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

    尊敬的 Anuj:
    从"断言(system_ipc.c|System_ipcInit|119)"日志中、我知道它到底发生了什么错误、但我不知道为什么以及如何修复此错误:

    if (channelType = SYSTEM_RPMSG_RX_CHANNEL)

    len = sizeof (struct sockaddr_rpmsg);
    ERR = bind (fd、(struct sockaddr *)&rpmsg_addr、len);
    如果(err >= 0){
    vps_printf ("系统:IPC:[%s]套接字绑定成功!!!!"
    "(dst vproc =%d、endpt =%d)\n"、
    System_getProcName (ProcID)、
    rpmsg_addr.vproc_id、
    rpmsg_addr.addr);

    其他

    vps_printf ("系统:IPC:[%s]套接字绑定失败(%s、%d)!!!!!\n"、
    System_getProcName (ProcID)、strerror (errno)、errno);

    返回-1;



    为什么 bind () socket 返回无效参数错误?

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

    这段代码在哪里。
    您自己添加了吗?

    此致、
    Anuj
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    不,我没有添加任何代码,它是 system_ipc.c 中/vision_sdk/links_fw/system 路径中 System_ipcCreateChannel() API 的代码。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您能否启用任何 DSP 内核并检查您是否遇到此绑定错误故障?

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

    该线程的任何更新都已存在很长时间。
    我希望问题能得到解决。

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

    此主题是否有任何更新?

    此致、
    Anuj
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Anuj:
    我想这个问题是由 M4固件有时无法从 EMMC 加载成功和 fimware 不在 IPU 上运行引起的、因此在 A15大小的情况下、app.out IPC 初始化失败。 我将会跟踪这个问题的猜测。
    此致!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    好的、请随时通知我们。

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

    我希望问题能得到解决。

    此致、
    Anuj