一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

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

ljx2016 ? 來(lái)源:ljx2016 ? 作者:ljx2016 ? 2025-05-07 15:04 ? 次閱讀

1. RTC介紹

RTC的英文全稱(chēng)是Real-Time Clock,翻譯過(guò)來(lái)是實(shí)時(shí)時(shí)鐘芯片。實(shí)時(shí)時(shí)鐘芯片通過(guò)引腳對(duì)外提供時(shí)間讀寫(xiě)接口,通常使用獨(dú)立電池供電,以保證在外部系統(tǒng)關(guān)電時(shí),芯片電路正常工作,時(shí)間正常運(yùn)行。

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

1.1 Orin-Nano的RTC資源

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

wKgZO2gbBu6AOGuJAAa_SOBcH-0434.png

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

wKgZPGgbBu6AXwLSABWgvlvL8gs296.jpg

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

wKgZO2gbBu-AIdANAADd2iFZmiA067.png

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

ls /dev/rtc*
wKgZO2gbBu-AC85KAABIIrtCBfQ627.png

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

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

1.2 RTC時(shí)間的讀寫(xiě)

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

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

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

注:

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

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

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

sudo hwclock --hctosys

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

sudo hwclock --systohc

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

sudo hwclock -r
wKgZO2gbBu-AUiy4AAA5RTgV88Y567.png

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

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

2. 快速上手

2.1 例程源碼下載

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

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

提取碼: 1234

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

wKgZPGgbBvCARwpPAACOai_EbFA035.png

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

wKgZO2gbBvCAIDXYAAEB1jwk1AM561.png

2.2 例程編譯&運(yùn)行

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

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

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

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

sudo ./Release/test-rtc

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

wKgZO2gbBvCARlOVAADUhwMpNTg985.png

3. C語(yǔ)言使用案例

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

int main(int argc, char const *argv[])
{
    const char *strDateTime = "2023-09-21 15:22:37";
    // 將字符串轉(zhuǎn)換為tm結(jié)構(gòu)體類(lèi)型的時(shí)間信息
    struct tm tm = {0};
    strptime(strDateTime, "%Y-%m-%d %H:%M:%S", &tm);
    // 打開(kāi)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ù)前日期時(shí)間---n");
    system("date");
    
    /***  1.關(guān)閉網(wǎng)絡(luò)校時(shí)服務(wù) ***/
    system("systemctl stop ntp.service");
    
    /***  2.將預(yù)設(shè)好的時(shí)間寫(xiě)入【RTC時(shí)鐘】 ***/
    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í)間設(shè)置失敗");
        close(rtc_fd);
        return -1;
    }
    
    /***  3.將【RTC時(shí)鐘】同步回【系統(tǒng)時(shí)鐘】 ***/
    // 讀出剛才寫(xiě)入的RTC時(shí)鐘參數(shù)
    if (ioctl(rtc_fd, RTC_RD_TIME, &rtc_tm) < 0) {
        perror("RTC時(shí)間讀取失敗");
        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;
    // 同步時(shí)間到系統(tǒng)時(shí)鐘
    if(0 != settimeofday(&tv, (struct timezone *)0)){
        perror("系統(tǒng)時(shí)間設(shè)置失敗");
    }
    printf("---設(shè)置參數(shù)后日期時(shí)間---n");
    system("date");
    
    return 0;
}


審核編輯 黃宇

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

    關(guān)注

    25

    文章

    5415

    瀏覽量

    101095
  • 時(shí)鐘芯片
    +關(guān)注

    關(guān)注

    2

    文章

    258

    瀏覽量

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

    關(guān)注

    2

    文章

    604

    瀏覽量

    68099
  • rk3576
    +關(guān)注

    關(guān)注

    1

    文章

    117

    瀏覽量

    494
收藏 人收藏

    評(píng)論

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

    基于RK3576開(kāi)發(fā)板的WDT看門(mén)狗使用說(shuō)明

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

    基于RK3576開(kāi)發(fā)板的PCIE固態(tài)硬盤(pán)使用說(shuō)明

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

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

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

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

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

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

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

    【米爾RK3576開(kāi)發(fā)板評(píng)測(cè)】+項(xiàng)目名稱(chēng)值得購(gòu)買(mǎi)的米爾RK3576開(kāi)發(fā)板

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

    新品體驗(yàn) | RK3576開(kāi)發(fā)板

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

    米爾RK3576開(kāi)發(fā)板特惠活動(dòng)!

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

    敬請(qǐng)期待 | 迅為RK3576開(kāi)發(fā)板即將發(fā)布

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

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

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

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

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

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

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

    基于RK3576開(kāi)發(fā)板的揚(yáng)聲器和耳機(jī)使用說(shuō)明

    RK3576開(kāi)發(fā)板的揚(yáng)聲器和耳機(jī)使用說(shuō)明
    的頭像 發(fā)表于 05-06 16:36 ?94次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開(kāi)發(fā)板</b>的揚(yáng)聲器和耳機(jī)<b class='flag-5'>使用說(shuō)明</b>

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

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

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

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