2013-07-20 8 views
11

मैं आर्किटेक्चर के लिए नया हूं, मैं एम्बेडेड सॉफ़्टवेयर पर काम करता हूं और .axf फ़ाइल के बारे में जानने की कोशिश कर रहा था जो कि मेरे प्रोजेक्ट बाइनरी के डीबग फ़ोल्डर में मौजूद है।.axf फ़ाइलें क्या हैं?

पता चला कि यह एक प्रक्रिया निष्पादन योग्य प्रारूप फ़ाइल है जो लिंकर द्वारा उत्पन्न होती है जबकि निर्माण प्रक्रिया और इसका उपयोग दुर्घटनाओं को डीबग करने में किया जाता है। तो यह स्पष्ट है कि इसमें कुछ डीबगिंग जानकारी शामिल है लेकिन यह स्पष्ट नहीं है कि किस तरह की जानकारी है? और डीबग फ़ोल्डर में एक .map फ़ाइल भी मौजूद है, तो इन दो फ़ाइलों के बीच क्या अंतर हो सकता है?

+1

मैंने इसे आपके लिए गुगल किया है। , उम्मीद है कि यह थोड़ा सा मदद करता है। – lulyon

+1

धन्यवाद, मैंने पहले से ही उस लिंक को पढ़ लिया है। लेकिन मैं जानना चाहता हूं कि इसमें किस प्रकार की जानकारी है। .axf और .map फ़ाइलों के बीच क्या अंतर है? – Pravi

+6

axf बाइनरी फ़ाइल है, इसमें मशीन कोड (और अन्य चीजें) हैं, जैसा कि ऊपर दिए गए Google उत्तर में यह एक एल्फ या एआईफ़ के आसपास एक रैपर है। आम तौर पर मानचित्र फ़ाइलों को मानचित्र, पते की एक सूची होती है, जहां लिंकिंग प्रक्रिया के बाद चीजें समाप्त होती हैं। –

उत्तर

18

एएक्सएफ फ़ाइल ऑब्जेक्ट फ़ाइल प्रारूप एआरएम के रीयल व्यू कंपाइलर (किल के एआरएम-एमडीके का हिस्सा भी) द्वारा उत्पन्न किया गया है और इसमें ऑब्जेक्ट कोड और डीबग जानकारी दोनों शामिल हैं। डीबगर में, जबकि ऑब्जेक्ट कोड केवल लक्ष्य पर लोड होता है, कोड और डीबग जानकारी दोनों को विकास होस्ट की स्मृति में लोड किया जाता है।

जब JTAG, SWD या अन्य कनेक्शन के माध्यम से डिबगिंग (किसी भी प्रकार की - केवल क्रैश नहीं) को डीबग जानकारी के साथ कोड को मूल स्रोत कोड के साथ जोड़ने वाले डीबग जानकारी के साथ होस्ट पर उपलब्ध होना आवश्यक है। डीबग कनेक्शन पर, रजिस्टर मानों जैसे केवल न्यूनतम डेटा स्थानांतरित किए जाते हैं, इसलिए उदाहरण के लिए डीबगर प्रोग्राम काउंटर वैल्यू लेगा और एएक्सएफ में डीबग डेटा का उपयोग कर मेजबान पर उपलब्ध असेंबलर और सोर्स कोड प्रदर्शित करने में सक्षम होगा।

एमएपी फ़ाइल एक ही जानकारी के कुछ शामिल है, लेकिन यह मानव पठनीयता और खपत के बजाय मशीन उपयोग की तुलना में करने के लिए है, और कोड संघ स्रोत स्तरीय डीबगर द्वारा आवश्यक डेटा आपत्ति उठाने स्रोत कोड लाइन शामिल नहीं है ।

अधिकतर आप इसे अनदेखा कर सकते हैं - संकलक इसे उत्पन्न करता है, डीबगर इसे लोड करता है। आपका टूलचेन शायद एक .hex फ़ाइल भी उत्पन्न करता है जो आप उत्पादन प्रोग्रामिंग के लिए उपयोग करेंगे और इसमें केवल मशीन कोड और निरंतर डेटा और प्रारंभकर्ता शामिल हैं।

+8

(.axf फ़ाइलें ईएलएफ प्रारूप हैं, जैसे कि अधिक सामान्य रूप से नामित फाइलें, और डीडब्ल्यूएआरएफ डीबग जानकारी है) – James

+0

@ जेम्स: हां, प्रश्न के बारे में टिप्पणी में डेलेल द्वारा इसका उल्लेख किया गया था। – Clifford

संबंधित मुद्दे