第一步     将HST_D0寄存器清零

第二部     确定HST_STS (SMB_BASE 00h)寄存器裡面的所有狀態位是清除的(写清零)

第三步     往XMIT_SLVA(SMB_BASE 04h)寄存器写入SPD的slave address A0,同时将bit0置

(假设当前内存条插在DIMMA1槽上,此时XMIT_SLVA的bit0 若置,表示read;若置,表示write)

第四步     往SPD的HST_CMD(SMB_BASE 03h)寄存器写入SPD的Index。当写0x00时,表示要读取SPD的00h处的数据。

第六步     往SPD的HST_CNT(SMB_BASE 02h)寄存器写入48h,表示以byte的方式读取数据,并Start( bit6置)

其中    bit :     START     即,开始执行指令

Bit - :  SMB_CMD      Byte Data

Word Data

Block

Block Process

第七步     侦测状态位,判断HST_STS的bit0是否为,如为,则表示忙,继续等待。

第八步     从SPD的HST_D0(SMB_BASE 05h)寄存器读取数据

eg:訪問spd(WIN-TC编译通过)

#include   

#include

unsigned SearchBAR(unsigned long int address_s)

{

unsigned long int val;

asm mov dx,0xcf8

asm db 0x66

asm mov ax,word ptr address_s

asm db 0x66

asm out dx,ax

asm mov dx,0xcfc

asm db 0x66

asm in ax,dx

asm db 0x66

asm mov val,ax

return val;

}

unsigned char ReadByte(unsigned long int address_r)

{

unsigned char val;

outportb(addr_r,0x1e);

outportb((addr_r ),0xa7);

outportb((addr_r ),0x00);

outportb((addr_r ),0x48);

return val;

}

void main()

{

unsigned long int addr_s,addr_r,i,bus,dev,func,offset;

unsigned char ch;

bus=0x00;

dev=0x1f;

func=0x03;

offset=0x20;

addr_s=() (dev<<) (func<<) offset);

addr_r=SearchBAR(addr_s)&0xffe0;

printf("%x",addr_s>>);

printf("%x\n",addr_s);

printf("use IO :%x\n",addr_r);

ch=ReadByte(addr_r);

printf("Read Byte :%x\n",ch);

getchar();

}

转载:http://blog.sina.com.cn/s/blog_870045320102v60t.html

SMBUS讀取數據的方法的更多相关文章

  1. 使用DataSet與DataAdapter對數據庫進行操作

    1.定義連接字符串 var source = "server=(local); integrated security=SSPI; database=test"; var conn ...

  2. 【WIN10】程序內文件讀取與保存

    DEMO下載:http://yunpan.cn/cFHIZNmAy4ZtH  访问密码 cf79 1.讀取與保存文件 Assets一般被認為是保存用戶文件數據的地方.同時,微軟還支持用戶自己創建文件夾 ...

  3. C#、VSTO讀取Excel類

    之前寫的類存在Excel進程不能結束的Bug,重寫ExcelReader類,類實例清理時Excel進程自動結束. class ExcelReader { // Excel Object public ...

  4. MVC+Ninject+三层架构+代码生成 -- 总结(四、數據層)

    1.數據層使用了SqlSugar 庫類 . 數據層使用了SqlSugar 庫類 ,有興趣的 可以學習  http://www.codeisbug.com/Doc/8/1133,個人覺得比EF 簡單,容 ...

  5. PHPExcel讀取excel數據

    require_once 'PHPExcel.php'; $PHPReader = new PHPExcel_Reader_Excel2007(); $filePath = 'wjyl.xlsx'; ...

  6. 設定 gpio 為 讀取用途,需注意的參數

    Schematic 解說 上面的 線路圖, R1 R2 只能有一個被接上, R3 R4 只能有一個被接上, 是使用 gpio 讀取 電壓 判斷為0 或是 1 這時的 gpio 設定,其中一個參數需設為 ...

  7. 在Android中afinal框架下實現sqlite數據庫版本升級的辦法

    public abstract void onUpgrade(SQLiteDatabase db,int oldVersion,int new Version) 這個方法在實現時需要重寫.   pub ...

  8. 一次 C# 查詢數據庫 算法優化的案例

    最近有次在修改某段程式時,發現一段程式算法看起來簡單. 但背後因為多次查詢數據庫,導致效能問題. 這段程式主要是利用 EPPLUS 讀取 Excel 資料,檢查資料是否已存在數據庫中,若有就將已存在的 ...

  9. oracle系統表、數據字典介紹與日常問題診斷

    oracle系統表.數據字典介紹與日常問題診斷 數據字典是由唯讀的table和view組成的,產生於$oracle_home\rdbms\admin\catalog.sql.裡面儲存Oracle資料庫 ...

随机推荐

  1. (转)SQL查询案例:多行转换为一行

    原文:http://www.cnblogs.com/sammon/archive/2012/05/10/2494362.html 测试表与测试数据 CREATE TABLE TestTitle ( n ...

  2. Android宝典入门篇-进阶

    学习Android前后有快有1个月了,本着不耍流氓,谈恋爱就要结婚的信念(其实AD开发也挺有趣的),做了自己的第一个Android小应用.本来准备今天和大家分享的,考虑到在不同屏幕上的效果没测试和本着 ...

  3. ElementUI日期选择器时间选择范围限制

    ElementUI是饿了么推出的一套基于vue2.x的一个ui框架.官方文档也很详细,这里做一个element-ui日期插件的补充,官方文档中使用picker-options属性来限制可选择的日期,这 ...

  4. Java中Action层、Service层、Modle层和Dao层的功能区分

    一.Java中Action层.Service层.Modle层和Dao层的功能区分: 首先,这是现在最基本的分层方式,结合了SSH架构. modle层就是对应的数据库表的实体类.(即domain) Da ...

  5. SCP远程拷贝命令

    利用scp指令可以在linux机器间传递文件,个人使用几次感觉效率还是较高的,比SFTP+本地做媒介要高得多. 1.本地拷贝到远程. 这种方式的命令模式是scp local_file remote_u ...

  6. SpringMVC日期类型转换问题处理方法归纳

    前言 我们在SpringMVC开发中,可能遇到比较多的问题就是前台与后 台实体类之间日期转换处理的问题了,说问题也不大,但很多人开发中经常会遇到这个问题,有时很令人头疼,有时间问题暴露的不是很明显,然 ...

  7. UML和模式应用学习笔记-2(迭代和进化式开发)

    一:什么是迭代和进化式开发 1:迭代和进化式开发:通常会在还没有详细定义所有需求的情况下假设开发开始,同时使用反馈来明确和改进演化中的规格说明: 2:迭代方法与较高的成功率.生产率和低缺陷率具有关系: ...

  8. 有关WINDOWS XP登录密码的几种方法

    网上关于破解WINDOWS XP登录密码的几种方法很多,但许多根本不行.我现在总结自己试过几种,这几种方法其实均比较菜的,但可行的.WINDOWS XP登录是由SAM 文件管理的,总体来说“山姆大叔” ...

  9. 不能使用控制器“XXXController”的单个实例处理多个请求。如果正在使用自定义控制器工厂,请确保它为每个请求创建该控制器的新实例。

    原因:应用@{Html.RenderAction("aaa","XXX");}时路径路由和动作控制器不能是相同的,不然会的错. 比如:http://localh ...

  10. ffmpeg Win8移植记(二)

    接着上回说,http://www.cnblogs.com/zjjcy/p/3384517.html 上回移植了ffmpeg在ARM上面,只是纯C的代码,没有做汇编的优化.因为ffmpeg的ARM汇编是 ...