Time of Update: 2018-12-04
7並行口服務(Parallel Port Service——INT 17H) 00H —向印表機輸出字元01H —初始化印表機連接埠02H —讀取印表機狀態 (1) 功能00H 功能描述:向印表機輸出字元入口參數:AH=00HAL=輸出的字元DX=印表機號(0—LPT1,1—LPT2,2—LPT3,……)出口參數:AH=印表機狀態。其各位為1時的含義如下: 位7—印表機空閑 位3—I/O錯誤位6—印表機響應位2—保留位5—無紙位1—保留位4—印表機被選位0—印表機逾時 (2)
Time of Update: 2018-12-04
第一種:Map map = new HashMap();Iterator iter = map.entrySet().iterator();while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object val = entry.getValue();}效率高,以後一定要使用此種方式!第二種:Map map = new HashMap()
Time of Update: 2018-12-04
我們先看一下一個 ListView綁定6行資料,每行資料上包括了三個控制項:TextView,CheckBox,Button,運行效果如所示:綁定代碼:ListView lstView = (ListView) this.findViewById(R.id.listView1); List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>(); for
Time of Update: 2018-12-04
最近上課老師說了這樣一句話:mmap()記憶體映射可以實現檔案的拷貝,並且速度明顯快於一般的檔案拷貝,於是我試著實現了兩種檔案拷貝所花費時間的比較,首先看代碼:#include <sys/types.h>#include<sys/stat.h>#include <fcntl.h>#include<unistd.h>#include <sys/mman.h>#include<stdlib.h>#include
Time of Update: 2018-12-04
《設計模式》上對建立者(Builder)模式的定義是將一個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。相信大部分初學者都看不懂這句話。 事實上,建立者模式是一步一步建立一個複雜的對象,它允許使用者可以只通過指定複雜物件的類型和內容就可以構建它們,使用者不知道內部的具體構建細節。Builder模式非常類似簡單原廠模式,細微的區別後面會提到。 因為一個複雜的對象,不但有很多大量組成部分,如汽車,有很多組件:車輪、方向盤、發動機還有各種小零件等等,組件很多,但遠不止這些。如何將
Time of Update: 2018-12-04
andriod 裡面的ListView是一個顯示列表資料的控制項,非常好用,常用適配器SimpleAdapter進行綁定,綁定代碼如下:ListView lstView = (ListView) this.findViewById(R.id.listView1);SimpleAdapter adapter=new SimpleAdapter(context, data, resource, from,
Time of Update: 2018-12-04
http://msdn.microsoft.com/en-us/library/dd692950%28v=vs.85%29.aspxLinuxread-edid consists of two tools: . get-edid uses a VESA VBE 2 interrupt service routine request to read a 128 byte EDID version 1 structure from your graphics card,
Time of Update: 2018-12-04
在磁碟上建立一個檔案系統通常有兩個階段。第一步格式化磁碟,以使磁碟驅動程式可以將塊號轉換成對應的磁軌和扇區,從而可以讀和寫磁碟上的物理塊。現在的硬磁碟已經由廠家預先格式化,因此不需要重新格式化;在Linux上可以使用superformat或fdformat等公用程式對磁碟片進行格式化。第二步才涉及建立檔案系統,這意味著建立前面博文中詳細描述的那些磁碟檔案系統資料結構。 Ext2檔案系統是由C程式mke2fs建立的。mke2fs採用下列預設選項,使用者可以用命令列的標誌修改這些選項: - 塊大小:
Time of Update: 2018-12-04
文章目錄 Diff Commit Checkout 用分離HEAD提交(找不到好的譯法) Reset Merge Cherry Pick Rebase 再次感謝原著作者和中文翻譯者。 此頁圖解git中的最常用命令。如果你稍微理解git的工作原理,這篇文章能夠讓你理解的更透徹。 如果你想知道這個網站怎樣產生,請前往GitHub repository。本文 基本用法約定命令詳解DiffCommitCheckoutDetached
Time of Update: 2018-12-04
引言: 從CPU連出來一把線:資料匯流排、地址匯流排、控制匯流排,這把線上掛著N個介面,有相同的,有不同的,名字叫做儲存空間介面、中斷控制介面、DMA介面、並行介面、串列介面、AD介面……一個裝置要想接入,就用自己的介面和匯流排上的某個匹配介面對接……於是匯流排上出現了各種裝置:記憶體、硬碟,滑鼠、鍵盤,顯示器…… 對於CPU而言,如果它要發資料到某個裝置,其實是發到對應的介面,介面電路裡有多個寄存器(也稱為連接埠),訪問裝置實際上是訪問相關的連接埠,所有的資訊會由介面轉
Time of Update: 2018-12-04
1、通訊介面i2c發送或者接收一次資料都以資料包 struct i2c_msg 封裝 struct i2c_msg { __u16 addr; // 從機地址 __u16 flags; // 標誌 #define I2C_M_TEN 0x0010 // 十位地址標誌 #define I2C_M_RD 0x0001 // 接收資料標誌 __u16 len; // 資料長度 __u8 *buf; //
Time of Update: 2018-12-04
現在USB裝置卻很多,因此對USB裝置的尋找與讀寫就必不可少了。但是能找到關於USB讀寫的資料很少。這裡使用VC++示範了一些獲得USB的資訊的方法。一、枚舉USB裝置 通過枚舉USB控制器->枚舉此控制器上的USB HUB->枚舉HUB的各個連接埠->獲得裝置資訊。 枚舉控制器: wsprintf(HCName, "////.//HCD%d", HCNum); hHCDev = CreateFile(HCName,
Time of Update: 2018-12-04
2.1.4 函數在 Makefile 中可以使用函數來處理變數,從而讓我們的命令或是規則更為的靈活和具有智能。make 所支援的函數也不算很多,不過已經足夠我們的操作了。函數調用後,函數的傳回值可以當做變數來使用。 函數調用,很像變數的使用,也是以“$”來標識的,其文法如下:$(<function> <arguments>)或是${<function> <arguments>} 這裡,<function>就是函數名,make
Time of Update: 2018-12-04
2.1.5 隱含規則如果要使用隱含規則產生你需要的目標,你所需要做的就是不要寫出這個目標的規則。那麼,make 會試圖去自動推導產生這個目標的規則和命令,如果make 可以自動推導產生這個目標的規則和命令,那麼這個行為就是隱含規則的自動推導。當然,隱含規則是make 事先約定好的一些東西。例如,我們有下面的一個Makefile:foo : foo.o bar.occ –o foo foo.o bar.o $(CFLAGS) $(LDFLAGS) 我們可以注意到,這個 Makefile
Time of Update: 2018-12-04
在系統啟動後,沒有載入任何作業系統。經過了上電自檢以後,CPU的各寄存器被初始化成一些列的值,可以直接定位到一個邏輯地址去執行相應的指令。這個地址一般是0xfffffff0,對應的位置就是BIOS所處的ROM晶片上。而這個晶片上存放的程式都是固定的,我們可以通過編程來訪問他們,就是所謂的BIOS系統服務。這個服務一般用來初始化作業系統所需要的各種環境,並在螢幕上列印一些提示或互動資訊。 接下來,我們就對這些服務進行一下介紹: 1 直接系統服務INT 00H —“0”作除數INT 01H
Time of Update: 2018-12-04
文章目錄 2.1.1 核心目標 2.1 KBuild體系從Linux核心2.6開始,Linux核心的編譯採用Kbuild系統,這和過去的編譯系統有很大的不同,尤其對於Linux核心模組的編譯。在新的系統下,Linux編譯系統會兩次掃描Linux的Makefile:首先編譯系統會讀取Linux核心頂層的Makefile,然後根據讀到的內容第二次讀取Kbuild的Makefile來編譯Linux核心。 Kbuild是建立在GUN
Time of Update: 2018-12-04
六、處理器控制指令 處理器控制指令是一組控制CPU工作方式的指令。這組指令的使用頻率不高。 1、標誌位操作指令:對CF、IF、DF進行操作 這些指令都是無運算元指令,指令中未直接給出運算元的地址,但隱含指出運算元在標誌寄存器的某些標誌位上,能直接操作的標誌位有CF、IF、DF。 (1)、清除進位標誌指令 (Clear carry flag) CLC ;置CF=0 (2)、進位標誌置位指令 (Set carry flag) STC ;置CF=1 (3)、進位標誌取反指令
Time of Update: 2018-12-04
文章目錄 2.1.2 主機程式 2.1.2 主機程式在核心編譯階段,Kbuild 要先去編譯那些將在編譯階段使用的可執行檔。為了使用該可執行檔,要將編譯分成二個階段:第一階段是告訴Kbuild存在哪些可執行檔。這是通過變數 hostprogs-y來完成的。第二階段是添加一個對可執行檔的顯性依賴。有兩種方法:增加依賴關係到一個規則中,或是利用變數
Time of Update: 2018-12-04
文章目錄 2.1.3 編譯標誌 2.1.3 編譯標誌KBuild體系還有一個重要的概念,那就是編譯標誌。我們可以在一些Makefile中看到如下標誌:EXTRA_CFLAGS、 EXTRA_AFLAGS、 EXTRA_LDFLAGS、EXTRA_ARFLAGS 這些EXTRA_開頭的大寫字母變數都是編譯標誌,所有的 EXTRA_ 變數只在所定義的Kbuild Makefile中起作用。EXTRA_ 變數可以在Kbuild
Time of Update: 2018-12-04
1,想實現串連到指定的WiFi網路嗎? 其實這個不是很難,可這個一直困擾了我很長時間,今天終於找到了原因,因為,我之前的配置就是錯誤的,所以,導致無法串連到指定的無線網路。2,實現方法: 請參考以下的代碼(特別是有密碼與沒有密碼的部分,他們的配置都不盡相同,所以,一定得細心): WifiConfiguration config = new WifiConfiguration();