मैं हाल ही में एक बुरा बग मैं एक Atmel AT91SAM9G20 SBC चल साथ पर काम कर रहा है का कारण पता चल यू-बूट , एक खुला स्रोत बूटलोडर। समस्या का मूल यह था कि U- बूट ने हार्डवेयर को अलग-अलग तरीके से कॉन्फ़िगर करने की अपेक्षा की थी जो मैंने इसे बनाया था, इसलिए कुछ डिवाइस रजिस्टर गलत थे।
अब जब मैंने समस्या का पता लगा लिया है, मुझे रजिस्टरों को सही ढंग से कॉन्फ़िगर करने के लिए यू-बूट को ट्वीक करने की आवश्यकता है। मैं कार्यक्रम के अंत में कोड की कुछ पंक्तियों को जोड़कर नेत्रहीन यह कर सकता हूं, लेकिन यह गड़बड़ है।
यह मुझे मेरे सवाल पर लाता है: मैं यह कैसे पता लगा सकता हूं कि मुख्य () और सभी फाइलों पर सभी संभावित कोड पथों को पढ़ने की तुलना में यू-बूट कैसे अधिक कुशलता से काम करता है? मैंने फाइलों में इधर-उधर भागने की कोशिश की है और संबंधित पहचानकर्ताओं के पास कोड को देखा है। यह अप्रभावी साबित हुआ है; ऐसा लगता है कि अधिकांश कोड सबसिस्टम के लिए ड्राइवर हैं जिनकी मुझे परवाह नहीं है। मैं वास्तव में समझता हूं कि बूटलोडर अब तक कितना अच्छा काम करता है, लेकिन मुझे उम्मीद है कि मेरे भोले दृष्टिकोण की तुलना में एक बेहतर तरीका मौजूद है।