请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: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