From: William F. <wd...@mi...> - 2009-09-10 02:21:18
|
Thank you Vaclav, I never noticed before that I was using the wrong addresses 0x30000 range instead of 0x300000 duh ! FYI: the error message I was getting was : "Assertion failed: data & MEM_USED_MASK, file lst.c, line 188" Program compiles when the extra zeros are inserted and when changed from const to code and changed from 16bit values to 8bit values. Processor is PIC 18f4620 $ sdcc -v SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.9.1 #5471 (Jun 30 2009) (MINGW32) this code worked : code char __at (0x300001) config1 = 0x06; // HS + PLL(*4), unused code uint8_t __at (0x300002) config2 = 0x14; // powerup=on brownout=2.0V, code uint8_t __at (0x300003) config3 = 0x13; // watchdog enabled, scaled by 512 code char __at (0x300005) config5 = 0x81; // stack over-underflow causes reset, no extended, low voltage prg =off code char __at (0x300006) config6 = 0x81; // code char __at (0x300008) config8 = 0x0f; // no protection of code code char __at (0x300009) config9 = 0xc0; // no protection of code code char __at (0x30000A) configA = 0x0f; // no protection of table writes code char __at (0x30000B) configB = 0xE0; // code char __at (0x30000C) configC = 0x0f; // no protection of table writes code char __at (0x30000D) configD = 0x40; // no protection of table reads Awesome :) |