Hi, I played around with your OS a little bit and I like it – it is a compact neat OS. Anyway I think I have some problems with its performance. I would like to use the OS for the non time-critical tasks of my application, the time-critical tasks should be handled by interrupts. The problem is that these interrupts should be serviced very quickly. So I spent some time with excessive performance-testing of the OS in the simulator. For that I adapted the demo application so that only the flash tasks and two more self made tasks were running. I found out that a context switch from the system tick needs quite a lot calculation time – in my case about 540 cycles without switching tasks, and 2200 – 3000 cycles when it switches tasks. Also a queueSendFromISR takes about 330 cycles. For me this is a problem because during this time all interrupts are blocked. I can cope with 500 cycles without interrupts, but 2000 cycles are far too much. I learned a lot from reading the source code, but anyway I did not understand the context switch procedure. I just found out that vTaskSwitchContext() takes quite long. What tweaks do you know to reduce the time of blocked interrupts? I do not even need a fast context switch, but I really need my interrupts. greets, Adi Schwarz
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.