도와주세요!!
글 수 15,339
2007.08.28 13:37:18 (*.82.68.226)
7299
안녕하세요..
첨부하신 소스는 어디에서 구하신건가요???
소스에서 오타 및 잘못 사용한 가 있는것 같습니다.
>io.c:93: invalid suffix on integer constant
>io.c:93: parse error before numeric constant
---> 라인 93줄에 보시면 int lp; 라고 되어 있습니다. 어떤 이유인지는 모르겠지만 예약어로 되어 있네요..
라인을 지우시고 다시 int lp; 로 직접 적어주세요.. 그래도 같은 에러이면 다른 변수로 선언하시고
이를 사용한 변수를 모두 수정해 주세요..
>io.c:95: warning: implicit declaration of function `readw'
>io.c:95: `oxFF' undeclared (first use in this function)
>io.c:95: (Each undeclared identifier is reported only once
>io.c:95: for each function it appears in.)
--->> 라인 95줄에 보시면 state = readw( DIO_READ_OFFSET ) & oxFF; 라고 되어 있습니다.
핵사값 표현은 0xFF 입니다. state = readw( DIO_READ_OFFSET ) & 0xFF;
>io.c:98: invalid suffix on integer constant
>io.c:98: invalid lvalue in assignment
>io.c:98: invalid suffix on integer constant
>io.c:98: invalid suffix on integer constant
>io.c:98: parse error before ')' token
>io.c:100: invalid suffix on integer constant
>io.c:100: invalid suffix on integer constant
>io.c:102: invalid suffix on integer constant
>io.c:103: invalid suffix on integer constant
>io.c: At top level:
>io.c:115: parse error before '}' token
>io.c:118: parse error before '(' token
-->> 위의 라인 93줄에 선언된 lp와 연관이 있습니다.. 따라서 이 부분도 지우시고 다시 적어 주시든지,
아니면 위에서 다른 변수로 선언하셨다면 변수명을 수정해 주세요.
>io.c: In function `armdio_int_write_handler':
>io.c:132: warning: implicit declaration of function `sava_flags_cli'
>io.c:133: warning: implicit declaration of function `writew'
>io.c:124: warning: unused variable `state'
>io.c:125: warning: unused variable `wake_flag'
>io.c: In function `armdio_int_handler':
>io.c:153: `TIMER_TICK_100uSEC' undeclared (first use in this function)
--->> 라인 153줄은 TIMER_TICK_100uSEC가 선언되어 있지 않다는 에러입니다.
include/io.h 파일에 보시면 TIMER_TICK_100uESC 로 오타가 되어 있습니다.
#define TIMER_TICK_100uSEC 10 로 수정해 주세요..
>io.c:147: warning: unused variable `flags'
>io.c:148: warning: unused variable `state'
>io.c: In function `armdio_open':
>io.c:190: warning: implicit declaration of function `kmalloc'
>io.c:203: structure has no member named `privae_data'
>io.c:205: `TIMER_TICK_100uSEC' undeclared (first use in this function)
--->> 라인 205줄은 TIMER_TICK_100uSEC가 선언되어 있지 않다는 에러입니다.
include/io.h 파일에 보시면 TIMER_TICK_100uESC 로 오타가 되어 있습니다.
#define TIMER_TICK_100uSEC 10 로 수정해 주세요..
>io.c:207: `MOD_INC_USE_CONUT' undeclared (first use in this function)
-->> 라인 207줄의 MOD_INC_USE_CONUT는 오타입니다. MOD_INC_USE_COUNT 로 수정해 주세요.
>io.c:210: warning: implicit declaration of function `kfree'
>io.c:213: warning: label `err1' defined but not used
>io.c:183: label `errl' used but not defined
>io.c: In function `armdio_read':
>io.c:244: invalid suffix on integer constant
>io.c:244: parse error before numeric constant
---> 라인 244줄에 보시면 int lp; 라고 되어 있습니다. 어떤 이유인지는 모르겠지만 예약어로 되어 있네요..
라인을 지우시고 다시 int lp; 로 직접 적어주세요.. 그래도 같은 에러이면 다른 변수로 선언하시고
이를 사용한 변수를 모두 수정해 주세요..
>io.c:257: parse error before '!=' token
--> if문의 조건이 잘못 되었네요... if( !count) 로 수정해 보세요..
>io.c:269: invalid suffix on integer constant
>io.c:269: invalid lvalue in assignment
>io.c:269: invalid suffix on integer constant
>io.c:269: invalid suffix on integer constant
>io.c:269: parse error before ')' token
>io.c:271: invalid suffix on integer constant
>io.c:271: invalid suffix on integer constant
>io.c:271: invalid suffix on integer constant
>io.c:271: invalid suffix on integer constant
>io.c:271: `__p' undeclared (first use in this function)
>io.c:271: invalid suffix on integer constant
>io.c:271: warning: statement with no effect
>io.c: At top level:
>io.c:271: parse error before ')' token
-->> 위의 라인 93줄에 선언된 lp와 연관이 있습니다.. 따라서 이 부분도 지우시고 다시 적어 주시든지,
아니면 위에서 다른 변수로 선언하셨다면 변수명을 수정해 주세요.
>io.c: In function `armdio_poll':
>io.c:313: `armdio_mng' undeclared (first use in this function)
>io.c:313: `data' undeclared (first use in this function)
-->> 구조체가 잘못 적혀 있네요..
armdio_mng *data; 가 아니라 armdio_mng_t *data; 로 하셔야 합니다..
>io.c:325: `maks' undeclared (first use in this function)
>io.c: At top level:
--->> 라인 325줄의 maks 가 선언되어 있지 않아서 에러가 난것입니다. 변수선언에는 mask 로 되어 있네요. mask로 수정해 주세요.
>io.c:336: `armdio_write' undeclared here (not in a function)
>io.c:336: initializer element is not constant
>io.c:336: (near initialization for `armdio_fops.write')
>
--->> armdio_write 함수가 없네요... 이 함수를 구현하시든지 아니면 소스에서 제거를 해 주셔야 합니다.
많은 부분에 오타가 있네요... 리눅스 디바이스 드라이버 책을 참조하셨다면 다시 한번 소스를 보시기 바랍니다.
그럼 수고하세요.
첨부하신 소스는 어디에서 구하신건가요???
소스에서 오타 및 잘못 사용한 가 있는것 같습니다.
>io.c:93: invalid suffix on integer constant
>io.c:93: parse error before numeric constant
---> 라인 93줄에 보시면 int lp; 라고 되어 있습니다. 어떤 이유인지는 모르겠지만 예약어로 되어 있네요..
라인을 지우시고 다시 int lp; 로 직접 적어주세요.. 그래도 같은 에러이면 다른 변수로 선언하시고
이를 사용한 변수를 모두 수정해 주세요..
>io.c:95: warning: implicit declaration of function `readw'
>io.c:95: `oxFF' undeclared (first use in this function)
>io.c:95: (Each undeclared identifier is reported only once
>io.c:95: for each function it appears in.)
--->> 라인 95줄에 보시면 state = readw( DIO_READ_OFFSET ) & oxFF; 라고 되어 있습니다.
핵사값 표현은 0xFF 입니다. state = readw( DIO_READ_OFFSET ) & 0xFF;
>io.c:98: invalid suffix on integer constant
>io.c:98: invalid lvalue in assignment
>io.c:98: invalid suffix on integer constant
>io.c:98: invalid suffix on integer constant
>io.c:98: parse error before ')' token
>io.c:100: invalid suffix on integer constant
>io.c:100: invalid suffix on integer constant
>io.c:102: invalid suffix on integer constant
>io.c:103: invalid suffix on integer constant
>io.c: At top level:
>io.c:115: parse error before '}' token
>io.c:118: parse error before '(' token
-->> 위의 라인 93줄에 선언된 lp와 연관이 있습니다.. 따라서 이 부분도 지우시고 다시 적어 주시든지,
아니면 위에서 다른 변수로 선언하셨다면 변수명을 수정해 주세요.
>io.c: In function `armdio_int_write_handler':
>io.c:132: warning: implicit declaration of function `sava_flags_cli'
>io.c:133: warning: implicit declaration of function `writew'
>io.c:124: warning: unused variable `state'
>io.c:125: warning: unused variable `wake_flag'
>io.c: In function `armdio_int_handler':
>io.c:153: `TIMER_TICK_100uSEC' undeclared (first use in this function)
--->> 라인 153줄은 TIMER_TICK_100uSEC가 선언되어 있지 않다는 에러입니다.
include/io.h 파일에 보시면 TIMER_TICK_100uESC 로 오타가 되어 있습니다.
#define TIMER_TICK_100uSEC 10 로 수정해 주세요..
>io.c:147: warning: unused variable `flags'
>io.c:148: warning: unused variable `state'
>io.c: In function `armdio_open':
>io.c:190: warning: implicit declaration of function `kmalloc'
>io.c:203: structure has no member named `privae_data'
>io.c:205: `TIMER_TICK_100uSEC' undeclared (first use in this function)
--->> 라인 205줄은 TIMER_TICK_100uSEC가 선언되어 있지 않다는 에러입니다.
include/io.h 파일에 보시면 TIMER_TICK_100uESC 로 오타가 되어 있습니다.
#define TIMER_TICK_100uSEC 10 로 수정해 주세요..
>io.c:207: `MOD_INC_USE_CONUT' undeclared (first use in this function)
-->> 라인 207줄의 MOD_INC_USE_CONUT는 오타입니다. MOD_INC_USE_COUNT 로 수정해 주세요.
>io.c:210: warning: implicit declaration of function `kfree'
>io.c:213: warning: label `err1' defined but not used
>io.c:183: label `errl' used but not defined
>io.c: In function `armdio_read':
>io.c:244: invalid suffix on integer constant
>io.c:244: parse error before numeric constant
---> 라인 244줄에 보시면 int lp; 라고 되어 있습니다. 어떤 이유인지는 모르겠지만 예약어로 되어 있네요..
라인을 지우시고 다시 int lp; 로 직접 적어주세요.. 그래도 같은 에러이면 다른 변수로 선언하시고
이를 사용한 변수를 모두 수정해 주세요..
>io.c:257: parse error before '!=' token
--> if문의 조건이 잘못 되었네요... if( !count) 로 수정해 보세요..
>io.c:269: invalid suffix on integer constant
>io.c:269: invalid lvalue in assignment
>io.c:269: invalid suffix on integer constant
>io.c:269: invalid suffix on integer constant
>io.c:269: parse error before ')' token
>io.c:271: invalid suffix on integer constant
>io.c:271: invalid suffix on integer constant
>io.c:271: invalid suffix on integer constant
>io.c:271: invalid suffix on integer constant
>io.c:271: `__p' undeclared (first use in this function)
>io.c:271: invalid suffix on integer constant
>io.c:271: warning: statement with no effect
>io.c: At top level:
>io.c:271: parse error before ')' token
-->> 위의 라인 93줄에 선언된 lp와 연관이 있습니다.. 따라서 이 부분도 지우시고 다시 적어 주시든지,
아니면 위에서 다른 변수로 선언하셨다면 변수명을 수정해 주세요.
>io.c: In function `armdio_poll':
>io.c:313: `armdio_mng' undeclared (first use in this function)
>io.c:313: `data' undeclared (first use in this function)
-->> 구조체가 잘못 적혀 있네요..
armdio_mng *data; 가 아니라 armdio_mng_t *data; 로 하셔야 합니다..
>io.c:325: `maks' undeclared (first use in this function)
>io.c: At top level:
--->> 라인 325줄의 maks 가 선언되어 있지 않아서 에러가 난것입니다. 변수선언에는 mask 로 되어 있네요. mask로 수정해 주세요.
>io.c:336: `armdio_write' undeclared here (not in a function)
>io.c:336: initializer element is not constant
>io.c:336: (near initialization for `armdio_fops.write')
>
--->> armdio_write 함수가 없네요... 이 함수를 구현하시든지 아니면 소스에서 제거를 해 주셔야 합니다.
많은 부분에 오타가 있네요... 리눅스 디바이스 드라이버 책을 참조하셨다면 다시 한번 소스를 보시기 바랍니다.
그럼 수고하세요.
말씀해주신대로 했는데 또 오류가 있네요...
다시 한번 더 살펴보고 안되면 또 부탁드리겠습니다.