다음의 컴파일 에러는 어떻게 해결해야 하는지요 ?
경험자분의 조언 부탁드립니다 ...
bcd2bin 의 경우 이전버젼 소스에서는 똑같이 해줘도 워닝이 안나던데요 ...
에러 디버깅이 조금 까다롭네요 ...
현재 TI DM6467 개발보드에서 테스트중이며
리눅스커널 2.6.18 로 테스트하고 있읍니다 ...
이노무 비는 언제나 그치려나 모르겠읍니다 ...
차라리 햇볕이 쨍쨍이 나을것 같읍니다 ...
17 #include <
linux/i2c.h>
18 #include <
linux/bcd.h>
19 #include <
linux/rtc.h>
20 #include <
linux/slab.h>
21
100
101
tm->tm_sec =
bcd2bin(
buf[
PCF8563_REG_SC] & 0x7F);
102
tm->tm_min =
bcd2bin(
buf[
PCF8563_REG_MN] & 0x7F);
103
tm->tm_hour =
bcd2bin(
buf[
PCF8563_REG_HR] & 0x3F);
/* rtc hr 0-23 */
104
tm->tm_mday =
bcd2bin(
buf[
PCF8563_REG_DM] & 0x3F);
105
tm->tm_wday =
buf[
PCF8563_REG_DW] & 0x07;
106
tm->tm_mon =
bcd2bin(
buf[
PCF8563_REG_MO] & 0x1F) - 1;
/* rtc mn 1-12 */
107
tm->tm_year =
bcd2bin(
buf[
PCF8563_REG_YR]);
108 if (
tm->tm_year < 70)
141
/* hours, minutes and seconds */
142
buf[
PCF8563_REG_SC] =
bin2bcd(
tm->tm_sec);
143
buf[
PCF8563_REG_MN] =
bin2bcd(
tm->tm_min);
144
buf[
PCF8563_REG_HR] =
bin2bcd(
tm->tm_hour);
145
146
buf[
PCF8563_REG_DM] =
bin2bcd(
tm->tm_mday);
147
148
/* month, 1 - 12 */
149
buf[
PCF8563_REG_MO] =
bin2bcd(
tm->tm_mon + 1);
237 static const struct i2c_device_id pcf8563_id[] = {
238 { "pcf8563", 0 },
239 { "rtc8564", 0 },
240 { }
241 };
242 MODULE_DEVICE_TABLE(i2c, pcf8563_id);
243
244 static struct i2c_driver pcf8563_driver = {
245 .driver = {
246 .name = "rtc-pcf8563",
247 },
248 .probe = pcf8563_probe,
249 .remove = pcf8563_remove,
250 .id_table = pcf8563_id,
251 };
252
[bspuser@Bbox linux]$ make
CHK include/linux/version.h
make[1]: `include/asm-arm/mach-types.h' is up to date.
CHK include/linux/utsrelease.h
CHK include/linux/compile.h
CC [M] drivers/rtc/rtc-pcf8563.o
drivers/rtc/rtc-pcf8563.c: In function 'pcf8563_get_datetime':
drivers/rtc/rtc-pcf8563.c:100:
warning: implicit declaration of function 'bcd2bin'
drivers/rtc/rtc-pcf8563.c: In function 'pcf8563_set_datetime':
drivers/rtc/rtc-pcf8563.c:141: warning: implicit declaration of function 'bin2bcd'
drivers/rtc/rtc-pcf8563.c: In function 'pcf8563_probe':
drivers/rtc/rtc-pcf8563.c:210: warning: passing argument 3 of 'rtc_device_register' discards qualifiers from pointer target type
drivers/rtc/rtc-pcf8563.c: At top level:
drivers/rtc/rtc-pcf8563.c:238:
warning: initialization makes integer from pointer without a cast
drivers/rtc/rtc-pcf8563.c:238:
error: initializer element is not computable at load time
drivers/rtc/rtc-pcf8563.c:238:
error: (near initialization for 'pcf8563_id[0].id')
drivers/rtc/rtc-pcf8563.c:238: warning: excess elements in struct initializer
drivers/rtc/rtc-pcf8563.c:238: warning: (near initialization for 'pcf8563_id[0]')
drivers/rtc/rtc-pcf8563.c:239: warning: initialization makes integer from pointer without a cast
drivers/rtc/rtc-pcf8563.c:239:
error: initializer element is not computable at load time
drivers/rtc/rtc-pcf8563.c:239:
error: (near initialization for 'pcf8563_id[1].id')
drivers/rtc/rtc-pcf8563.c:239: warning: excess elements in struct initializer
drivers/rtc/rtc-pcf8563.c:239: warning: (near initialization for 'pcf8563_id[1]')
drivers/rtc/rtc-pcf8563.c:248:
error: unknown field 'probe' specified in initializer
drivers/rtc/rtc-pcf8563.c:248: warning: missing braces around initializer
drivers/rtc/rtc-pcf8563.c:248: warning: (near initialization for 'pcf8563_driver.list')
drivers/rtc/rtc-pcf8563.c:248: warning: initialization from incompatible pointer type
drivers/rtc/rtc-pcf8563.c:249:
error: unknown field 'remove' specified in initializer
drivers/rtc/rtc-pcf8563.c:249: warning: excess elements in struct initializer
drivers/rtc/rtc-pcf8563.c:249: warning: (near initialization for 'pcf8563_driver')
drivers/rtc/rtc-pcf8563.c:250:
error: unknown field 'id_table' specified in initializer
drivers/rtc/rtc-pcf8563.c:250: warning: excess elements in struct initializer
drivers/rtc/rtc-pcf8563.c:250: warning: (near initialization for 'pcf8563_driver')
make[2]: *** [drivers/rtc/rtc-pcf8563.o] Error 1
make[1]: *** [drivers/rtc] Error 2
make: *** [drivers] Error 2