This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

RTX Silicon Labs Banking

Hi all,
I have designed my own 8 bit preemptive OS for the Silicon Labs controller C8051F120.

I am using the LX51 Linker and the file L51_BANK.A51, modified it according to the sample in the silicon labs website.

The ?B_MODE EQU 4 And the switch macros are as follows.

PSBANK DATA 0B1H

SWITCH0 MACRO
MOV PSBANK, #00h
ENDM

SWITCH1 MACRO
MOV PSBANK, #11h
ENDM

SWITCH2 MACRO
MOV PSBANK, #22h
ENDM

SWITCH3 MACRO
MOV PSBANK, #33h
ENDM

one of the line says that when using RTX OS the User mode bank switching is not supported. This has led to my doubts. What are ther things i need to add in my OS to provide support for CODE BANKING. I was in the impression that the linker takes care of this ...Kinldy let me know.

thanks and regards
pachu

Parents
  • Hello Jon,
    Oh yes you are right.....:-) i missed this. when i do a task switch, i do save the context, and load the PC with the current tasks address....

    When i do context switch practically i dont know in which bank i am working with....i need to take care of this.

    I mean, assme there are 3 tasks each in a seperate bank, and each of them call each other. There is both intra and inter bank calls. When i start a task from from scheduler, how will i know from which bank it is ? and when i want to switch to another task how can i identify from which bank is the next runnable task ?

    Is is possible to find out at run time, in which bank i am operating ?

    thanks and regards
    pachu

Reply
  • Hello Jon,
    Oh yes you are right.....:-) i missed this. when i do a task switch, i do save the context, and load the PC with the current tasks address....

    When i do context switch practically i dont know in which bank i am working with....i need to take care of this.

    I mean, assme there are 3 tasks each in a seperate bank, and each of them call each other. There is both intra and inter bank calls. When i start a task from from scheduler, how will i know from which bank it is ? and when i want to switch to another task how can i identify from which bank is the next runnable task ?

    Is is possible to find out at run time, in which bank i am operating ?

    thanks and regards
    pachu

Children
No data