टारगेट प्रोसेसर की रजिस्टर चौड़ाई और एंडियननेस के लिए समान रूप से नामित बेस प्रकार और पहचान प्रतीक प्रदान करता है।
एआई-जनितअसत्यापितमॉडल: claude-opus-5-5 · प्रयास: high · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 7e73f6d7bb31उद्गमखुले प्रश्न (3)
कारणात्मक एंकर: R20-11R20-11 से मान्यइस विनिर्देश संस्करण के लिए नए सिरे से संश्लेषित।
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
टारगेट प्रोसेसर की रजिस्टर चौड़ाई और एंडियननेस के लिए समान रूप से नामित बेस प्रकार और पहचान प्रतीक प्रदान करता है।
Platform_Types.h Classic Platform के प्लेटफ़ॉर्म-निर्भर बुनियादी प्रकार प्रदान करता है: uint8 से sint64 तक के निश्चित चौड़ाई वाले पूर्णांक प्रकार, अनुकूलित *_least प्रकार, float32/float64, TRUE/FALSE के साथ boolean, तथा बफ़र पॉइंटर्स VoidPtr और ConstVoidPtr। इसके अतिरिक्त, CPU_TYPE, CPU_BIT_ORDER और CPU_BYTE_ORDER लक्ष्य [SWS_Platform_00046] की रजिस्टर चौड़ाई और एंडियननेस को निर्दिष्ट करते हैं। boolean का उपयोग केवल TRUE और FALSE के साथ तथा बिना किसी अंकगणितीय या बिटवाइज़ ऑपरेटर के किया जाना चाहिए [SWS_Platform_00034]। हेडर का विस्तार नहीं किया जाना चाहिए, अन्यथा AUTOSAR-अनुरूपता समाप्त हो जाती है।
Platform_Types.h Classic Platform का प्लेटफ़ॉर्म-निर्भर प्रकार आधार (type base) है। यह हेडर एकसमान नामों के पीछे लक्ष्य की शब्द-चौड़ाई (word widths) और एंडियननेस को समाहित (encapsulate) करता है तथा इसका विस्तार नहीं किया जाना चाहिए, क्योंकि कोई भी विस्तार AUTOSAR-अनुरूपता को समाप्त कर देता है [SWS_Platform_00002]। मॉडल दृश्य (model view) में, ये प्रकार /AUTOSAR_Platform/ImplementationDatatypes/uint8TPS StandardizationTemplate पृ. 77 जैसे एक निश्चित पथ के अंतर्गत स्थित होते हैं।
कॉलर को लौटाए जाने वाले डेटा के लिए बफ़र पॉइंटर VoidPtr और कॉल किए गए घटक (callee) को दिए जाने वाले डेटा के लिए ConstVoidPtr[SWS_Platform_91001][SWS_Platform_91002]।
R20-11 में boolean को सबसे छोटे मूल रूप से समर्थित अहस्ताक्षरित (unsigned) पूर्णांक प्रकार के रूप में कार्यान्वित किया जाता है, जो सामान्यतः 8 बिट होता है [SWS_Platform_00027]। बाद के संस्करण इससे भिन्न हैं और _BoolSWS PlatformTypes पृ. 18 का उपयोग करते हैं। प्रकार पॉइंटर-सक्षम होना चाहिए [SWS_Platform_00060] और इसका उपयोग केवल TRUE और FALSE के साथ किया जा सकता है। अंकगणितीय और बिटवाइज़ ऑपरेटर निषिद्ध हैं [SWS_Platform_00034], तथा सशर्त जाँच (conditional check) के माध्यम से प्रतीकों के पुनर्परिभाषा से बचा जाना चाहिए [SWS_Platform_00054]।
प्रति प्लेटफ़ॉर्म तीन प्रतीक भी निर्धारित किए जाने हैं: रजिस्टर चौड़ाई के लिए CPU_TYPE[SWS_Platform_00045], MSB_FIRST या LSB_FIRST के साथ CPU_BIT_ORDER[SWS_Platform_00048][SWS_Platform_00049] और HIGH_BYTE_FIRST या LOW_BYTE_FIRST के साथ CPU_BYTE_ORDER[SWS_Platform_00050][SWS_Platform_00051]। बिट नामों और सार्थकता (significance) को आपस में मिश्रित नहीं किया जाना चाहिए, क्योंकि MSB संचायक (accumulator) में हमेशा बाईं ओर होता है SWS PlatformTypes पृ. 15। व्याख्या: मॉड्यूल में कोई रनटाइम त्रुटियाँ नहीं होती हैं; ग़लत असाइनमेंट केवल एकीकरण या अनुरूपता परीक्षण के दौरान ही सामने आते हैं। प्रश्न (खुला)
Platform_Types.h की भूमिका: प्लेटफ़ॉर्म-निर्भर प्रकार आधार
यह मॉड्यूल कोई निष्पादन योग्य घटक नहीं है, बल्कि एक हेडर है। सभी निर्दिष्ट प्रकार और प्रतीक “Available via Platform_Types.h” हैं, जैसे uint8[SWS_Platform_00013] या CPU_TYPE[SWS_Platform_00064]। हेडर लक्ष्य माइक्रोकंट्रोलर और कंपाइलर की विशेषताओं को एकसमान नामों के पीछे छुपाता है: शब्द-चौड़ाई, बिट क्रम और बाइट क्रम। इस प्रकार यह उच्च परतों के लिए मानकीकृत इंटरफ़ेस के साथ SRS_BSW_00161 में अपेक्षित माइक्रोकंट्रोलर अमूर्तता (abstraction) से संबंधित है SRS BSWGeneral पृ. 88। बाइट क्रम संबंधी नियम भी ठीक इसी अपस्ट्रीम आवश्यकता को संदर्भित करते हैं SWS PlatformTypes पृ. 16।
सिस्टम की सीमा संकीर्ण रूप से खींची गई है। हेडर का विस्तार नहीं किया जाना चाहिए, क्योंकि कोई भी विस्तार AUTOSAR-अनुरूपता को समाप्त कर देता है [SWS_Platform_00002]। इसके विपरीत, किसी API कॉल की सफलता या विफलता के लिए रिटर्न प्रकार Std_Types.hSRS BSWGeneral पृ. 68 में स्थित होते हैं। मॉडल दृश्य में, प्लेटफ़ॉर्म प्रकार ब्लूप्रिंट के रूप में संग्रहीत होते हैं, उदाहरण के लिए /AUTOSAR/Platform/ImplementationDatatypes_Blueprint/uint8 के अंतर्गत। उन्हें /AUTOSAR_Platform/ImplementationDatatypes/uint8 के अंतर्गत कार्यान्वित किया जाता है, ताकि घटक आपूर्तिकर्ता एक पूर्वानुमेय पथ के माध्यम से उन तक पहुँच सकें TPS StandardizationTemplate पृ. 77।
गारंटीकृत चौड़ाई वाले पूर्णांक और फ़्लोटिंग-पॉइंट प्रकार
मॉड्यूल का मुख्य भाग 8 से 64 बिट की निश्चित चौड़ाई वाले अहस्ताक्षरित और हस्ताक्षरित प्रकार तथा दो फ़्लोटिंग-पॉइंट प्रकार हैं। मानक रूप से, आवश्यकताएँ चौड़ाई और मान सीमा निर्धारित करती हैं, जैसे uint32 के लिए “32 bit unsigned” [SWS_Platform_00015]। API कैटलॉग में C-typedefs, उदाहरण के लिए typedef unsigned long uint32;, को एक विशिष्ट मैपिंग के रूप में पढ़ा जाना चाहिए, जो कंपाइलर के आधार पर भिन्न हो सकती है (व्याख्या)। प्रश्न Q-d0ca377fc1abd98a (खुला)
हस्ताक्षरित प्रकारों के लिए, AUTOSAR कंपाइलर और लक्ष्य पर विशेष रूप से टूज़ कॉम्प्लिमेंट अंकगणित का समर्थन करता है। इससे तालिका [SWS_Platform_00061] की असममित मान सीमाएँ प्राप्त होती हैं। अन्य विनिर्देश इन प्रकारों को निरंतर रूप से पूर्व-आवश्यकता मानते हैं। CRC लाइब्रेरी उदाहरण के लिए uint8 Crc_CalculateCRC8(const uint8*, uint32, uint8, boolean)SWS CRCLibrary पृ. 41 को परिभाषित करती है। COM को uint16 से float64 के लिए एंडियननेस रूपांतरण का समर्थन करना चाहिए RS COM पृ. 14। दोनों संदर्भ बाद के रिलीज़ से हैं और केवल उपयोग को दर्शाते हैं।
काउंटरों और स्थितियों के लिए अनुकूलित प्रकार *_least
सटीक चौड़ाई वाले प्रकारों के अतिरिक्त, यह मॉड्यूल छह अनुकूलित प्रकारों को परिभाषित करता है। वे केवल एक न्यूनतम चौड़ाई की गारंटी देते हैं और क्रमशः uint या sint से व्युत्पन्न होते हैं:
इस प्रकार कार्यान्वयन एक व्यापक निरूपण चुन सकता है। कैटलॉग हस्ताक्षर सभी छह प्रकारों को क्रमशः unsigned int या signed int पर मैप करते हैं [SWS_Platform_00020]।
उपयोग के उदाहरणों के रूप में, विनिर्देश लूप काउंटरों (अधिकतम 124 पुनरावृत्तियाँ ⇒ uint8_least) और switch तर्कों (17 स्थितियाँ ⇒ uint8_least) का उल्लेख करता है। विवरण के लिए, यह सामान्य BSW आवश्यकताओं के अध्याय “AUTOSAR Integer Data Types” को संदर्भित करता है SWS PlatformTypes पृ. 17।
boolean, TRUE और FALSE का नियमों के अनुसार उपयोग करना
boolean की मान सीमा FALSE = 0 और TRUE = 1 है और इसका उपयोग केवल इन परिभाषाओं के साथ ही किया जाना चाहिए [SWS_Platform_00026]। R20-11 के लिए लागू होता है: boolean को सबसे छोटी बिट लंबाई वाले अहस्ताक्षरित पूर्णांक प्रकार के रूप में कार्यान्वित किया जाता है जिसे प्लेटफ़ॉर्म मूल रूप से समर्थित करता है, जो सामान्यतः 8 बिट होता है [SWS_Platform_00027]। R24-11/R25-11 का एक दस्तावेज़ संदर्भ उसी पहचानकर्ता को अलग तरह से तैयार करता है: वहाँ boolean को C99 प्रकार _Bool के माध्यम से कार्यान्वित किया जाता है, और AUTOSAR अब सटीक आकार निर्दिष्ट नहीं करता है SWS PlatformTypes पृ. 18। R20-11 के लिए, यह बाद का संस्करण मानक नहीं है।
boolean को ऐसे प्रकार पर भी मैप किया जाना चाहिए जिस पर पॉइंटर्स इंगित कर सकें, ताकि API के माध्यम से पैरामीटर पास किए जा सकें। कुछ हार्डवेयर के कुशल बिट-प्रकार पॉइंटर-सक्षम नहीं होते हैं और इसलिए बाहर हो जाते हैं [SWS_Platform_00060]। प्रतीकों TRUE और FALSE के लिए तीन नियम लागू होते हैं:
उन्हें #ifndef-सुरक्षा के साथ 1 और 0 के रूप में परिभाषित किया जाता है [SWS_Platform_00056]।
यदि कंपाइलर पहले से ही इन प्रतीकों को प्रदान करता है, तो सशर्त जाँच द्वारा पुनर्परिभाषा से बचा जाना चाहिए [SWS_Platform_00054]।
boolean चरों के असाइनमेंट में अंकगणितीय और बिटवाइज़ ऑपरेटर निषिद्ध हैं: +, ++, -, --, *, /, %, <<, >>, ~ और &। केवल TRUE या FALSE का असाइनमेंट तथा संबंधों, तार्किक संयोजनों और (अ)समानता जाँचों के परिणाम ही अनुमत हैं। तुलना केवल TRUE/FALSE के विरुद्ध == या != के साथ अथवा if (var) या if (!var) के माध्यम से की जाती है [SWS_Platform_00034]। उपभोग करने वाले मॉड्यूल इस पैटर्न का पालन करते हैं। इस प्रकार Bfx_GetBit बिट परीक्षण के परिणाम को स्पष्ट रूप से TRUE या FALSE के रूप में लौटाता है SWS BFXLibrary पृ. 19।
गतिविधि आरेख: boolean चरों के लिए केवल सूचीबद्ध असाइनमेंट और तुलना प्रपत्र ही अनुमत हैं, अंकगणितीय और बिटवाइज़ ऑपरेटर नहीं। स्रोत: [SWS_Platform_00034], [SWS_Platform_00026]
अटाइप किए गए बफ़र पॉइंटर्स: VoidPtr और ConstVoidPtr
दोनों पॉइंटर प्रकार डेटा प्रवाह की दिशा में भिन्न होते हैं:
VoidPtr उन बफ़र्स के लिए एक void* है जिनमें कॉलर को लौटाया गया डेटा होता है [SWS_Platform_91001]।
ConstVoidPtr उन बफ़र्स के लिए एक const void* है जो कॉल किए गए घटक को पास किए जाते हैं [SWS_Platform_91002]।
इंटरफ़ेस में यह कैसा दिखता है, यह Key Manager दर्शाता है। KeyMServiceCertificateByCertId प्रकार uint32 की लंबाई के साथ RequestData को ConstVoidPtr के रूप में पास करता है। प्रतिक्रिया प्रकार VoidPtr के ResponseData को प्राप्त होती है; ResponseDataLength (INOUT) उपलब्ध बफ़र लंबाई को निर्दिष्ट करता है SWS KeyManager पृ. 111। अन्य उदाहरण:
KeyM_CertDataType कॉलर के स्थानीय डेटा क्षेत्र में प्रमाणपत्र डेटा को एक VoidPtr के माध्यम से संदर्भित करता है SWS KeyManager पृ. 97।
तीनों उदाहरणों में, लंबाई को एक अलग uint32 पैरामीटर के रूप में या एक अलग संरचना तत्व के रूप में ले जाया जाता है, क्योंकि एक अटाइप किया गया पॉइंटर कोई लंबाई जानकारी नहीं रखता है।
बिग-एंडियन बिट क्रम के मामले में CPU_BIT_ORDER = MSB_FIRST लागू होता है, लिटिल-एंडियन के लिए LSB_FIRST[SWS_Platform_00048][SWS_Platform_00049] लागू होता है। बिट नामों और सार्थकता को कड़ाई से अलग रखा जाना चाहिए। संचायक में MSB CPU प्रकार की परवाह किए बिना हमेशा सबसे बाईं ओर होता है। मोटोरोला आर्किटेक्चर (Big Endian Bit Order) में, Bit0 सबसे महत्वपूर्ण (highest-value) बिट को निर्दिष्ट करता है, जबकि अन्य सभी में यह सबसे कम महत्वपूर्ण (lowest-value) बिट को निर्दिष्ट करता है SWS PlatformTypes पृ. 15SWS PlatformTypes चित्र 7.1 पृ. 14।
बिग-एंडियन बाइट क्रम के मामले में CPU_BYTE_ORDER = HIGH_BYTE_FIRST लागू होता है: 16-बिट मान का सबसे महत्वपूर्ण बाइट एड्रेस n पर स्थित होता है, और सबसे कम महत्वपूर्ण बाइट एड्रेस n+1 पर होता है। लिटिल-एंडियन के मामले में विपरीत व्यवस्था के साथ LOW_BYTE_FIRST लागू होता है [SWS_Platform_00050][SWS_Platform_00051]। पदनाम Byte0 और Byte1 केवल उदाहरण के लिए हैं और किसी निर्माता के संदर्भ दस्तावेज़ में भिन्न हो सकते हैं SWS PlatformTypes पृ. 16।
अन्य विनिर्देश इस बात का औचित्य बताते हैं कि ये विवरण क्यों आवश्यक हैं। डेटा का मेमोरी निरूपण प्रोसेसर आर्किटेक्चर और कंपाइलर सेटिंग्स पर अत्यधिक निर्भर करता है। इसलिए SOME/IP एक सीरियलाइज़ेशन एल्गोरिदम की माँग करता है, जो इसे एक सामान्य नेटवर्क निरूपण में परिवर्तित करता है RS SOMEIPProtocol पृ. 21। संभवतः कार्यान्वयन में इस प्रकार के रूपांतरण CPU_BYTE_ORDER पर आधारित होते हैं; हालाँकि पेलोड स्पष्ट रूप से इसे सिद्ध नहीं करता है। प्रश्न Q-87e212e9eb2a2047 (खुला)
त्रुटि की स्थिति में व्यवहार
व्याख्या: चूँकि Platform_Types.h केवल प्रकार और प्रतीक प्रदान करता है, इसलिए मॉड्यूल को कोई रनटाइम त्रुटियाँ और कोई त्रुटि कोड ज्ञात नहीं हैं। प्रश्न Q-e504d08b84d7ff70 (खुला) त्रुटि पैटर्न संकलन (compilation), एकीकरण या अनुरूपता परीक्षण के दौरान दिखाई देते हैं। आवश्यकताएँ विशिष्ट कारणों का नाम देती हैं [SWS_Platform_00002]:
हेडर के विस्तार अस्वीकार्य हैं; कोई भी विस्तार अनुरूपता को समाप्त कर देता है [SWS_Platform_00002]।
एक गैर-पॉइंटर-सक्षम boolean[SWS_Platform_00060] का उल्लंघन करता है, क्योंकि तब पैरामीटर API के माध्यम से पास नहीं किए जा सकते हैं।
boolean पर अंकगणित या बिट संचालन की अनुमति नहीं है, और न ही सूचीबद्ध तुलना रूपों [SWS_Platform_00034] के अलावा अन्य की।
ऐसा कोड जो वन्स कॉम्प्लिमेंट या सममित मान सीमाओं को पूर्वमान्यता देता है, समर्थित नहीं है, क्योंकि केवल टूज़ कॉम्प्लिमेंट समर्थित है [SWS_Platform_00061]।
रिलीज़ बदलते समय boolean के विनिर्देश का ध्यान रखा जाना चाहिए: R20-11 [SWS_Platform_00027] और बाद के संस्करण SWS PlatformTypes पृ. 18 भिन्न हैं। इसलिए boolean के एक निश्चित आकार को पूर्वमान्यता देने वाले कोड की परिवर्तन से पहले जाँच की जानी चाहिए।
This standard AUTOSAR type shall follow the 32-bit binary interchange format according to IEEE 754-2008 with encoding parameters specified in chapter 3.6, table 3.5, column "binary32".
This standard AUTOSAR type shall follow the 64-bit binary interchange format according to IEEE 754-2008 with encoding parameters specified in chapter 3.6, table 3.5, column "binary64".
This standard AUTOSAR type shall follow the 32-bit binary interchange format according to IEEE 754-2008 with encoding parameters specified in chapter 3.6, table 3.5, column "binary32".
This standard AUTOSAR type shall follow the 64-bit binary interchange format according to IEEE 754-2008 with encoding parameters specified in chapter 3.6, table 3.5, column "binary64".
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल