From 1e55f52bd000cad3eda55d2266d60b5a538a17eb Mon Sep 17 00:00:00 2001 From: a1012112796 <1012112796@qq.com> Date: Thu, 15 Dec 2022 10:20:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E4=BF=AE=E6=AD=A3=E5=91=BD?= =?UTF-8?q?=E4=BB=A4=E8=A1=8C=E7=BC=96=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: a1012112796 <1012112796@qq.com> --- SConstruct | 4 ++-- project.uvoptx | 6 +++--- rt-thread/tools/building.py | 13 ++++++++++--- rt-thread/tools/keil.py | 5 +++++ rtconfig.py | 13 +++++++------ 5 files changed, 27 insertions(+), 14 deletions(-) diff --git a/SConstruct b/SConstruct index 37366bd..62e0539 100644 --- a/SConstruct +++ b/SConstruct @@ -19,7 +19,7 @@ except: print(RTT_ROOT) exit(-1) -TARGET = 'rt-thread.' + rtconfig.TARGET_EXT +TARGET = 'build/F413_RTT' DefaultEnvironment(tools=[]) env = Environment(tools = ['mingw'], @@ -61,4 +61,4 @@ objs.extend(SConscript(os.path.join(libraries_path_prefix, stm32_library, 'SCons objs.extend(SConscript(os.path.join(libraries_path_prefix, 'HAL_Drivers', 'SConscript'))) # make a building -DoBuilding(TARGET, objs) +DoBuildingLib(TARGET, objs) diff --git a/project.uvoptx b/project.uvoptx index cf6e08d..ff0a08f 100644 --- a/project.uvoptx +++ b/project.uvoptx @@ -568,7 +568,7 @@ Drivers - 0 + 1 0 0 0 @@ -672,7 +672,7 @@ Fal - 1 + 0 0 0 0 @@ -784,7 +784,7 @@ IAP - 1 + 0 0 0 0 diff --git a/rt-thread/tools/building.py b/rt-thread/tools/building.py index 2512ad6..ed2717b 100644 --- a/rt-thread/tools/building.py +++ b/rt-thread/tools/building.py @@ -721,8 +721,7 @@ def BuildLibInstallAction(target, source, env): do_copy_file(lib_name, dst_name) break -def DoBuilding(target, objects): - +def DoBuilding(target, objects, build_lib = False): # merge all objects into one list def one_list(l): lst = [] @@ -792,10 +791,18 @@ def DoBuilding(target, objects): objects = sorted(objects) objects.append(objects_in_group) - program = Env.Program(target, objects) + if build_lib: + program = Env.Library(target, objects) + # add library copy action + Env.BuildLib(target, program) + else: + program = Env.Program(target, objects) EndBuilding(target, program) +def DoBuildingLib(lib, objects): + DoBuilding(lib, objects, build_lib=True) + def GenTargetProject(program = None): if GetOption('target') in ['mdk', 'mdk4', 'mdk5']: diff --git a/rt-thread/tools/keil.py b/rt-thread/tools/keil.py index 3554313..0677f26 100644 --- a/rt-thread/tools/keil.py +++ b/rt-thread/tools/keil.py @@ -436,6 +436,11 @@ def ARMCC_Version(): child = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) stdout, stderr = child.communicate() + try: + stdout = stdout.decode() + except Exception: + pass + ''' example stdout: Product: MDK Plus 5.24 diff --git a/rtconfig.py b/rtconfig.py index e8a9c7c..7d347b4 100644 --- a/rtconfig.py +++ b/rtconfig.py @@ -25,8 +25,8 @@ elif CROSS_TOOL == 'iar': PLATFORM = 'iccarm' EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.3' -if os.getenv('RTT_EXEC_PATH'): - EXEC_PATH = os.getenv('RTT_EXEC_PATH') +if os.getenv('RTT_MDK_PATH'): + EXEC_PATH = os.getenv('RTT_MDK_PATH') BUILD = 'debug' @@ -71,7 +71,7 @@ elif PLATFORM == 'armcc': TARGET_EXT = 'axf' DEVICE = ' --cpu Cortex-M4.fp ' - CFLAGS = '-c ' + DEVICE + ' --apcs=interwork --c99' + CFLAGS = DEVICE + ' --apcs=interwork ' AFLAGS = DEVICE + ' --apcs=interwork ' LFLAGS = DEVICE + ' --scatter "board\linker_scripts\link.sct" --info sizes --info totals --info unused --info veneers --list rt-thread.map --strict' CFLAGS += ' -I' + EXEC_PATH + '/ARM/ARMCC/include' @@ -88,10 +88,11 @@ elif PLATFORM == 'armcc': else: CFLAGS += ' -O2' - CXXFLAGS = CFLAGS - CFLAGS += ' -std=c99' + CXXFLAGS = ' --cpp ' + CFLAGS + CFLAGS += " --c99 " - POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET' + # POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET' + POST_ACTION = 'move_lib.bat' elif PLATFORM == 'armclang': # toolchains