Work in progress STM32WB board configuration

git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@13962 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
cinsights 2020-12-18 09:54:34 +00:00
parent a224a6ee14
commit be8557f2cb
8 changed files with 2735 additions and 0 deletions

View File

@ -0,0 +1,420 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- STM32L4xx board Template -->
<board
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://www.chibios.org/xml/schema/boards/stm32l4xx_board.xsd">
<configuration_settings>
<templates_path>resources/gencfg/processors/boards/stm32l4xx/templates</templates_path>
<output_path>..</output_path>
<hal_version>5.0.x</hal_version>
</configuration_settings>
<board_name>STMicroelectronics STM32 Nucleo144-L496ZG</board_name>
<board_id>ST_NUCLEO144_L496ZG</board_id>
<board_functions></board_functions>
<headers></headers>
<subtype>STM32L496xx</subtype>
<clocks HSEFrequency="0" HSEBypass="false" LSEFrequency="0"
LSEBypass="false" LSEDrive="3 High Drive (default)" VDD="300" />
<ports>
<GPIOA>
<pin0 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin1 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin2 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin3 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin4 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin5 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin6 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin7 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin8 Type="PushPull" Speed="Maximum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="10" ID="USB_SOF" Resistor="Floating"
Mode="Alternate" Level="Low" />
<pin9 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="USB_VBUS" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin10 Type="PushPull" Speed="Maximum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="10" ID="USB_ID" Resistor="Floating"
Mode="Alternate" Level="Low" />
<pin11 Type="PushPull" Speed="Maximum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="10" ID="USB_DM" Resistor="Floating"
Mode="Alternate" Level="Low" />
<pin12 Type="PushPull" Speed="Maximum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="10" ID="USB_DP" Resistor="Floating"
Mode="Alternate" Level="Low" />
<pin13 Type="PushPull" Speed="Maximum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="SWDIO" Resistor="PullDown"
Mode="Alternate" Level="Low" />
<pin14 Type="PushPull" Speed="Maximum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="SWCLK" Resistor="PullUp"
Mode="Alternate" Level="Low" ></pin14>
<pin15 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
</GPIOA>
<GPIOB>
<pin0 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin1 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin2 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin3 Type="PushPull" Speed="Maximum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="SWO" Resistor="Floating"
Mode="Alternate" Level="Low" />
<pin4 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin5 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin6 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin7 Type="PushPull" Speed="Maximum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="LED2 LED_BLUE" Resistor="Floating"
Mode="Output" Level="Low" />
<pin8 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin9 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin10 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin11 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin12 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin13 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin14 Type="PushPull" Speed="Maximum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="LED3 LED_RED" Resistor="Floating"
Mode="Output" Level="Low" />
<pin15 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
</GPIOB>
<GPIOC>
<pin0 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin1 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin2 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin3 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin4 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin5 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin6 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin7 Type="PushPull" Speed="Maximum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="LED1 LED_GREEN" Resistor="Floating"
Mode="Output" Level="Low" />
<pin8 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin9 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin10 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin11 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin12 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin13 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="BUTTON" Resistor="Floating"
Mode="Input" Level="Low" />
<pin14 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin15 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
</GPIOC>
<GPIOD>
<pin0 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin1 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin2 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin3 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin4 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin5 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin6 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin7 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin8 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin9 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin10 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin11 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin12 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin13 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin14 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin15 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
</GPIOD>
<GPIOE>
<pin0 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin1 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin2 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin3 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin4 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin5 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin6 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin7 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin8 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin9 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin10 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin11 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin12 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin13 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin14 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin15 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
</GPIOE>
<GPIOF>
<pin0 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin1 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin2 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin3 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin4 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin5 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin6 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin7 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin8 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin9 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin10 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin11 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin12 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin13 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin14 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin15 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
</GPIOF>
<GPIOG>
<pin0 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin1 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin2 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin3 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin4 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin5 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="USB_OVER_CURRENT" Resistor="Floating"
Mode="Input" Level="Low" />
<pin6 Type="PushPull" Speed="Maximum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="USB_POWER_SWITCH_ON" Resistor="Floating"
Mode="Output" Level="Low" />
<pin7 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="8" ID="LPUART1_TX" Resistor="Floating"
Mode="Alternate" Level="Low" />
<pin8 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="8" ID="LPUART1_RX" Resistor="Floating"
Mode="Alternate" Level="Low" />
<pin9 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin10 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin11 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin12 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin13 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin14 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin15 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
</GPIOG>
<GPIOH>
<pin0 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin1 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Analog" Level="Low" />
<pin2 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Input" Level="Low" />
<pin3 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Input" Level="Low" />
<pin4 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Input" Level="Low" />
<pin5 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Input" Level="Low" />
<pin6 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Input" Level="Low" />
<pin7 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Input" Level="Low" />
<pin8 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Input" Level="Low" />
<pin9 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Input" Level="Low" />
<pin10 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Input" Level="Low" />
<pin11 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Input" Level="Low" />
<pin12 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Input" Level="Low" />
<pin13 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Input" Level="Low" />
<pin14 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Input" Level="Low" />
<pin15 Type="PushPull" Speed="Minimum" AnalogSwitch="Disabled"
PinLock="Disabled" Alternate="0" ID="" Resistor="Floating"
Mode="Input" Level="Low" />
</GPIOH>
</ports>
</board>

View File

@ -0,0 +1,15 @@
sourceRoot: ../../../../../tools/ftl/processors/boards/stm32wbxx/templates
outputRoot: ..
dataRoot: .
freemarkerLinks: {
lib: ../../../../../tools/ftl/libs
}
data : {
doc1:xml (
board.chcfg
{
}
)
}

View File

@ -0,0 +1,342 @@
[#ftl]
[#--
ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio.
This file is part of ChibiOS.
ChibiOS is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
ChibiOS is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
--]
[@pp.dropOutputFile /]
[#import "/@lib/libutils.ftl" as utils /]
[#import "/@lib/liblicense.ftl" as license /]
[@pp.changeOutputFile name="board.c" /]
/*
[@license.EmitLicenseAsText /]
*/
/*
* This file has been automatically generated using ChibiStudio board
* generator plugin. Do not edit manually.
*/
[#list doc1.board.headers.header as header]
#include "${header[0]?string?trim}"
[/#list]
#include "hal.h"
[#if doc1.board.configuration_settings.hal_version[0]?trim != "4.0.x"]
#include "stm32_gpio.h"
[/#if]
/*===========================================================================*/
/* Driver local definitions. */
/*===========================================================================*/
/*===========================================================================*/
/* Driver exported variables. */
/*===========================================================================*/
/*===========================================================================*/
/* Driver local variables and types. */
/*===========================================================================*/
[#if doc1.board.configuration_settings.hal_version[0]?trim != "4.0.x"]
/**
* @brief Type of STM32 GPIO port setup.
*/
typedef struct {
uint32_t moder;
uint32_t otyper;
uint32_t ospeedr;
uint32_t pupdr;
uint32_t odr;
uint32_t afrl;
uint32_t afrh;
uint32_t ascr;
uint32_t lockr;
} gpio_setup_t;
/**
* @brief Type of STM32 GPIO initialization data.
*/
typedef struct {
#if STM32_HAS_GPIOA || defined(__DOXYGEN__)
gpio_setup_t PAData;
#endif
#if STM32_HAS_GPIOB || defined(__DOXYGEN__)
gpio_setup_t PBData;
#endif
#if STM32_HAS_GPIOC || defined(__DOXYGEN__)
gpio_setup_t PCData;
#endif
#if STM32_HAS_GPIOD || defined(__DOXYGEN__)
gpio_setup_t PDData;
#endif
#if STM32_HAS_GPIOE || defined(__DOXYGEN__)
gpio_setup_t PEData;
#endif
#if STM32_HAS_GPIOF || defined(__DOXYGEN__)
gpio_setup_t PFData;
#endif
#if STM32_HAS_GPIOG || defined(__DOXYGEN__)
gpio_setup_t PGData;
#endif
#if STM32_HAS_GPIOH || defined(__DOXYGEN__)
gpio_setup_t PHData;
#endif
#if STM32_HAS_GPIOI || defined(__DOXYGEN__)
gpio_setup_t PIData;
#endif
#if STM32_HAS_GPIOJ || defined(__DOXYGEN__)
gpio_setup_t PJData;
#endif
#if STM32_HAS_GPIOK || defined(__DOXYGEN__)
gpio_setup_t PKData;
#endif
} gpio_config_t;
[/#if]
[#if doc1.board.configuration_settings.hal_version[0]?trim != "4.0.x"]
/**
* @brief STM32 GPIO static initialization data.
*/
static const gpio_config_t gpio_default_config = {
[#else]
#if HAL_USE_PAL || defined(__DOXYGEN__)
/**
* @brief PAL setup.
* @details Digital I/O ports static configuration as defined in @p board.h.
* This variable is used by the HAL when initializing the PAL driver.
*/
const PALConfig pal_default_config = {
[/#if]
#if STM32_HAS_GPIOA
{VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR,
VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH, VAL_GPIOA_ASCR,
VAL_GPIOA_LOCKR},
#endif
#if STM32_HAS_GPIOB
{VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR,
VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH, VAL_GPIOB_ASCR,
VAL_GPIOB_LOCKR},
#endif
#if STM32_HAS_GPIOC
{VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR,
VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH, VAL_GPIOC_ASCR,
VAL_GPIOC_LOCKR},
#endif
#if STM32_HAS_GPIOD
{VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR,
VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH, VAL_GPIOD_ASCR,
VAL_GPIOD_LOCKR},
#endif
#if STM32_HAS_GPIOE
{VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR,
VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH, VAL_GPIOE_ASCR,
VAL_GPIOE_LOCKR},
#endif
#if STM32_HAS_GPIOF
{VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR,
VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH, VAL_GPIOF_ASCR,
VAL_GPIOF_LOCKR},
#endif
#if STM32_HAS_GPIOG
{VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR,
VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH, VAL_GPIOG_ASCR,
VAL_GPIOG_LOCKR},
#endif
#if STM32_HAS_GPIOH
{VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR,
VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH, VAL_GPIOH_ASCR,
VAL_GPIOH_LOCKR},
#endif
#if STM32_HAS_GPIOI
{VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR,
VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH, VAL_GPIOI_ASCR,
VAL_GPIOI_LOCKR},
#endif
#if STM32_HAS_GPIOJ
{VAL_GPIOJ_MODER, VAL_GPIOJ_OTYPER, VAL_GPIOJ_OSPEEDR, VAL_GPIOJ_PUPDR,
VAL_GPIOJ_ODR, VAL_GPIOJ_AFRL, VAL_GPIOJ_AFRH, VAL_GPIOJ_ASCR,
VAL_GPIOJ_LOCKR},
#endif
#if STM32_HAS_GPIOK
{VAL_GPIOK_MODER, VAL_GPIOK_OTYPER, VAL_GPIOK_OSPEEDR, VAL_GPIOK_PUPDR,
VAL_GPIOK_ODR, VAL_GPIOK_AFRL, VAL_GPIOK_AFRH, VAL_GPIOK_ASCR,
VAL_GPIOK_LOCKR}
#endif
};
[#if doc1.board.configuration_settings.hal_version[0]?trim == "4.0.x"]
#endif
[/#if]
/*===========================================================================*/
/* Driver local functions. */
/*===========================================================================*/
[#if doc1.board.configuration_settings.hal_version[0]?trim != "4.0.x"]
static void gpio_init(stm32_gpio_t *gpiop, const gpio_setup_t *config) {
gpiop->OTYPER = config->otyper;
gpiop->ASCR = config->ascr;
gpiop->OSPEEDR = config->ospeedr;
gpiop->PUPDR = config->pupdr;
gpiop->ODR = config->odr;
gpiop->AFRL = config->afrl;
gpiop->AFRH = config->afrh;
gpiop->MODER = config->moder;
gpiop->LOCKR = config->lockr;
}
static void stm32_gpio_init(void) {
/* Enabling GPIO-related clocks, the mask comes from the
registry header file.*/
rccResetAHB2(STM32_GPIO_EN_MASK);
rccEnableAHB2(STM32_GPIO_EN_MASK, true);
/* Initializing all the defined GPIO ports.*/
#if STM32_HAS_GPIOA
gpio_init(GPIOA, &gpio_default_config.PAData);
#endif
#if STM32_HAS_GPIOB
gpio_init(GPIOB, &gpio_default_config.PBData);
#endif
#if STM32_HAS_GPIOC
gpio_init(GPIOC, &gpio_default_config.PCData);
#endif
#if STM32_HAS_GPIOD
gpio_init(GPIOD, &gpio_default_config.PDData);
#endif
#if STM32_HAS_GPIOE
gpio_init(GPIOE, &gpio_default_config.PEData);
#endif
#if STM32_HAS_GPIOF
gpio_init(GPIOF, &gpio_default_config.PFData);
#endif
#if STM32_HAS_GPIOG
gpio_init(GPIOG, &gpio_default_config.PGData);
#endif
#if STM32_HAS_GPIOH
gpio_init(GPIOH, &gpio_default_config.PHData);
#endif
#if STM32_HAS_GPIOI
gpio_init(GPIOI, &gpio_default_config.PIData);
#endif
#if STM32_HAS_GPIOJ
gpio_init(GPIOJ, &gpio_default_config.PJData);
#endif
#if STM32_HAS_GPIOK
gpio_init(GPIOK, &gpio_default_config.PKData);
#endif
}
[/#if]
/*===========================================================================*/
/* Driver interrupt handlers. */
/*===========================================================================*/
/*===========================================================================*/
/* Driver exported functions. */
/*===========================================================================*/
/**
* @brief Early initialization code.
[#if doc1.board.configuration_settings.hal_version[0]?trim != "4.0.x"]
* @details GPIO ports and system clocks are initialized before everything
* else.
[#else]
* @details System clocks are initialized before everything else.
[/#if]
*/
void __early_init(void) {
[#if doc1.board.configuration_settings.hal_version[0]?trim != "4.0.x"]
stm32_gpio_init();
[/#if]
stm32_clock_init();
[#if doc1.board.board_functions.__early_init[0]??]
${doc1.board.board_functions.__early_init[0]}
[/#if]
}
#if HAL_USE_SDC || defined(__DOXYGEN__)
/**
* @brief SDC card detection.
*/
bool sdc_lld_is_card_inserted(SDCDriver *sdcp) {
[#if doc1.board.board_functions.sdc_lld_is_card_inserted[0]??]
${doc1.board.board_functions.sdc_lld_is_card_inserted[0]}
[#else]
(void)sdcp;
/* CHTODO: Fill the implementation.*/
return true;
[/#if]
}
/**
* @brief SDC card write protection detection.
*/
bool sdc_lld_is_write_protected(SDCDriver *sdcp) {
[#if doc1.board.board_functions.sdc_lld_is_write_protected[0]??]
${doc1.board.board_functions.sdc_lld_is_write_protected[0]}
[#else]
(void)sdcp;
/* CHTODO: Fill the implementation.*/
return false;
[/#if]
}
#endif /* HAL_USE_SDC */
#if HAL_USE_MMC_SPI || defined(__DOXYGEN__)
/**
* @brief MMC_SPI card detection.
*/
bool mmc_lld_is_card_inserted(MMCDriver *mmcp) {
[#if doc1.board.board_functions.mmc_lld_is_card_inserted[0]??]
${doc1.board.board_functions.mmc_lld_is_card_inserted[0]}
[#else]
(void)mmcp;
/* CHTODO: Fill the implementation.*/
return true;
[/#if]
}
/**
* @brief MMC_SPI card write protection detection.
*/
bool mmc_lld_is_write_protected(MMCDriver *mmcp) {
[#if doc1.board.board_functions.mmc_lld_is_write_protected[0]??]
${doc1.board.board_functions.mmc_lld_is_write_protected[0]}
[#else]
(void)mmcp;
/* CHTODO: Fill the implementation.*/
return false;
[/#if]
}
#endif
/**
* @brief Board-specific initialization code.
* @note You can add your board-specific code here.
*/
void boardInit(void) {
[#if doc1.board.board_functions.boardInit[0]??]
${doc1.board.board_functions.boardInit[0]}
[/#if]
}

View File

@ -0,0 +1,449 @@
[#ftl]
[#--
ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio.
This file is part of ChibiOS.
ChibiOS is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
ChibiOS is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
--]
[@pp.dropOutputFile /]
[#import "/@lib/libutils.ftl" as utils /]
[#import "/@lib/liblicense.ftl" as license /]
[@pp.changeOutputFile name="board.h" /]
/*
[@license.EmitLicenseAsText /]
*/
/*
* This file has been automatically generated using ChibiStudio board
* generator plugin. Do not edit manually.
*/
#ifndef BOARD_H
#define BOARD_H
/*===========================================================================*/
/* Driver constants. */
/*===========================================================================*/
/*
* Setup for ${doc1.board.board_name[0]} board.
*/
/*
* Board identifier.
*/
#define BOARD_${doc1.board.board_id[0]}
#define BOARD_NAME "${doc1.board.board_name[0]}"
[#if doc1.board.ethernet_phy[0]??]
/*
* Ethernet PHY type.
*/
#define BOARD_PHY_ID ${doc1.board.ethernet_phy.identifier[0]}
[#if doc1.board.ethernet_phy.bus_type[0]?string == "RMII"]
#define BOARD_PHY_RMII
[/#if]
[/#if]
[#if doc1.board.usb_phy[0]?? && doc1.board.usb_phy.bus_type[0]?string == "ULPI"]
/*
* The board has an ULPI USB PHY.
*/
#define BOARD_OTG2_USES_ULPI
[/#if]
/*
* Board oscillators-related settings.
[#if doc1.board.clocks.@LSEFrequency[0]?number == 0]
* NOTE: LSE not fitted.
[/#if]
[#if doc1.board.clocks.@HSEFrequency[0]?number == 0]
* NOTE: HSE not fitted.
[/#if]
*/
#if !defined(STM32_LSECLK)
#define STM32_LSECLK ${doc1.board.clocks.@LSEFrequency[0]}U
#endif
[#if doc1.board.clocks.@LSEBypass[0]?string == "true"]
#define STM32_LSE_BYPASS
[/#if]
#define STM32_LSEDRV (${doc1.board.clocks.@LSEDrive[0]?word_list[0]?number}U << 3U)
#if !defined(STM32_HSECLK)
#define STM32_HSECLK ${doc1.board.clocks.@HSEFrequency[0]}U
#endif
[#if doc1.board.clocks.@HSEBypass[0]?string == "true"]
#define STM32_HSE_BYPASS
[/#if]
/*
* Board voltages.
* Required for performance limits calculation.
*/
#define STM32_VDD ${doc1.board.clocks.@VDD[0]}U
/*
* MCU type as defined in the ST header.
*/
#define ${doc1.board.subtype[0]}
/*
* IO pins assignments.
*/
[#list doc1.board.ports.* as port]
[#assign port_name = port?node_name?upper_case /]
[#list port.* as pin]
[#assign names = pin.@ID[0]?string?word_list /]
[#if names?size == 0]
[#assign pin_name = pin?node_name?upper_case /]
#define ${(port_name + "_" + pin_name)?right_pad(27, " ")} ${pin_index?string}U
[#else]
[#list names as name]
#define ${(port_name + "_" + name)?right_pad(27, " ")} ${pin_index?string}U
[/#list]
[/#if]
[/#list]
[/#list]
/*
* IO lines assignments.
*/
[#list doc1.board.ports.* as port]
[#assign port_name = port?node_name?upper_case /]
[#list port.* as pin]
[#assign names = pin.@ID[0]?string?word_list /]
[#if names?size > 0]
[#list names as name]
#define LINE_${name?right_pad(22, " ")} PAL_LINE(${port_name}, ${pin_index?string}U)
[/#list]
[/#if]
[/#list]
[/#list]
/*===========================================================================*/
/* Driver pre-compile time settings. */
/*===========================================================================*/
/*===========================================================================*/
/* Derived constants and error checks. */
/*===========================================================================*/
/*===========================================================================*/
/* Driver data structures and types. */
/*===========================================================================*/
/*===========================================================================*/
/* Driver macros. */
/*===========================================================================*/
/*
* I/O ports initial setup, this configuration is established soon after reset
* in the initialization code.
* Please refer to the STM32 Reference Manual for details.
*/
#define PIN_MODE_INPUT(n) (0U << ((n) * 2U))
#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U))
#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U))
#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U))
#define PIN_ODR_LOW(n) (0U << (n))
#define PIN_ODR_HIGH(n) (1U << (n))
#define PIN_OTYPE_PUSHPULL(n) (0U << (n))
#define PIN_OTYPE_OPENDRAIN(n) (1U << (n))
#define PIN_OSPEED_VERYLOW(n) (0U << ((n) * 2U))
#define PIN_OSPEED_LOW(n) (1U << ((n) * 2U))
#define PIN_OSPEED_MEDIUM(n) (2U << ((n) * 2U))
#define PIN_OSPEED_HIGH(n) (3U << ((n) * 2U))
#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U))
#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U))
#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U))
#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U))
#define PIN_ASCR_DISABLED(n) (0U << (n))
#define PIN_ASCR_ENABLED(n) (1U << (n))
#define PIN_LOCKR_DISABLED(n) (0U << (n))
#define PIN_LOCKR_ENABLED(n) (1U << (n))
[#list doc1.board.ports.* as port]
[#assign port_name = port?node_name?upper_case /]
/*
* ${port_name} setup:
*
[#-- Generating pin descriptions inside the comment.--]
[#list port.* as pin]
[#assign pin_name = pin?node_name?upper_case /]
[#assign name = pin.@ID[0]?string?trim /]
[#if name?length == 0]
[#assign name = pin_name /]
[/#if]
[#assign mode = pin.@Mode[0] /]
[#assign type = pin.@Type[0] /]
[#assign resistor = pin.@Resistor[0] /]
[#assign speed = pin.@Speed[0] /]
[#assign alternate = pin.@Alternate[0] /]
[#if mode == "Input"]
[#assign desc = mode + " " + resistor /]
[#elseif mode == "Output"]
[#assign desc = mode + " " + type + " " + speed /]
[#elseif mode == "Alternate"]
[#assign desc = mode + " " + alternate /]
[#else]
[#assign desc = "Analog" /]
[/#if]
* P${(port?node_name[4..] + pin_index?string)?right_pad(3, " ")} - ${name?right_pad(26, " ")}(${desc?lower_case}).
[/#list]
*/
[#--
-- Generating MODER register value.
--]
[#list port.* as pin]
[#assign names = pin.@ID[0]?string?word_list /]
[#if names?size == 0]
[#assign name = pin?node_name?upper_case /]
[#else]
[#assign name = names[0] /]
[/#if]
[#assign mode = pin.@Mode[0] /]
[#if mode == "Input"]
[#assign out = "PIN_MODE_INPUT(" + port_name + "_" + name + ")" /]
[#elseif mode == "Output"]
[#assign out = "PIN_MODE_OUTPUT(" + port_name + "_" + name + ")" /]
[#elseif mode == "Alternate"]
[#assign out = "PIN_MODE_ALTERNATE(" + port_name + "_" + name + ")" /]
[#else]
[#assign out = "PIN_MODE_ANALOG(" + port_name + "_" + name + ")" /]
[/#if]
[#if pin_index == 0]
[#assign line = "#define VAL_" + port_name + "_MODER (" + out /]
[#else]
[#assign line = " " + out /]
[/#if]
[#if pin_index < 15]
${(line + " |")?right_pad(76, " ") + "\\"}
[#else]
${line + ")"}
[/#if]
[/#list]
[#--
-- Generating OTYPER register value.
--]
[#list port.* as pin]
[#assign names = pin.@ID[0]?string?word_list /]
[#if names?size == 0]
[#assign name = pin?node_name?upper_case /]
[#else]
[#assign name = names[0] /]
[/#if]
[#assign type = pin.@Type[0] /]
[#if type == "PushPull"]
[#assign out = "PIN_OTYPE_PUSHPULL(" + port_name + "_" + name + ")" /]
[#else]
[#assign out = "PIN_OTYPE_OPENDRAIN(" + port_name + "_" + name + ")" /]
[/#if]
[#if pin_index == 0]
[#assign line = "#define VAL_" + port_name + "_OTYPER (" + out /]
[#else]
[#assign line = " " + out /]
[/#if]
[#if pin_index < 15]
${(line + " |")?right_pad(76, " ") + "\\"}
[#else]
${line + ")"}
[/#if]
[/#list]
[#--
-- Generating SPEEDR register value.
--]
[#list port.* as pin]
[#assign names = pin.@ID[0]?string?word_list /]
[#if names?size == 0]
[#assign name = pin?node_name?upper_case /]
[#else]
[#assign name = names[0] /]
[/#if]
[#assign speed = pin.@Speed[0] /]
[#if speed == "Minimum"]
[#assign out = "PIN_OSPEED_VERYLOW(" + port_name + "_" + name + ")" /]
[#elseif speed == "Low"]
[#assign out = "PIN_OSPEED_LOW(" + port_name + "_" + name + ")" /]
[#elseif speed == "High"]
[#assign out = "PIN_OSPEED_MEDIUM(" + port_name + "_" + name + ")" /]
[#else]
[#assign out = "PIN_OSPEED_HIGH(" + port_name + "_" + name + ")" /]
[/#if]
[#if pin_index == 0]
[#assign line = "#define VAL_" + port_name + "_OSPEEDR (" + out /]
[#else]
[#assign line = " " + out /]
[/#if]
[#if pin_index < 15]
${(line + " |")?right_pad(76, " ") + "\\"}
[#else]
${line + ")"}
[/#if]
[/#list]
[#--
-- Generating PUPDR register value.
--]
[#list port.* as pin]
[#assign names = pin.@ID[0]?string?word_list /]
[#if names?size == 0]
[#assign name = pin?node_name?upper_case /]
[#else]
[#assign name = names[0] /]
[/#if]
[#assign resistor = pin.@Resistor[0] /]
[#if resistor == "Floating"]
[#assign out = "PIN_PUPDR_FLOATING(" + port_name + "_" + name + ")" /]
[#elseif resistor == "PullUp"]
[#assign out = "PIN_PUPDR_PULLUP(" + port_name + "_" + name + ")" /]
[#else]
[#assign out = "PIN_PUPDR_PULLDOWN(" + port_name + "_" + name + ")" /]
[/#if]
[#if pin_index == 0]
[#assign line = "#define VAL_" + port_name + "_PUPDR (" + out /]
[#else]
[#assign line = " " + out /]
[/#if]
[#if pin_index < 15]
${(line + " |")?right_pad(76, " ") + "\\"}
[#else]
${line + ")"}
[/#if]
[/#list]
[#--
-- Generating ODR register value.
--]
[#list port.* as pin]
[#assign names = pin.@ID[0]?string?word_list /]
[#if names?size == 0]
[#assign name = pin?node_name?upper_case /]
[#else]
[#assign name = names[0] /]
[/#if]
[#assign level = pin.@Level[0] /]
[#if level == "Low"]
[#assign out = "PIN_ODR_LOW(" + port_name + "_" + name + ")" /]
[#else]
[#assign out = "PIN_ODR_HIGH(" + port_name + "_" + name + ")" /]
[/#if]
[#if pin_index == 0]
[#assign line = "#define VAL_" + port_name + "_ODR (" + out /]
[#else]
[#assign line = " " + out /]
[/#if]
[#if pin_index < 15]
${(line + " |")?right_pad(76, " ") + "\\"}
[#else]
${line + ")"}
[/#if]
[/#list]
[#--
-- Generating AFRx registers values.
--]
[#list port.* as pin]
[#assign names = pin.@ID[0]?string?word_list /]
[#if names?size == 0]
[#assign name = pin?node_name?upper_case /]
[#else]
[#assign name = names[0] /]
[/#if]
[#assign alternate = pin.@Alternate[0]?trim /]
[#assign out = "PIN_AFIO_AF(" + port_name + "_" + name + ", " + alternate + "U)" /]
[#if pin_index == 0]
[#assign line = "#define VAL_" + port_name + "_AFRL (" + out /]
[#elseif pin_index == 8]
[#assign line = "#define VAL_" + port_name + "_AFRH (" + out /]
[#else]
[#assign line = " " + out /]
[/#if]
[#if (pin_index == 7) || (pin_index == 15)]
${line + ")"}
[#else]
${(line + " |")?right_pad(76, " ") + "\\"}
[/#if]
[/#list]
[#--
-- Generating ASCR register value.
--]
[#list port.* as pin]
[#assign names = pin.@ID[0]?string?word_list /]
[#if names?size == 0]
[#assign name = pin?node_name?upper_case /]
[#else]
[#assign name = names[0] /]
[/#if]
[#assign switch = pin.@AnalogSwitch[0] /]
[#if switch == "Disabled"]
[#assign out = "PIN_ASCR_DISABLED(" + port_name + "_" + name + ")" /]
[#else]
[#assign out = "PIN_ASCR_ENABLED(" + port_name + "_" + name + ")" /]
[/#if]
[#if pin_index == 0]
[#assign line = "#define VAL_" + port_name + "_ASCR (" + out /]
[#else]
[#assign line = " " + out /]
[/#if]
[#if pin_index < 15]
${(line + " |")?right_pad(76, " ") + "\\"}
[#else]
${line + ")"}
[/#if]
[/#list]
[#--
-- Generating LOCKR register value.
--]
[#list port.* as pin]
[#assign names = pin.@ID[0]?string?word_list /]
[#if names?size == 0]
[#assign name = pin?node_name?upper_case /]
[#else]
[#assign name = names[0] /]
[/#if]
[#assign lock = pin.@PinLock[0] /]
[#if lock == "Disabled"]
[#assign out = "PIN_LOCKR_DISABLED(" + port_name + "_" + name + ")" /]
[#else]
[#assign out = "PIN_LOCKR_ENABLED(" + port_name + "_" + name + ")" /]
[/#if]
[#if pin_index == 0]
[#assign line = "#define VAL_" + port_name + "_LOCKR (" + out /]
[#else]
[#assign line = " " + out /]
[/#if]
[#if pin_index < 15]
${(line + " |")?right_pad(76, " ") + "\\"}
[#else]
${line + ")"}
[/#if]
[/#list]
[/#list]
/*===========================================================================*/
/* External declarations. */
/*===========================================================================*/
#if !defined(_FROM_ASM_)
#ifdef __cplusplus
extern "C" {
#endif
void boardInit(void);
#ifdef __cplusplus
}
#endif
#endif /* _FROM_ASM_ */
#endif /* BOARD_H */

View File

@ -0,0 +1,43 @@
[#ftl]
[#--
ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio.
This file is part of ChibiOS.
ChibiOS is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
ChibiOS is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
--]
[@pp.dropOutputFile /]
[#import "/@lib/libutils.ftl" as utils /]
[@pp.changeOutputFile name="board.mk" /]
[#if doc1.board.configuration_settings.board_files_path[0]??]
[#assign path = doc1.board.configuration_settings.board_files_path[0]?string?trim /]
[#if !path?ends_with("/")]
[#assign path = path + "/"]
[/#if]
[#else]
[#if doc1.board.configuration_settings.hal_version[0]?trim == "2.6.x"]
[#assign path = "$(CHIBIOS)/boards/" /]
[#else]
[#assign path = "$(CHIBIOS)/os/hal/boards/" /]
[/#if]
[/#if]
# List of all the board related files.
BOARDSRC = ${path}${doc1.board.board_id[0]}/board.c
# Required include directories
BOARDINC = ${path}${doc1.board.board_id[0]}
# Shared variables
ALLCSRC += $(BOARDSRC)
ALLINC += $(BOARDINC)

View File

@ -65,4 +65,9 @@
<default>resources/gencfg/xml/stm32l5board.xml</default> <default>resources/gencfg/xml/stm32l5board.xml</default>
<basefilename>board</basefilename> <basefilename>board</basefilename>
</processor> </processor>
<processor class="board" target="STM32WBxx">
<name>STM32WBxx Board Configuration</name>
<path>resources/gencfg/processors/boards/stm32wbxx/templates</path>
<default>resources/gencfg/xml/stm32wbboard.xml</default>
<basefilename>board</basefilename></processor>
</processors> </processors>

View File

@ -0,0 +1,142 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="../common/doc.xsd" />
<xs:include schemaLocation="../common/stm32/stm32_gpiov3_port.xsd" />
<xs:include schemaLocation="abstract_board.xsd" />
<xs:complexType name="STM32WBxxBoardType">
<xs:complexContent>
<xs:extension base="AbstractBoardType">
<xs:sequence>
<xs:element name="subtype">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"></xs:whiteSpace>
<xs:enumeration value="STM32L432xx"></xs:enumeration>
<xs:enumeration value="STM32L443xx"></xs:enumeration>
<xs:enumeration value="STM32L452xx"></xs:enumeration>
<xs:enumeration value="STM32L471xx"></xs:enumeration>
<xs:enumeration value="STM32L475xx"></xs:enumeration>
<xs:enumeration value="STM32L476xx"></xs:enumeration>
<xs:enumeration value="STM32L485xx"></xs:enumeration>
<xs:enumeration value="STM32L486xx"></xs:enumeration>
<xs:enumeration value="STM32L496xx"></xs:enumeration>
<xs:enumeration value="STM32L4A6xx"></xs:enumeration>
<xs:enumeration value="STM32L4R5xx"></xs:enumeration>
<xs:enumeration value="STM32L4R7xx"></xs:enumeration>
<xs:enumeration value="STM32L4R9xx"></xs:enumeration>
<xs:enumeration value="STM32L4S5xx"></xs:enumeration>
<xs:enumeration value="STM32L4S7xx"></xs:enumeration>
<xs:enumeration value="STM32L4S9xx"></xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:element>
<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="LSEBypass" 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="LSEDrive" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"></xs:whiteSpace>
<xs:enumeration value="3 High Drive (default)">
</xs:enumeration>
<xs:enumeration value="2 Medium-High Drive">
</xs:enumeration>
<xs:enumeration value="1 Medium-Low Drive">
</xs:enumeration>
<xs:enumeration value="0 Low Drive (lowest consumption)">
</xs:enumeration>
</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:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="portsType">
<xs:sequence>
<xs:element name="GPIOA" type="STM32GPIOv3PortType"
minOccurs="1" maxOccurs="1">
</xs:element>
<xs:element name="GPIOB" type="STM32GPIOv3PortType"
minOccurs="1" maxOccurs="1">
</xs:element>
<xs:element name="GPIOC" type="STM32GPIOv3PortType"
minOccurs="1" maxOccurs="1">
</xs:element>
<xs:element name="GPIOD" type="STM32GPIOv3PortType"
maxOccurs="1" minOccurs="1">
</xs:element>
<xs:element name="GPIOE" type="STM32GPIOv3PortType"
maxOccurs="1" minOccurs="1">
</xs:element>
<xs:element name="GPIOF" type="STM32GPIOv3PortType"
maxOccurs="1" minOccurs="1">
</xs:element>
<xs:element name="GPIOG" type="STM32GPIOv3PortType"
maxOccurs="1" minOccurs="1">
</xs:element>
<xs:element name="GPIOH" type="STM32GPIOv3PortType"
maxOccurs="1" minOccurs="1">
</xs:element>
<xs:element name="GPIOI" type="STM32GPIOv3PortType"
maxOccurs="1" minOccurs="1">
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="board" type="STM32WBxxBoardType"></xs:element>
</xs:schema>

File diff suppressed because it is too large Load Diff