क्या मेमोरी आकार के लिए एक पूर्वप्रक्रमक स्थिरांक है


13

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

जहां मैं gcc और या avr-gcc में पर्याप्त धाराप्रवाह नहीं हूं, मैं कुछ स्थिरांक खोजने की उम्मीद कर सकता हूं जो कि ढेर की शुरुआत और अंत को परिभाषित करते हैं।

मामले के उदाहरण पर। क्या यूएनओ और लियो दोनों में 32K फ्लैश है। लेकिन लियो की मुख्य लाइब्रेरी USB सपोर्ट के लिए 4K का उपयोग करती है, जिसके परिणामस्वरूप केवल 28K उपलब्ध है। मेरी लाइब्रेरी का डेमो संयुक्त राष्ट्र संघ के अधिकतम दायरे के बाहर है और मैं उपलब्ध प्रोग्राम स्पेस के आधार पर स्वचालित रूप से ट्रिम करना चाहूंगा।


मैंने ऐसे कार्यक्रम देखे हैं जो ऐसा करते हैं, लेकिन मैं किसी भी समय नहीं पा सकता
TheDoctor

जवाबों:


10

io__.hअपने माइक्रोकंट्रोलर के लिए फ़ाइल ढूंढें , लिनक्स /usr/lib/avr/include/avrपर यह विंडोज में स्थित है , यह कुछ हद तक समान स्थान पर होगा।

उस भाग पर स्क्रॉल करें जो कहता है /* Constants */। वहाँ कुछ दिलचस्प मैक्रोज़ को परिभाषित किया गया है, FLASHENDजिसमें आपकी रुचि होनी चाहिए। आप उदाहरण के लिए इसका उपयोग कर सकते हैं:

#if FLASHEND > 0x8000
/* Include some extra code when sufficient flash is available. */

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