Hi, I'm new to piklab and sdcc , when I try to compile some stuff our instructors gave us I get the following error:
sdcc -mpic14 -p16f877 -V --debug -I/home/duygu/ceng4/ -c ceng336/hw3_lcd_examples/lcd.c + "/usr/bin/sdcpp" -nostdinc -Wall -std=c99 -I"/home/duygu/ceng4/" -obj-ext=.o -DSDCC_MODEL_SMALL -DSDCC=280 -DSDCC_REVISION=5117 -DSDCC_pic14 -D__pic14 -DSDCC_PROCESSOR="16f877" -I"/usr/bin/../share/sdcc/include/pic14" -I"/usr/share/sdcc/include/pic14" -I"/usr/bin/../share/sdcc/include" -I"/usr/share/sdcc/include" -I"/usr/bin/../share/sdcc/include/pic" -I"/usr/share/sdcc/include/pic" "ceng336/hw3_lcd_examples/lcd.c" sdcc -mpic14 -p16f877 -V --debug -I/home/duygu/ceng4/ -c ceng336/hw3_lcd_examples/lcd_demo.c demo1 glue.c:1956: emitInitVal: Assertion `!"Initialized char-arrays are not yet supported, assign at runtime instead."' failed. + "/usr/bin/sdcpp" -nostdinc -Wall -std=c99 -I"/home/duygu/ceng4/" -obj-ext=.o -DSDCC_MODEL_SMALL -DSDCC=280 -DSDCC_REVISION=5117 -DSDCC_pic14 -D__pic14 -DSDCC_PROCESSOR="16f877" -I"/usr/bin/../share/sdcc/include/pic14" -I"/usr/share/sdcc/include/pic14" -I"/usr/bin/../share/sdcc/include" -I"/usr/share/sdcc/include" -I"/usr/bin/../share/sdcc/include/pic" -I"/usr/share/sdcc/include/pic" "ceng336/hw3_lcd_examples/lcd_demo.c" SIGABRT *** Exited with status: 1 *** Here're the files: lcd.h #define LCDPORT PORTD #define LCDPORT_TRIS TRISD #define LCDCONTROL_TRIS TRISC #define RSLCD RC0 #define ENLCD RC1 void delay1(void); void delay2(void); void delay3(void); void pulse(void); void lcdInit(void); void lcdClear(void); void lcdGoto(unsigned char); void lcdWrite(unsigned char); lcd.c #include <pic/pic16f877.h> #include "lcd.h" void delay1(void) { int i; for(i = 0; i < 125; i++); } void delay2(void) { int i; for(i = 0; i < 40; i++) delay1(); } void delay3(void) { int i; for(i = 0; i < 10; i++) delay2(); } void pulse(void) { ENLCD = 1; __asm NOP __endasm; ENLCD = 0; delay1(); } void lcdInit(void) { LCDPORT_TRIS = 0; LCDCONTROL_TRIS = 0; ENLCD = 0; RSLCD = 0; delay1(); LCDPORT = 56; pulse(); LCDPORT = 15;//1DCB pulse(); LCDPORT = 1;//clear lcd and return the cursor to the home pulse(); delay2(); } void lcdClear(void) { ENLCD = 0; RSLCD = 0; delay1(); LCDPORT = 1; pulse(); delay2(); } void lcdGoto(unsigned char c) { LCDPORT = c; RSLCD = 0; delay2(); pulse(); } void lcdWrite(unsigned char c) { LCDPORT = c; RSLCD = 1; pulse(); } lcd_demo.c #include <pic/pic16f877.h> #include "lcd.h" typedef unsigned int config; config at 0x2007 __CONFIG = _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _HS_OSC & _LVP_OFF; #define START_OF_LINE1 0x80 #define START_OF_LINE2 0xc0 #define START_OF_LINE3 0x90 #define START_OF_LINE4 0xd0 static const char demo1[] = "+--------------+"; static const char demo2[] = "| Ceng 336 |"; static const char demo3[] = "| SDCC LCD demo|"; static const char demo4[] = "+--------------+"; void writeDemo() { int i; lcdGoto(START_OF_LINE1); for(i = 0; demo1[i]; i++) lcdWrite(demo1[i]); lcdGoto(START_OF_LINE2); for(i = 0; demo2[i]; i++) lcdWrite(demo2[i]); lcdGoto(START_OF_LINE3); for(i = 0; demo3[i]; i++) lcdWrite(demo3[i]); lcdGoto(START_OF_LINE4); for(i = 0; demo4[i]; i++) lcdWrite(demo4[i]); for(i = 0; i < 10; i++) delay3(); lcdClear(); } void writeChars() { int i; unsigned char c; for(c = 'A'; c <= 'Z'; c++ ) lcdWrite(c); for(i = 0; i < 10; i++) delay3(); lcdClear(); for(c = 'a'; c <= 'z'; c++ ) lcdWrite(c); for(i = 0; i < 10; i++) delay3(); lcdClear(); for(c = ' '; c <= '?'; c++ ) lcdWrite(c); for(i = 0; i < 10; i++) delay3(); lcdClear(); } void main(void) { lcdInit(); delay3(); // LCD can not work immediately after is is powered. // We should wait at least 50ms. while(1) { writeDemo(); writeChars(); } } I really don't know what the problem is , can somebody help?
------------------------------------------------------------------------------
_______________________________________________ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user