इनबिल्ट फ्लैश मेमोरी साइज पर्याप्त नहीं है


11

मैं अपने एक प्रोजेक्ट में टेक्सास इंस्ट्रूमेंट से TM4C1230C3PMI कंट्रोलर का उपयोग कर रहा हूं। इसमें 32KB की इंटरनल फ्लैश है, जो मेरे एप्लिकेशन के लिए पर्याप्त नहीं है। उच्च फ्लैश आकार के माइक्रो-नियंत्रक बाजार में उपलब्ध हैं जिनका उपयोग किया जा सकता है लेकिन मैं केवल इस माइक्रो-नियंत्रक के साथ जाना चाहता हूं। मेरे ज्ञान के अनुसार बाहरी EEPROM का उपयोग कुल फ़्लैश आकार (प्रोग्राम मेमोरी) को बढ़ाने के लिए किया जा सकता है।

क्या मेरी सोच सही है?

यदि कृपया यह न बताएं कि मैं नियंत्रक की कुल फ्लैश मेमोरी का आकार कैसे बढ़ा सकता हूं?


1
बाह्य EEPROM का उपयोग आमतौर पर डेटा संग्रहीत करने के लिए किया जाता है क्योंकि आंतरिक फ़्लैश कम मिटा / चक्र लिखने की अनुमति देता है और फिर अधिकांश EEPROM और यह बाइट-वार को अधिलेखित कर सकता है। बाहरी बस इंटरफेस वाले सीपीयू के लिए (आपके पास यह नहीं है) बाहरी प्रोग्राम मेमोरी को जोड़ना संभव होगा (हालांकि यह थोड़ा जटिल है ...)। सैद्धांतिक रूप से एक बाहरी EEPROM में कोड के टुकड़ों को स्टोर करना और इसे निष्पादित करने के लिए रैम में इस कोड को लोड करना संभव होगा - हालांकि ज्यादातर मामलों में यह परिदृश्य यथार्थवादी नहीं है।
मार्टिन रोसेनौ

3
कई साल पहले, एक संबंधित कहावत थी "यदि आप इसे 1K में नहीं कर सकते, तो आप ऐसा नहीं कर सकते।" मैंने सोचा कि यह चतुर और सोचने लायक था, लेकिन वास्तव में इसे स्वीकार नहीं किया। फिर 1C में MicroChess पहुंचे।
user2338816

1
आप बाहरी मेमोरी से अपना कोड क्यों नहीं बूट करते हैं? कई बाहरी यादें हैं जो आपके यूसी को बाधित कर सकती हैं। इससे आपके आंतरिक फ्लैश में अड़चन नहीं आएगी क्योंकि आप अपने कोड को बाहरी रूप से बूट कर रहे होंगे।
अल्फोकोकू


जवाबों:


22

आप प्रोग्राम मेमोरी (फ्लैश) का विस्तार नहीं कर सकते। टीआई डबल फ्लैश और रैम के साथ एक ही चिप का उत्पादन करता है, लेकिन और कुछ नहीं बदला: TM4C1230D5PMI

यदि आप बड़े फ्लैश के साथ चिप का उपयोग नहीं कर सकते हैं, तो आपको अपना कोड आकार कम करना होगा:

  • डिबगिंग अक्षम करें, जैसे महंगे printfफ़ंक्शन। एक printfफ़्लोटिंग पॉइंट आउटपुट का समर्थन करता है जो आम तौर पर आपको 5KB-10KB के आसपास सेट करेगा।
  • सुनिश्चित करें कि आप सक्षम अनुकूलन के साथ संकलित करते हैं - आमतौर पर संकलक ध्वज है -Os
  • आधुनिक कंपाइलर लिंक टाइम ऑप्टिमाइज़ेशन (LTO) कर सकते हैं । जीसीसी के साथ, आपको यह मिलता है -flto। आपको -fltoसभी फ़ाइलों के लिए संकलन और लिंक चरणों दोनों को पास करना होगा। यह आमतौर पर उत्पादित कोड आकार को 30% -50% तक कम कर देता है।

2

आप अपने उद्देश्य के लिए डिज़ाइन किए गए कोडांतरक और फोर्थ जैसी भाषा का उपयोग करके सबसे छोटा सॉफ्टवेयर पदचिह्न प्राप्त कर सकते हैं। एक और संकुचित मशीन कोड है यदि लगभग समान कोड का एक बहुत कुछ है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.