I'm trying to compile a program with the SDCC compiler which is to be run on an Intel 8051 chip (AT89S53). The program code is fairly large but there is not much ram type data being stored. The way I understand it, the code goes into the EEPROM (12k bytes on the AT89S53), and global variables and the stack will use the internal ram (256 bytes).
When I try compile my program, I get a linker error saying:
?ASlink-Error-Insufficient space in data memory. 63 bytes short.
If I cut back on global variables (which I've already done as much as I can), the number of bytes short does goes down. But 256 bytes should have been plenty before I did the trimming. I tryed telling SDCC my internal ram size is 1024 bytes (using the --iram-size 1024 option) just to be certain it thinks i have enough internal ram, but it still says it is the same 63 bytes short.
Does anyone know how to get around this? What is using up all the ram?
When I try compile my program, I get a linker error saying:
?ASlink-Error-Insufficient space in data memory. 63 bytes short.
If I cut back on global variables (which I've already done as much as I can), the number of bytes short does goes down. But 256 bytes should have been plenty before I did the trimming. I tryed telling SDCC my internal ram size is 1024 bytes (using the --iram-size 1024 option) just to be certain it thinks i have enough internal ram, but it still says it is the same 63 bytes short.
Does anyone know how to get around this? What is using up all the ram?