一直沒(méi)有搞清楚ch365芯片是否需要驅(qū)動(dòng)程序才能工作 現(xiàn)在開(kāi)發(fā)了一塊pci卡,是在linux環(huán)境下的,其他芯片是需要寫(xiě)驅(qū)動(dòng)去控制它的工作的, 但是ch365我需要自己編寫(xiě)相應(yīng)的驅(qū)動(dòng)操作ch365中的寄存器才能正常工作嘛? 謝謝
CH365芯片本身無(wú)需驅(qū)動(dòng)程序就可工作,升級(jí)ISA板卡可以不需要驅(qū)動(dòng)程序! 如果你要想用CH365去控制外部電路,就必須寫(xiě)驅(qū)動(dòng)去控制它的工作,如:讀I/O基址,讀MEM基址,讀配置空間,寫(xiě)配置空間等等!
謝謝你的回答 我現(xiàn)在有個(gè)問(wèn)題就是在運(yùn)行我自己開(kāi)發(fā)的驅(qū)動(dòng)程序總是死機(jī),里面有一句相當(dāng)于申請(qǐng)中斷的語(yǔ)句“request_irq……”,如果將這句話去掉,就可不死機(jī),否則就死機(jī)。 而且ch365的int_req引腳好像一直是低有效,也就是說(shuō)它在一直給主機(jī)發(fā)中斷,那我要怎么解決??? 怎么讓int_req的引腳在發(fā)了一個(gè)中斷之后就變成無(wú)效呢。
把那段代碼貼出來(lái)看看呢!
標(biāo)準(zhǔn)的中斷過(guò)程如下: 1--外部電路INT_REQ輸出低電平有效的中斷請(qǐng)求信號(hào),導(dǎo)致CH365的中斷激活位變?yōu)?。如果外部電路提供的是低電平脈沖,則脈沖寬度必須大于TINT。 2--CH365通過(guò)PCI總線的INTA信號(hào)向計(jì)算機(jī)申請(qǐng)中斷。 3--計(jì)算機(jī)進(jìn)入CH365的中斷服務(wù)程序。 4--如果外部電路的中斷請(qǐng)求不是脈沖信號(hào),則中斷服務(wù)程序應(yīng)該通知外部電路撤消中斷請(qǐng)求,也就是將INT_REQ恢復(fù)為高電平。 5--中斷服務(wù)程序?qū)H365的芯片控制寄存器的中斷激活狀態(tài)位清除為0,CH365的PCI_INTA引腳恢復(fù)為高阻狀態(tài),撤消了對(duì)計(jì)算機(jī)的中斷請(qǐng)求。 6--中斷服務(wù)程序進(jìn)行必要的餓中斷處理,該步驟也可以進(jìn)入中斷后先執(zhí)行。 7--中斷處理完畢,計(jì)算機(jī)退出Ch365的中斷服務(wù)程序。
如果是您的軟件導(dǎo)致的不能退出中斷的話,查狀態(tài)激活位是否撤銷(xiāo)了。