| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
-
- Copyright (c) 2013-2016 ARM Limited. All rights reserved.
-
- SPDX-License-Identifier: Apache-2.0
-
- Licensed under the Apache License, Version 2.0 (the License); you may
- not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an AS IS BASIS, WITHOUT
- WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- $Date: 12. July 2016
- $Revision: 1.4.6
- $Project: Schema File for Package Description File Format Specification
- Package file name convention <vendor>.<name>.<version>.pack
- SchemaVersion=1.4
- 12. July 2016: 1.4.6
- - refined Dname string restriction
-
- 13. June 2016: 1.4.5
- - added: Punits to ProcessorType
- - added: Punit to DebugType
-
- 26. April 2016: 1.4.4
- - added: attribute defaultResetSequence to DebugType.
- - added: <requirements> section:
- - <packages> defining dependencies between packs
- - <languages> defining required language support e.g. C99
- - <compiler> defining required toolchains
- - added: <create> section used for tool independent project description
- - attributes: name, documentation, condition
- - <target> specifies the board and device targeted by the project
- - <options>
- - <files> specifies the grouped files
- - updated: <algorith> element
- - added attributes: style, parameter and endian
- - updated: <memory> element
- - added attributes: name, access and alias
- - deprecating attribute: id (replaced by name + access)
-
- 03. Dec 2015: 1.4.3
- - adding attribute "sdf" to devices section element debugconfig
-
- 16. Oct 2015: 1.4.1
- - Pname, Dname, Dvariant type changed from xs:string to RestrictedString
- 28. Aug 2015: 1.4.0
- - deprecate devices memory tag attribute id and use
- introduced name and access attributes instead
- - added devices memory tag attribute: alias
- - added devices algorithm tag attribute: style
- - added attribute to define a default component variant
- - added board book category: layout
-
- 29. May 2015
- - added missing Pname attribute to GeneratorDeviceSelectType used for multi processor
- devices
- 12. Jan. 2014
- - allow to link a component with a generator via new component attribute
- - generator command extended to deal with more sophisticated command lines / document sequence
-
- -->
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="qualified" version="1.4">
- <!-- NonNegativeInteger specifies the format in which numbers are represented in hexadecimal or decimal format -->
- <xs:simpleType name="NonNegativeInteger">
- <xs:restriction base="xs:string">
- <xs:pattern value="[+]?(0x|0X)?[0-9a-fA-F]+"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Registered Device Vendors -->
- <xs:simpleType name="DeviceVendorEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="ABOV Semiconductor:126"/>
- <xs:enumeration value="Actel:56"/>
- <xs:enumeration value="Altera:85"/>
- <xs:enumeration value="Altium:65"/>
- <xs:enumeration value="Ambiq Micro:120"/>
- <xs:enumeration value="Analog Devices:1"/>
- <xs:enumeration value="ARM:82"/>
- <xs:enumeration value="ARM CMSIS:109"/>
- <xs:enumeration value="Atmel:3"/>
- <xs:enumeration value="CSR:118"/>
- <xs:enumeration value="Cypress:19"/>
- <xs:enumeration value="Dialog Semiconductor:113"/>
- <xs:enumeration value="Dolphin:57"/>
- <xs:enumeration value="Domosys:26"/>
- <xs:enumeration value="Elmos Semiconductor AG:138"/>
- <xs:enumeration value="Ember:98"/>
- <xs:enumeration value="Energy Micro:97"/>
- <xs:enumeration value="EnOcean:91"/>
- <xs:enumeration value="Evatronix:64"/>
- <xs:enumeration value="Generic:5"/>
- <xs:enumeration value="GigaDevice:123"/>
- <xs:enumeration value="Holtek:106"/>
- <xs:enumeration value="Hynix Semiconductor:6"/>
- <xs:enumeration value="Hyundai:35"/>
- <xs:enumeration value="Infineon:7"/>
- <xs:enumeration value="Kionix:127"/>
- <xs:enumeration value="Lapis Semiconductor:10"/>
- <xs:enumeration value="Linear Technology:136"/>
- <xs:enumeration value="Luminary Micro:76"/>
- <xs:enumeration value="Maxim:23"/>
- <xs:enumeration value="MediaTek:129"/>
- <xs:enumeration value="MegaChips:128"/>
- <xs:enumeration value="Mentor Graphics Co.:24"/>
- <xs:enumeration value="Micronas:30"/>
- <xs:enumeration value="Microsemi:112"/>
- <xs:enumeration value="Milandr:99"/>
- <xs:enumeration value="MindMotion:132"/>
- <xs:enumeration value="NetSilicon:67"/>
- <xs:enumeration value="Nordic Semiconductor:54"/>
- <xs:enumeration value="Nuvoton:18"/>
- <xs:enumeration value="NXP:11"/>
- <xs:enumeration value="OKI SEMICONDUCTOR CO.,LTD.:108"/>
- <xs:enumeration value="Panasonic:131"/>
- <xs:enumeration value="Realtek Semiconductor:124"/>
- <xs:enumeration value="Redpine Signals:125"/>
- <xs:enumeration value="Renesas:117"/>
- <xs:enumeration value="ROHM:103"/>
- <xs:enumeration value="Samsung:47"/>
- <xs:enumeration value="Silicon Labs:21"/>
- <xs:enumeration value="SONiX:110"/>
- <xs:enumeration value="Spansion:100"/>
- <xs:enumeration value="STMicroelectronics:13"/>
- <xs:enumeration value="Sunrise Micro Devices:121"/>
- <xs:enumeration value="TI:16"/>
- <xs:enumeration value="Texas Instruments:16"/>
- <xs:enumeration value="Toshiba:92"/>
- <xs:enumeration value="Triad Semiconductor:104"/>
- <xs:enumeration value="Vorago:137"/>
- <xs:enumeration value="WIZnet:122"/>
- <xs:enumeration value="Xinnova:135"/>
- <xs:enumeration value="Zilog:89"/>
- <!-- deprecated: do not use -->
- <xs:enumeration value="Freescale:78"/>
- <xs:enumeration value="Freescale Semiconductor:78"/>
- <xs:enumeration value="NXP (founded by Philips):11"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- AlgorithmStyleType: allow support of different flash programming algorithm styles -->
- <xs:simpleType name="AlgorithmStyleType">
- <xs:restriction base="xs:token">
- <xs:enumeration value="Keil"/>
- <xs:enumeration value="IAR"/>
- <xs:enumeration value="CMSIS"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Component Class Name Type: specify your own Class in taxonomy -->
- <xs:simpleType name="CclassType">
- <xs:restriction base="xs:string">
- <xs:minLength value="3"/>
- <xs:maxLength value="32"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Component Group Name Type -->
- <xs:simpleType name="CgroupType">
- <xs:restriction base="xs:string">
- <xs:minLength value="3"/>
- <xs:maxLength value="32"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Component Sub Name Type -->
- <xs:simpleType name="CsubType">
- <xs:restriction base="xs:string">
- <xs:minLength value="0"/>
- <xs:maxLength value="32"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Component Variant Name Type -->
- <xs:simpleType name="CvariantType">
- <xs:restriction base="xs:string">
- <xs:minLength value="3"/>
- <xs:maxLength value="32"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- AccessType (added in 1.4.4) -->
- <xs:simpleType name="AccessType">
- <xs:restriction base="xs:string">
- <xs:pattern value="[rwxpsnc]+"/>
- </xs:restriction>
- </xs:simpleType>
-
- <!-- Processor Type -->
- <xs:complexType name="ProcessorType">
- <!-- Pname defines an identifier for a specific processor in a multi-processor devices -->
- <xs:attribute name="Pname" type="RestrictedString"/>
- <!-- Punits specifies the number of processing units in a symmetric multi-processor core -->
- <xs:attribute name="Punits" type="InstancesType"/>
- <!-- Dcore specifies the processor from a list of supported processors -->
- <xs:attribute name="Dcore" type="DcoreEnum"/>
- <!-- Dfpu specifies the hardware floating point unit -->
- <xs:attribute name="Dfpu" type="DfpuEnum"/>
- <!-- Dmpu specifies the memory protection unit -->
- <xs:attribute name="Dmpu" type="DmpuEnum"/>
- <!-- Dendian specifies the endianess supported by the processor -->
- <xs:attribute name="Dendian" type="DendianEnum"/>
- <!-- Dclock specifies the maximum core clock frequency -->
- <xs:attribute name="Dclock" type="xs:unsignedInt"/>
- <!-- DcoreVersion specifies the revision of the processor -->
- <xs:attribute name="DcoreVersion" type="xs:string"/>
- </xs:complexType>
- <!-- Compile Type: -->
- <xs:complexType name="CompileType">
- <!-- Pname identifies the processor this setting belongs to -->
- <xs:attribute name="Pname" type="RestrictedString" use="optional"/>
- <!-- CMSIS-CORE device header file (sets compiler include path) -->
- <xs:attribute name="header" type="xs:string"/>
- <!-- Device specific preprocessor define (sets preprocessor define -->
- <xs:attribute name="define" type="xs:string"/>
- <!-- Processor instance specific preprocessor define (sets preprocessor define on the commandline) -->
- <xs:attribute name="Pdefine" type="xs:string"/>
- </xs:complexType>
- <!-- DebugVarsType -->
- <xs:complexType name="DebugVarsType">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="configfile" type="xs:string" use="optional"/>
- <xs:attribute name="version" type="VersionType" use="optional"/>
- <xs:attribute name="Pname" type="xs:string" use="optional"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <!-- DebugProtocolEnum -->
- <xs:simpleType name="DebugProtocolEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="jtag"/>
- <xs:enumeration value="cjtag"/>
- <xs:enumeration value="swd"/>
- </xs:restriction>
- </xs:simpleType>
-
- <!-- DebugConfigType -->
- <xs:complexType name="DebugConfigType">
- <xs:attribute name="default" type="DebugProtocolEnum" use="optional" default="swd"/>
- <xs:attribute name="clock" type="xs:unsignedInt" use="optional"/>
- <xs:attribute name="swj" type="xs:boolean" use="optional"/>
- <!-- Debugger System Description File -->
- <xs:attribute name="sdf" type="xs:string" use="optional"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- JtagType -->
- <xs:complexType name="JtagType">
- <xs:attribute name="tapindex" type="NonNegativeInteger" use="optional"/>
- <xs:attribute name="idcode" type="NonNegativeInteger" use="optional"/>
- <xs:attribute name="targetsel" type="NonNegativeInteger" use="optional"/>
- <xs:attribute name="irlen" type="xs:unsignedInt" use="optional"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- SwdType -->
- <xs:complexType name="SwdType">
- <xs:attribute name="idcode" type="NonNegativeInteger" use="optional"/>
- <xs:attribute name="targetsel" type="NonNegativeInteger" use="optional"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- DebugPortType -->
- <xs:complexType name="DebugPortType">
- <xs:sequence>
- <xs:element name="jtag" type="JtagType" minOccurs="0" maxOccurs="1"/>
- <xs:element name="swd" type="SwdType" minOccurs="0" maxOccurs="1"/>
- </xs:sequence>
- <xs:attribute name="__dp" type="xs:unsignedInt" use="optional"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- DataPatchAccessTypeEnum enumeration type -->
- <xs:simpleType name="DataPatchAccessTypeEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="DP"/>
- <xs:enumeration value="AP"/>
- <xs:enumeration value="Mem"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ExpressionType -->
- <xs:simpleType name="ExpressionType">
- <xs:restriction base="xs:string"/>
- </xs:simpleType>
- <!-- DataPatchType -->
- <xs:complexType name="DataPatchType">
- <xs:attribute name="type" type="DataPatchAccessTypeEnum" use="optional"/>
- <xs:attribute name="address" type="NonNegativeInteger" use="required"/>
- <xs:attribute name="__dp" type="xs:unsignedInt" use="optional"/>
- <xs:attribute name="__ap" type="xs:unsignedInt" use="optional"/>
- <xs:attribute name="value" type="NonNegativeInteger" use="required"/>
- <xs:attribute name="mask" type="NonNegativeInteger" use="optional"/>
- <xs:attribute name="info" type="xs:string" use="optional"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- BlockType -->
- <xs:complexType name="SequenceBlockType">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="atomic" type="xs:boolean" use="optional"/>
- <xs:attribute name="info" type="xs:string" use="optional"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
-
- <!-- ControlType -->
- <xs:complexType name="SequenceControlType">
- <xs:sequence>
- <xs:group ref="SequenceElementGroup" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="if" type="xs:string" use="optional"/>
- <xs:attribute name="while" type="ExpressionType" use="optional"/>
- <xs:attribute name="timeout" type="xs:unsignedInt" use="optional"/>
- <xs:attribute name="info" type="xs:string" use="optional"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- SequenceElementType -->
- <xs:group name="SequenceElementGroup">
- <xs:choice>
- <xs:element name="block" type="SequenceBlockType"/>
- <xs:element name="control" type="SequenceControlType"/>
- </xs:choice>
- </xs:group>
- <!-- SequenceType -->
- <xs:complexType name="SequenceType">
- <xs:sequence>
- <xs:group ref="SequenceElementGroup" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="Pname" type="RestrictedString" use="optional"/>
- <xs:attribute name="disable" type="xs:boolean" use="optional"/>
- <xs:attribute name="info" type="xs:string" use="optional"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- SequencesType -->
- <xs:complexType name="SequencesType">
- <xs:sequence>
- <xs:element name="sequence" type="SequenceType" minOccurs="1" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
-
- <!-- DebugType -->
- <xs:complexType name="DebugType">
- <xs:sequence>
- <xs:element name="datapatch" type="DataPatchType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="__dp" type="xs:unsignedInt" use="optional"/>
- <xs:attribute name="__ap" type="xs:unsignedInt" use="optional"/> <!-- access port index -->
- <xs:attribute name="address" type="NonNegativeInteger" use="optional"/> <!-- CPU debug block base address -->
- <xs:attribute name="svd" type="xs:string" use="optional"/>
- <xs:attribute name="Pname" type="RestrictedString" use="optional"/>
- <xs:attribute name="Punit" type="xs:unsignedInt" use="optional"/>
- <xs:attribute name="defaultResetSequence" type="xs:string" use="optional"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- SerialWireType -->
- <xs:complexType name="SerialWireType">
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- TracePortType -->
- <xs:complexType name="TracePortType">
- <xs:attribute name="width" type="NonNegativeInteger" use="optional"/>
- <xs:anyAttribute processContents="skip"/>
- </xs:complexType>
- <!-- TraceBufferType -->
- <xs:complexType name="TraceBufferType">
- <xs:attribute name="start" type="NonNegativeInteger" use="optional"/>
- <xs:attribute name="size" type="NonNegativeInteger" use="optional"/>
- <xs:anyAttribute processContents="skip"/>
- </xs:complexType>
- <!-- TraceType -->
- <xs:complexType name="TraceType">
- <xs:sequence>
- <xs:element name="serialwire" type="SerialWireType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="traceport" type="TracePortType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="tracebuffer" type="TraceBufferType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="Pname" type="RestrictedString" use="optional"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- Memory Type-->
- <xs:complexType name="MemoryType">
- <!-- Pname identifies the processor this setting belongs to -->
- <xs:attribute name="Pname" type="RestrictedString"/>
- <!-- id specifies the enumerated ID of memory (deprecated in 1.4.4) -->
- <xs:attribute name="id" type="MemoryIDTypeEnum" use="optional"/>
- <!-- name specifies an identifier being use to refer to this memory range description (added in 1.4.4) -->
- <xs:attribute name="name" type="RestrictedString" use="optional"/>
- <!-- start specifies the base address of the memory -->
- <xs:attribute name="start" type="NonNegativeInteger" use="required"/>
- <!-- size specifies the size of the memory -->
- <xs:attribute name="size" type="NonNegativeInteger" use="required"/>
- <!-- access: specifies the access permissions of the memory (added in 1.4.4) -->
- <xs:attribute name="access" type="AccessType" use="optional" default="r"/>
- <!-- alias: reference to another memory by 'name' to express that the same physical memory is mapped at another address (added in 1.4.4) -->
- <xs:attribute name="alias" type="RestrictedString" use="optional"/>
- <!-- !!! deprecated, do not use / ignore !!! specifies whether the memory shall be 0 initialized -->
- <xs:attribute name="init" type="xs:boolean" use="optional" default="0"/>
- <!-- specifies whether the memory is used as default by linker -->
- <xs:attribute name="default" type="xs:boolean" use="optional" default="0"/>
- <!-- specifies whether the memory shall be used for the startup by linker -->
- <xs:attribute name="startup" type="xs:boolean" use="optional" default="0"/>
- </xs:complexType>
- <!-- Algorithm Type -->
- <xs:complexType name="AlgorithmType">
- <!-- Pname identifies the processor this setting belongs to -->
- <xs:attribute name="Pname" type="RestrictedString" use="optional"/>
- <!-- name specifies the path and filename of the Flash Programming Algorithm -->
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- start specifies the base address of the memory range that gets programmed -->
- <xs:attribute name="start" type="NonNegativeInteger" use="optional"/>
- <!-- size specifies the size of the memory range that gets programmed -->
- <xs:attribute name="size" type="NonNegativeInteger" use="optional"/>
- <!-- RAMstart specifies the base address in RAM from where the algorithm is executed -->
- <xs:attribute name="RAMstart" type="NonNegativeInteger" use="optional"/>
- <!-- RAMsize specifies the available RAM for executing the algorithm -->
- <xs:attribute name="RAMsize" type="NonNegativeInteger" use="optional"/>
- <!-- if default is set the algorithm will be configured for any new project -->
- <xs:attribute name="default" type="xs:boolean" use="optional" default="0"/>
- <!-- style attribute: specifies the programming algorithm format (added in 1.4.4) -->
- <xs:attribute name="style" type="AlgorithmStyleType" use="optional" default="Keil"/>
- <!-- parameter attribute: parmeter passed on algorithm invocation (added in 1.4.4) -->
- <xs:attribute name="parameter" type="xs:string" use="optional"/>
- <!-- endian attribute: specifies the endianess of the algorithm (added in 1.4.4) -->
- <xs:attribute name="endian" type="DendianEnum" use="optional" default="Little-endian"/>
- </xs:complexType>
- <!-- Book Type -->
- <xs:complexType name="BookType">
- <!-- Pname identifies the processor this setting belongs to -->
- <xs:attribute name="Pname" type="RestrictedString"/>
- <!-- name specifies the path and filename of the document -->
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- title specifies the string displayed for this document -->
- <xs:attribute name="title" type="xs:string" use="required"/>
- </xs:complexType>
- <!-- Description Type-->
- <xs:complexType name="DescriptionType">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <!-- Pname identifies the processor this setting belongs to -->
- <xs:attribute name="Pname" type="RestrictedString"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <!-- Device Feature Type -->
- <xs:complexType name="DeviceFeatureType">
- <xs:attribute name="Pname" type="RestrictedString" use="optional"/>
- <!-- <xs:attribute name="type" type="DeviceFeatureTypeEnum" use="required"/> -->
- <xs:attribute name="type" type="xs:string" use="required"/>
- <xs:attribute name="n" type="xs:decimal" use="optional"/>
- <xs:attribute name="m" type="xs:decimal" use="optional"/>
- <xs:attribute name="name" type="xs:string" use="optional"/>
- <!-- deprecated, only for backwards compatibility -->
- <xs:attribute name="count" type="xs:int" use="optional"/>
- </xs:complexType>
- <!-- Board Feature Type -->
- <xs:complexType name="BoardFeatureType">
- <!-- <xs:attribute name="type" type="BoardFeatureTypeEnum" use="required"/> -->
- <xs:attribute name="type" type="xs:string" use="required"/>
- <xs:attribute name="n" type="xs:decimal" use="optional"/>
- <xs:attribute name="m" type="xs:decimal" use="optional"/>
- <xs:attribute name="name" type="xs:string" use="optional"/>
- </xs:complexType>
-
- <!-- Environment Type -->
- <xs:complexType name="EnvironmentType">
- <xs:sequence>
- <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <!-- name identifies the environment (e.g. "uv" for uVision ) this setting belongs to -->
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- Pname identifies the processor this setting belongs to -->
- <xs:attribute name="Pname" type="RestrictedString" use="optional"/>
- <xs:anyAttribute></xs:anyAttribute>
- </xs:complexType>
- <!-- Default Device Properties Group -->
- <xs:group name="DefaultDevicePropertiesGroup">
- <!-- multi-core devices have unique Pname attribute. One entry per processor and level -->
- <xs:choice>
- <xs:element name="compile" type="CompileType" />
- <xs:element name="memory" type="MemoryType" />
- <xs:element name="algorithm" type="AlgorithmType" />
- <xs:element name="book" type="BookType" />
- <xs:element name="description" type="DescriptionType" />
- <xs:element name="feature" type="DeviceFeatureType" />
- <xs:element name="environment" type="EnvironmentType" />
- <xs:element name="debugport" type="DebugPortType" />
- <xs:element name="debug" type="DebugType" />
- <xs:element name="trace" type="TraceType" />
- <xs:element name="debugvars" type="DebugVarsType" />
- <xs:element name="sequences" type="SequencesType" />
- </xs:choice>
- </xs:group>
- <!-- Device Properties Group -->
- <xs:group name="DevicePropertiesGroup">
- <!-- multi-core devices have unique Pname attribute. One entry per processor and level -->
- <xs:sequence>
- <xs:element name="processor" type="ProcessorType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="debugconfig" type="DebugConfigType" minOccurs="0" maxOccurs="1"/>
- <xs:group ref="DefaultDevicePropertiesGroup" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:group>
- <xs:complexType name="DeviceType">
- <xs:sequence>
- <xs:group ref="DevicePropertiesGroup"/>
- <!-- Variant Level begin-->
- <xs:element name="variant" minOccurs="0" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <xs:group ref="DevicePropertiesGroup"/>
- </xs:sequence>
- <xs:attribute name="Dvariant" type="RestrictedStringDname" use="required"/>
- </xs:complexType>
- </xs:element>
- <!-- Variant Level end -->
- </xs:sequence>
- <xs:attribute name="Dname" type="RestrictedStringDname" use="required"/>
- <!-- <xs:attributeGroup ref="DefaultDeviceAttributesGroup"/> -->
- </xs:complexType>
- <!-- Dcore enumeration type -->
- <xs:simpleType name="DcoreEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="SC000"/>
- <xs:enumeration value="SC300"/>
- <xs:enumeration value="Cortex-M0"/>
- <xs:enumeration value="Cortex-M0+"/>
- <xs:enumeration value="Cortex-M1"/>
- <xs:enumeration value="Cortex-M3"/>
- <xs:enumeration value="Cortex-M4"/>
- <xs:enumeration value="Cortex-M7"/>
- <xs:enumeration value="Cortex-R4"/>
- <xs:enumeration value="Cortex-R5"/>
- <xs:enumeration value="Cortex-A5"/>
- <xs:enumeration value="Cortex-A7"/>
- <xs:enumeration value="Cortex-A8"/>
- <xs:enumeration value="Cortex-A9"/>
- <xs:enumeration value="Cortex-A15"/>
- <xs:enumeration value="Cortex-A17"/>
- <xs:enumeration value="Cortex-A53"/>
- <xs:enumeration value="Cortex-A57"/>
- <xs:enumeration value="Cortex-A72"/>
- <xs:enumeration value="ARMV8MBL"/>
- <xs:enumeration value="ARMV8MML"/>
- <xs:enumeration value="other"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- DeviceFeatureTypeEnum -->
- <xs:simpleType name="DeviceFeatureTypeEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="Crypto"/>
- <xs:enumeration value="NVIC"/>
- <xs:enumeration value="DMA"/>
- <xs:enumeration value="RNG"/>
- <xs:enumeration value="CoreOther"/>
- <xs:enumeration value="ExtBus"/>
- <xs:enumeration value="Memory"/>
- <xs:enumeration value="MemoryOther"/>
- <xs:enumeration value="XTAL"/>
- <xs:enumeration value="IntRC"/>
- <xs:enumeration value="PLL"/>
- <xs:enumeration value="RTC"/>
- <xs:enumeration value="ClockOther"/>
- <xs:enumeration value="PowerMode"/>
- <xs:enumeration value="VCC"/>
- <xs:enumeration value="Consumption"/>
- <xs:enumeration value="PowerOther"/>
- <xs:enumeration value="BGA"/>
- <xs:enumeration value="CSP"/>
- <xs:enumeration value="PLCC"/>
- <xs:enumeration value="QFN"/>
- <xs:enumeration value="QFP"/>
- <xs:enumeration value="SOP"/>
- <xs:enumeration value="DIP"/>
- <xs:enumeration value="PackageOther"/>
- <xs:enumeration value="IOs"/>
- <xs:enumeration value="ExtInt"/>
- <xs:enumeration value="Temp"/>
- <xs:enumeration value="ADC"/>
- <xs:enumeration value="DAC"/>
- <xs:enumeration value="TempSens"/>
- <xs:enumeration value="AnalogOther"/>
- <xs:enumeration value="PWM"/>
- <xs:enumeration value="Timer"/>
- <xs:enumeration value="WDT"/>
- <xs:enumeration value="TimerOther"/>
- <xs:enumeration value="MPSerial"/>
- <xs:enumeration value="CAN"/>
- <xs:enumeration value="ETH"/>
- <xs:enumeration value="I2C"/>
- <xs:enumeration value="I2S"/>
- <xs:enumeration value="LIN"/>
- <xs:enumeration value="SDIO"/>
- <xs:enumeration value="SPI"/>
- <xs:enumeration value="UART"/>
- <xs:enumeration value="USART"/>
- <xs:enumeration value="USBD"/>
- <xs:enumeration value="USBH"/>
- <xs:enumeration value="USBOTG"/>
- <xs:enumeration value="ComOther"/>
- <xs:enumeration value="Camera"/>
- <xs:enumeration value="GLCD"/>
- <xs:enumeration value="LCD"/>
- <xs:enumeration value="Touch"/>
- <xs:enumeration value="Other"/>
- <!-- deprecated, only for backwards compatibility -->
- <xs:enumeration value="I/O"/>
- <xs:enumeration value="D/A"/>
- <xs:enumeration value="A/D"/>
- <xs:enumeration value="Com"/>
- <xs:enumeration value="USB"/>
- <xs:enumeration value="Package"/>
- <xs:enumeration value="Backup"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- BoardFeatureTypeEnum -->
- <xs:simpleType name="BoardFeatureTypeEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="ODbg"/>
- <xs:enumeration value="XTAL"/>
- <xs:enumeration value="PWR"/>
- <xs:enumeration value="PWR"/>
- <xs:enumeration value="PWRSock"/>
- <xs:enumeration value="Batt"/>
- <xs:enumeration value="Curr"/>
- <xs:enumeration value="CoreOther"/>
- <xs:enumeration value="RAM"/>
- <xs:enumeration value="ROM"/>
- <xs:enumeration value="Memory"/>
- <xs:enumeration value="MemCard"/>
- <xs:enumeration value="MemoryOther"/>
- <xs:enumeration value="DIO"/>
- <xs:enumeration value="AIO"/>
- <xs:enumeration value="Proto"/>
- <xs:enumeration value="USB"/>
- <xs:enumeration value="ETH"/>
- <xs:enumeration value="SPI"/>
- <xs:enumeration value="I2C"/>
- <xs:enumeration value="RS232"/>
- <xs:enumeration value="RS422"/>
- <xs:enumeration value="RS485"/>
- <xs:enumeration value="CAN"/>
- <xs:enumeration value="IrDA"/>
- <xs:enumeration value="LineIn"/>
- <xs:enumeration value="LineOut"/>
- <xs:enumeration value="MIC"/>
- <xs:enumeration value="Edge"/>
- <xs:enumeration value="ConnOther"/>
- <xs:enumeration value="Button"/>
- <xs:enumeration value="Poti"/>
- <xs:enumeration value="Joystick"/>
- <xs:enumeration value="Touch"/>
- <xs:enumeration value="ContOther"/>
- <xs:enumeration value="Accelerometer"/>
- <xs:enumeration value="Gyro"/>
- <xs:enumeration value="Compass"/>
- <xs:enumeration value="TempSens"/>
- <xs:enumeration value="PressSens"/>
- <xs:enumeration value="LightSens"/>
- <xs:enumeration value="SensOther"/>
- <xs:enumeration value="CustomFF"/>
- <xs:enumeration value="ArduinoFF"/>
- <xs:enumeration value="FreedomFF"/>
- <xs:enumeration value="TowerFF"/>
- <xs:enumeration value="LED"/>
- <xs:enumeration value="Camera"/>
- <xs:enumeration value="LCD"/>
- <xs:enumeration value="GLCD"/>
- <xs:enumeration value="Speaker"/>
- <xs:enumeration value="Other"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- eraseTypeEnum -->
- <xs:simpleType name="EraseTypeEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="sector"/>
- <xs:enumeration value="full"/>
- <xs:enumeration value="no"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- MemoryIDTypeEnum -->
- <xs:simpleType name="MemoryIDTypeEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="IRAM1"/>
- <xs:enumeration value="IRAM2"/>
- <xs:enumeration value="IRAM3"/>
- <xs:enumeration value="IRAM4"/>
- <xs:enumeration value="IRAM5"/>
- <xs:enumeration value="IRAM6"/>
- <xs:enumeration value="IRAM7"/>
- <xs:enumeration value="IRAM8"/>
- <xs:enumeration value="IROM1"/>
- <xs:enumeration value="IROM2"/>
- <xs:enumeration value="IROM3"/>
- <xs:enumeration value="IROM4"/>
- <xs:enumeration value="IROM5"/>
- <xs:enumeration value="IROM6"/>
- <xs:enumeration value="IROM7"/>
- <xs:enumeration value="IROM8"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Dendian enumeration type -->
- <xs:simpleType name="DendianEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="Little-endian"/>
- <xs:enumeration value="Big-endian"/>
- <xs:enumeration value="Configurable"/>
- <xs:enumeration value="*"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Dfpu enumeration type -->
- <xs:simpleType name="DfpuEnum">
- <xs:restriction base="xs:token">
- <!-- core has FPU (type of FPU depends on Dcore) -->
- <xs:enumeration value="FPU"/>
- <xs:enumeration value="1"/>
- <!-- core has no FPU -->
- <xs:enumeration value="NO_FPU"/>
- <xs:enumeration value="0"/>
- <!-- single precision FPU -->
- <xs:enumeration value="SP_FPU"/>
- <!-- double precision FPU -->
- <xs:enumeration value="DP_FPU"/>
- <!-- any -->
- <xs:enumeration value="*"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Dmpu enumeration type -->
- <xs:simpleType name="DmpuEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="MPU"/>
- <xs:enumeration value="NO_MPU"/>
- <xs:enumeration value="0"/>
- <xs:enumeration value="1"/>
- <xs:enumeration value="*"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- file category type -->
- <xs:simpleType name="FileCategoryType">
- <xs:restriction base="xs:token">
- <xs:enumeration value="doc"/>
- <xs:enumeration value="header"/>
- <xs:enumeration value="include"/>
- <xs:enumeration value="library"/>
- <xs:enumeration value="object"/>
- <xs:enumeration value="source"/>
- <xs:enumeration value="sourceC"/>
- <xs:enumeration value="sourceCpp"/>
- <xs:enumeration value="sourceAsm"/>
- <xs:enumeration value="linkerScript"/>
- <xs:enumeration value="utility"/>
- <xs:enumeration value="image"/>
- <xs:enumeration value="other"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- file attribute type -->
- <xs:simpleType name="FileAttributeType">
- <xs:restriction base="xs:token">
- <xs:enumeration value="config"/>
- <xs:enumeration value="copy"/>
- <xs:enumeration value="template"/>
- <xs:enumeration value="interface"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- compiler toolchain enumeration -->
- <xs:simpleType name="CompilerEnumType">
- <xs:restriction base="xs:token">
- <xs:enumeration value="GCC"/>
- <xs:enumeration value="ARMCC"/>
- <xs:enumeration value="IAR"/>
- <xs:enumeration value="Tasking"/>
- <xs:enumeration value="GHS"/>
- <xs:enumeration value="Cosmic"/>
- <xs:enumeration value="G++"/> <!-- Code Sourcery -->
- <xs:enumeration value="*"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- compiler output enumeration -->
- <xs:simpleType name="CompilerOutputType">
- <xs:restriction base="xs:token">
- <xs:enumeration value="exe"/> <!-- executable -->
- <xs:enumeration value="lib"/> <!-- library -->
- <xs:enumeration value="*"/>
- </xs:restriction>
- </xs:simpleType>
-
- <xs:complexType name="FilterType">
- <xs:attribute name="Dfamily" type="xs:string"/> <!-- deprecated as they are too weak for filtering -->
- <xs:attribute name="DsubFamily" type="xs:string"/> <!-- deprecated as tehy are too weak for filtering -->
- <xs:attribute name="Dvariant" type="xs:string"/>
- <xs:attribute name="Dvendor" type="DeviceVendorEnum"/>
- <xs:attribute name="Dname" type="xs:string"/> <!-- can contain wildcards ?* in condition -->
- <xs:attribute name="Dcore" type="DcoreEnum"/>
- <xs:attribute name="Dfpu" type="DfpuEnum"/>
- <xs:attribute name="Dmpu" type="DmpuEnum"/>
- <xs:attribute name="Dendian" type="DendianEnum"/>
- <xs:attribute name="Pname" type="RestrictedString"/>
- <xs:attribute name="Cvendor" type="xs:string"/>
- <xs:attribute name="Cbundle" type="xs:string"/>
- <xs:attribute name="Cclass" type="CclassType"/>
- <xs:attribute name="Cgroup" type="CgroupType"/>
- <xs:attribute name="Csub" type="CsubType"/>
- <xs:attribute name="Cvariant" type="CvariantType"/>
- <xs:attribute name="Cversion" type="ConditionVersionType"/>
- <xs:attribute name="Capiversion" type="ConditionVersionType"/>
- <xs:attribute name="Tcompiler" type="CompilerEnumType"/>
- <xs:attribute name="Toutput" type="CompilerOutputType"/>
- <xs:attribute name="condition" type="xs:string"/>
- </xs:complexType>
- <!-- taxonomy description type definition -->
- <xs:complexType name="TaxonomyDescriptionType">
- <xs:simpleContent>
- <xs:extension base='xs:string'>
- <xs:attribute name="Cclass" type="CclassType" use="required"/> <!-- Class the description is associated with -->
- <xs:attribute name="Cgroup" type="CgroupType" use="optional"/> <!-- Group the description is associated with -->
- <xs:attribute name="doc" type="xs:string" use="optional"/> <!-- link to documentation for the :Class:[Group] -->
- <xs:attribute name="generator" type="xs:string" use="optional"/> <!-- link a generator to a taxonomy -->
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:complexType name="TaxonomyType">
- <xs:sequence>
- <xs:element name="description" type="TaxonomyDescriptionType" minOccurs="1" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <!-- API type definition -->
- <xs:complexType name="ApiType">
- <xs:sequence>
- <xs:element name="description" type="xs:string" minOccurs="0"/>
- <!-- list of files / content -->
- <xs:element name="files">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="file" type="FileType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attribute name="Cclass" type="CclassType" use="required"/>
- <xs:attribute name="Cgroup" type="CgroupType" use="required"/>
- <xs:attribute name="exclusive" type="xs:boolean" use="optional" default="1"/>
- <xs:attribute name="Capiversion" type="VersionType" use="optional"/>
- </xs:complexType>
- <xs:complexType name="ApisType">
- <xs:sequence>
- <xs:element name="api" type="ApiType" minOccurs="1" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ConditionType">
- <xs:sequence>
- <xs:element name="description" type="xs:string" minOccurs="0"/>
- <xs:choice minOccurs="1" maxOccurs="unbounded">
- <xs:element name="accept" type="FilterType"/>
- <xs:element name="require" type="FilterType"/>
- <xs:element name="deny" type="FilterType"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute name="id" type="xs:string" use="required"/>
- </xs:complexType>
- <xs:complexType name="ConditionsType">
- <xs:sequence>
- <xs:element name="condition" type="ConditionType" minOccurs="1" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ComponentCategoryType">
- <xs:attribute name="Cvendor" type="xs:string" use="optional"/>
- <xs:attribute name="Cbundle" type="xs:string" use="optional"/>
- <xs:attribute name="Cclass" type="CclassType" use="required"/>
- <xs:attribute name="Cgroup" type="CgroupType" use="required"/>
- <xs:attribute name="Csub" type="CsubType" use="optional"/>
- <xs:attribute name="Cvariant" type="CvariantType" use="optional"/>
- <xs:attribute name="Cversion" type="ConditionVersionType" use="optional"/>
- <xs:attribute name="Capiversion" type="ConditionVersionType" use="optional"/>
- <xs:attribute name="instances" type="InstancesType" use="optional" default="1"/>
- </xs:complexType>
- <xs:complexType name="ExampleProjectType">
- <xs:sequence>
- <xs:element name="environment" maxOccurs="unbounded">
- <xs:complexType>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="load" type="xs:string" use="required"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="BoardReferenceType">
- <xs:attribute name="name" type="xs:string" use="required"/> <!-- refers to Board Description by name -->
- <xs:attribute name="vendor" type="xs:string" use="required"/> <!-- refers to Board Description by vendor -->
- <xs:attribute name="Dvendor" type="DeviceVendorEnum" use="optional"/> <!-- deprecated in 1.2 -->
- <xs:attribute name="Dfamily" type="xs:string" use="optional"/> <!-- deprecated in 1.2 -->
- <xs:attribute name="DsubFamily" type="xs:string" use="optional"/> <!-- deprecated in 1.2 -->
- <xs:attribute name="Dname" type="xs:string" use="optional"/> <!-- deprecated in 1.2 -->
- </xs:complexType>
- <xs:complexType name="CompatibleDeviceType">
- <xs:attribute name="deviceIndex" type="xs:string" use="optional" />
- <xs:attribute name="Dvendor" type="DeviceVendorEnum" use="optional"/>
- <xs:attribute name="Dfamily" type="xs:string" use="optional"/>
- <xs:attribute name="DsubFamily" type="xs:string" use="optional"/>
- <xs:attribute name="Dname" type="xs:string" use="optional"/>
- </xs:complexType>
- <xs:complexType name="BoardsDeviceType">
- <xs:attribute name="deviceIndex" type="xs:string" use="optional" />
- <xs:attribute name="Dvendor" type="DeviceVendorEnum" use="required"/>
- <xs:attribute name="Dfamily" type="xs:string" use="optional"/> <!-- use Dfamiliy or DsubFamily or Dname attribute exclusively -->
- <xs:attribute name="DsubFamily" type="xs:string" use="optional"/> <!-- use Dfamiliy or DsubFamily or Dname attribute exclusively -->
- <xs:attribute name="Dname" type="xs:string" use="optional"/> <!-- use Dfamiliy or DsubFamily or Dname attribute exclusively -->
- </xs:complexType>
- <xs:simpleType name="BoardBookCategoryEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="setup"/>
- <xs:enumeration value="schematic"/>
- <xs:enumeration value="overview"/>
- <xs:enumeration value="manual"/>
- <xs:enumeration value="other"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:complexType name="BoardsBookType">
- <xs:attribute name="category" type="BoardBookCategoryEnum"/>
- <xs:attribute name="name" type="xs:string"/>
- <xs:attribute name="title" type="xs:string"/>
- </xs:complexType>
- <xs:complexType name="DebugInterfaceType">
- <xs:attribute name="adapter" type="xs:string"/>
- <xs:attribute name="connector" type="xs:string"/>
- </xs:complexType>
-
- <xs:group name="BoardElementsGroup">
- <xs:choice>
- <xs:element name="description" type="xs:string"/>
- <xs:element name="feature" type="BoardFeatureType" maxOccurs="unbounded"></xs:element>
- <xs:element name="mountedDevice" type="BoardsDeviceType" maxOccurs="unbounded"/>
- <xs:element name="compatibleDevice" type="CompatibleDeviceType" maxOccurs="unbounded"/>
- <xs:element name="image">
- <xs:complexType>
- <xs:attribute name="small" type="xs:string" use="optional"/>
- <xs:attribute name="large" type="xs:string" use="optional"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="debugInterface" type="DebugInterfaceType" maxOccurs="unbounded"/>
- <xs:element name="book" type="BoardsBookType" maxOccurs="unbounded"/>
- </xs:choice>
- </xs:group>
- <xs:complexType name="BoardType">
- <xs:sequence>
- <xs:group ref="BoardElementsGroup" minOccurs="1" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="vendor" type="xs:string" use="required"/>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="revision" type="xs:string" use="optional"/>
- <xs:attribute name="salesContact" type="xs:string" use="optional"/>
- <xs:attribute name="orderForm" type="xs:anyURI" use="optional"/>
- </xs:complexType>
- <xs:complexType name="BoardsType">
- <xs:sequence>
- <xs:element name="board" type="BoardType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ExampleAttributesType">
- <xs:choice maxOccurs="unbounded">
- <xs:element name="category" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="component" type="ComponentCategoryType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="keyword" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
- </xs:choice>
- </xs:complexType>
- <xs:complexType name="ExampleType">
- <xs:sequence>
- <!-- brief example description -->
- <xs:element name="description" type="xs:string"/>
- <!-- references the board -->
- <xs:element name="board" type="BoardReferenceType" maxOccurs="unbounded"/>
- <!-- lists environments with their load files -->
- <xs:element name="project" type="ExampleProjectType"/>
- <!-- categories, keywords and used components -->
- <xs:element name="attributes" type="ExampleAttributesType" />
- </xs:sequence>
- <!-- display name of the example -->
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- relative folder where the example is stored in the package -->
- <xs:attribute name="folder" type="xs:string" use="required"/>
- <!-- archive file name with extension located in folder -->
- <xs:attribute name="archive" type="xs:string" use="optional"/>
- <!-- file name with extension relative to folder -->
- <xs:attribute name="doc" type="xs:string" use="required"/>
- <!-- version of the example -->
- <xs:attribute name="version" type="xs:string" use="optional"/>
- </xs:complexType>
- <!-- section listing all examples contained in the package -->
- <xs:complexType name="ExamplesType">
- <xs:sequence>
- <xs:element name="example" type="ExampleType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="KeywordsType">
- <xs:sequence>
- <xs:element name="keyword" type="xs:string" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:simpleType name="InstancesType">
- <xs:restriction base="xs:unsignedInt">
- <xs:minInclusive value="1"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Component file type definition -->
- <xs:complexType name="FileType">
- <xs:attribute name="condition" type="xs:string" use="optional"/>
- <!-- file item category: source, header, include path, etc. -->
- <xs:attribute name="category" type="FileCategoryType" use ="required"/>
- <!-- file item action attribute : config (copy to project, template, interface) -->
- <xs:attribute name="attr" type="FileAttributeType" use ="optional"/>
- <!-- description for "template" or "interface" files. Multiple items are combined when they have the same select attribute -->
- <xs:attribute name="select" type="xs:string" use ="optional"/>
- <!-- path + filename + extension -->
- <xs:attribute name="name" type ="xs:string" use="required" />
- <!-- copy file to project folder: deprecated, use attr="config" instead -->
- <xs:attribute name="copy" type ="xs:string" use="optional"/>
- <!-- simple file version: to be used by RTE copy file action to see whether the file needs updating in project -->
- <xs:attribute name="version" type ="VersionType" use="optional"/>
- <!-- path(s) to find source files for a library, paths are delimited with semicolon (;) -->
- <xs:attribute name="src" type="xs:string" use ="optional"/>
- </xs:complexType>
- <!-- some strings are used to construct filenames (e.g. package name). Such names can contain only subset of characters
- and must not contain neither spaces nor dots.
- -->
- <xs:simpleType name="RestrictedString">
- <xs:restriction base="xs:string">
- <xs:pattern value="[\-_A-Za-z0-9]+"/>
- </xs:restriction>
- </xs:simpleType>
-
- <xs:simpleType name="RestrictedStringDname">
- <xs:restriction base="xs:string">
- <xs:pattern value="[\-_A-Za-z0-9/]+"/>
- </xs:restriction>
- </xs:simpleType>
-
- <!-- version can contain one or more of alphanumeric characters and symbols '_' '-' '.'
- Important: version pattern shall remain the same while versions change
- -->
- <xs:simpleType name="VersionType">
- <xs:restriction base="xs:string">
- <xs:pattern value="[\.\-_A-Za-z0-9]+"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- version can contain one or more of alphanumeric characters and symbols '_' '-' '.'
- Allows specifing a version range: minVersion : maxVersion
- -->
- <xs:simpleType name="ConditionVersionType">
- <xs:restriction base="xs:string">
- <xs:pattern value="[\.:\-_A-Za-z0-9]+"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- PackageType creates a unique ID for a package (added in 1.4.4) -->
- <xs:complexType name="PackageType">
- <!-- vendor of the package -->
- <xs:attribute name="vendor" type="xs:string" use="required"/>
- <!-- name of the package -->
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- version or version range of the package -->
- <xs:attribute name="version" type="ConditionVersionType" use="required"/>
- </xs:complexType>
-
- <!-- Package dependency section type (added in 1.4.4) -->
- <xs:complexType name="PackagesType">
- <xs:sequence maxOccurs="unbounded">
- <xs:element name="package" type="PackageType"/>
- </xs:sequence>
- </xs:complexType>
- <!-- LanguageType creates a unique language ID (added in 1.4.4) -->
- <xs:complexType name="LanguageType">
- <!-- language name e.g. C -->
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- language version e.g. C99 -->
- <xs:attribute name="version" type="xs:string" use="required"/>
- </xs:complexType>
- <!-- Lanuage section type (added in 1.4.4) -->
- <xs:complexType name="LanguagesType">
- <xs:sequence maxOccurs="unbounded">
- <xs:element name="language" type="LanguageType"/>
- </xs:sequence>
- </xs:complexType>
- <!-- CompilerType crates a unique toolchain ID, e.g. armcc 5.4.0 (added in 1.4.4) -->
- <xs:complexType name="CompilerType">
- <xs:attribute name="name" type="CompilerEnumType" use="required"/>
- <xs:attribute name="version" type="ConditionVersionType" use="required"/>
- </xs:complexType>
- <!-- Compiler section type (added in 1.4.4) -->
- <xs:complexType name="CompilersType">
- <xs:sequence maxOccurs="unbounded">
- <xs:element name="compiler" type="CompilerType"/>
- </xs:sequence>
- </xs:complexType>
- <!-- Requirements Section: (added in 1.4.4) -->
- <xs:complexType name="RequirementsType">
- <xs:all>
- <xs:element name="packages" type="PackagesType" minOccurs="0"/>
- <xs:element name="languages" type="LanguagesType" minOccurs="0"/>
- <xs:element name="compilers" type="CompilersType" minOccurs="0"/>
- </xs:all>
- </xs:complexType>
- <!-- Project target specification: (added in 1.4.4) -->
- <xs:complexType name="TargetType">
- <xs:choice maxOccurs="unbounded">
- <!-- build options -->
- <xs:element name="output" type="OutputType"/>
- <!-- memory options -->
- <xs:element name="memory" type="TargetMemoryType" minOccurs="0" maxOccurs="unbounded"/>
- <!-- stack setting -->
- <xs:element name="stack" type="StackType" minOccurs="0" maxOccurs="1"/>
- <!-- heap setting -->
- <xs:element name="heap" type="HeapType" minOccurs="0" maxOccurs="1"/>
- <!-- algorithm options -->
- <xs:element name="algorithm" type="TargetAlgorithmType" minOccurs="0" maxOccurs="unbounded"/>
- <!-- debug probe selection and configuration -->
- <xs:element name="debugProbe" type="DebugProbeType" minOccurs="0"/>
- </xs:choice>
- <!-- Board Vendor -->
- <xs:attribute name="Bvendor" type="xs:string" use="optional"/>
- <!-- Board Name -->
- <xs:attribute name="Bname" type="xs:string" use="optional"/>
- <!-- Board Version -->
- <xs:attribute name="Bversion" type="xs:string" use="optional"/>
- <!-- Device Vendor -->
- <xs:attribute name="Dvendor" type="xs:string" use="optional"/>
- <!-- Device Name -->
- <xs:attribute name="Dname" type="xs:string" use="optional"/>
- <!-- Processor Instance Name -->
- <xs:attribute name="Pname" type="xs:string" use="optional"/>
- <!-- FPU used in target build -->
- <xs:attribute name="Dfpu" type="DfpuEnum" use="optional"/>
- <!-- Endianess used in target build -->
- <xs:attribute name="Dendian" type="DendianEnum" use="optional"/>
- <!-- MPU used in target build -->
- <xs:attribute name="Dmpu" type="DmpuEnum" use="optional"/>
- </xs:complexType>
- <!-- Debug probe specification: (added in 1.4.4) -->
- <xs:complexType name="DebugProbeType">
- <!-- Product Name of the debug probe-->
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- Debug protocol selection -->
- <xs:attribute name="protocol" type="xs:string" use="required"/>
- <!-- Core clock configured by application -->
- <xs:attribute name="coreClock" type="NonNegativeInteger" use="required"/>
- <!-- TPIU clock configured-->
- <xs:attribute name="tpiuClock" type="NonNegativeInteger" use="optional"/>
- </xs:complexType>
- <!-- Build settings for the project, setting RTE filter options (added in 1.4.4) -->
- <xs:complexType name="OutputType">
- <!-- Project output file name -->
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- Project output library or executable -->
- <xs:attribute name="type" type="CompilerOutputType" use="required"/>
- <!-- Project build for debug -->
- <xs:attribute name="debug" type="xs:boolean" use="required"/>
- </xs:complexType>
- <!-- Memory settings for the project, redefining defaults from DFP (added in 1.4.4) -->
- <xs:complexType name="TargetMemoryType">
- <xs:attribute name="id" type="xs:string" use="optional"/> <!-- only use with legacy DFPs -->
- <!-- defines the name of the memory for reference, allows to redefine memory from DFP -->
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- (re-)defines the start address of the memory -->
- <xs:attribute name="start" type="NonNegativeInteger" use="optional"/>
- <!-- (re-)defines the size in bytes of the memory -->
- <xs:attribute name="size" type="NonNegativeInteger" use="optional"/>
- <!-- disables the memory with the name specified by DFP -->
- <xs:attribute name="remove" type="xs:boolean" use="optional" default="0"/>
- <!-- if true, this memory is used for the startup code -->
- <xs:attribute name="startup" type="xs:boolean" use="optional" default="0"/>
- <!-- if true, this memory is initialized with 0 -->
- <xs:attribute name="init" type="xs:boolean" use="optional" default="0"/>
- <!-- overrides access permisson configured by the DFP -->
- <xs:attribute name="access" type="AccessType" use="optional"/>
- <!-- specifies whether the memory is used as default by linker -->
- <xs:attribute name="default" type="xs:boolean" use="optional" default="0"/>
- </xs:complexType>
- <!-- Algorithm settings for the project, redefining defaults from DFP (added in 1.4.4) -->
- <xs:complexType name="TargetAlgorithmType">
- <!-- references the filename of the algorith, allowing to redefine attributes of algorithms in DFP -->
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- overrides the start address programmed by named algorithm from DFP -->
- <xs:attribute name="start" type="NonNegativeInteger" use="optional"/>
- <!-- overrides the size programmed by named algorithm from DFP -->
- <xs:attribute name="size" type="NonNegativeInteger" use="optional"/>
- <!-- disables the algorithm specified as default in DFP -->
- <xs:attribute name="remove" type="xs:boolean" use="optional" default="0"/>
- <!-- overrides the RAMstart for algorithm with 'name' from DFP -->
- <xs:attribute name="RAMstart" type="NonNegativeInteger" use="optional"/>
- <!-- overrides the RAMsize for algorithm with 'name' from DFP -->
- <xs:attribute name="RAMsize" type="NonNegativeInteger" use="optional"/>
- </xs:complexType>
- <!-- element specifying the stack (added in 1.4.4) -->
- <xs:complexType name="StackType">
- <xs:attribute name="size" type="NonNegativeInteger" use="required"/>
- </xs:complexType>
- <!-- element specifying the heap (added in 1.4.4) -->
- <xs:complexType name="HeapType">
- <xs:attribute name="size" type="NonNegativeInteger" use="required"/>
- </xs:complexType>
- <!-- Project file type definition (added in 1.4.4) -->
- <xs:complexType name="ProjectFileType">
- <!-- path + filename + extension -->
- <xs:attribute name="name" type ="xs:string" use="required" />
- <!-- file item category: source, header, include path, etc. -->
- <xs:attribute name="category" type="FileCategoryType" use ="required"/>
- <!-- path(s) to find source files for a library, paths are delimited with semicolon (;) -->
- <xs:attribute name="src" type="xs:string" use ="optional"/>
- </xs:complexType>
- <!-- Group section contains a list of files and (sub-)groups (added in 1.4.4) -->
- <xs:complexType name="GroupType">
- <xs:choice maxOccurs="unbounded">
- <xs:element name="file" type="ProjectFileType" />
- <xs:element name="group" type="GroupType" />
- </xs:choice>
- <xs:attribute name="name" use="required"/>
- </xs:complexType>
- <!-- Files section within the project section (added in 1.4.4) -->
- <xs:complexType name="ProjectFilesType">
- <xs:choice maxOccurs="unbounded">
- <xs:element name="file" type="ProjectFileType" />
- <xs:element name="group" type="GroupType" />
- </xs:choice>
- </xs:complexType>
-
- <!-- Component selection section (added in 1.4.4) -->
- <xs:complexType name="ComponentSelectType">
- <xs:sequence>
- <xs:element name="component" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <!-- all config files -->
- <xs:element name="file" minOccurs="0" maxOccurs="unbounded">
- <xs:complexType>
- <!-- condition id of the condition that evaluates to true on project creation -->
- <xs:attribute name="condition" type="xs:string" use="optional"/>
- <!-- file item category: source, header, include path, etc. -->
- <xs:attribute name="category" type="FileCategoryType" use ="required"/>
- <!-- file item action attribute : config (copy to project, template, interface) -->
- <xs:attribute name="attr" type="FileAttributeType" use ="optional"/>
- <!-- path + filename + extension -->
- <xs:attribute name="name" type ="xs:string" use="required" />
- <!-- configuration file version: to be used by RTE to see whether the file requires updating or not -->
- <xs:attribute name="version" type ="VersionType" use="required"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attribute name="Cvendor" type="xs:string" use="required"/>
- <xs:attribute name="Cbundle" type="xs:string" use="required"/>
- <xs:attribute name="Cclass" type="CclassType" use="required"/>
- <xs:attribute name="Cgroup" type="CgroupType" use="required"/>
- <xs:attribute name="Csub" type="CsubType" use="required"/>
- <xs:attribute name="Cvariant" type="CvariantType" use="required"/>
- <xs:attribute name="Cversion" type="ConditionVersionType" use="required"/>
- <xs:attribute name="Capiversion" type="ConditionVersionType" use="optional"/> <!-- only used when component implements an API -->
- <xs:attribute name="instances" type="InstancesType" use="optional" default="1"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
-
- <!-- Project section: (added in 1.4.4) -->
- <xs:complexType name="ProjectType">
- <xs:all>
- <!-- target selection and configuration -->
- <xs:element name="target" type="TargetType"/>
- <!-- components selected for project -->
- <xs:element name="select" type="ComponentSelectType"/>
- <!-- project files not contained in components -->
- <xs:element name="files" type="ProjectFilesType"/>
- </xs:all>
- <!-- if no project name is provided, the filename of the GPDSC is used -->
- <xs:attribute name="name" type="xs:string" use="optional"/>
- <!-- optional link/reference to documentation about the project -->
- <xs:attribute name="documentation" type="xs:string" use="optional"/>
- </xs:complexType>
- <!-- Create Section: (added in 1.4.4) -->
- <xs:complexType name="CreateType">
- <xs:sequence>
- <!-- project section -->
- <xs:element name="project" type="ProjectType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <!-- release contains version as an attribute and notes as element text -->
- <xs:complexType name="ReleaseType">
- <xs:simpleContent>
- <xs:extension base='xs:string'>
- <xs:attribute name="version" type="VersionType" use="required"/>
- <xs:attribute name="date" type="xs:date" use="optional"/>
- <xs:attribute name="deprecated" type="xs:date" use="optional"/>
- <xs:attribute name="replacement" type="xs:string" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:complexType name="ReleasesType">
- <xs:sequence>
- <xs:element name="release" type="ReleaseType" minOccurs="1" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <!-- Generator file type definition -->
- <xs:complexType name="GeneratorFileType">
- <!-- conditions can be used to filter relevant files depending on e.g. device name
- or toolchain -->
- <xs:attribute name="condition" type="xs:string" use="optional"/>
- <!-- file item category: generator specific file type -->
- <xs:attribute name="category" type="xs:string" use ="required"/>
- <!-- path + filename + extension -->
- <xs:attribute name="name" type ="xs:string" use="required" />
- <!-- file version -->
- <xs:attribute name="version" type ="VersionType" use="optional"/>
- </xs:complexType>
- <xs:complexType name="GeneratorDeviceSelectType">
- <xs:attribute name="Dvendor" type="DeviceVendorEnum" use="required"/>
- <xs:attribute name="Dname" type="xs:string" use="optional"/>
- <xs:attribute name="Dvariant" type="xs:string" use="optional"/>
- <xs:attribute name="Pname" type="RestrictedString" use="optional"/>
- </xs:complexType>
- <xs:complexType name="GeneratorCommandArgumentType">
- <xs:simpleContent>
- <xs:extension base='xs:string'>
- <xs:attribute name="switch" type="xs:string" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:complexType name="GeneratorCommandArgumentsType">
- <xs:sequence>
- <xs:element name="argument" type="GeneratorCommandArgumentType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="GpdscFileType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- </xs:complexType>
- <!-- Generator Type -->
- <xs:complexType name="GeneratorType">
- <xs:all>
- <xs:element name="description" type="xs:string"/>
- <xs:element name="select" type="GeneratorDeviceSelectType" minOccurs="0"/>
- <xs:element name="command" type="xs:string"/>
- <xs:element name="workingDir" type="xs:string" minOccurs="0"/>
- <xs:element name="arguments" type="GeneratorCommandArgumentsType" minOccurs="0"/>
- <xs:element name="gpdsc" type="GpdscFileType" minOccurs="0"/>
- <!-- list of project files / content -->
- <xs:element name="project_files" minOccurs="0">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="file" type="FileType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <!-- list of tool files / content -->
- <xs:element name="files" minOccurs="0">
- <xs:complexType>
- <xs:sequence>
- <!-- tool files are under sole control of the generator -->
- <xs:element name="file" type="GeneratorFileType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <!-- Generator tools specific section ignored by other tools -->
- <xs:element name="extensions" minOccurs="0">
- <xs:complexType>
- <xs:sequence>
- <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded">
- </xs:any>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:all>
- <xs:attribute name="id" type="xs:string" use ="required"/>
- <xs:attribute name="Gvendor" type="xs:string" use ="optional"/>
- <xs:attribute name="Gtool" type="xs:string" use ="optional"/>
- <xs:attribute name="Gversion" type="xs:string" use ="optional"/>
- </xs:complexType>
-
- <!-- Generators Section -->
- <xs:complexType name="GeneratorsType">
- <xs:sequence>
- <xs:element name="generator" type="GeneratorType" minOccurs="1" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <!-- package description root point -->
- <xs:element name="package" nillable="true">
- <xs:complexType>
- <xs:all>
- <!-- name of the package (Device Support=DFP, Board Support=BSP) -->
- <xs:element name="name" type="RestrictedString" minOccurs="1"/>
- <!-- company name of the developer/maintainer of this package -->
- <xs:element name="vendor" type="RestrictedString" minOccurs="1"/>
- <!-- brief description of the content and purpose of the package -->
- <xs:element name="description" type="xs:string" minOccurs="1"/>
- <!-- download location of this PDSC and corresponding package file -->
- <xs:element name="url" type="xs:anyURI" minOccurs="1"/>
- <!-- e.g. mailto:Support@<vendor>.com or www.<vendor>.com/supportRequest -->
- <xs:element name="supportContact" type="xs:string" minOccurs="0"/>
- <!-- optional: click through license file name and relative path -->
- <xs:element name="license" type="xs:string" minOccurs="0"/>
- <!-- optional: section listing requirements (1.4.2) -->
- <xs:element name="requirements" type="RequirementsType" minOccurs="0"/>
- <!-- optional: section used for tool independant project creation (one shot) -->
- <xs:element name="create" type="CreateType" minOccurs="0"/>
- <!-- Version numbers and release history -->
- <xs:element name="releases" type="ReleasesType" minOccurs="1"/>
- <!-- keyword for Search Engine Indexing (e.g. Google) -->
- <xs:element name="keywords" type="KeywordsType" minOccurs="0"/>
- <!-- generators are tools and utilities that are used to generate software components -->
- <xs:element name="generators" type="GeneratorsType" minOccurs="0"/>
- <!-- definition of devices including references to device support files contained in package -->
- <xs:element name="devices" minOccurs="0">
- <xs:complexType>
- <!-- top level -->
- <xs:sequence>
- <!-- Family Level begin -->
- <xs:element name="family" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <xs:group ref="DevicePropertiesGroup"/>
- <xs:element name="device" type="DeviceType" minOccurs="0" maxOccurs="unbounded"/>
- <!-- Sub Family Level begin-->
- <xs:element name="subFamily" minOccurs="0" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <xs:group ref="DevicePropertiesGroup"/>
- <!-- Device Level begin-->
- <xs:element name="device" type="DeviceType" maxOccurs="unbounded"/>
- <!-- Device Level end -->
- </xs:sequence>
- <xs:attribute name="DsubFamily" type="xs:string" use="required"/>
- </xs:complexType>
- </xs:element>
- <!-- Sub Family Level end -->
- </xs:sequence>
- <xs:attribute name="Dfamily" type="xs:string" use="required"/>
- <xs:attribute name="Dvendor" type="DeviceVendorEnum" use="required"/>
- </xs:complexType>
- </xs:element>
- <!-- Family Level end -->
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <!-- devices end -->
- <!-- definition of boards. Can be referenced by examples -->
- <xs:element name="boards" type="BoardsType" minOccurs="0"/>
- <!-- boards end -->
- <!-- taxonomy section contains default descriptions used in the entire model -->
- <xs:element name="taxonomy" type="TaxonomyType" minOccurs="0"/>
- <!-- apis section contains api descriptions used in the entire model -->
- <xs:element name="apis" type="ApisType" minOccurs="0"/>
- <!-- conditions section contains all condition entries used by any component of the package -->
- <xs:element name="conditions" type="ConditionsType" minOccurs="0"/>
- <!-- examples section defining examples available within a package -->
- <xs:element name="examples" type="ExamplesType" minOccurs="0"/>
- <!-- software component definition -->
- <xs:element name="components" minOccurs="0">
- <xs:complexType>
- <xs:choice minOccurs="1" maxOccurs="unbounded">
- <!-- COMPONENT Description Root Point: -->
- <xs:element name="bundle" minOccurs="1" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="description" type="xs:string"/>
- <xs:element name="doc" type="xs:string"/>
- <xs:element name="component" minOccurs="1" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <!-- a component can be deprecated if it is no longer maintained-->
- <xs:element name="deprecated" type="xs:boolean" minOccurs="0" default="false"/>
- <!-- short component description displayed -->
- <xs:element name="description" type="xs:string"/>
- <!-- content to be added to generated RTE_Component.h file -->
- <xs:element name="RTE_Components_h" type="xs:string" minOccurs="0"/>
- <!-- list of files / content -->
- <xs:element name="files">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="file" type="FileType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <!-- component identity attributes Cclass Cvendor and Cversion are specified by bundle -->
- <xs:attribute name="Cgroup" type="CgroupType" use="required"/>
- <xs:attribute name="Csub" type="CsubType" use="optional"/>
- <xs:attribute name="Cvariant" type="CvariantType" use="optional"/>
- <!-- api version for this component -->
- <xs:attribute name="Capiversion" type="VersionType" use="optional"/>
- <!-- component attribute for referencing a condition specified in conditions section above -->
- <xs:attribute name="condition" type="xs:string" use="optional"/>
- <!-- maximum allowed number of instances of a component in a project, default - 1-->
- <xs:attribute name="maxInstances" type="InstancesType" use="optional"/>
- <!-- association of component with a generator. If the component is selected the generator information becomes active -->
- <xs:attribute name="generator" type="xs:string" use="optional"/>
- <!-- identifies this component variant to be the preferred variant [Version 1.4.0] -->
- <xs:attribute name="isDefaultVariant" type="xs:boolean" use="optional"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <!-- bundle attributes -->
- <xs:attribute name="Cbundle" type="xs:string" use="required"/>
- <xs:attribute name="Cvendor" type="xs:string" use="optional"/>
- <xs:attribute name="Cclass" type="CclassType" use="required"/>
- <xs:attribute name="Cversion" type="VersionType" use="required"/>
- <!-- association of component with a generator. If the component is selected the generator information becomes active -->
- <xs:attribute name="generator" type="xs:string" use="optional"/>
- <!-- identifies this bundle variant to be the preferred variant [Version 1.4.0] -->
- <xs:attribute name="isDefaultVariant" type="xs:boolean" use="optional"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="component" minOccurs="1" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <!-- a component can be deprecated if it is no longer maintained-->
- <xs:element name="deprecated" type="xs:boolean" minOccurs="0" default="false"/>
- <!-- short component description displayed -->
- <xs:element name="description" type="xs:string"/>
- <!-- content to be added to generated RTE_Component.h file -->
- <xs:element name="RTE_Components_h" type="xs:string" minOccurs="0"/>
- <!-- list of files / content -->
- <xs:element name="files">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="file" type="FileType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <!-- component identity attributes -->
- <xs:attribute name="Cvendor" type="xs:string" use="optional"/>
- <xs:attribute name="Cclass" type="CclassType" use="required"/>
- <xs:attribute name="Cgroup" type="CgroupType" use="required"/>
- <xs:attribute name="Csub" type="CsubType" use="optional"/>
- <xs:attribute name="Cvariant" type="CvariantType" use="optional"/>
- <xs:attribute name="Cversion" type="VersionType" use="required"/>
- <!-- api version for this component -->
- <xs:attribute name="Capiversion" type="VersionType" use="optional"/>
- <!-- component attribute for referencing a condition specified in conditions section above -->
- <xs:attribute name="condition" type="xs:string" use="optional"/>
- <!-- maximum allowed number of instances of a component in a project, default - 1-->
- <xs:attribute name="maxInstances" type="InstancesType" use="optional"/>
- <!-- association of component with a generator. If the component is selected the generator information becomes active -->
- <xs:attribute name="generator" type="xs:string" use="optional"/>
- <!-- identifies this component variant to be the preferred variant [Version 1.4.0] -->
- <xs:attribute name="isDefaultVariant" type="xs:boolean" use="optional"/>
- </xs:complexType>
- </xs:element>
- </xs:choice>
- <xs:attribute name="generator" type="xs:string" use="optional"/>
- </xs:complexType>
- </xs:element>
- </xs:all>
- <xs:attribute name="schemaVersion" type="VersionType" use="required"/>
- </xs:complexType>
- </xs:element>
- </xs:schema>
|