使用gcc成功编译

This commit is contained in:
2025-06-28 22:15:49 +08:00
parent 307fa96b75
commit 91a9d6c468
28 changed files with 639 additions and 501 deletions

View File

@@ -40,6 +40,8 @@ DEF=[
]
INC=[
'-ISrc/MJPEG',
'-ISrc/MJPEG/JPEG',
'-ISrc/STM32/CMSIS/Device/ST/STM32F4xx/Include',
'-ISrc/STM32/CMSIS/Include',
'-ISrc/STM32/DSP/Include',
@@ -54,8 +56,6 @@ INC=[
'-ISrc/lpng1637',
'-ISrc/lua-5.4.2',
'-ISrc/lua-5.4.2/src',
'-ISrc/MJPEG',
'-ISrc/MJPEG/JPEG',
'-ISrc/MP3',
'-ISrc/MP3/helix',
'-ISrc/MY',
@@ -71,14 +71,13 @@ INC=[
]
SRC_DIR=[
'Src/MJPEG',
'Src/STM32/STM32F4xx_StdPeriph_Driver/src',
'Src/Drive/Source',
'Src/FreeType/src',
'Src/JPEG',
'Src/lib',
'Src/lpng1637',
'Src/lua-5.4.2/src',
'Src/MJPEG',
# 'Src/lua-5.4.2/src',
'Src/MP3',
'Src/MyApp',
'Src/MyWin',
@@ -89,6 +88,7 @@ SRC_DIR=[
SRC=[
'Src/STM32/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc_ride7/startup_stm32f429_439xx.s',
'Src/STM32/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c',
"Src/MY/bsp_init.c",
"Src/MY/main_my.c",
"Src/MY/stm32f4xx_it.c",
@@ -98,13 +98,32 @@ SRC=[
'Src/FATS/ff.c',
'Src/FATS/ffsystem.c',
'Src/FATS/mycc936.c',
"Src/lib/buff.c",
'Src/rt-thread/board.c',
# 'Src/rt-thread/core_delay.c',
'Src/rt-thread/libcpu/arm/cortex-m4/context_gcc.S',
'Src/rt-thread/ports/cpuport.c',
'Src/FreeType/ftdebug.c',
'Src/FreeType/ftfile.c',
'Src/zlib/adler32.c',
'Src/zlib/compress.c',
'Src/zlib/crc32.c',
'Src/zlib/deflate.c',
# 'Src/zlib/gzclose.c',
# 'Src/zlib/gzlib.c',
# 'Src/zlib/gzread.c',
# 'Src/zlib/gzwrite.c',
'Src/zlib/infback.c',
'Src/zlib/inffast.c',
'Src/zlib/inflate.c',
'Src/zlib/inftrees.c',
'Src/zlib/trees.c',
'Src/zlib/uncompr.c',
'Src/zlib/zutil.c',
'Src/MP3/helix/arm/asmmisc_gcc.s',
'Src/MP3/helix/arm/asmpoly_thumb2_gcc.s',
'Src/MY/syscalls.c',
]
LD_FILE="stm32f429ighx_flash.ld"
@@ -180,7 +199,7 @@ def run_cmd(cmd_queue:Queue,cpu_index:int,return_list:Queue,failed_num):
print(f"[{cpu_index}] {cmd.info}")
# ret=os.system(cmd.cmd)
try:
ret = subprocess.run(cmd.cmd, shell=True, timeout=20).returncode
ret = subprocess.run(cmd.cmd, shell=True, timeout=60).returncode
except subprocess.TimeoutExpired:
print("命令执行超时!")
failed_num.value += 1
@@ -193,7 +212,7 @@ def run_cmd(cmd_queue:Queue,cpu_index:int,return_list:Queue,failed_num):
return_list.put((cpu_index,ack))
def run_cmd_queue(cmd_queue:Queue,cpu_num:int=cpu_count()):
def run_cmd_queue(cmd_queue:Queue,cpu_num:int=8):
if(cmd_queue.empty()):
return True
process_list = []
@@ -279,11 +298,13 @@ def build_target(src:list):
obj_list.append('.'.join([name,'o']))
dst=os.path.join(OUTPUT,TARGET)+".elf"
if(check_rebuild(dst,obj_list)):
cmd=f"{CC} {' '.join(obj_list)} -o {dst} {flags} -specs=nano.specs \
rsp=f"{' '.join(obj_list)} -o {dst} {flags} -specs=nano.specs \
-T{LD_FILE} -lc -lm -lnosys -Wl,-Map={OUTPUT}/{TARGET}.map,--cref -Wl,--gc-sections \
-Wl,--no-warn-rwx-segments -Wl,-print-memory-usage"
print(f"链接 {dst}")
ret=os.system(cmd)
with open(f"{OUTPUT}/{TARGET}.rsp",'w+') as f:
f.write(rsp.replace('\\','/'))
ret=os.system(f"{CC} @{OUTPUT}/{TARGET}.rsp")
return ret==0
return False
@@ -312,3 +333,5 @@ if __name__ == "__main__":
main()
tick_end=time.time()
print(f"cost: {tick_end-tick_start}")
# for item in find_type('Src/zlib',".c"):
# print(f"'{item}',".replace('\\','/'))