Hi folks, I'm new to PIC programming and sdcc (please forgive me if my question is a FAQ, but I don't believe so...)
I'm using : SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.9.0 #5416 (Aug 15 2009) (UNIX) gpasm-0.13.7 beta (from latest Ubuntu packages) I'm programming a PIC16F886 which has 8kB of program flash memory (0x0000 - 0x1FFF) The first steps of my project were compiling perfectly and running as expected on my PIC as well, so I was happy ;-) But now my program grows, and as soon as its final machine code grew over 4kB, the compiler started spitting messages such as: sdcc -mpic14 -p16f886 -V --debug -I/mydirectory/ -c myprog.c myprog.asm:11063: message : Crossing page boundary -- ensure page bits are set. myprog.asm:11077: message : Crossing page boundary -- ensure page bits are set. myprog.asm:11091: message : Crossing page boundary -- ensure page bits are set. myprog.asm:11107: message : Crossing page boundary -- ensure page bits are set. + "/usr/bin/sdcpp" -nostdinc -Wall -I"/mydirectory/" -obj-ext=.o - DSDCC_MODEL_SMALL -DSDCC=290 -DSDCC_REVISION=5416 -DSDCC_pic14 -D__pic14 - DSDCC_PROCESSOR="16f886" -isystem "/usr/bin/../share/sdcc/include/pic14" - isystem "/usr/share/sdcc/include/pic14" -isystem "/usr/bin/../share/sdcc/include" -isystem "/usr/share/sdcc/include" -isystem "/usr/bin/../share/sdcc/include/pic" -isystem "/usr/share/sdcc/include/pic" "myprog.c" + "/usr/bin/gpasm" -g -c "myprog.asm" gpasm -c -I/mydirectory/ -w0 myprog.asm (Blah-blah) myprog.asm:11063: message : Crossing page boundary -- ensure page bits are set. myprog.asm:11077: message : Crossing page boundary -- ensure page bits are set. myprog.asm:11091: message : Crossing page boundary -- ensure page bits are set. myprog.asm:11107: message : Crossing page boundary -- ensure page bits are set. sdcc -mpic14 -p16f886 -V --debug -Wl-c -Wl-m -I/mydirectory/ -omyprog.hex myprog.o using default linker script "/usr/share/gputils/lkr/16f886.lkr" no target memory available for section "code_myprog" + "/usr/bin/gplink" -I"/usr/bin/../share/sdcc/lib" -I"/usr/share/sdcc/lib" - I"/usr/bin/../share/sdcc/lib/pic" -I"/usr/share/sdcc/lib/pic" -c -m -w -r -o myprog.hex myprog.o libsdcc.lib pic16f886.lib + "/usr/bin/gplink" -I"/usr/bin/../share/sdcc/lib" -I"/usr/share/sdcc/lib" - I"/usr/bin/../share/sdcc/lib/pic" -I"/usr/share/sdcc/lib/pic" -c -m -w -r -o myprog.hex myprog.o libsdcc.lib pic16f886.lib returned errorcode 256 *** Exit with code : 1 *** I'm pretty sure there is no error in the code that would cause that. If I remove a couple instructions that allows the code to fit into 4kB, everything's allright. As soon as it grows beyond 4kB (0x0FFF), compilation fails as shown above. However I would be more than happy to be able to use more than half of my PIC's flash... Any clue would be greatly appreciated. Thanks in advance. -- Michel Bouissou ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Sdcc-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/sdcc-user
