色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

BIOS開發筆記:CMOS簡介

CHANBAEK ? 來源:UEFI那點事 ? 作者: bin ? 2023-05-26 15:49 ? 次閱讀

簡介

CMOS原來指的是一種生產電子電路的工藝,在PC上一般指的是RTC電路單元,因為早期它是由這種工藝生產出來的,所以又把RTC稱作了CMOS。

RTC(Real Time Clock)即實時時鐘,用于保存記錄時間和日期,也可以用來做定時開機功能。 RTC靠一組獨立的電源給它供電,這樣設計的目的就是為了不受系統電源的影響,可以保持一直有電,哪怕是在關機狀態下。 當然這是理想狀態下的,因為會有一些不可抗拒的原因,可能會導致斷電,比如電池電量消耗完。

RTC的供電設計有兩種:臺式機上使用常見的RTC電池,筆記本上也有使用RTC電池的,但有些為了節省空間和減低成本,直接共用筆記本電池的電源。 RTC功耗極低,根本不需要憂慮它會對對電池造成大的負擔。

要使RTC正常工作,除了電源,還需要一個32.768KHZ的晶振。 RTC通過對晶振所產生的振蕩頻率分頻和累加,得到年、月、日、時、分、秒等時間信息,并將其保存在一段RAM中。

圖片

實時傳輸單元內存

在UEFI問世之前,BIOS存儲一些變量(如BIOS SETUP設置)的方法就是放在RTC RAM中的,只要RTC有電,數據就可以一直保存。 如果要恢復默認設置,或忘記密碼等,便可以通過拆卸 RTC 電池的辦法來達到目的。

至今,“清CMOS”這個詞還在沿用,雖然目的都是為了恢復BIOS SETUP初始值,但原理已經變了,UEFI中“清CMOS”并不能達到恢復默認設置的目的,因為數據不是存放在CMOS中了,而是BIOS ROM。 那現在的“清CMOS”是怎么實現的呢? 原理就是BIOS啟動的時候去判斷RTC是否掉過電(如Intel中的RTC_PWR_STS),是的話代碼就執行恢復動作。 注意,這里的恢復是代碼實現的,而原來利用的是RTC掉電,數據會清除的原理!

RTC RAM 共有128字節,前14字節是有標準定義的,可以用來控制實時時鐘,而其它字節對現在來說都已經過時了,基本沒什么用,最多拿來臨時存一些數據作標記。

圖片

前14字節定義(具體需要參照各平臺芯片設計廠商相關的手冊)

前面所寫的指的是傳統的RTC RAM,后面又有了一個擴展的RTC RAM,它相比傳統的RTC RAM,可使用的寄存器增加到了256個,不過也很少用到。。

訪問

RTC RAM分為兩部分,第一部分傳統CMOS,只有128字節,第二部分為擴展CMOS,有256字節,需要分開使用70/71或72/73端口訪問,每次讀寫只支持單字節操作。 通過RW查看,如下:

圖片

圖片

RW中直接可以看到在跳動的秒數,操作系統下的時間和日期都是從RTC讀出來的。 如果在OS下更改時間或日期,RTC中相關寄存器也會被變更。

代碼訪問CMOS直接使用 IoRead8() 和 IoWrite8() 就可以了,比較簡單,EDK2中有相關函數,如下:

UINT8 
EFIAPI 
CmosRead8 (
  IN UINTN Index  
)
{
  IoWrite8(0x70, (UINT8) Index);
  return IoRead8 (0x71);
 }
 
 UINT8
 EFIAPI
 CmosWrite8 (
  IN UINTN Index,
  IN UINT8 Value  
)
{
  IoWrite8 (0x70, (UINT8) Index);
  IoWrite8 (0x71, Value);
  return Value;
}

定時開機

定時開機的叫法有幾種,如RTC Wake Up、RTC Alarm、Wake Up From S5 等,原理就是設置RTC中幾個Alarm寄存器,當Alarm寄存器的值跟當前時間一樣時,RTC就會產生一個Alarm,如果此時RTC Alarm Enable有被設置啟用的話,則會產生一個喚醒事件(wake event)喚醒計算機,達到一個定時開機的作用。

定時開機常見的應用場景有兩種,一種是在BIOS SETUP做的定時開機功能,另一種則是由APP設置的定時開機,如常用于測試跑自動開關機的工具Pwrtest.exe(它是微軟提供的,在SDK中可找到它,由于EWDK包含SDK,所以EWDK也有,用everything搜一下很快可以找到),原理也是在關機的時候設置了RTC Alarm, 然后不斷重復這個動作,便實現了自動開關機的功能。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • CMOS
    +關注

    關注

    58

    文章

    5710

    瀏覽量

    235420
  • 晶振
    +關注

    關注

    34

    文章

    2859

    瀏覽量

    68005
  • 內存
    +關注

    關注

    8

    文章

    3019

    瀏覽量

    74007
  • BIOS
    +關注

    關注

    5

    文章

    469

    瀏覽量

    45684
  • RTC
    RTC
    +關注

    關注

    2

    文章

    538

    瀏覽量

    66468
收藏 人收藏

    評論

    相關推薦

    安卓開發筆記

    安卓開發筆記(中文)
    發表于 04-26 10:57

    基于STM32的USB程序開發筆記 匯總

    忙了一下午終于有時間整理了,基于STM32的USB程序開發筆記匯總,需要的親們點擊鏈接閱讀哈!{:4_95:}基于STM32的USB程序開發筆記(一)https://bbs.elecfans.com
    發表于 03-20 16:08

    Modbus庫開發筆記之十一:關于Modbus協議棧開發的說明

    們不就使用的最終結果負責。當然如果發現任何的不足,我們非常并歡迎大家將發現的問題告知我們,以便我們持續的改進之。本系列的全部分裝如下:Modbus庫開發筆記之一:實現功能的基本設計https
    發表于 08-27 20:32

    壇友經驗分享之STM32的USB程序開發筆記

    基于STM32的USB程序開發筆記(一)基于STM32的USB程序開發筆記(二)基于STM32的USB程序開發筆記(三)基于STM32的USB程序開發筆記(四)基于STM32的USB程
    發表于 09-04 17:42

    基于STM32的USB程序開發筆記

    基于STM32的USB程序開發筆記
    發表于 04-24 09:23

    Odrive開發筆記 精選資料推薦

    Odrive開發筆記文章目錄Odrive開發筆記接線配置進入校準測試用python來控制odrive電機控制介紹位置環速度環把從一開始做odrive驅動無刷電機的所有過程都記錄下來接線1. 首先
    發表于 09-02 07:33

    求大佬分享STM32CubeMX-HAL庫開發筆記

    求大佬分享STM32CubeMX-HAL庫開發筆記
    發表于 12-02 07:26

    求大佬分享CAN開發筆記

    求大佬分享CAN開發筆記
    發表于 02-07 06:16

    lua開發筆記分享

    lua開發筆記(1)單片機與luaPython與lua單片機與lua我第一次接觸lua是幾年前偶然發現了一個單片機(MCU)的開源項目——NodeMCU。這個項目很有意思,他的目的是讓傳統程序員
    發表于 02-08 06:12

    基于STM32的USB程序開發筆記

    基于STM32的USB程序開發筆記STM32 USB 源代碼及筆記下載.rar
    發表于 10-09 06:05

    STM32的USB程序開發筆記

    STM32的USB程序開發筆記
    發表于 09-29 14:55 ?27次下載
    STM32的USB程序<b class='flag-5'>開發筆記</b>

    基于LM3S網絡開發筆記5_初識JavaScript

    基于LM3S網絡開發筆記5_初識JavaScript
    發表于 10-11 08:48 ?7次下載
    基于LM3S網絡<b class='flag-5'>開發筆記</b>5_初識JavaScript

    基于LM3S網絡開發筆記3_多網頁開發

    基于LM3S網絡開發筆記3_多網頁開發
    發表于 10-11 08:52 ?4次下載
    基于LM3S網絡<b class='flag-5'>開發筆記</b>3_多網頁<b class='flag-5'>開發</b>

    基于LM3S網絡開發筆記1_開發平臺

    基于LM3S網絡開發筆記1_開發平臺
    發表于 10-11 08:57 ?4次下載
    基于LM3S網絡<b class='flag-5'>開發筆記</b>1_<b class='flag-5'>開發</b>平臺

    Qt嵌入式開發筆記

    Qt嵌入式開發筆記,未完整qmake,qt元對象系統,內存管理,信號與槽,事件處理,多線程開發
    發表于 11-03 10:21 ?38次下載
    Qt嵌入式<b class='flag-5'>開發筆記</b>
    主站蜘蛛池模板: 人妻无码AV中文系统久久免费| 啦啦啦WWW在线观看免费高清版 | 欧美日韩一级黄色片| 好看的电影网站亚洲一区| 国产VA精品午夜福利视频| yellow日本动漫免费观看| 97精品视频在线观看| 18禁无遮遮挡羞漫画免费阅读| 一区不卡二区卡| 伊人香蕉在线播放视频免费| 亚洲视频免费观看| 亚洲国产cao| 亚洲区视频在线观看| 亚洲免费va在线观看| 亚洲欧美一区二区久久| 亚洲欲色欲色XXXXX在线AV| 一个人的视频全免费在线观看www 一个人的免费完整在线观看HD | 捏奶动态图吃奶动态图q| 麻豆天美国产一区在线播放| av影音先锋影院男人站| https黄视| 俄罗斯9一14 young处| 国产h视频在线观看免费| 国产精品美女久久久网站动漫| 国产成人亚洲精品午夜国产馆| 国产精品线路一线路二| 国产午夜亚洲精品区| 湖南张丽大战黑人hd视频| 久久精品动漫网一区二区| 美女扒开尿口直播| 强开乳罩摸双乳吃奶视频| 色欲久久综合亚洲精品蜜桃| 午夜天堂一区人妻| 一级毛片免费播放| 992交通广播| 出租屋交换人妻 全文| 国产精品久久久久影院色| 果冻传媒在线观看网站| 久久亚洲欧美国产综合| 欧美男同gay粗大又长| 上原结衣快播|