I’ve got a multi-threaded, multi-queue architecture that keeps running into a generic hard fault: 0x80FF013D. This fault occurs frequently, but not on a regular interval. This leads me to believe there is a potential memory leak, but I’ve looked into my code and am fairly confident there are none. I’ve followed mbed’s recommendations on memory tracking on threads, but it hasn’t led to much progress. I don’t know what module 0xFF is, nor which error is represented by 0x013D. I’m using default sizes on the EventQueue and Thread and have tried increasing the sizes without success (I also haven’t seen the larger memory allocation reflected in “print_memory_info()” as instructed by the mbed tutorial). An example of my code structure is below, though I am using more threads/queues:
Thread *one_thread;
EventQueue *one_event_queue;
int main( void ){
…
one_thread = new Thread();
one_event_queue = new EventQueue();
one_thread->start( callback( one_event_queue, &EventQueue::dispatch_forever ) );
…
one_thread->call( Fx, a0, a1 ); // example of a function, typically Fx will contain code to place Fx back on the queue
one_thread->call_in( Fy, a0, a1, a2 );
one_thread->call_every( Fz, a0, a1, a2, a3 );
}
ctx details within mbed_error.c: print_error_report()
error_status: 0x80FF013D
error_value: 0x0800D0FE and 0x0800D0F6
STM32L476RG (custom board)
uVision V5.27.0.0
armcc V5.06 update 6 (build 750)
mbedOS 5.11.0-rc1
I’ve got a multi-threaded, multi-queue architecture that keeps running into a generic hard fault: 0x80FF013D. This fault occurs frequently, but not on a regular interval. This leads me to believe there is a potential memory leak, but I’ve looked into my code and am fairly confident there are none. I’ve followed mbed’s recommendations on memory tracking on threads, but it hasn’t led to much progress. I don’t know what module 0xFF is, nor which error is represented by 0x013D. I’m using default sizes on the EventQueue and Thread and have tried increasing the sizes without success (I also haven’t seen the larger memory allocation reflected in “print_memory_info()” as instructed by the mbed tutorial). An example of my code structure is below, though I am using more threads/queues:
ctx details within mbed_error.c: print_error_report()
error_status: 0x80FF013D
error_value: 0x0800D0FE and 0x0800D0F6
STM32L476RG (custom board)
uVision V5.27.0.0
armcc V5.06 update 6 (build 750)
mbedOS 5.11.0-rc1