Hi Gary, The best (IMO) solution is to write your own _sdcc-external_startup() function (see example in _startup.c) which sets AUXR to the correct value for your memory setup.
Then you also need to copy crtxinit.asm to your project, set DUAL_DPTR to 1 and rename all occurrences of _DPS to _AUXR1. Assemble and link it with the rest of your project. Hope this helps, Maarten > All, > > I've been using SDCC with good success for about a year; I'm currently > using version 2.7.0. I'm in the process of developing an instrument that > includes two Atmel AT89C51ED2 microprocessors, external UARTs, RS232 to > TTL level converters, ADC, DAC, digital I/O, thermocouple amplifiers, a > serial keypad/LCD, SPI interfaces, etc. I've written all of the C code to > drive these devices, and the entire system works well. > > But, I've now run up against a problem that has me stymied. On one of the > microprocessors the current program uses about 255 bytes of XDATA > (XRAM?).--almost all global variables. And this program runs well. Now, > I need to add more features to the program so that the total bytes of > XDATA exceeds 256 bytes. When I do this, my program fails to run. It > seems that most--if not all--of the variables have zero (0) values. > > I've read enough on-line about this problem to be dangerous and very > confused. The advice that I've found ranges from that I should use the > compiler option --no-xinit-opt to copy and adapt crtxinit.asm from the > library and link it with my project to implement a custom > __sdcc-external_startup program (to all of the above?). I also see that > maybe I should set 3 bits in the AUXR register to select the proper XRAM > size, perhaps set the bit EXTRAM to 0, and maybe change a bit in the AUXR1 > register. I've used --no-xinit-opt and tried various combinations of bits > in the AUXR and AUXR1 registers with no success, but I'm not sure how to > implement the sdcc_external_startup program or how to modify and link > crtxinit.asm. Worse, as I'm sure you can tell by now, I'm not certain > which ones of these multitude of "suggestions" should be implemented. > > I don't mind putting in a lot of effort, but it seems the more I dig, the > more confused I've become. Any help on this problem would be appreciated, > and I would be happy to look at other websites or other sources of > information that you think would be helpful. > > Thanks for your consideration of my problem! > > Gary > > > ________________________________ > This communication is for the use of the intended recipient only. It may > contain information that is privileged and confidential. If you are not > the intended recipient of this communication, the disclosure, copying, > distribution or use hereof is prohibited. If you have received this > communication in error, please advise me by return e-mail or by telephone > and then delete it immediately. > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's > challenge > Build the coolest Linux based applications with Moblin SDK & win great > prizes > Grand prize is a trip for two to an Open Source event anywhere in the > world > http://moblin-contest.org/redirect.php?banner_id=100&url=/_______________________________________________ > Sdcc-user mailing list > Sdcc-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/sdcc-user > ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user