您的位置:首页 > 运维架构 > Linux

AT91SAM9260硬件时钟RTC的使用

2014-01-09 18:00 316 查看




《ARM Linux开发-warewin 2G/3G无线传输(DTU)和路由器—笔记》

1、硬件要求

(1)AT91SAM9260平台

(2)时钟芯片:Rx8025  SA/NB

(3)接口:通过I2C总线读取,两条总线为PA23、PA24。

2、配置内核

进入内核根目录下,运行配置菜单。

#make menuconfig

(1)选中I2C

Device Drivers --->

I2C suport --->

I2C Hardware Bus support--->

<*> GPIO-based bitbanging I2C

选中以下RTC相关的选项

Device Drivers --->

Real Time Clock --->

 

图3.1 RTC相关选项图

选中 Epson RX-8025SA/NB

Device Drivers --->

Real Time Clock --->

Epson Rx-8025SA/NB

注意:不可以选上AT91 SAM9x/AT91 CAP9,否则使用的是内部时钟。

 

图3.2 内部时钟选项图

3、添加设备注册

在内核中的/arch/arm/mach-at91/board-sam9260ek.c文件中添加以下红色字体语句:

static struct i2c_board_info __initdata ek_i2c_devices[] = {

{

I2C_BOARD_INFO("24c512", 0x50),

.platform_data = &at24c512,

},

/* more devices can be added using expansion connectors */

/* Added for R8025 rtc 20120914 */

{

I2C_BOARD_INFO("rx8025", 0x32),

}

};

4、创建设备节点

在根文件系统/dev目录下执行:

# mknod rtc c 10 135

重新编译内核及根文件系统下载到开发板,查看启动信息,如下图所示:

 

图3.3 硬件时钟启动信息图

5、设置RTC时间及系统时间

开发板进入系统后,在终端执行以下命令:

# date 得到系统当前时间

Thu Jan  1 00:00:13 (null) 1970

# hwclock 得硬件时钟当前时间

hwclock: RTC_RD_TIME: Invalid or incomplete multibyte or wide character

# date -s "2012-09-17 10:40:40" 设置系统时间为当前时间

Mon Sep 17 10:40:40:40 (null) 2012

# date

Mon Sep 17 10:40:40:42 (null) 2012

# hwclock -w 使用硬件时钟与系统时间同步

# hwclock

Mon Sep 17 10:40:40:53 2012 0.000000 seconds

开发板断电一段时间后再次加电启动开发板,进入系统后再使用hwclock命令查看硬件时钟睥当前是否为当前时间。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息