ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.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, 2 13 .eabi_attribute 34, 1 14 .eabi_attribute 18, 4 15 .file "main.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .section .text.SystemClock_Config,"ax",%progbits 20 .align 1 21 .p2align 2,,3 22 .global SystemClock_Config 23 .syntax unified 24 .thumb 25 .thumb_func 27 SystemClock_Config: 28 .LFB134: 29 .file 1 "Core/Src/main.c" 1:Core/Src/main.c **** /* USER CODE BEGIN Header */ 2:Core/Src/main.c **** /** 3:Core/Src/main.c **** ****************************************************************************** 4:Core/Src/main.c **** * @file : main.c 5:Core/Src/main.c **** * @brief : Main program body 6:Core/Src/main.c **** ****************************************************************************** 7:Core/Src/main.c **** * @attention 8:Core/Src/main.c **** * 9:Core/Src/main.c **** * Copyright (c) 2025 STMicroelectronics. 10:Core/Src/main.c **** * All rights reserved. 11:Core/Src/main.c **** * 12:Core/Src/main.c **** * This software is licensed under terms that can be found in the LICENSE file 13:Core/Src/main.c **** * in the root directory of this software component. 14:Core/Src/main.c **** * If no LICENSE file comes with this software, it is provided AS-IS. 15:Core/Src/main.c **** * 16:Core/Src/main.c **** ****************************************************************************** 17:Core/Src/main.c **** */ 18:Core/Src/main.c **** /* USER CODE END Header */ 19:Core/Src/main.c **** /* Includes ------------------------------------------------------------------*/ 20:Core/Src/main.c **** #include "main.h" 21:Core/Src/main.c **** #include "can.h" 22:Core/Src/main.c **** #include "dma.h" 23:Core/Src/main.c **** #include "tim.h" 24:Core/Src/main.c **** #include "usart.h" 25:Core/Src/main.c **** #include "gpio.h" 26:Core/Src/main.c **** #include "soft_uart.h" 27:Core/Src/main.c **** #include "soft_flash.h" 28:Core/Src/main.c **** /* Private includes ----------------------------------------------------------*/ 29:Core/Src/main.c **** /* USER CODE BEGIN Includes */ ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 2 30:Core/Src/main.c **** 31:Core/Src/main.c **** /* USER CODE END Includes */ 32:Core/Src/main.c **** 33:Core/Src/main.c **** /* Private typedef -----------------------------------------------------------*/ 34:Core/Src/main.c **** /* USER CODE BEGIN PTD */ 35:Core/Src/main.c **** 36:Core/Src/main.c **** /* USER CODE END PTD */ 37:Core/Src/main.c **** 38:Core/Src/main.c **** /* Private define ------------------------------------------------------------*/ 39:Core/Src/main.c **** /* USER CODE BEGIN PD */ 40:Core/Src/main.c **** 41:Core/Src/main.c **** /* USER CODE END PD */ 42:Core/Src/main.c **** 43:Core/Src/main.c **** /* Private macro -------------------------------------------------------------*/ 44:Core/Src/main.c **** /* USER CODE BEGIN PM */ 45:Core/Src/main.c **** 46:Core/Src/main.c **** /* USER CODE END PM */ 47:Core/Src/main.c **** 48:Core/Src/main.c **** /* Private variables ---------------------------------------------------------*/ 49:Core/Src/main.c **** 50:Core/Src/main.c **** /* USER CODE BEGIN PV */ 51:Core/Src/main.c **** 52:Core/Src/main.c **** /* USER CODE END PV */ 53:Core/Src/main.c **** 54:Core/Src/main.c **** /* Private function prototypes -----------------------------------------------*/ 55:Core/Src/main.c **** void SystemClock_Config(void); 56:Core/Src/main.c **** /* USER CODE BEGIN PFP */ 57:Core/Src/main.c **** 58:Core/Src/main.c **** /* USER CODE END PFP */ 59:Core/Src/main.c **** 60:Core/Src/main.c **** /* Private user code ---------------------------------------------------------*/ 61:Core/Src/main.c **** /* USER CODE BEGIN 0 */ 62:Core/Src/main.c **** uint16_t update_flag = 0; 63:Core/Src/main.c **** uint32_t led_time = 0; 64:Core/Src/main.c **** /* USER CODE END 0 */ 65:Core/Src/main.c **** 66:Core/Src/main.c **** /** 67:Core/Src/main.c **** * @brief The application entry point. 68:Core/Src/main.c **** * @retval int 69:Core/Src/main.c **** */ 70:Core/Src/main.c **** int main(void) 71:Core/Src/main.c **** { 72:Core/Src/main.c **** 73:Core/Src/main.c **** /* USER CODE BEGIN 1 */ 74:Core/Src/main.c **** 75:Core/Src/main.c **** /* USER CODE END 1 */ 76:Core/Src/main.c **** 77:Core/Src/main.c **** /* MCU Configuration--------------------------------------------------------*/ 78:Core/Src/main.c **** 79:Core/Src/main.c **** /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ 80:Core/Src/main.c **** HAL_Init(); 81:Core/Src/main.c **** 82:Core/Src/main.c **** /* USER CODE BEGIN Init */ 83:Core/Src/main.c **** 84:Core/Src/main.c **** /* USER CODE END Init */ 85:Core/Src/main.c **** 86:Core/Src/main.c **** /* Configure the system clock */ ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 3 87:Core/Src/main.c **** SystemClock_Config(); 88:Core/Src/main.c **** 89:Core/Src/main.c **** /* USER CODE BEGIN SysInit */ 90:Core/Src/main.c **** 91:Core/Src/main.c **** /* USER CODE END SysInit */ 92:Core/Src/main.c **** 93:Core/Src/main.c **** /* Initialize all configured peripherals */ 94:Core/Src/main.c **** MX_GPIO_Init(); 95:Core/Src/main.c **** MX_DMA_Init(); 96:Core/Src/main.c **** //MX_CAN_Init(); 97:Core/Src/main.c **** MX_USART2_UART_Init(); 98:Core/Src/main.c **** MX_USART3_UART_Init(); 99:Core/Src/main.c **** MX_TIM2_Init(); 100:Core/Src/main.c **** MX_TIM3_Init(); 101:Core/Src/main.c **** /* USER CODE BEGIN 2 */ 102:Core/Src/main.c **** 103:Core/Src/main.c **** SCB->VTOR = FLASH_BASE | 0x0000; 104:Core/Src/main.c **** 105:Core/Src/main.c **** typedef void (*pFunction)(void); 106:Core/Src/main.c **** pFunction Jump_To_Application; 107:Core/Src/main.c **** uint32_t JumpAddress; 108:Core/Src/main.c **** 109:Core/Src/main.c **** init_usart(); 110:Core/Src/main.c **** 111:Core/Src/main.c **** update_flag = flash_read_updata_flag(); 112:Core/Src/main.c **** 113:Core/Src/main.c **** flash_ready_SN_and_VERSION(); 114:Core/Src/main.c **** /* USER CODE END 2 */ 115:Core/Src/main.c **** 116:Core/Src/main.c **** /* Infinite loop */ 117:Core/Src/main.c **** /* USER CODE BEGIN WHILE */ 118:Core/Src/main.c **** while (1) 119:Core/Src/main.c **** { 120:Core/Src/main.c **** /* USER CODE END WHILE */ 121:Core/Src/main.c **** if(update_flag == IAP_FLAG) 122:Core/Src/main.c **** { 123:Core/Src/main.c **** update_function(); 124:Core/Src/main.c **** } 125:Core/Src/main.c **** 126:Core/Src/main.c **** if(update_complete == true || update_flag != IAP_FLAG) 127:Core/Src/main.c **** { 128:Core/Src/main.c **** if ((*(__IO uint32_t *)FLASH_APP_ADDR) <= 0x2000A000 && 129:Core/Src/main.c **** (*(__IO uint32_t *)FLASH_APP_ADDR) >= 0x20000000) 130:Core/Src/main.c **** { 131:Core/Src/main.c **** JumpAddress = *(__IO uint32_t *)(FLASH_APP_ADDR + 4); 132:Core/Src/main.c **** 133:Core/Src/main.c **** Jump_To_Application = (pFunction)JumpAddress; 134:Core/Src/main.c **** 135:Core/Src/main.c **** HAL_NVIC_DisableIRQ(USART2_IRQn); 136:Core/Src/main.c **** 137:Core/Src/main.c **** __set_MSP(*(__IO uint32_t *)FLASH_APP_ADDR); 138:Core/Src/main.c **** 139:Core/Src/main.c **** Jump_To_Application(); 140:Core/Src/main.c **** } 141:Core/Src/main.c **** 142:Core/Src/main.c **** /* USER CODE BEGIN 3 */ 143:Core/Src/main.c **** } ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 4 144:Core/Src/main.c **** 145:Core/Src/main.c **** //发送版本SN 146:Core/Src/main.c **** send_pmu_version(); 147:Core/Src/main.c **** 148:Core/Src/main.c **** //亮红灯 149:Core/Src/main.c **** if(HAL_GetTick() - led_time > 1000) 150:Core/Src/main.c **** { 151:Core/Src/main.c **** HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5); 152:Core/Src/main.c **** led_time = HAL_GetTick(); 153:Core/Src/main.c **** } 154:Core/Src/main.c **** /* USER CODE BEGIN 3 */ 155:Core/Src/main.c **** } 156:Core/Src/main.c **** /* USER CODE END 3 */ 157:Core/Src/main.c **** } 158:Core/Src/main.c **** 159:Core/Src/main.c **** /** 160:Core/Src/main.c **** * @brief System Clock Configuration 161:Core/Src/main.c **** * @retval None 162:Core/Src/main.c **** */ 163:Core/Src/main.c **** void SystemClock_Config(void) 164:Core/Src/main.c **** { 30 .loc 1 164 1 view -0 31 .cfi_startproc 32 @ args = 0, pretend = 0, frame = 112 33 @ frame_needed = 0, uses_anonymous_args = 0 165:Core/Src/main.c **** RCC_OscInitTypeDef RCC_OscInitStruct = {0}; 34 .loc 1 165 3 view .LVU1 164:Core/Src/main.c **** RCC_OscInitTypeDef RCC_OscInitStruct = {0}; 35 .loc 1 164 1 is_stmt 0 view .LVU2 36 0000 10B5 push {r4, lr} 37 .LCFI0: 38 .cfi_def_cfa_offset 8 39 .cfi_offset 4, -8 40 .cfi_offset 14, -4 41 0002 9CB0 sub sp, sp, #112 42 .LCFI1: 43 .cfi_def_cfa_offset 120 44 .loc 1 165 22 view .LVU3 45 0004 0021 movs r1, #0 166:Core/Src/main.c **** RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; 167:Core/Src/main.c **** RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; 46 .loc 1 167 28 view .LVU4 47 0006 3422 movs r2, #52 48 0008 0FA8 add r0, sp, #60 165:Core/Src/main.c **** RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; 49 .loc 1 165 22 view .LVU5 50 000a CDE90A11 strd r1, r1, [sp, #40] 166:Core/Src/main.c **** RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; 51 .loc 1 166 3 is_stmt 1 view .LVU6 166:Core/Src/main.c **** RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; 52 .loc 1 166 22 is_stmt 0 view .LVU7 53 000e CDE90111 strd r1, r1, [sp, #4] 54 0012 CDE90311 strd r1, r1, [sp, #12] 55 .loc 1 167 3 is_stmt 1 view .LVU8 165:Core/Src/main.c **** RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; 56 .loc 1 165 22 is_stmt 0 view .LVU9 57 0016 0791 str r1, [sp, #28] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 5 166:Core/Src/main.c **** RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; 58 .loc 1 166 22 view .LVU10 59 0018 0091 str r1, [sp] 165:Core/Src/main.c **** RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; 60 .loc 1 165 22 view .LVU11 61 001a 0891 str r1, [sp, #32] 168:Core/Src/main.c **** 169:Core/Src/main.c **** /** Initializes the RCC Oscillators according to the specified parameters 170:Core/Src/main.c **** * in the RCC_OscInitTypeDef structure. 171:Core/Src/main.c **** */ 172:Core/Src/main.c **** RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; 173:Core/Src/main.c **** RCC_OscInitStruct.HSEState = RCC_HSE_ON; 174:Core/Src/main.c **** RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; 175:Core/Src/main.c **** RCC_OscInitStruct.HSIState = RCC_HSI_ON; 176:Core/Src/main.c **** RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; 62 .loc 1 176 34 view .LVU12 63 001c 0224 movs r4, #2 167:Core/Src/main.c **** 64 .loc 1 167 28 view .LVU13 65 001e FFF7FEFF bl memset 66 .LVL0: 172:Core/Src/main.c **** RCC_OscInitStruct.HSEState = RCC_HSE_ON; 67 .loc 1 172 3 is_stmt 1 view .LVU14 172:Core/Src/main.c **** RCC_OscInitStruct.HSEState = RCC_HSE_ON; 68 .loc 1 172 36 is_stmt 0 view .LVU15 69 0022 0122 movs r2, #1 173:Core/Src/main.c **** RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; 70 .loc 1 173 30 view .LVU16 71 0024 4FF48033 mov r3, #65536 177:Core/Src/main.c **** RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; 178:Core/Src/main.c **** RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; 72 .loc 1 178 32 view .LVU17 73 0028 4FF4E011 mov r1, #1835008 179:Core/Src/main.c **** if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) 74 .loc 1 179 7 view .LVU18 75 002c 05A8 add r0, sp, #20 173:Core/Src/main.c **** RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; 76 .loc 1 173 30 view .LVU19 77 002e CDE90523 strd r2, r3, [sp, #20] 174:Core/Src/main.c **** RCC_OscInitStruct.HSIState = RCC_HSI_ON; 78 .loc 1 174 3 is_stmt 1 view .LVU20 175:Core/Src/main.c **** RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; 79 .loc 1 175 3 view .LVU21 177:Core/Src/main.c **** RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; 80 .loc 1 177 35 is_stmt 0 view .LVU22 81 0032 CDE90C43 strd r4, r3, [sp, #48] 175:Core/Src/main.c **** RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; 82 .loc 1 175 30 view .LVU23 83 0036 0992 str r2, [sp, #36] 176:Core/Src/main.c **** RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; 84 .loc 1 176 3 is_stmt 1 view .LVU24 178:Core/Src/main.c **** if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) 85 .loc 1 178 3 view .LVU25 178:Core/Src/main.c **** if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) 86 .loc 1 178 32 is_stmt 0 view .LVU26 87 0038 0E91 str r1, [sp, #56] 88 .loc 1 179 3 is_stmt 1 view .LVU27 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 6 89 .loc 1 179 7 is_stmt 0 view .LVU28 90 003a FFF7FEFF bl HAL_RCC_OscConfig 91 .LVL1: 92 .loc 1 179 6 view .LVU29 93 003e 08B1 cbz r0, .L2 180:Core/Src/main.c **** { 181:Core/Src/main.c **** Error_Handler(); 94 .loc 1 181 5 is_stmt 1 view .LVU30 95 .LBB18: 96 .LBI18: 182:Core/Src/main.c **** } 183:Core/Src/main.c **** 184:Core/Src/main.c **** /** Initializes the CPU, AHB and APB buses clocks 185:Core/Src/main.c **** */ 186:Core/Src/main.c **** RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK 187:Core/Src/main.c **** |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; 188:Core/Src/main.c **** RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; 189:Core/Src/main.c **** RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; 190:Core/Src/main.c **** RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; 191:Core/Src/main.c **** RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; 192:Core/Src/main.c **** 193:Core/Src/main.c **** if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) 194:Core/Src/main.c **** { 195:Core/Src/main.c **** Error_Handler(); 196:Core/Src/main.c **** } 197:Core/Src/main.c **** PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2|RCC_PERIPHCLK_USART3; 198:Core/Src/main.c **** PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1; 199:Core/Src/main.c **** PeriphClkInit.Usart3ClockSelection = RCC_USART3CLKSOURCE_PCLK1; 200:Core/Src/main.c **** if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) 201:Core/Src/main.c **** { 202:Core/Src/main.c **** Error_Handler(); 203:Core/Src/main.c **** } 204:Core/Src/main.c **** } 205:Core/Src/main.c **** 206:Core/Src/main.c **** /* USER CODE BEGIN 4 */ 207:Core/Src/main.c **** 208:Core/Src/main.c **** /* USER CODE END 4 */ 209:Core/Src/main.c **** 210:Core/Src/main.c **** /** 211:Core/Src/main.c **** * @brief Period elapsed callback in non blocking mode 212:Core/Src/main.c **** * @note This function is called when TIM1 interrupt took place, inside 213:Core/Src/main.c **** * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment 214:Core/Src/main.c **** * a global variable "uwTick" used as application time base. 215:Core/Src/main.c **** * @param htim : TIM handle 216:Core/Src/main.c **** * @retval None 217:Core/Src/main.c **** */ 218:Core/Src/main.c **** void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) 219:Core/Src/main.c **** { 220:Core/Src/main.c **** /* USER CODE BEGIN Callback 0 */ 221:Core/Src/main.c **** 222:Core/Src/main.c **** /* USER CODE END Callback 0 */ 223:Core/Src/main.c **** if (htim->Instance == TIM1) 224:Core/Src/main.c **** { 225:Core/Src/main.c **** HAL_IncTick(); 226:Core/Src/main.c **** } 227:Core/Src/main.c **** /* USER CODE BEGIN Callback 1 */ 228:Core/Src/main.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 7 229:Core/Src/main.c **** /* USER CODE END Callback 1 */ 230:Core/Src/main.c **** } 231:Core/Src/main.c **** 232:Core/Src/main.c **** /** 233:Core/Src/main.c **** * @brief This function is executed in case of error occurrence. 234:Core/Src/main.c **** * @retval None 235:Core/Src/main.c **** */ 236:Core/Src/main.c **** void Error_Handler(void) 97 .loc 1 236 6 view .LVU31 98 .LBE18: 237:Core/Src/main.c **** { 238:Core/Src/main.c **** /* USER CODE BEGIN Error_Handler_Debug */ 239:Core/Src/main.c **** /* User can add his own implementation to report the HAL error return state */ 240:Core/Src/main.c **** __disable_irq(); 99 .loc 1 240 3 view .LVU32 100 .LBB21: 101 .LBB19: 102 .LBI19: 103 .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 **** * 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 **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 8 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 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 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 9 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 **** 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) 104 .loc 2 140 27 view .LVU33 105 .LBB20: 141:Drivers/CMSIS/Include/cmsis_gcc.h **** { 142:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory"); 106 .loc 2 142 3 view .LVU34 107 .syntax unified 108 @ 142 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 109 0040 72B6 cpsid i 110 @ 0 "" 2 111 .thumb 112 .syntax unified 113 .L3: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 10 114 .LBE20: 115 .LBE19: 116 .LBE21: 241:Core/Src/main.c **** while (1) 117 .loc 1 241 3 view .LVU35 242:Core/Src/main.c **** { 243:Core/Src/main.c **** } 118 .loc 1 243 3 view .LVU36 241:Core/Src/main.c **** while (1) 119 .loc 1 241 9 view .LVU37 241:Core/Src/main.c **** while (1) 120 .loc 1 241 3 view .LVU38 121 .loc 1 243 3 view .LVU39 241:Core/Src/main.c **** while (1) 122 .loc 1 241 9 view .LVU40 123 0042 FEE7 b .L3 124 .L2: 186:Core/Src/main.c **** |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; 125 .loc 1 186 3 view .LVU41 186:Core/Src/main.c **** |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; 126 .loc 1 186 31 is_stmt 0 view .LVU42 127 0044 0F22 movs r2, #15 128 0046 0346 mov r3, r0 129 0048 0092 str r2, [sp] 188:Core/Src/main.c **** RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; 130 .loc 1 188 3 is_stmt 1 view .LVU43 193:Core/Src/main.c **** { 131 .loc 1 193 7 is_stmt 0 view .LVU44 132 004a 6846 mov r0, sp 190:Core/Src/main.c **** RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; 133 .loc 1 190 36 view .LVU45 134 004c 4FF48062 mov r2, #1024 193:Core/Src/main.c **** { 135 .loc 1 193 7 view .LVU46 136 0050 2146 mov r1, r4 190:Core/Src/main.c **** RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; 137 .loc 1 190 36 view .LVU47 138 0052 CDE90232 strd r3, r2, [sp, #8] 191:Core/Src/main.c **** 139 .loc 1 191 36 view .LVU48 140 0056 0493 str r3, [sp, #16] 188:Core/Src/main.c **** RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; 141 .loc 1 188 34 view .LVU49 142 0058 0194 str r4, [sp, #4] 189:Core/Src/main.c **** RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; 143 .loc 1 189 3 is_stmt 1 view .LVU50 191:Core/Src/main.c **** 144 .loc 1 191 3 view .LVU51 193:Core/Src/main.c **** { 145 .loc 1 193 3 view .LVU52 193:Core/Src/main.c **** { 146 .loc 1 193 7 is_stmt 0 view .LVU53 147 005a FFF7FEFF bl HAL_RCC_ClockConfig 148 .LVL2: 193:Core/Src/main.c **** { 149 .loc 1 193 6 view .LVU54 150 005e 0346 mov r3, r0 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 11 151 0060 08B1 cbz r0, .L4 195:Core/Src/main.c **** } 152 .loc 1 195 5 is_stmt 1 view .LVU55 153 .LBB22: 154 .LBI22: 236:Core/Src/main.c **** { 155 .loc 1 236 6 view .LVU56 156 .LBE22: 240:Core/Src/main.c **** while (1) 157 .loc 1 240 3 view .LVU57 158 .LBB25: 159 .LBB23: 160 .LBI23: 140:Drivers/CMSIS/Include/cmsis_gcc.h **** { 161 .loc 2 140 27 view .LVU58 162 .LBB24: 163 .loc 2 142 3 view .LVU59 164 .syntax unified 165 @ 142 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 166 0062 72B6 cpsid i 167 @ 0 "" 2 168 .thumb 169 .syntax unified 170 .L5: 171 .LBE24: 172 .LBE23: 173 .LBE25: 241:Core/Src/main.c **** { 174 .loc 1 241 3 view .LVU60 175 .loc 1 243 3 view .LVU61 241:Core/Src/main.c **** { 176 .loc 1 241 9 view .LVU62 241:Core/Src/main.c **** { 177 .loc 1 241 3 view .LVU63 178 .loc 1 243 3 view .LVU64 241:Core/Src/main.c **** { 179 .loc 1 241 9 view .LVU65 180 0064 FEE7 b .L5 181 .L4: 197:Core/Src/main.c **** PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1; 182 .loc 1 197 3 view .LVU66 197:Core/Src/main.c **** PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1; 183 .loc 1 197 38 is_stmt 0 view .LVU67 184 0066 0622 movs r2, #6 200:Core/Src/main.c **** { 185 .loc 1 200 7 view .LVU68 186 0068 0FA8 add r0, sp, #60 199:Core/Src/main.c **** if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) 187 .loc 1 199 38 view .LVU69 188 006a CDE91233 strd r3, r3, [sp, #72] 197:Core/Src/main.c **** PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1; 189 .loc 1 197 38 view .LVU70 190 006e 0F92 str r2, [sp, #60] 198:Core/Src/main.c **** PeriphClkInit.Usart3ClockSelection = RCC_USART3CLKSOURCE_PCLK1; 191 .loc 1 198 3 is_stmt 1 view .LVU71 200:Core/Src/main.c **** { 192 .loc 1 200 3 view .LVU72 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 12 200:Core/Src/main.c **** { 193 .loc 1 200 7 is_stmt 0 view .LVU73 194 0070 FFF7FEFF bl HAL_RCCEx_PeriphCLKConfig 195 .LVL3: 200:Core/Src/main.c **** { 196 .loc 1 200 6 view .LVU74 197 0074 08B1 cbz r0, .L1 202:Core/Src/main.c **** } 198 .loc 1 202 5 is_stmt 1 view .LVU75 199 .LBB26: 200 .LBI26: 236:Core/Src/main.c **** { 201 .loc 1 236 6 view .LVU76 202 .LBE26: 240:Core/Src/main.c **** while (1) 203 .loc 1 240 3 view .LVU77 204 .LBB29: 205 .LBB27: 206 .LBI27: 140:Drivers/CMSIS/Include/cmsis_gcc.h **** { 207 .loc 2 140 27 view .LVU78 208 .LBB28: 209 .loc 2 142 3 view .LVU79 210 .syntax unified 211 @ 142 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 212 0076 72B6 cpsid i 213 @ 0 "" 2 214 .thumb 215 .syntax unified 216 .L7: 217 .LBE28: 218 .LBE27: 219 .LBE29: 241:Core/Src/main.c **** { 220 .loc 1 241 3 view .LVU80 221 .loc 1 243 3 view .LVU81 241:Core/Src/main.c **** { 222 .loc 1 241 9 view .LVU82 241:Core/Src/main.c **** { 223 .loc 1 241 3 view .LVU83 224 .loc 1 243 3 view .LVU84 241:Core/Src/main.c **** { 225 .loc 1 241 9 view .LVU85 226 0078 FEE7 b .L7 227 .L1: 204:Core/Src/main.c **** 228 .loc 1 204 1 is_stmt 0 view .LVU86 229 007a 1CB0 add sp, sp, #112 230 .LCFI2: 231 .cfi_def_cfa_offset 8 232 @ sp needed 233 007c 10BD pop {r4, pc} 234 .cfi_endproc 235 .LFE134: 237 007e 00BF .section .text.startup.main,"ax",%progbits 238 .align 1 239 .p2align 2,,3 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 13 240 .global main 241 .syntax unified 242 .thumb 243 .thumb_func 245 main: 246 .LFB133: 71:Core/Src/main.c **** 247 .loc 1 71 1 is_stmt 1 view -0 248 .cfi_startproc 249 @ args = 0, pretend = 0, frame = 0 250 @ frame_needed = 0, uses_anonymous_args = 0 80:Core/Src/main.c **** 251 .loc 1 80 3 view .LVU88 71:Core/Src/main.c **** 252 .loc 1 71 1 is_stmt 0 view .LVU89 253 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 254 .LCFI3: 255 .cfi_def_cfa_offset 32 256 .cfi_offset 4, -32 257 .cfi_offset 5, -28 258 .cfi_offset 6, -24 259 .cfi_offset 7, -20 260 .cfi_offset 8, -16 261 .cfi_offset 9, -12 262 .cfi_offset 10, -8 263 .cfi_offset 14, -4 80:Core/Src/main.c **** 264 .loc 1 80 3 view .LVU90 265 0004 FFF7FEFF bl HAL_Init 266 .LVL4: 87:Core/Src/main.c **** 267 .loc 1 87 3 is_stmt 1 view .LVU91 268 0008 FFF7FEFF bl SystemClock_Config 269 .LVL5: 94:Core/Src/main.c **** MX_DMA_Init(); 270 .loc 1 94 3 view .LVU92 271 000c FFF7FEFF bl MX_GPIO_Init 272 .LVL6: 95:Core/Src/main.c **** //MX_CAN_Init(); 273 .loc 1 95 3 view .LVU93 274 0010 FFF7FEFF bl MX_DMA_Init 275 .LVL7: 97:Core/Src/main.c **** MX_USART3_UART_Init(); 276 .loc 1 97 3 view .LVU94 277 0014 FFF7FEFF bl MX_USART2_UART_Init 278 .LVL8: 98:Core/Src/main.c **** MX_TIM2_Init(); 279 .loc 1 98 3 view .LVU95 280 0018 FFF7FEFF bl MX_USART3_UART_Init 281 .LVL9: 99:Core/Src/main.c **** MX_TIM3_Init(); 282 .loc 1 99 3 view .LVU96 283 001c FFF7FEFF bl MX_TIM2_Init 284 .LVL10: 100:Core/Src/main.c **** /* USER CODE BEGIN 2 */ 285 .loc 1 100 3 view .LVU97 286 0020 FFF7FEFF bl MX_TIM3_Init ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 14 287 .LVL11: 103:Core/Src/main.c **** 288 .loc 1 103 3 view .LVU98 103:Core/Src/main.c **** 289 .loc 1 103 13 is_stmt 0 view .LVU99 290 0024 234B ldr r3, .L20 111:Core/Src/main.c **** 291 .loc 1 111 15 view .LVU100 292 0026 244F ldr r7, .L20+4 293 0028 DFF89890 ldr r9, .L20+16 294 002c 234E ldr r6, .L20+8 128:Core/Src/main.c **** (*(__IO uint32_t *)FLASH_APP_ADDR) >= 0x20000000) 295 .loc 1 128 12 view .LVU101 296 002e 244C ldr r4, .L20+12 128:Core/Src/main.c **** (*(__IO uint32_t *)FLASH_APP_ADDR) >= 0x20000000) 297 .loc 1 128 10 view .LVU102 298 0030 DFF89480 ldr r8, .L20+20 103:Core/Src/main.c **** 299 .loc 1 103 13 view .LVU103 300 0034 4FF00062 mov r2, #134217728 301 0038 9A60 str r2, [r3, #8] 105:Core/Src/main.c **** pFunction Jump_To_Application; 302 .loc 1 105 3 is_stmt 1 view .LVU104 106:Core/Src/main.c **** uint32_t JumpAddress; 303 .loc 1 106 3 view .LVU105 107:Core/Src/main.c **** 304 .loc 1 107 3 view .LVU106 109:Core/Src/main.c **** 305 .loc 1 109 3 view .LVU107 306 003a FFF7FEFF bl init_usart 307 .LVL12: 111:Core/Src/main.c **** 308 .loc 1 111 3 view .LVU108 111:Core/Src/main.c **** 309 .loc 1 111 17 is_stmt 0 view .LVU109 310 003e FFF7FEFF bl flash_read_updata_flag 311 .LVL13: 111:Core/Src/main.c **** 312 .loc 1 111 15 view .LVU110 313 0042 3880 strh r0, [r7] @ movhi 113:Core/Src/main.c **** /* USER CODE END 2 */ 314 .loc 1 113 3 is_stmt 1 view .LVU111 315 0044 FFF7FEFF bl flash_ready_SN_and_VERSION 316 .LVL14: 317 .L15: 121:Core/Src/main.c **** { 318 .loc 1 121 7 is_stmt 0 view .LVU112 319 0048 4AF6CD35 movw r5, #43981 320 .L14: 118:Core/Src/main.c **** { 321 .loc 1 118 3 is_stmt 1 view .LVU113 121:Core/Src/main.c **** { 322 .loc 1 121 5 view .LVU114 121:Core/Src/main.c **** { 323 .loc 1 121 7 is_stmt 0 view .LVU115 324 004c 3B88 ldrh r3, [r7] 325 004e AB42 cmp r3, r5 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 15 326 0050 1AD0 beq .L18 327 .L11: 128:Core/Src/main.c **** (*(__IO uint32_t *)FLASH_APP_ADDR) >= 0x20000000) 328 .loc 1 128 7 is_stmt 1 view .LVU116 128:Core/Src/main.c **** (*(__IO uint32_t *)FLASH_APP_ADDR) >= 0x20000000) 329 .loc 1 128 12 is_stmt 0 view .LVU117 330 0052 D4F80038 ldr r3, [r4, #2048] 128:Core/Src/main.c **** (*(__IO uint32_t *)FLASH_APP_ADDR) >= 0x20000000) 331 .loc 1 128 10 view .LVU118 332 0056 4345 cmp r3, r8 333 0058 04D8 bhi .L12 129:Core/Src/main.c **** { 334 .loc 1 129 12 discriminator 1 view .LVU119 335 005a D4F80038 ldr r3, [r4, #2048] 128:Core/Src/main.c **** (*(__IO uint32_t *)FLASH_APP_ADDR) >= 0x20000000) 336 .loc 1 128 60 discriminator 1 view .LVU120 337 005e B3F1005F cmp r3, #536870912 338 0062 1BD2 bcs .L19 339 .L12: 146:Core/Src/main.c **** 340 .loc 1 146 5 is_stmt 1 view .LVU121 341 0064 FFF7FEFF bl send_pmu_version 342 .LVL15: 149:Core/Src/main.c **** { 343 .loc 1 149 5 view .LVU122 149:Core/Src/main.c **** { 344 .loc 1 149 8 is_stmt 0 view .LVU123 345 0068 FFF7FEFF bl HAL_GetTick 346 .LVL16: 149:Core/Src/main.c **** { 347 .loc 1 149 22 view .LVU124 348 006c 3368 ldr r3, [r6] 349 006e C01A subs r0, r0, r3 149:Core/Src/main.c **** { 350 .loc 1 149 7 view .LVU125 351 0070 B0F57A7F cmp r0, #1000 352 0074 EAD9 bls .L14 151:Core/Src/main.c **** led_time = HAL_GetTick(); 353 .loc 1 151 8 is_stmt 1 view .LVU126 354 0076 2021 movs r1, #32 355 0078 4FF09040 mov r0, #1207959552 356 007c FFF7FEFF bl HAL_GPIO_TogglePin 357 .LVL17: 152:Core/Src/main.c **** } 358 .loc 1 152 7 view .LVU127 152:Core/Src/main.c **** } 359 .loc 1 152 18 is_stmt 0 view .LVU128 360 0080 FFF7FEFF bl HAL_GetTick 361 .LVL18: 152:Core/Src/main.c **** } 362 .loc 1 152 16 view .LVU129 363 0084 3060 str r0, [r6] 364 0086 DFE7 b .L15 365 .L18: 123:Core/Src/main.c **** } 366 .loc 1 123 7 is_stmt 1 view .LVU130 367 0088 FFF7FEFF bl update_function ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 16 368 .LVL19: 126:Core/Src/main.c **** { 369 .loc 1 126 5 view .LVU131 126:Core/Src/main.c **** { 370 .loc 1 126 7 is_stmt 0 view .LVU132 371 008c 99F80030 ldrb r3, [r9] @ zero_extendqisi2 372 0090 002B cmp r3, #0 373 0092 DED1 bne .L11 126:Core/Src/main.c **** { 374 .loc 1 126 32 discriminator 1 view .LVU133 375 0094 3B88 ldrh r3, [r7] 376 0096 AB42 cmp r3, r5 377 0098 E4D0 beq .L12 378 009a DAE7 b .L11 379 .L19: 131:Core/Src/main.c **** 380 .loc 1 131 9 is_stmt 1 view .LVU134 135:Core/Src/main.c **** 381 .loc 1 135 9 is_stmt 0 view .LVU135 382 009c 2620 movs r0, #38 131:Core/Src/main.c **** 383 .loc 1 131 21 view .LVU136 384 009e D4F804A8 ldr r10, [r4, #2052] 385 .LVL20: 133:Core/Src/main.c **** 386 .loc 1 133 9 is_stmt 1 view .LVU137 135:Core/Src/main.c **** 387 .loc 1 135 9 view .LVU138 388 00a2 FFF7FEFF bl HAL_NVIC_DisableIRQ 389 .LVL21: 137:Core/Src/main.c **** 390 .loc 1 137 9 view .LVU139 391 00a6 D4F80038 ldr r3, [r4, #2048] 392 .LVL22: 393 .LBB30: 394 .LBI30: 143:Drivers/CMSIS/Include/cmsis_gcc.h **** } 144:Drivers/CMSIS/Include/cmsis_gcc.h **** 145:Drivers/CMSIS/Include/cmsis_gcc.h **** 146:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 147:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register 148:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the Control Register. 149:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Control Register value 150:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 151:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_CONTROL(void) 152:Drivers/CMSIS/Include/cmsis_gcc.h **** { 153:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 154:Drivers/CMSIS/Include/cmsis_gcc.h **** 155:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control" : "=r" (result) ); 156:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 157:Drivers/CMSIS/Include/cmsis_gcc.h **** } 158:Drivers/CMSIS/Include/cmsis_gcc.h **** 159:Drivers/CMSIS/Include/cmsis_gcc.h **** 160:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 161:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 162:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register (non-secure) 163:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the non-secure Control Register when in secure mode. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 17 164:Drivers/CMSIS/Include/cmsis_gcc.h **** \return non-secure Control Register value 165:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 166:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) 167:Drivers/CMSIS/Include/cmsis_gcc.h **** { 168:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 169:Drivers/CMSIS/Include/cmsis_gcc.h **** 170:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); 171:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 172:Drivers/CMSIS/Include/cmsis_gcc.h **** } 173:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 174:Drivers/CMSIS/Include/cmsis_gcc.h **** 175:Drivers/CMSIS/Include/cmsis_gcc.h **** 176:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 177:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register 178:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the Control Register. 179:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set 180:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 181:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) 182:Drivers/CMSIS/Include/cmsis_gcc.h **** { 183:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); 184:Drivers/CMSIS/Include/cmsis_gcc.h **** } 185:Drivers/CMSIS/Include/cmsis_gcc.h **** 186:Drivers/CMSIS/Include/cmsis_gcc.h **** 187:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 188:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 189:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register (non-secure) 190:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the non-secure Control Register when in secure state. 191:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set 192:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 193:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) 194:Drivers/CMSIS/Include/cmsis_gcc.h **** { 195:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); 196:Drivers/CMSIS/Include/cmsis_gcc.h **** } 197:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 198:Drivers/CMSIS/Include/cmsis_gcc.h **** 199:Drivers/CMSIS/Include/cmsis_gcc.h **** 200:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 201:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get IPSR Register 202:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the IPSR Register. 203:Drivers/CMSIS/Include/cmsis_gcc.h **** \return IPSR Register value 204:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 205:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_IPSR(void) 206:Drivers/CMSIS/Include/cmsis_gcc.h **** { 207:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 208:Drivers/CMSIS/Include/cmsis_gcc.h **** 209:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); 210:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 211:Drivers/CMSIS/Include/cmsis_gcc.h **** } 212:Drivers/CMSIS/Include/cmsis_gcc.h **** 213:Drivers/CMSIS/Include/cmsis_gcc.h **** 214:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 215:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get APSR Register 216:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the APSR Register. 217:Drivers/CMSIS/Include/cmsis_gcc.h **** \return APSR Register value 218:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 219:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_APSR(void) 220:Drivers/CMSIS/Include/cmsis_gcc.h **** { ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 18 221:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 222:Drivers/CMSIS/Include/cmsis_gcc.h **** 223:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, apsr" : "=r" (result) ); 224:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 225:Drivers/CMSIS/Include/cmsis_gcc.h **** } 226:Drivers/CMSIS/Include/cmsis_gcc.h **** 227:Drivers/CMSIS/Include/cmsis_gcc.h **** 228:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 229:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get xPSR Register 230:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the xPSR Register. 231:Drivers/CMSIS/Include/cmsis_gcc.h **** \return xPSR Register value 232:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 233:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_xPSR(void) 234:Drivers/CMSIS/Include/cmsis_gcc.h **** { 235:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 236:Drivers/CMSIS/Include/cmsis_gcc.h **** 237:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); 238:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 239:Drivers/CMSIS/Include/cmsis_gcc.h **** } 240:Drivers/CMSIS/Include/cmsis_gcc.h **** 241:Drivers/CMSIS/Include/cmsis_gcc.h **** 242:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 243:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer 244:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer (PSP). 245:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value 246:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 247:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSP(void) 248:Drivers/CMSIS/Include/cmsis_gcc.h **** { 249:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 250:Drivers/CMSIS/Include/cmsis_gcc.h **** 251:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp" : "=r" (result) ); 252:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 253:Drivers/CMSIS/Include/cmsis_gcc.h **** } 254:Drivers/CMSIS/Include/cmsis_gcc.h **** 255:Drivers/CMSIS/Include/cmsis_gcc.h **** 256:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 257:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 258:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer (non-secure) 259:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure s 260:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value 261:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 262:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) 263:Drivers/CMSIS/Include/cmsis_gcc.h **** { 264:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 265:Drivers/CMSIS/Include/cmsis_gcc.h **** 266:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); 267:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 268:Drivers/CMSIS/Include/cmsis_gcc.h **** } 269:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 270:Drivers/CMSIS/Include/cmsis_gcc.h **** 271:Drivers/CMSIS/Include/cmsis_gcc.h **** 272:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 273:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer 274:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer (PSP). 275:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set 276:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 277:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 19 278:Drivers/CMSIS/Include/cmsis_gcc.h **** { 279:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); 280:Drivers/CMSIS/Include/cmsis_gcc.h **** } 281:Drivers/CMSIS/Include/cmsis_gcc.h **** 282:Drivers/CMSIS/Include/cmsis_gcc.h **** 283:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 284:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 285:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) 286:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure sta 287:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set 288:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 289:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) 290:Drivers/CMSIS/Include/cmsis_gcc.h **** { 291:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); 292:Drivers/CMSIS/Include/cmsis_gcc.h **** } 293:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 294:Drivers/CMSIS/Include/cmsis_gcc.h **** 295:Drivers/CMSIS/Include/cmsis_gcc.h **** 296:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 297:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer 298:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer (MSP). 299:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value 300:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 301:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSP(void) 302:Drivers/CMSIS/Include/cmsis_gcc.h **** { 303:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 304:Drivers/CMSIS/Include/cmsis_gcc.h **** 305:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp" : "=r" (result) ); 306:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 307:Drivers/CMSIS/Include/cmsis_gcc.h **** } 308:Drivers/CMSIS/Include/cmsis_gcc.h **** 309:Drivers/CMSIS/Include/cmsis_gcc.h **** 310:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 311:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 312:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer (non-secure) 313:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure stat 314:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value 315:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 316:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) 317:Drivers/CMSIS/Include/cmsis_gcc.h **** { 318:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 319:Drivers/CMSIS/Include/cmsis_gcc.h **** 320:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); 321:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 322:Drivers/CMSIS/Include/cmsis_gcc.h **** } 323:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 324:Drivers/CMSIS/Include/cmsis_gcc.h **** 325:Drivers/CMSIS/Include/cmsis_gcc.h **** 326:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 327:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer 328:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer (MSP). 329:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set 330:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 331:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) 395 .loc 2 331 27 view .LVU140 396 .LBB31: 332:Drivers/CMSIS/Include/cmsis_gcc.h **** { ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 20 333:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); 397 .loc 2 333 3 view .LVU141 398 .syntax unified 399 @ 333 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 400 00aa 83F30888 MSR msp, r3 401 @ 0 "" 2 402 .LVL23: 403 .loc 2 333 3 is_stmt 0 view .LVU142 404 .thumb 405 .syntax unified 406 .LBE31: 407 .LBE30: 139:Core/Src/main.c **** } 408 .loc 1 139 9 is_stmt 1 view .LVU143 409 00ae D047 blx r10 410 .LVL24: 411 00b0 D8E7 b .L12 412 .L21: 413 00b2 00BF .align 2 414 .L20: 415 00b4 00ED00E0 .word -536810240 416 00b8 00000000 .word .LANCHOR0 417 00bc 00000000 .word .LANCHOR1 418 00c0 00700008 .word 134246400 419 00c4 00000000 .word update_complete 420 00c8 00A00020 .word 536911872 421 .cfi_endproc 422 .LFE133: 424 .section .text.HAL_TIM_PeriodElapsedCallback,"ax",%progbits 425 .align 1 426 .p2align 2,,3 427 .global HAL_TIM_PeriodElapsedCallback 428 .syntax unified 429 .thumb 430 .thumb_func 432 HAL_TIM_PeriodElapsedCallback: 433 .LVL25: 434 .LFB135: 219:Core/Src/main.c **** /* USER CODE BEGIN Callback 0 */ 435 .loc 1 219 1 view -0 436 .cfi_startproc 437 @ args = 0, pretend = 0, frame = 0 438 @ frame_needed = 0, uses_anonymous_args = 0 439 @ link register save eliminated. 223:Core/Src/main.c **** { 440 .loc 1 223 3 view .LVU145 223:Core/Src/main.c **** { 441 .loc 1 223 6 is_stmt 0 view .LVU146 442 0000 034B ldr r3, .L25 443 0002 0268 ldr r2, [r0] 444 0004 9A42 cmp r2, r3 445 0006 00D0 beq .L24 230:Core/Src/main.c **** 446 .loc 1 230 1 view .LVU147 447 0008 7047 bx lr 448 .L24: 225:Core/Src/main.c **** } ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 21 449 .loc 1 225 5 is_stmt 1 view .LVU148 450 000a FFF7FEBF b HAL_IncTick 451 .LVL26: 452 .L26: 225:Core/Src/main.c **** } 453 .loc 1 225 5 is_stmt 0 view .LVU149 454 000e 00BF .align 2 455 .L25: 456 0010 002C0140 .word 1073818624 457 .cfi_endproc 458 .LFE135: 460 .section .text.Error_Handler,"ax",%progbits 461 .align 1 462 .p2align 2,,3 463 .global Error_Handler 464 .syntax unified 465 .thumb 466 .thumb_func 468 Error_Handler: 469 .LFB136: 237:Core/Src/main.c **** /* USER CODE BEGIN Error_Handler_Debug */ 470 .loc 1 237 1 is_stmt 1 view -0 471 .cfi_startproc 472 @ Volatile: function does not return. 473 @ args = 0, pretend = 0, frame = 0 474 @ frame_needed = 0, uses_anonymous_args = 0 475 @ link register save eliminated. 240:Core/Src/main.c **** while (1) 476 .loc 1 240 3 view .LVU151 477 .LBB32: 478 .LBI32: 140:Drivers/CMSIS/Include/cmsis_gcc.h **** { 479 .loc 2 140 27 view .LVU152 480 .LBB33: 142:Drivers/CMSIS/Include/cmsis_gcc.h **** } 481 .loc 2 142 3 view .LVU153 482 .syntax unified 483 @ 142 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 484 0000 72B6 cpsid i 485 @ 0 "" 2 486 .thumb 487 .syntax unified 488 .L28: 489 .LBE33: 490 .LBE32: 241:Core/Src/main.c **** { 491 .loc 1 241 3 discriminator 1 view .LVU154 492 .loc 1 243 3 discriminator 1 view .LVU155 241:Core/Src/main.c **** { 493 .loc 1 241 9 discriminator 1 view .LVU156 241:Core/Src/main.c **** { 494 .loc 1 241 3 discriminator 1 view .LVU157 495 .loc 1 243 3 discriminator 1 view .LVU158 241:Core/Src/main.c **** { 496 .loc 1 241 9 discriminator 1 view .LVU159 497 0002 FEE7 b .L28 498 .cfi_endproc ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 22 499 .LFE136: 501 .section .text.assert_failed,"ax",%progbits 502 .align 1 503 .p2align 2,,3 504 .global assert_failed 505 .syntax unified 506 .thumb 507 .thumb_func 509 assert_failed: 510 .LVL27: 511 .LFB137: 244:Core/Src/main.c **** /* USER CODE END Error_Handler_Debug */ 245:Core/Src/main.c **** } 246:Core/Src/main.c **** #ifdef USE_FULL_ASSERT 247:Core/Src/main.c **** /** 248:Core/Src/main.c **** * @brief Reports the name of the source file and the source line number 249:Core/Src/main.c **** * where the assert_param error has occurred. 250:Core/Src/main.c **** * @param file: pointer to the source file name 251:Core/Src/main.c **** * @param line: assert_param error line source number 252:Core/Src/main.c **** * @retval None 253:Core/Src/main.c **** */ 254:Core/Src/main.c **** void assert_failed(uint8_t *file, uint32_t line) 255:Core/Src/main.c **** { 512 .loc 1 255 1 view -0 513 .cfi_startproc 514 @ args = 0, pretend = 0, frame = 0 515 @ frame_needed = 0, uses_anonymous_args = 0 516 @ link register save eliminated. 256:Core/Src/main.c **** /* USER CODE BEGIN 6 */ 257:Core/Src/main.c **** /* User can add his own implementation to report the file name and line number, 258:Core/Src/main.c **** ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ 259:Core/Src/main.c **** /* USER CODE END 6 */ 260:Core/Src/main.c **** } 517 .loc 1 260 1 view .LVU161 518 0000 7047 bx lr 519 .cfi_endproc 520 .LFE137: 522 .global led_time 523 .global update_flag 524 0002 00BF .section .bss.led_time,"aw",%nobits 525 .align 2 526 .set .LANCHOR1,. + 0 529 led_time: 530 0000 00000000 .space 4 531 .section .bss.update_flag,"aw",%nobits 532 .align 1 533 .set .LANCHOR0,. + 0 536 update_flag: 537 0000 0000 .space 2 538 .text 539 .Letext0: 540 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h" 541 .file 4 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h" 542 .file 5 "Drivers/CMSIS/Include/core_cm4.h" 543 .file 6 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h" 544 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h" 545 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h" ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 23 546 .file 9 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h" 547 .file 10 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h" 548 .file 11 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h" 549 .file 12 "user_inc/soft_uart.h" 550 .file 13 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h" 551 .file 14 "Core/Inc/gpio.h" 552 .file 15 "Core/Inc/dma.h" 553 .file 16 "Core/Inc/usart.h" 554 .file 17 "Core/Inc/tim.h" 555 .file 18 "user_inc/soft_flash.h" 556 .file 19 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h" 557 .file 20 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h" 558 .file 21 "" ARM GAS C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s page 24 DEFINED SYMBOLS *ABS*:00000000 main.c C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s:20 .text.SystemClock_Config:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s:27 .text.SystemClock_Config:00000000 SystemClock_Config C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s:238 .text.startup.main:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s:245 .text.startup.main:00000000 main C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s:415 .text.startup.main:000000b4 $d C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s:425 .text.HAL_TIM_PeriodElapsedCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s:432 .text.HAL_TIM_PeriodElapsedCallback:00000000 HAL_TIM_PeriodElapsedCallback C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s:456 .text.HAL_TIM_PeriodElapsedCallback:00000010 $d C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s:461 .text.Error_Handler:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s:468 .text.Error_Handler:00000000 Error_Handler C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s:502 .text.assert_failed:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s:509 .text.assert_failed:00000000 assert_failed C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s:529 .bss.led_time:00000000 led_time C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s:536 .bss.update_flag:00000000 update_flag C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s:525 .bss.led_time:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccA9c1Tc.s:532 .bss.update_flag:00000000 $d UNDEFINED SYMBOLS memset HAL_RCC_OscConfig HAL_RCC_ClockConfig HAL_RCCEx_PeriphCLKConfig HAL_Init MX_GPIO_Init MX_DMA_Init MX_USART2_UART_Init MX_USART3_UART_Init MX_TIM2_Init MX_TIM3_Init init_usart flash_read_updata_flag flash_ready_SN_and_VERSION send_pmu_version HAL_GetTick HAL_GPIO_TogglePin update_function HAL_NVIC_DisableIRQ update_complete HAL_IncTick