* Chips that have multiple cores will be exposed as chipname_corename, i.e. stm32wl55jc_cm4 * Chips that have single cores will use the chip family as feature name and pick the first and only core from the list * Add support for stm32wl55 chip family
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import xmltodict
 | |
| import yaml
 | |
| import re
 | |
| import json
 | |
| import os
 | |
| import re
 | |
| import toml
 | |
| from collections import OrderedDict
 | |
| from glob import glob
 | |
| 
 | |
| try:
 | |
|     from yaml import CSafeLoader as SafeLoader
 | |
| except ImportError:
 | |
|     from yaml import SafeLoader
 | |
| 
 | |
| abspath = os.path.abspath(__file__)
 | |
| dname = os.path.dirname(abspath)
 | |
| os.chdir(dname)
 | |
| 
 | |
| # ======= load chip list
 | |
| 
 | |
| features = {}
 | |
| 
 | |
| for f in sorted(glob('../stm32-data/data/chips/*.yaml')):
 | |
|     # Use the filename to get the chip name. Ultra fast, we don't have to read YAML!
 | |
|     name = os.path.splitext(os.path.basename(f))[0].lower()
 | |
|     with open(f, 'r') as f:
 | |
|         chip = yaml.load(f, Loader=SafeLoader)
 | |
|     if len(chip['cores']) > 1:
 | |
|         for core in chip['cores']:
 | |
|             features[name + "_" + core['name']] = []
 | |
|     else:
 | |
|         features[name] = []
 | |
| 
 | |
| # ========= Update Cargo features
 | |
| 
 | |
| SEPARATOR_START = '# BEGIN GENERATED FEATURES\n'
 | |
| SEPARATOR_END = '# END GENERATED FEATURES\n'
 | |
| HELP = '# Generated by gen_features.py. DO NOT EDIT.\n'
 | |
| with open('Cargo.toml', 'r') as f:
 | |
|     cargo = f.read()
 | |
| before, cargo = cargo.split(SEPARATOR_START, maxsplit=1)
 | |
| _, after = cargo.split(SEPARATOR_END, maxsplit=1)
 | |
| cargo = before + SEPARATOR_START + HELP + \
 | |
|     toml.dumps(features) + SEPARATOR_END + after
 | |
| with open('Cargo.toml', 'w') as f:
 | |
|     f.write(cargo)
 |