Made two minimal, surgical fixes to stabilize ON/OFF splitting.

What I changed

  - Core/Inc/main.h:76
      - Set ADC_BUFF_SIZE from 50 to 64 so each half is even (32). This keeps the “i &
        1” parity consistent across half-buffer boundaries.
  - Core/Src/stm32f4xx_it.c:388
      - Fixed N after splitting the first half: ADC_proc.N = (ADC_BUFF_SIZE/2 -
        Sweep_state.curr_step_start_DMA_N)/2;
      - Previously it used (Sweep_state.curr_step_start_DMA_N)/2, which was wrong for
        that segment.

  Why this helps

  - With ADC_BUFF_SIZE=50, half-size is 25 (odd). That flips ON/OFF labeling each half
    because i & 1 parity shifts by 25, mixing levels and driving avg_ON and avg_OFF
    together.
  - The N bug skewed normalization, further flattening differences between averages.

  How to verify

  - Build and flash: make && make flash.
  - Observe avg_ON/avg_OFF over CDC. They should now differ consistently; inverting
    meандр should swap them cleanly.
  - If still needed, I can add a global sample counter (sample_seq) for fully robust
    ON/OFF classification without relying on buffer indices.
This commit is contained in:
2025-12-19 23:41:15 +03:00
parent 186ad1939a
commit 985dbcc87b
18 changed files with 2868 additions and 2866 deletions

View File

@ -1,4 +1,4 @@
ARM GAS /tmp/ccdSoXH4.s page 1
ARM GAS /tmp/ccKxBoqJ.s page 1
1 .cpu cortex-m4
@ -58,7 +58,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
29:Core/Src/main.c **** /* USER CODE BEGIN PTD */
30:Core/Src/main.c ****
31:Core/Src/main.c **** /* USER CODE END PTD */
ARM GAS /tmp/ccdSoXH4.s page 2
ARM GAS /tmp/ccKxBoqJ.s page 2
32:Core/Src/main.c ****
@ -118,7 +118,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
86:Core/Src/main.c **** /**
87:Core/Src/main.c **** * @brief The application entry point.
88:Core/Src/main.c **** * @retval int
ARM GAS /tmp/ccdSoXH4.s page 3
ARM GAS /tmp/ccKxBoqJ.s page 3
89:Core/Src/main.c **** */
@ -178,7 +178,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
143:Core/Src/main.c **** while (1)
144:Core/Src/main.c **** {
145:Core/Src/main.c **** //HAL_GPIO_TogglePin(LED_RED_GPIO_Port, LED_RED_Pin);
ARM GAS /tmp/ccdSoXH4.s page 4
ARM GAS /tmp/ccKxBoqJ.s page 4
146:Core/Src/main.c **** //HAL_Delay(100);
@ -238,7 +238,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
200:Core/Src/main.c **** HAL_GPIO_TogglePin(LED_RED_GPIO_Port, LED_RED_Pin);
201:Core/Src/main.c **** //CDC_Transmit_FS((uint8_t *)ADC_msg, ADC_msg_len_Sweep_start);
202:Core/Src/main.c **** while (CDC_Transmit_FS((uint8_t *)ADC_msg, ADC_msg_len_Sweep_start) == USBD_BUSY){
ARM GAS /tmp/ccdSoXH4.s page 5
ARM GAS /tmp/ccKxBoqJ.s page 5
203:Core/Src/main.c **** //HAL_Delay(1);
@ -298,7 +298,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
257:Core/Src/main.c **** RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
258:Core/Src/main.c **** RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
259:Core/Src/main.c ****
ARM GAS /tmp/ccdSoXH4.s page 6
ARM GAS /tmp/ccKxBoqJ.s page 6
260:Core/Src/main.c **** if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)
@ -358,7 +358,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
314:Core/Src/main.c **** /* USER CODE END ADC1_Init 2 */
315:Core/Src/main.c ****
316:Core/Src/main.c **** }
ARM GAS /tmp/ccdSoXH4.s page 7
ARM GAS /tmp/ccKxBoqJ.s page 7
317:Core/Src/main.c ****
@ -418,7 +418,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
347:Core/Src/main.c **** __HAL_RCC_GPIOH_CLK_ENABLE();
52 .loc 1 347 3 is_stmt 1 view .LVU3
53 .LBB4:
ARM GAS /tmp/ccdSoXH4.s page 8
ARM GAS /tmp/ccKxBoqJ.s page 8
54 .loc 1 347 3 view .LVU4
@ -478,7 +478,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
105 .loc 1 350 3 view .LVU23
106 0052 1A6B ldr r2, [r3, #48]
107 0054 42F02002 orr r2, r2, #32
ARM GAS /tmp/ccdSoXH4.s page 9
ARM GAS /tmp/ccKxBoqJ.s page 9
108 0058 1A63 str r2, [r3, #48]
@ -538,7 +538,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
151 .loc 1 361 24 is_stmt 0 view .LVU38
152 0094 4FF44413 mov r3, #3211264
153 0098 0693 str r3, [sp, #24]
ARM GAS /tmp/ccdSoXH4.s page 10
ARM GAS /tmp/ccKxBoqJ.s page 10
362:Core/Src/main.c **** GPIO_InitStruct.Pull = GPIO_PULLDOWN;
@ -598,7 +598,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
194 .LVL4:
376:Core/Src/main.c ****
377:Core/Src/main.c **** /*Configure GPIO pins : LED_RED_Pin LED_BLUE_Pin */
ARM GAS /tmp/ccdSoXH4.s page 11
ARM GAS /tmp/ccKxBoqJ.s page 11
378:Core/Src/main.c **** GPIO_InitStruct.Pin = LED_RED_Pin|LED_BLUE_Pin;
@ -658,7 +658,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
394:Core/Src/main.c **** }
233 .loc 1 394 1 is_stmt 0 view .LVU69
234 0104 0AB0 add sp, sp, #40
ARM GAS /tmp/ccdSoXH4.s page 12
ARM GAS /tmp/ccKxBoqJ.s page 12
235 .LCFI2:
@ -718,7 +718,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
325:Core/Src/main.c ****
285 .loc 1 325 3 view .LVU76
329:Core/Src/main.c **** HAL_NVIC_EnableIRQ(DMA2_Stream0_IRQn);
ARM GAS /tmp/ccdSoXH4.s page 13
ARM GAS /tmp/ccKxBoqJ.s page 13
286 .loc 1 329 3 view .LVU77
@ -778,7 +778,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
326 .file 2 "Drivers/CMSIS/Include/cmsis_gcc.h"
1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//**
2:Drivers/CMSIS/Include/cmsis_gcc.h **** * @file cmsis_gcc.h
ARM GAS /tmp/ccdSoXH4.s page 14
ARM GAS /tmp/ccKxBoqJ.s page 14
3:Drivers/CMSIS/Include/cmsis_gcc.h **** * @brief CMSIS compiler GCC header file
@ -838,7 +838,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __WEAK
59:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WEAK __attribute__((weak))
ARM GAS /tmp/ccdSoXH4.s page 15
ARM GAS /tmp/ccKxBoqJ.s page 15
60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
@ -898,7 +898,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
114:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __RESTRICT __restrict
115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
116:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __COMPILER_BARRIER
ARM GAS /tmp/ccdSoXH4.s page 16
ARM GAS /tmp/ccKxBoqJ.s page 16
117:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __COMPILER_BARRIER() __ASM volatile("":::"memory")
@ -958,7 +958,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
171:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
172:Drivers/CMSIS/Include/cmsis_gcc.h ****
173:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STACK_LIMIT
ARM GAS /tmp/ccdSoXH4.s page 17
ARM GAS /tmp/ccKxBoqJ.s page 17
174:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STACK_LIMIT __StackLimit
@ -1018,7 +1018,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
228:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP() __ASM volatile ("nop")
229:Drivers/CMSIS/Include/cmsis_gcc.h ****
230:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
ARM GAS /tmp/ccdSoXH4.s page 18
ARM GAS /tmp/ccKxBoqJ.s page 18
231:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Interrupt
@ -1078,7 +1078,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
285:Drivers/CMSIS/Include/cmsis_gcc.h ****
286:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
287:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (32 bit)
ARM GAS /tmp/ccdSoXH4.s page 19
ARM GAS /tmp/ccKxBoqJ.s page 19
288:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x785
@ -1138,7 +1138,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
342:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op1 Value to rotate
343:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op2 Number of Bits to rotate
344:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Rotated value
ARM GAS /tmp/ccdSoXH4.s page 20
ARM GAS /tmp/ccKxBoqJ.s page 20
345:Drivers/CMSIS/Include/cmsis_gcc.h **** */
@ -1198,7 +1198,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
399:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Counts the number of leading zeros of a data value.
400:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to count the leading zeros
401:Drivers/CMSIS/Include/cmsis_gcc.h **** \return number of leading zeros in value
ARM GAS /tmp/ccdSoXH4.s page 21
ARM GAS /tmp/ccKxBoqJ.s page 21
402:Drivers/CMSIS/Include/cmsis_gcc.h **** */
@ -1258,7 +1258,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
456:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
457:Drivers/CMSIS/Include/cmsis_gcc.h ****
458:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
ARM GAS /tmp/ccdSoXH4.s page 22
ARM GAS /tmp/ccKxBoqJ.s page 22
459:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrexh %0, %1" : "=r" (result) : "Q" (*addr) );
@ -1318,7 +1318,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
513:Drivers/CMSIS/Include/cmsis_gcc.h ****
514:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("strexh %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) );
515:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
ARM GAS /tmp/ccdSoXH4.s page 23
ARM GAS /tmp/ccKxBoqJ.s page 23
516:Drivers/CMSIS/Include/cmsis_gcc.h **** }
@ -1378,7 +1378,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
570:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
571:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Unsigned Saturate
572:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Saturates an unsigned value.
ARM GAS /tmp/ccdSoXH4.s page 24
ARM GAS /tmp/ccKxBoqJ.s page 24
573:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ARG1 Value to be saturated
@ -1438,7 +1438,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
627:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to data
628:Drivers/CMSIS/Include/cmsis_gcc.h **** \return value of type uint16_t at (*ptr)
629:Drivers/CMSIS/Include/cmsis_gcc.h **** */
ARM GAS /tmp/ccdSoXH4.s page 25
ARM GAS /tmp/ccKxBoqJ.s page 25
630:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint16_t __LDRHT(volatile uint16_t *ptr)
@ -1498,7 +1498,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
684:Drivers/CMSIS/Include/cmsis_gcc.h ****
685:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
686:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief STRT Unprivileged (32 bit)
ARM GAS /tmp/ccdSoXH4.s page 26
ARM GAS /tmp/ccKxBoqJ.s page 26
687:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a Unprivileged STRT instruction for 32 bit values.
@ -1558,7 +1558,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
741:Drivers/CMSIS/Include/cmsis_gcc.h **** else if (val < 0)
742:Drivers/CMSIS/Include/cmsis_gcc.h **** {
743:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
ARM GAS /tmp/ccdSoXH4.s page 27
ARM GAS /tmp/ccKxBoqJ.s page 27
744:Drivers/CMSIS/Include/cmsis_gcc.h **** }
@ -1618,7 +1618,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
798:Drivers/CMSIS/Include/cmsis_gcc.h **** }
799:Drivers/CMSIS/Include/cmsis_gcc.h ****
800:Drivers/CMSIS/Include/cmsis_gcc.h ****
ARM GAS /tmp/ccdSoXH4.s page 28
ARM GAS /tmp/ccKxBoqJ.s page 28
801:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
@ -1678,7 +1678,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
855:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to data
856:Drivers/CMSIS/Include/cmsis_gcc.h **** \return value of type uint16_t at (*ptr)
857:Drivers/CMSIS/Include/cmsis_gcc.h **** */
ARM GAS /tmp/ccdSoXH4.s page 29
ARM GAS /tmp/ccKxBoqJ.s page 29
858:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint16_t __LDAEXH(volatile uint16_t *ptr)
@ -1738,7 +1738,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
912:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
913:Drivers/CMSIS/Include/cmsis_gcc.h **** }
914:Drivers/CMSIS/Include/cmsis_gcc.h ****
ARM GAS /tmp/ccdSoXH4.s page 30
ARM GAS /tmp/ccKxBoqJ.s page 30
915:Drivers/CMSIS/Include/cmsis_gcc.h ****
@ -1798,7 +1798,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
333 @ 0 "" 2
334 .thumb
335 .syntax unified
ARM GAS /tmp/ccdSoXH4.s page 31
ARM GAS /tmp/ccKxBoqJ.s page 31
336 .L10:
@ -1858,7 +1858,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
288:Core/Src/main.c **** hadc1.Init.ScanConvMode = DISABLE;
381 .loc 1 288 3 is_stmt 1 view .LVU94
288:Core/Src/main.c **** hadc1.Init.ScanConvMode = DISABLE;
ARM GAS /tmp/ccdSoXH4.s page 32
ARM GAS /tmp/ccKxBoqJ.s page 32
382 .loc 1 288 25 is_stmt 0 view .LVU95
@ -1918,7 +1918,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
416 003c FFF7FEFF bl HAL_ADC_Init
417 .LVL12:
298:Core/Src/main.c **** {
ARM GAS /tmp/ccdSoXH4.s page 33
ARM GAS /tmp/ccKxBoqJ.s page 33
418 .loc 1 298 6 discriminator 1 view .LVU116
@ -1978,7 +1978,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
460 0068 00000000 .word hadc1
461 006c 00200140 .word 1073815552
462 .cfi_endproc
ARM GAS /tmp/ccdSoXH4.s page 34
ARM GAS /tmp/ccKxBoqJ.s page 34
463 .LFE245:
@ -2038,7 +2038,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
510 0026 126C ldr r2, [r2, #64]
511 0028 02F08052 and r2, r2, #268435456
512 002c 0192 str r2, [sp, #4]
ARM GAS /tmp/ccdSoXH4.s page 35
ARM GAS /tmp/ccKxBoqJ.s page 35
232:Core/Src/main.c **** __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
@ -2098,7 +2098,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
550 .loc 1 242 3 is_stmt 1 view .LVU154
242:Core/Src/main.c **** RCC_OscInitStruct.PLL.PLLN = 336;
551 .loc 1 242 30 is_stmt 0 view .LVU155
ARM GAS /tmp/ccdSoXH4.s page 36
ARM GAS /tmp/ccKxBoqJ.s page 36
552 005a 0822 movs r2, #8
@ -2158,7 +2158,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
588 .loc 1 258 3 is_stmt 1 view .LVU173
258:Core/Src/main.c ****
589 .loc 1 258 36 is_stmt 0 view .LVU174
ARM GAS /tmp/ccdSoXH4.s page 37
ARM GAS /tmp/ccKxBoqJ.s page 37
590 0084 4FF48053 mov r3, #4096
@ -2218,7 +2218,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
639 .LCFI14:
640 .cfi_def_cfa_offset 24
641 .cfi_offset 3, -24
ARM GAS /tmp/ccdSoXH4.s page 38
ARM GAS /tmp/ccKxBoqJ.s page 38
642 .cfi_offset 4, -20
@ -2259,7 +2259,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
670 .LVL27:
120:Core/Src/main.c ****
671 .loc 1 120 3 view .LVU189
672 0024 3222 movs r2, #50
672 0024 4022 movs r2, #64
673 0026 9249 ldr r1, .L35+4
674 0028 9248 ldr r0, .L35+8
675 002a FFF7FEFF bl HAL_ADC_Start_DMA
@ -2278,7 +2278,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
684 0034 9361 str r3, [r2, #24]
124:Core/Src/main.c **** ADC_proc_shadow.avg_ON = 0;
685 .loc 1 124 3 is_stmt 1 view .LVU194
ARM GAS /tmp/ccdSoXH4.s page 39
ARM GAS /tmp/ccKxBoqJ.s page 39
124:Core/Src/main.c **** ADC_proc_shadow.avg_ON = 0;
@ -2338,7 +2338,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
137:Core/Src/main.c ****
719 .loc 1 137 3 is_stmt 0 view .LVU216
720 004c 13E0 b .L29
ARM GAS /tmp/ccdSoXH4.s page 40
ARM GAS /tmp/ccKxBoqJ.s page 40
721 .L30:
@ -2398,7 +2398,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
148:Core/Src/main.c **** // ADC_proc_shadow.avg_ON = ADC_proc_shadow.sum_ON / ADC_proc_shadow.N;
761 .loc 1 148 8 view .LVU231
762 007c 022B cmp r3, #2
ARM GAS /tmp/ccdSoXH4.s page 41
ARM GAS /tmp/ccKxBoqJ.s page 41
763 007e FAD1 bne .L29
@ -2458,7 +2458,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
798 00a2 9361 str r3, [r2, #24]
159:Core/Src/main.c **** ADC_msg[ADC_msg_val_ON_pos + 1] = (ADC_proc_shadow.avg_ON / 100000000) % 10 + '0';
799 .loc 1 159 7 is_stmt 1 view .LVU251
ARM GAS /tmp/ccdSoXH4.s page 42
ARM GAS /tmp/ccKxBoqJ.s page 42
159:Core/Src/main.c **** ADC_msg[ADC_msg_val_ON_pos + 1] = (ADC_proc_shadow.avg_ON / 100000000) % 10 + '0';
@ -2518,7 +2518,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
839 00e2 C008 lsrs r0, r0, #3
840 00e4 00EB8000 add r0, r0, r0, lsl #2
841 00e8 A4EB4000 sub r0, r4, r0, lsl #1
ARM GAS /tmp/ccdSoXH4.s page 43
ARM GAS /tmp/ccKxBoqJ.s page 43
161:Core/Src/main.c **** ADC_msg[ADC_msg_val_ON_pos + 3] = (ADC_proc_shadow.avg_ON / 1000000) % 10 + '0';
@ -2578,7 +2578,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
880 .loc 1 164 57 is_stmt 0 view .LVU282
881 012a 1469 ldr r4, [r2, #16]
164:Core/Src/main.c **** ADC_msg[ADC_msg_val_ON_pos + 6] = (ADC_proc_shadow.avg_ON / 1000) % 10 + '0';
ARM GAS /tmp/ccdSoXH4.s page 44
ARM GAS /tmp/ccKxBoqJ.s page 44
882 .loc 1 164 65 view .LVU283
@ -2638,7 +2638,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
166:Core/Src/main.c **** ADC_msg[ADC_msg_val_ON_pos + 8] = (ADC_proc_shadow.avg_ON / 10) % 10 + '0';
923 .loc 1 166 77 view .LVU297
924 017c 3030 adds r0, r0, #48
ARM GAS /tmp/ccdSoXH4.s page 45
ARM GAS /tmp/ccKxBoqJ.s page 45
166:Core/Src/main.c **** ADC_msg[ADC_msg_val_ON_pos + 8] = (ADC_proc_shadow.avg_ON / 10) % 10 + '0';
@ -2698,7 +2698,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
963 01bc A3FB07C2 umull ip, r2, r3, r7
964 01c0 D208 lsrs r2, r2, #3
965 01c2 02EB8202 add r2, r2, r2, lsl #2
ARM GAS /tmp/ccdSoXH4.s page 46
ARM GAS /tmp/ccKxBoqJ.s page 46
966 01c6 A7EB4202 sub r2, r7, r2, lsl #1
@ -2758,7 +2758,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
186:Core/Src/main.c **** ADC_msg[ADC_msg_step_pos + 4] = (Sweep_state.curr_step_N / 10) % 10 + '0';
1004 .loc 1 186 64 view .LVU330
1005 0204 A4FB0242 umull r4, r2, r4, r2
ARM GAS /tmp/ccdSoXH4.s page 47
ARM GAS /tmp/ccKxBoqJ.s page 47
1006 0208 5409 lsrs r4, r2, #5
@ -2818,7 +2818,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
1044 .loc 1 194 22 is_stmt 0 view .LVU346
1045 024a 0268 ldr r2, [r0]
194:Core/Src/main.c **** Sweep_state.curr_step_N = 0;
ARM GAS /tmp/ccdSoXH4.s page 48
ARM GAS /tmp/ccKxBoqJ.s page 48
1046 .loc 1 194 10 view .LVU347
@ -2878,14 +2878,14 @@ ARM GAS /tmp/ccdSoXH4.s page 1
1096 3F3F2020
1096 3F3F3F3F
1096 3F3F3F3F
ARM GAS /tmp/ccdSoXH4.s page 49
ARM GAS /tmp/ccKxBoqJ.s page 49
1097 .global ADC1_buff_circular
1098 .section .bss.ADC1_buff_circular,"aw",%nobits
1099 .align 2
1102 ADC1_buff_circular:
1103 0000 00000000 .space 100
1103 0000 00000000 .space 128
1103 00000000
1103 00000000
1103 00000000
@ -2938,7 +2938,7 @@ ARM GAS /tmp/ccdSoXH4.s page 1
1145 00000000
1145 00000000
1145 00000000
ARM GAS /tmp/ccdSoXH4.s page 50
ARM GAS /tmp/ccKxBoqJ.s page 50
1145 00000000
@ -2959,44 +2959,44 @@ ARM GAS /tmp/ccdSoXH4.s page 1
1160 .file 15 "USB_DEVICE/App/usb_device.h"
1161 .file 16 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h"
1162 .file 17 "<built-in>"
ARM GAS /tmp/ccdSoXH4.s page 51
ARM GAS /tmp/ccKxBoqJ.s page 51
DEFINED SYMBOLS
*ABS*:00000000 main.c
/tmp/ccdSoXH4.s:21 .text.MX_GPIO_Init:00000000 $t
/tmp/ccdSoXH4.s:26 .text.MX_GPIO_Init:00000000 MX_GPIO_Init
/tmp/ccdSoXH4.s:242 .text.MX_GPIO_Init:0000010c $d
/tmp/ccdSoXH4.s:250 .text.MX_DMA_Init:00000000 $t
/tmp/ccdSoXH4.s:255 .text.MX_DMA_Init:00000000 MX_DMA_Init
/tmp/ccdSoXH4.s:304 .text.MX_DMA_Init:00000030 $d
/tmp/ccdSoXH4.s:309 .text.Error_Handler:00000000 $t
/tmp/ccdSoXH4.s:315 .text.Error_Handler:00000000 Error_Handler
/tmp/ccdSoXH4.s:347 .text.MX_ADC1_Init:00000000 $t
/tmp/ccdSoXH4.s:352 .text.MX_ADC1_Init:00000000 MX_ADC1_Init
/tmp/ccdSoXH4.s:460 .text.MX_ADC1_Init:00000068 $d
/tmp/ccdSoXH4.s:1144 .bss.hadc1:00000000 hadc1
/tmp/ccdSoXH4.s:466 .text.SystemClock_Config:00000000 $t
/tmp/ccdSoXH4.s:472 .text.SystemClock_Config:00000000 SystemClock_Config
/tmp/ccdSoXH4.s:620 .text.SystemClock_Config:000000a4 $d
/tmp/ccdSoXH4.s:626 .text.main:00000000 $t
/tmp/ccdSoXH4.s:632 .text.main:00000000 main
/tmp/ccdSoXH4.s:1070 .text.main:0000026c $d
/tmp/ccdSoXH4.s:1102 .bss.ADC1_buff_circular:00000000 ADC1_buff_circular
/tmp/ccdSoXH4.s:1123 .bss.ADC_proc_shadow:00000000 ADC_proc_shadow
/tmp/ccdSoXH4.s:1130 .bss.ADC_proc:00000000 ADC_proc
/tmp/ccdSoXH4.s:1116 .bss.Sweep_state:00000000 Sweep_state
/tmp/ccdSoXH4.s:1095 .data.ADC_msg:00000000 ADC_msg
/tmp/ccdSoXH4.s:1092 .data.ADC_msg:00000000 $d
/tmp/ccdSoXH4.s:1099 .bss.ADC1_buff_circular:00000000 $d
/tmp/ccdSoXH4.s:1109 .bss.curr_step_start_N:00000000 curr_step_start_N
/tmp/ccdSoXH4.s:1106 .bss.curr_step_start_N:00000000 $d
/tmp/ccdSoXH4.s:1113 .bss.Sweep_state:00000000 $d
/tmp/ccdSoXH4.s:1120 .bss.ADC_proc_shadow:00000000 $d
/tmp/ccdSoXH4.s:1127 .bss.ADC_proc:00000000 $d
/tmp/ccdSoXH4.s:1137 .bss.hdma_adc1:00000000 hdma_adc1
/tmp/ccdSoXH4.s:1134 .bss.hdma_adc1:00000000 $d
/tmp/ccdSoXH4.s:1141 .bss.hadc1:00000000 $d
/tmp/ccKxBoqJ.s:21 .text.MX_GPIO_Init:00000000 $t
/tmp/ccKxBoqJ.s:26 .text.MX_GPIO_Init:00000000 MX_GPIO_Init
/tmp/ccKxBoqJ.s:242 .text.MX_GPIO_Init:0000010c $d
/tmp/ccKxBoqJ.s:250 .text.MX_DMA_Init:00000000 $t
/tmp/ccKxBoqJ.s:255 .text.MX_DMA_Init:00000000 MX_DMA_Init
/tmp/ccKxBoqJ.s:304 .text.MX_DMA_Init:00000030 $d
/tmp/ccKxBoqJ.s:309 .text.Error_Handler:00000000 $t
/tmp/ccKxBoqJ.s:315 .text.Error_Handler:00000000 Error_Handler
/tmp/ccKxBoqJ.s:347 .text.MX_ADC1_Init:00000000 $t
/tmp/ccKxBoqJ.s:352 .text.MX_ADC1_Init:00000000 MX_ADC1_Init
/tmp/ccKxBoqJ.s:460 .text.MX_ADC1_Init:00000068 $d
/tmp/ccKxBoqJ.s:1144 .bss.hadc1:00000000 hadc1
/tmp/ccKxBoqJ.s:466 .text.SystemClock_Config:00000000 $t
/tmp/ccKxBoqJ.s:472 .text.SystemClock_Config:00000000 SystemClock_Config
/tmp/ccKxBoqJ.s:620 .text.SystemClock_Config:000000a4 $d
/tmp/ccKxBoqJ.s:626 .text.main:00000000 $t
/tmp/ccKxBoqJ.s:632 .text.main:00000000 main
/tmp/ccKxBoqJ.s:1070 .text.main:0000026c $d
/tmp/ccKxBoqJ.s:1102 .bss.ADC1_buff_circular:00000000 ADC1_buff_circular
/tmp/ccKxBoqJ.s:1123 .bss.ADC_proc_shadow:00000000 ADC_proc_shadow
/tmp/ccKxBoqJ.s:1130 .bss.ADC_proc:00000000 ADC_proc
/tmp/ccKxBoqJ.s:1116 .bss.Sweep_state:00000000 Sweep_state
/tmp/ccKxBoqJ.s:1095 .data.ADC_msg:00000000 ADC_msg
/tmp/ccKxBoqJ.s:1092 .data.ADC_msg:00000000 $d
/tmp/ccKxBoqJ.s:1099 .bss.ADC1_buff_circular:00000000 $d
/tmp/ccKxBoqJ.s:1109 .bss.curr_step_start_N:00000000 curr_step_start_N
/tmp/ccKxBoqJ.s:1106 .bss.curr_step_start_N:00000000 $d
/tmp/ccKxBoqJ.s:1113 .bss.Sweep_state:00000000 $d
/tmp/ccKxBoqJ.s:1120 .bss.ADC_proc_shadow:00000000 $d
/tmp/ccKxBoqJ.s:1127 .bss.ADC_proc:00000000 $d
/tmp/ccKxBoqJ.s:1137 .bss.hdma_adc1:00000000 hdma_adc1
/tmp/ccKxBoqJ.s:1134 .bss.hdma_adc1:00000000 $d
/tmp/ccKxBoqJ.s:1141 .bss.hadc1:00000000 $d
UNDEFINED SYMBOLS
HAL_GPIO_WritePin