এই প্রশ্নটি নিজেকে এভিআর ডিগ্রোগ্রামিংয়ের সাথে সম্পর্কিত ।
প্রকল্পের তথ্য:
আমাদের কাছে এটিএমইজিএ product৪৪ পি ব্যবহার করে একটি ব্যাটারি চালিত পণ্য রয়েছে। অ্যাপ্লিকেশনটি স্থায়ীভাবে স্লিপ মোডে চলে এবং কেবলমাত্র একবারে সেকেন্ডে (আরটিসি) জেগে ওঠে বা যখন দুটি বাহ্যিক বাধা লাইনগুলির মধ্যে একটি ট্রিগার হয়।
ডিভাইসে একটি দুর্দান্ত সরল বুট-লোডার রয়েছে যা ইউআআআরটির মাধ্যমে যোগাযোগ করছে (আরএস 232 ইন্টারফেস আইসি ব্যবহার করে)। এটি কেবল ফার্মওয়্যারটি আপডেট করার জন্য একটি সুবিধা পদ্ধতি হিসাবে কাজ করে যাতে কোনও হার্ডওয়্যার আইএসপি প্রোগ্রামার প্রয়োজন হয় না। (বুট-লোডার চেকসাম সুরক্ষিত টেলিগ্রামগুলি আশা করে)
ডিভাইসগুলি অভ্যন্তরীণ বাদামি আউট অক্ষম করার কারণে ডিজাইন করা হয়েছিল কারণ এটি বিদ্যুতের খরচ দ্বিগুণ করে এবং দীর্ঘ ব্যাটারির আয়ু আবশ্যক (আমার ধারণা যে কোনও বাহ্যিক বাদামি আউট সনাক্তকরণ ব্যবহার করা উচিত ছিল - একটি নতুন নকশা কাজ চলছে)।
সমস্যা:
প্রতি কয়েক মাসে একটি ডিভাইস কেবল কাজ করা বন্ধ করে দেয়, সেই ডিভাইসগুলিতে কোনও ফার্মওয়্যার আপডেট করা হয়নি। তবে, আরও পরীক্ষার পরে, সেই ডিভাইসের ফ্ল্যাশ সামগ্রীগুলি দূষিত বলে মনে হচ্ছে। তদুপরি, those ডিভাইসের কিছুগুলির ব্যাটারিগুলি এখনও ভাল ছিল, তবে আমি কোনও ধরণের আন্ডার-ভোল্টেজ পরিস্থিতি অস্বীকার করতে চাই না।
এটি মূল ফ্ল্যাশ সামগ্রী (বাম) সাথে দূষিত সামগ্রীর (ডানদিকে) তুলনা করা হয়েছে:
কিছু পর্যবেক্ষণ:
- একটি দূষিত ব্লক সর্বদা কমপক্ষে একটি ফ্ল্যাশ পৃষ্ঠা (256 বাইট) নিয়ে থাকে এবং পৃষ্ঠাটি সারিবদ্ধ থাকে। অন্য কথায়: শুধুমাত্র পুরো পৃষ্ঠাগুলি প্রভাবিত হয়, একক বাইটগুলি নয়।
- দূষিত সামগ্রী বেশিরভাগ সময় 0xFF পড়ে, তবে কিছু অন্যান্য মান থাকতে পারে বা সম্পূর্ণ "এলোমেলো" হতে পারে।
- চিত্রের বাম দিকে ছোট বারটি সমস্ত প্রভাবিত অঞ্চল দেখায়। এই ডিভাইসের জন্য এটি মোট ফ্ল্যাশ সামগ্রীর প্রায় দশমাংশ।
- আমাদের একটি ডিভাইস ছিল যেখানে কেবলমাত্র একটিমাত্র পৃষ্ঠা প্রভাবিত হয়েছিল।
এটি সম্পূর্ণরূপে প্রশংসনীয় যে ফ্ল্যাশ মেমরিটি লেখার সময় একটি আন্ডার-ভোল্টেজ শর্ত ফ্ল্যাশ সামগ্রীকে দূষিত করতে পারে। তবে এর অর্থ হ'ল কিছু ফ্ল্যাশ সংবেদনশীল নির্দেশাবলী কার্যকর করতে হবে।
আন্ডার-ভোল্টেজের কারণে নিয়ন্ত্রক এলোমেলোভাবে পুনঃসূচনা করছে এবং বুট-লোডার কোডটি এই সময়ের মধ্যে পুরোপুরি অনাকাঙ্ক্ষিত আচরণ করছে। আন্ডার-ভোল্টেজ সম্পর্কিত অন্য ফোরামের কিছু লোককে উদ্ধৃত করতে:
"এটি কেবল ফ্ল্যাশ থেকে চালানো কার্যকর নয়, তবে এলোমেলো নির্দেশাবলীর সময়কালের (গ্যারান্টি নেই যে ফ্ল্যাশ থেকে কোডটি পড়তে হবে এবং সঠিকভাবে ব্যাখ্যা করা হবে) this পাশাপাশি এমসিইউর অন্যান্য অংশগুলি সুরক্ষা সহ ডিজাইনের মতো আচরণ করতে পারে না মেকানিজম। "
প্রশ্ন (গুলি):
আপনি কি মনে করেন যে "আন্ডার-ভোল্টেজ চলাকালীন এলোমেলো আচরণ এবং ফ্ল্যাশ পৃষ্ঠাগুলিতে ডেটা পরিবর্তন করার জন্য কিছু নির্দেশাবলী কার্যকর করা" - ব্যাখ্যাটি যথাযথ? যদি এটি হয় তবে আমরা কেন কিছুক্ষণ এই ধরণের ত্রুটিগুলি কিছু সফ্টওয়্যার সমস্যার (স্ট্যাক ওভারফ্লো, অবৈধ পয়েন্টার) কারণ হিসাবে দেখি না।
আপনার কি অন্য কোনও ধারণা রয়েছে যা এই ধরণের দুর্নীতির কারণ হতে পারে? এটি কি ইএমআই / ইএসডি দ্বারা সৃষ্ট হতে পারে?