একটি পদ্ধতির প্রোগ্রামের সমাবেশ তালিকা তাকান হয়।
প্রোগ্রামটি সংকলনের পরে (যাচাই বা ডাউনলোড বোতামের মাধ্যমে) ডিরেক্টরিটি সন্ধান করুন যেখানে প্রোগ্রামের জন্য .cpp, .hex, এবং .32 ফাইল সঞ্চিত হয়েছে। (যদি আপনার সেগুলি খুঁজে পেতে সমস্যা হয় তবে সংক্ষিপ্তভাবে আরডুইনো আইডিইতে ভার্বোজ কম্পাইল অপশনগুলি চালু করুন এবং আউটপুটে ডিরেক্টরিগুলির ডিরেক্টরিগুলি দেখুন))
সেই ডিরেক্টরিতে, avr-objdump -S
fn.cpp.elf চালান > listing.txt
যেখানে fn.cpp.elf হ'ল .ino
বন্ধ করা এবং .cpp.elf
শেষে যুক্ত হওয়া আপনার স্কেচের নাম । উদাহরণস্বরূপ, স্কেচ সহ serialecho.ino
:
avr-objdump -S serialecho.cpp.elf> list.txt
listing.txt
ফাইলটি দেখুন এবং প্রতিটি কার্যের সূচনা ঠিকানা হেক্স গণিত ব্যবহার করে তার শেষ ঠিকানা থেকে বিয়োগ করুন। উদাহরণস্বরূপ, setup
কোড সহ
অকার্যকর সেটআপ () {সিরিয়াল.বেগিন (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
প্রয়োজন হতে পারে এবং এর পথটি নির্দিষ্ট করার প্রয়োজন হতে পারে। দেখুন, উদাহরণস্বরূপ, এসেমেলার ফলাফল, কোথায়? ফোরাম.অর্ডুইনো সি সি তে থ্রেড।