曰本美女∴一区二区特级A级黄色大片, 国产亚洲精品美女久久久久久2025, 页岩实心砖-高密市宏伟建材有限公司, 午夜小视频在线观看欧美日韩手机在线,国产人妻奶水一区二区,国产玉足,妺妺窝人体色WWW网站孕妇,色综合天天综合网中文伊,成人在线麻豆网观看

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于RK3576開發(fā)板的RTC使用說明

ljx2016 ? 來源:ljx2016 ? 作者:ljx2016 ? 2025-05-07 15:04 ? 次閱讀

1. RTC介紹

RTC的英文全稱是Real-Time Clock,翻譯過來是實時時鐘芯片。實時時鐘芯片通過引腳對外提供時間讀寫接口,通常使用獨立電池供電,以保證在外部系統(tǒng)關(guān)電時,芯片電路正常工作,時間正常運行。

不同的時鐘芯片內(nèi)部機制不一樣,但在Linux系統(tǒng)中驅(qū)動封裝了不同時鐘芯片的操作細(xì)節(jié),為應(yīng)用程序提供了統(tǒng)一的時間操作接口。

1.1 Orin-Nano的RTC資源

EASY EAI Orin-Nano 【默認(rèn)不帶】RTC電路。若想底板支持RTC功能,可通過使用我司的RTC模塊進行【擴展】。

wKgZO2gbBu6AOGuJAAa_SOBcH-0434.png

擴展RTC的具體操作:【首先】要把底板【斷電】,然后再把模塊【正面朝上】地插入到底板的40PIN接口上,如下圖所示。

wKgZPGgbBu6AXwLSABWgvlvL8gs296.jpg

插穩(wěn)后,再進行【上電】操作。

wKgZO2gbBu-AIdANAADd2iFZmiA067.png

通過ls命令,可查看RTC芯片是否有被系統(tǒng)識別

ls /dev/rtc*
wKgZO2gbBu-AC85KAABIIrtCBfQ627.png

確認(rèn)驅(qū)動成功加載后,可通過下方命令訪問驅(qū)動,讀出RTC芯片的所有信息。

cat /proc/driver/rtc
wKgZPGgbBu-Ab3PiAAA43uIw5bE558.png

1.2 RTC時間的讀寫

這里涉及2個時鐘,RTC芯片時鐘以及系統(tǒng)時鐘。手動管理RTC時鐘操作的本質(zhì)就是:同步時鐘(要么把系統(tǒng)時鐘同步到RTC芯片時鐘上,要么把RTC芯片時鐘同步到系統(tǒng)時鐘)。

系統(tǒng)時鐘:系統(tǒng)時鐘本質(zhì)是一個64位的整數(shù),這個整數(shù)代表當(dāng)前與Epoch Time的時間差(以秒為單位),我們稱之為時間戳。這個時鐘由CPU主芯片定時器維護,CPU掉電后,時鐘信息就會丟失。操作系統(tǒng)時鐘的命令為date。

date    #查詢系統(tǒng)時間
date -s "2023-09-20 11:18:00"    #修改系統(tǒng)時間

注:

* Epoch Time:是指一個特定的時間。1970年1月1日0時0分0秒。假設(shè)現(xiàn)在距離1970年1月1日0時0分0秒走了N秒,在Linux系統(tǒng)里,時間數(shù)值就是N。

RTC芯片時鐘:RTC芯片內(nèi)部所維護的時間。在系統(tǒng)掉電后由電池進行供電。因此系統(tǒng)電源掉電后RTC時間仍然能夠正常運行,RTC芯片時鐘的作用是在Linux不運行時,依然可以保持時間信息。

芯片時鐘同步到系統(tǒng)時鐘。

sudo hwclock --hctosys

系統(tǒng)時鐘同步到芯片時鐘(或者是sudo hwclock -w)。

sudo hwclock --systohc

如果只想查詢RTC芯片時鐘,但不同步到系統(tǒng)時鐘,可以采用以下命令。

sudo hwclock -r
wKgZO2gbBu-AUiy4AAA5RTgV88Y567.png

1.3 時區(qū)和校時服務(wù)

RTC時鐘和系統(tǒng)時鐘用的都是UTC時間,不同地區(qū)所使用的時間,還需要考慮上時區(qū)的影響。另外:RTC時鐘除了可以被手動操作,校時服務(wù)也會影響RTC時鐘。EASY-EAI-Orin-Nano采用ntpd作為校時服務(wù),若用戶對其機制不熟悉,可查閱文檔《系統(tǒng)時間管理介紹》。

2. 快速上手

2.1 例程源碼下載

到【百度網(wǎng)盤】上下載相關(guān)的單例程序:

鏈接:https://pan.baidu.com/s/1RXHMGpmGSEfFy0rb1VkXSg?pwd=1234

提取碼: 1234

比如在windows環(huán)境中,就把單例程序下載到:此電腦D:BaiduNetdisk (無規(guī)定,用戶可自主選擇),如下圖所示。

wKgZPGgbBvCARwpPAACOai_EbFA035.png

然后把例程【復(fù)制粘貼】到nfs掛載目錄中。(不清楚目錄如何構(gòu)建的,可以參考《入門指南/開發(fā)環(huán)境準(zhǔn)備/nfs服務(wù)搭建與掛載》)

wKgZO2gbBvCAIDXYAAEB1jwk1AM561.png

2.2 例程編譯&運行

通過adb shell進入開發(fā)板環(huán)境(不清楚如何通過adb進行調(diào)試,可以參考《入門指南/開發(fā)板調(diào)試方式介紹/adb調(diào)試》),執(zhí)行下方命令定位到demo目錄,并且執(zhí)行編譯操作。

cd /home/orin-nano/Desktop/nfs/12_IIC/
./build.sh
wKgZPGgbBvCABJAbAAGko1nQcbk052.png

編譯成功后,會生成一個test-rtc的可執(zhí)行程序在Release目錄中。

執(zhí)行下方命令則可運行測試demo,如下所示。

sudo ./Release/test-rtc

執(zhí)行效果如下所示。

wKgZO2gbBvCARlOVAADUhwMpNTg985.png

3. C語言使用案例

RTC的C語言使用案例,代碼地址為12_RTC/test-rtc/main.c,供用戶編碼參考。以下代碼展示了對RTC時鐘的讀寫操作流程:

int main(int argc, char const *argv[])
{
    const char *strDateTime = "2023-09-21 15:22:37";
    // 將字符串轉(zhuǎn)換為tm結(jié)構(gòu)體類型的時間信息
    struct tm tm = {0};
    strptime(strDateTime, "%Y-%m-%d %H:%M:%S", &tm);
    // 打開RTC設(shè)備
    int rtc_fd = open("/dev/rtc0", O_RDWR);
    if (rtc_fd < 0) {
        perror("open RTC device /dev/rtc0 faild.");
        close(rtc_fd);
        return -1;
    }
    printf("---設(shè)置參數(shù)前日期時間---n");
    system("date");
    
    /***  1.關(guān)閉網(wǎng)絡(luò)校時服務(wù) ***/
    system("systemctl stop ntp.service");
    
    /***  2.將預(yù)設(shè)好的時間寫入【RTC時鐘】 ***/
    struct rtc_time rtc_tm;
    rtc_tm.tm_sec  = tm.tm_sec;
    rtc_tm.tm_min  = tm.tm_min;
    rtc_tm.tm_hour = tm.tm_hour;
    rtc_tm.tm_mday = tm.tm_mday;
    rtc_tm.tm_mon  = tm.tm_mon;
    rtc_tm.tm_year = tm.tm_year;
    if (ioctl(rtc_fd, RTC_SET_TIME, &rtc_tm) < 0) {
        perror("set data time to rtc0");
        perror("RTC時間設(shè)置失敗");
        close(rtc_fd);
        return -1;
    }
    
    /***  3.將【RTC時鐘】同步回【系統(tǒng)時鐘】 ***/
    // 讀出剛才寫入的RTC時鐘參數(shù)
    if (ioctl(rtc_fd, RTC_RD_TIME, &rtc_tm) < 0) {
        perror("RTC時間讀取失敗");
        close(rtc_fd);
        return -1;
    }
    close(rtc_fd);
    tm.tm_sec  = rtc_tm.tm_sec;
    tm.tm_min  = rtc_tm.tm_min;
    tm.tm_hour = rtc_tm.tm_hour;
    tm.tm_mday = rtc_tm.tm_mday;
    tm.tm_mon  = rtc_tm.tm_mon;
    tm.tm_year = rtc_tm.tm_year;
    struct timeval tv;
    tv.tv_sec = mktime(&tm);
    tv.tv_usec = 0;
    // 同步時間到系統(tǒng)時鐘
    if(0 != settimeofday(&tv, (struct timezone *)0)){
        perror("系統(tǒng)時間設(shè)置失敗");
    }
    printf("---設(shè)置參數(shù)后日期時間---n");
    system("date");
    
    return 0;
}


審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5428

    瀏覽量

    101192
  • 時鐘芯片
    +關(guān)注

    關(guān)注

    2

    文章

    259

    瀏覽量

    40476
  • RTC
    RTC
    +關(guān)注

    關(guān)注

    2

    文章

    605

    瀏覽量

    68131
  • rk3576
    +關(guān)注

    關(guān)注

    1

    文章

    121

    瀏覽量

    496
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    基于RK3576開發(fā)板的WDT看門狗使用說明

    RK3576開發(fā)板的WDT使用說明
    的頭像 發(fā)表于 05-06 17:15 ?366次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的WDT看門狗<b class='flag-5'>使用說明</b>

    基于RK3576開發(fā)板的PCIE固態(tài)硬盤使用說明

    RK3576開發(fā)板的PICE固態(tài)硬盤使用方法
    的頭像 發(fā)表于 05-06 17:33 ?1048次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的PCIE固態(tài)硬盤<b class='flag-5'>使用說明</b>

    基于RK3576開發(fā)板的TF卡槽使用說明

    RK3576開發(fā)板使用TF卡槽
    的頭像 發(fā)表于 05-07 09:24 ?433次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的TF卡槽<b class='flag-5'>使用說明</b>

    基于RK3576開發(fā)板的PWN使用說明

    RK3576開發(fā)板使用PWN教程及Demo
    的頭像 發(fā)表于 05-07 14:07 ?1010次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的PWN<b class='flag-5'>使用說明</b>

    基于RK3576開發(fā)板的人臉識別算法

    RK3576開發(fā)板展示人臉識別算法例程和API說明
    的頭像 發(fā)表于 05-07 16:48 ?854次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的人臉識別算法

    【米爾RK3576開發(fā)板評測】+項目名稱值得購買的米爾RK3576開發(fā)板

    米爾依然是核心加擴展板的模式,我拿到手的開發(fā)板,核心已經(jīng)通過LGA貼片,焊好了。 開發(fā)板做工很好,布線細(xì)致工整。 RK3576
    發(fā)表于 01-08 22:59

    新品體驗 | RK3576開發(fā)板

    RK3399、RK3566、RK3568、RK3588、RK3576等型號的核心與評估
    的頭像 發(fā)表于 11-01 08:08 ?1610次閱讀
    新品體驗 | <b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>

    米爾RK3576開發(fā)板特惠活動!

    近日,米爾電子發(fā)布基于瑞芯微RK3576核心開發(fā)板,RK3576作為國產(chǎn)熱門處理器,其高性能數(shù)據(jù)處理能力、領(lǐng)先的AI智能分析、強大的擴展性與兼容性受到廣大
    的頭像 發(fā)表于 11-12 01:00 ?634次閱讀
    米爾<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>特惠活動!

    敬請期待 | 迅為RK3576開發(fā)板即將發(fā)布

    敬請期待 | 迅為RK3576開發(fā)板即將發(fā)布
    的頭像 發(fā)表于 11-22 15:13 ?468次閱讀
    敬請期待 | 迅為<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>即將發(fā)布

    迅為RK3576開發(fā)板核心與底板接口硬件介紹

    迅為RK3576開發(fā)板核心與底板接口硬件介紹
    的頭像 發(fā)表于 01-14 15:15 ?1117次閱讀
    迅為<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>核心<b class='flag-5'>板</b>與底板接口硬件介紹

    迅為RK3576開發(fā)板Android?多屏顯示

    迅為RK3576開發(fā)板Android?多屏顯示
    的頭像 發(fā)表于 01-16 16:58 ?701次閱讀
    迅為<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>Android?多屏顯示

    基于RK3576開發(fā)板的MIPI-DSI使用

    MIPI DSI接口是由MIPI聯(lián)盟下的Display工作組指定的DSI(Display Serial Interface)的接口標(biāo)準(zhǔn)。rk3576開發(fā)板使用mipi-dsi教程
    的頭像 發(fā)表于 05-06 16:11 ?160次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的MIPI-DSI使用

    基于RK3576開發(fā)板的揚聲器和耳機使用說明

    RK3576開發(fā)板的揚聲器和耳機使用說明
    的頭像 發(fā)表于 05-06 16:36 ?108次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的揚聲器和耳機<b class='flag-5'>使用說明</b>

    基于RK3576開發(fā)板的HDMI-OUT使用說明

    RK3576開發(fā)板的HDMI-OUT使用說明
    的頭像 發(fā)表于 05-06 16:48 ?94次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的HDMI-OUT<b class='flag-5'>使用說明</b>

    基于RK3576開發(fā)板的人員檢測算法

    展示了RK3576開發(fā)板的人員檢測算法例程及API說明
    的頭像 發(fā)表于 05-07 17:33 ?119次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的人員檢測算法