Keil™, An ARM® Company

Technical Support

DSCOPE: PERFORMANCE ANALYZER AND RTX51


Information in this article applies to:

  • C51 Version 5.50
  • RTX51 Version 3.10

SYMPTOMS

I have compiled your example RTX51 application consisting of three tasks that simply increment counters. Each task should execute for roughly equal amounts of time.

When I simulate the program in dScope and use the Performance Analyzer to see how long each task executes, I get strange results:

Task 1: 0% Task 2: 33.3% Task 3: 66.6%

The results are clearly inaccurate.

CAUSE

The performance analyzer stops timing a function when that function exits. The 'count' parameter at the bottom of the Performance Analyzer window is then incremented for that function.

The way RTX51 and other Real Time Operating Systems are designed, the task functions do not exit in the usual manner. This confuses the Performance Analyzer which then gives inaccurate results.

If you click on each task in turn in the Performance Analyzer, you will see that the Count for Task 1 is 0, Task 2 is 1 and Task 3 has an increasing count. This gives a good indicatation that the Performance Analyzer is incorrectly reading the 'exit' of the task functions. The percentages and bars are therefore wrong.

RESOLUTION

Currently, it is not possible to use the Performance Analyzer with a Real Time Operating System. This problem will be resolved in a future release.

The Secs value in the register window can be used to time sections of your program.

Last Reviewed: Wednesday, June 09, 2004


Did this article provide the answer you needed?
 
Yes
No