I'm developing a real time system with FreeRTOS on an STM3240G board.
- The system contains some different tasks ( GUI, KB, ModBus, Ctrl, etc . . )
- The tasks have different priorities.
- The GUI seems to display a little slowly.
So I use a Profiler software to see what is going on between the different tasks during a run. This profiler shows me which task was running at each moment ( microsecond) and what interrupts had arrived.
This profiler enables me to "mark" different locations on the code so I know when it was there. So I run the program and make a record.
I looked at the record and I saw that (for example) Ctrl task was between two lines of code for 15 milliseconds (this time change in size) there was not any task change no interrupt arrived and after this time the system continues normally from this point according to the record and my marks.
I tried closing disabling different interrupts without any success. Has anyone any idea what it could be?
portENTER_CRITICAL()
anywhere, since this disables interrupts and therefore task switches cannot occur, or do you block in any interrupts? I would comment all interrupt code out but keep the program flow the same, then see if you get the same behaviour - isolate the problem. – Ed King