Hi!
I just found out that by enabling CH_DBG_SYSTEM_STATE_CHECK, at first switch to a thread in chSysInit() and calling chThdSleepMilliseconds() the OS is halted, because nil.lock_cnt == 1.
Version 17.6.0
I am pretty sure, this is not due to my stuff.
Kind regards,
Klaus
CH_DBG_SYSTEM_STATE_CHECK => chSysHalt Topic is solved
- Giovanni
- Site Admin
- Posts: 14444
- Joined: Wed May 27, 2009 8:48 am
- Location: Salerno, Italy
- Has thanked: 1074 times
- Been thanked: 921 times
- Contact:
Re: CH_DBG_SYSTEM_STATE_CHECK => chSysHalt
Hi,
I am trying the demo NIL-STM32F746G-DISCOVERY with state checker enabled. It does not trigger the problem. Could you share a minimal project that I could test?
Moving this topic in "bug reports".
Giovanni
I am trying the demo NIL-STM32F746G-DISCOVERY with state checker enabled. It does not trigger the problem. Could you share a minimal project that I could test?
Moving this topic in "bug reports".
Giovanni
Re: CH_DBG_SYSTEM_STATE_CHECK => chSysHalt
Hi!
Sorry, I think I have more problems than I thought, and most of them have to do with the Tasking comiler/linker.
I have a SysTick_Handler, that shall do the scheduling during CH_IRQ_EPILOGUE().
In _port_irq_epilogue a new exception return context is created, but it does not branche neiter to _port_switch_from_isr nor to _port_exit_from_isr but returns to the idle thread. (I have only one thread.)
But it shall return from the ISR to _port_switch_from_isr or to _port_exit_from_isr, right?
Kind regards,
Klaus
Sorry, I think I have more problems than I thought, and most of them have to do with the Tasking comiler/linker.
I have a SysTick_Handler, that shall do the scheduling during CH_IRQ_EPILOGUE().
In _port_irq_epilogue a new exception return context is created, but it does not branche neiter to _port_switch_from_isr nor to _port_exit_from_isr but returns to the idle thread. (I have only one thread.)
But it shall return from the ISR to _port_switch_from_isr or to _port_exit_from_isr, right?
Kind regards,
Klaus
- Giovanni
- Site Admin
- Posts: 14444
- Joined: Wed May 27, 2009 8:48 am
- Location: Salerno, Italy
- Has thanked: 1074 times
- Been thanked: 921 times
- Contact:
Re: CH_DBG_SYSTEM_STATE_CHECK => chSysHalt
Hi,
Correct, ISRs can have two enforced return points, the ones you mentioned.
Giovanni
Correct, ISRs can have two enforced return points, the ones you mentioned.
Giovanni
Who is online
Users browsing this forum: No registered users and 12 guests