अतीत में, मैंने 8 बिट एवीआर और एमएसपी 430 के साथ बहुत कुछ काम किया है जहां रैम और फ्लैश दोनों चिप पर सीधे संग्रहीत किए गए थे। जब आप अपने प्रोग्राम को संकलित और डाउनलोड करते हैं, तो यह "बस काम करता है" की तरह है और आपको इस बारे में चिंता करने की आवश्यकता नहीं है कि वास्तव में कहां और कैसे चर संग्रहीत किए जाते हैं।माइक्रोकंट्रोलर पर बाहरी मेमोरी का उपयोग कैसे करें
अब मैं एक प्रोजेक्ट शुरू कर रहा हूं जहां मैं कुछ बाहरी मेमोरी को माइक्रोकंट्रोलर (एक टीआई स्टालेरिस एलएम 3 एस 9 डी 9 2) में जोड़ने में सक्षम होना चाहता हूं, लेकिन मुझे पूरा यकीन नहीं है कि आप अपना कोड कैसे उपयोग करते हैं बाहरी राम मैं देख सकता हूं कि आप बाहरी बस को किसी अन्य परिधीय की तरह कैसे कॉन्फ़िगर करते हैं लेकिन मुझे क्या भ्रमित करता है यह है कि कैसे प्रोसेसर बाहरी स्मृति से बात करने और आंतरिक से बात करने के लिए ट्रैक करता है।
जो मैं बता सकता हूं, बाहरी रैम को उसी एसआरएएम (आंतरिक 0x20000000 पर शुरू होता है और 0x60000000 पर बाहरी शुरू होता है) के समान पता स्थान पर मैप किया जाता है। इसका मतलब यह है कि अगर मैं कुछ इस तरह लिखा है:
int* x= 0x20000000;
int* y= 0x60000000;
x और y पहले 4 बाइट्स क्रमशः आंतरिक और बाहरी रैम (32 बिट ints कल्पना करते हुए) को इंगित होता होगा? यदि हां, तो क्या हुआ अगर मैं कुछ इस तरह था: मैं यह सब गलत है और हार्डवेयर है
int x[999999999999]; //some super big array that uses all the internal ram
int y[999999999999]; //this would have to be in external ram or it wouldn't fit
मैं कल्पना है कि मैं जहां स्मृति के प्रत्येक प्रकार है या कर की सीमाओं के बारे में कुछ बताने के लिए आवश्यकता होगी अपने आप इसे आंकड़े बताते हैं? क्या लिंकर स्क्रिप्ट इस से निपटते हैं? मुझे पता है कि उनके पास मेमोरी मैपिंग के साथ कुछ करना है लेकिन मुझे नहीं पता कि वास्तव में क्या है। एआरएम क्रॉस कंपाइलर को कैसे सेट अप करने के बारे में पढ़ने के बाद मुझे यह महसूस हो रहा है कि दृश्यों के पीछे Winavr (avr-gcc) मेरे लिए बहुत सारी चीज़ें कर रहा था, इसलिए मुझे इससे निपटना नहीं होगा।
थोड़ी देर के लिए खेद है, लेकिन अगर कोई मुझे बता सकता है कि मैं इस सामान के साथ सही रास्ते पर हूं तो मैं वास्तव में इसकी सराहना करता हूं।
अद्यतन
भविष्य के किसी भी पाठकों को मैं http://www.bravegnu.org/gnu-eprog/index.html googling के एक और कुछ घंटों के बाद यह पाया है। यहां उत्तरों के साथ संयुक्त ने मुझे बहुत मदद की।
आप http://electronics.stackexchange.com/ पर पूछना चाहेंगे। आप [तारकीय डेटा शीट] (http://www.ti.com/lit/ds/spms257a/spms257a.pdf) को भी देखना चाहते हैं। –