1from asyncio
import subprocess
2import subprocess
as sub
7from pkg_resources
import BINARY_DIST
12from pathlib
import Path
14sys.path.append(str(path.parent.absolute()))
16BINARY_PATH =
"../../binary"
20if not os.path.exists(BINARY_PATH):
22elif not os.path.isdir(BINARY_PATH):
23 raise FileExistsError(
"'{}' is not a directory.".format(BINARY_PATH))
25if(sys.argv[-1] ==
'0'):
27 LINKER_PATH = sys.argv[1]
31 for arg_idx
in range(2, len(sys.argv[:-1]) - 1):
32 source_file_args += (sys.argv[arg_idx])
33 source_file_args +=
" "
35 compiler_flags = sys.argv[len(sys.argv) - 2]
38 f
"arm-none-eabi-gcc {compiler_flags} -Wl,-T{LINKER_PATH} -Wl,-Map,{BINARY_PATH}/binary.map -o {BINARY_PATH}/binary.elf {source_file_args}",
43 map_path = sys.argv[-3]
44 disassembled_path = sys.argv[-2]
45 elf_path = sys.argv[-4]
47 map_name = map_path.rsplit(
"/", 1)[-1]
48 disassembled_name = disassembled_path.rsplit(
"/", 1)[-1]
49 elf_name = elf_path.rsplit(
"/", 1)[-1]
52 shutil.copyfile(map_path,
"../../binary/binary.map")
53 shutil.copyfile(disassembled_path,
"../../binary/disassembled.txt")
54 shutil.copyfile(elf_path,
"../../binary/binary.elf")
56 raise FileExistsError(
"File or directory to program file not found")
from e
60with open(BINARY_PATH +
"/disassembled.txt",
"w")
as dis_file:
62 [
"arm-none-eabi-objdump", BINARY_PATH +
"/binary.elf",
"-d"],