ARM-Linux驱动移植--RTC(实时时钟)移植

发布者:TranquilMind88最新更新时间:2016-05-05 来源: eefocus关键字:ARM  Linux  驱动移植  RTC  实时时钟 手机看文章 扫描二维码
随时随地手机看文章

硬件平台:FL2440

内核版本:2.6.28

主机平台:Ubuntu 11.04

内核版本:2.6.39

首先修改内核源码/arch/arm/mach-s3c2410/mach-smdk2410.c

添加红色字体部分

  1. static struct platform_device *smdk2410_devices[] __initdata = {  
  2.     &s3c_device_usb,  
  3.     &s3c_device_lcd,  
  4.     &s3c_device_wdt,  
  5.     &s3c_device_i2c,  
  6.     &s3c_device_iis,  
  7.     &s3c_device_sdi,  
  8.     &s3c_device_dm9000,  
  9.     &s3c_device_ts,  
  10.     &s3c_device_rtc,  
  11. };  
make zImage重新编译内核,然后烧写内核(编译内核前,make menuconfig时选择rtc相关的驱动,如下图)

 

烧写完成后启动开发板,启动信息如下:

+------------------------------------------------------------+
| FL2440 Bootloader VER-5.1 Modified By Yan Ming! |
|------------------------------------------------------------|
|------------------------------------------------------------|
|CPU ID is 0x32440001 |
|FCLK=400MHz,HCLK=100MHz,PCLK=50MHz, CPU is running at 400MHz|
|UPLL=96MHz, UCLK=48MHz |
|Serial port 0, Baud rate is 115200. |
|OS image stored in NAND Flash. |
|Autoboot delay is 2 seconds. |
+------------------------------------------------------------+
Set boot params = root=/dev/mtdblock3 init=/linuxrc load_ramdisk=0 console=ttyS 
Load Kernel... 
Uncompressing Linux.............................................................
Linux version 2.6.28.7 (yan@yan-laptop) (gcc version 3.4.1) #343 Sun Jul 3 19:11
CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177 
CPU: VIVT data cache, VIVT instruction cache 
Machine: SMDK2410 
ATAG_INITRD is deprecated; please update your bootloader. 
Memory policy: ECC disabled, Data cache writeback 
CPU S3C2440A (id 0x32440001) 
MM: CPU does not support supersection mapping for 0x55000000000 at 0xf0d00000 
S3C244X: core 400.000 MHz, memory 100.000 MHz, peripheral 50.000 MHz 
S3C24XX Clocks, (c) 2004 Simtec Electronics 
CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on 
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256 
Kernel command line: root=/dev/mtdblock3 init=/linuxrc load_ramdisk=0 console=t 
irq: clearing pending ext status 00080000 
irq: clearing subpending status 00000092 
PID hash table entries: 256 (order: 8, 1024 bytes) 
timer tcon=00500d00, tcnt a2c1, tcfg 0000020f,00000030, usec 00001eb8 
Console: colour dummy device 80x30 
console [ttySAC0] enabled 
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) 
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) 
Memory: 64MB = 64MB total 
Memory: 61120KB available (3288K code, 312K data, 144K init) 
Calibrating delay loop... 199.47 BogoMIPS (lpj=498688) 
Mount-cache hash table entries: 512 
CPU: Testing write buffer coherency: ok 
net_namespace: 288 bytes 
NET: Registered protocol family 16 
S3C2440: Initialising architecture 
S3C2440: IRQ Support 
S3C24XX DMA Driver, (c) 2003-2004,2006 Simtec Electronics 
DMA channel 0 at c4808000, irq 33 
DMA channel 1 at c4808040, irq 34 
DMA channel 2 at c4808080, irq 35 
DMA channel 3 at c48080c0, irq 36 
S3C244X: Clock Support, DVS off 
SCSI subsystem initialized 
usbcore: registered new interface driver usbfs 
usbcore: registered new interface driver hub 
usbcore: registered new device driver usb 
NET: Registered protocol family 2 
IP route cache hash table entries: 1024 (order: 0, 4096 bytes) 
TCP established hash table entries: 2048 (order: 2, 16384 bytes) 
TCP bind hash table entries: 2048 (order: 1, 8192 bytes) 
TCP: Hash tables configured (established 2048 bind 2048) 
TCP reno registered 
NET: Registered protocol family 1 
NetWinder Floating Point Emulator V0.97 (extended precision) 
Installing knfsd (copyright (C) 1996 okir@monad.swb.de). 
JFFS2 version 2.2. (NAND) (SUMMARY) 2001-2006 Red Hat, Inc. 
yaffs Jul 3 2011 19:14:41 Installing. 
msgmni has been set to 119 
io scheduler noop registered 
io scheduler anticipatory registered (default) 
io scheduler deadline registered 
io scheduler cfq registered 
Console: switching to colour frame buffer device 40x30 
fb0: s3c2410fb frame buffer device 
lp: driver loaded but no devices found 
ppdev: user-space parallel port driver 
Serial: 8250/16550 driver4 ports, IRQ sharing enabled 
s3c2440-uart.0: s3c2410_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2440 
s3c2440-uart.1: s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2440 
s3c2440-uart.2: s3c2410_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2440 
brd: module loaded 
loop: module loaded 
dm9000 Ethernet Driver, V1.31 
eth0: dm9000a at c487a300,c487e304 IRQ 51 MAC: 00:12:34:56:80:49 (chip) 
Uniform Multi-Platform E-IDE driver 
ide-gd driver 1.18 
ide-cd driver 5.00 
Driver 'sd' needs updating - please use bus_type methods 
S3C24XX NAND Driver, (c) 2004 Simtec Electronics 
s3c2440-nand s3c2440-nand: Tacls=3, 30ns Twrph0=7 70ns, Twrph1=3 30ns 
NAND device: Manufacturer ID: 0xad, Chip ID: 0xda (Hynix NAND 256MiB 3,3V 8-bit)
NAND_ECC_NONE selected by board driver. This is not recommended !! 
Scanning device for bad blocks 
Bad eraseblock 1771 at 0x0dd60000 
Creating 4 MTD partitions on "NAND 256MiB 3,3V 8-bit": 
0x00000000-0x00100000 : "Boot" 
0x00140000-0x00500000 : "MyApp" 
0x00500000-0x00800000 : "Kernel" 
0x00800000-0x0f800000 : "fs_yaffs" 
usbmon: debugfs is not available 
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver 
s3c2410-ohci s3c2410-ohci: S3C24XX OHCI 
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1 
s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000 
usb usb1: configuration #1 chosen from 1 choice 
hub 1-0:1.0: USB hub found 
hub 1-0:1.0: 2 ports detected 
usbcore: registered new interface driver libusual 
usbcore: registered new interface driver usbserial 
USB Serial support registered for generic 
usbcore: registered new interface driver usbserial_generic 
usbserial: USB Serial Driver core 
USB Serial support registered for FTDI USB Serial Device 
usbcore: registered new interface driver ftdi_sio 
ftdi_sio: v1.4.3:USB FTDI Serial Converters Driver 
USB Serial support registered for pl2303 
usbcore: registered new interface driver pl2303 
pl2303: Prolific PL2303 USB to serial adaptor driver 
mice: PS/2 mouse device common for all mice 
S3C24XX RTC, (c) 2004,2006 Simtec Electronics 
s3c2410-rtc s3c2410-rtc: rtc disabled, re-enabling 
s3c2410-rtc s3c2410-rtc: rtc core: registered s3c as rtc0 
s3c2440-sdi s3c2440-sdi: host detect has no irq available 
mapped channel 0 to 0 
s3c2440-sdi s3c2440-sdi: powered down. 
s3c2440-sdi s3c2440-sdi: initialisation done. 
s3c2440-sdi s3c2440-sdi: running at 0kHz (requested: 0kHz). 
s3c2440-sdi s3c2440-sdi: running at 196kHz (requested: 195kHz). 
s3c2440-sdi s3c2440-sdi: running at 196kHz (requested: 195kHz). 
s3c2440-sdi s3c2440-sdi: running at 196kHz (requested: 195kHz). 
s3c2440-sdi s3c2440-sdi: powered down. 
usbcore: registered new interface driver usbhid 
usbhid: v2.6:USB HID core driver 
mapped channel 10 to 2 
mapped channel 9 to 1 
UDA1341 audio driver initialized 
TCP cubic registered 
NET: Registered protocol family 17 
RPC: Registered udp transport module. 
RPC: Registered tcp transport module. 
s3c2410-rtc s3c2410-rtc: setting system clock to 2011-07-04 20:15:05 UTC (13098)
yaffs: dev is 32505859 name is "mtdblock3" 
yaffs: passed flags "" 
yaffs: Attempting MTD mount on 31.3, "mtdblock3" 
yaffs: auto selecting yaffs2 
yaffs: restored from checkpoint 
yaffs_read_super: isCheckpointed 1 
VFS: Mounted root (yaffs filesystem). 
Freeing init memory: 144K 
usb 1-1: new full speed USB device using s3c2410-ohci and address 2 
usb 1-1: configuration #1 chosen from 1 choice 
hub 1-1:1.0: USB hub found 
hub 1-1:1.0: 4 ports detected 
Mounting /proc,/sys,/dev...... 
Starting mdev...... 
init started: BusyBox v1.9.2 (2011-06-13 18:52:29 CST) 
starting pid 900, tty ': '/etc/init.d/rcS' 
dm9000 dm9000.0: WARNING: no IRQ resource flags set. 
eth0: link down 

Please press Enter to activate this console. eth0: link up, 100Mbps, full-duple1

后色部分显示RTC工作正常。

使用命令

date 命令修改系统时间后,执行hwclock -w,保存到硬件的实时时钟

每次开机执行hkclock -s,这样每次开机后,系统从硬件读取时间信息,保存到系统。

关键字:ARM  Linux  驱动移植  RTC  实时时钟 引用地址:ARM-Linux驱动移植--RTC(实时时钟)移植

上一篇:ARM-Linux驱动--RTC(实时时钟)驱动分析
下一篇:ARM-Linux驱动-触摸屏驱动分析

推荐阅读最新更新时间:2024-03-16 14:52

快速学Arm(26)--向量中断控制器VIC(4)
VIC是中断源和CPU内核之间的一座桥梁.VIC可以支持32个中断输入,我们可以使用编程将32个中断请求设置为快速中断请求(FIQ)和向量中断请求(IRQ): 我们先来讲一下FIQ,FIQ具有最高的优先级,当FIQ和IRQ同时触发的时候,只能响应FIQ. 我们使用VICIntSelect寄存器来选择哪一个中断为FIQ,哪一个中断为IRQ,这是一个32bit的寄存器,每一位对应着下面的中断源表,这个表要经常用到,大家要记住: 这个表中任何一个中断源请求都可以被分配为FIQ,当然也可以被分配为IRQ.当只有一个中断源被分配为FIQ的时候,中断响应将是最实时的.如果有两个中断源被分配了FIQ,那么则必须在中断服
[单片机]
快速学<font color='red'>Arm</font>(26)--向量中断控制器VIC(4)
基于32位ARM器件实现地震波检波器测试系统的设计
本系统采用高精度的信号发生器作为激励信号,为后续的测量提供了良好的信号环境,为精密测量打下了良好的基础,获得满意的测试性能。该系统可以准确产生均匀、连续、稳定的低频信号,完成水声信号采集、电压灵敏度和电压灵敏级的处理、直流电阻测量、数据存储等功能。该系统操作简单、携带方便。本系统还可以扩展为对水声换能器阻抗特性等多种参数的测量,尤其适合不宜使用基于PC构架的水声测试装置的场合。该装置结构紧凑,材料选择合理,成本低于以往的水声测试装置,易于推广。 1 、引言 石油是工业的生命.作为高质量能源和化工原料,石油在现代工业中愈来愈受到重视。随着我国经济持续发展和人民生活水平的提高,对油气的需求量更是日益增加。石油、天然气一般埋藏于地表
[单片机]
基于32位<font color='red'>ARM</font>器件实现地震波检波器测试系统的设计
linux驱动程序之电源管理之标准linux休眠与唤醒机制分析(一)
1. Based on linux2.6.32, only for mem(SDR) 2. 有兴趣请先参考阅读: 电源管理方案APM和ACPI比较.doc Linux系统的休眠与唤醒简介.doc 3. 本文先研究标准linux的休眠与唤醒,android对这部分的增改在另一篇文章中讨论 4. 基于手上的一个项目来讨论,这里只讨论共性的地方 虽然linux支持三种省电模式:standby、suspend to ram、suspend to disk,但是在使用电池供电的手持设备上,几乎所有的方案都只支持STR模式(也有同时支持standby模式的),因为STD模式需要有交换分区的支持,但是像手机类的嵌入式设备,他们普遍使用nan
[单片机]
<font color='red'>linux</font><font color='red'>驱动</font>程序之电源管理之标准<font color='red'>linux</font>休眠与唤醒机制分析(一)
OK6410A 开发板 (八) 62 linux-5.11 OK6410A linux应用空间常见的异常情景及分析
应用程序运行的时候,是感觉不到其他进程的 应用程序运行的时候,有三种情况 1. 用户空间执行指令 2. 发生异常陷入内核 6种异常 // 不包括reset异常 , reset 异常发生后就回不来了 3. 退出 正常退出 1.在main函数中使用了return返回 // return之后把控制权交给调用函数 2.调用exit()或者_exit // exit()之后把控制权交给系统 异常退出 1.调用abort函数 会产生 SIGABRT 信号 2.进程收到某个信号,而该信号是程序中止 SIGINT SIGFPE SIGSEGV SIGPIPE
[单片机]
贸泽电子开售STMicroelectronics配备FPU的 STM32H5 Arm Cortex-M33 32位MCU
202 3 年 10 月 31 日 – 提供超丰富半导体和电子元器件™的业界知名新品引入 (NPI) 代理商贸泽电子 (Mouser Electronics) 即日起供货STMicroelectronicsg的STM32H5 MCU。STM32H5是首个可访问片上系统 (SoC) 安全服务的MCU系列,适用于工业自动化、医疗、智慧城市、智能家居、个人电子产品和通信领域的新一代智能互联设备。 贸泽电子供应的 STMicroelectronics STM32H5 是搭载Arm ® Cortex ® -M33 32位RISC内核的高性能微控制器 (MCU),包含浮点运算单元 (FPU),工作频率高达250 MHz,兼具高性能、安
[嵌入式]
基于PowerPC的微型BootLoader在Linux中的应用
  引言   引导装载程序(BootLoader)通常是在硬件上执行的第一段代码。虽然目前在Linux开源社区里有大量的引导装载程序,但是对于很多嵌入式设备上的应用来说,这些引导装载程序都显得过于复杂和冗长。为此,本文专门针对PowerPC E300系列处理芯片,设计了一款小型BootLoader程序,并命名为Genesis。该程序结构简单、功能完善,能很好地引导Linux内核以及文件系统。   环境要求及系统映像   硬件环境   本文中开发的硬件环境如下:处理器采用MPC83xx系列;内存采用512M的DDR2内存;闪存采用8MB的闪存;串口采用uart16550;波特率采用115200。   编译环境   程序在
[单片机]
基于PowerPC的微型BootLoader在<font color='red'>Linux</font>中的应用
Linux环境下基于I2C总线的EEPROM 驱动程序
  1 引言   I2C (Inter-Integrated Circuit1总线是一种由Philips公司开发的2线式串行总线,用于连接微控制器及其外围设备。它是同步通信的一种特殊形式,具有接口线少、控制方式简单、器件封装形式小、通信速率较高等优点。在主从通信中,可有多个I2C总线器件同时接到I2C总线上,通过地址来识别通信对象。笔者在开发基于MPC8250的嵌入式Linux系统的过程中发现I2C总线在嵌入式系统中应用广泛,I2C总线控制器的类型比较多,对系统提供的操作接口差别也很大。与I2C总线相连的从设备主要有微控制器、EEPROM、实时时钟、A/D转换器等.MPC8250处理器正是通过内部的I2C总线控制器来和这些连接在I
[嵌入式]
飞思卡尔、ST结成联盟,汽车处理器市场ARM遭排挤?
随着飞思卡尔半导体和ST携手组建基于PowerPC处理器架构的设计联盟,上世纪90年代靠着处理器授权在移动电话市场发迹的ARM控股公司从此将在汽车电子领域面对暗淡的前景。飞思卡尔和ST声称他们是汽车电子领域最大的IC供应商,他们的设计联盟包括一个位于德国慕尼黑的设计中心,并涉及PowerPC、功率和IGBT技术的交叉授权,此举显示PowerPC将成为汽车行业的标准。 据ST汽车产品组副总裁兼总经理Ugo Carena介绍,ST会继续使用业已投产的、采用ARM内核的处理器系列,但是,PowerPC将用于满足高端系统如驱动总成和信息娱乐系统应用的需求。他认为,PowerPC不会与现有或将来推出的、基于ARM核的处理器直接竞争,但是,
[焦点新闻]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多每日新闻
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved