ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.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_test.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .global UART3_send_buf 20 .section .data.UART3_send_buf,"aw" 21 .align 2 24 UART3_send_buf: 25 0000 00010203 .ascii "\000\001\002\003\004\005\006\007" 25 04050607 26 .section .text.uart_send_msg,"ax",%progbits 27 .align 1 28 .global uart_send_msg 29 .syntax unified 30 .thumb 31 .thumb_func 33 uart_send_msg: 34 .LFB133: 35 .file 1 "user_src/soft_test.c" 1:user_src/soft_test.c **** #include "soft_test.h" 2:user_src/soft_test.c **** #include "main.h" 3:user_src/soft_test.c **** #include "tim.h" 4:user_src/soft_test.c **** #include "soft_can.h" 5:user_src/soft_test.c **** #include "soft_uart.h" 6:user_src/soft_test.c **** #include "can.h" 7:user_src/soft_test.c **** #include "usart.h" 8:user_src/soft_test.c **** #include "soft_terrain.h" 9:user_src/soft_test.c **** #include "soft_obstacle.h" 10:user_src/soft_test.c **** #include "soft_p_2_c.h" 11:user_src/soft_test.c **** #include "soft_flash.h" 12:user_src/soft_test.c **** #include "soft_obstacle.h" 13:user_src/soft_test.c **** #include "string.h" 14:user_src/soft_test.c **** #include "can_debug.h" 15:user_src/soft_test.c **** #include "soft_version.h" 16:user_src/soft_test.c **** #include "config.h" 17:user_src/soft_test.c **** 18:user_src/soft_test.c **** /****************************************************************** 19:user_src/soft_test.c **** * ****************测试程序***************************************** 20:user_src/soft_test.c **** * ****************************************************************/ 21:user_src/soft_test.c **** uint8_t UART3_send_buf[8] = {0, 1, 2, 3, 4, 5, 6, 7}; //DMA发送 不能用局部变量 可以使 22:user_src/soft_test.c **** void uart_send_msg(void) 23:user_src/soft_test.c **** { 36 .loc 1 23 1 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 2 37 .cfi_startproc 38 @ args = 0, pretend = 0, frame = 8 39 @ frame_needed = 1, uses_anonymous_args = 0 40 0000 80B5 push {r7, lr} 41 .LCFI0: 42 .cfi_def_cfa_offset 8 43 .cfi_offset 7, -8 44 .cfi_offset 14, -4 45 0002 82B0 sub sp, sp, #8 46 .LCFI1: 47 .cfi_def_cfa_offset 16 48 0004 00AF add r7, sp, #0 49 .LCFI2: 50 .cfi_def_cfa_register 7 24:user_src/soft_test.c **** static uint32_t uart_time = 0; 25:user_src/soft_test.c **** if (HAL_GetTick() - uart_time < 100) 51 .loc 1 25 7 52 0006 FFF7FEFF bl HAL_GetTick 53 000a 0246 mov r2, r0 54 .loc 1 25 21 55 000c 0D4B ldr r3, .L5 56 000e 1B68 ldr r3, [r3] 57 0010 D31A subs r3, r2, r3 58 .loc 1 25 6 59 0012 632B cmp r3, #99 60 0014 11D9 bls .L4 26:user_src/soft_test.c **** { 27:user_src/soft_test.c **** return; 28:user_src/soft_test.c **** } 29:user_src/soft_test.c **** else 30:user_src/soft_test.c **** { 31:user_src/soft_test.c **** uart_time = HAL_GetTick(); 61 .loc 1 31 17 62 0016 FFF7FEFF bl HAL_GetTick 63 001a 0346 mov r3, r0 64 .loc 1 31 15 65 001c 094A ldr r2, .L5 66 001e 1360 str r3, [r2] 32:user_src/soft_test.c **** } 33:user_src/soft_test.c **** 34:user_src/soft_test.c **** uint32_t cur_time = HAL_GetTick(); 67 .loc 1 34 23 68 0020 FFF7FEFF bl HAL_GetTick 69 0024 0346 mov r3, r0 70 .loc 1 34 12 71 0026 7B60 str r3, [r7, #4] 72 0028 7B68 ldr r3, [r7, #4] 35:user_src/soft_test.c **** memcpy(&UART3_send_buf[0],&cur_time,4); 73 .loc 1 35 3 74 002a 074A ldr r2, .L5+4 75 002c 1360 str r3, [r2] 36:user_src/soft_test.c **** //HAL_UART_Transmit(&huart3,&UART3_send_buf[i],1,0xFFFF); 37:user_src/soft_test.c **** //HAL_UART_Transmit_DMA(&huart2, UART2_send_buf, 8); //DMA发送数据 38:user_src/soft_test.c **** //HAL_UART_Transmit(&huart2,&UART2_send_buf[i],1,0xFFFF); 39:user_src/soft_test.c **** /* 40:user_src/soft_test.c **** while (huart3.gState == HAL_UART_STATE_READY) 41:user_src/soft_test.c **** { ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 3 42:user_src/soft_test.c **** assd++; 43:user_src/soft_test.c **** } 44:user_src/soft_test.c **** */ 45:user_src/soft_test.c **** HAL_UART_Transmit_DMA(&huart3, UART3_send_buf, 4); 76 .loc 1 45 3 77 002e 0422 movs r2, #4 78 0030 0549 ldr r1, .L5+4 79 0032 0648 ldr r0, .L5+8 80 0034 FFF7FEFF bl HAL_UART_Transmit_DMA 81 0038 00E0 b .L1 82 .L4: 27:user_src/soft_test.c **** } 83 .loc 1 27 5 84 003a 00BF nop 85 .L1: 46:user_src/soft_test.c **** } 86 .loc 1 46 1 87 003c 0837 adds r7, r7, #8 88 .LCFI3: 89 .cfi_def_cfa_offset 8 90 003e BD46 mov sp, r7 91 .LCFI4: 92 .cfi_def_cfa_register 13 93 @ sp needed 94 0040 80BD pop {r7, pc} 95 .L6: 96 0042 00BF .align 2 97 .L5: 98 0044 00000000 .word uart_time.2 99 0048 00000000 .word UART3_send_buf 100 004c 00000000 .word huart3 101 .cfi_endproc 102 .LFE133: 104 .section .text.ttest_func,"ax",%progbits 105 .align 1 106 .global ttest_func 107 .syntax unified 108 .thumb 109 .thumb_func 111 ttest_func: 112 .LFB134: 47:user_src/soft_test.c **** 48:user_src/soft_test.c **** 49:user_src/soft_test.c **** void ttest_func(void) 50:user_src/soft_test.c **** { 113 .loc 1 50 1 114 .cfi_startproc 115 @ args = 0, pretend = 0, frame = 0 116 @ frame_needed = 1, uses_anonymous_args = 0 117 @ link register save eliminated. 118 0000 80B4 push {r7} 119 .LCFI5: 120 .cfi_def_cfa_offset 4 121 .cfi_offset 7, -4 122 0002 00AF add r7, sp, #0 123 .LCFI6: 124 .cfi_def_cfa_register 7 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 4 51:user_src/soft_test.c **** /* 52:user_src/soft_test.c **** if (HAL_GetTick() - led_time > 1000 && HAL_GetTick() > 10000) 53:user_src/soft_test.c **** { 54:user_src/soft_test.c **** HAL_GPIO_TogglePin(GPIOA,LED2_Pin); 55:user_src/soft_test.c **** led_time = HAL_GetTick(); 56:user_src/soft_test.c **** } 57:user_src/soft_test.c **** 58:user_src/soft_test.c **** if ((HAL_GetTick() > 5000) && (a == 1)) 59:user_src/soft_test.c **** { 60:user_src/soft_test.c **** __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, 1300); 61:user_src/soft_test.c **** __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_2, 1700); 62:user_src/soft_test.c **** __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, 1700); 63:user_src/soft_test.c **** __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, 1700); 64:user_src/soft_test.c **** a = 0; 65:user_src/soft_test.c **** } 66:user_src/soft_test.c **** */ 67:user_src/soft_test.c **** //5HZ 发送CAN 68:user_src/soft_test.c **** 69:user_src/soft_test.c **** //uart_send_msg(); 70:user_src/soft_test.c **** 71:user_src/soft_test.c **** //HAL_GPIO_WritePin(GPIOA, LED1_Pin, SET); //蓝色 72:user_src/soft_test.c **** //HAL_GPIO_WritePin(GPIOA, LED2_Pin, SET); //红色 73:user_src/soft_test.c **** //HAL_GPIO_WritePin(GPIOA, LED3_Pin, SET); //绿色 74:user_src/soft_test.c **** } 125 .loc 1 74 1 126 0004 00BF nop 127 0006 BD46 mov sp, r7 128 .LCFI7: 129 .cfi_def_cfa_register 13 130 @ sp needed 131 0008 5DF8047B ldr r7, [sp], #4 132 .LCFI8: 133 .cfi_restore 7 134 .cfi_def_cfa_offset 0 135 000c 7047 bx lr 136 .cfi_endproc 137 .LFE134: 139 .global led_time_green 140 .section .bss.led_time_green,"aw",%nobits 141 .align 2 144 led_time_green: 145 0000 00000000 .space 4 146 .global led_time_purple 147 .section .bss.led_time_purple,"aw",%nobits 148 .align 2 151 led_time_purple: 152 0000 00000000 .space 4 153 .global led_time_blue 154 .section .bss.led_time_blue,"aw",%nobits 155 .align 2 158 led_time_blue: 159 0000 00000000 .space 4 160 .global led_time_yellow 161 .section .bss.led_time_yellow,"aw",%nobits 162 .align 2 165 led_time_yellow: 166 0000 00000000 .space 4 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 5 167 .global led_green 168 .section .bss.led_green,"aw",%nobits 171 led_green: 172 0000 00 .space 1 173 .global led_purple 174 .section .bss.led_purple,"aw",%nobits 177 led_purple: 178 0000 00 .space 1 179 .global led_blue 180 .section .bss.led_blue,"aw",%nobits 183 led_blue: 184 0000 00 .space 1 185 .global led_yellow 186 .section .bss.led_yellow,"aw",%nobits 189 led_yellow: 190 0000 00 .space 1 191 .global only_star_one_green 192 .section .bss.only_star_one_green,"aw",%nobits 195 only_star_one_green: 196 0000 00 .space 1 197 .global only_star_one_purple 198 .section .bss.only_star_one_purple,"aw",%nobits 201 only_star_one_purple: 202 0000 00 .space 1 203 .global only_star_one_blue 204 .section .bss.only_star_one_blue,"aw",%nobits 207 only_star_one_blue: 208 0000 00 .space 1 209 .global only_star_one_yellow 210 .section .bss.only_star_one_yellow,"aw",%nobits 213 only_star_one_yellow: 214 0000 00 .space 1 215 .global no_led_star 216 .section .bss.no_led_star,"aw",%nobits 219 no_led_star: 220 0000 00 .space 1 221 .section .text.pmu_inside_led,"ax",%progbits 222 .align 1 223 .global pmu_inside_led 224 .syntax unified 225 .thumb 226 .thumb_func 228 pmu_inside_led: 229 .LFB135: 75:user_src/soft_test.c **** 76:user_src/soft_test.c **** uint32_t led_time_green = 0; 77:user_src/soft_test.c **** uint32_t led_time_purple = 0; 78:user_src/soft_test.c **** uint32_t led_time_blue = 0; 79:user_src/soft_test.c **** uint32_t led_time_yellow = 0; 80:user_src/soft_test.c **** 81:user_src/soft_test.c **** bool led_green = false; 82:user_src/soft_test.c **** bool led_purple = false; 83:user_src/soft_test.c **** bool led_blue = false; 84:user_src/soft_test.c **** bool led_yellow = false; 85:user_src/soft_test.c **** 86:user_src/soft_test.c **** bool only_star_one_green = false; 87:user_src/soft_test.c **** bool only_star_one_purple = false; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 6 88:user_src/soft_test.c **** bool only_star_one_blue = false; 89:user_src/soft_test.c **** bool only_star_one_yellow = false; 90:user_src/soft_test.c **** 91:user_src/soft_test.c **** bool no_led_star = false; 92:user_src/soft_test.c **** 93:user_src/soft_test.c **** 94:user_src/soft_test.c **** 95:user_src/soft_test.c **** /** 96:user_src/soft_test.c **** * @file pmu_inside_led 97:user_src/soft_test.c **** * @brief 板载LED灯 98:user_src/soft_test.c **** * @param None 99:user_src/soft_test.c **** * @details 绿:正常 --紫色:仿地 --蓝:前避 -- 黄:后避 100:user_src/soft_test.c **** * @author Zhang Sir 101:user_src/soft_test.c **** **/ 102:user_src/soft_test.c **** void pmu_inside_led() 103:user_src/soft_test.c **** { 230 .loc 1 103 1 231 .cfi_startproc 232 @ args = 0, pretend = 0, frame = 0 233 @ frame_needed = 1, uses_anonymous_args = 0 234 0000 80B5 push {r7, lr} 235 .LCFI9: 236 .cfi_def_cfa_offset 8 237 .cfi_offset 7, -8 238 .cfi_offset 14, -4 239 0002 00AF add r7, sp, #0 240 .LCFI10: 241 .cfi_def_cfa_register 7 104:user_src/soft_test.c **** if (led_green == false && led_purple == false && led_blue == false && led_green == false && led_y 242 .loc 1 104 17 243 0004 934B ldr r3, .L20 244 0006 1B78 ldrb r3, [r3] @ zero_extendqisi2 245 0008 83F00103 eor r3, r3, #1 246 000c DBB2 uxtb r3, r3 247 .loc 1 104 6 248 000e 002B cmp r3, #0 249 0010 1FD0 beq .L9 250 .loc 1 104 40 discriminator 1 251 0012 914B ldr r3, .L20+4 252 0014 1B78 ldrb r3, [r3] @ zero_extendqisi2 253 0016 83F00103 eor r3, r3, #1 254 001a DBB2 uxtb r3, r3 255 .loc 1 104 26 discriminator 1 256 001c 002B cmp r3, #0 257 001e 18D0 beq .L9 258 .loc 1 104 61 discriminator 2 259 0020 8E4B ldr r3, .L20+8 260 0022 1B78 ldrb r3, [r3] @ zero_extendqisi2 261 0024 83F00103 eor r3, r3, #1 262 0028 DBB2 uxtb r3, r3 263 .loc 1 104 49 discriminator 2 264 002a 002B cmp r3, #0 265 002c 11D0 beq .L9 266 .loc 1 104 83 discriminator 3 267 002e 894B ldr r3, .L20 268 0030 1B78 ldrb r3, [r3] @ zero_extendqisi2 269 0032 83F00103 eor r3, r3, #1 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 7 270 0036 DBB2 uxtb r3, r3 271 .loc 1 104 70 discriminator 3 272 0038 002B cmp r3, #0 273 003a 0AD0 beq .L9 274 .loc 1 104 106 discriminator 4 275 003c 884B ldr r3, .L20+12 276 003e 1B78 ldrb r3, [r3] @ zero_extendqisi2 277 0040 83F00103 eor r3, r3, #1 278 0044 DBB2 uxtb r3, r3 279 .loc 1 104 92 discriminator 4 280 0046 002B cmp r3, #0 281 0048 03D0 beq .L9 105:user_src/soft_test.c **** { 106:user_src/soft_test.c **** no_led_star = true; 282 .loc 1 106 17 283 004a 864B ldr r3, .L20+16 284 004c 0122 movs r2, #1 285 004e 1A70 strb r2, [r3] 286 0050 02E0 b .L10 287 .L9: 107:user_src/soft_test.c **** } 108:user_src/soft_test.c **** else 109:user_src/soft_test.c **** { 110:user_src/soft_test.c **** no_led_star = false; 288 .loc 1 110 17 289 0052 844B ldr r3, .L20+16 290 0054 0022 movs r2, #0 291 0056 1A70 strb r2, [r3] 292 .L10: 111:user_src/soft_test.c **** } 112:user_src/soft_test.c **** 113:user_src/soft_test.c **** //正常闪绿灯 设备连接后依次闪其他颜色 114:user_src/soft_test.c **** if ((HAL_GetTick() - led_time_green > 2500) && (no_led_star == true) && 293 .loc 1 114 8 294 0058 FFF7FEFF bl HAL_GetTick 295 005c 0246 mov r2, r0 296 .loc 1 114 22 297 005e 824B ldr r3, .L20+20 298 0060 1B68 ldr r3, [r3] 299 0062 D31A subs r3, r2, r3 300 .loc 1 114 6 301 0064 40F6C412 movw r2, #2500 302 0068 9342 cmp r3, r2 303 006a 25D9 bls .L11 304 .loc 1 114 63 discriminator 1 305 006c 7D4B ldr r3, .L20+16 306 006e 1B78 ldrb r3, [r3] @ zero_extendqisi2 307 .loc 1 114 47 discriminator 1 308 0070 002B cmp r3, #0 309 0072 21D0 beq .L11 115:user_src/soft_test.c **** (only_star_one_green == false)) 310 .loc 1 115 28 discriminator 2 311 0074 7D4B ldr r3, .L20+24 312 0076 1B78 ldrb r3, [r3] @ zero_extendqisi2 313 0078 83F00103 eor r3, r3, #1 314 007c DBB2 uxtb r3, r3 114:user_src/soft_test.c **** (only_star_one_green == false)) ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 8 315 .loc 1 114 72 discriminator 2 316 007e 002B cmp r3, #0 317 0080 1AD0 beq .L11 116:user_src/soft_test.c **** { 117:user_src/soft_test.c **** HAL_GPIO_WritePin(GPIOA, LED3_Pin, GPIO_PIN_RESET); 318 .loc 1 117 5 319 0082 0022 movs r2, #0 320 0084 4021 movs r1, #64 321 0086 4FF09040 mov r0, #1207959552 322 008a FFF7FEFF bl HAL_GPIO_WritePin 118:user_src/soft_test.c **** led_time_green = HAL_GetTick(); 323 .loc 1 118 22 324 008e FFF7FEFF bl HAL_GetTick 325 0092 0346 mov r3, r0 326 .loc 1 118 20 327 0094 744A ldr r2, .L20+20 328 0096 1360 str r3, [r2] 119:user_src/soft_test.c **** led_green = true; 329 .loc 1 119 15 330 0098 6E4B ldr r3, .L20 331 009a 0122 movs r2, #1 332 009c 1A70 strb r2, [r3] 120:user_src/soft_test.c **** 121:user_src/soft_test.c **** only_star_one_green = true; 333 .loc 1 121 25 334 009e 734B ldr r3, .L20+24 335 00a0 0122 movs r2, #1 336 00a2 1A70 strb r2, [r3] 122:user_src/soft_test.c **** only_star_one_purple = true; 337 .loc 1 122 26 338 00a4 724B ldr r3, .L20+28 339 00a6 0122 movs r2, #1 340 00a8 1A70 strb r2, [r3] 123:user_src/soft_test.c **** only_star_one_blue = true; 341 .loc 1 123 24 342 00aa 724B ldr r3, .L20+32 343 00ac 0122 movs r2, #1 344 00ae 1A70 strb r2, [r3] 124:user_src/soft_test.c **** only_star_one_yellow = true; 345 .loc 1 124 26 346 00b0 714B ldr r3, .L20+36 347 00b2 0122 movs r2, #1 348 00b4 1A70 strb r2, [r3] 349 00b6 5BE0 b .L12 350 .L11: 125:user_src/soft_test.c **** } 126:user_src/soft_test.c **** else if (terrain_is_link == true && no_led_star == true && only_star_one_purple == true) 351 .loc 1 126 28 352 00b8 704B ldr r3, .L20+40 353 00ba 1B78 ldrb r3, [r3] @ zero_extendqisi2 354 .loc 1 126 11 355 00bc 002B cmp r3, #0 356 00be 1CD0 beq .L13 357 .loc 1 126 51 discriminator 1 358 00c0 684B ldr r3, .L20+16 359 00c2 1B78 ldrb r3, [r3] @ zero_extendqisi2 360 .loc 1 126 36 discriminator 1 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 9 361 00c4 002B cmp r3, #0 362 00c6 18D0 beq .L13 363 .loc 1 126 83 discriminator 2 364 00c8 694B ldr r3, .L20+28 365 00ca 1B78 ldrb r3, [r3] @ zero_extendqisi2 366 .loc 1 126 59 discriminator 2 367 00cc 002B cmp r3, #0 368 00ce 14D0 beq .L13 127:user_src/soft_test.c **** { 128:user_src/soft_test.c **** HAL_GPIO_WritePin(GPIOA, LED2_Pin, GPIO_PIN_RESET); 369 .loc 1 128 5 370 00d0 0022 movs r2, #0 371 00d2 2021 movs r1, #32 372 00d4 4FF09040 mov r0, #1207959552 373 00d8 FFF7FEFF bl HAL_GPIO_WritePin 129:user_src/soft_test.c **** HAL_GPIO_WritePin(GPIOA, LED1_Pin, GPIO_PIN_RESET); 374 .loc 1 129 5 375 00dc 0022 movs r2, #0 376 00de 1021 movs r1, #16 377 00e0 4FF09040 mov r0, #1207959552 378 00e4 FFF7FEFF bl HAL_GPIO_WritePin 130:user_src/soft_test.c **** led_time_purple = HAL_GetTick(); 379 .loc 1 130 23 380 00e8 FFF7FEFF bl HAL_GetTick 381 00ec 0346 mov r3, r0 382 .loc 1 130 21 383 00ee 644A ldr r2, .L20+44 384 00f0 1360 str r3, [r2] 131:user_src/soft_test.c **** led_purple = true; 385 .loc 1 131 16 386 00f2 594B ldr r3, .L20+4 387 00f4 0122 movs r2, #1 388 00f6 1A70 strb r2, [r3] 389 00f8 3AE0 b .L12 390 .L13: 132:user_src/soft_test.c **** } 133:user_src/soft_test.c **** else if (obs_f_is_link == true && no_led_star == true && only_star_one_blue == true) 391 .loc 1 133 26 392 00fa 624B ldr r3, .L20+48 393 00fc 1B78 ldrb r3, [r3] @ zero_extendqisi2 394 .loc 1 133 11 395 00fe 002B cmp r3, #0 396 0100 16D0 beq .L14 397 .loc 1 133 49 discriminator 1 398 0102 584B ldr r3, .L20+16 399 0104 1B78 ldrb r3, [r3] @ zero_extendqisi2 400 .loc 1 133 34 discriminator 1 401 0106 002B cmp r3, #0 402 0108 12D0 beq .L14 403 .loc 1 133 79 discriminator 2 404 010a 5A4B ldr r3, .L20+32 405 010c 1B78 ldrb r3, [r3] @ zero_extendqisi2 406 .loc 1 133 57 discriminator 2 407 010e 002B cmp r3, #0 408 0110 0ED0 beq .L14 134:user_src/soft_test.c **** { 135:user_src/soft_test.c **** HAL_GPIO_WritePin(GPIOA, LED1_Pin, GPIO_PIN_RESET); ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 10 409 .loc 1 135 5 410 0112 0022 movs r2, #0 411 0114 1021 movs r1, #16 412 0116 4FF09040 mov r0, #1207959552 413 011a FFF7FEFF bl HAL_GPIO_WritePin 136:user_src/soft_test.c **** led_time_blue = HAL_GetTick(); 414 .loc 1 136 21 415 011e FFF7FEFF bl HAL_GetTick 416 0122 0346 mov r3, r0 417 .loc 1 136 19 418 0124 584A ldr r2, .L20+52 419 0126 1360 str r3, [r2] 137:user_src/soft_test.c **** led_blue = true; 420 .loc 1 137 14 421 0128 4C4B ldr r3, .L20+8 422 012a 0122 movs r2, #1 423 012c 1A70 strb r2, [r3] 424 012e 1FE0 b .L12 425 .L14: 138:user_src/soft_test.c **** } 139:user_src/soft_test.c **** else if (obs_b_is_link == true && no_led_star == true && only_star_one_yellow == true) 426 .loc 1 139 26 427 0130 564B ldr r3, .L20+56 428 0132 1B78 ldrb r3, [r3] @ zero_extendqisi2 429 .loc 1 139 11 430 0134 002B cmp r3, #0 431 0136 1BD0 beq .L12 432 .loc 1 139 49 discriminator 1 433 0138 4A4B ldr r3, .L20+16 434 013a 1B78 ldrb r3, [r3] @ zero_extendqisi2 435 .loc 1 139 34 discriminator 1 436 013c 002B cmp r3, #0 437 013e 17D0 beq .L12 438 .loc 1 139 81 discriminator 2 439 0140 4D4B ldr r3, .L20+36 440 0142 1B78 ldrb r3, [r3] @ zero_extendqisi2 441 .loc 1 139 57 discriminator 2 442 0144 002B cmp r3, #0 443 0146 13D0 beq .L12 140:user_src/soft_test.c **** { 141:user_src/soft_test.c **** HAL_GPIO_WritePin(GPIOA, LED3_Pin, GPIO_PIN_RESET); 444 .loc 1 141 5 445 0148 0022 movs r2, #0 446 014a 4021 movs r1, #64 447 014c 4FF09040 mov r0, #1207959552 448 0150 FFF7FEFF bl HAL_GPIO_WritePin 142:user_src/soft_test.c **** HAL_GPIO_WritePin(GPIOA, LED2_Pin, GPIO_PIN_RESET); 449 .loc 1 142 5 450 0154 0022 movs r2, #0 451 0156 2021 movs r1, #32 452 0158 4FF09040 mov r0, #1207959552 453 015c FFF7FEFF bl HAL_GPIO_WritePin 143:user_src/soft_test.c **** led_time_yellow = HAL_GetTick(); 454 .loc 1 143 23 455 0160 FFF7FEFF bl HAL_GetTick 456 0164 0346 mov r3, r0 457 .loc 1 143 21 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 11 458 0166 4A4A ldr r2, .L20+60 459 0168 1360 str r3, [r2] 144:user_src/soft_test.c **** led_yellow = true; 460 .loc 1 144 16 461 016a 3D4B ldr r3, .L20+12 462 016c 0122 movs r2, #1 463 016e 1A70 strb r2, [r3] 464 .L12: 145:user_src/soft_test.c **** } 146:user_src/soft_test.c **** 147:user_src/soft_test.c **** //灭灯 148:user_src/soft_test.c **** if ((HAL_GetTick() - led_time_green >= 500) && led_green == true) 465 .loc 1 148 8 466 0170 FFF7FEFF bl HAL_GetTick 467 0174 0246 mov r2, r0 468 .loc 1 148 22 469 0176 3C4B ldr r3, .L20+20 470 0178 1B68 ldr r3, [r3] 471 017a D31A subs r3, r2, r3 472 .loc 1 148 6 473 017c B3F5FA7F cmp r3, #500 474 0180 0FD3 bcc .L15 475 .loc 1 148 60 discriminator 1 476 0182 344B ldr r3, .L20 477 0184 1B78 ldrb r3, [r3] @ zero_extendqisi2 478 .loc 1 148 47 discriminator 1 479 0186 002B cmp r3, #0 480 0188 0BD0 beq .L15 149:user_src/soft_test.c **** { 150:user_src/soft_test.c **** HAL_GPIO_WritePin(GPIOA, LED3_Pin, GPIO_PIN_SET); 481 .loc 1 150 5 482 018a 0122 movs r2, #1 483 018c 4021 movs r1, #64 484 018e 4FF09040 mov r0, #1207959552 485 0192 FFF7FEFF bl HAL_GPIO_WritePin 151:user_src/soft_test.c **** led_green = false; 486 .loc 1 151 15 487 0196 2F4B ldr r3, .L20 488 0198 0022 movs r2, #0 489 019a 1A70 strb r2, [r3] 152:user_src/soft_test.c **** only_star_one_green = false; 490 .loc 1 152 25 491 019c 334B ldr r3, .L20+24 492 019e 0022 movs r2, #0 493 01a0 1A70 strb r2, [r3] 494 .L15: 153:user_src/soft_test.c **** } 154:user_src/soft_test.c **** if ((HAL_GetTick() - led_time_purple >= 500) && led_purple == true) 495 .loc 1 154 8 496 01a2 FFF7FEFF bl HAL_GetTick 497 01a6 0246 mov r2, r0 498 .loc 1 154 22 499 01a8 354B ldr r3, .L20+44 500 01aa 1B68 ldr r3, [r3] 501 01ac D31A subs r3, r2, r3 502 .loc 1 154 6 503 01ae B3F5FA7F cmp r3, #500 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 12 504 01b2 15D3 bcc .L16 505 .loc 1 154 62 discriminator 1 506 01b4 284B ldr r3, .L20+4 507 01b6 1B78 ldrb r3, [r3] @ zero_extendqisi2 508 .loc 1 154 48 discriminator 1 509 01b8 002B cmp r3, #0 510 01ba 11D0 beq .L16 155:user_src/soft_test.c **** { 156:user_src/soft_test.c **** HAL_GPIO_WritePin(GPIOA, LED2_Pin, GPIO_PIN_SET); 511 .loc 1 156 5 512 01bc 0122 movs r2, #1 513 01be 2021 movs r1, #32 514 01c0 4FF09040 mov r0, #1207959552 515 01c4 FFF7FEFF bl HAL_GPIO_WritePin 157:user_src/soft_test.c **** HAL_GPIO_WritePin(GPIOA, LED1_Pin, GPIO_PIN_SET); 516 .loc 1 157 5 517 01c8 0122 movs r2, #1 518 01ca 1021 movs r1, #16 519 01cc 4FF09040 mov r0, #1207959552 520 01d0 FFF7FEFF bl HAL_GPIO_WritePin 158:user_src/soft_test.c **** led_purple = false; 521 .loc 1 158 16 522 01d4 204B ldr r3, .L20+4 523 01d6 0022 movs r2, #0 524 01d8 1A70 strb r2, [r3] 159:user_src/soft_test.c **** only_star_one_purple = false; 525 .loc 1 159 26 526 01da 254B ldr r3, .L20+28 527 01dc 0022 movs r2, #0 528 01de 1A70 strb r2, [r3] 529 .L16: 160:user_src/soft_test.c **** } 161:user_src/soft_test.c **** if ((HAL_GetTick() - led_time_blue >= 500) && led_blue == true) 530 .loc 1 161 8 531 01e0 FFF7FEFF bl HAL_GetTick 532 01e4 0246 mov r2, r0 533 .loc 1 161 22 534 01e6 284B ldr r3, .L20+52 535 01e8 1B68 ldr r3, [r3] 536 01ea D31A subs r3, r2, r3 537 .loc 1 161 6 538 01ec B3F5FA7F cmp r3, #500 539 01f0 0FD3 bcc .L17 540 .loc 1 161 58 discriminator 1 541 01f2 1A4B ldr r3, .L20+8 542 01f4 1B78 ldrb r3, [r3] @ zero_extendqisi2 543 .loc 1 161 46 discriminator 1 544 01f6 002B cmp r3, #0 545 01f8 0BD0 beq .L17 162:user_src/soft_test.c **** { 163:user_src/soft_test.c **** HAL_GPIO_WritePin(GPIOA, LED1_Pin, GPIO_PIN_SET); 546 .loc 1 163 5 547 01fa 0122 movs r2, #1 548 01fc 1021 movs r1, #16 549 01fe 4FF09040 mov r0, #1207959552 550 0202 FFF7FEFF bl HAL_GPIO_WritePin 164:user_src/soft_test.c **** led_blue = false; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 13 551 .loc 1 164 14 552 0206 154B ldr r3, .L20+8 553 0208 0022 movs r2, #0 554 020a 1A70 strb r2, [r3] 165:user_src/soft_test.c **** only_star_one_blue = false; 555 .loc 1 165 24 556 020c 194B ldr r3, .L20+32 557 020e 0022 movs r2, #0 558 0210 1A70 strb r2, [r3] 559 .L17: 166:user_src/soft_test.c **** } 167:user_src/soft_test.c **** if ((HAL_GetTick() - led_time_yellow >= 500) && led_yellow == true) 560 .loc 1 167 8 561 0212 FFF7FEFF bl HAL_GetTick 562 0216 0246 mov r2, r0 563 .loc 1 167 22 564 0218 1D4B ldr r3, .L20+60 565 021a 1B68 ldr r3, [r3] 566 021c D31A subs r3, r2, r3 567 .loc 1 167 6 568 021e B3F5FA7F cmp r3, #500 569 0222 15D3 bcc .L19 570 .loc 1 167 62 discriminator 1 571 0224 0E4B ldr r3, .L20+12 572 0226 1B78 ldrb r3, [r3] @ zero_extendqisi2 573 .loc 1 167 48 discriminator 1 574 0228 002B cmp r3, #0 575 022a 11D0 beq .L19 168:user_src/soft_test.c **** { 169:user_src/soft_test.c **** HAL_GPIO_WritePin(GPIOA, LED2_Pin, GPIO_PIN_SET); 576 .loc 1 169 5 577 022c 0122 movs r2, #1 578 022e 2021 movs r1, #32 579 0230 4FF09040 mov r0, #1207959552 580 0234 FFF7FEFF bl HAL_GPIO_WritePin 170:user_src/soft_test.c **** HAL_GPIO_WritePin(GPIOA, LED3_Pin, GPIO_PIN_SET); 581 .loc 1 170 5 582 0238 0122 movs r2, #1 583 023a 4021 movs r1, #64 584 023c 4FF09040 mov r0, #1207959552 585 0240 FFF7FEFF bl HAL_GPIO_WritePin 171:user_src/soft_test.c **** led_yellow = false; 586 .loc 1 171 16 587 0244 064B ldr r3, .L20+12 588 0246 0022 movs r2, #0 589 0248 1A70 strb r2, [r3] 172:user_src/soft_test.c **** only_star_one_yellow = false; 590 .loc 1 172 26 591 024a 0B4B ldr r3, .L20+36 592 024c 0022 movs r2, #0 593 024e 1A70 strb r2, [r3] 594 .L19: 173:user_src/soft_test.c **** } 174:user_src/soft_test.c **** //ttest_func(); 175:user_src/soft_test.c **** 176:user_src/soft_test.c **** } 595 .loc 1 176 1 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 14 596 0250 00BF nop 597 0252 80BD pop {r7, pc} 598 .L21: 599 .align 2 600 .L20: 601 0254 00000000 .word led_green 602 0258 00000000 .word led_purple 603 025c 00000000 .word led_blue 604 0260 00000000 .word led_yellow 605 0264 00000000 .word no_led_star 606 0268 00000000 .word led_time_green 607 026c 00000000 .word only_star_one_green 608 0270 00000000 .word only_star_one_purple 609 0274 00000000 .word only_star_one_blue 610 0278 00000000 .word only_star_one_yellow 611 027c 00000000 .word terrain_is_link 612 0280 00000000 .word led_time_purple 613 0284 00000000 .word obs_f_is_link 614 0288 00000000 .word led_time_blue 615 028c 00000000 .word obs_b_is_link 616 0290 00000000 .word led_time_yellow 617 .cfi_endproc 618 .LFE135: 620 .global recv_vk_protocol 621 .section .bss.recv_vk_protocol,"aw",%nobits 622 .align 2 625 recv_vk_protocol: 626 0000 00000000 .space 1024 626 00000000 626 00000000 626 00000000 626 00000000 627 .global candebug_protocol 628 .section .bss.candebug_protocol,"aw",%nobits 629 .align 2 632 candebug_protocol: 633 0000 00000000 .space 512 633 00000000 633 00000000 633 00000000 633 00000000 634 .global send_uart_buffer 635 .section .bss.send_uart_buffer,"aw",%nobits 636 .align 2 639 send_uart_buffer: 640 0000 00000000 .space 2048 640 00000000 640 00000000 640 00000000 640 00000000 641 .section .rodata 642 .align 2 643 .LC0: 644 0000 766B00 .ascii "vk\000" 645 .section .text.user_init,"ax",%progbits 646 .align 1 647 .global user_init ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 15 648 .syntax unified 649 .thumb 650 .thumb_func 652 user_init: 653 .LFB136: 177:user_src/soft_test.c **** 178:user_src/soft_test.c **** /** 179:user_src/soft_test.c **** * @file user_init 180:user_src/soft_test.c **** * @brief 初始化参数 181:user_src/soft_test.c **** * @param None 182:user_src/soft_test.c **** * @details 串口 can口 pwm rkfifo flash读取 183:user_src/soft_test.c **** * @author Zhang Sir 184:user_src/soft_test.c **** **/ 185:user_src/soft_test.c **** uint8_t recv_vk_protocol[MAX_UART_BUF * 4] = {0}; 186:user_src/soft_test.c **** uint8_t candebug_protocol[MAX_UART_BUF * 2] = {0}; 187:user_src/soft_test.c **** uint8_t send_uart_buffer[ MAX_UART_BUF * 8 ] = {0}; 188:user_src/soft_test.c **** void user_init(void) 189:user_src/soft_test.c **** { 654 .loc 1 189 1 655 .cfi_startproc 656 @ args = 0, pretend = 0, frame = 0 657 @ frame_needed = 1, uses_anonymous_args = 0 658 0000 80B5 push {r7, lr} 659 .LCFI11: 660 .cfi_def_cfa_offset 8 661 .cfi_offset 7, -8 662 .cfi_offset 14, -4 663 0002 88B0 sub sp, sp, #32 664 .LCFI12: 665 .cfi_def_cfa_offset 40 666 0004 08AF add r7, sp, #32 667 .LCFI13: 668 .cfi_def_cfa 7, 8 190:user_src/soft_test.c **** //can pwm uart 初始化 191:user_src/soft_test.c **** can_start_init(); 669 .loc 1 191 3 670 0006 FFF7FEFF bl can_start_init 192:user_src/soft_test.c **** 193:user_src/soft_test.c **** UART_Init(); 671 .loc 1 193 3 672 000a FFF7FEFF bl UART_Init 194:user_src/soft_test.c **** 195:user_src/soft_test.c **** pwm_init(); 673 .loc 1 195 3 674 000e FFF7FEFF bl pwm_init 196:user_src/soft_test.c **** 197:user_src/soft_test.c **** //PVD_Config(); 198:user_src/soft_test.c **** 199:user_src/soft_test.c **** //上电读内存参数 200:user_src/soft_test.c **** flash_read_funcktion(); 675 .loc 1 200 3 676 0012 FFF7FEFF bl flash_read_funcktion 201:user_src/soft_test.c **** 202:user_src/soft_test.c **** //上电亮绿灯 203:user_src/soft_test.c **** HAL_GPIO_WritePin(GPIOA, LED3_Pin, GPIO_PIN_RESET); 677 .loc 1 203 3 678 0016 0022 movs r2, #0 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 16 679 0018 4021 movs r1, #64 680 001a 4FF09040 mov r0, #1207959552 681 001e FFF7FEFF bl HAL_GPIO_WritePin 204:user_src/soft_test.c **** HAL_GPIO_WritePin(GPIOB, GPIO_PIN_14, GPIO_PIN_SET); //使能PWM 682 .loc 1 204 3 683 0022 0122 movs r2, #1 684 0024 4FF48041 mov r1, #16384 685 0028 5748 ldr r0, .L47 686 002a FFF7FEFF bl HAL_GPIO_WritePin 205:user_src/soft_test.c **** 206:user_src/soft_test.c **** //初始化缓存区 207:user_src/soft_test.c **** rkfifo_init(&recv_rkfifo, recv_vk_protocol, sizeof(recv_vk_protocol), 1); 687 .loc 1 207 3 688 002e 0123 movs r3, #1 689 0030 4FF48062 mov r2, #1024 690 0034 5549 ldr r1, .L47+4 691 0036 5648 ldr r0, .L47+8 692 0038 FFF7FEFF bl rkfifo_init 208:user_src/soft_test.c **** rkfifo_init(&candebug_rkfifo, candebug_protocol, sizeof(candebug_protocol), 1); 693 .loc 1 208 3 694 003c 0123 movs r3, #1 695 003e 4FF40072 mov r2, #512 696 0042 5449 ldr r1, .L47+12 697 0044 5448 ldr r0, .L47+16 698 0046 FFF7FEFF bl rkfifo_init 209:user_src/soft_test.c **** rkfifo_init(&send_uart_rkfifo, send_uart_buffer, sizeof(send_uart_buffer), 1); 699 .loc 1 209 3 700 004a 0123 movs r3, #1 701 004c 4FF40062 mov r2, #2048 702 0050 5249 ldr r1, .L47+20 703 0052 5348 ldr r0, .L47+24 704 0054 FFF7FEFF bl rkfifo_init 210:user_src/soft_test.c **** 211:user_src/soft_test.c **** //注册PMU 212:user_src/soft_test.c **** Int2String(current_pmu_par.SN,dev_pmu.sn,9); 705 .loc 1 212 3 706 0058 524B ldr r3, .L47+28 707 005a 9B68 ldr r3, [r3, #8] 708 005c 0922 movs r2, #9 709 005e 5249 ldr r1, .L47+32 710 0060 1846 mov r0, r3 711 0062 FFF7FEFF bl Int2String 213:user_src/soft_test.c **** Int2String(APP_VERSION,dev_pmu.soft_serial,6); 712 .loc 1 213 14 713 0066 3223 movs r3, #50 714 0068 A3F13002 sub r2, r3, #48 715 006c 1346 mov r3, r2 716 006e 9B00 lsls r3, r3, #2 717 0070 1344 add r3, r3, r2 718 0072 5B00 lsls r3, r3, #1 719 0074 1A46 mov r2, r3 720 0076 3023 movs r3, #48 721 0078 303B subs r3, r3, #48 722 007a 1A44 add r2, r2, r3 723 007c 1346 mov r3, r2 724 007e 9B00 lsls r3, r3, #2 725 0080 1344 add r3, r3, r2 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 17 726 0082 5B00 lsls r3, r3, #1 727 0084 1A46 mov r2, r3 728 0086 3223 movs r3, #50 729 0088 303B subs r3, r3, #48 730 008a 1A44 add r2, r2, r3 731 008c 1346 mov r3, r2 732 008e 9B00 lsls r3, r3, #2 733 0090 1344 add r3, r3, r2 734 0092 5B00 lsls r3, r3, #1 735 0094 1A46 mov r2, r3 736 0096 3523 movs r3, #53 737 0098 303B subs r3, r3, #48 738 009a 1344 add r3, r3, r2 739 009c A3F5FA63 sub r3, r3, #2000 740 00a0 42F21072 movw r2, #10000 741 00a4 03FB02F2 mul r2, r3, r2 742 00a8 7623 movs r3, #118 743 00aa 6E2B cmp r3, #110 744 00ac 07D1 bne .L23 745 .loc 1 213 14 is_stmt 0 discriminator 1 746 00ae 6F23 movs r3, #111 747 00b0 612B cmp r3, #97 748 00b2 01D1 bne .L24 749 .loc 1 213 14 discriminator 3 750 00b4 6423 movs r3, #100 751 00b6 39E0 b .L26 752 .L24: 753 .loc 1 213 14 discriminator 4 754 00b8 4FF41673 mov r3, #600 755 00bc 36E0 b .L26 756 .L23: 757 .loc 1 213 14 discriminator 2 758 00be 7623 movs r3, #118 759 00c0 622B cmp r3, #98 760 00c2 32D0 beq .L27 761 .loc 1 213 14 discriminator 8 762 00c4 7623 movs r3, #118 763 00c6 722B cmp r3, #114 764 00c8 08D1 bne .L28 765 .loc 1 213 14 discriminator 10 766 00ca 4E23 movs r3, #78 767 00cc 4D2B cmp r3, #77 768 00ce 02D1 bne .L29 769 .loc 1 213 14 discriminator 12 770 00d0 4FF49673 mov r3, #300 771 00d4 2AE0 b .L26 772 .L29: 773 .loc 1 213 14 discriminator 13 774 00d6 4FF4C873 mov r3, #400 775 00da 27E0 b .L26 776 .L28: 777 .loc 1 213 14 discriminator 11 778 00dc 7623 movs r3, #118 779 00de 792B cmp r3, #121 780 00e0 20D0 beq .L32 781 .loc 1 213 14 discriminator 17 782 00e2 7623 movs r3, #118 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 18 783 00e4 6C2B cmp r3, #108 784 00e6 1AD0 beq .L33 785 .loc 1 213 14 discriminator 19 786 00e8 7623 movs r3, #118 787 00ea 672B cmp r3, #103 788 00ec 14D0 beq .L34 789 .loc 1 213 14 discriminator 21 790 00ee 7623 movs r3, #118 791 00f0 702B cmp r3, #112 792 00f2 0ED0 beq .L35 793 .loc 1 213 14 discriminator 23 794 00f4 7623 movs r3, #118 795 00f6 742B cmp r3, #116 796 00f8 08D0 beq .L36 797 .loc 1 213 14 discriminator 25 798 00fa 7623 movs r3, #118 799 00fc 762B cmp r3, #118 800 00fe 02D1 bne .L37 801 .loc 1 213 14 discriminator 27 802 0100 40F24C43 movw r3, #1100 803 0104 12E0 b .L26 804 .L37: 805 .loc 1 213 14 discriminator 28 806 0106 4FF49663 mov r3, #1200 807 010a 0FE0 b .L26 808 .L36: 809 .loc 1 213 14 discriminator 26 810 010c 4FF47A73 mov r3, #1000 811 0110 0CE0 b .L26 812 .L35: 813 .loc 1 213 14 discriminator 24 814 0112 4FF46173 mov r3, #900 815 0116 09E0 b .L26 816 .L34: 817 .loc 1 213 14 discriminator 22 818 0118 4FF44873 mov r3, #800 819 011c 06E0 b .L26 820 .L33: 821 .loc 1 213 14 discriminator 20 822 011e 4FF42F73 mov r3, #700 823 0122 03E0 b .L26 824 .L32: 825 .loc 1 213 14 discriminator 18 826 0124 4FF4FA73 mov r3, #500 827 0128 00E0 b .L26 828 .L27: 829 .loc 1 213 14 discriminator 9 830 012a C823 movs r3, #200 831 .L26: 832 .loc 1 213 14 discriminator 44 833 012c 9918 adds r1, r3, r2 834 012e 3123 movs r3, #49 835 0130 202B cmp r3, #32 836 0132 08D0 beq .L45 837 .loc 1 213 14 discriminator 45 838 0134 3123 movs r3, #49 839 0136 A3F13002 sub r2, r3, #48 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 19 840 013a 1346 mov r3, r2 841 013c 9B00 lsls r3, r3, #2 842 013e 1344 add r3, r3, r2 843 0140 5B00 lsls r3, r3, #1 844 0142 1A46 mov r2, r3 845 0144 00E0 b .L46 846 .L45: 847 .loc 1 213 14 discriminator 46 848 0146 0022 movs r2, #0 849 .L46: 850 .loc 1 213 14 discriminator 48 851 0148 3223 movs r3, #50 852 014a 303B subs r3, r3, #48 853 014c 1344 add r3, r3, r2 854 .loc 1 213 3 is_stmt 1 discriminator 48 855 014e 0B44 add r3, r3, r1 856 0150 0622 movs r2, #6 857 0152 1649 ldr r1, .L47+36 858 0154 1846 mov r0, r3 859 0156 FFF7FEFF bl Int2String 214:user_src/soft_test.c **** regist_dev_info(&dev_pmu,DEVICE_PMU,false,dev_pmu.sn,9,dev_pmu.soft_serial,6,NULL,0,"vk",3); 860 .loc 1 214 3 discriminator 48 861 015a 0323 movs r3, #3 862 015c 0693 str r3, [sp, #24] 863 015e 144B ldr r3, .L47+40 864 0160 0593 str r3, [sp, #20] 865 0162 0023 movs r3, #0 866 0164 0493 str r3, [sp, #16] 867 0166 0023 movs r3, #0 868 0168 0393 str r3, [sp, #12] 869 016a 0623 movs r3, #6 870 016c 0293 str r3, [sp, #8] 871 016e 0F4B ldr r3, .L47+36 872 0170 0193 str r3, [sp, #4] 873 0172 0923 movs r3, #9 874 0174 0093 str r3, [sp] 875 0176 0C4B ldr r3, .L47+32 876 0178 0022 movs r2, #0 877 017a 0321 movs r1, #3 878 017c 0D48 ldr r0, .L47+44 879 017e FFF7FEFF bl regist_dev_info 215:user_src/soft_test.c **** } 880 .loc 1 215 1 discriminator 48 881 0182 00BF nop 882 0184 BD46 mov sp, r7 883 .LCFI14: 884 .cfi_def_cfa_register 13 885 @ sp needed 886 0186 80BD pop {r7, pc} 887 .L48: 888 .align 2 889 .L47: 890 0188 00040048 .word 1207960576 891 018c 00000000 .word recv_vk_protocol 892 0190 00000000 .word recv_rkfifo 893 0194 00000000 .word candebug_protocol 894 0198 00000000 .word candebug_rkfifo ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 20 895 019c 00000000 .word send_uart_buffer 896 01a0 00000000 .word send_uart_rkfifo 897 01a4 00000000 .word current_pmu_par 898 01a8 03000000 .word dev_pmu+3 899 01ac 23000000 .word dev_pmu+35 900 01b0 00000000 .word .LC0 901 01b4 00000000 .word dev_pmu 902 .cfi_endproc 903 .LFE136: 905 .section .text.isLeapYear,"ax",%progbits 906 .align 1 907 .global isLeapYear 908 .syntax unified 909 .thumb 910 .thumb_func 912 isLeapYear: 913 .LFB137: 216:user_src/soft_test.c **** 217:user_src/soft_test.c **** uint8_t isLeapYear(uint16_t year) 218:user_src/soft_test.c **** { 914 .loc 1 218 1 915 .cfi_startproc 916 @ args = 0, pretend = 0, frame = 16 917 @ frame_needed = 1, uses_anonymous_args = 0 918 @ link register save eliminated. 919 0000 80B4 push {r7} 920 .LCFI15: 921 .cfi_def_cfa_offset 4 922 .cfi_offset 7, -4 923 0002 85B0 sub sp, sp, #20 924 .LCFI16: 925 .cfi_def_cfa_offset 24 926 0004 00AF add r7, sp, #0 927 .LCFI17: 928 .cfi_def_cfa_register 7 929 0006 0346 mov r3, r0 930 0008 FB80 strh r3, [r7, #6] @ movhi 219:user_src/soft_test.c **** uint8_t res=0; 931 .loc 1 219 13 932 000a 0023 movs r3, #0 933 000c FB73 strb r3, [r7, #15] 220:user_src/soft_test.c **** 221:user_src/soft_test.c **** if(year%4 == 0) // 能够被4整除 934 .loc 1 221 15 935 000e FB88 ldrh r3, [r7, #6] @ movhi 936 0010 03F00303 and r3, r3, #3 937 0014 9BB2 uxth r3, r3 938 .loc 1 221 7 939 0016 002B cmp r3, #0 940 0018 1DD1 bne .L50 222:user_src/soft_test.c **** { 223:user_src/soft_test.c **** if(year%100 != 0 || year%400 == 0) //能被4整除不能被100整除或者能够被400整 941 .loc 1 223 21 942 001a FB88 ldrh r3, [r7, #6] 943 001c 114A ldr r2, .L54 944 001e A2FB0312 umull r1, r2, r2, r3 945 0022 5209 lsrs r2, r2, #5 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 21 946 0024 6421 movs r1, #100 947 0026 01FB02F2 mul r2, r1, r2 948 002a 9B1A subs r3, r3, r2 949 002c 9BB2 uxth r3, r3 950 .loc 1 223 11 951 002e 002B cmp r3, #0 952 0030 0CD1 bne .L51 953 .loc 1 223 38 discriminator 1 954 0032 FB88 ldrh r3, [r7, #6] 955 0034 0B4A ldr r2, .L54 956 0036 A2FB0312 umull r1, r2, r2, r3 957 003a D209 lsrs r2, r2, #7 958 003c 4FF4C871 mov r1, #400 959 0040 01FB02F2 mul r2, r1, r2 960 0044 9B1A subs r3, r3, r2 961 0046 9BB2 uxth r3, r3 962 .loc 1 223 26 discriminator 1 963 0048 002B cmp r3, #0 964 004a 02D1 bne .L52 965 .L51: 224:user_src/soft_test.c **** { 225:user_src/soft_test.c **** res = 1; 966 .loc 1 225 17 967 004c 0123 movs r3, #1 968 004e FB73 strb r3, [r7, #15] 969 0050 01E0 b .L50 970 .L52: 226:user_src/soft_test.c **** } 227:user_src/soft_test.c **** else 228:user_src/soft_test.c **** { 229:user_src/soft_test.c **** res =0; 971 .loc 1 229 17 972 0052 0023 movs r3, #0 973 0054 FB73 strb r3, [r7, #15] 974 .L50: 230:user_src/soft_test.c **** } 231:user_src/soft_test.c **** } 232:user_src/soft_test.c **** return res; 975 .loc 1 232 12 976 0056 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 233:user_src/soft_test.c **** } 977 .loc 1 233 1 978 0058 1846 mov r0, r3 979 005a 1437 adds r7, r7, #20 980 .LCFI18: 981 .cfi_def_cfa_offset 4 982 005c BD46 mov sp, r7 983 .LCFI19: 984 .cfi_def_cfa_register 13 985 @ sp needed 986 005e 5DF8047B ldr r7, [sp], #4 987 .LCFI20: 988 .cfi_restore 7 989 .cfi_def_cfa_offset 0 990 0062 7047 bx lr 991 .L55: 992 .align 2 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 22 993 .L54: 994 0064 1F85EB51 .word 1374389535 995 .cfi_endproc 996 .LFE137: 998 .global beijing_time 999 .section .bss.beijing_time,"aw",%nobits 1000 .align 2 1003 beijing_time: 1004 0000 00000000 .space 8 1004 00000000 1005 .section .text.covUnixTimeStp2Beijing,"ax",%progbits 1006 .align 1 1007 .global covUnixTimeStp2Beijing 1008 .syntax unified 1009 .thumb 1010 .thumb_func 1012 covUnixTimeStp2Beijing: 1013 .LFB138: 234:user_src/soft_test.c **** // 将Unix时间戳转换为北京时间 235:user_src/soft_test.c **** // unixTime: 需要判断的Unix时间戳 236:user_src/soft_test.c **** // *tempBeijing:返回的北京时间 237:user_src/soft_test.c **** // return:none 238:user_src/soft_test.c **** // note:没对输入参数正确性做判断 239:user_src/soft_test.c **** rtc_time_t beijing_time; 240:user_src/soft_test.c **** void covUnixTimeStp2Beijing( uint32_t unixTime, rtc_time_t *tempBeijing ) 241:user_src/soft_test.c **** { 1014 .loc 1 241 1 1015 .cfi_startproc 1016 @ args = 0, pretend = 0, frame = 24 1017 @ frame_needed = 1, uses_anonymous_args = 0 1018 0000 80B5 push {r7, lr} 1019 .LCFI21: 1020 .cfi_def_cfa_offset 8 1021 .cfi_offset 7, -8 1022 .cfi_offset 14, -4 1023 0002 86B0 sub sp, sp, #24 1024 .LCFI22: 1025 .cfi_def_cfa_offset 32 1026 0004 00AF add r7, sp, #0 1027 .LCFI23: 1028 .cfi_def_cfa_register 7 1029 0006 7860 str r0, [r7, #4] 1030 0008 3960 str r1, [r7] 242:user_src/soft_test.c **** uint32_t totleDayNum = 0, totleSecNum = 0; 1031 .loc 1 242 14 1032 000a 0023 movs r3, #0 1033 000c 3B61 str r3, [r7, #16] 1034 .loc 1 242 31 1035 000e 0023 movs r3, #0 1036 0010 FB60 str r3, [r7, #12] 243:user_src/soft_test.c **** uint16_t remainDayofYear = 0, tempYear = 0; 1037 .loc 1 243 14 1038 0012 0023 movs r3, #0 1039 0014 FB82 strh r3, [r7, #22] @ movhi 1040 .loc 1 243 35 1041 0016 0023 movs r3, #0 1042 0018 BB82 strh r3, [r7, #20] @ movhi ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 23 244:user_src/soft_test.c **** uint8_t *pr = NULL; 1043 .loc 1 244 14 1044 001a 0023 movs r3, #0 1045 001c BB60 str r3, [r7, #8] 245:user_src/soft_test.c **** static uint8_t month_day[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; //平年 246:user_src/soft_test.c **** static uint8_t Leap_month_day[12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; //闰年 247:user_src/soft_test.c **** 248:user_src/soft_test.c **** 249:user_src/soft_test.c **** totleDayNum = unixTime / ( 24 * 60 * 60 ); //总天数(注意加括号) 1046 .loc 1 249 17 1047 001e 7B68 ldr r3, [r7, #4] 1048 0020 694A ldr r2, .L68 1049 0022 A2FB0323 umull r2, r3, r2, r3 1050 0026 1B0C lsrs r3, r3, #16 1051 0028 3B61 str r3, [r7, #16] 250:user_src/soft_test.c **** totleSecNum = unixTime % ( 24 * 60 * 60 ); //当天剩余的秒速 1052 .loc 1 250 17 1053 002a 7B68 ldr r3, [r7, #4] 1054 002c 664A ldr r2, .L68 1055 002e A2FB0312 umull r1, r2, r2, r3 1056 0032 120C lsrs r2, r2, #16 1057 0034 6549 ldr r1, .L68+4 1058 0036 01FB02F2 mul r2, r1, r2 1059 003a 9B1A subs r3, r3, r2 1060 003c FB60 str r3, [r7, #12] 251:user_src/soft_test.c **** 252:user_src/soft_test.c **** memset( tempBeijing, 0x00, sizeof( rtc_time_t ) ); 1061 .loc 1 252 5 1062 003e 0822 movs r2, #8 1063 0040 0021 movs r1, #0 1064 0042 3868 ldr r0, [r7] 1065 0044 FFF7FEFF bl memset 253:user_src/soft_test.c **** 254:user_src/soft_test.c **** // 1.先计算时间 HH:MM:SS 255:user_src/soft_test.c **** tempBeijing->ui8Hour = totleSecNum / 3600; 1066 .loc 1 255 40 1067 0048 FB68 ldr r3, [r7, #12] 1068 004a 614A ldr r2, .L68+8 1069 004c A2FB0323 umull r2, r3, r2, r3 1070 0050 DB0A lsrs r3, r3, #11 1071 .loc 1 255 26 1072 0052 DAB2 uxtb r2, r3 1073 0054 3B68 ldr r3, [r7] 1074 0056 5A71 strb r2, [r3, #5] 256:user_src/soft_test.c **** tempBeijing->ui8Minute = ( totleSecNum % 3600 ) / 60; //error:变量搞错 1075 .loc 1 256 44 1076 0058 FA68 ldr r2, [r7, #12] 1077 005a 5D4B ldr r3, .L68+8 1078 005c A3FB0213 umull r1, r3, r3, r2 1079 0060 DB0A lsrs r3, r3, #11 1080 0062 4FF46161 mov r1, #3600 1081 0066 01FB03F3 mul r3, r1, r3 1082 006a D31A subs r3, r2, r3 1083 .loc 1 256 53 1084 006c 594A ldr r2, .L68+12 1085 006e A2FB0323 umull r2, r3, r2, r3 1086 0072 5B09 lsrs r3, r3, #5 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 24 1087 .loc 1 256 28 1088 0074 DAB2 uxtb r2, r3 1089 0076 3B68 ldr r3, [r7] 1090 0078 9A71 strb r2, [r3, #6] 257:user_src/soft_test.c **** tempBeijing->ui8Second = ( totleSecNum % 3600 ) % 60; 1091 .loc 1 257 44 1092 007a FB68 ldr r3, [r7, #12] 1093 007c 544A ldr r2, .L68+8 1094 007e A2FB0312 umull r1, r2, r2, r3 1095 0082 D20A lsrs r2, r2, #11 1096 0084 4FF46161 mov r1, #3600 1097 0088 01FB02F2 mul r2, r1, r2 1098 008c 9A1A subs r2, r3, r2 1099 .loc 1 257 53 1100 008e 514B ldr r3, .L68+12 1101 0090 A3FB0213 umull r1, r3, r3, r2 1102 0094 5909 lsrs r1, r3, #5 1103 0096 0B46 mov r3, r1 1104 0098 1B01 lsls r3, r3, #4 1105 009a 5B1A subs r3, r3, r1 1106 009c 9B00 lsls r3, r3, #2 1107 009e D11A subs r1, r2, r3 1108 .loc 1 257 28 1109 00a0 CAB2 uxtb r2, r1 1110 00a2 3B68 ldr r3, [r7] 1111 00a4 DA71 strb r2, [r3, #7] 258:user_src/soft_test.c **** 259:user_src/soft_test.c **** // 2.对时间进行时区调整(注意:这里可能造成日期 +1) 260:user_src/soft_test.c **** tempBeijing->ui8Hour += TIMEZONE; 1112 .loc 1 260 26 1113 00a6 3B68 ldr r3, [r7] 1114 00a8 5B79 ldrb r3, [r3, #5] @ zero_extendqisi2 1115 00aa 0833 adds r3, r3, #8 1116 00ac DAB2 uxtb r2, r3 1117 00ae 3B68 ldr r3, [r7] 1118 00b0 5A71 strb r2, [r3, #5] 261:user_src/soft_test.c **** if ( tempBeijing->ui8Hour > 23 ) 1119 .loc 1 261 21 1120 00b2 3B68 ldr r3, [r7] 1121 00b4 5B79 ldrb r3, [r3, #5] @ zero_extendqisi2 1122 .loc 1 261 8 1123 00b6 172B cmp r3, #23 1124 00b8 08D9 bls .L57 262:user_src/soft_test.c **** { 263:user_src/soft_test.c **** //printf("modify day..\n"); 264:user_src/soft_test.c **** tempBeijing->ui8Hour -= 24; 1125 .loc 1 264 30 1126 00ba 3B68 ldr r3, [r7] 1127 00bc 5B79 ldrb r3, [r3, #5] @ zero_extendqisi2 1128 00be 183B subs r3, r3, #24 1129 00c0 DAB2 uxtb r2, r3 1130 00c2 3B68 ldr r3, [r7] 1131 00c4 5A71 strb r2, [r3, #5] 265:user_src/soft_test.c **** remainDayofYear++; // 日期+1 1132 .loc 1 265 24 1133 00c6 FB8A ldrh r3, [r7, #22] 1134 00c8 0133 adds r3, r3, #1 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 25 1135 00ca FB82 strh r3, [r7, #22] @ movhi 1136 .L57: 266:user_src/soft_test.c **** } 267:user_src/soft_test.c **** 268:user_src/soft_test.c **** // 3.计算哪一年 269:user_src/soft_test.c **** tempBeijing->ui8Year = 1970 + ( totleDayNum / FOURYEARDAY ) * 4; // 4年为一个周期 1137 .loc 1 269 49 1138 00cc 3B69 ldr r3, [r7, #16] 1139 00ce 424A ldr r2, .L68+16 1140 00d0 A2FB0323 umull r2, r3, r2, r3 1141 00d4 DB09 lsrs r3, r3, #7 1142 .loc 1 269 33 1143 00d6 9BB2 uxth r3, r3 1144 00d8 9B00 lsls r3, r3, #2 1145 00da 9BB2 uxth r3, r3 1146 00dc 03F2B273 addw r3, r3, #1970 1147 00e0 9AB2 uxth r2, r3 1148 .loc 1 269 26 1149 00e2 3B68 ldr r3, [r7] 1150 00e4 1A80 strh r2, [r3] @ movhi 270:user_src/soft_test.c **** remainDayofYear += totleDayNum % FOURYEARDAY; 1151 .loc 1 270 36 1152 00e6 3A69 ldr r2, [r7, #16] 1153 00e8 3B4B ldr r3, .L68+16 1154 00ea A3FB0213 umull r1, r3, r3, r2 1155 00ee DB09 lsrs r3, r3, #7 1156 00f0 40F2B551 movw r1, #1461 1157 00f4 01FB03F3 mul r3, r1, r3 1158 00f8 D31A subs r3, r2, r3 1159 .loc 1 270 21 1160 00fa 9AB2 uxth r2, r3 1161 00fc FB8A ldrh r3, [r7, #22] @ movhi 1162 00fe 1344 add r3, r3, r2 1163 0100 FB82 strh r3, [r7, #22] @ movhi 271:user_src/soft_test.c **** 272:user_src/soft_test.c **** //printf("year:%d, day:%d.\n", tempBeijing->ui8Year, remainDayofYear); 273:user_src/soft_test.c **** tempYear = isLeapYear( tempBeijing->ui8Year ) ? 366 : 365; 1164 .loc 1 273 16 1165 0102 3B68 ldr r3, [r7] 1166 0104 1B88 ldrh r3, [r3] 1167 0106 1846 mov r0, r3 1168 0108 FFF7FEFF bl isLeapYear 1169 010c 0346 mov r3, r0 1170 .loc 1 273 14 1171 010e 002B cmp r3, #0 1172 0110 02D0 beq .L58 1173 .loc 1 273 14 is_stmt 0 discriminator 1 1174 0112 4FF4B773 mov r3, #366 1175 0116 01E0 b .L59 1176 .L58: 1177 .loc 1 273 14 discriminator 2 1178 0118 40F26D13 movw r3, #365 1179 .L59: 1180 .loc 1 273 14 discriminator 4 1181 011c BB82 strh r3, [r7, #20] @ movhi 274:user_src/soft_test.c **** while ( remainDayofYear >= tempYear ) // 计算4年整数倍外的年。 1182 .loc 1 274 11 is_stmt 1 discriminator 4 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 26 1183 011e 17E0 b .L60 1184 .L63: 275:user_src/soft_test.c **** { 276:user_src/soft_test.c **** tempBeijing->ui8Year++; 1185 .loc 1 276 20 1186 0120 3B68 ldr r3, [r7] 1187 0122 1B88 ldrh r3, [r3] 1188 .loc 1 276 29 1189 0124 0133 adds r3, r3, #1 1190 0126 9AB2 uxth r2, r3 1191 0128 3B68 ldr r3, [r7] 1192 012a 1A80 strh r2, [r3] @ movhi 277:user_src/soft_test.c **** remainDayofYear -= tempYear; 1193 .loc 1 277 25 1194 012c FA8A ldrh r2, [r7, #22] @ movhi 1195 012e BB8A ldrh r3, [r7, #20] @ movhi 1196 0130 D31A subs r3, r2, r3 1197 0132 FB82 strh r3, [r7, #22] @ movhi 278:user_src/soft_test.c **** tempYear = isLeapYear( tempBeijing->ui8Year ) ? 366 : 365; 1198 .loc 1 278 20 1199 0134 3B68 ldr r3, [r7] 1200 0136 1B88 ldrh r3, [r3] 1201 0138 1846 mov r0, r3 1202 013a FFF7FEFF bl isLeapYear 1203 013e 0346 mov r3, r0 1204 .loc 1 278 18 1205 0140 002B cmp r3, #0 1206 0142 02D0 beq .L61 1207 .loc 1 278 18 is_stmt 0 discriminator 1 1208 0144 4FF4B773 mov r3, #366 1209 0148 01E0 b .L62 1210 .L61: 1211 .loc 1 278 18 discriminator 2 1212 014a 40F26D13 movw r3, #365 1213 .L62: 1214 .loc 1 278 18 discriminator 4 1215 014e BB82 strh r3, [r7, #20] @ movhi 1216 .L60: 274:user_src/soft_test.c **** { 1217 .loc 1 274 11 is_stmt 1 1218 0150 FA8A ldrh r2, [r7, #22] 1219 0152 BB8A ldrh r3, [r7, #20] 1220 0154 9A42 cmp r2, r3 1221 0156 E3D2 bcs .L63 279:user_src/soft_test.c **** } 280:user_src/soft_test.c **** 281:user_src/soft_test.c **** // 4.计算哪一月的哪一天 282:user_src/soft_test.c **** pr = isLeapYear( tempBeijing->ui8Year ) ? Leap_month_day : month_day; 1222 .loc 1 282 10 1223 0158 3B68 ldr r3, [r7] 1224 015a 1B88 ldrh r3, [r3] 1225 015c 1846 mov r0, r3 1226 015e FFF7FEFF bl isLeapYear 1227 0162 0346 mov r3, r0 1228 .loc 1 282 62 1229 0164 002B cmp r3, #0 1230 0166 01D0 beq .L64 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 27 1231 .loc 1 282 62 is_stmt 0 discriminator 1 1232 0168 1C4B ldr r3, .L68+20 1233 016a 00E0 b .L65 1234 .L64: 1235 .loc 1 282 62 discriminator 2 1236 016c 1C4B ldr r3, .L68+24 1237 .L65: 1238 .loc 1 282 8 is_stmt 1 discriminator 4 1239 016e BB60 str r3, [r7, #8] 283:user_src/soft_test.c **** remainDayofYear++; // 这里开始计算具体日期。remainDayofYear为 0 时其实 1240 .loc 1 283 20 discriminator 4 1241 0170 FB8A ldrh r3, [r7, #22] 1242 0172 0133 adds r3, r3, #1 1243 0174 FB82 strh r3, [r7, #22] @ movhi 284:user_src/soft_test.c **** while ( remainDayofYear > *( pr + tempBeijing->ui8Month ) ) 1244 .loc 1 284 11 discriminator 4 1245 0176 0FE0 b .L66 1246 .L67: 285:user_src/soft_test.c **** { 286:user_src/soft_test.c **** remainDayofYear -= *( pr + tempBeijing->ui8Month ); 1247 .loc 1 286 47 1248 0178 3B68 ldr r3, [r7] 1249 017a 9B78 ldrb r3, [r3, #2] @ zero_extendqisi2 1250 017c 1A46 mov r2, r3 1251 .loc 1 286 34 1252 017e BB68 ldr r3, [r7, #8] 1253 0180 1344 add r3, r3, r2 1254 .loc 1 286 28 1255 0182 1B78 ldrb r3, [r3] @ zero_extendqisi2 1256 0184 9BB2 uxth r3, r3 1257 .loc 1 286 25 1258 0186 FA8A ldrh r2, [r7, #22] @ movhi 1259 0188 D31A subs r3, r2, r3 1260 018a FB82 strh r3, [r7, #22] @ movhi 287:user_src/soft_test.c **** tempBeijing->ui8Month++; 1261 .loc 1 287 20 1262 018c 3B68 ldr r3, [r7] 1263 018e 9B78 ldrb r3, [r3, #2] @ zero_extendqisi2 1264 .loc 1 287 30 1265 0190 0133 adds r3, r3, #1 1266 0192 DAB2 uxtb r2, r3 1267 0194 3B68 ldr r3, [r7] 1268 0196 9A70 strb r2, [r3, #2] 1269 .L66: 284:user_src/soft_test.c **** while ( remainDayofYear > *( pr + tempBeijing->ui8Month ) ) 1270 .loc 1 284 50 1271 0198 3B68 ldr r3, [r7] 1272 019a 9B78 ldrb r3, [r3, #2] @ zero_extendqisi2 1273 019c 1A46 mov r2, r3 284:user_src/soft_test.c **** while ( remainDayofYear > *( pr + tempBeijing->ui8Month ) ) 1274 .loc 1 284 37 1275 019e BB68 ldr r3, [r7, #8] 1276 01a0 1344 add r3, r3, r2 284:user_src/soft_test.c **** while ( remainDayofYear > *( pr + tempBeijing->ui8Month ) ) 1277 .loc 1 284 31 1278 01a2 1B78 ldrb r3, [r3] @ zero_extendqisi2 1279 01a4 9BB2 uxth r3, r3 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 28 284:user_src/soft_test.c **** while ( remainDayofYear > *( pr + tempBeijing->ui8Month ) ) 1280 .loc 1 284 11 1281 01a6 FA8A ldrh r2, [r7, #22] 1282 01a8 9A42 cmp r2, r3 1283 01aa E5D8 bhi .L67 288:user_src/soft_test.c **** } 289:user_src/soft_test.c **** //printf("year:%d, day:%d.\n", tempBeijing->ui8Year, remainDayofYear); 290:user_src/soft_test.c **** tempBeijing->ui8Month++; //month 1284 .loc 1 290 16 1285 01ac 3B68 ldr r3, [r7] 1286 01ae 9B78 ldrb r3, [r3, #2] @ zero_extendqisi2 1287 .loc 1 290 26 1288 01b0 0133 adds r3, r3, #1 1289 01b2 DAB2 uxtb r2, r3 1290 01b4 3B68 ldr r3, [r7] 1291 01b6 9A70 strb r2, [r3, #2] 291:user_src/soft_test.c **** tempBeijing->ui8DayOfMonth = remainDayofYear; //day 1292 .loc 1 291 32 1293 01b8 FB8A ldrh r3, [r7, #22] @ movhi 1294 01ba DAB2 uxtb r2, r3 1295 01bc 3B68 ldr r3, [r7] 1296 01be DA70 strb r2, [r3, #3] 292:user_src/soft_test.c **** //printf("year:%d, day:%d.\n", tempBeijing->ui8Year, tempBeijing->ui8DayOfMonth); 293:user_src/soft_test.c **** } 1297 .loc 1 293 1 1298 01c0 00BF nop 1299 01c2 1837 adds r7, r7, #24 1300 .LCFI24: 1301 .cfi_def_cfa_offset 8 1302 01c4 BD46 mov sp, r7 1303 .LCFI25: 1304 .cfi_def_cfa_register 13 1305 @ sp needed 1306 01c6 80BD pop {r7, pc} 1307 .L69: 1308 .align 2 1309 .L68: 1310 01c8 07452EC2 .word -1037155065 1311 01cc 80510100 .word 86400 1312 01d0 C5B3A291 .word -1851608123 1313 01d4 89888888 .word -2004318071 1314 01d8 73B06D16 .word 376287347 1315 01dc 00000000 .word Leap_month_day.1 1316 01e0 00000000 .word month_day.0 1317 .cfi_endproc 1318 .LFE138: 1320 .section .text.PVD_IRQHandler,"ax",%progbits 1321 .align 1 1322 .global PVD_IRQHandler 1323 .syntax unified 1324 .thumb 1325 .thumb_func 1327 PVD_IRQHandler: 1328 .LFB139: 294:user_src/soft_test.c **** 295:user_src/soft_test.c **** 296:user_src/soft_test.c **** void PVD_IRQHandler(void) ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 29 297:user_src/soft_test.c **** { 1329 .loc 1 297 1 1330 .cfi_startproc 1331 @ args = 0, pretend = 0, frame = 0 1332 @ frame_needed = 1, uses_anonymous_args = 0 1333 0000 80B5 push {r7, lr} 1334 .LCFI26: 1335 .cfi_def_cfa_offset 8 1336 .cfi_offset 7, -8 1337 .cfi_offset 14, -4 1338 0002 00AF add r7, sp, #0 1339 .LCFI27: 1340 .cfi_def_cfa_register 7 298:user_src/soft_test.c **** HAL_PWR_PVD_IRQHandler(); 1341 .loc 1 298 5 1342 0004 FFF7FEFF bl HAL_PWR_PVD_IRQHandler 299:user_src/soft_test.c **** } 1343 .loc 1 299 1 1344 0008 00BF nop 1345 000a 80BD pop {r7, pc} 1346 .cfi_endproc 1347 .LFE139: 1349 .section .text.PVD_Config,"ax",%progbits 1350 .align 1 1351 .global PVD_Config 1352 .syntax unified 1353 .thumb 1354 .thumb_func 1356 PVD_Config: 1357 .LFB140: 300:user_src/soft_test.c **** 301:user_src/soft_test.c **** void PVD_Config(void) 302:user_src/soft_test.c **** { 1358 .loc 1 302 1 1359 .cfi_startproc 1360 @ args = 0, pretend = 0, frame = 16 1361 @ frame_needed = 1, uses_anonymous_args = 0 1362 0000 80B5 push {r7, lr} 1363 .LCFI28: 1364 .cfi_def_cfa_offset 8 1365 .cfi_offset 7, -8 1366 .cfi_offset 14, -4 1367 0002 84B0 sub sp, sp, #16 1368 .LCFI29: 1369 .cfi_def_cfa_offset 24 1370 0004 00AF add r7, sp, #0 1371 .LCFI30: 1372 .cfi_def_cfa_register 7 1373 .LBB2: 303:user_src/soft_test.c **** /*##-1- Enable Power Clock #################################################*/ 304:user_src/soft_test.c **** __HAL_RCC_PWR_CLK_ENABLE(); 1374 .loc 1 304 5 1375 0006 124B ldr r3, .L72 1376 0008 DB69 ldr r3, [r3, #28] 1377 000a 114A ldr r2, .L72 1378 000c 43F08053 orr r3, r3, #268435456 1379 0010 D361 str r3, [r2, #28] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 30 1380 0012 0F4B ldr r3, .L72 1381 0014 DB69 ldr r3, [r3, #28] 1382 0016 03F08053 and r3, r3, #268435456 1383 001a 7B60 str r3, [r7, #4] 1384 001c 7B68 ldr r3, [r7, #4] 1385 .LBE2: 305:user_src/soft_test.c **** 306:user_src/soft_test.c **** /*##-2- Configure the NVIC for PVD #########################################*/ 307:user_src/soft_test.c **** HAL_NVIC_SetPriority(PVD_IRQn, 0, 0); 1386 .loc 1 307 5 1387 001e 0022 movs r2, #0 1388 0020 0021 movs r1, #0 1389 0022 0120 movs r0, #1 1390 0024 FFF7FEFF bl HAL_NVIC_SetPriority 308:user_src/soft_test.c **** HAL_NVIC_EnableIRQ(PVD_IRQn); 1391 .loc 1 308 5 1392 0028 0120 movs r0, #1 1393 002a FFF7FEFF bl HAL_NVIC_EnableIRQ 309:user_src/soft_test.c **** 310:user_src/soft_test.c **** PWR_PVDTypeDef sConfigPVD; 311:user_src/soft_test.c **** sConfigPVD.PVDLevel = PWR_PVDLEVEL_3; 1394 .loc 1 311 25 1395 002e 6023 movs r3, #96 1396 0030 BB60 str r3, [r7, #8] 312:user_src/soft_test.c **** sConfigPVD.Mode = PWR_PVD_MODE_IT_RISING; 1397 .loc 1 312 21 1398 0032 4FF00113 mov r3, #65537 1399 0036 FB60 str r3, [r7, #12] 313:user_src/soft_test.c **** HAL_PWR_ConfigPVD(&sConfigPVD); 1400 .loc 1 313 5 1401 0038 07F10803 add r3, r7, #8 1402 003c 1846 mov r0, r3 1403 003e FFF7FEFF bl HAL_PWR_ConfigPVD 314:user_src/soft_test.c **** 315:user_src/soft_test.c **** /* Enable the PVD Output */ 316:user_src/soft_test.c **** HAL_PWR_EnablePVD(); 1404 .loc 1 316 5 1405 0042 FFF7FEFF bl HAL_PWR_EnablePVD 317:user_src/soft_test.c **** 318:user_src/soft_test.c **** } 1406 .loc 1 318 1 1407 0046 00BF nop 1408 0048 1037 adds r7, r7, #16 1409 .LCFI31: 1410 .cfi_def_cfa_offset 8 1411 004a BD46 mov sp, r7 1412 .LCFI32: 1413 .cfi_def_cfa_register 13 1414 @ sp needed 1415 004c 80BD pop {r7, pc} 1416 .L73: 1417 004e 00BF .align 2 1418 .L72: 1419 0050 00100240 .word 1073876992 1420 .cfi_endproc 1421 .LFE140: 1423 .section .bss.uart_time.2,"aw",%nobits ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 31 1424 .align 2 1427 uart_time.2: 1428 0000 00000000 .space 4 1429 .section .data.Leap_month_day.1,"aw" 1430 .align 2 1433 Leap_month_day.1: 1434 0000 1F1D1F1E .ascii "\037\035\037\036\037\036\037\037\036\037\036\037" 1434 1F1E1F1F 1434 1E1F1E1F 1435 .section .data.month_day.0,"aw" 1436 .align 2 1439 month_day.0: 1440 0000 1F1C1F1E .ascii "\037\034\037\036\037\036\037\037\036\037\036\037" 1440 1F1E1F1F 1440 1E1F1E1F 1441 .text 1442 .Letext0: 1443 .file 2 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h" 1444 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h" 1445 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h" 1446 .file 5 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h" 1447 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h" 1448 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h" 1449 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h" 1450 .file 9 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_uart.h" 1451 .file 10 "user_inc/soft_test.h" 1452 .file 11 "user_inc/rkfifo.h" 1453 .file 12 "user_inc/soft_uart.h" 1454 .file 13 "Core/Inc/usart.h" 1455 .file 14 "user_inc/soft_terrain.h" 1456 .file 15 "user_inc/soft_obstacle.h" 1457 .file 16 "user_inc/soft_flash.h" 1458 .file 17 "user_inc/can_debug.h" 1459 .file 18 "user_inc/soft_version.h" ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 32 DEFINED SYMBOLS *ABS*:00000000 soft_test.c C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:24 .data.UART3_send_buf:00000000 UART3_send_buf C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:21 .data.UART3_send_buf:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:27 .text.uart_send_msg:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:33 .text.uart_send_msg:00000000 uart_send_msg C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:98 .text.uart_send_msg:00000044 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:1427 .bss.uart_time.2:00000000 uart_time.2 C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:105 .text.ttest_func:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:111 .text.ttest_func:00000000 ttest_func C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:144 .bss.led_time_green:00000000 led_time_green C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:141 .bss.led_time_green:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:151 .bss.led_time_purple:00000000 led_time_purple C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:148 .bss.led_time_purple:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:158 .bss.led_time_blue:00000000 led_time_blue C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:155 .bss.led_time_blue:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:165 .bss.led_time_yellow:00000000 led_time_yellow C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:162 .bss.led_time_yellow:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:171 .bss.led_green:00000000 led_green C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:172 .bss.led_green:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:177 .bss.led_purple:00000000 led_purple C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:178 .bss.led_purple:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:183 .bss.led_blue:00000000 led_blue C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:184 .bss.led_blue:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:189 .bss.led_yellow:00000000 led_yellow C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:190 .bss.led_yellow:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:195 .bss.only_star_one_green:00000000 only_star_one_green C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:196 .bss.only_star_one_green:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:201 .bss.only_star_one_purple:00000000 only_star_one_purple C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:202 .bss.only_star_one_purple:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:207 .bss.only_star_one_blue:00000000 only_star_one_blue C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:208 .bss.only_star_one_blue:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:213 .bss.only_star_one_yellow:00000000 only_star_one_yellow C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:214 .bss.only_star_one_yellow:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:219 .bss.no_led_star:00000000 no_led_star C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:220 .bss.no_led_star:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:222 .text.pmu_inside_led:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:228 .text.pmu_inside_led:00000000 pmu_inside_led C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:601 .text.pmu_inside_led:00000254 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:625 .bss.recv_vk_protocol:00000000 recv_vk_protocol C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:622 .bss.recv_vk_protocol:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:632 .bss.candebug_protocol:00000000 candebug_protocol C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:629 .bss.candebug_protocol:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:639 .bss.send_uart_buffer:00000000 send_uart_buffer C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:636 .bss.send_uart_buffer:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:642 .rodata:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:646 .text.user_init:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:652 .text.user_init:00000000 user_init C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:890 .text.user_init:00000188 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:906 .text.isLeapYear:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:912 .text.isLeapYear:00000000 isLeapYear C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:994 .text.isLeapYear:00000064 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:1003 .bss.beijing_time:00000000 beijing_time C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:1000 .bss.beijing_time:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:1006 .text.covUnixTimeStp2Beijing:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:1012 .text.covUnixTimeStp2Beijing:00000000 covUnixTimeStp2Beijing C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:1310 .text.covUnixTimeStp2Beijing:000001c8 $d ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s page 33 C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:1433 .data.Leap_month_day.1:00000000 Leap_month_day.1 C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:1439 .data.month_day.0:00000000 month_day.0 C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:1321 .text.PVD_IRQHandler:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:1327 .text.PVD_IRQHandler:00000000 PVD_IRQHandler C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:1350 .text.PVD_Config:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:1356 .text.PVD_Config:00000000 PVD_Config C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:1419 .text.PVD_Config:00000050 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:1424 .bss.uart_time.2:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:1430 .data.Leap_month_day.1:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccd9XdAw.s:1436 .data.month_day.0:00000000 $d UNDEFINED SYMBOLS HAL_GetTick HAL_UART_Transmit_DMA huart3 HAL_GPIO_WritePin terrain_is_link obs_f_is_link obs_b_is_link can_start_init UART_Init pwm_init flash_read_funcktion rkfifo_init Int2String regist_dev_info recv_rkfifo candebug_rkfifo send_uart_rkfifo current_pmu_par dev_pmu memset HAL_PWR_PVD_IRQHandler HAL_NVIC_SetPriority HAL_NVIC_EnableIRQ HAL_PWR_ConfigPVD HAL_PWR_EnablePVD