討論區快速選單
知識庫快速選單
網路投保旅行平安險 政府補助!學嵌入式+物聯網 傑米的攝影旅遊筆記
[ 回上頁 ] [ 討論區發言規則 ]
我的一些疑惑
更改我的閱讀文章字型大小
作者 : kingofheart(紅心王)
[ 貼文 4 | 人氣 1946 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/9/10 下午 04:04:01
各位先進,我是一個職場的新手,跟各位一樣,也踏上了開發的這條路

我一直有一些疑惑,希望各位先進能不吝幫我解答

我所屬的公司,有一些PC的介面卡(這也是我管理的部分),有PCI的8255卡,有PCI的AD/DA卡

我們公司的PCI卡都不是PNP的,我們會用一個IO.DLL,裡面有類似TURBO C的INPORT()和OUTPORT()指令可以讓VB,VC等使用,等於直接去控制IO

我相信應該有一些先進已經知道我公司是哪一間了,希望各位先進不要因為不喜歡我公司就不回答我問題,離開了公司我也是一般人,畢竟我也是吃人薪水....謝謝~~  :)

但是我想更新我們公司的卡,讓它更有競爭力~~雖然有爬過前面的文章,可是我還是一點概念,一點頭緒都沒有,我把我的幾個問題提出來,希望有先進能幫我解答~~

一.為什麼要寫DRIVER,什麼是DRIVER??以實例來說,假設我寫了一支DRIVER給我的卡,那我的控制方式會有不同嗎??DRIVER會做些什麼事情??我要開發的卡片類型應該會是像DIGITLE I/O之類的實習用卡片,是有需要讓使用者實地去操作的,所以要提供使用者利用的空間,而並不像一般的音效或是網路卡是跟OS連接的,這樣我有需要寫DRIVER嗎??或是只要是PNP就要寫DRIVER

二.如果需要寫DRIVER,那麼我應該怎麼樣循序漸進,由簡至繁的學習??舉例來說,學習空手道要先訓練強健的肉體和精神,在學習基本動作,進階動作,再來練習對打,最後才能出場比賽. 那麼我應該以怎麼樣的步驟來學習呢??

三.我會需要一個WIN下的程式語言,這是無庸置疑的,那麼我最近有在自修BCB,不過還不深入,我有更好的選擇嗎??或是我只要鑽研BCB就可以了??因為我以前在學校的時候對於C語言比較有興趣,也學的比較好,所以我想從C下手我會進步的比較快

四.如果沒有硬體,是不是就沒有辦法學習寫DRIVER,或是我應該先去學習怎麼樣把硬體做起來,還是有公用的PCI板子可以用來練習寫DRIVER??因為我必須先搞懂哪一個先做哪一個後做,才能比較有效率,有系統的學習

一下子PO了很多問題,希望各位先進能不吝幫我解答,謝謝~~~  :)
作者 : eboytw2002(eBoy) 驅動程式優秀好手貼文超過200則人氣指數超過70000點
[ 貼文 338 | 人氣 70186 | 評價 2000 | 評價/貼文 5.92 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/9/10 下午 05:27:58

你這樣說太明顯了, 作 PCI 8255 和 AD/DA 實驗卡的公司有幾家呢.. 呵

一般而言, PCI 的實驗卡, 並不須要 PnP 的動作, 因為它只提供 USER 去
作一些 I/O 的動作, 而 USER 對 PCI 實驗卡的須求, 除非 MOUNT 上專屬
功能的 CHIP, 不然大部分都用來作 I/O

至於 PnP 的 Driver, 因為 PnP 是有一定的 specification, 你可能要看
看 PCI 的 SPECIFICATION, 你就可以了解..... PCI 如何達到 PnP 

PnP 對硬體而言, 要依 OS PnP 的須要, 將某些東西寫入 PCI CONFIGURATION
內, 或對 PCI REGISTERS 作一些特別的動作, 這些有些須要 DRIVER 去動作
的............. 我這樣說, 會不會太簡略?

換句話說, Driver 不只是單純的對 I/O 作動作而以啦....

學寫 DRIVER.................... 這問題我不會答

BCB 是可以有套件供寫 DRIVER, 我不是用 BCB 的, 問一下 BCB 的人吧 !
我是用 VC 的 

沒有硬體, 學 DRIVER 前, 可先學 OS 的觀念......................

[eBoy]
作者 : maxmax(魚) 貼文超過200則
[ 貼文 436 | 人氣 385 | 評價 260 | 評價/貼文 0.6 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/9/10 下午 05:35:11
>我們公司的PCI卡都不是PNP的,我們會用一個IO.DLL,裡面有類似TURBO C的INPORT()和OUTPORT()指令可以讓VB,VC等使用,等於直接去控制IO
>

呵呵! 有不是pnp的PCI卡嗎?
作者 : eboytw2002(eBoy) 驅動程式優秀好手貼文超過200則人氣指數超過70000點
[ 貼文 338 | 人氣 70186 | 評價 2000 | 評價/貼文 5.92 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/9/10 下午 05:38:11
我看過不是 PnP 的 pci 耶, 不寫入 PCI Register, 並不把 PCI 的 HARDWARE
register 寫入, 插了那張卡後, windows 跟本沒反應............

但用 pci 的 i/o access 程式, 可以 r/w, 很怪吧........... 哈

[eBoy]
作者 : maxmax(魚) 貼文超過200則
[ 貼文 436 | 人氣 385 | 評價 260 | 評價/貼文 0.6 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/9/10 下午 05:58:23

>我看過不是 PnP 的 pci 耶, 不寫入 PCI Register, 並不把 PCI 的 HARDWARE
>register 寫入, 插了那張卡後, windows 跟本沒反應............
>
>但用 pci 的 i/o access 程式, 可以 r/w, 很怪吧........... 哈
>
>[eBoy]

所謂的Plug and play簡單的講就是系統會自動去做config裝置的事情. 
對PCI卡而言, resource是由系統(BIOS or OS)來設定, 系統還可以偵
測到他存在與否, 他不是pnp是啥?

在windows裡沒反應並不代表他不是pnp吧! 也許那塊卡得透過IO 
access才能enable也說不定.
作者 : maxmax(魚) 貼文超過200則
[ 貼文 436 | 人氣 385 | 評價 260 | 評價/貼文 0.6 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/9/10 下午 06:04:44

>我看過不是 PnP 的 pci 耶, 不寫入 PCI Register, 並不把 PCI 的 HARDWARE
>register 寫入, 插了那張卡後, windows 跟本沒反應............
>
>但用 pci 的 i/o access 程式, 可以 r/w, 很怪吧........... 哈
>
>[eBoy]

也許你那是一塊插在PCI插槽上, 但卻未按照PCI規範做的卡.
這樣的東西算不算數我是不太曉的? 也許有人做這樣的東東
吧!

PCI規範裡, PCI Config Space哪些東東是一定要的都有講, 
如果照作, 應該都是Pnp才是.
作者 : maxmax(魚) 貼文超過200則
[ 貼文 436 | 人氣 385 | 評價 260 | 評價/貼文 0.6 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/9/10 下午 06:13:40
>一般而言, PCI 的實驗卡, 並不須要 PnP 的動作, 因為它只提供 USER 去
>作一些 I/O 的動作, 而 USER 對 PCI 實驗卡的須求, 除非 MOUNT 上專屬
>功能的 CHIP, 不然大部分都用來作 I/O

即使是只用到IO也需要pnp, 沒有pnp那他的IO的resource誰來給?
給user設定或用固定值? 這都很容易與其他的裝置衝突, 非常不好.

另外AD/DA的卡可能都需要大量data的傳輸, 所以經常會需要用到
DMA, 既然有需要DMA那interrupt也是必要的. 要寫這樣driver非得
下個苦工, 另外硬體的行為非得搞的很清楚不可.
作者 : kingofheart(紅心王)
[ 貼文 4 | 人氣 1946 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/9/10 下午 06:33:58
不好意思引起一陣騷動~~

誠如魚先進所說,我們公司的卡就是要讓使用者自己調佔用的I/O位置

插上卡片後,電腦不會有任何反應,就算是進到系統->電腦->IO面也看不到這張卡

所以只能用像TURBO C的INPORT()或OUTPORT()這樣的指令控制

舉例來說,我想要讓我的ADDA卡在通道9送出一個2.5V

我的ADDA卡起始位置是3320H結束位置是3329H共10個

我只要在DEBUG下面打上

-o 3328 80

它就會依照這樣的指令做出動作,跟ISA有點像

若是卡片改成了PNP,USER反而就不知道該下哪個位置去動作了

所以我會想把卡片跟DRIVER間的關係搞懂,進而精益求精,讓我所管轄的區域能有進步

真的很感謝各位先進的賜教,也希望各位先進能多給我一點意見跟指教,謝謝
作者 : weber(weber) 程式設計甘苦談優秀好手貼文超過200則人氣指數超過30000點
[ 貼文 302 | 人氣 33525 | 評價 2220 | 評價/貼文 7.35 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/9/10 下午 08:06:21
PCI spec 中有提到 PCI Configuration Register, 這些 register 會記錄
這張卡的一些特性, 如 Vendor ID, DeviceID, resource reqiurement(I/O, 
IRQ, DMA) 等. 而 Windows PnP 機制就是來 access configuration register
才得知要掛哪一種 driver(use VendorID, DeviceID), 以及 default resource.

如果沒把這些資料寫到 PCI configuration register, Windows 是絕對認不到
你的 PCI card.

其實我的處女 windows driver 就是獻給欣揚(Accrossor) A/D, D/A card.
當初有摸到 INT, DMA 所以覺得蠻好玩, 也蠻累的. 
6 年前的事了! 真是白首宮女話當年.
作者 : maxmax(魚) 貼文超過200則
[ 貼文 436 | 人氣 385 | 評價 260 | 評價/貼文 0.6 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/9/10 下午 08:09:49
>誠如魚先進所說,我們公司的卡就是要讓使用者自己調佔用的I/O位置
>
>插上卡片後,電腦不會有任何反應,就算是進到系統->電腦->IO面也看不到這張卡
>
>所以只能用像TURBO C的INPORT()或OUTPORT()這樣的指令控制
>
>舉例來說,我想要讓我的ADDA卡在通道9送出一個2.5V
>
>我的ADDA卡起始位置是3320H結束位置是3329H共10個
>
>


所以你們的卡事實上只實作PCI IO的部分. 也許吧! 這就是
Non-pnp的PCI卡. 我是有在網路上看到如下的說法"Be aware 
that not all PCI (2.0) cards are PnP, and that although PC 
(PCMCIA) cards are "Plug and Play", they are not considered 
here. Also, anything using PCI address ranges will not be 
seen by the BIOS on boot-up, which doesn’t mean that 
it isn’t working."

因為我之前的project, 還有我看過的PCI Spec講的都是一般標
準狀況, 我是沒想到有人做這類的產品. 不過仔細想起來這樣
他的線路可以很簡單, 成本可以很低, 因該有很多特殊應用會
採這樣的方式才是.

其實你的卡只需要一個很簡單driver而已, 幾乎就是把ddk裡那
個portio直接拿來用就可. 大概也沒啥好搞的, 如果在95, 98下,
其實直接access io不透過driver也沒啥差別.
作者 : maxmax(魚) 貼文超過200則
[ 貼文 436 | 人氣 385 | 評價 260 | 評價/貼文 0.6 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/9/10 下午 08:13:17

>如果沒把這些資料寫到 PCI configuration register, Windows 是絕對認不到

實際上他的卡應該是這些register都沒implement, 所以系統
也讀不到任何資料, 所以也不會有察覺到此卡的存在.
作者 : maxmax(魚) 貼文超過200則
[ 貼文 436 | 人氣 385 | 評價 260 | 評價/貼文 0.6 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/9/10 下午 08:41:46

>
>>如果沒把這些資料寫到 PCI configuration register, Windows 是絕對認不到
>
>實際上他的卡應該是這些register都沒implement, 所以系統
>也讀不到任何資料, 所以也不會有察覺到此卡的存在.

當然啦! 這也是我個人的揣測, 如果他不是用自己開的IC,
而是用一些現成萬用的PCI Chip, 那大概就如你所說的.
作者 : eboytw2002(eBoy) 驅動程式優秀好手貼文超過200則人氣指數超過70000點
[ 貼文 338 | 人氣 70186 | 評價 2000 | 評價/貼文 5.92 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/9/11 上午 10:56:34
作者 : eboytw2002(eBoy) 驅動程式優秀好手貼文超過200則人氣指數超過70000點
[ 貼文 338 | 人氣 70186 | 評價 2000 | 評價/貼文 5.92 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/9/11 上午 10:57:48
作者 : eboytw2002(eBoy) 驅動程式優秀好手貼文超過200則人氣指數超過70000點
[ 貼文 338 | 人氣 70186 | 評價 2000 | 評價/貼文 5.92 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/9/11 上午 11:00:08

我還是說詳細一點好了, 不然說的太簡略, 會被攻擊....... 很失望

其實嚴格說起來, 我剛畢業時, 玩過 8255 和 ad/da card, 這和現在的 driver
有很大的差別, 因為這些實驗卡, 都是配給硬體的人用的卡, 他用來 mount 晶片
和作 I/O 或是用在 ICE / JTAG 灌 PATTERN 用, 很少須要正式的 DRIVER 去動作, 一般而言, 像用 WinDriver 的 PCI I/O TOOLS 或是 Debug.exe 程式, 就可以作一些讀取的動作, 我想不太須要實驗卡上附上一個功能很強的 driver

所謂的 PnP 有兩個大的部份, 硬體的部份:

每一個 PCI DEVICE, 都有一個 64 雙字元的有效位址作供規格 Register 用, 前 16 個雙字元, 稱 Configuration header region, 後 48 個雙字元作介面卡的規格專用的Register, 而廠商設備代號, (DeviceID) 必須在前 16 雙字元中定義

一般的 PCI 裝置, 通常會在 PCI SERIAL BUS 上或 PCI 外加的銜接器上 (Slot), 依其所在的位置, 分配一個設備編號 (device number), 透過讀取 pci 設備上的製造廠商代碼的 Register, 可以偵測到該設備, ( 若設備存在, 傳回非 0xFFFFh 的廠商代號, 0xFFFFh 表示沒反應, 但 Windows 也將 0x0000h 當成不存在, 這是 PCI 2.1 上沒有的)

設備存在後, Driver/軟體會依其 PCI 的規格, 將 Register 讀出以決定要使用所須的硬體資源 ( disk device 不用在此限 ), 這些功能是使用 Slot 上的 PRSNT#1 和 PRSNT#2兩根 PIN 去動作 ( 怎樣提升電組 PILLUP RESISTOR 我就不說了)

插斷一下:

當作業系統開始讀取 DRIVER 到記憶體時, DRIVER 的 INITIAL CODE 利用上述硬體的方法去偵測 PCI 上的 DEVICE 存在否, 然後讀取廠商設備代號 (DeviceID), 呼叫 PCI BIOS ( 由 PCI Specification 定義), 發布尋找相觀設備所須要的資源, ( 以下動作我不說了)

因為 Microsoft 在 PCI 的連接設計上 ( 在 WINDOWS KERNEL 設計上), 有一些考量點 ( 我不能說 WHY), 並不直接使用 PCI BIOS 上的 REGISTER 去作 WINDOWS OS 上的 PnP 軟體 PnP 決策, 而是使用 PCI BUS ENUMERATOR 去動作, 這在 Microsoft 的 PCI WINDOWS PnP 的公開文件上說的很明白了, 若須要請到 WINDOWS 網站去找, 找不到我再 POST 上來.........

這個微軟的 PCI BUS ENUMERATOR 會此使用一種叫 PCI configuration mechanism 的modular ( 在 PC99 的公開 Specification 上有) 去當作 OS PnP PCI 的標準( 即沒有找到 PCI DEVICE, 傳回 0x0000h ), 這些在 PCI 2.1 上都是沒有記載的


[eBoy] 接下封
作者 : eboytw2002(eBoy) 驅動程式優秀好手貼文超過200則人氣指數超過70000點
[ 貼文 338 | 人氣 70186 | 評價 2000 | 評價/貼文 5.92 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/9/11 上午 11:00:50
[接上封]

至於 魚網友 所說的 "如果沒把這些資料寫到 PCI configuration register, 
Windows 是絕對認不到你的 PCI card" 這都是 PnP 之後, 依其 PCI DEVICE
所須, 將一些設定寫入 PCI CONFIGURATION 內的資料了

當然也要依 DEVICE ID 去對應相對的 REGISTER 內的值, 才能正確的使用 PCI
PnP 所帶來的便利

貴公司的 8255 PCI I/O Card 和 AD/DA PCI CARD, 用途真的很廣, 學校教學和
公司對新的 PCI DESIGN , 都幾乎會用到貴公司的 實驗卡, 我知道你想改良的
心意, 但真的不易, 因為貴公司的實驗卡, 是用在研發上, 若提供太多太專的程
式或界面, 反而會將貴公司的實驗卡的用途, 縮小許多, 不如研發一些可搭佩貴
公司實驗卡可使用的套件, 我想反而會好一點.........

[eBoy] 

作者 : kingofheart(紅心王)
[ 貼文 4 | 人氣 1946 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/9/11 下午 01:02:44
對於eboy以及各位先進的金玉良言,晚輩一定謹記在心

真的很感謝各位的指教!!

以我們公司的卡片而言,能夠使用直接去控制io已經是相當足夠

但是在nt/2000的系統下,windows不准我們利用debug這類的方式來越級控制某個位置

像這種情形,我就必須要有driver了,是嗎??

我們有個合作的公司,他們公司的人寫了一支dll檔,可以在nt/2000/xp下把io打開,讓vb/vc等的程式語言可以用inport(),outport()這樣的函式

是否我也應該往這樣的方面發展會比較合宜呢??

又若是往這樣的方面發展時,我應該讀一些怎麼樣的書籍

希望各位先進能不吝給我一個方向,讓我可以朝這樣的方向前進~~謝謝  :>
作者 : maxmax(魚) 貼文超過200則
[ 貼文 436 | 人氣 385 | 評價 260 | 評價/貼文 0.6 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/9/11 下午 02:01:26
>像這種情形,我就必須要有driver了,是嗎??
>
>我們有個合作的公司,他們公司的人寫了一支dll檔,可以在nt/2000/xp下把io打開,讓vb/vc等的程式語言可以用inport(),outport()這樣的函式
>

其實這類的應用都是會寫一個kernel mode driver (.sys) 然後配
一個dll將他包裝起來. 

對你所需的大概就是把2k ddk裡那個portio的範例搞懂, 
然後再看懂AP跟driver溝通的方法, 以及如何由ap dynamic 
load driver, open driver, device io control等等東西. 還有關
於dll的相關知識, 這樣好將關於AP跟Driver的介面包成dll以方
便一般user使用. 應該是不難才是.

我在猜想你們的產品應該是base在plx 905x上開發出來的,
似乎你們只用到他的一點點功效, 沒有全部發揮. 而且感覺
應該只是為延續原先ISA的產品所做出來的過度產品, 我是
覺得空間還是很大. 只要好好發揮plx chip的功能, 搭配適當
的軟體, 在不用增加太多成本下是可以增強很多功能的.
作者 : kingofheart(紅心王)
[ 貼文 4 | 人氣 1946 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/9/11 下午 11:04:24
恩恩~~~!!

先進們真的很厲害,連我們的卡是Isa去改的都知道

我會多加努力的~~

謝謝各位先進的不吝指教,待我有一些心得的時候,再來跟各位先進們分享~~

再一次感謝~~!!
作者 : abgefg(Doggie)
[ 貼文 14 | 人氣 1586 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/6/10 下午 05:56:14
請教各位大大:
PCMCIA(PC CARD)/ CARD BUS
有沒有類似 PCI 的 "組態暫存器啊",
不然 PCI 是如何進行 PNP 的呢?
是不是有個叫做 Card Information Structure(CIS) 的東東,
跟它有關嗎?
謝謝囉
作者 : skyline_no1(skyline)
[ 貼文 11 | 人氣 1215 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/7/14 上午 11:40:49

各位大大~~
不好意思...
小弟想插花問一下,我的情況則剛好相反,小弟工作上要用一張PCI介面的8255卡,
沒錯,就是大家常用的那間公司的那張...
主要是要用BCB去控制,剛好那張卡也有提供API,小弟本人也會BCB,
所以程式上是沒啥問題,主要現在想熟悉基本指令,基本上測過輸出發現三個PORT的
腳位電壓都有上升,所以沒什麼問題....

但問題來了,因為本人的電學很差,但想測INPUT,所以想請教,如果小弟設置CLOSE LOOP,
是否就可以用來測試輸入是否正常?我的想法是這樣,利用PORT A的腳位接到PORT B的腳位
,然後用程式控制PORT A輸出,PORT B讀值,不曉得這樣可不可以?
如果不行?是否有什麼方法比較方便....謝謝解答,感激
作者 : morrischang(大俠)
[ 貼文 58 | 人氣 3236 | 評價 180 | 評價/貼文 3.1 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/7/18 下午 05:55:29
個人經驗,不一定對提供你參考
一.為什麼要寫DRIVER,什麼是DRIVER??以實例來說,假設我寫了一支DRIVER給我的卡,那我的控制方式會有不同嗎??DRIVER會做些什麼事情??我要開發的卡片類型應該會是像DIGITLE I/O之類的實習用卡片,是有需要讓使用者實地去操作的,所以要提供使用者利用的空間,而並不像一般的音效或是網路卡是跟OS連接的,這樣我有需要寫DRIVER嗎??或是只要是PNP就要寫DRIVER

二.如果需要寫DRIVER,那麼我應該怎麼樣循序漸進,由簡至繁的學習??舉例來說,學習空手道要先訓練強健的肉體和精神,在學習基本動作,進階動作,再來練習對打,最後才能出場比賽. 那麼我應該以怎麼樣的步驟來學習呢??

Osr Online 有 DMA 的 study kit, 如果公司有 LA 讓你用,學起來效果應該會更好, 例如 storage miniport driver 的 command 是用 PIO mode 傳, data 是用 DMA 傳, 你先把 PIO mode 的傳輸模式搞懂(可以傳 command 了),再把 DMA mode 弄清楚,當然先得把 spec K 明白, Driver 的基本寫法搞清楚.當然一開始就弄這些也許複雜了一些,沒關係,如 Maxmax 所說, 可以先從 DDK 的 PORT IO 那支開始,每個主機的都可以用到那支(不過每家 IO CHIP 的開法不一樣, ITE, SMSCWinBond)....至少要 show 出自己"獨立"解決問題的能力,所謂獨立解決,就是公司沒有其他 Senior Enginner 會再幫你看這個問題了,公司內也只有你最了解這個問題,新技術都要自己開發,沒有人有義務要教你, 只要你問對問題,可以得到回應, Microsoft 的 device driver 及 osr online 的 news group 都非常友善

三.我會需要一個WIN下的程式語言,這是無庸置疑的,那麼我最近有在自修BCB,不過還不深入,我有更好的選擇嗎??或是我只要鑽研BCB就可以了??因為我以前在學校的時候對於C語言比較有興趣,也學的比較好,所以我想從C下手我會進步的比較快

C弄懂就好

四.如果沒有硬體,是不是就沒有辦法學習寫DRIVER,或是我應該先去學習怎麼樣把硬體做起來,還是有公用的PCI板子可以用來練習寫DRIVER??因為我必須先搞懂哪一個先做哪一個後做,才能比較有效率,有系統的學習

跟2一樣,一起學吧,就算你去自強基金會或其他坊間的地方學,他們也不會從 IC 設計開始,一步一步帶你開發,從做中學最快, 只有理論,沒有實務 Walter Oney 那本你也會 K 得很心虛,還是把每個 sub routine 都加 debug message, 然後搞清楚 driver 流程,會比較有感覺,大部份的 IC design house 不那麼在意 driver programmer (大概 Realtek 除外吧), 當然有些 IC design House 的 某些 chip 的 function 是純靠 driver, 如 Promise 的 raid driver (不過這間今年不賺錢,不要去),或智原 USB IP 的某些 function 要靠 driver tune, H264部份 Decode function也靠 driver. Anyway, Driver 有很多種, 一個蘿葡一個坑,找到股票發得多又願意培訓的,跳進去就對了
 板主 : 徵求中
 > 驅動程式 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 驅動程式 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
驅動程式
1 新兵衛 1240 
2 eBoy 980 
3 牧童哥 780 
4 北極熊 580 
5 天行者 580 
6 燒酒仙 440 
7 weber 380 
8 KEN 350 
9 jonay 180 
10 掌握文武半邊天 180 
驅動程式
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.1098633