Skip to content

Commit 2fce284

Browse files
committed
[genpinmap] Add CubeMX database version and release
Signed-off-by: Frederic Pillon <[email protected]>
1 parent c4bd732 commit 2fce284

File tree

1 file changed

+25
-12
lines changed

1 file changed

+25
-12
lines changed

Diff for: src/genpinmap/genpinmap_arduino.py

+25-12
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,7 @@ def print_header():
296296
*
297297
*******************************************************************************
298298
* Automatically generated from {}
299+
* CubeMX DB version {} release {}
299300
*/
300301
#include "Arduino.h"
301302
#include "{}.h"
@@ -314,6 +315,8 @@ def print_header():
314315
""".format(
315316
datetime.datetime.now().year,
316317
os.path.basename(input_file_name),
318+
cubemx_db_version,
319+
cubemx_db_release,
317320
re.sub("\\.c$", "", out_c_filename),
318321
)
319322
out_c_file.write(s)
@@ -976,20 +979,18 @@ def parse_pins():
976979
config_file = open(config_filename, "w", newline="\n")
977980
if sys.platform.startswith("win32"):
978981
print("Platform is Windows")
979-
cubemxdir = (
980-
"C:\\Program Files\\STMicroelectronics\\STM32Cube\\STM32CubeMX\\db\\mcu"
981-
)
982+
cubemxdir = "C:\\Program Files\\STMicroelectronics\\STM32Cube\\STM32CubeMX"
982983
elif sys.platform.startswith("linux"):
983984
print("Platform is Linux")
984-
cubemxdir = os.getenv("HOME") + "/STM32CubeMX/db/mcu"
985+
cubemxdir = os.getenv("HOME") + "/STM32CubeMX"
985986
elif sys.platform.startswith("darwin"):
986987
print("Platform is Mac OSX")
987988
cubemxdir = (
988-
"/Applications/STMicroelectronics/STM32CubeMX.app/Contents/Resources/db/mcu"
989+
"/Applications/STMicroelectronics/STM32CubeMX.app/Contents/Resources"
989990
)
990991
else:
991992
print("Platform unknown")
992-
cubemxdir = "<Set CubeMX install directory>/db/mcu"
993+
cubemxdir = "<Set CubeMX install directory>"
993994
config_file.write(json.dumps({"CUBEMX_DIRECTORY": cubemxdir}))
994995
config_file.close()
995996
exit(1)
@@ -1049,21 +1050,33 @@ def parse_pins():
10491050
)
10501051
quit()
10511052

1052-
cubemxdirIP = os.path.join(cubemxdir, "IP")
1053+
cubemxdirMCU = os.path.join(cubemxdir, "db", "mcu")
1054+
cubemxdirIP = os.path.join(cubemxdirMCU, "IP")
1055+
version_file = os.path.join(cubemxdir, "db", "package.xml")
1056+
cubemx_db_version = "Unknown"
1057+
cubemx_db_release = "Unknown"
1058+
xml_file = parse(version_file)
1059+
Package_item = xml_file.getElementsByTagName("Package")
1060+
for item in Package_item:
1061+
cubemx_db_version = item.attributes["DBVersion"].value
1062+
PackDescription_item = xml_file.getElementsByTagName("PackDescription")
1063+
for item in PackDescription_item:
1064+
cubemx_db_release = item.attributes["Release"].value
1065+
print("CubeMX DB version {} release {}\n".format(cubemx_db_version, cubemx_db_release))
10531066

10541067
if args.mcu:
10551068
# check input file exists
1056-
if not (os.path.isfile(os.path.join(cubemxdir, args.mcu))):
1069+
if not (os.path.isfile(os.path.join(cubemxdirMCU, args.mcu))):
10571070
print("\n" + args.mcu + " file not found")
1058-
print("\nCheck in " + cubemxdir + " the correct name of this file")
1071+
print("\nCheck in " + cubemxdirMCU + " the correct name of this file")
10591072
print("\nYou may use double quotes for file containing special characters")
10601073
quit()
10611074
mcu_list.append(args.mcu)
10621075
else:
1063-
mcu_list = fnmatch.filter(os.listdir(cubemxdir), "STM32*.xml")
1076+
mcu_list = fnmatch.filter(os.listdir(cubemxdirMCU), "STM32*.xml")
10641077

10651078
if args.list:
1066-
print("Available xml files description: {}".format(mcu_list))
1079+
print("Available xml files description:")
10671080
for f in mcu_list:
10681081
print(f)
10691082
quit()
@@ -1074,7 +1087,7 @@ def parse_pins():
10741087
out_c_filename, out_h_filename, mcu_file
10751088
)
10761089
)
1077-
input_file_name = os.path.join(cubemxdir, mcu_file)
1090+
input_file_name = os.path.join(cubemxdirMCU, mcu_file)
10781091
out_path = os.path.join(
10791092
cur_dir,
10801093
"Arduino",

0 commit comments

Comments
 (0)