Browse Source

switch to ping-pong buffer to USB CDC interface, we can now get 40kHz worth of data back

curiousmuch 9 months ago
parent
commit
e9366c1e1a
7 changed files with 18497 additions and 18375 deletions
  1. 32 3
      Core/Src/main.c
  2. BIN
      Debug/Core/Src/main.o
  3. 7 7
      Debug/Core/Src/main.su
  4. BIN
      Debug/cc1200_spi_ripper.bin
  5. BIN
      Debug/cc1200_spi_ripper.elf
  6. 17734 17641
      Debug/cc1200_spi_ripper.list
  7. 724 724
      Debug/cc1200_spi_ripper.map

+ 32 - 3
Core/Src/main.c

@@ -110,14 +110,23 @@ static uint8_t SPI1_ReceiveByte(void)
 	  return LL_SPI_ReceiveData8(SPI1);
 }
 
-static uint8_t txBuffer;
+static uint8_t txBuffer0[2000];
+static uint8_t txBuffer1[2000];
+static uint32_t i=0, j=0;
 
 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef * htim)
 {
 
-	txBuffer = cc1200_radio_read_CFM();
+	if (i == 2000 && j < 2000)
+		txBuffer1[j++] = cc1200_radio_read_CFM();
+	else if (i < 2000)
+		txBuffer0[i++] = cc1200_radio_read_CFM();
+	else
+	{
+		HAL_GPIO_TogglePin(LED_YELLOW_GPIO_Port, LED_YELLOW_Pin);
+	}
+
 	//cc1200_radio_write_CFM(0);
-	CDC_Transmit_HS(&txBuffer, 1);
 
 	// Toggle LED as heart beat.
 	static uint32_t toggleCount = 0;
@@ -199,6 +208,26 @@ int main(void)
   while (1)
   {
 
+	if (i >= 2000)
+	{
+		if(CDC_Transmit_HS(txBuffer0, 2000) != USBD_OK)
+		{
+			HAL_GPIO_TogglePin(LED_RED_GPIO_Port, LED_RED_Pin);
+		}
+		i = 0;
+
+	}
+	if (j >= 2000)
+	{
+		if(CDC_Transmit_HS(txBuffer1, 2000) != USBD_OK)
+		{
+
+			HAL_GPIO_TogglePin(LED_RED_GPIO_Port, LED_RED_Pin);
+		}
+		j = 0;
+	}
+
+
     /* USER CODE END WHILE */
 
     /* USER CODE BEGIN 3 */

BIN
Debug/Core/Src/main.o


+ 7 - 7
Debug/Core/Src/main.su

@@ -12,10 +12,10 @@ stm32h7xx_ll_bus.h:1383:22:LL_AHB4_GRP1_EnableClock	24	static
 stm32h7xx_ll_bus.h:2479:22:LL_APB2_GRP1_EnableClock	24	static
 main.c:66:13:SPI1_TransmitBytes	16	static
 main.c:94:16:SPI1_ReceiveByte	8	static
-main.c:115:6:HAL_TIM_PeriodElapsedCallback	16	static
-main.c:138:5:main	24	static,ignoring_inline_asm
-main.c:213:6:SystemClock_Config	120	static
-main.c:270:13:MX_SPI1_Init	256	static
-main.c:345:13:MX_TIM3_Init	40	static
-main.c:390:13:MX_GPIO_Init	56	static
-main.c:515:6:Error_Handler	4	static,ignoring_inline_asm
+main.c:117:6:HAL_TIM_PeriodElapsedCallback	24	static
+main.c:147:5:main	24	static,ignoring_inline_asm
+main.c:242:6:SystemClock_Config	120	static
+main.c:299:13:MX_SPI1_Init	256	static
+main.c:374:13:MX_TIM3_Init	40	static
+main.c:419:13:MX_GPIO_Init	56	static
+main.c:544:6:Error_Handler	4	static,ignoring_inline_asm

BIN
Debug/cc1200_spi_ripper.bin


BIN
Debug/cc1200_spi_ripper.elf


+ 17734 - 17641
Debug/cc1200_spi_ripper.list

@@ -5,39 +5,39 @@ Sections:
 Idx Name          Size      VMA       LMA       File off  Algn
   0 .isr_vector   000002cc  08000000  08000000  00010000  2**0
                   CONTENTS, ALLOC, LOAD, READONLY, DATA
-  1 .text         0000a544  080002d0  080002d0  000102d0  2**4
+  1 .text         0000a5fc  080002d0  080002d0  000102d0  2**4
                   CONTENTS, ALLOC, LOAD, READONLY, CODE
-  2 .rodata       00000228  0800a814  0800a814  0001a814  2**2
+  2 .rodata       00000228  0800a8cc  0800a8cc  0001a8cc  2**2
                   CONTENTS, ALLOC, LOAD, READONLY, DATA
-  3 .init_array   00000004  0800aa3c  0800aa3c  0001aa3c  2**2
+  3 .init_array   00000004  0800aaf4  0800aaf4  0001aaf4  2**2
                   CONTENTS, ALLOC, LOAD, DATA
-  4 .fini_array   00000004  0800aa40  0800aa40  0001aa40  2**2
+  4 .fini_array   00000004  0800aaf8  0800aaf8  0001aaf8  2**2
                   CONTENTS, ALLOC, LOAD, DATA
-  5 .data         000001e8  24000000  0800aa44  00020000  2**2
+  5 .data         000001e8  24000000  0800aafc  00020000  2**2
                   CONTENTS, ALLOC, LOAD, DATA
-  6 .bss          00001b8c  240001e8  0800ac2c  000201e8  2**2
+  6 .bss          00002b30  240001e8  0800ace4  000201e8  2**2
                   ALLOC
-  7 ._user_heap_stack 00000604  24001d74  0800ac2c  00021d74  2**0
+  7 ._user_heap_stack 00000600  24002d18  0800ace4  00022d18  2**0
                   ALLOC
   8 .ARM.attributes 0000002e  00000000  00000000  000201e8  2**0
                   CONTENTS, READONLY
-  9 .debug_info   0002d67a  00000000  00000000  00020216  2**0
+  9 .debug_info   0002d6e4  00000000  00000000  00020216  2**0
                   CONTENTS, READONLY, DEBUGGING, OCTETS
- 10 .debug_abbrev 000052c9  00000000  00000000  0004d890  2**0
+ 10 .debug_abbrev 000052e3  00000000  00000000  0004d8fa  2**0
                   CONTENTS, READONLY, DEBUGGING, OCTETS
- 11 .debug_aranges 00001740  00000000  00000000  00052b60  2**3
+ 11 .debug_aranges 00001740  00000000  00000000  00052be0  2**3
                   CONTENTS, READONLY, DEBUGGING, OCTETS
- 12 .debug_ranges 00001578  00000000  00000000  000542a0  2**3
+ 12 .debug_ranges 00001578  00000000  00000000  00054320  2**3
                   CONTENTS, READONLY, DEBUGGING, OCTETS
- 13 .debug_macro  0003a87c  00000000  00000000  00055818  2**0
+ 13 .debug_macro  0003a87c  00000000  00000000  00055898  2**0
                   CONTENTS, READONLY, DEBUGGING, OCTETS
- 14 .debug_line   0001cba1  00000000  00000000  00090094  2**0
+ 14 .debug_line   0001cbe9  00000000  00000000  00090114  2**0
                   CONTENTS, READONLY, DEBUGGING, OCTETS
- 15 .debug_str    001622a6  00000000  00000000  000acc35  2**0
+ 15 .debug_str    001622b1  00000000  00000000  000accfd  2**0
                   CONTENTS, READONLY, DEBUGGING, OCTETS
- 16 .comment      00000053  00000000  00000000  0020eedb  2**0
+ 16 .comment      00000053  00000000  00000000  0020efae  2**0
                   CONTENTS, READONLY
- 17 .debug_frame  00006a10  00000000  00000000  0020ef30  2**2
+ 17 .debug_frame  00006a14  00000000  00000000  0020f004  2**2
                   CONTENTS, READONLY, DEBUGGING, OCTETS
 
 Disassembly of section .text:
@@ -56,7 +56,7 @@ Disassembly of section .text:
  80002e6:	bd10      	pop	{r4, pc}
  80002e8:	240001e8 	.word	0x240001e8
  80002ec:	00000000 	.word	0x00000000
- 80002f0:	0800a7fc 	.word	0x0800a7fc
+ 80002f0:	0800a8b4 	.word	0x0800a8b4
 
 080002f4 <frame_dummy>:
  80002f4:	b508      	push	{r3, lr}
@@ -68,7 +68,7 @@ Disassembly of section .text:
  8000302:	bd08      	pop	{r3, pc}
  8000304:	00000000 	.word	0x00000000
  8000308:	240001ec 	.word	0x240001ec
- 800030c:	0800a7fc 	.word	0x0800a7fc
+ 800030c:	0800a8b4 	.word	0x0800a8b4
 
 08000310 <memchr>:
  8000310:	f001 01ff 	and.w	r1, r1, #255	; 0xff
@@ -461,7 +461,7 @@ void SPI1_TransmitBytes(uint8_t *p_buf, uint8_t len)
  8000566:	4a0d      	ldr	r2, [pc, #52]	; (800059c <SPI1_TransmitBytes+0x98>)
  8000568:	212f      	movs	r1, #47	; 0x2f
  800056a:	480d      	ldr	r0, [pc, #52]	; (80005a0 <SPI1_TransmitBytes+0x9c>)
- 800056c:	f009 f95a 	bl	8009824 <__assert_func>
+ 800056c:	f009 f9b6 	bl	80098dc <__assert_func>
 	  }
 
 	  // Wait until the transmission is complete
@@ -487,9 +487,9 @@ void SPI1_TransmitBytes(uint8_t *p_buf, uint8_t len)
  8000590:	46bd      	mov	sp, r7
  8000592:	bd80      	pop	{r7, pc}
  8000594:	40013000 	.word	0x40013000
- 8000598:	0800a814 	.word	0x0800a814
- 800059c:	0800a878 	.word	0x0800a878
- 80005a0:	0800a818 	.word	0x0800a818
+ 8000598:	0800a8cc 	.word	0x0800a8cc
+ 800059c:	0800a930 	.word	0x0800a930
+ 80005a0:	0800a8d0 	.word	0x0800a8d0
 
 080005a4 <SPI1_ReceiveByte>:
 
@@ -603,7 +603,7 @@ static void cc1200_spi_write_byte(uint16_t addr, uint8_t data)
  800063c:	2200      	movs	r2, #0
  800063e:	2140      	movs	r1, #64	; 0x40
  8000640:	4815      	ldr	r0, [pc, #84]	; (8000698 <cc1200_spi_write_byte+0x6c>)
- 8000642:	f001 fa95 	bl	8001b70 <HAL_GPIO_WritePin>
+ 8000642:	f001 faf1 	bl	8001c28 <HAL_GPIO_WritePin>
 
 	if ((addr & 0xFF00) != 0) // send data with extended address in command field
  8000646:	88fb      	ldrh	r3, [r7, #6]
@@ -653,7 +653,7 @@ static void cc1200_spi_write_byte(uint16_t addr, uint8_t data)
  8000686:	2201      	movs	r2, #1
  8000688:	2140      	movs	r1, #64	; 0x40
  800068a:	4803      	ldr	r0, [pc, #12]	; (8000698 <cc1200_spi_write_byte+0x6c>)
- 800068c:	f001 fa70 	bl	8001b70 <HAL_GPIO_WritePin>
+ 800068c:	f001 facc 	bl	8001c28 <HAL_GPIO_WritePin>
 
 }
  8000690:	bf00      	nop
@@ -691,7 +691,7 @@ static void cc1200_spi_read_byte(uint16_t addr, uint8_t* data)
  80006b4:	2200      	movs	r2, #0
  80006b6:	2140      	movs	r1, #64	; 0x40
  80006b8:	4817      	ldr	r0, [pc, #92]	; (8000718 <cc1200_spi_read_byte+0x7c>)
- 80006ba:	f001 fa59 	bl	8001b70 <HAL_GPIO_WritePin>
+ 80006ba:	f001 fab5 	bl	8001c28 <HAL_GPIO_WritePin>
 
 
 	if ((addr & 0xFF00) != 0) // read data with extended address in command field
@@ -741,7 +741,7 @@ static void cc1200_spi_read_byte(uint16_t addr, uint8_t* data)
  8000706:	2201      	movs	r2, #1
  8000708:	2140      	movs	r1, #64	; 0x40
  800070a:	4803      	ldr	r0, [pc, #12]	; (8000718 <cc1200_spi_read_byte+0x7c>)
- 800070c:	f001 fa30 	bl	8001b70 <HAL_GPIO_WritePin>
+ 800070c:	f001 fa8c 	bl	8001c28 <HAL_GPIO_WritePin>
 
 }
  8000710:	bf00      	nop
@@ -771,7 +771,7 @@ rf_status_t cc1200_spi_strobe(uint8_t cmd)
  800072a:	2200      	movs	r2, #0
  800072c:	2140      	movs	r1, #64	; 0x40
  800072e:	481c      	ldr	r0, [pc, #112]	; (80007a0 <cc1200_spi_strobe+0x84>)
- 8000730:	f001 fa1e 	bl	8001b70 <HAL_GPIO_WritePin>
+ 8000730:	f001 fa7a 	bl	8001c28 <HAL_GPIO_WritePin>
 
 	uint8_t rxByte;
 	LL_SPI_SetTransferSize(SPI1, 1);
@@ -828,7 +828,7 @@ rf_status_t cc1200_spi_strobe(uint8_t cmd)
  8000786:	2201      	movs	r2, #1
  8000788:	2140      	movs	r1, #64	; 0x40
  800078a:	4805      	ldr	r0, [pc, #20]	; (80007a0 <cc1200_spi_strobe+0x84>)
- 800078c:	f001 f9f0 	bl	8001b70 <HAL_GPIO_WritePin>
+ 800078c:	f001 fa4c 	bl	8001c28 <HAL_GPIO_WritePin>
 
 	return rxByte & 0xF0;
  8000790:	7bfb      	ldrb	r3, [r7, #15]
@@ -894,14 +894,14 @@ rf_status_t cc1200_radio_reset(void)
 
 	HAL_Delay(20);
  80007e2:	2014      	movs	r0, #20
- 80007e4:	f000 fee8 	bl	80015b8 <HAL_Delay>
+ 80007e4:	f000 ff44 	bl	8001670 <HAL_Delay>
 
 	while((CC120X_RDYn_BIT & (status & 0x80)))		// if chip isn't ready, wait 10ms
  80007e8:	e00d      	b.n	8000806 <cc1200_radio_reset+0x3e>
 	{
 		HAL_Delay(10);
  80007ea:	200a      	movs	r0, #10
- 80007ec:	f000 fee4 	bl	80015b8 <HAL_Delay>
+ 80007ec:	f000 ff40 	bl	8001670 <HAL_Delay>
 		if (retry_count > 3)
  80007f0:	79bb      	ldrb	r3, [r7, #6]
  80007f2:	2b03      	cmp	r3, #3
@@ -1205,26459 +1205,26552 @@ __STATIC_INLINE void LL_APB2_GRP1_EnableClock(uint32_t Periphs)
  80009c8:	58024400 	.word	0x58024400
 
 080009cc <HAL_TIM_PeriodElapsedCallback>:
-}
-
-static uint8_t txBuffer;
+static uint8_t txBuffer0[2000];
+static uint8_t txBuffer1[2000];
+static uint32_t i=0, j=0;
 
 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef * htim)
 {
- 80009cc:	b580      	push	{r7, lr}
- 80009ce:	b082      	sub	sp, #8
+ 80009cc:	b590      	push	{r4, r7, lr}
+ 80009ce:	b083      	sub	sp, #12
  80009d0:	af00      	add	r7, sp, #0
  80009d2:	6078      	str	r0, [r7, #4]
 
-	txBuffer = cc1200_radio_read_CFM();
- 80009d4:	f7ff fee8 	bl	80007a8 <cc1200_radio_read_CFM>
- 80009d8:	4603      	mov	r3, r0
- 80009da:	461a      	mov	r2, r3
- 80009dc:	4b0c      	ldr	r3, [pc, #48]	; (8000a10 <HAL_TIM_PeriodElapsedCallback+0x44>)
- 80009de:	701a      	strb	r2, [r3, #0]
+	if (i == 2000 && j < 2000)
+ 80009d4:	4b1f      	ldr	r3, [pc, #124]	; (8000a54 <HAL_TIM_PeriodElapsedCallback+0x88>)
+ 80009d6:	681b      	ldr	r3, [r3, #0]
+ 80009d8:	f5b3 6ffa 	cmp.w	r3, #2000	; 0x7d0
+ 80009dc:	d110      	bne.n	8000a00 <HAL_TIM_PeriodElapsedCallback+0x34>
+ 80009de:	4b1e      	ldr	r3, [pc, #120]	; (8000a58 <HAL_TIM_PeriodElapsedCallback+0x8c>)
+ 80009e0:	681b      	ldr	r3, [r3, #0]
+ 80009e2:	f5b3 6ffa 	cmp.w	r3, #2000	; 0x7d0
+ 80009e6:	d20b      	bcs.n	8000a00 <HAL_TIM_PeriodElapsedCallback+0x34>
+		txBuffer1[j++] = cc1200_radio_read_CFM();
+ 80009e8:	4b1b      	ldr	r3, [pc, #108]	; (8000a58 <HAL_TIM_PeriodElapsedCallback+0x8c>)
+ 80009ea:	681c      	ldr	r4, [r3, #0]
+ 80009ec:	1c63      	adds	r3, r4, #1
+ 80009ee:	4a1a      	ldr	r2, [pc, #104]	; (8000a58 <HAL_TIM_PeriodElapsedCallback+0x8c>)
+ 80009f0:	6013      	str	r3, [r2, #0]
+ 80009f2:	f7ff fed9 	bl	80007a8 <cc1200_radio_read_CFM>
+ 80009f6:	4603      	mov	r3, r0
+ 80009f8:	461a      	mov	r2, r3
+ 80009fa:	4b18      	ldr	r3, [pc, #96]	; (8000a5c <HAL_TIM_PeriodElapsedCallback+0x90>)
+ 80009fc:	551a      	strb	r2, [r3, r4]
+ 80009fe:	e014      	b.n	8000a2a <HAL_TIM_PeriodElapsedCallback+0x5e>
+	else if (i < 2000)
+ 8000a00:	4b14      	ldr	r3, [pc, #80]	; (8000a54 <HAL_TIM_PeriodElapsedCallback+0x88>)
+ 8000a02:	681b      	ldr	r3, [r3, #0]
+ 8000a04:	f5b3 6ffa 	cmp.w	r3, #2000	; 0x7d0
+ 8000a08:	d20b      	bcs.n	8000a22 <HAL_TIM_PeriodElapsedCallback+0x56>
+		txBuffer0[i++] = cc1200_radio_read_CFM();
+ 8000a0a:	4b12      	ldr	r3, [pc, #72]	; (8000a54 <HAL_TIM_PeriodElapsedCallback+0x88>)
+ 8000a0c:	681c      	ldr	r4, [r3, #0]
+ 8000a0e:	1c63      	adds	r3, r4, #1
+ 8000a10:	4a10      	ldr	r2, [pc, #64]	; (8000a54 <HAL_TIM_PeriodElapsedCallback+0x88>)
+ 8000a12:	6013      	str	r3, [r2, #0]
+ 8000a14:	f7ff fec8 	bl	80007a8 <cc1200_radio_read_CFM>
+ 8000a18:	4603      	mov	r3, r0
+ 8000a1a:	461a      	mov	r2, r3
+ 8000a1c:	4b10      	ldr	r3, [pc, #64]	; (8000a60 <HAL_TIM_PeriodElapsedCallback+0x94>)
+ 8000a1e:	551a      	strb	r2, [r3, r4]
+ 8000a20:	e003      	b.n	8000a2a <HAL_TIM_PeriodElapsedCallback+0x5e>
+	else
+	{
+		HAL_GPIO_TogglePin(LED_YELLOW_GPIO_Port, LED_YELLOW_Pin);
+ 8000a22:	2102      	movs	r1, #2
+ 8000a24:	480f      	ldr	r0, [pc, #60]	; (8000a64 <HAL_TIM_PeriodElapsedCallback+0x98>)
+ 8000a26:	f001 f918 	bl	8001c5a <HAL_GPIO_TogglePin>
+
 	//cc1200_radio_write_CFM(0);
-	CDC_Transmit_HS(&txBuffer, 1);
- 80009e0:	2101      	movs	r1, #1
- 80009e2:	480b      	ldr	r0, [pc, #44]	; (8000a10 <HAL_TIM_PeriodElapsedCallback+0x44>)
- 80009e4:	f008 fa9a 	bl	8008f1c <CDC_Transmit_HS>
 
 	// Toggle LED as heart beat.
 	static uint32_t toggleCount = 0;
 	if (toggleCount++ == 40000)
- 80009e8:	4b0a      	ldr	r3, [pc, #40]	; (8000a14 <HAL_TIM_PeriodElapsedCallback+0x48>)
- 80009ea:	681b      	ldr	r3, [r3, #0]
- 80009ec:	1c5a      	adds	r2, r3, #1
- 80009ee:	4909      	ldr	r1, [pc, #36]	; (8000a14 <HAL_TIM_PeriodElapsedCallback+0x48>)
- 80009f0:	600a      	str	r2, [r1, #0]
- 80009f2:	f649 4240 	movw	r2, #40000	; 0x9c40
- 80009f6:	4293      	cmp	r3, r2
- 80009f8:	d106      	bne.n	8000a08 <HAL_TIM_PeriodElapsedCallback+0x3c>
+ 8000a2a:	4b0f      	ldr	r3, [pc, #60]	; (8000a68 <HAL_TIM_PeriodElapsedCallback+0x9c>)
+ 8000a2c:	681b      	ldr	r3, [r3, #0]
+ 8000a2e:	1c5a      	adds	r2, r3, #1
+ 8000a30:	490d      	ldr	r1, [pc, #52]	; (8000a68 <HAL_TIM_PeriodElapsedCallback+0x9c>)
+ 8000a32:	600a      	str	r2, [r1, #0]
+ 8000a34:	f649 4240 	movw	r2, #40000	; 0x9c40
+ 8000a38:	4293      	cmp	r3, r2
+ 8000a3a:	d106      	bne.n	8000a4a <HAL_TIM_PeriodElapsedCallback+0x7e>
 	{
 		HAL_GPIO_TogglePin(LED_GREEN_GPIO_Port, LED_GREEN_Pin);
- 80009fa:	2101      	movs	r1, #1
- 80009fc:	4806      	ldr	r0, [pc, #24]	; (8000a18 <HAL_TIM_PeriodElapsedCallback+0x4c>)
- 80009fe:	f001 f8d0 	bl	8001ba2 <HAL_GPIO_TogglePin>
+ 8000a3c:	2101      	movs	r1, #1
+ 8000a3e:	480b      	ldr	r0, [pc, #44]	; (8000a6c <HAL_TIM_PeriodElapsedCallback+0xa0>)
+ 8000a40:	f001 f90b 	bl	8001c5a <HAL_GPIO_TogglePin>
 		toggleCount = 0;
- 8000a02:	4b04      	ldr	r3, [pc, #16]	; (8000a14 <HAL_TIM_PeriodElapsedCallback+0x48>)
- 8000a04:	2200      	movs	r2, #0
- 8000a06:	601a      	str	r2, [r3, #0]
+ 8000a44:	4b08      	ldr	r3, [pc, #32]	; (8000a68 <HAL_TIM_PeriodElapsedCallback+0x9c>)
+ 8000a46:	2200      	movs	r2, #0
+ 8000a48:	601a      	str	r2, [r3, #0]
 	}
 }
- 8000a08:	bf00      	nop
- 8000a0a:	3708      	adds	r7, #8
- 8000a0c:	46bd      	mov	sp, r7
- 8000a0e:	bd80      	pop	{r7, pc}
- 8000a10:	24000204 	.word	0x24000204
- 8000a14:	24000208 	.word	0x24000208
- 8000a18:	58020400 	.word	0x58020400
-
-08000a1c <main>:
+ 8000a4a:	bf00      	nop
+ 8000a4c:	370c      	adds	r7, #12
+ 8000a4e:	46bd      	mov	sp, r7
+ 8000a50:	bd90      	pop	{r4, r7, pc}
+ 8000a52:	bf00      	nop
+ 8000a54:	240011a4 	.word	0x240011a4
+ 8000a58:	240011a8 	.word	0x240011a8
+ 8000a5c:	240009d4 	.word	0x240009d4
+ 8000a60:	24000204 	.word	0x24000204
+ 8000a64:	58021000 	.word	0x58021000
+ 8000a68:	240011ac 	.word	0x240011ac
+ 8000a6c:	58020400 	.word	0x58020400
+
+08000a70 <main>:
 /**
   * @brief  The application entry point.
   * @retval int
   */
 int main(void)
 {
- 8000a1c:	b580      	push	{r7, lr}
- 8000a1e:	b084      	sub	sp, #16
- 8000a20:	af00      	add	r7, sp, #0
+ 8000a70:	b580      	push	{r7, lr}
+ 8000a72:	b084      	sub	sp, #16
+ 8000a74:	af00      	add	r7, sp, #0
   \details Turns on I-Cache
   */
 __STATIC_FORCEINLINE void SCB_EnableICache (void)
 {
   #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U)
     if (SCB->CCR & SCB_CCR_IC_Msk) return;  /* return if ICache is already enabled */
- 8000a22:	4b48      	ldr	r3, [pc, #288]	; (8000b44 <main+0x128>)
- 8000a24:	695b      	ldr	r3, [r3, #20]
- 8000a26:	f403 3300 	and.w	r3, r3, #131072	; 0x20000
- 8000a2a:	2b00      	cmp	r3, #0
- 8000a2c:	d11b      	bne.n	8000a66 <main+0x4a>
+ 8000a76:	4b5d      	ldr	r3, [pc, #372]	; (8000bec <main+0x17c>)
+ 8000a78:	695b      	ldr	r3, [r3, #20]
+ 8000a7a:	f403 3300 	and.w	r3, r3, #131072	; 0x20000
+ 8000a7e:	2b00      	cmp	r3, #0
+ 8000a80:	d11b      	bne.n	8000aba <main+0x4a>
   \details Acts as a special kind of Data Memory Barrier.
            It completes when all explicit memory accesses before this instruction complete.
  */
 __STATIC_FORCEINLINE void __DSB(void)
 {
   __ASM volatile ("dsb 0xF":::"memory");
- 8000a2e:	f3bf 8f4f 	dsb	sy
+ 8000a82:	f3bf 8f4f 	dsb	sy
 }
- 8000a32:	bf00      	nop
+ 8000a86:	bf00      	nop
   __ASM volatile ("isb 0xF":::"memory");
- 8000a34:	f3bf 8f6f 	isb	sy
+ 8000a88:	f3bf 8f6f 	isb	sy
 }
- 8000a38:	bf00      	nop
+ 8000a8c:	bf00      	nop
 
     __DSB();
     __ISB();
     SCB->ICIALLU = 0UL;                     /* invalidate I-Cache */
- 8000a3a:	4b42      	ldr	r3, [pc, #264]	; (8000b44 <main+0x128>)
- 8000a3c:	2200      	movs	r2, #0
- 8000a3e:	f8c3 2250 	str.w	r2, [r3, #592]	; 0x250
+ 8000a8e:	4b57      	ldr	r3, [pc, #348]	; (8000bec <main+0x17c>)
+ 8000a90:	2200      	movs	r2, #0
+ 8000a92:	f8c3 2250 	str.w	r2, [r3, #592]	; 0x250
   __ASM volatile ("dsb 0xF":::"memory");
- 8000a42:	f3bf 8f4f 	dsb	sy
+ 8000a96:	f3bf 8f4f 	dsb	sy
 }
- 8000a46:	bf00      	nop
+ 8000a9a:	bf00      	nop
   __ASM volatile ("isb 0xF":::"memory");
- 8000a48:	f3bf 8f6f 	isb	sy
+ 8000a9c:	f3bf 8f6f 	isb	sy
 }
- 8000a4c:	bf00      	nop
+ 8000aa0:	bf00      	nop
     __DSB();
     __ISB();
     SCB->CCR |=  (uint32_t)SCB_CCR_IC_Msk;  /* enable I-Cache */
- 8000a4e:	4b3d      	ldr	r3, [pc, #244]	; (8000b44 <main+0x128>)
- 8000a50:	695b      	ldr	r3, [r3, #20]
- 8000a52:	4a3c      	ldr	r2, [pc, #240]	; (8000b44 <main+0x128>)
- 8000a54:	f443 3300 	orr.w	r3, r3, #131072	; 0x20000
- 8000a58:	6153      	str	r3, [r2, #20]
+ 8000aa2:	4b52      	ldr	r3, [pc, #328]	; (8000bec <main+0x17c>)
+ 8000aa4:	695b      	ldr	r3, [r3, #20]
+ 8000aa6:	4a51      	ldr	r2, [pc, #324]	; (8000bec <main+0x17c>)
+ 8000aa8:	f443 3300 	orr.w	r3, r3, #131072	; 0x20000
+ 8000aac:	6153      	str	r3, [r2, #20]
   __ASM volatile ("dsb 0xF":::"memory");
- 8000a5a:	f3bf 8f4f 	dsb	sy
+ 8000aae:	f3bf 8f4f 	dsb	sy
 }
- 8000a5e:	bf00      	nop
+ 8000ab2:	bf00      	nop
   __ASM volatile ("isb 0xF":::"memory");
- 8000a60:	f3bf 8f6f 	isb	sy
+ 8000ab4:	f3bf 8f6f 	isb	sy
 }
- 8000a64:	e000      	b.n	8000a68 <main+0x4c>
+ 8000ab8:	e000      	b.n	8000abc <main+0x4c>
     if (SCB->CCR & SCB_CCR_IC_Msk) return;  /* return if ICache is already enabled */
- 8000a66:	bf00      	nop
+ 8000aba:	bf00      	nop
   #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U)
     uint32_t ccsidr;
     uint32_t sets;
     uint32_t ways;
 
     if (SCB->CCR & SCB_CCR_DC_Msk) return;  /* return if DCache is already enabled */
- 8000a68:	4b36      	ldr	r3, [pc, #216]	; (8000b44 <main+0x128>)
- 8000a6a:	695b      	ldr	r3, [r3, #20]
- 8000a6c:	f403 3380 	and.w	r3, r3, #65536	; 0x10000
- 8000a70:	2b00      	cmp	r3, #0
- 8000a72:	d138      	bne.n	8000ae6 <main+0xca>
+ 8000abc:	4b4b      	ldr	r3, [pc, #300]	; (8000bec <main+0x17c>)
+ 8000abe:	695b      	ldr	r3, [r3, #20]
+ 8000ac0:	f403 3380 	and.w	r3, r3, #65536	; 0x10000
+ 8000ac4:	2b00      	cmp	r3, #0
+ 8000ac6:	d138      	bne.n	8000b3a <main+0xca>
 
     SCB->CSSELR = 0U;                       /* select Level 1 data cache */
- 8000a74:	4b33      	ldr	r3, [pc, #204]	; (8000b44 <main+0x128>)
- 8000a76:	2200      	movs	r2, #0
- 8000a78:	f8c3 2084 	str.w	r2, [r3, #132]	; 0x84
+ 8000ac8:	4b48      	ldr	r3, [pc, #288]	; (8000bec <main+0x17c>)
+ 8000aca:	2200      	movs	r2, #0
+ 8000acc:	f8c3 2084 	str.w	r2, [r3, #132]	; 0x84
   __ASM volatile ("dsb 0xF":::"memory");
- 8000a7c:	f3bf 8f4f 	dsb	sy
+ 8000ad0:	f3bf 8f4f 	dsb	sy
 }
- 8000a80:	bf00      	nop
+ 8000ad4:	bf00      	nop
     __DSB();
 
     ccsidr = SCB->CCSIDR;
- 8000a82:	4b30      	ldr	r3, [pc, #192]	; (8000b44 <main+0x128>)
- 8000a84:	f8d3 3080 	ldr.w	r3, [r3, #128]	; 0x80
- 8000a88:	60bb      	str	r3, [r7, #8]
+ 8000ad6:	4b45      	ldr	r3, [pc, #276]	; (8000bec <main+0x17c>)
+ 8000ad8:	f8d3 3080 	ldr.w	r3, [r3, #128]	; 0x80
+ 8000adc:	60bb      	str	r3, [r7, #8]
 
                                             /* invalidate D-Cache */
     sets = (uint32_t)(CCSIDR_SETS(ccsidr));
- 8000a8a:	68bb      	ldr	r3, [r7, #8]
- 8000a8c:	0b5b      	lsrs	r3, r3, #13
- 8000a8e:	f3c3 030e 	ubfx	r3, r3, #0, #15
- 8000a92:	607b      	str	r3, [r7, #4]
+ 8000ade:	68bb      	ldr	r3, [r7, #8]
+ 8000ae0:	0b5b      	lsrs	r3, r3, #13
+ 8000ae2:	f3c3 030e 	ubfx	r3, r3, #0, #15
+ 8000ae6:	607b      	str	r3, [r7, #4]
     do {
       ways = (uint32_t)(CCSIDR_WAYS(ccsidr));
- 8000a94:	68bb      	ldr	r3, [r7, #8]
- 8000a96:	08db      	lsrs	r3, r3, #3
- 8000a98:	f3c3 0309 	ubfx	r3, r3, #0, #10
- 8000a9c:	603b      	str	r3, [r7, #0]
+ 8000ae8:	68bb      	ldr	r3, [r7, #8]
+ 8000aea:	08db      	lsrs	r3, r3, #3
+ 8000aec:	f3c3 0309 	ubfx	r3, r3, #0, #10
+ 8000af0:	603b      	str	r3, [r7, #0]
       do {
         SCB->DCISW = (((sets << SCB_DCISW_SET_Pos) & SCB_DCISW_SET_Msk) |
- 8000a9e:	687b      	ldr	r3, [r7, #4]
- 8000aa0:	015a      	lsls	r2, r3, #5
- 8000aa2:	f643 73e0 	movw	r3, #16352	; 0x3fe0
- 8000aa6:	4013      	ands	r3, r2
+ 8000af2:	687b      	ldr	r3, [r7, #4]
+ 8000af4:	015a      	lsls	r2, r3, #5
+ 8000af6:	f643 73e0 	movw	r3, #16352	; 0x3fe0
+ 8000afa:	4013      	ands	r3, r2
                       ((ways << SCB_DCISW_WAY_Pos) & SCB_DCISW_WAY_Msk)  );
- 8000aa8:	683a      	ldr	r2, [r7, #0]
- 8000aaa:	0792      	lsls	r2, r2, #30
+ 8000afc:	683a      	ldr	r2, [r7, #0]
+ 8000afe:	0792      	lsls	r2, r2, #30
         SCB->DCISW = (((sets << SCB_DCISW_SET_Pos) & SCB_DCISW_SET_Msk) |
- 8000aac:	4925      	ldr	r1, [pc, #148]	; (8000b44 <main+0x128>)
- 8000aae:	4313      	orrs	r3, r2
- 8000ab0:	f8c1 3260 	str.w	r3, [r1, #608]	; 0x260
+ 8000b00:	493a      	ldr	r1, [pc, #232]	; (8000bec <main+0x17c>)
+ 8000b02:	4313      	orrs	r3, r2
+ 8000b04:	f8c1 3260 	str.w	r3, [r1, #608]	; 0x260
         #if defined ( __CC_ARM )
           __schedule_barrier();
         #endif
       } while (ways-- != 0U);
- 8000ab4:	683b      	ldr	r3, [r7, #0]
- 8000ab6:	1e5a      	subs	r2, r3, #1
- 8000ab8:	603a      	str	r2, [r7, #0]
- 8000aba:	2b00      	cmp	r3, #0
- 8000abc:	d1ef      	bne.n	8000a9e <main+0x82>
+ 8000b08:	683b      	ldr	r3, [r7, #0]
+ 8000b0a:	1e5a      	subs	r2, r3, #1
+ 8000b0c:	603a      	str	r2, [r7, #0]
+ 8000b0e:	2b00      	cmp	r3, #0
+ 8000b10:	d1ef      	bne.n	8000af2 <main+0x82>
     } while(sets-- != 0U);
- 8000abe:	687b      	ldr	r3, [r7, #4]
- 8000ac0:	1e5a      	subs	r2, r3, #1
- 8000ac2:	607a      	str	r2, [r7, #4]
- 8000ac4:	2b00      	cmp	r3, #0
- 8000ac6:	d1e5      	bne.n	8000a94 <main+0x78>
+ 8000b12:	687b      	ldr	r3, [r7, #4]
+ 8000b14:	1e5a      	subs	r2, r3, #1
+ 8000b16:	607a      	str	r2, [r7, #4]
+ 8000b18:	2b00      	cmp	r3, #0
+ 8000b1a:	d1e5      	bne.n	8000ae8 <main+0x78>
   __ASM volatile ("dsb 0xF":::"memory");
- 8000ac8:	f3bf 8f4f 	dsb	sy
+ 8000b1c:	f3bf 8f4f 	dsb	sy
 }
- 8000acc:	bf00      	nop
+ 8000b20:	bf00      	nop
     __DSB();
 
     SCB->CCR |=  (uint32_t)SCB_CCR_DC_Msk;  /* enable D-Cache */
- 8000ace:	4b1d      	ldr	r3, [pc, #116]	; (8000b44 <main+0x128>)
- 8000ad0:	695b      	ldr	r3, [r3, #20]
- 8000ad2:	4a1c      	ldr	r2, [pc, #112]	; (8000b44 <main+0x128>)
- 8000ad4:	f443 3380 	orr.w	r3, r3, #65536	; 0x10000
- 8000ad8:	6153      	str	r3, [r2, #20]
+ 8000b22:	4b32      	ldr	r3, [pc, #200]	; (8000bec <main+0x17c>)
+ 8000b24:	695b      	ldr	r3, [r3, #20]
+ 8000b26:	4a31      	ldr	r2, [pc, #196]	; (8000bec <main+0x17c>)
+ 8000b28:	f443 3380 	orr.w	r3, r3, #65536	; 0x10000
+ 8000b2c:	6153      	str	r3, [r2, #20]
   __ASM volatile ("dsb 0xF":::"memory");
- 8000ada:	f3bf 8f4f 	dsb	sy
+ 8000b2e:	f3bf 8f4f 	dsb	sy
 }
- 8000ade:	bf00      	nop
+ 8000b32:	bf00      	nop
   __ASM volatile ("isb 0xF":::"memory");
- 8000ae0:	f3bf 8f6f 	isb	sy
+ 8000b34:	f3bf 8f6f 	isb	sy
 }
- 8000ae4:	e000      	b.n	8000ae8 <main+0xcc>
+ 8000b38:	e000      	b.n	8000b3c <main+0xcc>
     if (SCB->CCR & SCB_CCR_DC_Msk) return;  /* return if DCache is already enabled */
- 8000ae6:	bf00      	nop
+ 8000b3a:	bf00      	nop
   SCB_EnableDCache();
 
   /* MCU Configuration--------------------------------------------------------*/
 
   /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
   HAL_Init();
- 8000ae8:	f000 fcd4 	bl	8001494 <HAL_Init>
+ 8000b3c:	f000 fd06 	bl	800154c <HAL_Init>
   /* USER CODE BEGIN Init */
 
   /* USER CODE END Init */
 
   /* Configure the system clock */
   SystemClock_Config();
- 8000aec:	f000 f834 	bl	8000b58 <SystemClock_Config>
+ 8000b40:	f000 f866 	bl	8000c10 <SystemClock_Config>
   /* USER CODE BEGIN SysInit */
 
   /* USER CODE END SysInit */
 
   /* Initialize all configured peripherals */
   MX_GPIO_Init();
- 8000af0:	f000 f98a 	bl	8000e08 <MX_GPIO_Init>
+ 8000b44:	f000 f9bc 	bl	8000ec0 <MX_GPIO_Init>
   MX_SPI1_Init();
- 8000af4:	f000 f8a0 	bl	8000c38 <MX_SPI1_Init>
+ 8000b48:	f000 f8d2 	bl	8000cf0 <MX_SPI1_Init>
   MX_TIM3_Init();
- 8000af8:	f000 f938 	bl	8000d6c <MX_TIM3_Init>
+ 8000b4c:	f000 f96a 	bl	8000e24 <MX_TIM3_Init>
   MX_USB_DEVICE_Init();
- 8000afc:	f008 f94e 	bl	8008d9c <MX_USB_DEVICE_Init>
+ 8000b50:	f008 f980 	bl	8008e54 <MX_USB_DEVICE_Init>
   /* USER CODE BEGIN 2 */
 
   HAL_StatusTypeDef errCode;
 
   // Manually reset the CC1200.
   HAL_GPIO_WritePin(CC1200_RESET_GPIO_Port, CC1200_RESET_Pin, 0);
- 8000b00:	2200      	movs	r2, #0
- 8000b02:	f44f 5180 	mov.w	r1, #4096	; 0x1000
- 8000b06:	4810      	ldr	r0, [pc, #64]	; (8000b48 <main+0x12c>)
- 8000b08:	f001 f832 	bl	8001b70 <HAL_GPIO_WritePin>
+ 8000b54:	2200      	movs	r2, #0
+ 8000b56:	f44f 5180 	mov.w	r1, #4096	; 0x1000
+ 8000b5a:	4825      	ldr	r0, [pc, #148]	; (8000bf0 <main+0x180>)
+ 8000b5c:	f001 f864 	bl	8001c28 <HAL_GPIO_WritePin>
   HAL_Delay(50);
- 8000b0c:	2032      	movs	r0, #50	; 0x32
- 8000b0e:	f000 fd53 	bl	80015b8 <HAL_Delay>
+ 8000b60:	2032      	movs	r0, #50	; 0x32
+ 8000b62:	f000 fd85 	bl	8001670 <HAL_Delay>
   HAL_GPIO_WritePin(CC1200_RESET_GPIO_Port, CC1200_RESET_Pin, 1);
- 8000b12:	2201      	movs	r2, #1
- 8000b14:	f44f 5180 	mov.w	r1, #4096	; 0x1000
- 8000b18:	480b      	ldr	r0, [pc, #44]	; (8000b48 <main+0x12c>)
- 8000b1a:	f001 f829 	bl	8001b70 <HAL_GPIO_WritePin>
+ 8000b66:	2201      	movs	r2, #1
+ 8000b68:	f44f 5180 	mov.w	r1, #4096	; 0x1000
+ 8000b6c:	4820      	ldr	r0, [pc, #128]	; (8000bf0 <main+0x180>)
+ 8000b6e:	f001 f85b 	bl	8001c28 <HAL_GPIO_WritePin>
   HAL_Delay(50);
- 8000b1e:	2032      	movs	r0, #50	; 0x32
- 8000b20:	f000 fd4a 	bl	80015b8 <HAL_Delay>
+ 8000b72:	2032      	movs	r0, #50	; 0x32
+ 8000b74:	f000 fd7c 	bl	8001670 <HAL_Delay>
 
   // Setup up the 5million registers.
   cc1200_radio_init((cc1200_reg_settings_t *)AX25_SETTINGS, sizeof(AX25_SETTINGS)/sizeof(cc1200_reg_settings_t));
- 8000b24:	2133      	movs	r1, #51	; 0x33
- 8000b26:	4809      	ldr	r0, [pc, #36]	; (8000b4c <main+0x130>)
- 8000b28:	f7ff feca 	bl	80008c0 <cc1200_radio_init>
+ 8000b78:	2133      	movs	r1, #51	; 0x33
+ 8000b7a:	481e      	ldr	r0, [pc, #120]	; (8000bf4 <main+0x184>)
+ 8000b7c:	f7ff fea0 	bl	80008c0 <cc1200_radio_init>
 
   // Set frequency
   cc1200_radio_frequency(144390000);
- 8000b2c:	4808      	ldr	r0, [pc, #32]	; (8000b50 <main+0x134>)
- 8000b2e:	f7ff fe77 	bl	8000820 <cc1200_radio_frequency>
+ 8000b80:	481d      	ldr	r0, [pc, #116]	; (8000bf8 <main+0x188>)
+ 8000b82:	f7ff fe4d 	bl	8000820 <cc1200_radio_frequency>
 
   // Enable TX/RX
   cc1200_radio_rx();
- 8000b32:	f7ff feb9 	bl	80008a8 <cc1200_radio_rx>
+ 8000b86:	f7ff fe8f 	bl	80008a8 <cc1200_radio_rx>
 
 
   // Start Timer for SPI
   errCode = HAL_TIM_Base_Start_IT(&htim3);
- 8000b36:	4807      	ldr	r0, [pc, #28]	; (8000b54 <main+0x138>)
- 8000b38:	f004 fa28 	bl	8004f8c <HAL_TIM_Base_Start_IT>
- 8000b3c:	4603      	mov	r3, r0
- 8000b3e:	73fb      	strb	r3, [r7, #15]
-
-  /* USER CODE END 2 */
-
+ 8000b8a:	481c      	ldr	r0, [pc, #112]	; (8000bfc <main+0x18c>)
+ 8000b8c:	f004 fa5a 	bl	8005044 <HAL_TIM_Base_Start_IT>
+ 8000b90:	4603      	mov	r3, r0
+ 8000b92:	73fb      	strb	r3, [r7, #15]
   /* Infinite loop */
   /* USER CODE BEGIN WHILE */
   while (1)
- 8000b40:	e7fe      	b.n	8000b40 <main+0x124>
- 8000b42:	bf00      	nop
- 8000b44:	e000ed00 	.word	0xe000ed00
- 8000b48:	58020400 	.word	0x58020400
- 8000b4c:	0800a88c 	.word	0x0800a88c
- 8000b50:	089b3770 	.word	0x089b3770
- 8000b54:	2400043c 	.word	0x2400043c
-
-08000b58 <SystemClock_Config>:
+  {
+
+	if (i >= 2000)
+ 8000b94:	4b1a      	ldr	r3, [pc, #104]	; (8000c00 <main+0x190>)
+ 8000b96:	681b      	ldr	r3, [r3, #0]
+ 8000b98:	f5b3 6ffa 	cmp.w	r3, #2000	; 0x7d0
+ 8000b9c:	d30f      	bcc.n	8000bbe <main+0x14e>
+	{
+		if(CDC_Transmit_HS(txBuffer0, 2000) != USBD_OK)
+ 8000b9e:	f44f 61fa 	mov.w	r1, #2000	; 0x7d0
+ 8000ba2:	4818      	ldr	r0, [pc, #96]	; (8000c04 <main+0x194>)
+ 8000ba4:	f008 fa16 	bl	8008fd4 <CDC_Transmit_HS>
+ 8000ba8:	4603      	mov	r3, r0
+ 8000baa:	2b00      	cmp	r3, #0
+ 8000bac:	d004      	beq.n	8000bb8 <main+0x148>
+		{
+			HAL_GPIO_TogglePin(LED_RED_GPIO_Port, LED_RED_Pin);
+ 8000bae:	f44f 4180 	mov.w	r1, #16384	; 0x4000
+ 8000bb2:	480f      	ldr	r0, [pc, #60]	; (8000bf0 <main+0x180>)
+ 8000bb4:	f001 f851 	bl	8001c5a <HAL_GPIO_TogglePin>
+		}
+		i = 0;
+ 8000bb8:	4b11      	ldr	r3, [pc, #68]	; (8000c00 <main+0x190>)
+ 8000bba:	2200      	movs	r2, #0
+ 8000bbc:	601a      	str	r2, [r3, #0]
+
+	}
+	if (j >= 2000)
+ 8000bbe:	4b12      	ldr	r3, [pc, #72]	; (8000c08 <main+0x198>)
+ 8000bc0:	681b      	ldr	r3, [r3, #0]
+ 8000bc2:	f5b3 6ffa 	cmp.w	r3, #2000	; 0x7d0
+ 8000bc6:	d3e5      	bcc.n	8000b94 <main+0x124>
+	{
+		if(CDC_Transmit_HS(txBuffer1, 2000) != USBD_OK)
+ 8000bc8:	f44f 61fa 	mov.w	r1, #2000	; 0x7d0
+ 8000bcc:	480f      	ldr	r0, [pc, #60]	; (8000c0c <main+0x19c>)
+ 8000bce:	f008 fa01 	bl	8008fd4 <CDC_Transmit_HS>
+ 8000bd2:	4603      	mov	r3, r0
+ 8000bd4:	2b00      	cmp	r3, #0
+ 8000bd6:	d004      	beq.n	8000be2 <main+0x172>
+		{
+
+			HAL_GPIO_TogglePin(LED_RED_GPIO_Port, LED_RED_Pin);
+ 8000bd8:	f44f 4180 	mov.w	r1, #16384	; 0x4000
+ 8000bdc:	4804      	ldr	r0, [pc, #16]	; (8000bf0 <main+0x180>)
+ 8000bde:	f001 f83c 	bl	8001c5a <HAL_GPIO_TogglePin>
+		}
+		j = 0;
+ 8000be2:	4b09      	ldr	r3, [pc, #36]	; (8000c08 <main+0x198>)
+ 8000be4:	2200      	movs	r2, #0
+ 8000be6:	601a      	str	r2, [r3, #0]
+	if (i >= 2000)
+ 8000be8:	e7d4      	b.n	8000b94 <main+0x124>
+ 8000bea:	bf00      	nop
+ 8000bec:	e000ed00 	.word	0xe000ed00
+ 8000bf0:	58020400 	.word	0x58020400
+ 8000bf4:	0800a944 	.word	0x0800a944
+ 8000bf8:	089b3770 	.word	0x089b3770
+ 8000bfc:	240013e0 	.word	0x240013e0
+ 8000c00:	240011a4 	.word	0x240011a4
+ 8000c04:	24000204 	.word	0x24000204
+ 8000c08:	240011a8 	.word	0x240011a8
+ 8000c0c:	240009d4 	.word	0x240009d4
+
+08000c10 <SystemClock_Config>:
 /**
   * @brief System Clock Configuration
   * @retval None
   */
 void SystemClock_Config(void)
 {
- 8000b58:	b580      	push	{r7, lr}
- 8000b5a:	b09c      	sub	sp, #112	; 0x70
- 8000b5c:	af00      	add	r7, sp, #0
+ 8000c10:	b580      	push	{r7, lr}
+ 8000c12:	b09c      	sub	sp, #112	; 0x70
+ 8000c14:	af00      	add	r7, sp, #0
   RCC_OscInitTypeDef RCC_OscInitStruct = {0};
- 8000b5e:	f107 0324 	add.w	r3, r7, #36	; 0x24
- 8000b62:	224c      	movs	r2, #76	; 0x4c
- 8000b64:	2100      	movs	r1, #0
- 8000b66:	4618      	mov	r0, r3
- 8000b68:	f008 feb6 	bl	80098d8 <memset>
+ 8000c16:	f107 0324 	add.w	r3, r7, #36	; 0x24
+ 8000c1a:	224c      	movs	r2, #76	; 0x4c
+ 8000c1c:	2100      	movs	r1, #0
+ 8000c1e:	4618      	mov	r0, r3
+ 8000c20:	f008 feb6 	bl	8009990 <memset>
   RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
- 8000b6c:	1d3b      	adds	r3, r7, #4
- 8000b6e:	2220      	movs	r2, #32
- 8000b70:	2100      	movs	r1, #0
- 8000b72:	4618      	mov	r0, r3
- 8000b74:	f008 feb0 	bl	80098d8 <memset>
+ 8000c24:	1d3b      	adds	r3, r7, #4
+ 8000c26:	2220      	movs	r2, #32
+ 8000c28:	2100      	movs	r1, #0
+ 8000c2a:	4618      	mov	r0, r3
+ 8000c2c:	f008 feb0 	bl	8009990 <memset>
 
   /** Supply configuration update enable
   */
   HAL_PWREx_ConfigSupply(PWR_LDO_SUPPLY);
- 8000b78:	2002      	movs	r0, #2
- 8000b7a:	f002 f9fb 	bl	8002f74 <HAL_PWREx_ConfigSupply>
+ 8000c30:	2002      	movs	r0, #2
+ 8000c32:	f002 f9fb 	bl	800302c <HAL_PWREx_ConfigSupply>
   /** Configure the main internal regulator output voltage
   */
   __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE0);
- 8000b7e:	2300      	movs	r3, #0
- 8000b80:	603b      	str	r3, [r7, #0]
- 8000b82:	4b2c      	ldr	r3, [pc, #176]	; (8000c34 <SystemClock_Config+0xdc>)
- 8000b84:	699b      	ldr	r3, [r3, #24]
- 8000b86:	4a2b      	ldr	r2, [pc, #172]	; (8000c34 <SystemClock_Config+0xdc>)
- 8000b88:	f423 4340 	bic.w	r3, r3, #49152	; 0xc000
- 8000b8c:	6193      	str	r3, [r2, #24]
- 8000b8e:	4b29      	ldr	r3, [pc, #164]	; (8000c34 <SystemClock_Config+0xdc>)
- 8000b90:	699b      	ldr	r3, [r3, #24]
- 8000b92:	f403 4340 	and.w	r3, r3, #49152	; 0xc000
- 8000b96:	603b      	str	r3, [r7, #0]
- 8000b98:	683b      	ldr	r3, [r7, #0]
+ 8000c36:	2300      	movs	r3, #0
+ 8000c38:	603b      	str	r3, [r7, #0]
+ 8000c3a:	4b2c      	ldr	r3, [pc, #176]	; (8000cec <SystemClock_Config+0xdc>)
+ 8000c3c:	699b      	ldr	r3, [r3, #24]
+ 8000c3e:	4a2b      	ldr	r2, [pc, #172]	; (8000cec <SystemClock_Config+0xdc>)
+ 8000c40:	f423 4340 	bic.w	r3, r3, #49152	; 0xc000
+ 8000c44:	6193      	str	r3, [r2, #24]
+ 8000c46:	4b29      	ldr	r3, [pc, #164]	; (8000cec <SystemClock_Config+0xdc>)
+ 8000c48:	699b      	ldr	r3, [r3, #24]
+ 8000c4a:	f403 4340 	and.w	r3, r3, #49152	; 0xc000
+ 8000c4e:	603b      	str	r3, [r7, #0]
+ 8000c50:	683b      	ldr	r3, [r7, #0]
 
   while(!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {}
- 8000b9a:	bf00      	nop
- 8000b9c:	4b25      	ldr	r3, [pc, #148]	; (8000c34 <SystemClock_Config+0xdc>)
- 8000b9e:	699b      	ldr	r3, [r3, #24]
- 8000ba0:	f403 5300 	and.w	r3, r3, #8192	; 0x2000
- 8000ba4:	f5b3 5f00 	cmp.w	r3, #8192	; 0x2000
- 8000ba8:	d1f8      	bne.n	8000b9c <SystemClock_Config+0x44>
+ 8000c52:	bf00      	nop
+ 8000c54:	4b25      	ldr	r3, [pc, #148]	; (8000cec <SystemClock_Config+0xdc>)
+ 8000c56:	699b      	ldr	r3, [r3, #24]
+ 8000c58:	f403 5300 	and.w	r3, r3, #8192	; 0x2000
+ 8000c5c:	f5b3 5f00 	cmp.w	r3, #8192	; 0x2000
+ 8000c60:	d1f8      	bne.n	8000c54 <SystemClock_Config+0x44>
   /** Initializes the RCC Oscillators according to the specified parameters
   * in the RCC_OscInitTypeDef structure.
   */
   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48|RCC_OSCILLATORTYPE_HSE;
- 8000baa:	2321      	movs	r3, #33	; 0x21
- 8000bac:	627b      	str	r3, [r7, #36]	; 0x24
+ 8000c62:	2321      	movs	r3, #33	; 0x21
+ 8000c64:	627b      	str	r3, [r7, #36]	; 0x24
   RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS;
- 8000bae:	f44f 23a0 	mov.w	r3, #327680	; 0x50000
- 8000bb2:	62bb      	str	r3, [r7, #40]	; 0x28
+ 8000c66:	f44f 23a0 	mov.w	r3, #327680	; 0x50000
+ 8000c6a:	62bb      	str	r3, [r7, #40]	; 0x28
   RCC_OscInitStruct.HSI48State = RCC_HSI48_ON;
- 8000bb4:	2301      	movs	r3, #1
- 8000bb6:	63fb      	str	r3, [r7, #60]	; 0x3c
+ 8000c6c:	2301      	movs	r3, #1
+ 8000c6e:	63fb      	str	r3, [r7, #60]	; 0x3c
   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
- 8000bb8:	2302      	movs	r3, #2
- 8000bba:	64bb      	str	r3, [r7, #72]	; 0x48
+ 8000c70:	2302      	movs	r3, #2
+ 8000c72:	64bb      	str	r3, [r7, #72]	; 0x48
   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
- 8000bbc:	2302      	movs	r3, #2
- 8000bbe:	64fb      	str	r3, [r7, #76]	; 0x4c
+ 8000c74:	2302      	movs	r3, #2
+ 8000c76:	64fb      	str	r3, [r7, #76]	; 0x4c
   RCC_OscInitStruct.PLL.PLLM = 4;
- 8000bc0:	2304      	movs	r3, #4
- 8000bc2:	653b      	str	r3, [r7, #80]	; 0x50
+ 8000c78:	2304      	movs	r3, #4
+ 8000c7a:	653b      	str	r3, [r7, #80]	; 0x50
   RCC_OscInitStruct.PLL.PLLN = 275;
- 8000bc4:	f240 1313 	movw	r3, #275	; 0x113
- 8000bc8:	657b      	str	r3, [r7, #84]	; 0x54
+ 8000c7c:	f240 1313 	movw	r3, #275	; 0x113
+ 8000c80:	657b      	str	r3, [r7, #84]	; 0x54
   RCC_OscInitStruct.PLL.PLLP = 1;
- 8000bca:	2301      	movs	r3, #1
- 8000bcc:	65bb      	str	r3, [r7, #88]	; 0x58
+ 8000c82:	2301      	movs	r3, #1
+ 8000c84:	65bb      	str	r3, [r7, #88]	; 0x58
   RCC_OscInitStruct.PLL.PLLQ = 4;
- 8000bce:	2304      	movs	r3, #4
- 8000bd0:	65fb      	str	r3, [r7, #92]	; 0x5c
+ 8000c86:	2304      	movs	r3, #4
+ 8000c88:	65fb      	str	r3, [r7, #92]	; 0x5c
   RCC_OscInitStruct.PLL.PLLR = 2;
- 8000bd2:	2302      	movs	r3, #2
- 8000bd4:	663b      	str	r3, [r7, #96]	; 0x60
+ 8000c8a:	2302      	movs	r3, #2
+ 8000c8c:	663b      	str	r3, [r7, #96]	; 0x60
   RCC_OscInitStruct.PLL.PLLRGE = RCC_PLL1VCIRANGE_1;
- 8000bd6:	2304      	movs	r3, #4
- 8000bd8:	667b      	str	r3, [r7, #100]	; 0x64
+ 8000c8e:	2304      	movs	r3, #4
+ 8000c90:	667b      	str	r3, [r7, #100]	; 0x64
   RCC_OscInitStruct.PLL.PLLVCOSEL = RCC_PLL1VCOWIDE;
- 8000bda:	2300      	movs	r3, #0
- 8000bdc:	66bb      	str	r3, [r7, #104]	; 0x68
+ 8000c92:	2300      	movs	r3, #0
+ 8000c94:	66bb      	str	r3, [r7, #104]	; 0x68
   RCC_OscInitStruct.PLL.PLLFRACN = 0;
- 8000bde:	2300      	movs	r3, #0
- 8000be0:	66fb      	str	r3, [r7, #108]	; 0x6c
+ 8000c96:	2300      	movs	r3, #0
+ 8000c98:	66fb      	str	r3, [r7, #108]	; 0x6c
   if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
- 8000be2:	f107 0324 	add.w	r3, r7, #36	; 0x24
- 8000be6:	4618      	mov	r0, r3
- 8000be8:	f002 fa0e 	bl	8003008 <HAL_RCC_OscConfig>
- 8000bec:	4603      	mov	r3, r0
- 8000bee:	2b00      	cmp	r3, #0
- 8000bf0:	d001      	beq.n	8000bf6 <SystemClock_Config+0x9e>
+ 8000c9a:	f107 0324 	add.w	r3, r7, #36	; 0x24
+ 8000c9e:	4618      	mov	r0, r3
+ 8000ca0:	f002 fa0e 	bl	80030c0 <HAL_RCC_OscConfig>
+ 8000ca4:	4603      	mov	r3, r0
+ 8000ca6:	2b00      	cmp	r3, #0
+ 8000ca8:	d001      	beq.n	8000cae <SystemClock_Config+0x9e>
   {
     Error_Handler();
- 8000bf2:	f000 fa61 	bl	80010b8 <Error_Handler>
+ 8000caa:	f000 fa61 	bl	8001170 <Error_Handler>
   }
   /** Initializes the CPU, AHB and APB buses clocks
   */
   RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
- 8000bf6:	233f      	movs	r3, #63	; 0x3f
- 8000bf8:	607b      	str	r3, [r7, #4]
+ 8000cae:	233f      	movs	r3, #63	; 0x3f
+ 8000cb0:	607b      	str	r3, [r7, #4]
                               |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2
                               |RCC_CLOCKTYPE_D3PCLK1|RCC_CLOCKTYPE_D1PCLK1;
   RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
- 8000bfa:	2303      	movs	r3, #3
- 8000bfc:	60bb      	str	r3, [r7, #8]
+ 8000cb2:	2303      	movs	r3, #3
+ 8000cb4:	60bb      	str	r3, [r7, #8]
   RCC_ClkInitStruct.SYSCLKDivider = RCC_SYSCLK_DIV1;
- 8000bfe:	2300      	movs	r3, #0
- 8000c00:	60fb      	str	r3, [r7, #12]
+ 8000cb6:	2300      	movs	r3, #0
+ 8000cb8:	60fb      	str	r3, [r7, #12]
   RCC_ClkInitStruct.AHBCLKDivider = RCC_HCLK_DIV2;
- 8000c02:	2308      	movs	r3, #8
- 8000c04:	613b      	str	r3, [r7, #16]
+ 8000cba:	2308      	movs	r3, #8
+ 8000cbc:	613b      	str	r3, [r7, #16]
   RCC_ClkInitStruct.APB3CLKDivider = RCC_APB3_DIV2;
- 8000c06:	2340      	movs	r3, #64	; 0x40
- 8000c08:	617b      	str	r3, [r7, #20]
+ 8000cbe:	2340      	movs	r3, #64	; 0x40
+ 8000cc0:	617b      	str	r3, [r7, #20]
   RCC_ClkInitStruct.APB1CLKDivider = RCC_APB1_DIV2;
- 8000c0a:	2340      	movs	r3, #64	; 0x40
- 8000c0c:	61bb      	str	r3, [r7, #24]
+ 8000cc2:	2340      	movs	r3, #64	; 0x40
+ 8000cc4:	61bb      	str	r3, [r7, #24]
   RCC_ClkInitStruct.APB2CLKDivider = RCC_APB2_DIV2;
- 8000c0e:	f44f 6380 	mov.w	r3, #1024	; 0x400
- 8000c12:	61fb      	str	r3, [r7, #28]
+ 8000cc6:	f44f 6380 	mov.w	r3, #1024	; 0x400
+ 8000cca:	61fb      	str	r3, [r7, #28]
   RCC_ClkInitStruct.APB4CLKDivider = RCC_APB4_DIV2;
- 8000c14:	2340      	movs	r3, #64	; 0x40
- 8000c16:	623b      	str	r3, [r7, #32]
+ 8000ccc:	2340      	movs	r3, #64	; 0x40
+ 8000cce:	623b      	str	r3, [r7, #32]
 
   if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK)
- 8000c18:	1d3b      	adds	r3, r7, #4
- 8000c1a:	2103      	movs	r1, #3
- 8000c1c:	4618      	mov	r0, r3
- 8000c1e:	f002 fd9f 	bl	8003760 <HAL_RCC_ClockConfig>
- 8000c22:	4603      	mov	r3, r0
- 8000c24:	2b00      	cmp	r3, #0
- 8000c26:	d001      	beq.n	8000c2c <SystemClock_Config+0xd4>
+ 8000cd0:	1d3b      	adds	r3, r7, #4
+ 8000cd2:	2103      	movs	r1, #3
+ 8000cd4:	4618      	mov	r0, r3
+ 8000cd6:	f002 fd9f 	bl	8003818 <HAL_RCC_ClockConfig>
+ 8000cda:	4603      	mov	r3, r0
+ 8000cdc:	2b00      	cmp	r3, #0
+ 8000cde:	d001      	beq.n	8000ce4 <SystemClock_Config+0xd4>
   {
     Error_Handler();
- 8000c28:	f000 fa46 	bl	80010b8 <Error_Handler>
+ 8000ce0:	f000 fa46 	bl	8001170 <Error_Handler>
   }
 }
- 8000c2c:	bf00      	nop
- 8000c2e:	3770      	adds	r7, #112	; 0x70
- 8000c30:	46bd      	mov	sp, r7
- 8000c32:	bd80      	pop	{r7, pc}
- 8000c34:	58024800 	.word	0x58024800
+ 8000ce4:	bf00      	nop
+ 8000ce6:	3770      	adds	r7, #112	; 0x70
+ 8000ce8:	46bd      	mov	sp, r7
+ 8000cea:	bd80      	pop	{r7, pc}
+ 8000cec:	58024800 	.word	0x58024800
 
-08000c38 <MX_SPI1_Init>:
+08000cf0 <MX_SPI1_Init>:
   * @brief SPI1 Initialization Function
   * @param None
   * @retval None
   */
 static void MX_SPI1_Init(void)
 {
- 8000c38:	b580      	push	{r7, lr}
- 8000c3a:	b0be      	sub	sp, #248	; 0xf8
- 8000c3c:	af00      	add	r7, sp, #0
+ 8000cf0:	b580      	push	{r7, lr}
+ 8000cf2:	b0be      	sub	sp, #248	; 0xf8
+ 8000cf4:	af00      	add	r7, sp, #0
 
   /* USER CODE BEGIN SPI1_Init 0 */
 
   /* USER CODE END SPI1_Init 0 */
 
   LL_SPI_InitTypeDef SPI_InitStruct = {0};
- 8000c3e:	f107 03d0 	add.w	r3, r7, #208	; 0xd0
- 8000c42:	2228      	movs	r2, #40	; 0x28
- 8000c44:	2100      	movs	r1, #0
- 8000c46:	4618      	mov	r0, r3
- 8000c48:	f008 fe46 	bl	80098d8 <memset>
+ 8000cf6:	f107 03d0 	add.w	r3, r7, #208	; 0xd0
+ 8000cfa:	2228      	movs	r2, #40	; 0x28
+ 8000cfc:	2100      	movs	r1, #0
+ 8000cfe:	4618      	mov	r0, r3
+ 8000d00:	f008 fe46 	bl	8009990 <memset>
 
   LL_GPIO_InitTypeDef GPIO_InitStruct = {0};
- 8000c4c:	f107 03b8 	add.w	r3, r7, #184	; 0xb8
- 8000c50:	2200      	movs	r2, #0
- 8000c52:	601a      	str	r2, [r3, #0]
- 8000c54:	605a      	str	r2, [r3, #4]
- 8000c56:	609a      	str	r2, [r3, #8]
- 8000c58:	60da      	str	r2, [r3, #12]
- 8000c5a:	611a      	str	r2, [r3, #16]
- 8000c5c:	615a      	str	r2, [r3, #20]
+ 8000d04:	f107 03b8 	add.w	r3, r7, #184	; 0xb8
+ 8000d08:	2200      	movs	r2, #0
+ 8000d0a:	601a      	str	r2, [r3, #0]
+ 8000d0c:	605a      	str	r2, [r3, #4]
+ 8000d0e:	609a      	str	r2, [r3, #8]
+ 8000d10:	60da      	str	r2, [r3, #12]
+ 8000d12:	611a      	str	r2, [r3, #16]
+ 8000d14:	615a      	str	r2, [r3, #20]
   RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
- 8000c5e:	1d3b      	adds	r3, r7, #4
- 8000c60:	22b4      	movs	r2, #180	; 0xb4
- 8000c62:	2100      	movs	r1, #0
- 8000c64:	4618      	mov	r0, r3
- 8000c66:	f008 fe37 	bl	80098d8 <memset>
+ 8000d16:	1d3b      	adds	r3, r7, #4
+ 8000d18:	22b4      	movs	r2, #180	; 0xb4
+ 8000d1a:	2100      	movs	r1, #0
+ 8000d1c:	4618      	mov	r0, r3
+ 8000d1e:	f008 fe37 	bl	8009990 <memset>
 
   /** Initializes the peripherals clock
   */
   PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SPI1;
- 8000c6a:	f44f 5380 	mov.w	r3, #4096	; 0x1000
- 8000c6e:	607b      	str	r3, [r7, #4]
+ 8000d22:	f44f 5380 	mov.w	r3, #4096	; 0x1000
+ 8000d26:	607b      	str	r3, [r7, #4]
   PeriphClkInitStruct.Spi123ClockSelection = RCC_SPI123CLKSOURCE_PLL;
- 8000c70:	2300      	movs	r3, #0
- 8000c72:	65fb      	str	r3, [r7, #92]	; 0x5c
+ 8000d28:	2300      	movs	r3, #0
+ 8000d2a:	65fb      	str	r3, [r7, #92]	; 0x5c
   if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
- 8000c74:	1d3b      	adds	r3, r7, #4
- 8000c76:	4618      	mov	r0, r3
- 8000c78:	f003 f8d2 	bl	8003e20 <HAL_RCCEx_PeriphCLKConfig>
- 8000c7c:	4603      	mov	r3, r0
- 8000c7e:	2b00      	cmp	r3, #0
- 8000c80:	d001      	beq.n	8000c86 <MX_SPI1_Init+0x4e>
+ 8000d2c:	1d3b      	adds	r3, r7, #4
+ 8000d2e:	4618      	mov	r0, r3
+ 8000d30:	f003 f8d2 	bl	8003ed8 <HAL_RCCEx_PeriphCLKConfig>
+ 8000d34:	4603      	mov	r3, r0
+ 8000d36:	2b00      	cmp	r3, #0
+ 8000d38:	d001      	beq.n	8000d3e <MX_SPI1_Init+0x4e>
   {
     Error_Handler();
- 8000c82:	f000 fa19 	bl	80010b8 <Error_Handler>
+ 8000d3a:	f000 fa19 	bl	8001170 <Error_Handler>
   }
 
   /* Peripheral clock enable */
   LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SPI1);
- 8000c86:	f44f 5080 	mov.w	r0, #4096	; 0x1000
- 8000c8a:	f7ff fe83 	bl	8000994 <LL_APB2_GRP1_EnableClock>
+ 8000d3e:	f44f 5080 	mov.w	r0, #4096	; 0x1000
+ 8000d42:	f7ff fe27 	bl	8000994 <LL_APB2_GRP1_EnableClock>
 
   LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOA);
- 8000c8e:	2001      	movs	r0, #1
- 8000c90:	f7ff fe64 	bl	800095c <LL_AHB4_GRP1_EnableClock>
+ 8000d46:	2001      	movs	r0, #1
+ 8000d48:	f7ff fe08 	bl	800095c <LL_AHB4_GRP1_EnableClock>
   LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOD);
- 8000c94:	2008      	movs	r0, #8
- 8000c96:	f7ff fe61 	bl	800095c <LL_AHB4_GRP1_EnableClock>
+ 8000d4c:	2008      	movs	r0, #8
+ 8000d4e:	f7ff fe05 	bl	800095c <LL_AHB4_GRP1_EnableClock>
   /**SPI1 GPIO Configuration
   PA5   ------> SPI1_SCK
   PA6   ------> SPI1_MISO
   PD7   ------> SPI1_MOSI
   */
   GPIO_InitStruct.Pin = LL_GPIO_PIN_5|LL_GPIO_PIN_6;
- 8000c9a:	2360      	movs	r3, #96	; 0x60
- 8000c9c:	f8c7 30b8 	str.w	r3, [r7, #184]	; 0xb8
+ 8000d52:	2360      	movs	r3, #96	; 0x60
+ 8000d54:	f8c7 30b8 	str.w	r3, [r7, #184]	; 0xb8
   GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
- 8000ca0:	2302      	movs	r3, #2
- 8000ca2:	f8c7 30bc 	str.w	r3, [r7, #188]	; 0xbc
+ 8000d58:	2302      	movs	r3, #2
+ 8000d5a:	f8c7 30bc 	str.w	r3, [r7, #188]	; 0xbc
   GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
- 8000ca6:	2303      	movs	r3, #3
- 8000ca8:	f8c7 30c0 	str.w	r3, [r7, #192]	; 0xc0
+ 8000d5e:	2303      	movs	r3, #3
+ 8000d60:	f8c7 30c0 	str.w	r3, [r7, #192]	; 0xc0
   GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
- 8000cac:	2300      	movs	r3, #0
- 8000cae:	f8c7 30c4 	str.w	r3, [r7, #196]	; 0xc4
+ 8000d64:	2300      	movs	r3, #0
+ 8000d66:	f8c7 30c4 	str.w	r3, [r7, #196]	; 0xc4
   GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
- 8000cb2:	2300      	movs	r3, #0
- 8000cb4:	f8c7 30c8 	str.w	r3, [r7, #200]	; 0xc8
+ 8000d6a:	2300      	movs	r3, #0
+ 8000d6c:	f8c7 30c8 	str.w	r3, [r7, #200]	; 0xc8
   GPIO_InitStruct.Alternate = LL_GPIO_AF_5;
- 8000cb8:	2305      	movs	r3, #5
- 8000cba:	f8c7 30cc 	str.w	r3, [r7, #204]	; 0xcc
+ 8000d70:	2305      	movs	r3, #5
+ 8000d72:	f8c7 30cc 	str.w	r3, [r7, #204]	; 0xcc
   LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
- 8000cbe:	f107 03b8 	add.w	r3, r7, #184	; 0xb8
- 8000cc2:	4619      	mov	r1, r3
- 8000cc4:	4826      	ldr	r0, [pc, #152]	; (8000d60 <MX_SPI1_Init+0x128>)
- 8000cc6:	f004 feff 	bl	8005ac8 <LL_GPIO_Init>
+ 8000d76:	f107 03b8 	add.w	r3, r7, #184	; 0xb8
+ 8000d7a:	4619      	mov	r1, r3
+ 8000d7c:	4826      	ldr	r0, [pc, #152]	; (8000e18 <MX_SPI1_Init+0x128>)
+ 8000d7e:	f004 feff 	bl	8005b80 <LL_GPIO_Init>
 
   GPIO_InitStruct.Pin = LL_GPIO_PIN_7;
- 8000cca:	2380      	movs	r3, #128	; 0x80
- 8000ccc:	f8c7 30b8 	str.w	r3, [r7, #184]	; 0xb8
+ 8000d82:	2380      	movs	r3, #128	; 0x80
+ 8000d84:	f8c7 30b8 	str.w	r3, [r7, #184]	; 0xb8
   GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
- 8000cd0:	2302      	movs	r3, #2
- 8000cd2:	f8c7 30bc 	str.w	r3, [r7, #188]	; 0xbc
+ 8000d88:	2302      	movs	r3, #2
+ 8000d8a:	f8c7 30bc 	str.w	r3, [r7, #188]	; 0xbc
   GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
- 8000cd6:	2303      	movs	r3, #3
- 8000cd8:	f8c7 30c0 	str.w	r3, [r7, #192]	; 0xc0
+ 8000d8e:	2303      	movs	r3, #3
+ 8000d90:	f8c7 30c0 	str.w	r3, [r7, #192]	; 0xc0
   GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
- 8000cdc:	2300      	movs	r3, #0
- 8000cde:	f8c7 30c4 	str.w	r3, [r7, #196]	; 0xc4
+ 8000d94:	2300      	movs	r3, #0
+ 8000d96:	f8c7 30c4 	str.w	r3, [r7, #196]	; 0xc4
   GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
- 8000ce2:	2300      	movs	r3, #0
- 8000ce4:	f8c7 30c8 	str.w	r3, [r7, #200]	; 0xc8
+ 8000d9a:	2300      	movs	r3, #0
+ 8000d9c:	f8c7 30c8 	str.w	r3, [r7, #200]	; 0xc8
   GPIO_InitStruct.Alternate = LL_GPIO_AF_5;
- 8000ce8:	2305      	movs	r3, #5
- 8000cea:	f8c7 30cc 	str.w	r3, [r7, #204]	; 0xcc
+ 8000da0:	2305      	movs	r3, #5
+ 8000da2:	f8c7 30cc 	str.w	r3, [r7, #204]	; 0xcc
   LL_GPIO_Init(GPIOD, &GPIO_InitStruct);
- 8000cee:	f107 03b8 	add.w	r3, r7, #184	; 0xb8
- 8000cf2:	4619      	mov	r1, r3
- 8000cf4:	481b      	ldr	r0, [pc, #108]	; (8000d64 <MX_SPI1_Init+0x12c>)
- 8000cf6:	f004 fee7 	bl	8005ac8 <LL_GPIO_Init>
+ 8000da6:	f107 03b8 	add.w	r3, r7, #184	; 0xb8
+ 8000daa:	4619      	mov	r1, r3
+ 8000dac:	481b      	ldr	r0, [pc, #108]	; (8000e1c <MX_SPI1_Init+0x12c>)
+ 8000dae:	f004 fee7 	bl	8005b80 <LL_GPIO_Init>
 
   /* USER CODE BEGIN SPI1_Init 1 */
 
   /* USER CODE END SPI1_Init 1 */
   /* SPI1 parameter configuration*/
   SPI_InitStruct.TransferDirection = LL_SPI_FULL_DUPLEX;
- 8000cfa:	2300      	movs	r3, #0
- 8000cfc:	f8c7 30d0 	str.w	r3, [r7, #208]	; 0xd0
+ 8000db2:	2300      	movs	r3, #0
+ 8000db4:	f8c7 30d0 	str.w	r3, [r7, #208]	; 0xd0
   SPI_InitStruct.Mode = LL_SPI_MODE_MASTER;
- 8000d00:	f44f 0380 	mov.w	r3, #4194304	; 0x400000
- 8000d04:	f8c7 30d4 	str.w	r3, [r7, #212]	; 0xd4
+ 8000db8:	f44f 0380 	mov.w	r3, #4194304	; 0x400000
+ 8000dbc:	f8c7 30d4 	str.w	r3, [r7, #212]	; 0xd4
   SPI_InitStruct.DataWidth = LL_SPI_DATAWIDTH_8BIT;
- 8000d08:	2307      	movs	r3, #7
- 8000d0a:	f8c7 30d8 	str.w	r3, [r7, #216]	; 0xd8
+ 8000dc0:	2307      	movs	r3, #7
+ 8000dc2:	f8c7 30d8 	str.w	r3, [r7, #216]	; 0xd8
   SPI_InitStruct.ClockPolarity = LL_SPI_POLARITY_LOW;
- 8000d0e:	2300      	movs	r3, #0
- 8000d10:	f8c7 30dc 	str.w	r3, [r7, #220]	; 0xdc
+ 8000dc6:	2300      	movs	r3, #0
+ 8000dc8:	f8c7 30dc 	str.w	r3, [r7, #220]	; 0xdc
   SPI_InitStruct.ClockPhase = LL_SPI_PHASE_1EDGE;
- 8000d14:	2300      	movs	r3, #0
- 8000d16:	f8c7 30e0 	str.w	r3, [r7, #224]	; 0xe0
+ 8000dcc:	2300      	movs	r3, #0
+ 8000dce:	f8c7 30e0 	str.w	r3, [r7, #224]	; 0xe0
   SPI_InitStruct.NSS = LL_SPI_NSS_SOFT;
- 8000d1a:	f04f 6380 	mov.w	r3, #67108864	; 0x4000000
- 8000d1e:	f8c7 30e4 	str.w	r3, [r7, #228]	; 0xe4
+ 8000dd2:	f04f 6380 	mov.w	r3, #67108864	; 0x4000000
+ 8000dd6:	f8c7 30e4 	str.w	r3, [r7, #228]	; 0xe4
   SPI_InitStruct.BaudRate = LL_SPI_BAUDRATEPRESCALER_DIV32;
- 8000d22:	f04f 4380 	mov.w	r3, #1073741824	; 0x40000000
- 8000d26:	f8c7 30e8 	str.w	r3, [r7, #232]	; 0xe8
+ 8000dda:	f04f 4380 	mov.w	r3, #1073741824	; 0x40000000
+ 8000dde:	f8c7 30e8 	str.w	r3, [r7, #232]	; 0xe8
   SPI_InitStruct.BitOrder = LL_SPI_MSB_FIRST;
- 8000d2a:	2300      	movs	r3, #0
- 8000d2c:	f8c7 30ec 	str.w	r3, [r7, #236]	; 0xec
+ 8000de2:	2300      	movs	r3, #0
+ 8000de4:	f8c7 30ec 	str.w	r3, [r7, #236]	; 0xec
   SPI_InitStruct.CRCCalculation = LL_SPI_CRCCALCULATION_DISABLE;
- 8000d30:	2300      	movs	r3, #0
- 8000d32:	f8c7 30f0 	str.w	r3, [r7, #240]	; 0xf0
+ 8000de8:	2300      	movs	r3, #0
+ 8000dea:	f8c7 30f0 	str.w	r3, [r7, #240]	; 0xf0
   SPI_InitStruct.CRCPoly = 0x0;
- 8000d36:	2300      	movs	r3, #0
- 8000d38:	f8c7 30f4 	str.w	r3, [r7, #244]	; 0xf4
+ 8000dee:	2300      	movs	r3, #0
+ 8000df0:	f8c7 30f4 	str.w	r3, [r7, #244]	; 0xf4
   LL_SPI_Init(SPI1, &SPI_InitStruct);
- 8000d3c:	f107 03d0 	add.w	r3, r7, #208	; 0xd0
- 8000d40:	4619      	mov	r1, r3
- 8000d42:	4809      	ldr	r0, [pc, #36]	; (8000d68 <MX_SPI1_Init+0x130>)
- 8000d44:	f004 ff70 	bl	8005c28 <LL_SPI_Init>
+ 8000df4:	f107 03d0 	add.w	r3, r7, #208	; 0xd0
+ 8000df8:	4619      	mov	r1, r3
+ 8000dfa:	4809      	ldr	r0, [pc, #36]	; (8000e20 <MX_SPI1_Init+0x130>)
+ 8000dfc:	f004 ff70 	bl	8005ce0 <LL_SPI_Init>
   LL_SPI_SetStandard(SPI1, LL_SPI_PROTOCOL_MOTOROLA);
- 8000d48:	2100      	movs	r1, #0
- 8000d4a:	4807      	ldr	r0, [pc, #28]	; (8000d68 <MX_SPI1_Init+0x130>)
- 8000d4c:	f7ff fde3 	bl	8000916 <LL_SPI_SetStandard>
+ 8000e00:	2100      	movs	r1, #0
+ 8000e02:	4807      	ldr	r0, [pc, #28]	; (8000e20 <MX_SPI1_Init+0x130>)
+ 8000e04:	f7ff fd87 	bl	8000916 <LL_SPI_SetStandard>
   LL_SPI_EnableNSSPulseMgt(SPI1);
- 8000d50:	4805      	ldr	r0, [pc, #20]	; (8000d68 <MX_SPI1_Init+0x130>)
- 8000d52:	f7ff fdf3 	bl	800093c <LL_SPI_EnableNSSPulseMgt>
+ 8000e08:	4805      	ldr	r0, [pc, #20]	; (8000e20 <MX_SPI1_Init+0x130>)
+ 8000e0a:	f7ff fd97 	bl	800093c <LL_SPI_EnableNSSPulseMgt>
   /* USER CODE BEGIN SPI1_Init 2 */
 
   /* USER CODE END SPI1_Init 2 */
 
 }
- 8000d56:	bf00      	nop
- 8000d58:	37f8      	adds	r7, #248	; 0xf8
- 8000d5a:	46bd      	mov	sp, r7
- 8000d5c:	bd80      	pop	{r7, pc}
- 8000d5e:	bf00      	nop
- 8000d60:	58020000 	.word	0x58020000
- 8000d64:	58020c00 	.word	0x58020c00
- 8000d68:	40013000 	.word	0x40013000
+ 8000e0e:	bf00      	nop
+ 8000e10:	37f8      	adds	r7, #248	; 0xf8
+ 8000e12:	46bd      	mov	sp, r7
+ 8000e14:	bd80      	pop	{r7, pc}
+ 8000e16:	bf00      	nop
+ 8000e18:	58020000 	.word	0x58020000
+ 8000e1c:	58020c00 	.word	0x58020c00
+ 8000e20:	40013000 	.word	0x40013000
 
-08000d6c <MX_TIM3_Init>:
+08000e24 <MX_TIM3_Init>:
   * @brief TIM3 Initialization Function
   * @param None
   * @retval None
   */
 static void MX_TIM3_Init(void)
 {
- 8000d6c:	b580      	push	{r7, lr}
- 8000d6e:	b088      	sub	sp, #32
- 8000d70:	af00      	add	r7, sp, #0
+ 8000e24:	b580      	push	{r7, lr}
+ 8000e26:	b088      	sub	sp, #32
+ 8000e28:	af00      	add	r7, sp, #0
 
   /* USER CODE BEGIN TIM3_Init 0 */
 
   /* USER CODE END TIM3_Init 0 */
 
   TIM_ClockConfigTypeDef sClockSourceConfig = {0};
- 8000d72:	f107 0310 	add.w	r3, r7, #16
- 8000d76:	2200      	movs	r2, #0
- 8000d78:	601a      	str	r2, [r3, #0]
- 8000d7a:	605a      	str	r2, [r3, #4]
- 8000d7c:	609a      	str	r2, [r3, #8]
- 8000d7e:	60da      	str	r2, [r3, #12]
+ 8000e2a:	f107 0310 	add.w	r3, r7, #16
+ 8000e2e:	2200      	movs	r2, #0
+ 8000e30:	601a      	str	r2, [r3, #0]
+ 8000e32:	605a      	str	r2, [r3, #4]
+ 8000e34:	609a      	str	r2, [r3, #8]
+ 8000e36:	60da      	str	r2, [r3, #12]
   TIM_MasterConfigTypeDef sMasterConfig = {0};
- 8000d80:	1d3b      	adds	r3, r7, #4
- 8000d82:	2200      	movs	r2, #0
- 8000d84:	601a      	str	r2, [r3, #0]
- 8000d86:	605a      	str	r2, [r3, #4]
- 8000d88:	609a      	str	r2, [r3, #8]
+ 8000e38:	1d3b      	adds	r3, r7, #4
+ 8000e3a:	2200      	movs	r2, #0
+ 8000e3c:	601a      	str	r2, [r3, #0]
+ 8000e3e:	605a      	str	r2, [r3, #4]
+ 8000e40:	609a      	str	r2, [r3, #8]
 
   /* USER CODE BEGIN TIM3_Init 1 */
 
   /* USER CODE END TIM3_Init 1 */
   htim3.Instance = TIM3;
- 8000d8a:	4b1d      	ldr	r3, [pc, #116]	; (8000e00 <MX_TIM3_Init+0x94>)
- 8000d8c:	4a1d      	ldr	r2, [pc, #116]	; (8000e04 <MX_TIM3_Init+0x98>)
- 8000d8e:	601a      	str	r2, [r3, #0]
+ 8000e42:	4b1d      	ldr	r3, [pc, #116]	; (8000eb8 <MX_TIM3_Init+0x94>)
+ 8000e44:	4a1d      	ldr	r2, [pc, #116]	; (8000ebc <MX_TIM3_Init+0x98>)
+ 8000e46:	601a      	str	r2, [r3, #0]
   htim3.Init.Prescaler = 0;
- 8000d90:	4b1b      	ldr	r3, [pc, #108]	; (8000e00 <MX_TIM3_Init+0x94>)
- 8000d92:	2200      	movs	r2, #0
- 8000d94:	605a      	str	r2, [r3, #4]
+ 8000e48:	4b1b      	ldr	r3, [pc, #108]	; (8000eb8 <MX_TIM3_Init+0x94>)
+ 8000e4a:	2200      	movs	r2, #0
+ 8000e4c:	605a      	str	r2, [r3, #4]
   htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
- 8000d96:	4b1a      	ldr	r3, [pc, #104]	; (8000e00 <MX_TIM3_Init+0x94>)
- 8000d98:	2200      	movs	r2, #0
- 8000d9a:	609a      	str	r2, [r3, #8]
+ 8000e4e:	4b1a      	ldr	r3, [pc, #104]	; (8000eb8 <MX_TIM3_Init+0x94>)
+ 8000e50:	2200      	movs	r2, #0
+ 8000e52:	609a      	str	r2, [r3, #8]
   htim3.Init.Period = 6875;
- 8000d9c:	4b18      	ldr	r3, [pc, #96]	; (8000e00 <MX_TIM3_Init+0x94>)
- 8000d9e:	f641 22db 	movw	r2, #6875	; 0x1adb
- 8000da2:	60da      	str	r2, [r3, #12]
+ 8000e54:	4b18      	ldr	r3, [pc, #96]	; (8000eb8 <MX_TIM3_Init+0x94>)
+ 8000e56:	f641 22db 	movw	r2, #6875	; 0x1adb
+ 8000e5a:	60da      	str	r2, [r3, #12]
   htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
- 8000da4:	4b16      	ldr	r3, [pc, #88]	; (8000e00 <MX_TIM3_Init+0x94>)
- 8000da6:	2200      	movs	r2, #0
- 8000da8:	611a      	str	r2, [r3, #16]
+ 8000e5c:	4b16      	ldr	r3, [pc, #88]	; (8000eb8 <MX_TIM3_Init+0x94>)
+ 8000e5e:	2200      	movs	r2, #0
+ 8000e60:	611a      	str	r2, [r3, #16]
   htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
- 8000daa:	4b15      	ldr	r3, [pc, #84]	; (8000e00 <MX_TIM3_Init+0x94>)
- 8000dac:	2280      	movs	r2, #128	; 0x80
- 8000dae:	619a      	str	r2, [r3, #24]
+ 8000e62:	4b15      	ldr	r3, [pc, #84]	; (8000eb8 <MX_TIM3_Init+0x94>)
+ 8000e64:	2280      	movs	r2, #128	; 0x80
+ 8000e66:	619a      	str	r2, [r3, #24]
   if (HAL_TIM_Base_Init(&htim3) != HAL_OK)
- 8000db0:	4813      	ldr	r0, [pc, #76]	; (8000e00 <MX_TIM3_Init+0x94>)
- 8000db2:	f004 f893 	bl	8004edc <HAL_TIM_Base_Init>
- 8000db6:	4603      	mov	r3, r0
- 8000db8:	2b00      	cmp	r3, #0
- 8000dba:	d001      	beq.n	8000dc0 <MX_TIM3_Init+0x54>
+ 8000e68:	4813      	ldr	r0, [pc, #76]	; (8000eb8 <MX_TIM3_Init+0x94>)
+ 8000e6a:	f004 f893 	bl	8004f94 <HAL_TIM_Base_Init>
+ 8000e6e:	4603      	mov	r3, r0
+ 8000e70:	2b00      	cmp	r3, #0
+ 8000e72:	d001      	beq.n	8000e78 <MX_TIM3_Init+0x54>
   {
     Error_Handler();
- 8000dbc:	f000 f97c 	bl	80010b8 <Error_Handler>
+ 8000e74:	f000 f97c 	bl	8001170 <Error_Handler>
   }
   sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
- 8000dc0:	f44f 5380 	mov.w	r3, #4096	; 0x1000
- 8000dc4:	613b      	str	r3, [r7, #16]
+ 8000e78:	f44f 5380 	mov.w	r3, #4096	; 0x1000
+ 8000e7c:	613b      	str	r3, [r7, #16]
   if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK)
- 8000dc6:	f107 0310 	add.w	r3, r7, #16
- 8000dca:	4619      	mov	r1, r3
- 8000dcc:	480c      	ldr	r0, [pc, #48]	; (8000e00 <MX_TIM3_Init+0x94>)
- 8000dce:	f004 fa83 	bl	80052d8 <HAL_TIM_ConfigClockSource>
- 8000dd2:	4603      	mov	r3, r0
- 8000dd4:	2b00      	cmp	r3, #0
- 8000dd6:	d001      	beq.n	8000ddc <MX_TIM3_Init+0x70>
+ 8000e7e:	f107 0310 	add.w	r3, r7, #16
+ 8000e82:	4619      	mov	r1, r3
+ 8000e84:	480c      	ldr	r0, [pc, #48]	; (8000eb8 <MX_TIM3_Init+0x94>)
+ 8000e86:	f004 fa83 	bl	8005390 <HAL_TIM_ConfigClockSource>
+ 8000e8a:	4603      	mov	r3, r0
+ 8000e8c:	2b00      	cmp	r3, #0
+ 8000e8e:	d001      	beq.n	8000e94 <MX_TIM3_Init+0x70>
   {
     Error_Handler();
- 8000dd8:	f000 f96e 	bl	80010b8 <Error_Handler>
+ 8000e90:	f000 f96e 	bl	8001170 <Error_Handler>
   }
   sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
- 8000ddc:	2300      	movs	r3, #0
- 8000dde:	607b      	str	r3, [r7, #4]
+ 8000e94:	2300      	movs	r3, #0
+ 8000e96:	607b      	str	r3, [r7, #4]
   sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
- 8000de0:	2300      	movs	r3, #0
- 8000de2:	60fb      	str	r3, [r7, #12]
+ 8000e98:	2300      	movs	r3, #0
+ 8000e9a:	60fb      	str	r3, [r7, #12]
   if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)
- 8000de4:	1d3b      	adds	r3, r7, #4
- 8000de6:	4619      	mov	r1, r3
- 8000de8:	4805      	ldr	r0, [pc, #20]	; (8000e00 <MX_TIM3_Init+0x94>)
- 8000dea:	f004 fcd9 	bl	80057a0 <HAL_TIMEx_MasterConfigSynchronization>
- 8000dee:	4603      	mov	r3, r0
- 8000df0:	2b00      	cmp	r3, #0
- 8000df2:	d001      	beq.n	8000df8 <MX_TIM3_Init+0x8c>
+ 8000e9c:	1d3b      	adds	r3, r7, #4
+ 8000e9e:	4619      	mov	r1, r3
+ 8000ea0:	4805      	ldr	r0, [pc, #20]	; (8000eb8 <MX_TIM3_Init+0x94>)
+ 8000ea2:	f004 fcd9 	bl	8005858 <HAL_TIMEx_MasterConfigSynchronization>
+ 8000ea6:	4603      	mov	r3, r0
+ 8000ea8:	2b00      	cmp	r3, #0
+ 8000eaa:	d001      	beq.n	8000eb0 <MX_TIM3_Init+0x8c>
   {
     Error_Handler();
- 8000df4:	f000 f960 	bl	80010b8 <Error_Handler>
+ 8000eac:	f000 f960 	bl	8001170 <Error_Handler>
   }
   /* USER CODE BEGIN TIM3_Init 2 */
 
   /* USER CODE END TIM3_Init 2 */
 
 }
- 8000df8:	bf00      	nop
- 8000dfa:	3720      	adds	r7, #32
- 8000dfc:	46bd      	mov	sp, r7
- 8000dfe:	bd80      	pop	{r7, pc}
- 8000e00:	2400043c 	.word	0x2400043c
- 8000e04:	40000400 	.word	0x40000400
+ 8000eb0:	bf00      	nop
+ 8000eb2:	3720      	adds	r7, #32
+ 8000eb4:	46bd      	mov	sp, r7
+ 8000eb6:	bd80      	pop	{r7, pc}
+ 8000eb8:	240013e0 	.word	0x240013e0
+ 8000ebc:	40000400 	.word	0x40000400
 
-08000e08 <MX_GPIO_Init>:
+08000ec0 <MX_GPIO_Init>:
   * @brief GPIO Initialization Function
   * @param None
   * @retval None
   */
 static void MX_GPIO_Init(void)
 {
- 8000e08:	b580      	push	{r7, lr}
- 8000e0a:	b08c      	sub	sp, #48	; 0x30
- 8000e0c:	af00      	add	r7, sp, #0
+ 8000ec0:	b580      	push	{r7, lr}
+ 8000ec2:	b08c      	sub	sp, #48	; 0x30
+ 8000ec4:	af00      	add	r7, sp, #0
   GPIO_InitTypeDef GPIO_InitStruct = {0};
- 8000e0e:	f107 031c 	add.w	r3, r7, #28
- 8000e12:	2200      	movs	r2, #0
- 8000e14:	601a      	str	r2, [r3, #0]
- 8000e16:	605a      	str	r2, [r3, #4]
- 8000e18:	609a      	str	r2, [r3, #8]
- 8000e1a:	60da      	str	r2, [r3, #12]
- 8000e1c:	611a      	str	r2, [r3, #16]
+ 8000ec6:	f107 031c 	add.w	r3, r7, #28
+ 8000eca:	2200      	movs	r2, #0
+ 8000ecc:	601a      	str	r2, [r3, #0]
+ 8000ece:	605a      	str	r2, [r3, #4]
+ 8000ed0:	609a      	str	r2, [r3, #8]
+ 8000ed2:	60da      	str	r2, [r3, #12]
+ 8000ed4:	611a      	str	r2, [r3, #16]
 
   /* GPIO Ports Clock Enable */
   __HAL_RCC_GPIOC_CLK_ENABLE();
- 8000e1e:	4b9f      	ldr	r3, [pc, #636]	; (800109c <MX_GPIO_Init+0x294>)
- 8000e20:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
- 8000e24:	4a9d      	ldr	r2, [pc, #628]	; (800109c <MX_GPIO_Init+0x294>)
- 8000e26:	f043 0304 	orr.w	r3, r3, #4
- 8000e2a:	f8c2 30e0 	str.w	r3, [r2, #224]	; 0xe0
- 8000e2e:	4b9b      	ldr	r3, [pc, #620]	; (800109c <MX_GPIO_Init+0x294>)
- 8000e30:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
- 8000e34:	f003 0304 	and.w	r3, r3, #4
- 8000e38:	61bb      	str	r3, [r7, #24]
- 8000e3a:	69bb      	ldr	r3, [r7, #24]
+ 8000ed6:	4b9f      	ldr	r3, [pc, #636]	; (8001154 <MX_GPIO_Init+0x294>)
+ 8000ed8:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
+ 8000edc:	4a9d      	ldr	r2, [pc, #628]	; (8001154 <MX_GPIO_Init+0x294>)
+ 8000ede:	f043 0304 	orr.w	r3, r3, #4
+ 8000ee2:	f8c2 30e0 	str.w	r3, [r2, #224]	; 0xe0
+ 8000ee6:	4b9b      	ldr	r3, [pc, #620]	; (8001154 <MX_GPIO_Init+0x294>)
+ 8000ee8:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
+ 8000eec:	f003 0304 	and.w	r3, r3, #4
+ 8000ef0:	61bb      	str	r3, [r7, #24]
+ 8000ef2:	69bb      	ldr	r3, [r7, #24]
   __HAL_RCC_GPIOH_CLK_ENABLE();
- 8000e3c:	4b97      	ldr	r3, [pc, #604]	; (800109c <MX_GPIO_Init+0x294>)
- 8000e3e:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
- 8000e42:	4a96      	ldr	r2, [pc, #600]	; (800109c <MX_GPIO_Init+0x294>)
- 8000e44:	f043 0380 	orr.w	r3, r3, #128	; 0x80
- 8000e48:	f8c2 30e0 	str.w	r3, [r2, #224]	; 0xe0
- 8000e4c:	4b93      	ldr	r3, [pc, #588]	; (800109c <MX_GPIO_Init+0x294>)
- 8000e4e:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
- 8000e52:	f003 0380 	and.w	r3, r3, #128	; 0x80
- 8000e56:	617b      	str	r3, [r7, #20]
- 8000e58:	697b      	ldr	r3, [r7, #20]
+ 8000ef4:	4b97      	ldr	r3, [pc, #604]	; (8001154 <MX_GPIO_Init+0x294>)
+ 8000ef6:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
+ 8000efa:	4a96      	ldr	r2, [pc, #600]	; (8001154 <MX_GPIO_Init+0x294>)
+ 8000efc:	f043 0380 	orr.w	r3, r3, #128	; 0x80
+ 8000f00:	f8c2 30e0 	str.w	r3, [r2, #224]	; 0xe0
+ 8000f04:	4b93      	ldr	r3, [pc, #588]	; (8001154 <MX_GPIO_Init+0x294>)
+ 8000f06:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
+ 8000f0a:	f003 0380 	and.w	r3, r3, #128	; 0x80
+ 8000f0e:	617b      	str	r3, [r7, #20]
+ 8000f10:	697b      	ldr	r3, [r7, #20]
   __HAL_RCC_GPIOA_CLK_ENABLE();
- 8000e5a:	4b90      	ldr	r3, [pc, #576]	; (800109c <MX_GPIO_Init+0x294>)
- 8000e5c:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
- 8000e60:	4a8e      	ldr	r2, [pc, #568]	; (800109c <MX_GPIO_Init+0x294>)
- 8000e62:	f043 0301 	orr.w	r3, r3, #1
- 8000e66:	f8c2 30e0 	str.w	r3, [r2, #224]	; 0xe0
- 8000e6a:	4b8c      	ldr	r3, [pc, #560]	; (800109c <MX_GPIO_Init+0x294>)
- 8000e6c:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
- 8000e70:	f003 0301 	and.w	r3, r3, #1
- 8000e74:	613b      	str	r3, [r7, #16]
- 8000e76:	693b      	ldr	r3, [r7, #16]
+ 8000f12:	4b90      	ldr	r3, [pc, #576]	; (8001154 <MX_GPIO_Init+0x294>)
+ 8000f14:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
+ 8000f18:	4a8e      	ldr	r2, [pc, #568]	; (8001154 <MX_GPIO_Init+0x294>)
+ 8000f1a:	f043 0301 	orr.w	r3, r3, #1
+ 8000f1e:	f8c2 30e0 	str.w	r3, [r2, #224]	; 0xe0
+ 8000f22:	4b8c      	ldr	r3, [pc, #560]	; (8001154 <MX_GPIO_Init+0x294>)
+ 8000f24:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
+ 8000f28:	f003 0301 	and.w	r3, r3, #1
+ 8000f2c:	613b      	str	r3, [r7, #16]
+ 8000f2e:	693b      	ldr	r3, [r7, #16]
   __HAL_RCC_GPIOB_CLK_ENABLE();
- 8000e78:	4b88      	ldr	r3, [pc, #544]	; (800109c <MX_GPIO_Init+0x294>)
- 8000e7a:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
- 8000e7e:	4a87      	ldr	r2, [pc, #540]	; (800109c <MX_GPIO_Init+0x294>)
- 8000e80:	f043 0302 	orr.w	r3, r3, #2
- 8000e84:	f8c2 30e0 	str.w	r3, [r2, #224]	; 0xe0
- 8000e88:	4b84      	ldr	r3, [pc, #528]	; (800109c <MX_GPIO_Init+0x294>)
- 8000e8a:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
- 8000e8e:	f003 0302 	and.w	r3, r3, #2
- 8000e92:	60fb      	str	r3, [r7, #12]
- 8000e94:	68fb      	ldr	r3, [r7, #12]
+ 8000f30:	4b88      	ldr	r3, [pc, #544]	; (8001154 <MX_GPIO_Init+0x294>)
+ 8000f32:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
+ 8000f36:	4a87      	ldr	r2, [pc, #540]	; (8001154 <MX_GPIO_Init+0x294>)
+ 8000f38:	f043 0302 	orr.w	r3, r3, #2
+ 8000f3c:	f8c2 30e0 	str.w	r3, [r2, #224]	; 0xe0
+ 8000f40:	4b84      	ldr	r3, [pc, #528]	; (8001154 <MX_GPIO_Init+0x294>)
+ 8000f42:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
+ 8000f46:	f003 0302 	and.w	r3, r3, #2
+ 8000f4a:	60fb      	str	r3, [r7, #12]
+ 8000f4c:	68fb      	ldr	r3, [r7, #12]
   __HAL_RCC_GPIOD_CLK_ENABLE();
- 8000e96:	4b81      	ldr	r3, [pc, #516]	; (800109c <MX_GPIO_Init+0x294>)
- 8000e98:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
- 8000e9c:	4a7f      	ldr	r2, [pc, #508]	; (800109c <MX_GPIO_Init+0x294>)
- 8000e9e:	f043 0308 	orr.w	r3, r3, #8
- 8000ea2:	f8c2 30e0 	str.w	r3, [r2, #224]	; 0xe0
- 8000ea6:	4b7d      	ldr	r3, [pc, #500]	; (800109c <MX_GPIO_Init+0x294>)
- 8000ea8:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
- 8000eac:	f003 0308 	and.w	r3, r3, #8
- 8000eb0:	60bb      	str	r3, [r7, #8]
- 8000eb2:	68bb      	ldr	r3, [r7, #8]
+ 8000f4e:	4b81      	ldr	r3, [pc, #516]	; (8001154 <MX_GPIO_Init+0x294>)
+ 8000f50:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
+ 8000f54:	4a7f      	ldr	r2, [pc, #508]	; (8001154 <MX_GPIO_Init+0x294>)
+ 8000f56:	f043 0308 	orr.w	r3, r3, #8
+ 8000f5a:	f8c2 30e0 	str.w	r3, [r2, #224]	; 0xe0
+ 8000f5e:	4b7d      	ldr	r3, [pc, #500]	; (8001154 <MX_GPIO_Init+0x294>)
+ 8000f60:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
+ 8000f64:	f003 0308 	and.w	r3, r3, #8
+ 8000f68:	60bb      	str	r3, [r7, #8]
+ 8000f6a:	68bb      	ldr	r3, [r7, #8]
   __HAL_RCC_GPIOG_CLK_ENABLE();
- 8000eb4:	4b79      	ldr	r3, [pc, #484]	; (800109c <MX_GPIO_Init+0x294>)
- 8000eb6:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
- 8000eba:	4a78      	ldr	r2, [pc, #480]	; (800109c <MX_GPIO_Init+0x294>)
- 8000ebc:	f043 0340 	orr.w	r3, r3, #64	; 0x40
- 8000ec0:	f8c2 30e0 	str.w	r3, [r2, #224]	; 0xe0
- 8000ec4:	4b75      	ldr	r3, [pc, #468]	; (800109c <MX_GPIO_Init+0x294>)
- 8000ec6:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
- 8000eca:	f003 0340 	and.w	r3, r3, #64	; 0x40
- 8000ece:	607b      	str	r3, [r7, #4]
- 8000ed0:	687b      	ldr	r3, [r7, #4]
+ 8000f6c:	4b79      	ldr	r3, [pc, #484]	; (8001154 <MX_GPIO_Init+0x294>)
+ 8000f6e:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
+ 8000f72:	4a78      	ldr	r2, [pc, #480]	; (8001154 <MX_GPIO_Init+0x294>)
+ 8000f74:	f043 0340 	orr.w	r3, r3, #64	; 0x40
+ 8000f78:	f8c2 30e0 	str.w	r3, [r2, #224]	; 0xe0
+ 8000f7c:	4b75      	ldr	r3, [pc, #468]	; (8001154 <MX_GPIO_Init+0x294>)
+ 8000f7e:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
+ 8000f82:	f003 0340 	and.w	r3, r3, #64	; 0x40
+ 8000f86:	607b      	str	r3, [r7, #4]
+ 8000f88:	687b      	ldr	r3, [r7, #4]
   __HAL_RCC_GPIOE_CLK_ENABLE();
- 8000ed2:	4b72      	ldr	r3, [pc, #456]	; (800109c <MX_GPIO_Init+0x294>)
- 8000ed4:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
- 8000ed8:	4a70      	ldr	r2, [pc, #448]	; (800109c <MX_GPIO_Init+0x294>)
- 8000eda:	f043 0310 	orr.w	r3, r3, #16
- 8000ede:	f8c2 30e0 	str.w	r3, [r2, #224]	; 0xe0
- 8000ee2:	4b6e      	ldr	r3, [pc, #440]	; (800109c <MX_GPIO_Init+0x294>)
- 8000ee4:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
- 8000ee8:	f003 0310 	and.w	r3, r3, #16
- 8000eec:	603b      	str	r3, [r7, #0]
- 8000eee:	683b      	ldr	r3, [r7, #0]
+ 8000f8a:	4b72      	ldr	r3, [pc, #456]	; (8001154 <MX_GPIO_Init+0x294>)
+ 8000f8c:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
+ 8000f90:	4a70      	ldr	r2, [pc, #448]	; (8001154 <MX_GPIO_Init+0x294>)
+ 8000f92:	f043 0310 	orr.w	r3, r3, #16
+ 8000f96:	f8c2 30e0 	str.w	r3, [r2, #224]	; 0xe0
+ 8000f9a:	4b6e      	ldr	r3, [pc, #440]	; (8001154 <MX_GPIO_Init+0x294>)
+ 8000f9c:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
+ 8000fa0:	f003 0310 	and.w	r3, r3, #16
+ 8000fa4:	603b      	str	r3, [r7, #0]
+ 8000fa6:	683b      	ldr	r3, [r7, #0]
 
   /*Configure GPIO pin Output Level */
   HAL_GPIO_WritePin(GPIOB, LED_GREEN_Pin|CC1200_RESET_Pin|LED_RED_Pin, GPIO_PIN_RESET);
- 8000ef0:	2200      	movs	r2, #0
- 8000ef2:	f245 0101 	movw	r1, #20481	; 0x5001
- 8000ef6:	486a      	ldr	r0, [pc, #424]	; (80010a0 <MX_GPIO_Init+0x298>)
- 8000ef8:	f000 fe3a 	bl	8001b70 <HAL_GPIO_WritePin>
+ 8000fa8:	2200      	movs	r2, #0
+ 8000faa:	f245 0101 	movw	r1, #20481	; 0x5001
+ 8000fae:	486a      	ldr	r0, [pc, #424]	; (8001158 <MX_GPIO_Init+0x298>)
+ 8000fb0:	f000 fe3a 	bl	8001c28 <HAL_GPIO_WritePin>
 
   /*Configure GPIO pin Output Level */
   HAL_GPIO_WritePin(CC1200_TCXO_ENABLE_GPIO_Port, CC1200_TCXO_ENABLE_Pin, GPIO_PIN_SET);
- 8000efc:	2201      	movs	r2, #1
- 8000efe:	f44f 4100 	mov.w	r1, #32768	; 0x8000
- 8000f02:	4867      	ldr	r0, [pc, #412]	; (80010a0 <MX_GPIO_Init+0x298>)
- 8000f04:	f000 fe34 	bl	8001b70 <HAL_GPIO_WritePin>
+ 8000fb4:	2201      	movs	r2, #1
+ 8000fb6:	f44f 4100 	mov.w	r1, #32768	; 0x8000
+ 8000fba:	4867      	ldr	r0, [pc, #412]	; (8001158 <MX_GPIO_Init+0x298>)
+ 8000fbc:	f000 fe34 	bl	8001c28 <HAL_GPIO_WritePin>
 
   /*Configure GPIO pin Output Level */
   HAL_GPIO_WritePin(USB_FS_PWR_EN_GPIO_Port, USB_FS_PWR_EN_Pin, GPIO_PIN_RESET);
- 8000f08:	2200      	movs	r2, #0
- 8000f0a:	f44f 6180 	mov.w	r1, #1024	; 0x400
- 8000f0e:	4865      	ldr	r0, [pc, #404]	; (80010a4 <MX_GPIO_Init+0x29c>)
- 8000f10:	f000 fe2e 	bl	8001b70 <HAL_GPIO_WritePin>
+ 8000fc0:	2200      	movs	r2, #0
+ 8000fc2:	f44f 6180 	mov.w	r1, #1024	; 0x400
+ 8000fc6:	4865      	ldr	r0, [pc, #404]	; (800115c <MX_GPIO_Init+0x29c>)
+ 8000fc8:	f000 fe2e 	bl	8001c28 <HAL_GPIO_WritePin>
 
   /*Configure GPIO pin Output Level */
   HAL_GPIO_WritePin(CC1200_CS_GPIO_Port, CC1200_CS_Pin, GPIO_PIN_SET);
- 8000f14:	2201      	movs	r2, #1
- 8000f16:	2140      	movs	r1, #64	; 0x40
- 8000f18:	4863      	ldr	r0, [pc, #396]	; (80010a8 <MX_GPIO_Init+0x2a0>)
- 8000f1a:	f000 fe29 	bl	8001b70 <HAL_GPIO_WritePin>
+ 8000fcc:	2201      	movs	r2, #1
+ 8000fce:	2140      	movs	r1, #64	; 0x40
+ 8000fd0:	4863      	ldr	r0, [pc, #396]	; (8001160 <MX_GPIO_Init+0x2a0>)
+ 8000fd2:	f000 fe29 	bl	8001c28 <HAL_GPIO_WritePin>
 
   /*Configure GPIO pin Output Level */
   HAL_GPIO_WritePin(LED_YELLOW_GPIO_Port, LED_YELLOW_Pin, GPIO_PIN_RESET);
- 8000f1e:	2200      	movs	r2, #0
- 8000f20:	2102      	movs	r1, #2
- 8000f22:	4862      	ldr	r0, [pc, #392]	; (80010ac <MX_GPIO_Init+0x2a4>)
- 8000f24:	f000 fe24 	bl	8001b70 <HAL_GPIO_WritePin>
+ 8000fd6:	2200      	movs	r2, #0
+ 8000fd8:	2102      	movs	r1, #2
+ 8000fda:	4862      	ldr	r0, [pc, #392]	; (8001164 <MX_GPIO_Init+0x2a4>)
+ 8000fdc:	f000 fe24 	bl	8001c28 <HAL_GPIO_WritePin>
 
   /*Configure GPIO pin : B1_Pin */
   GPIO_InitStruct.Pin = B1_Pin;
- 8000f28:	f44f 5300 	mov.w	r3, #8192	; 0x2000
- 8000f2c:	61fb      	str	r3, [r7, #28]
+ 8000fe0:	f44f 5300 	mov.w	r3, #8192	; 0x2000
+ 8000fe4:	61fb      	str	r3, [r7, #28]
   GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
- 8000f2e:	2300      	movs	r3, #0
- 8000f30:	623b      	str	r3, [r7, #32]
+ 8000fe6:	2300      	movs	r3, #0
+ 8000fe8:	623b      	str	r3, [r7, #32]
   GPIO_InitStruct.Pull = GPIO_NOPULL;
- 8000f32:	2300      	movs	r3, #0
- 8000f34:	627b      	str	r3, [r7, #36]	; 0x24
+ 8000fea:	2300      	movs	r3, #0
+ 8000fec:	627b      	str	r3, [r7, #36]	; 0x24
   HAL_GPIO_Init(B1_GPIO_Port, &GPIO_InitStruct);
- 8000f36:	f107 031c 	add.w	r3, r7, #28
- 8000f3a:	4619      	mov	r1, r3
- 8000f3c:	485a      	ldr	r0, [pc, #360]	; (80010a8 <MX_GPIO_Init+0x2a0>)
- 8000f3e:	f000 fc6f 	bl	8001820 <HAL_GPIO_Init>
+ 8000fee:	f107 031c 	add.w	r3, r7, #28
+ 8000ff2:	4619      	mov	r1, r3
+ 8000ff4:	485a      	ldr	r0, [pc, #360]	; (8001160 <MX_GPIO_Init+0x2a0>)
+ 8000ff6:	f000 fc6f 	bl	80018d8 <HAL_GPIO_Init>
 
   /*Configure GPIO pins : PC1 PC4 PC5 */
   GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5;
- 8000f42:	2332      	movs	r3, #50	; 0x32
- 8000f44:	61fb      	str	r3, [r7, #28]
+ 8000ffa:	2332      	movs	r3, #50	; 0x32
+ 8000ffc:	61fb      	str	r3, [r7, #28]
   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
- 8000f46:	2302      	movs	r3, #2
- 8000f48:	623b      	str	r3, [r7, #32]
+ 8000ffe:	2302      	movs	r3, #2
+ 8001000:	623b      	str	r3, [r7, #32]
   GPIO_InitStruct.Pull = GPIO_NOPULL;
- 8000f4a:	2300      	movs	r3, #0
- 8000f4c:	627b      	str	r3, [r7, #36]	; 0x24
+ 8001002:	2300      	movs	r3, #0
+ 8001004:	627b      	str	r3, [r7, #36]	; 0x24
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
- 8000f4e:	2303      	movs	r3, #3
- 8000f50:	62bb      	str	r3, [r7, #40]	; 0x28
+ 8001006:	2303      	movs	r3, #3
+ 8001008:	62bb      	str	r3, [r7, #40]	; 0x28
   GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
- 8000f52:	230b      	movs	r3, #11
- 8000f54:	62fb      	str	r3, [r7, #44]	; 0x2c
+ 800100a:	230b      	movs	r3, #11
+ 800100c:	62fb      	str	r3, [r7, #44]	; 0x2c
   HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
- 8000f56:	f107 031c 	add.w	r3, r7, #28
- 8000f5a:	4619      	mov	r1, r3
- 8000f5c:	4852      	ldr	r0, [pc, #328]	; (80010a8 <MX_GPIO_Init+0x2a0>)
- 8000f5e:	f000 fc5f 	bl	8001820 <HAL_GPIO_Init>
+ 800100e:	f107 031c 	add.w	r3, r7, #28
+ 8001012:	4619      	mov	r1, r3
+ 8001014:	4852      	ldr	r0, [pc, #328]	; (8001160 <MX_GPIO_Init+0x2a0>)
+ 8001016:	f000 fc5f 	bl	80018d8 <HAL_GPIO_Init>
 
   /*Configure GPIO pins : PA1 PA2 PA7 */
   GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_7;
- 8000f62:	2386      	movs	r3, #134	; 0x86
- 8000f64:	61fb      	str	r3, [r7, #28]
+ 800101a:	2386      	movs	r3, #134	; 0x86
+ 800101c:	61fb      	str	r3, [r7, #28]
   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
- 8000f66:	2302      	movs	r3, #2
- 8000f68:	623b      	str	r3, [r7, #32]
+ 800101e:	2302      	movs	r3, #2
+ 8001020:	623b      	str	r3, [r7, #32]
   GPIO_InitStruct.Pull = GPIO_NOPULL;
- 8000f6a:	2300      	movs	r3, #0
- 8000f6c:	627b      	str	r3, [r7, #36]	; 0x24
+ 8001022:	2300      	movs	r3, #0
+ 8001024:	627b      	str	r3, [r7, #36]	; 0x24
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
- 8000f6e:	2303      	movs	r3, #3
- 8000f70:	62bb      	str	r3, [r7, #40]	; 0x28
+ 8001026:	2303      	movs	r3, #3
+ 8001028:	62bb      	str	r3, [r7, #40]	; 0x28
   GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
- 8000f72:	230b      	movs	r3, #11
- 8000f74:	62fb      	str	r3, [r7, #44]	; 0x2c
+ 800102a:	230b      	movs	r3, #11
+ 800102c:	62fb      	str	r3, [r7, #44]	; 0x2c
   HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
- 8000f76:	f107 031c 	add.w	r3, r7, #28
- 8000f7a:	4619      	mov	r1, r3
- 8000f7c:	484c      	ldr	r0, [pc, #304]	; (80010b0 <MX_GPIO_Init+0x2a8>)
- 8000f7e:	f000 fc4f 	bl	8001820 <HAL_GPIO_Init>
+ 800102e:	f107 031c 	add.w	r3, r7, #28
+ 8001032:	4619      	mov	r1, r3
+ 8001034:	484c      	ldr	r0, [pc, #304]	; (8001168 <MX_GPIO_Init+0x2a8>)
+ 8001036:	f000 fc4f 	bl	80018d8 <HAL_GPIO_Init>
 
   /*Configure GPIO pins : LED_GREEN_Pin LED_RED_Pin */
   GPIO_InitStruct.Pin = LED_GREEN_Pin|LED_RED_Pin;
- 8000f82:	f244 0301 	movw	r3, #16385	; 0x4001
- 8000f86:	61fb      	str	r3, [r7, #28]
+ 800103a:	f244 0301 	movw	r3, #16385	; 0x4001
+ 800103e:	61fb      	str	r3, [r7, #28]
   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- 8000f88:	2301      	movs	r3, #1
- 8000f8a:	623b      	str	r3, [r7, #32]
+ 8001040:	2301      	movs	r3, #1
+ 8001042:	623b      	str	r3, [r7, #32]
   GPIO_InitStruct.Pull = GPIO_NOPULL;
- 8000f8c:	2300      	movs	r3, #0
- 8000f8e:	627b      	str	r3, [r7, #36]	; 0x24
+ 8001044:	2300      	movs	r3, #0
+ 8001046:	627b      	str	r3, [r7, #36]	; 0x24
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- 8000f90:	2300      	movs	r3, #0
- 8000f92:	62bb      	str	r3, [r7, #40]	; 0x28
+ 8001048:	2300      	movs	r3, #0
+ 800104a:	62bb      	str	r3, [r7, #40]	; 0x28
   HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
- 8000f94:	f107 031c 	add.w	r3, r7, #28
- 8000f98:	4619      	mov	r1, r3
- 8000f9a:	4841      	ldr	r0, [pc, #260]	; (80010a0 <MX_GPIO_Init+0x298>)
- 8000f9c:	f000 fc40 	bl	8001820 <HAL_GPIO_Init>
+ 800104c:	f107 031c 	add.w	r3, r7, #28
+ 8001050:	4619      	mov	r1, r3
+ 8001052:	4841      	ldr	r0, [pc, #260]	; (8001158 <MX_GPIO_Init+0x298>)
+ 8001054:	f000 fc40 	bl	80018d8 <HAL_GPIO_Init>
 
   /*Configure GPIO pins : CC1200_RESET_Pin CC1200_TCXO_ENABLE_Pin */
   GPIO_InitStruct.Pin = CC1200_RESET_Pin|CC1200_TCXO_ENABLE_Pin;
- 8000fa0:	f44f 4310 	mov.w	r3, #36864	; 0x9000
- 8000fa4:	61fb      	str	r3, [r7, #28]
+ 8001058:	f44f 4310 	mov.w	r3, #36864	; 0x9000
+ 800105c:	61fb      	str	r3, [r7, #28]
   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- 8000fa6:	2301      	movs	r3, #1
- 8000fa8:	623b      	str	r3, [r7, #32]
+ 800105e:	2301      	movs	r3, #1
+ 8001060:	623b      	str	r3, [r7, #32]
   GPIO_InitStruct.Pull = GPIO_NOPULL;
- 8000faa:	2300      	movs	r3, #0
- 8000fac:	627b      	str	r3, [r7, #36]	; 0x24
+ 8001062:	2300      	movs	r3, #0
+ 8001064:	627b      	str	r3, [r7, #36]	; 0x24
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
- 8000fae:	2303      	movs	r3, #3
- 8000fb0:	62bb      	str	r3, [r7, #40]	; 0x28
+ 8001066:	2303      	movs	r3, #3
+ 8001068:	62bb      	str	r3, [r7, #40]	; 0x28
   HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
- 8000fb2:	f107 031c 	add.w	r3, r7, #28
- 8000fb6:	4619      	mov	r1, r3
- 8000fb8:	4839      	ldr	r0, [pc, #228]	; (80010a0 <MX_GPIO_Init+0x298>)
- 8000fba:	f000 fc31 	bl	8001820 <HAL_GPIO_Init>
+ 800106a:	f107 031c 	add.w	r3, r7, #28
+ 800106e:	4619      	mov	r1, r3
+ 8001070:	4839      	ldr	r0, [pc, #228]	; (8001158 <MX_GPIO_Init+0x298>)
+ 8001072:	f000 fc31 	bl	80018d8 <HAL_GPIO_Init>
 
   /*Configure GPIO pin : PB13 */
   GPIO_InitStruct.Pin = GPIO_PIN_13;
- 8000fbe:	f44f 5300 	mov.w	r3, #8192	; 0x2000
- 8000fc2:	61fb      	str	r3, [r7, #28]
+ 8001076:	f44f 5300 	mov.w	r3, #8192	; 0x2000
+ 800107a:	61fb      	str	r3, [r7, #28]
   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
- 8000fc4:	2302      	movs	r3, #2
- 8000fc6:	623b      	str	r3, [r7, #32]
+ 800107c:	2302      	movs	r3, #2
+ 800107e:	623b      	str	r3, [r7, #32]
   GPIO_InitStruct.Pull = GPIO_NOPULL;
- 8000fc8:	2300      	movs	r3, #0
- 8000fca:	627b      	str	r3, [r7, #36]	; 0x24
+ 8001080:	2300      	movs	r3, #0
+ 8001082:	627b      	str	r3, [r7, #36]	; 0x24
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
- 8000fcc:	2303      	movs	r3, #3
- 8000fce:	62bb      	str	r3, [r7, #40]	; 0x28
+ 8001084:	2303      	movs	r3, #3
+ 8001086:	62bb      	str	r3, [r7, #40]	; 0x28
   GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
- 8000fd0:	230b      	movs	r3, #11
- 8000fd2:	62fb      	str	r3, [r7, #44]	; 0x2c
+ 8001088:	230b      	movs	r3, #11
+ 800108a:	62fb      	str	r3, [r7, #44]	; 0x2c
   HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
- 8000fd4:	f107 031c 	add.w	r3, r7, #28
- 8000fd8:	4619      	mov	r1, r3
- 8000fda:	4831      	ldr	r0, [pc, #196]	; (80010a0 <MX_GPIO_Init+0x298>)
- 8000fdc:	f000 fc20 	bl	8001820 <HAL_GPIO_Init>
+ 800108c:	f107 031c 	add.w	r3, r7, #28
+ 8001090:	4619      	mov	r1, r3
+ 8001092:	4831      	ldr	r0, [pc, #196]	; (8001158 <MX_GPIO_Init+0x298>)
+ 8001094:	f000 fc20 	bl	80018d8 <HAL_GPIO_Init>
 
   /*Configure GPIO pins : STLK_VCP_RX_Pin STLK_VCP_TX_Pin */
   GPIO_InitStruct.Pin = STLK_VCP_RX_Pin|STLK_VCP_TX_Pin;
- 8000fe0:	f44f 7340 	mov.w	r3, #768	; 0x300
- 8000fe4:	61fb      	str	r3, [r7, #28]
+ 8001098:	f44f 7340 	mov.w	r3, #768	; 0x300
+ 800109c:	61fb      	str	r3, [r7, #28]
   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
- 8000fe6:	2302      	movs	r3, #2
- 8000fe8:	623b      	str	r3, [r7, #32]
+ 800109e:	2302      	movs	r3, #2
+ 80010a0:	623b      	str	r3, [r7, #32]
   GPIO_InitStruct.Pull = GPIO_NOPULL;
- 8000fea:	2300      	movs	r3, #0
- 8000fec:	627b      	str	r3, [r7, #36]	; 0x24
+ 80010a2:	2300      	movs	r3, #0
+ 80010a4:	627b      	str	r3, [r7, #36]	; 0x24
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- 8000fee:	2300      	movs	r3, #0
- 8000ff0:	62bb      	str	r3, [r7, #40]	; 0x28
+ 80010a6:	2300      	movs	r3, #0
+ 80010a8:	62bb      	str	r3, [r7, #40]	; 0x28
   GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
- 8000ff2:	2307      	movs	r3, #7
- 8000ff4:	62fb      	str	r3, [r7, #44]	; 0x2c
+ 80010aa:	2307      	movs	r3, #7
+ 80010ac:	62fb      	str	r3, [r7, #44]	; 0x2c
   HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
- 8000ff6:	f107 031c 	add.w	r3, r7, #28
- 8000ffa:	4619      	mov	r1, r3
- 8000ffc:	4829      	ldr	r0, [pc, #164]	; (80010a4 <MX_GPIO_Init+0x29c>)
- 8000ffe:	f000 fc0f 	bl	8001820 <HAL_GPIO_Init>
+ 80010ae:	f107 031c 	add.w	r3, r7, #28
+ 80010b2:	4619      	mov	r1, r3
+ 80010b4:	4829      	ldr	r0, [pc, #164]	; (800115c <MX_GPIO_Init+0x29c>)
+ 80010b6:	f000 fc0f 	bl	80018d8 <HAL_GPIO_Init>
 
   /*Configure GPIO pin : USB_FS_PWR_EN_Pin */
   GPIO_InitStruct.Pin = USB_FS_PWR_EN_Pin;
- 8001002:	f44f 6380 	mov.w	r3, #1024	; 0x400
- 8001006:	61fb      	str	r3, [r7, #28]
+ 80010ba:	f44f 6380 	mov.w	r3, #1024	; 0x400
+ 80010be:	61fb      	str	r3, [r7, #28]
   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- 8001008:	2301      	movs	r3, #1
- 800100a:	623b      	str	r3, [r7, #32]
+ 80010c0:	2301      	movs	r3, #1
+ 80010c2:	623b      	str	r3, [r7, #32]
   GPIO_InitStruct.Pull = GPIO_NOPULL;
- 800100c:	2300      	movs	r3, #0
- 800100e:	627b      	str	r3, [r7, #36]	; 0x24
+ 80010c4:	2300      	movs	r3, #0
+ 80010c6:	627b      	str	r3, [r7, #36]	; 0x24
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- 8001010:	2300      	movs	r3, #0
- 8001012:	62bb      	str	r3, [r7, #40]	; 0x28
+ 80010c8:	2300      	movs	r3, #0
+ 80010ca:	62bb      	str	r3, [r7, #40]	; 0x28
   HAL_GPIO_Init(USB_FS_PWR_EN_GPIO_Port, &GPIO_InitStruct);
- 8001014:	f107 031c 	add.w	r3, r7, #28
- 8001018:	4619      	mov	r1, r3
- 800101a:	4822      	ldr	r0, [pc, #136]	; (80010a4 <MX_GPIO_Init+0x29c>)
- 800101c:	f000 fc00 	bl	8001820 <HAL_GPIO_Init>
+ 80010cc:	f107 031c 	add.w	r3, r7, #28
+ 80010d0:	4619      	mov	r1, r3
+ 80010d2:	4822      	ldr	r0, [pc, #136]	; (800115c <MX_GPIO_Init+0x29c>)
+ 80010d4:	f000 fc00 	bl	80018d8 <HAL_GPIO_Init>
 
   /*Configure GPIO pin : USB_FS_OVCR_Pin */
   GPIO_InitStruct.Pin = USB_FS_OVCR_Pin;
- 8001020:	2380      	movs	r3, #128	; 0x80
- 8001022:	61fb      	str	r3, [r7, #28]
+ 80010d8:	2380      	movs	r3, #128	; 0x80
+ 80010da:	61fb      	str	r3, [r7, #28]
   GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
- 8001024:	f44f 1388 	mov.w	r3, #1114112	; 0x110000
- 8001028:	623b      	str	r3, [r7, #32]
+ 80010dc:	f44f 1388 	mov.w	r3, #1114112	; 0x110000
+ 80010e0:	623b      	str	r3, [r7, #32]
   GPIO_InitStruct.Pull = GPIO_NOPULL;
- 800102a:	2300      	movs	r3, #0
- 800102c:	627b      	str	r3, [r7, #36]	; 0x24
+ 80010e2:	2300      	movs	r3, #0
+ 80010e4:	627b      	str	r3, [r7, #36]	; 0x24
   HAL_GPIO_Init(USB_FS_OVCR_GPIO_Port, &GPIO_InitStruct);
- 800102e:	f107 031c 	add.w	r3, r7, #28
- 8001032:	4619      	mov	r1, r3
- 8001034:	481f      	ldr	r0, [pc, #124]	; (80010b4 <MX_GPIO_Init+0x2ac>)
- 8001036:	f000 fbf3 	bl	8001820 <HAL_GPIO_Init>
+ 80010e6:	f107 031c 	add.w	r3, r7, #28
+ 80010ea:	4619      	mov	r1, r3
+ 80010ec:	481f      	ldr	r0, [pc, #124]	; (800116c <MX_GPIO_Init+0x2ac>)
+ 80010ee:	f000 fbf3 	bl	80018d8 <HAL_GPIO_Init>
 
   /*Configure GPIO pin : CC1200_CS_Pin */
   GPIO_InitStruct.Pin = CC1200_CS_Pin;
- 800103a:	2340      	movs	r3, #64	; 0x40
- 800103c:	61fb      	str	r3, [r7, #28]
+ 80010f2:	2340      	movs	r3, #64	; 0x40
+ 80010f4:	61fb      	str	r3, [r7, #28]
   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- 800103e:	2301      	movs	r3, #1
- 8001040:	623b      	str	r3, [r7, #32]
+ 80010f6:	2301      	movs	r3, #1
+ 80010f8:	623b      	str	r3, [r7, #32]
   GPIO_InitStruct.Pull = GPIO_NOPULL;
- 8001042:	2300      	movs	r3, #0
- 8001044:	627b      	str	r3, [r7, #36]	; 0x24
+ 80010fa:	2300      	movs	r3, #0
+ 80010fc:	627b      	str	r3, [r7, #36]	; 0x24
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
- 8001046:	2303      	movs	r3, #3
- 8001048:	62bb      	str	r3, [r7, #40]	; 0x28
+ 80010fe:	2303      	movs	r3, #3
+ 8001100:	62bb      	str	r3, [r7, #40]	; 0x28
   HAL_GPIO_Init(CC1200_CS_GPIO_Port, &GPIO_InitStruct);
- 800104a:	f107 031c 	add.w	r3, r7, #28
- 800104e:	4619      	mov	r1, r3
- 8001050:	4815      	ldr	r0, [pc, #84]	; (80010a8 <MX_GPIO_Init+0x2a0>)
- 8001052:	f000 fbe5 	bl	8001820 <HAL_GPIO_Init>
+ 8001102:	f107 031c 	add.w	r3, r7, #28
+ 8001106:	4619      	mov	r1, r3
+ 8001108:	4815      	ldr	r0, [pc, #84]	; (8001160 <MX_GPIO_Init+0x2a0>)
+ 800110a:	f000 fbe5 	bl	80018d8 <HAL_GPIO_Init>
 
   /*Configure GPIO pins : PG11 PG13 */
   GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_13;
- 8001056:	f44f 5320 	mov.w	r3, #10240	; 0x2800
- 800105a:	61fb      	str	r3, [r7, #28]
+ 800110e:	f44f 5320 	mov.w	r3, #10240	; 0x2800
+ 8001112:	61fb      	str	r3, [r7, #28]
   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
- 800105c:	2302      	movs	r3, #2
- 800105e:	623b      	str	r3, [r7, #32]
+ 8001114:	2302      	movs	r3, #2
+ 8001116:	623b      	str	r3, [r7, #32]
   GPIO_InitStruct.Pull = GPIO_NOPULL;
- 8001060:	2300      	movs	r3, #0
- 8001062:	627b      	str	r3, [r7, #36]	; 0x24
+ 8001118:	2300      	movs	r3, #0
+ 800111a:	627b      	str	r3, [r7, #36]	; 0x24
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
- 8001064:	2303      	movs	r3, #3
- 8001066:	62bb      	str	r3, [r7, #40]	; 0x28
+ 800111c:	2303      	movs	r3, #3
+ 800111e:	62bb      	str	r3, [r7, #40]	; 0x28
   GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
- 8001068:	230b      	movs	r3, #11
- 800106a:	62fb      	str	r3, [r7, #44]	; 0x2c
+ 8001120:	230b      	movs	r3, #11
+ 8001122:	62fb      	str	r3, [r7, #44]	; 0x2c
   HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
- 800106c:	f107 031c 	add.w	r3, r7, #28
- 8001070:	4619      	mov	r1, r3
- 8001072:	4810      	ldr	r0, [pc, #64]	; (80010b4 <MX_GPIO_Init+0x2ac>)
- 8001074:	f000 fbd4 	bl	8001820 <HAL_GPIO_Init>
+ 8001124:	f107 031c 	add.w	r3, r7, #28
+ 8001128:	4619      	mov	r1, r3
+ 800112a:	4810      	ldr	r0, [pc, #64]	; (800116c <MX_GPIO_Init+0x2ac>)
+ 800112c:	f000 fbd4 	bl	80018d8 <HAL_GPIO_Init>
 
   /*Configure GPIO pin : LED_YELLOW_Pin */
   GPIO_InitStruct.Pin = LED_YELLOW_Pin;
- 8001078:	2302      	movs	r3, #2
- 800107a:	61fb      	str	r3, [r7, #28]
+ 8001130:	2302      	movs	r3, #2
+ 8001132:	61fb      	str	r3, [r7, #28]
   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- 800107c:	2301      	movs	r3, #1
- 800107e:	623b      	str	r3, [r7, #32]
+ 8001134:	2301      	movs	r3, #1
+ 8001136:	623b      	str	r3, [r7, #32]
   GPIO_InitStruct.Pull = GPIO_NOPULL;
- 8001080:	2300      	movs	r3, #0
- 8001082:	627b      	str	r3, [r7, #36]	; 0x24
+ 8001138:	2300      	movs	r3, #0
+ 800113a:	627b      	str	r3, [r7, #36]	; 0x24
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- 8001084:	2300      	movs	r3, #0
- 8001086:	62bb      	str	r3, [r7, #40]	; 0x28
+ 800113c:	2300      	movs	r3, #0
+ 800113e:	62bb      	str	r3, [r7, #40]	; 0x28
   HAL_GPIO_Init(LED_YELLOW_GPIO_Port, &GPIO_InitStruct);
- 8001088:	f107 031c 	add.w	r3, r7, #28
- 800108c:	4619      	mov	r1, r3
- 800108e:	4807      	ldr	r0, [pc, #28]	; (80010ac <MX_GPIO_Init+0x2a4>)
- 8001090:	f000 fbc6 	bl	8001820 <HAL_GPIO_Init>
-
-}
- 8001094:	bf00      	nop
- 8001096:	3730      	adds	r7, #48	; 0x30
- 8001098:	46bd      	mov	sp, r7
- 800109a:	bd80      	pop	{r7, pc}
- 800109c:	58024400 	.word	0x58024400
- 80010a0:	58020400 	.word	0x58020400
- 80010a4:	58020c00 	.word	0x58020c00
- 80010a8:	58020800 	.word	0x58020800
- 80010ac:	58021000 	.word	0x58021000
- 80010b0:	58020000 	.word	0x58020000
- 80010b4:	58021800 	.word	0x58021800
-
-080010b8 <Error_Handler>:
+ 8001140:	f107 031c 	add.w	r3, r7, #28
+ 8001144:	4619      	mov	r1, r3
+ 8001146:	4807      	ldr	r0, [pc, #28]	; (8001164 <MX_GPIO_Init+0x2a4>)
+ 8001148:	f000 fbc6 	bl	80018d8 <HAL_GPIO_Init>
+
+}
+ 800114c:	bf00      	nop
+ 800114e:	3730      	adds	r7, #48	; 0x30
+ 8001150:	46bd      	mov	sp, r7
+ 8001152:	bd80      	pop	{r7, pc}
+ 8001154:	58024400 	.word	0x58024400
+ 8001158:	58020400 	.word	0x58020400
+ 800115c:	58020c00 	.word	0x58020c00
+ 8001160:	58020800 	.word	0x58020800
+ 8001164:	58021000 	.word	0x58021000
+ 8001168:	58020000 	.word	0x58020000
+ 800116c:	58021800 	.word	0x58021800
+
+08001170 <Error_Handler>:
 /**
   * @brief  This function is executed in case of error occurrence.
   * @retval None
   */
 void Error_Handler(void)
 {
- 80010b8:	b480      	push	{r7}
- 80010ba:	af00      	add	r7, sp, #0
+ 8001170:	b480      	push	{r7}
+ 8001172:	af00      	add	r7, sp, #0
   __ASM volatile ("cpsid i" : : : "memory");
- 80010bc:	b672      	cpsid	i
+ 8001174:	b672      	cpsid	i
 }
- 80010be:	bf00      	nop
+ 8001176:	bf00      	nop
   /* USER CODE BEGIN Error_Handler_Debug */
   /* User can add his own implementation to report the HAL error return state */
   __disable_irq();
   while (1)
- 80010c0:	e7fe      	b.n	80010c0 <Error_Handler+0x8>
+ 8001178:	e7fe      	b.n	8001178 <Error_Handler+0x8>
 	...
 
-080010c4 <HAL_MspInit>:
+0800117c <HAL_MspInit>:
 /* USER CODE END 0 */
 /**
   * Initializes the Global MSP.
   */
 void HAL_MspInit(void)
 {
- 80010c4:	b480      	push	{r7}
- 80010c6:	b083      	sub	sp, #12
- 80010c8:	af00      	add	r7, sp, #0
+ 800117c:	b480      	push	{r7}
+ 800117e:	b083      	sub	sp, #12
+ 8001180:	af00      	add	r7, sp, #0
   /* USER CODE BEGIN MspInit 0 */
 
   /* USER CODE END MspInit 0 */
 
   __HAL_RCC_SYSCFG_CLK_ENABLE();
- 80010ca:	4b0a      	ldr	r3, [pc, #40]	; (80010f4 <HAL_MspInit+0x30>)
- 80010cc:	f8d3 30f4 	ldr.w	r3, [r3, #244]	; 0xf4
- 80010d0:	4a08      	ldr	r2, [pc, #32]	; (80010f4 <HAL_MspInit+0x30>)
- 80010d2:	f043 0302 	orr.w	r3, r3, #2
- 80010d6:	f8c2 30f4 	str.w	r3, [r2, #244]	; 0xf4
- 80010da:	4b06      	ldr	r3, [pc, #24]	; (80010f4 <HAL_MspInit+0x30>)
- 80010dc:	f8d3 30f4 	ldr.w	r3, [r3, #244]	; 0xf4
- 80010e0:	f003 0302 	and.w	r3, r3, #2
- 80010e4:	607b      	str	r3, [r7, #4]
- 80010e6:	687b      	ldr	r3, [r7, #4]
+ 8001182:	4b0a      	ldr	r3, [pc, #40]	; (80011ac <HAL_MspInit+0x30>)
+ 8001184:	f8d3 30f4 	ldr.w	r3, [r3, #244]	; 0xf4
+ 8001188:	4a08      	ldr	r2, [pc, #32]	; (80011ac <HAL_MspInit+0x30>)
+ 800118a:	f043 0302 	orr.w	r3, r3, #2
+ 800118e:	f8c2 30f4 	str.w	r3, [r2, #244]	; 0xf4
+ 8001192:	4b06      	ldr	r3, [pc, #24]	; (80011ac <HAL_MspInit+0x30>)
+ 8001194:	f8d3 30f4 	ldr.w	r3, [r3, #244]	; 0xf4
+ 8001198:	f003 0302 	and.w	r3, r3, #2
+ 800119c:	607b      	str	r3, [r7, #4]
+ 800119e:	687b      	ldr	r3, [r7, #4]
   /* System interrupt init*/
 
   /* USER CODE BEGIN MspInit 1 */
 
   /* USER CODE END MspInit 1 */
 }
- 80010e8:	bf00      	nop
- 80010ea:	370c      	adds	r7, #12
- 80010ec:	46bd      	mov	sp, r7
- 80010ee:	f85d 7b04 	ldr.w	r7, [sp], #4
- 80010f2:	4770      	bx	lr
- 80010f4:	58024400 	.word	0x58024400
+ 80011a0:	bf00      	nop
+ 80011a2:	370c      	adds	r7, #12
+ 80011a4:	46bd      	mov	sp, r7
+ 80011a6:	f85d 7b04 	ldr.w	r7, [sp], #4
+ 80011aa:	4770      	bx	lr
+ 80011ac:	58024400 	.word	0x58024400
 
-080010f8 <HAL_TIM_Base_MspInit>:
+080011b0 <HAL_TIM_Base_MspInit>:
 * This function configures the hardware resources used in this example
 * @param htim_base: TIM_Base handle pointer
 * @retval None
 */
 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
 {
- 80010f8:	b580      	push	{r7, lr}
- 80010fa:	b084      	sub	sp, #16
- 80010fc:	af00      	add	r7, sp, #0
- 80010fe:	6078      	str	r0, [r7, #4]
+ 80011b0:	b580      	push	{r7, lr}
+ 80011b2:	b084      	sub	sp, #16
+ 80011b4:	af00      	add	r7, sp, #0
+ 80011b6:	6078      	str	r0, [r7, #4]
   if(htim_base->Instance==TIM3)
- 8001100:	687b      	ldr	r3, [r7, #4]
- 8001102:	681b      	ldr	r3, [r3, #0]
- 8001104:	4a0e      	ldr	r2, [pc, #56]	; (8001140 <HAL_TIM_Base_MspInit+0x48>)
- 8001106:	4293      	cmp	r3, r2
- 8001108:	d116      	bne.n	8001138 <HAL_TIM_Base_MspInit+0x40>
+ 80011b8:	687b      	ldr	r3, [r7, #4]
+ 80011ba:	681b      	ldr	r3, [r3, #0]
+ 80011bc:	4a0e      	ldr	r2, [pc, #56]	; (80011f8 <HAL_TIM_Base_MspInit+0x48>)
+ 80011be:	4293      	cmp	r3, r2
+ 80011c0:	d116      	bne.n	80011f0 <HAL_TIM_Base_MspInit+0x40>
   {
   /* USER CODE BEGIN TIM3_MspInit 0 */
 
   /* USER CODE END TIM3_MspInit 0 */
     /* Peripheral clock enable */
     __HAL_RCC_TIM3_CLK_ENABLE();
- 800110a:	4b0e      	ldr	r3, [pc, #56]	; (8001144 <HAL_TIM_Base_MspInit+0x4c>)
- 800110c:	f8d3 30e8 	ldr.w	r3, [r3, #232]	; 0xe8
- 8001110:	4a0c      	ldr	r2, [pc, #48]	; (8001144 <HAL_TIM_Base_MspInit+0x4c>)
- 8001112:	f043 0302 	orr.w	r3, r3, #2
- 8001116:	f8c2 30e8 	str.w	r3, [r2, #232]	; 0xe8
- 800111a:	4b0a      	ldr	r3, [pc, #40]	; (8001144 <HAL_TIM_Base_MspInit+0x4c>)
- 800111c:	f8d3 30e8 	ldr.w	r3, [r3, #232]	; 0xe8
- 8001120:	f003 0302 	and.w	r3, r3, #2
- 8001124:	60fb      	str	r3, [r7, #12]
- 8001126:	68fb      	ldr	r3, [r7, #12]
+ 80011c2:	4b0e      	ldr	r3, [pc, #56]	; (80011fc <HAL_TIM_Base_MspInit+0x4c>)
+ 80011c4:	f8d3 30e8 	ldr.w	r3, [r3, #232]	; 0xe8
+ 80011c8:	4a0c      	ldr	r2, [pc, #48]	; (80011fc <HAL_TIM_Base_MspInit+0x4c>)
+ 80011ca:	f043 0302 	orr.w	r3, r3, #2
+ 80011ce:	f8c2 30e8 	str.w	r3, [r2, #232]	; 0xe8
+ 80011d2:	4b0a      	ldr	r3, [pc, #40]	; (80011fc <HAL_TIM_Base_MspInit+0x4c>)
+ 80011d4:	f8d3 30e8 	ldr.w	r3, [r3, #232]	; 0xe8
+ 80011d8:	f003 0302 	and.w	r3, r3, #2
+ 80011dc:	60fb      	str	r3, [r7, #12]
+ 80011de:	68fb      	ldr	r3, [r7, #12]
     /* TIM3 interrupt Init */
     HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0);
- 8001128:	2200      	movs	r2, #0
- 800112a:	2100      	movs	r1, #0
- 800112c:	201d      	movs	r0, #29
- 800112e:	f000 fb42 	bl	80017b6 <HAL_NVIC_SetPriority>
+ 80011e0:	2200      	movs	r2, #0
+ 80011e2:	2100      	movs	r1, #0
+ 80011e4:	201d      	movs	r0, #29
+ 80011e6:	f000 fb42 	bl	800186e <HAL_NVIC_SetPriority>
     HAL_NVIC_EnableIRQ(TIM3_IRQn);
- 8001132:	201d      	movs	r0, #29
- 8001134:	f000 fb59 	bl	80017ea <HAL_NVIC_EnableIRQ>
+ 80011ea:	201d      	movs	r0, #29
+ 80011ec:	f000 fb59 	bl	80018a2 <HAL_NVIC_EnableIRQ>
   /* USER CODE BEGIN TIM3_MspInit 1 */
 
   /* USER CODE END TIM3_MspInit 1 */
   }
 
 }
- 8001138:	bf00      	nop
- 800113a:	3710      	adds	r7, #16
- 800113c:	46bd      	mov	sp, r7
- 800113e:	bd80      	pop	{r7, pc}
- 8001140:	40000400 	.word	0x40000400
- 8001144:	58024400 	.word	0x58024400
+ 80011f0:	bf00      	nop
+ 80011f2:	3710      	adds	r7, #16
+ 80011f4:	46bd      	mov	sp, r7
+ 80011f6:	bd80      	pop	{r7, pc}
+ 80011f8:	40000400 	.word	0x40000400
+ 80011fc:	58024400 	.word	0x58024400
 
-08001148 <NMI_Handler>:
+08001200 <NMI_Handler>:
 /******************************************************************************/
 /**
   * @brief This function handles Non maskable interrupt.
   */
 void NMI_Handler(void)
 {
- 8001148:	b480      	push	{r7}
- 800114a:	af00      	add	r7, sp, #0
+ 8001200:	b480      	push	{r7}
+ 8001202:	af00      	add	r7, sp, #0
   /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
 
   /* USER CODE END NonMaskableInt_IRQn 0 */
   /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
   while (1)
- 800114c:	e7fe      	b.n	800114c <NMI_Handler+0x4>
+ 8001204:	e7fe      	b.n	8001204 <NMI_Handler+0x4>
 
-0800114e <HardFault_Handler>:
+08001206 <HardFault_Handler>:
 
 /**
   * @brief This function handles Hard fault interrupt.
   */
 void HardFault_Handler(void)
 {
- 800114e:	b480      	push	{r7}
- 8001150:	af00      	add	r7, sp, #0
+ 8001206:	b480      	push	{r7}
+ 8001208:	af00      	add	r7, sp, #0
   /* USER CODE BEGIN HardFault_IRQn 0 */
 
   /* USER CODE END HardFault_IRQn 0 */
   while (1)
- 8001152:	e7fe      	b.n	8001152 <HardFault_Handler+0x4>
+ 800120a:	e7fe      	b.n	800120a <HardFault_Handler+0x4>
 
-08001154 <MemManage_Handler>:
+0800120c <MemManage_Handler>:
 
 /**
   * @brief This function handles Memory management fault.
   */
 void MemManage_Handler(void)
 {
- 8001154:	b480      	push	{r7}
- 8001156:	af00      	add	r7, sp, #0
+ 800120c:	b480      	push	{r7}
+ 800120e:	af00      	add	r7, sp, #0
   /* USER CODE BEGIN MemoryManagement_IRQn 0 */
 
   /* USER CODE END MemoryManagement_IRQn 0 */
   while (1)
- 8001158:	e7fe      	b.n	8001158 <MemManage_Handler+0x4>
+ 8001210:	e7fe      	b.n	8001210 <MemManage_Handler+0x4>
 
-0800115a <BusFault_Handler>:
+08001212 <BusFault_Handler>:
 
 /**
   * @brief This function handles Pre-fetch fault, memory access fault.
   */
 void BusFault_Handler(void)
 {
- 800115a:	b480      	push	{r7}
- 800115c:	af00      	add	r7, sp, #0
+ 8001212:	b480      	push	{r7}
+ 8001214:	af00      	add	r7, sp, #0
   /* USER CODE BEGIN BusFault_IRQn 0 */
 
   /* USER CODE END BusFault_IRQn 0 */
   while (1)
- 800115e:	e7fe      	b.n	800115e <BusFault_Handler+0x4>
+ 8001216:	e7fe      	b.n	8001216 <BusFault_Handler+0x4>
 
-08001160 <UsageFault_Handler>:
+08001218 <UsageFault_Handler>:
 
 /**
   * @brief This function handles Undefined instruction or illegal state.
   */
 void UsageFault_Handler(void)
 {
- 8001160:	b480      	push	{r7}
- 8001162:	af00      	add	r7, sp, #0
+ 8001218:	b480      	push	{r7}
+ 800121a:	af00      	add	r7, sp, #0
   /* USER CODE BEGIN UsageFault_IRQn 0 */
 
   /* USER CODE END UsageFault_IRQn 0 */
   while (1)
- 8001164:	e7fe      	b.n	8001164 <UsageFault_Handler+0x4>
+ 800121c:	e7fe      	b.n	800121c <UsageFault_Handler+0x4>
 
-08001166 <SVC_Handler>:
+0800121e <SVC_Handler>:
 
 /**
   * @brief This function handles System service call via SWI instruction.
   */
 void SVC_Handler(void)
 {
- 8001166:	b480      	push	{r7}
- 8001168:	af00      	add	r7, sp, #0
+ 800121e:	b480      	push	{r7}
+ 8001220:	af00      	add	r7, sp, #0
 
   /* USER CODE END SVCall_IRQn 0 */
   /* USER CODE BEGIN SVCall_IRQn 1 */
 
   /* USER CODE END SVCall_IRQn 1 */
 }
- 800116a:	bf00      	nop
- 800116c:	46bd      	mov	sp, r7
- 800116e:	f85d 7b04 	ldr.w	r7, [sp], #4
- 8001172:	4770      	bx	lr
+ 8001222:	bf00      	nop
+ 8001224:	46bd      	mov	sp, r7
+ 8001226:	f85d 7b04 	ldr.w	r7, [sp], #4
+ 800122a:	4770      	bx	lr
 
-08001174 <DebugMon_Handler>:
+0800122c <DebugMon_Handler>:
 
 /**
   * @brief This function handles Debug monitor.
   */
 void DebugMon_Handler(void)
 {
- 8001174:	b480      	push	{r7}
- 8001176:	af00      	add	r7, sp, #0
+ 800122c:	b480      	push	{r7}
+ 800122e:	af00      	add	r7, sp, #0
 
   /* USER CODE END DebugMonitor_IRQn 0 */
   /* USER CODE BEGIN DebugMonitor_IRQn 1 */
 
   /* USER CODE END DebugMonitor_IRQn 1 */
 }
- 8001178:	bf00      	nop
- 800117a:	46bd      	mov	sp, r7
- 800117c:	f85d 7b04 	ldr.w	r7, [sp], #4
- 8001180:	4770      	bx	lr
+ 8001230:	bf00      	nop
+ 8001232:	46bd      	mov	sp, r7
+ 8001234:	f85d 7b04 	ldr.w	r7, [sp], #4
+ 8001238:	4770      	bx	lr
 
-08001182 <PendSV_Handler>:
+0800123a <PendSV_Handler>:
 
 /**
   * @brief This function handles Pendable request for system service.
   */
 void PendSV_Handler(void)
 {
- 8001182:	b480      	push	{r7}
- 8001184:	af00      	add	r7, sp, #0
+ 800123a:	b480      	push	{r7}
+ 800123c:	af00      	add	r7, sp, #0
 
   /* USER CODE END PendSV_IRQn 0 */
   /* USER CODE BEGIN PendSV_IRQn 1 */
 
   /* USER CODE END PendSV_IRQn 1 */
 }
- 8001186:	bf00      	nop
- 8001188:	46bd      	mov	sp, r7
- 800118a:	f85d 7b04 	ldr.w	r7, [sp], #4
- 800118e:	4770      	bx	lr
+ 800123e:	bf00      	nop
+ 8001240:	46bd      	mov	sp, r7
+ 8001242:	f85d 7b04 	ldr.w	r7, [sp], #4
+ 8001246:	4770      	bx	lr
 
-08001190 <SysTick_Handler>:
+08001248 <SysTick_Handler>:
 
 /**
   * @brief This function handles System tick timer.
   */
 void SysTick_Handler(void)
 {
- 8001190:	b580      	push	{r7, lr}
- 8001192:	af00      	add	r7, sp, #0
+ 8001248:	b580      	push	{r7, lr}
+ 800124a:	af00      	add	r7, sp, #0
   /* USER CODE BEGIN SysTick_IRQn 0 */
 
   /* USER CODE END SysTick_IRQn 0 */
   HAL_IncTick();
- 8001194:	f000 f9f0 	bl	8001578 <HAL_IncTick>
+ 800124c:	f000 f9f0 	bl	8001630 <HAL_IncTick>
   /* USER CODE BEGIN SysTick_IRQn 1 */
 
   /* USER CODE END SysTick_IRQn 1 */
 }
- 8001198:	bf00      	nop
- 800119a:	bd80      	pop	{r7, pc}
+ 8001250:	bf00      	nop
+ 8001252:	bd80      	pop	{r7, pc}
 
-0800119c <TIM3_IRQHandler>:
+08001254 <TIM3_IRQHandler>:
 
 /**
   * @brief This function handles TIM3 global interrupt.
   */
 void TIM3_IRQHandler(void)
 {
- 800119c:	b580      	push	{r7, lr}
- 800119e:	af00      	add	r7, sp, #0
+ 8001254:	b580      	push	{r7, lr}
+ 8001256:	af00      	add	r7, sp, #0
   /* USER CODE BEGIN TIM3_IRQn 0 */
 
   /* USER CODE END TIM3_IRQn 0 */
   HAL_TIM_IRQHandler(&htim3);
- 80011a0:	4802      	ldr	r0, [pc, #8]	; (80011ac <TIM3_IRQHandler+0x10>)
- 80011a2:	f003 ff79 	bl	8005098 <HAL_TIM_IRQHandler>
+ 8001258:	4802      	ldr	r0, [pc, #8]	; (8001264 <TIM3_IRQHandler+0x10>)
+ 800125a:	f003 ff79 	bl	8005150 <HAL_TIM_IRQHandler>
   /* USER CODE BEGIN TIM3_IRQn 1 */
 
   /* USER CODE END TIM3_IRQn 1 */
 }
- 80011a6:	bf00      	nop
- 80011a8:	bd80      	pop	{r7, pc}
- 80011aa:	bf00      	nop
- 80011ac:	2400043c 	.word	0x2400043c
+ 800125e:	bf00      	nop
+ 8001260:	bd80      	pop	{r7, pc}
+ 8001262:	bf00      	nop
+ 8001264:	240013e0 	.word	0x240013e0
 
-080011b0 <OTG_HS_IRQHandler>:
+08001268 <OTG_HS_IRQHandler>:
 
 /**
   * @brief This function handles USB On The Go HS global interrupt.
   */
 void OTG_HS_IRQHandler(void)
 {
- 80011b0:	b580      	push	{r7, lr}
- 80011b2:	af00      	add	r7, sp, #0
+ 8001268:	b580      	push	{r7, lr}
+ 800126a:	af00      	add	r7, sp, #0
   /* USER CODE BEGIN OTG_HS_IRQn 0 */
 
   /* USER CODE END OTG_HS_IRQn 0 */
   HAL_PCD_IRQHandler(&hpcd_USB_OTG_HS);
- 80011b4:	4802      	ldr	r0, [pc, #8]	; (80011c0 <OTG_HS_IRQHandler+0x10>)
- 80011b6:	f000 fe65 	bl	8001e84 <HAL_PCD_IRQHandler>
+ 800126c:	4802      	ldr	r0, [pc, #8]	; (8001278 <OTG_HS_IRQHandler+0x10>)
+ 800126e:	f000 fe65 	bl	8001f3c <HAL_PCD_IRQHandler>
   /* USER CODE BEGIN OTG_HS_IRQn 1 */
 
   /* USER CODE END OTG_HS_IRQn 1 */
 }
- 80011ba:	bf00      	nop
- 80011bc:	bd80      	pop	{r7, pc}
- 80011be:	bf00      	nop
- 80011c0:	2400195c 	.word	0x2400195c
+ 8001272:	bf00      	nop
+ 8001274:	bd80      	pop	{r7, pc}
+ 8001276:	bf00      	nop
+ 8001278:	24002900 	.word	0x24002900