I've ported uavcan (dronecan) to stm32 nucleo-f413 board. The firmware is chibios based rtos.
During node initialization, execution is jumping to "_unhandled_exception" by executing the statement
mem_blocks_per_iface = allocator.getBlockCapacity() / (num_ifaces_ + 1U) + 1U;
inside the CanIOManager::CanIOManager constructor.
I've verified the callstack for the same and it is as below:
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
I"m unable to identify the reason for exception handler.
I've tried varing the stack size, poolsize and blocksizes but still not helpful. If anyone faced similar issue, kindly help. Thanks