Thanks Borut Ražem and Douglas Goodall for the advices.
I think sdcc compiles by default for the 8051 core and the sdcclib only
accepts *.rel files and not *.o files.
I have tried:
*$ sdcc -V -mpic16 -p18f4550 -c delay.c*
+ "/usr/local/bin/sdcpp" -nostdinc -Wall -Dpic18f4550 -D__18f4550
-D__SDCC_PIC18F4550 -DSTACK_MODEL_SMALL -D__STACK_MODEL_SMALL -obj-ext=.o
-D__SDCC=3_2_0 -DSDCC=320 -D__SDCC_REVISION=8008 -DSDCC_REVISION=8008
-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" "delay.c"
+ "gpasm" -DSTACK_MODEL_SMALL -D__STACK_MODEL_SMALL -o "delay.o" -c
"delay.asm"
And
sdcclib libmydelay.lib delay.o
$ sdcclib -s libmydelay.lib delay.rel:
And I have gotten the same error again: * *error: "libmydelay.lib" is not a
valid coff object or archive
returned errorcode 256
$ *sdcc -V --vc --debug -mpic16 -p18f4550 --main-return --use-non-free
-L`pwd` libmydelay.lib main.c*
+ "/usr/local/bin/sdcpp" -nostdinc -Wall -Dpic18f4550 -D__18f4550
-D__SDCC_PIC18F4550 -DSTACK_MODEL_SMALL -D__STACK_MODEL_SMALL -obj-ext=.o
-D__SDCC_USE_NON_FREE -DSDCC_USE_NON_FREE -D__SDCC=3_2_0 -DSDCC=320
-D__SDCC_REVISION=8008 -DSDCC_REVISION=8008 -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" "main.c"
+ "gpasm" -DSTACK_MODEL_SMALL -D__STACK_MODEL_SMALL -g -o "main.o" -c
"main.asm"
+ "gplink" -I"/home/caio/FinalProject/mcu/organizar/proj3"
-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 "main" "main.o"
crt0i.o "libmydelay.lib" "libdev18f4550.lib" "libsdcc.lib"
*error: "libmydelay.lib" is not a valid coff object or archive*
message: using default linker script "/usr/share/gputils/lkr/18f4550.lkr"
+ "gplink" -I"/home/caio/FinalProject/mcu/organizar/proj3"
-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 "main" "main.o"
crt0i.o "libmydelay.lib" "libdev18f4550.lib" "libsdcc.lib" * returned
errorcode 256*
On Fri, Nov 30, 2012 at 7:11 PM, Douglas Goodall <douglas_good...@mac.com>wrote:
> I don't consider myself an expert but here are my thoughts...
>
> Probably better to name the library something other than the name of the
> routine, like mydelay.lib.
>
> Instead of putting delay.lib in the object list, you could try "sdcc ...
> -l mydelay"
>
> Good luck,
>
> Douglas
>
> On Nov 30, 2012, at 1:24 PM, Caio Rodrigues <blackdog...@gmail.com> wrote:
>
> Hello users of the SDCC list:
>
> I am trying to create a pic18f4550 a custom library and I get the error:
> "delay.lib" is not a valid coff object or archive returned errorcode
> 256.
> I've attached the files used in this report.
>
> I am using:
> Ubuntu 12.04
> SDCC - 3.2.0 /usr/local/sdcc /usr/local/bin/sdcc
> gplink-0.13.7 beta
> gpasm-0.13.7 beta
> MCU: pic18f4450
>
> I am trying to create my own test library but I get this error:
>
>
> *$ sdcc -V --debug -c delay.c*
> + "/usr/local/bin/sdcpp" -nostdinc -Wall -obj-ext=.rel
> -D__SDCC_MODEL_SMALL -DSDCC_MODEL_SMALL -D__SDCC_FLOAT_REENT
> -DSDCC_FLOAT_REENT -D__SDCC=3_2_0 -DSDCC=320 -D__SDCC_REVISION=8008
> -DSDCC_REVISION=8008 -D__SDCC_mcs51 -DSDCC_mcs51 -D__mcs51
> -D__STDC_NO_COMPLEX__ -D__STDC_NO_THREADS__ -D__STDC_NO_ATOMICS__
> -D__STDC_NO_VLA__ -isystem "/usr/local/bin/../share/sdcc/include/mcs51"
> -isystem "/usr/local/share/sdcc/include/mcs51" -isystem
> "/usr/local/bin/../share/sdcc/include" -isystem
> "/usr/local/share/sdcc/include" "delay.c"
> + "/usr/local/bin/sdas8051" -plosgffwc "delay.rel" "delay.asm"
>
> I got : delay.rel
>
>
> And then I do:
> $ sdcclib delay.lib delay.rel
>
> I got : delay.lib
>
> $ sdcclib -s delay.lib
> delay.rel:
> .__.ABS.
> C$delay.c$43$1$5
> C$delay.c$44$1$5
> C$delay.c$36$1$4
> C$delay.c$29$1$2
> C$delay.c$45$1$5
> C$delay.c$37$1$4
> C$delay.c$46$1$5
> G$delay1s$0$0
> G$delaysx$0$0
> _delay1s
> G$delay500ms$0$0
> _delaysx
> XG$delay1s$0$0
> _delay500ms
> XG$delaysx$0$0
> A$delay$200
> A$delay$120
> A$delay$211
> A$delay$121
> A$delay$140
> A$delay$204
> A$delay$160
> A$delay$133
> A$delay$124
> XG$delay500ms$0$0
> A$delay$134
> A$delay$207
> A$delay$153
> A$delay$135
> A$delay$126
> A$delay$181
> A$delay$136
> A$delay$127
> A$delay$118
> A$delay$191
> A$delay$164
> A$delay$128
> A$delay$192
> A$delay$183
> A$delay$129
> A$delay$184
> A$delay$157
> A$delay$185
> A$delay$158
> A$delay$195
> A$delay$186
> A$delay$159
> C$delay.c$23$0$0
> A$delay$197
> C$delay.c$30$1$2
> A$delay$198
> A$delay$189
> A$delay$199
> C$delay.c$32$1$2
> C$delay.c$40$1$4
> C$delay.c$35$1$2
>
>
> And then:
>
> *$ sdcc -V --vc --debug -mpic16 -p18f4550 --main-return --use-non-free
> -L`pwd` delay.lib main.c *
>
> + "/usr/local/bin/sdcpp" -nostdinc -Wall -Dpic18f4550 -D__18f4550
> -D__SDCC_PIC18F4550 -DSTACK_MODEL_SMALL -D__STACK_MODEL_SMALL -obj-ext=.o
> -D__SDCC_USE_NON_FREE -DSDCC_USE_NON_FREE -D__SDCC=3_2_0 -DSDCC=320
> -D__SDCC_REVISION=8008 -DSDCC_REVISION=8008 -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" "main.c"
> + "gpasm" -DSTACK_MODEL_SMALL -D__STACK_MODEL_SMALL -g -o "main.o" -c
> "main.asm"
> + "gplink" -I"/home/caio/FinalProject/mcu/organizar/proj3"
> -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 "main" "main.o"
> crt0i.o "delay.lib" "libdev18f4550.lib" "libsdcc.lib"
> *error: "delay.lib" is not a valid coff object or archive*
> message: using default linker script "/usr/share/gputils/lkr/18f4550.lkr"
> + "gplink" -I"/home/caio/FinalProject/mcu/organizar/proj3"
> -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 "main" "main.o"
> crt0i.o "delay.lib" "libdev18f4550.lib" "libsdcc.lib" *returned
> errorcode 256*
>
>
> I know the sdcc has already a delay library but, I would like to learn
> how to create libraries.
>
> I don't understand what is a ''valid coff object or archive ' and why the
> this error happens. I also would like to know how to create libraries like
> the native library of the SDCC like libc18f.
>
>
>
>
>
>
> <default.h><delay.c><delay.h><main.c>
> ------------------------------------------------------------------------------
> Keep yourself connected to Go Parallel:
> TUNE You got it built. Now make it sing. Tune shows you how.
>
> http://goparallel.sourceforge.net_______________________________________________
> Sdcc-user mailing list
> Sdcc-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/sdcc-user
>
>
>
>
> ------------------------------------------------------------------------------
> Keep yourself connected to Go Parallel:
> TUNE You got it built. Now make it sing. Tune shows you how.
> http://goparallel.sourceforge.net
> _______________________________________________
> Sdcc-user mailing list
> Sdcc-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/sdcc-user
>
> T
------------------------------------------------------------------------------
Keep yourself connected to Go Parallel:
TUNE You got it built. Now make it sing. Tune shows you how.
http://goparallel.sourceforge.net
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user