I have been trying to simulate some of the FreeRTOS ARM demos, but I see now that any task switching dependent on the timer tick is not going to work unless the timer and irq are also simulated. I was confused for a bit because it looked like I was getting some task switching, or task switching for a while anyway. This was under the GNUARM GCC/Insight, and the Rowley simulators. For instance, taking the LPC2368 demo for Rowley, I would load the demo code and place breakpoints both in main, and in each task. I can hit breakpoints inside those tasks about 10-20 times and then the debugger does not find any more. Rowley says they do not simulate the timer, so how to explain what I am seeing? With no timer, I wouldn’t expect to hit any breakpoints in tasks, except maybe just the 1st one, or maybe if taskYIELD was being used. Are there any ARM simulators which can handle the task switching?
There have been posts regarding SkyEye and Qemu here before. I think both are possible. The other alternative is to try the Keil simulator. Most other IDEs will only simulate the core, not the peripherals. Regards.
The many calls to taskYIELD in the code, explain why the ‘2368 demo appeared to be working initially under the Rowley simulator despite having no timer tick. A good sanity check is to put a watch on xTickCount. I can see for the Keil simulator, that the value does change.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.