2022-03-21 10:01:11 +10:30
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# https://www.embecosm.com/resources/tool-chain-downloads/#riscv-stable
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#CROSS_COMPILE ?= riscv32-unknown-elf-
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-15 20:13:00 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								# Toolchain from https://nucleisys.com/download.php
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#CROSS_COMPILE ?= riscv-nuclei-elf-
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-21 10:01:11 +10:30
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2023-11-19 18:26:40 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								# Toolchain from https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-15 20:13:00 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								CROSS_COMPILE ?= riscv-none-elf-
							 | 
						
					
						
							
								
									
										
										
										
											2023-11-19 18:26:40 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-20 17:26:04 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								CH32_FAMILY = ch32v30x
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								SDK_DIR = hw/mcu/wch/ch32v307
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								SDK_SRC_DIR = $(SDK_DIR)/EVT/EXAM/SRC
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-21 10:01:11 +10:30
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								include $(TOP)/$(BOARD_PATH)/board.mk
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-09 20:43:46 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								CPU_CORE ?= rv32imac-ilp32
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-21 10:01:11 +10:30
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-20 17:26:04 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								# default to use high speed port, unless specified in board.mk or command line
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								SPEED ?= high
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-21 10:01:11 +10:30
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								CFLAGS += \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									-flto \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									-msmall-data-limit=8 \
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-20 17:26:04 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									-mno-save-restore \
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-21 10:01:11 +10:30
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
									-fmessage-length=0 \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									-fsigned-char \
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-22 23:31:20 +10:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									-DCFG_TUSB_MCU=OPT_MCU_CH32V307 \
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-20 17:26:04 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2024-06-14 12:51:28 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								# https://github.com/openwch/ch32v307/pull/90
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								CFLAGS += -Wno-error=strict-prototypes
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-20 17:26:04 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								ifeq ($(SPEED),high)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  $(info "Using USBHS driver for HighSpeed mode")
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-24 11:38:44 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  CFLAGS += -DCFG_TUD_WCH_USBIP_USBHS=1
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-20 17:26:04 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								else
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  $(info "Using USBFS driver for FullSpeed mode")
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-24 11:38:44 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  CFLAGS += -DCFG_TUD_WCH_USBIP_USBFS=1
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-20 17:26:04 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								endif
							 | 
						
					
						
							
								
									
										
										
										
											2023-01-08 00:02:17 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-09 20:43:46 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								LDFLAGS_GCC += \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									-nostdlib -nostartfiles \
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-20 17:26:04 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  --specs=nosys.specs --specs=nano.specs \
							 | 
						
					
						
							
								
									
										
										
										
											2023-11-23 12:43:13 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-21 10:01:11 +10:30
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								SRC_C += \
							 | 
						
					
						
							
								
									
										
										
										
											2023-10-06 13:04:54 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									src/portable/wch/dcd_ch32_usbhs.c \
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-20 17:26:04 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									src/portable/wch/dcd_ch32_usbfs.c \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									$(SDK_SRC_DIR)/Core/core_riscv.c \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									$(SDK_SRC_DIR)/Peripheral/src/${CH32_FAMILY}_gpio.c \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									$(SDK_SRC_DIR)/Peripheral/src/${CH32_FAMILY}_misc.c \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									$(SDK_SRC_DIR)/Peripheral/src/${CH32_FAMILY}_rcc.c \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									$(SDK_SRC_DIR)/Peripheral/src/${CH32_FAMILY}_usart.c
							 | 
						
					
						
							
								
									
										
										
										
											2023-03-16 23:11:11 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-21 10:01:11 +10:30
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								SRC_S += \
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-20 17:26:04 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									$(SDK_SRC_DIR)/Startup/startup_${CH32_FAMILY}_D8C.S
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-21 10:01:11 +10:30
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								INC += \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									$(TOP)/$(BOARD_PATH) \
							 | 
						
					
						
							
								
									
										
										
										
											2024-06-14 12:51:28 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									$(TOP)/$(SDK_SRC_DIR)/Core \
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-20 17:26:04 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									$(TOP)/$(SDK_SRC_DIR)/Peripheral/inc
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-21 10:01:11 +10:30
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2025-07-28 11:43:20 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								LD_FILE ?= $(FAMILY_PATH)/linker/ch32v30x.ld
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-21 10:01:11 +10:30
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# For freeRTOS port source
							 | 
						
					
						
							
								
									
										
										
										
											2023-03-16 23:11:11 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								FREERTOS_PORTABLE_SRC = $(FREERTOS_PORTABLE_PATH)/RISC-V
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-21 10:01:11 +10:30
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-20 17:26:04 +07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								OPENOCD_WCH_OPTION=-f $(TOP)/$(FAMILY_PATH)/wch-riscv.cfg
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								flash: flash-openocd-wch
							 |