diff --git a/103ze/.settings/language.settings.xml b/103ze/.settings/language.settings.xml
index af83ebf..87ef363 100644
--- a/103ze/.settings/language.settings.xml
+++ b/103ze/.settings/language.settings.xml
@@ -13,7 +13,7 @@
-
+
@@ -37,7 +37,7 @@
-
+
diff --git a/103ze/.settings/stm32cubeide.project.prefs b/103ze/.settings/stm32cubeide.project.prefs
index 5c690d3..ce30672 100644
--- a/103ze/.settings/stm32cubeide.project.prefs
+++ b/103ze/.settings/stm32cubeide.project.prefs
@@ -1,4 +1,4 @@
66BE74F758C12D739921AEA421D593D3=3
-8DF89ED150041C4CBC7CB9A9CAA90856=DE78FCE0BA5B3294914EFBF8CCE3C6CE
-DC22A860405A8BF2F2C095E5B6529F12=C0E5DD146C4FCAF07F69BC2160CDF33F
+8DF89ED150041C4CBC7CB9A9CAA90856=C51B2B4ECCDABDF7BBEE78EFB628823D
+DC22A860405A8BF2F2C095E5B6529F12=C51B2B4ECCDABDF7BBEE78EFB628823D
eclipse.preferences.version=1
diff --git a/103ze/103ze_code.ioc b/103ze/103ze_code.ioc
index 776d7a4..91964bf 100644
--- a/103ze/103ze_code.ioc
+++ b/103ze/103ze_code.ioc
@@ -31,6 +31,7 @@ Mcu.IP3=RCC
RCC.SDIOHCLKDiv2FreqValue=36000000
Mcu.IP0=FATFS
Mcu.IP1=FSMC
+PE4.GPIOParameters=GPIO_PuPd,GPIO_Label
Mcu.UserConstants=
Mcu.ThirdPartyNb=0
RCC.SDIOFreq_Value=72000000
@@ -39,25 +40,25 @@ Mcu.IPNb=6
ProjectManager.PreviousToolchain=
PD4.Signal=FSMC_NOE
RCC.APB2TimFreq_Value=72000000
-Mcu.Pin6=PE9
+Mcu.Pin6=PG0
PD0.Signal=FSMC_D2_DA2
+Mcu.Pin7=PE7
PD8.Signal=FSMC_D13_DA13
-Mcu.Pin7=PE10
-Mcu.Pin8=PE11
+Mcu.Pin8=PE8
OSC_OUT.Mode=HSE-External-Oscillator
-Mcu.Pin9=PE12
+Mcu.Pin9=PE9
SH.FSMC_A10.0=FSMC_A10,A10_1
OSC_OUT.Signal=RCC_OSC_OUT
RCC.AHBFreq_Value=72000000
-Mcu.Pin0=OSC_IN
-Mcu.Pin1=OSC_OUT
+Mcu.Pin0=PE2
+Mcu.Pin1=PE3
GPIO.groupedBy=Group By Peripherals
-Mcu.Pin2=PB0
-Mcu.Pin3=PG0
+Mcu.Pin2=PE4
+Mcu.Pin3=OSC_IN
SH.FSMC_D4_DA4.ConfNb=1
SH.FSMC_D12_DA12.ConfNb=1
-Mcu.Pin4=PE7
-Mcu.Pin5=PE8
+Mcu.Pin4=OSC_OUT
+Mcu.Pin5=PB0
ProjectManager.ProjectBuild=false
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false
@@ -78,10 +79,15 @@ PA14.Mode=Serial_Wire
PB14.Mode=Full_Duplex_Master
SH.FSMC_D6_DA6.0=FSMC_D6,16b-d1
File.Version=6
+PE4.GPIO_Label=KEY_DOWN
SPI2.CalculateBaudRate=18.0 MBits/s
+PE3.GPIOParameters=GPIO_PuPd,GPIO_Label
SH.FSMC_D9_DA9.ConfNb=1
+PE2.Signal=GPIO_Input
+PE3.Locked=true
NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
PE10.Signal=FSMC_D7_DA7
+PE4.Signal=GPIO_Input
SH.FSMC_D5_DA5.0=FSMC_D5,16b-d1
ProjectManager.HalAssertFull=false
PB0.Locked=true
@@ -107,13 +113,14 @@ SPI2.Direction=SPI_DIRECTION_2LINES
PB13.Mode=Full_Duplex_Master
PE7.Signal=FSMC_D4_DA4
SH.FSMC_D7_DA7.ConfNb=1
+PE2.GPIO_Label=KEY_UP
PD15.Signal=FSMC_D1_DA1
ProjectManager.CustomerFirmwarePackage=
PG12.Signal=FSMC_NE4
RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
ProjectManager.ProjectFileName=103ze_code.ioc
SH.FSMC_D12_DA12.0=FSMC_D12,16b-d1
-Mcu.PinsNb=32
+Mcu.PinsNb=35
ProjectManager.NoMain=false
SH.FSMC_D8_DA8.ConfNb=1
PD1.Signal=FSMC_D3_DA3
@@ -135,7 +142,9 @@ ProjectManager.TargetToolchain=STM32CubeIDE
FSMC.DataSetupTime1=1
SH.FSMC_D5_DA5.ConfNb=1
SH.FSMC_A10.ConfNb=1
+PE4.Locked=true
SPI2.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate
+PE2.GPIOParameters=GPIO_PuPd,GPIO_Label
ProjectManager.RegisterCallBack=
OSC_IN.Signal=RCC_OSC_IN
RCC.USBFreq_Value=72000000
@@ -143,6 +152,7 @@ PE11.Signal=FSMC_D8_DA8
PB12.GPIO_Speed=GPIO_SPEED_FREQ_HIGH
VP_FATFS_VS_Generic.Mode=User_defined
PB14.Signal=SPI2_MISO
+PE2.GPIO_PuPd=GPIO_PULLUP
SH.FSMC_D7_DA7.0=FSMC_D7,16b-d1
board=custom
PG12.Mode=NorPsramChipSelect4_1
@@ -156,9 +166,13 @@ PE14.Signal=FSMC_D11_DA11
PE15.Signal=FSMC_D12_DA12
MxCube.Version=6.2.0
PE8.Signal=FSMC_D5_DA5
-Mcu.Pin30=VP_FATFS_VS_Generic
+Mcu.Pin30=PD4
VP_SYS_VS_Systick.Mode=SysTick
-Mcu.Pin31=VP_SYS_VS_Systick
+Mcu.Pin33=VP_FATFS_VS_Generic
+PE3.GPIO_PuPd=GPIO_PULLUP
+Mcu.Pin34=VP_SYS_VS_Systick
+Mcu.Pin31=PD5
+Mcu.Pin32=PG12
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false
PA13.Mode=Serial_Wire
ProjectManager.FreePins=false
@@ -166,22 +180,23 @@ RCC.IPParameters=ADCFreqValue,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1Ti
ProjectManager.AskForMigrate=true
Mcu.Name=STM32F103Z(C-D-E)Tx
PE12.Signal=FSMC_D9_DA9
-Mcu.Pin26=PD2
-Mcu.Pin27=PD4
-Mcu.Pin24=PD0
+Mcu.Pin26=PA14
+Mcu.Pin27=PD0
+Mcu.Pin24=PD15
ProjectManager.UnderRoot=true
-Mcu.Pin25=PD1
+PE4.GPIO_PuPd=GPIO_PULLUP
+Mcu.Pin25=PA13
PD14.Signal=FSMC_D0_DA0
-Mcu.Pin28=PD5
+Mcu.Pin28=PD1
RCC.FSMCFreq_Value=72000000
-Mcu.Pin29=PG12
+Mcu.Pin29=PD2
ProjectManager.CoupleFile=false
RCC.SYSCLKFreq_VALUE=72000000
-Mcu.Pin22=PA13
-Mcu.Pin23=PA14
+Mcu.Pin22=PD10
+Mcu.Pin23=PD14
RCC.TimSysFreq_Value=72000000
-Mcu.Pin20=PD14
-Mcu.Pin21=PD15
+Mcu.Pin20=PD8
+Mcu.Pin21=PD9
NVIC.ForceEnableDMAVector=true
KeepUserPlacement=false
OSC_IN.Mode=HSE-External-Oscillator
@@ -190,23 +205,26 @@ ProjectManager.CompilerOptimize=6
SH.FSMC_D15_DA15.0=FSMC_D15,16b-d1
PA14.Signal=SYS_JTCK-SWCLK
ProjectManager.HeapSize=0x800
-Mcu.Pin15=PB14
+Mcu.Pin15=PE15
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
-Mcu.Pin16=PB15
+Mcu.Pin16=PB12
+Mcu.Pin13=PE13
SH.FSMC_D11_DA11.0=FSMC_D11,16b-d1
-Mcu.Pin13=PB12
-Mcu.Pin14=PB13
-Mcu.Pin19=PD10
+Mcu.Pin14=PE14
+Mcu.Pin19=PB15
SH.FSMC_NOE.0=FSMC_NOE,Lcd1
ProjectManager.ComputerToolchain=false
-Mcu.Pin17=PD8
+Mcu.Pin17=PB13
SH.FSMC_D2_DA2.ConfNb=1
-Mcu.Pin18=PD9
+Mcu.Pin18=PB14
SH.FSMC_D1_DA1.ConfNb=1
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
-Mcu.Pin11=PE14
-Mcu.Pin12=PE15
-Mcu.Pin10=PE13
+Mcu.Pin11=PE11
+Mcu.Pin12=PE12
+Mcu.Pin10=PE10
+PE3.Signal=GPIO_Input
+PE2.Locked=true
+PE3.GPIO_Label=KEY_B
PD2.Signal=GPIO_Output
RCC.APB1Freq_Value=36000000
PB0.Signal=GPIO_Output
diff --git a/103ze/Core/Inc/main.h b/103ze/Core/Inc/main.h
index 949eb16..193031e 100644
--- a/103ze/Core/Inc/main.h
+++ b/103ze/Core/Inc/main.h
@@ -58,6 +58,12 @@ void Error_Handler(void);
/* USER CODE END EFP */
/* Private defines -----------------------------------------------------------*/
+#define KEY_UP_Pin GPIO_PIN_2
+#define KEY_UP_GPIO_Port GPIOE
+#define KEY_B_Pin GPIO_PIN_3
+#define KEY_B_GPIO_Port GPIOE
+#define KEY_DOWN_Pin GPIO_PIN_4
+#define KEY_DOWN_GPIO_Port GPIOE
#define LCD_BL_Pin GPIO_PIN_0
#define LCD_BL_GPIO_Port GPIOB
#define FLASH_E_Pin GPIO_PIN_12
diff --git a/103ze/Core/Src/main.c b/103ze/Core/Src/main.c
index 835e581..9648f16 100644
--- a/103ze/Core/Src/main.c
+++ b/103ze/Core/Src/main.c
@@ -196,9 +196,9 @@ static void MX_GPIO_Init(void)
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOG_CLK_ENABLE();
- __HAL_RCC_GPIOE_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
@@ -208,6 +208,12 @@ static void MX_GPIO_Init(void)
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(SD_E_GPIO_Port, SD_E_Pin, GPIO_PIN_RESET);
+ /*Configure GPIO pins : KEY_UP_Pin KEY_B_Pin KEY_DOWN_Pin */
+ GPIO_InitStruct.Pin = KEY_UP_Pin|KEY_B_Pin|KEY_DOWN_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_PULLUP;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
/*Configure GPIO pin : LCD_BL_Pin */
GPIO_InitStruct.Pin = LCD_BL_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
diff --git a/103ze/Debug/103ze_code.bin b/103ze/Debug/103ze_code.bin
index e29b4d6..680542d 100644
Binary files a/103ze/Debug/103ze_code.bin and b/103ze/Debug/103ze_code.bin differ
diff --git a/103ze/Debug/103ze_code.elf b/103ze/Debug/103ze_code.elf
index ef6fdcb..623c32a 100644
Binary files a/103ze/Debug/103ze_code.elf and b/103ze/Debug/103ze_code.elf differ
diff --git a/103ze/Debug/103ze_code.list b/103ze/Debug/103ze_code.list
index aea4a13..1322c8b 100644
--- a/103ze/Debug/103ze_code.list
+++ b/103ze/Debug/103ze_code.list
@@ -5,45 +5,45 @@ Sections:
Idx Name Size VMA LMA File off Algn
0 .isr_vector 000001e4 08000000 08000000 00010000 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 1 .text 00005d68 080001e4 080001e4 000101e4 2**2
+ 1 .text 00006814 080001e4 080001e4 000101e4 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
- 2 .rodata 00000b60 08005f4c 08005f4c 00015f4c 2**2
+ 2 .rodata 00000b98 080069f8 080069f8 000169f8 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 3 .ARM.extab 00000000 08006aac 08006aac 00020024 2**0
+ 3 .ARM.extab 00000000 08007590 08007590 00020088 2**0
CONTENTS
- 4 .ARM 00000000 08006aac 08006aac 00020024 2**0
+ 4 .ARM 00000000 08007590 08007590 00020088 2**0
CONTENTS
- 5 .preinit_array 00000000 08006aac 08006aac 00020024 2**0
+ 5 .preinit_array 00000000 08007590 08007590 00020088 2**0
CONTENTS, ALLOC, LOAD, DATA
- 6 .init_array 00000004 08006aac 08006aac 00016aac 2**2
+ 6 .init_array 00000004 08007590 08007590 00017590 2**2
CONTENTS, ALLOC, LOAD, DATA
- 7 .fini_array 00000004 08006ab0 08006ab0 00016ab0 2**2
+ 7 .fini_array 00000004 08007594 08007594 00017594 2**2
CONTENTS, ALLOC, LOAD, DATA
- 8 .data 00000024 20000000 08006ab4 00020000 2**2
+ 8 .data 00000088 20000000 08007598 00020000 2**2
CONTENTS, ALLOC, LOAD, DATA
- 9 .bss 000007bc 20000024 08006ad8 00020024 2**2
+ 9 .bss 000007dc 20000088 08007620 00020088 2**2
ALLOC
- 10 ._user_heap_stack 00001000 200007e0 08006ad8 000207e0 2**0
+ 10 ._user_heap_stack 00001004 20000864 08007620 00020864 2**0
ALLOC
- 11 .ARM.attributes 00000029 00000000 00000000 00020024 2**0
+ 11 .ARM.attributes 00000029 00000000 00000000 00020088 2**0
CONTENTS, READONLY
- 12 .debug_info 0000e347 00000000 00000000 0002004d 2**0
+ 12 .debug_info 0000ede2 00000000 00000000 000200b1 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 13 .debug_abbrev 00002b1d 00000000 00000000 0002e394 2**0
+ 13 .debug_abbrev 00002d03 00000000 00000000 0002ee93 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 14 .debug_aranges 00000bf8 00000000 00000000 00030eb8 2**3
+ 14 .debug_aranges 00000c18 00000000 00000000 00031b98 2**3
CONTENTS, READONLY, DEBUGGING, OCTETS
- 15 .debug_ranges 00000aa0 00000000 00000000 00031ab0 2**3
+ 15 .debug_ranges 00000ab0 00000000 00000000 000327b0 2**3
CONTENTS, READONLY, DEBUGGING, OCTETS
- 16 .debug_macro 0001a88f 00000000 00000000 00032550 2**0
+ 16 .debug_macro 0001ac05 00000000 00000000 00033260 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 17 .debug_line 0000fdb5 00000000 00000000 0004cddf 2**0
+ 17 .debug_line 00010388 00000000 00000000 0004de65 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 18 .debug_str 00093ad3 00000000 00000000 0005cb94 2**0
+ 18 .debug_str 00094106 00000000 00000000 0005e1ed 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 19 .comment 00000053 00000000 00000000 000f0667 2**0
+ 19 .comment 00000053 00000000 00000000 000f22f3 2**0
CONTENTS, READONLY
- 20 .debug_frame 00002e84 00000000 00000000 000f06bc 2**2
+ 20 .debug_frame 000032d8 00000000 00000000 000f2348 2**2
CONTENTS, READONLY, DEBUGGING, OCTETS
Disassembly of section .text:
@@ -60,9 +60,9 @@ Disassembly of section .text:
80001f6: 2301 movs r3, #1
80001f8: 7023 strb r3, [r4, #0]
80001fa: bd10 pop {r4, pc}
- 80001fc: 20000024 .word 0x20000024
+ 80001fc: 20000088 .word 0x20000088
8000200: 00000000 .word 0x00000000
- 8000204: 08005f34 .word 0x08005f34
+ 8000204: 080069e0 .word 0x080069e0
08000208 :
8000208: b508 push {r3, lr}
@@ -73,8 +73,8 @@ Disassembly of section .text:
8000212: f3af 8000 nop.w
8000216: bd08 pop {r3, pc}
8000218: 00000000 .word 0x00000000
- 800021c: 20000028 .word 0x20000028
- 8000220: 08005f34 .word 0x08005f34
+ 800021c: 2000008c .word 0x2000008c
+ 8000220: 080069e0 .word 0x080069e0
08000224 :
/**
@@ -91,7 +91,7 @@ int main(void)
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
- 8000228: f000 faa8 bl 800077c
+ 8000228: f000 faec bl 8000804
/* USER CODE BEGIN Init */
/* USER CODE END Init */
@@ -107,14 +107,14 @@ int main(void)
MX_GPIO_Init();
8000230: f000 f884 bl 800033c
MX_FSMC_Init();
- 8000234: f000 f908 bl 8000448
+ 8000234: f000 f916 bl 8000464
MX_SPI2_Init();
8000238: f000 f84a bl 80002d0
MX_FATFS_Init();
- 800023c: f002 f838 bl 80022b0
+ 800023c: f002 f894 bl 8002368
/* USER CODE BEGIN 2 */
my_main();
- 8000240: f004 fa4e bl 80046e0
+ 8000240: f004 faaa bl 8004798
/* USER CODE END 2 */
@@ -138,7 +138,7 @@ void SystemClock_Config(void)
8000250: 2228 movs r2, #40 ; 0x28
8000252: 2100 movs r1, #0
8000254: 4618 mov r0, r3
- 8000256: f005 fe65 bl 8005f24
+ 8000256: f005 ff81 bl 800615c
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
800025a: 1d3b adds r3, r7, #4
800025c: 2200 movs r2, #0
@@ -175,13 +175,13 @@ void SystemClock_Config(void)
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
800028a: f107 0318 add.w r3, r7, #24
800028e: 4618 mov r0, r3
- 8000290: f000 fd8a bl 8000da8
+ 8000290: f000 fde6 bl 8000e60
8000294: 4603 mov r3, r0
8000296: 2b00 cmp r3, #0
8000298: d001 beq.n 800029e
{
Error_Handler();
- 800029a: f000 f939 bl 8000510
+ 800029a: f000 f947 bl 800052c
}
/** Initializes the CPU, AHB and APB buses clocks
*/
@@ -206,13 +206,13 @@ void SystemClock_Config(void)
80002b4: 1d3b adds r3, r7, #4
80002b6: 2102 movs r1, #2
80002b8: 4618 mov r0, r3
- 80002ba: f000 fff5 bl 80012a8
+ 80002ba: f001 f851 bl 8001360
80002be: 4603 mov r3, r0
80002c0: 2b00 cmp r3, #0
80002c2: d001 beq.n 80002c8
{
Error_Handler();
- 80002c4: f000 f924 bl 8000510
+ 80002c4: f000 f932 bl 800052c
}
}
80002c8: bf00 nop
@@ -284,13 +284,13 @@ static void MX_SPI2_Init(void)
800031e: 62da str r2, [r3, #44] ; 0x2c
if (HAL_SPI_Init(&hspi2) != HAL_OK)
8000320: 4804 ldr r0, [pc, #16] ; (8000334 )
- 8000322: f001 f929 bl 8001578
+ 8000322: f001 f985 bl 8001630
8000326: 4603 mov r3, r0
8000328: 2b00 cmp r3, #0
800032a: d001 beq.n 8000330
{
Error_Handler();
- 800032c: f000 f8f0 bl 8000510
+ 800032c: f000 f8fe bl 800052c
}
/* USER CODE BEGIN SPI2_Init 2 */
@@ -299,7 +299,7 @@ static void MX_SPI2_Init(void)
}
8000330: bf00 nop
8000332: bd80 pop {r7, pc}
- 8000334: 20000074 .word 0x20000074
+ 8000334: 200000e4 .word 0x200000e4
8000338: 40003800 .word 0x40003800
0800033c :
@@ -321,57 +321,57 @@ static void MX_GPIO_Init(void)
800034e: 60da str r2, [r3, #12]
/* GPIO Ports Clock Enable */
- __HAL_RCC_GPIOB_CLK_ENABLE();
- 8000350: 4b3a ldr r3, [pc, #232] ; (800043c )
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ 8000350: 4b40 ldr r3, [pc, #256] ; (8000454 )
8000352: 699b ldr r3, [r3, #24]
- 8000354: 4a39 ldr r2, [pc, #228] ; (800043c )
- 8000356: f043 0308 orr.w r3, r3, #8
+ 8000354: 4a3f ldr r2, [pc, #252] ; (8000454 )
+ 8000356: f043 0340 orr.w r3, r3, #64 ; 0x40
800035a: 6193 str r3, [r2, #24]
- 800035c: 4b37 ldr r3, [pc, #220] ; (800043c )
+ 800035c: 4b3d ldr r3, [pc, #244] ; (8000454 )
800035e: 699b ldr r3, [r3, #24]
- 8000360: f003 0308 and.w r3, r3, #8
+ 8000360: f003 0340 and.w r3, r3, #64 ; 0x40
8000364: 617b str r3, [r7, #20]
8000366: 697b ldr r3, [r7, #20]
- __HAL_RCC_GPIOG_CLK_ENABLE();
- 8000368: 4b34 ldr r3, [pc, #208] ; (800043c )
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ 8000368: 4b3a ldr r3, [pc, #232] ; (8000454 )
800036a: 699b ldr r3, [r3, #24]
- 800036c: 4a33 ldr r2, [pc, #204] ; (800043c )
- 800036e: f443 7380 orr.w r3, r3, #256 ; 0x100
+ 800036c: 4a39 ldr r2, [pc, #228] ; (8000454 )
+ 800036e: f043 0308 orr.w r3, r3, #8
8000372: 6193 str r3, [r2, #24]
- 8000374: 4b31 ldr r3, [pc, #196] ; (800043c )
+ 8000374: 4b37 ldr r3, [pc, #220] ; (8000454 )
8000376: 699b ldr r3, [r3, #24]
- 8000378: f403 7380 and.w r3, r3, #256 ; 0x100
+ 8000378: f003 0308 and.w r3, r3, #8
800037c: 613b str r3, [r7, #16]
800037e: 693b ldr r3, [r7, #16]
- __HAL_RCC_GPIOE_CLK_ENABLE();
- 8000380: 4b2e ldr r3, [pc, #184] ; (800043c )
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ 8000380: 4b34 ldr r3, [pc, #208] ; (8000454 )
8000382: 699b ldr r3, [r3, #24]
- 8000384: 4a2d ldr r2, [pc, #180] ; (800043c )
- 8000386: f043 0340 orr.w r3, r3, #64 ; 0x40
+ 8000384: 4a33 ldr r2, [pc, #204] ; (8000454 )
+ 8000386: f443 7380 orr.w r3, r3, #256 ; 0x100
800038a: 6193 str r3, [r2, #24]
- 800038c: 4b2b ldr r3, [pc, #172] ; (800043c )
+ 800038c: 4b31 ldr r3, [pc, #196] ; (8000454 )
800038e: 699b ldr r3, [r3, #24]
- 8000390: f003 0340 and.w r3, r3, #64 ; 0x40
+ 8000390: f403 7380 and.w r3, r3, #256 ; 0x100
8000394: 60fb str r3, [r7, #12]
8000396: 68fb ldr r3, [r7, #12]
__HAL_RCC_GPIOD_CLK_ENABLE();
- 8000398: 4b28 ldr r3, [pc, #160] ; (800043c )
+ 8000398: 4b2e ldr r3, [pc, #184] ; (8000454 )
800039a: 699b ldr r3, [r3, #24]
- 800039c: 4a27 ldr r2, [pc, #156] ; (800043c )
+ 800039c: 4a2d ldr r2, [pc, #180] ; (8000454 )
800039e: f043 0320 orr.w r3, r3, #32
80003a2: 6193 str r3, [r2, #24]
- 80003a4: 4b25 ldr r3, [pc, #148] ; (800043c )
+ 80003a4: 4b2b ldr r3, [pc, #172] ; (8000454 )
80003a6: 699b ldr r3, [r3, #24]
80003a8: f003 0320 and.w r3, r3, #32
80003ac: 60bb str r3, [r7, #8]
80003ae: 68bb ldr r3, [r7, #8]
__HAL_RCC_GPIOA_CLK_ENABLE();
- 80003b0: 4b22 ldr r3, [pc, #136] ; (800043c )
+ 80003b0: 4b28 ldr r3, [pc, #160] ; (8000454 )
80003b2: 699b ldr r3, [r3, #24]
- 80003b4: 4a21 ldr r2, [pc, #132] ; (800043c )
+ 80003b4: 4a27 ldr r2, [pc, #156] ; (8000454 )
80003b6: f043 0304 orr.w r3, r3, #4
80003ba: 6193 str r3, [r2, #24]
- 80003bc: 4b1f ldr r3, [pc, #124] ; (800043c )
+ 80003bc: 4b25 ldr r3, [pc, #148] ; (8000454 )
80003be: 699b ldr r3, [r3, #24]
80003c0: f003 0304 and.w r3, r3, #4
80003c4: 607b str r3, [r7, #4]
@@ -381,15021 +381,16284 @@ static void MX_GPIO_Init(void)
HAL_GPIO_WritePin(GPIOB, LCD_BL_Pin|FLASH_E_Pin, GPIO_PIN_RESET);
80003c8: 2200 movs r2, #0
80003ca: f241 0101 movw r1, #4097 ; 0x1001
- 80003ce: 481c ldr r0, [pc, #112] ; (8000440 )
- 80003d0: f000 fcd2 bl 8000d78
+ 80003ce: 4822 ldr r0, [pc, #136] ; (8000458 )
+ 80003d0: f000 fd2d bl 8000e2e
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(SD_E_GPIO_Port, SD_E_Pin, GPIO_PIN_RESET);
80003d4: 2200 movs r2, #0
80003d6: 2104 movs r1, #4
- 80003d8: 481a ldr r0, [pc, #104] ; (8000444 )
- 80003da: f000 fccd bl 8000d78
+ 80003d8: 4820 ldr r0, [pc, #128] ; (800045c )
+ 80003da: f000 fd28 bl 8000e2e
+
+ /*Configure GPIO pins : KEY_UP_Pin KEY_B_Pin KEY_DOWN_Pin */
+ GPIO_InitStruct.Pin = KEY_UP_Pin|KEY_B_Pin|KEY_DOWN_Pin;
+ 80003de: 231c movs r3, #28
+ 80003e0: 61bb str r3, [r7, #24]
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ 80003e2: 2300 movs r3, #0
+ 80003e4: 61fb str r3, [r7, #28]
+ GPIO_InitStruct.Pull = GPIO_PULLUP;
+ 80003e6: 2301 movs r3, #1
+ 80003e8: 623b str r3, [r7, #32]
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+ 80003ea: f107 0318 add.w r3, r7, #24
+ 80003ee: 4619 mov r1, r3
+ 80003f0: 481b ldr r0, [pc, #108] ; (8000460 )
+ 80003f2: f000 fb71 bl 8000ad8
/*Configure GPIO pin : LCD_BL_Pin */
GPIO_InitStruct.Pin = LCD_BL_Pin;
- 80003de: 2301 movs r3, #1
- 80003e0: 61bb str r3, [r7, #24]
+ 80003f6: 2301 movs r3, #1
+ 80003f8: 61bb str r3, [r7, #24]
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- 80003e2: 2301 movs r3, #1
- 80003e4: 61fb str r3, [r7, #28]
+ 80003fa: 2301 movs r3, #1
+ 80003fc: 61fb str r3, [r7, #28]
GPIO_InitStruct.Pull = GPIO_NOPULL;
- 80003e6: 2300 movs r3, #0
- 80003e8: 623b str r3, [r7, #32]
+ 80003fe: 2300 movs r3, #0
+ 8000400: 623b str r3, [r7, #32]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- 80003ea: 2302 movs r3, #2
- 80003ec: 627b str r3, [r7, #36] ; 0x24
+ 8000402: 2302 movs r3, #2
+ 8000404: 627b str r3, [r7, #36] ; 0x24
HAL_GPIO_Init(LCD_BL_GPIO_Port, &GPIO_InitStruct);
- 80003ee: f107 0318 add.w r3, r7, #24
- 80003f2: 4619 mov r1, r3
- 80003f4: 4812 ldr r0, [pc, #72] ; (8000440 )
- 80003f6: f000 fb2b bl 8000a50
+ 8000406: f107 0318 add.w r3, r7, #24
+ 800040a: 4619 mov r1, r3
+ 800040c: 4812 ldr r0, [pc, #72] ; (8000458 )
+ 800040e: f000 fb63 bl 8000ad8
/*Configure GPIO pin : FLASH_E_Pin */
GPIO_InitStruct.Pin = FLASH_E_Pin;
- 80003fa: f44f 5380 mov.w r3, #4096 ; 0x1000
- 80003fe: 61bb str r3, [r7, #24]
+ 8000412: f44f 5380 mov.w r3, #4096 ; 0x1000
+ 8000416: 61bb str r3, [r7, #24]
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- 8000400: 2301 movs r3, #1
- 8000402: 61fb str r3, [r7, #28]
+ 8000418: 2301 movs r3, #1
+ 800041a: 61fb str r3, [r7, #28]
GPIO_InitStruct.Pull = GPIO_NOPULL;
- 8000404: 2300 movs r3, #0
- 8000406: 623b str r3, [r7, #32]
+ 800041c: 2300 movs r3, #0
+ 800041e: 623b str r3, [r7, #32]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
- 8000408: 2303 movs r3, #3
- 800040a: 627b str r3, [r7, #36] ; 0x24
+ 8000420: 2303 movs r3, #3
+ 8000422: 627b str r3, [r7, #36] ; 0x24
HAL_GPIO_Init(FLASH_E_GPIO_Port, &GPIO_InitStruct);
- 800040c: f107 0318 add.w r3, r7, #24
- 8000410: 4619 mov r1, r3
- 8000412: 480b ldr r0, [pc, #44] ; (8000440 )
- 8000414: f000 fb1c bl 8000a50
+ 8000424: f107 0318 add.w r3, r7, #24
+ 8000428: 4619 mov r1, r3
+ 800042a: 480b ldr r0, [pc, #44] ; (8000458 )
+ 800042c: f000 fb54 bl 8000ad8
/*Configure GPIO pin : SD_E_Pin */
GPIO_InitStruct.Pin = SD_E_Pin;
- 8000418: 2304 movs r3, #4
- 800041a: 61bb str r3, [r7, #24]
+ 8000430: 2304 movs r3, #4
+ 8000432: 61bb str r3, [r7, #24]
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- 800041c: 2301 movs r3, #1
- 800041e: 61fb str r3, [r7, #28]
+ 8000434: 2301 movs r3, #1
+ 8000436: 61fb str r3, [r7, #28]
GPIO_InitStruct.Pull = GPIO_NOPULL;
- 8000420: 2300 movs r3, #0
- 8000422: 623b str r3, [r7, #32]
+ 8000438: 2300 movs r3, #0
+ 800043a: 623b str r3, [r7, #32]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
- 8000424: 2303 movs r3, #3
- 8000426: 627b str r3, [r7, #36] ; 0x24
+ 800043c: 2303 movs r3, #3
+ 800043e: 627b str r3, [r7, #36] ; 0x24
HAL_GPIO_Init(SD_E_GPIO_Port, &GPIO_InitStruct);
- 8000428: f107 0318 add.w r3, r7, #24
- 800042c: 4619 mov r1, r3
- 800042e: 4805 ldr r0, [pc, #20] ; (8000444 )
- 8000430: f000 fb0e bl 8000a50
+ 8000440: f107 0318 add.w r3, r7, #24
+ 8000444: 4619 mov r1, r3
+ 8000446: 4805 ldr r0, [pc, #20] ; (800045c )
+ 8000448: f000 fb46 bl 8000ad8
}
- 8000434: bf00 nop
- 8000436: 3728 adds r7, #40 ; 0x28
- 8000438: 46bd mov sp, r7
- 800043a: bd80 pop {r7, pc}
- 800043c: 40021000 .word 0x40021000
- 8000440: 40010c00 .word 0x40010c00
- 8000444: 40011400 .word 0x40011400
+ 800044c: bf00 nop
+ 800044e: 3728 adds r7, #40 ; 0x28
+ 8000450: 46bd mov sp, r7
+ 8000452: bd80 pop {r7, pc}
+ 8000454: 40021000 .word 0x40021000
+ 8000458: 40010c00 .word 0x40010c00
+ 800045c: 40011400 .word 0x40011400
+ 8000460: 40011800 .word 0x40011800
-08000448 :
+08000464 :
/* FSMC initialization function */
static void MX_FSMC_Init(void)
{
- 8000448: b580 push {r7, lr}
- 800044a: b088 sub sp, #32
- 800044c: af00 add r7, sp, #0
+ 8000464: b580 push {r7, lr}
+ 8000466: b088 sub sp, #32
+ 8000468: af00 add r7, sp, #0
/* USER CODE BEGIN FSMC_Init 0 */
/* USER CODE END FSMC_Init 0 */
FSMC_NORSRAM_TimingTypeDef Timing = {0};
- 800044e: 1d3b adds r3, r7, #4
- 8000450: 2200 movs r2, #0
- 8000452: 601a str r2, [r3, #0]
- 8000454: 605a str r2, [r3, #4]
- 8000456: 609a str r2, [r3, #8]
- 8000458: 60da str r2, [r3, #12]
- 800045a: 611a str r2, [r3, #16]
- 800045c: 615a str r2, [r3, #20]
- 800045e: 619a str r2, [r3, #24]
+ 800046a: 1d3b adds r3, r7, #4
+ 800046c: 2200 movs r2, #0
+ 800046e: 601a str r2, [r3, #0]
+ 8000470: 605a str r2, [r3, #4]
+ 8000472: 609a str r2, [r3, #8]
+ 8000474: 60da str r2, [r3, #12]
+ 8000476: 611a str r2, [r3, #16]
+ 8000478: 615a str r2, [r3, #20]
+ 800047a: 619a str r2, [r3, #24]
/* USER CODE END FSMC_Init 1 */
/** Perform the SRAM1 memory initialization sequence
*/
hsram1.Instance = FSMC_NORSRAM_DEVICE;
- 8000460: 4b28 ldr r3, [pc, #160] ; (8000504 )
- 8000462: f04f 4220 mov.w r2, #2684354560 ; 0xa0000000
- 8000466: 601a str r2, [r3, #0]
+ 800047c: 4b28 ldr r3, [pc, #160] ; (8000520 )
+ 800047e: f04f 4220 mov.w r2, #2684354560 ; 0xa0000000
+ 8000482: 601a str r2, [r3, #0]
hsram1.Extended = FSMC_NORSRAM_EXTENDED_DEVICE;
- 8000468: 4b26 ldr r3, [pc, #152] ; (8000504 )
- 800046a: 4a27 ldr r2, [pc, #156] ; (8000508 )
- 800046c: 605a str r2, [r3, #4]
+ 8000484: 4b26 ldr r3, [pc, #152] ; (8000520 )
+ 8000486: 4a27 ldr r2, [pc, #156] ; (8000524 )
+ 8000488: 605a str r2, [r3, #4]
/* hsram1.Init */
hsram1.Init.NSBank = FSMC_NORSRAM_BANK4;
- 800046e: 4b25 ldr r3, [pc, #148] ; (8000504 )
- 8000470: 2206 movs r2, #6
- 8000472: 609a str r2, [r3, #8]
+ 800048a: 4b25 ldr r3, [pc, #148] ; (8000520 )
+ 800048c: 2206 movs r2, #6
+ 800048e: 609a str r2, [r3, #8]
hsram1.Init.DataAddressMux = FSMC_DATA_ADDRESS_MUX_DISABLE;
- 8000474: 4b23 ldr r3, [pc, #140] ; (8000504 )
- 8000476: 2200 movs r2, #0
- 8000478: 60da str r2, [r3, #12]
+ 8000490: 4b23 ldr r3, [pc, #140] ; (8000520 )
+ 8000492: 2200 movs r2, #0
+ 8000494: 60da str r2, [r3, #12]
hsram1.Init.MemoryType = FSMC_MEMORY_TYPE_SRAM;
- 800047a: 4b22 ldr r3, [pc, #136] ; (8000504 )
- 800047c: 2200 movs r2, #0
- 800047e: 611a str r2, [r3, #16]
+ 8000496: 4b22 ldr r3, [pc, #136] ; (8000520 )
+ 8000498: 2200 movs r2, #0
+ 800049a: 611a str r2, [r3, #16]
hsram1.Init.MemoryDataWidth = FSMC_NORSRAM_MEM_BUS_WIDTH_16;
- 8000480: 4b20 ldr r3, [pc, #128] ; (8000504 )
- 8000482: 2210 movs r2, #16
- 8000484: 615a str r2, [r3, #20]
+ 800049c: 4b20 ldr r3, [pc, #128] ; (8000520 )
+ 800049e: 2210 movs r2, #16
+ 80004a0: 615a str r2, [r3, #20]
hsram1.Init.BurstAccessMode = FSMC_BURST_ACCESS_MODE_DISABLE;
- 8000486: 4b1f ldr r3, [pc, #124] ; (8000504 )
- 8000488: 2200 movs r2, #0
- 800048a: 619a str r2, [r3, #24]
+ 80004a2: 4b1f ldr r3, [pc, #124] ; (8000520 )
+ 80004a4: 2200 movs r2, #0
+ 80004a6: 619a str r2, [r3, #24]
hsram1.Init.WaitSignalPolarity = FSMC_WAIT_SIGNAL_POLARITY_LOW;
- 800048c: 4b1d ldr r3, [pc, #116] ; (8000504 )
- 800048e: 2200 movs r2, #0
- 8000490: 61da str r2, [r3, #28]
+ 80004a8: 4b1d ldr r3, [pc, #116] ; (8000520 )
+ 80004aa: 2200 movs r2, #0
+ 80004ac: 61da str r2, [r3, #28]
hsram1.Init.WrapMode = FSMC_WRAP_MODE_DISABLE;
- 8000492: 4b1c ldr r3, [pc, #112] ; (8000504 )
- 8000494: 2200 movs r2, #0
- 8000496: 621a str r2, [r3, #32]
+ 80004ae: 4b1c ldr r3, [pc, #112] ; (8000520 )
+ 80004b0: 2200 movs r2, #0
+ 80004b2: 621a str r2, [r3, #32]
hsram1.Init.WaitSignalActive = FSMC_WAIT_TIMING_BEFORE_WS;
- 8000498: 4b1a ldr r3, [pc, #104] ; (8000504 )
- 800049a: 2200 movs r2, #0
- 800049c: 625a str r2, [r3, #36] ; 0x24
+ 80004b4: 4b1a ldr r3, [pc, #104] ; (8000520 )
+ 80004b6: 2200 movs r2, #0
+ 80004b8: 625a str r2, [r3, #36] ; 0x24
hsram1.Init.WriteOperation = FSMC_WRITE_OPERATION_ENABLE;
- 800049e: 4b19 ldr r3, [pc, #100] ; (8000504 )
- 80004a0: f44f 5280 mov.w r2, #4096 ; 0x1000
- 80004a4: 629a str r2, [r3, #40] ; 0x28
+ 80004ba: 4b19 ldr r3, [pc, #100] ; (8000520 )
+ 80004bc: f44f 5280 mov.w r2, #4096 ; 0x1000
+ 80004c0: 629a str r2, [r3, #40] ; 0x28
hsram1.Init.WaitSignal = FSMC_WAIT_SIGNAL_DISABLE;
- 80004a6: 4b17 ldr r3, [pc, #92] ; (8000504 )
- 80004a8: 2200 movs r2, #0
- 80004aa: 62da str r2, [r3, #44] ; 0x2c
+ 80004c2: 4b17 ldr r3, [pc, #92] ; (8000520 )
+ 80004c4: 2200 movs r2, #0
+ 80004c6: 62da str r2, [r3, #44] ; 0x2c
hsram1.Init.ExtendedMode = FSMC_EXTENDED_MODE_DISABLE;
- 80004ac: 4b15 ldr r3, [pc, #84] ; (8000504 )
- 80004ae: 2200 movs r2, #0
- 80004b0: 631a str r2, [r3, #48] ; 0x30
+ 80004c8: 4b15 ldr r3, [pc, #84] ; (8000520 )
+ 80004ca: 2200 movs r2, #0
+ 80004cc: 631a str r2, [r3, #48] ; 0x30
hsram1.Init.AsynchronousWait = FSMC_ASYNCHRONOUS_WAIT_DISABLE;
- 80004b2: 4b14 ldr r3, [pc, #80] ; (8000504 )
- 80004b4: 2200 movs r2, #0
- 80004b6: 635a str r2, [r3, #52] ; 0x34
+ 80004ce: 4b14 ldr r3, [pc, #80] ; (8000520 )
+ 80004d0: 2200 movs r2, #0
+ 80004d2: 635a str r2, [r3, #52] ; 0x34
hsram1.Init.WriteBurst = FSMC_WRITE_BURST_DISABLE;
- 80004b8: 4b12 ldr r3, [pc, #72] ; (8000504 )
- 80004ba: 2200 movs r2, #0
- 80004bc: 639a str r2, [r3, #56] ; 0x38
+ 80004d4: 4b12 ldr r3, [pc, #72] ; (8000520 )
+ 80004d6: 2200 movs r2, #0
+ 80004d8: 639a str r2, [r3, #56] ; 0x38
/* Timing */
Timing.AddressSetupTime = 0;
- 80004be: 2300 movs r3, #0
- 80004c0: 607b str r3, [r7, #4]
+ 80004da: 2300 movs r3, #0
+ 80004dc: 607b str r3, [r7, #4]
Timing.AddressHoldTime = 15;
- 80004c2: 230f movs r3, #15
- 80004c4: 60bb str r3, [r7, #8]
+ 80004de: 230f movs r3, #15
+ 80004e0: 60bb str r3, [r7, #8]
Timing.DataSetupTime = 1;
- 80004c6: 2301 movs r3, #1
- 80004c8: 60fb str r3, [r7, #12]
+ 80004e2: 2301 movs r3, #1
+ 80004e4: 60fb str r3, [r7, #12]
Timing.BusTurnAroundDuration = 15;
- 80004ca: 230f movs r3, #15
- 80004cc: 613b str r3, [r7, #16]
+ 80004e6: 230f movs r3, #15
+ 80004e8: 613b str r3, [r7, #16]
Timing.CLKDivision = 16;
- 80004ce: 2310 movs r3, #16
- 80004d0: 617b str r3, [r7, #20]
+ 80004ea: 2310 movs r3, #16
+ 80004ec: 617b str r3, [r7, #20]
Timing.DataLatency = 17;
- 80004d2: 2311 movs r3, #17
- 80004d4: 61bb str r3, [r7, #24]
+ 80004ee: 2311 movs r3, #17
+ 80004f0: 61bb str r3, [r7, #24]
Timing.AccessMode = FSMC_ACCESS_MODE_A;
- 80004d6: 2300 movs r3, #0
- 80004d8: 61fb str r3, [r7, #28]
+ 80004f2: 2300 movs r3, #0
+ 80004f4: 61fb str r3, [r7, #28]
/* ExtTiming */
if (HAL_SRAM_Init(&hsram1, &Timing, NULL) != HAL_OK)
- 80004da: 1d3b adds r3, r7, #4
- 80004dc: 2200 movs r2, #0
- 80004de: 4619 mov r1, r3
- 80004e0: 4808 ldr r0, [pc, #32] ; (8000504 )
- 80004e2: f001 fdc1 bl 8002068
- 80004e6: 4603 mov r3, r0
- 80004e8: 2b00 cmp r3, #0
- 80004ea: d001 beq.n 80004f0
+ 80004f6: 1d3b adds r3, r7, #4
+ 80004f8: 2200 movs r2, #0
+ 80004fa: 4619 mov r1, r3
+ 80004fc: 4808 ldr r0, [pc, #32] ; (8000520 )
+ 80004fe: f001 fe0f bl 8002120
+ 8000502: 4603 mov r3, r0
+ 8000504: 2b00 cmp r3, #0
+ 8000506: d001 beq.n 800050c
{
Error_Handler( );
- 80004ec: f000 f810 bl 8000510
+ 8000508: f000 f810 bl 800052c
}
/** Disconnect NADV
*/
__HAL_AFIO_FSMCNADV_DISCONNECTED();
- 80004f0: 4b06 ldr r3, [pc, #24] ; (800050c )
- 80004f2: 69db ldr r3, [r3, #28]
- 80004f4: 4a05 ldr r2, [pc, #20] ; (800050c )
- 80004f6: f443 6380 orr.w r3, r3, #1024 ; 0x400
- 80004fa: 61d3 str r3, [r2, #28]
+ 800050c: 4b06 ldr r3, [pc, #24] ; (8000528 )
+ 800050e: 69db ldr r3, [r3, #28]
+ 8000510: 4a05 ldr r2, [pc, #20] ; (8000528 )
+ 8000512: f443 6380 orr.w r3, r3, #1024 ; 0x400
+ 8000516: 61d3 str r3, [r2, #28]
/* USER CODE BEGIN FSMC_Init 2 */
/* USER CODE END FSMC_Init 2 */
}
- 80004fc: bf00 nop
- 80004fe: 3720 adds r7, #32
- 8000500: 46bd mov sp, r7
- 8000502: bd80 pop {r7, pc}
- 8000504: 200000cc .word 0x200000cc
- 8000508: a0000104 .word 0xa0000104
- 800050c: 40010000 .word 0x40010000
+ 8000518: bf00 nop
+ 800051a: 3720 adds r7, #32
+ 800051c: 46bd mov sp, r7
+ 800051e: bd80 pop {r7, pc}
+ 8000520: 2000013c .word 0x2000013c
+ 8000524: a0000104 .word 0xa0000104
+ 8000528: 40010000 .word 0x40010000
-08000510 :
+0800052c :
/**
* @brief This function is executed in case of error occurrence.
* @retval None
*/
void Error_Handler(void)
{
- 8000510: b480 push {r7}
- 8000512: af00 add r7, sp, #0
+ 800052c: b480 push {r7}
+ 800052e: af00 add r7, sp, #0
\details Disables IRQ interrupts by setting the I-bit in the CPSR.
Can only be executed in Privileged modes.
*/
__STATIC_FORCEINLINE void __disable_irq(void)
{
__ASM volatile ("cpsid i" : : : "memory");
- 8000514: b672 cpsid i
+ 8000530: b672 cpsid i
}
- 8000516: bf00 nop
+ 8000532: bf00 nop
/* USER CODE BEGIN Error_Handler_Debug */
/* User can add his own implementation to report the HAL error return state */
__disable_irq();
while (1)
- 8000518: e7fe b.n 8000518
+ 8000534: e7fe b.n 8000534
...
-0800051c :
+08000538 :
/* USER CODE END 0 */
/**
* Initializes the Global MSP.
*/
void HAL_MspInit(void)
{
- 800051c: b480 push {r7}
- 800051e: b085 sub sp, #20
- 8000520: af00 add r7, sp, #0
+ 8000538: b480 push {r7}
+ 800053a: b085 sub sp, #20
+ 800053c: af00 add r7, sp, #0
/* USER CODE BEGIN MspInit 0 */
/* USER CODE END MspInit 0 */
__HAL_RCC_AFIO_CLK_ENABLE();
- 8000522: 4b15 ldr r3, [pc, #84] ; (8000578 )
- 8000524: 699b ldr r3, [r3, #24]
- 8000526: 4a14 ldr r2, [pc, #80] ; (8000578 )
- 8000528: f043 0301 orr.w r3, r3, #1
- 800052c: 6193 str r3, [r2, #24]
- 800052e: 4b12 ldr r3, [pc, #72] ; (8000578 )
- 8000530: 699b ldr r3, [r3, #24]
- 8000532: f003 0301 and.w r3, r3, #1
- 8000536: 60bb str r3, [r7, #8]
- 8000538: 68bb ldr r3, [r7, #8]
+ 800053e: 4b15 ldr r3, [pc, #84] ; (8000594 )
+ 8000540: 699b ldr r3, [r3, #24]
+ 8000542: 4a14 ldr r2, [pc, #80] ; (8000594 )
+ 8000544: f043 0301 orr.w r3, r3, #1
+ 8000548: 6193 str r3, [r2, #24]
+ 800054a: 4b12 ldr r3, [pc, #72] ; (8000594 )
+ 800054c: 699b ldr r3, [r3, #24]
+ 800054e: f003 0301 and.w r3, r3, #1
+ 8000552: 60bb str r3, [r7, #8]
+ 8000554: 68bb ldr r3, [r7, #8]
__HAL_RCC_PWR_CLK_ENABLE();
- 800053a: 4b0f ldr r3, [pc, #60] ; (8000578 )
- 800053c: 69db ldr r3, [r3, #28]
- 800053e: 4a0e ldr r2, [pc, #56] ; (8000578 )
- 8000540: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
- 8000544: 61d3 str r3, [r2, #28]
- 8000546: 4b0c ldr r3, [pc, #48] ; (8000578 )
- 8000548: 69db ldr r3, [r3, #28]
- 800054a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
- 800054e: 607b str r3, [r7, #4]
- 8000550: 687b ldr r3, [r7, #4]
+ 8000556: 4b0f ldr r3, [pc, #60] ; (8000594 )
+ 8000558: 69db ldr r3, [r3, #28]
+ 800055a: 4a0e ldr r2, [pc, #56] ; (8000594 )
+ 800055c: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
+ 8000560: 61d3 str r3, [r2, #28]
+ 8000562: 4b0c ldr r3, [pc, #48] ; (8000594 )
+ 8000564: 69db ldr r3, [r3, #28]
+ 8000566: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
+ 800056a: 607b str r3, [r7, #4]
+ 800056c: 687b ldr r3, [r7, #4]
/* System interrupt init*/
/** NOJTAG: JTAG-DP Disabled and SW-DP Enabled
*/
__HAL_AFIO_REMAP_SWJ_NOJTAG();
- 8000552: 4b0a ldr r3, [pc, #40] ; (800057c )
- 8000554: 685b ldr r3, [r3, #4]
- 8000556: 60fb str r3, [r7, #12]
- 8000558: 68fb ldr r3, [r7, #12]
- 800055a: f023 63e0 bic.w r3, r3, #117440512 ; 0x7000000
- 800055e: 60fb str r3, [r7, #12]
- 8000560: 68fb ldr r3, [r7, #12]
- 8000562: f043 7300 orr.w r3, r3, #33554432 ; 0x2000000
- 8000566: 60fb str r3, [r7, #12]
- 8000568: 4a04 ldr r2, [pc, #16] ; (800057c )
- 800056a: 68fb ldr r3, [r7, #12]
- 800056c: 6053 str r3, [r2, #4]
+ 800056e: 4b0a ldr r3, [pc, #40] ; (8000598 )
+ 8000570: 685b ldr r3, [r3, #4]
+ 8000572: 60fb str r3, [r7, #12]
+ 8000574: 68fb ldr r3, [r7, #12]
+ 8000576: f023 63e0 bic.w r3, r3, #117440512 ; 0x7000000
+ 800057a: 60fb str r3, [r7, #12]
+ 800057c: 68fb ldr r3, [r7, #12]
+ 800057e: f043 7300 orr.w r3, r3, #33554432 ; 0x2000000
+ 8000582: 60fb str r3, [r7, #12]
+ 8000584: 4a04 ldr r2, [pc, #16] ; (8000598 )
+ 8000586: 68fb ldr r3, [r7, #12]
+ 8000588: 6053 str r3, [r2, #4]
/* USER CODE BEGIN MspInit 1 */
/* USER CODE END MspInit 1 */
}
- 800056e: bf00 nop
- 8000570: 3714 adds r7, #20
- 8000572: 46bd mov sp, r7
- 8000574: bc80 pop {r7}
- 8000576: 4770 bx lr
- 8000578: 40021000 .word 0x40021000
- 800057c: 40010000 .word 0x40010000
+ 800058a: bf00 nop
+ 800058c: 3714 adds r7, #20
+ 800058e: 46bd mov sp, r7
+ 8000590: bc80 pop {r7}
+ 8000592: 4770 bx lr
+ 8000594: 40021000 .word 0x40021000
+ 8000598: 40010000 .word 0x40010000
-08000580 :
+0800059c :
* This function configures the hardware resources used in this example
* @param hspi: SPI handle pointer
* @retval None
*/
void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
{
- 8000580: b580 push {r7, lr}
- 8000582: b088 sub sp, #32
- 8000584: af00 add r7, sp, #0
- 8000586: 6078 str r0, [r7, #4]
+ 800059c: b580 push {r7, lr}
+ 800059e: b088 sub sp, #32
+ 80005a0: af00 add r7, sp, #0
+ 80005a2: 6078 str r0, [r7, #4]
GPIO_InitTypeDef GPIO_InitStruct = {0};
- 8000588: f107 0310 add.w r3, r7, #16
- 800058c: 2200 movs r2, #0
- 800058e: 601a str r2, [r3, #0]
- 8000590: 605a str r2, [r3, #4]
- 8000592: 609a str r2, [r3, #8]
- 8000594: 60da str r2, [r3, #12]
+ 80005a4: f107 0310 add.w r3, r7, #16
+ 80005a8: 2200 movs r2, #0
+ 80005aa: 601a str r2, [r3, #0]
+ 80005ac: 605a str r2, [r3, #4]
+ 80005ae: 609a str r2, [r3, #8]
+ 80005b0: 60da str r2, [r3, #12]
if(hspi->Instance==SPI2)
- 8000596: 687b ldr r3, [r7, #4]
- 8000598: 681b ldr r3, [r3, #0]
- 800059a: 4a1c ldr r2, [pc, #112] ; (800060c )
- 800059c: 4293 cmp r3, r2
- 800059e: d131 bne.n 8000604
+ 80005b2: 687b ldr r3, [r7, #4]
+ 80005b4: 681b ldr r3, [r3, #0]
+ 80005b6: 4a1c ldr r2, [pc, #112] ; (8000628 )
+ 80005b8: 4293 cmp r3, r2
+ 80005ba: d131 bne.n 8000620
{
/* USER CODE BEGIN SPI2_MspInit 0 */
/* USER CODE END SPI2_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_SPI2_CLK_ENABLE();
- 80005a0: 4b1b ldr r3, [pc, #108] ; (8000610 )
- 80005a2: 69db ldr r3, [r3, #28]
- 80005a4: 4a1a ldr r2, [pc, #104] ; (8000610 )
- 80005a6: f443 4380 orr.w r3, r3, #16384 ; 0x4000
- 80005aa: 61d3 str r3, [r2, #28]
- 80005ac: 4b18 ldr r3, [pc, #96] ; (8000610 )
- 80005ae: 69db ldr r3, [r3, #28]
- 80005b0: f403 4380 and.w r3, r3, #16384 ; 0x4000
- 80005b4: 60fb str r3, [r7, #12]
- 80005b6: 68fb ldr r3, [r7, #12]
+ 80005bc: 4b1b ldr r3, [pc, #108] ; (800062c )
+ 80005be: 69db ldr r3, [r3, #28]
+ 80005c0: 4a1a ldr r2, [pc, #104] ; (800062c )
+ 80005c2: f443 4380 orr.w r3, r3, #16384 ; 0x4000
+ 80005c6: 61d3 str r3, [r2, #28]
+ 80005c8: 4b18 ldr r3, [pc, #96] ; (800062c )
+ 80005ca: 69db ldr r3, [r3, #28]
+ 80005cc: f403 4380 and.w r3, r3, #16384 ; 0x4000
+ 80005d0: 60fb str r3, [r7, #12]
+ 80005d2: 68fb ldr r3, [r7, #12]
__HAL_RCC_GPIOB_CLK_ENABLE();
- 80005b8: 4b15 ldr r3, [pc, #84] ; (8000610 )
- 80005ba: 699b ldr r3, [r3, #24]
- 80005bc: 4a14 ldr r2, [pc, #80] ; (8000610 )
- 80005be: f043 0308 orr.w r3, r3, #8
- 80005c2: 6193 str r3, [r2, #24]
- 80005c4: 4b12 ldr r3, [pc, #72] ; (8000610 )
- 80005c6: 699b ldr r3, [r3, #24]
- 80005c8: f003 0308 and.w r3, r3, #8
- 80005cc: 60bb str r3, [r7, #8]
- 80005ce: 68bb ldr r3, [r7, #8]
+ 80005d4: 4b15 ldr r3, [pc, #84] ; (800062c )
+ 80005d6: 699b ldr r3, [r3, #24]
+ 80005d8: 4a14 ldr r2, [pc, #80] ; (800062c )
+ 80005da: f043 0308 orr.w r3, r3, #8
+ 80005de: 6193 str r3, [r2, #24]
+ 80005e0: 4b12 ldr r3, [pc, #72] ; (800062c )
+ 80005e2: 699b ldr r3, [r3, #24]
+ 80005e4: f003 0308 and.w r3, r3, #8
+ 80005e8: 60bb str r3, [r7, #8]
+ 80005ea: 68bb ldr r3, [r7, #8]
/**SPI2 GPIO Configuration
PB13 ------> SPI2_SCK
PB14 ------> SPI2_MISO
PB15 ------> SPI2_MOSI
*/
GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_15;
- 80005d0: f44f 4320 mov.w r3, #40960 ; 0xa000
- 80005d4: 613b str r3, [r7, #16]
+ 80005ec: f44f 4320 mov.w r3, #40960 ; 0xa000
+ 80005f0: 613b str r3, [r7, #16]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
- 80005d6: 2302 movs r3, #2
- 80005d8: 617b str r3, [r7, #20]
+ 80005f2: 2302 movs r3, #2
+ 80005f4: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
- 80005da: 2303 movs r3, #3
- 80005dc: 61fb str r3, [r7, #28]
+ 80005f6: 2303 movs r3, #3
+ 80005f8: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
- 80005de: f107 0310 add.w r3, r7, #16
- 80005e2: 4619 mov r1, r3
- 80005e4: 480b ldr r0, [pc, #44] ; (8000614 )
- 80005e6: f000 fa33 bl 8000a50
+ 80005fa: f107 0310 add.w r3, r7, #16
+ 80005fe: 4619 mov r1, r3
+ 8000600: 480b ldr r0, [pc, #44] ; (8000630 )
+ 8000602: f000 fa69 bl 8000ad8
GPIO_InitStruct.Pin = GPIO_PIN_14;
- 80005ea: f44f 4380 mov.w r3, #16384 ; 0x4000
- 80005ee: 613b str r3, [r7, #16]
+ 8000606: f44f 4380 mov.w r3, #16384 ; 0x4000
+ 800060a: 613b str r3, [r7, #16]
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
- 80005f0: 2300 movs r3, #0
- 80005f2: 617b str r3, [r7, #20]
+ 800060c: 2300 movs r3, #0
+ 800060e: 617b str r3, [r7, #20]
GPIO_InitStruct.Pull = GPIO_NOPULL;
- 80005f4: 2300 movs r3, #0
- 80005f6: 61bb str r3, [r7, #24]
+ 8000610: 2300 movs r3, #0
+ 8000612: 61bb str r3, [r7, #24]
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
- 80005f8: f107 0310 add.w r3, r7, #16
- 80005fc: 4619 mov r1, r3
- 80005fe: 4805 ldr r0, [pc, #20] ; (8000614 )
- 8000600: f000 fa26 bl 8000a50
+ 8000614: f107 0310 add.w r3, r7, #16
+ 8000618: 4619 mov r1, r3
+ 800061a: 4805 ldr r0, [pc, #20] ; (8000630 )
+ 800061c: f000 fa5c bl 8000ad8
/* USER CODE BEGIN SPI2_MspInit 1 */
/* USER CODE END SPI2_MspInit 1 */
}
}
- 8000604: bf00 nop
- 8000606: 3720 adds r7, #32
- 8000608: 46bd mov sp, r7
- 800060a: bd80 pop {r7, pc}
- 800060c: 40003800 .word 0x40003800
- 8000610: 40021000 .word 0x40021000
- 8000614: 40010c00 .word 0x40010c00
+ 8000620: bf00 nop
+ 8000622: 3720 adds r7, #32
+ 8000624: 46bd mov sp, r7
+ 8000626: bd80 pop {r7, pc}
+ 8000628: 40003800 .word 0x40003800
+ 800062c: 40021000 .word 0x40021000
+ 8000630: 40010c00 .word 0x40010c00
-08000618 :
+08000634 :
}
static uint32_t FSMC_Initialized = 0;
static void HAL_FSMC_MspInit(void){
- 8000618: b580 push {r7, lr}
- 800061a: b086 sub sp, #24
- 800061c: af00 add r7, sp, #0
+ 8000634: b580 push {r7, lr}
+ 8000636: b086 sub sp, #24
+ 8000638: af00 add r7, sp, #0
/* USER CODE BEGIN FSMC_MspInit 0 */
/* USER CODE END FSMC_MspInit 0 */
GPIO_InitTypeDef GPIO_InitStruct ={0};
- 800061e: f107 0308 add.w r3, r7, #8
- 8000622: 2200 movs r2, #0
- 8000624: 601a str r2, [r3, #0]
- 8000626: 605a str r2, [r3, #4]
- 8000628: 609a str r2, [r3, #8]
- 800062a: 60da str r2, [r3, #12]
+ 800063a: f107 0308 add.w r3, r7, #8
+ 800063e: 2200 movs r2, #0
+ 8000640: 601a str r2, [r3, #0]
+ 8000642: 605a str r2, [r3, #4]
+ 8000644: 609a str r2, [r3, #8]
+ 8000646: 60da str r2, [r3, #12]
if (FSMC_Initialized) {
- 800062c: 4b1f ldr r3, [pc, #124] ; (80006ac )
- 800062e: 681b ldr r3, [r3, #0]
- 8000630: 2b00 cmp r3, #0
- 8000632: d136 bne.n 80006a2
+ 8000648: 4b1f ldr r3, [pc, #124] ; (80006c8 )
+ 800064a: 681b ldr r3, [r3, #0]
+ 800064c: 2b00 cmp r3, #0
+ 800064e: d136 bne.n 80006be
return;
}
FSMC_Initialized = 1;
- 8000634: 4b1d ldr r3, [pc, #116] ; (80006ac )
- 8000636: 2201 movs r2, #1
- 8000638: 601a str r2, [r3, #0]
+ 8000650: 4b1d ldr r3, [pc, #116] ; (80006c8 )
+ 8000652: 2201 movs r2, #1
+ 8000654: 601a str r2, [r3, #0]
/* Peripheral clock enable */
__HAL_RCC_FSMC_CLK_ENABLE();
- 800063a: 4b1d ldr r3, [pc, #116] ; (80006b0 )
- 800063c: 695b ldr r3, [r3, #20]
- 800063e: 4a1c ldr r2, [pc, #112] ; (80006b0 )
- 8000640: f443 7380 orr.w r3, r3, #256 ; 0x100
- 8000644: 6153 str r3, [r2, #20]
- 8000646: 4b1a ldr r3, [pc, #104] ; (80006b0 )
- 8000648: 695b ldr r3, [r3, #20]
- 800064a: f403 7380 and.w r3, r3, #256 ; 0x100
- 800064e: 607b str r3, [r7, #4]
- 8000650: 687b ldr r3, [r7, #4]
+ 8000656: 4b1d ldr r3, [pc, #116] ; (80006cc )
+ 8000658: 695b ldr r3, [r3, #20]
+ 800065a: 4a1c ldr r2, [pc, #112] ; (80006cc )
+ 800065c: f443 7380 orr.w r3, r3, #256 ; 0x100
+ 8000660: 6153 str r3, [r2, #20]
+ 8000662: 4b1a ldr r3, [pc, #104] ; (80006cc )
+ 8000664: 695b ldr r3, [r3, #20]
+ 8000666: f403 7380 and.w r3, r3, #256 ; 0x100
+ 800066a: 607b str r3, [r7, #4]
+ 800066c: 687b ldr r3, [r7, #4]
PD1 ------> FSMC_D3
PD4 ------> FSMC_NOE
PD5 ------> FSMC_NWE
PG12 ------> FSMC_NE4
*/
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_12;
- 8000652: f241 0301 movw r3, #4097 ; 0x1001
- 8000656: 60bb str r3, [r7, #8]
+ 800066e: f241 0301 movw r3, #4097 ; 0x1001
+ 8000672: 60bb str r3, [r7, #8]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
- 8000658: 2302 movs r3, #2
- 800065a: 60fb str r3, [r7, #12]
+ 8000674: 2302 movs r3, #2
+ 8000676: 60fb str r3, [r7, #12]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
- 800065c: 2303 movs r3, #3
- 800065e: 617b str r3, [r7, #20]
+ 8000678: 2303 movs r3, #3
+ 800067a: 617b str r3, [r7, #20]
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
- 8000660: f107 0308 add.w r3, r7, #8
- 8000664: 4619 mov r1, r3
- 8000666: 4813 ldr r0, [pc, #76] ; (80006b4 )
- 8000668: f000 f9f2 bl 8000a50
+ 800067c: f107 0308 add.w r3, r7, #8
+ 8000680: 4619 mov r1, r3
+ 8000682: 4813 ldr r0, [pc, #76] ; (80006d0 )
+ 8000684: f000 fa28 bl 8000ad8
GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10
- 800066c: f64f 7380 movw r3, #65408 ; 0xff80
- 8000670: 60bb str r3, [r7, #8]
+ 8000688: f64f 7380 movw r3, #65408 ; 0xff80
+ 800068c: 60bb str r3, [r7, #8]
|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14
|GPIO_PIN_15;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
- 8000672: 2302 movs r3, #2
- 8000674: 60fb str r3, [r7, #12]
+ 800068e: 2302 movs r3, #2
+ 8000690: 60fb str r3, [r7, #12]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
- 8000676: 2303 movs r3, #3
- 8000678: 617b str r3, [r7, #20]
+ 8000692: 2303 movs r3, #3
+ 8000694: 617b str r3, [r7, #20]
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
- 800067a: f107 0308 add.w r3, r7, #8
- 800067e: 4619 mov r1, r3
- 8000680: 480d ldr r0, [pc, #52] ; (80006b8 )
- 8000682: f000 f9e5 bl 8000a50
+ 8000696: f107 0308 add.w r3, r7, #8
+ 800069a: 4619 mov r1, r3
+ 800069c: 480d ldr r0, [pc, #52] ; (80006d4 )
+ 800069e: f000 fa1b bl 8000ad8
GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_14
- 8000686: f24c 7333 movw r3, #50995 ; 0xc733
- 800068a: 60bb str r3, [r7, #8]
+ 80006a2: f24c 7333 movw r3, #50995 ; 0xc733
+ 80006a6: 60bb str r3, [r7, #8]
|GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4
|GPIO_PIN_5;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
- 800068c: 2302 movs r3, #2
- 800068e: 60fb str r3, [r7, #12]
+ 80006a8: 2302 movs r3, #2
+ 80006aa: 60fb str r3, [r7, #12]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
- 8000690: 2303 movs r3, #3
- 8000692: 617b str r3, [r7, #20]
+ 80006ac: 2303 movs r3, #3
+ 80006ae: 617b str r3, [r7, #20]
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
- 8000694: f107 0308 add.w r3, r7, #8
- 8000698: 4619 mov r1, r3
- 800069a: 4808 ldr r0, [pc, #32] ; (80006bc )
- 800069c: f000 f9d8 bl 8000a50
- 80006a0: e000 b.n 80006a4
+ 80006b0: f107 0308 add.w r3, r7, #8
+ 80006b4: 4619 mov r1, r3
+ 80006b6: 4808 ldr r0, [pc, #32] ; (80006d8 )
+ 80006b8: f000 fa0e bl 8000ad8
+ 80006bc: e000 b.n 80006c0
return;
- 80006a2: bf00 nop
+ 80006be: bf00 nop
/* USER CODE BEGIN FSMC_MspInit 1 */
/* USER CODE END FSMC_MspInit 1 */
}
- 80006a4: 3718 adds r7, #24
- 80006a6: 46bd mov sp, r7
- 80006a8: bd80 pop {r7, pc}
- 80006aa: bf00 nop
- 80006ac: 20000040 .word 0x20000040
- 80006b0: 40021000 .word 0x40021000
- 80006b4: 40012000 .word 0x40012000
- 80006b8: 40011800 .word 0x40011800
- 80006bc: 40011400 .word 0x40011400
+ 80006c0: 3718 adds r7, #24
+ 80006c2: 46bd mov sp, r7
+ 80006c4: bd80 pop {r7, pc}
+ 80006c6: bf00 nop
+ 80006c8: 200000a4 .word 0x200000a4
+ 80006cc: 40021000 .word 0x40021000
+ 80006d0: 40012000 .word 0x40012000
+ 80006d4: 40011800 .word 0x40011800
+ 80006d8: 40011400 .word 0x40011400
-080006c0 :
+080006dc :
void HAL_SRAM_MspInit(SRAM_HandleTypeDef* hsram){
- 80006c0: b580 push {r7, lr}
- 80006c2: b082 sub sp, #8
- 80006c4: af00 add r7, sp, #0
- 80006c6: 6078 str r0, [r7, #4]
+ 80006dc: b580 push {r7, lr}
+ 80006de: b082 sub sp, #8
+ 80006e0: af00 add r7, sp, #0
+ 80006e2: 6078 str r0, [r7, #4]
/* USER CODE BEGIN SRAM_MspInit 0 */
/* USER CODE END SRAM_MspInit 0 */
HAL_FSMC_MspInit();
- 80006c8: f7ff ffa6 bl 8000618
+ 80006e4: f7ff ffa6 bl 8000634
/* USER CODE BEGIN SRAM_MspInit 1 */
/* USER CODE END SRAM_MspInit 1 */
}
- 80006cc: bf00 nop
- 80006ce: 3708 adds r7, #8
- 80006d0: 46bd mov sp, r7
- 80006d2: bd80 pop {r7, pc}
+ 80006e8: bf00 nop
+ 80006ea: 3708 adds r7, #8
+ 80006ec: 46bd mov sp, r7
+ 80006ee: bd80 pop {r7, pc}
-080006d4 :
+080006f0 :
/******************************************************************************/
/**
* @brief This function handles Non maskable interrupt.
*/
void NMI_Handler(void)
{
- 80006d4: b480 push {r7}
- 80006d6: af00 add r7, sp, #0
+ 80006f0: b480 push {r7}
+ 80006f2: af00 add r7, sp, #0
/* USER CODE BEGIN NonMaskableInt_IRQn 0 */
/* USER CODE END NonMaskableInt_IRQn 0 */
/* USER CODE BEGIN NonMaskableInt_IRQn 1 */
while (1)
- 80006d8: e7fe b.n 80006d8
+ 80006f4: e7fe b.n 80006f4
-080006da :
+080006f6 :
/**
* @brief This function handles Hard fault interrupt.
*/
void HardFault_Handler(void)
{
- 80006da: b480 push {r7}
- 80006dc: af00 add r7, sp, #0
+ 80006f6: b480 push {r7}
+ 80006f8: af00 add r7, sp, #0
/* USER CODE BEGIN HardFault_IRQn 0 */
/* USER CODE END HardFault_IRQn 0 */
while (1)
- 80006de: e7fe b.n 80006de
+ 80006fa: e7fe b.n 80006fa
-080006e0 :
+080006fc :
/**
* @brief This function handles Memory management fault.
*/
void MemManage_Handler(void)
{
- 80006e0: b480 push {r7}
- 80006e2: af00 add r7, sp, #0
+ 80006fc: b480 push {r7}
+ 80006fe: af00 add r7, sp, #0
/* USER CODE BEGIN MemoryManagement_IRQn 0 */
/* USER CODE END MemoryManagement_IRQn 0 */
while (1)
- 80006e4: e7fe b.n 80006e4
+ 8000700: e7fe b.n 8000700
-080006e6 :
+08000702 :
/**
* @brief This function handles Prefetch fault, memory access fault.
*/
void BusFault_Handler(void)
{
- 80006e6: b480 push {r7}
- 80006e8: af00 add r7, sp, #0
+ 8000702: b480 push {r7}
+ 8000704: af00 add r7, sp, #0
/* USER CODE BEGIN BusFault_IRQn 0 */
/* USER CODE END BusFault_IRQn 0 */
while (1)
- 80006ea: e7fe b.n 80006ea
+ 8000706: e7fe b.n 8000706
-080006ec :
+08000708 :
/**
* @brief This function handles Undefined instruction or illegal state.
*/
void UsageFault_Handler(void)
{
- 80006ec: b480 push {r7}
- 80006ee: af00 add r7, sp, #0
+ 8000708: b480 push {r7}
+ 800070a: af00 add r7, sp, #0
/* USER CODE BEGIN UsageFault_IRQn 0 */
/* USER CODE END UsageFault_IRQn 0 */
while (1)
- 80006f0: e7fe b.n 80006f0
+ 800070c: e7fe b.n 800070c
-080006f2 :
+0800070e :
/**
* @brief This function handles System service call via SWI instruction.
*/
void SVC_Handler(void)
{
- 80006f2: b480 push {r7}
- 80006f4: af00 add r7, sp, #0
+ 800070e: b480 push {r7}
+ 8000710: af00 add r7, sp, #0
/* USER CODE END SVCall_IRQn 0 */
/* USER CODE BEGIN SVCall_IRQn 1 */
/* USER CODE END SVCall_IRQn 1 */
}
- 80006f6: bf00 nop
- 80006f8: 46bd mov sp, r7
- 80006fa: bc80 pop {r7}
- 80006fc: 4770 bx lr
+ 8000712: bf00 nop
+ 8000714: 46bd mov sp, r7
+ 8000716: bc80 pop {r7}
+ 8000718: 4770 bx lr
-080006fe :
+0800071a :
/**
* @brief This function handles Debug monitor.
*/
void DebugMon_Handler(void)
{
- 80006fe: b480 push {r7}
- 8000700: af00 add r7, sp, #0
+ 800071a: b480 push {r7}
+ 800071c: af00 add r7, sp, #0
/* USER CODE END DebugMonitor_IRQn 0 */
/* USER CODE BEGIN DebugMonitor_IRQn 1 */
/* USER CODE END DebugMonitor_IRQn 1 */
}
- 8000702: bf00 nop
- 8000704: 46bd mov sp, r7
- 8000706: bc80 pop {r7}
- 8000708: 4770 bx lr
+ 800071e: bf00 nop
+ 8000720: 46bd mov sp, r7
+ 8000722: bc80 pop {r7}
+ 8000724: 4770 bx lr
-0800070a :
+08000726 :
/**
* @brief This function handles Pendable request for system service.
*/
void PendSV_Handler(void)
{
- 800070a: b480 push {r7}
- 800070c: af00 add r7, sp, #0
+ 8000726: b480 push {r7}
+ 8000728: af00 add r7, sp, #0
/* USER CODE END PendSV_IRQn 0 */
/* USER CODE BEGIN PendSV_IRQn 1 */
/* USER CODE END PendSV_IRQn 1 */
}
- 800070e: bf00 nop
- 8000710: 46bd mov sp, r7
- 8000712: bc80 pop {r7}
- 8000714: 4770 bx lr
+ 800072a: bf00 nop
+ 800072c: 46bd mov sp, r7
+ 800072e: bc80 pop {r7}
+ 8000730: 4770 bx lr
-08000716 :
+08000732 :
/**
* @brief This function handles System tick timer.
*/
void SysTick_Handler(void)
{
- 8000716: b580 push {r7, lr}
- 8000718: af00 add r7, sp, #0
+ 8000732: b580 push {r7, lr}
+ 8000734: af00 add r7, sp, #0
/* USER CODE BEGIN SysTick_IRQn 0 */
/* USER CODE END SysTick_IRQn 0 */
HAL_IncTick();
- 800071a: f000 f875 bl 8000808
+ 8000736: f000 f8ab bl 8000890
/* USER CODE BEGIN SysTick_IRQn 1 */
/* USER CODE END SysTick_IRQn 1 */
}
- 800071e: bf00 nop
- 8000720: bd80 pop {r7, pc}
+ 800073a: bf00 nop
+ 800073c: bd80 pop {r7, pc}
+ ...
-08000722 :
+08000740 <_sbrk>:
+ *
+ * @param incr Memory size
+ * @return Pointer to allocated memory
+ */
+void *_sbrk(ptrdiff_t incr)
+{
+ 8000740: b580 push {r7, lr}
+ 8000742: b086 sub sp, #24
+ 8000744: af00 add r7, sp, #0
+ 8000746: 6078 str r0, [r7, #4]
+ extern uint8_t _end; /* Symbol defined in the linker script */
+ extern uint8_t _estack; /* Symbol defined in the linker script */
+ extern uint32_t _Min_Stack_Size; /* Symbol defined in the linker script */
+ const uint32_t stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size;
+ 8000748: 4a14 ldr r2, [pc, #80] ; (800079c <_sbrk+0x5c>)
+ 800074a: 4b15 ldr r3, [pc, #84] ; (80007a0 <_sbrk+0x60>)
+ 800074c: 1ad3 subs r3, r2, r3
+ 800074e: 617b str r3, [r7, #20]
+ const uint8_t *max_heap = (uint8_t *)stack_limit;
+ 8000750: 697b ldr r3, [r7, #20]
+ 8000752: 613b str r3, [r7, #16]
+ uint8_t *prev_heap_end;
+
+ /* Initialize heap end at first call */
+ if (NULL == __sbrk_heap_end)
+ 8000754: 4b13 ldr r3, [pc, #76] ; (80007a4 <_sbrk+0x64>)
+ 8000756: 681b ldr r3, [r3, #0]
+ 8000758: 2b00 cmp r3, #0
+ 800075a: d102 bne.n 8000762 <_sbrk+0x22>
+ {
+ __sbrk_heap_end = &_end;
+ 800075c: 4b11 ldr r3, [pc, #68] ; (80007a4 <_sbrk+0x64>)
+ 800075e: 4a12 ldr r2, [pc, #72] ; (80007a8 <_sbrk+0x68>)
+ 8000760: 601a str r2, [r3, #0]
+ }
+
+ /* Protect heap from growing into the reserved MSP stack */
+ if (__sbrk_heap_end + incr > max_heap)
+ 8000762: 4b10 ldr r3, [pc, #64] ; (80007a4 <_sbrk+0x64>)
+ 8000764: 681a ldr r2, [r3, #0]
+ 8000766: 687b ldr r3, [r7, #4]
+ 8000768: 4413 add r3, r2
+ 800076a: 693a ldr r2, [r7, #16]
+ 800076c: 429a cmp r2, r3
+ 800076e: d207 bcs.n 8000780 <_sbrk+0x40>
+ {
+ errno = ENOMEM;
+ 8000770: f005 fcca bl 8006108 <__errno>
+ 8000774: 4603 mov r3, r0
+ 8000776: 220c movs r2, #12
+ 8000778: 601a str r2, [r3, #0]
+ return (void *)-1;
+ 800077a: f04f 33ff mov.w r3, #4294967295
+ 800077e: e009 b.n 8000794 <_sbrk+0x54>
+ }
+
+ prev_heap_end = __sbrk_heap_end;
+ 8000780: 4b08 ldr r3, [pc, #32] ; (80007a4 <_sbrk+0x64>)
+ 8000782: 681b ldr r3, [r3, #0]
+ 8000784: 60fb str r3, [r7, #12]
+ __sbrk_heap_end += incr;
+ 8000786: 4b07 ldr r3, [pc, #28] ; (80007a4 <_sbrk+0x64>)
+ 8000788: 681a ldr r2, [r3, #0]
+ 800078a: 687b ldr r3, [r7, #4]
+ 800078c: 4413 add r3, r2
+ 800078e: 4a05 ldr r2, [pc, #20] ; (80007a4 <_sbrk+0x64>)
+ 8000790: 6013 str r3, [r2, #0]
+
+ return (void *)prev_heap_end;
+ 8000792: 68fb ldr r3, [r7, #12]
+}
+ 8000794: 4618 mov r0, r3
+ 8000796: 3718 adds r7, #24
+ 8000798: 46bd mov sp, r7
+ 800079a: bd80 pop {r7, pc}
+ 800079c: 20010000 .word 0x20010000
+ 80007a0: 00000800 .word 0x00000800
+ 80007a4: 200000a8 .word 0x200000a8
+ 80007a8: 20000868 .word 0x20000868
+
+080007ac :
* @note This function should be used only after reset.
* @param None
* @retval None
*/
void SystemInit (void)
{
- 8000722: b480 push {r7}
- 8000724: af00 add r7, sp, #0
+ 80007ac: b480 push {r7}
+ 80007ae: af00 add r7, sp, #0
/* Configure the Vector Table location -------------------------------------*/
#if defined(USER_VECT_TAB_ADDRESS)
SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */
#endif /* USER_VECT_TAB_ADDRESS */
}
- 8000726: bf00 nop
- 8000728: 46bd mov sp, r7
- 800072a: bc80 pop {r7}
- 800072c: 4770 bx lr
- ...
+ 80007b0: bf00 nop
+ 80007b2: 46bd mov sp, r7
+ 80007b4: bc80 pop {r7}
+ 80007b6: 4770 bx lr
-08000730 :
+080007b8 :
.weak Reset_Handler
.type Reset_Handler, %function
Reset_Handler:
/* Copy the data segment initializers from flash to SRAM */
movs r1, #0
- 8000730: 2100 movs r1, #0
+ 80007b8: 2100 movs r1, #0
b LoopCopyDataInit
- 8000732: e003 b.n 800073c
+ 80007ba: e003 b.n 80007c4
-08000734 :
+080007bc :
CopyDataInit:
ldr r3, =_sidata
- 8000734: 4b0b ldr r3, [pc, #44] ; (8000764 )
+ 80007bc: 4b0b ldr r3, [pc, #44] ; (80007ec )
ldr r3, [r3, r1]
- 8000736: 585b ldr r3, [r3, r1]
+ 80007be: 585b ldr r3, [r3, r1]
str r3, [r0, r1]
- 8000738: 5043 str r3, [r0, r1]
+ 80007c0: 5043 str r3, [r0, r1]
adds r1, r1, #4
- 800073a: 3104 adds r1, #4
+ 80007c2: 3104 adds r1, #4
-0800073c :
+080007c4