1212
1313import re
1414
15+ VERSION = "v1.0.1"
16+
1517FOLDER = Path (__file__ ).parent
1618BASE_FOLDER = FOLDER .parent
1719OPMOD_PATH = BASE_FOLDER / "opmod"
1820SOURCE_SYSCALL_TABLE : Path = OPMOD_PATH / "src/main/java/kr/pe/ecmaxp/openpython/arch/consts/OpenPythonSystemCallTable.kt"
1921TARGET_SYSCALL_TABLE : Path = FOLDER / "syscall_table.h"
20- TARGET_FOLDER : Path = OPMOD_PATH / "src/main/resources/assets/openpython/firmwares/v1.0.0" # TODO: place version
22+ TARGET_FOLDER : Path = OPMOD_PATH / f"src/main/resources/assets/openpython/firmwares/{ VERSION } "
23+ TARGET_FIRMWARE_FOLDER = BASE_FOLDER / "firmwares" / VERSION
2124
2225
2326@dataclass
@@ -110,7 +113,9 @@ def process_elf(elf: ELFFile, map_file: Path):
110113 )
111114
112115
113- def build (folder : Path = FOLDER , target_folder : Path = TARGET_FOLDER ):
116+ def build (folder : Path = FOLDER ,
117+ target_firmware_folder : Path = TARGET_FIRMWARE_FOLDER ,
118+ target_folder : Path = TARGET_FOLDER ):
114119 build_path : Path = folder / "build"
115120
116121 check_call (
@@ -120,15 +125,15 @@ def build(folder: Path = FOLDER, target_folder: Path = TARGET_FOLDER):
120125 stdin = DEVNULL
121126 )
122127
123- target_folder .mkdir (parents = True , exist_ok = True )
128+ target_firmware_folder .mkdir (parents = True , exist_ok = True )
124129
125130 with (build_path / "firmware.elf" ).open ('rb' ) as fp :
126131 elf = ELFFile (fp )
127- process_elf (elf , target_folder / "firmware.map" )
132+ process_elf (elf , target_firmware_folder / "firmware.map" )
128133
129- shutil .copyfile (str (build_path / "firmware.bin" ), str (target_folder / "firmware.bin" ))
130- shutil .copyfile (str (build_path / "firmware.elf" ), str (target_folder / "firmware.elf" ))
131- shutil .copyfile (str (build_path / "firmware.elf.map" ), str (target_folder / "firmware.elf.map" ))
134+ shutil .copyfile (str (build_path / "firmware.bin" ), str (target_firmware_folder / "firmware.bin" ))
135+ shutil .copyfile (str (build_path / "firmware.elf" ), str (target_firmware_folder / "firmware.elf" ))
136+ shutil .copyfile (str (build_path / "firmware.elf.map" ), str (target_firmware_folder / "firmware.elf.map" ))
132137
133138 rom : Path = folder / "eeprom.py"
134139 text = rom .read_text ()
@@ -137,9 +142,14 @@ def build(folder: Path = FOLDER, target_folder: Path = TARGET_FOLDER):
137142 else :
138143 raise Exception ("eeprom missing magic tag" )
139144
140- target_rom = (target_folder / "eeprom.py" )
145+ target_rom = (target_firmware_folder / "eeprom.py" )
141146 target_rom .write_text (text )
142147
148+ shutil .copyfile (str (build_path / "firmware.bin" ), str (target_folder / "firmware.bin" ))
149+ shutil .copyfile (str (target_firmware_folder / "firmware.map" ), str (target_folder / "firmware.map" ))
150+ shutil .copyfile (str (target_firmware_folder / "eeprom.py" ), str (target_folder / "eeprom.py" ))
151+
152+ print (target_firmware_folder / "firmware.bin" )
143153 print (target_folder / "firmware.bin" )
144154
145155
0 commit comments