2015-12-22 4 views
6

मैं एक एम्बेडेड सिस्टम के साथ काम कर रहा हूं। एप्लिकेशन AT91SAMxxxx और कॉर्टेक्स एम 3 एलपीसी 17xxx पर चल रहा है। मैं गतिशील स्मृति आवंटन में देख रहा हूं क्योंकि यह नाटकीय रूप से एप्लिकेशन के चेहरे को बदल देगा (और मुझे और अधिक शक्ति देगा)।एम्बेडेड सिस्टम में malloc

मुझे लगता है कि मेरा एकमात्र असली मार्ग एक ढेर के लिए स्मृति का एक क्षेत्र निर्धारित करना है और एक उपयुक्त मॉलोक तैयार करना है जो मेरे उद्देश्य को सर्वोत्तम रूप से फिट करता है (पन)।

स्मृति आवंटन के लिए अलग-अलग एल्गोरिदम को देखते समय आप डौग ली के मॉलोक पर ठोकर नहीं खा सकते। मुझे लगता है कि यह एम्बेडेड सिस्टम में इस्तेमाल किया गया है जैसे कि मेरा जहां कोई ओएस नहीं है और कहने के अनुरूप एसबीआरके() फ़ंक्शन प्रदान किए गए हैं। मैं अपने स्वयं के लेखन में कूदने से पहले अवधारणा के सबूत की कोशिश करने के लिए हासिल किए जा रहे अच्छे उदाहरण खोजने की कोशिश कर रहा हूं।

क्या मेरे जैसे सिस्टम में dlmalloc का उपयोग करना संभव है?

यदि हाँ कोई मुझे किसी प्रासंगिक संसाधन पर इंगित कर सकता है? (मुझे बहुत मदद नहीं मिली है)

क्या यह मेरी जरूरतों के अनुसार मेरे स्वयं के मॉलोक को जाना और लिखना बेहतर है?

और माफी माँगने के लिए अब तक का अधिकांश शोध एक मॉलोक डिजाइन करने पर रहा है जो डौग का उपयोग नहीं कर रहा है जो एक अलग चुनौती है। मान लीजिए कि मैं इस मार्ग को और अधिक गहराई में समय की बर्बादी में देख रहा हूं, यह जानने का प्रयास कर रहा हूं।

संपादित करें:

कहानी का नैतिक: मेरे मामले व्यर्थ में dlmalloc को देखकर।

+0

क्या आपको वास्तव में अपने एम्बेडेड एप्लिकेशन में गतिशील स्मृति आवंटन की आवश्यकता है? –

+2

आवंटन की वास्तविक विशेषताओं को आप समर्थन के लिए क्या आवश्यक हैं? अधिक विशिष्ट होने के कारण आप/हम एक और आदर्श समाधान के साथ आ सकते हैं। –

+2

यह आपके आवंटन की प्रकृति पर निर्भर करता है। कई मामलों में, यह गतिशील रूप से निश्चित आकार के ब्लॉक आवंटित करने के लिए पर्याप्त है। यह एक सामान्य आवंटन विधि से लागू करने के लिए और अधिक आसान होगा (जो समय और memroy के मामले में अधिक ओवरहेड होगा, मुक्त ब्लॉक आदि मर्ज करने की जरूरत है)। – Ctx

उत्तर

5

आपकी स्थिति के लिए malloc या dlmalloc का अपना कार्यान्वयन निश्चित रूप से संभव है, लेकिन सलाह नहीं दी जाती है।

बहुत कम स्तर पर एम्बेडेड सिस्टम पर, नल धातु एमसीयू आदि, मॉलोक का उपयोग करके व्यर्थ है।

आप अपने ऐप और केवल उन पर अपना ऐप चलाएंगे, आपको पता है कि आपके पास कितनी मेमोरी है और इसका उपयोग कर सकते हैं, और आप इस तरह की जरूरतों को पूरा करने के लिए अपने प्रोग्राम को तैयार करने में पूरी तरह से सक्षम हैं। मॉलोक के साथ आप स्मृति को बचाते हैं, लेकिन यह यहां व्यर्थ है। यदि आपका प्रोग्राम उच्चतम मेमोरी उपयोग पर डिवाइस पर उपलब्ध स्मृति से अधिक नहीं है, और आपका प्रोग्राम केवल एक ही चल रहा है, तो मॉलोक का उपयोग करने का कोई कारण नहीं है, और किसी भी स्मृति को अप्रयुक्त करने की कोई कारण नहीं है।

tl; डॉ यह संभव है लेकिन अत्यधिक व्यर्थ है।

+0

क्या आप सभी रूपों में dlmalloc या गतिशील स्मृति आवंटन का मतलब है? और मैं अपने ऐप में अधिक विशिष्टताओं को जोड़ने के लिए अपना प्रश्न संपादित कर सकता हूं लेकिन रनटाइम पर मेमोरी आवंटन निश्चित रूप से मेरे मामले में व्यर्थ नहीं है। –

+0

खेद है कि आपने उपरोक्त टिप्पणी को अपनी उपेक्षा की है –

संबंधित मुद्दे