2012-11-01 40 views
5

पढ़ने उत्पादन। जब मैं यूएसबी धारावाहिक अनप्लग करता हूं तो यह unfreezes।पढ़ने उत्पादन ठंड (एंबेडेड सामान) से <code>cat /dev/ttyACM0</code> परिणाम बीगल बोर्ड ठंड में

तो अनिवार्य रूप से मेरी सेटअप एक बीगल अपने लैपटॉप के लिए एक यूएसबी, जो COM6 के माध्यम से इसे के साथ संवाद स्थापित कर रहा है के माध्यम से जुड़े बोर्ड है। हमने इसे वेब साझाकरण के माध्यम से वेब से भी जोड़ा है। मेरे पास एक Arduino Teensy ++ नियंत्रक से भी एक और यूएसबी जुड़ा हुआ है। यह नियंत्रक यूएसबी सीरियल के माध्यम से बीगल बोर्ड में डेटा भेज रहा है। इस अभ्यास का बिंदु यूएसबी सीरियल से डेटा को पढ़ना है।

मैं का उपयोग पढ़ने की प्रक्रिया cat /dev/ttyACM0 है। इसका परिणाम डेटा की पहली 2 पंक्तियों के प्रिंट में होता है, फिर पूरे बीगल बोर्ड फ्रीज होते हैं। जब आप किशोरी ++ को अनप्लग करते हैं, तो यह 10-20 लाइनों की तरह प्रिंट करता है (जो भी बफर होता है) मानते हैं। यकीन नहीं है कि यह क्यों हो रहा है।

क्या कोई मदद कर सकता है? धन्यवाद

+0

यह सीटीएस की तरह कुछ अतिरिक्त नियंत्रण लाइनों उपयोग करता है? हो सकता है कि बीगलबोर्ड क्या इंतजार कर रहा है। – Evert

+0

सुनिश्चित नहीं है। मैं इसे देखने के लिए जा रहा हूँ। लेकिन एक बार जब बीगल बोर्ड लॉक हो जाता है, तो मैं यूएसबी को अनप्लग करता हूं और यह बफर पर जो कुछ भी भेजता है (अनिवार्य रूप से लॉकअप के बाद से भेजा गया सब कुछ थकाता है। मुझे कभी-कभी निम्न त्रुटि मिलती है जब मैं यूएसबी अनप्लग करता हूं: " [1757.210482] cdc_acm 1 -1: 1.1: acm_start_wb - usb_submit_urb (थोक लिखें) विफल: -19 " –

+0

यह भी जांचें कि क्या किशोर ++ सीरियल डेटा को पढ़ने के लिए मानक विंडोज आधारित एप्लिकेशन के साथ इसे जांचकर सफलतापूर्वक सीरियल डेटा भेज रहा है, उदाहरण के लिए ब्रा टर्मिनल या डरावना। इसके अलावा, मुझे लगता है कि आपके एम्बेडेड लिनक्स यूएसबी सीरियल डिवाइस को संभालने के तरीके से कुछ करने के लिए कुछ मिला है। अभी तक क्या पता नहीं है। संपादित करें: मुझे लगता है कि सीरियल पोर्ट के रास्ते में कुछ है पढ़ा जा रहा है। मुझे लगता है कि यह किशोरी ++ से न्यूलाइन वर्णों (और शायद न्यूनतम बाइट्स पढ़ने के लिए) की प्रतीक्षा कर रहा है। सीरियल पोर्ट को कच्ची मोड में स्टाटी के साथ सेट करने का प्रयास करें: 'stty raw -F/dev/ttyACM0' – Evert

उत्तर

2

चेक गति, जिस पर आप डेटा भेज रहे हैं, मैं यदि आप डेटा बहुत जल्दी भेज Arduino के लिए आप arduino बफर भर सकते हैं पाया है और यह बंद करने लगता है। आउटपुट डेटा में देरी जोड़ने का प्रयास करें, या सुनिश्चित करें कि arduino पर्याप्त तेजी से बफर खाली कर रहा है।

+0

धन्यवाद। मै उसे करने की एक कोशिश तो करूंगा। –