i.mx8 RTC問題

項目場景:

需要增加外置RTC,保證時間的精準。


問題描述:

基本情況,外置i2c接口的RTC,注冊、讀寫都正常,但是偶發性重啟后,系統時間是2022,rtc時間是1970,都像是恢復了默認時間一樣。


原因分析:

幾個名詞含義:

  • 系統時鐘(date):存儲在內存中,由操作系統維護,斷電后會丟失,依賴硬件時鐘初始化。
  • 硬件時鐘(hwclock):由主板電池供電的獨立時鐘,斷電后仍能運行,用于系統啟動時初始化系統時鐘。
  • UTC時間:全球統一時間。
  • CST時間:我國采用時間,東八區時間,UTC+8。
  • 例如:硬件時鐘顯示10:00 UTC,系統時鐘若為北京時間(UTC+8),則顯示18:00

設置時間腳本:

#/bin/bash
echo close ntp
timedatectl set-ntp false
echo time set rtc1
date -s "2025-07-16 8:00:00" && hwclock -w -f /dev/rtc1
echo print rtc1
hwclock -f /dev/rtc1
echo system to rtc1
hwclock --systohc -u 
echo show rtc1
hwclock -u 
echo sync to sys
hwclock --hctosys -u

這樣設置后,date返回的系統時間,以及hwclock返回的rtc時間都是正確的,但是奇怪的事情發生了,若干次重啟后,date顯示2022,hwclock顯示1970。

于是查看內核打印信息,是怎么說的:

內核顯示上電時,就是把rtc讀給了系統啊,但是確實是讀了1970,那原因在于,nxp有自己集成的一個rtc0是默認的,實際上通過hwclock查的是rtc0,并不是我的外置rtc,通過指令可以看到,外置的rtc1實際上是一直正常工作的。


解決方案:

那解決的問題就是變成了:干掉rtc0,使能rtc1,有很多的解決辦法,我的解決辦法是簡單粗暴,改設備樹。

其中在NXP的設備樹中,我找到了他對自己rtc的定義

			snvs: snvs@30370000 {compatible = "fsl,sec-v4.0-mon","syscon", "simple-mfd";reg = <0x30370000 0x10000>;snvs_rtc: snvs-rtc-lp {compatible = "fsl,sec-v4.0-mon-rtc-lp";regmap =<&snvs>;offset = <0x34>;interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,<GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;clocks = <&clk IMX8MP_CLK_SNVS_ROOT>;clock-names = "snvs-rtc";};snvs_pwrkey: snvs-powerkey {compatible = "fsl,sec-v4.0-pwrkey";regmap = <&snvs>;interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;clocks = <&clk IMX8MP_CLK_SNVS_ROOT>;clock-names = "snvs-pwrkey";linux,keycode = <KEY_POWER>;wakeup-source;status = "disabled";};};

snvs_rtc就是我們的目標rtc,把它干掉就可以了。

在自己的設備樹xxx.dts里加上這一句,因為我是引用了NXP的imx8mp.dtsi的。

&snvs_rtc{status = "disabled";
};

至此,大功告成,時間正常,內核打印只顯示這個i2crtc了,只是映射從從rtc1變為了rtc0。


最后:記得更改本地時區。

timedatectl set-timezone Asia/Shanghai

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/89236.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/89236.shtml
英文地址,請注明出處:http://en.pswp.cn/web/89236.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據集相關類代碼回顧理解 | utils.make_grid\list comprehension\np.transpose

目錄 utils.make_grid list comprehension np.transpose utils.make_grid x_gridutils.make_grid(x_grid, nrow4, padding2) make_grid 函數來自torchvision的utils模塊&#xff0c;用于圖像數據可視化&#xff0c;將一批圖像排列成一個網格。 x_grid&#xff1a;四維圖像…

C#中Static關鍵字解析

本文僅作為參考大佬們文章的總結。 Static關鍵字是C#語言中一個基礎而強大的特性&#xff0c;它能夠改變類成員的行為方式和生命周期。本文系統性總結static關鍵字的各類用法、核心特性、適用場景以及需要注意的問題&#xff0c;以幫助掌握這一重要概念。 一、Static關鍵字概…

通用綜合文字識別聯動 MES 系統:OCR 是數據流通的核心

制造業的 MES 系統需實時整合生產數據以調控流程&#xff0c;但車間的工單、物料標簽、質檢報告等多為紙質或圖片形式&#xff0c;傳統人工錄入不僅滯后&#xff0c;還易出錯&#xff0c;導致 MES 系統數據斷層。通用綜合文字識別借助 OCR 技術&#xff0c;成為連接這些信息與 …

【Linux 學習指南】網絡編程基礎:從 IP、端口到 Socket 與 TCP/UDP 協議詳解

文章目錄&#x1f4dd;理解源IP地址和目的IP地址&#x1f320; 認識端口號&#x1f309;端口號范圍劃分&#x1f309;理解"端口號"和"進程ID"&#x1f309;理解源端口號和目的端口號&#x1f309;理解socket&#x1f320;傳輸層的典型代表&#x1f309;認識…

React+Next.js+Tailwind CSS 電商 SEO 優化

一、項目背景與技術選型?1. 原始痛點?項目最初基于純 React 開發&#xff08;SPA 架構&#xff09;&#xff0c;存在三個致命問題&#xff1a;?搜索引擎爬蟲無法有效抓取動態渲染的商品詳情、分類頁內容&#xff1b;?單頁面應用 難以實現頁面級的 meta 定制&#xff0c;關鍵…

Process Lasso:提升電腦性能的得力助手

在日常使用電腦的過程中&#xff0c;我們常常會遇到這樣的問題&#xff1a;電腦運行緩慢、程序響應遲緩、多任務處理時卡頓不斷。這些問題不僅影響工作效率&#xff0c;還讓人感到非常煩躁。其實&#xff0c;這些問題很多時候是因為電腦的進程管理不夠優化。而Process Lasso正是…

AI驅動的大前端內容創作與個性化推送:資訊類應用實戰指南

在信息爆炸的時代&#xff0c;資訊類應用面臨兩大核心挑戰&#xff1a;一是如何高效生產海量優質內容&#xff0c;二是如何讓用戶從海量信息中快速獲取感興趣的內容。AI技術的介入正在重構資訊類應用的開發模式&#xff0c;從內容生產到用戶觸達形成全鏈路智能化。本文將從開發…

2025/7/16——java學習總結

Java IO 流全體系總結&#xff1a;從基礎到實戰的完整突破&#xff08;重寫&#xff09;一、基礎核心&#xff1a;字節流與字符流的底層邏輯&#xff08;一&#xff09;字節流&#xff1a;二進制數據的讀寫基礎操作字節輸入流&#xff1a;掌握 FileInputStream 單字節讀取細節&…

書籍自然數數組的排序(8)0715

題目給定一個長度為N的整型數組arr&#xff0c;其中有N個互不相等的自然數1~N&#xff0c;請實現arr的排序&#xff0c;但是不要把下標0~N-1位置上的數通過直接賦值的方式替換成1~N。解答 arr在調整之后應該事下標從0到N-1的位置上依次放著1~N&#xff0c;即arr[index] index …

【08】MFC入門到精通——MFC模態對話框 和 非模態對話框 解析 及 實例演示

文章目錄八、模態對話框 和 非模態對話框 創建及顯示8.1 對話框是怎樣彈出的8.2 模態對話框的創建及顯示8.3 非模態對話框的創建及顯示8.4 完整代碼下載八、模態對話框 和 非模態對話框 創建及顯示 Windows對話框分為兩類&#xff1a;模態對話框 和 非模態對話框。 模態對話框…

github上傳大文件(多種解決方案)

之前一直用vscode的上傳項目方法&#xff0c;這個方便之處在于不用打開git終端輸入各種命令&#xff0c;不過麻煩的是我一直無法拉取github上的遠程倉庫提交&#xff0c;每次只能更新已有的倉庫并且上傳的文件還不能太大&#xff0c;應該是不能超過100MB&#xff0c;而且直接在…

生活污水深度除磷的方法

生活污水中磷含量過多的危害大家都知道總磷是水質檢測的重要指標之一&#xff0c;在污水處理中生活污水往往都會出現總磷超標的現象。生活污水磷超標的危害是多方面的主要包括水體富營養化、危害水生生物、影響人類健康&#xff0c;以及可能引發藍藻水華等問題。除磷方法污水的…

Flutter瀑布流布局深度實踐:打造高性能動態圖片墻

本文將深入探討如何在Flutter中實現高性能瀑布流布局&#xff0c;解決動態高度內容展示的核心難題&#xff0c;并帶來卓越的用戶體驗。引言&#xff1a;瀑布流布局的魅力 瀑布流布局(Pinterest-style layout)已成為現代應用展示圖片和內容的黃金標準。它通過錯落有致的排列方式…

OpenCV 伽馬校正函數gammaCorrection()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 該函數用于對輸入圖像應用伽馬校正&#xff08;Gamma Correction&#xff09;&#xff0c;這是一種非線性的圖像處理技術&#xff0c;主要用于調整…

Linux-局域網構建+VLAN 劃分 + 端口 MAC-IP 綁定 + 靜態 DHCP

文章目錄1. 適用于家庭、工作室或小型企業的局域網構建2. VLAN劃分3. VLAN 劃分 端口 MAC-IP 綁定 靜態 DHCP跳轉→網絡管理基礎復習 1. 適用于家庭、工作室或小型企業的局域網構建 ? 一、硬件連線&#xff08;一次到位&#xff09; 光纖入戶 → 光貓/寬帶調制解調器光貓…

滲透測試路線

滲透測試學習路線報告&#xff08;從入門到高級&#xff09; 引言&#xff1a;滲透測試概述與學習路線設計 滲透測試作為網絡安全體系中的核心實踐環節&#xff0c;通過模擬真實攻擊者的技術手段與攻擊路徑&#xff0c;主動識別信息系統中的安全漏洞、評估防護機制有效性&#…

Node.js 中http 和 http/2 是兩個不同模塊對比

1. 核心模塊對比 特性http 模塊 (HTTP/1.1)http2 模塊 (HTTP/2)協議版本HTTP/1.1&#xff08;文本協議&#xff09;HTTP/2&#xff08;二進制協議&#xff09;多路復用不支持&#xff08;需多個 TCP 連接&#xff09;支持&#xff08;單連接多流&#xff09;頭部壓縮無HPACK 壓…

3DGS之COLMAP

COLMAP 在 3DGS 中起到了數據預處理和三維重建的關鍵作用&#xff0c;其處理流程包括特征提取與匹配、稀疏重建、稠密重建和輸出文件生成。結合 3DGS 的高斯分布建模和優化算法&#xff0c;COLMAP 提供了場景的幾何和相機信息&#xff0c;為實時渲染和三維重建奠定了基礎。一、…

RabbitMQ中隊列長度限制(Queue Length Limit)詳解

在 RabbitMQ 中&#xff0c;隊列長度限制&#xff08;Queue Length Limit&#xff09;是指對隊列中消息數量的最大限制。當隊列中的消息數量達到設定的上限時&#xff0c;RabbitMQ 會根據配置的策略&#xff08;如丟棄舊消息、拒絕新消息或將消息轉移到另一個隊列&#xff09;來…

Python設計模式深度解析:建造者模式(Builder Pattern)完全指南

Python設計模式深度解析&#xff1a;建造者模式&#xff08;Builder Pattern&#xff09;完全指南前言什么是建造者模式&#xff1f;建造者模式的核心思想模式的核心組成實際案例一&#xff1a;UI選擇組件的動態構建抽象建造者基類具體建造者實現列表框建造者復選框建造者工廠建…