WINCE7中RTC时钟芯片BQ32K的开发

最近客户反映我们提供的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



转载于:https://my.oschina.net/armsky/blog/490101

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值