एक दृष्टिकोण कार्यक्रम की विधानसभा सूची को देखना है।
कार्यक्रम को संकलित करने के बाद (सत्यापन या डाउनलोड बटन के माध्यम से) उस निर्देशिका का पता लगाएं, जहां .cpp, .hex, और .elf के लिए प्रोग्राम को संग्रहीत किया गया है। (यदि आपको उन्हें ढूंढने में परेशानी हो, तो Arduino IDE में संक्षिप्त रूप से वर्बोज़ संकलन विकल्प चालू करें और आउटपुट में निर्देशिका नामों को देखें।)
उस डायरेक्टरी में, avr-objdump -S
fn.cpp.elf चलाएं > listing.txt
जहाँ fn.cpp.elf आपके स्केच का नाम .ino
लिया गया है और .cpp.elf
अंत में जोड़ा गया है। उदाहरण के लिए, स्केच के साथ serialecho.ino
:
avr-objdump -S serialecho.cpp.elf> लिस्टिंग.txt
listing.txt
फ़ाइल देखें , और हेक्स अंकगणितीय का उपयोग करके प्रत्येक फ़ंक्शन के शुरुआती पते को उसके अंतिम पते से घटाएं। उदाहरण के लिए, setup
कोड के साथ
शून्य सेटअप () {Serial.begin (9600); }
लिस्टिंग में हम देखेंगे
00000144 <setup>:
...(6 lines snipped)...
144: 26 e0 ldi r18, 0x06 ; 6
146: 40 e8 ldi r20, 0x80 ; 128
148: 55 e2 ldi r21, 0x25 ; 37
14a: 60 e0 ldi r22, 0x00 ; 0
14c: 70 e0 ldi r23, 0x00 ; 0
14e: 80 e1 ldi r24, 0x10 ; 16
150: 92 e0 ldi r25, 0x02 ; 2
152: db c1 rjmp .+950 ; 0x50a <_ZN14HardwareSerial5beginEmh>
00000154 <loop>:
गणना 0x154–0x144 = 0x10 का यह भाग दिखाता है कि यह setup
16 बाइट्स लंबा है।
ये उदाहरण एक लिनक्स सिस्टम पर उत्पन्न हुए थे। मुझे लगता है कि दृष्टिकोण MSWindows सिस्टम पर समान है, इसके अलावा आपको avr-objdump.exe
इसके बजाय कहने की avr-objdump
आवश्यकता हो सकती है, और इसके पथ को निर्दिष्ट करने की आवश्यकता हो सकती है। देखें, उदाहरण के लिए, Assemler परिणाम, कहाँ? forum.arduino.cc पर धागा।