zoukankan      html  css  js  c++  java
  • CMOS and BIOS

    1,cmos简介。
       cmos是主板上一块可读写的RAM芯片。用途:主要用来保存当前系统的硬件配置和操作人员对某些参数的设定。cmos芯片是由一块纽扣电池供电。因此在关机状态内部信息也不会丢失。

    2,cmos所在的端口。    cmos芯片是挂在cpu的io空间上的.(x86体系是独立编址的)。cmos拥有两个端口号分别是70h和71h

     端口号 权限  长度 作用
     70h 不可读可写  8bit  用它来设置cmos中的数据地址
     71h  可读可写  8bit  用它来设置70h端口地址中的值

    ----------------------------------------------------------------------------------------------

    3,cmos中的数据地址对照表。(供编程时查)

    地址  数据 备注
     00H  Time - Seconds  硬件时间的秒
     01H  Alarm - Seconds  
     02H  Time - Minutes  硬件时间的分
     03H  Alarm - Minutes  
     04H  Time - Hours  硬件时间的时
     05H  Alarm - Hours  
     06H  Date - Day of the week  
     07H  Date - Day  
     08H  Date - Month  
     09H  Date - Year 29h  
     0AH  Status Register A  
     0BH  Status Register B  
     0CH  Status Register C  
     0DH  Status Register D  
     0EH  Diagnostic Status  
     0FH  Shutdown Status  
     10H  A:  
     11H  Reserved  
     12H  0  
     13H  Reserved  
     14H  Equipment Installed  
     15H  Base Memory (high byte)  
     16H  Base memory (low byte)  
     17H  Extended Memory (high byte)  
     18H  Extended Memory (low byte)  
     19H  0 (C:) Hard Disk Type  
     1AH  1 (D:) Hard Disk Type  
     1BH  Reserved  
     1CH  Supervisor Password  
     1DH  Supervisor Password  
     1EH ~ 2DH  Reserved  
     2EH  CMOS Checksum (high byte)  
     2FH  CMOS Checksum (low byte)  
     30H  Extended Memory (high byte)  
     31H  Extended Memory (low byte)  
     32H  Date - Century  
     33H  Power On Status  
     34H~3FH  Reserved  
     40H~5FH  Extended CMOS  
     60H  User Password  
     61H  User Password  
     62H~7FH  Extended CMOS  
         

    ----------------------------------------------------------------------------------------------

    4,对cmos编程实例(linux下读取cmos中的硬件时间,也可以在DOS下写汇编实现)

    1.#include <stdio.h>
    
    2.#include <sys/io.h>
    
    3.
    
    4.unsigned char cmos_read(unsigned char addr)
    
    5.{
    
    6.    unsigned char tmp = 0;
    
    7.    iopl(3);
    
    8.    outb(addr,0x70);
    
    9.    tmp = inb(0x71);
    
    10.    iopl(0);
    
    11.    return tmp;
    
    12.}
    
    13.
    
    14.
    
    15.int main(void)
    
    16.{
    
    17.    printf("seconds = %x
    ",cmos_read(0));
    
    18.    printf("minute = %x
    ",cmos_read(2));
    
    19.    printf("hour = %x
    ",cmos_read(4));
    
    20.    system("date");
    
    21.    return 0;
    
    22.}

    思考:为什么此时cmos中的时间分钟秒钟和系统时间相同,而唯独小时相差8个小时呢?
               这问题涉及到UTC和时区的问题了。北京时间=UTC+8

    5,bios简介
                  bios又称为基本输入输出系统。是主板上的一个ROM芯片。主要保存着基本输入输出程序,系统
    信息设置,开机上电自检程序和系统启动自举程序等。

    6,bios和cmos的区别与联系?
       我用个比喻吧,bios相当于“代码段”,cmos相当于“数据段”。
         6.1,bios是只读,cmos既可以读也可以写。(区别)
         6.2,BIOS中的系统设置程序是完成CMOS参数设置的手段;
                 CMOSRAM既是BIOS设定系统参数的存放场所。(联系)

    7,bios程序实现的基本功能。
             一是BIOS中断服务程序,即微机系统中软件与硬件之间的一个可编程接口,主要用于 程序软件功能
    与微机硬件之间实现衔接。操作系统对软盘、硬盘、光驱、键盘、显示器等外围设备的管理,都是直接建立
    在BIOS系统中断服务程序的基础上,操 作人员也可以通过访问INT5、INT13等中断点而直接调用BIOS中断
    服务程序。
             二是BIOS系统设置程序,前面谈到微机部件配置记录是放在一块可读 写的CMOSRAM芯片中的,
    主要保存着系统基本情况、CPU特性、软硬盘驱动器、显示器、键盘等部件的信息。在BIOSROM芯片中装
    有“系统设置程 序”,主要用来设置CMOSRAM中的各项参数。这个程序在开机时按下某个特定键即可进入
    设置状态,并提供了良好的界面供操作人员使用。事实上,这个设置 CMOS参数的过程,习惯上也称为“
    BIOS设置”。
             第三是POST上电自检程序,微机按通电源后,系统首先由 POST(PowerOnSelfTest,上电自检)程序
    来对内部各个设备进行检查。通常完整的POST自检将包括对CPU、640K基本内存、1M以 上的扩展内存、
    ROM、主板、CMOS存贮器、串并口、显示卡、软硬盘子系统及键盘进行测试,一旦在自检中发现问题,系
    统将给出提示信息或鸣笛警告。
             第四 为BIOS系统启动自举程序
    ,系统在完成POST自检后,ROMBIOS就首先按照系统CMOS设置中
    保存的启动顺序搜寻软硬盘驱动器及CD—ROM、网 络服务器等有效地启动驱动器,读入操作系统引导记录,
    然后将系统控制权交给引导记录,并由引导记录来完成系统的顺利启动。

  • 相关阅读:
    494. Target Sum 添加标点符号求和
    636. Exclusive Time of Functions 进程的执行时间
    714. Best Time to Buy and Sell Stock with Transaction Fee有交易费的买卖股票
    377. Combination Sum IV 返回符合目标和的组数
    325. Maximum Size Subarray Sum Equals k 和等于k的最长子数组
    275. H-Index II 递增排序后的论文引用量
    274. H-Index论文引用量
    RabbitMQ学习之HelloWorld(1)
    java之struts2的数据处理
    java之struts2的action的创建方式
  • 原文地址:https://www.cnblogs.com/aomi/p/3443344.html
Copyright © 2011-2022 走看看