-
Notifications
You must be signed in to change notification settings - Fork 1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
change default risv-gcc to riscv-none-elf- and add _zicsr extension
add cmake for ch32v20x, skip freertos examples for CH32V20X, also skip net webserver due to lack of RAM update to use openocd with wlinke adapter
- Loading branch information
Showing
22 changed files
with
191 additions
and
50 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
mcu:CH32V20X | ||
mcu:CH32V307 | ||
mcu:CXD56 | ||
mcu:F1C100S | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
mcu:CH32V20X | ||
mcu:CH32V307 | ||
mcu:CXD56 | ||
mcu:F1C100S | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
mcu:CH32V20X | ||
mcu:LPC11UXX | ||
mcu:LPC13XX | ||
mcu:LPC15XX | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
set(MCU_VARIANT D6) | ||
|
||
function(update_board TARGET) | ||
target_compile_definitions(${TARGET} PUBLIC | ||
CH32V20x_D6 | ||
) | ||
endfunction() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
include_guard() | ||
|
||
set(CH32_FAMILY ch32v20x) | ||
set(SDK_DIR ${TOP}/hw/mcu/wch/${CH32_FAMILY}/EVT/EXAM/SRC) | ||
|
||
# include board specific | ||
include(${CMAKE_CURRENT_LIST_DIR}/boards/${BOARD}/board.cmake) | ||
|
||
# toolchain set up | ||
set(CMAKE_SYSTEM_PROCESSOR rv32imac-ilp32 CACHE INTERNAL "System Processor") | ||
set(CMAKE_TOOLCHAIN_FILE ${TOP}/examples/build_system/cmake/toolchain/riscv_${TOOLCHAIN}.cmake) | ||
|
||
set(FAMILY_MCUS CH32V20X CACHE INTERNAL "") | ||
set(OPENOCD_OPTION "-f ${CMAKE_CURRENT_LIST_DIR}/wch-riscv.cfg") | ||
|
||
#------------------------------------ | ||
# BOARD_TARGET | ||
#------------------------------------ | ||
# only need to be built ONCE for all examples | ||
function(add_board_target BOARD_TARGET) | ||
if (TARGET ${BOARD_TARGET}) | ||
return() | ||
endif() | ||
|
||
if (NOT DEFINED LD_FILE_GNU) | ||
set(LD_FILE_GNU ${SDK_DIR}/Ld/Link.ld) | ||
endif () | ||
set(LD_FILE_Clang ${LD_FILE_GNU}) | ||
|
||
if (NOT DEFINED STARTUP_FILE_GNU) | ||
set(STARTUP_FILE_GNU ${SDK_DIR}/Startup/startup_${CH32_FAMILY}_${MCU_VARIANT}.S) | ||
endif () | ||
set(STARTUP_FILE_Clang ${STARTUP_FILE_GNU}) | ||
|
||
add_library(${BOARD_TARGET} STATIC | ||
${SDK_DIR}/Core/core_riscv.c | ||
${SDK_DIR}/Peripheral/src/${CH32_FAMILY}_gpio.c | ||
${SDK_DIR}/Peripheral/src/${CH32_FAMILY}_misc.c | ||
${SDK_DIR}/Peripheral/src/${CH32_FAMILY}_rcc.c | ||
${SDK_DIR}/Peripheral/src/${CH32_FAMILY}_usart.c | ||
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/system_${CH32_FAMILY}.c | ||
${STARTUP_FILE_${CMAKE_C_COMPILER_ID}} | ||
) | ||
target_include_directories(${BOARD_TARGET} PUBLIC | ||
${SDK_DIR}/Peripheral/inc | ||
${CMAKE_CURRENT_FUNCTION_LIST_DIR} | ||
) | ||
target_compile_definitions(${BOARD_TARGET} PUBLIC | ||
BOARD_TUD_MAX_SPEED=OPT_MODE_FULL_SPEED | ||
) | ||
|
||
update_board(${BOARD_TARGET}) | ||
|
||
if (CMAKE_C_COMPILER_ID STREQUAL "GNU") | ||
target_compile_options(${BOARD_TARGET} PUBLIC | ||
-mcmodel=medany | ||
) | ||
target_link_options(${BOARD_TARGET} PUBLIC | ||
"LINKER:--script=${LD_FILE_GNU}" | ||
-nostartfiles | ||
--specs=nosys.specs --specs=nano.specs | ||
) | ||
elseif (CMAKE_C_COMPILER_ID STREQUAL "Clang") | ||
message(FATAL_ERROR "Clang is not supported for MSP432E4") | ||
elseif (CMAKE_C_COMPILER_ID STREQUAL "IAR") | ||
target_link_options(${BOARD_TARGET} PUBLIC | ||
"LINKER:--config=${LD_FILE_IAR}" | ||
) | ||
endif () | ||
endfunction() | ||
|
||
|
||
#------------------------------------ | ||
# Functions | ||
#------------------------------------ | ||
function(family_configure_example TARGET RTOS) | ||
family_configure_common(${TARGET} ${RTOS}) | ||
|
||
# Board target | ||
add_board_target(board_${BOARD}) | ||
|
||
#---------- Port Specific ---------- | ||
# These files are built for each example since it depends on example's tusb_config.h | ||
target_sources(${TARGET} PUBLIC | ||
# BSP | ||
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/family.c | ||
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/../board.c | ||
) | ||
target_include_directories(${TARGET} PUBLIC | ||
# family, hw, board | ||
${CMAKE_CURRENT_FUNCTION_LIST_DIR} | ||
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/../../ | ||
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/boards/${BOARD} | ||
) | ||
|
||
# Add TinyUSB target and port source | ||
family_add_tinyusb(${TARGET} OPT_MCU_CH32V20X ${RTOS}) | ||
target_sources(${TARGET}-tinyusb PUBLIC | ||
${TOP}/src/portable/wch/dcd_ch32_usbfs.c | ||
) | ||
target_link_libraries(${TARGET}-tinyusb PUBLIC board_${BOARD}) | ||
|
||
# Link dependencies | ||
target_link_libraries(${TARGET} PUBLIC board_${BOARD} ${TARGET}-tinyusb) | ||
|
||
# Flashing | ||
family_add_bin_hex(${TARGET}) | ||
family_flash_openocd_wch(${TARGET}) | ||
endfunction() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,3 @@ | ||
#interface wlink | ||
adapter driver wlinke | ||
adapter speed 6000 | ||
transport select sdi | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.