aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2012-07-12 14:02:44 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2012-07-12 14:02:44 +0000
commitab4703c491d8cbc4848d43902857adcfb8768a87 (patch)
tree816018991151954ddc2f25208c9c0650513e3039 /tools
parent21b1517adff201b9669518ae30d2cd6cd2a3b75c (diff)
downloadChibiOS-ab4703c491d8cbc4848d43902857adcfb8768a87.tar.gz
ChibiOS-ab4703c491d8cbc4848d43902857adcfb8768a87.tar.bz2
ChibiOS-ab4703c491d8cbc4848d43902857adcfb8768a87.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@4463 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'tools')
-rw-r--r--tools/gencfg/lib/libcode.ftl67
-rw-r--r--tools/gencfg/lib/libstm32f4xx.ftl50
-rw-r--r--tools/gencfg/processors/boards/stm32f4xx/templates/board.h.ftl24
-rw-r--r--tools/gencfg/processors/boards/stm32f4xx/templates/board.mk.ftl4
-rw-r--r--tools/gencfg/processors/hal/stm32f4xx/templates/hal_cfg.c.ftl2
-rw-r--r--tools/gencfg/processors/hal/stm32f4xx/templates/hal_cfg.h.ftl2
-rw-r--r--tools/gencfg/schema/boards/abstract_board.xsd81
-rw-r--r--tools/gencfg/schema/boards/stm32f4xx_board.xsd99
-rw-r--r--tools/gencfg/schema/common/doc.xsd111
-rw-r--r--tools/gencfg/schema/hal/abstract_adc_cfg.xsd56
-rw-r--r--tools/gencfg/schema/hal/stm32f4xx/stm32f4xx_adc_cfg.xsd227
-rw-r--r--tools/gencfg/xml/stm32f4board.xml1460
-rw-r--r--tools/gencfg/xml/stm32f4xx_cfg.xml31
13 files changed, 728 insertions, 1486 deletions
diff --git a/tools/gencfg/lib/libcode.ftl b/tools/gencfg/lib/libcode.ftl
index 8147e02c4..45b94a320 100644
--- a/tools/gencfg/lib/libcode.ftl
+++ b/tools/gencfg/lib/libcode.ftl
@@ -31,11 +31,11 @@
[#--
-- This macro generates a brief description in DoxyGen format.
--]
-[#macro EmitDoxygenBrief brief=[]]
- [#if brief[0]??]
+[#macro EmitDoxygenBrief object=[]]
+ [#if object.brief[0]??]
[@utils.FormatStringAsText " * @brief "
" * "
- utils.WithDot(brief[0]?cap_first)
+ utils.WithDot(object.brief[0]?cap_first)
boundary /]
[/#if]
[/#macro]
@@ -43,16 +43,71 @@
[#--
-- This macro generates a detailed description in DoxyGen format.
--]
-[#macro EmitDoxygenDetails details=[]]
- [#if details[0]??]
+[#macro EmitDoxygenDetails object=[]]
+ [#if object.details[0]??]
[@utils.FormatStringAsText " * @details "
" * "
- utils.WithDot(details[0]?cap_first)
+ utils.WithDot(object.details[0]?cap_first)
boundary /]
[/#if]
[/#macro]
[#--
+ -- This macro generates a notes list in DoxyGen format.
+ --]
+[#macro EmitDoxygenNotes object=[]]
+ [#list object.* as note]
+ [#if note?node_name == "note"]
+ [@utils.FormatStringAsText " * @note "
+ " * "
+ utils.WithDot(note[0]?cap_first)
+ boundary /]
+ [/#if]
+ [/#list]
+[/#macro]
+
+[#--
+ -- This macro generates a pre-requisites list in DoxyGen format.
+ --]
+[#macro EmitDoxygenPrerequisites object=[]]
+ [#list object.* as pre]
+ [#if pre?node_name == "pre"]
+ [@utils.FormatStringAsText " * @pre "
+ " * "
+ utils.WithDot(pre[0]?cap_first)
+ boundary /]
+ [/#if]
+ [/#list]
+[/#macro]
+
+[#--
+ -- This macro generates a post-requisites list in DoxyGen format.
+ --]
+[#macro EmitDoxygenPostrequisites object=[]]
+ [#list object.* as post]
+ [#if post?node_name == "post"]
+ [@utils.FormatStringAsText " * @post "
+ " * "
+ utils.WithDot(post[0]?cap_first)
+ boundary /]
+ [/#if]
+ [/#list]
+[/#macro]
+
+[#--
+ -- This macro generates a complete Doxygen documentation comment.
+ --]
+[#macro EmitDoxygenDocumentationComment object=[]]
+/**
+ [@code.EmitDoxygenBrief object /]
+ [@code.EmitDoxygenDetails object /]
+ [@code.EmitDoxygenPrerequisites object /]
+ [@code.EmitDoxygenPostrequisites object /]
+ [@code.EmitDoxygenNotes object /]
+ */
+[/#macro]
+
+[#--
-- This macro generates the parameters description in DoxyGen format.
--]
[#macro EmitDoxygenParams params=[]]
diff --git a/tools/gencfg/lib/libstm32f4xx.ftl b/tools/gencfg/lib/libstm32f4xx.ftl
index 2a541606d..81b8f987c 100644
--- a/tools/gencfg/lib/libstm32f4xx.ftl
+++ b/tools/gencfg/lib/libstm32f4xx.ftl
@@ -23,51 +23,45 @@
-- Emits the STM32F4xx ADC driver constant configuration structures.
--]
[#macro EmitADCConfig config]
- [#local cfg_name = config.@name[0]?string /]
-/**
- [@code.EmitDoxygenBrief config.@brief /]
- [@code.EmitDoxygenDetails config.details /]
- */
+ [#local cfg_name = config.name[0]?string /]
+ [@code.EmitDoxygenDocumentationComment config /]
const ADCConfig ${cfg_name} = {0};
[#list config.groups.group as group]
- [#local grpcfg_name = group.@name[0]?string /]
-/**
- [@code.EmitDoxygenBrief group.@brief /]
- [@code.EmitDoxygenDetails group.details /]
- */
+ [#local grpcfg_name = group.name[0]?string /]
+ [@code.EmitDoxygenDocumentationComment group /]
const ADCGroupConfig ${grpcfg_name} = {
/* Circular conversion flag.*/
- ${group.@circular[0]?string?upper_case},
+ ${group.circular[0]?string?upper_case},
/* Number of channels sampled in the conversion group.*/
${group.channels_sequence.channel?size},
/* End of conversion callback or NULL.*/
- [#if group.@conversion_callback[0]?string?trim == ""]
+ [#if group.conv_callback[0]?string?trim == ""]
NULL,
[#else]
- ${group.@conversion_callback[0]?string?trim},
+ ${group.conv_callback[0]?string?trim},
[/#if]
/* Error callback or NULL.*/
- [#if group.@error_callback[0]?string?trim == ""]
+ [#if group.error_callback[0]?string?trim == ""]
NULL,
[#else]
- ${group.@error_callback[0]?string?trim},
+ ${group.error_callback[0]?string?trim},
[/#if]
/* CR1 register initialization value.*/
- [#local resolution = group.@resolution[0]?word_list[0]?number /]
+ [#local resolution = group.resolution[0]?word_list[0]?number /]
[#local cr1 = "ADC_CR1_RESOLUTION_N(" + resolution?string + ")" /]
- [#local discnum = group.@discontinuous_number[0]?word_list[0]?number /]
- [#local cr1 = cr1 + " | ADC_CR1_DISCNUM_N(" + (discnum - 1)?string + ")" /]
- [#if group.@discontinuous_mode[0]?string == "true"]
+ [#local disc = group.discontinuous[0]?word_list[0]?number /]
+ [#if disc > 0]
[#local cr1 = cr1 + " | ADC_CR1_DISCEN" /]
+ [#local cr1 = cr1 + " | ADC_CR1_DISCNUM_N(" + (disc - 1)?string + ")" /]
[/#if]
${cr1},
/* CR2 register initialization value.*/
- [#local exten = group.@trigger_mode[0]?word_list[0]?number /]
+ [#local exten = group.trigger_mode[0]?word_list[0]?number /]
[#local cr2 = "ADC_CR1_EXTEN_N(" + exten?string + ")" /]
- [#local extsel = group.@trigger_source[0]?word_list[0]?number /]
+ [#local extsel = group.trigger_source[0]?word_list[0]?number /]
[#local cr2 = cr2 + " | ADC_CR1_EXSEL_N(" + extsel?string + ")" /]
- [#if group.@alignment[0]?word_list[0]?number != 0]
+ [#if group.alignment[0]?word_list[0]?number != 0]
[#local cr2 = cr2 + " | ADC_CR2_ALIGN" /]
[/#if]
${cr2},
@@ -131,19 +125,19 @@ const ADCGroupConfig ${grpcfg_name} = {
-- Emits the STM32F4xx ADC driver configuration external declarations.
--]
[#macro EmitADCConfigExtern config]
- [#local cfg_name = config.@name[0]?string /]
+ [#local cfg_name = config.name[0]?string /]
[#list config.groups.group as group]
- [#local grpcfg_name = group.@name[0]?string /]
+ [#local grpcfg_name = group.name[0]?string /]
[#-- Only emits the comment if there is at least a callback defined.--]
/* ADC configuration "${cfg_name}".*/
extern const ADCConfig ${cfg_name};
/* ADC conversion group "${grpcfg_name}".*/
extern const ADCGroupConfig ${grpcfg_name};
- [#if group.@conversion_callback[0]?string?trim != ""]
- void ${group.@conversion_callback[0]?string?trim}(ADCDriver *, adcsample_t *, size_t);
+ [#if group.conv_callback[0]?string?trim != ""]
+ void ${group.conv_callback[0]?string?trim}(ADCDriver *, adcsample_t *, size_t);
[/#if]
- [#if group.@error_callback[0]?string?trim != ""]
- void ${group.@error_callback[0]?string?trim}(ADCDriver *, adcerror_t);
+ [#if group.error_callback[0]?string?trim != ""]
+ void ${group.error_callback[0]?string?trim}(ADCDriver *, adcerror_t);
[/#if]
[/#list]
diff --git a/tools/gencfg/processors/boards/stm32f4xx/templates/board.h.ftl b/tools/gencfg/processors/boards/stm32f4xx/templates/board.h.ftl
index dccb8782f..593b3883c 100644
--- a/tools/gencfg/processors/boards/stm32f4xx/templates/board.h.ftl
+++ b/tools/gencfg/processors/boards/stm32f4xx/templates/board.h.ftl
@@ -30,43 +30,43 @@
#define _BOARD_H_
/*
- * Setup for ${doc1.board.@name[0]} board.
+ * Setup for ${doc1.board.board_name[0]} board.
*/
/*
* Board identifier.
*/
-#define BOARD_${doc1.board.@BoardID[0]}
-#define BOARD_NAME "${doc1.board.@name[0]}"
+#define BOARD_${doc1.board.board_id[0]}
+#define BOARD_NAME "${doc1.board.board_name[0]}"
-[#if doc1.board.@BoardPHYID[0]??]
+[#if doc1.board.ethernet_phy[0]??]
/*
* Ethernet PHY type.
*/
-#define BOARD_PHY_ID ${doc1.board.@BoardPHYID[0]}
-[#if doc1.board.@BoardPHYType[0]?string == "RMII"]
+#define BOARD_PHY_ID ${doc1.board.ethernet_phy.identifier[0]}
+[#if doc1.board.ethernet_phy.type[0]?string == "RMII"]
#define BOARD_PHY_RMII
[/#if]
[/#if]
/*
* Board oscillators-related settings.
-[#if doc1.board.@LSEFrequency[0]?number == 0]
+[#if doc1.board.clocks.@LSEFrequency[0]?number == 0]
* NOTE: LSE not fitted.
[/#if]
-[#if doc1.board.@HSEFrequency[0]?number == 0]
+[#if doc1.board.clocks.@HSEFrequency[0]?number == 0]
* NOTE: HSE not fitted.
[/#if]
*/
#if !defined(STM32_LSECLK)
-#define STM32_LSECLK ${doc1.board.@LSEFrequency[0]}
+#define STM32_LSECLK ${doc1.board.clocks.@LSEFrequency[0]}
#endif
#if !defined(STM32_HSECLK)
-#define STM32_HSECLK ${doc1.board.@HSEFrequency[0]}
+#define STM32_HSECLK ${doc1.board.clocks.@HSEFrequency[0]}
#endif
-[#if doc1.board.@HSEBypass[0]?string == "true"]
+[#if doc1.board.clocks.@HSEBypass[0]?string == "true"]
#define STM32_HSE_BYPASS
[/#if]
@@ -74,7 +74,7 @@
* Board voltages.
* Required for performance limits calculation.
*/
-#define STM32_VDD ${doc1.board.@VDD[0]}
+#define STM32_VDD ${doc1.board.clocks.@VDD[0]}
/*
* MCU type as defined in the ST header file stm32f4xx.h.
diff --git a/tools/gencfg/processors/boards/stm32f4xx/templates/board.mk.ftl b/tools/gencfg/processors/boards/stm32f4xx/templates/board.mk.ftl
index 34804dd67..c88471ac3 100644
--- a/tools/gencfg/processors/boards/stm32f4xx/templates/board.mk.ftl
+++ b/tools/gencfg/processors/boards/stm32f4xx/templates/board.mk.ftl
@@ -22,7 +22,7 @@
[#import "/@lib/libutils.ftl" as utils /]
[@pp.changeOutputFile name="board.mk" /]
# List of all the board related files.
-BOARDSRC = ${'$'}{CHIBIOS}/boards/${doc1.board.@BoardID[0]}/board.c
+BOARDSRC = ${'$'}{CHIBIOS}/boards/${doc1.board.board_id[0]}/board.c
# Required include directories
-BOARDINC = ${'$'}{CHIBIOS}/boards/${doc1.board.@BoardID[0]}
+BOARDINC = ${'$'}{CHIBIOS}/boards/${doc1.board.board_id[0]}
diff --git a/tools/gencfg/processors/hal/stm32f4xx/templates/hal_cfg.c.ftl b/tools/gencfg/processors/hal/stm32f4xx/templates/hal_cfg.c.ftl
index cd8b17a01..eeea09d99 100644
--- a/tools/gencfg/processors/hal/stm32f4xx/templates/hal_cfg.c.ftl
+++ b/tools/gencfg/processors/hal/stm32f4xx/templates/hal_cfg.c.ftl
@@ -23,7 +23,7 @@
[#import "/@lib/liblicense.ftl" as license /]
[#import "/@lib/libcode.ftl" as code /]
[#import "/@lib/libstm32f4xx.ftl" as stm32f4xx /]
-[#assign fname = doc1.configuration.@name[0] /]
+[#assign fname = doc1.configuration.name[0] /]
[@pp.changeOutputFile name = fname + ".c" /]
/*
[@license.EmitLicenseAsText /]
diff --git a/tools/gencfg/processors/hal/stm32f4xx/templates/hal_cfg.h.ftl b/tools/gencfg/processors/hal/stm32f4xx/templates/hal_cfg.h.ftl
index 050b2f84d..47ea70f7c 100644
--- a/tools/gencfg/processors/hal/stm32f4xx/templates/hal_cfg.h.ftl
+++ b/tools/gencfg/processors/hal/stm32f4xx/templates/hal_cfg.h.ftl
@@ -23,7 +23,7 @@
[#import "/@lib/liblicense.ftl" as license /]
[#import "/@lib/libcode.ftl" as code /]
[#import "/@lib/libstm32f4xx.ftl" as stm32f4xx /]
-[#assign fname = doc1.configuration.@name[0] /]
+[#assign fname = doc1.configuration.name[0] /]
[@pp.changeOutputFile name = fname + ".h" /]
/*
[@license.EmitLicenseAsText /]
diff --git a/tools/gencfg/schema/boards/abstract_board.xsd b/tools/gencfg/schema/boards/abstract_board.xsd
index b3a854307..1a2c38bf2 100644
--- a/tools/gencfg/schema/boards/abstract_board.xsd
+++ b/tools/gencfg/schema/boards/abstract_board.xsd
@@ -5,45 +5,48 @@
<xs:include schemaLocation="../common/doc.xsd" />
<xs:complexType name="AbstractBoardType" abstract="true">
- <xs:complexContent>
- <xs:extension base="DocumentedItem">
- <xs:attribute name="BoardID" use="required">
- <xs:annotation>
- <xs:documentation>Board identifier string, it is used to
- create the board files folder name and the board
- identifier macro in board.h.</xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:whiteSpace value="collapse"></xs:whiteSpace>
- <xs:pattern value="\w[\w\d_]*"></xs:pattern>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="BoardPHYID" use="optional">
- <xs:annotation>
- <xs:documentation>PHY identifier as defined in mii.h or empty if a PHY is not present.</xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:whiteSpace value="collapse"></xs:whiteSpace>
- <xs:pattern value="MII_[\w\d_]+"></xs:pattern>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="BoardPHYType" use="optional">
- <xs:annotation>
- <xs:documentation>Type of the PHY device: RMII or MII, this attribute is defaulted to MII if not present.</xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:enumeration value="RMII"></xs:enumeration>
- <xs:enumeration value="MII"></xs:enumeration>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- </xs:extension>
- </xs:complexContent>
+ <xs:sequence>
+ <xs:element name="board_name" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="board_id" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\w[\w\d_]*"></xs:pattern>
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="ethernet_phy" type="EthernetPHYType"
+ maxOccurs="1" minOccurs="0">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="EthernetPHYType">
+ <xs:sequence>
+ <xs:element name="identifier" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ <xs:pattern value="MII_[\w\d_]+"></xs:pattern>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="bus_type" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ <xs:enumeration value="RMII"></xs:enumeration>
+ <xs:enumeration value="MII"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:sequence>
</xs:complexType>
</xs:schema>
diff --git a/tools/gencfg/schema/boards/stm32f4xx_board.xsd b/tools/gencfg/schema/boards/stm32f4xx_board.xsd
index 0b3622e6f..ace3b5acb 100644
--- a/tools/gencfg/schema/boards/stm32f4xx_board.xsd
+++ b/tools/gencfg/schema/boards/stm32f4xx_board.xsd
@@ -10,61 +10,53 @@
<xs:complexContent>
<xs:extension base="AbstractBoardType">
<xs:sequence>
- <xs:element
- name="ports"
- type="portsType"
- maxOccurs="1"
+ <xs:element name="clocks" maxOccurs="1" minOccurs="1">
+ <xs:complexType>
+ <xs:attribute name="HSEBypass" use="required">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ <xs:enumeration value="false"></xs:enumeration>
+ <xs:enumeration value="true"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="HSEFrequency"
+ use="required">
+ <xs:simpleType>
+ <xs:restriction base="xs:int">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ <xs:minInclusive value="0"></xs:minInclusive>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="LSEFrequency"
+ use="required">
+ <xs:simpleType>
+ <xs:restriction base="xs:int">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+
+ <xs:minInclusive value="0"></xs:minInclusive>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="VDD" use="required">
+ <xs:simpleType>
+ <xs:restriction base="xs:int">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+
+ <xs:minInclusive value="180"></xs:minInclusive>
+
+ <xs:maxInclusive value="360"></xs:maxInclusive>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType></xs:element>
+ <xs:element name="ports" type="portsType" maxOccurs="1"
minOccurs="1">
- </xs:element>
- </xs:sequence>
- <xs:attribute
- name="HSEBypass"
- type="xs:boolean"
- use="required">
- </xs:attribute>
- <xs:attribute
- name="HSEFrequency"
- use="required">
- <xs:annotation>
- <xs:documentation>
- HSE frequency or zero if not present.
- </xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:int">
- <xs:minInclusive value="0"></xs:minInclusive>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute
- name="LSEFrequency"
- use="required">
- <xs:annotation>
- <xs:documentation>
- LSE frequency or zero if not present.
- </xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:int">
- <xs:minInclusive value="0"></xs:minInclusive>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
+ </xs:element>
+ </xs:sequence>
- <xs:attribute
- name="VDD"
- use="required">
- <xs:annotation>
- <xs:documentation>STM32F4xx VDD.</xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:int">
- <xs:minInclusive value="180"></xs:minInclusive>
- <xs:whiteSpace value="collapse"></xs:whiteSpace>
- <xs:maxInclusive value="360"></xs:maxInclusive>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
@@ -93,4 +85,5 @@
</xs:complexType>
<xs:element name="board" type="STM32F4xxBoardType"></xs:element>
+
</xs:schema>
diff --git a/tools/gencfg/schema/common/doc.xsd b/tools/gencfg/schema/common/doc.xsd
index b7395605b..e5be361d5 100644
--- a/tools/gencfg/schema/common/doc.xsd
+++ b/tools/gencfg/schema/common/doc.xsd
@@ -4,33 +4,26 @@
<xs:complexType name="NamedItem">
<xs:annotation>
- <xs:documentation>>Generic item with optional name and brief
+ <xs:documentation>
+ >Generic item with optional name and brief
description
</xs:documentation>
</xs:annotation>
- <xs:attribute name="name" use="required">
- <xs:annotation>
- <xs:documentation>Object name.</xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:pattern value="\w[\w\d_]*"></xs:pattern>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="brief" use="optional">
- <xs:annotation>
- <xs:documentation>Object brief description, 72 chars max in a
- single line.</xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:string">
-
- <xs:maxLength value="72"></xs:maxLength>
- <xs:minLength value="0"></xs:minLength>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
+ <xs:sequence>
+ <xs:element name="name" maxOccurs="1" minOccurs="1">
+ <xs:annotation>
+ <xs:documentation>Name of the object.</xs:documentation>
+ </xs:annotation>
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ <xs:pattern value="\w[\w\d_]*"></xs:pattern>
+ <xs:minLength value="1"></xs:minLength>
+ <xs:maxLength value="24"></xs:maxLength>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:sequence>
</xs:complexType>
<xs:complexType name="DocumentedItem">
@@ -41,15 +34,73 @@
</xs:annotation>
<xs:complexContent>
<xs:extension base="NamedItem">
- <xs:sequence maxOccurs="unbounded" minOccurs="0">
- <xs:element name="details" type="xs:string"
- maxOccurs="1" minOccurs="0">
+ <xs:sequence>
+ <xs:element name="brief" maxOccurs="1" minOccurs="1">
+ <xs:annotation>
+ <xs:documentation>
+ Brief description of the object.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:minLength value="0"></xs:minLength>
+ <xs:maxLength value="72"></xs:maxLength>
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="details" maxOccurs="1" minOccurs="0">
+ <xs:annotation>
+ <xs:documentation>
+ Object documentation as text, does not preserve
+ formatting.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="pre" maxOccurs="unbounded" minOccurs="0">
<xs:annotation>
- <xs:documentation>Object documentation as text, does not
- preserve formatting.</xs:documentation>
+ <xs:documentation>
+ Object pre-requisites as text, does not preserve
+ formatting.
+ </xs:documentation>
</xs:annotation>
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
</xs:element>
- </xs:sequence>
+ <xs:element name="post" maxOccurs="unbounded" minOccurs="0">
+ <xs:annotation>
+ <xs:documentation>
+ Object post-requisites as text, does not preserve
+ formatting.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="note" maxOccurs="unbounded" minOccurs="0">
+ <xs:annotation>
+ <xs:documentation>
+ Object note as text, does not preserve formatting.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
diff --git a/tools/gencfg/schema/hal/abstract_adc_cfg.xsd b/tools/gencfg/schema/hal/abstract_adc_cfg.xsd
index 4a2901c4e..52a6c9096 100644
--- a/tools/gencfg/schema/hal/abstract_adc_cfg.xsd
+++ b/tools/gencfg/schema/hal/abstract_adc_cfg.xsd
@@ -7,29 +7,37 @@
<xs:complexType name="AbstractAdcGroupCfgType">
<xs:complexContent>
<xs:extension base="DocumentedItem">
- <xs:attribute name="circular" type="xs:boolean"
- use="required">
- </xs:attribute>
- <xs:attribute name="conversion_callback" use="required">
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:pattern value="\w?[\w\d_]*"></xs:pattern>
- <xs:minLength value="0"></xs:minLength>
- <xs:maxLength value="24"></xs:maxLength>
- <xs:whiteSpace value="collapse"></xs:whiteSpace>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="error_callback" use="required">
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:pattern value="\w?[\w\d_]*"></xs:pattern>
- <xs:minLength value="0"></xs:minLength>
- <xs:maxLength value="24"></xs:maxLength>
- <xs:whiteSpace value="collapse"></xs:whiteSpace>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
+ <xs:sequence>
+ <xs:element name="circular" maxOccurs="1" minOccurs="1">
+
+ <xs:simpleType>
+ <xs:restriction base="xs:boolean">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="conv_callback" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:minLength value="0"></xs:minLength>
+ <xs:maxLength value="24"></xs:maxLength>
+ <xs:pattern value="\w[\w\d_]*"></xs:pattern>
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="error_callback" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:minLength value="0"></xs:minLength>
+ <xs:maxLength value="24"></xs:maxLength>
+
+ <xs:pattern value="\w[\w\d_]*"></xs:pattern>
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
@@ -37,7 +45,7 @@
<xs:complexType name="AbstractAdcCfgType">
<xs:complexContent>
- <xs:extension base="DocumentedItem"></xs:extension>
+ <xs:extension base="AbstractDriverCfgType"></xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
diff --git a/tools/gencfg/schema/hal/stm32f4xx/stm32f4xx_adc_cfg.xsd b/tools/gencfg/schema/hal/stm32f4xx/stm32f4xx_adc_cfg.xsd
index c038263c2..331933109 100644
--- a/tools/gencfg/schema/hal/stm32f4xx/stm32f4xx_adc_cfg.xsd
+++ b/tools/gencfg/schema/hal/stm32f4xx/stm32f4xx_adc_cfg.xsd
@@ -20,34 +20,103 @@
</xs:extension>
</xs:complexContent>
</xs:complexType>
-
- <xs:complexType name="STM32F4xxAdcChannelSettingsType">
- <xs:attribute name="sample" use="required">
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
- <xs:enumeration value="ADC_SAMPLE_15"></xs:enumeration>
- <xs:enumeration value="ADC_SAMPLE_28"></xs:enumeration>
- <xs:enumeration value="ADC_SAMPLE_56"></xs:enumeration>
- <xs:enumeration value="ADC_SAMPLE_84"></xs:enumeration>
- <xs:enumeration value="ADC_SAMPLE_112"></xs:enumeration>
- <xs:enumeration value="ADC_SAMPLE_144"></xs:enumeration>
- <xs:enumeration value="ADC_SAMPLE_480"></xs:enumeration>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- </xs:complexType>
+
<xs:complexType name="STM32F4xxAdcGroupCfgType">
<xs:complexContent>
<xs:extension base="AbstractAdcGroupCfgType">
<xs:sequence>
- <xs:element name="sample_time" maxOccurs="1"
+ <xs:element name="alignment" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="0 Samples are Right Aligned"></xs:enumeration>
+ <xs:enumeration value="1 Samples are Left Aligned"></xs:enumeration>
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="resolution" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="0 12 bits"></xs:enumeration>
+ <xs:enumeration value="1 10 bits"></xs:enumeration>
+ <xs:enumeration value="2 8 bits"></xs:enumeration>
+ <xs:enumeration value="3 6 bits"></xs:enumeration>
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="trigger_mode" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="0 Software"></xs:enumeration>
+ <xs:enumeration value="1 Rising Edge"></xs:enumeration>
+ <xs:enumeration value="2 Falling Edge"></xs:enumeration>
+ <xs:enumeration value="3 Both Edges"></xs:enumeration>
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="trigger_source" maxOccurs="1"
minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="0 Timer 1 CC1 event"></xs:enumeration>
+ <xs:enumeration value="1 Timer 1 CC2 event"></xs:enumeration>
+ <xs:enumeration value="2 Timer 1 CC3 event"></xs:enumeration>
+ <xs:enumeration value="3 Timer 2 CC2 event"></xs:enumeration>
+ <xs:enumeration value="4 Timer 2 CC3 event"></xs:enumeration>
+ <xs:enumeration value="5 Timer 2 CC4 event"></xs:enumeration>
+ <xs:enumeration value="6 Timer 2 TRGO event"></xs:enumeration>
+ <xs:enumeration value="7 Timer 3 CC1 event"></xs:enumeration>
+ <xs:enumeration value="8 Timer 3 TRGO event"></xs:enumeration>
+ <xs:enumeration value="9 Timer 4 CC4 event"></xs:enumeration>
+ <xs:enumeration value="10 Timer 5 CC1 event"></xs:enumeration>
+ <xs:enumeration value="11 Timer 5 CC2 event"></xs:enumeration>
+ <xs:enumeration value="12 Timer 5 CC3 event"></xs:enumeration>
+ <xs:enumeration value="13 Timer 8 CC1 event"></xs:enumeration>
+ <xs:enumeration value="14 Timer 8 CC4 event"></xs:enumeration>
+ <xs:enumeration value="15 EXTI line15"></xs:enumeration>
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="discontinuous" maxOccurs="1"
+ minOccurs="1">
+
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="0 Disabled"></xs:enumeration>
+ <xs:enumeration value="1 One discontinous conversion"></xs:enumeration>
+ <xs:enumeration
+ value="2 Two discontinous conversions">
+ </xs:enumeration>
+ <xs:enumeration
+ value="3 Three discontinous conversions">
+ </xs:enumeration>
+ <xs:enumeration
+ value="4 Four discontinous conversions">
+ </xs:enumeration>
+ <xs:enumeration
+ value="5 Five discontinous conversions">
+ </xs:enumeration>
+ <xs:enumeration
+ value="6 Six discontinous conversions">
+ </xs:enumeration>
+ <xs:enumeration
+ value="7 Seven discontinous conversions">
+ </xs:enumeration>
+ <xs:enumeration
+ value="8 Eight discontinous conversions">
+ </xs:enumeration>
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="sample_time" maxOccurs="1" minOccurs="1">
<xs:complexType>
<xs:sequence>
- <xs:element name="IN0" maxOccurs="1"
- minOccurs="1">
+ <xs:element name="IN0" maxOccurs="1" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
@@ -61,8 +130,7 @@
</xs:restriction>
</xs:simpleType>
</xs:element>
- <xs:element name="IN1" maxOccurs="1"
- minOccurs="1">
+ <xs:element name="IN1" maxOccurs="1" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
@@ -76,8 +144,7 @@
</xs:restriction>
</xs:simpleType>
</xs:element>
- <xs:element name="IN2" maxOccurs="1"
- minOccurs="1">
+ <xs:element name="IN2" maxOccurs="1" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
@@ -91,8 +158,7 @@
</xs:restriction>
</xs:simpleType>
</xs:element>
- <xs:element name="IN3" maxOccurs="1"
- minOccurs="1">
+ <xs:element name="IN3" maxOccurs="1" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
@@ -106,8 +172,7 @@
</xs:restriction>
</xs:simpleType>
</xs:element>
- <xs:element name="IN4" maxOccurs="1"
- minOccurs="1">
+ <xs:element name="IN4" maxOccurs="1" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
@@ -121,8 +186,7 @@
</xs:restriction>
</xs:simpleType>
</xs:element>
- <xs:element name="IN5" maxOccurs="1"
- minOccurs="1">
+ <xs:element name="IN5" maxOccurs="1" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
@@ -136,8 +200,7 @@
</xs:restriction>
</xs:simpleType>
</xs:element>
- <xs:element name="IN6" maxOccurs="1"
- minOccurs="1">
+ <xs:element name="IN6" maxOccurs="1" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
@@ -151,8 +214,7 @@
</xs:restriction>
</xs:simpleType>
</xs:element>
- <xs:element name="IN7" maxOccurs="1"
- minOccurs="1">
+ <xs:element name="IN7" maxOccurs="1" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
@@ -166,8 +228,7 @@
</xs:restriction>
</xs:simpleType>
</xs:element>
- <xs:element name="IN8" maxOccurs="1"
- minOccurs="1">
+ <xs:element name="IN8" maxOccurs="1" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
@@ -181,8 +242,7 @@
</xs:restriction>
</xs:simpleType>
</xs:element>
- <xs:element name="IN9" maxOccurs="1"
- minOccurs="1">
+ <xs:element name="IN9" maxOccurs="1" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
@@ -196,8 +256,7 @@
</xs:restriction>
</xs:simpleType>
</xs:element>
- <xs:element name="IN10" maxOccurs="1"
- minOccurs="1">
+ <xs:element name="IN10" maxOccurs="1" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
@@ -211,8 +270,7 @@
</xs:restriction>
</xs:simpleType>
</xs:element>
- <xs:element name="IN11" maxOccurs="1"
- minOccurs="1">
+ <xs:element name="IN11" maxOccurs="1" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
@@ -226,8 +284,7 @@
</xs:restriction>
</xs:simpleType>
</xs:element>
- <xs:element name="IN12" maxOccurs="1"
- minOccurs="1">
+ <xs:element name="IN12" maxOccurs="1" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
@@ -241,8 +298,7 @@
</xs:restriction>
</xs:simpleType>
</xs:element>
- <xs:element name="IN13" maxOccurs="1"
- minOccurs="1">
+ <xs:element name="IN13" maxOccurs="1" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
@@ -256,8 +312,7 @@
</xs:restriction>
</xs:simpleType>
</xs:element>
- <xs:element name="IN14" maxOccurs="1"
- minOccurs="1">
+ <xs:element name="IN14" maxOccurs="1" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
@@ -271,8 +326,7 @@
</xs:restriction>
</xs:simpleType>
</xs:element>
- <xs:element name="IN15" maxOccurs="1"
- minOccurs="1">
+ <xs:element name="IN15" maxOccurs="1" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
@@ -286,8 +340,7 @@
</xs:restriction>
</xs:simpleType>
</xs:element>
- <xs:element name="SENSOR" maxOccurs="1"
- minOccurs="1">
+ <xs:element name="SENSOR" maxOccurs="1" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
@@ -316,8 +369,7 @@
</xs:restriction>
</xs:simpleType>
</xs:element>
- <xs:element name="VBAT" maxOccurs="1"
- minOccurs="1">
+ <xs:element name="VBAT" maxOccurs="1" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
@@ -368,68 +420,11 @@
</xs:complexType>
</xs:element>
</xs:sequence>
- <xs:attribute name="alignment" use="required">
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:enumeration value="0 Samples are Right Aligned"></xs:enumeration>
- <xs:enumeration value="1 Samples are Left Aligned"></xs:enumeration>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="resolution" use="required">
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:enumeration value="0 12 bits"></xs:enumeration>
- <xs:enumeration value="1 10 bits"></xs:enumeration>
- <xs:enumeration value="2 8 bits"></xs:enumeration>
- <xs:enumeration value="3 6 bits"></xs:enumeration>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="trigger_mode" use="required">
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:enumeration value="0 Software"></xs:enumeration>
- <xs:enumeration value="1 Rising Edge"></xs:enumeration>
- <xs:enumeration value="2 Falling Edge"></xs:enumeration>
- <xs:enumeration value="3 Both Edges"></xs:enumeration>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="trigger_source" use="required">
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:enumeration value="0 Timer 1 CC1 event"></xs:enumeration>
- <xs:enumeration value="1 Timer 1 CC2 event"></xs:enumeration>
- <xs:enumeration value="2 Timer 1 CC3 event"></xs:enumeration>
- <xs:enumeration value="3 Timer 2 CC2 event"></xs:enumeration>
- <xs:enumeration value="4 Timer 2 CC3 event"></xs:enumeration>
- <xs:enumeration value="5 Timer 2 CC4 event"></xs:enumeration>
- <xs:enumeration value="6 Timer 2 TRGO event"></xs:enumeration>
- <xs:enumeration value="7 Timer 3 CC1 event"></xs:enumeration>
- <xs:enumeration value="8 Timer 3 TRGO event"></xs:enumeration>
- <xs:enumeration value="9 Timer 4 CC4 event"></xs:enumeration>
- <xs:enumeration value="10 Timer 5 CC1 event"></xs:enumeration>
- <xs:enumeration value="11 Timer 5 CC2 event"></xs:enumeration>
- <xs:enumeration value="12 Timer 5 CC3 event"></xs:enumeration>
- <xs:enumeration value="13 Timer 8 CC1 event"></xs:enumeration>
- <xs:enumeration value="14 Timer 8 CC4 event"></xs:enumeration>
- <xs:enumeration value="15 EXTI line15"></xs:enumeration>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="discontinuous_mode" type="xs:boolean"
- use="required">
- </xs:attribute>
- <xs:attribute name="discontinuous_number" use="required">
- <xs:simpleType>
- <xs:restriction base="xs:int">
- <xs:minInclusive value="1"></xs:minInclusive>
- <xs:maxInclusive value="8"></xs:maxInclusive>
- <xs:whiteSpace value="collapse"></xs:whiteSpace>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
+
+
+
+
+
</xs:extension>
</xs:complexContent>
</xs:complexType>
diff --git a/tools/gencfg/xml/stm32f4board.xml b/tools/gencfg/xml/stm32f4board.xml
index ae76505c5..dffa016c7 100644
--- a/tools/gencfg/xml/stm32f4board.xml
+++ b/tools/gencfg/xml/stm32f4board.xml
@@ -2,1185 +2,319 @@
<!-- STM32F4xx board Template -->
<board
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="http://www.chibios.org/xml/schema/boards/stm32f4xx_board.xsd"
- name="-----descriptive board name here-----"
- BoardID="IDENTIFIER_NAME"
- HSEBypass="false"
- HSEFrequency="8000000"
- LSEFrequency="32768"
- BoardPHYID="MII_KS8721_ID"
- BoardPHYType="RMII"
- VDD="330">
- <ports>
+ xsi:noNamespaceSchemaLocation="http://www.chibios.org/xml/schema/boards/stm32f4xx_board.xsd">
+ <board_name>-----human readable blard name-----</board_name>
+ <board_id>BOARD_IDENTIFIER</board_id>
+ <ethernet_phy>
+ <identifier>MII_KS8721_ID</identifier>
+ <bus_type>RMII</bus_type>
+ </ethernet_phy>
+ <clocks HSEFrequency="8000000" HSEBypass="false" LSEFrequency="32768" VDD="300" /><ports>
<GPIOA>
- <pin0
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin1
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin2
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin3
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin4
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin5
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin6
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin7
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin8
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin9
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin10
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin11
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin12
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin13
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin14
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin15
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
+ <pin0 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin1 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin2 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin3 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin4 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin5 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin6 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin7 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin8 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin9 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin10 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin11 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin12 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin13 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin14 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin15 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
</GPIOA>
<GPIOB>
- <pin0
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin1
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin2
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin3
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin4
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin5
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin6
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin7
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin8
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin9
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin10
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin11
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin12
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin13
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin14
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin15
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
+ <pin0 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin1 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin2 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin3 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin4 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin5 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin6 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin7 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin8 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin9 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin10 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin11 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin12 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin13 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin14 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin15 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
</GPIOB>
<GPIOC>
- <pin0
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin1
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin2
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin3
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin4
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin5
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin6
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin7
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin8
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin9
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin10
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin11
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin12
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin13
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin14
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin15
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
+ <pin0 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin1 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin2 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin3 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin4 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin5 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin6 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin7 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin8 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin9 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin10 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin11 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin12 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin13 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin14 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin15 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
</GPIOC>
<GPIOD>
- <pin0
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin1
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin2
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin3
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin4
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin5
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin6
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin7
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin8
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin9
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin10
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin11
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin12
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin13
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin14
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin15
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
+ <pin0 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin1 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin2 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin3 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin4 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin5 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin6 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin7 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin8 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin9 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin10 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin11 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin12 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin13 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin14 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin15 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
</GPIOD>
<GPIOE>
- <pin0
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin1
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin2
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin3
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin4
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin5
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin6
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin7
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin8
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin9
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin10
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin11
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin12
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin13
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin14
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin15
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
+ <pin0 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin1 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin2 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin3 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin4 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin5 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin6 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin7 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin8 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin9 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin10 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin11 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin12 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin13 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin14 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin15 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
</GPIOE>
<GPIOF>
- <pin0
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin1
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin2
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin3
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin4
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin5
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin6
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin7
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin8
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin9
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin10
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin11
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin12
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin13
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin14
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin15
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
+ <pin0 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin1 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin2 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin3 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin4 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin5 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin6 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin7 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin8 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin9 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin10 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin11 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin12 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin13 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin14 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin15 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
</GPIOF>
<GPIOG>
- <pin0
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin1
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin2
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin3
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin4
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin5
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin6
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin7
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin8
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin9
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin10
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin11
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin12
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin13
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin14
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin15
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
+ <pin0 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin1 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin2 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin3 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin4 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin5 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin6 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin7 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin8 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin9 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin10 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin11 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin12 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin13 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin14 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin15 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
</GPIOG>
<GPIOH>
- <pin0
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin1
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin2
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin3
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin4
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin5
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin6
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin7
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin8
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin9
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin10
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin11
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin12
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin13
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin14
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin15
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
+ <pin0 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin1 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin2 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin3 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin4 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin5 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin6 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin7 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin8 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin9 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin10 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin11 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin12 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin13 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin14 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin15 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
</GPIOH>
<GPIOI>
- <pin0
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin1
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin2
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin3
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin4
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin5
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin6
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin7
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin8
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin9
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin10
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin11
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin12
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin13
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin14
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
- <pin15
- ID=""
- Type="PushPull"
- Level="High"
- Speed="Minimum"
- Resistor="Floating"
- Mode="Input"
- Alternate="0" />
+ <pin0 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin1 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin2 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin3 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin4 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin5 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin6 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin7 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin8 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin9 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin10 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin11 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin12 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin13 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin14 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
+ <pin15 ID="" Type="PushPull" Speed="Minimum" Resistor="Floating"
+ Level="High" Mode="Input" Alternate="0" />
</GPIOI>
- </ports>
+</ports>
</board>
diff --git a/tools/gencfg/xml/stm32f4xx_cfg.xml b/tools/gencfg/xml/stm32f4xx_cfg.xml
index a0ed7fbb6..896cc2614 100644
--- a/tools/gencfg/xml/stm32f4xx_cfg.xml
+++ b/tools/gencfg/xml/stm32f4xx_cfg.xml
@@ -1,18 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- STM32F4xx board Template -->
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="http://www.chibios.org/xml/schema/hal/stm32f4xx/stm32f4xx_cfg.xsd"
- name="hal_configs">
- <details>Application HAL configurations.</details>
+ xsi:noNamespaceSchemaLocation="http://www.chibios.org/xml/schema/hal/stm32f4xx/stm32f4xx_cfg.xsd">
+ <name>hal_configs</name>
+ <brief>Application HAL-related settings.</brief>
<configs>
- <adc_config name="adccfg1">
+ <adc_config>
+ <name>adccfg1</name>
+ <brief>Example ADC configuration.</brief>
<groups>
- <group discontinuous_number="1" name="adcgrpcfg1"
- trigger_mode="0 Software" error_callback=""
- resolution="0 12 bits" trigger_source="0 Timer 1 CC1 event"
- discontinuous_mode="true"
- alignment="0 Samples are Right Aligned" conversion_callback=""
- circular="true" brief="Example conversion group.">
+ <group>
+ <name>adcgrpcfg1</name>
+ <brief>Example ADC conversion group configuration.</brief>
+ <circular>true</circular>
+ <conv_callback>conv_callback</conv_callback>
+ <error_callback>error_callback</error_callback>
+ <alignment>0 Samples are Right Aligned</alignment>
+ <resolution>0 12 bits</resolution>
+ <trigger_mode>0 Software</trigger_mode>
+ <trigger_source>0 Timer 1 CC1 event</trigger_source>
+ <discontinuous>2 Two discontinous conversions</discontinuous>
<sample_time>
<IN0>ADC_SAMPLE_3</IN0>
<IN1>ADC_SAMPLE_3</IN1>
@@ -36,8 +43,10 @@
</sample_time>
<channels_sequence>
<channel>ADC_CHANNEL_IN0</channel>
+ <channel>ADC_CHANNEL_IN8</channel>
</channels_sequence>
</group>
</groups>
- </adc_config></configs>
+ </adc_config>
+ </configs>
</configuration>