官术网_书友最值得收藏!

4.4.3 實時時鐘的驅動程序

GoldFish虛擬處理器的實時時鐘(RTC)部分的驅動程序,相關文件如下所示:

drivers/rtc/rtc-goldfish.c

GoldFish的實時時鐘驅動程序在sys文件系統的driver路徑為:

    # ls /sys/bus/platform/drivers/goldfish_rtc
    goldfish_rtc
    uevent
    unbind
    bind

這是一個標準注冊的rtc設備,由于是系統中唯一的RTC設備,其在用戶空間的設備節點為/dev/rtc0。RTC驅動的主要內容是讀取時間,如下所示:

    static int goldfish_rtc_read_time(struct device *dev, struct rtc_time *tm)
    {
        int64_t time;
        struct goldfish_rtc    *qrtc = platform_get_drvdata(to_platform_device(dev));
        time = readl(qrtc->base + TIMER_TIME_LOW);
        time |= (int64_t)readl(qrtc->base + TIMER_TIME_HIGH) << 32;
        do_div(time, NSEC_PER_SEC);
        rtc_time_to_tm(time, tm);
        return 0;
    }

GoldFish的實時時鐘驅動由仿真器的虛擬環境觸發中斷,并填充相關的寄存器,在驅動程序中取得信息。

主站蜘蛛池模板: 江北区| 瑞丽市| 清流县| 上高县| 汶川县| 苏尼特右旗| 九龙城区| 青田县| 沅江市| 仁寿县| 克拉玛依市| 平邑县| 开江县| 门源| 乐平市| 新源县| 龙游县| 万载县| 洱源县| 阳泉市| 历史| 阜城县| 厦门市| 平阴县| 南召县| 丰顺县| 浦江县| 南通市| 虎林市| 凤阳县| 宝清县| 古浪县| 仪征市| 霍城县| 广丰县| 绥棱县| 延安市| 焦作市| 股票| 迭部县| 石首市|