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.

[参考译文] PROCESSOR-SDK-J784S4:csl_dru.h 包含错误

Guru**** 2455360 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1487675/processor-sdk-j784s4-csl_dru-h-inclusion-error

器件型号:PROCESSOR-SDK-J784S4

工具与软件:

您好!

尝试在为 src 72编译的源文件中包含 pdk_j784s4_10_01_00_25/packages/ti/drv/udma/adm/v0/V0_2/csl_dru.h 时报告了错误。

错误如下:

[GCC] Compiling C99 vx_vpac_viss_host.c
In file included from /home/users/redacted/ti-processor-sdk-rtos-j784s4-evm-10_01_00_04/pdk_j784s4_10_01_00_25/packages/ti/drv/udma/src/dru/csl_dru.h:48,
              from /home/users/redacted/ti-processor-sdk-rtos-j784s4-evm-10_01_00_04/pdk_j784s4_10_01_00_25/packages/ti/drv/udma/udma.h:91,
              from /home/users/redacted/ti-processor-sdk-rtos-j784s4-evm-10_01_00_04/pdk_j784s4_10_01_00_25/packages/ti/drv/vhwa/vhwa_abstraction_layer.h:82,
              from /home/users/redacted/ti-processor-sdk-rtos-j784s4-evm-10_01_00_04/pdk_j784s4_10_01_00_25/packages/ti/drv/vhwa/include/vhwa_common.h:62,
              from /home/users/redacted/ti-processor-sdk-rtos-j784s4-evm-10_01_00_04/imaging/kernels/uguzzi_node/include/uguzzi/uguzzi_isp_out.h:41,
              from /home/users/redacted/ti-processor-sdk-rtos-j784s4-evm-10_01_00_04/imaging/kernels/uguzzi_node/include/uguzzi/uguzzi_isp_settings.h:12,
              from /home/users/redacted/ti-processor-sdk-rtos-j784s4-evm-10_01_00_04/imaging/kernels/hwa/host/vx_vpac_viss_host.c:72:
/home/users/redacted/ti-processor-sdk-rtos-j784s4-evm-10_01_00_04/pdk_j784s4_10_01_00_25/packages/ti/drv/udma/src/dru/V0/V0_2/csl_dru.h: In function ‘CSL_druChSubmitTr’:
/home/users/redacted/ti-processor-sdk-rtos-j784s4-evm-10_01_00_04/pdk_j784s4_10_01_00_25/packages/ti/drv/udma/src/dru/V0/V0_2/csl_dru.h:533:5: error: converting a packed ‘CSL_UdmapTR’ {aka ‘const struct CSL_UdmapTR_t’} pointer (alignment 1) to a ‘uint32_t’ {aka ‘const unsigned int’} pointer (alignment 4) may result in an unaligned pointer value [-Werror=address-of-packed-member]
   533 |     const uint32_t *trWord32 = (const uint32_t *) tr;
       |     ^~~~~
cc1: all warnings being treated as errors
make[2]: *** [/home/users/redacted/ti-processor-sdk-rtos-j784s4-evm-10_01_00_04/sdk_builder/concerto/finale.mak:316: /home/users/redacted/ti-processor-sdk-rtos-j784s4-evm-10_01_00_04/imaging/out/J784S4/A72/LINUX/release/module/kernels.hwa.host/vx_vpac_viss_host.o] Error 1
make[2]: Leaving directory '/home/users/redacted/ti-processor-sdk-rtos-j784s4-evm-10_01_00_04/imaging'

您可以看到、标头通过 vhwa_common.h 间接包含到 imaging/kernels/hwa/host/vx_vpac_viss_host.c 中 但是、如果您观察 CSL_druChSubmitr 的实现、您会发现实际上有2个指针指向指针转换、这两个指针都违反了"严格别名规则"、方法是执行类型 punning、这是 C 标准中未定义的行为。 以下是两种类型的打孔:

const CSL_DRU_CHCORERegs_CHCORE_CORE *pCoreRegs =
    &pRegs->CHCORE[chId].CORE[coreId];
const uint32_t *trWord32 = (const uint32_t *) tr;
volatile uint32_t *submitWord32 = (volatile uint32_t *) pCoreRegs;

附加到该消息,你会发现一个补丁文件,修复上述错误和类型的 punning 转换之一。 我不知道如何解决它。

电路板和 PSDK 版本包含在上面的错误日志中。

感谢您的观看!

此致、

赫里斯托

e2e.ti.com/.../0001_2D00_Fix_2D00_UDMA_2D00_header_2D00_compilation_2D00_on_2D00_A72.patch.txt

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

    您好!

    此 CSL 文件不能包含在 Linux 中。  

    此致、

    Brijesh