Конфигурация узла UAVCAN (DroneCAN)
Я портировал uavcan (dronecan) на плату stm32 nucleo-f413. Прошивка чибиос на основе rtos.
Во время инициализации узла выполнение переходит к «_unhandled_exception», выполняя оператор
mem_blocks_per_iface = allocator.getBlockCapacity() / (num_ifaces_ +1U) + 1U;
внутри конструктора CanIOManager::CanIOManager.
Я проверил стек вызовов для того же, и он выглядит следующим образом:
VectorFC() at vectors.S:1,021 0x80002da
<signal handler called>() at 0xfffffffd
uavcan::PoolAllocator<16384u, (unsigned char)48, char>::getBlockCapacity at dynamic_memory.hpp:80 0x801f110
uavcan::CanIOManager::CanIOManager() at uc_can_io.cpp:298 0x8012690
uavcan::Dispatcher::Dispatcher() at dispatcher.hpp:146 0x801bac6
uavcan::Scheduler::Scheduler() at scheduler.hpp:100 0x801bcac
uavcan::Node<16384u>::Node() at node.hpp:85 0x801d768
app::(anonymous namespace)::getNode at main.cpp:121 0x801caa6
configureNodeInfo() at main.cpp:159 0x801cb4c
Я не могу определить причину обработчика исключений.
Я пробовал изменять размер стека, размер пула и размеры блоков, но все равно не помогло. Если кто сталкивался с подобной проблемой, прошу помощи. Спасибо