12
12
13
13
import re
14
14
15
+ VERSION = "v1.0.1"
16
+
15
17
FOLDER = Path (__file__ ).parent
16
18
BASE_FOLDER = FOLDER .parent
17
19
OPMOD_PATH = BASE_FOLDER / "opmod"
18
20
SOURCE_SYSCALL_TABLE : Path = OPMOD_PATH / "src/main/java/kr/pe/ecmaxp/openpython/arch/consts/OpenPythonSystemCallTable.kt"
19
21
TARGET_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
21
24
22
25
23
26
@dataclass
@@ -110,7 +113,9 @@ def process_elf(elf: ELFFile, map_file: Path):
110
113
)
111
114
112
115
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 ):
114
119
build_path : Path = folder / "build"
115
120
116
121
check_call (
@@ -120,15 +125,15 @@ def build(folder: Path = FOLDER, target_folder: Path = TARGET_FOLDER):
120
125
stdin = DEVNULL
121
126
)
122
127
123
- target_folder .mkdir (parents = True , exist_ok = True )
128
+ target_firmware_folder .mkdir (parents = True , exist_ok = True )
124
129
125
130
with (build_path / "firmware.elf" ).open ('rb' ) as fp :
126
131
elf = ELFFile (fp )
127
- process_elf (elf , target_folder / "firmware.map" )
132
+ process_elf (elf , target_firmware_folder / "firmware.map" )
128
133
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" ))
132
137
133
138
rom : Path = folder / "eeprom.py"
134
139
text = rom .read_text ()
@@ -137,9 +142,14 @@ def build(folder: Path = FOLDER, target_folder: Path = TARGET_FOLDER):
137
142
else :
138
143
raise Exception ("eeprom missing magic tag" )
139
144
140
- target_rom = (target_folder / "eeprom.py" )
145
+ target_rom = (target_firmware_folder / "eeprom.py" )
141
146
target_rom .write_text (text )
142
147
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" )
143
153
print (target_folder / "firmware.bin" )
144
154
145
155
0 commit comments