Specification Of Compiler Abstraction - AUTOSAR

Transcription

Specification of Compiler AbstractionAUTOSAR CP Release 4.3.1Document TitleSpecification of CompilerAbstractionDocument OwnerDocument ResponsibilityDocument Identification NoAUTOSARAUTOSAR051Document StatusPart of AUTOSAR StandardPart of Standard ReleaseFinalClassic Platform4.3.1Document Change HistoryDateRelease Changed 21 of ange Description Editorial changes Clarification regarding modulespecific memory classes and globalmemory classes Removed chapter 'Variants' Removed obsolete elements Cleanup the requirementstraceability Clarify the list of compiler symbols The compiler symbol definitions arenot allowed to contain any valuebehind the symbol Rework the document structure inorder to follow TMPS SRS SWSand replace hardcoded diagramswith artifacts Remove all MISRA/ C/ C relatedstatements and references Correct the unresolved referencesthat point in SRS BSWGeneral Editorial changes Removed chapter(s) on changedocumentationDocument ID 051: AUTOSAR SWS CompilerAbstraction- AUTOSAR confidential -

Specification of Compiler AbstractionAUTOSAR CP Release 4.3.1Document Change HistoryDateRelease Changed -08-133.1.1AUTOSARAdministration2 of 53Change Description Added abstraction macroCONSTP2FUNC for a constantpointer to a function Improved consistency to MemoryMapping (several MemMap.h files) Reworked ConfigurationSpecification Added macros ‚FUNC P2CONST‘and ‘FUNC P2VAR’ Added pointer class ‘REGSPACE’(for register access) Updated the compiler symbols list Put more emphasize onSwComponentType’s name inSWS COMPILER 00054,COMPILER044 Corrected compiler used in theexample (chapter 7.1.5) Corrected include structure in theexample (chapter 7.1.5) Compiler Abstraction has beenextended to be suitable for SoftwareComponents "STATIC" declaration keyword hasbeen removed The declaration keyword"LOCAL INLINE" has been addedfor implementation of "static inline"functions Legal disclaimer revised Legal disclaimer revisedDocument ID 051: AUTOSAR SWS CompilerAbstraction- AUTOSAR confidential -

Specification of Compiler AbstractionAUTOSAR CP Release 4.3.1Document Change HistoryDateRelease Changed istration3 of 53Change Description Keyword " STATIC " has beenrenamed to "STATIC" Keyword " INLINE " has beenrenamed to "INLINE" Keyword "TYPEDEF" has beenadded as empty memory qualifierfor use in type definitions Document meta informationextended Small layout adaptations made Add: COMPILER058 Add: COMPILER057 Change: SWS COMPILER 00040 Legal disclaimer revised Release Notes added “Advice for users” revised “Revision Information” added Initial ReleaseDocument ID 051: AUTOSAR SWS CompilerAbstraction- AUTOSAR confidential -

Specification of Compiler AbstractionAUTOSAR CP Release 4.3.1DisclaimerThis work (specification and/or software implementation) and the material containedin it, as released by AUTOSAR, is for the purpose of information only. AUTOSARand the companies that have contributed to it shall not be liable for any use of thework.The material contained in this work is protected by copyright and other types ofintellectual property rights. The commercial exploitation of the material contained inthis work requires a license to such intellectual property rights.This work may be utilized or reproduced without any modification, in any form or byany means, for informational purposes only. For any other purpose, no part of thework may be utilized or reproduced, in any form or by any means, without permissionin writing from the publisher.The work has been developed for automotive applications only. It has neither beendeveloped, nor tested for non-automotive applications.The word AUTOSAR and the AUTOSAR logo are registered trademarks.4 of 53Document ID 051: AUTOSAR SWS CompilerAbstraction- AUTOSAR confidential -

Specification of Compiler AbstractionAUTOSAR CP Release 4.3.1Table of Contents1Introduction and functional overview . 72Acronyms and abbreviations . 83Related documentation. 93.13.24Input documents . 9Related specification . 10Constraints and assumptions . 114.14.24.35Limitations . 11Applicability to car domains . 11Applicability to safety related environments . 11Dependencies to other modules . 125.1File structure . 126Requirements traceability . 137Functional specification . 227.1General behavior . 227.1.1List of Compiler symbols . 227.1.2Requirements on implementations using compiler abstraction . 227.1.3Contents of Compiler.h . 267.1.4Contents of Compiler Cfg.h . 277.1.5Comprehensive example . 287.1.6Proposed process . 307.2Development Errors . 317.3Production Errors . 317.4Extended Production Errors . 317.5Error detection . 317.6Error notification . 317.7Version check . 317.8Support for Debugging . 318API specification . 328.1Imported types. 328.2Macro definitions . 328.2.1General definitions . 328.2.1.1 Memory class AUTOMATIC . 328.2.1.2 Memory class TYPEDEF . 328.2.1.3 NULL PTR . 338.2.1.4 INLINE . 338.2.1.5 LOCAL INLINE . 338.2.2Function definitions . 338.2.2.1 FUNC identification information . 358.2.2.2 FUNC P2CONST . 368.2.2.3 FUNC P2VAR . 378.2.3Pointer definitions. 375 of 53Document ID 051: AUTOSAR SWS CompilerAbstraction- AUTOSAR confidential -

Specification of Compiler AbstractionAUTOSAR CP Release 4.3.18.2.3.1 P2VAR . 428.2.3.2 P2CONST. 438.2.3.3 CONSTP2VAR . 448.2.3.4 CONSTP2CONST . 448.2.3.5 P2FUNC . 458.2.3.6 CONSTP2FUNC . 468.2.4Constant definitions. 468.2.4.1 CONST . 468.2.5Variable definitions . 478.2.5.1 VAR . 478.3Type definitions . 488.4Function definitions . 488.5Call-back notifications . 488.6Scheduled functions . 488.7Expected Interfaces. 488.7.1Mandatory Interfaces . 488.7.2Optional Interfaces . 488.7.3Configurable interfaces . 488.8Service Interfaces. 498.8.1Scope of this Chapter . 498.8.2Overview . 498.8.3Specification of the Ports and Port Interfaces . 498.8.3.1 General Approach . 498.8.3.2 Data Types . 498.8.3.3 Port Interface . 498.8.4Definition of the Service . 498.8.5Configuration of the DET . 499Sequence diagrams. 5010Configuration specification . 5110.1 How to read this chapter . 5110.2 Containers and configuration parameters . 5110.2.1 Module-Specific Memory Classes . 5110.2.2 Global Memory Classes . 5110.3 Published Information. 52116 of 53Not applicable requirements . 53Document ID 051: AUTOSAR SWS CompilerAbstraction- AUTOSAR confidential -

Specification of Compiler AbstractionAUTOSAR CP Release 4.3.11 Introduction and functional overviewThis document specifies macros for the abstraction of compiler specific keywordsused for addressing data and code within declarations and definitions.Mainly compilers for 16-bit platforms (e.g. Cosmic and Metrowerks for S12X orTasking for ST10) are using special keywords to cope with properties of themicrocontroller architecture caused by the limited 16 bit addressing range. Featureslike paging and extended addressing (to reach memory beyond the 64k border) arenot chosen automatically by the compiler, if the memory model is not adjusted to‘large’ or ‘huge’. The location of data and code has to be selected explicitly by specialkeywords. Those keywords, if directly used within the source code, would make itnecessary to port the software to each new microcontroller family and would prohibitthe requirement of platform independency of source code.If the memory model is switched to ‘large’ or ‘huge’ by default (to circumvent theseproblems) the project will suffer from an increased code size.This document specifies a three-step concept:1. The file Compiler.h provides macros for the encapsulation of definitions anddeclarations.2. Each single module has to distinguish between at least the following differentmemory classes and pointer classes. Each of these classes is represented bya define.3. The file Compiler Cfg.h allows to configure these defines with the appropriatecompiler specific keywords according to the modules description and memoryset-up of the build scenario.7 of 53Document ID 051: AUTOSAR SWS CompilerAbstraction- AUTOSAR confidential -

Specification of Compiler AbstractionAUTOSAR CP Release 4.3.12 Acronyms and abbreviationsAcronyms and abbreviations that have a local scope are not contained in theAUTOSAR glossary. These must appear in a local glossary.Acronym:Description:Large, hugeMemory model configuration of the microcontroller’s compiler. By default, all accessmechanisms are using extended/paged addressing.Tiny, smallfarnear8 of 53Some compilers are using the term ‘huge’ instead of ‘far’.Memory model configuration of the microcontroller’s compiler. By default, all accessmechanisms are using normal addressing.Only data and code within the addressing range of the platform’s architecture isreachable (e.g. 64k on a 16 bit architecture).Compiler keyword for extended/paged addressing scheme (for data and code thatmay be outside the normal addressing scheme of the platform’s architecture).Compiler keyword for normal addressing scheme (for data and code that is withinthe addressing range of the platform’s architecture).Document ID 051: AUTOSAR SWS CompilerAbstraction- AUTOSAR confidential -

Specification of Compiler AbstractionAUTOSAR CP Release 4.3.13 Related documentation3.1 Input documents[1]List of Basic Software Modules,AUTOSAR TR BSWModuleList.pdf[2]General Requirements on Basic Software Modules,AUTOSAR SRS BSWGeneral.pdf[3]Layered Software Architecture,AUTOSAR EXP LayeredSoftwareArchitecture.pdf[4]Specification of ECU Configuration,AUTOSAR TPS ECUConfiguration.pdf[5]Cosmic C Cross Compiler User’s Guide for Motorola MC68HC12,V4.5[6]ARM ADS compiler manual[7]GreenHills MULTI for V850 V4.0.5:Building Applications for Embedded V800, V4.0, 30.1.2004[8]TASKING for ST10 V8.5:C166/ST10 v8.5 C Cross-Compiler User's Manual, V5.16C166/ST10 v8.5 C Cross-Assembler, Linker/Locator, Utilities User's Manual,V5.16[9]Wind River (Diab Data) for PowerPC Version 5.2.1:Wind River Compiler for Power PC - Getting Started, Edition 2, 8.5.2004Wind River Compiler for Power PC - User's Guide, Edition 2, 11.5.2004[10] TASKING for TriCore TC1796 V2.0R1:TriCore v2.0 C Cross-Compiler, Assembler, Linker User's Guide, V1.2[11] Metrowerks CodeWarrior 4.0 for Freescale HC9S12X/XGATE (V5.0.25):Motorola HC12 Assembler, 2.6.2004Motorola HC12 Compiler, 2.6.2004Smart Linker, 2.4.2004[12] General Specification of Basic Software ModulesAUTOSAR SWS BSWGeneral.pdf[13] Specification of Memory MappingAUTOSAR SWS MemoryMapping.pdf9 of 53Document ID 051: AUTOSAR SWS CompilerAbstraction- AUTOSAR confidential -

Specification of Compiler AbstractionAUTOSAR CP Release 4.3.13.2 Related specificationAUTOSAR provides a General Specification on Basic Software modules [12] (SWSBSW General), which is also valid for Compiler Abstraction.Thus, the specification SWS BSW General shall be considered as additional andrequired specification for Compiler Abstraction.10 of 53Document ID 051: AUTOSAR SWS CompilerAbstraction- AUTOSAR confidential -

Specification of Compiler AbstractionAUTOSAR CP Release 4.3.14 Constraints and assumptions4.1 LimitationsDuring specification of abstraction and validation of concept, the compilers listed inchapter 3.1 has been considered. If any other compiler requires keywords thatcannot be mapped to the mechanisms described in this specification this compilerwill not be supported by AUTOSAR. In this case, the compiler vendor has to adapt itscompiler.If the physically existing memory is larger than the logically addressable memory ineither code space or data space and more than the logically addressable space isused, logical addresses have to be re-used. The C language (and other languagesas well) cannot cope with this situation.4.2 Applicability to car domainsNo restrictions.4.3 Applicability to safety related environmentsNo restrictions. The compiler abstraction file does not implement any functionality,only symbols and macros.11 of 53Document ID 051: AUTOSAR SWS CompilerAbstraction- AUTOSAR confidential -

Specification of Compiler AbstractionAUTOSAR CP Release 4.3.15 Dependencies to other modules[SWS COMPILER 00048] ⌈ The SWS Compiler Abstraction is applicable for eachAUTOSAR basic software module and application software components. Therefore,the implementation of the memory class (memclass) and pointer class (ptrclass)macro parameters (see SWS COMPILER 00040) shall fulfill the implementation andconfiguration specific needs of each software module in a specific build scenario.⌋ (SRS BSW 00328, SRS BSW 00384)5.1 File structureFigure 1: Include structure of Compiler.hThe following notes shall describe the connections to modules, which are indirectlylinked to each other.Note 1: The compiler abstraction is used to configure the reachability of elements(pointers, variables, function etc.).Note 2: The memory mapping is used to perform the sectioning of memory. The usercan define sections for optimizing the source code.Note 3: The linker settings are responsible with the classification which elements areassigned to which memory section.12 of 53Document ID 051: AUTOSAR SWS CompilerAbstraction- AUTOSAR confidential -

Specification of Compiler AbstractionAUTOSAR CP Release 4.3.16 Requirements traceabilityThe requirements above are derived from SRS BSWGeneral.RequirementDescriptionSRS BSW 00003 All software modules shallprovide version andidentification informationSatisfied bySWS COMPILER 00001SRS BSW 00004 All Basic SW Modules shallSWS COMPILER 00999perform a pre-processor checkof the versions of all importedinclude filesSRS BSW 00005 Modules of the µC AbstractionLayer (MCAL) may not havehard coded horizontalinterfacesSWS COMPILER 00999SRS BSW 00006 The source code of softwareSWS COMPILER 00010,modules above the µCSWS COMPILER 00035,Abstraction Layer (MCAL) shall SWS COMPILER 00036not be processor and compilerdependent.SRS BSW 00007 All Basic SW Modules written SWS COMPILER 00999in C language shall conform tothe MISRA C 2012 Standard.SRS BSW 00009 All Basic SW Modules shall be SWS COMPILER 00999documented according to acommon standard.SRS BSW 00010 The memory consumption ofall Basic SW Modules shall bedocumented for a definedconfiguration for all supportedplatforms.SWS COMPILER 00999SRS BSW 00158 All modules of the AUTOSARBasic Software shall strictlyseparate configuration fromimplementationSWS COMPILER 00999SRS BSW 00161 The AUTOSAR Basic Software SWS COMPILER 00999shall provide a microcontrollerabstraction layer whichprovides a standardizedinterface to higher softwarelayersSRS BSW 00162 The AUTOSAR Basic Software SWS COMPILER 00999shall provide a hardwareabstraction layerSRS BSW 00164 The Implementation ofinterrupt service routines shallbe done by the OperatingSystem, complex drivers ormodulesSWS COMPILER 00999SRS BSW 00167 All AUTOSAR Basic SoftwareSWS COMPILER 0099913 of 53Document ID 051: AUTOSAR SWS CompilerAbstraction- AUTOSAR confidential -

Specification of Compiler AbstractionAUTOSAR CP Release 4.3.1Modules shall provideconfiguration rules andconstraints to enableplausibility checksSRS BSW 00168 SW components shall betested by a function defined ina common API in the BasisSWSWS COMPILER 00999SRS BSW 00170 The AUTOSAR SWSWS COMPILER 00999Components shall provideinformation about theirdependency from faults, signalqualities, driver demandsSRS BSW 00171 Optional functionality of aSWS COMPILER 00999Basic-SW component that isnot required in the ECU shallbe configurable at pre-compiletimeSRS BSW 00172 The scheduling strategy that is SWS COMPILER 00999built inside the Basic SoftwareModules shall be compatiblewith the strategy used in thesystemSRS BSW 00300 All AUTOSAR Basic SoftwareModules shall be identified byan unambiguous nameSWS COMPILER 00999SRS BSW 00301 All AUTOSAR Basic SoftwareModules shall only import thenecessary informationSWS COMPILER 00999SRS BSW 00302 All AUTOSAR Basic SoftwareModules shall only exportinformation needed by othermodulesSWS COMPILER 00999SRS BSW 00305 Data types naming conventionSWS COMPILER 00999SRS BSW 00306 AUTOSAR Basic SoftwareSWS COMPILER 00010,Modules shall be compiler and SWS COMPILER 00035,platform independentSWS COMPILER 00036,SWS COMPILER 00058SRS BSW 00307 Global variables namingconventionSWS COMPILER 00999SRS BSW 00308 AUTOSAR Basic SoftwareSWS COMPILER 00999Modules shall not define globaldata in their header files, but inthe C fileSRS BSW 00309 All AUTOSAR Basic SoftwareModules shall indicate allglobal data with read-onlypurposes by explicitlyassigning the const keywordSWS COMPILER 00023,SWS COMPILER 00999SRS BSW 00310 API naming conventionSWS COMPILER 00999SRS BSW 00312 Shared code shall be reentrant SWS COMPILER 00999SRS BSW 00314 All internal driver modules shall SWS COMPILER 0099914 of 53Document ID 051: AUTOSAR SWS CompilerAbstraction- AUTOSAR confidential -

Specification of Compiler AbstractionAUTOSAR CP Release 4.3.1separate the interrupt framedefinition from the serviceroutineSRS BSW 00323 All AUTOSAR Basic SoftwareModules shall check passedAPI parameters for validitySWS COMPILER 00999SRS BSW 00325 The runtime of interrupt service SWS COMPILER 00999routines and functions that arerunning in interrupt contextshall be kept shortSRS BSW 00327 Error values namingconventionSWS COMPILER 00999SRS BSW 00328 All AUTOSAR Basic SoftwareModules shall avoid theduplication of codeSWS COMPILER 00048SRS BSW 00330 It shall be allowed to useSWS COMPILER 00999macros instead of functionswhere source code is used andruntime is criticalSRS BSW 00331 All Basic Software ModulesSWS COMPILER 00999shall strictly separate error andstatus informationSRS BSW 00333 For each callback function itshall be specified if it is calledfrom interrupt context or notSWS COMPILER 00999SRS BSW 00334 All Basic Software Modulesshall provide an XML file thatcontains the meta dataSWS COMPILER 00999SRS BSW 00335 Status values namingconventionSWS COMPILER 00999SRS BSW 00336 Basic SW module shall be able SWS COMPILER 00999to shutdownSRS BSW 00339 Reporting of productionrelevant error statusSWS COMPILER 00999SRS BSW 00341 Module documentation shallcontains all neededinformationsSWS COMPILER 00999SRS BSW 00342 It shall be possible to create an SWS COMPILER 00999AUTOSAR ECU out ofmodules provided as sourcecode and modules provided asobject code, even mixedSRS BSW 00343 The unit of time forspecification and configurationof Basic SW modules shall bepreferably in physical time unitSWS COMPILER 00999SRS BSW 00344 BSW Modules shall supportlink-time configurationSWS COMPILER 00999SRS BSW 00346 All AUTOSAR Basic SoftwareModules shall provide at leasta basic set of module filesSWS COMPILER 0099915 of 53Document ID 051: AUTOSAR SWS CompilerAbstraction- AUTOSAR confidential -

Specification of Compiler AbstractionAUTOSAR CP Release 4.3.1SRS BSW 00347 A Naming seperation ofdifferent instances of BSWdrivers shall be in placeSWS COMPILER 00050SRS BSW 00348 All AUTOSAR standard typesand constants shall be placedand organized in a standardtype header fileSWS COMPILER 00003,SWS COMPILER 00004SRS BSW 00350 All AUTOSAR Basic SoftwareModules shall allow theenabling/disabling of detectionand reporting of developmenterrors.SWS COMPILER 00999SRS BSW 00351 Encapsulation of compilerspecific methods to mapobjectsSWS COMPILER 00999SRS BSW 00353 All integer type definitions oftarget and compiler specificscope shall be placed andorganized in a single typeheaderSWS COMPILER 00999SRS BSW 00357 For success/failure of an APIcall a standard return typeshall be definedSWS COMPILER 00999SRS BSW 00358 The return type of init()functions implemented byAUTOSAR Basic SoftwareModules shall be voidSWS COMPILER 00999SRS BSW 00359 All AUTOSAR Basic SoftwareModules callback functionsshall avoid return types otherthan void if possibleSWS COMPILER 00999SRS BSW 00360 AUTOSAR Basic SoftwareSWS COMPILER 00999Modules callback functions areallowed to have parametersSRS BSW 00361 All mappings of notstandardized keywords ofcompiler specific scope shallbe placed and organized in acompiler specific type andkeyword header16 of 5313, SWS COMPILER 00003,SWS COMPILER 00004,SWS COMPILER 00006,SWS COMPILER 00013,SWS COMPILER 00026,SWS COMPILER 00031,SWS COMPILER 00032,SWS COMPILER 00039,SWS COMPILER 00040,SWS COMPILER 00041,SWS COMPILER 00046,SWS COMPILER 00047,SWS COMPILER 00053,SWS COMPILER 00055,SWS COMPILER 00057,SWS COMPILER 00060,SWS COMPILER 00061,SWS COMPILER 00062,SWS COMPILER 00063,SWS COMPILER 00064,SWS COMPILER 00065Document ID 051: AUTOSAR SWS CompilerAbstraction- AUTOSAR confidential -

Specification of Compiler AbstractionAUTOSAR CP Release 4.3.1SRS BSW 00369 All AUTOSAR Basic SoftwareModules shall not returnspecific development errorcodes via the APISWS COMPILER 00999SRS BSW 00371 The passing of functionpointers as API parameter isforbidden for all AUTOSARBasic Software ModulesSWS COMPILER 00999SRS BSW 00373 The main processing functionof each AUTOSAR BasicSoftware Module shall benamed according the definedconventionSWS COMPILER 00999SRS BSW 00374 All Basic Software Modulesshall provide a readablemodule vendor identificationSWS COMPILER 00030SRS BSW 00375 Basic Software Modules shallreport wake-up reasonsSWS COMPILER 00999SRS BSW 00377 A Basic Software Module canreturn a module specific typesSWS COMPILER 00999SRS BSW 00378 AUTOSAR shall provide aboolean typeSWS COMPILER 00999SRS BSW 00380 Configuration parametersbeing stored in memory shallbe placed into separate c-filesSWS COMPILER 00999SRS BSW 00383 The Basic Software ModuleSWS COMPILER 00999specifications shall specifywhich other configuration filesfrom other modules they use atleast in the descriptionSRS BSW 00384 The Basic Software Modulespecifications shall specify atleast in the description whichother modules they requireSWS COMPILER 00048SRS BSW 00385 List possible error notificationsSWS COMPILER 00999SRS BSW 00386 The BSW shall specify theconfiguration for detecting anerrorSWS COMPILER 00999SRS BSW 00388 Containers shall be used toSWS COMPILER 00040,group configurationSWS COMPILER 00999parameters that are defined forthe same objectSRS BSW 00389 Containers shall have namesSWS COMPILER 00999SRS BSW 00390 Parameter content shall beunique within the moduleSWS COMPILER 00999SRS BSW 00392 Parameters shall have a typeSWS COMPILER 00999SRS BSW 00393 Parameters shall have a range SWS COMPILER 00999SRS BSW 00394 The Basic Software Modulespecifications shall specify thescope of the configurationparameters17 of 53SWS COMPILER 00999Document ID 051: AUTOSAR SWS CompilerAbstraction- AUTOSAR confidential -

Specification of Compiler AbstractionAUTOSAR CP Release 4.3.1SRS BSW 00395 The Basic Software Modulespecifications shall list allconfiguration parameterdependenciesSWS COMPILER 00999SRS BSW 00396 The Basic Software Modulespecifications shall specify thesupported configurationclasses for changing valuesand multiplicities for eachparameter/containerSWS COMPILER 00999SRS BSW 00398 The link-time configuration isachieved on object code basisin the stage after compilingand before linkingSWS COMPILER 00999SRS BSW 00399 Parameter-sets shall belocated in a separate segmentand shall be loaded after thecodeSWS COMPILER 00999SRS BSW 00400 Parameter shall be selectedfrom multiple sets ofparameters after code hasbeen loaded and startedSWS COMPILER 00999SRS BSW 00401 Documentation of multipleinstances of configurationparameters shall be availableSWS COMPILER 00999SRS BSW 00403 The Basic Software Modulespecifications shall specify foreach parameter/containerwhether it supports differentvalues or multiplicity indifferent configuration setsSWS COMPILER 00999SRS BSW 00404 BSW Modules shall supportpost-build configurationSWS COMPILER 00059,SWS COMPILER 00999SRS BSW 00405 BSW Modules shall supportmultiple configuration setsSWS COMPILER

Wind River Compiler for Power PC - Getting Started, Edition 2, 8.5.2004 Wind River Compiler for Power PC - User's Guide, Edition 2, 11.5.2004 [10] TASKING for TriCore TC1796 V2.0R1: TriCore v2.0 C Cross-Compiler, Assembler, Linker User's Guide, V1.2 [11] Metrowerks CodeWarrior 4.0 for Freescale HC9S12X/XGATE (V5.0.25):