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.
>
>