Skip to content

Commit 13707df

Browse files
committed
DM: added FPU support
1 parent c0c9ba0 commit 13707df

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

boards.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ adafruit_metro_m4.build.usb_product="Adafruit Metro M4"
172172
adafruit_metro_m4.build.usb_manufacturer="Adafruit LLC"
173173
adafruit_metro_m4.build.board=SAMD_51
174174
adafruit_metro_m4.build.core=arduino
175-
adafruit_metro_m4.build.extra_flags=-D__SAMD51J20A__ -D__SAMD51__ {build.usb_flags}
175+
adafruit_metro_m4.build.extra_flags=-D__SAMD51J20A__ -D__SAMD51__ {build.usb_flags} -D__FPU_USED
176176
adafruit_metro_m4.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld
177177
adafruit_metro_m4.build.openocdscript=openocd_scripts/arduino_zero.cfg
178178
adafruit_metro_m4.build.variant=metro_m4
@@ -181,3 +181,6 @@ adafruit_metro_m4.build.vid=0x2341
181181
adafruit_metro_m4.build.pid=0x804d
182182
adafruit_metro_m4.bootloader.tool=openocd
183183
adafruit_metro_m4.bootloader.file=metroM4/samdx1_sam_ba.bin
184+
adafruit_metro_m4.compiler.c.elf.extra_flags=-mfloat-abi=hard -mfpu=fpv4-sp-d16
185+
adafruit_metro_m4.compiler.c.extra_flags=-mfloat-abi=hard -mfpu=fpv4-sp-d16
186+
adafruit_metro_m4.compiler.cpp.extra_flags=-mfloat-abi=hard -mfpu=fpv4-sp-d16

cores/arduino/cortex_handlers.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,13 @@ void Reset_Handler(void)
480480
*pDest = 0;
481481
}
482482

483+
#if defined(__FPU_USED) && defined(__SAMD51__)
484+
/* Enable FPU */
485+
SCB->CPACR |= (0xFu << 20);
486+
__DSB();
487+
__ISB();
488+
#endif
489+
483490
SystemInit();
484491

485492
main();

0 commit comments

Comments
 (0)