修改RTC驱动程序
来源:互联网 发布:淘宝卖家问大家功能 编辑:程序博客网 时间:2024/06/08 12:11
发现BSP的RTC驱动程序存在错误:修改日期只能在1到7之间。例如选择了24日,应用之后,自动又是4日获得了焦点。
原因是OEMSetRealTime函数对RTC的设置不正确,把BCDDATE和BCDDAY倒过来用了。
解决方法:
1 修改PLATFORM/COMMON/SRC/ARM/SAMSUNG/S3C2440A/Rtc/rtc.c的OEMSetRealTime函数:
- OUTPORT32(&pRTCReg->BCDDAY, pTime->wDayOfWeek + 1);
- OUTPORT32(&pRTCReg->BCDDATE, TO_BCD(pTime->wDay));
OEMGetRealTime函数:
- data = INPORT32(&pRTCReg->BCDDATE) & 0x3f;
- pTime->wDay = FROM_BCD(data);
- pTime->wDayOfWeek = (WORD)INPORT32(&pRTCReg->BCDDAY) - 1;
2 修改PLATFORM/SMDK2440A/Src/Bootloader/Eboot/ether.c的OEMGetRealTime函数:
- lpst->wDay = FROM_BCD(s2440RTC->BCDDATE & 0x3f);
- lpst->wDayOfWeek = (s2440RTC->BCDDAY - 1);
另外,由于OEMSetRealTime每次开机都会执行,导致时间每次都回到2003年1月1日,可以设置一个静态变量,取消第一次设置RTC:
- static BOOL bFirstSet = TRUE;
- if (bFirstSet)
- {
- bFirstSet = FALSE;
- return TRUE;
- }
- 修改RTC驱动程序
- RTC驱动程序分析
- RTC驱动修改
- RTC驱动程序——学习笔记
- HOW TO: 修改RTC时钟
- WinCE板级支持包开发学习之RTC驱动程序
- 修改全志A10 RTC 默认时间
- 修改LCD驱动程序
- 修改IIS驱动程序
- 键盘驱动程序的修改
- 修改LCD驱动程序
- RTC
- RTC
- RTC
- RTC
- RTC
- 设备驱动程序网络驱动程序的修改
- MMSP2 BSP 修改之旅一 RTC修改
- 配置UART2作为普通串口
- c# 自动生成 身份证 中文名
- Oracle数据库的数据类型简介
- FF火狐浏览器下inline-block不起作用怎么办?
- jbpm 入门实例(1)——搭建Eclipse下Jbpm开发环境
- 修改RTC驱动程序
- 各国卫星导航系统比较(北斗、伽利略、GLONASS、GPS)(转)
- 关闭子页面刷新父页面
- 在结构体中定义长度为0的数组的用法
- 开通博客
- 修改IIS驱动程序
- 编译安装mysql-5.1.29-rc 时 错误/tmp/mysql.sock
- jbpm 入门实例(2)——数据库的构建
- Oracle时间计算