Вопрос

Я использую процессор Cortex-A8, и я не понимаю, как использовать -mfpu флаг.

На Cortex-A8 есть оба VFPV3. а также неон Совместные процессоры. Ранее я не знал, как использовать неоновый, поэтому я использовал только

gcc -marm -mfloat-abi=softfp -mfpu=vfpv3

Теперь я понял, как Camd Processors бегают, и я написал определенный код, используя неоновые вторники. Использовать Neon Co-Processor, теперь мой флаг -MFPU должен изменить -mfpu=neon, так что моя командная строка компилятора выглядит так

gcc -marm -mfloat-abi=softfp -mfpu=neon

Теперь это означает, что мой vfpv3 больше не используется? У меня много кода, который не использует Neon, делают эти части не используют vfpv3.

Если оба Neon и VFPV3 все еще используются, у меня нет проблем, но если только один из них используется, как можно использовать обоими?

Это было полезно?

Решение

Neon подразумевает, что имея традиционную поддержку VFP. VFP можно использовать для «нормальных» (не векторных) расчетов с плавающей запятой. Кроме того, Neon не поддерживает двойную точность FP, поэтому для этого можно использовать только инструкции VFP.
То, что вы можете сделать, это добавить -S в командную строку GCC и проверять сборку. Инструкции, начиная с V (например, VLD1.32, VMLA.F32) - неоновые инструкции, а те, которые начинаются с f (FLDD, FMACD), являются VFP. (Хотя документы ARM теперь предпочитают использовать префикс V даже для инструкций VFP, GCC не делает этого.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top