From 5b4396186056df4420f320602ab049a3e18e6339 Mon Sep 17 00:00:00 2001 From: jeromecoutant Date: Mon, 21 May 2018 17:22:19 +0200 Subject: [PATCH] STM32: move STM32_gen_PeripheralPins.py to tools/targets --- .../targets/STM32_gen_PeripheralPins.py | 46 +++++++++++-------- 1 file changed, 27 insertions(+), 19 deletions(-) rename targets/TARGET_STM/tools/genpinmap_mbed.py => tools/targets/STM32_gen_PeripheralPins.py (97%) diff --git a/targets/TARGET_STM/tools/genpinmap_mbed.py b/tools/targets/STM32_gen_PeripheralPins.py similarity index 97% rename from targets/TARGET_STM/tools/genpinmap_mbed.py rename to tools/targets/STM32_gen_PeripheralPins.py index ad965dcbb4..7508fcc893 100644 --- a/targets/TARGET_STM/tools/genpinmap_mbed.py +++ b/tools/targets/STM32_gen_PeripheralPins.py @@ -9,7 +9,7 @@ import textwrap from xml.dom.minidom import parse, Node from argparse import RawTextHelpFormatter -GENPINMAP_VERSION = "1.1" +GENPINMAP_VERSION = "1.2" ADD_DEVICE_IFDEF = 0 ADD_QSPI_FEATURE = 0 @@ -65,6 +65,7 @@ TIM_MST_LIST = { # Timer used for us ticker is hardcoded in this script "NUCLEO_F746ZG":"TIM5", "NUCLEO_F767ZI":"TIM5", "NUCLEO_F722ZE":"TIM5", +"NUCLEO_H743ZI":"TIM5", "NUCLEO_L053R8":"TIM21", "NUCLEO_L073RZ":"TIM21", "NUCLEO_L031K6":"TIM21", @@ -312,7 +313,6 @@ def print_header(): ******************************************************************************* * * Automatically generated from %s - * genpinmap script version %s */ #include "PeripheralPins.h" @@ -336,7 +336,7 @@ def print_header(): // //============================================================================== -""" % (datetime.datetime.now().year, os.path.basename(input_file_name), GENPINMAP_VERSION)) +""" % (datetime.datetime.now().year, os.path.basename(input_file_name))) out_c_file.write( s ) s = ("""/* mbed Microcontroller Library @@ -369,7 +369,6 @@ def print_header(): ******************************************************************************* * * Automatically generated from %s - * genpinmap script version %s */ #ifndef MBED_PINNAMES_H @@ -391,7 +390,7 @@ typedef enum { typedef enum { -""" % (datetime.datetime.now().year, os.path.basename(input_file_name), GENPINMAP_VERSION)) +""" % (datetime.datetime.now().year, os.path.basename(input_file_name))) out_h_file.write( s ) @@ -992,8 +991,8 @@ def parse_BoardFile(fileName): except: pass - # main +print ("\nScript version %s" % GENPINMAP_VERSION) cur_dir = os.getcwd() PeripheralPins_c_filename = 'PeripheralPins.c' PinNames_h_filename = 'PinNames.h' @@ -1006,16 +1005,16 @@ except IOError: config_file = open(config_filename, "w") if sys.platform.startswith('win32'): print("Platform is Windows") - cubemxdir = 'C:\\Program Files (x86)\\STMicroelectronics\\STM32Cube\\STM32CubeMX\\db' + cubemxdir = 'C:\\Program Files (x86)\\STMicroelectronics\\STM32Cube\\STM32CubeMX' elif sys.platform.startswith('linux'): print("Platform is Linux") - cubemxdir = os.getenv("HOME")+'/STM32CubeMX/db' + cubemxdir = os.getenv("HOME")+'/STM32CubeMX' elif sys.platform.startswith('darwin'): print("Platform is Mac OSX") - cubemxdir = '/Applications/STMicroelectronics/STM32CubeMX.app/Contents/Resources/db' + cubemxdir = '/Applications/STMicroelectronics/STM32CubeMX.app/Contents/Resources' else: print("Platform unknown") - cubemxdir = '/db' + cubemxdir = '' config_file.write(json.dumps({"CUBEMX_DIRECTORY":cubemxdir})) config_file.close() exit(1) @@ -1056,9 +1055,19 @@ if not(os.path.isdir(cubemxdir)): print ("\n ! ! ! please check the value you set for 'CUBEMX_DIRECTORY' in '%s' file" % config_filename) quit() -cubemxdirMCU = os.path.join(cubemxdir, 'mcu') -cubemxdirIP = os.path.join(cubemxdir, 'mcu', 'IP') -cubemxdirBOARDS = os.path.join(cubemxdir, 'plugins', 'boardmanager', 'boards') +cubemxdirMCU = os.path.join(cubemxdir, 'db', 'mcu') +cubemxdirIP = os.path.join(cubemxdir, 'db', 'mcu', 'IP') +cubemxdirBOARDS = os.path.join(cubemxdir, 'db', 'plugins', 'boardmanager', 'boards') + +version_file = os.path.join(cubemxdir, 'db', 'package.xml') +try: + xml_file = parse(version_file) + PackDescription_item = xml_file.getElementsByTagName('PackDescription') + for item in PackDescription_item: + CUBEMX_DB_VERSION = item.attributes['Release'].value +except: + CUBEMX_DB_VERSION = "NOT_FOUND" +print ("CubeMX DB version %s\n" % CUBEMX_DB_VERSION) if args.list: FileCount = 0 @@ -1090,7 +1099,7 @@ if args.mcu: else: mcu_list = fnmatch.filter(os.listdir(cubemxdirMCU), '*%s*' % args.mcu) if len(mcu_list) == 0: - print ("\n ! ! ! " + args.mcu + " file not found") + print (" ! ! ! " + args.mcu + " file not found") print (" ! ! ! Check in " + cubemxdirMCU + " the correct name of this file") print (" ! ! ! You may use double quotes for this file if it contains special characters") quit() @@ -1100,16 +1109,16 @@ if args.target: if not(os.path.isfile(board_file_name)): board_list = fnmatch.filter(os.listdir(cubemxdirBOARDS), '*%s*AllConfig.ioc' % args.target) if len(board_list) == 0: - print ("\n ! ! ! No file contains " + args.target) + print (" ! ! ! No file contains " + args.target) print (" ! ! ! Check in " + cubemxdirBOARDS + " the correct filter to apply") quit() elif len(board_list) > 1: - print ("\n ! ! ! Multiple files contains " + args.target) - print (board_list) + print (" ! ! ! Multiple files contains " + args.target) + for board_elem in board_list: print (board_elem) print (" ! ! ! Only the first one will be parsed\n") board_file_name = os.path.join(cubemxdirBOARDS,board_list[0]) if not (os.path.isfile(board_file_name)): - print ("\n ! ! ! " + args.target + " file not found") + print (" ! ! ! " + args.target + " file not found") print (" ! ! ! Check in " + cubemxdirBOARDS + " the correct name of this file") print (" ! ! ! You may use double quotes for this file if it contains special characters") quit() @@ -1199,7 +1208,6 @@ for mcu_file in mcu_list: nb_pin = (len(io_list)) nb_connected_pin = len(PinLabel) print (" * I/O pins found: %i connected: %i\n" % (nb_pin, nb_connected_pin)) - # print ("done\n") clean_all_lists() out_c_file.close()