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.

[FAQ] [参考译文] [常见问题] TDA4VM:PSDK QNX 中的 NEON 支持

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

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1075898/faq-tda4vm-neon-support-in-psdk-qnx

部件号:TDA4VM

根据 TDA4VM TRM,TDA4VM 使用的 ARM Corext-A72子系统支持 高级单指令多数据(SIMD)和浮点扩展(Arm 氖光)”。   

下图显示了 J721E EVM 上 PSDK QNX 7.3上的 CCS 视图,表示支持高级 SIMD (Neon)

启动期间,QNX BSP 将读取 ARM 寄存器 ID_AA64PFR0_EL1,以确定底层平台是否支持 NEON。   使用以下命令(记录在 - cpuinfo (qnx.com)中),依次可从 QNX 命令行读取 BSP 检查的状态,请参阅  arm_cpu_flag_neon (0x40)。

pidin syspage=cpuinfo

QNX HOS 视氖光灯为启用的示例

QNX HOS 视氖灯为禁用的示例

如果 QNX HOS 在 Jacinto7系列设备(TDA4x,J7x)上看到氖光被禁用,则这是不正确的,应该检查 BSP 中的以下文件以确保位掩码设置正确。

BSP 文件:  ./src/hardware/startup/lib/AArch64/init_cpuinfo.c.

此文件中的以下宏定义应设置为以下值以检查氖光灯支持:

#define AA64PFR0_SIMD (x)((((x)>> 20)& 0xfUL)!= 0xfUL)
#define AA64PFR0_FP(x)(((((x)>> 16)& 0xfUL)!= 0xfUL)

如果位掩码使用0xFF,可能会错误地将 NEON 视为不受支持。   

要解决此问题,可以下载更新的 BSP,或者按照上面的高指示更改代码,重建 BSP,并通过 QNX 命令行检查以确保 正确设置 ARM_CPU_FLAG_NEON (0x40)。