From: SourceForge.net <no...@so...> - 2006-11-30 04:00:12
|
Bugs item #1605811, was opened at 2006-11-29 20:00 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1605811&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: pic14 target Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: trivial program linking fails for 12f675 Initial Comment: under: sdcc -v SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.6.0 #4309 (Nov 29 2006) (UNIX) this progam (trivial): #define __pic12f675 #include <pic12f675.h> void spin256 () { char i ; for ( i=255; i != 0; i--) {} } void main (void) { spin256 (); } fails to link: sdcc --debug --verbose -mpic14 -p12f675 main.c Processor: 12f675 sdcc: Calling preprocessor... sdcc: Generating code... sdcc: Calling assembler... main.asm:162:Warning [230] directive ignored when debug info is disabled main.asm:175:Warning [230] directive ignored when debug info is disabled main.asm:212:Warning [230] directive ignored when debug info is disabled sdcc: Calling linker... message: using default linker script "/usr/local/gputils/share/gputils/lkr/12f675.lkr" error: linker script has no definition that matches the type of section "udata_main_0" This is reproducable under FreeBSD 6 and OS X.4. gpasm 0.13.4b correctly builds 12f675 assembly projects in this installation. Switching sdcc to the 16f684 target produces working output. After calling "sdcc -c -p12f675 main.c" and "sdcc -c -p16f864 main.c" I found that they both generated almost identical .asm files. I'm very exicted about having an OSS compiler for little targets; I'll be happy to provide support for developers. as...@ae... ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1605811&group_id=599 |
From: SourceForge.net <no...@so...> - 2006-11-30 09:39:53
|
Bugs item #1605811, was opened at 2006-11-30 04:00 Message generated for change (Comment added) made by tecodev You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1605811&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: pic14 target >Group: fixed >Status: Closed >Resolution: Out of Date Priority: 5 Private: No Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: trivial program linking fails for 12f675 Initial Comment: under: sdcc -v SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.6.0 #4309 (Nov 29 2006) (UNIX) this progam (trivial): #define __pic12f675 #include <pic12f675.h> void spin256 () { char i ; for ( i=255; i != 0; i--) {} } void main (void) { spin256 (); } fails to link: sdcc --debug --verbose -mpic14 -p12f675 main.c Processor: 12f675 sdcc: Calling preprocessor... sdcc: Generating code... sdcc: Calling assembler... main.asm:162:Warning [230] directive ignored when debug info is disabled main.asm:175:Warning [230] directive ignored when debug info is disabled main.asm:212:Warning [230] directive ignored when debug info is disabled sdcc: Calling linker... message: using default linker script "/usr/local/gputils/share/gputils/lkr/12f675.lkr" error: linker script has no definition that matches the type of section "udata_main_0" This is reproducable under FreeBSD 6 and OS X.4. gpasm 0.13.4b correctly builds 12f675 assembly projects in this installation. Switching sdcc to the 16f684 target produces working output. After calling "sdcc -c -p12f675 main.c" and "sdcc -c -p16f864 main.c" I found that they both generated almost identical .asm files. I'm very exicted about having an OSS compiler for little targets; I'll be happy to provide support for developers. as...@ae... ---------------------------------------------------------------------- >Comment By: Raphael Neider (tecodev) Date: 2006-11-30 09:39 Message: Logged In: YES user_id=1115835 Originator: NO This bug has been fixed long since. Two options: (1) Update to a nightly snapshot (around 2.6.1, r4491). In these revisions, SDCC emits a -r option to gplink, allowing the use of SHAREBANKs for normal data. [This is the preferred method, giving you many other bug fixes as well.] (2) Pass -r to gplink, e.g., using 'sdcc -mpic14 -p12f675 -Wl,-r [more arguments]'. This is actually a linker (script) problem: SDCC emits data in udata sections, but the linker script for the 12f675 only provides SHAREBANK entries. The -r option allows gplink to use these as plain DATABANKs. This leads to a third workaround [depreciated]: (3) Edit the linker script 12f675.lkr, remove the SHAREBANK 0xA0-0xDF and replace the SHAREBANK 0x20-0x5F with a DATABANK. (This solution is currently broken, as SDCC relies on all devices having a SHAREBANK; DO NOT TRY THIS WITH A MORE RECENT VERSION). The quick solution in (2) should get you started, (1) should be the option of choice, although you should update (again) in a week or so when (3) has been fixed again. > I'll be happy to provide support for developers. In what respects would you like to contribute? Using the compiler and posting bug reports is already a good start. Using the compiler and posting patches to fix bugs encountered during use would be appreciated as well. There may be other ways (docs, regression tests, generalized library build system, ...). Regards, Raphael ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1605811&group_id=599 |