Yes, I'd be hard pressed to explain that. Especially when it works as expected if I use a Task Notification rather than an Event Group bit.ESP_Sprite wrote: ↑Tue Aug 29, 2023 12:31 amI'm thinking that this may be some weird behaviour in the log_i function rather than the event groups, but I don't have a theory for how that could work.
Search found 35 matches
- Tue Aug 29, 2023 10:23 am
- Forum: ESP32 Arduino
- Topic: High Priority Task Appearing Not to Preempt Low Priority Task???
- Replies: 7
- Views: 3567
Re: High Priority Task Appearing Not to Preempt Low Priority Task???
- Mon Aug 28, 2023 1:52 pm
- Forum: ESP32 Arduino
- Topic: High Priority Task Appearing Not to Preempt Low Priority Task???
- Replies: 7
- Views: 3567
Re: High Priority Task Appearing Not to Preempt Low Priority Task???
Interestingly, it works as expected when using a Task Notification . So perhaps unblocking tasks using Event Groups doesn't happen immediately (regardless of the task's priority), but on the FreeRTOS tick boundaries??? #include "Arduino.h" void producerFunction(void *pvParameters); void consumerFunc...
- Mon Aug 28, 2023 12:20 pm
- Forum: ESP32 Arduino
- Topic: High Priority Task Appearing Not to Preempt Low Priority Task???
- Replies: 7
- Views: 3567
High Priority Task Appearing Not to Preempt Low Priority Task???
Hello. In the MRE below, the Consumer Task has a higher priority than the Producer Task. So, when the Producer sets the Event Group bit, I would expect the Consumer Task to preempt it, do its printing, and then block itself again BEFORE the (lower priority) Producer Task resumes executing. Therefore...
- Thu Jul 20, 2023 12:37 am
- Forum: ESP32 Arduino
- Topic: Unblocking a Task on the "Other" Core
- Replies: 3
- Views: 1653
Re: Unblocking a Task on the "Other" Core
Hi gfvalvo, ... See taskYIELD_OTHER_CORE in tasks.c. @esp_programmer, thanks for the reply. Where did you find task.c? It's not in my installation, only task.h. Also there is no mention of 'taskYIELD_OTHER_CORE' in any file of my ESP32 installation. However, I did find the following in portmacro.h....
- Wed Jul 19, 2023 4:10 pm
- Forum: ESP32 Arduino
- Topic: Unblocking a Task on the "Other" Core
- Replies: 3
- Views: 1653
Unblocking a Task on the "Other" Core
Hello, Suppose a task running on Core 0 posts some data to a FreeRTOS queue. Suppose further that a very high-priority task, that's pinned to Core 1, is currently blocked, pending on information to enter that queue. Ideally, the high-priority task should very quickly become unblocked and preempt wha...
- Thu Apr 27, 2023 1:35 pm
- Forum: ESP32 Arduino
- Topic: No TZ.h File for ESP32?
- Replies: 2
- Views: 2175
Re: No TZ.h File for ESP32?
Thanks for the reply. I guess Espressif came to that epiphany sometime between creating the ESP8266 core and creating the the ESP32 core.
- Wed Apr 26, 2023 8:29 pm
- Forum: ESP32 Arduino
- Topic: No TZ.h File for ESP32?
- Replies: 2
- Views: 2175
No TZ.h File for ESP32?
So, the ESP8266 Arduino core has a very handy file called 'TZ.h" located in: …/esp8266\hardware\esp8266\3.1.1\cores\esp8266 It contains the Unix time zone codes ('TZ' environment variable) for hundreds of locations around the world. They're defined with human-readable macros. For example: #define TZ...
- Tue May 10, 2022 10:44 am
- Forum: ESP32 Arduino
- Topic: ESP32-CAM Facial Detection / Recognition
- Replies: 4
- Views: 7844
Re: ESP32-CAM Facial Detection / Recognition
I did get it to "work" using URL https://raw.githubusercontent.com/espre ... index.json and v1.0.4. But, haven't played with it any since.
- Fri Apr 22, 2022 3:56 pm
- Forum: ESP-IDF
- Topic: Critical sections explanation
- Replies: 5
- Views: 12093
Re: Critical sections explanation
Ahhhh … got it. So, it acts kind of the same as a Critical Section would on a single-core, "Vanilla FreeRTOS" implementation for the local core but also makes the "other" core spin if and only if it also tries to acquire the lock.
Thanks.
Thanks.
- Thu Apr 21, 2022 5:34 pm
- Forum: ESP-IDF
- Topic: Critical sections explanation
- Replies: 5
- Views: 12093
Re: Critical sections explanation
I realize that this is a really old thread. But, it seems the proper place to post my question. My understanding of a Task or ISR "spinning" is that it's in a loop constantly trying to get ownership of the "lock". There are no context switches so nothing else runs on that core. So, my question ... w...