makefile - Can't compile simple code with SDCC for pic on debian -
i'm trying compile following code sdcc, in debian using vim , makefile:
void main(void) { }
yes, simple, it's not working yet. i'm using makefile :
# gnu/linux specific make directives. # declare tools. shell = /bin/sh cc = sdcc ld = gplink echo = @echo mcu = 16f88 arch = pic14 cflags = -m$(arch) -p$(mcu) ldflags = -c -r -w -m /usr/share/sdcc/lib/$(arch)/ executable = t1 sources = test2.c objects = $(sources:.c=.o) cleanfiles = test2.o test2.asm test2.map test2.lst .suffixes: .c .o .phony: clean # compile all: $(executable) .c.o: $(at) $(cc) $(cflags) -o $*.o -c $< $(executable): $(objects) $(at) $(ld) $(ldflags) $(objects) -o $(executable) clean: $(at) rm -rf $(cleanfiles)
after of output after running makefile is:
sdcc -mpic14 -p16f88 -o test2.o -c test2.c gplink -c -r -w -m /usr/share/sdcc/lib/pic14/ test2.o -o t1 make: *** [t1] segmentation fault
i have tried more complex code same result, can't see what's wrong, ?
i see several things can causing problems:
when compile pics using sdcc, need option
--use-non-free
because pic header files have special microchip licence not gpl compatible. furthermore,--use-non-free
might not available on debian because of freedom policy if installed sdcc repositories. need install latest sdcc official website.on linking stage, should include pic libraries needed run. try executing
sdcc -mpic14 -p16f88 --use-non-free -v test2.c
. way, sdcc links automatically ,-v
(verbose) can see calls assembler , linker , can see libraries added on linkage.
Comments
Post a Comment