2012-01-12 6 views
6

पर समांतर बंदरगाह का मेमोरी पता ढूँढना मैं एक पीसीआई एक्सप्रेस कार्ड के माध्यम से अपने लैपटॉप से ​​जुड़े समांतर बंदरगाह के बेस (मेमोरी) पते को खोजने का प्रयास कर रहा हूं। चल रहा है lspci -v दिखाता है कि मेरा कंप्यूटर समांतर बंदरगाह को पहचानता है और I/O बंदरगाहों (1000 और 1008) देता है लेकिन स्मृति पता नहीं (अन्य प्रविष्टियों में पोर्ट और मेमोरी दोनों स्थान हैं ... यह कार्ड स्मृति पता के बिना एकमात्र प्रविष्टि है)। साथ ही, जब मैं /proc/ioports में देखता हूं तो मुझे lspci में दिए गए एक ही बंदरगाह मिलते हैं। हालांकि, जब मैं प्रोग्राम में उन पते में से किसी एक का उपयोग करने का प्रयास करता हूं, तो मैं चल रहा हूं (स्टेपर मोटर्स को नियंत्रित करने के लिए ईएमसी 2), इसे उस पते पर समांतर बंदरगाह नहीं मिलता है।लिनक्स

विंडोज डिवाइस मैनेजर -> पोर्ट्स -> संसाधनों के लिए एनालॉग होने पर वास्तव में बहुत अच्छा क्या होगा। उबंटू में ऐसा करने का कोई तरीका है? पीसीआईई उपकरणों के लिए मानक स्मृति स्थान है?

संपादित करें: कि स्मृति स्थान से पता चलता 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 

से और संदर्भ के लिए, एक और प्रविष्टि उत्पादन:

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

क्या आप अपने समानांतर पोर्ट कार्ड पर 'lspci -w' के आउटपुट को संलग्न कर सकते हैं? मैं आपको बता सकता हूं कि पीसीआईई उपकरणों के लिए कोई मानक मेमोरी लोकेशन नहीं है, और समानांतर बंदरगाहों में अक्सर स्मृति पता क्षेत्र नहीं होते हैं। –

+0

@adrian lspci शिकायत कर रहा है कि -एक वैध ध्वज नहीं है। मैंने पढ़ा है कि 0x378, 0x278, और 0x3BC समानांतर बंदरगाह के लिए तीन मानक स्थान हैं, लेकिन मेरा उन किसी भी स्थान पर दिखाई नहीं देता है। क्या I/O पोर्ट नंबर से मेमोरी पता निर्धारित करने का कोई तरीका है? – Sam

+0

ईएमसी 2 दस्तावेज को प्राप्त करना http://wiki.linuxcnc.org/emcinfo.pl? समस्या निवारण आपको लिनक्स कर्नेल मॉड्यूल parport_pc को अनलोड करना है क्योंकि शायद यह समांतर बंदरगाह पते पर नियंत्रण लेता है और आपका सॉफ़्टवेयर उन तक पहुंच नहीं सकता है। परपोर्ट से जुड़े सभी मॉड्यूल को हटाने के लिए 'lsmod' और' rmmod' का उपयोग करें (जैसे parport_pc, parport, ppdev) और पुनः प्रयास करें। – Zuljin

उत्तर

3

आईपॉर्ट्स के आउटपुट को फ़िल्टर करने के लिए cat /proc/ioports | grep parport आज़माएं।

2

त्वरित जवाब: वहाँ है कोई स्मृति स्थान के लिए समांतर बंदरगाह। समांतर बंदरगाहों में केवल आईओ बंदरगाहों को आवंटित किया जाता है। इस तरह समांतर बंदरगाह इंटरफेस ने दशकों तक काम किया है, और किसी को भी असंगत मेमोरी मैप किए गए इंटरफ़ेस को बनाने की आवश्यकता महसूस नहीं हुई है जिसे विशेष ड्राइवरों की आवश्यकता होगी।

अब मुझे पूछना चाहिए, पोर्ट के मेमोरी लोकेशन को खोजने का इरादा क्यों है? आपकी इसके साथ क्या करने की इच्छा है?

+0

हम अपने कंप्यूटर के उपयोग के लिए ईएमसी 2 (कंप्यूटर नियंत्रित मशीनिंग उपकरण के लिए सॉफ्टवेयर) को कॉन्फ़िगर करने की कोशिश कर रहे थे, लेकिन यह समांतर बंदरगाह के माध्यम से जुड़े उपकरणों को पहचान नहीं रहा था। लेकिन फिर यह काम करना शुरू कर दिया। – Sam

+0

लेकिन अगर आपको पूछना चाहिए, तो क्या आप अब जवाब दे सकते हैं? – clearlight