2021-01-06 02:35 AM
When using CMSIS ver2, I enter ASSERT and the task stops working.
If you check vTaskDelay () in task.c, it seems that configASSERT (uxSchedulerSuspended == 0); is responding to ASSERT.
First, will uxSchedulerSuspended not enter ASSERT by setting it to something other than 0?
Second, it seems to use osKernel Suspend to make uxSchedulerSuspended non-zero, but it's not implemented.
Is there a function that can be used as an alternative?
Lastly, I am sorry for the poor English because it is English using translation software.
If you like, please answer.
2021-01-06 10:21 AM
Probably you call vTaskDelay in a critical section. If so , don't do this.
> will uxSchedulerSuspended not enter ASSERT by setting it to something other than 0?
Heaven forbid you from tampering with internal kernel data.
-- pa
2021-01-06 05:22 PM
Thank you for answer.
>> will uxSchedulerSuspended not enter ASSERT by setting it to something other than 0?
>Heaven forbid you from tampering with internal kernel data.
It means this problem's cause is vTaskDelay is called in a critical section.
So I should change that vTaskDelay isn't called In a critival section.
Thank you
I will check it.
2021-01-06 05:51 PM
I'm sorry in quick succession.
I checked, but I didn't call vTaskDelay.
I never call vTaskDelay in a critical section.
Is there something something other possible?
In addition, I'm creating a system to launch a task using the event flag.
I will not be able to start the task in the event flag during operation.
What possibilities do you think?