新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM-Linux驅動移植--RTC(實時時鐘)移植

        ARM-Linux驅動移植--RTC(實時時鐘)移植

        作者: 時間:2016-11-20 來源:網絡 收藏

        硬件平臺:FL2440

        本文引用地址:http://www.104case.com/article/201611/318866.htm

        內核版本:2.6.28

        主機平臺:Ubuntu 11.04

        內核版本:2.6.39

        首先修改內核源碼/arch/arm/mach-s3c2410/mach-smdk2410.c

        添加紅色字體部分

        1. staticstructplatform_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,這樣每次開機后,系統從硬件讀取時間信息,保存到系統。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 安龙县| 建湖县| 瑞金市| 洪雅县| 乾安县| 施甸县| 通辽市| 楚雄市| 闽清县| 定陶县| 贵港市| 桑日县| 高陵县| 叙永县| 堆龙德庆县| 缙云县| 蓬莱市| 建昌县| 景宁| 沧源| 屯昌县| 齐齐哈尔市| 海淀区| 祥云县| 梅州市| 安远县| 昌都县| 东山县| 镇安县| 湖南省| 呼和浩特市| 濮阳市| 格尔木市| 大安市| 澄迈县| 剑阁县| 什邡市| 靖边县| 扶风县| 波密县| 水城县|