aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorJakub Kaderka <jakub.kaderka@gmail.com>2019-01-28 20:14:57 +0100
committerJakub Kaderka <jakub.kaderka@gmail.com>2019-01-28 20:14:57 +0100
commit7b88a716bdb83a06e68e6ac8ab4a3648796a0df6 (patch)
treea18385c912d9ba3d96781a743070f3c67d1a0bb6 /tools
parentbdcee915863d3f4bcc561c192cef1155e1f65b02 (diff)
downloadChibiOS-Contrib-7b88a716bdb83a06e68e6ac8ab4a3648796a0df6.tar.gz
ChibiOS-Contrib-7b88a716bdb83a06e68e6ac8ab4a3648796a0df6.tar.bz2
ChibiOS-Contrib-7b88a716bdb83a06e68e6ac8ab4a3648796a0df6.zip
Added ODR setting to mx2board.py
Diffstat (limited to 'tools')
-rwxr-xr-xtools/mx2board.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/tools/mx2board.py b/tools/mx2board.py
index 20dcfb3..1727b12 100755
--- a/tools/mx2board.py
+++ b/tools/mx2board.py
@@ -48,7 +48,7 @@ DEFAULT_PAD = {"SIGNAL": "UNUSED",
"OTYPER": PIN_OTYPE_PUSHPULL,
"OSPEEDR": PIN_OSPEED_VERYLOW,
"PUPDR": PIN_PUPDR_FLOATING,
- "ODR": PIN_ODR_HIGH}
+ "ODR": PIN_ODR_LOW}
PIN_MODE_TRANSLATE = {"GPIO_MODE_AF_PP": PIN_MODE_ALTERNATE,
"GPIO_MODE_ANALOG": PIN_MODE_ANALOG,
@@ -70,6 +70,9 @@ PIN_PUPDR_TRANSLATE = {"GPIO_NOPULL": PIN_PUPDR_FLOATING,
"GPIO_PULLUP": PIN_PUPDR_PULLUP,
"GPIO_PULLDOWN": PIN_PUPDR_PULLDOWN}
+PIN_ODR_TRANSLATE = {"GPIO_PIN_SET": PIN_ODR_HIGH,
+ "GPIO_PIN_CLEAR": PIN_ODR_LOW}
+
parser = ArgumentParser(description='Generate ChibiOS GPIO header file from STM32CubeMX project files.')
group = parser.add_mutually_exclusive_group(required=False)
group.add_argument('-m', '--mx', default='', type=str, help='STM32CubeMX path. Invalid if -g is used.')
@@ -222,6 +225,7 @@ def read_project(gpio, filename):
pad_prop = split[0].split(".")[-1]
prop_value = split[-1].rstrip('\r\n')
+
if pad_prop == "Signal":
if 'S_TIM' in prop_value:
prop_value = prop_value[2:]
@@ -250,6 +254,8 @@ def read_project(gpio, filename):
pads[pad_port][pad_num]["MODER"] = PIN_MODE_OUTPUT
elif pad_prop == "GPIO_Speed":
pads[pad_port][pad_num]["OSPEEDR"] = PIN_OSPEED_TRANSLATE[prop_value]
+ elif pad_prop == "PinState":
+ pads[pad_port][pad_num]["ODR"] = PIN_ODR_TRANSLATE[prop_value]
return pads