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

St10 User stack

Hi all,

I have a question about ST10 user stack.
In my linker file, I located it at 0xF0100, size x2000; so from 0xF0100 to 0xF20FF
In my startup file, I can see the user stack init :
MOV R0,#DPP2:?C_USERSTKTOP

... but since R0 is a 16 bit register, the value may be truncated... When I run the simulator, after this MOV instruction, the updated R0 value is 0xA100... My target works fine but I can't understand this 0xA100 value.

Could you explain me ?

Thanks a lot !

Pierre

PS : I am using a ST10F276

Parents
  • OK I found an explanation about DPP registers on this site.
    User stack is located in NEAR memory which is accessed using DDP2. Therefore I think my R0 value is understandable :

    Stack located from 0xF0100 to 0xF20FF.

    R0 Value :
    Hex : A 1 0 0
    Bin : 1010 0001 0000 0000

    so DPP is 10 (bit 15-14) which is DDP2.
    DPP2 contains 0x3C and 0x3C * 4 = 0xF0

    Thanks to Keil Team for all this helpfull documentation !

Reply
  • OK I found an explanation about DPP registers on this site.
    User stack is located in NEAR memory which is accessed using DDP2. Therefore I think my R0 value is understandable :

    Stack located from 0xF0100 to 0xF20FF.

    R0 Value :
    Hex : A 1 0 0
    Bin : 1010 0001 0000 0000

    so DPP is 10 (bit 15-14) which is DDP2.
    DPP2 contains 0x3C and 0x3C * 4 = 0xF0

    Thanks to Keil Team for all this helpfull documentation !

Children
No data