| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909 |
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc1ni56I.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 sectStartAddr
- 20 .section .data.sectStartAddr,"aw"
- 21 .align 2
- 24 sectStartAddr:
- 25 0000 00000008 .word 134217728
- 26 0004 00400008 .word 134234112
- 27 0008 00800008 .word 134250496
- 28 000c 00C00008 .word 134266880
- 29 0010 00000108 .word 134283264
- 30 0014 00000208 .word 134348800
- 31 0018 00000408 .word 134479872
- 32 001c 00000608 .word 134610944
- 33 0020 00000808 .word 134742016
- 34 0024 00000A08 .word 134873088
- 35 0028 00000C08 .word 135004160
- 36 002c 00000E08 .word 135135232
- 37 .section .text.GetSectorFromAddress,"ax",%progbits
- 38 .align 1
- 39 .global GetSectorFromAddress
- 40 .syntax unified
- 41 .thumb
- 42 .thumb_func
- 44 GetSectorFromAddress:
- 45 .LFB235:
- 46 .file 1 "Core/Src/soft_flash.c"
- 1:Core/Src/soft_flash.c **** #include "main.h"
- 2:Core/Src/soft_flash.c **** #include "soft_flash.h"
- 3:Core/Src/soft_flash.c **** #include <string.h>
- 4:Core/Src/soft_flash.c **** #include "soft_crc.h"
- 5:Core/Src/soft_flash.c **** #include "stm32f4xx_hal_flash_ex.h"
- 6:Core/Src/soft_flash.c ****
- 7:Core/Src/soft_flash.c **** extern UART_HandleTypeDef huart2;
- 8:Core/Src/soft_flash.c ****
- 9:Core/Src/soft_flash.c **** uint32_t sectStartAddr[12]=
- 10:Core/Src/soft_flash.c **** {
- 11:Core/Src/soft_flash.c **** 0x08000000,//0
- 12:Core/Src/soft_flash.c **** 0x08004000,//1
- 13:Core/Src/soft_flash.c **** 0x08008000,//2
- 14:Core/Src/soft_flash.c **** 0x0800c000,//3
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc1ni56I.s page 2
- 15:Core/Src/soft_flash.c **** 0x08010000,//4
- 16:Core/Src/soft_flash.c **** 0x08020000,//5
- 17:Core/Src/soft_flash.c **** 0x08040000,//6
- 18:Core/Src/soft_flash.c **** 0x08060000, //7
- 19:Core/Src/soft_flash.c **** 0x08080000, //8
- 20:Core/Src/soft_flash.c **** 0x080A0000, //9
- 21:Core/Src/soft_flash.c **** 0x080C0000, //10
- 22:Core/Src/soft_flash.c **** 0x080E0000, //11
- 23:Core/Src/soft_flash.c **** };
- 24:Core/Src/soft_flash.c ****
- 25:Core/Src/soft_flash.c **** int GetSectorFromAddress(uint32_t address)
- 26:Core/Src/soft_flash.c **** {
- 47 .loc 1 26 1
- 48 .cfi_startproc
- 49 @ args = 0, pretend = 0, frame = 16
- 50 @ frame_needed = 1, uses_anonymous_args = 0
- 51 @ link register save eliminated.
- 52 0000 80B4 push {r7}
- 53 .LCFI0:
- 54 .cfi_def_cfa_offset 4
- 55 .cfi_offset 7, -4
- 56 0002 85B0 sub sp, sp, #20
- 57 .LCFI1:
- 58 .cfi_def_cfa_offset 24
- 59 0004 00AF add r7, sp, #0
- 60 .LCFI2:
- 61 .cfi_def_cfa_register 7
- 62 0006 7860 str r0, [r7, #4]
- 27:Core/Src/soft_flash.c **** int sect = 0;
- 63 .loc 1 27 9
- 64 0008 0023 movs r3, #0
- 65 000a FB60 str r3, [r7, #12]
- 28:Core/Src/soft_flash.c **** if( address < 0x08000000 || address > 0x08100000 )
- 66 .loc 1 28 7
- 67 000c 7B68 ldr r3, [r7, #4]
- 68 000e B3F1006F cmp r3, #134217728
- 69 0012 03D3 bcc .L2
- 70 .loc 1 28 30 discriminator 1
- 71 0014 7B68 ldr r3, [r7, #4]
- 72 0016 B3F1016F cmp r3, #135266304
- 73 001a 02D9 bls .L3
- 74 .L2:
- 29:Core/Src/soft_flash.c **** return -1;
- 75 .loc 1 29 16
- 76 001c 4FF0FF33 mov r3, #-1
- 77 0020 1BE0 b .L4
- 78 .L3:
- 79 .LBB14:
- 30:Core/Src/soft_flash.c **** for( int i=0; i<8; i++ )
- 80 .loc 1 30 14
- 81 0022 0023 movs r3, #0
- 82 0024 BB60 str r3, [r7, #8]
- 83 .loc 1 30 5
- 84 0026 14E0 b .L5
- 85 .L8:
- 31:Core/Src/soft_flash.c **** {
- 32:Core/Src/soft_flash.c **** if( address >= sectStartAddr[i] && address < sectStartAddr[i+1] )
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc1ni56I.s page 3
- 86 .loc 1 32 37
- 87 0028 0F4A ldr r2, .L9
- 88 002a BB68 ldr r3, [r7, #8]
- 89 002c 52F82330 ldr r3, [r2, r3, lsl #2]
- 90 .loc 1 32 11
- 91 0030 7A68 ldr r2, [r7, #4]
- 92 0032 9A42 cmp r2, r3
- 93 0034 0AD3 bcc .L6
- 94 .loc 1 32 69 discriminator 1
- 95 0036 BB68 ldr r3, [r7, #8]
- 96 0038 0133 adds r3, r3, #1
- 97 .loc 1 32 67 discriminator 1
- 98 003a 0B4A ldr r2, .L9
- 99 003c 52F82330 ldr r3, [r2, r3, lsl #2]
- 100 .loc 1 32 41 discriminator 1
- 101 0040 7A68 ldr r2, [r7, #4]
- 102 0042 9A42 cmp r2, r3
- 103 0044 02D2 bcs .L6
- 33:Core/Src/soft_flash.c **** {
- 34:Core/Src/soft_flash.c **** sect = i;
- 104 .loc 1 34 18
- 105 0046 BB68 ldr r3, [r7, #8]
- 106 0048 FB60 str r3, [r7, #12]
- 35:Core/Src/soft_flash.c **** break;
- 107 .loc 1 35 13
- 108 004a 05E0 b .L7
- 109 .L6:
- 30:Core/Src/soft_flash.c **** {
- 110 .loc 1 30 25 discriminator 2
- 111 004c BB68 ldr r3, [r7, #8]
- 112 004e 0133 adds r3, r3, #1
- 113 0050 BB60 str r3, [r7, #8]
- 114 .L5:
- 30:Core/Src/soft_flash.c **** {
- 115 .loc 1 30 5 discriminator 1
- 116 0052 BB68 ldr r3, [r7, #8]
- 117 0054 072B cmp r3, #7
- 118 0056 E7DD ble .L8
- 119 .L7:
- 120 .LBE14:
- 36:Core/Src/soft_flash.c **** }
- 37:Core/Src/soft_flash.c **** }
- 38:Core/Src/soft_flash.c **** return sect;
- 121 .loc 1 38 12
- 122 0058 FB68 ldr r3, [r7, #12]
- 123 .L4:
- 39:Core/Src/soft_flash.c **** }
- 124 .loc 1 39 1
- 125 005a 1846 mov r0, r3
- 126 005c 1437 adds r7, r7, #20
- 127 .LCFI3:
- 128 .cfi_def_cfa_offset 4
- 129 005e BD46 mov sp, r7
- 130 .LCFI4:
- 131 .cfi_def_cfa_register 13
- 132 @ sp needed
- 133 0060 5DF8047B ldr r7, [sp], #4
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc1ni56I.s page 4
- 134 .LCFI5:
- 135 .cfi_restore 7
- 136 .cfi_def_cfa_offset 0
- 137 0064 7047 bx lr
- 138 .L10:
- 139 0066 00BF .align 2
- 140 .L9:
- 141 0068 00000000 .word sectStartAddr
- 142 .cfi_endproc
- 143 .LFE235:
- 145 .section .text.Flash_WriteData,"ax",%progbits
- 146 .align 1
- 147 .global Flash_WriteData
- 148 .syntax unified
- 149 .thumb
- 150 .thumb_func
- 152 Flash_WriteData:
- 153 .LFB236:
- 40:Core/Src/soft_flash.c **** //FLASH写
- 41:Core/Src/soft_flash.c **** uint32_t Flash_WriteData(uint32_t addr, uint16_t *data, uint16_t Size)
- 42:Core/Src/soft_flash.c **** {
- 154 .loc 1 42 1
- 155 .cfi_startproc
- 156 @ args = 0, pretend = 0, frame = 24
- 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 86B0 sub sp, sp, #24
- 166 .LCFI7:
- 167 .cfi_def_cfa_offset 40
- 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
- 43:Core/Src/soft_flash.c **** static int8_t cur_sector = -1;
- 44:Core/Src/soft_flash.c **** uint8_t tar_sector = 0;
- 175 .loc 1 44 13
- 176 000e 0023 movs r3, #0
- 177 0010 7B75 strb r3, [r7, #21]
- 178 .LBB15:
- 179 .LBB16:
- 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 **** /*
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc1ni56I.s page 5
- 8:Drivers/CMSIS/Include/cmsis_gcc.h **** * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
- 9:Drivers/CMSIS/Include/cmsis_gcc.h **** *
- 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
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc1ni56I.s page 6
- 65:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_STRUCT struct __attribute__((packed, aligned(1)))
- 66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
- 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 **** @{
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc1ni56I.s page 7
- 122:Drivers/CMSIS/Include/cmsis_gcc.h **** */
- 123:Drivers/CMSIS/Include/cmsis_gcc.h ****
- 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 0012 72B6 cpsid i
- 185 @ 0 "" 2
- 143:Drivers/CMSIS/Include/cmsis_gcc.h **** }
- 186 .loc 2 143 1
- 187 .thumb
- 188 .syntax unified
- 189 0014 00BF nop
- 190 .LBE16:
- 191 .LBE15:
- 45:Core/Src/soft_flash.c ****
- 46:Core/Src/soft_flash.c **** __disable_irq();
- 47:Core/Src/soft_flash.c **** HAL_FLASH_Unlock();
- 192 .loc 1 47 5
- 193 0016 FFF7FEFF bl HAL_FLASH_Unlock
- 48:Core/Src/soft_flash.c ****
- 49:Core/Src/soft_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR |
- 194 .loc 1 49 5
- 195 001a 254B ldr r3, .L17
- 196 001c F322 movs r2, #243
- 197 001e DA60 str r2, [r3, #12]
- 50:Core/Src/soft_flash.c **** FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR);//清除一些
- 51:Core/Src/soft_flash.c ****
- 52:Core/Src/soft_flash.c **** //是否要擦扇区
- 53:Core/Src/soft_flash.c **** tar_sector = GetSectorFromAddress(addr);//获取地址所在的扇区
- 198 .loc 1 53 18
- 199 0020 F868 ldr r0, [r7, #12]
- 200 0022 FFF7FEFF bl GetSectorFromAddress
- 201 0026 0346 mov r3, r0
- 202 .loc 1 53 16
- 203 0028 7B75 strb r3, [r7, #21]
- 54:Core/Src/soft_flash.c **** if(tar_sector != cur_sector)
- 204 .loc 1 54 19
- 205 002a 7B7D ldrb r3, [r7, #21] @ zero_extendqisi2
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc1ni56I.s page 8
- 206 002c 214A ldr r2, .L17+4
- 207 002e 92F90020 ldrsb r2, [r2]
- 208 .loc 1 54 7
- 209 0032 9342 cmp r3, r2
- 210 0034 08D0 beq .L12
- 55:Core/Src/soft_flash.c **** {
- 56:Core/Src/soft_flash.c **** FLASH_Erase_Sector(tar_sector,FLASH_VOLTAGE_RANGE_3);//擦除指定的闪存扇区(0~11)
- 211 .loc 1 56 9
- 212 0036 7B7D ldrb r3, [r7, #21] @ zero_extendqisi2
- 213 0038 0221 movs r1, #2
- 214 003a 1846 mov r0, r3
- 215 003c FFF7FEFF bl FLASH_Erase_Sector
- 57:Core/Src/soft_flash.c **** cur_sector = tar_sector;
- 216 .loc 1 57 20
- 217 0040 97F91520 ldrsb r2, [r7, #21]
- 218 0044 1B4B ldr r3, .L17+4
- 219 0046 1A70 strb r2, [r3]
- 220 .L12:
- 58:Core/Src/soft_flash.c **** }
- 59:Core/Src/soft_flash.c ****
- 60:Core/Src/soft_flash.c **** uint16_t TempBuf = 0;
- 221 .loc 1 60 14
- 222 0048 0023 movs r3, #0
- 223 004a 7B82 strh r3, [r7, #18] @ movhi
- 224 .LBB17:
- 61:Core/Src/soft_flash.c **** for (uint16_t i = 0; i < Size; i++)
- 225 .loc 1 61 19
- 226 004c 0023 movs r3, #0
- 227 004e FB82 strh r3, [r7, #22] @ movhi
- 228 .loc 1 61 5
- 229 0050 21E0 b .L13
- 230 .L16:
- 231 .LBB18:
- 62:Core/Src/soft_flash.c **** {
- 63:Core/Src/soft_flash.c **** TempBuf = *(data + i);
- 232 .loc 1 63 26
- 233 0052 FB8A ldrh r3, [r7, #22]
- 234 0054 5B00 lsls r3, r3, #1
- 235 0056 BA68 ldr r2, [r7, #8]
- 236 0058 1344 add r3, r3, r2
- 237 .loc 1 63 17
- 238 005a 1B88 ldrh r3, [r3] @ movhi
- 239 005c 7B82 strh r3, [r7, #18] @ movhi
- 64:Core/Src/soft_flash.c **** HAL_StatusTypeDef a = HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, addr + i * 2, TempBuf);
- 240 .loc 1 64 86
- 241 005e FB8A ldrh r3, [r7, #22]
- 242 0060 5B00 lsls r3, r3, #1
- 243 0062 1A46 mov r2, r3
- 244 .loc 1 64 31
- 245 0064 FB68 ldr r3, [r7, #12]
- 246 0066 D118 adds r1, r2, r3
- 247 0068 7B8A ldrh r3, [r7, #18]
- 248 006a 0022 movs r2, #0
- 249 006c 1C46 mov r4, r3
- 250 006e 1546 mov r5, r2
- 251 0070 2246 mov r2, r4
- 252 0072 2B46 mov r3, r5
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc1ni56I.s page 9
- 253 0074 0120 movs r0, #1
- 254 0076 FFF7FEFF bl HAL_FLASH_Program
- 255 007a 0346 mov r3, r0
- 256 007c 7B74 strb r3, [r7, #17]
- 65:Core/Src/soft_flash.c **** if (a != HAL_OK)
- 257 .loc 1 65 12
- 258 007e 7B7C ldrb r3, [r7, #17] @ zero_extendqisi2
- 259 0080 002B cmp r3, #0
- 260 0082 05D0 beq .L14
- 66:Core/Src/soft_flash.c **** {
- 67:Core/Src/soft_flash.c **** HAL_FLASH_Lock();
- 261 .loc 1 67 13
- 262 0084 FFF7FEFF bl HAL_FLASH_Lock
- 263 .LBB19:
- 264 .LBB20:
- 131:Drivers/CMSIS/Include/cmsis_gcc.h **** }
- 265 .loc 2 131 3
- 266 .syntax unified
- 267 @ 131 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
- 268 0088 62B6 cpsie i
- 269 @ 0 "" 2
- 132:Drivers/CMSIS/Include/cmsis_gcc.h ****
- 270 .loc 2 132 1
- 271 .thumb
- 272 .syntax unified
- 273 008a 00BF nop
- 274 .LBE20:
- 275 .LBE19:
- 68:Core/Src/soft_flash.c **** __enable_irq();
- 69:Core/Src/soft_flash.c **** return WRITE_FAIL;
- 276 .loc 1 69 20
- 277 008c 0223 movs r3, #2
- 278 008e 0BE0 b .L15
- 279 .L14:
- 280 .LBE18:
- 61:Core/Src/soft_flash.c **** {
- 281 .loc 1 61 37 discriminator 2
- 282 0090 FB8A ldrh r3, [r7, #22]
- 283 0092 0133 adds r3, r3, #1
- 284 0094 FB82 strh r3, [r7, #22] @ movhi
- 285 .L13:
- 61:Core/Src/soft_flash.c **** {
- 286 .loc 1 61 5 discriminator 1
- 287 0096 FA8A ldrh r2, [r7, #22]
- 288 0098 FB88 ldrh r3, [r7, #6]
- 289 009a 9A42 cmp r2, r3
- 290 009c D9D3 bcc .L16
- 291 .LBE17:
- 70:Core/Src/soft_flash.c **** }
- 71:Core/Src/soft_flash.c **** }
- 72:Core/Src/soft_flash.c **** HAL_FLASH_Lock();
- 292 .loc 1 72 5
- 293 009e FFF7FEFF bl HAL_FLASH_Lock
- 294 .LBB21:
- 295 .LBB22:
- 131:Drivers/CMSIS/Include/cmsis_gcc.h **** }
- 296 .loc 2 131 3
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc1ni56I.s page 10
- 297 .syntax unified
- 298 @ 131 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
- 299 00a2 62B6 cpsie i
- 300 @ 0 "" 2
- 132:Drivers/CMSIS/Include/cmsis_gcc.h ****
- 301 .loc 2 132 1
- 302 .thumb
- 303 .syntax unified
- 304 00a4 00BF nop
- 305 .LBE22:
- 306 .LBE21:
- 73:Core/Src/soft_flash.c **** __enable_irq();
- 74:Core/Src/soft_flash.c ****
- 75:Core/Src/soft_flash.c **** return WRITE_SUCCESS;
- 307 .loc 1 75 12
- 308 00a6 0323 movs r3, #3
- 309 .L15:
- 76:Core/Src/soft_flash.c **** }
- 310 .loc 1 76 1
- 311 00a8 1846 mov r0, r3
- 312 00aa 1837 adds r7, r7, #24
- 313 .LCFI9:
- 314 .cfi_def_cfa_offset 16
- 315 00ac BD46 mov sp, r7
- 316 .LCFI10:
- 317 .cfi_def_cfa_register 13
- 318 @ sp needed
- 319 00ae B0BD pop {r4, r5, r7, pc}
- 320 .L18:
- 321 .align 2
- 322 .L17:
- 323 00b0 003C0240 .word 1073888256
- 324 00b4 00000000 .word cur_sector.0
- 325 .cfi_endproc
- 326 .LFE236:
- 328 .section .text.wirte_update_flag,"ax",%progbits
- 329 .align 1
- 330 .global wirte_update_flag
- 331 .syntax unified
- 332 .thumb
- 333 .thumb_func
- 335 wirte_update_flag:
- 336 .LFB237:
- 77:Core/Src/soft_flash.c ****
- 78:Core/Src/soft_flash.c ****
- 79:Core/Src/soft_flash.c **** bool wirte_update_flag()
- 80:Core/Src/soft_flash.c **** {
- 337 .loc 1 80 1
- 338 .cfi_startproc
- 339 @ args = 0, pretend = 0, frame = 8
- 340 @ frame_needed = 1, uses_anonymous_args = 0
- 341 0000 80B5 push {r7, lr}
- 342 .LCFI11:
- 343 .cfi_def_cfa_offset 8
- 344 .cfi_offset 7, -8
- 345 .cfi_offset 14, -4
- 346 0002 82B0 sub sp, sp, #8
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc1ni56I.s page 11
- 347 .LCFI12:
- 348 .cfi_def_cfa_offset 16
- 349 0004 00AF add r7, sp, #0
- 350 .LCFI13:
- 351 .cfi_def_cfa_register 7
- 81:Core/Src/soft_flash.c **** uint8_t sect = 0;
- 352 .loc 1 81 13
- 353 0006 0023 movs r3, #0
- 354 0008 FB71 strb r3, [r7, #7]
- 355 .LBB23:
- 356 .LBB24:
- 142:Drivers/CMSIS/Include/cmsis_gcc.h **** }
- 357 .loc 2 142 3
- 358 .syntax unified
- 359 @ 142 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
- 360 000a 72B6 cpsid i
- 361 @ 0 "" 2
- 362 .loc 2 143 1
- 363 .thumb
- 364 .syntax unified
- 365 000c 00BF nop
- 366 .LBE24:
- 367 .LBE23:
- 82:Core/Src/soft_flash.c **** HAL_StatusTypeDef status;
- 83:Core/Src/soft_flash.c **** __disable_irq();
- 84:Core/Src/soft_flash.c **** HAL_FLASH_Unlock();
- 368 .loc 1 84 5
- 369 000e FFF7FEFF bl HAL_FLASH_Unlock
- 85:Core/Src/soft_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR |
- 370 .loc 1 85 5
- 371 0012 124B ldr r3, .L22
- 372 0014 F322 movs r2, #243
- 373 0016 DA60 str r2, [r3, #12]
- 86:Core/Src/soft_flash.c **** FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR);//清除一些
- 87:Core/Src/soft_flash.c ****
- 88:Core/Src/soft_flash.c **** sect = GetSectorFromAddress(FLASH_UPDATE_ADDR);//获取地址所在的扇区
- 374 .loc 1 88 12
- 375 0018 1148 ldr r0, .L22+4
- 376 001a FFF7FEFF bl GetSectorFromAddress
- 377 001e 0346 mov r3, r0
- 378 .loc 1 88 10
- 379 0020 FB71 strb r3, [r7, #7]
- 89:Core/Src/soft_flash.c ****
- 90:Core/Src/soft_flash.c **** FLASH_Erase_Sector(sect,FLASH_VOLTAGE_RANGE_3);//擦除指定的闪存扇区(0~11)
- 380 .loc 1 90 5
- 381 0022 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
- 382 0024 0221 movs r1, #2
- 383 0026 1846 mov r0, r3
- 384 0028 FFF7FEFF bl FLASH_Erase_Sector
- 91:Core/Src/soft_flash.c ****
- 92:Core/Src/soft_flash.c **** status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, FLASH_UPDATE_ADDR, 0XF);
- 385 .loc 1 92 14
- 386 002c 4FF00F02 mov r2, #15
- 387 0030 4FF00003 mov r3, #0
- 388 0034 0A49 ldr r1, .L22+4
- 389 0036 0120 movs r0, #1
- 390 0038 FFF7FEFF bl HAL_FLASH_Program
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc1ni56I.s page 12
- 391 003c 0346 mov r3, r0
- 392 003e BB71 strb r3, [r7, #6]
- 93:Core/Src/soft_flash.c **** HAL_FLASH_Lock();
- 393 .loc 1 93 5
- 394 0040 FFF7FEFF bl HAL_FLASH_Lock
- 395 .LBB25:
- 396 .LBB26:
- 131:Drivers/CMSIS/Include/cmsis_gcc.h **** }
- 397 .loc 2 131 3
- 398 .syntax unified
- 399 @ 131 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
- 400 0044 62B6 cpsie i
- 401 @ 0 "" 2
- 132:Drivers/CMSIS/Include/cmsis_gcc.h ****
- 402 .loc 2 132 1
- 403 .thumb
- 404 .syntax unified
- 405 0046 00BF nop
- 406 .LBE26:
- 407 .LBE25:
- 94:Core/Src/soft_flash.c **** __enable_irq();
- 95:Core/Src/soft_flash.c ****
- 96:Core/Src/soft_flash.c **** if(status == HAL_OK)
- 408 .loc 1 96 7
- 409 0048 BB79 ldrb r3, [r7, #6] @ zero_extendqisi2
- 410 004a 002B cmp r3, #0
- 411 004c 01D1 bne .L20
- 97:Core/Src/soft_flash.c **** return true;
- 412 .loc 1 97 16
- 413 004e 0123 movs r3, #1
- 414 0050 00E0 b .L21
- 415 .L20:
- 98:Core/Src/soft_flash.c **** else
- 99:Core/Src/soft_flash.c **** return false;
- 416 .loc 1 99 16
- 417 0052 0023 movs r3, #0
- 418 .L21:
- 100:Core/Src/soft_flash.c **** }
- 419 .loc 1 100 1
- 420 0054 1846 mov r0, r3
- 421 0056 0837 adds r7, r7, #8
- 422 .LCFI14:
- 423 .cfi_def_cfa_offset 8
- 424 0058 BD46 mov sp, r7
- 425 .LCFI15:
- 426 .cfi_def_cfa_register 13
- 427 @ sp needed
- 428 005a 80BD pop {r7, pc}
- 429 .L23:
- 430 .align 2
- 431 .L22:
- 432 005c 003C0240 .word 1073888256
- 433 0060 00800008 .word 134250496
- 434 .cfi_endproc
- 435 .LFE237:
- 437 .section .text.ReadFlashNBtye,"ax",%progbits
- 438 .align 1
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc1ni56I.s page 13
- 439 .global ReadFlashNBtye
- 440 .syntax unified
- 441 .thumb
- 442 .thumb_func
- 444 ReadFlashNBtye:
- 445 .LFB238:
- 101:Core/Src/soft_flash.c ****
- 102:Core/Src/soft_flash.c ****
- 103:Core/Src/soft_flash.c **** //FLASH读地址
- 104:Core/Src/soft_flash.c **** uint16_t ReadFlashNBtye(uint32_t ReadAddress, uint16_t *ReadBuf, int32_t ReadNum)
- 105:Core/Src/soft_flash.c **** {
- 446 .loc 1 105 1
- 447 .cfi_startproc
- 448 @ args = 0, pretend = 0, frame = 24
- 449 @ frame_needed = 1, uses_anonymous_args = 0
- 450 @ link register save eliminated.
- 451 0000 80B4 push {r7}
- 452 .LCFI16:
- 453 .cfi_def_cfa_offset 4
- 454 .cfi_offset 7, -4
- 455 0002 87B0 sub sp, sp, #28
- 456 .LCFI17:
- 457 .cfi_def_cfa_offset 32
- 458 0004 00AF add r7, sp, #0
- 459 .LCFI18:
- 460 .cfi_def_cfa_register 7
- 461 0006 F860 str r0, [r7, #12]
- 462 0008 B960 str r1, [r7, #8]
- 463 000a 7A60 str r2, [r7, #4]
- 106:Core/Src/soft_flash.c **** int DataNum = 0;
- 464 .loc 1 106 9
- 465 000c 0023 movs r3, #0
- 466 000e 7B61 str r3, [r7, #20]
- 107:Core/Src/soft_flash.c **** uint16_t up_flag = 0;
- 467 .loc 1 107 14
- 468 0010 0023 movs r3, #0
- 469 0012 7B82 strh r3, [r7, #18] @ movhi
- 108:Core/Src/soft_flash.c ****
- 109:Core/Src/soft_flash.c **** *ReadBuf = *(__IO uint16_t *)ReadAddress;
- 470 .loc 1 109 17
- 471 0014 FB68 ldr r3, [r7, #12]
- 472 .loc 1 109 16
- 473 0016 1B88 ldrh r3, [r3] @ movhi
- 474 0018 9AB2 uxth r2, r3
- 475 .loc 1 109 14
- 476 001a BB68 ldr r3, [r7, #8]
- 477 001c 1A80 strh r2, [r3] @ movhi
- 110:Core/Src/soft_flash.c **** up_flag = *ReadBuf;
- 478 .loc 1 110 13
- 479 001e BB68 ldr r3, [r7, #8]
- 480 0020 1B88 ldrh r3, [r3] @ movhi
- 481 0022 7B82 strh r3, [r7, #18] @ movhi
- 111:Core/Src/soft_flash.c **** DataNum++;
- 482 .loc 1 111 12
- 483 0024 7B69 ldr r3, [r7, #20]
- 484 0026 0133 adds r3, r3, #1
- 485 0028 7B61 str r3, [r7, #20]
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc1ni56I.s page 14
- 112:Core/Src/soft_flash.c ****
- 113:Core/Src/soft_flash.c **** return up_flag;
- 486 .loc 1 113 12
- 487 002a 7B8A ldrh r3, [r7, #18]
- 114:Core/Src/soft_flash.c **** }
- 488 .loc 1 114 1
- 489 002c 1846 mov r0, r3
- 490 002e 1C37 adds r7, r7, #28
- 491 .LCFI19:
- 492 .cfi_def_cfa_offset 4
- 493 0030 BD46 mov sp, r7
- 494 .LCFI20:
- 495 .cfi_def_cfa_register 13
- 496 @ sp needed
- 497 0032 5DF8047B ldr r7, [sp], #4
- 498 .LCFI21:
- 499 .cfi_restore 7
- 500 .cfi_def_cfa_offset 0
- 501 0036 7047 bx lr
- 502 .cfi_endproc
- 503 .LFE238:
- 505 .section .text.flash_read_updata_flag,"ax",%progbits
- 506 .align 1
- 507 .global flash_read_updata_flag
- 508 .syntax unified
- 509 .thumb
- 510 .thumb_func
- 512 flash_read_updata_flag:
- 513 .LFB239:
- 115:Core/Src/soft_flash.c **** //读取标志位
- 116:Core/Src/soft_flash.c **** uint32_t flash_read_updata_flag(void)
- 117:Core/Src/soft_flash.c **** {
- 514 .loc 1 117 1
- 515 .cfi_startproc
- 516 @ args = 0, pretend = 0, frame = 8
- 517 @ frame_needed = 1, uses_anonymous_args = 0
- 518 0000 80B5 push {r7, lr}
- 519 .LCFI22:
- 520 .cfi_def_cfa_offset 8
- 521 .cfi_offset 7, -8
- 522 .cfi_offset 14, -4
- 523 0002 82B0 sub sp, sp, #8
- 524 .LCFI23:
- 525 .cfi_def_cfa_offset 16
- 526 0004 00AF add r7, sp, #0
- 527 .LCFI24:
- 528 .cfi_def_cfa_register 7
- 118:Core/Src/soft_flash.c **** uint16_t temp_buff = 0;
- 529 .loc 1 118 14
- 530 0006 0023 movs r3, #0
- 531 0008 FB80 strh r3, [r7, #6] @ movhi
- 119:Core/Src/soft_flash.c **** uint32_t Address = 0;
- 532 .loc 1 119 14
- 533 000a 0023 movs r3, #0
- 534 000c 3B60 str r3, [r7]
- 120:Core/Src/soft_flash.c ****
- 121:Core/Src/soft_flash.c **** temp_buff = ReadFlashNBtye(FLASH_UPDATE_ADDR, (uint16_t *)&Address, 1);
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc1ni56I.s page 15
- 535 .loc 1 121 17
- 536 000e 3B46 mov r3, r7
- 537 0010 0122 movs r2, #1
- 538 0012 1946 mov r1, r3
- 539 0014 0448 ldr r0, .L28
- 540 0016 FFF7FEFF bl ReadFlashNBtye
- 541 001a 0346 mov r3, r0
- 542 001c FB80 strh r3, [r7, #6] @ movhi
- 122:Core/Src/soft_flash.c ****
- 123:Core/Src/soft_flash.c **** return temp_buff;
- 543 .loc 1 123 12
- 544 001e FB88 ldrh r3, [r7, #6]
- 124:Core/Src/soft_flash.c **** }
- 545 .loc 1 124 1
- 546 0020 1846 mov r0, r3
- 547 0022 0837 adds r7, r7, #8
- 548 .LCFI25:
- 549 .cfi_def_cfa_offset 8
- 550 0024 BD46 mov sp, r7
- 551 .LCFI26:
- 552 .cfi_def_cfa_register 13
- 553 @ sp needed
- 554 0026 80BD pop {r7, pc}
- 555 .L29:
- 556 .align 2
- 557 .L28:
- 558 0028 00800008 .word 134250496
- 559 .cfi_endproc
- 560 .LFE239:
- 562 .section .data.cur_sector.0,"aw"
- 565 cur_sector.0:
- 566 0000 FF .byte -1
- 567 .text
- 568 .Letext0:
- 569 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h"
- 570 .file 4 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h"
- 571 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f405xx.h"
- 572 .file 6 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h"
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc1ni56I.s page 16
- DEFINED SYMBOLS
- *ABS*:00000000 soft_flash.c
- C:\Users\10728\AppData\Local\Temp\cc1ni56I.s:24 .data.sectStartAddr:00000000 sectStartAddr
- C:\Users\10728\AppData\Local\Temp\cc1ni56I.s:21 .data.sectStartAddr:00000000 $d
- C:\Users\10728\AppData\Local\Temp\cc1ni56I.s:38 .text.GetSectorFromAddress:00000000 $t
- C:\Users\10728\AppData\Local\Temp\cc1ni56I.s:44 .text.GetSectorFromAddress:00000000 GetSectorFromAddress
- C:\Users\10728\AppData\Local\Temp\cc1ni56I.s:141 .text.GetSectorFromAddress:00000068 $d
- C:\Users\10728\AppData\Local\Temp\cc1ni56I.s:146 .text.Flash_WriteData:00000000 $t
- C:\Users\10728\AppData\Local\Temp\cc1ni56I.s:152 .text.Flash_WriteData:00000000 Flash_WriteData
- C:\Users\10728\AppData\Local\Temp\cc1ni56I.s:323 .text.Flash_WriteData:000000b0 $d
- C:\Users\10728\AppData\Local\Temp\cc1ni56I.s:565 .data.cur_sector.0:00000000 cur_sector.0
- C:\Users\10728\AppData\Local\Temp\cc1ni56I.s:329 .text.wirte_update_flag:00000000 $t
- C:\Users\10728\AppData\Local\Temp\cc1ni56I.s:335 .text.wirte_update_flag:00000000 wirte_update_flag
- C:\Users\10728\AppData\Local\Temp\cc1ni56I.s:432 .text.wirte_update_flag:0000005c $d
- C:\Users\10728\AppData\Local\Temp\cc1ni56I.s:438 .text.ReadFlashNBtye:00000000 $t
- C:\Users\10728\AppData\Local\Temp\cc1ni56I.s:444 .text.ReadFlashNBtye:00000000 ReadFlashNBtye
- C:\Users\10728\AppData\Local\Temp\cc1ni56I.s:506 .text.flash_read_updata_flag:00000000 $t
- C:\Users\10728\AppData\Local\Temp\cc1ni56I.s:512 .text.flash_read_updata_flag:00000000 flash_read_updata_flag
- C:\Users\10728\AppData\Local\Temp\cc1ni56I.s:558 .text.flash_read_updata_flag:00000028 $d
- UNDEFINED SYMBOLS
- HAL_FLASH_Unlock
- FLASH_Erase_Sector
- HAL_FLASH_Program
- HAL_FLASH_Lock
|