Can't return from C func called from ASM

Hello. I have an existing ASM progrom which I am going to convert, as needed, to C. I was succesful at overriding the UART interrupt function (in C). Now, in my main ASM loop I need to check for recieved chars which I will doing in C. When I call my C func from the MAIN func in ASM the 8051 appears to go into a reset loop and will not successfully boot.

===============================
My C Func:
code void CheckForRx (void)
{
if (RxCount!=0) //C global inc'd in INT
DoSomething();
}

==============================

My ASM Main:
extern code (CheckForRx)

Start:
;Do alotta other stuff
lcall CheckForRx
jmp Start

================================


I get no linker warnings (it finds my C func) however that call will not work. Remove the lcall CheckForRx and the system works again.

Any ideas of what I have most likely looked over?

Thanks, Chris

Parents Reply Children
No data
More questions in this forum