मैं एक माइक्रोकंट्रोलर के सिमुलेशन को लागू करने की कोशिश कर रहा हूं। यह अनुकरण एक घड़ी चक्र को एक विशिष्ट माइक्रोकंट्रोलर के सटीक प्रतिनिधित्व करने के लिए नहीं है बल्कि कोड की सामान्य शुद्धता की जांच करें।मैं एक और थ्रेड कैसे निलंबित करूं (वर्तमान में नहीं)?
मैंने सामान्य कोड निष्पादित करने वाला एक "मुख्य धागा" और आईएसआर कोड निष्पादित करने वाला दूसरा थ्रेड होने का विचार किया। जब भी एक आईएसआर चलाने की जरूरत है, आईएसआर धागा "मुख्य धागा" निलंबित करता है।
बेशक, मैं इंटरप्ट को अवरुद्ध करने के लिए एक सुविधा चाहता हूं। मैंने इसे एक म्यूटेक्स के साथ हल करने के बारे में सोचा था कि जब भी यह आईएसआर कोड निष्पादित करता है तो आईएसआर थ्रेड रखता है जबकि मुख्य धागा इसे "इंटरप्ट अवरुद्ध कर देता है" तक रखता है।
एक पीओआर (रीसेट पर पावर) को न केवल निलंबित करके मुख्य थ्रेड (और पीओआर फ़ंक्शन निष्पादित करने वाला नया शुरू करने) को लागू किया जा सकता है।
विंडोज एपीआई आवश्यक कार्यों को प्रदान करता है। लेकिन उपरोक्त पॉज़िक्स धागे (लिनक्स पर) के साथ ऐसा करना असंभव प्रतीत होता है।
मैं वास्तविक हार्डवेयर स्वतंत्र माइक्रोकंट्रोलर कोड को बदलना नहीं चाहता हूं। इसलिए लंबित इंटरप्ट्स की जांच के लिए कुछ भी डालना एक विकल्प नहीं है।
गैर अच्छी तरह से व्यवहार किए गए बिंदुओं पर इंटरप्ट प्राप्त करना वांछनीय है, क्योंकि यह माइक्रोकंट्रोलर पर भी होता है (जब तक आप इंटरप्ट को अवरुद्ध नहीं करते)।
क्या लिनक्स पर एक और धागा निलंबित करने का कोई तरीका है? (डिबगर्स को किसी भी तरह उस विकल्प का उपयोग करना चाहिए, मुझे लगता है।)
कृपया, मुझे मत बताओ यह एक बुरा विचार है। मुझे पता है कि ज्यादातर परिस्थितियों में यह सच है। लेकिन मुख्य कोड मानक libs या लॉक/mutexes/semaphores का उपयोग नहीं करता है।
ओह प्रिय। अन्य धागे को मारना एक बहुत ही खतरनाक व्यवसाय है, जो आपके कार्यक्रम में किसी भी ताले या अन्य संसाधनों को स्थायी रूप से खराब कर सकता है। मनमानी बिंदुओं पर एक और धागा निलंबित करना उतना बुरा नहीं है, लेकिन फिर भी ... – ephemient
मुख्य थ्रेड कोड किसी भी ताले का उपयोग नहीं करेगा (एक वर्णित है जिसे इसे निलंबित या मारने से रोकता है) या गतिशील संसाधन आवंटित करता है। यह मानक पुस्तकालयों का उपयोग नहीं करता है। –
यह ग्लिब मेलिंग सूची [यहां] (http: //sources.redhat पर भी पूछा गया था।कॉम/एमएल/libc-help/2010-05/msg00014.html)। हालांकि, बिना किसी परिणाम के। – Albert