मैं कैसे बता सकता हूं कि uboot द्वारा किस मेमोरी रैम एड्रेस रेंज का उपयोग किया जा रहा है?


12

मैं uboot में हूं और सोच रहा था, मैं कैसे बता सकता हूं कि uboot द्वारा RAM एड्रेस रेंज का क्या उपयोग किया जा रहा है।

uboot को चलाने के लिए मेमोरी की आवश्यकता होती है इसलिए यह कुछ RAM का उपयोग कर सकता है। मैं उन रैम पतों को संशोधित करने से बचना चाहता हूं।

मुझे कैसे पता चलेगा कि किस क्षेत्र में uboot लोड किया गया है?

जवाबों:


2

DULG डिबगिंगबूट पृष्ठ के पास यह कहने के लिए है ("स्थानांतरण" यह बात करता है कि स्वयं को फ़्लैश से RAM में कॉपी कर रहा है)।

स्थानांतरण के बाद U- बूट डिबगिंग के लिए हमें उस पते को जानना होगा जिसके लिए U-Boot स्वयं को स्थानांतरित करता है। जब PRAM जैसी कोई विदेशी सुविधाएँ उपयोग नहीं की जाती हैं, तो यह पता आमतौर पर होता है - CONFIG_SYS_MONITOR_LEN। हमारे उदाहरण में 16MB RAM और CONFIG_SYS_MONITOR_LEN = 192KB से यह पता 0x1000000 - 0x30000 = 0xFD0000 निकलता है।

पाठ के आगे पढ़ने से संकेत मिलता है कि यह प्रोसेसर या बोर्ड पर निर्भर है और यह सुनिश्चित करने के लिए आपको यू-बूट स्रोत की जांच करनी पड़ सकती है।

गुरुप्लग के बारे में :

रैम पक्ष पर, यू-बूट में पहले 8 मेगाबाइट आरक्षित हैं। शेष स्वतंत्र है। कुछ डेवलपर फ़्लैश के लिए प्रोग्रामिंग के लिए 0 × 800000 पर कर्नेल और फाइल सिस्टम लोड करेंगे। एक अन्य सामान्य स्थान 100 मेगाबाइट सीमा (या 0 × 640000 ऑफसेट) पर है।

यू-बूट कमांड के आपके संस्करण के आधार पर फ्री रैम में कहीं न कहीं स्ट्रिंग लगाने के लिए उपलब्ध हो सकता है और फिर मेमोरी में यू-बूट के अनुमानित स्थान का खुलासा करते हुए, उस स्ट्रिंग के लिए बाकी रैम का शिकार करें।


1

जब मैं uboot का संस्करण शुरू करता हूं जिसका मैं उपयोग कर रहा हूं, तो यह स्वचालित रूप से "वर्चुअल कर्नेल मेमोरी लेआउट" प्रदर्शित करता है।

Memory: 859068k/859068k available, 25668k reserved, 0K highmem
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    DMA     : 0xf9e00000 - 0xffe00000   (  96 MB)
    vmalloc : 0xe0800000 - 0xf4000000   ( 312 MB)
    lowmem  : 0x80000000 - 0xe0000000   (1536 MB)
    pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)
    modules : 0x7f000000 - 0x7fe00000   (  14 MB)
      .init : 0x80008000 - 0x8004d000   ( 276 kB)
      .text : 0x8004d000 - 0x808ad000   (8576 kB)
      .data : 0x808ce000 - 0x80937a40   ( 423 kB)

मैंने पाया कि विभिन्न उपयोगिता प्रक्रियाओं के लिए जो मैं चलाना चाहता था (जैसे स्मृति में बड़ी फ़ाइलों को लोड करना) के लिए निम्म क्षेत्र का उपयोग करना सुरक्षित था। आदर्श रूप से, मुझे लगता है कि आप उस तरह की चीज़ के लिए उच्च मेमोरी का उपयोग करना चाहते हैं, लेकिन मेरे पास विकल्प नहीं था (जैसा कि आप मेरे आउटपुट में देख सकते हैं)।


क्या आप सुनिश्चित हैं कि लिनक्स की मेमोरी मैप नहीं है?
क्लेमैटेशन

मैं सुनिश्चित नहीं हूं। हाइमीम की कमी और "वर्चुअल कर्नेल" का संदर्भ मुझे अन्यथा सोचने के लिए प्रेरित करता है। जब मैं uboot की बात करता हूँ तो मैं एक noob / hack हूँ। यहाँ महत्वपूर्ण बिंदु यह था कि मैं उस नीम श्रेणी का सुरक्षित रूप से उपयोग करने में सक्षम था, जिसे कुछ भी लिखने की आवश्यकता नहीं थी।
बुविंज़

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