From 7957f4a6250458f5094493333507149f3837aef5 Mon Sep 17 00:00:00 2001 From: Thad House Date: Sat, 20 Jan 2024 09:32:16 -0800 Subject: [PATCH] [hal] Don't write a 0 length led string to the FPGA (#6271) Due to something weird in the FPGA, calling strobeLoad() with a string length of 0 causes both CPUs to spin at 100%, basically shutting down everything else on the robot. If a 0 length string happens to be passed, just bail out early. --- hal/src/main/native/athena/AddressableLED.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hal/src/main/native/athena/AddressableLED.cpp b/hal/src/main/native/athena/AddressableLED.cpp index 57f37cbf75..05fe5def2b 100644 --- a/hal/src/main/native/athena/AddressableLED.cpp +++ b/hal/src/main/native/athena/AddressableLED.cpp @@ -198,6 +198,10 @@ void HAL_WriteAddressableLEDData(HAL_AddressableLEDHandle handle, return; } + if (length == 0) { + return; + } + std::memcpy(led->ledBuffer, data, length * sizeof(HAL_AddressableLEDData)); asm("dmb");