আমি একটি স্কেচ তৈরি করেছি, তবে তারপরে আমি এটি হারিয়ে ফেলেছি। যাইহোক, এটি হারানোর আগে আমি এটি আরডিনোতে আপলোড করেছি। আমি আবার ফিরে পেতে পারে কি কোন উপায় আছে?
আমি একটি স্কেচ তৈরি করেছি, তবে তারপরে আমি এটি হারিয়ে ফেলেছি। যাইহোক, এটি হারানোর আগে আমি এটি আরডিনোতে আপলোড করেছি। আমি আবার ফিরে পেতে পারে কি কোন উপায় আছে?
উত্তর:
এটি যতক্ষণ সম্ভব সুরক্ষা বিট সেট না করা সম্ভব হবে। এই প্রশ্নটি EE তে কিছুক্ষণ আগে জিজ্ঞাসা করা হয়েছিল।
একটি আরডুইনো বোর্ড থেকে কোড তোলা সম্ভব?
তবে আপনি যে আরডুইনো কোড লিখেছিলেন তা আপনি পাবেন না। কোডটি সমাবেশে সংকলিত হয়েছে এবং আপনাকে সেটিকে নিজেই সিতে রূপান্তর করতে হবে।
এই উত্তরটি সরাসরি প্রশ্নের উত্তর দেয় না, তবে এখনও একই ফলাফলের ফলাফল হবে।
আরডুইনো আইডিই মূল স্কেচ পাশাপাশি এইচএক্স এবং মধ্যবর্তী ফাইলগুলি সহ বিল্ড ফাইলগুলি সঞ্চয় করতে অস্থায়ী ডিরেক্টরি ব্যবহার করে।
একটি ম্যাক এ, এটি ডিফল্টরূপে / var / ফোল্ডারে রয়েছে এবং একটি উইন্ডোজ মেশিনে তারা…… লোকাল সেটিংস \ টেম্প \ (যা উইন্ডোজের সংস্করণের উপর নির্ভর করে বেশ কয়েকটি জায়গায় থাকতে পারে)।
আমি খুঁজে পেয়েছি যে বিশেষত উইন্ডোজগুলিতে, স্কেচ বা আইডিই বন্ধ করার সময় এই বিল্ড ফাইলগুলি মুছে ফেলা হয় না, সুতরাং এটি আপনার মেশিনে আপনি যতটা ভাবেন তার চেয়ে বেশি সময় ধরে থাকতে পারে।
এছাড়াও, ডিফল্টরূপে ক্র্যাশপ্লান, ব্যাকব্লেজ এবং টাইম মেশিন এই অবস্থানগুলির ব্যাক-আপ করে, তাই এগুলি মুছে ফেলা হলেও, তারা এখনও ব্যাকআপে থাকতে পারে।
এখানে সুবিধা হ'ল আপনি ASM এর চেয়ে সি কোডটি পুনরুদ্ধার করবেন।
/tmp/
লিনাক্সে (এবং ম্যাক) ডিরেক্টরিতেও পেতে পারেন । সিএফ আরডুইনো.সি.সি
আপনি ফাইলটির হেক্স ডাম্প ডাউনলোড করতে পারেন, তবে সমস্ত সি ++ কোড এবং মন্তব্য পাওয়ার সহজ উপায় নেই। আপনি যদি সমাবেশটি বুঝতে পারেন তবে আপনি প্রোগ্রামটি পুনরায় তৈরি করতে পারেন তবে এতে কিছুটা সময় লাগবে। কিছু ডিভাইসের জন্য ডিসসেসেমব্লার রয়েছে, আমি আরডুইনো সম্পর্কে জানি না।
atmega disassembler
)।
আমি মনে করি আরডুইনো বোর্ড থেকে কোডটি সরিয়ে না নিয়ে এটি করার আরও একটি উপায় আছে। আপনি স্কেচটি তৈরি করার তারিখটি পুনরায় বিবেচনা করুন এবং এটি সি: \ ব্যবহারকারী \ ব্যবহারকারী \ অ্যাপডাটা \ স্থানীয় \ টেম্পে look (উদাহরণস্বরূপ: সি: \ ব্যবহারকারীগণ) ব্যবহারকারী \ অ্যাপডেটা \ স্থানীয় \ টেম্প \ শিরোনামহীন 4390292704786567977.tmp \ স্কেচ_জেনআআ)) আপনি যদি কোনও "মুক্ত করা স্থান প্রোগ্রাম" দ্বারা মুছে ফেলা না হয় তবে আপনি আপনার সংরক্ষণ না করা কোডটি খুঁজে পেতে পারেন। শুভকামনা!
আপনার উদ্দেশ্যটি কেবল অন্য ডিভাইসে অভিন্ন কোডটি অনুলিপি করা না থাকলে সহজ উত্তরটি হ'ল: না
অন্যান্য উত্তরে যেমন উল্লেখ করা হয়েছে, আপনি ডিভাইসে থাকা হেক্স কোডটি আবার এসেম্বলারের কোডে পরিণত করতে পারেন।
উদাহরণস্বরূপ (একবার আপনি যখন ডিভাইস থেকে কোডটি আপনার ডিস্কে ফিরে আসেন):
avr-objdump -j .sec1 -d -m avr5 yourFileHere.hex
বুটলোডার ফাইলগুলির একটিতে চালান আমি এই ফলাফলগুলি পাই (অংশে):
00007e00 <.sec1>:
7e00: 11 24 eor r1, r1
7e02: 84 b7 in r24, 0x34 ; 52
7e04: 14 be out 0x34, r1 ; 52
7e06: 81 ff sbrs r24, 1
7e08: f0 d0 rcall .+480 ; 0x7fea
7e0a: 85 e0 ldi r24, 0x05 ; 5
7e0c: 80 93 81 00 sts 0x0081, r24
7e10: 82 e0 ldi r24, 0x02 ; 2
7e12: 80 93 c0 00 sts 0x00C0, r24
7e16: 88 e1 ldi r24, 0x18 ; 24
7e18: 80 93 c1 00 sts 0x00C1, r24
7e1c: 86 e0 ldi r24, 0x06 ; 6
7e1e: 80 93 c2 00 sts 0x00C2, r24
7e22: 80 e1 ldi r24, 0x10 ; 16
7e24: 80 93 c4 00 sts 0x00C4, r24
7e28: 8e e0 ldi r24, 0x0E ; 14
7e2a: c9 d0 rcall .+402 ; 0x7fbe
7e2c: 25 9a sbi 0x04, 5 ; 4
যেমন আপনি দেখতে পাচ্ছেন, আপনার স্কেচ যা করেছে তা পুনরুত্পাদন করার জন্য বিশেষভাবে সহায়ক নয়। দুটি পরিস্থিতিতে একটি হতে পারে:
"শর্ট স্কেচ" ক্ষেত্রে আপনি স্ক্র্যাচ থেকে পুনরায় লেখার চেয়ে ভাল। এটি অবশ্যই দ্রুত হবে। "দীর্ঘ স্কেচ" ক্ষেত্রে - এটি কেবল মূল্যবান নয়। ভেরিয়েবলের কোনও নামই সংরক্ষিত নেই এবং সংকলক যেভাবে কোডটি অনুকূল করে, কোডের কাঠামোটিও নির্ধারণ করা শক্ত।