功能:
如 i386 。在差別 i/o 空間和記憶體空間的程序的 i/o 空間寫入資料。
原型:
引用變數:#include
voidoutb (unsigned
chardata
,unsigned
shortport);
voidoutw (unsigned
shortdata
,unsigned
shortport);
voidoutl (unsigned
longdata
,unsigned
shortport);
在linux的驅動程式中,都會使用大量的outb、outw、inb、inw等等巨集來訪問硬體或暫存器。
這些巨集的定義都在對應處理器體系下的include/asm資料夾下的io.h中定義。追究下去。這些巨集終於就是乙個volatile變數的的賦值:
#define __arch_putb(v,a) (*(volatile unsigned char *)(a) = (v))
#define __raw_writeb(v,a) __arch_putb(v,a)
#define outb(v,p) __raw_writeb(v,__io(p))
在(*(volatile unsigned char *)(a) = (v))中,a是乙個實體地址(實位址,多數是特殊功能暫存器位址)。
(volatile unsigned char *)對a進行型別轉換,成為乙個指向該位址指標,最後*(volatile unsigned char *)(a)引用該指針對該位址賦值v。這樣就能夠達到訪問底層硬體的目的了。
當讀入資料時使用in(x),類似inb、inw、inl,引數與out(x)函式一致。
in、out都是對i/oport進行操作。ioreadb、iowriteb等是對i/o記憶體操作。
(詳見部落格
Python連線mysql資料庫等常用操作
一 安裝pymysql模組 pip3 install pymysql 注 如果報錯,執行python m pip install upgrade pip 更新下pip版本 二 連線mysql等常用操作 增 刪 改 查 import pymysql 建立鏈結 conn pymysql.connect ...
MySQL基礎一 MYSQL啟動和開啟等操作
終端下的命令 1.啟動mysql net start mysql 2.關閉mysql net stop mysql 3.清屏 cls4.檢視當前mysql版本 mysql v 需要先進入mysql的bin目錄下,才可以 5.進入mysql命令 mysql u使用者名稱 預設為root p密碼 如果是...
SVN2 鉤子(自動執行UPDATE更新等操作)
鉤子就是由版本庫的事件 提交,屬性修改等 觸發的程式 shell 指令碼等 每乙個 svn 倉庫下都有乙個目錄hooks,在這裡面放所有的鉤子程式。其中以.tmpl結尾的代表是模板,可以用來參考。ls hooks post commit tmpl pre revprop change tmpl po...