From: Soloviov D. <dmi...@ya...> - 2012-11-12 07:59:05
|
Hello! I've just installed latest version of SDCC and want to compile some simplest possible program like #include <pic18fregs.h> void main() { while (1) { TRISB = 0; PORTB = 19; } } with SDCC 3.2.1 sdcc -mpic16 -p18f1220 -V test0.c But this message occurs: + /usr/local/bin/sdcpp -nostdinc -Wall -Dpic18f1220 -D__18f1220 -D__SDCC_PIC18F1220 -DSTACK_MODEL_SMALL -D__STACK_MODEL_SMALL -obj-ext=.o -D__SDCC=3_2_1 -DSDCC=321 -D__SDCC_REVISION=8146 -DSDCC_REVISION=8146 -D__SDCC_pic16 -DSDCC_pic16 -D__pic16 -D__STDC_NO_COMPLEX__ -D__STDC_NO_THREADS__ -D__STDC_NO_ATOMICS__ -D__STDC_NO_VLA__ -isystem /usr/local/bin/../share/sdcc/include/pic16 -isystem /usr/local/share/sdcc/include/pic16 -isystem /usr/local/bin/../share/sdcc/include -isystem /usr/local/share/sdcc/include test0.c 3: pic18fregs.h:397: 26: error: pic18f1220.h: No such file or directory SDCC compiled from source in standard way like this: ./configure (no errors reported, all targets in state 'yes') make su -c 'make install' No errors reported by make. OS: stable Debian Squeeze 64 This problem lays on silly structure of sdcc include directories (sdcc/include; sdcc/non-free/include) I know this can be fixed and my question is: how? I can just mix in files from 'non-free' subdirs into normal include and lib dirs. Is that a way sdcc works? |
From: Vaclav P. <vac...@se...> - 2012-11-12 08:05:13
|
Hi Dima, can you try --use-non-free parameter for sdcc during compilation ? Is it better now ? Vaclav "Hello! I've just installed latest version of SDCC and want to compile some simplest possible program like #include <pic18fregs.h> void main() { while (1) { TRISB = 0; PORTB = 19; } } with SDCC 3.2.1 sdcc -mpic16 -p18f1220 -V test0.c But this message occurs: + /usr/local/bin/sdcpp -nostdinc -Wall -Dpic18f1220 -D__18f1220 -D__SDCC_PIC 18F1220 -DSTACK_MODEL_SMALL -D__STACK_MODEL_SMALL -obj-ext=.o -D__SDCC=3_2_1 -DSDCC=321 -D__SDCC_REVISION=8146 -DSDCC_REVISION=8146 -D__SDCC_pic16 - DSDCC_pic16 -D__pic16 -D__STDC_NO_COMPLEX__ -D__STDC_NO_THREADS__ -D__STDC_ NO_ATOMICS__ -D__STDC_NO_VLA__ -isystem /usr/local/bin/../share/sdcc/ include/pic16 -isystem /usr/local/share/sdcc/include/pic16 -isystem /usr/ local/bin/../share/sdcc/include -isystem /usr/local/share/sdcc/include test 0.c 3: pic18fregs.h:397: 26: error: pic18f1220.h: No such file or directory SDCC compiled from source in standard way like this: ./configure (no errors reported, all targets in state 'yes') make su -c 'make install' No errors reported by make. OS: stable Debian Squeeze 64 This problem lays on silly structure of sdcc include directories (sdcc/ include; sdcc/non-free/include) I know this can be fixed and my question is: how? I can just mix in files from 'non-free' subdirs into normal include and lib dirs. Is that a way sdcc works? ---------------------------------------------------------------------------- -- Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_nov(http://p.sf.net/sfu/appdyn_d2d_nov) _______________________________________________ Sdcc-user mailing list Sdc...@li... https://lists.sourceforge.net/lists/listinfo/sdcc-user (https://lists.sourceforge.net/lists/listinfo/sdcc-user)" |
From: Kustaa N. <Kus...@pl...> - 2012-11-12 08:06:00
|
On 12.11.2012 9.58, "Soloviov Dmitry" <dmi...@ya...> wrote: >Hello! > >I've just installed latest version of SDCC and want to compile some >simplest possible program like > >#include <pic18fregs.h> > >void main() { > while (1) { > TRISB = 0; > PORTB = 19; > } >} > >with SDCC 3.2.1 >sdcc -mpic16 -p18f1220 -V test0.c > >But this message occurs: > >+ /usr/local/bin/sdcpp -nostdinc -Wall -Dpic18f1220 -D__18f1220 >-D__SDCC_PIC18F1220 -DSTACK_MODEL_SMALL -D__STACK_MODEL_SMALL -obj-ext=.o >-D__SDCC=3_2_1 -DSDCC=321 -D__SDCC_REVISION=8146 -DSDCC_REVISION=8146 >-D__SDCC_pic16 -DSDCC_pic16 -D__pic16 -D__STDC_NO_COMPLEX__ >-D__STDC_NO_THREADS__ -D__STDC_NO_ATOMICS__ -D__STDC_NO_VLA__ -isystem >/usr/local/bin/../share/sdcc/include/pic16 -isystem >/usr/local/share/sdcc/include/pic16 -isystem >/usr/local/bin/../share/sdcc/include -isystem >/usr/local/share/sdcc/include test0.c >3: > >pic18fregs.h:397: 26: error: pic18f1220.h: No such file or directory Have you --use-non-free ?? From: SDCC Compiler User Guide ¨"Pic device specific header and c source files are automatically generated from MPLAB include files, which are published by Microchip with a special requirement that they are only to be used with authentic Microchip devices. This reqirement prevents to publish generated header and c source files under the GPL compatible license, so they are located in non-free directory (see section 2.3). In order to include them in include and library search paths, the --use-non-free command line option should be defined." cheers Kusti > |
From: Soloviov D. <dmi...@ya...> - 2012-11-12 08:21:37
|
Thanks for reply! That's better now, but I'm still frustrated.. $ sdcc -mpic16 -p18f1220 -V --use-non-free test1.c + /usr/local/bin/sdcpp -nostdinc -Wall -Dpic18f1220 -D__18f1220 -D__SDCC_PIC18F1220 -DSTACK_MODEL_SMALL -D__STACK_MODEL_SMALL -obj-ext=.o -D__SDCC_USE_NON_FREE -DSDCC_USE_NON_FREE -D__SDCC=3_2_1 -DSDCC=321 -D__SDCC_REVISION=8146 -DSDCC_REVISION=8146 -D__SDCC_pic16 -DSDCC_pic16 -D__pic16 -D__STDC_NO_COMPLEX__ -D__STDC_NO_THREADS__ -D__STDC_NO_ATOMICS__ -D__STDC_NO_VLA__ -isystem /usr/local/bin/../share/sdcc/include/pic16 -isystem /usr/local/share/sdcc/include/pic16 -isystem /usr/local/bin/../share/sdcc/include -isystem /usr/local/share/sdcc/include -isystem /usr/local/bin/../share/sdcc/non-free/include/pic16 -isystem /usr/local/share/sdcc/non-free/include/pic16 -isystem /usr/local/bin/../share/sdcc/non-free/include -isystem /usr/local/share/sdcc/non-free/include test1.c + gpasm -DSTACK_MODEL_SMALL -D__STACK_MODEL_SMALL -o test1.o -c test1.asm + gplink -I/usr/local/bin/../share/sdcc/lib/pic16 -I/usr/local/share/sdcc/lib/pic16 -I/usr/local/bin/../share/sdcc/non-free/lib/pic16 -I/usr/local/share/sdcc/non-free/lib/pic16 -w -r -o test1 test1.o crt0i.o libdev18f1220.lib libsdcc.lib crt0i.o: No such file or directory + gplink -I/usr/local/bin/../share/sdcc/lib/pic16 -I/usr/local/share/sdcc/lib/pic16 -I/usr/local/bin/../share/sdcc/non-free/lib/pic16 -I/usr/local/share/sdcc/non-free/lib/pic16 -w -r -o test1 test1.o crt0i.o libdev18f1220.lib libsdcc.lib returned errorcode 256 12.11.2012, 12:09, "Kustaa Nyholm" <Kus...@pl...>: > On 12.11.2012 9.58, "Soloviov Dmitry" <dmi...@ya...> wrote: > >> Hello! >> >> I've just installed latest version of SDCC and want to compile some >> simplest possible program like >> >> #include <pic18fregs.h> >> >> void main() { >> while (1) { >> TRISB = 0; >> PORTB = 19; >> } >> } >> >> with SDCC 3.2.1 >> sdcc -mpic16 -p18f1220 -V test0.c >> >> But this message occurs: >> >> + /usr/local/bin/sdcpp -nostdinc -Wall -Dpic18f1220 -D__18f1220 >> -D__SDCC_PIC18F1220 -DSTACK_MODEL_SMALL -D__STACK_MODEL_SMALL -obj-ext=.o >> -D__SDCC=3_2_1 -DSDCC=321 -D__SDCC_REVISION=8146 -DSDCC_REVISION=8146 >> -D__SDCC_pic16 -DSDCC_pic16 -D__pic16 -D__STDC_NO_COMPLEX__ >> -D__STDC_NO_THREADS__ -D__STDC_NO_ATOMICS__ -D__STDC_NO_VLA__ -isystem >> /usr/local/bin/../share/sdcc/include/pic16 -isystem >> /usr/local/share/sdcc/include/pic16 -isystem >> /usr/local/bin/../share/sdcc/include -isystem >> /usr/local/share/sdcc/include test0.c >> 3: >> >> pic18fregs.h:397: 26: error: pic18f1220.h: No such file or directory > > Have you --use-non-free ?? > > From: SDCC Compiler User Guide > > ¨"Pic device specific header and c source files are automatically > generated from MPLAB include files, which > are published by Microchip with a special requirement that they are only > to be used with authentic Microchip > devices. This reqirement prevents to publish generated header and c source > files under the GPL compatible license, > so they are located in non-free directory (see section 2.3). In order to > include them in include and library search > paths, the --use-non-free command line option should be defined." > > cheers Kusti > > ------------------------------------------------------------------------------ > Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics > Download AppDynamics Lite for free today: > http://p.sf.net/sfu/appdyn_d2d_nov > _______________________________________________ > Sdcc-user mailing list > Sdc...@li... > https://lists.sourceforge.net/lists/listinfo/sdcc-user |
From: Soloviov D. <dmi...@ya...> - 2012-11-12 08:50:21
|
BTW, gputils installed as distro package (apt-get install blah-blah) $ gplink -v gplink-0.13.7 beta What is crt0i ? Is it something like bootstrap object to really call main()? |
From: Diego H. <die...@di...> - 2012-11-12 10:04:52
|
Yes, crt0i initializes variables, stack, etc and calls main(). You can see what it does more in detail here: http://sdcc.svn.sourceforge.net/viewvc/sdcc/trunk/sdcc/device/lib/pic16/startup/crt0i.c?view=markup . Just an offtopic comment: I would write void main(void) instead of void main(). On Mon, Nov 12, 2012 at 9:50 AM, Soloviov Dmitry <dmi...@ya...>wrote: > BTW, gputils installed as distro package (apt-get install blah-blah) > > $ gplink -v > gplink-0.13.7 beta > > What is crt0i ? Is it something like bootstrap object to really call > main()? > > > ------------------------------------------------------------------------------ > Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics > Download AppDynamics Lite for free today: > http://p.sf.net/sfu/appdyn_d2d_nov > _______________________________________________ > Sdcc-user mailing list > Sdc...@li... > https://lists.sourceforge.net/lists/listinfo/sdcc-user > |
From: Soloviov D. <dmi...@ya...> - 2012-11-12 10:22:21
|
<div> Thank you for reply!</div><div> </div><div>So, how that may be: crt0i is part of SDCC and gplink (called from SDCC) can't find them?</div><div>Can this happens in case of missing compiled crt0?</div><div>$ find /usr -type f -name 'crt0i.o'</div><div>nothing found</div><div>Is this some hidden part of SDCC install beyond configure/make/make install to compile additional</div><div>parts of SDCC?</div><div> </div><div>12.11.2012, 14:10, "Diego Herranz" <die...@di...>:</div><blockquote type="cite">Yes, crt0i initializes variables, stack, etc and calls main(). You can see what it does more in detail here: <a href="http://sdcc.svn.sourceforge.net/viewvc/sdcc/trunk/sdcc/device/lib/pic16/startup/crt0i.c?view=markup">http://sdcc.svn.sourceforge.net/viewvc/sdcc/trunk/sdcc/device/lib/pic16/startup/crt0i.c?view=markup</a>.<div>Just an offtopic comment: I would write <span style="font-family:arial,sans-serif;font-size:13px;">void main(void) instead of </span><span style="font-family:arial,sans-serif;font-size:13px;">void main().</span></div><div><br /><br /><div>On Mon, Nov 12, 2012 at 9:50 AM, Soloviov Dmitry <span dir="ltr"><<a href="mailto:dmi...@ya..." target="_blank">dmi...@ya...</a>></span> wrote:<br /><blockquote style="margin:0 0 0 0.8ex;border-left:1px #ccc solid;padding-left:1ex;">BTW, gputils installed as distro package (apt-get install blah-blah)<br /> <br /> $ gplink -v<br /> gplink-0.13.7 beta<br /> <br /> What is crt0i ? Is it something like bootstrap object to really call main()?<br /><div><div><br /> ------------------------------------------------------------------------------<br /> Everyone hates slow websites. So do we.<br /> Make your web apps faster with AppDynamics<br /> Download AppDynamics Lite for free today:<br /> <a href="http://p.sf.net/sfu/appdyn_d2d_nov" target="_blank">http://p.sf.net/sfu/appdyn_d2d_nov</a><br /> _______________________________________________<br /> Sdcc-user mailing list<br /> <a href="mailto:Sdc...@li...">Sdc...@li...</a><br /> <a href="https://lists.sourceforge.net/lists/listinfo/sdcc-user" target="_blank">https://lists.sourceforge.net/lists/listinfo/sdcc-user</a></div></div></blockquote></div></div>,<p>------------------------------------------------------------------------------<br />Everyone hates slow websites. So do we.<br />Make your web apps faster with AppDynamics<br />Download AppDynamics Lite for free today:<br /><a href="http://p.sf.net/sfu/appdyn_d2d_nov">http://p.sf.net/sfu/appdyn_d2d_nov</a></p>,<p>_______________________________________________<br />Sdcc-user mailing list<br /><a href="mailto:Sdc...@li...">Sdc...@li...</a><br /><a href="https://lists.sourceforge.net/lists/listinfo/sdcc-user">https://lists.sourceforge.net/lists/listinfo/sdcc-user</a></p></blockquote><div> </div><div>12.11.2012, 12:09, "Kustaa Nyholm" <Kus...@pl...>:<br /><br />> On 12.11.2012 9.58, "Soloviov Dmitry" <dmi...@ya...> wrote:<br /><br />>> Hello!<br /><br />>> I've just installed latest version of SDCC and want to compile some<br />>> simplest possible program like<br /><br />>> #include <pic18fregs.h><br /><br />>> void main() {<br />> > > while (1) {<br />> > > > > TRISB = 0;<br />> > > > > PORTB = 19;<br />> > > }<br />> }<br /><br />> with SDCC 3.2.1<br />> sdcc -mpic16 -p18f1220 -V test0.c<br /><br />> But this message occurs:<br /><br />> + /usr/local/bin/sdcpp -nostdinc -Wall -Dpic18f1220 -D__18f1220<br />> -D__SDCC_PIC18F1220 -DSTACK_MODEL_SMALL -D__STACK_MODEL_SMALL -obj-ext=.o<br />> -D__SDCC=3_2_1 -DSDCC=321 -D__SDCC_REVISION=8146 -DSDCC_REVISION=8146<br />> -D__SDCC_pic16 -DSDCC_pic16 -D__pic16 -D__STDC_NO_COMPLEX__<br />> -D__STDC_NO_THREADS__ -D__STDC_NO_ATOMICS__ -D__STDC_NO_VLA__ -isystem<br />> /usr/local/bin/../share/sdcc/include/pic16 -isystem<br />> /usr/local/share/sdcc/include/pic16 -isystem<br />> /usr/local/bin/../share/sdcc/include -isystem<br />> /usr/local/share/sdcc/include test0.c<br />> 3:<br /><br />> pic18fregs.h:397: 26: error: pic18f1220.h: No such file or directory<br /><br />> Have you --use-non-free ??<br /><br />> From: SDCC Compiler User Guide<br /><br />> ¨"Pic device specific header and c source files are automatically<br />> generated from MPLAB include files, which<br />> are published by Microchip with a special requirement that they are only<br />> to be used with authentic Microchip<br />> devices. This reqirement prevents to publish generated header and c source<br />> files under the GPL compatible license,<br />> so they are located in non-free directory (see section 2.3). In order to<br />> include them in include and library search<br />> paths, the --use-non-free command line option should be defined."<br /><br />> cheers Kusti<br /><br />> ------------------------------------------------------------------------------<br />> Everyone hates slow websites. So do we.<br />> Make your web apps faster with AppDynamics<br />> Download AppDynamics Lite for free today:<br />> http://p.sf.net/sfu/appdyn_d2d_nov<br />> _______________________________________________<br />> Sdcc-user mailing list<br />> Sdc...@li...<br />> https://lists.sourceforge.net/lists/listinfo/sdcc-user</div> |
From: Philipp K. K. <pk...@sp...> - 2012-11-12 10:28:04
|
On 12.11.2012 11:22, Soloviov Dmitry wrote: > Thank you for reply! > > So, how that may be: crt0i is part of SDCC and gplink (called from SDCC) > can't find them? > Can this happens in case of missing compiled crt0? > $ find /usr -type f -name 'crt0i.o' > nothing found > Is this some hidden part of SDCC install beyond configure/make/make > install to compile additional > parts of SDCC? I am not an expert on the pic ports, but I have seen some objects such as the crt0 for pic not being built when compiling a current version of sdcc with old gputils. I would recommend pic port users to always use the latest gputils when using a current version of sdcc. Philipp |
From: Soloviov D. <dmi...@ya...> - 2012-11-12 10:54:44
|
Thank you! Well, I've just tested SDCC 2.9 with gplink 0.13.7. It's compiled just fine! There's output log: at 1: warning 117: unknown compiler option '--use-non-free' ignored message: using default linker script "/usr/share/gputils/lkr/18f1220.lkr" + "/usr/bin/sdcpp" -nostdinc -Wall -Dpic18f1220 -D__18f1220 -DSTACK_MODEL_SMALL -obj-ext=.o -DSDCC_MODEL_SMALL -DSDCC=290 -DSDCC_REVISION=5416 -DSDCC_pic16 -D__pic16 -isystem "/usr/bin/../share/sdcc/include/pic16" -isystem "/usr/share/sdcc/include/pic16" -isystem "/usr/bin/../share/sdcc/include" -isystem "/usr/share/sdcc/include" "test.c" + "/usr/bin/gpasm" -DSDCC_MODEL_SMALL -DSTACK_MODEL_SMALL -c "test.asm" -o "test.o" + "/usr/bin/gplink" -I"/usr/bin/../share/sdcc/lib/pic16" -I"/usr/share/sdcc/lib/pic16" -I"/usr/bin/../share/sdcc/lib" -I"/usr/share/sdcc/lib" -w -r -o test test.o crt0i.o libdev18f1220.lib libsdcc.lib No problem with compiling. Is that means I need to downgrade from 3.2.1 to 2.9.0 ? Dmitry. 12.11.2012, 14:31, "Philipp Klaus Krause" <pk...@sp...>: > On 12.11.2012 11:22, Soloviov Dmitry wrote: > >> Thank you for reply! >> >> So, how that may be: crt0i is part of SDCC and gplink (called from SDCC) >> can't find them? >> Can this happens in case of missing compiled crt0? >> $ find /usr -type f -name 'crt0i.o' >> nothing found >> Is this some hidden part of SDCC install beyond configure/make/make >> install to compile additional >> parts of SDCC? > > I am not an expert on the pic ports, but I have seen some objects such > as the crt0 for pic not being built when compiling a current version of > sdcc with old gputils. I would recommend pic port users to always use > the latest gputils when using a current version of sdcc. > > Philipp > > ------------------------------------------------------------------------------ > Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics > Download AppDynamics Lite for free today: > http://p.sf.net/sfu/appdyn_d2d_nov > _______________________________________________ > Sdcc-user mailing list > Sdc...@li... > https://lists.sourceforge.net/lists/listinfo/sdcc-user |
From: Philipp K. K. <pk...@sp...> - 2012-11-12 10:58:45
|
On 12.11.2012 11:54, Soloviov Dmitry wrote: > Thank you! > > Well, I've just tested SDCC 2.9 with gplink 0.13.7. It's compiled just fine! > > There's output log: > at 1: warning 117: unknown compiler option '--use-non-free' ignored > message: using default linker script "/usr/share/gputils/lkr/18f1220.lkr" > + "/usr/bin/sdcpp" -nostdinc -Wall -Dpic18f1220 -D__18f1220 -DSTACK_MODEL_SMALL -obj-ext=.o -DSDCC_MODEL_SMALL -DSDCC=290 -DSDCC_REVISION=5416 -DSDCC_pic16 -D__pic16 -isystem "/usr/bin/../share/sdcc/include/pic16" -isystem "/usr/share/sdcc/include/pic16" -isystem "/usr/bin/../share/sdcc/include" -isystem "/usr/share/sdcc/include" "test.c" > + "/usr/bin/gpasm" -DSDCC_MODEL_SMALL -DSTACK_MODEL_SMALL -c "test.asm" -o "test.o" > + "/usr/bin/gplink" -I"/usr/bin/../share/sdcc/lib/pic16" -I"/usr/share/sdcc/lib/pic16" -I"/usr/bin/../share/sdcc/lib" -I"/usr/share/sdcc/lib" -w -r -o test test.o crt0i.o libdev18f1220.lib libsdcc.lib > > No problem with compiling. > Is that means I need to downgrade from 3.2.1 to 2.9.0 ? Downgrading sdcc will work. But I would recommend upgrading gputils instead. Philipp |
From: Diego H. <die...@di...> - 2012-11-12 11:19:44
|
"Downgrading sdcc will work. But I would recommend upgrading gputils instead." Absolutely. There have been a lot of bug fixes and improvements for PIC port since 2.9.0. On Mon, Nov 12, 2012 at 11:58 AM, Philipp Klaus Krause <pk...@sp...> wrote: > On 12.11.2012 11:54, Soloviov Dmitry wrote: > > Thank you! > > > > Well, I've just tested SDCC 2.9 with gplink 0.13.7. It's compiled just > fine! > > > > There's output log: > > at 1: warning 117: unknown compiler option '--use-non-free' ignored > > message: using default linker script "/usr/share/gputils/lkr/18f1220.lkr" > > + "/usr/bin/sdcpp" -nostdinc -Wall -Dpic18f1220 -D__18f1220 > -DSTACK_MODEL_SMALL -obj-ext=.o -DSDCC_MODEL_SMALL -DSDCC=290 > -DSDCC_REVISION=5416 -DSDCC_pic16 -D__pic16 -isystem > "/usr/bin/../share/sdcc/include/pic16" -isystem > "/usr/share/sdcc/include/pic16" -isystem "/usr/bin/../share/sdcc/include" > -isystem "/usr/share/sdcc/include" "test.c" > > + "/usr/bin/gpasm" -DSDCC_MODEL_SMALL -DSTACK_MODEL_SMALL -c "test.asm" > -o "test.o" > > + "/usr/bin/gplink" -I"/usr/bin/../share/sdcc/lib/pic16" > -I"/usr/share/sdcc/lib/pic16" -I"/usr/bin/../share/sdcc/lib" > -I"/usr/share/sdcc/lib" -w -r -o test test.o crt0i.o libdev18f1220.lib > libsdcc.lib > > > > No problem with compiling. > > Is that means I need to downgrade from 3.2.1 to 2.9.0 ? > > Downgrading sdcc will work. But I would recommend upgrading gputils > instead. > > Philipp > > > ------------------------------------------------------------------------------ > Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics > Download AppDynamics Lite for free today: > http://p.sf.net/sfu/appdyn_d2d_nov > _______________________________________________ > Sdcc-user mailing list > Sdc...@li... > https://lists.sourceforge.net/lists/listinfo/sdcc-user > |