diff options
| -rw-r--r-- | .github/workflows/action.yml | 1 | ||||
| -rw-r--r-- | bsp/renesas/ra6m3-hmi-board/SConscript | 2 | ||||
| -rw-r--r-- | bsp/renesas/ra6m3-hmi-board/board/ports/audio/SConscript | 2 | ||||
| -rw-r--r-- | bsp/renesas/ra6m3-hmi-board/board/ports/avi/SConscript | 2 | ||||
| -rw-r--r-- | bsp/renesas/ra6m3-hmi-board/board/ports/wifi/SConscript | 2 | ||||
| -rw-r--r-- | bsp/renesas/ra6m3-hmi-board/ra/SConscript | 2 | ||||
| -rw-r--r-- | bsp/renesas/ra6m3-hmi-board/ra/fsp/src/bsp/cmsis/Device/RENESAS/Source/startup.c | 5 | ||||
| -rw-r--r-- | bsp/renesas/ra6m3-hmi-board/ra_cfg/SConscript | 2 | ||||
| -rw-r--r-- | bsp/renesas/ra6m3-hmi-board/ra_gen/SConscript | 2 | ||||
| -rw-r--r-- | bsp/renesas/ra6m3-hmi-board/rtconfig.py | 36 | ||||
| -rw-r--r-- | bsp/renesas/ra6m3-hmi-board/script/fsp.ld | 2 |
11 files changed, 49 insertions, 9 deletions
diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml index d890f19b2b..8f4bbe746a 100644 --- a/.github/workflows/action.yml +++ b/.github/workflows/action.yml @@ -290,6 +290,7 @@ jobs: RTT_TOOL_CHAIN: "llvm-arm" SUB_RTT_BSP: - "stm32/stm32l475-atk-pandora" + - "renesas/ra6m3-hmi-board" steps: - uses: actions/checkout@v3 - name: Set up Python diff --git a/bsp/renesas/ra6m3-hmi-board/SConscript b/bsp/renesas/ra6m3-hmi-board/SConscript index aee8a3bb36..8620251606 100644 --- a/bsp/renesas/ra6m3-hmi-board/SConscript +++ b/bsp/renesas/ra6m3-hmi-board/SConscript @@ -12,7 +12,7 @@ list = os.listdir(cwd) if rtconfig.PLATFORM in ['iccarm']: print("\nThe current project does not support IAR build\n") Return('group') -elif rtconfig.PLATFORM in ['gcc', 'armclang']: +elif rtconfig.PLATFORM in ['gcc', 'armclang', 'llvm-arm']: if GetOption('target') != 'mdk5': CPPPATH = [cwd] src = Glob('./src/*.c') diff --git a/bsp/renesas/ra6m3-hmi-board/board/ports/audio/SConscript b/bsp/renesas/ra6m3-hmi-board/board/ports/audio/SConscript index 61be3e4704..031545d7dd 100644 --- a/bsp/renesas/ra6m3-hmi-board/board/ports/audio/SConscript +++ b/bsp/renesas/ra6m3-hmi-board/board/ports/audio/SConscript @@ -11,7 +11,7 @@ src += Glob('pwm_audio.c') CPPPATH = [cwd] LOCAL_CFLAGS = '' -if rtconfig.PLATFORM in ['gcc', 'armclang']: +if rtconfig.PLATFORM in ['gcc', 'armclang', 'llvm-arm']: LOCAL_CFLAGS += ' -std=c99' elif rtconfig.PLATFORM in ['armcc']: LOCAL_CFLAGS += ' --c99' diff --git a/bsp/renesas/ra6m3-hmi-board/board/ports/avi/SConscript b/bsp/renesas/ra6m3-hmi-board/board/ports/avi/SConscript index 28b49392c0..279f0bf422 100644 --- a/bsp/renesas/ra6m3-hmi-board/board/ports/avi/SConscript +++ b/bsp/renesas/ra6m3-hmi-board/board/ports/avi/SConscript @@ -8,7 +8,7 @@ src = Glob('*.c') CPPPATH = [cwd] LOCAL_CFLAGS = '' -if rtconfig.PLATFORM in ['gcc', 'armclang']: +if rtconfig.PLATFORM in ['gcc', 'armclang', 'llvm-arm']: LOCAL_CFLAGS += ' -std=c99' elif rtconfig.PLATFORM in ['armcc']: LOCAL_CFLAGS += ' --c99' diff --git a/bsp/renesas/ra6m3-hmi-board/board/ports/wifi/SConscript b/bsp/renesas/ra6m3-hmi-board/board/ports/wifi/SConscript index 9e73f9555d..4fcd053dd7 100644 --- a/bsp/renesas/ra6m3-hmi-board/board/ports/wifi/SConscript +++ b/bsp/renesas/ra6m3-hmi-board/board/ports/wifi/SConscript @@ -12,7 +12,7 @@ if GetDepend(['BSP_USING_RW007']): CPPPATH = [cwd] LOCAL_CFLAGS = '' -if rtconfig.PLATFORM in ['gcc', 'armclang']: +if rtconfig.PLATFORM in ['gcc', 'armclang', 'llvm-arm']: LOCAL_CFLAGS += ' -std=c99' elif rtconfig.PLATFORM in ['armcc']: LOCAL_CFLAGS += ' --c99' diff --git a/bsp/renesas/ra6m3-hmi-board/ra/SConscript b/bsp/renesas/ra6m3-hmi-board/ra/SConscript index 1057357156..cf3df4cedf 100644 --- a/bsp/renesas/ra6m3-hmi-board/ra/SConscript +++ b/bsp/renesas/ra6m3-hmi-board/ra/SConscript @@ -10,7 +10,7 @@ CPPPATH = [] if rtconfig.PLATFORM in ['iccarm']: print("\nThe current project does not support IAR build\n") Return('group') -elif rtconfig.PLATFORM in ['gcc', 'armclang']: +elif rtconfig.PLATFORM in ['gcc', 'armclang', 'llvm-arm']: if GetOption('target') != 'mdk5': src += Glob(cwd + '/fsp/src/bsp/mcu/all/*.c') src += [cwd + '/fsp/src/bsp/cmsis/Device/RENESAS/Source/system.c'] diff --git a/bsp/renesas/ra6m3-hmi-board/ra/fsp/src/bsp/cmsis/Device/RENESAS/Source/startup.c b/bsp/renesas/ra6m3-hmi-board/ra/fsp/src/bsp/cmsis/Device/RENESAS/Source/startup.c index a16dd0fade..a2e07b2f03 100644 --- a/bsp/renesas/ra6m3-hmi-board/ra/fsp/src/bsp/cmsis/Device/RENESAS/Source/startup.c +++ b/bsp/renesas/ra6m3-hmi-board/ra/fsp/src/bsp/cmsis/Device/RENESAS/Source/startup.c @@ -64,7 +64,12 @@ void Reset_Handler (void) SystemInit(); /* Call user application. */ +#ifdef __ARMCC_VERSION main(); +#elif defined(__GNUC__) + extern int entry(void); + entry(); +#endif while (1) { diff --git a/bsp/renesas/ra6m3-hmi-board/ra_cfg/SConscript b/bsp/renesas/ra6m3-hmi-board/ra_cfg/SConscript index 21af4711c5..9521924a3e 100644 --- a/bsp/renesas/ra6m3-hmi-board/ra_cfg/SConscript +++ b/bsp/renesas/ra6m3-hmi-board/ra_cfg/SConscript @@ -10,7 +10,7 @@ CPPPATH = [] if rtconfig.PLATFORM in ['iccarm']: print("\nThe current project does not support IAR build\n") Return('group') -elif rtconfig.PLATFORM in ['gcc', 'armclang']: +elif rtconfig.PLATFORM in ['gcc', 'armclang', 'llvm-arm']: if GetOption('target') != 'mdk5': src = Glob('*.c') CPPPATH = [cwd+'/fsp_cfg', cwd + '/fsp_cfg/bsp'] diff --git a/bsp/renesas/ra6m3-hmi-board/ra_gen/SConscript b/bsp/renesas/ra6m3-hmi-board/ra_gen/SConscript index 09be271571..87a3c39d18 100644 --- a/bsp/renesas/ra6m3-hmi-board/ra_gen/SConscript +++ b/bsp/renesas/ra6m3-hmi-board/ra_gen/SConscript @@ -10,7 +10,7 @@ CPPPATH = [] if rtconfig.PLATFORM in ['iccarm']: print("\nThe current project does not support IAR build\n") Return('group') -elif rtconfig.PLATFORM in ['gcc', 'armclang']: +elif rtconfig.PLATFORM in ['gcc', 'armclang', 'llvm-arm']: if GetOption('target') != 'mdk5': src = Glob('*.c') CPPPATH = [cwd, ] diff --git a/bsp/renesas/ra6m3-hmi-board/rtconfig.py b/bsp/renesas/ra6m3-hmi-board/rtconfig.py index f7024ac808..9d944a9b20 100644 --- a/bsp/renesas/ra6m3-hmi-board/rtconfig.py +++ b/bsp/renesas/ra6m3-hmi-board/rtconfig.py @@ -4,7 +4,7 @@ import sys # toolchains options ARCH='arm' CPU='cortex-m4' -CROSS_TOOL='keil' +CROSS_TOOL='gcc' if os.getenv('RTT_CC'): CROSS_TOOL = os.getenv('RTT_CC') @@ -22,6 +22,9 @@ elif CROSS_TOOL == 'keil': elif CROSS_TOOL == 'iar': PLATFORM = 'iccarm' EXEC_PATH = r'C:/Program Files/IAR Systems/Embedded Workbench 8.0' +elif CROSS_TOOL == 'llvm-arm': + PLATFORM = 'llvm-arm' + EXEC_PATH = r'D:\Progrem\LLVMEmbeddedToolchainForArm-16.0.0-Windows-x86_64\bin' if os.getenv('RTT_EXEC_PATH'): EXEC_PATH = os.getenv('RTT_EXEC_PATH') @@ -93,6 +96,37 @@ elif PLATFORM == 'armclang': CFLAGS += ' -Os' POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET \n' +elif PLATFORM == 'llvm-arm': + # toolchains + PREFIX = 'llvm-' + CC = 'clang' + AS = 'clang' + AR = PREFIX + 'ar' + CXX = 'clang++' + LINK = 'clang' + TARGET_EXT = 'elf' + SIZE = PREFIX + 'size' + OBJDUMP = PREFIX + 'objdump' + OBJCPY = PREFIX + 'objcopy' + DEVICE = ' --config armv7em_hard_fpv4_sp_d16.cfg' + DEVICE += ' -ffunction-sections -fdata-sections' + CFLAGS = DEVICE + CFLAGS += ' -mfloat-abi=hard -march=armv7em -mfpu=fpv4-sp-d16' + AFLAGS = ' -c' + DEVICE + ' -Wa,-mimplicit-it=thumb ' ## -x assembler-with-cpp + LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rt-thread.map,-u,Reset_Handler -T script/fsp.ld -L script/' + + CPATH = '' + LPATH = '' + + if BUILD == 'debug': + CFLAGS += ' -O0 -gdwarf-2 -g' + AFLAGS += ' -gdwarf-2' + else: + CFLAGS += ' -O2' + + CXXFLAGS = CFLAGS + + POST_ACTION = OBJCPY + ' -O ihex $TARGET rtthread.hex\n' + SIZE + ' $TARGET \n' def dist_handle(BSP_ROOT, dist_dir): import sys diff --git a/bsp/renesas/ra6m3-hmi-board/script/fsp.ld b/bsp/renesas/ra6m3-hmi-board/script/fsp.ld index e8da254219..16571b094d 100644 --- a/bsp/renesas/ra6m3-hmi-board/script/fsp.ld +++ b/bsp/renesas/ra6m3-hmi-board/script/fsp.ld @@ -86,7 +86,7 @@ MEMORY } /* Library configurations */ -GROUP(libgcc.a libc.a libm.a libnosys.a) +GROUP(libc.a libm.a) /* Linker script to place sections and symbol values. Should be used together * with other linker script that defines memory regions FLASH and RAM. |
