Quantcast
Channel: 数字信号处理器 (DSP) & ARM® 微处理器
Viewing all articles
Browse latest Browse all 21822

帖子: RE: 关于DM8168 pcf8563 硬件时钟问题

$
0
0

一开始DM8168没有设置pcf-8563硬件时钟时,在/sys/class/rtc/rtc1路径下读取date 和time数据是正常的,

但是通过 hwclock -w -f /dev/rtc1 和open("/dev/rtc1", O_RDWR); retval = ioctl(fd, RTC_SET_TIME, &rtc_tm); 两种方法设置pcf 8563时钟

第一种方法:

root@dm816x:/# date 070117522016
Fri Jul  1 17:52:00 UTC 2016
root@dm816x:/# hwclock -w -f /dev/rtc1

第二种方法:

        rtc_tm.tm_year = 2016-1900;
        rtc_tm.tm_mon  = 07 - 1;
        rtc_tm.tm_mday = 01;
        rtc_tm.tm_hour = 17;
        rtc_tm.tm_min  = 52;
        rtc_tm.tm_sec  = 57;
        fd = open("/dev/rtc1", O_RDWR); //O_RDWR
        if (fd == -1) { 
                perror("/dev/rtc1"); 
                exit(errno); 
        }
        retval = ioctl(fd, RTC_SET_TIME, &rtc_tm); 
        if (retval == -1) { 
               perror("ioctl set"); 
                exit(errno); 
        } 
        close(fd);
       fprintf(stderr, "RTC date/time: %02d/%02d/%04d %02d:%02d:%02d\n", 
                rtc_tm.tm_mday, rtc_tm.tm_mon + 1, rtc_tm.tm_year + 1900, 
                rtc_tm.tm_hour, rtc_tm.tm_min, rtc_tm.tm_sec);
后再到  /sys/class/rtc/rtc1路径下 cat dade 和 cat time 发现有些数据位读不出来
如小时的某些位和秒钟个位8对应的那个位读取有问题(但是里面是有数据的,只是读不出来)
 root@dm816x:/sys/class/rtc/rtc1# cat time
00:53:44                                   (秒二进制:100 0100)
root@dm816x:/sys/class/rtc/rtc1# cat time
00:53:45                                   (秒二进制:100 0101)
root@dm816x:/sys/class/rtc/rtc1# cat time
00:53:46                                   (秒二进制:100 0110)
root@dm816x:/sys/class/rtc/rtc1# cat time
00:53:47                                   (秒二进制:100 0111)
root@dm816x:/sys/class/rtc/rtc1# cat time
00:53:40                                   (秒二进制:100 1000)
root@dm816x:/sys/class/rtc/rtc1# cat time
00:53:41                                   (秒二进制:100 1001)
root@dm816x:/sys/class/rtc/rtc1# cat time 
00:53:50                                   (秒二进制:101 0000)
root@dm816x:/sys/class/rtc/rtc1# cat time
00:53:51                                   (秒二进制:101 0001)
root@dm816x:/sys/class/rtc/rtc1# cat time
00:53:52                                   (秒二进制:101 0010)
root@dm816x:/sys/class/rtc/rtc1# cat time
00:53:57                                   (秒二进制:101 0111)
root@dm816x:/sys/class/rtc/rtc1# cat time
00:53:50                                   (秒二进制:101 1000)
root@dm816x:/sys/class/rtc/rtc1# cat time
00:53:51                                   (秒二进制:101 1001)
root@dm816x:/sys/class/rtc/rtc1# cat time
00:54:00                                   (秒二进制:000 0000)
root@dm816x:/sys/class/rtc/rtc1# cat time
00:54:01                                   (秒二进制:000 0001)
换了一个好的pcf 8563芯片还是一样的情况。应该不是芯片的问题。

请问:是 ti_tools/linux_lsp/kernel/linux-dvr-rdk/drivers/rtc/rtc-pcf8563.c 里面设置硬件时钟的程序有错误(把某些位屏蔽了)?

我需要如何操作?


Viewing all articles
Browse latest Browse all 21822

Trending Articles