मैं एक कस्टम कॉर्टेक्स-एम 3-आधारित डिवाइस पर काम कर रहा हूं और मुझे इन-एप्लिकेशन प्रोग्रामिंग (आईएपी) तंत्र को लागू करने की आवश्यकता है ताकि JTAG के बिना डिवाइस फर्मवेयर को अपडेट करना संभव हो (हम इसके बजाय TFTP या HTTP का उपयोग करेंगे)। जबकि एसटी माइक्रोइलेक्ट्रॉनिक्स से उपलब्ध आईएपी से संबंधित कोड उदाहरण मेरे लिए काफी स्पष्ट हैं, मैं वास्तव में समझ नहीं पा रहा हूं कि री-फ्लैशिंग कैसे काम करती है।एआरएम (कॉर्टेक्स एम 3) के लिए इन-एप्लिकेशन प्रोग्रामिंग कैसे काम करता है?
जहां तक मैं समझता हूँ, निर्देश ICODE बस के माध्यम से फ्लैश से सीपीयू (और प्रीफ़ेच ब्लॉक, ज़ाहिर है) द्वारा दिलवाया जाता है। तो, यहां मेरा सुंदर मूर्ख सवाल है: क्यों चल रहा प्रोग्राम दूषित नहीं होता है, जबकि यह खुद को फिर से चमकता है (यानी फ्लैश मेमोरी को बदलता है जिससे इसे चलाया जा रहा है)?
आह-हा ... यह सही है, कोड का अध्ययन करते समय मैंने उस हिस्से को याद किया है! –
हां, हालांकि, कई उपकरणों पर यह फ्लैश प्रोग्रामिंग करते समय वास्तव में राम से चलने के लिए आवश्यक है, इसलिए प्रोग्रामिंग कोड का एक छोटा ब्लॉक रैम पर कॉपी किया जाना चाहिए और वास्तविक प्रोग्रामिंग करने के लिए कहा जाता है, भले ही समग्र प्रक्रिया का प्रबंधन किया जाता है फ्लैश के आरक्षित हिस्से में कोड। –
कई विफलता परिदृश्य हैं जिन पर आपको विचार करने की आवश्यकता है, अन्यथा, आप अपने सिस्टम को ब्रिक कर सकते हैं।आईएपी एफ/डब्ल्यू विकास का एक कोने पत्थर है और यह विशेष रूप से हानिकारक नेटवर्क पर सही कर रहा है मुश्किल हो सकता है। – Amit