From 5b3320624da5149fc21c2d3e1f321d855e3d0dfe Mon Sep 17 00:00:00 2001 From: Supper Thomas <78900636@qq.com> Date: Sun, 16 Feb 2025 22:02:42 +0800 Subject: [PATCH] =?UTF-8?q?[src/ktime]=20fix=20the=20bug=20when=20use=20ke?= =?UTF-8?q?il=20AC6=20and=20open=20RT=5FUSING=5FHOOKLIST=20=E2=80=A6=20(#9?= =?UTF-8?q?993)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [src/ktime] fix the bug when use keil AC6 and open RT_USING_HOOKLIST and RT_USING_KTIME --- bsp/stm32/stm32h750-artpi/rtconfig.py | 4 ++-- components/drivers/ktime/SConscript | 7 ++++++- src/SConscript | 6 ++++++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/bsp/stm32/stm32h750-artpi/rtconfig.py b/bsp/stm32/stm32h750-artpi/rtconfig.py index fa67b769411..81c7b3bca0c 100644 --- a/bsp/stm32/stm32h750-artpi/rtconfig.py +++ b/bsp/stm32/stm32h750-artpi/rtconfig.py @@ -19,13 +19,13 @@ PLATFORM = 'gcc' EXEC_PATH = r'/opt/gcc-arm-none-eabi/bin/' elif CROSS_TOOL == 'keil': - PLATFORM = 'armcc' + PLATFORM = 'armclang' #KEIL AC6 EXEC_PATH = r'C:/Keil_v5' 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'): +if os.getenv('RTT_EXEC_PATH') and (CROSS_TOOL == 'gcc'): EXEC_PATH = os.getenv('RTT_EXEC_PATH') BUILD = 'debug' diff --git a/components/drivers/ktime/SConscript b/components/drivers/ktime/SConscript index 6eedb84818c..3fb3139025a 100644 --- a/components/drivers/ktime/SConscript +++ b/components/drivers/ktime/SConscript @@ -13,7 +13,12 @@ if rtconfig.ARCH in list: else: src += Glob("src/" + rtconfig.ARCH + "/*.c") CPPPATH = [cwd, cwd + "/inc"] +LOCAL_CCFLAGS = '' +if rtconfig.PLATFORM in ['gcc', 'armclang']: + LOCAL_CCFLAGS += ' -std=gnu99' +elif rtconfig.PLATFORM in ['armcc']: + LOCAL_CCFLAGS += ' --c99 --gnu' -group = DefineGroup('ktime', src, depend=['RT_USING_KTIME'], CPPPATH=CPPPATH) +group = DefineGroup('ktime', src, depend=['RT_USING_KTIME'], CPPPATH=CPPPATH, LOCAL_CCFLAGS = LOCAL_CCFLAGS) Return('group') diff --git a/src/SConscript b/src/SConscript index 8407e6ef181..93b8e8e3f3d 100644 --- a/src/SConscript +++ b/src/SConscript @@ -44,6 +44,12 @@ if rtconfig.PLATFORM in ['gcc']: # only for GCC if rtconfig.ARCH not in ['sim']: LINKFLAGS += ' -Wl,--gc-sections,--print-memory-usage' # remove unused sections and print memory usage +if GetDepend('RT_USING_HOOKLIST') == True: + if rtconfig.PLATFORM in ['gcc', 'armclang']: + LOCAL_CFLAGS += ' -std=gnu99' + elif rtconfig.PLATFORM in ['armcc']: + LOCAL_CFLAGS += ' --c99 --gnu' + group = DefineGroup('Kernel', src, depend=[''], CPPPATH=inc, LINKFLAGS=LINKFLAGS, LOCAL_CFLAGS=LOCAL_CFLAGS, CPPDEFINES=['__RTTHREAD__'], LOCAL_CPPDEFINES=['__RT_KERNEL_SOURCE__'])