RTOS running on one core only
Re: RTOS running on one core only
Ok I have also have an issue where my esp32 from DO-IT using NODEMCU-12E board in boards manager doesnt accept rtos and throws error in arduino i am so frustrated by this especially because i specially ordered these because of the rtos and dual core capability.Can any one of u please tell me how to run rtos on the DO-IT board,i have tries this but returns an error saying that xtraskcreate doesnt exist or xtask"anything here" is not defined and the code doesnt even compile , I am too frustrated about this please can anyone fix this???/
Re: RTOS running on one core only
Could you please post the specific error output you're getting?sankd420 wrote: Ok I have also have an issue where my esp32 from DO-IT using NODEMCU-12E board in boards manager doesnt accept rtos and throws error in arduino i am so frustrated by this especially because i specially ordered these because of the rtos and dual core capability.Can any one of u please tell me how to run rtos on the DO-IT board,i have tries this but returns an error saying that xtraskcreate doesnt exist or xtask"anything here" is not defined and the code doesnt even compile , I am too frustrated about this please can anyone fix this???/
Re: RTOS running on one core only
Thank you, you are more patient than I would be.
Another way to argue is:
If running RTOS on one processor means that CTOS on the other processor is not an OS then running CTOS on one processor means that RTOS on the other processor is not an OS. Together that would mean that there is no OS on either processor. Which is ridiculous.
Please, continue your innovative work on esp-32.
Tom Meyers
Another way to argue is:
If running RTOS on one processor means that CTOS on the other processor is not an OS then running CTOS on one processor means that RTOS on the other processor is not an OS. Together that would mean that there is no OS on either processor. Which is ridiculous.
Please, continue your innovative work on esp-32.
Tom Meyers
IT Professional, Maker
Santiago, Dominican Republic
Santiago, Dominican Republic
Re: RTOS running on one core only
Hello Mr. @HelWeb
I found the time critical core 1 operations solution as described by you very suitable to my needs. In fact, I would like to make a bare metal in core 1 even if being inside a task called with no interrupts on that core; no other tasks or O.S.
However I seen in some answers in this topic regarding a need of core 0 to talk to core 1 (interrupts or similar), what would disturb core 1 "real time" operations.
Have you run into some similar situation, by your posts it seems to me that you managed to make it really work - my understanding is that you can keep the ESP32 talking and "functioning" normally with core 0 while running your time critical operations on core 1. AND have both talking to each other if needed.
Finally, are the code texts that you posted all needed to start something in this way or are excerpts and more work is needed.
Thanks in advance
I found the time critical core 1 operations solution as described by you very suitable to my needs. In fact, I would like to make a bare metal in core 1 even if being inside a task called with no interrupts on that core; no other tasks or O.S.
However I seen in some answers in this topic regarding a need of core 0 to talk to core 1 (interrupts or similar), what would disturb core 1 "real time" operations.
Have you run into some similar situation, by your posts it seems to me that you managed to make it really work - my understanding is that you can keep the ESP32 talking and "functioning" normally with core 0 while running your time critical operations on core 1. AND have both talking to each other if needed.
Finally, are the code texts that you posted all needed to start something in this way or are excerpts and more work is needed.
Thanks in advance
-
- Posts: 1
- Joined: Tue Nov 10, 2020 1:52 pm
Re: RTOS running on one core only
On Fri Apr 05, 2019 10:34 pm HelWeb asked "But now i have the problem, how to measure such times in a program - who can help ?"
A lot of time has passed but I only found this thread recently when I was trying to optimise my capture software.
I am an amateur who has dabbled with software on and off over the years and now, nearing 70, I have set myself a difficult challenge that I hope that I am a little closer to achieving with HelWeb's code snippet so - thank you to HelWeb!
My solution to the above question is to use
I had to use an array to review the timings later because Serial.print is too slow.
Feeding a pulse sequence from an Arduino Nano programmed in assembler, with pulses from 125nS to 875nS resulting in output pulses of 158nS to 830nS. This was vastly superior to my results using interrupts (also using ESP.getCycleCount() for timing) that gave poor, unstable results until the Nano pulses were over about 3uS, with a similar interval between.
A lot of time has passed but I only found this thread recently when I was trying to optimise my capture software.
I am an amateur who has dabbled with software on and off over the years and now, nearing 70, I have set myself a difficult challenge that I hope that I am a little closer to achieving with HelWeb's code snippet so - thank you to HelWeb!
My solution to the above question is to use
- while(i < 20) {
- irq=REG_READ(GPIO_IN_REG) & (1<<21); // Test pin 21
- if (irq != lastIrq) {
- irqArray[i] = irq;
- CountArray[i]=ESP.getCycleCount();
- i++;
- if (irq) REG_WRITE(GPIO_OUT_W1TS_REG,(1<<22));
- else REG_WRITE(GPIO_OUT_W1TC_REG,(1<<22));
- lastIrq=irq;
- } // if irq
- } // while i
Feeding a pulse sequence from an Arduino Nano programmed in assembler, with pulses from 125nS to 875nS resulting in output pulses of 158nS to 830nS. This was vastly superior to my results using interrupts (also using ESP.getCycleCount() for timing) that gave poor, unstable results until the Nano pulses were over about 3uS, with a similar interval between.
Who is online
Users browsing this forum: Bing [Bot] and 33 guests