[fix] fix cmake files

This commit is contained in:
jzlv 2021-04-27 12:35:37 +08:00
parent 72ccc03bf9
commit 064e9c91f7
21 changed files with 563 additions and 541 deletions

View File

@ -7,16 +7,33 @@ PROJECT(${BOARD} C CXX ASM)
include_directories(${CMAKE_SOURCE_DIR}/common/misc)
include_directories(${CMAKE_SOURCE_DIR}/bsp/bsp_common/platform)
if(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/bsp/board/${BOARD})
include_directories(${CMAKE_SOURCE_DIR}/bsp/board/${BOARD})
else()
message(FATAL_ERROR "${CMAKE_SOURCE_DIR}/bsp/board/${BOARD} is not exist")
endif()
add_subdirectory(common)
add_subdirectory(components/fatfs)
add_subdirectory(components/usb_stack)
add_subdirectory(drivers/${mcu}_driver)
if(${SUPPORT_SHELL} STREQUAL "ENABLE")
if(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/drivers/${mcu}_driver)
add_subdirectory(drivers/${mcu}_driver)
else()
message(FATAL_ERROR "${CMAKE_SOURCE_DIR}/drivers/${mcu}_driver is not exist")
endif()
if(${SUPPORT_SHELL} STREQUAL "y")
add_subdirectory(components/shell)
else()
endif()
if(${SUPPORT_FREERTOS} STREQUAL "y")
add_subdirectory(components/freertos)
endif()
if(${SUPPORT_LVGL} STREQUAL "y")
add_subdirectory(components/lvgl)
endif()
search_application(${CMAKE_SOURCE_DIR}/examples)

View File

@ -4,8 +4,18 @@ CHIP?=bl702
INTERFACE?=jlink
BAUDRATE ?=12000
SUPPORT_SHELL?=n
SUPPORT_FREERTOS?=n
SUPPORT_LVGL?=n
SUPPORT_FLOAT?=n
export BOARD
export APP
export SUPPORT_SHELL
export SUPPORT_FREERTOS
export SUPPORT_LVGL
export SUPPORT_FLOAT
# The command to remove a file.
RM = cmake -E rm -rf

View File

@ -31,34 +31,35 @@ file(GLOB_RECURSE sources
#aux_source_directory(. sources)
list(APPEND ADD_SRCS ${sources})
list(REMOVE_ITEM ADD_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/libc/src/strtox.c" "${CMAKE_CURRENT_SOURCE_DIR}/libc/src/atox.c")
list(REMOVE_ITEM ADD_SRCS
"${CMAKE_CURRENT_SOURCE_DIR}/libc/src/strtox.c"
"${CMAKE_CURRENT_SOURCE_DIR}/libc/src/atox.c"
"${CMAKE_CURRENT_SOURCE_DIR}/libc/src/stdlib.c")
#######################################################
########### Add required/dependent components #########
#list(APPEND ADD_REQUIREMENTS BSP_${BOARD}_Driver)
#list(APPEND ADD_REQUIREMENTS xxx)
#######################################################
############ Add static libs ##########################
# if(CONFIG_COMPONENT1_INCLUDE_STATIC_LIB)
# list(APPEND ADD_STATIC_LIB "lib/libtest.a")
# list(APPEND ADD_STATIC_LIB "libxxx.a")
# endif()
#######################################################
############ Add dynamic libs #########################
# list(APPEND ADD_DYNAMIC_LIB "lib/arch/v831/libmaix_nn.so"
# "lib/arch/v831/libmaix_cam.so"
# list(APPEND ADD_DYNAMIC_LIB "libxxx.so"
# )
#######################################################
############ Add global compile option ################
#add components denpend on this component
# list(APPEND ADD_DEFINITIONS -D${BOARD} -DARCH_RISCV)
# list(APPEND ADD_DEFINITIONS -Dxxx)
#######################################################
############ Add private compile option ################
#add compile option for this component that won't affect other modules
#list(APPEND ADD_DEFINITIONS_PRIVATE -D${BOARD}_DRIVER)
# list(APPEND ADD_DEFINITIONS_PRIVATE -Dxxx)
#######################################################
generate_library()

View File

@ -6,12 +6,6 @@ list(APPEND ADD_INCLUDE
################# Add private include #################
# list(APPEND ADD_PRIVATE_INCLUDE
# "${CMAKE_SOURCE_DIR}/BSP_Common/ring_buffer"
# "${CMAKE_SOURCE_DIR}/BSP_Driver/BSP_${BOARD}_Driver/StdDriver/Inc"
# "${CMAKE_SOURCE_DIR}/BSP_Driver/BSP_${BOARD}_Driver/StdDriver/Inc"
# "${CMAKE_SOURCE_DIR}/BSP_Driver/BSP_${BOARD}_Driver/Peripherals"
# "${CMAKE_SOURCE_DIR}/BSP_Driver/BSP_${BOARD}_Driver/RISCV/Device/Bouffalo/${BOARD}/Startup"
# "${CMAKE_SOURCE_DIR}/BSP_Driver/BSP_${BOARD}_Driver/RISCV/Core/Include"
# )
#######################################################
@ -23,30 +17,27 @@ list(APPEND ADD_SRCS ${sources})
#######################################################
########### Add required/dependent components #########
#list(APPEND ADD_REQUIREMENTS BSP_${BOARD}_Driver BSP_Common)
#list(APPEND ADD_REQUIREMENTS xxx)
#######################################################
############ Add static libs ##########################
# if(CONFIG_COMPONENT1_INCLUDE_STATIC_LIB)
# list(APPEND ADD_STATIC_LIB "lib/libtest.a")
# list(APPEND ADD_STATIC_LIB "libxxx.a")
# endif()
#######################################################
############ Add dynamic libs #########################
# list(APPEND ADD_DYNAMIC_LIB "lib/arch/v831/libmaix_nn.so"
# "lib/arch/v831/libmaix_cam.so"
# )
# list(APPEND ADD_DYNAMIC_LIB "libxxx.so")
#######################################################
############ Add global compile option ################
#add components denpend on this component
# list(APPEND ADD_DEFINITIONS -DAAAAA222=1
# -DAAAAA333=1)
# list(APPEND ADD_DEFINITIONS -Dxxx)
#######################################################
############ Add private compile option ################
#add compile option for this component that won't affect other modules
# list(APPEND ADD_DEFINITIONS_PRIVATE -DAAAAA=1)
# list(APPEND ADD_DEFINITIONS_PRIVATE -Dxxx)
#######################################################
generate_library()

View File

@ -1,18 +1,13 @@
################# Add global include #################
list(APPEND ADD_INCLUDE
"${CMAKE_CURRENT_SOURCE_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}/include"
"${CMAKE_CURRENT_SOURCE_DIR}/include"
"${CMAKE_CURRENT_SOURCE_DIR}/portable/gcc/risc-v/${mcu}"
)
#######################################################
################# Add private include #################
# list(APPEND ADD_PRIVATE_INCLUDE
# "${CMAKE_SOURCE_DIR}/BSP_Common/ring_buffer"
# "${CMAKE_SOURCE_DIR}/BSP_Driver/BSP_${BOARD}_Driver/StdDriver/Inc"
# "${CMAKE_SOURCE_DIR}/BSP_Driver/BSP_${BOARD}_Driver/StdDriver/Inc"
# "${CMAKE_SOURCE_DIR}/BSP_Driver/BSP_${BOARD}_Driver/Peripherals"
# "${CMAKE_SOURCE_DIR}/BSP_Driver/BSP_${BOARD}_Driver/RISCV/Device/Bouffalo/${BOARD}/Startup"
# "${CMAKE_SOURCE_DIR}/BSP_Driver/BSP_${BOARD}_Driver/RISCV/Core/Include"
# )
#######################################################
@ -24,7 +19,9 @@ file(GLOB_RECURSE sources "${CMAKE_CURRENT_SOURCE_DIR}/croutine.c"
"${CMAKE_CURRENT_SOURCE_DIR}/queue.c"
"${CMAKE_CURRENT_SOURCE_DIR}/tasks.c"
"${CMAKE_CURRENT_SOURCE_DIR}/timers.c"
"${CMAKE_CURRENT_SOURCE_DIR}/portable/MemMang/heap_5.c"
"${CMAKE_CURRENT_SOURCE_DIR}/portable/memmang/heap_5.c"
"${CMAKE_CURRENT_SOURCE_DIR}/portable/gcc/risc-v/${mcu}/port.c"
"${CMAKE_CURRENT_SOURCE_DIR}/portable/gcc/risc-v/${mcu}/portASM.S"
)
list(APPEND ADD_SRCS ${sources})
# aux_source_directory(src ADD_SRCS)
@ -32,30 +29,28 @@ list(APPEND ADD_SRCS ${sources})
#######################################################
########### Add required/dependent components #########
#list(APPEND ADD_REQUIREMENTS BSP_${BOARD}_Driver)
#list(APPEND ADD_REQUIREMENTS xxx)
#######################################################
############ Add static libs ##########################
# if(CONFIG_COMPONENT1_INCLUDE_STATIC_LIB)
# list(APPEND ADD_STATIC_LIB "lib/libtest.a")
# list(APPEND ADD_STATIC_LIB "libxxx.a")
# endif()
#######################################################
############ Add dynamic libs #########################
# list(APPEND ADD_DYNAMIC_LIB "lib/arch/v831/libmaix_nn.so"
# "lib/arch/v831/libmaix_cam.so"
# list(APPEND ADD_DYNAMIC_LIB "libxxx.so"
# )
#######################################################
############ Add global compile option ################
#add components denpend on this component
# list(APPEND ADD_DEFINITIONS -DAAAAA222=1
# -DAAAAA333=1)
list(APPEND ADD_DEFINITIONS -DportasmHANDLE_INTERRUPT=FreeRTOS_Interrupt_Handler)
#######################################################
############ Add private compile option ################
#add compile option for this component that won't affect other modules
# list(APPEND ADD_DEFINITIONS_PRIVATE -DAAAAA=1)
# list(APPEND ADD_DEFINITIONS_PRIVATE -Dxxx)
#######################################################
generate_library()

View File

@ -20,30 +20,28 @@ list(APPEND ADD_SRCS ${sources})
#######################################################
########### Add required/dependent components #########
#list(APPEND ADD_REQUIREMENTS BSP_${BOARD}_Driver)
#list(APPEND ADD_REQUIREMENTS xxx)
#######################################################
############ Add static libs ##########################
# if(CONFIG_COMPONENT1_INCLUDE_STATIC_LIB)
# list(APPEND ADD_STATIC_LIB "lib/libtest.a")
# list(APPEND ADD_STATIC_LIB "libxxx.a")
# endif()
#######################################################
############ Add dynamic libs #########################
# list(APPEND ADD_DYNAMIC_LIB "lib/arch/v831/libmaix_nn.so"
# "lib/arch/v831/libmaix_cam.so"
# list(APPEND ADD_DYNAMIC_LIB "libxxx.so"
# )
#######################################################
############ Add global compile option ################
#add components denpend on this component
#list(APPEND ADD_DEFINITIONS -D${BOARD} -DARCH_RISCV)
# list(APPEND ADD_DEFINITIONS -Dxxx)
#######################################################
############ Add private compile option ################
#add compile option for this component that won't affect other modules
#list(APPEND ADD_DEFINITIONS_PRIVATE -D${BOARD}_DRIVER)
# list(APPEND ADD_DEFINITIONS_PRIVATE -Dxxx)
#######################################################
generate_library()

View File

@ -6,6 +6,7 @@ list(APPEND ADD_INCLUDE
"${CMAKE_CURRENT_SOURCE_DIR}/class/hid"
"${CMAKE_CURRENT_SOURCE_DIR}/class/msc"
"${CMAKE_CURRENT_SOURCE_DIR}/class/video"
#"${CMAKE_CURRENT_SOURCE_DIR}/class/vendor"
"${CMAKE_CURRENT_SOURCE_DIR}/class/winusb"
)
#######################################################
@ -24,30 +25,28 @@ list(APPEND ADD_SRCS ${sources})
#######################################################
########### Add required/dependent components #########
#list(APPEND ADD_REQUIREMENTS BSP_${BOARD}_Driver)
#list(APPEND ADD_REQUIREMENTS xxx)
#######################################################
############ Add static libs ##########################
# if(CONFIG_COMPONENT1_INCLUDE_STATIC_LIB)
# list(APPEND ADD_STATIC_LIB "lib/libtest.a")
# list(APPEND ADD_STATIC_LIB "libxxx.a")
# endif()
#######################################################
############ Add dynamic libs #########################
# list(APPEND ADD_DYNAMIC_LIB "lib/arch/v831/libmaix_nn.so"
# "lib/arch/v831/libmaix_cam.so"
# list(APPEND ADD_DYNAMIC_LIB "libxxx.so"
# )
#######################################################
############ Add global compile option ################
#add components denpend on this component
# list(APPEND ADD_DEFINITIONS -DAAAAA222=1
# -DAAAAA333=1)
# list(APPEND ADD_DEFINITIONS -Dxxx)
#######################################################
############ Add private compile option ################
#add compile option for this component that won't affect other modules
# list(APPEND ADD_DEFINITIONS_PRIVATE -DAAAAA=1)
# list(APPEND ADD_DEFINITIONS_PRIVATE -Dxxx)
#######################################################
generate_library()

View File

@ -1,4 +1,4 @@
PHONY := __build
__build:
cmake -DBOARD=$(BOARD) -DSUPPORT_SHELL=DISABLE -DAPP=$(APP) ..
cmake -DBOARD=$(BOARD) -DSUPPORT_SHELL=$(SUPPORT_SHELL) -DSUPPORT_FREERTOS=$(SUPPORT_FREERTOS) -DSUPPORT_LVGL=$(SUPPORT_LVGL) -DSUPPORT_FLOAT=$(SUPPORT_FLOAT) -DAPP=$(APP) ..
make -j

View File

@ -10,21 +10,25 @@
# -g Produce debugging information in the operating systems native format.
# -Os Optimize for size. -Os enables all -O2 optimizations.
# -flto Runs the standard link-time optimizer.
SET(MARCH "rv32imafc")
SET(MCPU "riscv-e24")
if(${SUPPORT_FLOAT} STREQUAL "y")
SET(MARCH "rv32imafc")
SET(MABI "ilp32f")
else()
SET(MARCH "rv32imac")
SET(MABI "ilp32")
endif()
SET(MCU_FLAG "-march=${MARCH} -mabi=${MABI}")
SET(COMMON_FLAGS "-O2 -g3 -fshort-enums -fno-common \
SET(COMMON_FLAGS "-Os -g3 -fshort-enums -fno-common \
-fms-extensions -ffunction-sections -fdata-sections -fstrict-volatile-bitfields \
-Wall -Wshift-negative-value -Wchar-subscripts -Wformat -Wuninitialized -Winit-self -fno-jump-tables \
-Wignored-qualifiers -Wswitch-default -Wunused -Wundef -msmall-data-limit=4")
-Wall -Wshift-negative-value -Wchar-subscripts -Wformat -Wuninitialized -Winit-self \
-Wignored-qualifiers -Wunused -Wundef -msmall-data-limit=4")
# compiler: language specific flags
set(CMAKE_C_FLAGS "${MCU_FLAG} ${COMMON_FLAGS} -std=c99" CACHE INTERNAL "c compiler flags")
set(CMAKE_C_FLAGS_DEBUG "-Og -g" CACHE INTERNAL "c compiler flags: Debug")
set(CMAKE_C_FLAGS_RELEASE "-Os -flto" CACHE INTERNAL "c compiler flags: Release")
set(CMAKE_C_FLAGS_RELEASE "-Os" CACHE INTERNAL "c compiler flags: Release")
# message("")
# message("-----------------------------------------------------------------------------------------------------------------------------------------------------")
@ -37,7 +41,7 @@ set(CMAKE_C_FLAGS_RELEASE "-Os -flto" CACHE INTERNAL "c compiler flags: Release"
set(CMAKE_CXX_FLAGS "${MCU_FLAG} ${COMMON_FLAGS} -std=c++11 " CACHE INTERNAL "cxx compiler flags")
set(CMAKE_CXX_FLAGS_DEBUG "-Og -g" CACHE INTERNAL "cxx compiler flags: Debug")
set(CMAKE_CXX_FLAGS_RELEASE "-Os -flto" CACHE INTERNAL "cxx compiler flags: Release")
set(CMAKE_CXX_FLAGS_RELEASE "-Os" CACHE INTERNAL "cxx compiler flags: Release")
# message("")
# message("-----------------------------------------------------------------------------------------------------------------------------------------------------")
@ -50,7 +54,7 @@ set(CMAKE_CXX_FLAGS_RELEASE "-Os -flto" CACHE INTERNAL "cxx compiler flags: Rele
set(CMAKE_ASM_FLAGS "${MCU_FLAG} ${COMMON_FLAGS}" CACHE INTERNAL "asm compiler flags")
set(CMAKE_ASM_FLAGS_DEBUG "-Og -g" CACHE INTERNAL "asm compiler flags: Debug")
set(CMAKE_ASM_FLAGS_RELEASE "-Os -flto" CACHE INTERNAL "asm compiler flags: Release")
set(CMAKE_ASM_FLAGS_RELEASE "-Os" CACHE INTERNAL "asm compiler flags: Release")
# message("")
# message("-----------------------------------------------------------------------------------------------------------------------------------------------------")
@ -64,7 +68,12 @@ set(CMAKE_ASM_FLAGS_RELEASE "-Os -flto" CACHE INTERNAL "asm compiler flags: Rele
# --specs=nano.specs Link with newlib-nano.
# --specs=nosys.specs No syscalls, provide empty implementations for the POSIX system calls.
if(${SUPPORT_SHELL} STREQUAL "ENABLE")
if(${SUPPORT_FLOAT} STREQUAL "y")
add_definitions(-DBFLB_PRINT_FLOAT_SUPPORT)
else()
endif()
if(${SUPPORT_SHELL} STREQUAL "y")
add_definitions(-DSHELL_SUPPORT)
else()
endif()

View File

@ -114,7 +114,8 @@ function(generate_bin)
set(HEX_FILE ${OUTPUT_DIR}/main.hex)
set(BIN_FILE ${OUTPUT_DIR}/main.bin)
set(MAP_FILE ${OUTPUT_DIR}/main.map)
set(ASM_FILE ${OUTPUT_DIR}/main.asm)
if(TARGET_REQUIRED_SRCS)
list(APPEND SRCS ${TARGET_REQUIRED_SRCS})
endif()
@ -143,7 +144,7 @@ function(generate_bin)
# Add libs
target_link_libraries(${target_name}.elf ${mcu}_driver)
if(${SUPPORT_SHELL} STREQUAL "ENABLE")
if(${SUPPORT_SHELL} STREQUAL "y")
target_link_libraries(${target_name}.elf shell)
else()
include_directories(${CMAKE_SOURCE_DIR}/components/shell)
@ -157,6 +158,7 @@ function(generate_bin)
add_custom_command(TARGET ${target_name}.elf POST_BUILD
COMMAND ${CMAKE_OBJCOPY} -Obinary $<TARGET_FILE:${target_name}.elf> ${BIN_FILE}
COMMAND ${CMAKE_OBJDUMP} -d -S $<TARGET_FILE:${target_name}.elf> >${ASM_FILE}
# COMMAND ${CMAKE_OBJCOPY} -Oihex $<TARGET_FILE:${mainname}.elf> ${HEX_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${BIN_FILE} ${CMAKE_SOURCE_DIR}/tools/bflb_flash_tool/img/project.bin
COMMENT "Generate ${BIN_FILE}\r\nCopy ${BIN_FILE} into download path")

View File

@ -1,15 +1,15 @@
set architecture riscv:rv32
#target remote :3333
#set disassemble-next-line on
set mem inaccessible-by-default off
#gdb_breakpoint_override [hard|soft|disable]
mem 0x22008000 0x22014000 rw
mem 0x42008000 0x42014000 rw
mem 0x22014000 0x22020000 rw
mem 0x42014000 0x42020000 rw
mem 0x22020000 0x22030000 rw
mem 0x42020000 0x42030000 rw
mem 0x22030000 0x2204C000 rw
mem 0x42030000 0x4204C000 rw
mem 0x23000000 0x23400000 ro
set architecture riscv:rv32
#target remote :3333
#set disassemble-next-line on
set mem inaccessible-by-default off
#gdb_breakpoint_override [hard|soft|disable]
mem 0x22008000 0x22014000 rw
mem 0x42008000 0x42014000 rw
mem 0x22014000 0x22020000 rw
mem 0x42014000 0x42020000 rw
mem 0x22020000 0x22030000 rw
mem 0x42020000 0x42030000 rw
mem 0x22030000 0x2204C000 rw
mem 0x42030000 0x4204C000 rw
mem 0x23000000 0x23400000 ro

View File

@ -1,236 +1,236 @@
<?xml version="1.0" encoding="utf-8"?>
<device schemaVersion="1.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="CMSIS-SVD_Schema_1_0.xsd" >
<vendor>bouffalolab</vendor>
<vendorID>bouffalolab</vendorID>
<name>602</name>
<series>WiFi BT</series>
<version></version>
<description>high-performance, 32-bit RV32IMAFC core
</description>
<addressUnitBits>8</addressUnitBits>
<width>32</width>
<size>32</size>
<resetValue>0x00000000</resetValue>
<resetMask>0xFFFFFFFF</resetMask>
<cpu>
<name>602</name>
<endian>little</endian>
</cpu>
<peripherals>
<peripheral>
<name>CLINT</name>
<description>Core Local Interruptor.</description>
<baseAddress>0x02000000</baseAddress>
<groupName>CLINT</groupName>
<size>32</size>
<access>read-write</access>
<addressBlock>
<offset>0</offset>
<size>0x10000</size>
<usage>registers</usage>
</addressBlock>
<registers>
<register>
<name>MSIP</name>
<description>Machine Software Interrupt Pending Register.</description>
<addressOffset>0x0000</addressOffset>
</register>
<register>
<name>MTIMECMP_LO</name>
<description>Machine Timer Compare Register Low.</description>
<addressOffset>0x4000</addressOffset>
</register>
<register>
<name>MTIMECMP_HI</name>
<description>Machine Timer Compare Register High.</description>
<addressOffset>0x4004</addressOffset>
</register>
<register>
<name>MTIME_LO</name>
<description>Machine Timer Register Low.</description>
<addressOffset>0xBFF8</addressOffset>
</register>
<register>
<name>MTIME_HI</name>
<description>Machine Timer Register High.</description>
<addressOffset>0xBFFC</addressOffset>
</register>
</registers>
</peripheral> <!-- CLINT -->
<peripheral>
<name>CLIC</name>
<description>Core Local Interrupter controller.</description>
<baseAddress>0x02800000</baseAddress>
<groupName>CLIC</groupName>
<size>8</size>
<access>read-write</access>
<addressBlock>
<offset>0</offset>
<size>0x10000</size>
<usage>registers</usage>
</addressBlock>
<registers>
<register>
<dim>128</dim> <!-- 64 user interrupt sources o 602 -->
<dimIncrement>1</dimIncrement>
<name>PENDING[%s]</name>
<description>CLIC Interrupt Pending Registers.</description>
<addressOffset>0x0000</addressOffset>
<fields>
<field><name>PENDING</name><lsb>0</lsb><msb>0</msb></field>
</fields>
</register>
<register>
<dim>128</dim> <!-- 64 user interrupt sources o 602 -->
<dimIncrement>1</dimIncrement>
<name>ENABLE[%s]</name>
<description>CLIC Interrupt enable Registers.</description>
<addressOffset>0x0400</addressOffset>
<fields>
<field><name>ENABLE</name><lsb>0</lsb><msb>0</msb></field>
</fields>
</register>
<register>
<dim>128</dim> <!-- 64 user interrupt sources o 602 -->
<dimIncrement>1</dimIncrement>
<name>INTCFG[%s]</name>
<description>CLIC Interrupt config Registers.</description>
<addressOffset>0x0800</addressOffset>
<fields>
<field><name>INTCFG</name><lsb>3</lsb><msb>7</msb></field>
</fields>
</register>
<register>
<name>clic_cfg</name>
<description>clic_cfg.</description>
<addressOffset>0x0C00</addressOffset>
<fields>
<field><name>nvbits</name><lsb>0</lsb><msb>0</msb></field>
<field><name>nlbits</name><lsb>1</lsb><msb>3</msb></field>
<field><name>nmbits</name><lsb>4</lsb><msb>5</msb></field>
</fields>
</register>
</registers>
</peripheral> <!-- CLIC -->
<peripheral>
<name>GLB</name>
<description>GLB.</description>
<baseAddress>0x40000000</baseAddress>
<groupName>GLB</groupName>
<size>32</size>
<access>read-write</access>
<addressBlock>
<offset>0</offset>
<size>0x1000</size>
<usage>registers</usage>
</addressBlock>
<registers>
<register>
<name>clk_cfg0</name>
<description>clk_cfg0.</description>
<addressOffset>0x0000</addressOffset>
<fields>
<field><name>pll_en</name><lsb>0</lsb><msb>0</msb></field>
<field><name>fclk_en</name><lsb>1</lsb><msb>1</msb></field>
<field><name>hclk_en</name><lsb>2</lsb><msb>2</msb></field>
<field><name>bclk_en</name><lsb>3</lsb><msb>3</msb></field>
<field><name>pll_set</name><lsb>4</lsb><msb>5</msb></field>
<field><name>hbn_root_clk_set</name><lsb>6</lsb><msb>7</msb></field>
<field><name>hclk_div</name><lsb>8</lsb><msb>15</msb></field>
<field><name>bclk_div</name><lsb>16</lsb><msb>23</msb></field>
<field><name>fclk_sw_state</name><lsb>24</lsb><msb>26</msb></field>
<field><name>chip_rdy</name><lsb>27</lsb><msb>27</msb></field>
<field><name>glb_id</name><lsb>28</lsb><msb>31</msb></field>
</fields>
</register>
</registers>
</peripheral> <!-- GLB -->
<peripheral>
<name>eFuse</name>
<description>eFuse Programmable Memory.</description>
<baseAddress>0x40007000</baseAddress>
<groupName>eFuse</groupName>
<size>32</size>
<access>read-only</access>
<addressBlock>
<offset>0</offset>
<size>0x1000</size>
<usage>registers</usage>
</addressBlock>
<registers>
<register>
<name>ef_cfg_0</name>
<description>ef_cfg_0.</description>
<addressOffset>0x0000</addressOffset>
<fields>
<field><name>ef_sboot_en</name><lsb>4</lsb><msb>5</msb></field>
<field><name>ef_boot_sel</name><lsb>8</lsb><msb>11</msb></field>
<field><name>ef_cpu0_enc_en</name><lsb>7</lsb><msb>7</msb></field>
<field><name>ef_cpu1_enc_en</name><lsb>6</lsb><msb>6</msb></field>
<field><name>ef_sboot_en</name><lsb>4</lsb><msb>5</msb></field>
<field><name>ef_sboot_sign_mode</name><lsb>2</lsb><msb>3</msb></field>
<field><name>ef_sf_aes_mode</name><lsb>0</lsb><msb>1</msb></field>
</fields>
</register>
<register>
<name>ef_wifi_mac_low</name>
<description>ef_wifi_mac_low.</description>
<addressOffset>0x0014</addressOffset>
<fields>
<field><name>mac_addr1</name><lsb>0</lsb><msb>31</msb></field>
</fields>
</register>
<register>
<name>ef_wifi_mac_high</name>
<description>ef_wifi_mac_high.</description>
<addressOffset>0x0018</addressOffset>
<fields>
<field><name>dev_info7</name><lsb>31</lsb><msb>31</msb></field>
<field><name>dev_info6</name><lsb>30</lsb><msb>30</msb></field>
<field><name>dev_info5</name><lsb>29</lsb><msb>29</msb></field>
<field><name>dev_info4_3</name><lsb>27</lsb><msb>28</msb></field>
<field><name>dev_info2_0</name><lsb>24</lsb><msb>26</msb></field>
<field><name>cust_id1_0</name><lsb>22</lsb><msb>23</msb></field>
<field><name>mac_addr1_crc5_0</name><lsb>16</lsb><msb>21</msb></field>
<field><name>mac_addr1</name><lsb>0</lsb><msb>15</msb></field>
</fields>
</register>
</registers>
</peripheral> <!-- eFuse -->
</peripherals>
</device>
<?xml version="1.0" encoding="utf-8"?>
<device schemaVersion="1.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="CMSIS-SVD_Schema_1_0.xsd" >
<vendor>bouffalolab</vendor>
<vendorID>bouffalolab</vendorID>
<name>602</name>
<series>WiFi BT</series>
<version></version>
<description>high-performance, 32-bit RV32IMAFC core
</description>
<addressUnitBits>8</addressUnitBits>
<width>32</width>
<size>32</size>
<resetValue>0x00000000</resetValue>
<resetMask>0xFFFFFFFF</resetMask>
<cpu>
<name>602</name>
<endian>little</endian>
</cpu>
<peripherals>
<peripheral>
<name>CLINT</name>
<description>Core Local Interruptor.</description>
<baseAddress>0x02000000</baseAddress>
<groupName>CLINT</groupName>
<size>32</size>
<access>read-write</access>
<addressBlock>
<offset>0</offset>
<size>0x10000</size>
<usage>registers</usage>
</addressBlock>
<registers>
<register>
<name>MSIP</name>
<description>Machine Software Interrupt Pending Register.</description>
<addressOffset>0x0000</addressOffset>
</register>
<register>
<name>MTIMECMP_LO</name>
<description>Machine Timer Compare Register Low.</description>
<addressOffset>0x4000</addressOffset>
</register>
<register>
<name>MTIMECMP_HI</name>
<description>Machine Timer Compare Register High.</description>
<addressOffset>0x4004</addressOffset>
</register>
<register>
<name>MTIME_LO</name>
<description>Machine Timer Register Low.</description>
<addressOffset>0xBFF8</addressOffset>
</register>
<register>
<name>MTIME_HI</name>
<description>Machine Timer Register High.</description>
<addressOffset>0xBFFC</addressOffset>
</register>
</registers>
</peripheral> <!-- CLINT -->
<peripheral>
<name>CLIC</name>
<description>Core Local Interrupter controller.</description>
<baseAddress>0x02800000</baseAddress>
<groupName>CLIC</groupName>
<size>8</size>
<access>read-write</access>
<addressBlock>
<offset>0</offset>
<size>0x10000</size>
<usage>registers</usage>
</addressBlock>
<registers>
<register>
<dim>128</dim> <!-- 64 user interrupt sources o 602 -->
<dimIncrement>1</dimIncrement>
<name>PENDING[%s]</name>
<description>CLIC Interrupt Pending Registers.</description>
<addressOffset>0x0000</addressOffset>
<fields>
<field><name>PENDING</name><lsb>0</lsb><msb>0</msb></field>
</fields>
</register>
<register>
<dim>128</dim> <!-- 64 user interrupt sources o 602 -->
<dimIncrement>1</dimIncrement>
<name>ENABLE[%s]</name>
<description>CLIC Interrupt enable Registers.</description>
<addressOffset>0x0400</addressOffset>
<fields>
<field><name>ENABLE</name><lsb>0</lsb><msb>0</msb></field>
</fields>
</register>
<register>
<dim>128</dim> <!-- 64 user interrupt sources o 602 -->
<dimIncrement>1</dimIncrement>
<name>INTCFG[%s]</name>
<description>CLIC Interrupt config Registers.</description>
<addressOffset>0x0800</addressOffset>
<fields>
<field><name>INTCFG</name><lsb>3</lsb><msb>7</msb></field>
</fields>
</register>
<register>
<name>clic_cfg</name>
<description>clic_cfg.</description>
<addressOffset>0x0C00</addressOffset>
<fields>
<field><name>nvbits</name><lsb>0</lsb><msb>0</msb></field>
<field><name>nlbits</name><lsb>1</lsb><msb>3</msb></field>
<field><name>nmbits</name><lsb>4</lsb><msb>5</msb></field>
</fields>
</register>
</registers>
</peripheral> <!-- CLIC -->
<peripheral>
<name>GLB</name>
<description>GLB.</description>
<baseAddress>0x40000000</baseAddress>
<groupName>GLB</groupName>
<size>32</size>
<access>read-write</access>
<addressBlock>
<offset>0</offset>
<size>0x1000</size>
<usage>registers</usage>
</addressBlock>
<registers>
<register>
<name>clk_cfg0</name>
<description>clk_cfg0.</description>
<addressOffset>0x0000</addressOffset>
<fields>
<field><name>pll_en</name><lsb>0</lsb><msb>0</msb></field>
<field><name>fclk_en</name><lsb>1</lsb><msb>1</msb></field>
<field><name>hclk_en</name><lsb>2</lsb><msb>2</msb></field>
<field><name>bclk_en</name><lsb>3</lsb><msb>3</msb></field>
<field><name>pll_set</name><lsb>4</lsb><msb>5</msb></field>
<field><name>hbn_root_clk_set</name><lsb>6</lsb><msb>7</msb></field>
<field><name>hclk_div</name><lsb>8</lsb><msb>15</msb></field>
<field><name>bclk_div</name><lsb>16</lsb><msb>23</msb></field>
<field><name>fclk_sw_state</name><lsb>24</lsb><msb>26</msb></field>
<field><name>chip_rdy</name><lsb>27</lsb><msb>27</msb></field>
<field><name>glb_id</name><lsb>28</lsb><msb>31</msb></field>
</fields>
</register>
</registers>
</peripheral> <!-- GLB -->
<peripheral>
<name>eFuse</name>
<description>eFuse Programmable Memory.</description>
<baseAddress>0x40007000</baseAddress>
<groupName>eFuse</groupName>
<size>32</size>
<access>read-only</access>
<addressBlock>
<offset>0</offset>
<size>0x1000</size>
<usage>registers</usage>
</addressBlock>
<registers>
<register>
<name>ef_cfg_0</name>
<description>ef_cfg_0.</description>
<addressOffset>0x0000</addressOffset>
<fields>
<field><name>ef_sboot_en</name><lsb>4</lsb><msb>5</msb></field>
<field><name>ef_boot_sel</name><lsb>8</lsb><msb>11</msb></field>
<field><name>ef_cpu0_enc_en</name><lsb>7</lsb><msb>7</msb></field>
<field><name>ef_cpu1_enc_en</name><lsb>6</lsb><msb>6</msb></field>
<field><name>ef_sboot_en</name><lsb>4</lsb><msb>5</msb></field>
<field><name>ef_sboot_sign_mode</name><lsb>2</lsb><msb>3</msb></field>
<field><name>ef_sf_aes_mode</name><lsb>0</lsb><msb>1</msb></field>
</fields>
</register>
<register>
<name>ef_wifi_mac_low</name>
<description>ef_wifi_mac_low.</description>
<addressOffset>0x0014</addressOffset>
<fields>
<field><name>mac_addr1</name><lsb>0</lsb><msb>31</msb></field>
</fields>
</register>
<register>
<name>ef_wifi_mac_high</name>
<description>ef_wifi_mac_high.</description>
<addressOffset>0x0018</addressOffset>
<fields>
<field><name>dev_info7</name><lsb>31</lsb><msb>31</msb></field>
<field><name>dev_info6</name><lsb>30</lsb><msb>30</msb></field>
<field><name>dev_info5</name><lsb>29</lsb><msb>29</msb></field>
<field><name>dev_info4_3</name><lsb>27</lsb><msb>28</msb></field>
<field><name>dev_info2_0</name><lsb>24</lsb><msb>26</msb></field>
<field><name>cust_id1_0</name><lsb>22</lsb><msb>23</msb></field>
<field><name>mac_addr1_crc5_0</name><lsb>16</lsb><msb>21</msb></field>
<field><name>mac_addr1</name><lsb>0</lsb><msb>15</msb></field>
</fields>
</register>
</registers>
</peripheral> <!-- eFuse -->
</peripherals>
</device>

View File

@ -1,15 +1,15 @@
set architecture riscv:rv32
#target remote :3333
#set disassemble-next-line on
set mem inaccessible-by-default off
#gdb_breakpoint_override [hard|soft|disable]
mem 0x22008000 0x22014000 rw
mem 0x42008000 0x42014000 rw
mem 0x22014000 0x22020000 rw
mem 0x42014000 0x42020000 rw
mem 0x22020000 0x22030000 rw
mem 0x42020000 0x42030000 rw
mem 0x22030000 0x2204C000 rw
mem 0x42030000 0x4204C000 rw
mem 0x23000000 0x23400000 ro
set architecture riscv:rv32
#target remote :3333
#set disassemble-next-line on
set mem inaccessible-by-default off
#gdb_breakpoint_override [hard|soft|disable]
mem 0x22008000 0x22014000 rw
mem 0x42008000 0x42014000 rw
mem 0x22014000 0x22020000 rw
mem 0x42014000 0x42020000 rw
mem 0x22020000 0x22030000 rw
mem 0x42020000 0x42030000 rw
mem 0x22030000 0x2204C000 rw
mem 0x42030000 0x4204C000 rw
mem 0x23000000 0x23400000 ro

View File

@ -1,16 +1,16 @@
# BouffaloLab USB-JTAG/TTL adapter
interface ftdi
ftdi_vid_pid 0x0403 0x6010
ftdi_channel 1
ftdi_tdo_sample_edge falling
transport select jtag
adapter_khz 10000
ftdi_layout_init 0x00f8 0x00fb
#ftdi_layout_signal nTRST -data 0x0400
#ftdi_layout_signal nSRST -ndata 0x0020
#reset_config srst_only srst_push_pull
#adapter_nsrst_delay 100
#adapter_nsrst_assert_width 100
# BouffaloLab USB-JTAG/TTL adapter
interface ftdi
ftdi_vid_pid 0x0403 0x6010
ftdi_channel 1
ftdi_tdo_sample_edge falling
transport select jtag
adapter_khz 10000
ftdi_layout_init 0x00f8 0x00fb
#ftdi_layout_signal nTRST -data 0x0400
#ftdi_layout_signal nSRST -ndata 0x0020
#reset_config srst_only srst_push_pull
#adapter_nsrst_delay 100
#adapter_nsrst_assert_width 100

View File

@ -1,16 +1,16 @@
# BouffaloLab USB-JTAG/TTL adapter
interface ftdi
ftdi_vid_pid 0x0403 0x6010
ftdi_channel 1
ftdi_tdo_sample_edge falling
transport select jtag
adapter_khz 30000
ftdi_layout_init 0x00f8 0x00fb
#ftdi_layout_signal nTRST -data 0x0400
#ftdi_layout_signal nSRST -ndata 0x0020
#reset_config srst_only srst_push_pull
#adapter_nsrst_delay 100
#adapter_nsrst_assert_width 100
# BouffaloLab USB-JTAG/TTL adapter
interface ftdi
ftdi_vid_pid 0x0403 0x6010
ftdi_channel 1
ftdi_tdo_sample_edge falling
transport select jtag
adapter_khz 30000
ftdi_layout_init 0x00f8 0x00fb
#ftdi_layout_signal nTRST -data 0x0400
#ftdi_layout_signal nSRST -ndata 0x0020
#reset_config srst_only srst_push_pull
#adapter_nsrst_delay 100
#adapter_nsrst_assert_width 100

View File

@ -1,15 +1,15 @@
# USB-JTAG/TTL based on FT2232D
interface ftdi
ftdi_vid_pid 0x0403 0x6010
ftdi_channel 0
transport select jtag
adapter_khz 2000
ftdi_layout_init 0x0508 0x0f2b
#ftdi_layout_signal nTRST -data 0x0400
ftdi_layout_signal nSRST -ndata 0x0020
reset_config srst_only srst_push_pull
adapter_nsrst_delay 100
adapter_nsrst_assert_width 100
# USB-JTAG/TTL based on FT2232D
interface ftdi
ftdi_vid_pid 0x0403 0x6010
ftdi_channel 0
transport select jtag
adapter_khz 2000
ftdi_layout_init 0x0508 0x0f2b
#ftdi_layout_signal nTRST -data 0x0400
ftdi_layout_signal nSRST -ndata 0x0020
reset_config srst_only srst_push_pull
adapter_nsrst_delay 100
adapter_nsrst_assert_width 100

View File

@ -1,7 +1,7 @@
# USB-JTAG/TTL based on FT2232D
interface jlink
transport select jtag
adapter_khz 12000
# USB-JTAG/TTL based on FT2232D
interface jlink
transport select jtag
adapter_khz 12000

View File

@ -1,40 +1,40 @@
# SiPEED USB-JTAG/TTL based on FT2232D
interface ftdi
ftdi_vid_pid 0x0403 0x6010
# http://blog.sipeed.com/p/727.html
ftdi_channel 0
transport select jtag
adapter_khz 10000
ftdi_layout_init 0x0508 0x0f1b
ftdi_layout_signal nTRST -data 0x0200 -noe 0x0100
ftdi_layout_signal nSRST -data 0x0800 -noe 0x0400
set _CHIPNAME riscv
#jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x20000001
jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x0
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
#$_TARGETNAME.0 configure -work-area-phys 0x50000000 -work-area-size 32768 -work-area-backup 0
echo "SiPEED USB-JTAG/TTL Ready for Remote Connections"
proc install_bootrom {} {
# sleep 1000
init
reset init
load_image chiptest_bootrom.bin 0x21000000 bin
sleep 500
reg pc 0x21000000
# sleep 500
# bp 0x21002f0c 4 hw
# resume
}
echo "Start loading BOOTROM under project folder"
install_bootrom
echo "flash the XIP code before debugging"
echo "ONLY load symbol in GDB"
echo "use [gdb_breakpoint_override hard] for XIP debugging"
# SiPEED USB-JTAG/TTL based on FT2232D
interface ftdi
ftdi_vid_pid 0x0403 0x6010
# http://blog.sipeed.com/p/727.html
ftdi_channel 0
transport select jtag
adapter_khz 10000
ftdi_layout_init 0x0508 0x0f1b
ftdi_layout_signal nTRST -data 0x0200 -noe 0x0100
ftdi_layout_signal nSRST -data 0x0800 -noe 0x0400
set _CHIPNAME riscv
#jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x20000001
jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x0
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
#$_TARGETNAME.0 configure -work-area-phys 0x50000000 -work-area-size 32768 -work-area-backup 0
echo "SiPEED USB-JTAG/TTL Ready for Remote Connections"
proc install_bootrom {} {
# sleep 1000
init
reset init
load_image chiptest_bootrom.bin 0x21000000 bin
sleep 500
reg pc 0x21000000
# sleep 500
# bp 0x21002f0c 4 hw
# resume
}
echo "Start loading BOOTROM under project folder"
install_bootrom
echo "flash the XIP code before debugging"
echo "ONLY load symbol in GDB"
echo "use [gdb_breakpoint_override hard] for XIP debugging"

View File

@ -1,24 +1,24 @@
# SiPEED USB-JTAG/TTL based on FT2232D
interface ftdi
ftdi_vid_pid 0x0403 0x6010
# http://blog.sipeed.com/p/727.html
ftdi_channel 0
transport select jtag
adapter_khz 1000
ftdi_layout_init 0x0508 0x0f1b
ftdi_layout_signal nTRST -data 0x0200 -noe 0x0100
ftdi_layout_signal nSRST -data 0x0800 -noe 0x0400
set _CHIPNAME riscv
#jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x20000001
jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x0
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
#$_TARGETNAME.0 configure -work-area-phys 0x50000000 -work-area-size 32768 -work-area-backup 0
riscv set_prefer_sba on
echo "SiPEED USB-JTAG/TTL Ready for Remote Connections"
# SiPEED USB-JTAG/TTL based on FT2232D
interface ftdi
ftdi_vid_pid 0x0403 0x6010
# http://blog.sipeed.com/p/727.html
ftdi_channel 0
transport select jtag
adapter_khz 1000
ftdi_layout_init 0x0508 0x0f1b
ftdi_layout_signal nTRST -data 0x0200 -noe 0x0100
ftdi_layout_signal nSRST -data 0x0800 -noe 0x0400
set _CHIPNAME riscv
#jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x20000001
jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x0
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
#$_TARGETNAME.0 configure -work-area-phys 0x50000000 -work-area-size 32768 -work-area-backup 0
riscv set_prefer_sba on
echo "SiPEED USB-JTAG/TTL Ready for Remote Connections"

View File

@ -1,45 +1,45 @@
#target chip
set _CHIPNAME riscv
jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x20000c05
set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME.0 riscv -chain-position $_TARGETNAME
$_TARGETNAME.0 configure -work-area-phys 0x22020000 -work-area-size 0x10000 -work-area-backup 1
#$_TARGETNAME.0 configure -rtos auto
echo "Ready for Remote Connections"
$_TARGETNAME.0 configure -event reset-assert-pre {
echo "reset-assert-pre"
adapter_khz 100
}
$_TARGETNAME.0 configure -event reset-deassert-post {
echo "reset-deassert-post"
adapter_khz 4000
reg mstatus 0x7800
reg mie 0x0
# reg pc 0x22008000
}
$_TARGETNAME.0 configure -event reset-init {
echo "reset-init"
# 4MHz for FPGA
adapter_khz 4000
}
gdb_memory_map enable
gdb_flash_program disable
riscv set_prefer_sba on
riscv set_command_timeout_sec 1
init
reset init
#jtag arp_init
#resume
#exit
#target chip
set _CHIPNAME riscv
jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x20000c05
set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME.0 riscv -chain-position $_TARGETNAME
$_TARGETNAME.0 configure -work-area-phys 0x22020000 -work-area-size 0x10000 -work-area-backup 1
#$_TARGETNAME.0 configure -rtos auto
echo "Ready for Remote Connections"
$_TARGETNAME.0 configure -event reset-assert-pre {
echo "reset-assert-pre"
adapter_khz 100
}
$_TARGETNAME.0 configure -event reset-deassert-post {
echo "reset-deassert-post"
adapter_khz 4000
reg mstatus 0x7800
reg mie 0x0
# reg pc 0x22008000
}
$_TARGETNAME.0 configure -event reset-init {
echo "reset-init"
# 4MHz for FPGA
adapter_khz 4000
}
gdb_memory_map enable
gdb_flash_program disable
riscv set_prefer_sba on
riscv set_command_timeout_sec 1
init
reset init
#jtag arp_init
#resume
#exit

View File

@ -1,45 +1,45 @@
#target chip
set _CHIPNAME riscv
jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x20000e05
set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME.0 riscv -chain-position $_TARGETNAME
$_TARGETNAME.0 configure -work-area-phys 0x22020000 -work-area-size 0x10000 -work-area-backup 1
#$_TARGETNAME.0 configure -rtos auto
echo "Ready for Remote Connections"
$_TARGETNAME.0 configure -event reset-assert-pre {
echo "reset-assert-pre"
adapter_khz 100
}
$_TARGETNAME.0 configure -event reset-deassert-post {
echo "reset-deassert-post"
adapter_khz 4000
reg mstatus 0x7800
reg mie 0x0
# reg pc 0x22008000
}
$_TARGETNAME.0 configure -event reset-init {
echo "reset-init"
# 4MHz for FPGA
adapter_khz 4000
}
gdb_memory_map enable
gdb_flash_program disable
riscv set_prefer_sba on
riscv set_command_timeout_sec 1
init
reset init
#jtag arp_init
#resume
#exit
#target chip
set _CHIPNAME riscv
jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x20000e05
set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME.0 riscv -chain-position $_TARGETNAME
$_TARGETNAME.0 configure -work-area-phys 0x22020000 -work-area-size 0x10000 -work-area-backup 1
#$_TARGETNAME.0 configure -rtos auto
echo "Ready for Remote Connections"
$_TARGETNAME.0 configure -event reset-assert-pre {
echo "reset-assert-pre"
adapter_khz 100
}
$_TARGETNAME.0 configure -event reset-deassert-post {
echo "reset-deassert-post"
adapter_khz 4000
reg mstatus 0x7800
reg mie 0x0
# reg pc 0x22008000
}
$_TARGETNAME.0 configure -event reset-init {
echo "reset-init"
# 4MHz for FPGA
adapter_khz 4000
}
gdb_memory_map enable
gdb_flash_program disable
riscv set_prefer_sba on
riscv set_command_timeout_sec 1
init
reset init
#jtag arp_init
#resume
#exit