├── SRC
├── Uart.c
├── CH552.H
├── Debug.C
├── Debug.H
├── SW_DP.c
├── Main_Usb.C
├── Uart.h
├── SW_DP_asm.a51
├── DAP.h
└── DAP.c
├── PCB
├── CH552DAPLINk.PDF
├── CH552DAPLINK.PcbDoc
└── CH552DAPLINK.SchDoc
├── README.md
├── KEIL
├── STARTUP.A51
├── CH55x_DAPLink.uvopt
└── CH55x_DAPLink.uvproj
├── CH55x_DAPLink_3V3_IO_16M.hex
├── CH55x_DAPLink_5V_IO_24M.hex
├── CH55x_DAPLink_5V_SPI_24M.hex
└── LICENSE
/SRC/Uart.c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/posystorage/CH55x_HS_DAP-Link-v2/HEAD/SRC/Uart.c
--------------------------------------------------------------------------------
/SRC/CH552.H:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/posystorage/CH55x_HS_DAP-Link-v2/HEAD/SRC/CH552.H
--------------------------------------------------------------------------------
/SRC/Debug.C:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/posystorage/CH55x_HS_DAP-Link-v2/HEAD/SRC/Debug.C
--------------------------------------------------------------------------------
/SRC/Debug.H:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/posystorage/CH55x_HS_DAP-Link-v2/HEAD/SRC/Debug.H
--------------------------------------------------------------------------------
/SRC/SW_DP.c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/posystorage/CH55x_HS_DAP-Link-v2/HEAD/SRC/SW_DP.c
--------------------------------------------------------------------------------
/SRC/Main_Usb.C:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/posystorage/CH55x_HS_DAP-Link-v2/HEAD/SRC/Main_Usb.C
--------------------------------------------------------------------------------
/PCB/CH552DAPLINk.PDF:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/posystorage/CH55x_HS_DAP-Link-v2/HEAD/PCB/CH552DAPLINk.PDF
--------------------------------------------------------------------------------
/PCB/CH552DAPLINK.PcbDoc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/posystorage/CH55x_HS_DAP-Link-v2/HEAD/PCB/CH552DAPLINK.PcbDoc
--------------------------------------------------------------------------------
/PCB/CH552DAPLINK.SchDoc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/posystorage/CH55x_HS_DAP-Link-v2/HEAD/PCB/CH552DAPLINK.SchDoc
--------------------------------------------------------------------------------
/SRC/Uart.h:
--------------------------------------------------------------------------------
1 | #ifndef __UART_H__
2 | #define __UART_H__
3 |
4 | #define USE_UART0 1
5 | #define USE_UART1 0
6 |
7 | #ifndef UART_BUAD
8 | #define UART_BUAD 115200
9 | #endif
10 |
11 |
12 | void UART_Setup(void);
13 | void UART_Get_USB_Data(UINT8 Nums);
14 |
15 |
16 |
17 | #endif
18 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # CH55x_HS_DAP-Link-v2
2 | 基于CH55x低成本USB单片机实现的汇编级优化高速DAP-Link-v2
3 |
4 | 介绍见:开源CH551/2实现的汇编优化高速DAP-Link (CMSIS-DAP v2)https://whycan.com/t_7786.html
5 |
6 | SWD引脚 P1.5和P1.6需并联
7 |
8 | SWC引脚 P1.7
9 |
10 | 串口引脚 P3.0 P3.1
11 |
12 | 5V下使用应该接1T45电平转换芯片 SWC-DIR P3.4 SWD-DIR P3.2
13 |
14 | LED P1.1
15 |
16 | 复位1.4(接三极管)
17 |
18 | 拉高RST重新进ISP
19 |
20 | 使用3.3V供电时需要将两个供电脚短接(CH55xG的15和16脚)一坨锡
21 |
--------------------------------------------------------------------------------
/SRC/SW_DP_asm.a51:
--------------------------------------------------------------------------------
1 | $NOMOD51
2 | NAME SW_DP_ASM
3 |
4 | SWC_PIN BIT 090H.7
5 | SWD_PIN BIT 090H.5
6 | SWD_PIN_DIR BIT 0B0H.2
7 | SWD_PMOD_OC DATA 092H
8 | SWD_PDIR_PU DATA 093H
9 | P2 DATA 0A0H
10 | ;Pn_MOD_OC Pn_DIR_PU
11 | ; 0 0 Input
12 | ; 0 1 PP_Output
13 | ; 1 0 OC_Output
14 | ; 1 1 OC_PU_Output
15 |
16 | ?PR?SWD_Write_Byte?SW_DP_ASM SEGMENT CODE
17 | ?PR?_SWJ_Sequence?SW_DP_ASM SEGMENT CODE
18 | ?PR?_SWD_IN_Sequence?SW_DP_ASM SEGMENT CODE
19 | ?PR?_SWD_Transfer?SW_DP_ASM SEGMENT CODE
20 |
21 | EXTRN IDATA (data_phase)
22 | EXTRN IDATA (idle_cycles)
23 | ;EXTRN IDATA (turnaround)
24 | PUBLIC _SWJ_Sequence
25 | PUBLIC _SWD_IN_Sequence
26 | PUBLIC _SWD_Transfer
27 |
28 | ;ACC = data
29 | ;R0 = Bits
30 | RSEG ?PR?SWD_Write_Byte?SW_DP_ASM
31 | SWD_Write_Byte:
32 | MOV R0,#8
33 | SWD_Write_Bits:
34 | SETB SWC_PIN
35 | RRC A
36 | MOV SWD_PIN,C
37 | CLR SWC_PIN
38 | DJNZ R0,SWD_Write_Bits
39 | SETB SWC_PIN
40 | RET
41 |
42 | SWD_Read_Byte:
43 | MOV R0,#8
44 | SWD_Read_Bits:
45 | CLR SWC_PIN
46 | MOV C,SWD_PIN
47 | RRC A
48 | SETB SWC_PIN
49 | DJNZ R0,SWD_Read_Bits
50 | RET
51 |
52 | ;R1~R3 = datas Addr
53 | ;R7 = Count
54 | RSEG ?PR?_SWJ_Sequence?SW_DP_ASM
55 | _SWJ_Sequence:
56 | MOV P2,R2
57 | SWJ_Next_Byte:
58 | MOV A,R7
59 | CLR C
60 | SUBB A,#9
61 | JC SWJ_Last_Bits
62 | INC A
63 | MOV R7,A
64 | MOVX A,@R1
65 | Call SWD_Write_Byte
66 | INC R1
67 | SJMP SWJ_Next_Byte
68 | SWJ_Last_Bits:
69 | MOV A,R7
70 | MOV R0,A
71 | MOVX A,@R1
72 | Call SWD_Write_Bits
73 | RET
74 |
75 |
76 | ;R1~R3 = datas Addr
77 | ;R7 = Count
78 | RSEG ?PR?_SWD_IN_Sequence?SW_DP_ASM
79 | _SWD_IN_Sequence:
80 | SETB SWD_PIN
81 | ORL SWD_PMOD_OC,#20H ;PP_Output->OC_PU_Output->PU_Input ;P1.5
82 | CLR SWD_PIN_DIR
83 | MOV P2,R2
84 | SWD_IN_Next_Byte:
85 | MOV A,R7
86 | CLR C
87 | SUBB A,#9
88 | JC SWD_IN_Last_Bits
89 | INC A
90 | MOV R7,A
91 | Call SWD_Read_Byte
92 | MOVX @R1,A
93 | INC R1
94 | SJMP SWD_IN_Next_Byte
95 | SWD_IN_Last_Bits:
96 | MOV A,R7
97 | MOV R0,A
98 | Call SWD_Read_Bits
99 | MOVX @R1,A
100 | SETB SWD_PIN_DIR
101 | ANL SWD_PMOD_OC,#0DFH ;PU_Input->PP_Output ;P1.5
102 | RET
103 |
104 | ;R5 = datas Addr(Idata)
105 | ;R7 = Req
106 | RSEG ?PR?_SWD_Transfer?SW_DP_ASM
107 | _SWD_Transfer:
108 | MOV A,R5
109 | MOV R1,A
110 | SWD_T1:
111 | MOV A,R7
112 | ANL ACC,#0FH
113 | RL A
114 | JNB PSW.0,SWD_T2
115 | SETB ACC.5
116 | SWD_T2:
117 | ORL ACC,#81H
118 | call SWD_Write_Byte ;Start->Park
119 | SETB SWD_PIN
120 | ORL SWD_PMOD_OC,#20H ;PP_Output->OC_PU_Output->PU_Input ;P1.5
121 | ;ANL SWD_PDIR_PU,#0DFH ;PP_Output->Input
122 | CLR SWD_PIN_DIR
123 | MOV R0,#4
124 | call SWD_Read_Bits ;Trn+3bit_ASK
125 | SWAP A
126 | RR A
127 | ANL ACC,#07H
128 | XCH A,R7;R7=ACK[2:0](for return) A=request
129 | CJNE R7,#01H,SWD_T3;ACK=001b WAIT=010b FAULT=100b (LSB)
130 | JB ACC.1,SWD_TR1
131 | ;write
132 | CLR SWC_PIN ;Trn
133 | NOP
134 | NOP
135 | SETB SWC_PIN
136 | MOV R5,#0 ;PARITY
137 | SETB SWD_PIN_DIR
138 | ANL SWD_PMOD_OC,#0DFH ;PU_Input->PP_Output ;P1.5
139 | ;ORL SWD_PDIR_PU,#20H
140 | ;write 33bits
141 | MOV A,@R1
142 | JNB PSW.0,SWD_TW1
143 | INC R5
144 | SWD_TW1:
145 | CALL SWD_Write_Byte
146 | INC R1
147 | MOV A,@R1
148 | JNB PSW.0,SWD_TW2
149 | INC R5
150 | SWD_TW2:
151 | CALL SWD_Write_Byte
152 | INC R1
153 | MOV A,@R1
154 | JNB PSW.0,SWD_TW3
155 | INC R5
156 | SWD_TW3:
157 | CALL SWD_Write_Byte
158 | INC R1
159 | MOV A,@R1
160 | JNB PSW.0,SWD_TW4
161 | INC R5
162 | SWD_TW4:
163 | CALL SWD_Write_Byte
164 | MOV A,R5
165 | RRC A
166 | MOV SWD_PIN,C;PARITY bit
167 | SJMP SWD_TR7
168 | SWD_TR1: ;read
169 | ;read 33bits
170 | MOV R5,#0 ;PARITY
171 | CALL SWD_Read_Byte
172 | JNB PSW.0,SWD_TR2
173 | INC R5
174 | SWD_TR2:
175 | MOV @R1,A
176 | INC R1
177 | CALL SWD_Read_Byte
178 | JNB PSW.0,SWD_TR3
179 | INC R5
180 | SWD_TR3:
181 | MOV @R1,A
182 | INC R1
183 | CALL SWD_Read_Byte
184 | JNB PSW.0,SWD_TR4
185 | INC R5
186 | SWD_TR4:
187 | MOV @R1,A
188 | INC R1
189 | CALL SWD_Read_Byte
190 | JNB PSW.0,SWD_TR5
191 | INC R5
192 | SWD_TR5:
193 | MOV @R1,A
194 | CLR SWC_PIN
195 | CLR A
196 | MOV C,SWD_PIN
197 | RLC A
198 | SETB SWC_PIN
199 | XRL A,R5
200 | JNB ACC.0,SWD_TR6
201 | MOV R7,#08H
202 | SWD_TR6:
203 | SETB SWD_PIN_DIR
204 | ANL SWD_PMOD_OC,#0DFH ;PU_Input->PP_Output ;P1.5
205 | ;ORL SWD_PDIR_PU,#20H
206 | SWD_TR7:
207 | ;MOV R0,#LOW (idle_cycles)
208 | ;INC R0
209 | ;MOV R0,#01H
210 | ;SWD_TR8:
211 | CLR SWC_PIN
212 | NOP
213 | NOP
214 | SETB SWC_PIN
215 | ;DJNZ R0,SWD_TR8
216 | RET
217 |
218 | SWD_T3: ; wait/fault/error
219 | ;Dummy write/read
220 | CJNE R7,#02H,SWD_TE1 ;010b wait
221 | SJMP SWD_TE3
222 | SWD_TE1:
223 | CJNE R7,#02H,SWD_TE2 ;100b fault
224 | SJMP SWD_TE3
225 | SWD_TE2:
226 | MOV R7,#010H ;others:MISMATCH
227 | MOV R0,#022H
228 | SJMP SWD_TE4
229 | SWD_TE3:
230 | ; MOV R0,#022H
231 | ; MOV A,#LOW (data_phase)
232 | ; JNZ SWD_TE4
233 | MOV R0,#01H
234 | SWD_TE4:
235 | CLR SWC_PIN
236 | NOP
237 | NOP
238 | SETB SWC_PIN
239 | DJNZ R0,SWD_TE4
240 | SETB SWD_PIN_DIR
241 | ANL SWD_PMOD_OC,#0DFH ;PU_Input->PP_Output ;P1.5
242 | ;ORL SWD_PDIR_PU,#20H
243 | RET
244 |
245 | END
--------------------------------------------------------------------------------
/KEIL/STARTUP.A51:
--------------------------------------------------------------------------------
1 | $NOMOD51
2 | ;------------------------------------------------------------------------------
3 | ; This file is part of the C51 Compiler package
4 | ; Copyright (c) 1988-2005 Keil Elektronik GmbH and Keil Software, Inc.
5 | ; Version 8.01
6 | ;
7 | ; *** <<< Use Configuration Wizard in Context Menu >>> ***
8 | ;------------------------------------------------------------------------------
9 | ; STARTUP.A51: This code is executed after processor reset.
10 | ;
11 | ; To translate this file use A51 with the following invocation:
12 | ;
13 | ; A51 STARTUP.A51
14 | ;
15 | ; To link the modified STARTUP.OBJ file to your application use the following
16 | ; Lx51 invocation:
17 | ;
18 | ; Lx51 your object file list, STARTUP.OBJ controls
19 | ;
20 | ;------------------------------------------------------------------------------
21 | ;
22 | ; User-defined Power-On Initialization of Memory
23 | ;
24 | ; With the following EQU statements the initialization of memory
25 | ; at processor reset can be defined:
26 | ;
27 | ; IDATALEN: IDATA memory size <0x0-0x100>
28 | ; Note: The absolute start-address of IDATA memory is always 0
29 | ; The IDATA space overlaps physically the DATA and BIT areas.
30 | IDATALEN EQU 80H
31 | ;
32 | ; XDATASTART: XDATA memory start address <0x0-0xFFFF>
33 | ; The absolute start address of XDATA memory
34 | XDATASTART EQU 0
35 | ;
36 | ; XDATALEN: XDATA memory size <0x0-0xFFFF>
37 | ; The length of XDATA memory in bytes.
38 | XDATALEN EQU 0
39 | ;
40 | ; PDATASTART: PDATA memory start address <0x0-0xFFFF>
41 | ; The absolute start address of PDATA memory
42 | PDATASTART EQU 0H
43 | ;
44 | ; PDATALEN: PDATA memory size <0x0-0xFF>
45 | ; The length of PDATA memory in bytes.
46 | PDATALEN EQU 0H
47 | ;
48 | ;
49 | ;------------------------------------------------------------------------------
50 | ;
51 | ; Reentrant Stack Initialization
52 | ;
53 | ; The following EQU statements define the stack pointer for reentrant
54 | ; functions and initialized it:
55 | ;
56 | ; Stack Space for reentrant functions in the SMALL model.
57 | ; IBPSTACK: Enable SMALL model reentrant stack
58 | ; Stack space for reentrant functions in the SMALL model.
59 | IBPSTACK EQU 0 ; set to 1 if small reentrant is used.
60 | ; IBPSTACKTOP: End address of SMALL model stack <0x0-0xFF>
61 | ; Set the top of the stack to the highest location.
62 | IBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1
63 | ;
64 | ;
65 | ; Stack Space for reentrant functions in the LARGE model.
66 | ; XBPSTACK: Enable LARGE model reentrant stack
67 | ; Stack space for reentrant functions in the LARGE model.
68 | XBPSTACK EQU 0 ; set to 1 if large reentrant is used.
69 | ; XBPSTACKTOP: End address of LARGE model stack <0x0-0xFFFF>
70 | ; Set the top of the stack to the highest location.
71 | XBPSTACKTOP EQU 0xFFFF +1 ; default 0FFFFH+1
72 | ;
73 | ;
74 | ; Stack Space for reentrant functions in the COMPACT model.
75 | ; PBPSTACK: Enable COMPACT model reentrant stack
76 | ; Stack space for reentrant functions in the COMPACT model.
77 | PBPSTACK EQU 0 ; set to 1 if compact reentrant is used.
78 | ;
79 | ; PBPSTACKTOP: End address of COMPACT model stack <0x0-0xFFFF>
80 | ; Set the top of the stack to the highest location.
81 | PBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1
82 | ;
83 | ;
84 | ;------------------------------------------------------------------------------
85 | ;
86 | ; Memory Page for Using the Compact Model with 64 KByte xdata RAM
87 | ; Compact Model Page Definition
88 | ;
89 | ; Define the XDATA page used for PDATA variables.
90 | ; PPAGE must conform with the PPAGE set in the linker invocation.
91 | ;
92 | ; Enable pdata memory page initalization
93 | PPAGEENABLE EQU 0 ; set to 1 if pdata object are used.
94 | ;
95 | ; PPAGE number <0x0-0xFF>
96 | ; uppermost 256-byte address of the page used for PDATA variables.
97 | PPAGE EQU 0
98 | ;
99 | ; SFR address which supplies uppermost address byte <0x0-0xFF>
100 | ; most 8051 variants use P2 as uppermost address byte
101 | PPAGE_SFR DATA 0A0H
102 | ;
103 | ;
104 | ;------------------------------------------------------------------------------
105 |
106 | ; Standard SFR Symbols
107 | ACC DATA 0E0H
108 | B DATA 0F0H
109 | SP DATA 81H
110 | DPL DATA 82H
111 | DPH DATA 83H
112 |
113 | NAME ?C_STARTUP
114 |
115 |
116 | ?C_C51STARTUP SEGMENT CODE
117 | ?STACK SEGMENT IDATA
118 |
119 | RSEG ?STACK
120 | DS 1
121 |
122 | EXTRN CODE (?C_START)
123 | PUBLIC ?C_STARTUP
124 |
125 | CSEG AT 0
126 | ?C_STARTUP: LJMP STARTUP1
127 |
128 | RSEG ?C_C51STARTUP
129 |
130 | STARTUP1:
131 |
132 | IF IDATALEN <> 0
133 | MOV R0,#IDATALEN - 1
134 | CLR A
135 | IDATALOOP: MOV @R0,A
136 | DJNZ R0,IDATALOOP
137 | ENDIF
138 |
139 | IF XDATALEN <> 0
140 | MOV DPTR,#XDATASTART
141 | MOV R7,#LOW (XDATALEN)
142 | IF (LOW (XDATALEN)) <> 0
143 | MOV R6,#(HIGH (XDATALEN)) +1
144 | ELSE
145 | MOV R6,#HIGH (XDATALEN)
146 | ENDIF
147 | CLR A
148 | XDATALOOP: MOVX @DPTR,A
149 | INC DPTR
150 | DJNZ R7,XDATALOOP
151 | DJNZ R6,XDATALOOP
152 | ENDIF
153 |
154 | IF PPAGEENABLE <> 0
155 | MOV PPAGE_SFR,#PPAGE
156 | ENDIF
157 |
158 | IF PDATALEN <> 0
159 | MOV R0,#LOW (PDATASTART)
160 | MOV R7,#LOW (PDATALEN)
161 | CLR A
162 | PDATALOOP: MOVX @R0,A
163 | INC R0
164 | DJNZ R7,PDATALOOP
165 | ENDIF
166 |
167 | IF IBPSTACK <> 0
168 | EXTRN DATA (?C_IBP)
169 |
170 | MOV ?C_IBP,#LOW IBPSTACKTOP
171 | ENDIF
172 |
173 | IF XBPSTACK <> 0
174 | EXTRN DATA (?C_XBP)
175 |
176 | MOV ?C_XBP,#HIGH XBPSTACKTOP
177 | MOV ?C_XBP+1,#LOW XBPSTACKTOP
178 | ENDIF
179 |
180 | IF PBPSTACK <> 0
181 | EXTRN DATA (?C_PBP)
182 | MOV ?C_PBP,#LOW PBPSTACKTOP
183 | ENDIF
184 |
185 | MOV SP,#?STACK-1
186 |
187 | ; This code is required if you use L51_BANK.A51 with Banking Mode 4
188 | ; Code Banking
189 | ; Select Bank 0 for L51_BANK.A51 Mode 4
190 | #if 0
191 | ; Initialize bank mechanism to code bank 0 when using L51_BANK.A51 with Banking Mode 4.
192 | EXTRN CODE (?B_SWITCH0)
193 | CALL ?B_SWITCH0 ; init bank mechanism to code bank 0
194 | #endif
195 | ;
196 | LJMP ?C_START
197 |
198 | END
199 |
--------------------------------------------------------------------------------
/SRC/DAP.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2013-2017 ARM Limited. All rights reserved.
3 | *
4 | * SPDX-License-Identifier: Apache-2.0
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the License); you may
7 | * not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | *
18 | * ----------------------------------------------------------------------
19 | *
20 | * $Date: 1. December 2017
21 | * $Revision: V2.0.0
22 | *
23 | * Project: CMSIS-DAP Include
24 | * Title: DAP.h Definitions
25 | *
26 | *---------------------------------------------------------------------------*/
27 |
28 | #ifndef __DAP_H__
29 | #define __DAP_H__
30 |
31 | #include "CH552.H"
32 | #include
33 | #include
34 | #include
35 |
36 | // DAP Firmware Version
37 | #define DAP_FW_VER "2.0.0"
38 |
39 | // DAP Command IDs
40 | #define ID_DAP_Info 0x00U
41 | #define ID_DAP_HostStatus 0x01U
42 | #define ID_DAP_Connect 0x02U
43 | #define ID_DAP_Disconnect 0x03U
44 | #define ID_DAP_TransferConfigure 0x04U
45 | #define ID_DAP_Transfer 0x05U
46 | #define ID_DAP_TransferBlock 0x06U
47 | #define ID_DAP_TransferAbort 0x07U
48 | #define ID_DAP_WriteABORT 0x08U
49 | #define ID_DAP_Delay 0x09U
50 | #define ID_DAP_ResetTarget 0x0AU
51 | #define ID_DAP_SWJ_Pins 0x10U
52 | #define ID_DAP_SWJ_Clock 0x11U
53 | #define ID_DAP_SWJ_Sequence 0x12U
54 | #define ID_DAP_SWD_Configure 0x13U
55 | #define ID_DAP_SWD_Sequence 0x1DU
56 | #define ID_DAP_JTAG_Sequence 0x14U
57 | #define ID_DAP_JTAG_Configure 0x15U
58 | #define ID_DAP_JTAG_IDCODE 0x16U
59 | #define ID_DAP_SWO_Transport 0x17U
60 | #define ID_DAP_SWO_Mode 0x18U
61 | #define ID_DAP_SWO_Baudrate 0x19U
62 | #define ID_DAP_SWO_Control 0x1AU
63 | #define ID_DAP_SWO_Status 0x1BU
64 | #define ID_DAP_SWO_ExtendedStatus 0x1EU
65 | #define ID_DAP_SWO_Data 0x1CU
66 |
67 | #define ID_DAP_QueueCommands 0x7EU
68 | #define ID_DAP_ExecuteCommands 0x7FU
69 |
70 | // DAP Vendor Command IDs
71 | #define ID_DAP_Vendor0 0x80U
72 | #define ID_DAP_Vendor1 0x81U
73 | #define ID_DAP_Vendor2 0x82U
74 | #define ID_DAP_Vendor3 0x83U
75 | #define ID_DAP_Vendor4 0x84U
76 | #define ID_DAP_Vendor5 0x85U
77 | #define ID_DAP_Vendor6 0x86U
78 | #define ID_DAP_Vendor7 0x87U
79 | #define ID_DAP_Vendor8 0x88U
80 | #define ID_DAP_Vendor9 0x89U
81 | #define ID_DAP_Vendor10 0x8AU
82 | #define ID_DAP_Vendor11 0x8BU
83 | #define ID_DAP_Vendor12 0x8CU
84 | #define ID_DAP_Vendor13 0x8DU
85 | #define ID_DAP_Vendor14 0x8EU
86 | #define ID_DAP_Vendor15 0x8FU
87 | #define ID_DAP_Vendor16 0x90U
88 | #define ID_DAP_Vendor17 0x91U
89 | #define ID_DAP_Vendor18 0x92U
90 | #define ID_DAP_Vendor19 0x93U
91 | #define ID_DAP_Vendor20 0x94U
92 | #define ID_DAP_Vendor21 0x95U
93 | #define ID_DAP_Vendor22 0x96U
94 | #define ID_DAP_Vendor23 0x97U
95 | #define ID_DAP_Vendor24 0x98U
96 | #define ID_DAP_Vendor25 0x99U
97 | #define ID_DAP_Vendor26 0x9AU
98 | #define ID_DAP_Vendor27 0x9BU
99 | #define ID_DAP_Vendor28 0x9CU
100 | #define ID_DAP_Vendor29 0x9DU
101 | #define ID_DAP_Vendor30 0x9EU
102 | #define ID_DAP_Vendor31 0x9FU
103 |
104 | #define ID_DAP_Invalid 0xFFU
105 |
106 | // DAP Status Code
107 | #define DAP_OK 0U
108 | #define DAP_ERROR 0xFFU
109 |
110 | // DAP ID
111 | #define DAP_ID_VENDOR 1U
112 | #define DAP_ID_PRODUCT 2U
113 | #define DAP_ID_SER_NUM 3U
114 | #define DAP_ID_FW_VER 4U
115 | #define DAP_ID_DEVICE_VENDOR 5U
116 | #define DAP_ID_DEVICE_NAME 6U
117 | #define DAP_ID_CAPABILITIES 0xF0U
118 | #define DAP_ID_TIMESTAMP_CLOCK 0xF1U
119 | #define DAP_ID_SWO_BUFFER_SIZE 0xFDU
120 | #define DAP_ID_PACKET_COUNT 0xFEU
121 | #define DAP_ID_PACKET_SIZE 0xFFU
122 |
123 | // DAP Host Status
124 | #define DAP_DEBUGGER_CONNECTED 0U
125 | #define DAP_TARGET_RUNNING 1U
126 |
127 | // DAP Port
128 | #define DAP_PORT_AUTODETECT 0U // Autodetect Port
129 | #define DAP_PORT_DISABLED 0U // Port Disabled (I/O pins in High-Z)
130 | #define DAP_PORT_SWD 1U // SWD Port (SWCLK, SWDIO) + nRESET
131 | #define DAP_PORT_JTAG 2U // JTAG Port (TCK, TMS, TDI, TDO, nTRST) + nRESET
132 |
133 | // DAP SWJ Pins
134 | #define DAP_SWJ_SWCLK_TCK 0 // SWCLK/TCK
135 | #define DAP_SWJ_SWDIO_TMS 1 // SWDIO/TMS
136 | #define DAP_SWJ_TDI 2 // TDI
137 | #define DAP_SWJ_TDO 3 // TDO
138 | #define DAP_SWJ_nTRST 5 // nTRST
139 | #define DAP_SWJ_nRESET 7 // nRESET
140 |
141 | #define DAP_SWJ_SWCLK_TCK_BIT 0x01 // SWCLK/TCK
142 | #define DAP_SWJ_SWDIO_TMS_BIT 0x02 // SWDIO/TMS
143 | #define DAP_SWJ_TDI_BIT 0x04 // TDI
144 | #define DAP_SWJ_TDO_BIT 0x08 // TDO
145 | #define DAP_SWJ_nTRST_BIT 0x20 // nTRST
146 | #define DAP_SWJ_nRESET_BIT 0x80 // nRESET
147 |
148 | // DAP Transfer Request
149 | #define DAP_TRANSFER_APnDP (1U << 0)
150 | #define DAP_TRANSFER_RnW (1U << 1)
151 | #define DAP_TRANSFER_A2 (1U << 2)
152 | #define DAP_TRANSFER_A3 (1U << 3)
153 | #define DAP_TRANSFER_MATCH_VALUE (1U << 4)
154 | #define DAP_TRANSFER_MATCH_MASK (1U << 5)
155 | #define DAP_TRANSFER_TIMESTAMP (1U << 7)
156 |
157 | // DAP Transfer Response
158 | #define DAP_TRANSFER_OK (1U << 0)
159 | #define DAP_TRANSFER_WAIT (1U << 1)
160 | #define DAP_TRANSFER_FAULT (1U << 2)
161 | #define DAP_TRANSFER_ERROR (1U << 3)
162 | #define DAP_TRANSFER_MISMATCH (1U << 4)
163 |
164 | // DAP SWO Trace Mode
165 | #define DAP_SWO_OFF 0U
166 | #define DAP_SWO_UART 1U
167 | #define DAP_SWO_MANCHESTER 2U
168 |
169 | // DAP SWO Trace Status
170 | #define DAP_SWO_CAPTURE_ACTIVE (1U << 0)
171 | #define DAP_SWO_CAPTURE_PAUSED (1U << 1)
172 | #define DAP_SWO_STREAM_ERROR (1U << 6)
173 | #define DAP_SWO_BUFFER_OVERRUN (1U << 7)
174 |
175 | // Debug Port Register Addresses
176 | #define DP_IDCODE 0x00U // IDCODE Register (SW Read only)
177 | #define DP_ABORT 0x00U // Abort Register (SW Write only)
178 | #define DP_CTRL_STAT 0x04U // Control & Status
179 | #define DP_WCR 0x04U // Wire Control Register (SW Only)
180 | #define DP_SELECT 0x08U // Select Register (JTAG R/W & SW W)
181 | #define DP_RESEND 0x08U // Resend (SW Read Only)
182 | #define DP_RDBUFF 0x0CU // Read Buffer (Read Only)
183 |
184 | // JTAG IR Codes
185 | #define JTAG_ABORT 0x08U
186 | #define JTAG_DPACC 0x0AU
187 | #define JTAG_APACC 0x0BU
188 | #define JTAG_IDCODE 0x0EU
189 | #define JTAG_BYPASS 0x0FU
190 |
191 | // JTAG Sequence Info
192 | #define JTAG_SEQUENCE_TCK 0x3FU // TCK count
193 | #define JTAG_SEQUENCE_TMS 0x40U // TMS value
194 | #define JTAG_SEQUENCE_TDO 0x80U // TDO capture
195 |
196 | // SWD Sequence Info
197 | #define SWD_SEQUENCE_CLK 0x3FU // SWCLK count
198 | #define SWD_SEQUENCE_DIN 0x80U // SWDIO capture
199 |
200 | #define DAP_PACKET_COUNT 4
201 | #define DAP_PACKET_SIZE 64 //THIS_ENDP0_SIZE
202 | #define DAP_DEFAULT_PORT DAP_PORT_SWD
203 |
204 | sbit RST = P1 ^ 4;
205 | sbit SWK = P1 ^ 7;
206 | sbit SWD = P1 ^ 5;
207 | sbit LED = P1 ^ 1;
208 | sbit DIR_SWK = P3 ^ 4;
209 | sbit DIR_SWD = P3 ^ 2;
210 | extern BOOL DAP_LED_BUSY;
211 |
212 | extern UINT8I Ep2Oi;
213 | extern UINT8I Ep2Oo;
214 | extern UINT8I Ep3Ii;
215 | extern UINT8I Ep3Io;
216 | extern UINT8I Ep3Is[];
217 |
218 | extern UINT8X Ep2BufferO[];
219 | extern UINT8X Ep3BufferI[];
220 |
221 | extern UINT8I turnaround;
222 | extern UINT8I data_phase;
223 | extern UINT8I idle_cycles;
224 |
225 | extern void DAP_Thread(void);
226 | extern void PORT_SWD_SETUP(void);
227 | extern void PORT_SWD_OFF(void);
228 | extern void SWD_ResetTarget_Soft(void);
229 | extern UINT8I SWD_Transfer(UINT8 reqI, UINT8I *datas);
230 | extern void SWJ_Sequence(UINT8I count, const UINT8 *datas);
231 | //extern void SWD_Sequence(UINT8I info, const UINT8 *swdo, UINT8 *swdi);
232 | extern void SWD_IN_Sequence(UINT8I count, UINT8 *swdi);
233 |
234 | #endif /* __DAP_H__ */
235 |
--------------------------------------------------------------------------------
/KEIL/CH55x_DAPLink.uvopt:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1.0
5 |
6 | ### uVision Project, (C) Keil Software
7 |
8 |
9 | *.c
10 | *.s*; *.src; *.a*
11 | *.obj; *.o
12 | *.lib
13 | *.txt; *.h; *.inc; *.md
14 | *.plm
15 | *.cpp; *.cc; *.cxx
16 | 0
17 |
18 |
19 |
20 | 0
21 | 0
22 |
23 |
24 |
25 | Target 1
26 | 0x0
27 | MCS-51
28 |
29 | 24000000
30 |
31 | 1
32 | 1
33 | 1
34 | 0
35 | 0
36 |
37 |
38 | 0
39 | 65535
40 | 0
41 | 0
42 | 0
43 |
44 |
45 | 120
46 | 65
47 | 8
48 | .\Listings\
49 |
50 |
51 | 1
52 | 1
53 | 1
54 | 0
55 | 1
56 | 1
57 | 0
58 | 1
59 | 1
60 | 0
61 | 0
62 | 0
63 |
64 |
65 | 1
66 | 1
67 | 1
68 | 1
69 | 1
70 | 1
71 | 1
72 | 0
73 | 0
74 |
75 |
76 | 1
77 | 0
78 | 1
79 |
80 | 0
81 |
82 | 0
83 | 1
84 | 1
85 | 1
86 | 1
87 | 1
88 | 1
89 | 1
90 | 1
91 | 1
92 | 0
93 | 1
94 | 1
95 | 1
96 | 0
97 | 1
98 | 1
99 | 1
100 | 1
101 | 0
102 | 0
103 | 1
104 | 0
105 | 0
106 | 12
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 | BIN\CH55xISP.dll
118 |
119 |
120 |
121 | 0
122 | CH55xISP
123 | -S1 -B115200 -O3072
124 |
125 |
126 |
127 |
128 | 0
129 |
130 |
131 | 0
132 | 1
133 | 0
134 | 0
135 | 0
136 | 0
137 | 0
138 | 0
139 | 0
140 | 0
141 | 0
142 | 0
143 | 0
144 | 0
145 | 0
146 | 0
147 | 0
148 | 0
149 | 0
150 | 0
151 | 0
152 | 0
153 | 0
154 | 0
155 |
156 |
157 |
158 | 0
159 | 0
160 | 0
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 | Source Group 1
174 | 1
175 | 0
176 | 0
177 | 0
178 |
179 | 1
180 | 1
181 | 1
182 | 0
183 | 0
184 | 0
185 | ..\SRC\DAP.c
186 | DAP.c
187 | 0
188 | 0
189 |
190 |
191 | 1
192 | 2
193 | 1
194 | 0
195 | 0
196 | 0
197 | ..\SRC\Debug.C
198 | Debug.C
199 | 0
200 | 0
201 |
202 |
203 | 1
204 | 3
205 | 1
206 | 0
207 | 0
208 | 0
209 | ..\SRC\Main_Usb.C
210 | Main_Usb.C
211 | 0
212 | 0
213 |
214 |
215 | 1
216 | 4
217 | 1
218 | 0
219 | 0
220 | 0
221 | ..\SRC\SW_DP.c
222 | SW_DP.c
223 | 0
224 | 0
225 |
226 |
227 | 1
228 | 5
229 | 2
230 | 0
231 | 0
232 | 0
233 | ..\SRC\SW_DP_asm.a51
234 | SW_DP_asm.a51
235 | 0
236 | 0
237 |
238 |
239 | 1
240 | 6
241 | 1
242 | 0
243 | 0
244 | 0
245 | ..\SRC\Uart.c
246 | Uart.c
247 | 0
248 | 0
249 |
250 |
251 |
252 |
253 |
--------------------------------------------------------------------------------
/KEIL/CH55x_DAPLink.uvproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1.1
5 |
6 | ### uVision Project, (C) Keil Software
7 |
8 |
9 |
10 | Target 1
11 | 0x0
12 | MCS-51
13 | 0
14 |
15 |
16 | CH552
17 | WCH
18 | IRAM(0-0xFF) XRAM(0-0x3FF) IROM(0-0x3FFF) CLOCK(24000000)
19 |
20 | "LIB\STARTUP.A51" ("Standard 8051 Startup Code")
21 |
22 | 0
23 | CH552.H
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 | 0
35 | 0
36 |
37 |
38 |
39 | WCH\
40 | WCH\
41 |
42 | 0
43 | 0
44 | 0
45 | 0
46 | 1
47 |
48 | .\Objects\
49 | CH55x_DAPLink
50 | 1
51 | 0
52 | 1
53 | 1
54 | 1
55 | .\Listings\
56 | 0
57 | 0
58 | 0
59 |
60 | 0
61 | 0
62 |
63 |
64 | 0
65 | 0
66 | 0
67 | 0
68 |
69 |
70 | 0
71 | 0
72 |
73 |
74 | 0
75 | 0
76 | 0
77 | 0
78 |
79 |
80 | 0
81 | 0
82 |
83 |
84 | 0
85 | 0
86 | 0
87 | 0
88 |
89 | 0
90 |
91 |
92 |
93 | 0
94 | 0
95 | 0
96 | 0
97 | 0
98 | 1
99 | 0
100 | 0
101 | 0
102 | 0
103 | 3
104 |
105 |
106 | 1
107 | 65535
108 |
109 |
110 | S8051.DLL
111 |
112 | DP51.DLL
113 | -pDR8051
114 | S8051.DLL
115 |
116 | TP51.DLL
117 | -p51
118 |
119 |
120 |
121 | 0
122 | 0
123 | 0
124 | 0
125 | 16
126 |
127 |
128 | 0
129 | 1
130 | 1
131 | 1
132 | 1
133 | 1
134 | 1
135 | 1
136 | 0
137 | 1
138 |
139 |
140 | 1
141 | 1
142 | 0
143 | 1
144 | 1
145 | 1
146 | 0
147 | 1
148 | 1
149 | 1
150 |
151 | 0
152 | 12
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 | BIN\CH55xISP.dll
167 |
168 |
169 |
170 |
171 | 1
172 | 0
173 | 0
174 | 0
175 | 1
176 | -1
177 |
178 | 1
179 |
180 | "" ()
181 |
182 |
183 |
184 |
185 | 0
186 |
187 |
188 |
189 | 0
190 | 0
191 | 2
192 | 0
193 | 0
194 | 0
195 | 0
196 | 0
197 | 0
198 | 1
199 | 1
200 | 1
201 | 0
202 | 0
203 | 0
204 | 0
205 | 0
206 | 0
207 | 0
208 | 0
209 | 0
210 | 0
211 | 0
212 | 0
213 | 0
214 | 0
215 | 0
216 | 0
217 | 0
218 | 0
219 | 0
220 | 0
221 | 0
222 | 0
223 | 0
224 | 0
225 | 0
226 | 0
227 | 0
228 | 0
229 | 0
230 | 0
231 | 0
232 |
233 |
234 | 0
235 | 0x0
236 | 0xffff
237 |
238 |
239 | 0
240 | 0x0
241 | 0x0
242 |
243 |
244 | 0
245 | 0x0
246 | 0x0
247 |
248 |
249 | 0
250 | 0x0
251 | 0x0
252 |
253 |
254 | 0
255 | 0x0
256 | 0x0
257 |
258 |
259 | 0
260 | 0x0
261 | 0x0
262 |
263 |
264 | 0
265 | 0x0
266 | 0x0
267 |
268 |
269 | 0
270 | 0x0
271 | 0x0
272 |
273 |
274 | 1
275 | 0x0
276 | 0x4000
277 |
278 |
279 | 0
280 | 0x0
281 | 0x100
282 |
283 |
284 | 0
285 | 0x0
286 | 0x400
287 |
288 |
289 | 0
290 | 0x0
291 | 0x0
292 |
293 |
294 | 0
295 | 0x0
296 | 0x0
297 |
298 |
299 | 0
300 | 0x0
301 | 0x0
302 |
303 |
304 | 0
305 | 0x0
306 | 0x0
307 |
308 |
309 |
310 |
311 | 0
312 | 0
313 | 1
314 | 0
315 | 1
316 | 3
317 | 8
318 | 2
319 | 1
320 | 1
321 | 0
322 | 0
323 |
324 |
325 |
326 |
327 |
328 |
329 |
330 |
331 | 0
332 | 1
333 | 0
334 | 0
335 |
336 |
337 |
338 |
339 |
340 |
341 |
342 |
343 | 0
344 | 0
345 | 1
346 | 0
347 | 2
348 | 1
349 |
350 |
351 |
352 |
353 |
354 |
355 |
356 |
357 |
358 |
359 |
360 |
361 |
362 |
363 |
364 |
365 |
366 |
367 |
368 |
369 |
370 |
371 |
372 |
373 |
374 |
375 |
376 |
377 | Source Group 1
378 |
379 |
380 | DAP.c
381 | 1
382 | ..\SRC\DAP.c
383 |
384 |
385 | Debug.C
386 | 1
387 | ..\SRC\Debug.C
388 |
389 |
390 | Main_Usb.C
391 | 1
392 | ..\SRC\Main_Usb.C
393 |
394 |
395 | SW_DP.c
396 | 1
397 | ..\SRC\SW_DP.c
398 |
399 |
400 | SW_DP_asm.a51
401 | 2
402 | ..\SRC\SW_DP_asm.a51
403 |
404 |
405 | Uart.c
406 | 1
407 | ..\SRC\Uart.c
408 |
409 |
410 | 2
411 | 0
412 | 0
413 | 0
414 | 0
415 | 2
416 | 2
417 | 1
418 | 1
419 | 2
420 | 11
421 |
422 |
423 | 1
424 | 65535
425 |
426 |
427 |
428 | 2
429 | 2
430 | 2
431 | 2
432 | 2
433 | 8
434 | 10
435 | 3
436 | 2
437 | 2
438 | 2
439 | 0
440 |
441 |
442 |
443 |
444 |
445 |
446 |
447 |
448 |
449 |
450 |
451 |
452 |
453 |
454 |
455 |
456 |
457 |
--------------------------------------------------------------------------------
/CH55x_DAPLink_3V3_IO_16M.hex:
--------------------------------------------------------------------------------
1 | :061BEF00322E302E300002
2 | :031B1B00019C002A
3 | :06163F008B2E8A2F89307A
4 | :10164500E4781CF6EF24FE60171460161460162467
5 | :1016550014602B24F2605514603424FE705D800202
6 | :101665008000E48024781C7606E6FF7E00A830AC76
7 | :101675002FAD2E7BFF7A1B79EF120B1B803DAB2E16
8 | :10168500AA2FA9307401120B87781CF6802DAB2E7A
9 | :10169500AA2FA9307440120B87AB2EAA2FA9309020
10 | :1016A5000001E4120B99781C7602800FAB2EAA2F4D
11 | :0F16B500A9307404120B87781C7601781CE6FFAD
12 | :0116C4002203
13 | :101A2F00900001120B5AFE120B41FDEE781CF6EDE1
14 | :101A3F0008F6781C08E616187001161486064E7004
15 | :0C1A4F00F1AB31AA32A933120B877F01E2
16 | :011A5B002268
17 | :101A8800120B4114600304700B900001120B5A13DF
18 | :101A98009202800AAB31AA32A93374FF8007AB31B6
19 | :0B1AA800AA32A933E4120B877F012251
20 | :1019A200120B41FF781C700476018002A607781C96
21 | :1019B200E6147009789576011219D28004E4781C35
22 | :0F19C200F6781CE6AB31AA32A933120B877F01EE
23 | :0119D10022F3
24 | :100026008B2E8A2F8930E47895F6121BB8AB2EAA50
25 | :0A0036002FA930E4120B877F01228E
26 | :100003008B2E8A2F8930121811AB2EAA2FA930906C
27 | :0D0013000001E4120B99E4120B877F02221A
28 | :10151500120B41781CF6900001120B5A781DF690BB
29 | :101525000003120B5AFE900002120B5AFDEE781EB4
30 | :10153500F6ED08F6900004120B5A7008900005129B
31 | :101545000B5A6009781EE64480F608E6F6781DE633
32 | :10155500FF5401600C18E654016004D2978002C262
33 | :1015650097EF5402600D781CE654026004D2958012
34 | :1015750002C295781DE65480600F18E65402600497
35 | :10158500C2948005121811D294A295E43325E0FF88
36 | :10159500A297E4334F781CF6209404E64480F6784D
37 | :0D15A5001CE6AB31AA32A933120B877F017F
38 | :0115B2002216
39 | :101B4C00120B417892F6E4F67881F6AB31AA32A901
40 | :071B5C0033120B877F012209
41 | :06196D008B2E8A2F893049
42 | :101973000530E5307002052F14F9120B41781CF67F
43 | :10198300E6700276FF781CE6FFAB2EAA2FA9301271
44 | :0E1993001B34AB31AA32A933E4120B877F015B
45 | :0119A1002223
46 | :101AB300120B41781CF6E6FF540304789AF6EF54B0
47 | :101AC3000460047F0180027F00788CA607AB31AAF3
48 | :091AD30032A933E4120B877F01F4
49 | :011ADC0022E7
50 | :0612E5008B2E8A2F8930D8
51 | :1012EB00AB310533E533AA327002053214F9E4123F
52 | :1012FB000B87781E7601AB2E0530E530AA2F7002D6
53 | :10130B00052F14F9120B4118F6781DE6167003021F
54 | :10131B0013A3AB2E0530E530AA2F7002052F14F95D
55 | :10132B00120B4118F6E6FF543F781FF67002764019
56 | :10133B00EF54806034781FE6FFAB31AA32A9331229
57 | :10134B001ADD781FE62407FFE433FEEF7803CEC3E4
58 | :10135B0013CE13D8F9781FF6E6FF2533F533E435B2
59 | :10136B0032F53218EF26F680A0781FE6FFAB2EAAD7
60 | :10137B002FA930121B34781FE62407FFE433FEEF4E
61 | :10138B007803CEC313CE13D8F9781FF62530F5307A
62 | :0C139B00E4352FF52F021314781EE6FF36
63 | :0113A7002223
64 | :1018F800120B417882F6900002120B5AFE900001FA
65 | :10190800120B5AFDEE7898F6ED08F6900004120BCB
66 | :101918005AFE900003120B5AFDEE7893F6ED08F686
67 | :0D192800AB31AA32A933E4120B877F0122F4
68 | :060046008B348A35893677
69 | :10004C008B3A8A3B893CE47880F6789BF685373D81
70 | :10005C0085383E85393F74022539F539E43538F554
71 | :10006C0038E408F6781DF608F6042536F536E4353E
72 | :10007C0035F535AB340536E536AA35700205351441
73 | :10008C00F9120B41788DF6788DE670030204DAAB29
74 | :10009C00340536E536AA357002053514F9120B41D4
75 | :1000AC007883F6E6FF5402700302039C781DE67019
76 | :1000BC00030201807898E6FC08E6FD7896A6040811
77 | :1000CC00A605EF5411640170267883E6FF7D841237
78 | :1000DC0013A8789BEFF66402703B789608E6161826
79 | :1000EC0086067001164E602D789CE660DC80267DBD
80 | :1000FC00847F0E1213A8789BEFF664027013789627
81 | :10010C0008E6161886067001164E6005789CE660A7
82 | :10011C00DEE4781DF6789BE6640160030204DA786D
83 | :10012C0084E6FFAB370539E539AA38700205381477
84 | :10013C00F9EF120B8708E6FFAB370539E539AA381A
85 | :10014C007002053814F9EF120B8708E6FFAB370580
86 | :10015C0039E539AA387002053814F9EF120B870803
87 | :10016C00E6FFAB370539E539AA387002053814F9C2
88 | :10017C00EF120B877883E6FF541070030202BEABBC
89 | :10018C0034AA35A936120B417888F6900001120B6F
90 | :10019C005A7889F6900002120B5A788AF69000036E
91 | :1001AC00120B5A788BF674042536F536E43535F592
92 | :1001BC00357893E6FC08E6FD18A60408A605EF546E
93 | :1001CC0001603D7898E6FE08E6FF7896A60608A63C
94 | :1001DC00077883E6FFE4FD1213A8789BEFF67E0008
95 | :1001EC0064027013789608E6161886047001164C93
96 | :1001FC006005789CE660DAEF64014E60030204DA75
97 | :10020C007898E6FE08E6FF7896A60608A607788397
98 | :10021C00E6FF7D841213A8789BEFF67E00640270D3
99 | :10022C0013789608E6161886047001164C6005784B
100 | :10023C009CE660DAEF64014E703C7984E7788E5668
101 | :10024C00788866701E09E7788F567889667014096D
102 | :10025C00E7789056788A66700A09E7789156788B19
103 | :10026C00666013789308E6161886067001164E60C1
104 | :10027C0005789CE6608A7984E7788E567888667073
105 | :10028C001E09E7788F56788966701409E7789056BE
106 | :10029C00788A66700A09E7789156788B66600678DA
107 | :1002AC009BE64410F6789BE664017003020395020A
108 | :1002BC0004DA7898E6FE08E6FF7896A60608A60704
109 | :1002CC007883E65401603E781DE66003020395785E
110 | :1002DC0083E6FFE4FD1213A8789BEFF67E00640220
111 | :1002EC007013789608E6161886047001164C600593
112 | :1002FC00789CE660DAEF64014E60030204DA781D44
113 | :10030C0076010203957883E6FF7D841213A8789B0F
114 | :10031C00EFF67E0064027013789608E616188604D1
115 | :10032C007001164C6005789CE660DAEF64014E6053
116 | :10033C00030204DA7884E6FFAB370539E539AA38CD
117 | :10034C007002053814F9EF120B8708E6FFAB37057E
118 | :10035C0039E539AA387002053814F9EF120B870801
119 | :10036C00E6FFAB370539E539AA387002053814F9C0
120 | :10037C00EF120B8708E6FFAB370539E539AA387061
121 | :10038C0002053814F9EF120B87E4781EF60204CC40
122 | :10039C00781DE670030204387898E6FE08E6FF78CC
123 | :1003AC0096A60608A6077D847F0E1213A8789BEFED
124 | :1003BC00F67E0064027013789608E61618860470B0
125 | :1003CC0001164C6005789CE660DCEF64014E60031E
126 | :1003DC000204DA7884E6FFAB370539E539AA3870C0
127 | :1003EC0002053814F9EF120B8708E6FFAB37053915
128 | :1003FC00E539AA387002053814F9EF120B8708E6B4
129 | :10040C00FFAB370539E539AA387002053814F9EF16
130 | :10041C00120B8708E6FFAB370539E539AA387002AD
131 | :10042C00053814F9EF120B87E4781DF6AB34AA35B6
132 | :10043C00A936120B417884F6900001120B5A78857C
133 | :10044C00F6900002120B5A7886F6900003120B5AA3
134 | :10045C007887F674042536F536E43535F53578832A
135 | :10046C00E65420601D08E6788EF67885E6788FF6DF
136 | :10047C007886E67890F67887E67891F6789B760120
137 | :10048C00803E7898E6FE08E6FF7896A60608A60752
138 | :10049C007883E6FF7D841213A8789BEFF67E0064C8
139 | :1004AC00027013789608E6161886047001164C60D4
140 | :1004BC0005789CE660DAEF64014E7012781E7601C6
141 | :1004CC00788006789CE67006788D16020093788DFD
142 | :1004DC00E66031AB340536E536AA357002053514C5
143 | :1004EC00F9120B417883F6E6FF54026007EF5410C3
144 | :1004FC00600D800074042536F536E43535F5357815
145 | :10050C008D1680CA789BE6640160030205E9781DAC
146 | :10051C00E670030205B47898E6FE08E6FF7896A626
147 | :10052C000608A6077D847F0E1213A8789BEFF67E33
148 | :10053C000064027013789608E6161886047001168B
149 | :10054C004C6005789CE660DCEF64014E60030205AC
150 | :10055C00E97884E6FFAB370539E539AA387002052E
151 | :10056C003814F9EF120B8708E6FFAB370539E5397C
152 | :10057C00AA387002053814F9EF120B8708E6FFABA6
153 | :10058C00370539E539AA387002053814F9EF120B22
154 | :10059C008708E6FFAB370539E539AA38700205380C
155 | :1005AC0014F9EF120B878035781EE660307898E6E8
156 | :1005BC00FE08E6FF7896A60608A607E4FD7F0E1255
157 | :1005CC0013A8789BEFF664027013789608E6161859
158 | :1005DC0086067001164E6005789CE660DE7880E633
159 | :1005EC00AB3DAA3EA93F120B87789BE6AB3DAA3EDA
160 | :0D05FC00A93F900001120B99C3E53999FF4A
161 | :0106090022CE
162 | :101B7A00E4781CF6853137853238853339120046C8
163 | :041B8A00781CEFF6DE
164 | :011B8E002234
165 | :060D04008B348A358936AC
166 | :100D0A00E47880F6789BF685373A85383B85393C16
167 | :100D1A0074032539F539E43538F538E408F604253D
168 | :100D2A0036F536E43535F535AB34FAA93690000197
169 | :100D3A00120B5A120B41FF788DF674022536F536DE
170 | :100D4A00E43535F535EF7003020F08AB340536E5A7
171 | :100D5A0036AA357002053514F9120B417883F6E686
172 | :100D6A00FF54027003020E61EF5401603D7898E669
173 | :100D7A00FE08E6FF7896A60608A6077883E6FFE44B
174 | :100D8A00FD1213A8789BEFF67E0064027013789622
175 | :100D9A0008E6161886047001164C6005789CE66011
176 | :100DAA00DAEF64014E6003020F08788DE6167003CD
177 | :100DBA00020F08E670097883E654016002760E781D
178 | :100DCA0098E6FE08E6FF7896A60608A6077883E660
179 | :100DDA00FF7D841213A8789BEFF67E0064027013DD
180 | :100DEA00789608E6161886047001164C6005789CF9
181 | :100DFA00E660DAEF64014E6003020F087884E6FFCA
182 | :100E0A00AB370539E539AA387002053814F9EF12FB
183 | :100E1A000B8708E6FFAB370539E539AA38700205B2
184 | :100E2A003814F9EF120B8708E6FFAB370539E539B5
185 | :100E3A00AA387002053814F9EF120B8708E6FFABDF
186 | :100E4A00370539E539AA387002053814F9EF120B5B
187 | :100E5A0087788006020DB4788DE6166071AB34AAE5
188 | :100E6A0035A936120B417884F6900001120B5A7894
189 | :100E7A0085F6900002120B5A7886F6900003120B40
190 | :100E8A005A7887F674042536F536E43535F535781B
191 | :100E9A0098E6FE08E6FF7896A60608A6077883E68F
192 | :100EAA00FF7D841213A8789BEFF67E00640270130C
193 | :100EBA00789608E6161886047001164C6005789C28
194 | :100ECA00E660DAEF64014E7035788006808978989A
195 | :100EDA00E6FE08E6FF7896A60608A607E4FD7F0E5A
196 | :100EEA001213A8789BEFF664027013789608E61638
197 | :100EFA001886067001164E6005789CE660DE7880DA
198 | :100F0A00E6AB3AAA3BA93C120B87AB3AAA3BA93CEF
199 | :100F1A00900001E4120B99789BE6900002120B995B
200 | :050F2A00C3E53999FF49
201 | :010F2F00229F
202 | :0616C5008B2E8A2F8930F4
203 | :1016CB007895E6147018853137853238853339AB08
204 | :1016DB002EAA2FA930120D04781CA6078021AB313E
205 | :1016EB00AA32A933E4120B87AB31AA32A93390008B
206 | :1016FB0001120B99900002E4120B99781C7603AB44
207 | :10170B002EAA2FA930900003120B5A5402600678B0
208 | :10171B001CE6F68025900002120B5A900001120B6A
209 | :10172B005A75F004A42404FFE435F0FEEF7810C3DF
210 | :0E173B0033CE33CED8F9781C46F6781CE6FF84
211 | :01174900227D
212 | :10193500900001120B5A7884F6900002120B5A7827
213 | :1019450085F6900003120B5A7886F6900004120B68
214 | :101955005A7887F67D84E4FF1213A8AB37AA38A915
215 | :0819650039E4120B877F012217
216 | :101A5C007895E61470128531378532388533391212
217 | :101A6C001935781CA607800FAB31AA32A93374FF45
218 | :0B1A7C00120B87781C7601781CE6FF37
219 | :011A8700223C
220 | :0C0F300078A6E6FF78A066700302111C92
221 | :100F3C007E0074002FF9EE3401752801F529892AF9
222 | :100F4C00789FE62400F9EE3402752B01F52C892DDF
223 | :100F5C0078A6744026F6AB28AA29A92A120B41FFC1
224 | :100F6C00AB2B052DE52DAA2C7002052C14F9EF12D4
225 | :100F7C000B87AB28052AE52AAA297002052914F942
226 | :100F8C00120B41120CD80FED00101601102B021091
227 | :100F9C00400310D1040FC3050FD80610E508104C00
228 | :100FAC000910610A106D1010811110951210A913FF
229 | :100FBC0010BD1D000010FD852B31852C32852D3385
230 | :100FCC00AB28AA29A92A121B7A0210F7852B318586
231 | :100FDC002C32852D33AB28AA29A92A1216C502104A
232 | :100FEC00F7AB28AA29A92A120B41FFAB2BE52D241C
233 | :100FFC0001F9E4352CFA12163F781BEFF6AB2BAA4D
234 | :10100C002CA92D120B870602110F852B31852C3242
235 | :10101C00852D33AB28AA29A92A121A880210F78524
236 | :10102C002B31852C32852D33AB28AA29A92A1219EC
237 | :10103C00A20210F7AB2BAA2CA92D1200260210F736
238 | :10104C00852B31852C32852D33AB28AA29A92A1260
239 | :10105C001A2F0210F7AB2BAA2CA92D120003021089
240 | :10106C00F7852B31852C32852D33AB28AA29A92A5B
241 | :10107C001215158076852B31852C32852D33AB28B6
242 | :10108C00AA29A92A121B4C8062852B31852C32850A
243 | :10109C002D33AB28AA29A92A12196D804E852B3124
244 | :1010AC00852C32852D33AB28AA29A92A121AB38094
245 | :1010BC003A852B31852C32852D33AB28AA29A92AC8
246 | :1010CC001212E58026852B31852C32852D33AB28E9
247 | :1010DC00AA29A92A1218F88012852B31852C328561
248 | :1010EC002D33AB28AA29A92A121A5C781BA60780D3
249 | :1010FC0012AB2BAA2CA92D90FFFF74FF120B997821
250 | :10110C001B7601781BE60479A2F7789F744026F6CB
251 | :01111C0022B0
252 | :101B8F0075A15575A1AAE5B954F84405F5B943B146
253 | :051B9F0002E4F5A122A3
254 | :101BCB00EF4E600D05A105A105A1EF1F70F21E8060
255 | :021BDB00EF22F7
256 | :101B6300AD07AC06ED4C600E7FE87E03121BCBED98
257 | :071B73001D70F11C80EE2241
258 | :10111D0012011002EF020140280D0402000101022C
259 | :10112D0003010902620003010080FA0904000002B4
260 | :10113D00FF0000040705020240000007058302407E
261 | :10114D000000080B02020202010509040200020A56
262 | :10115D000000000705010240000007058102400064
263 | :10116D00000904030001020201000524001001051D
264 | :10117D00240100010424020205240603020705844C
265 | :10118D00030800FF040309040803410052004D0049
266 | :10119D0024034400410050004C0069006E006B00B8
267 | :1011AD00200043004D005300490053002D00440022
268 | :1011BD00410050001A033300560033002D00490042
269 | :1011CD004F002D00310032003300340035001A037A
270 | :1011DD0043004D005300490053002D0044004100D1
271 | :1011ED0050002000760032001E03440041005000E4
272 | :1011FD004C0069006E006B002D004300440043005D
273 | :10120D00450078007400050F280002071002000049
274 | :10121D0000001C100500DF60DDD88945C74C9CD24D
275 | :10122D00659D9E648A9F00000306AA0020000A00A7
276 | :10123D00000000000306AA00080002000000A00044
277 | :10124D001400030057494E555342000000000000A2
278 | :10125D00000000008400040007002A00440065001F
279 | :10126D00760069006300650049006E00740065003A
280 | :10127D00720066006100630065004700550049007B
281 | :10128D0044007300000050007B0043004400420006
282 | :10129D00330042003500410044002D00320039007A
283 | :1012AD00330042002D0034003600360033002D008F
284 | :1012BD0041004100330036002D0031004100410056
285 | :1012CD004500340036003400360033003700370057
286 | :0812DD0036007D000000000056
287 | :101B1E0001B20002A7000007AB00E10000000008C0
288 | :051B2E00031500380062
289 | :10186500C2EAE4F5E275D18053D1FB53E2BF75EDD1
290 | :101875000075EC0053EAF375DC0275EF0075EE4078
291 | :1018850043EAC053EAEF75D21275E50175E40075B8
292 | :10189500E70275E60043EB4853EBEE75D41275D6B7
293 | :1018A5001AF5E343E22943D10175D8FF75E107D263
294 | :0218B500EA2225
295 | :0300430002060AA8
296 | :0D060A00C0E0C0F0C083C082C0D075D00831
297 | :1006170020D903020A18E5D9543F70030209EA14E6
298 | :10062700604D24E1700302098A14603324FE601DC3
299 | :1006370024F36049242E6003020A1620DE03020A0F
300 | :100647001678A0744026F6E6F5E4020A1678B27624
301 | :100657000075D700E5D654FC4402F5D6020A167594
302 | :10066700D300C201E5D254FC4402F5D2020A162097
303 | :10067700DE03020A16AFDB1218B7020A1685DB2162
304 | :10068700E5216408600302095C900006E078A9F69A
305 | :10069700A3E0600276FF752100900001E078AAF6DA
306 | :1006A700900000E0546024E070030208C024E0706A
307 | :1006B700030208E82440600302090F78AAE6B40B96
308 | :1006C7000040030208BE9006D4F828287302089F4A
309 | :1006D7000207E40208BE02081F0208BE0207AB02B7
310 | :1006E70006F50208BE0207B50207D10209129000FB
311 | :1006F70003E024FE602014602C24F47003020799A1
312 | :10070700240E60030207A87512FF75131175141DD7
313 | :100717007521120209127512FF75131175142F75C1
314 | :100727002162020912900002E014601F14602B146A
315 | :10073700603714603F14604B240570657512FF75B0
316 | :1007470013117514917521040209127512FF75139F
317 | :10075700117514957521080209127512FF75131189
318 | :1007670075149D7521240209127512FF75131175F1
319 | :1007770014C180097512FF7513117514DB75211AE1
320 | :100787000209127512FF7513117514F575211E02F2
321 | :1007970009127512FF7513127514137521280209B2
322 | :1007A7001202090F900002E078A9F6020912789D5B
323 | :1007B700E6900000F078A9E6C39401748094805015
324 | :1007C70003020912752101020912900002E0789DC7
325 | :1007D700F6700302091278B376010209129000003D
326 | :1007E700E0541F6402702E900004E024FE601D2474
327 | :1007F70081600E14701CE5D454BC4402F5D4020980
328 | :1008070012E5D254BC4402F5D202091253D4730242
329 | :10081700091202090F02090F900000E0541FFD7C26
330 | :10082700007020900003E0FE900002E0FBEB640103
331 | :100837004E700D9011369330E50302091202090F2D
332 | :1008470002090FED64024C704D900003E0FE90002A
333 | :1008570002E0FDED4E703D900005E0FE900004E0E3
334 | :10086700FDEDFFEE702CEF24FE6012248160191459
335 | :100877007020E5D454BF4403F5D4020912E5D454DB
336 | :100887007F440CF5D4020912E5D254BF4403F5D2D4
337 | :1008970080798074807280707512007513007514EA
338 | :1008A700A778A9E6FFC39402748094804005752158
339 | :1008B7000280588F218054804F900000E0541F64BD
340 | :1008C70001704878AAE624E0604124FE603D047088
341 | :1008D7000E7512007513007514AB752107802C80F7
342 | :1008E70027900000E0541F702278AAE624E07016D3
343 | :1008F700900004E0640770137512FF7513127514E6
344 | :100907003B7521AA800580007521FFAF21EF604864
345 | :10091700F4604578A9E6D395214002A62178A9E697
346 | :10092700FFC394407480948040047F4080008F21EF
347 | :100937007E0078007C007D01AB12AA13A914120B6C
348 | :100947001BC378A9E69521F6E5212514F514E435AE
349 | :1009570013F51380037521FFAF217E00EFF4700AB2
350 | :1009670078AA76FF75DCCF020A16D3EF9440EE64BF
351 | :1009770080948050058521DD800375DD0075DCC01E
352 | :10098700020A1678AAE624FB604624E56004241AC6
353 | :10099700704978A9E6FFC394407480948040047F2F
354 | :1009A7004080008F217E0078007C007D01AB12AA79
355 | :1009B70013A914120B1BC378A9E69521F6E5212587
356 | :1009C70014F514E43513F5138521DD63DC40803F0E
357 | :1009D700E5E3548078A946F5E3800375DD0075DC0F
358 | :1009E70002802C85DB2178AAE66420701F30DE1C8C
359 | :1009F700AFDBFE087C00FD7B017A007900120B1B40
360 | :100A07007B007A0079AB1217AE75DD0063DC80C21C
361 | :100A1700D930D81675DC0275D21075D41275E3007B
362 | :100A2700C2DAC2D978B27600C2D830DA09C2DAE5BA
363 | :090A3700DA30E205800375D8FFF6
364 | :0B0A4000D0D0D082D083D0F0D0E032C4
365 | :10146700E4F527121B8F7F057E00121B6312186598
366 | :10147700121A015392EF4393105392DF439320D2F2
367 | :10148700AFE4F5D3F5D578B3F678A0F678A6F67875
368 | :101497009FF678A1F678B2F6C202F510F511789D9D
369 | :1014A700E660FB120F3078B2E66401601C78A1E6B3
370 | :1014B700FF789F66601378B2760178A2E6F5D78F3A
371 | :1014C700E653D6FC18744026F6300209C291E4F5BB
372 | :1014D70010F511801F0511E51170020510AF107E80
373 | :1014E70000EF64107002D291EF64C04E7006F510E1
374 | :1014F700F511C291E5B930E3AAE4F5E275D1807F31
375 | :0E1507000AFE121B63AA16A917120CFE80958D
376 | :1017AE00E4F525F524F523F522900003120B5AF5E6
377 | :1017BE0022900002120B5AF523900001120B5AF5DB
378 | :1017CE0024120B41F525C2ACE47F08FEFDFCAB25CF
379 | :1017DE00AA24A923A822120BBBE42FFFEE3424FE69
380 | :1017EE00ED34F4FDE43CFCE47B10FAF9F8120C46FF
381 | :1017FE00AB25AA24A923A822120C46EFF404F58DDA
382 | :02180E00D2AC5A
383 | :0118100022B5
384 | :1019D20053927F439380D2975392DF439320D295C1
385 | :1019E2005392BF5393BFC2945392EF439310D2B416
386 | :0F19F2005396EF439710D2B25396FB43970422BC
387 | :101BB800C2945392DF5393DF53927F53937FC2B4FF
388 | :031BC800C2B22284
389 | :1018110075341EE4F535F536F5377D34FF1213A81E
390 | :10182100E4F5347D347F081213A87534127537231B
391 | :101831007D347F011213A875340C7535EDE4F5364E
392 | :101841007537E07D347F051213A8753407E4F5354B
393 | :101851007536FA7537057D347F0D1213A87D347FF7
394 | :041861000E0213A8B8
395 | :101B01007808D297139295C297D8F7D2972278087E
396 | :0A1B1100C297A29513D297D8F722CD
397 | :101B34008AA0EFC39409400904FFE3121B01098042
398 | :081B4400F1EFF8E3121B03228C
399 | :101ADD00D295439220C2B28AA0EFC3940940090463
400 | :101AED00FF121B0FF30980F1EFF8121B11F3D2B2A5
401 | :041AFD005392DF22FF
402 | :1013A800EDF9EF53E00F2330D002D2E543E081128C
403 | :1013B8001B01D295439220C2B27804121B11C403B8
404 | :1013C80053E007CFBF017820E136C2970000D297DB
405 | :1013D8007D00D2B25392DFE730D0010D121B010914
406 | :1013E800E730D0010D121B0109E730D0010D121BA7
407 | :1013F8000109E730D0010D121B01ED1392958038D9
408 | :101408007D00121B0F30D0010DF709121B0F30D0D1
409 | :10141800010DF709121B0F30D0010DF709121B0F30
410 | :1014280030D0010DF7C297E4A29533D2976D30E022
411 | :10143800027F08D2B25392DFC2970000D29722BF30
412 | :101448000202800BBF020280067F10782280027899
413 | :0F14580001C2970000D297D8F8D2B25392DF2288
414 | :101A0100E4F519F518F51AC200C20143960343978C
415 | :101A110003C2CDC2CC438780E589540F4420F589A8
416 | :0E1A210043C9A0758DF7D28E759850D2AC22B5
417 | :1018B7008F22900040C3E518951914C39F402875DF
418 | :1018C700A003A819E0F2A308DFFA8819200009A8E5
419 | :1018D70018E2F5990518D200C3E518951914C394B1
420 | :1018E70040400453D2F322E5D254F34408F5D22200
421 | :0118F70022CE
422 | :101BDD008F26784005A290008015A2E608A5DFFBB0
423 | :021BED002222B2
424 | :101BA400E51A600FFF121BDD851AD3E4F51A53D230
425 | :041BB400FCD201223C
426 | :0300230002174A77
427 | :10174A00C0E0C0F0C083C082C0D075D008309821F4
428 | :10175A007440251AF8A699051AD3E51A944074809C
429 | :10176A0094804003751A00C29820012D121BA48090
430 | :10177A0028309925E5186519600D75830385188247
431 | :10178A00E0F59905188002C200C3E518951914C33B
432 | :10179A009440400353D2F3C299D0D0D082D083D0A0
433 | :0417AA00F0D0E03269
434 | :030000000215B333
435 | :0C15B300787FE4F6D8FD7581B30215FACC
436 | :100A4B00E709F608DFFA8046E709F208DFFA803E8D
437 | :100A5B0088828C83E709F0A3DFFA8032E309F6087A
438 | :100A6B00DFFA8078E309F208DFFA807088828C83E2
439 | :100A7B00E309F0A3DFFA806489828A83E0A3F60896
440 | :100A8B00DFFA805889828A83E0A3F208DFFA804C70
441 | :100A9B0080D280FA80C680D4806980F28033801047
442 | :100AAB0080A680EA809A80A880DA80E280CA8033B0
443 | :100ABB0089828A83ECFAE493A3C8C582C8CCC58328
444 | :100ACB00CCF0A3C8C582C8CCC583CCDFE9DEE780F8
445 | :100ADB000D89828A83E493A3F608DFF9ECFAA9F077
446 | :100AEB00EDFB2289828A83ECFAE0A3C8C582C8CCCD
447 | :100AFB00C583CCF0A3C8C582C8CCC583CCDFEADEE6
448 | :100B0B00E880DB89828A83E493A3F208DFF980CC47
449 | :100B1B0088F0EF60010E4E60C388F0ED2402B40440
450 | :100B2B000050B9F582EB2402B4040050AF232345E7
451 | :060B3B008223900A9B7367
452 | :100B4100BB010689828A83E0225002E722BBFE02B2
453 | :090B5100E32289828A83E49322E5
454 | :100B5A00BB010CE58229F582E5833AF583E0225050
455 | :100B6A0006E92582F8E622BBFE06E92582F8E2229A
456 | :0D0B7A00E58229F582E5833AF583E49322B4
457 | :100B8700BB010689828A83F0225002F722BBFE014D
458 | :020B9700F32247
459 | :100B9900F8BB010DE58229F582E5833AF583E8F092
460 | :100BA900225006E92582C8F622BBFE05E92582C83E
461 | :020BB900F22226
462 | :100BBB00E88FF0A4CC8BF0A42CFCE98EF0A42CFCD9
463 | :100BCB008AF0EDA42CFCEA8EF0A4CDA8F08BF0A457
464 | :100BDB002DCC3825F0FDE98FF0A42CCD35F0FCEBB6
465 | :100BEB008EF0A4FEA9F0EB8FF0A4CFC5F02ECD397B
466 | :0F0BFB00FEE43CFCEAA42DCE35F0FDE43CFC22E8
467 | :100C0A0075F008758200EF2FFFEE33FECD33CDCCA1
468 | :100C1A0033CCC58233C5829BED9AEC99E582984024
469 | :100C2A000CF582EE9BFEED9AFDEC99FC0FD5F0D601
470 | :100C3A00E4CEFBE4CDFAE4CCF9A88222B800C1B92B
471 | :100C4A000059BA002DEC8BF084CFCECDFCE5F0CB69
472 | :100C5A00F97818EF2FFFEE33FEED33FDEC33FCEBA2
473 | :100C6A0033FB10D703994004EB99FB0FD8E5E4F95D
474 | :100C7A00FA227818EF2FFFEE33FEED33FDEC33FC4A
475 | :100C8A00C933C910D7059BE99A4007EC9BFCE99A3E
476 | :100C9A00F90FD8E0E4C9FAE4CCFB2275F010EF2F83
477 | :100CAA00FFEE33FEED33FDCC33CCC833C810D70783
478 | :100CBA009BEC9AE899400AED9BFDEC9AFCE899F8BE
479 | :0E0CCA000FD5F0DAE4CDFBE4CCFAE4C8F92251
480 | :100CD800D083D082F8E4937012740193700DA3A3AB
481 | :100CE80093F8740193F5828883E4737402936860BF
482 | :060CF800EFA3A3A380DFBF
483 | :060CFE008A838982E47381
484 | :1015BF00021467E493A3F8E493A34003F68001F2C7
485 | :1015CF0008DFF48029E493A3F85407240CC8C3332D
486 | :1015DF00C4540F4420C8834004F456800146F6DFFC
487 | :1015EF00E4800B0102040810204080901B1BE47E56
488 | :1015FF00019360BCA3FF543F30E509541FFEE493F1
489 | :10160F00A360010ECF54C025E060A840B8E493A3B7
490 | :10161F00FAE493A3F8E493A3C8C582C8CAC583CAE2
491 | :10162F00F0A3C8C582C8CAC583CADFE9DEE780BE9A
492 | :011B330000B1
493 | :00000001FF
494 |
--------------------------------------------------------------------------------
/CH55x_DAPLink_5V_IO_24M.hex:
--------------------------------------------------------------------------------
1 | :061BF500322E302E3000FC
2 | :031B3600019C000F
3 | :06163F008B2E8A2F89307A
4 | :10164500E4781CF6EF24FE60171460161460162467
5 | :1016550014602B24F2605514603424FE705D800202
6 | :101665008000E48024781C7606E6FF7E00A830AC76
7 | :101675002FAD2E7BFF7A1B79F5120B1B803DAB2E10
8 | :10168500AA2FA9307401120B87781CF6802DAB2E7A
9 | :10169500AA2FA9307440120B87AB2EAA2FA9309020
10 | :1016A5000001E4120B99781C7602800FAB2EAA2F4D
11 | :0F16B500A9307404120B87781C7601781CE6FFAD
12 | :0116C4002203
13 | :101A3000900001120B5AFE120B41FDEE781CF6EDE0
14 | :101A400008F6781C08E616187001161486064E7003
15 | :0C1A5000F1AB31AA32A933120B877F01E1
16 | :011A5C002267
17 | :101A8900120B4114600304700B900001120B5A13DE
18 | :101A99009202800AAB31AA32A93374FF8007AB31B5
19 | :0B1AA900AA32A933E4120B877F012250
20 | :1019A300120B41FF781C700476018002A607781C95
21 | :1019B300E6147009789576011219D38004E4781C33
22 | :0F19C300F6781CE6AB31AA32A933120B877F01ED
23 | :0119D20022F2
24 | :100026008B2E8A2F8930E47895F6121BBEAB2EAA4A
25 | :0A0036002FA930E4120B877F01228E
26 | :100003008B2E8A2F8930121812AB2EAA2FA930906B
27 | :0D0013000001E4120B99E4120B877F02221A
28 | :10151500120B41781CF6900001120B5A781DF690BB
29 | :101525000003120B5AFE900002120B5AFDEE781EB4
30 | :10153500F6ED08F6900004120B5A7008900005129B
31 | :101545000B5A6009781EE64480F608E6F6781DE633
32 | :10155500FF5401600C18E654016004D2978002C262
33 | :1015650097EF5402600D781CE654026004D2958012
34 | :1015750002C295781DE65480600F18E65402600497
35 | :10158500C2948005121812D294A295E43325E0FF87
36 | :10159500A297E4334F781CF6209404E64480F6784D
37 | :0D15A5001CE6AB31AA32A933120B877F017F
38 | :0115B2002216
39 | :101B6700120B417892F6E4F67881F6AB31AA32A9E6
40 | :071B770033120B877F0122EE
41 | :06196E008B2E8A2F893048
42 | :101974000530E5307002052F14F9120B41781CF67E
43 | :10198400E6700276FF781CE6FFAB2EAA2FA9301270
44 | :0E1994001B4FAB31AA32A933E4120B877F013F
45 | :0119A2002222
46 | :101AB400120B41781CF6E6FF540304789AF6EF54AF
47 | :101AC4000460047F0180027F00788CA607AB31AAF2
48 | :091AD40032A933E4120B877F01F3
49 | :011ADD0022E6
50 | :0612E5008B2E8A2F8930D8
51 | :1012EB00AB310533E533AA327002053214F9E4123F
52 | :1012FB000B87781E7601AB2E0530E530AA2F7002D6
53 | :10130B00052F14F9120B4118F6781DE6167003021F
54 | :10131B0013A3AB2E0530E530AA2F7002052F14F95D
55 | :10132B00120B4118F6E6FF543F781FF67002764019
56 | :10133B00EF54806034781FE6FFAB31AA32A9331229
57 | :10134B001ADE781FE62407FFE433FEEF7803CEC3E3
58 | :10135B0013CE13D8F9781FF6E6FF2533F533E435B2
59 | :10136B0032F53218EF26F680A0781FE6FFAB2EAAD7
60 | :10137B002FA930121B4F781FE62407FFE433FEEF33
61 | :10138B007803CEC313CE13D8F9781FF62530F5307A
62 | :0C139B00E4352FF52F021314781EE6FF36
63 | :0113A7002223
64 | :1018F900120B417882F6900002120B5AFE900001F9
65 | :10190900120B5AFDEE7898F6ED08F6900004120BCA
66 | :101919005AFE900003120B5AFDEE7893F6ED08F685
67 | :0D192900AB31AA32A933E4120B877F0122F3
68 | :060046008B348A35893677
69 | :10004C008B3A8A3B893CE47880F6789BF685373D81
70 | :10005C0085383E85393F74022539F539E43538F554
71 | :10006C0038E408F6781DF608F6042536F536E4353E
72 | :10007C0035F535AB340536E536AA35700205351441
73 | :10008C00F9120B41788DF6788DE670030204DAAB29
74 | :10009C00340536E536AA357002053514F9120B41D4
75 | :1000AC007883F6E6FF5402700302039C781DE67019
76 | :1000BC00030201807898E6FC08E6FD7896A6040811
77 | :1000CC00A605EF5411640170267883E6FF7D841237
78 | :1000DC0013A8789BEFF66402703B789608E6161826
79 | :1000EC0086067001164E602D789CE660DC80267DBD
80 | :1000FC00847F0E1213A8789BEFF664027013789627
81 | :10010C0008E6161886067001164E6005789CE660A7
82 | :10011C00DEE4781DF6789BE6640160030204DA786D
83 | :10012C0084E6FFAB370539E539AA38700205381477
84 | :10013C00F9EF120B8708E6FFAB370539E539AA381A
85 | :10014C007002053814F9EF120B8708E6FFAB370580
86 | :10015C0039E539AA387002053814F9EF120B870803
87 | :10016C00E6FFAB370539E539AA387002053814F9C2
88 | :10017C00EF120B877883E6FF541070030202BEABBC
89 | :10018C0034AA35A936120B417888F6900001120B6F
90 | :10019C005A7889F6900002120B5A788AF69000036E
91 | :1001AC00120B5A788BF674042536F536E43535F592
92 | :1001BC00357893E6FC08E6FD18A60408A605EF546E
93 | :1001CC0001603D7898E6FE08E6FF7896A60608A63C
94 | :1001DC00077883E6FFE4FD1213A8789BEFF67E0008
95 | :1001EC0064027013789608E6161886047001164C93
96 | :1001FC006005789CE660DAEF64014E60030204DA75
97 | :10020C007898E6FE08E6FF7896A60608A607788397
98 | :10021C00E6FF7D841213A8789BEFF67E00640270D3
99 | :10022C0013789608E6161886047001164C6005784B
100 | :10023C009CE660DAEF64014E703C7984E7788E5668
101 | :10024C00788866701E09E7788F567889667014096D
102 | :10025C00E7789056788A66700A09E7789156788B19
103 | :10026C00666013789308E6161886067001164E60C1
104 | :10027C0005789CE6608A7984E7788E567888667073
105 | :10028C001E09E7788F56788966701409E7789056BE
106 | :10029C00788A66700A09E7789156788B66600678DA
107 | :1002AC009BE64410F6789BE664017003020395020A
108 | :1002BC0004DA7898E6FE08E6FF7896A60608A60704
109 | :1002CC007883E65401603E781DE66003020395785E
110 | :1002DC0083E6FFE4FD1213A8789BEFF67E00640220
111 | :1002EC007013789608E6161886047001164C600593
112 | :1002FC00789CE660DAEF64014E60030204DA781D44
113 | :10030C0076010203957883E6FF7D841213A8789B0F
114 | :10031C00EFF67E0064027013789608E616188604D1
115 | :10032C007001164C6005789CE660DAEF64014E6053
116 | :10033C00030204DA7884E6FFAB370539E539AA38CD
117 | :10034C007002053814F9EF120B8708E6FFAB37057E
118 | :10035C0039E539AA387002053814F9EF120B870801
119 | :10036C00E6FFAB370539E539AA387002053814F9C0
120 | :10037C00EF120B8708E6FFAB370539E539AA387061
121 | :10038C0002053814F9EF120B87E4781EF60204CC40
122 | :10039C00781DE670030204387898E6FE08E6FF78CC
123 | :1003AC0096A60608A6077D847F0E1213A8789BEFED
124 | :1003BC00F67E0064027013789608E61618860470B0
125 | :1003CC0001164C6005789CE660DCEF64014E60031E
126 | :1003DC000204DA7884E6FFAB370539E539AA3870C0
127 | :1003EC0002053814F9EF120B8708E6FFAB37053915
128 | :1003FC00E539AA387002053814F9EF120B8708E6B4
129 | :10040C00FFAB370539E539AA387002053814F9EF16
130 | :10041C00120B8708E6FFAB370539E539AA387002AD
131 | :10042C00053814F9EF120B87E4781DF6AB34AA35B6
132 | :10043C00A936120B417884F6900001120B5A78857C
133 | :10044C00F6900002120B5A7886F6900003120B5AA3
134 | :10045C007887F674042536F536E43535F53578832A
135 | :10046C00E65420601D08E6788EF67885E6788FF6DF
136 | :10047C007886E67890F67887E67891F6789B760120
137 | :10048C00803E7898E6FE08E6FF7896A60608A60752
138 | :10049C007883E6FF7D841213A8789BEFF67E0064C8
139 | :1004AC00027013789608E6161886047001164C60D4
140 | :1004BC0005789CE660DAEF64014E7012781E7601C6
141 | :1004CC00788006789CE67006788D16020093788DFD
142 | :1004DC00E66031AB340536E536AA357002053514C5
143 | :1004EC00F9120B417883F6E6FF54026007EF5410C3
144 | :1004FC00600D800074042536F536E43535F5357815
145 | :10050C008D1680CA789BE6640160030205E9781DAC
146 | :10051C00E670030205B47898E6FE08E6FF7896A626
147 | :10052C000608A6077D847F0E1213A8789BEFF67E33
148 | :10053C000064027013789608E6161886047001168B
149 | :10054C004C6005789CE660DCEF64014E60030205AC
150 | :10055C00E97884E6FFAB370539E539AA387002052E
151 | :10056C003814F9EF120B8708E6FFAB370539E5397C
152 | :10057C00AA387002053814F9EF120B8708E6FFABA6
153 | :10058C00370539E539AA387002053814F9EF120B22
154 | :10059C008708E6FFAB370539E539AA38700205380C
155 | :1005AC0014F9EF120B878035781EE660307898E6E8
156 | :1005BC00FE08E6FF7896A60608A607E4FD7F0E1255
157 | :1005CC0013A8789BEFF664027013789608E6161859
158 | :1005DC0086067001164E6005789CE660DE7880E633
159 | :1005EC00AB3DAA3EA93F120B87789BE6AB3DAA3EDA
160 | :0D05FC00A93F900001120B99C3E53999FF4A
161 | :0106090022CE
162 | :101B9500E4781CF6853137853238853339120046AD
163 | :041BA500781CEFF6C3
164 | :011BA9002219
165 | :060D04008B348A358936AC
166 | :100D0A00E47880F6789BF685373A85383B85393C16
167 | :100D1A0074032539F539E43538F538E408F604253D
168 | :100D2A0036F536E43535F535AB34FAA93690000197
169 | :100D3A00120B5A120B41FF788DF674022536F536DE
170 | :100D4A00E43535F535EF7003020F08AB340536E5A7
171 | :100D5A0036AA357002053514F9120B417883F6E686
172 | :100D6A00FF54027003020E61EF5401603D7898E669
173 | :100D7A00FE08E6FF7896A60608A6077883E6FFE44B
174 | :100D8A00FD1213A8789BEFF67E0064027013789622
175 | :100D9A0008E6161886047001164C6005789CE66011
176 | :100DAA00DAEF64014E6003020F08788DE6167003CD
177 | :100DBA00020F08E670097883E654016002760E781D
178 | :100DCA0098E6FE08E6FF7896A60608A6077883E660
179 | :100DDA00FF7D841213A8789BEFF67E0064027013DD
180 | :100DEA00789608E6161886047001164C6005789CF9
181 | :100DFA00E660DAEF64014E6003020F087884E6FFCA
182 | :100E0A00AB370539E539AA387002053814F9EF12FB
183 | :100E1A000B8708E6FFAB370539E539AA38700205B2
184 | :100E2A003814F9EF120B8708E6FFAB370539E539B5
185 | :100E3A00AA387002053814F9EF120B8708E6FFABDF
186 | :100E4A00370539E539AA387002053814F9EF120B5B
187 | :100E5A0087788006020DB4788DE6166071AB34AAE5
188 | :100E6A0035A936120B417884F6900001120B5A7894
189 | :100E7A0085F6900002120B5A7886F6900003120B40
190 | :100E8A005A7887F674042536F536E43535F535781B
191 | :100E9A0098E6FE08E6FF7896A60608A6077883E68F
192 | :100EAA00FF7D841213A8789BEFF67E00640270130C
193 | :100EBA00789608E6161886047001164C6005789C28
194 | :100ECA00E660DAEF64014E7035788006808978989A
195 | :100EDA00E6FE08E6FF7896A60608A607E4FD7F0E5A
196 | :100EEA001213A8789BEFF664027013789608E61638
197 | :100EFA001886067001164E6005789CE660DE7880DA
198 | :100F0A00E6AB3AAA3BA93C120B87AB3AAA3BA93CEF
199 | :100F1A00900001E4120B99789BE6900002120B995B
200 | :050F2A00C3E53999FF49
201 | :010F2F00229F
202 | :0616C5008B2E8A2F8930F4
203 | :1016CB007895E6147018853137853238853339AB08
204 | :1016DB002EAA2FA930120D04781CA6078021AB313E
205 | :1016EB00AA32A933E4120B87AB31AA32A93390008B
206 | :1016FB0001120B99900002E4120B99781C7603AB44
207 | :10170B002EAA2FA930900003120B5A5402600678B0
208 | :10171B001CE6F68025900002120B5A900001120B6A
209 | :10172B005A75F004A42404FFE435F0FEEF7810C3DF
210 | :0E173B0033CE33CED8F9781C46F6781CE6FF84
211 | :01174900227D
212 | :10193600900001120B5A7884F6900002120B5A7826
213 | :1019460085F6900003120B5A7886F6900004120B67
214 | :101956005A7887F67D84E4FF1213A8AB37AA38A914
215 | :0819660039E4120B877F012216
216 | :101A5D007895E61470128531378532388533391211
217 | :101A6D001936781CA607800FAB31AA32A93374FF43
218 | :0B1A7D00120B87781C7601781CE6FF36
219 | :011A8800223B
220 | :0C0F300078A6E6FF78A066700302111C92
221 | :100F3C007E0074002FF9EE3401752801F529892AF9
222 | :100F4C00789FE62400F9EE3402752B01F52C892DDF
223 | :100F5C0078A6744026F6AB28AA29A92A120B41FFC1
224 | :100F6C00AB2B052DE52DAA2C7002052C14F9EF12D4
225 | :100F7C000B87AB28052AE52AAA297002052914F942
226 | :100F8C00120B41120CD80FED00101601102B021091
227 | :100F9C00400310D1040FC3050FD80610E508104C00
228 | :100FAC000910610A106D1010811110951210A913FF
229 | :100FBC0010BD1D000010FD852B31852C32852D3385
230 | :100FCC00AB28AA29A92A121B950210F7852B31856B
231 | :100FDC002C32852D33AB28AA29A92A1216C502104A
232 | :100FEC00F7AB28AA29A92A120B41FFAB2BE52D241C
233 | :100FFC0001F9E4352CFA12163F781BEFF6AB2BAA4D
234 | :10100C002CA92D120B870602110F852B31852C3242
235 | :10101C00852D33AB28AA29A92A121A890210F78523
236 | :10102C002B31852C32852D33AB28AA29A92A1219EC
237 | :10103C00A30210F7AB2BAA2CA92D1200260210F735
238 | :10104C00852B31852C32852D33AB28AA29A92A1260
239 | :10105C001A300210F7AB2BAA2CA92D120003021088
240 | :10106C00F7852B31852C32852D33AB28AA29A92A5B
241 | :10107C001215158076852B31852C32852D33AB28B6
242 | :10108C00AA29A92A121B678062852B31852C3285EF
243 | :10109C002D33AB28AA29A92A12196E804E852B3123
244 | :1010AC00852C32852D33AB28AA29A92A121AB48093
245 | :1010BC003A852B31852C32852D33AB28AA29A92AC8
246 | :1010CC001212E58026852B31852C32852D33AB28E9
247 | :1010DC00AA29A92A1218F98012852B31852C328560
248 | :1010EC002D33AB28AA29A92A121A5D781BA60780D2
249 | :1010FC0012AB2BAA2CA92D90FFFF74FF120B997821
250 | :10110C001B7601781BE60479A2F7789F744026F6CB
251 | :01111C0022B0
252 | :101BD10075A15575A1AAE5B954F84406F5B9E4F51E
253 | :021BE100A1223F
254 | :101B0200EF4E601505A105A105A105A105A105A13D
255 | :0A1B120005A1EF1F70EA1E80E72214
256 | :101B7E00AD07AC06ED4C600E7FE87E03121B02ED46
257 | :071B8E001D70F11C80EE2226
258 | :10111D0012011002EF020140280D0402000101022C
259 | :10112D0003010902620003010080FA0904000002B4
260 | :10113D00FF0000040705020240000007058302407E
261 | :10114D000000080B02020202010509040200020A56
262 | :10115D000000000705010240000007058102400064
263 | :10116D00000904030001020201000524001001051D
264 | :10117D00240100010424020205240603020705844C
265 | :10118D00030800FF040309040803410052004D0049
266 | :10119D0024034400410050004C0069006E006B00B8
267 | :1011AD00200043004D005300490053002D00440022
268 | :1011BD00410050001A033500560030002D00490043
269 | :1011CD004F002D00310032003300340035001A037A
270 | :1011DD0043004D005300490053002D0044004100D1
271 | :1011ED0050002000760032001E03440041005000E4
272 | :1011FD004C0069006E006B002D004300440043005D
273 | :10120D00450078007400050F280002071002000049
274 | :10121D0000001C100500DF60DDD88945C74C9CD24D
275 | :10122D00659D9E648A9F00000306AA0020000A00A7
276 | :10123D00000000000306AA00080002000000A00044
277 | :10124D001400030057494E555342000000000000A2
278 | :10125D00000000008400040007002A00440065001F
279 | :10126D00760069006300650049006E00740065003A
280 | :10127D00720066006100630065004700550049007B
281 | :10128D0044007300000050007B0043004400420006
282 | :10129D00330042003500410044002D00320039007A
283 | :1012AD00330042002D0034003600360033002D008F
284 | :1012BD0041004100330036002D0031004100410056
285 | :1012CD004500340036003400360033003700370057
286 | :0812DD0036007D000000000056
287 | :101B390001B20002A7000007AB00E10000000008A5
288 | :051B4900031500380047
289 | :10186600C2EAE4F5E275D18053D1FB53E2BF75EDD0
290 | :101876000075EC0053EAF375DC0275EF0075EE4077
291 | :1018860043EAC053EAEF75D21275E50175E40075B7
292 | :10189600E70275E60043EB4853EBEE75D41275D6B6
293 | :1018A6001AF5E343E22943D10175D8FF75E107D262
294 | :0218B600EA2224
295 | :0300430002060AA8
296 | :0D060A00C0E0C0F0C083C082C0D075D00831
297 | :1006170020D903020A18E5D9543F70030209EA14E6
298 | :10062700604D24E1700302098A14603324FE601DC3
299 | :1006370024F36049242E6003020A1620DE03020A0F
300 | :100647001678A0744026F6E6F5E4020A1678B27624
301 | :100657000075D700E5D654FC4402F5D6020A167594
302 | :10066700D300C201E5D254FC4402F5D2020A162097
303 | :10067700DE03020A16AFDB1218B8020A1685DB2161
304 | :10068700E5216408600302095C900006E078A9F69A
305 | :10069700A3E0600276FF752100900001E078AAF6DA
306 | :1006A700900000E0546024E070030208C024E0706A
307 | :1006B700030208E82440600302090F78AAE6B40B96
308 | :1006C7000040030208BE9006D4F828287302089F4A
309 | :1006D7000207E40208BE02081F0208BE0207AB02B7
310 | :1006E70006F50208BE0207B50207D10209129000FB
311 | :1006F70003E024FE602014602C24F47003020799A1
312 | :10070700240E60030207A87512FF75131175141DD7
313 | :100717007521120209127512FF75131175142F75C1
314 | :100727002162020912900002E014601F14602B146A
315 | :10073700603714603F14604B240570657512FF75B0
316 | :1007470013117514917521040209127512FF75139F
317 | :10075700117514957521080209127512FF75131189
318 | :1007670075149D7521240209127512FF75131175F1
319 | :1007770014C180097512FF7513117514DB75211AE1
320 | :100787000209127512FF7513117514F575211E02F2
321 | :1007970009127512FF7513127514137521280209B2
322 | :1007A7001202090F900002E078A9F6020912789D5B
323 | :1007B700E6900000F078A9E6C39401748094805015
324 | :1007C70003020912752101020912900002E0789DC7
325 | :1007D700F6700302091278B376010209129000003D
326 | :1007E700E0541F6402702E900004E024FE601D2474
327 | :1007F70081600E14701CE5D454BC4402F5D4020980
328 | :1008070012E5D254BC4402F5D202091253D4730242
329 | :10081700091202090F02090F900000E0541FFD7C26
330 | :10082700007020900003E0FE900002E0FBEB640103
331 | :100837004E700D9011369330E50302091202090F2D
332 | :1008470002090FED64024C704D900003E0FE90002A
333 | :1008570002E0FDED4E703D900005E0FE900004E0E3
334 | :10086700FDEDFFEE702CEF24FE6012248160191459
335 | :100877007020E5D454BF4403F5D4020912E5D454DB
336 | :100887007F440CF5D4020912E5D254BF4403F5D2D4
337 | :1008970080798074807280707512007513007514EA
338 | :1008A700A778A9E6FFC39402748094804005752158
339 | :1008B7000280588F218054804F900000E0541F64BD
340 | :1008C70001704878AAE624E0604124FE603D047088
341 | :1008D7000E7512007513007514AB752107802C80F7
342 | :1008E70027900000E0541F702278AAE624E07016D3
343 | :1008F700900004E0640770137512FF7513127514E6
344 | :100907003B7521AA800580007521FFAF21EF604864
345 | :10091700F4604578A9E6D395214002A62178A9E697
346 | :10092700FFC394407480948040047F4080008F21EF
347 | :100937007E0078007C007D01AB12AA13A914120B6C
348 | :100947001BC378A9E69521F6E5212514F514E435AE
349 | :1009570013F51380037521FFAF217E00EFF4700AB2
350 | :1009670078AA76FF75DCCF020A16D3EF9440EE64BF
351 | :1009770080948050058521DD800375DD0075DCC01E
352 | :10098700020A1678AAE624FB604624E56004241AC6
353 | :10099700704978A9E6FFC394407480948040047F2F
354 | :1009A7004080008F217E0078007C007D01AB12AA79
355 | :1009B70013A914120B1BC378A9E69521F6E5212587
356 | :1009C70014F514E43513F5138521DD63DC40803F0E
357 | :1009D700E5E3548078A946F5E3800375DD0075DC0F
358 | :1009E70002802C85DB2178AAE66420701F30DE1C8C
359 | :1009F700AFDBFE087C00FD7B017A007900120B1B40
360 | :100A07007B007A0079AB12174A75DD0063DC80C280
361 | :100A1700D930D81675DC0275D21075D41275E3007B
362 | :100A2700C2DAC2D978B27600C2D830DA09C2DAE5BA
363 | :090A3700DA30E205800375D8FFF6
364 | :0B0A4000D0D0D082D083D0F0D0E032C4
365 | :10146700E4F527121BD17F057E00121B7E1218663A
366 | :10147700121A025392EF4393105392DF439320D2F1
367 | :10148700AFE4F5D3F5D578B3F678A0F678A6F67875
368 | :101497009FF678A1F678B2F6C202F510F511789D9D
369 | :1014A700E660FB120F3078B2E66401601C78A1E6B3
370 | :1014B700FF789F66601378B2760178A2E6F5D78F3A
371 | :1014C700E653D6FC18744026F6300209C291E4F5BB
372 | :1014D70010F511801F0511E51170020510AF107E80
373 | :1014E70000EF64107002D291EF64F04E7006F510B1
374 | :1014F700F511C291E5B930E3AAE4F5E275D1807F31
375 | :0E1507000AFE121B7EAA16A917120CFE809572
376 | :10174A00E4F525F524F523F522900003120B5AF54A
377 | :10175A0022900002120B5AF523900001120B5AF53F
378 | :10176A0024120B41F525C2ACE47F08FEFDFCAB2533
379 | :10177A00AA24A923A822120BBBE42FFFEE3436FEBB
380 | :10178A00ED346EFDEC3401FCE47B10FAF9F8120C2E
381 | :10179A0046AB25AA24A923A822120C46EFF404F585
382 | :0317AA008DD2AC31
383 | :0117AD002219
384 | :1019D30053927F439380D2975392DF439320D295C0
385 | :1019E3005392BF5393BFC2945392EF439310D2B415
386 | :0F19F3005396EF439710D2B25396FB43970422BB
387 | :101BBE00C2945392DF5393DF53927F53937FC2B4F9
388 | :031BCE00C2B2227E
389 | :1018120075341EE4F535F536F5377D34FF1213A81D
390 | :10182200E4F5347D347F081213A87534127537231A
391 | :101832007D347F011213A875340C7535EDE4F5364D
392 | :101842007537E07D347F051213A8753407E4F5354A
393 | :101852007536FA7537057D347F0D1213A87D347FF6
394 | :041862000E0213A8B7
395 | :101B1C007808D297139295C297D8F7D29722780863
396 | :0A1B2C00C297A29513D297D8F722B2
397 | :101B4F008AA0EFC39409400904FFE3121B1C09800C
398 | :081B5F00F1EFF8E3121B1E2256
399 | :101ADE00D295439220C2B28AA0EFC3940940090462
400 | :101AEE00FF121B2AF30980F1EFF8121B2CF3D2B26E
401 | :041AFE005392DF22FE
402 | :1013A800EDF9EF53E00F2330D002D2E543E081128C
403 | :1013B8001B1CD295439220C2B27804121B2CC40382
404 | :1013C80053E007CFBF017820E136C2970000D297DB
405 | :1013D8007D00D2B25392DFE730D0010D121B1C09F9
406 | :1013E800E730D0010D121B1C09E730D0010D121B8C
407 | :1013F8001C09E730D0010D121B1CED1392958038A3
408 | :101408007D00121B2A30D0010DF709121B2A30D09B
409 | :10141800010DF709121B2A30D0010DF709121B2AFA
410 | :1014280030D0010DF7C297E4A29533D2976D30E022
411 | :10143800027F08D2B25392DFC2970000D29722BF30
412 | :101448000202800BBF020280067F10782280027899
413 | :0F14580001C2970000D297D8F8D2B25392DF2288
414 | :101A0200E4F519F518F51AC200C20143960343978B
415 | :101A120003C2CDC2CC438780E589540F4420F589A7
416 | :0E1A220043C9A0758DF3D28E759850D2AC22B8
417 | :1018B8008F22900040C3E518951914C39F402875DE
418 | :1018C800A003A819E0F2A308DFFA8819200009A8E4
419 | :1018D80018E2F5990518D200C3E518951914C394B0
420 | :1018E80040400453D2F322E5D254F34408F5D222FF
421 | :0118F80022CD
422 | :101BE3008F26784005A290008015A2E608A5DFFBAA
423 | :021BF3002222AC
424 | :101BAA00E51A600FFF121BE3851AD3E4F51A53D224
425 | :041BBA00FCD2012236
426 | :030023000217AE13
427 | :1017AE00C0E0C0F0C083C082C0D075D00830982190
428 | :1017BE007440251AF8A699051AD3E51A9440748038
429 | :1017CE0094804003751A00C29820012D121BAA8026
430 | :1017DE0028309925E5186519600D758303851882E3
431 | :1017EE00E0F59905188002C200C3E518951914C3D7
432 | :1017FE009440400353D2F3C299D0D0D082D083D03C
433 | :04180E00F0D0E03204
434 | :030000000215B333
435 | :0C15B300787FE4F6D8FD7581B30215FACC
436 | :100A4B00E709F608DFFA8046E709F208DFFA803E8D
437 | :100A5B0088828C83E709F0A3DFFA8032E309F6087A
438 | :100A6B00DFFA8078E309F208DFFA807088828C83E2
439 | :100A7B00E309F0A3DFFA806489828A83E0A3F60896
440 | :100A8B00DFFA805889828A83E0A3F208DFFA804C70
441 | :100A9B0080D280FA80C680D4806980F28033801047
442 | :100AAB0080A680EA809A80A880DA80E280CA8033B0
443 | :100ABB0089828A83ECFAE493A3C8C582C8CCC58328
444 | :100ACB00CCF0A3C8C582C8CCC583CCDFE9DEE780F8
445 | :100ADB000D89828A83E493A3F608DFF9ECFAA9F077
446 | :100AEB00EDFB2289828A83ECFAE0A3C8C582C8CCCD
447 | :100AFB00C583CCF0A3C8C582C8CCC583CCDFEADEE6
448 | :100B0B00E880DB89828A83E493A3F208DFF980CC47
449 | :100B1B0088F0EF60010E4E60C388F0ED2402B40440
450 | :100B2B000050B9F582EB2402B4040050AF232345E7
451 | :060B3B008223900A9B7367
452 | :100B4100BB010689828A83E0225002E722BBFE02B2
453 | :090B5100E32289828A83E49322E5
454 | :100B5A00BB010CE58229F582E5833AF583E0225050
455 | :100B6A0006E92582F8E622BBFE06E92582F8E2229A
456 | :0D0B7A00E58229F582E5833AF583E49322B4
457 | :100B8700BB010689828A83F0225002F722BBFE014D
458 | :020B9700F32247
459 | :100B9900F8BB010DE58229F582E5833AF583E8F092
460 | :100BA900225006E92582C8F622BBFE05E92582C83E
461 | :020BB900F22226
462 | :100BBB00E88FF0A4CC8BF0A42CFCE98EF0A42CFCD9
463 | :100BCB008AF0EDA42CFCEA8EF0A4CDA8F08BF0A457
464 | :100BDB002DCC3825F0FDE98FF0A42CCD35F0FCEBB6
465 | :100BEB008EF0A4FEA9F0EB8FF0A4CFC5F02ECD397B
466 | :0F0BFB00FEE43CFCEAA42DCE35F0FDE43CFC22E8
467 | :100C0A0075F008758200EF2FFFEE33FECD33CDCCA1
468 | :100C1A0033CCC58233C5829BED9AEC99E582984024
469 | :100C2A000CF582EE9BFEED9AFDEC99FC0FD5F0D601
470 | :100C3A00E4CEFBE4CDFAE4CCF9A88222B800C1B92B
471 | :100C4A000059BA002DEC8BF084CFCECDFCE5F0CB69
472 | :100C5A00F97818EF2FFFEE33FEED33FDEC33FCEBA2
473 | :100C6A0033FB10D703994004EB99FB0FD8E5E4F95D
474 | :100C7A00FA227818EF2FFFEE33FEED33FDEC33FC4A
475 | :100C8A00C933C910D7059BE99A4007EC9BFCE99A3E
476 | :100C9A00F90FD8E0E4C9FAE4CCFB2275F010EF2F83
477 | :100CAA00FFEE33FEED33FDCC33CCC833C810D70783
478 | :100CBA009BEC9AE899400AED9BFDEC9AFCE899F8BE
479 | :0E0CCA000FD5F0DAE4CDFBE4CCFAE4C8F92251
480 | :100CD800D083D082F8E4937012740193700DA3A3AB
481 | :100CE80093F8740193F5828883E4737402936860BF
482 | :060CF800EFA3A3A380DFBF
483 | :060CFE008A838982E47381
484 | :1015BF00021467E493A3F8E493A34003F68001F2C7
485 | :1015CF0008DFF48029E493A3F85407240CC8C3332D
486 | :1015DF00C4540F4420C8834004F456800146F6DFFC
487 | :1015EF00E4800B0102040810204080901B36E47E3B
488 | :1015FF00019360BCA3FF543F30E509541FFEE493F1
489 | :10160F00A360010ECF54C025E060A840B8E493A3B7
490 | :10161F00FAE493A3F8E493A3C8C582C8CAC583CAE2
491 | :10162F00F0A3C8C582C8CAC583CADFE9DEE780BE9A
492 | :011B4E000096
493 | :00000001FF
494 |
--------------------------------------------------------------------------------
/CH55x_DAPLink_5V_SPI_24M.hex:
--------------------------------------------------------------------------------
1 | :061CFF00322E302E3000F1
2 | :031C6F00019A00D7
3 | :0616C7008B2E8A2F8930F2
4 | :1016CD00E4781CF6EF24FE601714601614601624DF
5 | :1016DD0014602B24F2605514603424FE705D80027A
6 | :1016ED008000E48024781C7606E6FF7E00A830ACEE
7 | :1016FD002FAD2E7BFF7A1C79FF120B1B803DAB2E7D
8 | :10170D00AA2FA9307401120B87781CF6802DAB2EF1
9 | :10171D00AA2FA9307440120B87AB2EAA2FA9309097
10 | :10172D000001E4120B99781C7602800FAB2EAA2FC4
11 | :0F173D00A9307404120B87781C7601781CE6FF24
12 | :01174C00227A
13 | :101B6B00900001120B5AFE120B41FDEE781CF6EDA4
14 | :101B7B0008F6781C08E616187001161486064E70C7
15 | :0C1B8B00F1AB31AA32A933120B877F01A5
16 | :011B9700222B
17 | :101BC400120B4114600304700B900001120B5A13A2
18 | :101BD4009202800AAB31AA32A93374FF8007AB3179
19 | :0B1BE400AA32A933E4120B877F012214
20 | :101ADE00120B41FF781C700476018002A607781C59
21 | :101AEE00E614700978937601121AA98004E4781C22
22 | :0F1AFE00F6781CE6AB31AA32A933120B877F01B1
23 | :011B0D0022B5
24 | :101C3B008B2E8A2F8930E47893F6121CC8AB2EAA10
25 | :0A1C4B002FA930E4120B877F01225D
26 | :100003008B2E8A2F8930121918AB2EAA2FA9309064
27 | :0D0013000001E4120B99E4120B877F02221A
28 | :10159D00120B41781CF6900001120B5A781DF69033
29 | :1015AD000003120B5AFE900002120B5AFDEE781E2C
30 | :1015BD00F6ED08F6900004120B5A70089000051213
31 | :1015CD000B5A6009781EE64480F608E6F6781DE6AB
32 | :1015DD00FF5401600C18E654016004D2978002C2DA
33 | :1015ED0097EF5402600D781CE654026004D295808A
34 | :1015FD0002C295781DE65480600F18E6540260040F
35 | :10160D00C2948005121918D294A295E43325E0FFF7
36 | :10161D00A297E4334F781CF6209404E64480F678C4
37 | :0D162D001CE6AB31AA32A933120B877F01F6
38 | :01163A00228D
39 | :0617D2008B2E8A2F8930E6
40 | :1017D800AB31AA32A933E4120B87AB2EAA2FA9305A
41 | :1017E800900003120B5A60028013900002120B5AE9
42 | :1017F800FFFD7C00D3949774809480400675FB02AB
43 | :101808007F0122D3ED9479EC64809480400675FBC7
44 | :10181800037F0122EFFD7C00D3945A7480948040AA
45 | :101828000675FB047F0122D3ED9402EC648094805A
46 | :10183800500675FBF07F0122EFFD7C007E017F6E74
47 | :07184800120BBB8FFB7F01B7
48 | :01184F002276
49 | :061A74008B2E8A2F893041
50 | :101A7A000530E5307002052F14F9120B41781CF677
51 | :101A8A00E6700276FF781CE6FFAB2EAA2FA9301269
52 | :0E1A9A001C19AB31AA32A933E4120B877F016D
53 | :011AA800221B
54 | :101BEF00120B41781CF6E6FF5403047898F6EF5475
55 | :101BFF000460047F0180027F00788BA607AB31AAB7
56 | :091C0F0032A933E4120B877F01B6
57 | :011C180022A9
58 | :06142C008B2E8A2F89308F
59 | :10143200AB310533E533AA327002053214F9E412F6
60 | :101442000B87781E7601AB2E0530E530AA2F70028D
61 | :10145200052F14F9120B4118F6781DE616700302D7
62 | :1014620014EAAB2E0530E530AA2F7002052F14F9CD
63 | :10147200120B4118F6E6FF543F781FF670027640D1
64 | :10148200EF54806034781FE6FFAB31AA32A93312E1
65 | :101492001B0E781FE62407FFE433FEEF7803CEC36A
66 | :1014A20013CE13D8F9781FF6E6FF2533F533E4356A
67 | :1014B20032F53218EF26F680A0781FE6FFAB2EAA8F
68 | :1014C2002FA930121C19781FE62407FFE433FEEF20
69 | :1014D2007803CEC313CE13D8F9781FF62530F53032
70 | :0C14E200E4352FF52F02145B781EE6FFA6
71 | :0114EE0022DB
72 | :1019FF00120B417881F6900002120B5AFE900001F3
73 | :101A0F00120B5AFDEE7896F6ED08F6900004120BC5
74 | :101A1F005AFE900003120B5AFDEE7891F6ED08F680
75 | :0D1A2F00AB31AA32A933E4120B877F0122EC
76 | :060046008B348A35893677
77 | :10004C008B3A8A3B893CE47880F67899F685373D83
78 | :10005C0085383E85393F74022539F539E43538F554
79 | :10006C0038E408F6781DF608F6042536F536E4353E
80 | :10007C0035F535AB340536E536AA35700205351441
81 | :10008C00F9120B41788CF6788CE670030204DAAB2B
82 | :10009C00340536E536AA357002053514F9120B41D4
83 | :1000AC007882F6E6FF5402700302039C781DE6701A
84 | :1000BC00030201807896E6FC08E6FD7894A6040815
85 | :1000CC00A605EF5411640170267882E6FF7D831239
86 | :1000DC00133A7899EFF66402703B789408E6161898
87 | :1000EC0086067001164E602D789AE660DC80267DBF
88 | :1000FC00837F0E12133A7899EFF66402701378949A
89 | :10010C0008E6161886067001164E6005789AE660A9
90 | :10011C00DEE4781DF67899E6640160030204DA786F
91 | :10012C0083E6FFAB370539E539AA38700205381478
92 | :10013C00F9EF120B8708E6FFAB370539E539AA381A
93 | :10014C007002053814F9EF120B8708E6FFAB370580
94 | :10015C0039E539AA387002053814F9EF120B870803
95 | :10016C00E6FFAB370539E539AA387002053814F9C2
96 | :10017C00EF120B877882E6FF541070030202BEABBD
97 | :10018C0034AA35A936120B417887F6900001120B70
98 | :10019C005A7888F6900002120B5A7889F690000370
99 | :1001AC00120B5A788AF674042536F536E43535F593
100 | :1001BC00357891E6FC08E6FD18A60408A605EF5470
101 | :1001CC0001603D7896E6FE08E6FF7894A60608A640
102 | :1001DC00077882E6FFE4FD12133A7899EFF67E0079
103 | :1001EC0064027013789408E6161886047001164C95
104 | :1001FC006005789AE660DAEF64014E60030204DA77
105 | :10020C007896E6FE08E6FF7894A60608A60778829C
106 | :10021C00E6FF7D8312133A7899EFF67E0064027044
107 | :10022C0013789408E6161886047001164C6005784D
108 | :10023C009AE660DAEF64014E703C7983E7788D566C
109 | :10024C00788766701E09E7788E5678886670140970
110 | :10025C00E7788F56788966700A09E7789056788A1D
111 | :10026C00666013789108E6161886067001164E60C3
112 | :10027C0005789AE6608A7983E7788D567887667078
113 | :10028C001E09E7788E56788866701409E7788F56C1
114 | :10029C00788966700A09E7789056788A66600678DD
115 | :1002AC0099E64410F67899E664017003020395020E
116 | :1002BC0004DA7896E6FE08E6FF7894A60608A60708
117 | :1002CC007882E65401603E781DE66003020395785F
118 | :1002DC0082E6FFE4FD12133A7899EFF67E00640291
119 | :1002EC007013789408E6161886047001164C600595
120 | :1002FC00789AE660DAEF64014E60030204DA781D46
121 | :10030C0076010203957882E6FF7D8312133A789981
122 | :10031C00EFF67E0064027013789408E616188604D3
123 | :10032C007001164C6005789AE660DAEF64014E6055
124 | :10033C00030204DA7883E6FFAB370539E539AA38CE
125 | :10034C007002053814F9EF120B8708E6FFAB37057E
126 | :10035C0039E539AA387002053814F9EF120B870801
127 | :10036C00E6FFAB370539E539AA387002053814F9C0
128 | :10037C00EF120B8708E6FFAB370539E539AA387061
129 | :10038C0002053814F9EF120B87E4781EF60204CC40
130 | :10039C00781DE670030204387896E6FE08E6FF78CE
131 | :1003AC0094A60608A6077D837F0E12133A7899EF60
132 | :1003BC00F67E0064027013789408E61618860470B2
133 | :1003CC0001164C6005789AE660DCEF64014E600320
134 | :1003DC000204DA7883E6FFAB370539E539AA3870C1
135 | :1003EC0002053814F9EF120B8708E6FFAB37053915
136 | :1003FC00E539AA387002053814F9EF120B8708E6B4
137 | :10040C00FFAB370539E539AA387002053814F9EF16
138 | :10041C00120B8708E6FFAB370539E539AA387002AD
139 | :10042C00053814F9EF120B87E4781DF6AB34AA35B6
140 | :10043C00A936120B417883F6900001120B5A78847E
141 | :10044C00F6900002120B5A7885F6900003120B5AA4
142 | :10045C007886F674042536F536E43535F53578822C
143 | :10046C00E65420601D08E6788DF67884E6788EF6E2
144 | :10047C007885E6788FF67886E67890F67899760126
145 | :10048C00803E7896E6FE08E6FF7894A60608A60756
146 | :10049C007882E6FF7D8312133A7899EFF67E00643A
147 | :1004AC00027013789408E6161886047001164C60D6
148 | :1004BC0005789AE660DAEF64014E7012781E7601C8
149 | :1004CC00788006789AE67006788C16020093788C01
150 | :1004DC00E66031AB340536E536AA357002053514C5
151 | :1004EC00F9120B417882F6E6FF54026007EF5410C4
152 | :1004FC00600D800074042536F536E43535F5357815
153 | :10050C008C1680CA7899E6640160030205E9781DAF
154 | :10051C00E670030205B47896E6FE08E6FF7894A62A
155 | :10052C000608A6077D837F0E12133A7899EFF67EA4
156 | :10053C000064027013789408E6161886047001168D
157 | :10054C004C6005789AE660DCEF64014E60030205AE
158 | :10055C00E97883E6FFAB370539E539AA387002052F
159 | :10056C003814F9EF120B8708E6FFAB370539E5397C
160 | :10057C00AA387002053814F9EF120B8708E6FFABA6
161 | :10058C00370539E539AA387002053814F9EF120B22
162 | :10059C008708E6FFAB370539E539AA38700205380C
163 | :1005AC0014F9EF120B878035781EE660307896E6EA
164 | :1005BC00FE08E6FF7894A60608A607E4FD7F0E1257
165 | :1005CC00133A7899EFF664027013789408E61618CB
166 | :1005DC0086067001164E6005789AE660DE7880E635
167 | :1005EC00AB3DAA3EA93F120B877899E6AB3DAA3EDC
168 | :0D05FC00A93F900001120B99C3E53999FF4A
169 | :0106090022CE
170 | :101C9F00E4781CF6853137853238853339120046A2
171 | :041CAF00781CEFF6B8
172 | :011CB300220E
173 | :060D59008B348A35893657
174 | :100D5F00E47880F67899F685373A85383B85393CC3
175 | :100D6F0074032539F539E43538F538E408F60425E8
176 | :100D7F0036F536E43535F535AB34FAA93690000142
177 | :100D8F00120B5A120B41FF788CF674022536F5368A
178 | :100D9F00E43535F535EF7003020F5DAB340536E5FD
179 | :100DAF0036AA357002053514F9120B417882F6E632
180 | :100DBF00FF54027003020EB6EF5401603D7896E6C1
181 | :100DCF00FE08E6FF7894A60608A6077882E6FFE4F9
182 | :100DDF00FD12133A7899EFF67E006402701378943F
183 | :100DEF0008E6161886047001164C6005789AE660BE
184 | :100DFF00DAEF64014E6003020F5D788CE616700324
185 | :100E0F00020F5DE670097882E654016002760E7873
186 | :100E1F0096E6FE08E6FF7894A60608A6077882E60F
187 | :100E2F00FF7D8312133A7899EFF67E0064027013F8
188 | :100E3F00789408E6161886047001164C6005789AA7
189 | :100E4F00E660DAEF64014E6003020F5D7883E6FF20
190 | :100E5F00AB370539E539AA387002053814F9EF12A6
191 | :100E6F000B8708E6FFAB370539E539AA387002055D
192 | :100E7F003814F9EF120B8708E6FFAB370539E53960
193 | :100E8F00AA387002053814F9EF120B8708E6FFAB8A
194 | :100E9F00370539E539AA387002053814F9EF120B06
195 | :100EAF0087788006020E09788CE6166071AB34AA3B
196 | :100EBF0035A936120B417883F6900001120B5A7840
197 | :100ECF0084F6900002120B5A7885F6900003120BED
198 | :100EDF005A7886F674042536F536E43535F53578C7
199 | :100EEF0096E6FE08E6FF7894A60608A6077882E63F
200 | :100EFF00FF7D8312133A7899EFF67E006402701328
201 | :100F0F00789408E6161886047001164C6005789AD6
202 | :100F1F00E660DAEF64014E70357880068089789646
203 | :100F2F00E6FE08E6FF7894A60608A607E4FD7F0E06
204 | :100F3F0012133A7899EFF664027013789408E61654
205 | :100F4F001886067001164E6005789AE660DE788086
206 | :100F5F00E6AB3AAA3BA93C120B87AB3AAA3BA93C9A
207 | :100F6F00900001E4120B997899E6900002120B9908
208 | :050F7F00C3E53999FFF4
209 | :010F8400224A
210 | :06174D008B2E8A2F89306B
211 | :101753007893E6147018853137853238853339AB81
212 | :101763002EAA2FA930120D59781CA6078021AB3160
213 | :10177300AA32A933E4120B87AB31AA32A933900002
214 | :1017830001120B99900002E4120B99781C7603ABBB
215 | :101793002EAA2FA930900003120B5A540260067828
216 | :1017A3001CE6F68025900002120B5A900001120BE2
217 | :1017B3005A75F004A42404FFE435F0FEEF7810C357
218 | :0E17C30033CE33CED8F9781C46F6781CE6FFFC
219 | :0117D10022F5
220 | :101A3C00900001120B5A7883F6900002120B5A7820
221 | :101A4C0084F6900003120B5A7885F6900004120B62
222 | :101A5C005A7886F67D83E4FF12133AAB37AA38A97D
223 | :081A6C0039E4120B877F01220F
224 | :101B98007893E614701285313785323885333912D7
225 | :101BA8001A3C781CA607800FAB31AA32A93374FF00
226 | :0B1BB800120B87781C7601781CE6FFFA
227 | :011BC30022FF
228 | :0C0F850078A4E6FF789E667003021171EC
229 | :100F91007E0074002FF9EE3401752801F529892AA4
230 | :100FA100789DE62400F9EE3402752B01F52C892D8C
231 | :100FB10078A4744026F6AB28AA29A92A120B41FF6E
232 | :100FC100AB2B052DE52DAA2C7002052C14F9EF127F
233 | :100FD1000B87AB28052AE52AAA297002052914F9ED
234 | :100FE100120B41120D2D104200106B0110800210E6
235 | :100FF1009503112604101805102D06113A0810A1A9
236 | :101001000910B60A10C21010D61110EA1210FE1300
237 | :1010110011121D00001152852B31852C32852D3383
238 | :10102100AB28AA29A92A121C9F02114C852B3185B4
239 | :101031002C32852D33AB28AA29A92A12174D02116A
240 | :101041004CAB28AA29A92A120B41FFAB2BE52D2471
241 | :1010510001F9E4352CFA1216C7781BEFF6AB2BAA6F
242 | :101061002CA92D120B8706021164852B31852C3298
243 | :10107100852D33AB28AA29A92A121BC402114C853C
244 | :101081002B31852C32852D33AB28AA29A92A121A96
245 | :10109100DE02114CAB2BAA2CA92D121C3B02114CC8
246 | :1010A100852B31852C32852D33AB28AA29A92A120B
247 | :1010B1001B6B02114CAB2BAA2CA92D1200030211A0
248 | :1010C1004C852B31852C32852D33AB28AA29A92AB1
249 | :1010D10012159D8076852B31852C32852D33AB28D9
250 | :1010E100AA29A92A1217D28062852B31852C328533
251 | :1010F1002D33AB28AA29A92A121A74804E852B31C7
252 | :10110100852C32852D33AB28AA29A92A121BEF8001
253 | :101111003A852B31852C32852D33AB28AA29A92A72
254 | :1011210012142C8026852B31852C32852D33AB284A
255 | :10113100AA29A92A1219FF8012852B31852C328503
256 | :101141002D33AB28AA29A92A121B98781BA6078040
257 | :1011510012AB2BAA2CA92D90FFFF74FF120B9978CB
258 | :101161001B7601781BE60479A0F7789D744026F67A
259 | :01117100225B
260 | :101CDB0075A15575A1AAE5B954F84406F5B9E4F513
261 | :021CEB00A12234
262 | :101C5500EF4E601505A105A105A105A105A105A1E9
263 | :0A1C650005A1EF1F70EA1E80E722C0
264 | :101C8800AD07AC06ED4C600E7FE87E03121C55EDE7
265 | :071C98001D70F11C80EE221B
266 | :1011720012011002EF020140280D040200010102D7
267 | :1011820003010902620003010080FA09040000025F
268 | :10119200FF00000407050202400000070583024029
269 | :1011A2000000080B02020202010509040200020A01
270 | :1011B200000000070501024000000705810240000F
271 | :1011C20000090403000102020100052400100105C8
272 | :1011D20024010001042402020524060302070584F7
273 | :1011E200030800FF040309040803410052004D00F4
274 | :1011F20024034400410050004C0069006E006B0063
275 | :10120200200043004D005300490053002D004400CC
276 | :10121200410050001A03350056002D0053005000C3
277 | :1012220049002D00310032003300340035001A032A
278 | :1012320043004D005300490053002D00440041007B
279 | :1012420050002000760032001E034400410050008E
280 | :101252004C0069006E006B002D0043004400430007
281 | :10126200450078007400050F2800020710020000F4
282 | :1012720000001C100500DF60DDD88945C74C9CD2F8
283 | :10128200659D9E648A9F00000306AA0020000A0052
284 | :10129200000000000306AA00080002000000A000EF
285 | :1012A2001400030057494E5553420000000000004D
286 | :1012B200000000008400040007002A0044006500CA
287 | :1012C200760069006300650049006E0074006500E5
288 | :1012D2007200660061006300650047005500490026
289 | :1012E20044007300000050007B00430044004200B1
290 | :1012F200330042003500410044002D003200390025
291 | :10130200330042002D0034003600360033002D0039
292 | :1013120041004100330036002D0031004100410000
293 | :101322004500340036003400360033003700370001
294 | :0813320036007D000000000000
295 | :101C720001B00002A5000007A900E1000000000871
296 | :051C820003150038000D
297 | :10196C00C2EAE4F5E275D18053D1FB53E2BF75EDC9
298 | :10197C000075EC0053EAF375DC0275EF0075EE4070
299 | :10198C0043EAC053EAEF75D21275E50175E40075B0
300 | :10199C00E70275E60043EB4853EBEE75D41275D6AF
301 | :1019AC001AF5E343E22943D10175D8FF75E107D25B
302 | :0219BC00EA221D
303 | :0300430002060AA8
304 | :0D060A00C0E0C0F0C083C082C0D075D00831
305 | :1006170020D903020A18E5D9543F70030209EA14E6
306 | :10062700604D24E1700302098A14603324FE601DC3
307 | :1006370024F36049242E6003020A1620DE03020A0F
308 | :1006470016789E744026F6E6F5E4020A1678B07628
309 | :100657000075D700E5D654FC4402F5D6020A167594
310 | :10066700D300C201E5D254FC4402F5D2020A162097
311 | :10067700DE03020A16AFDB1219BE020A1685DB215A
312 | :10068700E5216408600302095C900006E078A7F69C
313 | :10069700A3E0600276FF752100900001E078A8F6DC
314 | :1006A700900000E0546024E070030208C024E0706A
315 | :1006B700030208E82440600302090F78A8E6B40B98
316 | :1006C7000040030208BE9006D4F828287302089F4A
317 | :1006D7000207E40208BE02081F0208BE0207AB02B7
318 | :1006E70006F50208BE0207B50207D10209129000FB
319 | :1006F70003E024FE602014602C24F47003020799A1
320 | :10070700240E60030207A87512FF75131175147282
321 | :100717007521120209127512FF751311751484756C
322 | :100727002162020912900002E014601F14602B146A
323 | :10073700603714603F14604B240570657512FF75B0
324 | :1007470013117514E67521040209127512FF75134A
325 | :10075700117514EA7521080209127512FF75131134
326 | :100767007514F27521240209127512FF751312759B
327 | :10077700141680097512FF75131275143075211A36
328 | :100787000209127512FF75131275144A75211E029C
329 | :1007970009127512FF75131275146875212802095D
330 | :1007A7001202090F900002E078A7F6020912789B5F
331 | :1007B700E6900000F078A7E6C39401748094805017
332 | :1007C70003020912752101020912900002E0789BC9
333 | :1007D700F6700302091278B176010209129000003F
334 | :1007E700E0541F6402702E900004E024FE601D2474
335 | :1007F70081600E14701CE5D454BC4402F5D4020980
336 | :1008070012E5D254BC4402F5D202091253D4730242
337 | :10081700091202090F02090F900000E0541FFD7C26
338 | :10082700007020900003E0FE900002E0FBEB640103
339 | :100837004E700D90118B9330E50302091202090FD8
340 | :1008470002090FED64024C704D900003E0FE90002A
341 | :1008570002E0FDED4E703D900005E0FE900004E0E3
342 | :10086700FDEDFFEE702CEF24FE6012248160191459
343 | :100877007020E5D454BF4403F5D4020912E5D454DB
344 | :100887007F440CF5D4020912E5D254BF4403F5D2D4
345 | :1008970080798074807280707512007513007514EA
346 | :1008A700A578A7E6FFC3940274809480400575215C
347 | :1008B7000280588F218054804F900000E0541F64BD
348 | :1008C70001704878A8E624E0604124FE603D04708A
349 | :1008D7000E7512007513007514A9752107802C80F9
350 | :1008E70027900000E0541F702278A8E624E07016D5
351 | :1008F700900004E0640770137512FF7513127514E6
352 | :10090700907521AA800580007521FFAF21EF60480F
353 | :10091700F4604578A7E6D395214002A62178A7E69B
354 | :10092700FFC394407480948040047F4080008F21EF
355 | :100937007E0078007C007D01AB12AA13A914120B6C
356 | :100947001BC378A7E69521F6E5212514F514E435B0
357 | :1009570013F51380037521FFAF217E00EFF4700AB2
358 | :1009670078A876FF75DCCF020A16D3EF9440EE64C1
359 | :1009770080948050058521DD800375DD0075DCC01E
360 | :10098700020A1678A8E624FB604624E56004241AC8
361 | :10099700704978A7E6FFC394407480948040047F31
362 | :1009A7004080008F217E0078007C007D01AB12AA79
363 | :1009B70013A914120B1BC378A7E69521F6E5212589
364 | :1009C70014F514E43513F5138521DD63DC40803F0E
365 | :1009D700E5E3548078A746F5E3800375DD0075DC11
366 | :1009E70002802C85DB2178A8E66420701F30DE1C8E
367 | :1009F700AFDBFE087C00FD7B017A007900120B1B40
368 | :100A07007B007A0079A912185075DD0063DC80C27B
369 | :100A1700D930D81675DC0275D21075D41275E3007B
370 | :100A2700C2DAC2D978B07600C2D830DA09C2DAE5BC
371 | :090A3700DA30E205800375D8FFF6
372 | :0B0A4000D0D0D082D083D0F0D0E032C4
373 | :1014EF00E4F527121CDB7F057E00121C8812196C95
374 | :1014FF00121B3D5392EF4393105392DF439320D22D
375 | :10150F00AFE4F5D3F5D578B1F6789EF678A4F678F2
376 | :10151F009DF6789FF678B0F6C202F510F511789B1C
377 | :10152F00E660FB120F8578B0E66401601C789FE6D9
378 | :10153F00FF789D66601378B0760178A0E6F5D78FB7
379 | :10154F00E653D6FC18744026F6300209C291E4F532
380 | :10155F0010F511801F0511E51170020510AF107EF7
381 | :10156F0000EF64107002D291EF64F04E7006F51028
382 | :10157F00F511C291E5B930E3AAE4F5E275D1807FA8
383 | :0E158F000AFE121C88AA16A917120D53809589
384 | :10185000E4F525F524F523F522900003120B5AF543
385 | :1018600022900002120B5AF523900001120B5AF538
386 | :1018700024120B41F525C2ACE47F08FEFDFCAB252C
387 | :10188000AA24A923A822120C10E42FFFEE3436FE5E
388 | :10189000ED346EFDEC3401FCE47B10FAF9F8120C27
389 | :1018A0009BAB25AA24A923A822120C9BEFF404F5D4
390 | :0318B0008DD2AC2A
391 | :0118B3002212
392 | :101AA90053927F439380C2975392DF439320D295F9
393 | :101AB9005392BF5393BFC2945392EF439310D2B43E
394 | :101AC9005396EF439710D2B25396FB43970475FC94
395 | :051AD9000875FB182256
396 | :101CC800C2945392DF5393DF53927F53937FC2B4EE
397 | :031CD800C2B22273
398 | :1019180075341EE4F535F536F5377D34FF12133A84
399 | :10192800E4F5347D347F0812133A75341275372381
400 | :101938007D347F0112133A75340C7535EDE4F536B4
401 | :101948007537E07D347F0512133A753407E4F535B1
402 | :101958007536FA7537057D347F0D12133A7D347F5D
403 | :041968000E02133A1E
404 | :1000260030FBFDF5F922D297139295C297D8F722A5
405 | :0C003600C297A29513D297D8F7C2972268
406 | :101C19008AA075FA60EFC394084008FFE312002612
407 | :101C29000980F2EF600BF8E330FBFD75FA00120052
408 | :021C39002C225B
409 | :101B0E008AA0D295439220C2B2EFC39408400F75BB
410 | :101B1E00FA20F5F904FF30FBFDE5F9F380EBEF60F9
411 | :0F1B2E000DF875FA00120036F3D2B25392DF228F
412 | :10133A00EDF9EF53E00F2330D002D2E543E0817597
413 | :10134A00FA6012002630FBFD75FA00D2954392200E
414 | :10135A00C2B27804120036C40353E007CFBF014279
415 | :10136A0020E141D2970000C2977D00D2B25392DFAA
416 | :10137A0075FA60E712002630D0010D09E71200263F
417 | :10138A0030D0010D09E712002630D0010D09E7120D
418 | :10139A00002630D0010DED1330FBFD75FA00929551
419 | :1013AA008051805E75FA20F5F97D0030FBFDE5F984
420 | :1013BA00F5F930D0010DF70930FBFDE5F9F5F93003
421 | :1013CA00D0010DF70930FBFDE5F9F5F930D0010D33
422 | :1013DA00F70930FBFDE5F930D0010DF775FA00D2B7
423 | :1013EA0097E400C297A295336D30E0027F08D2B22B
424 | :1013FA005392DF7881087801D29700C295C297D8B4
425 | :10140A00F722BF0202800BBF020280067F107822F9
426 | :10141A0080027801D2970000C297D8F8D2B25392CC
427 | :02142A00DF22BF
428 | :101B3D00E4F519F518F51AC200C20143960343974F
429 | :101B4D0003C2CDC2CC438780E589540F4420F5896B
430 | :0E1B5D0043C9A0758DF3D28E759850D2AC227C
431 | :1019BE008F22900040C3E518951914C39F402875D7
432 | :1019CE00A003A819E0F2A308DFFA8819200009A8DD
433 | :1019DE0018E2F5990518D200C3E518951914C394A9
434 | :1019EE0040400453D2F322E5D254F34408F5D222F8
435 | :0119FE0022C6
436 | :101CED008F26784005A290008015A2E608A5DFFB9F
437 | :021CFD002222A1
438 | :101CB400E51A600FFF121CED851AD3E4F51A53D20E
439 | :041CC400FCD201222B
440 | :030023000218B40C
441 | :1018B400C0E0C0F0C083C082C0D075D00830982189
442 | :1018C4007440251AF8A699051AD3E51A9440748031
443 | :1018D40094804003751A00C29820012D121CB48014
444 | :1018E40028309925E5186519600D758303851882DC
445 | :1018F400E0F59905188002C200C3E518951914C3D0
446 | :101904009440400353D2F3C299D0D0D082D083D034
447 | :04191400F0D0E032FD
448 | :0300000002163BAA
449 | :0C163B00787FE4F6D8FD7581B1021682BC
450 | :100A4B00E709F608DFFA8046E709F208DFFA803E8D
451 | :100A5B0088828C83E709F0A3DFFA8032E309F6087A
452 | :100A6B00DFFA8078E309F208DFFA807088828C83E2
453 | :100A7B00E309F0A3DFFA806489828A83E0A3F60896
454 | :100A8B00DFFA805889828A83E0A3F208DFFA804C70
455 | :100A9B0080D280FA80C680D4806980F28033801047
456 | :100AAB0080A680EA809A80A880DA80E280CA8033B0
457 | :100ABB0089828A83ECFAE493A3C8C582C8CCC58328
458 | :100ACB00CCF0A3C8C582C8CCC583CCDFE9DEE780F8
459 | :100ADB000D89828A83E493A3F608DFF9ECFAA9F077
460 | :100AEB00EDFB2289828A83ECFAE0A3C8C582C8CCCD
461 | :100AFB00C583CCF0A3C8C582C8CCC583CCDFEADEE6
462 | :100B0B00E880DB89828A83E493A3F208DFF980CC47
463 | :100B1B0088F0EF60010E4E60C388F0ED2402B40440
464 | :100B2B000050B9F582EB2402B4040050AF232345E7
465 | :060B3B008223900A9B7367
466 | :100B4100BB010689828A83E0225002E722BBFE02B2
467 | :090B5100E32289828A83E49322E5
468 | :100B5A00BB010CE58229F582E5833AF583E0225050
469 | :100B6A0006E92582F8E622BBFE06E92582F8E2229A
470 | :0D0B7A00E58229F582E5833AF583E49322B4
471 | :100B8700BB010689828A83F0225002F722BBFE014D
472 | :020B9700F32247
473 | :100B9900F8BB010DE58229F582E5833AF583E8F092
474 | :100BA900225006E92582C8F622BBFE05E92582C83E
475 | :020BB900F22226
476 | :100BBB00BC000BBE0029EF8DF084FFADF022E4CC1E
477 | :100BCB00F875F008EF2FFFEE33FEEC33FCEE9DECE7
478 | :100BDB00984005FCEE9DFE0FD5F0E9E4CEFD22ED2D
479 | :100BEB00F8F5F0EE8420D21CFEADF075F008EF2F77
480 | :100BFB00FFED33FD4007985006D5F0F222C398FD68
481 | :050C0B000FD5F0EA2204
482 | :100C1000E88FF0A4CC8BF0A42CFCE98EF0A42CFC83
483 | :100C20008AF0EDA42CFCEA8EF0A4CDA8F08BF0A401
484 | :100C30002DCC3825F0FDE98FF0A42CCD35F0FCEB60
485 | :100C40008EF0A4FEA9F0EB8FF0A4CFC5F02ECD3925
486 | :0F0C5000FEE43CFCEAA42DCE35F0FDE43CFC2292
487 | :100C5F0075F008758200EF2FFFEE33FECD33CDCC4C
488 | :100C6F0033CCC58233C5829BED9AEC99E5829840CF
489 | :100C7F000CF582EE9BFEED9AFDEC99FC0FD5F0D6AC
490 | :100C8F00E4CEFBE4CDFAE4CCF9A88222B800C1B9D6
491 | :100C9F000059BA002DEC8BF084CFCECDFCE5F0CB14
492 | :100CAF00F97818EF2FFFEE33FEED33FDEC33FCEB4D
493 | :100CBF0033FB10D703994004EB99FB0FD8E5E4F908
494 | :100CCF00FA227818EF2FFFEE33FEED33FDEC33FCF5
495 | :100CDF00C933C910D7059BE99A4007EC9BFCE99AE9
496 | :100CEF00F90FD8E0E4C9FAE4CCFB2275F010EF2F2E
497 | :100CFF00FFEE33FEED33FDCC33CCC833C810D7072E
498 | :100D0F009BEC9AE899400AED9BFDEC9AFCE899F868
499 | :0E0D1F000FD5F0DAE4CDFBE4CCFAE4C8F922FB
500 | :100D2D00D083D082F8E4937012740193700DA3A355
501 | :100D3D0093F8740193F5828883E473740293686069
502 | :060D4D00EFA3A3A380DF69
503 | :060D53008A838982E4732B
504 | :101647000214EFE493A3F8E493A34003F68001F2B6
505 | :1016570008DFF48029E493A3F85407240CC8C333A4
506 | :10166700C4540F4420C8834004F456800146F6DF73
507 | :10167700E4800B0102040810204080901C6FE47E78
508 | :10168700019360BCA3FF543F30E509541FFEE49368
509 | :10169700A360010ECF54C025E060A840B8E493A32F
510 | :1016A700FAE493A3F8E493A3C8C582C8CAC583CA5A
511 | :1016B700F0A3C8C582C8CAC583CADFE9DEE780BE12
512 | :011C8700005C
513 | :00000001FF
514 |
--------------------------------------------------------------------------------
/SRC/DAP.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2013-2017 ARM Limited. All rights reserved.
3 | *
4 | * SPDX-License-Identifier: Apache-2.0
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the License); you may
7 | * not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | *
18 | * ----------------------------------------------------------------------
19 | *
20 | * $Date: 1. December 2017
21 | * $Revision: V2.0.0
22 | *
23 | * Project: CMSIS-DAP Source
24 | * Title: DAP.c CMSIS-DAP Commands
25 | *
26 | *---------------------------------------------------------------------------*/
27 |
28 | #include "DAP.h"
29 |
30 | // Get DAP Information
31 | // id: info identifier
32 | // info: pointer to info datas
33 | // return: number of bytes in info datas
34 | static UINT8I DAP_Info(UINT8 id, UINT8 *info)
35 | {
36 | UINT8I length = 0U;
37 |
38 | switch (id)
39 | {
40 | case DAP_ID_VENDOR:
41 | length = 0;
42 | break;
43 | case DAP_ID_PRODUCT:
44 | length = 0;
45 | break;
46 | case DAP_ID_SER_NUM:
47 | length = 0;
48 | break;
49 | case DAP_ID_FW_VER:
50 | length = (UINT8)sizeof(DAP_FW_VER);
51 | memcpy(info, DAP_FW_VER, length);
52 | break;
53 | case DAP_ID_DEVICE_VENDOR:
54 |
55 | break;
56 | case DAP_ID_DEVICE_NAME:
57 |
58 | break;
59 | case DAP_ID_CAPABILITIES:
60 | info[0] = DAP_PORT_SWD;
61 | length = 1U;
62 | break;
63 | case DAP_ID_TIMESTAMP_CLOCK:
64 |
65 | break;
66 | case DAP_ID_SWO_BUFFER_SIZE:
67 |
68 | break;
69 | case DAP_ID_PACKET_SIZE:
70 | info[0] = (UINT8)(DAP_PACKET_SIZE >> 0);
71 | info[1] = (UINT8)(DAP_PACKET_SIZE >> 8);
72 | length = 2U;
73 | break;
74 | case DAP_ID_PACKET_COUNT:
75 | info[0] = DAP_PACKET_COUNT;
76 | length = 1U;
77 | break;
78 | default:
79 | break;
80 | }
81 |
82 | return (length);
83 | }
84 |
85 | // Process Delay command and prepare response
86 | // request: pointer to request datas
87 | // response: pointer to response datas
88 | // return: number of bytes in response (lower 16 bits)
89 | // number of bytes in request (upper 16 bits)
90 | static UINT8I DAP_Delay(const UINT8 *req, UINT8 *res)
91 | {
92 | UINT16I delay;
93 |
94 | delay = (UINT16)(*(req + 0)) |
95 | (UINT16)(*(req + 1) << 8);
96 |
97 | while (--delay)
98 | {
99 | };
100 |
101 | *res = DAP_OK;
102 | return 1;
103 | }
104 |
105 | // Process Host Status command and prepare response
106 | // request: pointer to request datas
107 | // response: pointer to response datas
108 | // return: number of bytes in response (lower 16 bits)
109 | // number of bytes in request (upper 16 bits)
110 | static UINT8I DAP_HostStatus(const UINT8 *req, UINT8 *res)
111 | {
112 |
113 | switch (*req)
114 | {
115 | case DAP_DEBUGGER_CONNECTED:
116 | DAP_LED_BUSY = ((*(req + 1) & 1U));
117 | break;
118 | case DAP_TARGET_RUNNING:
119 | DAP_LED_BUSY = ((*(req + 1) & 1U));
120 | break;
121 | default:
122 | *res = DAP_ERROR;
123 | return 1;
124 | }
125 |
126 | *res = DAP_OK;
127 | return 1;
128 | }
129 |
130 | // Process Connect command and prepare response
131 | // request: pointer to request datas
132 | // response: pointer to response datas
133 | // return: number of bytes in response (lower 16 bits)
134 | // number of bytes in request (upper 16 bits)
135 | UINT8I debug_port;
136 | static UINT8I DAP_Connect(const UINT8 *req, UINT8 *res)
137 | {
138 | UINT8I port;
139 |
140 | if (*req == DAP_PORT_AUTODETECT)
141 | {
142 | port = DAP_DEFAULT_PORT;
143 | }
144 | else
145 | {
146 | port = *req;
147 | }
148 |
149 | switch (port)
150 | {
151 | case DAP_PORT_SWD:
152 | debug_port = DAP_PORT_SWD;
153 | PORT_SWD_SETUP();
154 | break;
155 | default:
156 | port = DAP_PORT_DISABLED;
157 | break;
158 | }
159 |
160 | *res = (UINT8)port;
161 | return 1;
162 | }
163 |
164 | // Process Disconnect command and prepare response
165 | // response: pointer to response datas
166 | // return: number of bytes in response
167 | static UINT8I DAP_Disconnect(UINT8 *res)
168 | {
169 | debug_port = DAP_PORT_DISABLED;
170 | PORT_SWD_OFF();
171 | *res = DAP_OK;
172 | return (1U);
173 | }
174 |
175 | // Process Reset Target command and prepare response
176 | // response: pointer to response datas
177 | // return: number of bytes in response
178 | static UINT8I DAP_ResetTarget(UINT8 *res)
179 | {
180 | SWD_ResetTarget_Soft();
181 | *(res + 1) = 0;
182 | *(res + 0) = DAP_OK;
183 | return 2;
184 | }
185 |
186 | // Process SWJ Pins command and prepare response
187 | // request: pointer to request datas
188 | // response: pointer to response datas
189 | // return: number of bytes in response (lower 16 bits)
190 | // number of bytes in request (upper 16 bits)
191 | static UINT8I DAP_SWJ_Pins(const UINT8 *req, UINT8 *res)
192 | {
193 | UINT8I value;
194 | UINT8I select;
195 | UINT16I wait;
196 |
197 | value = (UINT8I) * (req + 0);
198 | select = (UINT8I) * (req + 1);
199 | wait = (UINT16I)(*(req + 2) << 0) | (UINT16I)(*(req + 3) << 8);
200 | if ((UINT8I)(*(req + 4)) || (UINT8I)(*(req + 5)))
201 | wait |= 0x8000;
202 |
203 | if ((select & DAP_SWJ_SWCLK_TCK_BIT) != 0U)
204 | {
205 | if ((value & DAP_SWJ_SWCLK_TCK_BIT) != 0U)
206 | {
207 | SWK = 1;
208 | }
209 | else
210 | {
211 | SWK = 0;
212 | }
213 | }
214 | if ((select & DAP_SWJ_SWDIO_TMS_BIT) != 0U)
215 | {
216 | if ((value & DAP_SWJ_SWDIO_TMS_BIT) != 0U)
217 | {
218 | SWD = 1;
219 | }
220 | else
221 | {
222 | SWD = 0;
223 | }
224 | }
225 | if ((select & DAP_SWJ_nRESET_BIT) != 0U)
226 | {
227 | if ((value & DAP_SWJ_SWDIO_TMS_BIT) != 0U)
228 | {
229 | RST = 0;
230 | }
231 | else
232 | {
233 | SWD_ResetTarget_Soft();
234 | RST = 1;
235 | }
236 | // RST = value >> DAP_SWJ_nRESET;
237 | }
238 |
239 | // if (wait != 0U)
240 | // {
241 |
242 | // do
243 | // {
244 | // if ((select & DAP_SWJ_SWCLK_TCK_BIT) != 0U)
245 | // {
246 | // if ((value >> DAP_SWJ_SWCLK_TCK) ^ SWK)
247 | // {
248 | // continue;
249 | // }
250 | // }
251 | // if ((select & DAP_SWJ_SWDIO_TMS_BIT) != 0U)
252 | // {
253 | // if ((value >> DAP_SWJ_SWDIO_TMS) ^ SWD)
254 | // {
255 | // continue;
256 | // }
257 | // }
258 | // if ((select & DAP_SWJ_nRESET_BIT) != 0U)
259 | // {
260 | // //continue;
261 | //// if ((value >> DAP_SWJ_nRESET) ^ RST)
262 | //// {
263 | //// continue;
264 | //// }
265 | // }
266 | // break;
267 | // }
268 | // while (wait--);
269 | // }
270 |
271 | // value = ((UINT8I)SWK << DAP_SWJ_SWCLK_TCK) |
272 | // ((UINT8I)SWD << DAP_SWJ_SWDIO_TMS) |
273 | // (0 << DAP_SWJ_TDI) |
274 | // (0 << DAP_SWJ_TDO) |
275 | // (0 << DAP_SWJ_nTRST) |
276 | // ((UINT8I)RST << DAP_SWJ_nRESET);
277 | value = ((UINT8I)SWK << DAP_SWJ_SWCLK_TCK) |
278 | ((UINT8I)SWD << DAP_SWJ_SWDIO_TMS) |
279 | (0 << DAP_SWJ_TDI) |
280 | (0 << DAP_SWJ_TDO) |
281 | (0 << DAP_SWJ_nTRST) |
282 | (0 << DAP_SWJ_nRESET);
283 | if(RST == 0) value|=(1 << DAP_SWJ_nRESET);
284 |
285 | *res = (UINT8)value;
286 |
287 | return 1;
288 | }
289 |
290 | // Process SWJ Clock command and prepare response
291 | // request: pointer to request datas
292 | // response: pointer to response datas
293 | // return: number of bytes in response (lower 16 bits)
294 | // number of bytes in request (upper 16 bits)
295 | UINT8I fast_clock;
296 | UINT8I clock_delay;
297 | static UINT8I DAP_SWJ_Clock(const UINT8 *req, UINT8 *res)
298 | {
299 | /**/
300 | fast_clock = *req;
301 | fast_clock = 0;
302 | clock_delay = 0;
303 |
304 | *res = DAP_OK;
305 | return 1;
306 | }
307 | // Process SWJ Sequence command and prepare response
308 | // request: pointer to request datas
309 | // response: pointer to response datas
310 | // return: number of bytes in response (lower 16 bits)
311 | // number of bytes in request (upper 16 bits)
312 | static UINT8I DAP_SWJ_Sequence(const UINT8 *req, UINT8 *res)
313 | {
314 | UINT8I count;
315 |
316 | count = *req++;
317 | if (count == 0U)
318 | {
319 | count = 255U;
320 | }
321 | SWJ_Sequence(count, req);
322 | *res = DAP_OK;
323 |
324 |
325 | return 1;
326 | }
327 |
328 | // Process SWD Configure command and prepare response
329 | // request: pointer to request datas
330 | // response: pointer to response datas
331 | // return: number of bytes in response (lower 16 bits)
332 | // number of bytes in request (upper 16 bits)
333 | UINT8I turnaround;
334 | UINT8I data_phase;
335 | static UINT8I DAP_SWD_Configure(const UINT8 *req, UINT8 *res)
336 | {
337 | UINT8I value;
338 |
339 | value = *req;
340 | turnaround = (value & 0x03U) + 1U;
341 | data_phase = (value & 0x04U) ? 1U : 0U;
342 |
343 | *res = DAP_OK;
344 | return 1;
345 | }
346 |
347 | // Process SWD Sequence command and prepare response
348 | // request: pointer to request datas
349 | // response: pointer to response datas
350 | // return: number of bytes in response (lower 16 bits)
351 | // number of bytes in request (upper 16 bits)
352 |
353 | /*
354 | static UINT8I DAP_SWD_Sequence(const UINT8 *req, UINT8 *res)
355 | {
356 | UINT8I sequence_info;
357 | UINT8I sequence_count;
358 | UINT8I request_count;
359 | UINT8I response_count;
360 | UINT8I count;
361 |
362 | *res++ = DAP_OK;
363 |
364 | request_count = 1U;
365 | response_count = 1U;
366 |
367 | sequence_count = *req++;
368 | while (sequence_count--)
369 | {
370 | sequence_info = *req++;
371 | count = sequence_info & SWD_SEQUENCE_CLK;
372 | if (count == 0U)
373 | {
374 | count = 64U;
375 | }
376 | count = (count + 7U) / 8U;
377 | if ((sequence_info & SWD_SEQUENCE_DIN) != 0U)
378 | {
379 | SWD = 1;//PIN_SWDIO_OUT_DISABLE();
380 | }
381 | else
382 | {
383 | SWD = 1;//PIN_SWDIO_OUT_ENABLE();
384 | }
385 | SWD_Sequence(sequence_info, req, res);
386 | if (sequence_count == 0U)
387 | {
388 | SWD = 1;//PIN_SWDIO_OUT_ENABLE();
389 | }
390 | if ((sequence_info & SWD_SEQUENCE_DIN) != 0U)
391 | {
392 | request_count++;
393 | res += count;
394 | response_count += count;
395 | }
396 | else
397 | {
398 | req += count;
399 | request_count += count + 1U;
400 | }
401 | }
402 |
403 | return response_count;
404 | }
405 | */
406 | static UINT8I DAP_SWD_Sequence(const UINT8 *req, UINT8 *res)
407 | {
408 | UINT8I sequence_info;
409 | UINT8I sequence_count;
410 | //UINT8I request_count;
411 | UINT8I response_count;
412 | UINT8I count;
413 |
414 | *res++ = DAP_OK;
415 |
416 | //request_count = 1U;
417 | response_count = 1U;
418 | sequence_count = *req++;
419 | while (sequence_count--)
420 | {
421 | sequence_info = *req++;
422 | count = sequence_info & SWD_SEQUENCE_CLK;
423 | if (count == 0U)
424 | {
425 | count = 64U;
426 | }
427 | if ((sequence_info & SWD_SEQUENCE_DIN) != 0U)
428 | {//input
429 | SWD_IN_Sequence(count,res);
430 | count = (count + 7U) / 8U;
431 | //request_count++;
432 | res += count;
433 | response_count += count;
434 | }
435 | else
436 | {//output
437 | SWJ_Sequence(count,req);
438 | count = (count + 7U) / 8U;
439 | req += count;
440 | //request_count += count + 1U;
441 | }
442 | }
443 | return response_count;
444 | }
445 |
446 | // Process Transfer Configure command and prepare response
447 | // request: pointer to request datas
448 | // response: pointer to response datas
449 | // return: number of bytes in response (lower 16 bits)
450 | // number of bytes in request (upper 16 bits)
451 | UINT8I idle_cycles;
452 | UINT16I retry_count;
453 | UINT16I match_retry;
454 | static UINT8I DAP_TransferConfigure(const UINT8 *req, UINT8 *res)
455 | {
456 |
457 | idle_cycles = *(req + 0);
458 | retry_count = (UINT16I) * (req + 1) |
459 | (UINT16I)(*(req + 2) << 8);
460 | match_retry = (UINT16I) * (req + 3) |
461 | (UINT16I)(*(req + 4) << 8);
462 |
463 | *res = DAP_OK;
464 | return 1;
465 | }
466 |
467 | // Process SWD Transfer command and prepare response
468 | // request: pointer to request datas
469 | // response: pointer to response datas
470 | // return: number of bytes in response (lower 16 bits)
471 | // number of bytes in request (upper 16 bits)
472 |
473 | UINT8I datas[4];
474 | UINT8I match_mask[4];
475 | UINT8I match_value[4];
476 | UINT8I DAP_TransferAbort = 0U;
477 | UINT8I request_count;
478 | UINT8I request_value;
479 | UINT8I response_count;
480 | UINT8I response_value;
481 | UINT16I retry;
482 | static UINT8I DAP_SWD_Transfer(const UINT8 *req, UINT8 *res)
483 | {
484 | const UINT8 *request_head;
485 | UINT8 *response_head;
486 |
487 | UINT8I post_read;
488 | UINT8I check_write;
489 | request_head = req;
490 |
491 | response_count = 0U;
492 | response_value = 0U;
493 | response_head = res;
494 | res += 2;
495 |
496 | DAP_TransferAbort = 0U;
497 |
498 | post_read = 0U;
499 | check_write = 0U;
500 |
501 | req++; // Ignore DAP index
502 |
503 | request_count = *req++;
504 | for (; request_count != 0U; request_count--)
505 | {
506 | request_value = *req++;
507 | if ((request_value & DAP_TRANSFER_RnW) != 0U)
508 | {
509 | // Read registers
510 | if (post_read)
511 | {
512 | // Read was posted before
513 | retry = retry_count;
514 | if ((request_value & (DAP_TRANSFER_APnDP | DAP_TRANSFER_MATCH_VALUE)) == DAP_TRANSFER_APnDP)
515 | {
516 | // Read previous AP datas and post next AP read
517 | do
518 | {
519 | response_value = SWD_Transfer(request_value, &datas);
520 | }
521 | while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
522 | }
523 | else
524 | {
525 | // Read previous AP datas
526 | do
527 | {
528 | response_value = SWD_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, &datas);
529 | }
530 | while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
531 | post_read = 0U;
532 | }
533 | if (response_value != DAP_TRANSFER_OK)
534 | {
535 | break;
536 | }
537 | // Store previous AP datas
538 | *res++ = (UINT8)datas[0];
539 | *res++ = (UINT8)datas[1];
540 | *res++ = (UINT8)datas[2];
541 | *res++ = (UINT8)datas[3];
542 | }
543 | if ((request_value & DAP_TRANSFER_MATCH_VALUE) != 0U)
544 | {
545 | // Read with value match
546 | match_value[0] = (UINT8)(*(req + 0));
547 | match_value[1] = (UINT8)(*(req + 1));
548 | match_value[2] = (UINT8)(*(req + 2));
549 | match_value[3] = (UINT8)(*(req + 3));
550 | req += 4;
551 | match_retry = match_retry;
552 | if ((request_value & DAP_TRANSFER_APnDP) != 0U)
553 | {
554 | // Post AP read
555 | retry = retry_count;
556 | do
557 | {
558 | response_value = SWD_Transfer(request_value, NULL);
559 | }
560 | while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
561 | if (response_value != DAP_TRANSFER_OK)
562 | {
563 | break;
564 | }
565 | }
566 | do
567 | {
568 | // Read registers until its value matches or retry counter expires
569 | retry = retry_count;
570 | do
571 | {
572 | response_value = SWD_Transfer(request_value, &datas);
573 | }
574 | while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
575 | if (response_value != DAP_TRANSFER_OK)
576 | {
577 | break;
578 | }
579 | }
580 | while (((datas[0] & match_mask[0]) != match_value[0] ||
581 | (datas[1] & match_mask[1]) != match_value[1] ||
582 | (datas[2] & match_mask[2]) != match_value[2] ||
583 | (datas[3] & match_mask[3]) != match_value[3]) &&
584 | match_retry-- && !DAP_TransferAbort);
585 | if ((datas[0] & match_mask[0]) != match_value[0] ||
586 | (datas[1] & match_mask[1]) != match_value[1] ||
587 | (datas[2] & match_mask[2]) != match_value[2] ||
588 | (datas[3] & match_mask[3]) != match_value[3])
589 | {
590 | response_value |= DAP_TRANSFER_MISMATCH;
591 | }
592 | if (response_value != DAP_TRANSFER_OK)
593 | {
594 | break;
595 | }
596 | }
597 | else
598 | {
599 | // Normal read
600 | retry = retry_count;
601 | if ((request_value & DAP_TRANSFER_APnDP) != 0U)
602 | {
603 | // Read AP registers
604 | if (post_read == 0U)
605 | {
606 | // Post AP read
607 | do
608 | {
609 | response_value = SWD_Transfer(request_value, NULL);
610 | }
611 | while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
612 | if (response_value != DAP_TRANSFER_OK)
613 | {
614 | break;
615 | }
616 | post_read = 1U;
617 | }
618 | }
619 | else
620 | {
621 | // Read DP register
622 | do
623 | {
624 | response_value = SWD_Transfer(request_value, &datas);
625 | }
626 | while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
627 | if (response_value != DAP_TRANSFER_OK)
628 | {
629 | break;
630 | }
631 |
632 | // Store datas
633 | *res++ = datas[0];
634 | *res++ = datas[1];
635 | *res++ = datas[2];
636 | *res++ = datas[3];
637 | }
638 | }
639 | check_write = 0U;
640 | }
641 | else
642 | {
643 | // Write register
644 | if (post_read)
645 | {
646 | // Read previous datas
647 | retry = retry_count;
648 | do
649 | {
650 | response_value = SWD_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, &datas);
651 | }
652 | while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
653 | if (response_value != DAP_TRANSFER_OK)
654 | {
655 | break;
656 | }
657 | // Store previous datas
658 | *res++ = datas[0];
659 | *res++ = datas[1];
660 | *res++ = datas[2];
661 | *res++ = datas[3];
662 | post_read = 0U;
663 | }
664 | // Load datas
665 | datas[0] = (UINT8)(*(req + 0));
666 | datas[1] = (UINT8)(*(req + 1));
667 | datas[2] = (UINT8)(*(req + 2));
668 | datas[3] = (UINT8)(*(req + 3));
669 | req += 4;
670 | if ((request_value & DAP_TRANSFER_MATCH_MASK) != 0U)
671 | {
672 | // Write match mask
673 | match_mask[0] = datas[0];
674 | match_mask[1] = datas[1];
675 | match_mask[2] = datas[2];
676 | match_mask[3] = datas[3];
677 | response_value = DAP_TRANSFER_OK;
678 | }
679 | else
680 | {
681 | // Write DP/AP register
682 | retry = retry_count;
683 | do
684 | {
685 | response_value = SWD_Transfer(request_value, &datas);
686 | }
687 | while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
688 | if (response_value != DAP_TRANSFER_OK)
689 | {
690 | break;
691 | }
692 |
693 | check_write = 1U;
694 | }
695 | }
696 | response_count++;
697 | if (DAP_TransferAbort)
698 | {
699 | break;
700 | }
701 | }
702 |
703 | for (; request_count != 0U; request_count--)
704 | {
705 | // Process canceled requests
706 | request_value = *req++;
707 | if ((request_value & DAP_TRANSFER_RnW) != 0U)
708 | {
709 | // Read register
710 | if ((request_value & DAP_TRANSFER_MATCH_VALUE) != 0U)
711 | {
712 | // Read with value match
713 | req += 4;
714 | }
715 | }
716 | else
717 | {
718 | // Write register
719 | req += 4;
720 | }
721 | }
722 |
723 | if (response_value == DAP_TRANSFER_OK)
724 | {
725 | if (post_read)
726 | {
727 | // Read previous datas
728 | retry = retry_count;
729 | do
730 | {
731 | response_value = SWD_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, &datas);
732 | }
733 | while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
734 | if (response_value != DAP_TRANSFER_OK)
735 | {
736 | goto end;
737 | }
738 | // Store previous datas
739 | *res++ = (UINT8)datas[0];
740 | *res++ = (UINT8)datas[1];
741 | *res++ = (UINT8)datas[2];
742 | *res++ = (UINT8)datas[3];
743 | }
744 | else if (check_write)
745 | {
746 | // Check last write
747 | retry = retry_count;
748 | do
749 | {
750 | response_value = SWD_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, NULL);
751 | }
752 | while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
753 | }
754 | }
755 |
756 | end:
757 | *(response_head + 0) = (UINT8)response_count;
758 | *(response_head + 1) = (UINT8)response_value;
759 |
760 | return ((UINT8I)(res - response_head));
761 | }
762 |
763 | // Process Dummy Transfer command and prepare response
764 | // request: pointer to request datas
765 | // response: pointer to response datas
766 | // return: number of bytes in response (lower 16 bits)
767 | // number of bytes in request (upper 16 bits)
768 | //static UINT8 DAP_Dummy_Transfer(const UINT8 *req, UINT8 *res)
769 | //{
770 | // UINT8 *request_head;
771 | // UINT8 request_count;
772 | // UINT8 request_value;
773 |
774 | // request_head = req;
775 |
776 | // req++; // Ignore DAP index
777 |
778 | // request_count = *req++;
779 |
780 | // for (; request_count != 0U; request_count--)
781 | // {
782 | // // Process dummy requests
783 | // request_value = *req++;
784 | // if ((request_value & DAP_TRANSFER_RnW) != 0U)
785 | // {
786 | // // Read registers
787 | // if ((request_value & DAP_TRANSFER_MATCH_VALUE) != 0U)
788 | // {
789 | // // Read with value match
790 | // req += 4;
791 | // }
792 | // }
793 | // else
794 | // {
795 | // // Write registers
796 | // req += 4;
797 | // }
798 | // }
799 |
800 | // *(res + 0) = 0U; // res count
801 | // *(res + 1) = 0U; // res value
802 |
803 | // return 2;
804 | //}
805 |
806 | // Process Transfer command and prepare response
807 | // request: pointer to request datas
808 | // response: pointer to response datas
809 | // return: number of bytes in response (lower 16 bits)
810 | // number of bytes in request (upper 16 bits)
811 | static UINT8I DAP_Transfer(const UINT8 *req, UINT8 *res)
812 | {
813 | UINT8I num = 0;
814 |
815 | // switch (debug_port)
816 | // {
817 | // case DAP_PORT_SWD:
818 | num = DAP_SWD_Transfer(req, res);
819 | // break;
820 | // default:
821 | // num = DAP_Dummy_Transfer(req, res);
822 | // break;
823 | // }
824 |
825 | return (num);
826 | }
827 |
828 | // Process SWD Transfer Block command and prepare response
829 | // request: pointer to request datas
830 | // response: pointer to response datas
831 | // return: number of bytes in response
832 | static UINT8I DAP_SWD_TransferBlock(const UINT8 *req, UINT8 *res)
833 | {
834 |
835 | UINT8 *response_head;
836 |
837 | response_count = 0U;
838 | response_value = 0U;
839 | response_head = res;
840 | res += 3;
841 |
842 | DAP_TransferAbort = 0U;
843 |
844 | req++; // Ignore DAP index
845 |
846 | request_count = (UINT16)(*(req + 0) << 0) |
847 | (UINT16)(*(req + 1) << 8);
848 | req += 2;
849 | if (request_count == 0U)
850 | {
851 | goto end;
852 | }
853 |
854 | request_value = *req++;
855 | if ((request_value & DAP_TRANSFER_RnW) != 0U)
856 | {
857 | // Read register block
858 | if ((request_value & DAP_TRANSFER_APnDP) != 0U)
859 | {
860 | // Post AP read
861 | retry = retry_count;
862 | do
863 | {
864 | response_value = SWD_Transfer(request_value, NULL);
865 | }
866 | while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
867 | if (response_value != DAP_TRANSFER_OK)
868 | {
869 | goto end;
870 | }
871 | }
872 | while (request_count--)
873 | {
874 | // Read DP/AP register
875 | if ((request_count == 0U) && ((request_value & DAP_TRANSFER_APnDP) != 0U))
876 | {
877 | // Last AP read
878 | request_value = DP_RDBUFF | DAP_TRANSFER_RnW;
879 | }
880 | retry = retry_count;
881 | do
882 | {
883 | response_value = SWD_Transfer(request_value, &datas);
884 | }
885 | while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
886 | if (response_value != DAP_TRANSFER_OK)
887 | {
888 | goto end;
889 | }
890 | // Store datas
891 | *res++ = (UINT8)datas[0];
892 | *res++ = (UINT8)datas[1];
893 | *res++ = (UINT8)datas[2];
894 | *res++ = (UINT8)datas[3];
895 | response_count++;
896 | }
897 | }
898 | else
899 | {
900 | // Write register block
901 | while (request_count--)
902 | {
903 | // Load datas
904 | datas[0] = (UINT8)(*(req + 0));
905 | datas[1] = (UINT8)(*(req + 1));
906 | datas[2] = (UINT8)(*(req + 2));
907 | datas[3] = (UINT8)(*(req + 3));
908 |
909 | req += 4;
910 | // Write DP/AP register
911 | retry = retry_count;
912 | do
913 | {
914 | response_value = SWD_Transfer(request_value, &datas);
915 | }
916 | while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
917 | if (response_value != DAP_TRANSFER_OK)
918 | {
919 | goto end;
920 | }
921 | response_count++;
922 | }
923 | // Check last write
924 | retry = retry_count;
925 | do
926 | {
927 | response_value = SWD_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, NULL);
928 | }
929 | while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
930 | }
931 |
932 | end:
933 | *(response_head + 0) = (UINT8)(response_count >> 0);
934 | *(response_head + 1) = (UINT8)(response_count >> 8);
935 | *(response_head + 2) = (UINT8)response_value;
936 |
937 | return ((UINT8I)(res - response_head));
938 | }
939 |
940 | // Process Transfer Block command and prepare response
941 | // request: pointer to request datas
942 | // response: pointer to response datas
943 | // return: number of bytes in response (lower 16 bits)
944 | // number of bytes in request (upper 16 bits)
945 | static UINT8I DAP_TransferBlock(const UINT8 *req, UINT8 *res)
946 | {
947 | UINT8I num;
948 |
949 | switch (debug_port)
950 | {
951 | case DAP_PORT_SWD:
952 | num = DAP_SWD_TransferBlock(req, res);
953 | break;
954 |
955 | default:
956 | *(res + 0) = 0U; // res count [7:0]
957 | *(res + 1) = 0U; // res count[15:8]
958 | *(res + 2) = 0U; // res value
959 | num = 3U;
960 | break;
961 | }
962 |
963 | if ((*(req + 3) & DAP_TRANSFER_RnW) != 0U)
964 | {
965 | // Read registers block
966 | num |= 4U << 16;
967 | }
968 | else
969 | {
970 | // Write registers block
971 | num |= (4U + (((UINT8I)(*(req + 1)) | (UINT8I)(*(req + 2) << 8)) * 4)) << 16;
972 | }
973 |
974 | return (num);
975 | }
976 |
977 | // Process SWD Write ABORT command and prepare response
978 | // request: pointer to request datas
979 | // response: pointer to response datas
980 | // return: number of bytes in response
981 | static UINT8I DAP_SWD_WriteAbort(const UINT8 *req, UINT8 *res)
982 | {
983 | // Load datas (Ignore DAP index)
984 | datas[0] = (UINT8I)(*(req + 1));
985 | datas[1] = (UINT8I)(*(req + 2));
986 | datas[2] = (UINT8I)(*(req + 3));
987 | datas[3] = (UINT8I)(*(req + 4));
988 |
989 | // Write Abort register
990 | SWD_Transfer(DP_ABORT, &datas);
991 |
992 | *res = DAP_OK;
993 | return (1U);
994 | }
995 |
996 | // Process Write ABORT command and prepare response
997 | // request: pointer to request datas
998 | // response: pointer to response datas
999 | // return: number of bytes in response (lower 16 bits)
1000 | // number of bytes in request (upper 16 bits)
1001 | static UINT8I DAP_WriteAbort(const UINT8 *req, UINT8 *res)
1002 | {
1003 | UINT8I num;
1004 |
1005 | switch (debug_port)
1006 | {
1007 | case DAP_PORT_SWD:
1008 | num = DAP_SWD_WriteAbort(req, res);
1009 | break;
1010 |
1011 | default:
1012 | *res = DAP_ERROR;
1013 | num = 1U;
1014 | break;
1015 | }
1016 | return num;
1017 | }
1018 |
1019 | // DAP Thread.
1020 | void DAP_Thread(void)
1021 | {
1022 | UINT8I num;
1023 |
1024 | if (Ep2Oi != Ep2Oo)
1025 | {
1026 | PUINT8 req = &Ep2BufferO[Ep2Oo];
1027 | PUINT8 res = &Ep3BufferI[Ep3Ii];
1028 | Ep2Oo += 64;
1029 |
1030 |
1031 | *res++ = *req;
1032 | switch (*req++)
1033 | {
1034 | case ID_DAP_Transfer:
1035 | num = DAP_Transfer(req, res);
1036 | break;
1037 |
1038 | case ID_DAP_TransferBlock:
1039 | num = DAP_TransferBlock(req, res);
1040 | break;
1041 |
1042 | case ID_DAP_Info:
1043 | num = DAP_Info(*req, res + 1);
1044 | *res = (UINT8)num;
1045 | num++;
1046 | break;
1047 |
1048 | case ID_DAP_HostStatus:
1049 | num = DAP_HostStatus(req, res);
1050 | break;
1051 |
1052 | case ID_DAP_Connect:
1053 | num = DAP_Connect(req, res);
1054 | break;
1055 |
1056 | case ID_DAP_Disconnect:
1057 | num = DAP_Disconnect(res);
1058 | break;
1059 |
1060 | case ID_DAP_Delay:
1061 | num = DAP_Delay(req, res);
1062 | break;
1063 |
1064 | case ID_DAP_ResetTarget:
1065 | num = DAP_ResetTarget(res);
1066 | break;
1067 |
1068 | case ID_DAP_SWJ_Pins:
1069 | num = DAP_SWJ_Pins(req, res);
1070 | break;
1071 |
1072 | case ID_DAP_SWJ_Clock:
1073 | num = DAP_SWJ_Clock(req, res);
1074 | break;
1075 |
1076 | case ID_DAP_SWJ_Sequence:
1077 | num = DAP_SWJ_Sequence(req, res);
1078 | break;
1079 |
1080 | case ID_DAP_SWD_Configure:
1081 | num = DAP_SWD_Configure(req, res);
1082 | break;
1083 |
1084 | case ID_DAP_SWD_Sequence:
1085 | num = DAP_SWD_Sequence(req, res);
1086 | break;
1087 |
1088 | case ID_DAP_TransferConfigure:
1089 | num = DAP_TransferConfigure(req, res);
1090 | break;
1091 |
1092 | case ID_DAP_WriteABORT:
1093 | num = DAP_WriteAbort(req, res);
1094 | break;
1095 |
1096 | case ID_DAP_ExecuteCommands:
1097 | case ID_DAP_QueueCommands:
1098 | default:
1099 | *(res - 1) = ID_DAP_Invalid;
1100 | num = 1;
1101 | break;
1102 | }
1103 |
1104 | Ep3Is[0]/*(Ep3Ii>>6)]*/ = num + 1;
1105 | Ep3Ii += 64;
1106 | }
1107 | }
1108 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | GNU GENERAL PUBLIC LICENSE
2 | Version 3, 29 June 2007
3 |
4 | Copyright (C) 2007 Free Software Foundation, Inc.
5 | Everyone is permitted to copy and distribute verbatim copies
6 | of this license document, but changing it is not allowed.
7 |
8 | Preamble
9 |
10 | The GNU General Public License is a free, copyleft license for
11 | software and other kinds of works.
12 |
13 | The licenses for most software and other practical works are designed
14 | to take away your freedom to share and change the works. By contrast,
15 | the GNU General Public License is intended to guarantee your freedom to
16 | share and change all versions of a program--to make sure it remains free
17 | software for all its users. We, the Free Software Foundation, use the
18 | GNU General Public License for most of our software; it applies also to
19 | any other work released this way by its authors. You can apply it to
20 | your programs, too.
21 |
22 | When we speak of free software, we are referring to freedom, not
23 | price. Our General Public Licenses are designed to make sure that you
24 | have the freedom to distribute copies of free software (and charge for
25 | them if you wish), that you receive source code or can get it if you
26 | want it, that you can change the software or use pieces of it in new
27 | free programs, and that you know you can do these things.
28 |
29 | To protect your rights, we need to prevent others from denying you
30 | these rights or asking you to surrender the rights. Therefore, you have
31 | certain responsibilities if you distribute copies of the software, or if
32 | you modify it: responsibilities to respect the freedom of others.
33 |
34 | For example, if you distribute copies of such a program, whether
35 | gratis or for a fee, you must pass on to the recipients the same
36 | freedoms that you received. You must make sure that they, too, receive
37 | or can get the source code. And you must show them these terms so they
38 | know their rights.
39 |
40 | Developers that use the GNU GPL protect your rights with two steps:
41 | (1) assert copyright on the software, and (2) offer you this License
42 | giving you legal permission to copy, distribute and/or modify it.
43 |
44 | For the developers' and authors' protection, the GPL clearly explains
45 | that there is no warranty for this free software. For both users' and
46 | authors' sake, the GPL requires that modified versions be marked as
47 | changed, so that their problems will not be attributed erroneously to
48 | authors of previous versions.
49 |
50 | Some devices are designed to deny users access to install or run
51 | modified versions of the software inside them, although the manufacturer
52 | can do so. This is fundamentally incompatible with the aim of
53 | protecting users' freedom to change the software. The systematic
54 | pattern of such abuse occurs in the area of products for individuals to
55 | use, which is precisely where it is most unacceptable. Therefore, we
56 | have designed this version of the GPL to prohibit the practice for those
57 | products. If such problems arise substantially in other domains, we
58 | stand ready to extend this provision to those domains in future versions
59 | of the GPL, as needed to protect the freedom of users.
60 |
61 | Finally, every program is threatened constantly by software patents.
62 | States should not allow patents to restrict development and use of
63 | software on general-purpose computers, but in those that do, we wish to
64 | avoid the special danger that patents applied to a free program could
65 | make it effectively proprietary. To prevent this, the GPL assures that
66 | patents cannot be used to render the program non-free.
67 |
68 | The precise terms and conditions for copying, distribution and
69 | modification follow.
70 |
71 | TERMS AND CONDITIONS
72 |
73 | 0. Definitions.
74 |
75 | "This License" refers to version 3 of the GNU General Public License.
76 |
77 | "Copyright" also means copyright-like laws that apply to other kinds of
78 | works, such as semiconductor masks.
79 |
80 | "The Program" refers to any copyrightable work licensed under this
81 | License. Each licensee is addressed as "you". "Licensees" and
82 | "recipients" may be individuals or organizations.
83 |
84 | To "modify" a work means to copy from or adapt all or part of the work
85 | in a fashion requiring copyright permission, other than the making of an
86 | exact copy. The resulting work is called a "modified version" of the
87 | earlier work or a work "based on" the earlier work.
88 |
89 | A "covered work" means either the unmodified Program or a work based
90 | on the Program.
91 |
92 | To "propagate" a work means to do anything with it that, without
93 | permission, would make you directly or secondarily liable for
94 | infringement under applicable copyright law, except executing it on a
95 | computer or modifying a private copy. Propagation includes copying,
96 | distribution (with or without modification), making available to the
97 | public, and in some countries other activities as well.
98 |
99 | To "convey" a work means any kind of propagation that enables other
100 | parties to make or receive copies. Mere interaction with a user through
101 | a computer network, with no transfer of a copy, is not conveying.
102 |
103 | An interactive user interface displays "Appropriate Legal Notices"
104 | to the extent that it includes a convenient and prominently visible
105 | feature that (1) displays an appropriate copyright notice, and (2)
106 | tells the user that there is no warranty for the work (except to the
107 | extent that warranties are provided), that licensees may convey the
108 | work under this License, and how to view a copy of this License. If
109 | the interface presents a list of user commands or options, such as a
110 | menu, a prominent item in the list meets this criterion.
111 |
112 | 1. Source Code.
113 |
114 | The "source code" for a work means the preferred form of the work
115 | for making modifications to it. "Object code" means any non-source
116 | form of a work.
117 |
118 | A "Standard Interface" means an interface that either is an official
119 | standard defined by a recognized standards body, or, in the case of
120 | interfaces specified for a particular programming language, one that
121 | is widely used among developers working in that language.
122 |
123 | The "System Libraries" of an executable work include anything, other
124 | than the work as a whole, that (a) is included in the normal form of
125 | packaging a Major Component, but which is not part of that Major
126 | Component, and (b) serves only to enable use of the work with that
127 | Major Component, or to implement a Standard Interface for which an
128 | implementation is available to the public in source code form. A
129 | "Major Component", in this context, means a major essential component
130 | (kernel, window system, and so on) of the specific operating system
131 | (if any) on which the executable work runs, or a compiler used to
132 | produce the work, or an object code interpreter used to run it.
133 |
134 | The "Corresponding Source" for a work in object code form means all
135 | the source code needed to generate, install, and (for an executable
136 | work) run the object code and to modify the work, including scripts to
137 | control those activities. However, it does not include the work's
138 | System Libraries, or general-purpose tools or generally available free
139 | programs which are used unmodified in performing those activities but
140 | which are not part of the work. For example, Corresponding Source
141 | includes interface definition files associated with source files for
142 | the work, and the source code for shared libraries and dynamically
143 | linked subprograms that the work is specifically designed to require,
144 | such as by intimate data communication or control flow between those
145 | subprograms and other parts of the work.
146 |
147 | The Corresponding Source need not include anything that users
148 | can regenerate automatically from other parts of the Corresponding
149 | Source.
150 |
151 | The Corresponding Source for a work in source code form is that
152 | same work.
153 |
154 | 2. Basic Permissions.
155 |
156 | All rights granted under this License are granted for the term of
157 | copyright on the Program, and are irrevocable provided the stated
158 | conditions are met. This License explicitly affirms your unlimited
159 | permission to run the unmodified Program. The output from running a
160 | covered work is covered by this License only if the output, given its
161 | content, constitutes a covered work. This License acknowledges your
162 | rights of fair use or other equivalent, as provided by copyright law.
163 |
164 | You may make, run and propagate covered works that you do not
165 | convey, without conditions so long as your license otherwise remains
166 | in force. You may convey covered works to others for the sole purpose
167 | of having them make modifications exclusively for you, or provide you
168 | with facilities for running those works, provided that you comply with
169 | the terms of this License in conveying all material for which you do
170 | not control copyright. Those thus making or running the covered works
171 | for you must do so exclusively on your behalf, under your direction
172 | and control, on terms that prohibit them from making any copies of
173 | your copyrighted material outside their relationship with you.
174 |
175 | Conveying under any other circumstances is permitted solely under
176 | the conditions stated below. Sublicensing is not allowed; section 10
177 | makes it unnecessary.
178 |
179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
180 |
181 | No covered work shall be deemed part of an effective technological
182 | measure under any applicable law fulfilling obligations under article
183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or
184 | similar laws prohibiting or restricting circumvention of such
185 | measures.
186 |
187 | When you convey a covered work, you waive any legal power to forbid
188 | circumvention of technological measures to the extent such circumvention
189 | is effected by exercising rights under this License with respect to
190 | the covered work, and you disclaim any intention to limit operation or
191 | modification of the work as a means of enforcing, against the work's
192 | users, your or third parties' legal rights to forbid circumvention of
193 | technological measures.
194 |
195 | 4. Conveying Verbatim Copies.
196 |
197 | You may convey verbatim copies of the Program's source code as you
198 | receive it, in any medium, provided that you conspicuously and
199 | appropriately publish on each copy an appropriate copyright notice;
200 | keep intact all notices stating that this License and any
201 | non-permissive terms added in accord with section 7 apply to the code;
202 | keep intact all notices of the absence of any warranty; and give all
203 | recipients a copy of this License along with the Program.
204 |
205 | You may charge any price or no price for each copy that you convey,
206 | and you may offer support or warranty protection for a fee.
207 |
208 | 5. Conveying Modified Source Versions.
209 |
210 | You may convey a work based on the Program, or the modifications to
211 | produce it from the Program, in the form of source code under the
212 | terms of section 4, provided that you also meet all of these conditions:
213 |
214 | a) The work must carry prominent notices stating that you modified
215 | it, and giving a relevant date.
216 |
217 | b) The work must carry prominent notices stating that it is
218 | released under this License and any conditions added under section
219 | 7. This requirement modifies the requirement in section 4 to
220 | "keep intact all notices".
221 |
222 | c) You must license the entire work, as a whole, under this
223 | License to anyone who comes into possession of a copy. This
224 | License will therefore apply, along with any applicable section 7
225 | additional terms, to the whole of the work, and all its parts,
226 | regardless of how they are packaged. This License gives no
227 | permission to license the work in any other way, but it does not
228 | invalidate such permission if you have separately received it.
229 |
230 | d) If the work has interactive user interfaces, each must display
231 | Appropriate Legal Notices; however, if the Program has interactive
232 | interfaces that do not display Appropriate Legal Notices, your
233 | work need not make them do so.
234 |
235 | A compilation of a covered work with other separate and independent
236 | works, which are not by their nature extensions of the covered work,
237 | and which are not combined with it such as to form a larger program,
238 | in or on a volume of a storage or distribution medium, is called an
239 | "aggregate" if the compilation and its resulting copyright are not
240 | used to limit the access or legal rights of the compilation's users
241 | beyond what the individual works permit. Inclusion of a covered work
242 | in an aggregate does not cause this License to apply to the other
243 | parts of the aggregate.
244 |
245 | 6. Conveying Non-Source Forms.
246 |
247 | You may convey a covered work in object code form under the terms
248 | of sections 4 and 5, provided that you also convey the
249 | machine-readable Corresponding Source under the terms of this License,
250 | in one of these ways:
251 |
252 | a) Convey the object code in, or embodied in, a physical product
253 | (including a physical distribution medium), accompanied by the
254 | Corresponding Source fixed on a durable physical medium
255 | customarily used for software interchange.
256 |
257 | b) Convey the object code in, or embodied in, a physical product
258 | (including a physical distribution medium), accompanied by a
259 | written offer, valid for at least three years and valid for as
260 | long as you offer spare parts or customer support for that product
261 | model, to give anyone who possesses the object code either (1) a
262 | copy of the Corresponding Source for all the software in the
263 | product that is covered by this License, on a durable physical
264 | medium customarily used for software interchange, for a price no
265 | more than your reasonable cost of physically performing this
266 | conveying of source, or (2) access to copy the
267 | Corresponding Source from a network server at no charge.
268 |
269 | c) Convey individual copies of the object code with a copy of the
270 | written offer to provide the Corresponding Source. This
271 | alternative is allowed only occasionally and noncommercially, and
272 | only if you received the object code with such an offer, in accord
273 | with subsection 6b.
274 |
275 | d) Convey the object code by offering access from a designated
276 | place (gratis or for a charge), and offer equivalent access to the
277 | Corresponding Source in the same way through the same place at no
278 | further charge. You need not require recipients to copy the
279 | Corresponding Source along with the object code. If the place to
280 | copy the object code is a network server, the Corresponding Source
281 | may be on a different server (operated by you or a third party)
282 | that supports equivalent copying facilities, provided you maintain
283 | clear directions next to the object code saying where to find the
284 | Corresponding Source. Regardless of what server hosts the
285 | Corresponding Source, you remain obligated to ensure that it is
286 | available for as long as needed to satisfy these requirements.
287 |
288 | e) Convey the object code using peer-to-peer transmission, provided
289 | you inform other peers where the object code and Corresponding
290 | Source of the work are being offered to the general public at no
291 | charge under subsection 6d.
292 |
293 | A separable portion of the object code, whose source code is excluded
294 | from the Corresponding Source as a System Library, need not be
295 | included in conveying the object code work.
296 |
297 | A "User Product" is either (1) a "consumer product", which means any
298 | tangible personal property which is normally used for personal, family,
299 | or household purposes, or (2) anything designed or sold for incorporation
300 | into a dwelling. In determining whether a product is a consumer product,
301 | doubtful cases shall be resolved in favor of coverage. For a particular
302 | product received by a particular user, "normally used" refers to a
303 | typical or common use of that class of product, regardless of the status
304 | of the particular user or of the way in which the particular user
305 | actually uses, or expects or is expected to use, the product. A product
306 | is a consumer product regardless of whether the product has substantial
307 | commercial, industrial or non-consumer uses, unless such uses represent
308 | the only significant mode of use of the product.
309 |
310 | "Installation Information" for a User Product means any methods,
311 | procedures, authorization keys, or other information required to install
312 | and execute modified versions of a covered work in that User Product from
313 | a modified version of its Corresponding Source. The information must
314 | suffice to ensure that the continued functioning of the modified object
315 | code is in no case prevented or interfered with solely because
316 | modification has been made.
317 |
318 | If you convey an object code work under this section in, or with, or
319 | specifically for use in, a User Product, and the conveying occurs as
320 | part of a transaction in which the right of possession and use of the
321 | User Product is transferred to the recipient in perpetuity or for a
322 | fixed term (regardless of how the transaction is characterized), the
323 | Corresponding Source conveyed under this section must be accompanied
324 | by the Installation Information. But this requirement does not apply
325 | if neither you nor any third party retains the ability to install
326 | modified object code on the User Product (for example, the work has
327 | been installed in ROM).
328 |
329 | The requirement to provide Installation Information does not include a
330 | requirement to continue to provide support service, warranty, or updates
331 | for a work that has been modified or installed by the recipient, or for
332 | the User Product in which it has been modified or installed. Access to a
333 | network may be denied when the modification itself materially and
334 | adversely affects the operation of the network or violates the rules and
335 | protocols for communication across the network.
336 |
337 | Corresponding Source conveyed, and Installation Information provided,
338 | in accord with this section must be in a format that is publicly
339 | documented (and with an implementation available to the public in
340 | source code form), and must require no special password or key for
341 | unpacking, reading or copying.
342 |
343 | 7. Additional Terms.
344 |
345 | "Additional permissions" are terms that supplement the terms of this
346 | License by making exceptions from one or more of its conditions.
347 | Additional permissions that are applicable to the entire Program shall
348 | be treated as though they were included in this License, to the extent
349 | that they are valid under applicable law. If additional permissions
350 | apply only to part of the Program, that part may be used separately
351 | under those permissions, but the entire Program remains governed by
352 | this License without regard to the additional permissions.
353 |
354 | When you convey a copy of a covered work, you may at your option
355 | remove any additional permissions from that copy, or from any part of
356 | it. (Additional permissions may be written to require their own
357 | removal in certain cases when you modify the work.) You may place
358 | additional permissions on material, added by you to a covered work,
359 | for which you have or can give appropriate copyright permission.
360 |
361 | Notwithstanding any other provision of this License, for material you
362 | add to a covered work, you may (if authorized by the copyright holders of
363 | that material) supplement the terms of this License with terms:
364 |
365 | a) Disclaiming warranty or limiting liability differently from the
366 | terms of sections 15 and 16 of this License; or
367 |
368 | b) Requiring preservation of specified reasonable legal notices or
369 | author attributions in that material or in the Appropriate Legal
370 | Notices displayed by works containing it; or
371 |
372 | c) Prohibiting misrepresentation of the origin of that material, or
373 | requiring that modified versions of such material be marked in
374 | reasonable ways as different from the original version; or
375 |
376 | d) Limiting the use for publicity purposes of names of licensors or
377 | authors of the material; or
378 |
379 | e) Declining to grant rights under trademark law for use of some
380 | trade names, trademarks, or service marks; or
381 |
382 | f) Requiring indemnification of licensors and authors of that
383 | material by anyone who conveys the material (or modified versions of
384 | it) with contractual assumptions of liability to the recipient, for
385 | any liability that these contractual assumptions directly impose on
386 | those licensors and authors.
387 |
388 | All other non-permissive additional terms are considered "further
389 | restrictions" within the meaning of section 10. If the Program as you
390 | received it, or any part of it, contains a notice stating that it is
391 | governed by this License along with a term that is a further
392 | restriction, you may remove that term. If a license document contains
393 | a further restriction but permits relicensing or conveying under this
394 | License, you may add to a covered work material governed by the terms
395 | of that license document, provided that the further restriction does
396 | not survive such relicensing or conveying.
397 |
398 | If you add terms to a covered work in accord with this section, you
399 | must place, in the relevant source files, a statement of the
400 | additional terms that apply to those files, or a notice indicating
401 | where to find the applicable terms.
402 |
403 | Additional terms, permissive or non-permissive, may be stated in the
404 | form of a separately written license, or stated as exceptions;
405 | the above requirements apply either way.
406 |
407 | 8. Termination.
408 |
409 | You may not propagate or modify a covered work except as expressly
410 | provided under this License. Any attempt otherwise to propagate or
411 | modify it is void, and will automatically terminate your rights under
412 | this License (including any patent licenses granted under the third
413 | paragraph of section 11).
414 |
415 | However, if you cease all violation of this License, then your
416 | license from a particular copyright holder is reinstated (a)
417 | provisionally, unless and until the copyright holder explicitly and
418 | finally terminates your license, and (b) permanently, if the copyright
419 | holder fails to notify you of the violation by some reasonable means
420 | prior to 60 days after the cessation.
421 |
422 | Moreover, your license from a particular copyright holder is
423 | reinstated permanently if the copyright holder notifies you of the
424 | violation by some reasonable means, this is the first time you have
425 | received notice of violation of this License (for any work) from that
426 | copyright holder, and you cure the violation prior to 30 days after
427 | your receipt of the notice.
428 |
429 | Termination of your rights under this section does not terminate the
430 | licenses of parties who have received copies or rights from you under
431 | this License. If your rights have been terminated and not permanently
432 | reinstated, you do not qualify to receive new licenses for the same
433 | material under section 10.
434 |
435 | 9. Acceptance Not Required for Having Copies.
436 |
437 | You are not required to accept this License in order to receive or
438 | run a copy of the Program. Ancillary propagation of a covered work
439 | occurring solely as a consequence of using peer-to-peer transmission
440 | to receive a copy likewise does not require acceptance. However,
441 | nothing other than this License grants you permission to propagate or
442 | modify any covered work. These actions infringe copyright if you do
443 | not accept this License. Therefore, by modifying or propagating a
444 | covered work, you indicate your acceptance of this License to do so.
445 |
446 | 10. Automatic Licensing of Downstream Recipients.
447 |
448 | Each time you convey a covered work, the recipient automatically
449 | receives a license from the original licensors, to run, modify and
450 | propagate that work, subject to this License. You are not responsible
451 | for enforcing compliance by third parties with this License.
452 |
453 | An "entity transaction" is a transaction transferring control of an
454 | organization, or substantially all assets of one, or subdividing an
455 | organization, or merging organizations. If propagation of a covered
456 | work results from an entity transaction, each party to that
457 | transaction who receives a copy of the work also receives whatever
458 | licenses to the work the party's predecessor in interest had or could
459 | give under the previous paragraph, plus a right to possession of the
460 | Corresponding Source of the work from the predecessor in interest, if
461 | the predecessor has it or can get it with reasonable efforts.
462 |
463 | You may not impose any further restrictions on the exercise of the
464 | rights granted or affirmed under this License. For example, you may
465 | not impose a license fee, royalty, or other charge for exercise of
466 | rights granted under this License, and you may not initiate litigation
467 | (including a cross-claim or counterclaim in a lawsuit) alleging that
468 | any patent claim is infringed by making, using, selling, offering for
469 | sale, or importing the Program or any portion of it.
470 |
471 | 11. Patents.
472 |
473 | A "contributor" is a copyright holder who authorizes use under this
474 | License of the Program or a work on which the Program is based. The
475 | work thus licensed is called the contributor's "contributor version".
476 |
477 | A contributor's "essential patent claims" are all patent claims
478 | owned or controlled by the contributor, whether already acquired or
479 | hereafter acquired, that would be infringed by some manner, permitted
480 | by this License, of making, using, or selling its contributor version,
481 | but do not include claims that would be infringed only as a
482 | consequence of further modification of the contributor version. For
483 | purposes of this definition, "control" includes the right to grant
484 | patent sublicenses in a manner consistent with the requirements of
485 | this License.
486 |
487 | Each contributor grants you a non-exclusive, worldwide, royalty-free
488 | patent license under the contributor's essential patent claims, to
489 | make, use, sell, offer for sale, import and otherwise run, modify and
490 | propagate the contents of its contributor version.
491 |
492 | In the following three paragraphs, a "patent license" is any express
493 | agreement or commitment, however denominated, not to enforce a patent
494 | (such as an express permission to practice a patent or covenant not to
495 | sue for patent infringement). To "grant" such a patent license to a
496 | party means to make such an agreement or commitment not to enforce a
497 | patent against the party.
498 |
499 | If you convey a covered work, knowingly relying on a patent license,
500 | and the Corresponding Source of the work is not available for anyone
501 | to copy, free of charge and under the terms of this License, through a
502 | publicly available network server or other readily accessible means,
503 | then you must either (1) cause the Corresponding Source to be so
504 | available, or (2) arrange to deprive yourself of the benefit of the
505 | patent license for this particular work, or (3) arrange, in a manner
506 | consistent with the requirements of this License, to extend the patent
507 | license to downstream recipients. "Knowingly relying" means you have
508 | actual knowledge that, but for the patent license, your conveying the
509 | covered work in a country, or your recipient's use of the covered work
510 | in a country, would infringe one or more identifiable patents in that
511 | country that you have reason to believe are valid.
512 |
513 | If, pursuant to or in connection with a single transaction or
514 | arrangement, you convey, or propagate by procuring conveyance of, a
515 | covered work, and grant a patent license to some of the parties
516 | receiving the covered work authorizing them to use, propagate, modify
517 | or convey a specific copy of the covered work, then the patent license
518 | you grant is automatically extended to all recipients of the covered
519 | work and works based on it.
520 |
521 | A patent license is "discriminatory" if it does not include within
522 | the scope of its coverage, prohibits the exercise of, or is
523 | conditioned on the non-exercise of one or more of the rights that are
524 | specifically granted under this License. You may not convey a covered
525 | work if you are a party to an arrangement with a third party that is
526 | in the business of distributing software, under which you make payment
527 | to the third party based on the extent of your activity of conveying
528 | the work, and under which the third party grants, to any of the
529 | parties who would receive the covered work from you, a discriminatory
530 | patent license (a) in connection with copies of the covered work
531 | conveyed by you (or copies made from those copies), or (b) primarily
532 | for and in connection with specific products or compilations that
533 | contain the covered work, unless you entered into that arrangement,
534 | or that patent license was granted, prior to 28 March 2007.
535 |
536 | Nothing in this License shall be construed as excluding or limiting
537 | any implied license or other defenses to infringement that may
538 | otherwise be available to you under applicable patent law.
539 |
540 | 12. No Surrender of Others' Freedom.
541 |
542 | If conditions are imposed on you (whether by court order, agreement or
543 | otherwise) that contradict the conditions of this License, they do not
544 | excuse you from the conditions of this License. If you cannot convey a
545 | covered work so as to satisfy simultaneously your obligations under this
546 | License and any other pertinent obligations, then as a consequence you may
547 | not convey it at all. For example, if you agree to terms that obligate you
548 | to collect a royalty for further conveying from those to whom you convey
549 | the Program, the only way you could satisfy both those terms and this
550 | License would be to refrain entirely from conveying the Program.
551 |
552 | 13. Use with the GNU Affero General Public License.
553 |
554 | Notwithstanding any other provision of this License, you have
555 | permission to link or combine any covered work with a work licensed
556 | under version 3 of the GNU Affero General Public License into a single
557 | combined work, and to convey the resulting work. The terms of this
558 | License will continue to apply to the part which is the covered work,
559 | but the special requirements of the GNU Affero General Public License,
560 | section 13, concerning interaction through a network will apply to the
561 | combination as such.
562 |
563 | 14. Revised Versions of this License.
564 |
565 | The Free Software Foundation may publish revised and/or new versions of
566 | the GNU General Public License from time to time. Such new versions will
567 | be similar in spirit to the present version, but may differ in detail to
568 | address new problems or concerns.
569 |
570 | Each version is given a distinguishing version number. If the
571 | Program specifies that a certain numbered version of the GNU General
572 | Public License "or any later version" applies to it, you have the
573 | option of following the terms and conditions either of that numbered
574 | version or of any later version published by the Free Software
575 | Foundation. If the Program does not specify a version number of the
576 | GNU General Public License, you may choose any version ever published
577 | by the Free Software Foundation.
578 |
579 | If the Program specifies that a proxy can decide which future
580 | versions of the GNU General Public License can be used, that proxy's
581 | public statement of acceptance of a version permanently authorizes you
582 | to choose that version for the Program.
583 |
584 | Later license versions may give you additional or different
585 | permissions. However, no additional obligations are imposed on any
586 | author or copyright holder as a result of your choosing to follow a
587 | later version.
588 |
589 | 15. Disclaimer of Warranty.
590 |
591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
599 |
600 | 16. Limitation of Liability.
601 |
602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
610 | SUCH DAMAGES.
611 |
612 | 17. Interpretation of Sections 15 and 16.
613 |
614 | If the disclaimer of warranty and limitation of liability provided
615 | above cannot be given local legal effect according to their terms,
616 | reviewing courts shall apply local law that most closely approximates
617 | an absolute waiver of all civil liability in connection with the
618 | Program, unless a warranty or assumption of liability accompanies a
619 | copy of the Program in return for a fee.
620 |
621 | END OF TERMS AND CONDITIONS
622 |
623 | How to Apply These Terms to Your New Programs
624 |
625 | If you develop a new program, and you want it to be of the greatest
626 | possible use to the public, the best way to achieve this is to make it
627 | free software which everyone can redistribute and change under these terms.
628 |
629 | To do so, attach the following notices to the program. It is safest
630 | to attach them to the start of each source file to most effectively
631 | state the exclusion of warranty; and each file should have at least
632 | the "copyright" line and a pointer to where the full notice is found.
633 |
634 |
635 | Copyright (C)
636 |
637 | This program is free software: you can redistribute it and/or modify
638 | it under the terms of the GNU General Public License as published by
639 | the Free Software Foundation, either version 3 of the License, or
640 | (at your option) any later version.
641 |
642 | This program is distributed in the hope that it will be useful,
643 | but WITHOUT ANY WARRANTY; without even the implied warranty of
644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
645 | GNU General Public License for more details.
646 |
647 | You should have received a copy of the GNU General Public License
648 | along with this program. If not, see .
649 |
650 | Also add information on how to contact you by electronic and paper mail.
651 |
652 | If the program does terminal interaction, make it output a short
653 | notice like this when it starts in an interactive mode:
654 |
655 | Copyright (C)
656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
657 | This is free software, and you are welcome to redistribute it
658 | under certain conditions; type `show c' for details.
659 |
660 | The hypothetical commands `show w' and `show c' should show the appropriate
661 | parts of the General Public License. Of course, your program's commands
662 | might be different; for a GUI interface, you would use an "about box".
663 |
664 | You should also get your employer (if you work as a programmer) or school,
665 | if any, to sign a "copyright disclaimer" for the program, if necessary.
666 | For more information on this, and how to apply and follow the GNU GPL, see
667 | .
668 |
669 | The GNU General Public License does not permit incorporating your program
670 | into proprietary programs. If your program is a subroutine library, you
671 | may consider it more useful to permit linking proprietary applications with
672 | the library. If this is what you want to do, use the GNU Lesser General
673 | Public License instead of this License. But first, please read
674 | .
675 |
--------------------------------------------------------------------------------