STM32F733ZE custom board hardfault initializing os

Hi all,
I have a custom board with the STM32F733ZET6, an STLINK-V3MODS, a dual port SRAM chip and a micro SD-card. I’m using Visual Micro for Visual Studio to program and debug, which uses GCC-ARM, pointing to the ARM embedded toolchain 10 2021.10.
The STM32F722ZE(T6) was just added, and near as I can tell they’re very, very similar. I copied that whole directory as the 733 directory and added my custom target based on that. I used STM32_gen_PeripheralPins.py to generate PeripheralPins.c and PinNames.h from an STMCubeMX project. I’m using the 722’s startup.S file, adding the AES Handler and setting to default_handler (I don’t plan to use it anyway)

I am seeing a very similar hardfault to Custom target silently fails to start main app after adding `mbed_trace_init();` to bootloader · Issue #11205 · ARMmbed/mbed-os · GitHub
SCB->VTOR contains the reset vector at 20040000 followed by all the handlers in flash (0x08…) - they all seem correct? But I crash in the SVC_handler:
mbed_init()
mbed_rots_init()
osKernelInitialize()
__svcKernelInitialize()