forked from Embedded_Projects/CH32V307_Template
Fix libnosys linkage and remove unneeded fstat & sbrk
This commit is contained in:
parent
c7ba52be62
commit
4cbc967415
|
@ -176,6 +176,8 @@ __attribute__((used)) int _write(int fd, char *buf, int size)
|
||||||
*
|
*
|
||||||
* @return size: Data length
|
* @return size: Data length
|
||||||
*/
|
*/
|
||||||
|
// _sbrk is provided by libnosys
|
||||||
|
/*
|
||||||
void *_sbrk(ptrdiff_t incr)
|
void *_sbrk(ptrdiff_t incr)
|
||||||
{
|
{
|
||||||
extern char _end[];
|
extern char _end[];
|
||||||
|
@ -188,6 +190,6 @@ void *_sbrk(ptrdiff_t incr)
|
||||||
curbrk += incr;
|
curbrk += incr;
|
||||||
return curbrk - incr;
|
return curbrk - incr;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,6 @@ set(TARGET_C_SOURCES
|
||||||
"src/board.c"
|
"src/board.c"
|
||||||
"src/ch32v30x_it.c"
|
"src/ch32v30x_it.c"
|
||||||
"src/main.c"
|
"src/main.c"
|
||||||
"src/syscalls.c"
|
|
||||||
"src/system_ch32v30x.c"
|
"src/system_ch32v30x.c"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -96,7 +95,7 @@ set(CMAKE_EXE_LINKER_FLAGS_RELEASE "-flto")
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${TARGET_CFLAGS_HARDWARE} ${TARGET_CFLAGS_EXTRA} -Wall -fdata-sections -ffunction-sections")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${TARGET_CFLAGS_HARDWARE} ${TARGET_CFLAGS_EXTRA} -Wall -fdata-sections -ffunction-sections")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TARGET_CFLAGS_HARDWARE} ${TARGET_CXXFLAGS_EXTRA} -Wall -fdata-sections -ffunction-sections")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TARGET_CFLAGS_HARDWARE} ${TARGET_CXXFLAGS_EXTRA} -Wall -fdata-sections -ffunction-sections")
|
||||||
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${CMAKE_C_FLAGS} -x assembler-with-cpp")
|
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${CMAKE_C_FLAGS} -x assembler-with-cpp")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "-Wl,--gc-sections -lc -lm -lnosys -nostartfiles ${TARGET_LDFLAGS_EXTRA}")
|
set(CMAKE_EXE_LINKER_FLAGS "-Wl,--gc-sections -nostdlib -nostartfiles ${TARGET_LDFLAGS_EXTRA}")
|
||||||
|
|
||||||
# Include sub directories here
|
# Include sub directories here
|
||||||
|
|
||||||
|
@ -116,6 +115,9 @@ target_link_options("${CMAKE_PROJECT_NAME}_FLASH.elf"
|
||||||
PRIVATE "-T${TARGET_LDSCRIPT_FLASH}"
|
PRIVATE "-T${TARGET_LDSCRIPT_FLASH}"
|
||||||
PRIVATE "-Wl,-Map=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_PROJECT_NAME}_FLASH.map,--cref"
|
PRIVATE "-Wl,-Map=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_PROJECT_NAME}_FLASH.map,--cref"
|
||||||
)
|
)
|
||||||
|
target_link_libraries("${CMAKE_PROJECT_NAME}_FLASH.elf"
|
||||||
|
PRIVATE "-lnosys -lc -lgcc -lnosys"
|
||||||
|
)
|
||||||
|
|
||||||
add_custom_command(OUTPUT "${CMAKE_PROJECT_NAME}_FLASH.hex"
|
add_custom_command(OUTPUT "${CMAKE_PROJECT_NAME}_FLASH.hex"
|
||||||
COMMAND ${CMAKE_OBJCOPY} "-O" "ihex" "${CMAKE_PROJECT_NAME}_FLASH.elf" "${CMAKE_PROJECT_NAME}_FLASH.hex"
|
COMMAND ${CMAKE_OBJCOPY} "-O" "ihex" "${CMAKE_PROJECT_NAME}_FLASH.elf" "${CMAKE_PROJECT_NAME}_FLASH.hex"
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
#interface wlink
|
||||||
|
adapter driver wlink
|
||||||
|
wlink_set
|
||||||
|
set _CHIPNAME riscv
|
||||||
|
jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x00001
|
||||||
|
|
||||||
|
set _TARGETNAME $_CHIPNAME.cpu
|
||||||
|
|
||||||
|
target create $_TARGETNAME.0 riscv -chain-position $_TARGETNAME
|
||||||
|
$_TARGETNAME.0 configure -work-area-phys 0x80000000 -work-area-size 10000 -work-area-backup 1
|
||||||
|
set _FLASHNAME $_CHIPNAME.flash
|
||||||
|
|
||||||
|
flash bank $_FLASHNAME wch_riscv 0x00000000 0 0 0 $_TARGETNAME.0
|
||||||
|
|
||||||
|
echo "Ready for Remote Connections"
|
||||||
|
|
||||||
|
init
|
||||||
|
halt
|
||||||
|
|
||||||
|
flash erase_sector wch_riscv 0 last
|
||||||
|
program ./build/ch32v307_template_FLASH.hex
|
||||||
|
verify_image ./build/ch32v307_template_FLASH.hex
|
||||||
|
wlink_reset_resume
|
||||||
|
exit
|
|
@ -0,0 +1,5 @@
|
||||||
|
set(CMAKE_SYSTEM_NAME Generic)
|
||||||
|
set(CMAKE_C_COMPILER riscv64-unknown-elf-gcc)
|
||||||
|
set(CMAKE_CXX_COMPILER riscv64-unknown-elf-g++)
|
||||||
|
# Make CMake happy about those compilers
|
||||||
|
set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY")
|
|
@ -1,7 +0,0 @@
|
||||||
#include <sys/stat.h>
|
|
||||||
|
|
||||||
int _fstat(int file, struct stat *st) {
|
|
||||||
st->st_mode = S_IFCHR;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
Loading…
Reference in New Issue