| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859 |
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s page 1
- 1 .cpu cortex-m4
- 2 .arch armv7e-m
- 3 .fpu fpv4-sp-d16
- 4 .eabi_attribute 27, 1
- 5 .eabi_attribute 28, 1
- 6 .eabi_attribute 20, 1
- 7 .eabi_attribute 21, 1
- 8 .eabi_attribute 23, 3
- 9 .eabi_attribute 24, 1
- 10 .eabi_attribute 25, 1
- 11 .eabi_attribute 26, 1
- 12 .eabi_attribute 30, 6
- 13 .eabi_attribute 34, 1
- 14 .eabi_attribute 18, 4
- 15 .file "soft_adc.c"
- 16 .text
- 17 .Ltext0:
- 18 .cfi_sections .debug_frame
- 19 .global ADC_value
- 20 .section .bss.ADC_value,"aw",%nobits
- 21 .align 1
- 24 ADC_value:
- 25 0000 0000 .space 2
- 26 .global aver_value
- 27 .section .bss.aver_value,"aw",%nobits
- 28 .align 2
- 31 aver_value:
- 32 0000 00000000 .space 4
- 33 .global adc_cnt
- 34 .section .bss.adc_cnt,"aw",%nobits
- 37 adc_cnt:
- 38 0000 00 .space 1
- 39 .global ADC_flag
- 40 .section .bss.ADC_flag,"aw",%nobits
- 41 .align 2
- 44 ADC_flag:
- 45 0000 00000000 .space 4
- 46 .section .text.HAL_ADC_ConvCpltCallback,"ax",%progbits
- 47 .align 1
- 48 .global HAL_ADC_ConvCpltCallback
- 49 .syntax unified
- 50 .thumb
- 51 .thumb_func
- 53 HAL_ADC_ConvCpltCallback:
- 54 .LFB130:
- 55 .file 1 "user_src/soft_adc.c"
- 1:user_src/soft_adc.c **** #include "adc.h"
- 2:user_src/soft_adc.c **** #include "soft_adc.h"
- 3:user_src/soft_adc.c **** #include "stm32f3xx_hal_adc_ex.h"
- 4:user_src/soft_adc.c ****
- 5:user_src/soft_adc.c **** uint16_t ADC_value = 0;
- 6:user_src/soft_adc.c **** float aver_value = 0;
- 7:user_src/soft_adc.c **** uint8_t adc_cnt = 0;
- 8:user_src/soft_adc.c **** uint32_t ADC_flag = 0;
- 9:user_src/soft_adc.c **** /*********************AD中断回调*******************/
- 10:user_src/soft_adc.c **** void HAL_ADC_ConvCpltCallback( ADC_HandleTypeDef *hadc )
- 11:user_src/soft_adc.c **** {
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s page 2
- 56 .loc 1 11 1
- 57 .cfi_startproc
- 58 @ args = 0, pretend = 0, frame = 8
- 59 @ frame_needed = 1, uses_anonymous_args = 0
- 60 @ link register save eliminated.
- 61 0000 80B4 push {r7}
- 62 .LCFI0:
- 63 .cfi_def_cfa_offset 4
- 64 .cfi_offset 7, -4
- 65 0002 83B0 sub sp, sp, #12
- 66 .LCFI1:
- 67 .cfi_def_cfa_offset 16
- 68 0004 00AF add r7, sp, #0
- 69 .LCFI2:
- 70 .cfi_def_cfa_register 7
- 71 0006 7860 str r0, [r7, #4]
- 12:user_src/soft_adc.c **** ADC_flag = 1;
- 72 .loc 1 12 14
- 73 0008 044B ldr r3, .L2
- 74 000a 0122 movs r2, #1
- 75 000c 1A60 str r2, [r3]
- 13:user_src/soft_adc.c **** }
- 76 .loc 1 13 1
- 77 000e 00BF nop
- 78 0010 0C37 adds r7, r7, #12
- 79 .LCFI3:
- 80 .cfi_def_cfa_offset 4
- 81 0012 BD46 mov sp, r7
- 82 .LCFI4:
- 83 .cfi_def_cfa_register 13
- 84 @ sp needed
- 85 0014 5DF8047B ldr r7, [sp], #4
- 86 .LCFI5:
- 87 .cfi_restore 7
- 88 .cfi_def_cfa_offset 0
- 89 0018 7047 bx lr
- 90 .L3:
- 91 001a 00BF .align 2
- 92 .L2:
- 93 001c 00000000 .word ADC_flag
- 94 .cfi_endproc
- 95 .LFE130:
- 97 .section .text.buf_sort,"ax",%progbits
- 98 .align 1
- 99 .global buf_sort
- 100 .syntax unified
- 101 .thumb
- 102 .thumb_func
- 104 buf_sort:
- 105 .LFB131:
- 14:user_src/soft_adc.c ****
- 15:user_src/soft_adc.c **** /**
- 16:user_src/soft_adc.c **** * @file buf_sort
- 17:user_src/soft_adc.c **** * @brief 冒泡 从小到大
- 18:user_src/soft_adc.c **** * @param arr, length
- 19:user_src/soft_adc.c **** * @details
- 20:user_src/soft_adc.c **** * @author Zhang Sir
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s page 3
- 21:user_src/soft_adc.c **** **/
- 22:user_src/soft_adc.c **** void buf_sort( float *arr, uint32_t length )
- 23:user_src/soft_adc.c **** {
- 106 .loc 1 23 1
- 107 .cfi_startproc
- 108 @ args = 0, pretend = 0, frame = 24
- 109 @ frame_needed = 1, uses_anonymous_args = 0
- 110 @ link register save eliminated.
- 111 0000 80B4 push {r7}
- 112 .LCFI6:
- 113 .cfi_def_cfa_offset 4
- 114 .cfi_offset 7, -4
- 115 0002 87B0 sub sp, sp, #28
- 116 .LCFI7:
- 117 .cfi_def_cfa_offset 32
- 118 0004 00AF add r7, sp, #0
- 119 .LCFI8:
- 120 .cfi_def_cfa_register 7
- 121 0006 7860 str r0, [r7, #4]
- 122 0008 3960 str r1, [r7]
- 24:user_src/soft_adc.c **** if ( length < 2 )
- 123 .loc 1 24 8
- 124 000a 3B68 ldr r3, [r7]
- 125 000c 012B cmp r3, #1
- 126 000e 46D9 bls .L14
- 25:user_src/soft_adc.c **** {
- 26:user_src/soft_adc.c **** return;
- 27:user_src/soft_adc.c **** }
- 28:user_src/soft_adc.c **** uint32_t num = 0, num1 = 0;
- 127 .loc 1 28 14
- 128 0010 0023 movs r3, #0
- 129 0012 7B61 str r3, [r7, #20]
- 130 .loc 1 28 23
- 131 0014 0023 movs r3, #0
- 132 0016 3B61 str r3, [r7, #16]
- 29:user_src/soft_adc.c **** float tmp = 0;
- 133 .loc 1 29 11
- 134 0018 4FF00003 mov r3, #0
- 135 001c FB60 str r3, [r7, #12] @ float
- 30:user_src/soft_adc.c **** for ( num = length - 1; num >= 1; num-- )
- 136 .loc 1 30 15
- 137 001e 3B68 ldr r3, [r7]
- 138 0020 013B subs r3, r3, #1
- 139 0022 7B61 str r3, [r7, #20]
- 140 .loc 1 30 5
- 141 0024 37E0 b .L7
- 142 .L12:
- 31:user_src/soft_adc.c **** {
- 32:user_src/soft_adc.c **** for ( num1 = 0; num1 <= num - 1; num1++ )
- 143 .loc 1 32 20
- 144 0026 0023 movs r3, #0
- 145 0028 3B61 str r3, [r7, #16]
- 146 .loc 1 32 9
- 147 002a 2CE0 b .L8
- 148 .L11:
- 33:user_src/soft_adc.c **** {
- 34:user_src/soft_adc.c **** if ( *( arr + num1 ) > *( arr + num1 + 1 ) )
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s page 4
- 149 .loc 1 34 25
- 150 002c 3B69 ldr r3, [r7, #16]
- 151 002e 9B00 lsls r3, r3, #2
- 152 0030 7A68 ldr r2, [r7, #4]
- 153 0032 1344 add r3, r3, r2
- 154 .loc 1 34 18
- 155 0034 93ED007A vldr.32 s14, [r3]
- 156 .loc 1 34 50
- 157 0038 3B69 ldr r3, [r7, #16]
- 158 003a 0133 adds r3, r3, #1
- 159 003c 9B00 lsls r3, r3, #2
- 160 003e 7A68 ldr r2, [r7, #4]
- 161 0040 1344 add r3, r3, r2
- 162 .loc 1 34 36
- 163 0042 D3ED007A vldr.32 s15, [r3]
- 164 .loc 1 34 16
- 165 0046 B4EEE77A vcmpe.f32 s14, s15
- 166 004a F1EE10FA vmrs APSR_nzcv, FPSCR
- 167 004e 17DD ble .L9
- 35:user_src/soft_adc.c **** {
- 36:user_src/soft_adc.c **** tmp = *( arr + num1 );
- 168 .loc 1 36 30
- 169 0050 3B69 ldr r3, [r7, #16]
- 170 0052 9B00 lsls r3, r3, #2
- 171 0054 7A68 ldr r2, [r7, #4]
- 172 0056 1344 add r3, r3, r2
- 173 .loc 1 36 21
- 174 0058 1B68 ldr r3, [r3] @ float
- 175 005a FB60 str r3, [r7, #12] @ float
- 37:user_src/soft_adc.c **** *( arr + num1 ) = *( arr + num1 + 1 );
- 176 .loc 1 37 49
- 177 005c 3B69 ldr r3, [r7, #16]
- 178 005e 0133 adds r3, r3, #1
- 179 0060 9B00 lsls r3, r3, #2
- 180 0062 7A68 ldr r2, [r7, #4]
- 181 0064 1A44 add r2, r2, r3
- 182 .loc 1 37 24
- 183 0066 3B69 ldr r3, [r7, #16]
- 184 0068 9B00 lsls r3, r3, #2
- 185 006a 7968 ldr r1, [r7, #4]
- 186 006c 0B44 add r3, r3, r1
- 187 .loc 1 37 35
- 188 006e 1268 ldr r2, [r2] @ float
- 189 .loc 1 37 33
- 190 0070 1A60 str r2, [r3] @ float
- 38:user_src/soft_adc.c **** *( arr + num1 + 1 ) = tmp;
- 191 .loc 1 38 31
- 192 0072 3B69 ldr r3, [r7, #16]
- 193 0074 0133 adds r3, r3, #1
- 194 0076 9B00 lsls r3, r3, #2
- 195 0078 7A68 ldr r2, [r7, #4]
- 196 007a 1344 add r3, r3, r2
- 197 .loc 1 38 37
- 198 007c FA68 ldr r2, [r7, #12] @ float
- 199 007e 1A60 str r2, [r3] @ float
- 200 .L9:
- 32:user_src/soft_adc.c **** {
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s page 5
- 201 .loc 1 32 46 discriminator 2
- 202 0080 3B69 ldr r3, [r7, #16]
- 203 0082 0133 adds r3, r3, #1
- 204 0084 3B61 str r3, [r7, #16]
- 205 .L8:
- 32:user_src/soft_adc.c **** {
- 206 .loc 1 32 37 discriminator 1
- 207 0086 7B69 ldr r3, [r7, #20]
- 208 0088 013B subs r3, r3, #1
- 32:user_src/soft_adc.c **** {
- 209 .loc 1 32 9 discriminator 1
- 210 008a 3A69 ldr r2, [r7, #16]
- 211 008c 9A42 cmp r2, r3
- 212 008e CDD9 bls .L11
- 30:user_src/soft_adc.c **** {
- 213 .loc 1 30 42 discriminator 2
- 214 0090 7B69 ldr r3, [r7, #20]
- 215 0092 013B subs r3, r3, #1
- 216 0094 7B61 str r3, [r7, #20]
- 217 .L7:
- 30:user_src/soft_adc.c **** {
- 218 .loc 1 30 5 discriminator 1
- 219 0096 7B69 ldr r3, [r7, #20]
- 220 0098 002B cmp r3, #0
- 221 009a C4D1 bne .L12
- 222 009c 00E0 b .L4
- 223 .L14:
- 26:user_src/soft_adc.c **** }
- 224 .loc 1 26 9
- 225 009e 00BF nop
- 226 .L4:
- 39:user_src/soft_adc.c **** }
- 40:user_src/soft_adc.c **** }
- 41:user_src/soft_adc.c **** }
- 42:user_src/soft_adc.c **** }
- 227 .loc 1 42 1
- 228 00a0 1C37 adds r7, r7, #28
- 229 .LCFI9:
- 230 .cfi_def_cfa_offset 4
- 231 00a2 BD46 mov sp, r7
- 232 .LCFI10:
- 233 .cfi_def_cfa_register 13
- 234 @ sp needed
- 235 00a4 5DF8047B ldr r7, [sp], #4
- 236 .LCFI11:
- 237 .cfi_restore 7
- 238 .cfi_def_cfa_offset 0
- 239 00a8 7047 bx lr
- 240 .cfi_endproc
- 241 .LFE131:
- 243 .section .text.Get_ADCChannelValue,"ax",%progbits
- 244 .align 1
- 245 .global Get_ADCChannelValue
- 246 .syntax unified
- 247 .thumb
- 248 .thumb_func
- 250 Get_ADCChannelValue:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s page 6
- 251 .LFB132:
- 43:user_src/soft_adc.c **** /**
- 44:user_src/soft_adc.c **** * @file Get_ADCChannelValue
- 45:user_src/soft_adc.c **** * @brief 获取不同通道ad采集
- 46:user_src/soft_adc.c **** * @param None
- 47:user_src/soft_adc.c **** * @details
- 48:user_src/soft_adc.c **** * @author Zhang Sir
- 49:user_src/soft_adc.c **** **/
- 50:user_src/soft_adc.c **** uint16_t Get_ADCChannelValue(ADC_HandleTypeDef *hadc, uint32_t channel)
- 51:user_src/soft_adc.c **** {
- 252 .loc 1 51 1
- 253 .cfi_startproc
- 254 @ args = 0, pretend = 0, frame = 40
- 255 @ frame_needed = 1, uses_anonymous_args = 0
- 256 0000 80B5 push {r7, lr}
- 257 .LCFI12:
- 258 .cfi_def_cfa_offset 8
- 259 .cfi_offset 7, -8
- 260 .cfi_offset 14, -4
- 261 0002 8AB0 sub sp, sp, #40
- 262 .LCFI13:
- 263 .cfi_def_cfa_offset 48
- 264 0004 00AF add r7, sp, #0
- 265 .LCFI14:
- 266 .cfi_def_cfa_register 7
- 267 0006 7860 str r0, [r7, #4]
- 268 0008 3960 str r1, [r7]
- 52:user_src/soft_adc.c **** uint16_t temp_adc = 0;
- 269 .loc 1 52 11
- 270 000a 0023 movs r3, #0
- 271 000c FB84 strh r3, [r7, #38] @ movhi
- 53:user_src/soft_adc.c **** ADC_ChannelConfTypeDef ADC_ChanConf;
- 54:user_src/soft_adc.c ****
- 55:user_src/soft_adc.c **** ADC_ChanConf.Channel = channel;
- 272 .loc 1 55 23
- 273 000e 3B68 ldr r3, [r7]
- 274 0010 FB60 str r3, [r7, #12]
- 56:user_src/soft_adc.c **** ADC_ChanConf.Rank = ADC_REGULAR_RANK_1;
- 275 .loc 1 56 20
- 276 0012 0123 movs r3, #1
- 277 0014 3B61 str r3, [r7, #16]
- 57:user_src/soft_adc.c **** ADC_ChanConf.SamplingTime = ADC_SAMPLETIME_61CYCLES_5;
- 278 .loc 1 57 28
- 279 0016 0523 movs r3, #5
- 280 0018 7B61 str r3, [r7, #20]
- 58:user_src/soft_adc.c **** if (HAL_ADC_ConfigChannel(hadc, &ADC_ChanConf) != HAL_OK)
- 281 .loc 1 58 6
- 282 001a 07F10C03 add r3, r7, #12
- 283 001e 1946 mov r1, r3
- 284 0020 7868 ldr r0, [r7, #4]
- 285 0022 FFF7FEFF bl HAL_ADC_ConfigChannel
- 286 0026 0346 mov r3, r0
- 287 .loc 1 58 5
- 288 0028 002B cmp r3, #0
- 289 002a 01D0 beq .L16
- 59:user_src/soft_adc.c **** {
- 60:user_src/soft_adc.c **** Error_Handler();
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s page 7
- 290 .loc 1 60 3
- 291 002c FFF7FEFF bl Error_Handler
- 292 .L16:
- 61:user_src/soft_adc.c **** }
- 62:user_src/soft_adc.c ****
- 63:user_src/soft_adc.c **** HAL_ADC_Start_IT(hadc);
- 293 .loc 1 63 2
- 294 0030 7868 ldr r0, [r7, #4]
- 295 0032 FFF7FEFF bl HAL_ADC_Start_IT
- 64:user_src/soft_adc.c **** HAL_ADC_PollForConversion(hadc, 1);
- 296 .loc 1 64 2
- 297 0036 0121 movs r1, #1
- 298 0038 7868 ldr r0, [r7, #4]
- 299 003a FFF7FEFF bl HAL_ADC_PollForConversion
- 65:user_src/soft_adc.c ****
- 66:user_src/soft_adc.c **** temp_adc = HAL_ADC_GetValue(hadc);
- 300 .loc 1 66 13
- 301 003e 7868 ldr r0, [r7, #4]
- 302 0040 FFF7FEFF bl HAL_ADC_GetValue
- 303 0044 0346 mov r3, r0
- 304 .loc 1 66 11
- 305 0046 FB84 strh r3, [r7, #38] @ movhi
- 67:user_src/soft_adc.c **** return temp_adc;
- 306 .loc 1 67 10
- 307 0048 FB8C ldrh r3, [r7, #38]
- 68:user_src/soft_adc.c **** }
- 308 .loc 1 68 1
- 309 004a 1846 mov r0, r3
- 310 004c 2837 adds r7, r7, #40
- 311 .LCFI15:
- 312 .cfi_def_cfa_offset 8
- 313 004e BD46 mov sp, r7
- 314 .LCFI16:
- 315 .cfi_def_cfa_register 13
- 316 @ sp needed
- 317 0050 80BD pop {r7, pc}
- 318 .cfi_endproc
- 319 .LFE132:
- 321 .section .bss.ADC_buf,"aw",%nobits
- 322 .align 2
- 325 ADC_buf:
- 326 0000 00000000 .space 80
- 326 00000000
- 326 00000000
- 326 00000000
- 326 00000000
- 327 .global ADC_temp
- 328 .section .bss.ADC_temp,"aw",%nobits
- 329 .align 2
- 332 ADC_temp:
- 333 0000 00000000 .space 4
- 334 .section .text.adc_gather_hz,"ax",%progbits
- 335 .align 1
- 336 .global adc_gather_hz
- 337 .syntax unified
- 338 .thumb
- 339 .thumb_func
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s page 8
- 341 adc_gather_hz:
- 342 .LFB133:
- 69:user_src/soft_adc.c ****
- 70:user_src/soft_adc.c **** /**
- 71:user_src/soft_adc.c **** * @file adc_gather_hz
- 72:user_src/soft_adc.c **** * @brief AD电压采集
- 73:user_src/soft_adc.c **** * @param None
- 74:user_src/soft_adc.c **** * @details
- 75:user_src/soft_adc.c **** * @author Zhang Sir
- 76:user_src/soft_adc.c **** **/
- 77:user_src/soft_adc.c **** static float ADC_buf[20];
- 78:user_src/soft_adc.c **** float ADC_temp = 0.0f;
- 79:user_src/soft_adc.c **** void adc_gather_hz()
- 80:user_src/soft_adc.c **** {
- 343 .loc 1 80 1
- 344 .cfi_startproc
- 345 @ args = 0, pretend = 0, frame = 0
- 346 @ frame_needed = 1, uses_anonymous_args = 0
- 347 0000 80B5 push {r7, lr}
- 348 .LCFI17:
- 349 .cfi_def_cfa_offset 8
- 350 .cfi_offset 7, -8
- 351 .cfi_offset 14, -4
- 352 0002 00AF add r7, sp, #0
- 353 .LCFI18:
- 354 .cfi_def_cfa_register 7
- 81:user_src/soft_adc.c **** static uint32_t adc_time = 0;
- 82:user_src/soft_adc.c **** if ( HAL_GetTick() - adc_time > 20 )
- 355 .loc 1 82 10
- 356 0004 FFF7FEFF bl HAL_GetTick
- 357 0008 0246 mov r2, r0
- 358 .loc 1 82 24
- 359 000a 164B ldr r3, .L22
- 360 000c 1B68 ldr r3, [r3]
- 361 000e D31A subs r3, r2, r3
- 362 .loc 1 82 8
- 363 0010 142B cmp r3, #20
- 364 0012 24D9 bls .L21
- 83:user_src/soft_adc.c **** {
- 84:user_src/soft_adc.c **** ADC_buf[adc_cnt] = Get_ADCChannelValue(&hadc1, ADC_CHANNEL_1);
- 365 .loc 1 84 28
- 366 0014 0121 movs r1, #1
- 367 0016 1448 ldr r0, .L22+4
- 368 0018 FFF7FEFF bl Get_ADCChannelValue
- 369 001c 0346 mov r3, r0
- 370 001e 07EE903A vmov s15, r3 @ int
- 371 .loc 1 84 16
- 372 0022 124B ldr r3, .L22+8
- 373 0024 1B78 ldrb r3, [r3] @ zero_extendqisi2
- 374 .loc 1 84 26
- 375 0026 F8EE677A vcvt.f32.u32 s15, s15
- 376 002a 114A ldr r2, .L22+12
- 377 002c 9B00 lsls r3, r3, #2
- 378 002e 1344 add r3, r3, r2
- 379 0030 C3ED007A vstr.32 s15, [r3]
- 85:user_src/soft_adc.c **** HAL_ADC_Stop(&hadc1);
- 380 .loc 1 85 9
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s page 9
- 381 0034 0C48 ldr r0, .L22+4
- 382 0036 FFF7FEFF bl HAL_ADC_Stop
- 86:user_src/soft_adc.c ****
- 87:user_src/soft_adc.c **** adc_cnt++;
- 383 .loc 1 87 16
- 384 003a 0C4B ldr r3, .L22+8
- 385 003c 1B78 ldrb r3, [r3] @ zero_extendqisi2
- 386 003e 0133 adds r3, r3, #1
- 387 0040 DAB2 uxtb r2, r3
- 388 0042 0A4B ldr r3, .L22+8
- 389 0044 1A70 strb r2, [r3]
- 88:user_src/soft_adc.c **** if ( adc_cnt >= 20 )
- 390 .loc 1 88 22
- 391 0046 094B ldr r3, .L22+8
- 392 0048 1B78 ldrb r3, [r3] @ zero_extendqisi2
- 393 .loc 1 88 12
- 394 004a 132B cmp r3, #19
- 395 004c 02D9 bls .L20
- 89:user_src/soft_adc.c **** {
- 90:user_src/soft_adc.c **** adc_cnt = 0;
- 396 .loc 1 90 21
- 397 004e 074B ldr r3, .L22+8
- 398 0050 0022 movs r2, #0
- 399 0052 1A70 strb r2, [r3]
- 400 .L20:
- 91:user_src/soft_adc.c **** }
- 92:user_src/soft_adc.c **** adc_time = HAL_GetTick();
- 401 .loc 1 92 20
- 402 0054 FFF7FEFF bl HAL_GetTick
- 403 0058 0346 mov r3, r0
- 404 .loc 1 92 18
- 405 005a 024A ldr r2, .L22
- 406 005c 1360 str r3, [r2]
- 407 .L21:
- 93:user_src/soft_adc.c **** }
- 94:user_src/soft_adc.c **** }
- 408 .loc 1 94 1
- 409 005e 00BF nop
- 410 0060 80BD pop {r7, pc}
- 411 .L23:
- 412 0062 00BF .align 2
- 413 .L22:
- 414 0064 00000000 .word adc_time.0
- 415 0068 00000000 .word hadc1
- 416 006c 00000000 .word adc_cnt
- 417 0070 00000000 .word ADC_buf
- 418 .cfi_endproc
- 419 .LFE133:
- 421 .section .text.ADC_gather,"ax",%progbits
- 422 .align 1
- 423 .global ADC_gather
- 424 .syntax unified
- 425 .thumb
- 426 .thumb_func
- 428 ADC_gather:
- 429 .LFB134:
- 95:user_src/soft_adc.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s page 10
- 96:user_src/soft_adc.c ****
- 97:user_src/soft_adc.c **** /**
- 98:user_src/soft_adc.c **** * @file ADC_gather
- 99:user_src/soft_adc.c **** * @brief AD采集转换成电压
- 100:user_src/soft_adc.c **** * @param None
- 101:user_src/soft_adc.c **** * @details
- 102:user_src/soft_adc.c **** * @author Zhang Sir
- 103:user_src/soft_adc.c **** **/
- 104:user_src/soft_adc.c **** float ADC_gather( void )
- 105:user_src/soft_adc.c **** {
- 430 .loc 1 105 1
- 431 .cfi_startproc
- 432 @ args = 0, pretend = 0, frame = 8
- 433 @ frame_needed = 1, uses_anonymous_args = 0
- 434 0000 80B5 push {r7, lr}
- 435 .LCFI19:
- 436 .cfi_def_cfa_offset 8
- 437 .cfi_offset 7, -8
- 438 .cfi_offset 14, -4
- 439 0002 82B0 sub sp, sp, #8
- 440 .LCFI20:
- 441 .cfi_def_cfa_offset 16
- 442 0004 00AF add r7, sp, #0
- 443 .LCFI21:
- 444 .cfi_def_cfa_register 7
- 106:user_src/soft_adc.c **** float real_value = 0;
- 445 .loc 1 106 11
- 446 0006 4FF00003 mov r3, #0
- 447 000a 7B60 str r3, [r7, #4] @ float
- 107:user_src/soft_adc.c **** if ( ADC_flag == 1 )
- 448 .loc 1 107 19
- 449 000c 204B ldr r3, .L29
- 450 000e 1B68 ldr r3, [r3]
- 451 .loc 1 107 8
- 452 0010 012B cmp r3, #1
- 453 0012 34D1 bne .L25
- 108:user_src/soft_adc.c **** {
- 109:user_src/soft_adc.c **** ADC_flag = 0;
- 454 .loc 1 109 18
- 455 0014 1E4B ldr r3, .L29
- 456 0016 0022 movs r2, #0
- 457 0018 1A60 str r2, [r3]
- 110:user_src/soft_adc.c **** buf_sort( ADC_buf, 20 );
- 458 .loc 1 110 9
- 459 001a 1421 movs r1, #20
- 460 001c 1D48 ldr r0, .L29+4
- 461 001e FFF7FEFF bl buf_sort
- 462 .LBB2:
- 111:user_src/soft_adc.c **** for ( uint8_t ib = 1; ib < 19; ib++ )
- 463 .loc 1 111 23
- 464 0022 0123 movs r3, #1
- 465 0024 FB70 strb r3, [r7, #3]
- 466 .loc 1 111 9
- 467 0026 0EE0 b .L26
- 468 .L27:
- 112:user_src/soft_adc.c **** {
- 113:user_src/soft_adc.c **** real_value += ADC_buf[ib];
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s page 11
- 469 .loc 1 113 34 discriminator 3
- 470 0028 FB78 ldrb r3, [r7, #3] @ zero_extendqisi2
- 471 002a 1A4A ldr r2, .L29+4
- 472 002c 9B00 lsls r3, r3, #2
- 473 002e 1344 add r3, r3, r2
- 474 0030 D3ED007A vldr.32 s15, [r3]
- 475 .loc 1 113 24 discriminator 3
- 476 0034 97ED017A vldr.32 s14, [r7, #4]
- 477 0038 77EE277A vadd.f32 s15, s14, s15
- 478 003c C7ED017A vstr.32 s15, [r7, #4]
- 111:user_src/soft_adc.c **** for ( uint8_t ib = 1; ib < 19; ib++ )
- 479 .loc 1 111 42 discriminator 3
- 480 0040 FB78 ldrb r3, [r7, #3] @ zero_extendqisi2
- 481 0042 0133 adds r3, r3, #1
- 482 0044 FB70 strb r3, [r7, #3]
- 483 .L26:
- 111:user_src/soft_adc.c **** for ( uint8_t ib = 1; ib < 19; ib++ )
- 484 .loc 1 111 9 discriminator 1
- 485 0046 FB78 ldrb r3, [r7, #3] @ zero_extendqisi2
- 486 0048 122B cmp r3, #18
- 487 004a EDD9 bls .L27
- 488 .LBE2:
- 114:user_src/soft_adc.c **** }
- 115:user_src/soft_adc.c **** //aver_value = real_value / 4096 * 3.3f / 18 * 28 * 1000; //Mv 4096*3 真实电压 , 取18
- 116:user_src/soft_adc.c **** //12bit 4095 超过94V 28分频不够
- 117:user_src/soft_adc.c **** aver_value = real_value / 4096 * 3.226f / 18 * 31 * 1000; //Mv 4096*3 真实电压 , 取18
- 489 .loc 1 117 33
- 490 004c 97ED017A vldr.32 s14, [r7, #4]
- 491 0050 DFED116A vldr.32 s13, .L29+8
- 492 0054 C7EE267A vdiv.f32 s15, s14, s13
- 493 .loc 1 117 40
- 494 0058 9FED107A vldr.32 s14, .L29+12
- 495 005c 27EE877A vmul.f32 s14, s15, s14
- 496 .loc 1 117 49
- 497 0060 F3EE026A vmov.f32 s13, #1.8e+1
- 498 0064 C7EE267A vdiv.f32 s15, s14, s13
- 499 .loc 1 117 54
- 500 0068 B3EE0F7A vmov.f32 s14, #3.1e+1
- 501 006c 67EE877A vmul.f32 s15, s15, s14
- 502 .loc 1 117 59
- 503 0070 9FED0B7A vldr.32 s14, .L29+16
- 504 0074 67EE877A vmul.f32 s15, s15, s14
- 505 .loc 1 117 20
- 506 0078 0A4B ldr r3, .L29+20
- 507 007a C3ED007A vstr.32 s15, [r3]
- 508 .L25:
- 118:user_src/soft_adc.c **** }
- 119:user_src/soft_adc.c ****
- 120:user_src/soft_adc.c **** return aver_value;
- 509 .loc 1 120 12
- 510 007e 094B ldr r3, .L29+20
- 511 0080 1B68 ldr r3, [r3] @ float
- 512 0082 07EE903A vmov s15, r3
- 121:user_src/soft_adc.c **** }
- 513 .loc 1 121 1
- 514 0086 B0EE670A vmov.f32 s0, s15
- 515 008a 0837 adds r7, r7, #8
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s page 12
- 516 .LCFI22:
- 517 .cfi_def_cfa_offset 8
- 518 008c BD46 mov sp, r7
- 519 .LCFI23:
- 520 .cfi_def_cfa_register 13
- 521 @ sp needed
- 522 008e 80BD pop {r7, pc}
- 523 .L30:
- 524 .align 2
- 525 .L29:
- 526 0090 00000000 .word ADC_flag
- 527 0094 00000000 .word ADC_buf
- 528 0098 00008045 .word 1166016512
- 529 009c C9764E40 .word 1078884041
- 530 00a0 00007A44 .word 1148846080
- 531 00a4 00000000 .word aver_value
- 532 .cfi_endproc
- 533 .LFE134:
- 535 .section .text.ADC_read_temptrue,"ax",%progbits
- 536 .align 1
- 537 .global ADC_read_temptrue
- 538 .syntax unified
- 539 .thumb
- 540 .thumb_func
- 542 ADC_read_temptrue:
- 543 .LFB135:
- 122:user_src/soft_adc.c ****
- 123:user_src/soft_adc.c ****
- 124:user_src/soft_adc.c **** /**
- 125:user_src/soft_adc.c **** * @file ADC_read_temptrue
- 126:user_src/soft_adc.c **** * @brief ad温度采集
- 127:user_src/soft_adc.c **** * @param None
- 128:user_src/soft_adc.c **** * @details
- 129:user_src/soft_adc.c **** * @author Zhang Sir
- 130:user_src/soft_adc.c **** **/
- 131:user_src/soft_adc.c **** uint16_t ADC_read_temptrue()
- 132:user_src/soft_adc.c **** {
- 544 .loc 1 132 1
- 545 .cfi_startproc
- 546 @ args = 0, pretend = 0, frame = 8
- 547 @ frame_needed = 1, uses_anonymous_args = 0
- 548 0000 80B5 push {r7, lr}
- 549 .LCFI24:
- 550 .cfi_def_cfa_offset 8
- 551 .cfi_offset 7, -8
- 552 .cfi_offset 14, -4
- 553 0002 82B0 sub sp, sp, #8
- 554 .LCFI25:
- 555 .cfi_def_cfa_offset 16
- 556 0004 00AF add r7, sp, #0
- 557 .LCFI26:
- 558 .cfi_def_cfa_register 7
- 133:user_src/soft_adc.c **** uint16_t mcu_temp = 0;
- 559 .loc 1 133 11
- 560 0006 0023 movs r3, #0
- 561 0008 FB80 strh r3, [r7, #6] @ movhi
- 134:user_src/soft_adc.c **** float mcu_temp1 = 0;
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s page 13
- 562 .loc 1 134 11
- 563 000a 4FF00003 mov r3, #0
- 564 000e 3B60 str r3, [r7] @ float
- 135:user_src/soft_adc.c ****
- 136:user_src/soft_adc.c **** mcu_temp = Get_ADCChannelValue(&hadctemp, ADC_CHANNEL_16);
- 565 .loc 1 136 16
- 566 0010 1021 movs r1, #16
- 567 0012 1B48 ldr r0, .L33
- 568 0014 FFF7FEFF bl Get_ADCChannelValue
- 569 0018 0346 mov r3, r0
- 570 001a FB80 strh r3, [r7, #6] @ movhi
- 137:user_src/soft_adc.c **** HAL_ADC_Stop(&hadctemp);
- 571 .loc 1 137 5
- 572 001c 1848 ldr r0, .L33
- 573 001e FFF7FEFF bl HAL_ADC_Stop
- 138:user_src/soft_adc.c ****
- 139:user_src/soft_adc.c **** mcu_temp1 = ( int )( ( 1.43f - mcu_temp * 3.3f / 4096 ) / 0.00043f + 250 ) / 10.0f;
- 574 .loc 1 139 45
- 575 0022 FB88 ldrh r3, [r7, #6]
- 576 0024 07EE903A vmov s15, r3 @ int
- 577 0028 F8EEE77A vcvt.f32.s32 s15, s15
- 578 002c 9FED157A vldr.32 s14, .L33+4
- 579 0030 27EE877A vmul.f32 s14, s15, s14
- 580 .loc 1 139 52
- 581 0034 DFED146A vldr.32 s13, .L33+8
- 582 0038 C7EE267A vdiv.f32 s15, s14, s13
- 583 .loc 1 139 34
- 584 003c 9FED137A vldr.32 s14, .L33+12
- 585 0040 37EE677A vsub.f32 s14, s14, s15
- 586 .loc 1 139 61
- 587 0044 DFED126A vldr.32 s13, .L33+16
- 588 0048 C7EE267A vdiv.f32 s15, s14, s13
- 589 .loc 1 139 72
- 590 004c 9FED117A vldr.32 s14, .L33+20
- 591 0050 77EE877A vadd.f32 s15, s15, s14
- 592 .loc 1 139 17
- 593 0054 FDEEE77A vcvt.s32.f32 s15, s15
- 594 .loc 1 139 80
- 595 0058 B8EEE77A vcvt.f32.s32 s14, s15
- 596 .loc 1 139 15
- 597 005c F2EE046A vmov.f32 s13, #1.0e+1
- 598 0060 C7EE267A vdiv.f32 s15, s14, s13
- 599 0064 C7ED007A vstr.32 s15, [r7]
- 140:user_src/soft_adc.c ****
- 141:user_src/soft_adc.c **** return mcu_temp1;
- 600 .loc 1 141 12
- 601 0068 D7ED007A vldr.32 s15, [r7]
- 602 006c FCEEE77A vcvt.u32.f32 s15, s15
- 603 0070 17EE903A vmov r3, s15 @ int
- 604 0074 9BB2 uxth r3, r3
- 142:user_src/soft_adc.c **** }
- 605 .loc 1 142 1
- 606 0076 1846 mov r0, r3
- 607 0078 0837 adds r7, r7, #8
- 608 .LCFI27:
- 609 .cfi_def_cfa_offset 8
- 610 007a BD46 mov sp, r7
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s page 14
- 611 .LCFI28:
- 612 .cfi_def_cfa_register 13
- 613 @ sp needed
- 614 007c 80BD pop {r7, pc}
- 615 .L34:
- 616 007e 00BF .align 2
- 617 .L33:
- 618 0080 00000000 .word hadctemp
- 619 0084 33335340 .word 1079194419
- 620 0088 00008045 .word 1166016512
- 621 008c 3D0AB73F .word 1068960317
- 622 0090 9F71E139 .word 971075999
- 623 0094 00007A43 .word 1132068864
- 624 .cfi_endproc
- 625 .LFE135:
- 627 .section .bss.adc_time.0,"aw",%nobits
- 628 .align 2
- 631 adc_time.0:
- 632 0000 00000000 .space 4
- 633 .text
- 634 .Letext0:
- 635 .file 2 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h"
- 636 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h"
- 637 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h"
- 638 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h"
- 639 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
- 640 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h"
- 641 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_adc_ex.h"
- 642 .file 9 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_adc.h"
- 643 .file 10 "Core/Inc/adc.h"
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s page 15
- DEFINED SYMBOLS
- *ABS*:00000000 soft_adc.c
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:24 .bss.ADC_value:00000000 ADC_value
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:21 .bss.ADC_value:00000000 $d
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:31 .bss.aver_value:00000000 aver_value
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:28 .bss.aver_value:00000000 $d
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:37 .bss.adc_cnt:00000000 adc_cnt
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:38 .bss.adc_cnt:00000000 $d
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:44 .bss.ADC_flag:00000000 ADC_flag
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:41 .bss.ADC_flag:00000000 $d
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:47 .text.HAL_ADC_ConvCpltCallback:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:53 .text.HAL_ADC_ConvCpltCallback:00000000 HAL_ADC_ConvCpltCallback
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:93 .text.HAL_ADC_ConvCpltCallback:0000001c $d
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:98 .text.buf_sort:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:104 .text.buf_sort:00000000 buf_sort
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:244 .text.Get_ADCChannelValue:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:250 .text.Get_ADCChannelValue:00000000 Get_ADCChannelValue
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:322 .bss.ADC_buf:00000000 $d
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:325 .bss.ADC_buf:00000000 ADC_buf
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:332 .bss.ADC_temp:00000000 ADC_temp
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:329 .bss.ADC_temp:00000000 $d
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:335 .text.adc_gather_hz:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:341 .text.adc_gather_hz:00000000 adc_gather_hz
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:414 .text.adc_gather_hz:00000064 $d
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:631 .bss.adc_time.0:00000000 adc_time.0
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:422 .text.ADC_gather:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:428 .text.ADC_gather:00000000 ADC_gather
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:526 .text.ADC_gather:00000090 $d
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:536 .text.ADC_read_temptrue:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:542 .text.ADC_read_temptrue:00000000 ADC_read_temptrue
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:618 .text.ADC_read_temptrue:00000080 $d
- C:\Users\zl835\AppData\Local\Temp\ccdrowJQ.s:628 .bss.adc_time.0:00000000 $d
- UNDEFINED SYMBOLS
- HAL_ADC_ConfigChannel
- Error_Handler
- HAL_ADC_Start_IT
- HAL_ADC_PollForConversion
- HAL_ADC_GetValue
- HAL_GetTick
- HAL_ADC_Stop
- hadc1
- hadctemp
|