We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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