ARM GAS C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.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_flash.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .global write_aboutage_information 20 .section .bss.write_aboutage_information,"aw",%nobits 23 write_aboutage_information: 24 0000 00 .space 1 25 .global read_aboutage_information 26 .section .bss.read_aboutage_information,"aw",%nobits 29 read_aboutage_information: 30 0000 00 .space 1 31 .global set_cali_voltage 32 .section .bss.set_cali_voltage,"aw",%nobits 33 .align 1 36 set_cali_voltage: 37 0000 0000 .space 2 38 .global set_pmu_serail 39 .section .bss.set_pmu_serail,"aw",%nobits 40 .align 2 43 set_pmu_serail: 44 0000 00000000 .space 4 45 .global flash_pmu_par 46 .section .bss.flash_pmu_par,"aw",%nobits 47 .align 2 50 flash_pmu_par: 51 0000 00000000 .space 18 51 00000000 51 00000000 51 00000000 51 0000 52 .global current_pmu_par 53 .section .bss.current_pmu_par,"aw",%nobits 54 .align 2 57 current_pmu_par: 58 0000 00000000 .space 16 58 00000000 58 00000000 58 00000000 59 .global write_flash_flag 60 .section .bss.write_flash_flag,"aw",%nobits 63 write_flash_flag: 64 0000 00 .space 1 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s page 2 65 .section .text.ReadFlashNBtye,"ax",%progbits 66 .align 1 67 .global ReadFlashNBtye 68 .syntax unified 69 .thumb 70 .thumb_func 72 ReadFlashNBtye: 73 .LFB133: 74 .file 1 "user_src/soft_flash.c" 1:user_src/soft_flash.c **** #include "soft_flash.h" 2:user_src/soft_flash.c **** #include 3:user_src/soft_flash.c **** #include "main.h" 4:user_src/soft_flash.c **** #include "soft_flow.h" 5:user_src/soft_flash.c **** #include "soft_p_2_c.h" 6:user_src/soft_flash.c **** #include "config.h" 7:user_src/soft_flash.c **** #include "soft_version.h" 8:user_src/soft_flash.c **** 9:user_src/soft_flash.c **** 10:user_src/soft_flash.c **** 11:user_src/soft_flash.c **** 12:user_src/soft_flash.c **** bool write_aboutage_information = false; 13:user_src/soft_flash.c **** bool read_aboutage_information = false; 14:user_src/soft_flash.c **** 15:user_src/soft_flash.c **** short set_cali_voltage = 0; 16:user_src/soft_flash.c **** uint32_t set_pmu_serail = 0; 17:user_src/soft_flash.c **** 18:user_src/soft_flash.c **** _F_PMU_PAR flash_pmu_par; 19:user_src/soft_flash.c **** _C_PMU_PAR current_pmu_par; 20:user_src/soft_flash.c **** bool write_flash_flag = false; 21:user_src/soft_flash.c **** /** 22:user_src/soft_flash.c **** * @file ReadFlashNBtye 23:user_src/soft_flash.c **** * @brief 读flash 24:user_src/soft_flash.c **** * @param none 25:user_src/soft_flash.c **** * @details 26:user_src/soft_flash.c **** * @author Zhang Sir 27:user_src/soft_flash.c **** **/ 28:user_src/soft_flash.c **** void ReadFlashNBtye(uint32_t addr, uint8_t *pdata, uint16_t size) 29:user_src/soft_flash.c **** { 75 .loc 1 29 1 76 .cfi_startproc 77 @ args = 0, pretend = 0, frame = 24 78 @ frame_needed = 1, uses_anonymous_args = 0 79 @ link register save eliminated. 80 0000 80B4 push {r7} 81 .LCFI0: 82 .cfi_def_cfa_offset 4 83 .cfi_offset 7, -4 84 0002 87B0 sub sp, sp, #28 85 .LCFI1: 86 .cfi_def_cfa_offset 32 87 0004 00AF add r7, sp, #0 88 .LCFI2: 89 .cfi_def_cfa_register 7 90 0006 F860 str r0, [r7, #12] 91 0008 B960 str r1, [r7, #8] 92 000a 1346 mov r3, r2 93 000c FB80 strh r3, [r7, #6] @ movhi ARM GAS C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s page 3 94 .LBB7: 30:user_src/soft_flash.c **** for (size_t i = 0; i < size; i++) 95 .loc 1 30 17 96 000e 0023 movs r3, #0 97 0010 7B61 str r3, [r7, #20] 98 .loc 1 30 5 99 0012 0CE0 b .L2 100 .L3: 31:user_src/soft_flash.c **** { 32:user_src/soft_flash.c **** *(pdata + i) = *((__IO uint8_t *)addr + i); 101 .loc 1 32 46 discriminator 3 102 0014 7A69 ldr r2, [r7, #20] 103 0016 FB68 ldr r3, [r7, #12] 104 0018 1344 add r3, r3, r2 105 001a 1946 mov r1, r3 106 .loc 1 32 16 discriminator 3 107 001c BA68 ldr r2, [r7, #8] 108 001e 7B69 ldr r3, [r7, #20] 109 0020 1344 add r3, r3, r2 110 .loc 1 32 23 discriminator 3 111 0022 0A78 ldrb r2, [r1] 112 0024 D2B2 uxtb r2, r2 113 .loc 1 32 21 discriminator 3 114 0026 1A70 strb r2, [r3] 30:user_src/soft_flash.c **** for (size_t i = 0; i < size; i++) 115 .loc 1 30 35 discriminator 3 116 0028 7B69 ldr r3, [r7, #20] 117 002a 0133 adds r3, r3, #1 118 002c 7B61 str r3, [r7, #20] 119 .L2: 30:user_src/soft_flash.c **** for (size_t i = 0; i < size; i++) 120 .loc 1 30 26 discriminator 1 121 002e FB88 ldrh r3, [r7, #6] 30:user_src/soft_flash.c **** for (size_t i = 0; i < size; i++) 122 .loc 1 30 5 discriminator 1 123 0030 7A69 ldr r2, [r7, #20] 124 0032 9A42 cmp r2, r3 125 0034 EED3 bcc .L3 126 .LBE7: 33:user_src/soft_flash.c **** } 34:user_src/soft_flash.c **** } 127 .loc 1 34 1 128 0036 00BF nop 129 0038 00BF nop 130 003a 1C37 adds r7, r7, #28 131 .LCFI3: 132 .cfi_def_cfa_offset 4 133 003c BD46 mov sp, r7 134 .LCFI4: 135 .cfi_def_cfa_register 13 136 @ sp needed 137 003e 5DF8047B ldr r7, [sp], #4 138 .LCFI5: 139 .cfi_restore 7 140 .cfi_def_cfa_offset 0 141 0042 7047 bx lr 142 .cfi_endproc ARM GAS C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s page 4 143 .LFE133: 145 .section .text.WriteFlashNBtye,"ax",%progbits 146 .align 1 147 .global WriteFlashNBtye 148 .syntax unified 149 .thumb 150 .thumb_func 152 WriteFlashNBtye: 153 .LFB134: 35:user_src/soft_flash.c **** 36:user_src/soft_flash.c **** 37:user_src/soft_flash.c **** /** 38:user_src/soft_flash.c **** * @file WriteFlashNBtye 39:user_src/soft_flash.c **** * @brief 写flash 40:user_src/soft_flash.c **** * @param none 41:user_src/soft_flash.c **** * @details 42:user_src/soft_flash.c **** * @author Zhang Sir 43:user_src/soft_flash.c **** **/ 44:user_src/soft_flash.c **** HAL_StatusTypeDef WriteFlashNBtye(uint32_t addr, uint8_t *pdata, uint16_t size) 45:user_src/soft_flash.c **** { 154 .loc 1 45 1 155 .cfi_startproc 156 @ args = 0, pretend = 0, frame = 40 157 @ frame_needed = 1, uses_anonymous_args = 0 158 0000 B0B5 push {r4, r5, r7, lr} 159 .LCFI6: 160 .cfi_def_cfa_offset 16 161 .cfi_offset 4, -16 162 .cfi_offset 5, -12 163 .cfi_offset 7, -8 164 .cfi_offset 14, -4 165 0002 8AB0 sub sp, sp, #40 166 .LCFI7: 167 .cfi_def_cfa_offset 56 168 0004 00AF add r7, sp, #0 169 .LCFI8: 170 .cfi_def_cfa_register 7 171 0006 F860 str r0, [r7, #12] 172 0008 B960 str r1, [r7, #8] 173 000a 1346 mov r3, r2 174 000c FB80 strh r3, [r7, #6] @ movhi 46:user_src/soft_flash.c **** HAL_StatusTypeDef write_status = HAL_OK; 175 .loc 1 46 23 176 000e 0023 movs r3, #0 177 0010 87F82730 strb r3, [r7, #39] 178 .LBB8: 179 .LBB9: 180 .file 2 "Drivers/CMSIS/Include/cmsis_gcc.h" 1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//** 2:Drivers/CMSIS/Include/cmsis_gcc.h **** * @file cmsis_gcc.h 3:Drivers/CMSIS/Include/cmsis_gcc.h **** * @brief CMSIS compiler GCC header file 4:Drivers/CMSIS/Include/cmsis_gcc.h **** * @version V5.0.4 5:Drivers/CMSIS/Include/cmsis_gcc.h **** * @date 09. April 2018 6:Drivers/CMSIS/Include/cmsis_gcc.h **** ******************************************************************************/ 7:Drivers/CMSIS/Include/cmsis_gcc.h **** /* 8:Drivers/CMSIS/Include/cmsis_gcc.h **** * Copyright (c) 2009-2018 Arm Limited. All rights reserved. 9:Drivers/CMSIS/Include/cmsis_gcc.h **** * ARM GAS C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s page 5 10:Drivers/CMSIS/Include/cmsis_gcc.h **** * SPDX-License-Identifier: Apache-2.0 11:Drivers/CMSIS/Include/cmsis_gcc.h **** * 12:Drivers/CMSIS/Include/cmsis_gcc.h **** * Licensed under the Apache License, Version 2.0 (the License); you may 13:Drivers/CMSIS/Include/cmsis_gcc.h **** * not use this file except in compliance with the License. 14:Drivers/CMSIS/Include/cmsis_gcc.h **** * You may obtain a copy of the License at 15:Drivers/CMSIS/Include/cmsis_gcc.h **** * 16:Drivers/CMSIS/Include/cmsis_gcc.h **** * www.apache.org/licenses/LICENSE-2.0 17:Drivers/CMSIS/Include/cmsis_gcc.h **** * 18:Drivers/CMSIS/Include/cmsis_gcc.h **** * Unless required by applicable law or agreed to in writing, software 19:Drivers/CMSIS/Include/cmsis_gcc.h **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 20:Drivers/CMSIS/Include/cmsis_gcc.h **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21:Drivers/CMSIS/Include/cmsis_gcc.h **** * See the License for the specific language governing permissions and 22:Drivers/CMSIS/Include/cmsis_gcc.h **** * limitations under the License. 23:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 24:Drivers/CMSIS/Include/cmsis_gcc.h **** 25:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __CMSIS_GCC_H 26:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_H 27:Drivers/CMSIS/Include/cmsis_gcc.h **** 28:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ignore some GCC warnings */ 29:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 30:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion" 31:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion" 32:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter" 33:Drivers/CMSIS/Include/cmsis_gcc.h **** 34:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Fallback for __has_builtin */ 35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __has_builtin 36:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __has_builtin(x) (0) 37:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 38:Drivers/CMSIS/Include/cmsis_gcc.h **** 39:Drivers/CMSIS/Include/cmsis_gcc.h **** /* CMSIS compiler specific defines */ 40:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ASM 41:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ASM __asm 42:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INLINE 44:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INLINE inline 45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_INLINE 47:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_INLINE static inline 48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_FORCEINLINE 50:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline 51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __NO_RETURN 53:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NO_RETURN __attribute__((__noreturn__)) 54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __USED 56:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __USED __attribute__((used)) 57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __WEAK 59:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WEAK __attribute__((weak)) 60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED 62:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED __attribute__((packed, aligned(1))) 63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_STRUCT 65:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) 66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif ARM GAS C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s page 6 67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_UNION 68:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_UNION union __attribute__((packed, aligned(1))) 69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32 /* deprecated */ 71:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 72:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 73:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 74:Drivers/CMSIS/Include/cmsis_gcc.h **** struct __attribute__((packed)) T_UINT32 { uint32_t v; }; 75:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 76:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) 77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_WRITE 79:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 80:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 81:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 82:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; 83:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 84:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))- 85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_READ 87:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 88:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 89:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 90:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; 91:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 92:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(add 93:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 94:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_WRITE 95:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 96:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 97:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 98:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; 99:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 100:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))- 101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_READ 103:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 104:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 105:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 106:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; 107:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 108:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(add 109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ALIGNED 111:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ALIGNED(x) __attribute__((aligned(x))) 112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __RESTRICT 114:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __RESTRICT __restrict 115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 116:Drivers/CMSIS/Include/cmsis_gcc.h **** 117:Drivers/CMSIS/Include/cmsis_gcc.h **** 118:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################### Core Function Access ########################### */ 119:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup CMSIS_Core_FunctionInterface 120:Drivers/CMSIS/Include/cmsis_gcc.h **** \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions 121:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ 122:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 123:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s page 7 124:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 125:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable IRQ Interrupts 126:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables IRQ interrupts by clearing the I-bit in the CPSR. 127:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. 128:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 129:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_irq(void) 130:Drivers/CMSIS/Include/cmsis_gcc.h **** { 131:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie i" : : : "memory"); 132:Drivers/CMSIS/Include/cmsis_gcc.h **** } 133:Drivers/CMSIS/Include/cmsis_gcc.h **** 134:Drivers/CMSIS/Include/cmsis_gcc.h **** 135:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 136:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable IRQ Interrupts 137:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables IRQ interrupts by setting the I-bit in the CPSR. 138:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. 139:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 140:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void) 141:Drivers/CMSIS/Include/cmsis_gcc.h **** { 142:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory"); 181 .loc 2 142 3 182 .syntax unified 183 @ 142 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 184 0014 72B6 cpsid i 185 @ 0 "" 2 143:Drivers/CMSIS/Include/cmsis_gcc.h **** } 186 .loc 2 143 1 187 .thumb 188 .syntax unified 189 0016 00BF nop 190 .LBE9: 191 .LBE8: 47:user_src/soft_flash.c **** 48:user_src/soft_flash.c **** __disable_irq(); 49:user_src/soft_flash.c **** HAL_FLASH_Unlock(); 192 .loc 1 49 5 193 0018 FFF7FEFF bl HAL_FLASH_Unlock 50:user_src/soft_flash.c **** 51:user_src/soft_flash.c **** //擦1页flash 1页2kb 52:user_src/soft_flash.c **** FLASH_EraseInitTypeDef f; 53:user_src/soft_flash.c **** f.TypeErase = FLASH_TYPEERASE_PAGES; 194 .loc 1 53 17 195 001c 0023 movs r3, #0 196 001e 7B61 str r3, [r7, #20] 54:user_src/soft_flash.c **** f.PageAddress = addr; 197 .loc 1 54 19 198 0020 FB68 ldr r3, [r7, #12] 199 0022 BB61 str r3, [r7, #24] 55:user_src/soft_flash.c **** f.NbPages = 1; 200 .loc 1 55 15 201 0024 0123 movs r3, #1 202 0026 FB61 str r3, [r7, #28] 56:user_src/soft_flash.c **** uint32_t PageError = 0; 203 .loc 1 56 14 204 0028 0023 movs r3, #0 205 002a 3B61 str r3, [r7, #16] 57:user_src/soft_flash.c **** HAL_FLASHEx_Erase(&f, &PageError); 206 .loc 1 57 5 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s page 8 207 002c 07F11002 add r2, r7, #16 208 0030 07F11403 add r3, r7, #20 209 0034 1146 mov r1, r2 210 0036 1846 mov r0, r3 211 0038 FFF7FEFF bl HAL_FLASHEx_Erase 58:user_src/soft_flash.c **** 59:user_src/soft_flash.c **** //写flash 每次写2字节 60:user_src/soft_flash.c **** uint16_t TempBuf = 0; 212 .loc 1 60 14 213 003c 0023 movs r3, #0 214 003e 7B84 strh r3, [r7, #34] @ movhi 215 .LBB10: 61:user_src/soft_flash.c **** for(uint16_t i = 0; i < (size % 2 == 0? size/2 : size/2 +1); i++ ) 216 .loc 1 61 18 217 0040 0023 movs r3, #0 218 0042 BB84 strh r3, [r7, #36] @ movhi 219 .loc 1 61 5 220 0044 25E0 b .L5 221 .L8: 62:user_src/soft_flash.c **** { 63:user_src/soft_flash.c **** TempBuf = *(pdata + 2 * i) + (*(pdata + 2 * i + 1) << 8); 222 .loc 1 63 31 discriminator 7 223 0046 BB8C ldrh r3, [r7, #36] 224 0048 5B00 lsls r3, r3, #1 225 004a 1A46 mov r2, r3 226 .loc 1 63 27 discriminator 7 227 004c BB68 ldr r3, [r7, #8] 228 004e 1344 add r3, r3, r2 229 .loc 1 63 19 discriminator 7 230 0050 1B78 ldrb r3, [r3] @ zero_extendqisi2 231 0052 9AB2 uxth r2, r3 232 .loc 1 63 51 discriminator 7 233 0054 BB8C ldrh r3, [r7, #36] 234 0056 5B00 lsls r3, r3, #1 235 .loc 1 63 55 discriminator 7 236 0058 0133 adds r3, r3, #1 237 005a B968 ldr r1, [r7, #8] 238 005c 0B44 add r3, r3, r1 239 .loc 1 63 39 discriminator 7 240 005e 1B78 ldrb r3, [r3] @ zero_extendqisi2 241 0060 9BB2 uxth r3, r3 242 .loc 1 63 60 discriminator 7 243 0062 1B02 lsls r3, r3, #8 244 0064 9BB2 uxth r3, r3 245 .loc 1 63 17 discriminator 7 246 0066 1344 add r3, r3, r2 247 0068 7B84 strh r3, [r7, #34] @ movhi 64:user_src/soft_flash.c **** write_status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, addr + i * 2, TempBuf); 248 .loc 1 64 79 discriminator 7 249 006a BB8C ldrh r3, [r7, #36] 250 006c 5B00 lsls r3, r3, #1 251 006e 1A46 mov r2, r3 252 .loc 1 64 24 discriminator 7 253 0070 FB68 ldr r3, [r7, #12] 254 0072 D118 adds r1, r2, r3 255 0074 7B8C ldrh r3, [r7, #34] 256 0076 0022 movs r2, #0 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s page 9 257 0078 1C46 mov r4, r3 258 007a 1546 mov r5, r2 259 007c 2246 mov r2, r4 260 007e 2B46 mov r3, r5 261 0080 0120 movs r0, #1 262 0082 FFF7FEFF bl HAL_FLASH_Program 263 0086 0346 mov r3, r0 264 0088 87F82730 strb r3, [r7, #39] 61:user_src/soft_flash.c **** for(uint16_t i = 0; i < (size % 2 == 0? size/2 : size/2 +1); i++ ) 265 .loc 1 61 67 discriminator 7 266 008c BB8C ldrh r3, [r7, #36] 267 008e 0133 adds r3, r3, #1 268 0090 BB84 strh r3, [r7, #36] @ movhi 269 .L5: 61:user_src/soft_flash.c **** for(uint16_t i = 0; i < (size % 2 == 0? size/2 : size/2 +1); i++ ) 270 .loc 1 61 27 discriminator 1 271 0092 BA8C ldrh r2, [r7, #36] 61:user_src/soft_flash.c **** for(uint16_t i = 0; i < (size % 2 == 0? size/2 : size/2 +1); i++ ) 272 .loc 1 61 39 discriminator 1 273 0094 FB88 ldrh r3, [r7, #6] @ movhi 274 0096 03F00103 and r3, r3, #1 275 009a 9BB2 uxth r3, r3 61:user_src/soft_flash.c **** for(uint16_t i = 0; i < (size % 2 == 0? size/2 : size/2 +1); i++ ) 276 .loc 1 61 52 discriminator 1 277 009c 002B cmp r3, #0 278 009e 03D1 bne .L6 61:user_src/soft_flash.c **** for(uint16_t i = 0; i < (size % 2 == 0? size/2 : size/2 +1); i++ ) 279 .loc 1 61 49 discriminator 3 280 00a0 FB88 ldrh r3, [r7, #6] 281 00a2 5B08 lsrs r3, r3, #1 282 00a4 9BB2 uxth r3, r3 283 00a6 03E0 b .L7 284 .L6: 61:user_src/soft_flash.c **** for(uint16_t i = 0; i < (size % 2 == 0? size/2 : size/2 +1); i++ ) 285 .loc 1 61 58 discriminator 4 286 00a8 FB88 ldrh r3, [r7, #6] 287 00aa 5B08 lsrs r3, r3, #1 288 00ac 9BB2 uxth r3, r3 61:user_src/soft_flash.c **** for(uint16_t i = 0; i < (size % 2 == 0? size/2 : size/2 +1); i++ ) 289 .loc 1 61 52 discriminator 4 290 00ae 0133 adds r3, r3, #1 291 .L7: 61:user_src/soft_flash.c **** for(uint16_t i = 0; i < (size % 2 == 0? size/2 : size/2 +1); i++ ) 292 .loc 1 61 5 discriminator 6 293 00b0 9342 cmp r3, r2 294 00b2 C8DC bgt .L8 295 .LBE10: 65:user_src/soft_flash.c **** } 66:user_src/soft_flash.c **** 67:user_src/soft_flash.c **** HAL_FLASH_Lock(); 296 .loc 1 67 5 297 00b4 FFF7FEFF bl HAL_FLASH_Lock 298 .LBB11: 299 .LBB12: 131:Drivers/CMSIS/Include/cmsis_gcc.h **** } 300 .loc 2 131 3 301 .syntax unified ARM GAS C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s page 10 302 @ 131 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 303 00b8 62B6 cpsie i 304 @ 0 "" 2 132:Drivers/CMSIS/Include/cmsis_gcc.h **** 305 .loc 2 132 1 306 .thumb 307 .syntax unified 308 00ba 00BF nop 309 .LBE12: 310 .LBE11: 68:user_src/soft_flash.c **** __enable_irq(); 69:user_src/soft_flash.c **** 70:user_src/soft_flash.c **** return write_status; 311 .loc 1 70 12 312 00bc 97F82730 ldrb r3, [r7, #39] @ zero_extendqisi2 71:user_src/soft_flash.c **** } 313 .loc 1 71 1 314 00c0 1846 mov r0, r3 315 00c2 2837 adds r7, r7, #40 316 .LCFI9: 317 .cfi_def_cfa_offset 16 318 00c4 BD46 mov sp, r7 319 .LCFI10: 320 .cfi_def_cfa_register 13 321 @ sp needed 322 00c6 B0BD pop {r4, r5, r7, pc} 323 .cfi_endproc 324 .LFE134: 326 .section .text.check_flash_par_normal,"ax",%progbits 327 .align 1 328 .global check_flash_par_normal 329 .syntax unified 330 .thumb 331 .thumb_func 333 check_flash_par_normal: 334 .LFB135: 72:user_src/soft_flash.c **** 73:user_src/soft_flash.c **** 74:user_src/soft_flash.c **** /** 75:user_src/soft_flash.c **** * @file check_flash_par_normal 76:user_src/soft_flash.c **** * @brief 检查flash参数是否合法 77:user_src/soft_flash.c **** * @param none 78:user_src/soft_flash.c **** * @details 79:user_src/soft_flash.c **** * @author Zhang Sir 80:user_src/soft_flash.c **** **/ 81:user_src/soft_flash.c **** short check_flash_par_normal(short par, short min_par, short max_par ,uint8_t par_or_zero) 82:user_src/soft_flash.c **** { 335 .loc 1 82 1 336 .cfi_startproc 337 @ args = 0, pretend = 0, frame = 8 338 @ frame_needed = 1, uses_anonymous_args = 0 339 @ link register save eliminated. 340 0000 90B4 push {r4, r7} 341 .LCFI11: 342 .cfi_def_cfa_offset 8 343 .cfi_offset 4, -8 344 .cfi_offset 7, -4 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s page 11 345 0002 82B0 sub sp, sp, #8 346 .LCFI12: 347 .cfi_def_cfa_offset 16 348 0004 00AF add r7, sp, #0 349 .LCFI13: 350 .cfi_def_cfa_register 7 351 0006 0446 mov r4, r0 352 0008 0846 mov r0, r1 353 000a 1146 mov r1, r2 354 000c 1A46 mov r2, r3 355 000e 2346 mov r3, r4 @ movhi 356 0010 FB80 strh r3, [r7, #6] @ movhi 357 0012 0346 mov r3, r0 @ movhi 358 0014 BB80 strh r3, [r7, #4] @ movhi 359 0016 0B46 mov r3, r1 @ movhi 360 0018 7B80 strh r3, [r7, #2] @ movhi 361 001a 1346 mov r3, r2 362 001c 7B70 strb r3, [r7, #1] 83:user_src/soft_flash.c **** if(par >= max_par) 363 .loc 1 83 7 364 001e B7F90620 ldrsh r2, [r7, #6] 365 0022 B7F90230 ldrsh r3, [r7, #2] 366 0026 9A42 cmp r2, r3 367 0028 07DB blt .L11 84:user_src/soft_flash.c **** { 85:user_src/soft_flash.c **** if(par_or_zero == 1) 368 .loc 1 85 11 369 002a 7B78 ldrb r3, [r7, #1] @ zero_extendqisi2 370 002c 012B cmp r3, #1 371 002e 02D1 bne .L12 86:user_src/soft_flash.c **** { 87:user_src/soft_flash.c **** return max_par; 372 .loc 1 87 20 373 0030 B7F90230 ldrsh r3, [r7, #2] 374 0034 11E0 b .L13 375 .L12: 88:user_src/soft_flash.c **** } 89:user_src/soft_flash.c **** else 90:user_src/soft_flash.c **** { 91:user_src/soft_flash.c **** return 0; 376 .loc 1 91 20 377 0036 0023 movs r3, #0 378 0038 0FE0 b .L13 379 .L11: 92:user_src/soft_flash.c **** } 93:user_src/soft_flash.c **** } 94:user_src/soft_flash.c **** else if(par <= min_par) 380 .loc 1 94 12 381 003a B7F90620 ldrsh r2, [r7, #6] 382 003e B7F90430 ldrsh r3, [r7, #4] 383 0042 9A42 cmp r2, r3 384 0044 07DC bgt .L14 95:user_src/soft_flash.c **** { 96:user_src/soft_flash.c **** if(par_or_zero == 1) 385 .loc 1 96 11 386 0046 7B78 ldrb r3, [r7, #1] @ zero_extendqisi2 387 0048 012B cmp r3, #1 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s page 12 388 004a 02D1 bne .L15 97:user_src/soft_flash.c **** { 98:user_src/soft_flash.c **** return min_par; 389 .loc 1 98 20 390 004c B7F90430 ldrsh r3, [r7, #4] 391 0050 03E0 b .L13 392 .L15: 99:user_src/soft_flash.c **** } 100:user_src/soft_flash.c **** else 101:user_src/soft_flash.c **** { 102:user_src/soft_flash.c **** return 0; 393 .loc 1 102 20 394 0052 0023 movs r3, #0 395 0054 01E0 b .L13 396 .L14: 103:user_src/soft_flash.c **** } 104:user_src/soft_flash.c **** } 105:user_src/soft_flash.c **** else 106:user_src/soft_flash.c **** { 107:user_src/soft_flash.c **** return par; 397 .loc 1 107 16 398 0056 B7F90630 ldrsh r3, [r7, #6] 399 .L13: 108:user_src/soft_flash.c **** } 109:user_src/soft_flash.c **** } 400 .loc 1 109 1 401 005a 1846 mov r0, r3 402 005c 0837 adds r7, r7, #8 403 .LCFI14: 404 .cfi_def_cfa_offset 8 405 005e BD46 mov sp, r7 406 .LCFI15: 407 .cfi_def_cfa_register 13 408 @ sp needed 409 0060 90BC pop {r4, r7} 410 .LCFI16: 411 .cfi_restore 7 412 .cfi_restore 4 413 .cfi_def_cfa_offset 0 414 0062 7047 bx lr 415 .cfi_endproc 416 .LFE135: 418 .global reset_reason_temp 419 .section .bss.reset_reason_temp,"aw",%nobits 420 .align 1 423 reset_reason_temp: 424 0000 0000 .space 2 425 .section .text.flash_read_funcktion,"ax",%progbits 426 .align 1 427 .global flash_read_funcktion 428 .syntax unified 429 .thumb 430 .thumb_func 432 flash_read_funcktion: 433 .LFB136: 110:user_src/soft_flash.c **** 111:user_src/soft_flash.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s page 13 112:user_src/soft_flash.c **** 113:user_src/soft_flash.c **** 114:user_src/soft_flash.c **** /** 115:user_src/soft_flash.c **** * @file flash_read_vol_funcktion 116:user_src/soft_flash.c **** * @brief 从flash中读取电压校准的系数 117:user_src/soft_flash.c **** * @param none 118:user_src/soft_flash.c **** * @details 125kb地址0x801F800 119:user_src/soft_flash.c **** * @author Zhang Sir 120:user_src/soft_flash.c **** **/ 121:user_src/soft_flash.c **** short reset_reason_temp = 0; 122:user_src/soft_flash.c **** void flash_read_funcktion( void ) 123:user_src/soft_flash.c **** { 434 .loc 1 123 1 435 .cfi_startproc 436 @ args = 0, pretend = 0, frame = 24 437 @ frame_needed = 1, uses_anonymous_args = 0 438 0000 80B5 push {r7, lr} 439 .LCFI17: 440 .cfi_def_cfa_offset 8 441 .cfi_offset 7, -8 442 .cfi_offset 14, -4 443 0002 86B0 sub sp, sp, #24 444 .LCFI18: 445 .cfi_def_cfa_offset 32 446 0004 00AF add r7, sp, #0 447 .LCFI19: 448 .cfi_def_cfa_register 7 124:user_src/soft_flash.c **** GPIO_InitTypeDef GPIO_InitStruct = {0}; 449 .loc 1 124 22 450 0006 3B1D adds r3, r7, #4 451 0008 0022 movs r2, #0 452 000a 1A60 str r2, [r3] 453 000c 5A60 str r2, [r3, #4] 454 000e 9A60 str r2, [r3, #8] 455 0010 DA60 str r2, [r3, #12] 456 0012 1A61 str r2, [r3, #16] 125:user_src/soft_flash.c **** 126:user_src/soft_flash.c **** ReadFlashNBtye( FLASH_PAR_INFO, ( uint8_t * )&flash_pmu_par, sizeof( _F_PMU_PAR ) ); 457 .loc 1 126 5 458 0014 1222 movs r2, #18 459 0016 2149 ldr r1, .L20 460 0018 2148 ldr r0, .L20+4 461 001a FFF7FEFF bl ReadFlashNBtye 127:user_src/soft_flash.c **** 128:user_src/soft_flash.c **** if(flash_pmu_par.flag != 0xAA) 462 .loc 1 128 21 463 001e 1F4B ldr r3, .L20 464 0020 B3F90030 ldrsh r3, [r3] 465 .loc 1 128 7 466 0024 AA2B cmp r3, #170 467 0026 01D0 beq .L17 129:user_src/soft_flash.c **** parameter_assignment_default(); 468 .loc 1 129 9 469 0028 FFF7FEFF bl parameter_assignment_default 470 .L17: 130:user_src/soft_flash.c **** 131:user_src/soft_flash.c **** parameter_copy(); ARM GAS C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s page 14 471 .loc 1 131 5 472 002c FFF7FEFF bl parameter_copy 132:user_src/soft_flash.c **** 133:user_src/soft_flash.c **** if(current_pmu_par.uavtype == VK_ALL_IN_ONE) 473 .loc 1 133 23 474 0030 1C4B ldr r3, .L20+8 475 0032 B3F90230 ldrsh r3, [r3, #2] 476 .loc 1 133 7 477 0036 122B cmp r3, #18 478 0038 06D1 bne .L18 134:user_src/soft_flash.c **** { 135:user_src/soft_flash.c **** init_pwmout(VK_ALL_IN_ONE); 479 .loc 1 135 9 480 003a 1220 movs r0, #18 481 003c FFF7FEFF bl init_pwmout 136:user_src/soft_flash.c **** init_gpio(VK_ALL_IN_ONE); 482 .loc 1 136 9 483 0040 1220 movs r0, #18 484 0042 FFF7FEFF bl init_gpio 485 0046 1FE0 b .L19 486 .L18: 137:user_src/soft_flash.c **** } 138:user_src/soft_flash.c **** else 139:user_src/soft_flash.c **** { 140:user_src/soft_flash.c **** //先执行上电离心喷头会转 141:user_src/soft_flash.c **** 142:user_src/soft_flash.c **** GPIO_InitStruct.Pin = EXIT_1T_Pin|EXIT_2T_Pin; 487 .loc 1 142 29 488 0048 C023 movs r3, #192 489 004a 7B60 str r3, [r7, #4] 143:user_src/soft_flash.c **** GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING_FALLING;//GPIO_MODE_IT_RISING; 490 .loc 1 143 30 491 004c 4FF44413 mov r3, #3211264 492 0050 BB60 str r3, [r7, #8] 144:user_src/soft_flash.c **** GPIO_InitStruct.Pull = GPIO_PULLUP; 493 .loc 1 144 30 494 0052 0123 movs r3, #1 495 0054 FB60 str r3, [r7, #12] 145:user_src/soft_flash.c **** HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); 496 .loc 1 145 9 497 0056 3B1D adds r3, r7, #4 498 0058 1946 mov r1, r3 499 005a 1348 ldr r0, .L20+12 500 005c FFF7FEFF bl HAL_GPIO_Init 146:user_src/soft_flash.c **** 147:user_src/soft_flash.c **** GPIO_InitStruct.Pin = EXIT_3T_Pin|EXIT_4T_Pin; 501 .loc 1 147 29 502 0060 4FF44073 mov r3, #768 503 0064 7B60 str r3, [r7, #4] 148:user_src/soft_flash.c **** GPIO_InitStruct.Mode = GPIO_MODE_INPUT; 504 .loc 1 148 30 505 0066 0023 movs r3, #0 506 0068 BB60 str r3, [r7, #8] 149:user_src/soft_flash.c **** GPIO_InitStruct.Pull = GPIO_PULLUP; 507 .loc 1 149 30 508 006a 0123 movs r3, #1 509 006c FB60 str r3, [r7, #12] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s page 15 150:user_src/soft_flash.c **** HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); 510 .loc 1 150 9 511 006e 3B1D adds r3, r7, #4 512 0070 1946 mov r1, r3 513 0072 0D48 ldr r0, .L20+12 514 0074 FFF7FEFF bl HAL_GPIO_Init 151:user_src/soft_flash.c **** 152:user_src/soft_flash.c **** 153:user_src/soft_flash.c **** /* EXTI interrupt init*/ 154:user_src/soft_flash.c **** HAL_NVIC_SetPriority(EXTI9_5_IRQn, 0, 0); 515 .loc 1 154 9 516 0078 0022 movs r2, #0 517 007a 0021 movs r1, #0 518 007c 1720 movs r0, #23 519 007e FFF7FEFF bl HAL_NVIC_SetPriority 155:user_src/soft_flash.c **** HAL_NVIC_EnableIRQ(EXTI9_5_IRQn); 520 .loc 1 155 9 521 0082 1720 movs r0, #23 522 0084 FFF7FEFF bl HAL_NVIC_EnableIRQ 523 .L19: 156:user_src/soft_flash.c **** } 157:user_src/soft_flash.c **** HAL_TIM_Base_Start_IT(&htim4); 524 .loc 1 157 5 525 0088 0848 ldr r0, .L20+16 526 008a FFF7FEFF bl HAL_TIM_Base_Start_IT 158:user_src/soft_flash.c **** HAL_TIM_Base_Start(&htim4); 527 .loc 1 158 5 528 008e 0748 ldr r0, .L20+16 529 0090 FFF7FEFF bl HAL_TIM_Base_Start 159:user_src/soft_flash.c **** } 530 .loc 1 159 1 531 0094 00BF nop 532 0096 1837 adds r7, r7, #24 533 .LCFI20: 534 .cfi_def_cfa_offset 8 535 0098 BD46 mov sp, r7 536 .LCFI21: 537 .cfi_def_cfa_register 13 538 @ sp needed 539 009a 80BD pop {r7, pc} 540 .L21: 541 .align 2 542 .L20: 543 009c 00000000 .word flash_pmu_par 544 00a0 00680008 .word 134244352 545 00a4 00000000 .word current_pmu_par 546 00a8 00040048 .word 1207960576 547 00ac 00000000 .word htim4 548 .cfi_endproc 549 .LFE136: 551 .section .text.parameter_assignment_default,"ax",%progbits 552 .align 1 553 .global parameter_assignment_default 554 .syntax unified 555 .thumb 556 .thumb_func 558 parameter_assignment_default: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s page 16 559 .LFB137: 160:user_src/soft_flash.c **** 161:user_src/soft_flash.c **** /** 162:user_src/soft_flash.c **** * @file parameter_assignment_default 163:user_src/soft_flash.c **** * @brief 设置默认参数 164:user_src/soft_flash.c **** * @param none 165:user_src/soft_flash.c **** * @details 166:user_src/soft_flash.c **** * @author Zhang Sir 167:user_src/soft_flash.c **** **/ 168:user_src/soft_flash.c **** void parameter_assignment_default(void) 169:user_src/soft_flash.c **** { 560 .loc 1 169 1 561 .cfi_startproc 562 @ args = 0, pretend = 0, frame = 0 563 @ frame_needed = 1, uses_anonymous_args = 0 564 0000 80B5 push {r7, lr} 565 .LCFI22: 566 .cfi_def_cfa_offset 8 567 .cfi_offset 7, -8 568 .cfi_offset 14, -4 569 0002 00AF add r7, sp, #0 570 .LCFI23: 571 .cfi_def_cfa_register 7 170:user_src/soft_flash.c **** flash_pmu_par.flag = 0xAA; 572 .loc 1 170 24 573 0004 124B ldr r3, .L23 574 0006 AA22 movs r2, #170 575 0008 1A80 strh r2, [r3] @ movhi 171:user_src/soft_flash.c **** flash_pmu_par._cal_vol = 0; 576 .loc 1 171 28 577 000a 114B ldr r3, .L23 578 000c 0022 movs r2, #0 579 000e 5A80 strh r2, [r3, #2] @ movhi 172:user_src/soft_flash.c **** flash_pmu_par._uavtype = 0; 580 .loc 1 172 28 581 0010 0F4B ldr r3, .L23 582 0012 0022 movs r2, #0 583 0014 9A80 strh r2, [r3, #4] @ movhi 173:user_src/soft_flash.c **** flash_pmu_par._abnormal_outage_flag = false; 584 .loc 1 173 41 585 0016 0E4B ldr r3, .L23 586 0018 0022 movs r2, #0 587 001a DA80 strh r2, [r3, #6] @ movhi 174:user_src/soft_flash.c **** flash_pmu_par._reset_reason = 0; 588 .loc 1 174 33 589 001c 0C4B ldr r3, .L23 590 001e 0022 movs r2, #0 591 0020 1A81 strh r2, [r3, #8] @ movhi 175:user_src/soft_flash.c **** flash_pmu_par._SN_L = PMU_SERIAL & 0xffff; 592 .loc 1 175 25 593 0022 0B4B ldr r3, .L23 594 0024 4AF66962 movw r2, #44649 595 0028 5A81 strh r2, [r3, #10] @ movhi 176:user_src/soft_flash.c **** flash_pmu_par._SN_H = (PMU_SERIAL >> 16) & 0xffff; 596 .loc 1 176 25 597 002a 094B ldr r3, .L23 598 002c 40F68E72 movw r2, #3982 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s page 17 599 0030 9A81 strh r2, [r3, #12] @ movhi 177:user_src/soft_flash.c **** flash_pmu_par._hardVersion_L = PMU_HARDVERSION & 0xffff; 600 .loc 1 177 34 601 0032 074B ldr r3, .L23 602 0034 40F2E712 movw r2, #487 603 0038 DA81 strh r2, [r3, #14] @ movhi 178:user_src/soft_flash.c **** flash_pmu_par._hardVersion_H = (PMU_HARDVERSION >> 16) & 0xffff; 604 .loc 1 178 34 605 003a 054B ldr r3, .L23 606 003c 40F23512 movw r2, #309 607 0040 1A82 strh r2, [r3, #16] @ movhi 179:user_src/soft_flash.c **** 180:user_src/soft_flash.c **** WriteFlashNBtye(FLASH_PAR_INFO,(uint8_t *)&flash_pmu_par,sizeof(_F_PMU_PAR)); 608 .loc 1 180 5 609 0042 1222 movs r2, #18 610 0044 0249 ldr r1, .L23 611 0046 0348 ldr r0, .L23+4 612 0048 FFF7FEFF bl WriteFlashNBtye 181:user_src/soft_flash.c **** } 613 .loc 1 181 1 614 004c 00BF nop 615 004e 80BD pop {r7, pc} 616 .L24: 617 .align 2 618 .L23: 619 0050 00000000 .word flash_pmu_par 620 0054 00680008 .word 134244352 621 .cfi_endproc 622 .LFE137: 624 .section .text.parameter_copy,"ax",%progbits 625 .align 1 626 .global parameter_copy 627 .syntax unified 628 .thumb 629 .thumb_func 631 parameter_copy: 632 .LFB138: 182:user_src/soft_flash.c **** 183:user_src/soft_flash.c **** /** 184:user_src/soft_flash.c **** * @file parameter_copy 185:user_src/soft_flash.c **** * @brief 参数赋值 186:user_src/soft_flash.c **** * @param none 187:user_src/soft_flash.c **** * @details 188:user_src/soft_flash.c **** * @author Zhang Sir 189:user_src/soft_flash.c **** **/ 190:user_src/soft_flash.c **** void parameter_copy(void) 191:user_src/soft_flash.c **** { 633 .loc 1 191 1 634 .cfi_startproc 635 @ args = 0, pretend = 0, frame = 0 636 @ frame_needed = 1, uses_anonymous_args = 0 637 0000 80B5 push {r7, lr} 638 .LCFI24: 639 .cfi_def_cfa_offset 8 640 .cfi_offset 7, -8 641 .cfi_offset 14, -4 642 0002 00AF add r7, sp, #0 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s page 18 643 .LCFI25: 644 .cfi_def_cfa_register 7 192:user_src/soft_flash.c **** current_pmu_par.cal_vol = check_flash_par_normal(flash_pmu_par._cal_vol,-50,50,0); 645 .loc 1 192 31 646 0004 184B ldr r3, .L26 647 0006 B3F90200 ldrsh r0, [r3, #2] 648 000a 0023 movs r3, #0 649 000c 3222 movs r2, #50 650 000e 6FF03101 mvn r1, #49 651 0012 FFF7FEFF bl check_flash_par_normal 652 0016 0346 mov r3, r0 653 0018 1A46 mov r2, r3 654 .loc 1 192 29 655 001a 144B ldr r3, .L26+4 656 001c 1A80 strh r2, [r3] @ movhi 193:user_src/soft_flash.c **** current_pmu_par.uavtype = flash_pmu_par._uavtype; 657 .loc 1 193 44 658 001e 124B ldr r3, .L26 659 0020 B3F90420 ldrsh r2, [r3, #4] 660 .loc 1 193 29 661 0024 114B ldr r3, .L26+4 662 0026 5A80 strh r2, [r3, #2] @ movhi 194:user_src/soft_flash.c **** current_pmu_par.abnormal_outage_flag = flash_pmu_par._abnormal_outage_flag; 663 .loc 1 194 57 664 0028 0F4B ldr r3, .L26 665 002a B3F90620 ldrsh r2, [r3, #6] 666 .loc 1 194 42 667 002e 0F4B ldr r3, .L26+4 668 0030 9A80 strh r2, [r3, #4] @ movhi 195:user_src/soft_flash.c **** current_pmu_par.reset_reason = flash_pmu_par._reset_reason; 669 .loc 1 195 49 670 0032 0D4B ldr r3, .L26 671 0034 B3F90820 ldrsh r2, [r3, #8] 672 .loc 1 195 34 673 0038 0C4B ldr r3, .L26+4 674 003a DA80 strh r2, [r3, #6] @ movhi 196:user_src/soft_flash.c **** current_pmu_par.SN = flash_pmu_par._SN_L + (flash_pmu_par._SN_H << 16); 675 .loc 1 196 39 676 003c 0A4B ldr r3, .L26 677 003e 5B89 ldrh r3, [r3, #10] 678 0040 1A46 mov r2, r3 679 .loc 1 196 62 680 0042 094B ldr r3, .L26 681 0044 9B89 ldrh r3, [r3, #12] 682 .loc 1 196 69 683 0046 1B04 lsls r3, r3, #16 684 .loc 1 196 46 685 0048 1344 add r3, r3, r2 686 .loc 1 196 24 687 004a 084A ldr r2, .L26+4 688 004c 9360 str r3, [r2, #8] 197:user_src/soft_flash.c **** current_pmu_par.hardVersion = flash_pmu_par._hardVersion_L + (flash_pmu_par._hardVersion_H << 1 689 .loc 1 197 48 690 004e 064B ldr r3, .L26 691 0050 B3F90E30 ldrsh r3, [r3, #14] 692 0054 1A46 mov r2, r3 693 .loc 1 197 80 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s page 19 694 0056 044B ldr r3, .L26 695 0058 B3F91030 ldrsh r3, [r3, #16] 696 .loc 1 197 96 697 005c 1B04 lsls r3, r3, #16 698 .loc 1 197 64 699 005e 1344 add r3, r3, r2 700 .loc 1 197 33 701 0060 024A ldr r2, .L26+4 702 0062 D360 str r3, [r2, #12] 198:user_src/soft_flash.c **** } 703 .loc 1 198 1 704 0064 00BF nop 705 0066 80BD pop {r7, pc} 706 .L27: 707 .align 2 708 .L26: 709 0068 00000000 .word flash_pmu_par 710 006c 00000000 .word current_pmu_par 711 .cfi_endproc 712 .LFE138: 714 .section .text.flash_write_pmu_par,"ax",%progbits 715 .align 1 716 .global flash_write_pmu_par 717 .syntax unified 718 .thumb 719 .thumb_func 721 flash_write_pmu_par: 722 .LFB139: 199:user_src/soft_flash.c **** 200:user_src/soft_flash.c **** /** 201:user_src/soft_flash.c **** * @file flash_write_pmu_par 202:user_src/soft_flash.c **** * @brief 写flash 203:user_src/soft_flash.c **** * @param none 204:user_src/soft_flash.c **** * @details 205:user_src/soft_flash.c **** * @author Zhang Sir 206:user_src/soft_flash.c **** **/ 207:user_src/soft_flash.c **** void flash_write_pmu_par(void) 208:user_src/soft_flash.c **** { 723 .loc 1 208 1 724 .cfi_startproc 725 @ args = 0, pretend = 0, frame = 0 726 @ frame_needed = 1, uses_anonymous_args = 0 727 0000 80B5 push {r7, lr} 728 .LCFI26: 729 .cfi_def_cfa_offset 8 730 .cfi_offset 7, -8 731 .cfi_offset 14, -4 732 0002 00AF add r7, sp, #0 733 .LCFI27: 734 .cfi_def_cfa_register 7 209:user_src/soft_flash.c **** if(write_flash_flag == true) 735 .loc 1 209 25 736 0004 094B ldr r3, .L31 737 0006 1B78 ldrb r3, [r3] @ zero_extendqisi2 738 .loc 1 209 7 739 0008 002B cmp r3, #0 740 000a 0CD0 beq .L30 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s page 20 210:user_src/soft_flash.c **** { 211:user_src/soft_flash.c **** if(HAL_OK == WriteFlashNBtye(FLASH_PAR_INFO,(uint8_t *)&flash_pmu_par,sizeof(_F_PMU_PAR))) 741 .loc 1 211 22 742 000c 1222 movs r2, #18 743 000e 0849 ldr r1, .L31+4 744 0010 0848 ldr r0, .L31+8 745 0012 FFF7FEFF bl WriteFlashNBtye 746 0016 0346 mov r3, r0 747 .loc 1 211 11 748 0018 002B cmp r3, #0 749 001a 04D1 bne .L30 212:user_src/soft_flash.c **** { 213:user_src/soft_flash.c **** write_flash_flag = false; 750 .loc 1 213 30 751 001c 034B ldr r3, .L31 752 001e 0022 movs r2, #0 753 0020 1A70 strb r2, [r3] 214:user_src/soft_flash.c **** parameter_copy(); 754 .loc 1 214 13 755 0022 FFF7FEFF bl parameter_copy 756 .L30: 215:user_src/soft_flash.c **** } 216:user_src/soft_flash.c **** 217:user_src/soft_flash.c **** } 218:user_src/soft_flash.c **** } 757 .loc 1 218 1 758 0026 00BF nop 759 0028 80BD pop {r7, pc} 760 .L32: 761 002a 00BF .align 2 762 .L31: 763 002c 00000000 .word write_flash_flag 764 0030 00000000 .word flash_pmu_par 765 0034 00680008 .word 134244352 766 .cfi_endproc 767 .LFE139: 769 .text 770 .Letext0: 771 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h" 772 .file 4 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h" 773 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h" 774 .file 6 "d:\\arm-gcc\\lib\\gcc\\arm-none-eabi\\10.3.1\\include\\stddef.h" 775 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h" 776 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h" 777 .file 9 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h" 778 .file 10 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h" 779 .file 11 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h" 780 .file 12 "user_inc/soft_flash.h" 781 .file 13 "Core/Inc/tim.h" ARM GAS C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s page 21 DEFINED SYMBOLS *ABS*:00000000 soft_flash.c C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:23 .bss.write_aboutage_information:00000000 write_aboutage_information C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:24 .bss.write_aboutage_information:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:29 .bss.read_aboutage_information:00000000 read_aboutage_information C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:30 .bss.read_aboutage_information:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:36 .bss.set_cali_voltage:00000000 set_cali_voltage C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:33 .bss.set_cali_voltage:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:43 .bss.set_pmu_serail:00000000 set_pmu_serail C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:40 .bss.set_pmu_serail:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:50 .bss.flash_pmu_par:00000000 flash_pmu_par C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:47 .bss.flash_pmu_par:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:57 .bss.current_pmu_par:00000000 current_pmu_par C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:54 .bss.current_pmu_par:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:63 .bss.write_flash_flag:00000000 write_flash_flag C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:64 .bss.write_flash_flag:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:66 .text.ReadFlashNBtye:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:72 .text.ReadFlashNBtye:00000000 ReadFlashNBtye C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:146 .text.WriteFlashNBtye:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:152 .text.WriteFlashNBtye:00000000 WriteFlashNBtye C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:327 .text.check_flash_par_normal:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:333 .text.check_flash_par_normal:00000000 check_flash_par_normal C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:423 .bss.reset_reason_temp:00000000 reset_reason_temp C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:420 .bss.reset_reason_temp:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:426 .text.flash_read_funcktion:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:432 .text.flash_read_funcktion:00000000 flash_read_funcktion C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:558 .text.parameter_assignment_default:00000000 parameter_assignment_default C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:631 .text.parameter_copy:00000000 parameter_copy C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:543 .text.flash_read_funcktion:0000009c $d C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:552 .text.parameter_assignment_default:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:619 .text.parameter_assignment_default:00000050 $d C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:625 .text.parameter_copy:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:709 .text.parameter_copy:00000068 $d C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:715 .text.flash_write_pmu_par:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:721 .text.flash_write_pmu_par:00000000 flash_write_pmu_par C:\Users\zl835\AppData\Local\Temp\ccHaMIB0.s:763 .text.flash_write_pmu_par:0000002c $d UNDEFINED SYMBOLS HAL_FLASH_Unlock HAL_FLASHEx_Erase HAL_FLASH_Program HAL_FLASH_Lock init_pwmout init_gpio HAL_GPIO_Init HAL_NVIC_SetPriority HAL_NVIC_EnableIRQ HAL_TIM_Base_Start_IT HAL_TIM_Base_Start htim4