码迷,mamicode.com
首页 > Windows程序 > 详细

WINCE7中RTC时钟芯片BQ32K的开发

时间:2015-08-10 13:43:19      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:

最近客户反映我们提供的WINCE7系统的RTC时钟设置后,掉电不能保存,总是回到2000年的起始年份,

我们的工业触摸屏使用的是AM3354方案,查看了原来的WINCE7系统源码,打开文件:

C:\WINCE700\PLATFORM\AM33X_BSP\SRC\OAL\OALLIB\init.c

发现在OEMInit函数中调用的是TI自己的RTC驱动函数OAL3XX_RTCInit,这个函数在路径为:

C:\WINCE700\PLATFORM\COMMON\src\soc\COMMON_TI_V1\COMMON_TI_AMXX\OAL\OALRTC

中的:oalrtc.c文件被定义,调试发现该文件中RTC_GetTime函数读出的寄存器值一直是0,查看网上资料也有

很多人反映TI的AM3354的RTC时钟有问题,后来进一步检查了硬件,备用纽扣电池正常3.0V,32.768的晶振

没有直接接入到AM3354,而是接入到了BQ32000这款RTC芯片,BQ32000以I2C的方式与AM3354连接,从

地址为0X68,于是只能自己编写BQ32000的WINCE7驱动了,

1.创建目录和makefile,首先在目录:

C:\WINCE700\PLATFORM\COMMON\src\soc\COMMON_TI_V1\COMMON_TI_AMXX\OAL

下创建文件夹:BQ32K_OALRTC

拷贝目录:

C:\WINCE700\PLATFORM\COMMON\src\soc\COMMON_TI_V1\COMMON_TI_AMXX\OAL\OALRTC

中的makefile到BQ32K_OALRTC

2.编写sources文件,在BQ32K_OALRTC目录下创建并编写sources文件,内容如下:

!INCLUDE "..\..\sources.inc"
TARGETNAME=am33x_bq32krtc
TARGETTYPE=LIBRARY
SOURCES= oalrtc.c

3.编写源码文件,在BQ32K_OALRTC目录下编写oalrtc.c文件,完成驱动的开发

该文件需要实现函数:OALBQ32KRTCInit

4.修改文件:

C:\WINCE700\PLATFORM\COMMON\src\soc\COMMON_TI_V1\COMMON_TI_AMXX\OAL\dirs

增加目录BQ32K_OALRTC,内容如下;

DIRS=\
CPUIDLE\
OALI2C\
TIMER\
OALRTC\
BQ32K_OALRTC\


5.创建头文件,在目录:

C:\WINCE700\PLATFORM\COMMON\src\soc\COMMON_TI_V1\COMMON_TI_AMXX\INC

下创建头文件:

bq32k_rtc.h

导出函数:OALBQ32KRTCInit

6.修改上述init.c文件,注释掉语句:

OAL3XX_RTCInit(AM33X_RTCSS_REGS_PA, IRQ_RTCALARM);

新增语句:

OALBQ32KRTCInit(....);//(内容略过)

7.编辑文件:

C:\WINCE700\PLATFORM\AM33X_BSP\SRC\OAL\OALEXE\sources

注释掉以下语句:

#    $(_PLATCOMMONLIB)\$(_CPUINDPATH)\am3xx_oalrtc.lib \

在下一行添加如下语句:

$(_PLATCOMMONLIB)\$(_CPUINDPATH)\am33x_bq32krtc.lib \


修改完成后,打开VS2008的SLN工程,重新编译解决方案即可。


有需要这部分源码的朋友可以+我QQ2362317758



WINCE7中RTC时钟芯片BQ32K的开发

标签:

原文地址:http://my.oschina.net/armsky/blog/490101

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!