linker - Splitting an ELF executable into two files in an embedded system -
मैं Virtex4 FPGA में Xilinx Microblaze CPU कोर का उपयोग करता हूं। मैं अपने वर्तमान कोड में एक नया कोड हिस्सा जोड़ना चाहूंगा, लेकिन फिर मेरा कोड फ्लैश के आकार से अधिक होगा जो इसे जला हुआ है इसलिए मैं अतिरिक्त फ्लैश में जोड़ा गया कोड बर्न करना चाहता हूं।
मेरे कोड को बूट लोडर द्वारा रैम में कॉपी किया जाता है, जो फिर राम में कूदता है और नियमित निष्पादन प्रारंभ करता है। मैं उसी तरह दूसरी रैंक से नए कोड की प्रतिलिपि बनाने का इरादा रखता हूं, ठीक से (रैम में) पहले से इस्तेमाल की गई फ्लैश से कॉपी की गई कोड को।
इसके लिए, मुझे वास्तव में दो अलग एल्फ निष्पादन योग्य फ़ाइलों की आवश्यकता है, एक प्रत्येक जला फ्लैश के लिए, और उन दोनों के बीच एक सटीक जुदाई, परिभाषित करता है कि प्रत्येक फ़ाइल में कौन से रूटीन रहते हैं फ़ाइलों के दौरान सामान्य कॉल को सक्षम किया जाना चाहिए।
मेरा प्रश्न: मैं इन अलग एल्फ फाइलों को कैसे प्रत्येक फ़ाइल में रूटीन के सटीक विवरण के साथ उत्पादन कर सकता हूं? क्या एक निष्पादन योग्य फ़ाइल को दो अलग-अलग फ़ाइलों में विभाजित करने का एक तरीका है? या एम्बेडेड सिस्टम में एक एकल लिंक के उत्पादन के रूप में अलग-अलग एक्जीक्यूटेबल / लाइब्रेरी फ़ाइलों को बनाने के लिए एक और उपाय है?
धन्यवाद, इसाई
यदि आप अपने बाइनरी को रैमबॉम्बल कर सकते हैं, तो यह एक बाइनरी से लिंक करने के लिए बिल्कुल ठीक होना चाहिए और फिर परिणामी फाइल को विभाजित करें आपको यह सुनिश्चित करना होगा कि बूट लोडर फ़ंक्शंस प्राथमिक आधे में शामिल हैं I सबसे आसान तरीका एक स्टैंड-अलोन बूट लोडर बाइनरी बनाना होगा।
आप उपयोगिता को उपयोग कर सकते हैं या इसे फ्लैश करने से पहले बाइनरी को विभाजित कर सकते हैं।
Comments
Post a Comment