Hello all SDCC users &
developers, being that the 8051 is in your area of expertise, I wanted to
ask your thoughts on the following issue I have been having.... I have poured
through the message boards to no avail. My question is very
I built a boot
loader using SDCC 2.4.0 for the Nordic nRF24E1. I did this to eliminate
the 4K memory barrier, which allows me to swap firmware loads in/out of memory
on the fly.
Part of my boot
loader updates the interrupt vector table for the firmware load of
interest. It seemed despite SDCC 2.4.0 claim that it automatically
adjusted the table based on the ISR requirements it seemed to always adjust to a
full size interrupt 0-5 (0x0003->0x002B) table no matter what, with a
total length of 41 bytes. This was advantageous to me, since all the
firmware loads I would swap in and out of RAM would always have the same length
interrupt vector table and layout irregardless to my ISR usage for that
particular firmware load. My boot loader vector table update process could
could work reliably with consistent table lengths.
Now, since I
upgraded to 2.6.0, SDCC does automatically adjust the ISR table length based on
ISR usage for each firmware load, which are not consistent from firmware load to
firmware load because of different ISR usage, and my boot loader is not happy
Do you know of a way
with SDCC 2.6.0 to make it behave as 2.4.0 as far as the interrupt vector table
is concerned, but yet still use SDCC 2.6.0 for its other improvements and bug
Thanks in advance
for your help on this.
Excellent job on
SDCC, it is a remarkable compiler!