Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
9590cb339This file is pinned to the selected release. Download the original to open it in your design tool.
#!/usr/bin/env python
import re
import sys
infile = sys.argv[2]
with open(sys.argv[2]) as f: # TODO raise error if file cannot be opened instead of silently succeeding
pins = []
comp_name = ''
comp_file = infile.split("/")[-1].split(".")[0]
for line in f:
comp = re.search('COMP\((\w*)\);', line)
if comp:
comp_name = comp.groups()[0]
pin = re.search('HAL_PIN\((\w*)\)', line)
if pin:
pins.append((pin.groups()[0], int(1)))
pin = re.search('HAL_PINA\((\w*),\s*(\d*)\)', line)
if pin:
pins.append((pin.groups()[0], int(pin.groups()[1])))
header = open(sys.argv[1], 'w')
header.write("#pragma once\n")
header.write("//generated by " + sys.argv[0] + " DO NOT EDIT\n\n")
header.write("#include \"hal.h\"\n")
header.write("struct " + comp_name + "_pin_ctx_t{ // found in " + infile + "\n")
header.write(" hal_pin_inst_t rt_prio;\n")
header.write(" hal_pin_inst_t frt_prio;\n")
# header.write(" hal_pin_inst_t rt_calc_time;\n")
# header.write(" hal_pin_inst_t rt_start_time;\n")
# header.write(" hal_pin_inst_t frt_calc_time;\n")
# header.write(" hal_pin_inst_t frt_start_time;\n")
# header.write(" hal_pin_inst_t nrt_calc_time;\n")
# header.write(" hal_pin_inst_t nrt_start_time;\n")
for (p, i) in pins:
if i > 1:
header.write(" hal_pin_inst_t " + p + "[" + str(i) + "]" + ";\n")
else:
header.write(" hal_pin_inst_t " + p + ";\n")
header.write("};\n")
header.close()