summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/ISSUE_TEMPLATE/bug_report.yml4
-rw-r--r--hw/bsp/ch32v30x/boards/ch32v307v_r1_1v0/board.cmake5
-rw-r--r--hw/bsp/ch32v30x/boards/ch32v307v_r1_1v0/board.mk4
-rw-r--r--hw/bsp/ch32v30x/boards/nanoch32v305/board.cmake5
-rw-r--r--hw/bsp/ch32v30x/boards/nanoch32v305/board.mk4
-rw-r--r--hw/bsp/ch32v30x/family.cmake11
-rw-r--r--hw/bsp/ch32v30x/family.mk2
-rw-r--r--hw/bsp/ch32v30x/linker/ch32v30x.ld (renamed from hw/bsp/ch32v30x/ch32v307.ld)18
8 files changed, 31 insertions, 22 deletions
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index 35576a439..34e177984 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -86,8 +86,8 @@ body:
- type: checkboxes
attributes:
- label: I have checked existing issues, dicussion and documentation
+ label: I have checked existing issues, discussion and documentation
description: You agree to check all the resources above before opening a new issue.
options:
- - label: I confirm I have checked existing issues, dicussion and documentation.
+ - label: I confirm I have checked existing issues, discussion and documentation.
required: true
diff --git a/hw/bsp/ch32v30x/boards/ch32v307v_r1_1v0/board.cmake b/hw/bsp/ch32v30x/boards/ch32v307v_r1_1v0/board.cmake
index 9f5682042..3a3d2bf8e 100644
--- a/hw/bsp/ch32v30x/boards/ch32v307v_r1_1v0/board.cmake
+++ b/hw/bsp/ch32v30x/boards/ch32v307v_r1_1v0/board.cmake
@@ -1,4 +1,5 @@
+set(LD_FLASH_SIZE 256K)
+set(LD_RAM_SIZE 64K)
+
function(update_board TARGET)
-# target_compile_definitions(${TARGET} PUBLIC
-# )
endfunction()
diff --git a/hw/bsp/ch32v30x/boards/ch32v307v_r1_1v0/board.mk b/hw/bsp/ch32v30x/boards/ch32v307v_r1_1v0/board.mk
index 4e91d8938..810f85e30 100644
--- a/hw/bsp/ch32v30x/boards/ch32v307v_r1_1v0/board.mk
+++ b/hw/bsp/ch32v30x/boards/ch32v307v_r1_1v0/board.mk
@@ -1 +1,3 @@
-LD_FILE = $(FAMILY_PATH)/ch32v307.ld
+LDFLAGS += \
+ -Wl,--defsym=__FLASH_SIZE=256K \
+ -Wl,--defsym=__RAM_SIZE=64K \
diff --git a/hw/bsp/ch32v30x/boards/nanoch32v305/board.cmake b/hw/bsp/ch32v30x/boards/nanoch32v305/board.cmake
index 9f5682042..5f526ffea 100644
--- a/hw/bsp/ch32v30x/boards/nanoch32v305/board.cmake
+++ b/hw/bsp/ch32v30x/boards/nanoch32v305/board.cmake
@@ -1,4 +1,5 @@
+set(LD_FLASH_SIZE 128K)
+set(LD_RAM_SIZE 32K)
+
function(update_board TARGET)
-# target_compile_definitions(${TARGET} PUBLIC
-# )
endfunction()
diff --git a/hw/bsp/ch32v30x/boards/nanoch32v305/board.mk b/hw/bsp/ch32v30x/boards/nanoch32v305/board.mk
index 4e91d8938..580cf1a76 100644
--- a/hw/bsp/ch32v30x/boards/nanoch32v305/board.mk
+++ b/hw/bsp/ch32v30x/boards/nanoch32v305/board.mk
@@ -1 +1,3 @@
-LD_FILE = $(FAMILY_PATH)/ch32v307.ld
+LDFLAGS += \
+ -Wl,--defsym=__FLASH_SIZE=128K \
+ -Wl,--defsym=__RAM_SIZE=32K \
diff --git a/hw/bsp/ch32v30x/family.cmake b/hw/bsp/ch32v30x/family.cmake
index 446e850c5..0fd9b786a 100644
--- a/hw/bsp/ch32v30x/family.cmake
+++ b/hw/bsp/ch32v30x/family.cmake
@@ -29,7 +29,7 @@ function(add_board_target BOARD_TARGET)
endif()
if (NOT DEFINED LD_FILE_GNU)
- set(LD_FILE_GNU ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/ch32v307.ld)
+ set(LD_FILE_GNU ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/linker/ch32v30x.ld)
endif ()
set(LD_FILE_Clang ${LD_FILE_GNU})
@@ -74,12 +74,14 @@ function(add_board_target BOARD_TARGET)
-fsigned-char
)
target_link_options(${BOARD_TARGET} PUBLIC
- "LINKER:--script=${LD_FILE_GNU}"
-nostartfiles
--specs=nosys.specs --specs=nano.specs
+ -Wl,--defsym=__FLASH_SIZE=${LD_FLASH_SIZE}
+ -Wl,--defsym=__RAM_SIZE=${LD_RAM_SIZE}
+ "LINKER:--script=${LD_FILE_GNU}"
)
elseif (CMAKE_C_COMPILER_ID STREQUAL "Clang")
- message(FATAL_ERROR "Clang is not supported for MSP432E4")
+ message(FATAL_ERROR "Clang is not supported for CH32v")
elseif (CMAKE_C_COMPILER_ID STREQUAL "IAR")
target_link_options(${BOARD_TARGET} PUBLIC
"LINKER:--config=${LD_FILE_IAR}"
@@ -120,9 +122,8 @@ function(family_configure_example TARGET RTOS)
)
target_link_libraries(${TARGET} PUBLIC board_${BOARD})
-
-
# Flashing
family_add_bin_hex(${TARGET})
family_flash_openocd_wch(${TARGET})
+ family_flash_wlink_rs(${TARGET})
endfunction()
diff --git a/hw/bsp/ch32v30x/family.mk b/hw/bsp/ch32v30x/family.mk
index bf2732106..be6813914 100644
--- a/hw/bsp/ch32v30x/family.mk
+++ b/hw/bsp/ch32v30x/family.mk
@@ -57,6 +57,8 @@ INC += \
$(TOP)/$(SDK_SRC_DIR)/Core \
$(TOP)/$(SDK_SRC_DIR)/Peripheral/inc
+LD_FILE ?= $(FAMILY_PATH)/linker/ch32v30x.ld
+
# For freeRTOS port source
FREERTOS_PORTABLE_SRC = $(FREERTOS_PORTABLE_PATH)/RISC-V
diff --git a/hw/bsp/ch32v30x/ch32v307.ld b/hw/bsp/ch32v30x/linker/ch32v30x.ld
index 55bd10cd0..6dd5d344a 100644
--- a/hw/bsp/ch32v30x/ch32v307.ld
+++ b/hw/bsp/ch32v30x/linker/ch32v30x.ld
@@ -1,20 +1,20 @@
-ENTRY( _start )
-
-__stack_size = 4096;
-
-PROVIDE( _stack_size = __stack_size );
-
+/* Define default values if not already defined */
+__flash_size = DEFINED(__FLASH_SIZE) ? __FLASH_SIZE : 128K;
+__ram_size = DEFINED(__RAM_SIZE) ? __RAM_SIZE : 32K;
+__stack_size = DEFINED(__STACK_SIZE) ? __STACK_SIZE : 2048;
MEMORY
{
- FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 288K
- RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 32K
+ FLASH (rx) : ORIGIN = 0x00000000, LENGTH = __flash_size
+ RAM (xrw) : ORIGIN = 0x20000000, LENGTH = __ram_size
}
+ENTRY( _start )
+
+PROVIDE( _stack_size = __stack_size );
SECTIONS
{
-
.init :
{
_sinit = .;