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.

[参考译文] TDA4AL-Q1:在 A72上激活主域中的高速缓存一致性(续)

Guru**** 2460440 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1468653/tda4al-q1-activate-cache-coherency-across-main-domain-on-a72-cont

器件型号:TDA4AL-Q1

工具与软件:

尊敬的支持团队:

很抱歉、错过了回复原始主题的窗口、所以我将尝试继续。

从 Nihil Dasan 出发:

尊敬的 Marco:

否、如果存储器映射保持不变、则该文件无需进行任何更改
让我们重点关注这个误差  

[C7x_2 ]     15.527368 s:  VX_ZONE_ERROR:[ownTargetCmdDescHandler:1115] object descriptor type is invalid

这是您看到的第一个错误、还是上面存在任何其他错误?
您能否共享完整日志?

是的、这是遇到的第一个错误、但它不会确定。
通常测试运行会在之后停止

[ RUN 0001 ] tivxTestKernelsNotNot.Sizes/0/640x480 ...

只有不时我收到错误消息。

我将附上完整的日志。

此致、谢谢。
Marco

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

    尊敬的 Marco:

     您能否分享有关您正在运行哪个应用程序以及如何运行应用程序的信息

    此致、
    Gokul

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

    尊敬的 Gokul:

    我运行我已使用我们自己的 CDK (GCC 7.5.0)为 PikeOS 交叉编译的应用程序 VX_APP_CONFIGURATION、该 CDK 已集成到 Concerto 基础架构中。
    应用程序启动时不带参数。

    以下是 make vision_apps 构建日志的节选:

    [GCC] Compiling C99 main.c
    /opt/pikeos-5.1/cdk/arm/v8hf/bin/arm_v8hf-gcc -std=c99 -c -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/vision_apps/apps/tests/app_vx_conformance -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/tiovx/include -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/tiovx/kernels/include -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/tiovx/utils/include -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/tiovx/kernels_j7/include -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/imaging/kernels/include -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/video_io/kernels/include -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/c7x-mma-tidl/arm-tidl/tiovx_kernels/include -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/c7x-mma-tidl/arm-tidl/rt/inc -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/vxlib/packages -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/ivision -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/tiadalg/include -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/vision_apps -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/imaging -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/app_utils -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/vision_apps/platform/j721s2/pikeos/mpu1 -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/vision_apps/platform/j721s2/pikeos -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/vision_apps/platform/j721s2/rtos/common -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/vision_apps/platform/j721s2/rtos -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/tiovx -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/tiovx/conformance_tests -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/c7x-mma-tidl -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/c7x-mma-tidl/ti_dl -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/c7x-mma-tidl/arm-tidl -I/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/sdk_builder/concerto/include -DSOC_J721S2 -DPIKEOS -DJ721S2 -DA72="A72" -DTARGET_NUM_CORES=1 -DTARGET_ARCH=64 -DARCH_64 -DARM -DTARGET_BUILD=1 -Wall -fms-extensions -Wno-write-strings -Wno-format-security -fno-builtin -Wall -Wextra -Wundef -DARM_V8HF -DARM_CPU_V8 -DARM_LPAE -mfix-cortex-a53-835769 -mfix-cortex-a53-843419 -DPIKEOS_BUILD_ID="\"devel-mko@mko-lap-040225-11:26\"" -DPOSIX_LWIP -I/home/mko/src/work/22047-Scala3/testing_ws/pool/posix/lwip/include/opts  -I/opt/pikeos-5.1/target/arm/v8hf/posix/lwip/include/opts -I/home/mko/src/work/22047-Scala3/testing_ws/pool/posix/lwip/include  -I/opt/pikeos-5.1/target/arm/v8hf/posix/lwip/include -DPOSIX_NFSCL -I/home/mko/src/work/22047-Scala3/testing_ws/pool/posix/nfscl/include  -I/opt/pikeos-5.1/target/arm/v8hf/posix/nfscl/include -isystem /home/mko/src/work/22047-Scala3/testing_ws/pool/posix/include  -isystem /opt/pikeos-5.1/target/arm/v8hf/posix/include -I/home/mko/src/work/22047-Scala3/testing_ws/pool/include  -I/opt/pikeos-5.1/target/arm/v8hf/include -I/home/mko/src/work/22047-Scala3/testing_ws/pool/driver/include  -I/opt/pikeos-5.1/target/arm/v8hf/driver/include -DPIKEOS_POSIX -Wno-format-truncation -DBUILD_CT_TIOVX_TEST_KERNELS -DBUILD_CT_TIOVX -DBUILD_CT_TIOVX_INTERNAL -DBUILD_CT_KHR -DBUILD_CT_TIOVX_HWA -std=c99 -g -fno-strict-aliasing -fno-delete-null-pointer-checks -fno-strict-overflow -fno-common -frecord-gcc-switches -Wold-style-definition -Wnested-externs -Wmissing-prototypes -Wstrict-prototypes -Waggregate-return -Wpointer-arith -Wcast-qual -Wwrite-strings -Wshadow -Wdeprecated -Wlogical-op -Wtrampolines -Wsuggest-attribute=format -O1 -foptimize-sibling-calls -fomit-frame-pointer -MMD -MF /home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/vision_apps/out/J721S2/A72/PIKEOS/release/module/apps.tests.app_vx_conformance/main.dep -MT '/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/vision_apps/out/J721S2/A72/PIKEOS/release/module/apps.tests.app_vx_conformance/main.o' /home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/vision_apps/apps/tests/app_vx_conformance/main.c -o /home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/vision_apps/out/J721S2/A72/PIKEOS/release/module/apps.tests.app_vx_conformance/main.o
    Linking /home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/vision_apps/out/J721S2/A72/PIKEOS/release/vx_app_conformance.elf
    /opt/pikeos-5.1/cdk/arm/v8hf/bin/arm_v8hf-ld   -T/opt/pikeos-5.1/target/arm/v8hf/ldscript/app.ld --fix-cortex-a53-843419 -L/home/mko/src/work/22047-Scala3/testing_ws/pool/posix/lwip/lib  -L/opt/pikeos-5.1/target/arm/v8hf/posix/lwip/lib -L/home/mko/src/work/22047-Scala3/testing_ws/pool/posix/nfscl/lib  -L/opt/pikeos-5.1/target/arm/v8hf/posix/nfscl/lib  -L/home/mko/src/work/22047-Scala3/testing_ws/pool/posix/lib   -L/opt/pikeos-5.1/target/arm/v8hf/posix/lib  -L/home/mko/src/work/22047-Scala3/testing_ws/pool/posix/os/up/   -L/opt/pikeos-5.1/target/arm/v8hf/posix/os/up/  -L/home/mko/src/work/22047-Scala3/testing_ws/pool/lib   -L/opt/pikeos-5.1/target/arm/v8hf/lib -L/opt/pikeos-5.1/cdk/arm/v8hf/lib/gcc/aarch64-unknown-elf/7.5.0/   /home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/vision_apps/out/J721S2/A72/PIKEOS/release/module/apps.tests.app_vx_conformance/main.o -L/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/vision_apps/out/J721S2/A72/PIKEOS/release -L/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/vision_apps/out/J721S2/A72/PIKEOS/release -L/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/app_utils/lib/J721S2/A72/PIKEOS/release -L/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/video_io/lib/J721S2/A72/PIKEOS/release -L/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/tiovx/lib/J721S2/A72/PIKEOS/release -L/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/imaging/lib/J721S2/A72/PIKEOS/release -L/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/ethfw/lib/J721S2/A72/PIKEOS/release -L/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/ti-perception-toolkit/lib/J721S2/A72/PIKEOS/release -L/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/c7x-mma-tidl/arm-tidl/tiovx_kernels/lib/J721S2/A72/PIKEOS/release -L/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/vision_apps/lib/J721S2/A72/PIKEOS/release --start-group -lvx_vxu -lvx_framework -lvx_kernels_host_utils -lvx_kernels_target_utils -lvx_platform_psdk_j7 -lvx_kernels_openvx_core -lvx_kernels_openvx_ext -lvx_target_kernels_openvx_ext -lvx_utils -lvx_kernels_hwa -lvx_kernels_video_io -lvx_kernels_tidl -lvx_kernels_tvm -lvx_nested_kernels_tidl -lvx_tutorial -lapp_utils_mem -lapp_utils_ipc -lapp_utils_console_io -lapp_utils_file_io -lapp_utils_remote_service -lapp_utils_perf_stats -lapp_utils_grpx -lapp_utils_draw2d -lapp_utils_hwa -lapp_utils_init -lapp_rtos_pikeos_mpu1_common -lapp_utils_iss -lvx_kernels_imaging -lvx_tiovx_tests -lvx_tiovx_internal_tests -lvx_conformance_tests -lvx_conformance_engine -lvx_conformance_tests_testmodule -lvx_tiovx_tidl_tests -lvx_kernels_openvx_ext_tests -lvx_kernels_test_kernels_tests -lvx_kernels_test_kernels -lvx_target_kernels_source_sink -lvx_kernels_hwa_tests -lvx_kernels_video_io_tests -lvx_tiovx_tvm_tests -lvx_kernels_srv_tests -lvx_applib_tests -lapp_utils_misc  -lrpmsg-posix -ladtbase -ladtcrc32 -lconfbin -ladtavl -llwip -lsbuf -lnfscl -lnfsrpc -lrpc_lwip -lm -lc -lpse51 -lvm -lstand -lp4 -lgcc -lgcc_extra --end-group -o /home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/vision_apps/out/J721S2/A72/PIKEOS/release/vx_app_conformance.elf -Map=/home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/vision_apps/out/J721S2/A72/PIKEOS/release/vx_app_conformance.elf.map  > /dev/null
    mkdir -p /home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/vision_apps/out/J721S2/A72/PIKEOS/release/module/apps.tests.app_vx_conformance_hwa/ 2> /dev/null
    touch /home/mko/ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/vision_apps/out/J721S2/A72/PIKEOS/release/module/apps.tests.app_vx_conformance_hwa/.gitignore

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

    尊敬的 Marco:

     您是否可以在启动 pikeos 并在此处共享整个日志后运行./vx_app_doncance 等一致性测试、这是为了隔离引导日志和应用程序日志。

    此致、
    Gokul

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

    尊敬的 Gokul:

    由于 PikeOS POSIX 应用程序的架构、我无法将初始化与应用程序完全分离。 我再次运行测试、在初始化和测试套件开始之间插入10秒休眠模式。

    这是睡眠10秒后的日志:

    Wait 10sec ...
    All Initialization done.

    VxTests version: unknown
    VCS version: unknown
    Build config: unknown

    [ ======== ] Total 23771 tests from 177 test cases
    Use global OpenVX context: FALSE


    [ -------- ] tests from tivxTestKernelsNotNot
    [ RUN 0001 ] tivxTestKernelsNotNot.Sizes/0/640x480 ...
    [C7x_2 ]     19.754138 s:  VX_ZONE_ERROR:[ownTargetCmdDescHandler:1115] object descriptor type is invalid

    此致、
    Marco

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

    尊敬的 Marco:

     是在打印"所有初始化完成"之前调用的 AppInit()。 我在运行应用程序时看到初始化日志

    附加下面的日志、

    APP: Init ... !!!
    124142.650010 s: MEM: Init ... !!!
    124142.650068 s: MEM: Initialized DMA HEAP (fd=5) !!!
    124142.650175 s: MEM: Init ... Done !!!
    124142.650186 s: IPC: Init ... !!!
    124142.706571 s: IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
    124142.710697 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
    124142.710783 s:  VX_ZONE_INIT:Enabled
    124142.710792 s:  VX_ZONE_ERROR:Enabled
    124142.710798 s:  VX_ZONE_WARNING:Enabled
    124142.713910 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:124] Added target MPU-0 
    124142.714101 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:124] Added target MPU-1 
    124142.714187 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:124] Added target MPU-2 
    124142.714281 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:124] Added target MPU-3 
    124142.714291 s:  VX_ZONE_INIT:[tivxInitLocal:136] Initialization Done !!!
    124142.714747 s:  VX_ZONE_INIT:[tivxHostInitLocal:106] Initialization Done for HOST !!!
    VxTests version: unknown
    VCS version: unknown
    Build config: Release
    
    [ ======== ] Total 23857 tests from 202 test cases
    Use global OpenVX context: FALSE

    检查一次。

    此致、
    Gokul

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

    尊敬的 Gokul:

    是的、调用 AppInit()时没有问题。
    您发布的输出也显示在我这边。

    此致、
    Marco

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

    尊敬的 Marco:

     您能否在不留下任何内容的情况下共享从引导到应用程序的整个日志?

    是否已修改内存映射?

    我们不知道为什么会出现这种情况,是否有任何其他演示或测试在 pikeOS 上正常运行?

    此致、
    Gokul

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

    尊敬的 Gokul:

    你可以在我的帖子从1月31日找到整个日志。

    我对该错误的解释是、当存储器区域的高速缓存配置了以下高速缓存属性时、A72上的对象描述符数组的初始化未通过 MSMC 正确地传播到 C71X:

    • ATTR0:1
    • ATTR1:1
    • ATTR2:1
    • SH0:1
    • SH1:1.

    我还尝试使用 SH0:0、SH1:1将映射标记为"外部可共享"而不会生效。

    我的假设是否合理?

    此致、谢谢。
    Marco

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

    尊敬的 Marco:

    对象描述符数组由 DDR_SHARED_MEMORY 中的 A72创建、并通过 IPC 将地址发送到远程内核(c7x)。 IPC 存储器区域在 DDR 中分配、并配置为不可高速缓存。 我不认为 MSMC 在这里涉及,让我回到你这个.

    您可以从1月31日起在我的帖子中找到整个日志。

    我无法从您的帖子中看到以下日志、您能检查一下吗?

    vx_zone_init:[tivxPlatformCreateTargetId:124]已添加目标 MPU-0

    此外、您还可以共享应用程序执行流程、就像在引导 pikeos 之后、您将运行2个应用程序 vx_app_arm_remote_log.out 和 vx_app_integrace.out。无论在引导远程内核之前还是之后、您将按照什么顺序启动这些应用程序以及这些应用程序何时启动。

    此致、
    Gokul

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

    尊敬的 Gokul:

    对象描述符数组由 A72在 DDR_shared_memory 中创建、并通过 IPC 将地址发送到远程内核(c7x)。 IPC 存储器区域在 DDR 中分配、并配置为不可高速缓存。 我不认为 MSMC 在这里涉及,让我回到你这个.[/报价]

    有关 IPC 存储器的信息、您是正确的。 A72会将对象描述符数组中带有索引的 IPC 发送到 C7X、并且该索引已正确接收、但对象描述符数组的内容未完全传播到 C7X。

    在 vision_apps/platform/j721s2/rtos/ app_mem_map.h 中、我发现以下内容:
    /* Memory for TI OpenVX shared memory. MUST be non-cached or cache-coherent [ size 63.75 MB ] */
    #define TIOVX_OBJ_DESC_MEM_ADDR (0xAA040000u)

    #define TIOVX_OBJ_DESC_MEM_SIZE (0x03FC0000u)

    如果我未缓存地映射此存储器、就没有问题、但我想将其与缓存一致地映射、以查看是否可以提高性能。 也就是说、我看到了所描述的问题。

    [报价 userid="637485" url="~/support/processors-group/processors/f/processors-forum/1468653/tda4al-q1-activate-cache-coherency-across-main-domain-on-a72-cont/5677943 #5677943"]

    我无法从您的帖子中看到以下日志、您能检查一下吗?

    vx_zone_init:[tivxPlatformCreateTargetId:124]已添加目标 MPU-0

    [报价]

    它不在这里。 但是、当我在 Linux 上启动 vx_app_conversion.out 二进制文件时也是如此。
    此外,当我搜索 tivxPlatformCreateTargetId()时,我只发现 MPU_0被创建为"TIVX_CPU0"。
    虽然这一输出也不可见、但我从以前的开发工作中知道、这个目标实际上是建立的。

    此外、您还可以共享应用程序执行流程、就像在引导 pikeos 之后、您将运行2个应用程序 vx_app_arm_remote_log.out 和 vx_app_integrace.out。无论在引导远程内核之前还是之后、这些应用程序何时启动。

    用于实现此目标的 POSIX 层的工作方式与 Linux 不同。 没有用于启动多个应用程序的命令行。 PikeOS 只加载与静态配置相对应的 vx_app_conformance 应用程序二进制文件。 此二进制文件处理完整的 TIOVX 初始化、包括触发与远程处理器的 IPC 同步。

    使用 U-Boot 或 SBL 在 PikeOS 引导之前加载并启动远程处理器。

    此致、
    Marco

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

    尊敬的 Marco:

    如果我映射此未缓存内存、则没有问题

    如果未缓存一致性测试、测试运行时没有任何问题、是否正确?

    我想将它映射为缓存一致、看看能否提高性能。

    我们尚未使用缓存一致性进行验证、当我们验证 r5f 内核不是缓存一致且需要缓存操作时、

    它不会提供任何好处、因为对象描述符只是保存了实际数据的指针、每个对象描述符的大小将为1KB。

    我们建议使用非缓存配置。

    此致、
    Gokul

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

    尊敬的 Gokul:

    性能测试运行时没有任何问题、如果未缓存、是否正确?

    正确。

    [报价 userid="637485" url="~/support/processors-group/processors/f/processors-forum/1468653/tda4al-q1-activate-cache-coherency-across-main-domain-on-a72-cont/5685516 #5685516"]

    我们尚未使用缓存一致性进行验证、当我们验证 r5f 内核不是缓存一致且需要缓存操作时、

    它不会提供任何好处、因为对象描述符只是保存了实际数据的指针、每个对象描述符的大小将为1KB。

    我们建议使用非缓存配置。

    [报价]

    好的。 这对我来说很好。
    感谢您的调查。
    非常感谢。

    此致、
    Marco