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

Dallas 80C400/Tini reentrant problem

We are using the Dallas 80C400 with the Tini operating system. Five tasks have been created and are running. There are a number of functions which are called by these tasks which need to be reentrant. Declaring them to be reentrant causes the program to crash. Both the function declarations and the prototypes have been declared to be reentrant. We are using startup400.a51 and the large memory model (contigous 16MB program). I added the initialization for the reentrant stack from the startup.a51 file. I want to place the reentrant stack above FFFFh beause the Tini operating system wants the first 65k of memory. However, the ?C_XBP pointer is only a 16-bit value. Will Tini OS let me put the reentrant stack in the first 65k? If not, how do I get the reentrant stack into high memory (i.e. > 100000h)? I'm new to the 8051 and the Tini OS. Is there something I'm missing?

XBPSTACK EQU 1
XBPSTACKTOP EQU 03ffffH+1;

MOV ?C_XBP,#HIGH XBPSTACKTOP
MOV ?C_XBP+1,#LOW XBPSTACKTOP