On Fri, 5 Sep 2014, r...@remi.lu wrote:
> Hello > > SDCC : stm8 3.4.1 #9068 (Sep 5 2014) (Linux) > > I dont see the difference between this ( A and B ) : > > I have _lcdchar declared by : > > .area OSEG > _varOne: > .ds 1 > _lcdchar: > .db 1 > > .area CSEG > > . > .which seems not working, at least the way variables > are to mee in assembly ... > . Assuming you aren't using a custom linker script, I think you should use areas DATA and CODE instead of OSEG and CSEG. In particular, OSEG is usually used to hold temporary values in functions that do not call other functions because all of the OSEG areas overlay (the O in OSEG) each other. So if your delay_m function also uses a variable in OSEG (or calls some other function that does), this other variable is likely to be at the same memory location as lcdchar, and so lcdchar is overwritten. Erik ------------------------------------------------------------------------------ Slashdot TV. Video for Nerds. Stuff that matters. http://tv.slashdot.org/ _______________________________________________ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user