From: SourceForge.net <no...@so...> - 2004-05-27 19:00:20
|
Bugs item #954959, was opened at 2004-05-16 22:31 Message generated for change (Comment added) made by rosanis You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=954959&group_id=599 Category: msc51(8051) target Group: fixed Status: Open Resolution: None Priority: 5 Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: Bad xdata init Initial Comment: I've run into what I believe is a bug. Maybe there is something I just overlooked. I'm using a system on which code is in "external memory", thus code and external RAM are sharing a common space. I've used the right options to select the code start and xram start (and size): --iram-size 256 --xram-loc 0x1740 --xram-size 1024 --code-loc 0x0000 --code-size 5952 The linker puts everything in the right place, but there is a problem with the run-time library: during initialization of the external RAM, the variables that are in XRAM are initialized with zeros (which is OK), but instead of starting at the address mentioned in --xram-loc, it seems to start at 0x0000, which then overwrites some of the code on my system. I think this shouldn't be happening. Or should we re-compile the run-time library in a case like this? If so, how? I think this is not at all clearly stated in the docs (as far as I've read). For the time being, I use the option --no-xinit-opt and handle things myself, but I think there is something wrong. Thanks for considering this "bug" report. ---------------------------------------------------------------------- Comment By: Guillaume (rosanis) Date: 2004-05-27 21:00 Message: Logged In: YES user_id=1043238 Ok, it seems to do the trick. Thanks for helping. :) ---------------------------------------------------------------------- Comment By: Maarten Brock (maartenbrock) Date: 2004-05-27 20:39 Message: Logged In: YES user_id=888171 >sfr at 0x92 MPAGE; >do I have to just add "sfr _XPAGE at 0x92;" ? Yes, that would do it. Or as I stated, anywhere else will do as well. Actually it should be: sfr at 0x92 _XPAGE; >Is the underscore necessary? (If so, why an underscore >here and not before MPAGE?) Isn't what you gave me >something to be included in an assembly header file, and not >a C header file? Yes it's necessary. The underscore indicates is not an sfr name defined by the manufacturer but an alias needed by SDCC to encompass for the different names used by various manufacturers for the same thing. And no it should not go into an assembler file. The goods news is that you do not need to recompile the library. Good luck, Maarten ---------------------------------------------------------------------- Comment By: Guillaume (rosanis) Date: 2004-05-27 20:13 Message: Logged In: YES user_id=1043238 Sorry for not reporting back sooner. Been too busy with other projects... Ok, so in my EZ-USB FX specific header file, I have the following: sfr at 0x92 MPAGE; do I have to just add "sfr _XPAGE at 0x92;" ? Is the underscore necessary? (If so, why an underscore here and not before MPAGE?) Isn't what you gave me something to be included in an assembly header file, and not a C header file? Do I have to recompile the run-time library? ---------------------------------------------------------------------- Comment By: Guillaume (rosanis) Date: 2004-05-27 20:10 Message: Logged In: YES user_id=1043238 Sorry for not reporting back sooner. Been too busy with other projects... Ok, so in my EZ-USB FX specific header file, I have the following: sfr at 0x92 MPAGE; do I have to just add "sfr _XPAGE at 0x92;" ? Is the underscore necessary? (If so, why an underscore here and not before MPAGE?) Isn't what you gave me something to be included in an assembly header file, and not a C header file? Do I have to recompile the run-time library? ---------------------------------------------------------------------- Comment By: Maarten Brock (maartenbrock) Date: 2004-05-18 09:07 Message: Logged In: YES user_id=888171 Hi Guillaume, The first thing you have to do is make sure this line is somewhere in your source/header files: sfr _XPAGE at 0x92; //same as MPAGE Please report back with the results. Maarten ---------------------------------------------------------------------- Comment By: Guillaume (rosanis) Date: 2004-05-17 22:41 Message: Logged In: YES user_id=1043238 Oops, sorry. SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds40 0/hc08 2.4.1 (May 16 2004) (MINGW32) The microcontroller I'm developing for is an EZ-USB FX with 8KB internal XRAM. ---------------------------------------------------------------------- Comment By: Maarten Brock (maartenbrock) Date: 2004-05-17 12:08 Message: Logged In: YES user_id=888171 Before this can be answered fully, we need to know the following: 1) What version of SDCC are you using? (use sdcc -v) 2) What specific microcontroller are you using? Greets, Maarten ---------------------------------------------------------------------- Comment By: Maarten Brock (maartenbrock) Date: 2004-05-17 11:12 Message: Logged In: YES user_id=888171 Before this can be answered fully, we need to know the following: 1) What version of SDCC are you using? (use sdcc -v) 2) What specific microcontroller are you using? Greets, Maarten ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=954959&group_id=599 |