Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
天中雨水
rt-thread
提交
8d0328c7
R
rt-thread
项目概览
天中雨水
/
rt-thread
该项目与 Fork 源项目分叉
Fork自
RT-Thread / rt-thread
通知
2
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8d0328c7
编写于
5月 23, 2018
作者:
L
luo jiao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[bsp][gd32303e-eval]add gcc support
上级
da6f9e2d
变更
16
隐藏空白更改
内联
并排
Showing
16 changed file
with
3351 addition
and
239 deletion
+3351
-239
bsp/gd32303e-eval/Libraries/CMSIS/GD/GD32F30x/Source/GCC/startup_gd32f30x_hd.S
...raries/CMSIS/GD/GD32F30x/Source/GCC/startup_gd32f30x_hd.S
+271
-0
bsp/gd32303e-eval/Libraries/SConscript
bsp/gd32303e-eval/Libraries/SConscript
+1
-4
bsp/gd32303e-eval/README.md
bsp/gd32303e-eval/README.md
+2
-1
bsp/gd32303e-eval/RTE/_rt-thread_gd32f30x/RTE_Components.h
bsp/gd32303e-eval/RTE/_rt-thread_gd32f30x/RTE_Components.h
+20
-0
bsp/gd32303e-eval/applications/main.c
bsp/gd32303e-eval/applications/main.c
+2
-2
bsp/gd32303e-eval/cconfig.h
bsp/gd32303e-eval/cconfig.h
+18
-0
bsp/gd32303e-eval/drivers/board.c
bsp/gd32303e-eval/drivers/board.c
+11
-12
bsp/gd32303e-eval/drivers/board.h
bsp/gd32303e-eval/drivers/board.h
+0
-27
bsp/gd32303e-eval/drivers/drv_gpio.c
bsp/gd32303e-eval/drivers/drv_gpio.c
+2
-2
bsp/gd32303e-eval/drivers/drv_i2c.c
bsp/gd32303e-eval/drivers/drv_i2c.c
+153
-153
bsp/gd32303e-eval/drivers/drv_spi.c
bsp/gd32303e-eval/drivers/drv_spi.c
+10
-10
bsp/gd32303e-eval/drivers/drv_usart.c
bsp/gd32303e-eval/drivers/drv_usart.c
+23
-24
bsp/gd32303e-eval/gd32_rom.ld
bsp/gd32303e-eval/gd32_rom.ld
+1
-1
bsp/gd32303e-eval/project.ewd
bsp/gd32303e-eval/project.ewd
+2834
-0
bsp/gd32303e-eval/project.uvoptx
bsp/gd32303e-eval/project.uvoptx
+1
-1
bsp/gd32303e-eval/rtconfig.py
bsp/gd32303e-eval/rtconfig.py
+2
-2
未找到文件。
bsp/gd32303e-eval/Libraries/CMSIS/GD/GD32F30x/Source/GCC/startup_gd32f30x_hd.S
0 → 100644
浏览文件 @
8d0328c7
;/*
; * File : startup_gd32f30x_hd.s
; * This file is part of RT-Thread RTOS
; * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team
; *
; * This program is free software; you can redistribute it and/or modify
; * it under the terms of the GNU General Public License as published by
; * the Free Software Foundation; either version 2 of the License, or
; * (at your option) any later version.
; *
; * This program is distributed in the hope that it will be useful,
; * but WITHOUT ANY WARRANTY; without even the implied warranty of
; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; * GNU General Public License for more details.
; *
; * You should have received a copy of the GNU General Public License along
; * with this program; if not, write to the Free Software Foundation, Inc.,
; * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
; *
; * Change Logs:
; * Date Author Notes
; * 2018-05-22 tanek first implementation
; */
.
syntax
unified
.
cpu
cortex
-
m4
.
fpu
softvfp
.
thumb
.
global
g_pfnVectors
.
global
Default_Handler
.
section
.
isr_vector
,
"a"
,%
progbits
.
type
g_pfnVectors
,
%
object
g_pfnVectors
:
.
word
_estack
//
Top
of
Stack
.
word
Reset_Handler
//
Reset
Handler
.
word
NMI_Handler
//
NMI
Handler
.
word
HardFault_Handler
//
Hard
Fault
Handler
.
word
MemManage_Handler
//
MPU
Fault
Handler
.
word
BusFault_Handler
//
Bus
Fault
Handler
.
word
UsageFault_Handler
//
Usage
Fault
Handler
.
word
0
//
Reserved
.
word
0
//
Reserved
.
word
0
//
Reserved
.
word
0
//
Reserved
.
word
SVC_Handler
//
SVCall
Handler
.
word
DebugMon_Handler
//
Debug
Monitor
Handler
.
word
0
//
Reserved
.
word
PendSV_Handler
//
PendSV
Handler
.
word
SysTick_Handler
//
SysTick
Handler
//
external
interrupts
handler
.
word
WWDGT_IRQHandler
//
16
:
Window
Watchdog
Timer
.
word
LVD_IRQHandler
//
17
:
LVD
through
EXTI
Line
detect
.
word
TAMPER_IRQHandler
//
18
:
Tamper
through
EXTI
Line
detect
.
word
RTC_IRQHandler
//
19
:
RTC
through
EXTI
Line
.
word
FMC_IRQHandler
//
20
:
FMC
.
word
RCU_CTC_IRQHandler
//
21
:
RCU
and
CTC
.
word
EXTI0_IRQHandler
//
22
:
EXTI
Line
0
.
word
EXTI1_IRQHandler
//
23
:
EXTI
Line
1
.
word
EXTI2_IRQHandler
//
24
:
EXTI
Line
2
.
word
EXTI3_IRQHandler
//
25
:
EXTI
Line
3
.
word
EXTI4_IRQHandler
//
26
:
EXTI
Line
4
.
word
DMA0_Channel0_IRQHandler
//
27
:
DMA0
Channel0
.
word
DMA0_Channel1_IRQHandler
//
28
:
DMA0
Channel1
.
word
DMA0_Channel2_IRQHandler
//
29
:
DMA0
Channel2
.
word
DMA0_Channel3_IRQHandler
//
30
:
DMA0
Channel3
.
word
DMA0_Channel4_IRQHandler
//
31
:
DMA0
Channel4
.
word
DMA0_Channel5_IRQHandler
//
32
:
DMA0
Channel5
.
word
DMA0_Channel6_IRQHandler
//
33
:
DMA0
Channel6
.
word
ADC0_1_IRQHandler
//
34
:
ADC0
and
ADC1
.
word
USBD_HP_CAN0_TX_IRQHandler
//
35
:
USBD
HP
and
CAN0
TX
.
word
USBD_LP_CAN0_RX0_IRQHandler
//
36
:
USBD
LP
and
CAN0
RX0
.
word
CAN0_RX1_IRQHandler
//
37
:
CAN0
RX1
.
word
CAN0_EWMC_IRQHandler
//
38
:
CAN0
EWMC
.
word
EXTI5_9_IRQHandler
//
39
:
EXTI5
to
EXTI9
.
word
TIMER0_BRK_IRQHandler
//
40
:
TIMER0
Break
.
word
TIMER0_UP_IRQHandler
//
41
:
TIMER0
Update
.
word
TIMER0_TRG_CMT_IRQHandler
//
42
:
TIMER0
Trigger
and
Commutation
.
word
TIMER0_Channel_IRQHandler
//
43
:
TIMER0
Channel
Capture
Compare
.
word
TIMER1_IRQHandler
//
44
:
TIMER1
.
word
TIMER2_IRQHandler
//
45
:
TIMER2
.
word
TIMER3_IRQHandler
//
46
:
TIMER3
.
word
I2C0_EV_IRQHandler
//
47
:
I2C0
Event
.
word
I2C0_ER_IRQHandler
//
48
:
I2C0
Error
.
word
I2C1_EV_IRQHandler
//
49
:
I2C1
Event
.
word
I2C1_ER_IRQHandler
//
50
:
I2C1
Error
.
word
SPI0_IRQHandler
//
51
:
SPI0
.
word
SPI1_IRQHandler
//
52
:
SPI1
.
word
USART0_IRQHandler
//
53
:
USART0
.
word
USART1_IRQHandler
//
54
:
USART1
.
word
USART2_IRQHandler
//
55
:
USART2
.
word
EXTI10_15_IRQHandler
//
56
:
EXTI10
to
EXTI15
.
word
RTC_Alarm_IRQHandler
//
57
:
RTC
Alarm
.
word
USBD_WKUP_IRQHandler
//
58
:
USBD
Wakeup
.
word
TIMER7_BRK_IRQHandler
//
59
:
TIMER7
Break
.
word
TIMER7_UP_IRQHandler
//
60
:
TIMER7
Update
.
word
TIMER7_TRG_CMT_IRQHandler
//
61
:
TIMER7
Trigger
and
Commutation
.
word
TIMER7_Channel_IRQHandler
//
62
:
TIMER7
Channel
Capture
Compare
.
word
ADC2_IRQHandler
//
63
:
ADC2
.
word
EXMC_IRQHandler
//
64
:
EXMC
.
word
SDIO_IRQHandler
//
65
:
SDIO
.
word
TIMER4_IRQHandler
//
66
:
TIMER4
.
word
SPI2_IRQHandler
//
67
:
SPI2
.
word
UART3_IRQHandler
//
68
:
UART3
.
word
UART4_IRQHandler
//
69
:
UART4
.
word
TIMER5_IRQHandler
//
70
:
TIMER5
.
word
TIMER6_IRQHandler
//
71
:
TIMER6
.
word
DMA1_Channel0_IRQHandler
//
72
:
DMA1
Channel0
.
word
DMA1_Channel1_IRQHandler
//
73
:
DMA1
Channel1
.
word
DMA1_Channel2_IRQHandler
//
74
:
DMA1
Channel2
.
word
DMA1_Channel3_4_IRQHandler
//
75
:
DMA1
Channel3
and
Channel4
.
size
g_pfnVectors
,
.
-
g_pfnVectors
.
section
.
text
.
Reset_Handler
.
weak
Reset_Handler
.
type
Reset_Handler
,
%
function
Reset_Handler
:
ldr
r1
,
=
_sidata
ldr
r2
,
=
_sdata
ldr
r3
,
=
_edata
subs
r3
,
r2
ble
fill_bss_start
loop_copy_data
:
subs
r3
,
#
4
ldr
r0
,
[
r1
,
r3
]
str
r0
,
[
r2
,
r3
]
bgt
loop_copy_data
fill_bss_start
:
ldr
r1
,
=
__bss_start
ldr
r2
,
=
__bss_end
movs
r0
,
0
subs
r2
,
r1
ble
startup_enter
loop_fill_bss
:
subs
r2
,
#
4
str
r0
,
[
r1
,
r2
]
bgt
loop_fill_bss
startup_enter
:
bl
SystemInit
bl
entry
/
*
Exception
Handlers
*/
.
weak
NMI_Handler
.
type
NMI_Handler
,
%
function
NMI_Handler
:
b
.
.
size
NMI_Handler
,
.
-
NMI_Handler
.
weak
MemManage_Handler
.
type
MemManage_Handler
,
%
function
MemManage_Handler
:
b
.
.
size
MemManage_Handler
,
.
-
MemManage_Handler
.
weak
BusFault_Handler
.
type
BusFault_Handler
,
%
function
BusFault_Handler
:
b
.
.
size
BusFault_Handler
,
.
-
BusFault_Handler
.
weak
UsageFault_Handler
.
type
UsageFault_Handler
,
%
function
UsageFault_Handler
:
b
.
.
size
UsageFault_Handler
,
.
-
UsageFault_Handler
.
weak
SVC_Handler
.
type
SVC_Handler
,
%
function
SVC_Handler
:
b
.
.
size
SVC_Handler
,
.
-
SVC_Handler
.
weak
DebugMon_Handler
.
type
DebugMon_Handler
,
%
function
DebugMon_Handler
:
b
.
.
size
DebugMon_Handler
,
.
-
DebugMon_Handler
.
weak
PendSV_Handler
.
type
PendSV_Handler
,
%
function
PendSV_Handler
:
b
.
.
size
PendSV_Handler
,
.
-
PendSV_Handler
.
weak
SysTick_Handler
.
type
SysTick_Handler
,
%
function
SysTick_Handler
:
b
.
.
size
SysTick_Handler
,
.
-
SysTick_Handler
/
*
IQR
Handler
*/
.
section
.
text
.
Default_Handler
,
"ax"
,%
progbits
.
type
Default_Handler
,
%
function
Default_Handler
:
b
.
.
size
Default_Handler
,
.
-
Default_Handler
.
macro
IRQ
handler
.
weak
\
handler
.
set
\
handler
,
Default_Handler
.
endm
IRQ
WWDGT_IRQHandler
IRQ
LVD_IRQHandler
IRQ
TAMPER_IRQHandler
IRQ
RTC_IRQHandler
IRQ
FMC_IRQHandler
IRQ
RCU_CTC_IRQHandler
IRQ
EXTI0_IRQHandler
IRQ
EXTI1_IRQHandler
IRQ
EXTI2_IRQHandler
IRQ
EXTI3_IRQHandler
IRQ
EXTI4_IRQHandler
IRQ
DMA0_Channel0_IRQHandler
IRQ
DMA0_Channel1_IRQHandler
IRQ
DMA0_Channel2_IRQHandler
IRQ
DMA0_Channel3_IRQHandler
IRQ
DMA0_Channel4_IRQHandler
IRQ
DMA0_Channel5_IRQHandler
IRQ
DMA0_Channel6_IRQHandler
IRQ
ADC0_1_IRQHandler
IRQ
USBD_HP_CAN0_TX_IRQHandler
IRQ
USBD_LP_CAN0_RX0_IRQHandler
IRQ
CAN0_RX1_IRQHandler
IRQ
CAN0_EWMC_IRQHandler
IRQ
EXTI5_9_IRQHandler
IRQ
TIMER0_BRK_IRQHandler
IRQ
TIMER0_UP_IRQHandler
IRQ
TIMER0_TRG_CMT_IRQHandler
IRQ
TIMER0_Channel_IRQHandler
IRQ
TIMER1_IRQHandler
IRQ
TIMER2_IRQHandler
IRQ
TIMER3_IRQHandler
IRQ
I2C0_EV_IRQHandler
IRQ
I2C0_ER_IRQHandler
IRQ
I2C1_EV_IRQHandler
IRQ
I2C1_ER_IRQHandler
IRQ
SPI0_IRQHandler
IRQ
SPI1_IRQHandler
IRQ
USART0_IRQHandler
IRQ
USART1_IRQHandler
IRQ
USART2_IRQHandler
IRQ
EXTI10_15_IRQHandler
IRQ
RTC_Alarm_IRQHandler
IRQ
USBD_WKUP_IRQHandler
IRQ
TIMER7_BRK_IRQHandler
IRQ
TIMER7_UP_IRQHandler
IRQ
TIMER7_TRG_CMT_IRQHandler
IRQ
TIMER7_Channel_IRQHandler
IRQ
ADC2_IRQHandler
IRQ
EXMC_IRQHandler
IRQ
SDIO_IRQHandler
IRQ
TIMER4_IRQHandler
IRQ
SPI2_IRQHandler
IRQ
UART3_IRQHandler
IRQ
UART4_IRQHandler
IRQ
TIMER5_IRQHandler
IRQ
TIMER6_IRQHandler
IRQ
DMA1_Channel0_IRQHandler
IRQ
DMA1_Channel1_IRQHandler
IRQ
DMA1_Channel2_IRQHandler
IRQ
DMA1_Channel3_4_IRQHandler
bsp/gd32303e-eval/Libraries/SConscript
浏览文件 @
8d0328c7
...
...
@@ -11,10 +11,7 @@ src += [cwd + '/CMSIS/GD/GD32F30x/Source/system_gd32f30x.c']
#add for startup script
if
rtconfig
.
CROSS_TOOL
==
'gcc'
:
print
(
'================================================='
)
print
(
'Not support gcc yet !'
)
print
(
'================================================='
)
exit
(
0
)
src
+=
[
cwd
+
'/CMSIS/GD/GD32F30x/Source/GCC/startup_gd32f30x_hd.s'
]
elif
rtconfig
.
CROSS_TOOL
==
'keil'
:
src
+=
[
cwd
+
'/CMSIS/GD/GD32F30x/Source/ARM/startup_gd32f30x_hd.s'
]
elif
rtconfig
.
CROSS_TOOL
==
'iar'
:
...
...
bsp/gd32303e-eval/README.md
浏览文件 @
8d0328c7
...
...
@@ -15,12 +15,13 @@
## 2. 编译说明
GD32303E-EVAL板级包支持MDK5
和IAR。
GD32303E-EVAL板级包支持MDK5
、IAR开发环境和GCC编译器,以下是具体版本信息:
| IDE/编译器 | 已测试版本 |
| -- | -- |
| MDK5 | MDK5.25 |
| IAR | IAR8.20 |
| GCC | GCC 5.4.1 20160919 (release) |
## 3. 烧写及执行
...
...
bsp/gd32303e-eval/RTE/_rt-thread_gd32f30x/RTE_Components.h
0 → 100644
浏览文件 @
8d0328c7
/*
* Auto generated Run-Time-Environment Component Configuration File
* *** Do not modify ! ***
*
* Project: 'project'
* Target: 'rt-thread_gd32f30x'
*/
#ifndef RTE_COMPONENTS_H
#define RTE_COMPONENTS_H
/*
* Define the Device Header File:
*/
#define CMSIS_device_header "gd32f30x.h"
#endif
/* RTE_COMPONENTS_H */
bsp/gd32303e-eval/applications/main.c
浏览文件 @
8d0328c7
...
...
@@ -16,9 +16,9 @@
int
main
(
void
)
{
/* user app entry */
/* user app entry */
return
0
;
return
0
;
}
...
...
bsp/gd32303e-eval/cconfig.h
0 → 100644
浏览文件 @
8d0328c7
#ifndef CCONFIG_H__
#define CCONFIG_H__
/* Automatically generated file; DO NOT EDIT. */
/* compiler configure file for RT-Thread in GCC*/
#define HAVE_NEWLIB_H 1
#define LIBC_VERSION "newlib 2.4.0"
#define HAVE_SYS_SIGNAL_H 1
#define HAVE_SYS_SELECT_H 1
#define HAVE_PTHREAD_H 1
#define HAVE_FDSET 1
#define HAVE_SIGACTION 1
#define GCC_VERSION "5.4.1 20160919 (release) [ARM/embedded-5-branch revision 240496]"
#define STDC "2011"
#endif
bsp/gd32303e-eval/drivers/board.c
浏览文件 @
8d0328c7
...
...
@@ -23,12 +23,12 @@
*/
void
Error_Handler
(
void
)
{
/* USER CODE BEGIN Error_Handler */
/* User can add his own implementation to report the HAL error return state */
while
(
1
)
{
}
/* USER CODE END Error_Handler */
/* USER CODE BEGIN Error_Handler */
/* User can add his own implementation to report the HAL error return state */
while
(
1
)
{
}
/* USER CODE END Error_Handler */
}
/** System Clock Configuration
...
...
@@ -54,13 +54,12 @@ void SysTick_Handler(void)
rt_interrupt_leave
();
}
/**
* This function will initial GD32 board.
*/
void
rt_hw_board_init
()
{
/* NVIC Configuration */
/* NVIC Configuration */
#define NVIC_VTOR_MASK 0x3FFFFF80
#ifdef VECT_TAB_RAM
/* Set the Vector Table base location at 0x10000000 */
...
...
@@ -69,17 +68,17 @@ void rt_hw_board_init()
/* Set the Vector Table base location at 0x08000000 */
SCB
->
VTOR
=
(
0x08000000
&
NVIC_VTOR_MASK
);
#endif
SystemClock_Config
();
#ifdef RT_USING_COMPONENTS_INIT
rt_components_board_init
();
#endif
#ifdef RT_USING_CONSOLE
rt_console_set_device
(
CONSOLE_DEVIC
E
);
rt_console_set_device
(
RT_CONSOLE_DEVICE_NAM
E
);
#endif
#ifdef RT_USING_HEAP
rt_system_heap_init
((
void
*
)
HEAP_BEGIN
,
(
void
*
)
HEAP_END
);
#endif
...
...
bsp/gd32303e-eval/drivers/board.h
浏览文件 @
8d0328c7
...
...
@@ -42,33 +42,6 @@ extern int __bss_end;
#define HEAP_END GD32_SRAM_END
// <o> Console on USART:
// <127=> no console
// <0=>USART 0 <1=>USART 1 <2=>USART 2 <3=> USART 3
// <4=>USART 4
// <i>Default: 0
#define GD32_CONSOLE_USART 0
void
rt_hw_board_init
(
void
);
#if GD32_CONSOLE_USART == 127
#define CONSOLE_DEVICE "no"
#elif GD32_CONSOLE_USART == 0
#define CONSOLE_DEVICE "uart0"
#elif GD32_CONSOLE_USART == 1
#define CONSOLE_DEVICE "uart1"
#elif GD32_CONSOLE_USART == 2
#define CONSOLE_DEVICE "uart2"
#elif GD32_CONSOLE_USART == 3
#define CONSOLE_DEVICE "uart3"
#elif GD32_CONSOLE_USART == 4
#define CONSOLE_DEVICE "uart4"
#endif
#define FINSH_DEVICE_NAME CONSOLE_DEVICE
void
Error_Handler
(
void
);
#endif
//*** <<< end of configuration section >>> ***
bsp/gd32303e-eval/drivers/drv_gpio.c
浏览文件 @
8d0328c7
...
...
@@ -459,7 +459,7 @@ rt_err_t gd32_pin_irq_enable(struct rt_device *device, rt_base_t pin, rt_uint32_
return
RT_EINVAL
;
}
rcu_periph_clock_enable
(
RCU_AF
);
rcu_periph_clock_enable
(
RCU_AF
);
/* enable and set interrupt priority */
nvic_irq_enable
(
irqmap
->
irqno
,
5U
,
0U
);
...
...
@@ -522,7 +522,7 @@ void GD32_GPIO_EXTI_IRQHandler(rt_int8_t exti_line)
if
(
RESET
!=
exti_interrupt_flag_get
((
exti_line_enum
)(
1
<<
exti_line
)))
{
pin_irq_hdr
(
exti_line
);
exti_interrupt_flag_clear
((
exti_line_enum
)(
1
<<
exti_line
));
exti_interrupt_flag_clear
((
exti_line_enum
)(
1
<<
exti_line
));
}
}
void
EXTI0_IRQHandler
(
void
)
...
...
bsp/gd32303e-eval/drivers/drv_i2c.c
浏览文件 @
8d0328c7
...
...
@@ -46,189 +46,189 @@
struct
gd32_i2c_bit_data
{
struct
{
rcu_periph_enum
clk
;
rt_uint32_t
port
;
rt_uint32_t
pin
;
}
scl
,
sda
;
struct
{
rcu_periph_enum
clk
;
rt_uint32_t
port
;
rt_uint32_t
pin
;
}
scl
,
sda
;
};
static
void
gpio_set_sda
(
void
*
data
,
rt_int32_t
state
)
{
struct
gd32_i2c_bit_data
*
bd
=
data
;
if
(
state
)
{
gpio_bit_set
(
bd
->
sda
.
port
,
bd
->
sda
.
pin
);
}
else
{
gpio_bit_reset
(
bd
->
sda
.
port
,
bd
->
sda
.
pin
);
}
struct
gd32_i2c_bit_data
*
bd
=
data
;
if
(
state
)
{
gpio_bit_set
(
bd
->
sda
.
port
,
bd
->
sda
.
pin
);
}
else
{
gpio_bit_reset
(
bd
->
sda
.
port
,
bd
->
sda
.
pin
);
}
}
static
void
gpio_set_scl
(
void
*
data
,
rt_int32_t
state
)
{
struct
gd32_i2c_bit_data
*
bd
=
data
;
if
(
state
)
{
gpio_bit_set
(
bd
->
scl
.
port
,
bd
->
scl
.
pin
);
}
else
{
gpio_bit_reset
(
bd
->
scl
.
port
,
bd
->
scl
.
pin
);
}
struct
gd32_i2c_bit_data
*
bd
=
data
;
if
(
state
)
{
gpio_bit_set
(
bd
->
scl
.
port
,
bd
->
scl
.
pin
);
}
else
{
gpio_bit_reset
(
bd
->
scl
.
port
,
bd
->
scl
.
pin
);
}
}
static
rt_int32_t
gpio_get_sda
(
void
*
data
)
{
struct
gd32_i2c_bit_data
*
bd
=
data
;
struct
gd32_i2c_bit_data
*
bd
=
data
;
return
gpio_input_bit_get
(
bd
->
sda
.
port
,
bd
->
sda
.
pin
);
return
gpio_input_bit_get
(
bd
->
sda
.
port
,
bd
->
sda
.
pin
);
}
static
rt_int32_t
gpio_get_scl
(
void
*
data
)
{
struct
gd32_i2c_bit_data
*
bd
=
data
;
struct
gd32_i2c_bit_data
*
bd
=
data
;
return
gpio_input_bit_get
(
bd
->
scl
.
port
,
bd
->
scl
.
pin
);
return
gpio_input_bit_get
(
bd
->
scl
.
port
,
bd
->
scl
.
pin
);
}
static
void
gpio_udelay
(
rt_uint32_t
us
)
{
int
i
=
(
rcu_clock_freq_get
(
CK_SYS
)
/
4000000
*
us
);
while
(
i
)
{
i
--
;
}
int
i
=
(
rcu_clock_freq_get
(
CK_SYS
)
/
4000000
*
us
);
while
(
i
)
{
i
--
;
}
}
static
void
drv_i2c_gpio_init
(
const
struct
gd32_i2c_bit_data
*
bd
)
{
rcu_periph_clock_enable
(
bd
->
sda
.
clk
);
rcu_periph_clock_enable
(
bd
->
scl
.
clk
);
gpio_init
(
bd
->
sda
.
port
,
GPIO_MODE_OUT_OD
,
GPIO_OSPEED_10MHZ
,
bd
->
sda
.
pin
);
gpio_init
(
bd
->
scl
.
port
,
GPIO_MODE_OUT_OD
,
GPIO_OSPEED_10MHZ
,
bd
->
scl
.
pin
);
rcu_periph_clock_enable
(
bd
->
sda
.
clk
);
rcu_periph_clock_enable
(
bd
->
scl
.
clk
);
gpio_init
(
bd
->
sda
.
port
,
GPIO_MODE_OUT_OD
,
GPIO_OSPEED_10MHZ
,
bd
->
sda
.
pin
);
gpio_init
(
bd
->
scl
.
port
,
GPIO_MODE_OUT_OD
,
GPIO_OSPEED_10MHZ
,
bd
->
scl
.
pin
);
gpio_bit_set
(
bd
->
sda
.
port
,
bd
->
sda
.
pin
);
gpio_bit_set
(
bd
->
scl
.
port
,
bd
->
scl
.
pin
);
gpio_bit_set
(
bd
->
sda
.
port
,
bd
->
sda
.
pin
);
gpio_bit_set
(
bd
->
scl
.
port
,
bd
->
scl
.
pin
);
}
#else
/* use hardware i2c */
struct
gd32_i2c_bus
{
struct
rt_i2c_bus_device
parent
;
rt_uint32_t
i2c_periph
;
struct
rt_i2c_bus_device
parent
;
rt_uint32_t
i2c_periph
;
};
static
int
gd32_i2c_read
(
rt_uint32_t
i2c_periph
,
rt_uint16_t
slave_address
,
rt_uint8_t
*
p_buffer
,
rt_uint16_t
data_byte
)
{
{
/* wait until I2C bus is idle */
while
(
i2c_flag_get
(
i2c_periph
,
I2C_FLAG_I2CBSY
));
/* send a start condition to I2C bus */
i2c_start_on_bus
(
i2c_periph
);
/* wait until SBSEND bit is set */
while
(
!
i2c_flag_get
(
i2c_periph
,
I2C_FLAG_SBSEND
));
/* send slave address to I2C bus */
i2c_master_addressing
(
i2c_periph
,
slave_address
<<
1
,
I2C_RECEIVER
);
/* wait until ADDSEND bit is set */
while
(
!
i2c_flag_get
(
i2c_periph
,
I2C_FLAG_ADDSEND
));
/* clear the ADDSEND bit */
i2c_flag_clear
(
i2c_periph
,
I2C_FLAG_ADDSEND
);
if
(
1
==
data_byte
){
/* disable acknowledge */
i2c_ack_config
(
i2c_periph
,
I2C_ACK_DISABLE
);
/* send a stop condition to I2C bus */
i2c_stop_on_bus
(
i2c_periph
);
}
if
(
1
==
data_byte
){
/* disable acknowledge */
i2c_ack_config
(
i2c_periph
,
I2C_ACK_DISABLE
);
/* send a stop condition to I2C bus */
i2c_stop_on_bus
(
i2c_periph
);
}
/* while there is data to be read */
while
(
data_byte
)
{
{
/* wait until the RBNE bit is set and clear it */
if
(
i2c_flag_get
(
i2c_periph
,
I2C_FLAG_RBNE
))
{
/* read a byte from the EEPROM */
*
p_buffer
=
i2c_data_receive
(
i2c_periph
);
/* point to the next location where the byte read will be saved */
p_buffer
++
;
/* decrement the read bytes counter */
data_byte
--
;
if
(
1
==
data_byte
)
if
(
1
==
data_byte
)
{
/* disable acknowledge */
i2c_ack_config
(
i2c_periph
,
I2C_ACK_DISABLE
);
/* send a stop condition to I2C bus */
i2c_stop_on_bus
(
i2c_periph
);
}
/* disable acknowledge */
i2c_ack_config
(
i2c_periph
,
I2C_ACK_DISABLE
);
/* send a stop condition to I2C bus */
i2c_stop_on_bus
(
i2c_periph
);
}
}
}
/* wait until the stop condition is finished */
while
(
I2C_CTL0
(
i2c_periph
)
&
0x0200
);
/* enable acknowledge */
i2c_ack_config
(
i2c_periph
,
I2C_ACK_ENABLE
);
i2c_ackpos_config
(
i2c_periph
,
I2C_ACKPOS_CURRENT
);
return
0
;
}
static
int
gd32_i2c_write
(
rt_uint32_t
i2c_periph
,
uint16_t
slave_address
,
uint8_t
*
p_buffer
,
uint16_t
data_byte
)
{
{
/* wait until I2C bus is idle */
while
(
i2c_flag_get
(
i2c_periph
,
I2C_FLAG_I2CBSY
));
/* send a start condition to I2C bus */
i2c_start_on_bus
(
i2c_periph
);
/* wait until SBSEND bit is set */
while
(
!
i2c_flag_get
(
i2c_periph
,
I2C_FLAG_SBSEND
));
/* send slave address to I2C bus */
i2c_master_addressing
(
i2c_periph
,
slave_address
<<
1
,
I2C_TRANSMITTER
);
/* wait until ADDSEND bit is set */
while
(
!
i2c_flag_get
(
i2c_periph
,
I2C_FLAG_ADDSEND
));
/* clear the ADDSEND bit */
i2c_flag_clear
(
i2c_periph
,
I2C_FLAG_ADDSEND
);
/* wait until the transmit data buffer is empty */
while
(
SET
!=
i2c_flag_get
(
i2c_periph
,
I2C_FLAG_TBE
));
/* while there is data to be read */
while
(
data_byte
)
{
{
i2c_data_transmit
(
i2c_periph
,
*
p_buffer
);
/* point to the next byte to be written */
p_buffer
++
;
/* decrement the write bytes counter */
data_byte
--
;
/* decrement the write bytes counter */
data_byte
--
;
/* wait until BTC bit is set */
while
(
!
i2c_flag_get
(
i2c_periph
,
I2C_FLAG_BTC
));
}
/* send a stop condition to I2C bus */
/* send a stop condition to I2C bus */
i2c_stop_on_bus
(
i2c_periph
);
/* wait until the stop condition is finished */
while
(
I2C_CTL0
(
i2c_periph
)
&
0x0200
);
return
0
;
}
...
...
@@ -244,14 +244,14 @@ static rt_size_t gd32_i2c_xfer(struct rt_i2c_bus_device *bus, struct rt_i2c_msg
{
msg
=
&
msgs
[
i
];
if
(
msg
->
flags
&
RT_I2C_ADDR_10BIT
)
{
i2c_mode_addr_config
(
gd32_i2c
->
i2c_periph
,
I2C_I2CMODE_ENABLE
,
I2C_ADDFORMAT_10BITS
,
0
);
}
else
{
i2c_mode_addr_config
(
gd32_i2c
->
i2c_periph
,
I2C_I2CMODE_ENABLE
,
I2C_ADDFORMAT_7BITS
,
0
);
}
if
(
msg
->
flags
&
RT_I2C_ADDR_10BIT
)
{
i2c_mode_addr_config
(
gd32_i2c
->
i2c_periph
,
I2C_I2CMODE_ENABLE
,
I2C_ADDFORMAT_10BITS
,
0
);
}
else
{
i2c_mode_addr_config
(
gd32_i2c
->
i2c_periph
,
I2C_I2CMODE_ENABLE
,
I2C_ADDFORMAT_7BITS
,
0
);
}
if
(
msg
->
flags
&
RT_I2C_RD
)
{
if
(
gd32_i2c_read
(
gd32_i2c
->
i2c_periph
,
msg
->
addr
,
msg
->
buf
,
msg
->
len
)
!=
0
)
...
...
@@ -282,7 +282,7 @@ static const struct rt_i2c_bus_device_ops i2c_ops =
{
gd32_i2c_xfer
,
RT_NULL
,
RT_NULL
RT_NULL
};
#endif
/* RT_USING_I2C_BITOPS */
...
...
@@ -290,89 +290,89 @@ static const struct rt_i2c_bus_device_ops i2c_ops =
int
rt_hw_i2c_init
(
void
)
{
#ifdef RT_USING_I2C_BITOPS
{
static
struct
rt_i2c_bus_device
i2c_device
;
static
const
struct
gd32_i2c_bit_data
_i2c_bdata
=
{
/* SCL */
{
I2C_SCL_CLK
,
I2C_SCL_PORT
,
I2C_SCL_PIN
},
/* SDA */
{
I2C_SDA_CLK
,
I2C_SDA_PORT
,
I2C_SDA_PIN
},
};
static
const
struct
rt_i2c_bit_ops
_i2c_bit_ops
=
{
(
void
*
)
&
_i2c_bdata
,
gpio_set_sda
,
gpio_set_scl
,
gpio_get_sda
,
gpio_get_scl
,
gpio_udelay
,
1
,
100
};
drv_i2c_gpio_init
(
&
_i2c_bdata
);
i2c_device
.
priv
=
(
void
*
)
&
_i2c_bit_ops
;
rt_i2c_bit_add_bus
(
&
i2c_device
,
I2C_BUS_NAME
);
}
{
static
struct
rt_i2c_bus_device
i2c_device
;
static
const
struct
gd32_i2c_bit_data
_i2c_bdata
=
{
/* SCL */
{
I2C_SCL_CLK
,
I2C_SCL_PORT
,
I2C_SCL_PIN
},
/* SDA */
{
I2C_SDA_CLK
,
I2C_SDA_PORT
,
I2C_SDA_PIN
},
};
static
const
struct
rt_i2c_bit_ops
_i2c_bit_ops
=
{
(
void
*
)
&
_i2c_bdata
,
gpio_set_sda
,
gpio_set_scl
,
gpio_get_sda
,
gpio_get_scl
,
gpio_udelay
,
1
,
100
};
drv_i2c_gpio_init
(
&
_i2c_bdata
);
i2c_device
.
priv
=
(
void
*
)
&
_i2c_bit_ops
;
rt_i2c_bit_add_bus
(
&
i2c_device
,
I2C_BUS_NAME
);
}
#else
/* register hardware I2C */
#ifdef RT_USING_I2C0
#define I2C0_SPEED 100000
static
struct
gd32_i2c_bus
gd32_i2c0
;
/* enable GPIOB clock */
rcu_periph_clock_enable
(
RCU_GPIOB
);
static
struct
gd32_i2c_bus
gd32_i2c0
;
/* enable GPIOB clock */
rcu_periph_clock_enable
(
RCU_GPIOB
);
/* connect PB6 to I2C0_SCL, PB7 to I2C0_SDA */
gpio_init
(
GPIOB
,
GPIO_MODE_AF_OD
,
GPIO_OSPEED_50MHZ
,
GPIO_PIN_6
|
GPIO_PIN_7
);
/* connect PB6 to I2C0_SCL, PB7 to I2C0_SDA */
gpio_init
(
GPIOB
,
GPIO_MODE_AF_OD
,
GPIO_OSPEED_50MHZ
,
GPIO_PIN_6
|
GPIO_PIN_7
);
/* enable I2C clock */
rcu_periph_clock_enable
(
RCU_I2C0
);
/* configure I2C clock */
i2c_clock_config
(
I2C0
,
I2C0_SPEED
,
I2C_DTCY_2
);
/* enable I2C clock */
rcu_periph_clock_enable
(
RCU_I2C0
);
/* configure I2C clock */
i2c_clock_config
(
I2C0
,
I2C0_SPEED
,
I2C_DTCY_2
);
i2c_enable
(
I2C0
);
/* enable acknowledge */
i2c_ack_config
(
I2C0
,
I2C_ACK_ENABLE
);
i2c_enable
(
I2C0
);
/* enable acknowledge */
i2c_ack_config
(
I2C0
,
I2C_ACK_ENABLE
);
rt_memset
((
void
*
)
&
gd32_i2c0
,
0
,
sizeof
(
struct
gd32_i2c_bus
));
gd32_i2c0
.
parent
.
ops
=
&
i2c_ops
;
gd32_i2c0
.
i2c_periph
=
I2C0
;
rt_i2c_bus_device_register
(
&
gd32_i2c0
.
parent
,
"i2c0"
);
rt_memset
((
void
*
)
&
gd32_i2c0
,
0
,
sizeof
(
struct
gd32_i2c_bus
));
gd32_i2c0
.
parent
.
ops
=
&
i2c_ops
;
gd32_i2c0
.
i2c_periph
=
I2C0
;
rt_i2c_bus_device_register
(
&
gd32_i2c0
.
parent
,
"i2c0"
);
#endif
#ifdef RT_USING_I2C1
#define I2C1_SPEED 100000
static
struct
gd32_i2c_bus
gd32_i2c1
;
/* enable GPIOB clock */
rcu_periph_clock_enable
(
RCU_GPIOB
);
static
struct
gd32_i2c_bus
gd32_i2c1
;
/* enable GPIOB clock */
rcu_periph_clock_enable
(
RCU_GPIOB
);
/* connect PB10 to I2C1_SCL, PB11 to I2C1_SDA */
gpio_init
(
GPIOB
,
GPIO_MODE_AF_OD
,
GPIO_OSPEED_50MHZ
,
GPIO_PIN_10
|
GPIO_PIN_11
);
/* connect PB10 to I2C1_SCL, PB11 to I2C1_SDA */
gpio_init
(
GPIOB
,
GPIO_MODE_AF_OD
,
GPIO_OSPEED_50MHZ
,
GPIO_PIN_10
|
GPIO_PIN_11
);
/* enable I2C clock */
rcu_periph_clock_enable
(
RCU_I2C1
);
/* configure I2C clock */
i2c_clock_config
(
I2C1
,
I2C1_SPEED
,
I2C_DTCY_2
);
/* enable I2C clock */
rcu_periph_clock_enable
(
RCU_I2C1
);
/* configure I2C clock */
i2c_clock_config
(
I2C1
,
I2C1_SPEED
,
I2C_DTCY_2
);
i2c_enable
(
I2C1
);
/* enable acknowledge */
i2c_ack_config
(
I2C1
,
I2C_ACK_ENABLE
);
i2c_enable
(
I2C1
);
/* enable acknowledge */
i2c_ack_config
(
I2C1
,
I2C_ACK_ENABLE
);
rt_memset
((
void
*
)
&
gd32_i2c1
,
0
,
sizeof
(
struct
gd32_i2c_bus
));
gd32_i2c1
.
parent
.
ops
=
&
i2c_ops
;
gd32_i2c1
.
i2c_periph
=
I2C1
;
rt_i2c_bus_device_register
(
&
gd32_i2c1
.
parent
,
"i2c1"
);
rt_memset
((
void
*
)
&
gd32_i2c1
,
0
,
sizeof
(
struct
gd32_i2c_bus
));
gd32_i2c1
.
parent
.
ops
=
&
i2c_ops
;
gd32_i2c1
.
i2c_periph
=
I2C1
;
rt_i2c_bus_device_register
(
&
gd32_i2c1
.
parent
,
"i2c1"
);
#endif
#endif
/* RT_USING_I2C_BITOPS */
return
0
;
return
0
;
}
INIT_DEVICE_EXPORT
(
rt_hw_i2c_init
);
...
...
bsp/gd32303e-eval/drivers/drv_spi.c
浏览文件 @
8d0328c7
...
...
@@ -29,7 +29,7 @@
#ifdef DEBUG
#define DEBUG_PRINTF(...) rt_kprintf(__VA_ARGS__)
#else
#define DEBUG_PRINTF(...)
#define DEBUG_PRINTF(...)
#endif
/* private rt-thread spi ops function */
...
...
@@ -48,8 +48,8 @@ static rt_err_t configure(struct rt_spi_device* device, struct rt_spi_configurat
rt_uint32_t
spi_periph
=
(
rt_uint32_t
)
device
->
bus
->
parent
.
user_data
;
RT_ASSERT
(
device
!=
RT_NULL
);
RT_ASSERT
(
configuration
!=
RT_NULL
);
RT_ASSERT
(
device
!=
RT_NULL
);
RT_ASSERT
(
configuration
!=
RT_NULL
);
if
(
configuration
->
data_width
<=
8
)
{
...
...
@@ -127,10 +127,10 @@ static rt_err_t configure(struct rt_spi_device* device, struct rt_spi_configurat
break
;
case
RT_SPI_MODE_1
:
spi_init_struct
.
clock_polarity_phase
=
SPI_CK_PL_LOW_PH_2EDGE
;
break
;
break
;
case
RT_SPI_MODE_2
:
spi_init_struct
.
clock_polarity_phase
=
SPI_CK_PL_HIGH_PH_1EDGE
;
break
;
break
;
case
RT_SPI_MODE_3
:
spi_init_struct
.
clock_polarity_phase
=
SPI_CK_PL_HIGH_PH_2EDGE
;
break
;
...
...
@@ -260,9 +260,9 @@ int gd32_hw_spi_init(void)
#ifdef RT_USING_SPI0
static
struct
rt_spi_bus
spi_bus0
;
spi_bus0
.
parent
.
user_data
=
(
void
*
)
SPI0
;
result
=
rt_spi_bus_register
(
&
spi_bus0
,
"spi0"
,
&
gd32_spi_ops
);
rcu_periph_clock_enable
(
RCU_GPIOA
);
rcu_periph_clock_enable
(
RCU_SPI0
);
/* SPI0_SCK(PA5), SPI0_MISO(PA6) and SPI0_MOSI(PA7) GPIO pin configuration */
...
...
@@ -274,8 +274,8 @@ int gd32_hw_spi_init(void)
static
struct
rt_spi_bus
spi_bus1
;
spi_bus1
.
parent
.
user_data
=
(
void
*
)
SPI1
;
result
=
rt_spi_bus_register
(
&
spi_bus1
,
"spi1"
,
&
gd32_spi_ops
);
result
=
rt_spi_bus_register
(
&
spi_bus1
,
"spi1"
,
&
gd32_spi_ops
);
rcu_periph_clock_enable
(
RCU_SPI1
);
rcu_periph_clock_enable
(
RCU_GPIOB
);
...
...
@@ -291,7 +291,7 @@ int gd32_hw_spi_init(void)
rcu_periph_clock_enable
(
RCU_SPI2
);
rcu_periph_clock_enable
(
RCU_GPIOB
);
/* SPI2_SCK(PB3), SPI2_MISO(PB4) and SPI2_MOSI(PB5) GPIO pin configuration */
gpio_init
(
GPIOB
,
GPIO_MODE_AF_PP
,
GPIO_OSPEED_50MHZ
,
GPIO_PIN_3
|
GPIO_PIN_5
);
gpio_init
(
GPIOB
,
GPIO_MODE_IN_FLOATING
,
GPIO_OSPEED_50MHZ
,
GPIO_PIN_4
);
...
...
bsp/gd32303e-eval/drivers/drv_usart.c
浏览文件 @
8d0328c7
...
...
@@ -36,17 +36,17 @@
// Todo: compress uart info
struct
gd32_uart
{
uint32_t
uart_periph
;
IRQn_Type
irqn
;
rcu_periph_enum
per_clk
;
rcu_periph_enum
tx_gpio_clk
;
rcu_periph_enum
rx_gpio_clk
;
uint32_t
tx_port
;
uint16_t
tx_pin
;
uint32_t
rx_port
;
uint16_t
rx_pin
;
struct
rt_serial_device
*
serial
;
uint32_t
uart_periph
;
IRQn_Type
irqn
;
rcu_periph_enum
per_clk
;
rcu_periph_enum
tx_gpio_clk
;
rcu_periph_enum
rx_gpio_clk
;
uint32_t
tx_port
;
uint16_t
tx_pin
;
uint32_t
rx_port
;
uint16_t
rx_pin
;
struct
rt_serial_device
*
serial
;
char
*
device_name
;
};
...
...
@@ -137,8 +137,8 @@ static const struct gd32_uart uarts[] = {
USART0
,
// uart peripheral index
USART0_IRQn
,
// uart iqrn
RCU_USART0
,
RCU_GPIOA
,
RCU_GPIOA
,
// periph clock, tx gpio clock, rt gpio clock
GPIOA
,
GPIO_PIN_9
,
// tx port, tx pin
GPIOA
,
GPIO_PIN_10
,
// rx port, rx pin
GPIOA
,
GPIO_PIN_9
,
// tx port, tx pin
GPIOA
,
GPIO_PIN_10
,
// rx port, rx pin
&
serial0
,
"uart0"
,
},
...
...
@@ -149,8 +149,8 @@ static const struct gd32_uart uarts[] = {
USART1
,
// uart peripheral index
USART1_IRQn
,
// uart iqrn
RCU_USART1
,
RCU_GPIOA
,
RCU_GPIOA
,
// periph clock, tx gpio clock, rt gpio clock
GPIOA
,
GPIO_PIN_2
,
// tx port, tx pin
GPIOA
,
GPIO_PIN_3
,
// rx port, rx pin
GPIOA
,
GPIO_PIN_2
,
// tx port, tx pin
GPIOA
,
GPIO_PIN_3
,
// rx port, rx pin
&
serial1
,
"uart1"
,
},
...
...
@@ -161,8 +161,8 @@ static const struct gd32_uart uarts[] = {
USART2
,
// uart peripheral index
USART2_IRQn
,
// uart iqrn
RCU_USART2
,
RCU_GPIOB
,
RCU_GPIOB
,
// periph clock, tx gpio clock, rt gpio clock
GPIOB
,
GPIO_PIN_10
,
// tx port, tx alternate, tx pin
GPIOB
,
GPIO_PIN_11
,
// rx port, rx alternate, rx pin
GPIOB
,
GPIO_PIN_10
,
// tx port, tx alternate, tx pin
GPIOB
,
GPIO_PIN_11
,
// rx port, rx alternate, rx pin
&
serial2
,
"uart2"
,
},
...
...
@@ -173,8 +173,8 @@ static const struct gd32_uart uarts[] = {
UART3
,
// uart peripheral index
UART3_IRQn
,
// uart iqrn
RCU_UART3
,
RCU_GPIOC
,
RCU_GPIOC
,
// periph clock, tx gpio clock, rt gpio clock
GPIOC
,
GPIO_PIN_10
,
// tx port, tx alternate, tx pin
GPIOC
,
GPIO_PIN_11
,
// rx port, rx alternate, rx pin
GPIOC
,
GPIO_PIN_10
,
// tx port, tx alternate, tx pin
GPIOC
,
GPIO_PIN_11
,
// rx port, rx alternate, rx pin
&
serial3
,
"uart3"
,
},
...
...
@@ -185,8 +185,8 @@ static const struct gd32_uart uarts[] = {
UART4
,
// uart peripheral index
UART4_IRQn
,
// uart iqrn
RCU_UART4
,
RCU_GPIOC
,
RCU_GPIOD
,
// periph clock, tx gpio clock, rt gpio clock
GPIOC
,
GPIO_PIN_12
,
// tx port, tx alternate, tx pin
GPIOD
,
GPIO_PIN_2
,
// rx port, rx alternate, rx pin
GPIOC
,
GPIO_PIN_12
,
// tx port, tx alternate, tx pin
GPIOD
,
GPIO_PIN_2
,
// rx port, rx alternate, rx pin
&
serial4
,
"uart4"
,
},
...
...
@@ -296,7 +296,6 @@ static rt_err_t gd32_control(struct rt_serial_device *serial, int cmd, void *arg
/* enable interrupt */
usart_interrupt_enable
(
uart
->
uart_periph
,
USART_INT_RBNE
);
break
;
}
return
RT_EOK
;
...
...
@@ -355,14 +354,14 @@ static const struct rt_uart_ops gd32_uart_ops =
gd32_configure
,
gd32_control
,
gd32_putc
,
gd32_getc
,
gd32_getc
};
int
gd32_hw_usart_init
(
void
)
{
struct
serial_configure
config
=
RT_SERIAL_CONFIG_DEFAULT
;
int
i
;
for
(
i
=
0
;
i
<
sizeof
(
uarts
)
/
sizeof
(
uarts
[
0
]);
i
++
)
{
uarts
[
i
].
serial
->
ops
=
&
gd32_uart_ops
;
...
...
bsp/gd32303e-eval/gd32_rom.ld
浏览文件 @
8d0328c7
/*
* linker script for GD32F
4x
x with GNU ld
* linker script for GD32F
30
x with GNU ld
* bernard.xiong 2009-10-14
*/
...
...
bsp/gd32303e-eval/project.ewd
0 → 100644
浏览文件 @
8d0328c7
<?xml version="1.0" encoding="UTF-8"?>
<project>
<fileVersion>
3
</fileVersion>
<configuration>
<name>
Debug
</name>
<toolchain>
<name>
ARM
</name>
</toolchain>
<debug>
1
</debug>
<settings>
<name>
C-SPY
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
29
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
1
</debug>
<option>
<name>
CInput
</name>
<state>
1
</state>
</option>
<option>
<name>
CEndian
</name>
<state>
1
</state>
</option>
<option>
<name>
CProcessor
</name>
<state>
1
</state>
</option>
<option>
<name>
OCVariant
</name>
<state>
0
</state>
</option>
<option>
<name>
MacOverride
</name>
<state>
0
</state>
</option>
<option>
<name>
MacFile
</name>
<state></state>
</option>
<option>
<name>
MemOverride
</name>
<state>
0
</state>
</option>
<option>
<name>
MemFile
</name>
<state>
$TOOLKIT_DIR$\CONFIG\debugger\GD\GD32F303xE.ddf
</state>
</option>
<option>
<name>
RunToEnable
</name>
<state>
1
</state>
</option>
<option>
<name>
RunToName
</name>
<state>
main
</state>
</option>
<option>
<name>
CExtraOptionsCheck
</name>
<state>
0
</state>
</option>
<option>
<name>
CExtraOptions
</name>
<state></state>
</option>
<option>
<name>
CFpuProcessor
</name>
<state>
1
</state>
</option>
<option>
<name>
OCDDFArgumentProducer
</name>
<state></state>
</option>
<option>
<name>
OCDownloadSuppressDownload
</name>
<state>
0
</state>
</option>
<option>
<name>
OCDownloadVerifyAll
</name>
<state>
0
</state>
</option>
<option>
<name>
OCProductVersion
</name>
<state>
8.20.1.14181
</state>
</option>
<option>
<name>
OCDynDriverList
</name>
<state>
JLINK_ID
</state>
</option>
<option>
<name>
OCLastSavedByProductVersion
</name>
<state>
8.20.1.14181
</state>
</option>
<option>
<name>
UseFlashLoader
</name>
<state>
1
</state>
</option>
<option>
<name>
CLowLevel
</name>
<state>
1
</state>
</option>
<option>
<name>
OCBE8Slave
</name>
<state>
1
</state>
</option>
<option>
<name>
MacFile2
</name>
<state></state>
</option>
<option>
<name>
CDevice
</name>
<state>
1
</state>
</option>
<option>
<name>
FlashLoadersV3
</name>
<state>
$TOOLKIT_DIR$\config\flashloader\GD\FlashGD32F303xE.board
</state>
</option>
<option>
<name>
OCImagesSuppressCheck1
</name>
<state>
0
</state>
</option>
<option>
<name>
OCImagesPath1
</name>
<state></state>
</option>
<option>
<name>
OCImagesSuppressCheck2
</name>
<state>
0
</state>
</option>
<option>
<name>
OCImagesPath2
</name>
<state></state>
</option>
<option>
<name>
OCImagesSuppressCheck3
</name>
<state>
0
</state>
</option>
<option>
<name>
OCImagesPath3
</name>
<state></state>
</option>
<option>
<name>
OverrideDefFlashBoard
</name>
<state>
0
</state>
</option>
<option>
<name>
OCImagesOffset1
</name>
<state></state>
</option>
<option>
<name>
OCImagesOffset2
</name>
<state></state>
</option>
<option>
<name>
OCImagesOffset3
</name>
<state></state>
</option>
<option>
<name>
OCImagesUse1
</name>
<state>
0
</state>
</option>
<option>
<name>
OCImagesUse2
</name>
<state>
0
</state>
</option>
<option>
<name>
OCImagesUse3
</name>
<state>
0
</state>
</option>
<option>
<name>
OCDeviceConfigMacroFile
</name>
<state>
1
</state>
</option>
<option>
<name>
OCDebuggerExtraOption
</name>
<state>
1
</state>
</option>
<option>
<name>
OCAllMTBOptions
</name>
<state>
1
</state>
</option>
<option>
<name>
OCMulticoreNrOfCores
</name>
<state>
1
</state>
</option>
<option>
<name>
OCMulticoreMaster
</name>
<state>
0
</state>
</option>
<option>
<name>
OCMulticorePort
</name>
<state>
53461
</state>
</option>
<option>
<name>
OCMulticoreWorkspace
</name>
<state></state>
</option>
<option>
<name>
OCMulticoreSlaveProject
</name>
<state></state>
</option>
<option>
<name>
OCMulticoreSlaveConfiguration
</name>
<state></state>
</option>
<option>
<name>
OCDownloadExtraImage
</name>
<state>
1
</state>
</option>
<option>
<name>
OCAttachSlave
</name>
<state>
0
</state>
</option>
<option>
<name>
MassEraseBeforeFlashing
</name>
<state>
0
</state>
</option>
</data>
</settings>
<settings>
<name>
ARMSIM_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
1
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
1
</debug>
<option>
<name>
OCSimDriverInfo
</name>
<state>
1
</state>
</option>
<option>
<name>
OCSimEnablePSP
</name>
<state>
0
</state>
</option>
<option>
<name>
OCSimPspOverrideConfig
</name>
<state>
0
</state>
</option>
<option>
<name>
OCSimPspConfigFile
</name>
<state></state>
</option>
</data>
</settings>
<settings>
<name>
CADI_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
0
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
1
</debug>
<option>
<name>
CCadiMemory
</name>
<state>
1
</state>
</option>
<option>
<name>
Fast Model
</name>
<state></state>
</option>
<option>
<name>
CCADILogFileCheck
</name>
<state>
0
</state>
</option>
<option>
<name>
CCADILogFileEditB
</name>
<state>
$PROJ_DIR$\cspycomm.log
</state>
</option>
<option>
<name>
OCDriverInfo
</name>
<state>
1
</state>
</option>
</data>
</settings>
<settings>
<name>
CMSISDAP_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
4
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
1
</debug>
<option>
<name>
OCDriverInfo
</name>
<state>
1
</state>
</option>
<option>
<name>
OCIarProbeScriptFile
</name>
<state>
1
</state>
</option>
<option>
<name>
CMSISDAPResetList
</name>
<version>
1
</version>
<state>
10
</state>
</option>
<option>
<name>
CMSISDAPHWResetDuration
</name>
<state>
300
</state>
</option>
<option>
<name>
CMSISDAPHWResetDelay
</name>
<state>
200
</state>
</option>
<option>
<name>
CMSISDAPDoLogfile
</name>
<state>
0
</state>
</option>
<option>
<name>
CMSISDAPLogFile
</name>
<state>
$PROJ_DIR$\cspycomm.log
</state>
</option>
<option>
<name>
CMSISDAPInterfaceRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CMSISDAPInterfaceCmdLine
</name>
<state>
0
</state>
</option>
<option>
<name>
CMSISDAPMultiTargetEnable
</name>
<state>
0
</state>
</option>
<option>
<name>
CMSISDAPMultiTarget
</name>
<state>
0
</state>
</option>
<option>
<name>
CMSISDAPJtagSpeedList
</name>
<version>
0
</version>
<state>
0
</state>
</option>
<option>
<name>
CMSISDAPBreakpointRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CMSISDAPRestoreBreakpointsCheck
</name>
<state>
0
</state>
</option>
<option>
<name>
CMSISDAPUpdateBreakpointsEdit
</name>
<state>
_call_main
</state>
</option>
<option>
<name>
RDICatchReset
</name>
<state>
0
</state>
</option>
<option>
<name>
RDICatchUndef
</name>
<state>
1
</state>
</option>
<option>
<name>
RDICatchSWI
</name>
<state>
0
</state>
</option>
<option>
<name>
RDICatchData
</name>
<state>
1
</state>
</option>
<option>
<name>
RDICatchPrefetch
</name>
<state>
1
</state>
</option>
<option>
<name>
RDICatchIRQ
</name>
<state>
0
</state>
</option>
<option>
<name>
RDICatchFIQ
</name>
<state>
0
</state>
</option>
<option>
<name>
CatchCORERESET
</name>
<state>
0
</state>
</option>
<option>
<name>
CatchMMERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchNOCPERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchCHKERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchSTATERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchBUSERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchINTERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchSFERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchHARDERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchDummy
</name>
<state>
0
</state>
</option>
<option>
<name>
CMSISDAPMultiCPUEnable
</name>
<state>
0
</state>
</option>
<option>
<name>
CMSISDAPMultiCPUNumber
</name>
<state>
0
</state>
</option>
<option>
<name>
OCProbeCfgOverride
</name>
<state>
0
</state>
</option>
<option>
<name>
OCProbeConfig
</name>
<state></state>
</option>
<option>
<name>
CMSISDAPProbeConfigRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CMSISDAPSelectedCPUBehaviour
</name>
<state>
0
</state>
</option>
<option>
<name>
ICpuName
</name>
<state></state>
</option>
<option>
<name>
OCJetEmuParams
</name>
<state>
1
</state>
</option>
<option>
<name>
CCCMSISDAPUsbSerialNo
</name>
<state></state>
</option>
<option>
<name>
CCCMSISDAPUsbSerialNoSelect
</name>
<state>
0
</state>
</option>
</data>
</settings>
<settings>
<name>
GDBSERVER_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
0
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
1
</debug>
<option>
<name>
OCDriverInfo
</name>
<state>
1
</state>
</option>
<option>
<name>
TCPIP
</name>
<state>
aaa.bbb.ccc.ddd
</state>
</option>
<option>
<name>
DoLogfile
</name>
<state>
0
</state>
</option>
<option>
<name>
LogFile
</name>
<state>
$PROJ_DIR$\cspycomm.log
</state>
</option>
<option>
<name>
CCJTagBreakpointRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CCJTagDoUpdateBreakpoints
</name>
<state>
0
</state>
</option>
<option>
<name>
CCJTagUpdateBreakpoints
</name>
<state>
_call_main
</state>
</option>
</data>
</settings>
<settings>
<name>
IJET_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
8
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
1
</debug>
<option>
<name>
OCDriverInfo
</name>
<state>
1
</state>
</option>
<option>
<name>
OCIarProbeScriptFile
</name>
<state>
1
</state>
</option>
<option>
<name>
IjetResetList
</name>
<version>
1
</version>
<state>
10
</state>
</option>
<option>
<name>
IjetHWResetDuration
</name>
<state>
300
</state>
</option>
<option>
<name>
IjetHWResetDelay
</name>
<state>
200
</state>
</option>
<option>
<name>
IjetPowerFromProbe
</name>
<state>
1
</state>
</option>
<option>
<name>
IjetPowerRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetDoLogfile
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetLogFile
</name>
<state>
$PROJ_DIR$\cspycomm.log
</state>
</option>
<option>
<name>
IjetInterfaceRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetInterfaceCmdLine
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetMultiTargetEnable
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetMultiTarget
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetScanChainNonARMDevices
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetIRLength
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetJtagSpeedList
</name>
<version>
0
</version>
<state>
0
</state>
</option>
<option>
<name>
IjetProtocolRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetSwoPin
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetCpuClockEdit
</name>
<state></state>
</option>
<option>
<name>
IjetSwoPrescalerList
</name>
<version>
1
</version>
<state>
0
</state>
</option>
<option>
<name>
IjetBreakpointRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetRestoreBreakpointsCheck
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetUpdateBreakpointsEdit
</name>
<state>
_call_main
</state>
</option>
<option>
<name>
RDICatchReset
</name>
<state>
0
</state>
</option>
<option>
<name>
RDICatchUndef
</name>
<state>
1
</state>
</option>
<option>
<name>
RDICatchSWI
</name>
<state>
0
</state>
</option>
<option>
<name>
RDICatchData
</name>
<state>
1
</state>
</option>
<option>
<name>
RDICatchPrefetch
</name>
<state>
1
</state>
</option>
<option>
<name>
RDICatchIRQ
</name>
<state>
0
</state>
</option>
<option>
<name>
RDICatchFIQ
</name>
<state>
0
</state>
</option>
<option>
<name>
CatchCORERESET
</name>
<state>
0
</state>
</option>
<option>
<name>
CatchMMERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchNOCPERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchCHKERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchSTATERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchBUSERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchINTERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchSFERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchHARDERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchDummy
</name>
<state>
0
</state>
</option>
<option>
<name>
OCProbeCfgOverride
</name>
<state>
0
</state>
</option>
<option>
<name>
OCProbeConfig
</name>
<state></state>
</option>
<option>
<name>
IjetProbeConfigRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetMultiCPUEnable
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetMultiCPUNumber
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetSelectedCPUBehaviour
</name>
<state>
0
</state>
</option>
<option>
<name>
ICpuName
</name>
<state></state>
</option>
<option>
<name>
OCJetEmuParams
</name>
<state>
1
</state>
</option>
<option>
<name>
IjetPreferETB
</name>
<state>
1
</state>
</option>
<option>
<name>
IjetTraceSettingsList
</name>
<version>
0
</version>
<state>
0
</state>
</option>
<option>
<name>
IjetTraceSizeList
</name>
<version>
0
</version>
<state>
4
</state>
</option>
<option>
<name>
FlashBoardPathSlave
</name>
<state>
0
</state>
</option>
<option>
<name>
CCIjetUsbSerialNo
</name>
<state></state>
</option>
<option>
<name>
CCIjetUsbSerialNoSelect
</name>
<state>
0
</state>
</option>
</data>
</settings>
<settings>
<name>
JLINK_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
16
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
1
</debug>
<option>
<name>
JLinkSpeed
</name>
<state>
1000
</state>
</option>
<option>
<name>
CCJLinkDoLogfile
</name>
<state>
0
</state>
</option>
<option>
<name>
CCJLinkLogFile
</name>
<state>
$PROJ_DIR$\cspycomm.log
</state>
</option>
<option>
<name>
CCJLinkHWResetDelay
</name>
<state>
0
</state>
</option>
<option>
<name>
OCDriverInfo
</name>
<state>
1
</state>
</option>
<option>
<name>
JLinkInitialSpeed
</name>
<state>
1000
</state>
</option>
<option>
<name>
CCDoJlinkMultiTarget
</name>
<state>
0
</state>
</option>
<option>
<name>
CCScanChainNonARMDevices
</name>
<state>
0
</state>
</option>
<option>
<name>
CCJLinkMultiTarget
</name>
<state>
0
</state>
</option>
<option>
<name>
CCJLinkIRLength
</name>
<state>
0
</state>
</option>
<option>
<name>
CCJLinkCommRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CCJLinkTCPIP
</name>
<state>
aaa.bbb.ccc.ddd
</state>
</option>
<option>
<name>
CCJLinkSpeedRadioV2
</name>
<state>
0
</state>
</option>
<option>
<name>
CCUSBDevice
</name>
<version>
1
</version>
<state>
1
</state>
</option>
<option>
<name>
CCRDICatchReset
</name>
<state>
0
</state>
</option>
<option>
<name>
CCRDICatchUndef
</name>
<state>
0
</state>
</option>
<option>
<name>
CCRDICatchSWI
</name>
<state>
0
</state>
</option>
<option>
<name>
CCRDICatchData
</name>
<state>
0
</state>
</option>
<option>
<name>
CCRDICatchPrefetch
</name>
<state>
0
</state>
</option>
<option>
<name>
CCRDICatchIRQ
</name>
<state>
0
</state>
</option>
<option>
<name>
CCRDICatchFIQ
</name>
<state>
0
</state>
</option>
<option>
<name>
CCJLinkBreakpointRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CCJLinkDoUpdateBreakpoints
</name>
<state>
0
</state>
</option>
<option>
<name>
CCJLinkUpdateBreakpoints
</name>
<state>
_call_main
</state>
</option>
<option>
<name>
CCJLinkInterfaceRadio
</name>
<state>
1
</state>
</option>
<option>
<name>
CCJLinkResetList
</name>
<version>
6
</version>
<state>
7
</state>
</option>
<option>
<name>
CCJLinkInterfaceCmdLine
</name>
<state>
0
</state>
</option>
<option>
<name>
CCCatchCORERESET
</name>
<state>
0
</state>
</option>
<option>
<name>
CCCatchMMERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCCatchNOCPERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCCatchCHRERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCCatchSTATERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCCatchBUSERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCCatchINTERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCCatchSFERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCCatchHARDERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCCatchDummy
</name>
<state>
0
</state>
</option>
<option>
<name>
OCJLinkScriptFile
</name>
<state>
1
</state>
</option>
<option>
<name>
CCJLinkUsbSerialNo
</name>
<state></state>
</option>
<option>
<name>
CCTcpIpAlt
</name>
<version>
0
</version>
<state>
0
</state>
</option>
<option>
<name>
CCJLinkTcpIpSerialNo
</name>
<state></state>
</option>
<option>
<name>
CCCpuClockEdit
</name>
<state></state>
</option>
<option>
<name>
CCSwoClockAuto
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSwoClockEdit
</name>
<state>
2000
</state>
</option>
<option>
<name>
OCJLinkTraceSource
</name>
<state>
0
</state>
</option>
<option>
<name>
OCJLinkTraceSourceDummy
</name>
<state>
0
</state>
</option>
<option>
<name>
OCJLinkDeviceName
</name>
<state>
1
</state>
</option>
</data>
</settings>
<settings>
<name>
LMIFTDI_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
2
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
1
</debug>
<option>
<name>
OCDriverInfo
</name>
<state>
1
</state>
</option>
<option>
<name>
LmiftdiSpeed
</name>
<state>
500
</state>
</option>
<option>
<name>
CCLmiftdiDoLogfile
</name>
<state>
0
</state>
</option>
<option>
<name>
CCLmiftdiLogFile
</name>
<state>
$PROJ_DIR$\cspycomm.log
</state>
</option>
<option>
<name>
CCLmiFtdiInterfaceRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CCLmiFtdiInterfaceCmdLine
</name>
<state>
0
</state>
</option>
</data>
</settings>
<settings>
<name>
PEMICRO_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
3
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
1
</debug>
<option>
<name>
OCDriverInfo
</name>
<state>
1
</state>
</option>
<option>
<name>
CCJPEMicroShowSettings
</name>
<state>
0
</state>
</option>
<option>
<name>
DoLogfile
</name>
<state>
0
</state>
</option>
<option>
<name>
LogFile
</name>
<state>
$PROJ_DIR$\cspycomm.log
</state>
</option>
</data>
</settings>
<settings>
<name>
STLINK_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
4
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
1
</debug>
<option>
<name>
OCDriverInfo
</name>
<state>
1
</state>
</option>
<option>
<name>
CCSTLinkInterfaceRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkInterfaceCmdLine
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkResetList
</name>
<version>
3
</version>
<state>
0
</state>
</option>
<option>
<name>
CCCpuClockEdit
</name>
<state></state>
</option>
<option>
<name>
CCSwoClockAuto
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSwoClockEdit
</name>
<state>
2000
</state>
</option>
<option>
<name>
DoLogfile
</name>
<state>
0
</state>
</option>
<option>
<name>
LogFile
</name>
<state>
$PROJ_DIR$\cspycomm.log
</state>
</option>
<option>
<name>
CCSTLinkDoUpdateBreakpoints
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkUpdateBreakpoints
</name>
<state>
_call_main
</state>
</option>
<option>
<name>
CCSTLinkCatchCORERESET
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkCatchMMERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkCatchNOCPERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkCatchCHRERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkCatchSTATERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkCatchBUSERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkCatchINTERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkCatchSFERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkCatchHARDERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkCatchDummy
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkUsbSerialNo
</name>
<state></state>
</option>
<option>
<name>
CCSTLinkUsbSerialNoSelect
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkJtagSpeedList
</name>
<version>
0
</version>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkDAPNumber
</name>
<state></state>
</option>
<option>
<name>
CCSTLinkDebugAccessPortRadio
</name>
<state>
0
</state>
</option>
</data>
</settings>
<settings>
<name>
THIRDPARTY_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
0
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
1
</debug>
<option>
<name>
CThirdPartyDriverDll
</name>
<state>
###Uninitialized###
</state>
</option>
<option>
<name>
CThirdPartyLogFileCheck
</name>
<state>
0
</state>
</option>
<option>
<name>
CThirdPartyLogFileEditB
</name>
<state>
$PROJ_DIR$\cspycomm.log
</state>
</option>
<option>
<name>
OCDriverInfo
</name>
<state>
1
</state>
</option>
</data>
</settings>
<settings>
<name>
TIFET_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
1
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
1
</debug>
<option>
<name>
OCDriverInfo
</name>
<state>
1
</state>
</option>
<option>
<name>
CCMSPFetResetList
</name>
<version>
0
</version>
<state>
0
</state>
</option>
<option>
<name>
CCMSPFetInterfaceRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CCMSPFetInterfaceCmdLine
</name>
<state>
0
</state>
</option>
<option>
<name>
CCMSPFetTargetVccTypeDefault
</name>
<state>
0
</state>
</option>
<option>
<name>
CCMSPFetTargetVoltage
</name>
<state>
###Uninitialized###
</state>
</option>
<option>
<name>
CCMSPFetVCCDefault
</name>
<state>
1
</state>
</option>
<option>
<name>
CCMSPFetTargetSettlingtime
</name>
<state>
0
</state>
</option>
<option>
<name>
CCMSPFetRadioJtagSpeedType
</name>
<state>
1
</state>
</option>
<option>
<name>
CCMSPFetConnection
</name>
<version>
0
</version>
<state>
0
</state>
</option>
<option>
<name>
CCMSPFetUsbComPort
</name>
<state>
Automatic
</state>
</option>
<option>
<name>
CCMSPFetAllowAccessToBSL
</name>
<state>
0
</state>
</option>
<option>
<name>
CCMSPFetDoLogfile
</name>
<state>
0
</state>
</option>
<option>
<name>
CCMSPFetLogFile
</name>
<state>
$PROJ_DIR$\cspycomm.log
</state>
</option>
<option>
<name>
CCMSPFetRadioEraseFlash
</name>
<state>
1
</state>
</option>
</data>
</settings>
<settings>
<name>
XDS100_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
6
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
1
</debug>
<option>
<name>
OCDriverInfo
</name>
<state>
1
</state>
</option>
<option>
<name>
TIPackageOverride
</name>
<state>
0
</state>
</option>
<option>
<name>
TIPackage
</name>
<state></state>
</option>
<option>
<name>
BoardFile
</name>
<state></state>
</option>
<option>
<name>
DoLogfile
</name>
<state>
0
</state>
</option>
<option>
<name>
LogFile
</name>
<state>
$PROJ_DIR$\cspycomm.log
</state>
</option>
<option>
<name>
CCXds100BreakpointRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100DoUpdateBreakpoints
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100UpdateBreakpoints
</name>
<state>
_call_main
</state>
</option>
<option>
<name>
CCXds100CatchReset
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchUndef
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchSWI
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchData
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchPrefetch
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchIRQ
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchFIQ
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchCORERESET
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchMMERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchNOCPERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchCHRERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchSTATERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchBUSERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchINTERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchSFERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchHARDERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchDummy
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CpuClockEdit
</name>
<state></state>
</option>
<option>
<name>
CCXds100SwoClockAuto
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100SwoClockEdit
</name>
<state>
1000
</state>
</option>
<option>
<name>
CCXds100HWResetDelay
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100ResetList
</name>
<version>
0
</version>
<state>
0
</state>
</option>
<option>
<name>
CCXds100UsbSerialNo
</name>
<state></state>
</option>
<option>
<name>
CCXds100UsbSerialNoSelect
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100JtagSpeedList
</name>
<version>
0
</version>
<state>
0
</state>
</option>
<option>
<name>
CCXds100InterfaceRadio
</name>
<state>
2
</state>
</option>
<option>
<name>
CCXds100InterfaceCmdLine
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100ProbeList
</name>
<version>
0
</version>
<state>
2
</state>
</option>
<option>
<name>
CCXds100SWOPortRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100SWOPort
</name>
<state>
1
</state>
</option>
</data>
</settings>
<debuggerPlugins>
<plugin>
<file>
$TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin
</file>
<loadFlag>
1
</loadFlag>
</plugin>
<plugin>
<file>
$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
</debuggerPlugins>
</configuration>
<configuration>
<name>
Release
</name>
<toolchain>
<name>
ARM
</name>
</toolchain>
<debug>
0
</debug>
<settings>
<name>
C-SPY
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
29
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
0
</debug>
<option>
<name>
CInput
</name>
<state>
1
</state>
</option>
<option>
<name>
CEndian
</name>
<state>
1
</state>
</option>
<option>
<name>
CProcessor
</name>
<state>
1
</state>
</option>
<option>
<name>
OCVariant
</name>
<state>
0
</state>
</option>
<option>
<name>
MacOverride
</name>
<state>
0
</state>
</option>
<option>
<name>
MacFile
</name>
<state></state>
</option>
<option>
<name>
MemOverride
</name>
<state>
0
</state>
</option>
<option>
<name>
MemFile
</name>
<state></state>
</option>
<option>
<name>
RunToEnable
</name>
<state>
1
</state>
</option>
<option>
<name>
RunToName
</name>
<state>
main
</state>
</option>
<option>
<name>
CExtraOptionsCheck
</name>
<state>
0
</state>
</option>
<option>
<name>
CExtraOptions
</name>
<state></state>
</option>
<option>
<name>
CFpuProcessor
</name>
<state>
1
</state>
</option>
<option>
<name>
OCDDFArgumentProducer
</name>
<state></state>
</option>
<option>
<name>
OCDownloadSuppressDownload
</name>
<state>
0
</state>
</option>
<option>
<name>
OCDownloadVerifyAll
</name>
<state>
0
</state>
</option>
<option>
<name>
OCProductVersion
</name>
<state>
8.20.1.14181
</state>
</option>
<option>
<name>
OCDynDriverList
</name>
<state>
ARMSIM_ID
</state>
</option>
<option>
<name>
OCLastSavedByProductVersion
</name>
<state></state>
</option>
<option>
<name>
UseFlashLoader
</name>
<state>
1
</state>
</option>
<option>
<name>
CLowLevel
</name>
<state>
1
</state>
</option>
<option>
<name>
OCBE8Slave
</name>
<state>
1
</state>
</option>
<option>
<name>
MacFile2
</name>
<state></state>
</option>
<option>
<name>
CDevice
</name>
<state>
1
</state>
</option>
<option>
<name>
FlashLoadersV3
</name>
<state></state>
</option>
<option>
<name>
OCImagesSuppressCheck1
</name>
<state>
0
</state>
</option>
<option>
<name>
OCImagesPath1
</name>
<state></state>
</option>
<option>
<name>
OCImagesSuppressCheck2
</name>
<state>
0
</state>
</option>
<option>
<name>
OCImagesPath2
</name>
<state></state>
</option>
<option>
<name>
OCImagesSuppressCheck3
</name>
<state>
0
</state>
</option>
<option>
<name>
OCImagesPath3
</name>
<state></state>
</option>
<option>
<name>
OverrideDefFlashBoard
</name>
<state>
0
</state>
</option>
<option>
<name>
OCImagesOffset1
</name>
<state></state>
</option>
<option>
<name>
OCImagesOffset2
</name>
<state></state>
</option>
<option>
<name>
OCImagesOffset3
</name>
<state></state>
</option>
<option>
<name>
OCImagesUse1
</name>
<state>
0
</state>
</option>
<option>
<name>
OCImagesUse2
</name>
<state>
0
</state>
</option>
<option>
<name>
OCImagesUse3
</name>
<state>
0
</state>
</option>
<option>
<name>
OCDeviceConfigMacroFile
</name>
<state>
1
</state>
</option>
<option>
<name>
OCDebuggerExtraOption
</name>
<state>
1
</state>
</option>
<option>
<name>
OCAllMTBOptions
</name>
<state>
1
</state>
</option>
<option>
<name>
OCMulticoreNrOfCores
</name>
<state></state>
</option>
<option>
<name>
OCMulticoreMaster
</name>
<state>
0
</state>
</option>
<option>
<name>
OCMulticorePort
</name>
<state>
53461
</state>
</option>
<option>
<name>
OCMulticoreWorkspace
</name>
<state></state>
</option>
<option>
<name>
OCMulticoreSlaveProject
</name>
<state></state>
</option>
<option>
<name>
OCMulticoreSlaveConfiguration
</name>
<state></state>
</option>
<option>
<name>
OCDownloadExtraImage
</name>
<state>
1
</state>
</option>
<option>
<name>
OCAttachSlave
</name>
<state>
0
</state>
</option>
<option>
<name>
MassEraseBeforeFlashing
</name>
<state>
0
</state>
</option>
</data>
</settings>
<settings>
<name>
ARMSIM_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
1
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
0
</debug>
<option>
<name>
OCSimDriverInfo
</name>
<state>
1
</state>
</option>
<option>
<name>
OCSimEnablePSP
</name>
<state>
0
</state>
</option>
<option>
<name>
OCSimPspOverrideConfig
</name>
<state>
0
</state>
</option>
<option>
<name>
OCSimPspConfigFile
</name>
<state></state>
</option>
</data>
</settings>
<settings>
<name>
CADI_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
0
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
0
</debug>
<option>
<name>
CCadiMemory
</name>
<state>
1
</state>
</option>
<option>
<name>
Fast Model
</name>
<state></state>
</option>
<option>
<name>
CCADILogFileCheck
</name>
<state>
0
</state>
</option>
<option>
<name>
CCADILogFileEditB
</name>
<state>
$PROJ_DIR$\cspycomm.log
</state>
</option>
<option>
<name>
OCDriverInfo
</name>
<state>
1
</state>
</option>
</data>
</settings>
<settings>
<name>
CMSISDAP_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
4
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
0
</debug>
<option>
<name>
OCDriverInfo
</name>
<state>
1
</state>
</option>
<option>
<name>
OCIarProbeScriptFile
</name>
<state>
1
</state>
</option>
<option>
<name>
CMSISDAPResetList
</name>
<version>
1
</version>
<state>
10
</state>
</option>
<option>
<name>
CMSISDAPHWResetDuration
</name>
<state>
300
</state>
</option>
<option>
<name>
CMSISDAPHWResetDelay
</name>
<state>
200
</state>
</option>
<option>
<name>
CMSISDAPDoLogfile
</name>
<state>
0
</state>
</option>
<option>
<name>
CMSISDAPLogFile
</name>
<state>
$PROJ_DIR$\cspycomm.log
</state>
</option>
<option>
<name>
CMSISDAPInterfaceRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CMSISDAPInterfaceCmdLine
</name>
<state>
0
</state>
</option>
<option>
<name>
CMSISDAPMultiTargetEnable
</name>
<state>
0
</state>
</option>
<option>
<name>
CMSISDAPMultiTarget
</name>
<state>
0
</state>
</option>
<option>
<name>
CMSISDAPJtagSpeedList
</name>
<version>
0
</version>
<state>
0
</state>
</option>
<option>
<name>
CMSISDAPBreakpointRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CMSISDAPRestoreBreakpointsCheck
</name>
<state>
0
</state>
</option>
<option>
<name>
CMSISDAPUpdateBreakpointsEdit
</name>
<state>
_call_main
</state>
</option>
<option>
<name>
RDICatchReset
</name>
<state>
0
</state>
</option>
<option>
<name>
RDICatchUndef
</name>
<state>
1
</state>
</option>
<option>
<name>
RDICatchSWI
</name>
<state>
0
</state>
</option>
<option>
<name>
RDICatchData
</name>
<state>
1
</state>
</option>
<option>
<name>
RDICatchPrefetch
</name>
<state>
1
</state>
</option>
<option>
<name>
RDICatchIRQ
</name>
<state>
0
</state>
</option>
<option>
<name>
RDICatchFIQ
</name>
<state>
0
</state>
</option>
<option>
<name>
CatchCORERESET
</name>
<state>
0
</state>
</option>
<option>
<name>
CatchMMERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchNOCPERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchCHKERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchSTATERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchBUSERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchINTERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchSFERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchHARDERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchDummy
</name>
<state>
0
</state>
</option>
<option>
<name>
CMSISDAPMultiCPUEnable
</name>
<state>
0
</state>
</option>
<option>
<name>
CMSISDAPMultiCPUNumber
</name>
<state>
0
</state>
</option>
<option>
<name>
OCProbeCfgOverride
</name>
<state>
0
</state>
</option>
<option>
<name>
OCProbeConfig
</name>
<state></state>
</option>
<option>
<name>
CMSISDAPProbeConfigRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CMSISDAPSelectedCPUBehaviour
</name>
<state>
0
</state>
</option>
<option>
<name>
ICpuName
</name>
<state></state>
</option>
<option>
<name>
OCJetEmuParams
</name>
<state>
1
</state>
</option>
<option>
<name>
CCCMSISDAPUsbSerialNo
</name>
<state></state>
</option>
<option>
<name>
CCCMSISDAPUsbSerialNoSelect
</name>
<state>
0
</state>
</option>
</data>
</settings>
<settings>
<name>
GDBSERVER_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
0
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
0
</debug>
<option>
<name>
OCDriverInfo
</name>
<state>
1
</state>
</option>
<option>
<name>
TCPIP
</name>
<state>
aaa.bbb.ccc.ddd
</state>
</option>
<option>
<name>
DoLogfile
</name>
<state>
0
</state>
</option>
<option>
<name>
LogFile
</name>
<state>
$PROJ_DIR$\cspycomm.log
</state>
</option>
<option>
<name>
CCJTagBreakpointRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CCJTagDoUpdateBreakpoints
</name>
<state>
0
</state>
</option>
<option>
<name>
CCJTagUpdateBreakpoints
</name>
<state>
_call_main
</state>
</option>
</data>
</settings>
<settings>
<name>
IJET_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
8
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
0
</debug>
<option>
<name>
OCDriverInfo
</name>
<state>
1
</state>
</option>
<option>
<name>
OCIarProbeScriptFile
</name>
<state>
1
</state>
</option>
<option>
<name>
IjetResetList
</name>
<version>
1
</version>
<state>
10
</state>
</option>
<option>
<name>
IjetHWResetDuration
</name>
<state>
300
</state>
</option>
<option>
<name>
IjetHWResetDelay
</name>
<state>
200
</state>
</option>
<option>
<name>
IjetPowerFromProbe
</name>
<state>
1
</state>
</option>
<option>
<name>
IjetPowerRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetDoLogfile
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetLogFile
</name>
<state>
$PROJ_DIR$\cspycomm.log
</state>
</option>
<option>
<name>
IjetInterfaceRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetInterfaceCmdLine
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetMultiTargetEnable
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetMultiTarget
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetScanChainNonARMDevices
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetIRLength
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetJtagSpeedList
</name>
<version>
0
</version>
<state>
0
</state>
</option>
<option>
<name>
IjetProtocolRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetSwoPin
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetCpuClockEdit
</name>
<state></state>
</option>
<option>
<name>
IjetSwoPrescalerList
</name>
<version>
1
</version>
<state>
0
</state>
</option>
<option>
<name>
IjetBreakpointRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetRestoreBreakpointsCheck
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetUpdateBreakpointsEdit
</name>
<state>
_call_main
</state>
</option>
<option>
<name>
RDICatchReset
</name>
<state>
0
</state>
</option>
<option>
<name>
RDICatchUndef
</name>
<state>
1
</state>
</option>
<option>
<name>
RDICatchSWI
</name>
<state>
0
</state>
</option>
<option>
<name>
RDICatchData
</name>
<state>
1
</state>
</option>
<option>
<name>
RDICatchPrefetch
</name>
<state>
1
</state>
</option>
<option>
<name>
RDICatchIRQ
</name>
<state>
0
</state>
</option>
<option>
<name>
RDICatchFIQ
</name>
<state>
0
</state>
</option>
<option>
<name>
CatchCORERESET
</name>
<state>
0
</state>
</option>
<option>
<name>
CatchMMERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchNOCPERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchCHKERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchSTATERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchBUSERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchINTERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchSFERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchHARDERR
</name>
<state>
1
</state>
</option>
<option>
<name>
CatchDummy
</name>
<state>
0
</state>
</option>
<option>
<name>
OCProbeCfgOverride
</name>
<state>
0
</state>
</option>
<option>
<name>
OCProbeConfig
</name>
<state></state>
</option>
<option>
<name>
IjetProbeConfigRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetMultiCPUEnable
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetMultiCPUNumber
</name>
<state>
0
</state>
</option>
<option>
<name>
IjetSelectedCPUBehaviour
</name>
<state>
0
</state>
</option>
<option>
<name>
ICpuName
</name>
<state></state>
</option>
<option>
<name>
OCJetEmuParams
</name>
<state>
1
</state>
</option>
<option>
<name>
IjetPreferETB
</name>
<state>
1
</state>
</option>
<option>
<name>
IjetTraceSettingsList
</name>
<version>
0
</version>
<state>
0
</state>
</option>
<option>
<name>
IjetTraceSizeList
</name>
<version>
0
</version>
<state>
4
</state>
</option>
<option>
<name>
FlashBoardPathSlave
</name>
<state>
0
</state>
</option>
<option>
<name>
CCIjetUsbSerialNo
</name>
<state></state>
</option>
<option>
<name>
CCIjetUsbSerialNoSelect
</name>
<state>
0
</state>
</option>
</data>
</settings>
<settings>
<name>
JLINK_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
16
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
0
</debug>
<option>
<name>
JLinkSpeed
</name>
<state>
1000
</state>
</option>
<option>
<name>
CCJLinkDoLogfile
</name>
<state>
0
</state>
</option>
<option>
<name>
CCJLinkLogFile
</name>
<state>
$PROJ_DIR$\cspycomm.log
</state>
</option>
<option>
<name>
CCJLinkHWResetDelay
</name>
<state>
0
</state>
</option>
<option>
<name>
OCDriverInfo
</name>
<state>
1
</state>
</option>
<option>
<name>
JLinkInitialSpeed
</name>
<state>
1000
</state>
</option>
<option>
<name>
CCDoJlinkMultiTarget
</name>
<state>
0
</state>
</option>
<option>
<name>
CCScanChainNonARMDevices
</name>
<state>
0
</state>
</option>
<option>
<name>
CCJLinkMultiTarget
</name>
<state>
0
</state>
</option>
<option>
<name>
CCJLinkIRLength
</name>
<state>
0
</state>
</option>
<option>
<name>
CCJLinkCommRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CCJLinkTCPIP
</name>
<state>
aaa.bbb.ccc.ddd
</state>
</option>
<option>
<name>
CCJLinkSpeedRadioV2
</name>
<state>
0
</state>
</option>
<option>
<name>
CCUSBDevice
</name>
<version>
1
</version>
<state>
1
</state>
</option>
<option>
<name>
CCRDICatchReset
</name>
<state>
0
</state>
</option>
<option>
<name>
CCRDICatchUndef
</name>
<state>
0
</state>
</option>
<option>
<name>
CCRDICatchSWI
</name>
<state>
0
</state>
</option>
<option>
<name>
CCRDICatchData
</name>
<state>
0
</state>
</option>
<option>
<name>
CCRDICatchPrefetch
</name>
<state>
0
</state>
</option>
<option>
<name>
CCRDICatchIRQ
</name>
<state>
0
</state>
</option>
<option>
<name>
CCRDICatchFIQ
</name>
<state>
0
</state>
</option>
<option>
<name>
CCJLinkBreakpointRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CCJLinkDoUpdateBreakpoints
</name>
<state>
0
</state>
</option>
<option>
<name>
CCJLinkUpdateBreakpoints
</name>
<state>
_call_main
</state>
</option>
<option>
<name>
CCJLinkInterfaceRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CCJLinkResetList
</name>
<version>
6
</version>
<state>
5
</state>
</option>
<option>
<name>
CCJLinkInterfaceCmdLine
</name>
<state>
0
</state>
</option>
<option>
<name>
CCCatchCORERESET
</name>
<state>
0
</state>
</option>
<option>
<name>
CCCatchMMERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCCatchNOCPERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCCatchCHRERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCCatchSTATERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCCatchBUSERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCCatchINTERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCCatchSFERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCCatchHARDERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCCatchDummy
</name>
<state>
0
</state>
</option>
<option>
<name>
OCJLinkScriptFile
</name>
<state>
1
</state>
</option>
<option>
<name>
CCJLinkUsbSerialNo
</name>
<state></state>
</option>
<option>
<name>
CCTcpIpAlt
</name>
<version>
0
</version>
<state>
0
</state>
</option>
<option>
<name>
CCJLinkTcpIpSerialNo
</name>
<state></state>
</option>
<option>
<name>
CCCpuClockEdit
</name>
<state></state>
</option>
<option>
<name>
CCSwoClockAuto
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSwoClockEdit
</name>
<state>
2000
</state>
</option>
<option>
<name>
OCJLinkTraceSource
</name>
<state>
0
</state>
</option>
<option>
<name>
OCJLinkTraceSourceDummy
</name>
<state>
0
</state>
</option>
<option>
<name>
OCJLinkDeviceName
</name>
<state>
1
</state>
</option>
</data>
</settings>
<settings>
<name>
LMIFTDI_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
2
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
0
</debug>
<option>
<name>
OCDriverInfo
</name>
<state>
1
</state>
</option>
<option>
<name>
LmiftdiSpeed
</name>
<state>
500
</state>
</option>
<option>
<name>
CCLmiftdiDoLogfile
</name>
<state>
0
</state>
</option>
<option>
<name>
CCLmiftdiLogFile
</name>
<state>
$PROJ_DIR$\cspycomm.log
</state>
</option>
<option>
<name>
CCLmiFtdiInterfaceRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CCLmiFtdiInterfaceCmdLine
</name>
<state>
0
</state>
</option>
</data>
</settings>
<settings>
<name>
PEMICRO_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
3
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
0
</debug>
<option>
<name>
OCDriverInfo
</name>
<state>
1
</state>
</option>
<option>
<name>
CCJPEMicroShowSettings
</name>
<state>
0
</state>
</option>
<option>
<name>
DoLogfile
</name>
<state>
0
</state>
</option>
<option>
<name>
LogFile
</name>
<state>
$PROJ_DIR$\cspycomm.log
</state>
</option>
</data>
</settings>
<settings>
<name>
STLINK_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
4
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
0
</debug>
<option>
<name>
OCDriverInfo
</name>
<state>
1
</state>
</option>
<option>
<name>
CCSTLinkInterfaceRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkInterfaceCmdLine
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkResetList
</name>
<version>
3
</version>
<state>
0
</state>
</option>
<option>
<name>
CCCpuClockEdit
</name>
<state></state>
</option>
<option>
<name>
CCSwoClockAuto
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSwoClockEdit
</name>
<state>
2000
</state>
</option>
<option>
<name>
DoLogfile
</name>
<state>
0
</state>
</option>
<option>
<name>
LogFile
</name>
<state>
$PROJ_DIR$\cspycomm.log
</state>
</option>
<option>
<name>
CCSTLinkDoUpdateBreakpoints
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkUpdateBreakpoints
</name>
<state>
_call_main
</state>
</option>
<option>
<name>
CCSTLinkCatchCORERESET
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkCatchMMERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkCatchNOCPERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkCatchCHRERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkCatchSTATERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkCatchBUSERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkCatchINTERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkCatchSFERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkCatchHARDERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkCatchDummy
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkUsbSerialNo
</name>
<state></state>
</option>
<option>
<name>
CCSTLinkUsbSerialNoSelect
</name>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkJtagSpeedList
</name>
<version>
0
</version>
<state>
0
</state>
</option>
<option>
<name>
CCSTLinkDAPNumber
</name>
<state></state>
</option>
<option>
<name>
CCSTLinkDebugAccessPortRadio
</name>
<state>
0
</state>
</option>
</data>
</settings>
<settings>
<name>
THIRDPARTY_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
0
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
0
</debug>
<option>
<name>
CThirdPartyDriverDll
</name>
<state>
###Uninitialized###
</state>
</option>
<option>
<name>
CThirdPartyLogFileCheck
</name>
<state>
0
</state>
</option>
<option>
<name>
CThirdPartyLogFileEditB
</name>
<state>
$PROJ_DIR$\cspycomm.log
</state>
</option>
<option>
<name>
OCDriverInfo
</name>
<state>
1
</state>
</option>
</data>
</settings>
<settings>
<name>
TIFET_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
1
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
0
</debug>
<option>
<name>
OCDriverInfo
</name>
<state>
1
</state>
</option>
<option>
<name>
CCMSPFetResetList
</name>
<version>
0
</version>
<state>
0
</state>
</option>
<option>
<name>
CCMSPFetInterfaceRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CCMSPFetInterfaceCmdLine
</name>
<state>
0
</state>
</option>
<option>
<name>
CCMSPFetTargetVccTypeDefault
</name>
<state>
0
</state>
</option>
<option>
<name>
CCMSPFetTargetVoltage
</name>
<state>
###Uninitialized###
</state>
</option>
<option>
<name>
CCMSPFetVCCDefault
</name>
<state>
1
</state>
</option>
<option>
<name>
CCMSPFetTargetSettlingtime
</name>
<state>
0
</state>
</option>
<option>
<name>
CCMSPFetRadioJtagSpeedType
</name>
<state>
1
</state>
</option>
<option>
<name>
CCMSPFetConnection
</name>
<version>
0
</version>
<state>
0
</state>
</option>
<option>
<name>
CCMSPFetUsbComPort
</name>
<state>
Automatic
</state>
</option>
<option>
<name>
CCMSPFetAllowAccessToBSL
</name>
<state>
0
</state>
</option>
<option>
<name>
CCMSPFetDoLogfile
</name>
<state>
0
</state>
</option>
<option>
<name>
CCMSPFetLogFile
</name>
<state>
$PROJ_DIR$\cspycomm.log
</state>
</option>
<option>
<name>
CCMSPFetRadioEraseFlash
</name>
<state>
1
</state>
</option>
</data>
</settings>
<settings>
<name>
XDS100_ID
</name>
<archiveVersion>
2
</archiveVersion>
<data>
<version>
6
</version>
<wantNonLocal>
1
</wantNonLocal>
<debug>
0
</debug>
<option>
<name>
OCDriverInfo
</name>
<state>
1
</state>
</option>
<option>
<name>
TIPackageOverride
</name>
<state>
0
</state>
</option>
<option>
<name>
TIPackage
</name>
<state></state>
</option>
<option>
<name>
BoardFile
</name>
<state></state>
</option>
<option>
<name>
DoLogfile
</name>
<state>
0
</state>
</option>
<option>
<name>
LogFile
</name>
<state>
$PROJ_DIR$\cspycomm.log
</state>
</option>
<option>
<name>
CCXds100BreakpointRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100DoUpdateBreakpoints
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100UpdateBreakpoints
</name>
<state>
_call_main
</state>
</option>
<option>
<name>
CCXds100CatchReset
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchUndef
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchSWI
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchData
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchPrefetch
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchIRQ
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchFIQ
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchCORERESET
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchMMERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchNOCPERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchCHRERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchSTATERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchBUSERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchINTERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchSFERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchHARDERR
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CatchDummy
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100CpuClockEdit
</name>
<state></state>
</option>
<option>
<name>
CCXds100SwoClockAuto
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100SwoClockEdit
</name>
<state>
1000
</state>
</option>
<option>
<name>
CCXds100HWResetDelay
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100ResetList
</name>
<version>
0
</version>
<state>
0
</state>
</option>
<option>
<name>
CCXds100UsbSerialNo
</name>
<state></state>
</option>
<option>
<name>
CCXds100UsbSerialNoSelect
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100JtagSpeedList
</name>
<version>
0
</version>
<state>
0
</state>
</option>
<option>
<name>
CCXds100InterfaceRadio
</name>
<state>
2
</state>
</option>
<option>
<name>
CCXds100InterfaceCmdLine
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100ProbeList
</name>
<version>
0
</version>
<state>
2
</state>
</option>
<option>
<name>
CCXds100SWOPortRadio
</name>
<state>
0
</state>
</option>
<option>
<name>
CCXds100SWOPort
</name>
<state>
1
</state>
</option>
</data>
</settings>
<debuggerPlugins>
<plugin>
<file>
$TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin
</file>
<loadFlag>
1
</loadFlag>
</plugin>
<plugin>
<file>
$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
<plugin>
<file>
$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
</file>
<loadFlag>
0
</loadFlag>
</plugin>
</debuggerPlugins>
</configuration>
</project>
bsp/gd32303e-eval/project.uvoptx
浏览文件 @
8d0328c7
...
...
@@ -196,7 +196,7 @@
<Group>
<GroupName>
Drivers
</GroupName>
<tvExp>
0
</tvExp>
<tvExp>
1
</tvExp>
<tvExpOptDlg>
0
</tvExpOptDlg>
<cbSel>
0
</cbSel>
<RteFlg>
0
</RteFlg>
...
...
bsp/gd32303e-eval/rtconfig.py
浏览文件 @
8d0328c7
...
...
@@ -11,8 +11,8 @@ if os.getenv('RTT_CC'):
# cross_tool provides the cross compiler
# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR
if
CROSS_TOOL
==
'gcc'
:
PLATFORM
=
'gcc'
EXEC_PATH
=
'D:/ArdaArmTools/GNUARM_4.9_2015q1
/bin'
PLATFORM
=
'gcc'
EXEC_PATH
=
r
'D:/toolchain/gnu_tools_arm_embedded/5.4_2016q3
/bin'
elif
CROSS_TOOL
==
'keil'
:
PLATFORM
=
'armcc'
EXEC_PATH
=
r
'C:/Keil_v5'
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录