Browse Source

stm32/make-stmconst.py: Add support for WB55 header files.

pull/6406/head
Jim Mussared 4 years ago
committed by Damien George
parent
commit
b27edb8073
  1. 15
      ports/stm32/make-stmconst.py

15
ports/stm32/make-stmconst.py

@ -46,7 +46,7 @@ class LexerError(Exception):
class Lexer:
re_io_reg = r"__IO uint(?P<bits>8|16|32)_t +(?P<reg>[A-Z0-9]+)"
re_comment = r"(?P<comment>[A-Za-z0-9 \-/_()&]+)"
re_comment = r"(?P<comment>[A-Za-z0-9 \-/_()&:]+)"
re_addr_offset = r"Address offset: (?P<offset>0x[0-9A-Z]{2,3})"
regexs = (
(
@ -78,16 +78,16 @@ class Lexer:
(
"IO reg",
re.compile(
re_io_reg + r"; */\*!< *" + re_comment + r", +" + re_addr_offset + r" *\*/"
re_io_reg + r" *; */\*!< *" + re_comment + r",? +" + re_addr_offset + r" *\*/"
),
),
(
"IO reg array",
re.compile(
re_io_reg
+ r"\[(?P<array>[2-8])\]; */\*!< *"
+ r"\[(?P<array>[2-8])\] *; */\*!< *"
+ re_comment
+ r", +"
+ r",? +"
+ re_addr_offset
+ r"-(0x[0-9A-Z]{2,3}) *\*/"
),
@ -160,7 +160,11 @@ def parse_file(filename):
if m[0] == "}":
pass
elif m[0] == "} TypeDef":
reg_defs[m[1].groupdict()["id"]] = regs
d = m[1].groupdict()
n = d["id"]
g = d["global"]
if n not in reg_defs or not g:
reg_defs[n] = regs
else:
raise LexerError(lexer.line_number)
@ -298,6 +302,7 @@ def main():
"USART",
"WWDG",
"RNG",
"IPCC",
):
if reg in reg_defs:
print_regs(reg, reg_defs[reg], needed_qstrs, needed_mpzs)

Loading…
Cancel
Save