diff --git a/bsp/wch/risc-v/ch32v208w-r0/SConstruct b/bsp/wch/risc-v/ch32v208w-r0/SConstruct index 487eb28892..f2454981ea 100644 --- a/bsp/wch/risc-v/ch32v208w-r0/SConstruct +++ b/bsp/wch/risc-v/ch32v208w-r0/SConstruct @@ -24,7 +24,7 @@ env = Environment(tools = ['mingw'], AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS, CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS, AR = rtconfig.AR, ARFLAGS = '-rc', - CXX = rtconfig.CXX, + CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS, LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS) env.PrependENVPath('PATH', rtconfig.EXEC_PATH) diff --git a/bsp/wch/risc-v/ch32v208w-r0/board/linker_scripts/link.lds b/bsp/wch/risc-v/ch32v208w-r0/board/linker_scripts/link.lds index 389d440cca..3105304920 100644 --- a/bsp/wch/risc-v/ch32v208w-r0/board/linker_scripts/link.lds +++ b/bsp/wch/risc-v/ch32v208w-r0/board/linker_scripts/link.lds @@ -66,10 +66,19 @@ SECTIONS __rtmsymtab_end = .; . = ALIGN(4); + /* section information for initial. */ + . = ALIGN(4); + __rt_init_start = .; + KEEP(*(SORT(.rti_fn*))) + __rt_init_end = .; + + . = ALIGN(4); + PROVIDE(__ctors_start__ = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE(__ctors_end__ = .); + . = ALIGN(4); _etext = .; diff --git a/bsp/wch/risc-v/ch32v208w-r0/rtconfig.py b/bsp/wch/risc-v/ch32v208w-r0/rtconfig.py index fee6d63ed1..a6df5fe22d 100644 --- a/bsp/wch/risc-v/ch32v208w-r0/rtconfig.py +++ b/bsp/wch/risc-v/ch32v208w-r0/rtconfig.py @@ -17,7 +17,7 @@ else: if os.getenv('RTT_EXEC_PATH'): EXEC_PATH = os.getenv('RTT_EXEC_PATH') - + BUILD = 'debug' #BUILD = 'release' @@ -57,6 +57,8 @@ if PLATFORM == 'gcc': else: CFLAGS += ' -O2' + CXXFLAGS = CFLAGS + POST_ACTION = OBJCPY + ' -O binary $TARGET ' + TARGET_NAME + '\n' POST_ACTION += SIZE + ' $TARGET\n'