Yes, it seems that is the issue. I will make a PR to remove those lines (I tried removing them and works as expected).
Best, Matias On Sat, Mar 27, 2021, at 16:44, Gregory Nutt wrote: > > > Or maybe is sim's up_assert() wrong to exit simulation? Thinking about it, > > doing up_assert() (which would just print the error) and exit() would > > indeed exit the app only. > > What do you mean by exit the simulation. It should exit the task that > caused the assertion but the simulation should continue to run. > > Hmm.. so yes, you are right. the up_assert() implementation is wrong. > Compare to arch/arm/src/armv-7m/arm_assert.c. For crash occurs only if: > > 342 static void _up_assert(void) > 343 { > 344 /* Flush any buffered SYSLOG data */ > 345 > 346 syslog_flush(); > 347 > 348 /* Are we in an interrupt handler or the idle task? */ > 349 > 350 if (CURRENT_REGS || (running_task())->flink == NULL) > 351 { > > Otherwise, it just returns (eventually) to __assert which calls exit(). > That is the correct behavior. > >