I am getting a double fault error that causes the MCU to lock up: [at91samd21g17d.cpu] clearing lockup after double fault Program received signal SIGINT, Interrupt. 0xfffffffe in ?? () The lockup occurs while executing the following line of code: bare_metal::CriticalSection::new () at src/lib.rs:53 This fault occurs in the following point in my stack: #0 cortex_m::interrupt::free> (f=...) at /home/fret/.cargo/registry/src/github.com-1ecc6299db9ec823/cortex-m-0.7.7/src/interrupt.rs:64 #1 0x00003a28 in atsamd_hal::thumbv6m::usb::bus::buffer () at src/thumbv6m/usb/bus.rs:157 >#3 0x0000045c in atsamd_hal::thumbv6m::usb::bus::UsbBus::new>, atsamd_hal::gpio::pin::Pin>> (_clock=0x20003134, pm=0x20003580, dm_pad=..., dp_pad=..., _usb=...) at /home/fret/.cargo/registry/src/github.com-1ecc6299db9ec823/atsamd-hal-0.15.1/src/thumbv6m/usb/bus.rs:590 #4 0x000008a6 in weart_est::bsp::usb_allocator , atsamd_hal::gpio::pin::Pin>> (usb=..., clocks=0x200035a8, pm=0x20003580, dm=..., dp=...) at src/bsp.rs:293 #5 0x00000cd8 in weart_est::__cortex_m_rt_main () at src/main.rs:55 #6 0x00000c0c in weart_est::__cortex_m_rt_main_trampoline () at src/main.rs:24 I anticipate it's a memory allocation problem or similar but am struggling to identify the source as I can't catch the error in any handler or get a backtrace! Very challenging.