Keil™, An ARM® Company

Technical Support

RTX51 TINY: DISABLING ROUND-ROBIN PUSHES AND POPS


Information in this article applies to:

  • RTX51 Tiny Version 2.00

QUESTION

While debugging my RTX51 Tiny application, I have found a code area that is never executed.

?RTX_TASKSWITCHING:
                PUSH    ACC
                PUSH    PSW
                PUSH    B
                PUSH    DPH
                PUSH    DPL
                PUSH    AR0
                PUSH    AR1
                PUSH    AR2
                PUSH    AR3
                PUSH    AR4
                PUSH    AR5
                PUSH    AR6
                PUSH    AR7

This code appears to save all registers before a task switch. The corresponding POP instructions are not called either. Why is this code included but never called?

ANSWER

The code is used to perform Round-Robin code banking. However, you application does not appear to switch tasks using round-robin. So, you are probably using the os_wait function to perform a task switch. If this is the case and if you do not require round-robin task switch, you should disable it. The unused code will not be included in your application.

To disable round-robin task switching, you must modify the CONF_TNY.A51 file as shown below:

TIMESHARING     EQU     0       ; default is 5 Hardware-Timer ticks.
;                               ; 0 disables Round-Robin Task Switching

MORE INFORMATION

Last Reviewed: Sunday, July 17, 2005


Did this article provide the answer you needed?
 
Yes
No
Not Sure