2013-05-23 5 views
11

यह यू-बूट से संबंधित एक मूल प्रश्न है।यू-बूट: रिलायंस

यू-बूट कोड खुद को क्यों स्थानांतरित करता है?

ठीक है, यह समझ में आता है, तो यू-बूट और न ही-फ्लैश या बूट ROM अंतरिक्ष से निष्पादित हो रहा है लेकिन अगर यह पहले से ही SDRAM से चलाता है कारण है कि यह एक बार फिर से खुद को स्थानांतरित करने के लिए है?

+1

यह बंद नहीं होना चाहिए था। –

+0

यह क्यों बंद है? क्या यह कोई संबंधित सवाल नहीं है? –

+0

इसे फिर से खोलने के लिए एक और वोट की आवश्यकता है। –

उत्तर

5

यह प्रश्न अक्सर उठता है। कभी-कभी Good answers भी।

मुझे लगता है कि विकास के दौरान एसडीआरएएम में निर्माण को लोड करना आसान है। यह मेरे लिए काम करता है, मैं इसे हर समय करता हूं। मेरे पास फ्लैश में कुछ विशेष बूट कोड है जो एमएमयू/कैश को सक्षम नहीं करता है। मेरे यू-बूट बिल्ड के लिए मैं फ्लैश और रैम बिल्ड के बीच CONFIG_SYS_TEXT_BASE स्विच करता हूं। मैं अपने विकास को नियमित रूप से इस तरह से चलाता हूं।

एक व्यावहारिक बात के रूप में, से निपटने MMU/कैश के पुन: प्रारंभ एक nontrivial बात होगी। और यू-बूट आईएमओ को सादगी से लाभ देता है, इस तरह की चीजों को छोड़ने के परिणामस्वरूप।

Denx पर तकनीक का नेतृत्व अपने opinion व्यक्त की है। आईआईआरसी उनके अन्य पदों की तुलना में अधिक दृढ़ता से शब्दबद्ध हैं। मुझे लगता है कि वह खुद को दोहराना पसंद नहीं करता है।

अद्यतन: क्यों स्थानांतरित करना। रॉम से रैम से मेमोरी एक्सेस तेज है, इससे कोई फर्क नहीं पड़ता कि लक्ष्य में कोई निर्देश कैश नहीं है। रैम से निष्पादन फ्लैश रीप्रोग्रामिंग की अनुमति देता है; भी (अधिक मामूली) यह सॉफ़्टवेयर ब्रेकपॉइंट्स को "जाल" निर्देशों के साथ अनुमति देता है; यह भी लक्ष्य के सामान्य तरीके के संचालन की तरह है, इसलिए यदि उदा। रैम से फट पढ़ता है अगर iffy शुरुआती बूट में विफलता देखी जाएगी।

+1

लिंक वास्तव में प्रश्न का उत्तर नहीं है, लेकिन जो आप स्पष्ट रूप से मानते हैं उस पर सवाल के पीछे प्रेरणा है। उस विषय पर आपकी एमएमयू पुन: प्रारंभिक टिप्पणी दिलचस्प है हालांकि - जिस प्लेटफॉर्म पर मैंने यू-बूट * को लोड किया है, बिना किसी कठिनाई के वास्तविक यूएमयू में वास्तविक एमएमयू नहीं था। –

+0

[माथे के लिए हथेली थप्पड़] आप सही हैं। उत्तर अपडेट किया गया है। –

1

यू-बूट स्मृति में 3 क्षेत्रों को आरक्षित करना पड़ता है कि दुकानों: 1) यू-बूट ही है, 2) uImage (संपीड़ित गिरी), और 3) असम्पीडित गिरी। संघर्ष को रोकने के लिए इन 3 क्षेत्रों को सावधानीपूर्वक यू-बूट में रखा जाना चाहिए।

हालांकि, पिछले चरण बूट लोडर, (BL2 या BL1) कि DRAM स्मृति डॉन \ t में यू-बूट लाता है इन 3 क्षेत्रों पर यू-बूट के planing पता है। तो यह केवल डीआरएएम मेमोरी में निचले पते पर यू-बूट लोड कर सकता है और उस पर कूद सकता है। फिर, यू-बूट के बाद कुछ मूल प्रारंभिक निष्पादन करें और वर्तमान पीसी का पता लगाने के लिए योजनाबद्ध स्थान पर नहीं है, यू-बूट कॉल स्थानांतरित करें जो नियोजित स्थान पर यू-बूट को स्थानांतरित करता है और उस पर कूदता है।

0

एनओआर फ्लैश के कोड को एसडीआरएएम शुरू करना चाहिए, फिर न ही फ्लैश से एसडीआरएएम की प्रतिलिपि कोड, प्रक्रिया स्वयं कॉपी हो जाएगी, क्योंकि आप एमएमयू सक्षम कर सकते हैं, हम वर्चुअल एड्रेस मैपिंग शुरू करेंगे।

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