这两天调试了AT91RM9200+pcf8563在linux2.6.20下的驱动,记录一下我的调试过程以及调试心得,呵呵

     在linux2.6.20/drivers/rtc目录下面已经有了pcf8563的驱动程序,通过make menuconfig配置一下就可以了。
     问题出来了“This chip cannot be reliably autodetected”这是源码中的注释,不能自动检测,实际上确实如此,怎么解决这个问题呢?google.....
     搜索很久终于看到有个牛人的解决方法:
     static unsigned short normal_i2c[] = { I2C_CLIENT_END };
     修改为
     static unsigned short normal_i2c[] = { 0x51,I2C_CLIENT_END };
     增加pcf8563的设备地址,编译运行,内核终于找到pcf8563了,:)
     你可以顺便看一下其他rtc的驱动,确实这个地方有个设备地址的,不知道为什么当时pcf8563不加这个地址,还写了那么一个注释,奇怪啊。。暂时不关心。继续。。。。
     接下来就是系统时钟和硬件时钟同步的问题了,date用来设置系统时钟,hwclock用来同步系统时钟和硬件时钟,比如:
     >date 2008.5.24-13:16:25    设置系统时间
     >hwclock -w         把设置的时间,保存到rtc中
     刚开始我的系统中没有hwclock命令,可以重新编译一下busybox,重新生成。
     还有一个小问题,hwclock所操作的设备名是RTC,而pcf8563自动挂载的是rtc0。如果不解决这个问题,hwclock是没办法读写pcf8563的。
     这有两个解决方法:
     方法一:修改busybox的源码,把rtc全部修改为rtc0
     方法二:>mknod /dev/rtc c 254 0
            >mknod /dev/rtc0 c 254 0
            建立两个设备rtc 和 rtc0
    最后写一个小的测试程序吧,呵呵
#include <stdio.h>
#include <linux/rtc.h>
#include <sys/ioctl.h>
#include <sys/time.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
int main(int argc, char **argv)
{
 int ret, fd;
 struct rtc_time rtc_tm;
 
 fd = open("/dev/rtc0", O_RDWR);
 if (fd < 0) {
  printf( "Fail to open PCF8563!\n" );
  exit(1);
 }
 
 ret=ioctl(fd, RTC_RD_TIME, &rtc_tm);
 if (ret < 0) {
  printf( "Fail to read_time!\n" );
 }
 printf("\n\nRead PCF8563 time is %d-%d-%d, %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);

 close(fd);
 return 0;
}

AT91RM9200+pcf8563在linux2.6.20下的调试心得相关推荐

  1. linux at24测试程序,AT91RM9200在linux2.6.20下TWI测试程序

    经过几天的瞎折腾,终于把AT91RM9200在linux2.6.20下TWI测试程序调试好了,总结如下 1.上拉电阻10K估计不合适,我换成2K的,SCL和SDA上就不断的有数据了,先前只有第一次有数 ...

  2. 关于在 火狐 IE 和 360 下的调试心得

    以前基本上是纯后台的,蛮少接触js,最近进了个公司,每天在弄前端,慢慢的自己的前端功底也有了一定的长进,在此总结下自己这段时间对火狐 调试 还有IE 的 一些心得,同时也希望大神能补充点评. 个人感觉 ...

  3. Linux-2.6.20的LCD驱动分析(二)

    .1 驱动的入口点 摆在面前的第一个问题相信应该是,这个函数是从那里开始运行的.这里就应该从long long ago 开始了,打开drivers/video/s3c2410fb.c文件,然后找到s3 ...

  4. Linux-2.6.20的LCD驱动分析

    一.让LCD显示可爱的小企鹅 还是先说说环境吧,处理器为S3C2410,linux的版本当然是2.6.20的.下面先说说怎样让LCD上显示出可爱的小企鹅.最直接的步骤如下(记住不要问为什么哈-_-,一 ...

  5. linux-2.6.14下USB驱动移植心得

    linux-2.6.14下USB驱动移植心得 USB 驱动移植心得 一.代码修改 主要是按照这个贴来做: http://www.hfrk.net/S3C2410/kaifa/0631522024832 ...

  6. 深度linux怎么备份系统下载,在Deepin 20下安装和配置timeshift并用它自动备份系统...

    本文介绍在Deepin 20系统下安装timeshift的方法,并配置timeshift来自动备份Deepin 20系统.有了这个备份,你就可以放心的处理系统了,真要把操作系统的文件搞坏了也可以恢复的 ...

  7. Ubuntu 20下pycharm无法使用中文输入法

    Ubuntu 20下pycharm无法使用中文输入法 前言:程序员的崩溃往往就在一点点的小毛病,但是翻来覆去就是不好使,然而最后一步很简单的操作就解决了.所以我来汇总一下大家的解决方法吧~总有一个适合 ...

  8. Linux2.6.33下ZC301USB摄像头使用教程

    Linux2.6.33下ZC301USB摄像头使用教程 华清远见-嵌入式领域著名讲师O(∩_∩)O 牛牛猛 点击链接加我好友! http://student.csdn.net/invite.php?u ...

  9. linux的usb驱动失败,linux2.6.24下usb驱动完成情况及问题解决

    1.在kernel启动是出现如下问题: mount: mounting tmpfs on /dev failed 解决方案如下, File systems  --->Pseudo filesys ...

最新文章

  1. 【 MATLAB 】如何产生一个均值和方差可控的正态分布矩阵(randn)?
  2. 常用命令linux下vi编辑器命令大全
  3. linux 安装系统划分lvm分区
  4. 光照传感器哪个好_传感器2—光敏传感器
  5. HDU-1698 JUST A HOOK 线段树
  6. 移动开发架构之MVVM模式
  7. 模板缓冲_模板缓冲以及如何使用它可视化体积相交
  8. 最大子矩阵(前缀和+贪心)
  9. Java之添加环境变量
  10. RSS文件的基本格式
  11. android app 嵌入广告,流氓来了!如何拯救手机中嵌入广告的应用
  12. poco库 文件服务器,poco
  13. linux夏令时配置文件,Linux中有关时区及夏令时设置(TZ环境变量)
  14. 某剧院有33排座位java_行测备考资料:数量关系深处隐藏的整除技巧
  15. ssm实战(1)------数据库表结构
  16. 什么是大数据?零基础如何学习大数据?(附学习路线)
  17. mysql导入xl_28 MySQL的使用
  18. python教程:flask模块的使用教程
  19. 堡垒前线手游超强辅助脚本 新手入门技巧介绍
  20. 一个学长的——【编程】——学习路线

热门文章

  1. PHP的优点和缺点分别是什么,CSS的优点和缺点分别是什么
  2. Python高级爬虫开发,高难度JS解密教程,绝地求生模拟登陆!
  3. 零基础入门学习Python,我与python的第一次亲密接触后的感受!
  4. 如皋技校计算机老师,如皋中专计算机考试名列南通第一 共2457人参考合格率达95.5%...
  5. poj1734(最小环+路径)
  6. 小雨坐地铁--[最短路分层建图+虚点]
  7. 贪心 ---- Educational Codeforces Round 90 (Rated for Div. 2)E. Sum of Digits[数位贡献+思维题+贪心]
  8. safari快捷图标不见了_Win7桌面图标不见了怎么办?附解决办法
  9. vue中常碰见的坑_Vue 与 Vuex 的第一次接触遇到的坑
  10. 牛客练习赛61 D 最短路变短了(最短路,反向最短路)难度⭐⭐⭐★