X86 CMOS

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
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、编程实例

#ifndef _CMOS_H_
#define _CMOS_H_    1#include <io.h>/* CMOS I/O REG */
#define CMOS_ADDR_REG   0x70
#define CMOS_DATA_REG   0x71/* CMOS INDEX */
#define CMOS_INDEX_SECOND       0
#define CMOS_INDEX_SECOND_ALARM 1
#define CMOS_INDEX_MINUTE       2
#define CMOS_INDEX_MINUTE_ALARM 3
#define CMOS_INDEX_HOUR     4
#define CMOS_INDEX_HOUR_ALARM       5
#define CMOS_INDEX_DAY_OF_WEEK      6
#define CMOS_INDEX_DAY_OF_MONTH 7
#define CMOS_INDEX_MONTH        8
#define CMOS_INDEX_YEAR     9#define CMOS_INDEX_STATUS_A 0xA
#define CMOS_INDEX_STATUS_B 0xB
#define CMOS_INDEX_STATUS_C 0xC
#define CMOS_INDEX_STATUS_D 0xD#define CMOS_STATUS_B_DAYLIGHT  1
#define CMOS_STATUS_B_24HOUR    2
#define CMOS_STATUS_B_BINARY    4static inline uint8_t bcd_to_num(uint8_t a)
{return ((a >> 4) * 10 + (a & 0xF));
}static inline uint8_t num_to_bcd(uint8_t a)
{return (((a / 10) << 4) + (a % 10));
}static inline uint8_t cmos_read(uint8_t index)
{outb(CMOS_ADDR_REG, index);return inb(CMOS_DATA_REG);
}static inline void cmos_write(uint8_t index, uint8_t value)
{outb(CMOS_ADDR_REG, index);outb(CMOS_DATA_REG, value);
}#endif /* _CMOS_H_ */

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/242749.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务(service)管理

服务&#xff08;service&#xff09;管理 按q退出

SCSI、FC、iSCSI三大协议概述

一、SCSI SCSI是小型计算机系统接口&#xff08;Small Computer System Interface&#xff09;的简称&#xff0c;于1979首次提出&#xff0c;是为小型机研制的一种接口技术&#xff0c;现在已完全普及到了小型机&#xff0c;高低端服务器以及普通PC上。 SCSI可以划分为SCSI-…

空间谱专题11:子阵平滑与秩亏缺

作者&#xff1a;桂。 时间&#xff1a;2017-09-29 21:20:18 链接&#xff1a;http://www.cnblogs.com/xingshansi/p/7612984.html 前言 主要分析在解相干算法中&#xff0c;子阵平滑的有效性。 一、前向平滑 以均匀线阵&#xff08;ULA&#xff09;为例&#xff0c;第l个接收…

空间谱专题12:二维测向的基本方法

作者&#xff1a;桂。 时间&#xff1a;2017-10-01 16:50:08 链接&#xff1a;http://www.cnblogs.com/xingshansi/p/7617442.html 前言 圆阵、面阵、L阵、十字阵、V形阵&#xff0c;都是直接地二维求解&#xff0c;复杂度较高&#xff0c;这里梳理复杂度较低的求解算法。 一…

使用有限状态机(FSM)解释shell 命令

一、有限状态机&#xff08;Finite State Machine&#xff0c;FSM&#xff09;是表示有限个状态及在这些状态之间的转移和动作等行为的数学模型&#xff0c;在计算机领域有着广泛的应用。FSM一个常见的应用就是用来负责Parser复杂的数据结构&#xff0c;比如解释URI协议&#x…

从今天起,逃离迷茫与枯燥,做一个与快乐常伴的人

-0-又是一个下雨天&#xff0c;郑州连着下了一个星期的雨了。国庆长假&#xff0c;街道上褪去了往日的繁华&#xff0c;空荡荡的&#xff0c;连几家最爱吃的商铺也关门回家团圆了。今天中秋节&#xff0c;你在哪里&#xff1f;又在做着什么呢&#xff1f;-1-一个人猫在家里&…

搭建JAVAEE环境

搭建JAVAEE环境 ./表示在当前目录下查找文件所以需要配置环境变量 在Linux下下载 或者在window下传输

小数延迟滤波器

作者&#xff1a;桂。 时间&#xff1a;2017-10-10 22:38:46 链接&#xff1a;http://www.cnblogs.com/xingshansi/p/7648274.html 前言 阵列信号处理中&#xff0c;经常用到小数延迟&#xff08;fractional delay&#xff0c;FD&#xff09;的思路&#xff0c;例如Beamformi…

387. First Unique Character in a String QuestionEditorial Solution

Given a string, find the first non-repeating character in it and return it’s index. If it doesn’t exist, return -1. Examples: s “leetcode” return 0. s “loveleetcode”, return 2. Note: You may assume the string contain only lowercase letters. …

AD提高动态的方法(附SNR计算)

作者&#xff1a;桂。 时间&#xff1a;2017-10-10 23:36:40 链接&#xff1a;http://www.cnblogs.com/xingshansi/p/7648475.html 前言 主要分析AD的基本特性&#xff0c;以及动态的计算方法。并总结量化位数确定的前提下&#xff0c;提高信号精度的一般性方法。 未完待续..…

空间谱专题13:联合解算DOA(ML/AP)

其中作者&#xff1a;桂。 时间&#xff1a;2017-10-16 07:51:40 链接&#xff1a;http://www.cnblogs.com/xingshansi/p/7675380.html 前言 主要记录二维测向中&#xff0c;分别利用两个一维阵联合解算的思路。 一、AP算法思想 信号模型&#xff1a; 对应相关矩阵 假设噪声为…

现代C++函数式编程

链接 http://geek.csdn.net/news/detail/96636 概述 函数式编程是一种编程范式&#xff0c;它有下面的一些特征&#xff1a; 函数是一等公民&#xff0c;可以像数据一样传来传去。 高阶函数 递归 pipeline 惰性求值 柯里化 偏应用函数 C98/03中的函数对象&#xff0c…

机器学习之正则化

根据上一篇博客《统计学习概论》可以知道&#xff0c;正则化的作用是选择经验风险和模型复杂度同时较小的模型。下面从过拟合的角度来理解正则化。 #过拟合问题 例子说明&#xff0c;线性回归问题&#xff08;房价&#xff09; 分析&#xff1a; 1&#xff09;左边第一幅图&am…

python开发平台Ubuntu

python开发平台Ubuntu APT软件管理和远程登录

a.out、coff、elf三种文件格式

转自&#xff1a;http://blog.chinaunix.net/uid-11469366-id-1747286.html 补充&#xff1a;a.out早期并不是elf格式的&#xff0c;而是unix下另一种可执行格式&#xff0c;新的a.out是 本文讨论了 UNIX/LINUX 平台下三种主要的可执行文件格式&#xff1a;a.out&#xff08;…

投影矩阵

作者&#xff1a;桂。 时间&#xff1a;2017-10-19 06:02:00 链接&#xff1a;http://www.cnblogs.com/xingshansi/p/7690292.html 前言 最近在交替投影算法中&#xff0c;用到投影矩阵&#xff0c;简单记录。 一、投影矩阵定义 此处以列满秩为例&#xff0c;行满秩可依次类推…

不同维度极值点查找

作者&#xff1a;桂。 时间&#xff1a;2017-10-19 17:00:12 链接&#xff1a;http://www.cnblogs.com/xingshansi/p/7693557.html 前言 主要梳理不同维度信号极值点的查找思路。 一、思想 思想都是一个&#xff0c;通过极值点的定义&#xff1a;数值高于相邻的点&#xff0c…

俯仰角/偏航角的转化

作者&#xff1a;桂。 时间&#xff1a;2017-10-20 10:29:52 链接&#xff1a;http://www.cnblogs.com/xingshansi/p/7698237.html 前言 主要记录坐标系的转化。 一、坐标转化 对于坐标系&#xff1a; 设方位角为φ&#xff0c;俯仰角为theta&#xff0c;仰角β与偏航角α&am…

安装Centos8.1

安装Centos8.1 按回车