- 論壇徽章:
- 0
|
大家好,我公司有一個ARM+FPGA的網(wǎng)管板,現(xiàn)在讓我移植到PowerPC+FPGA的板子上。原來是AT91RM9200,現(xiàn)在用的是MPC8315E的處理
器。我需要做的是,修改驅(qū)動,并移植驅(qū)動和應用程序。
最近在調(diào)試FPGA擴展串口的時候,中斷老是搞不定。
驅(qū)動的原理是由FPGA擴展12個uart口,分別用到了IRQ0、IRQ3、IRQ4三個外部中斷。PowerPC將數(shù)據(jù)寫到緩沖區(qū)里,然后FPGA給出中
斷將數(shù)據(jù)通過擴展的串口將數(shù)據(jù)發(fā)送出去。接收數(shù)據(jù)就是反方向。 FPGA里默認的是低電平,通過高電平觸發(fā)中斷。
問題是PowerPC手冊里,可以設(shè)置SEPCR寄存器實現(xiàn)高電平有效。但是我加載驅(qū)動,加載測試程序時,
(1)IRQ總是低電平,而且PowerPC已經(jīng)低電平觸發(fā)了中斷,進入了中斷死循環(huán)。
(2)甚至當向FPGA擴展的中斷使能IER寄存器寫數(shù)據(jù)時,直接導致死機。
(3)當我在中斷處理完了,在returne IRQ_HANDLED之前,寫1清除中斷掛起位時,出現(xiàn)kernel bug verbose debug info)的問題。
搞了好幾天了始終搞不定。請教大家這是怎么了?
我現(xiàn)在的疑問:1, PowerPC在初始化時,設(shè)置了中斷屏蔽寄存器、清除中斷掛起寄存器、極性寄存器(active high)、觸發(fā)方式寄
存器(邊緣觸發(fā)或電平觸發(fā))。這些夠了么?
2, PowerPC的 IRQ上面有劃線,手冊上說是支持高電平觸發(fā),難道不支持高電平觸發(fā)么?
3,如果不支持高電平觸發(fā),將FPGA里加一個反向器,實現(xiàn)低電平觸發(fā)可以么?
測試字符疊加的時候,用out_8()、in_8()發(fā)送接受函數(shù),已經(jīng)可以實現(xiàn)了。問題應該集中在PowerPC中斷上。
大家有什么想法見解,請指教啊。另外,也可以介紹學習PowerPC的好資料,好網(wǎng)站啊。先謝謝各位了。 |
|