<?xml version="1.0" encoding="utf-8"?>

<package schemaVersion="1.2" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="PACK.xsd">
    <vendor>HDSC</vendor>
    <name>HC32F030</name>
    <description>HC32F030 ARM Cortex-M0+ Device Family Pack</description>
    <url>https://raw.githubusercontent.com/hdscmcu/pack/master/</url>
    <supportContact>mcu_eco@hdsc.com.cn</supportContact>
    <!-- optional license file -->
    
    <!-- 
    <license>
    </license>
    -->

    <releases>
        <release version="1.0.1" date="2019-12-09">
            Update supportContact
        </release>
        <release version="1.0.0" date="2018-09-10">
            Initial Version
        </release>
    </releases>

    <keywords>
        <!-- keywords for indexing -->
        <keyword>HDSC</keyword>
        <keyword>Device Support</keyword>
        <keyword>HC32F030</keyword>
    </keywords>

  
    <devices>
        <family Dfamily="HC32F030-Series" Dvendor="HDSC:145">
        <processor Dcore="Cortex-M0+" DcoreVersion="r0p1" Dfpu="0" Dmpu="0" Dendian="Little-endian" Dclock="48000000" />
        <debugconfig type="swd" clock="1000000" />
        <description>
            The HC32F030 device family contains an ARM Cortex-M0+ processor, running up to 48 MHz with a versatile set of on-chip peripherals.
        </description>
        
        <!-- ************************  Subfamily 'HC32F030'  **************************** -->
        <subFamily DsubFamily="HC32F030">
            <processor Dclock="48000000"/>
                <!-- *************************  Device 'HC32F030J8TA'  ***************************** -->
                <device Dname="HC32F030J8TA">
                    <memory        id="IROM1"                start="0x00000000"    size="0x10000"    startup="1"    default="1"/>
                    <memory        id="IRAM1"                start="0x20000000"    size="0x2000"    init="0"    default="1"/>
                    <algorithm  name="Flash/FlashHC32F030_64K.FLM" start="0x00000000"  size="0x10000" default="1"/>
                    <compile header="Device/Include/HC32F030J8TA.h"/>
                    <debug svd="SVD/HC32F030J8TA.sfr"/>
                </device>
                
                <!-- *************************  Device 'HC32F030F8UA'  ***************************** -->
                <device Dname="HC32F030F8UA">
                    <memory        id="IROM1"                start="0x00000000"    size="0x10000"    startup="1"    default="1"/>
                    <memory        id="IRAM1"                start="0x20000000"    size="0x2000"    init="0"    default="1"/>
                    <algorithm  name="Flash/FlashHC32F030_64K.FLM" start="0x00000000"  size="0x10000" default="1"/>
                    <compile header="Device/Include/HC32F030F8UA.h"/>
                    <debug svd="SVD/HC32F030F8UA.sfr"/>
                </device>
                
                <!-- *************************  Device 'HC32F030E8PA'  ***************************** -->
                <device Dname="HC32F030E8PA">
                    <memory        id="IROM1"                start="0x00000000"    size="0x10000"    startup="1"    default="1"/>
                    <memory        id="IRAM1"                start="0x20000000"    size="0x2000"    init="0"    default="1"/>
                    <algorithm  name="Flash/FlashHC32F030_64K.FLM" start="0x00000000"  size="0x10000" default="1"/>
                    <compile header="Device/Include/HC32F030E8PA.h"/>
                    <debug svd="SVD/HC32F030E8PA.sfr"/>
                </device>
                
                <!-- *************************  Device 'HC32F030F8TA'  ***************************** -->
                <device Dname="HC32F030F8TA">
                    <memory        id="IROM1"                start="0x00000000"    size="0x10000"    startup="1"    default="1"/>
                    <memory        id="IRAM1"                start="0x20000000"    size="0x2000"    init="0"    default="1"/>
                    <algorithm  name="Flash/FlashHC32F030_64K.FLM" start="0x00000000"  size="0x10000" default="1"/>
                    <compile header="Device/Include/HC32F030F8TA.h"/>
                    <debug svd="SVD/HC32F030F8TA.sfr"/>
                </device>
                
                <!-- *************************  Device 'HC32F030K8TA'  ***************************** -->
                <device Dname="HC32F030K8TA">
                    <memory        id="IROM1"                start="0x00000000"    size="0x10000"    startup="1"    default="1"/>
                    <memory        id="IRAM1"                start="0x20000000"    size="0x2000"    init="0"    default="1"/>
                    <algorithm  name="Flash/FlashHC32F030_64K.FLM" start="0x00000000"  size="0x10000" default="1"/>
                    <compile header="Device/Include/HC32F030K8TA.h"/>
                    <debug svd="SVD/HC32F030K8TA.sfr"/>
                </device>
                
        </subFamily>
        </family>
    </devices>

  <!-- examples section (optional for all Software Packs)-->
  <!--
  <examples>
  </examples>
  -->
  
  <!-- conditions section (optional for all Software Packs)-->
    
    <conditions>
        <!-- Compiler Conditions -->
        <condition id="Compiler ARMCC">
            <require Tcompiler="ARMCC"/>
        </condition>
        
        <!-- Device Conditions -->
        <condition id="HC32F030">
            <description>HDSC HC32F030 Device</description>
            <require Dvendor="HDSC:145" Dname="HC32F030*"/>
            <require Cclass="Device" Cgroup="Startup"/>
        </condition>
        
         <!-- P/N Conditions -->
        <condition id = "HC32F030J8TA">
            <require Dname="HC32F030J8TA"/>
        </condition>
        <condition id = "HC32F030F8UA">
            <require Dname="HC32F030F8UA"/>
        </condition>
        <condition id = "HC32F030E8PA">
            <require Dname="HC32F030E8PA"/>
        </condition>
        <condition id = "HC32F030F8TA">
            <require Dname="HC32F030F8TA"/>
        </condition>
        <condition id = "HC32F030K8TA">
            <require Dname="HC32F030K8TA"/>
        </condition>
        
        <!-- Device + CMSIS Conditions -->
        <condition id="HC32F030 CMSIS">
            <description>HDSC HC32F030 Series devices and CMSIS-CORE</description>
            <require condition="HC32F030"/>
            <require Cclass="CMSIS" Cgroup="CORE"/>
        </condition>        
    </conditions>

  
  <!-- component section (optional for all Software Packs)-->

    <components>
        <!-- Startup HC32F030 -->
        <component Cclass="Device" Cgroup="Startup" Cversion="1.0.0" condition="HC32F030 CMSIS">
        <description>System Startup for HC32F030 series</description>
        <files>
            <!-- include folder -->
            <file category="include" name="Device/Include/"/>
            <file category="header" name="Device/Include/HC32F030J8TA.h" condition="HC32F030J8TA" attr="config" version="1.0.0"/>
            <file category="header" name="Device/Include/HC32F030F8UA.h" condition="HC32F030F8UA" attr="config" version="1.0.0"/>
            <file category="header" name="Device/Include/HC32F030E8PA.h" condition="HC32F030E8PA" attr="config" version="1.0.0"/>
            <file category="header" name="Device/Include/HC32F030F8TA.h" condition="HC32F030F8TA" attr="config" version="1.0.0"/>
            <file category="header" name="Device/Include/HC32F030K8TA.h" condition="HC32F030K8TA" attr="config" version="1.0.0"/>
            
            <!-- startup file -->
            <file category="source" name="Device/Source/ARM/startup_hc32f030.s" attr="config" condition="Compiler ARMCC" version="1.0.0"/>
            
            <!-- system file -->
            <file category="source" name="Device/Source/system_hc32f030.c" attr="config" version="1.0.0"/>
            <file category="header" name="Device/Include/system_hc32f030.h" attr="config" version="1.0.0"/>
        </files>
        </component>
    </components>

</package>
