2012-01-12 26 views
6

Dizüstü bilgisayarıma bir PCI Express kartıyla bağladığım paralel bağlantı noktasının temel (bellek) adresini bulmaya çalışıyorum. lspci -v'un çalıştırılması, bilgisayarımın paralel bağlantı noktasını algıladığını ve I/O bağlantı noktalarını (1000 ve 1008) verdiğini ancak bellek adresini (diğer girişlerin hem bağlantı noktalarına hem de bellek konumlarına sahip olduğunu gösterir… bu kart bir bellek adresi olmayan tek giriştir) gösterir. Ayrıca, /proc/ioports'a baktığımda lspci'de verilen aynı portları elde ediyorum. Ancak, çalıştığım programdaki (adresleri adım motorlarını denetlemek için EMC2) bu adreslerden birini kullanmaya çalıştığımda, bu adreste paralel bir bağlantı noktası bulamıyor.Linux'ta Paralel Bağlantı Noktasının Bellek Adresini Bulma

Gerçekten harika olan şey, Windows Aygıt Yöneticisi -> Bağlantı Noktaları -> Kaynaklar için bir analog olsaydı. Ubuntu'da bunu yapmanın bir yolu var mı? PCIe cihazları için standart bir hafıza yeri var mı?

Düzenleme: hafıza konumunu gösterir başka bir girişe, lspci -v

04:00.0 Parallel controller: Oxford Semiconductor Ltd Device c110 (prog-if 02) 
Subsystem: Oxford Semiconductor Ltd Device c110 
Flags: bus master, fast devsel, latency 0, IRQ 18 
I/O ports at 1000 [size=8] 
I/O ports at 1008 [size=4] 
Capabilities: [40] Power Management version 3 
Capabilities: [50] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable- 
Capabilities: [70] Express Legacy Endpoint, MSI 00 
Capabilities: [100] Device Serial Number 10-01-00-11-11-e0-30-00 
Capabilities: [110] Power Budgeting <?> 
Kernel driver in use: parport_pc 
Kernel modules: parport_pc 

dan Ve başvuru için çıkış :

0c:03.0 FireWire (IEEE 1394): Agere Systems FW322/323 (rev 61) (prog-if 10) 
Subsystem: Agere Systems FW322/323 
Flags: bus master, fast Back2Back, medium devsel, latency 248, IRQ 19 
Memory at 8c000000 (32-bit, non-prefetchable) [size=4K] 
Capabilities: [44] Power Management version 2 
Kernel driver in use: ohci1394 
Kernel modules: firewire-ohci, ohci1394 
+0

Paralel bağlantı kartınıza 'lspci -w' çıktısını ekleyebilir misiniz? PCIe aygıtları için standart bellek konumu olmadığını ve paralel bağlantı noktalarının genellikle bellek adres bölgelerine sahip olmadığını söyleyebilirim. –

+0

@adrian lspci, -w'nin geçerli bir bayrak olmadığından şikayet ediyor. 0x378, 0x278 ve 0x3BC'nin paralel bir bağlantı noktası için üç standart konum olduğunu okudum, ancak benimki bu noktalardan herhangi birinde görünmüyor. Bir I/O port numarasından hafıza adresini belirlemenin bir yolu var mı? – Sam

+0

EMC2 belgelerine katılma http://wiki.linuxcnc.org/emcinfo.pl?TroubleSonraki linux kernel modülünü kaldırmanız gerektiğine dikkat edin parport_pc çünkü büyük olasılıkla paralel port adresleri üzerinde kontrol sahibi olur ve yazılımınız bunlara erişemez. Parport (parport_pc, parport, ppdev gibi) ile bağlantılı tüm modülleri kaldırmak için 'lsmod' ve 'rmmod' komutlarını kullanın ve tekrar deneyin. – Zuljin

cevap

3

ioportların çıktısını filtrelemek için cat /proc/ioports | grep parport'u deneyin.

2

Hızlı cevap: hafıza yeri orada olduğunu paralel bağlantı noktası. Paralel portlar sadece kendilerine tahsis edilen IO portlarına sahiptir. Bu, paralel port arayüzlerinin on yıllardır çalıştığı yoldur ve hiç kimse, özel sürücülere ihtiyaç duyabilecek, uyumlu bir bellek eşlemeli arayüz oluşturma gereğini hissetmemiştir.

Şimdi sormalıyım, neden limanın hafıza yerini bulmaya niyetlisiniz? Bununla ne yapmak istiyorsun?

+0

Bilgisayarımla kullanmak için EMC2'yi (bilgisayar kontrollü işleme ekipmanı için yazılım) yapılandırmaya çalışıyorduk, ancak paralel bağlantı noktası üzerinden bağlanan ekipmanı tanımadı. Ama sonra çalışmaya başladı. – Sam

+0

Ama sorman gerek, şimdi cevap verebilir misin? – clearlight