chip: fix generated pin header script, remove pins not available

This commit is contained in:
Daniel Fekete 2017-05-30 17:11:26 +02:00
parent 80429a32ce
commit fe4da9aa28
1 changed files with 17 additions and 2 deletions

View File

@ -67,8 +67,8 @@ def find_header(name):
include = define
break
if not include:
raise Exception(name)
#if not include:
# raise Exception(name)
return include
@ -104,6 +104,8 @@ class load_mcu:
self.mcu_pins = self.mcu.findall('stm:Pin', ns);
self.available_pin_signals = {}
self.remaps = {}
self.defaultremaps = {}
self.af_functions=[]
@ -131,6 +133,14 @@ class load_mcu:
self.PCLK2_PERIPHERALS = []
def find_remaps(self):
for pin_element in self.mcu.findall('stm:Pin', ns):
for signal_element in pin_element.findall('stm:Signal', ns):
pin = pin_element.attrib['Name']
instance_signal = signal_element.attrib['Name']
self.available_pin_signals.setdefault(pin, []).append(instance_signal)
for pin in self.remap_root.findall('stm:GPIO_Pin', ns):
pin_name = pin.attrib['Name']
@ -140,6 +150,9 @@ class load_mcu:
for gpio_signal in gpio_signals:
instance_signal = gpio_signal.attrib['Name']
if pin_name not in self.available_pin_signals or instance_signal not in self.available_pin_signals[pin_name]:
continue
instance = instance_signal.split('_')[0]
if instance_signal not in self.remaps:
self.remaps[instance_signal] = {}
@ -369,6 +382,8 @@ with open(stm32_dir + 'stm32_build_defines.h', 'w') as file:
dir = system_dir + name[:7] + "/CMSIS_Inc/"
#filename = name.lower()
define = find_header(name)
if not define:
continue
file.write('\n');
file.write('#elif defined(' + name + ')\n')