nuttx/arch
xiezhanpeng3 fc0647491b arch/armv8-r: use -mfpu=fpv5-sp-d16 for SP-only Cortex-R52 targets
The specific Cortex-R52 implementation could be configured with
a Single-Precision-only FPU (SP-only) and no Neon unit.
Executing double-precision instructions (e.g., `vadd.f64`) triggers
an Undefined Instruction exception.

The standard `-mfpu=fp-armv8` implicitly enables double-precision,
which is unsafe for this hardware.

`-mfpu=fpv5-sp-d16` is selected as the closest architectural match.
  - It enforces Single Precision code generation (preventing crashes).
  - It enables VFPv4/FPv5 features like FMA (Fused Multiply-Add) supported by the CR52 FPU.
  - It restricts the register set to d0-d15, matching the hardware constraints.

This ensures the compiler utilizes hardware FPU and FMA acceleration
without emitting illegal double-precision instructions.

Signed-off-by: xiezhanpeng3 <xiezhanpeng3@lixiang.com>
2025-12-08 21:09:05 +08:00
..
arm arch/armv8-r: use -mfpu=fpv5-sp-d16 for SP-only Cortex-R52 targets 2025-12-08 21:09:05 +08:00
arm64 arch/imx9/ethernet: Add a configuration option to use HPWORK queue 2025-12-01 10:20:29 -03:00
avr arch/avr/src/avrdx: add support for TWI (I2C and SMBus) peripheral 2025-12-01 19:12:26 +08:00
ceva arch/init: call up_color_intstack before up_irq_enable 2025-10-14 17:42:01 +08:00
dummy
hc arch/udelay: Make common, weak definition of up_*delay functions 2025-09-29 09:22:56 +08:00
mips timers/oneshot: Remove all callback and args. 2025-11-18 13:02:29 +01:00
misoc arch/udelay: Make common, weak definition of up_*delay functions 2025-09-29 09:22:56 +08:00
or1k arch/init: call up_color_intstack before up_irq_enable 2025-10-14 17:42:01 +08:00
renesas renesas/rx65n: Replace spinlock/sched_lock with spin_lock_irqsave_nopreempt 2025-11-04 22:46:15 +08:00
risc-v arch/risc-v/esp32c3: rename ESP32-C3 Generic configs 2025-12-03 13:45:13 +08:00
sim arch/sim: fix oneshot driver to work with both signal and sleep 2025-11-24 19:43:07 +08:00
sparc timers/oneshot: Remove all callback and args. 2025-11-18 13:02:29 +01:00
tricore arch/tricore: Fix build errors in Tricore architecture 2025-12-02 02:35:59 +08:00
x86 arch/udelay: Make common, weak definition of up_*delay functions 2025-09-29 09:22:56 +08:00
x86_64 x86_64: fix bootup problem in SMP 2025-12-01 14:28:11 +01:00
xtensa arch/xtensa/espressif: add PWM capture getedges function 2025-12-03 13:44:25 +08:00
z16 arch/udelay: Make common, weak definition of up_*delay functions 2025-09-29 09:22:56 +08:00
z80 arch/udelay: Make common, weak definition of up_*delay functions 2025-09-29 09:22:56 +08:00
CMakeLists.txt arch/z80: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
Kconfig arch/sim: Add clkdev driver for sim. 2025-11-24 19:43:07 +08:00