मुझे पोर्ट स्रोत कोड को एआरएम मंच से ले जाना है जो लिनक्स चलाता है। दुर्भाग्य से मैंने असाइन किए गए मेमोरी एक्सेस समस्याओं में भाग लिया है। स्रोत पॉइंटर कास्ट करता है और भारी पहुंचता है।एआरएम अनलिखित मेमोरी एक्सेस वर्कअराउंड
कोड नीचे दिए गए कोड को वायरस की तरह कोडबेस पर फैला है। मैं समस्याग्रस्त स्थानों को इंगित कर सकता हूं धन्यवाद जीसीसी -Wcast-align
कमांड लाइन विकल्प के लिए धन्यवाद, लेकिन एक हजार से अधिक उदाहरण हैं।
u = (IEC_BOOL);
(((*(IEC_LINT*)pSP).H < b.H)
|| (((*(IEC_LINT*)pSP).H == b.H) && ((*(IEC_LINT*)pSP).L < b.L))) ? 1 : 0);
*(IEC_DWORD OS_SPTR *)pSP =
(IEC_DWORD)(*(IEC_DWORD OS_SPTR *)pSP >> u);
*(IEC_DWORD OS_SPTR *)pSP =
(IEC_DWORD)(*(IEC_DWORD OS_SPTR *)pSP << -u);
u = (IEC_BYTE)((*(IEC_DINT*)pSP != b) ? 1 : 0);
*(IEC_DWORD*)pSP = (IEC_DWORD)(*(IEC_DWORD*)pSP & w);
(*(IEC_ULINT*)pSP).H += u.H;
(((*(IEC_ULINT OS_SPTR *)pSP).H == b.H)
&& ((*(IEC_ULINT OS_SPTR *)pSP).L > b.L))) ? 1 : 0);
u = (IEC_BYTE)((*(IEC_REAL*)pSP >= b) ? 1 : 0);
echo 2 > /proc/cpu/alignment
पर का उपयोग लिनक्स कर्नेल समस्याओं को ठीक लेकिन उस एप्लिकेशन का प्रदर्शन एक मुद्दा यह है कि किसी भी अधिक स्वीकार्य नहीं है करने के लिए अवक्रमित है बनाता है।
मैंने जीसीसी (v4.4.1) कंपाइलर के लिए __unaligned
या __packed
कीवर्ड जैसे कुछ के लिए नेट की खोज की लेकिन अभी तक खाली हो गया है।
मैंने सोचा कि बहुत से पॉबलेमेटिक कोड लाइनों को कम या ज्यादा जटिल रेगेक्सप/प्रतिस्थापित के साथ तय किया जा सकता है लेकिन अब, थोड़ी देर के लिए ऐसा करने के बाद, यह दृष्टिकोण भी कठिन काम करेगा।
क्या आपके पास कोई सुझाव है कि यह काम कैसे प्राप्त किया जाए? मुझे लगता है कि एक जीसीसी 4.5 कंपाइलर प्लगइन अधिक हो जाएगा लेकिन नियमित अभिव्यक्तियों से कुछ बेहतर है? आप किस अन्य सुझाव के साथ आ सकते हैं? जरूरी नहीं कि सभी समस्या उदाहरणों को ठीक किया जाना चाहिए क्योंकि मैं अभी भी कुछ दुर्लभ मामलों के लिए कर्नेल पर भरोसा कर सकता हूं।
मैं मजाक करने के लिए प्रेरित हूं कि इसे TheDailyWTF.com पर ले जाया जाना चाहिए। – Crashworks
आधुनिक भाषाविज्ञान के हमारे अध्ययन को जारी रखते हुए, यहां हमारे पास आमतौर पर एम्बेडेड प्रोग्रामर द्वारा उपयोग की जाने वाली सी की बोली का नमूना है। अंग्रेजी में शायद ही अनुवाद किया गया है, उपर्युक्त पाठ का अर्थ है "एफ *** आप!", हालांकि कोई भी प्राकृतिक भाषा वास्तव में पवित्रता की मात्रा, पवित्र के खिलाफ अवज्ञा, और पाठक की मानवता के लिए सामान्य उपेक्षा को व्यक्त नहीं कर सकती है। – Dmitri