I have atmega64 with SD card connected. The card is used for storing WAV files, logs, etc. I want to add a bootloader that would upgrade the main program if certain file is present on the card. Using separate copies of filesystem library in main program and bootloader is too expensive in terms of flash space. I am thinking about this solution: link the bootloader with filesystem libraries, and in main program have a set of pointers to filesystem library functions in .noinit section. When bootloader is started , it upgrades main program if necessary, and then initializes the prointers with correct addresses and jumps to address zero, starting the main program. Since variables are in .noinit, main program would not initialize them, preserving the addresses. Obviously, main program also needs to know addresses of all global variables used by filesystem lib. The problem is : how do I make both program use same addresses for certain variables?
_______________________________________________ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list