Skip to content

Commit 10e65d0

Browse files
committed
[genpinmap] Add CubeMX database version and release
Signed-off-by: Frederic Pillon <[email protected]>
1 parent 17f35a8 commit 10e65d0

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
@@ -295,6 +295,7 @@ def print_header():
295295
*
296296
*******************************************************************************
297297
* Automatically generated from {}
298+
* CubeMX DB version {} release {}
298299
*/
299300
#include "Arduino.h"
300301
#include "{}.h"
@@ -313,6 +314,8 @@ def print_header():
313314
""".format(
314315
datetime.datetime.now().year,
315316
os.path.basename(input_file_name),
317+
cubemx_db_version,
318+
cubemx_db_release,
316319
re.sub("\\.c$", "", out_c_filename),
317320
)
318321
out_c_file.write(s)
@@ -970,20 +973,18 @@ def parse_pins():
970973
config_file = open(config_filename, "w", newline="\n")
971974
if sys.platform.startswith("win32"):
972975
print("Platform is Windows")
973-
cubemxdir = (
974-
"C:\\Program Files\\STMicroelectronics\\STM32Cube\\STM32CubeMX\\db\\mcu"
975-
)
976+
cubemxdir = "C:\\Program Files\\STMicroelectronics\\STM32Cube\\STM32CubeMX"
976977
elif sys.platform.startswith("linux"):
977978
print("Platform is Linux")
978-
cubemxdir = os.getenv("HOME") + "/STM32CubeMX/db/mcu"
979+
cubemxdir = os.getenv("HOME") + "/STM32CubeMX"
979980
elif sys.platform.startswith("darwin"):
980981
print("Platform is Mac OSX")
981982
cubemxdir = (
982-
"/Applications/STMicroelectronics/STM32CubeMX.app/Contents/Resources/db/mcu"
983+
"/Applications/STMicroelectronics/STM32CubeMX.app/Contents/Resources"
983984
)
984985
else:
985986
print("Platform unknown")
986-
cubemxdir = "<Set CubeMX install directory>/db/mcu"
987+
cubemxdir = "<Set CubeMX install directory>"
987988
config_file.write(json.dumps({"CUBEMX_DIRECTORY": cubemxdir}))
988989
config_file.close()
989990
exit(1)
@@ -1043,21 +1044,33 @@ def parse_pins():
10431044
)
10441045
quit()
10451046

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

10481061
if args.mcu:
10491062
# check input file exists
1050-
if not (os.path.isfile(os.path.join(cubemxdir, args.mcu))):
1063+
if not (os.path.isfile(os.path.join(cubemxdirMCU, args.mcu))):
10511064
print("\n" + args.mcu + " file not found")
1052-
print("\nCheck in " + cubemxdir + " the correct name of this file")
1065+
print("\nCheck in " + cubemxdirMCU + " the correct name of this file")
10531066
print("\nYou may use double quotes for file containing special characters")
10541067
quit()
10551068
mcu_list.append(args.mcu)
10561069
else:
1057-
mcu_list = fnmatch.filter(os.listdir(cubemxdir), "STM32*.xml")
1070+
mcu_list = fnmatch.filter(os.listdir(cubemxdirMCU), "STM32*.xml")
10581071

10591072
if args.list:
1060-
print("Available xml files description: {}".format(mcu_list))
1073+
print("Available xml files description:")
10611074
for f in mcu_list:
10621075
print(f)
10631076
quit()
@@ -1068,7 +1081,7 @@ def parse_pins():
10681081
out_c_filename, out_h_filename, mcu_file
10691082
)
10701083
)
1071-
input_file_name = os.path.join(cubemxdir, mcu_file)
1084+
input_file_name = os.path.join(cubemxdirMCU, mcu_file)
10721085
out_path = os.path.join(
10731086
cur_dir,
10741087
"Arduino",

0 commit comments

Comments
 (0)