Skip to content

Commit

Permalink
Ignore comments and add error checking.
Browse files Browse the repository at this point in the history
Require default constants in 13'hxxxx format.
Require default constants to be 13 binary bits maximum.
Standardize file names to lower case hex digits.

NOTE: Invalid values are merely ignored. No error code is returned.
  • Loading branch information
d-m-bailey committed May 3, 2024
1 parent eca7932 commit e82ddeb
Showing 1 changed file with 15 additions and 3 deletions.
18 changes: 15 additions & 3 deletions scripts/gen_gpio_defaults.py
Original file line number Diff line number Diff line change
Expand Up @@ -152,8 +152,10 @@ def usage():

if os.path.isfile(user_defines_path):
with open(user_defines_path, 'r') as ifile:
infolines = ifile.read().splitlines()
for line in infolines:
raw_data = ifile.read()
comment_pattern = r'//.*|/\*[\s\S]*?\*/'
data_without_comments = re.sub(comment_pattern, '', raw_data)
for line in data_without_comments.splitlines():
tokens = line.split()
if len(tokens) >= 3:
if tokens[0] == '`define':
Expand Down Expand Up @@ -219,14 +221,24 @@ def usage():
print('No configuration specified for GPIO ' + str(i) + '; skipping.')
continue

valid_value = r"^13'h[0-9a-fA-F]{4}$"
value_match = re.match(valid_value, config_value)
if not value_match:
print('Error: Default value ' + config_value + ' is not a 4-digit hex number; skipping')
continue

try:
default_str = config_value[-4:]
binval = '{:013b}'.format(int(default_str, 16))
if len(binval) > 13:
print('Error: Default value ' + config_value + ' is not a 4-digit hex number; skipping')
continue

except:
print('Error: Default value ' + config_value + ' is not a 4-digit hex number; skipping')
continue

cell_name = 'gpio_defaults_block_' + default_str
cell_name = 'gpio_defaults_block_' + default_str.lower()
mag_file = magpath + '/' + cell_name + '.mag'
cellsused[i] = cell_name

Expand Down

0 comments on commit e82ddeb

Please sign in to comment.