diff --git a/RTC/.settings/language.settings.xml b/RTC/.settings/language.settings.xml
deleted file mode 100644
index 54f19ce..0000000
--- a/RTC/.settings/language.settings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/RTC/Debug/Core/Src/main.d b/RTC/Debug/Core/Src/main.d
deleted file mode 100644
index 4c7ac9d..0000000
--- a/RTC/Debug/Core/Src/main.d
+++ /dev/null
@@ -1,87 +0,0 @@
-Core/Src/main.o: ../Core/Src/main.c ../Core/Inc/main.h \
- ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
- ../Core/Inc/stm32f4xx_hal_conf.h \
- ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
- ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
- ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
- ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
- ../Drivers/CMSIS/Include/core_cm4.h \
- ../Drivers/CMSIS/Include/cmsis_version.h \
- ../Drivers/CMSIS/Include/cmsis_compiler.h \
- ../Drivers/CMSIS/Include/cmsis_gcc.h \
- ../Drivers/CMSIS/Include/mpu_armv7.h \
- ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
- ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
- ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
- ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
- ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
- ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
- ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
- ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
- ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
- ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
- ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
- ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
- ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
- ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
- ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc.h \
- ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc_ex.h \
- ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
-
-../Core/Inc/main.h:
-
-../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
-
-../Core/Inc/stm32f4xx_hal_conf.h:
-
-../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
-
-../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
-
-../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
-
-../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
-
-../Drivers/CMSIS/Include/core_cm4.h:
-
-../Drivers/CMSIS/Include/cmsis_version.h:
-
-../Drivers/CMSIS/Include/cmsis_compiler.h:
-
-../Drivers/CMSIS/Include/cmsis_gcc.h:
-
-../Drivers/CMSIS/Include/mpu_armv7.h:
-
-../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
-
-../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
-
-../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
-
-../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
-
-../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
-
-../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
-
-../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
-
-../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
-
-../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
-
-../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
-
-../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
-
-../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
-
-../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
-
-../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
-
-../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc.h:
-
-../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc_ex.h:
-
-../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/RTC/Debug/Core/Src/main.o b/RTC/Debug/Core/Src/main.o
deleted file mode 100644
index f9c4c17..0000000
Binary files a/RTC/Debug/Core/Src/main.o and /dev/null differ
diff --git a/RTC/Debug/Core/Src/main.su b/RTC/Debug/Core/Src/main.su
deleted file mode 100644
index b6fbf8d..0000000
--- a/RTC/Debug/Core/Src/main.su
+++ /dev/null
@@ -1,15 +0,0 @@
-main.c:81:8:deg_to_rad 32 static
-main.c:92:8:rad_to_deg 32 static
-main.c:103:5:leap_year_check 16 static
-main.c:118:5:calc_day_of_year 40 static
-main.c:174:6:calc_sunrise_sunset 168 static
-main.c:276:6:calc_tomorrows_date 24 static
-main.c:309:6:set_Alarm 24 static
-main.c:330:6:transmit_uart 24 static
-main.c:342:5:main 200 static
-main.c:448:6:SystemClock_Config 104 static
-main.c:501:13:MX_RTC_Init 8 static
-main.c:561:13:MX_USART2_UART_Init 8 static
-main.c:594:13:MX_GPIO_Init 48 static
-main.c:630:6:Error_Handler 4 static,ignoring_inline_asm
-main.c:646:6:HAL_RTC_AlarmAEventCallback 16 static
diff --git a/RTC/Debug/Core/Src/subdir.mk b/RTC/Debug/Core/Src/subdir.mk
deleted file mode 100644
index b142670..0000000
--- a/RTC/Debug/Core/Src/subdir.mk
+++ /dev/null
@@ -1,44 +0,0 @@
-################################################################################
-# Automatically-generated file. Do not edit!
-################################################################################
-
-# Add inputs and outputs from these tool invocations to the build variables
-C_SRCS += \
-../Core/Src/main.c \
-../Core/Src/stm32f4xx_hal_msp.c \
-../Core/Src/stm32f4xx_it.c \
-../Core/Src/syscalls.c \
-../Core/Src/sysmem.c \
-../Core/Src/system_stm32f4xx.c
-
-OBJS += \
-./Core/Src/main.o \
-./Core/Src/stm32f4xx_hal_msp.o \
-./Core/Src/stm32f4xx_it.o \
-./Core/Src/syscalls.o \
-./Core/Src/sysmem.o \
-./Core/Src/system_stm32f4xx.o
-
-C_DEPS += \
-./Core/Src/main.d \
-./Core/Src/stm32f4xx_hal_msp.d \
-./Core/Src/stm32f4xx_it.d \
-./Core/Src/syscalls.d \
-./Core/Src/sysmem.d \
-./Core/Src/system_stm32f4xx.d
-
-
-# Each subdirectory must supply rules for building sources it contributes
-Core/Src/main.o: ../Core/Src/main.c
- arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/main.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
-Core/Src/stm32f4xx_hal_msp.o: ../Core/Src/stm32f4xx_hal_msp.c
- arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/stm32f4xx_hal_msp.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
-Core/Src/stm32f4xx_it.o: ../Core/Src/stm32f4xx_it.c
- arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/stm32f4xx_it.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
-Core/Src/syscalls.o: ../Core/Src/syscalls.c
- arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/syscalls.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
-Core/Src/sysmem.o: ../Core/Src/sysmem.c
- arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/sysmem.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
-Core/Src/system_stm32f4xx.o: ../Core/Src/system_stm32f4xx.c
- arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/system_stm32f4xx.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
-
diff --git a/RTC/Debug/Core/Src/syscalls.d b/RTC/Debug/Core/Src/syscalls.d
deleted file mode 100644
index 8667c70..0000000
--- a/RTC/Debug/Core/Src/syscalls.d
+++ /dev/null
@@ -1 +0,0 @@
-Core/Src/syscalls.o: ../Core/Src/syscalls.c
diff --git a/RTC/Debug/Core/Src/syscalls.o b/RTC/Debug/Core/Src/syscalls.o
deleted file mode 100644
index 0863e90..0000000
Binary files a/RTC/Debug/Core/Src/syscalls.o and /dev/null differ
diff --git a/RTC/Debug/Core/Src/syscalls.su b/RTC/Debug/Core/Src/syscalls.su
deleted file mode 100644
index 492a785..0000000
--- a/RTC/Debug/Core/Src/syscalls.su
+++ /dev/null
@@ -1,18 +0,0 @@
-syscalls.c:48:6:initialise_monitor_handles 4 static
-syscalls.c:52:5:_getpid 4 static
-syscalls.c:57:5:_kill 16 static
-syscalls.c:63:6:_exit 16 static
-syscalls.c:69:27:_read 32 static
-syscalls.c:81:27:_write 32 static
-syscalls.c:92:5:_close 16 static
-syscalls.c:98:5:_fstat 16 static
-syscalls.c:104:5:_isatty 16 static
-syscalls.c:109:5:_lseek 24 static
-syscalls.c:114:5:_open 12 static
-syscalls.c:120:5:_wait 16 static
-syscalls.c:126:5:_unlink 16 static
-syscalls.c:132:5:_times 16 static
-syscalls.c:137:5:_stat 16 static
-syscalls.c:143:5:_link 16 static
-syscalls.c:149:5:_fork 8 static
-syscalls.c:155:5:_execve 24 static
diff --git a/RTC/Debug/Core/Src/sysmem.d b/RTC/Debug/Core/Src/sysmem.d
deleted file mode 100644
index 74fecf9..0000000
--- a/RTC/Debug/Core/Src/sysmem.d
+++ /dev/null
@@ -1 +0,0 @@
-Core/Src/sysmem.o: ../Core/Src/sysmem.c
diff --git a/RTC/Debug/Core/Src/sysmem.o b/RTC/Debug/Core/Src/sysmem.o
deleted file mode 100644
index 3860d6d..0000000
Binary files a/RTC/Debug/Core/Src/sysmem.o and /dev/null differ
diff --git a/RTC/Debug/Core/Src/sysmem.su b/RTC/Debug/Core/Src/sysmem.su
deleted file mode 100644
index 4474c68..0000000
--- a/RTC/Debug/Core/Src/sysmem.su
+++ /dev/null
@@ -1 +0,0 @@
-sysmem.c:54:7:_sbrk 32 static
diff --git a/RTC/Debug/Core/Startup/subdir.mk b/RTC/Debug/Core/Startup/subdir.mk
deleted file mode 100644
index 24f50d1..0000000
--- a/RTC/Debug/Core/Startup/subdir.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-################################################################################
-# Automatically-generated file. Do not edit!
-################################################################################
-
-# Add inputs and outputs from these tool invocations to the build variables
-S_SRCS += \
-../Core/Startup/startup_stm32f401retx.s
-
-OBJS += \
-./Core/Startup/startup_stm32f401retx.o
-
-S_DEPS += \
-./Core/Startup/startup_stm32f401retx.d
-
-
-# Each subdirectory must supply rules for building sources it contributes
-Core/Startup/startup_stm32f401retx.o: ../Core/Startup/startup_stm32f401retx.s
- arm-none-eabi-gcc -mcpu=cortex-m4 -g3 -c -x assembler-with-cpp -MMD -MP -MF"Core/Startup/startup_stm32f401retx.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" "$<"
-
diff --git a/RTC/Debug/RTC.bin b/RTC/Debug/RTC.bin
deleted file mode 100644
index 2a3e1f5..0000000
Binary files a/RTC/Debug/RTC.bin and /dev/null differ
diff --git a/RTC/Debug/RTC.elf b/RTC/Debug/RTC.elf
deleted file mode 100644
index 51eeb78..0000000
Binary files a/RTC/Debug/RTC.elf and /dev/null differ
diff --git a/RTC/Debug/RTC.list b/RTC/Debug/RTC.list
deleted file mode 100644
index 7b73d21..0000000
--- a/RTC/Debug/RTC.list
+++ /dev/null
@@ -1,12180 +0,0 @@
-
-RTC.elf: file format elf32-littlearm
-
-Sections:
-Idx Name Size VMA LMA File off Algn
- 0 .isr_vector 00000194 08000000 08000000 00010000 2**0
- CONTENTS, ALLOC, LOAD, READONLY, DATA
- 1 .text 00005de4 08000198 08000198 00010198 2**3
- CONTENTS, ALLOC, LOAD, READONLY, CODE
- 2 .rodata 00000290 08005f80 08005f80 00015f80 2**3
- CONTENTS, ALLOC, LOAD, READONLY, DATA
- 3 .ARM.extab 00000000 08006210 08006210 00020088 2**0
- CONTENTS
- 4 .ARM 00000008 08006210 08006210 00016210 2**2
- CONTENTS, ALLOC, LOAD, READONLY, DATA
- 5 .preinit_array 00000000 08006218 08006218 00020088 2**0
- CONTENTS, ALLOC, LOAD, DATA
- 6 .init_array 00000004 08006218 08006218 00016218 2**2
- CONTENTS, ALLOC, LOAD, DATA
- 7 .fini_array 00000004 0800621c 0800621c 0001621c 2**2
- CONTENTS, ALLOC, LOAD, DATA
- 8 .data 00000088 20000000 08006220 00020000 2**2
- CONTENTS, ALLOC, LOAD, DATA
- 9 .bss 000000c0 20000088 080062a8 00020088 2**2
- ALLOC
- 10 ._user_heap_stack 00000600 20000148 080062a8 00020148 2**0
- ALLOC
- 11 .ARM.attributes 00000030 00000000 00000000 00020088 2**0
- CONTENTS, READONLY
- 12 .debug_info 000098e6 00000000 00000000 000200b8 2**0
- CONTENTS, READONLY, DEBUGGING
- 13 .debug_abbrev 0000196e 00000000 00000000 0002999e 2**0
- CONTENTS, READONLY, DEBUGGING
- 14 .debug_aranges 00000910 00000000 00000000 0002b310 2**3
- CONTENTS, READONLY, DEBUGGING
- 15 .debug_ranges 00000838 00000000 00000000 0002bc20 2**3
- CONTENTS, READONLY, DEBUGGING
- 16 .debug_macro 00015f3a 00000000 00000000 0002c458 2**0
- CONTENTS, READONLY, DEBUGGING
- 17 .debug_line 00007bf1 00000000 00000000 00042392 2**0
- CONTENTS, READONLY, DEBUGGING
- 18 .debug_str 00089db1 00000000 00000000 00049f83 2**0
- CONTENTS, READONLY, DEBUGGING
- 19 .comment 0000007b 00000000 00000000 000d3d34 2**0
- CONTENTS, READONLY
- 20 .debug_frame 000029c4 00000000 00000000 000d3db0 2**2
- CONTENTS, READONLY, DEBUGGING
-
-Disassembly of section .text:
-
-08000198 <__do_global_dtors_aux>:
- 8000198: b510 push {r4, lr}
- 800019a: 4c05 ldr r4, [pc, #20] ; (80001b0 <__do_global_dtors_aux+0x18>)
- 800019c: 7823 ldrb r3, [r4, #0]
- 800019e: b933 cbnz r3, 80001ae <__do_global_dtors_aux+0x16>
- 80001a0: 4b04 ldr r3, [pc, #16] ; (80001b4 <__do_global_dtors_aux+0x1c>)
- 80001a2: b113 cbz r3, 80001aa <__do_global_dtors_aux+0x12>
- 80001a4: 4804 ldr r0, [pc, #16] ; (80001b8 <__do_global_dtors_aux+0x20>)
- 80001a6: f3af 8000 nop.w
- 80001aa: 2301 movs r3, #1
- 80001ac: 7023 strb r3, [r4, #0]
- 80001ae: bd10 pop {r4, pc}
- 80001b0: 20000088 .word 0x20000088
- 80001b4: 00000000 .word 0x00000000
- 80001b8: 08005f64 .word 0x08005f64
-
-080001bc :
- 80001bc: b508 push {r3, lr}
- 80001be: 4b03 ldr r3, [pc, #12] ; (80001cc )
- 80001c0: b11b cbz r3, 80001ca
- 80001c2: 4903 ldr r1, [pc, #12] ; (80001d0 )
- 80001c4: 4803 ldr r0, [pc, #12] ; (80001d4 )
- 80001c6: f3af 8000 nop.w
- 80001ca: bd08 pop {r3, pc}
- 80001cc: 00000000 .word 0x00000000
- 80001d0: 2000008c .word 0x2000008c
- 80001d4: 08005f64 .word 0x08005f64
-
-080001d8 :
- 80001d8: 4603 mov r3, r0
- 80001da: f813 2b01 ldrb.w r2, [r3], #1
- 80001de: 2a00 cmp r2, #0
- 80001e0: d1fb bne.n 80001da
- 80001e2: 1a18 subs r0, r3, r0
- 80001e4: 3801 subs r0, #1
- 80001e6: 4770 bx lr
-
-080001e8 <__aeabi_drsub>:
- 80001e8: f081 4100 eor.w r1, r1, #2147483648 ; 0x80000000
- 80001ec: e002 b.n 80001f4 <__adddf3>
- 80001ee: bf00 nop
-
-080001f0 <__aeabi_dsub>:
- 80001f0: f083 4300 eor.w r3, r3, #2147483648 ; 0x80000000
-
-080001f4 <__adddf3>:
- 80001f4: b530 push {r4, r5, lr}
- 80001f6: ea4f 0441 mov.w r4, r1, lsl #1
- 80001fa: ea4f 0543 mov.w r5, r3, lsl #1
- 80001fe: ea94 0f05 teq r4, r5
- 8000202: bf08 it eq
- 8000204: ea90 0f02 teqeq r0, r2
- 8000208: bf1f itttt ne
- 800020a: ea54 0c00 orrsne.w ip, r4, r0
- 800020e: ea55 0c02 orrsne.w ip, r5, r2
- 8000212: ea7f 5c64 mvnsne.w ip, r4, asr #21
- 8000216: ea7f 5c65 mvnsne.w ip, r5, asr #21
- 800021a: f000 80e2 beq.w 80003e2 <__adddf3+0x1ee>
- 800021e: ea4f 5454 mov.w r4, r4, lsr #21
- 8000222: ebd4 5555 rsbs r5, r4, r5, lsr #21
- 8000226: bfb8 it lt
- 8000228: 426d neglt r5, r5
- 800022a: dd0c ble.n 8000246 <__adddf3+0x52>
- 800022c: 442c add r4, r5
- 800022e: ea80 0202 eor.w r2, r0, r2
- 8000232: ea81 0303 eor.w r3, r1, r3
- 8000236: ea82 0000 eor.w r0, r2, r0
- 800023a: ea83 0101 eor.w r1, r3, r1
- 800023e: ea80 0202 eor.w r2, r0, r2
- 8000242: ea81 0303 eor.w r3, r1, r3
- 8000246: 2d36 cmp r5, #54 ; 0x36
- 8000248: bf88 it hi
- 800024a: bd30 pophi {r4, r5, pc}
- 800024c: f011 4f00 tst.w r1, #2147483648 ; 0x80000000
- 8000250: ea4f 3101 mov.w r1, r1, lsl #12
- 8000254: f44f 1c80 mov.w ip, #1048576 ; 0x100000
- 8000258: ea4c 3111 orr.w r1, ip, r1, lsr #12
- 800025c: d002 beq.n 8000264 <__adddf3+0x70>
- 800025e: 4240 negs r0, r0
- 8000260: eb61 0141 sbc.w r1, r1, r1, lsl #1
- 8000264: f013 4f00 tst.w r3, #2147483648 ; 0x80000000
- 8000268: ea4f 3303 mov.w r3, r3, lsl #12
- 800026c: ea4c 3313 orr.w r3, ip, r3, lsr #12
- 8000270: d002 beq.n 8000278 <__adddf3+0x84>
- 8000272: 4252 negs r2, r2
- 8000274: eb63 0343 sbc.w r3, r3, r3, lsl #1
- 8000278: ea94 0f05 teq r4, r5
- 800027c: f000 80a7 beq.w 80003ce <__adddf3+0x1da>
- 8000280: f1a4 0401 sub.w r4, r4, #1
- 8000284: f1d5 0e20 rsbs lr, r5, #32
- 8000288: db0d blt.n 80002a6 <__adddf3+0xb2>
- 800028a: fa02 fc0e lsl.w ip, r2, lr
- 800028e: fa22 f205 lsr.w r2, r2, r5
- 8000292: 1880 adds r0, r0, r2
- 8000294: f141 0100 adc.w r1, r1, #0
- 8000298: fa03 f20e lsl.w r2, r3, lr
- 800029c: 1880 adds r0, r0, r2
- 800029e: fa43 f305 asr.w r3, r3, r5
- 80002a2: 4159 adcs r1, r3
- 80002a4: e00e b.n 80002c4 <__adddf3+0xd0>
- 80002a6: f1a5 0520 sub.w r5, r5, #32
- 80002aa: f10e 0e20 add.w lr, lr, #32
- 80002ae: 2a01 cmp r2, #1
- 80002b0: fa03 fc0e lsl.w ip, r3, lr
- 80002b4: bf28 it cs
- 80002b6: f04c 0c02 orrcs.w ip, ip, #2
- 80002ba: fa43 f305 asr.w r3, r3, r5
- 80002be: 18c0 adds r0, r0, r3
- 80002c0: eb51 71e3 adcs.w r1, r1, r3, asr #31
- 80002c4: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000
- 80002c8: d507 bpl.n 80002da <__adddf3+0xe6>
- 80002ca: f04f 0e00 mov.w lr, #0
- 80002ce: f1dc 0c00 rsbs ip, ip, #0
- 80002d2: eb7e 0000 sbcs.w r0, lr, r0
- 80002d6: eb6e 0101 sbc.w r1, lr, r1
- 80002da: f5b1 1f80 cmp.w r1, #1048576 ; 0x100000
- 80002de: d31b bcc.n 8000318 <__adddf3+0x124>
- 80002e0: f5b1 1f00 cmp.w r1, #2097152 ; 0x200000
- 80002e4: d30c bcc.n 8000300 <__adddf3+0x10c>
- 80002e6: 0849 lsrs r1, r1, #1
- 80002e8: ea5f 0030 movs.w r0, r0, rrx
- 80002ec: ea4f 0c3c mov.w ip, ip, rrx
- 80002f0: f104 0401 add.w r4, r4, #1
- 80002f4: ea4f 5244 mov.w r2, r4, lsl #21
- 80002f8: f512 0f80 cmn.w r2, #4194304 ; 0x400000
- 80002fc: f080 809a bcs.w 8000434 <__adddf3+0x240>
- 8000300: f1bc 4f00 cmp.w ip, #2147483648 ; 0x80000000
- 8000304: bf08 it eq
- 8000306: ea5f 0c50 movseq.w ip, r0, lsr #1
- 800030a: f150 0000 adcs.w r0, r0, #0
- 800030e: eb41 5104 adc.w r1, r1, r4, lsl #20
- 8000312: ea41 0105 orr.w r1, r1, r5
- 8000316: bd30 pop {r4, r5, pc}
- 8000318: ea5f 0c4c movs.w ip, ip, lsl #1
- 800031c: 4140 adcs r0, r0
- 800031e: eb41 0101 adc.w r1, r1, r1
- 8000322: f411 1f80 tst.w r1, #1048576 ; 0x100000
- 8000326: f1a4 0401 sub.w r4, r4, #1
- 800032a: d1e9 bne.n 8000300 <__adddf3+0x10c>
- 800032c: f091 0f00 teq r1, #0
- 8000330: bf04 itt eq
- 8000332: 4601 moveq r1, r0
- 8000334: 2000 moveq r0, #0
- 8000336: fab1 f381 clz r3, r1
- 800033a: bf08 it eq
- 800033c: 3320 addeq r3, #32
- 800033e: f1a3 030b sub.w r3, r3, #11
- 8000342: f1b3 0220 subs.w r2, r3, #32
- 8000346: da0c bge.n 8000362 <__adddf3+0x16e>
- 8000348: 320c adds r2, #12
- 800034a: dd08 ble.n 800035e <__adddf3+0x16a>
- 800034c: f102 0c14 add.w ip, r2, #20
- 8000350: f1c2 020c rsb r2, r2, #12
- 8000354: fa01 f00c lsl.w r0, r1, ip
- 8000358: fa21 f102 lsr.w r1, r1, r2
- 800035c: e00c b.n 8000378 <__adddf3+0x184>
- 800035e: f102 0214 add.w r2, r2, #20
- 8000362: bfd8 it le
- 8000364: f1c2 0c20 rsble ip, r2, #32
- 8000368: fa01 f102 lsl.w r1, r1, r2
- 800036c: fa20 fc0c lsr.w ip, r0, ip
- 8000370: bfdc itt le
- 8000372: ea41 010c orrle.w r1, r1, ip
- 8000376: 4090 lslle r0, r2
- 8000378: 1ae4 subs r4, r4, r3
- 800037a: bfa2 ittt ge
- 800037c: eb01 5104 addge.w r1, r1, r4, lsl #20
- 8000380: 4329 orrge r1, r5
- 8000382: bd30 popge {r4, r5, pc}
- 8000384: ea6f 0404 mvn.w r4, r4
- 8000388: 3c1f subs r4, #31
- 800038a: da1c bge.n 80003c6 <__adddf3+0x1d2>
- 800038c: 340c adds r4, #12
- 800038e: dc0e bgt.n 80003ae <__adddf3+0x1ba>
- 8000390: f104 0414 add.w r4, r4, #20
- 8000394: f1c4 0220 rsb r2, r4, #32
- 8000398: fa20 f004 lsr.w r0, r0, r4
- 800039c: fa01 f302 lsl.w r3, r1, r2
- 80003a0: ea40 0003 orr.w r0, r0, r3
- 80003a4: fa21 f304 lsr.w r3, r1, r4
- 80003a8: ea45 0103 orr.w r1, r5, r3
- 80003ac: bd30 pop {r4, r5, pc}
- 80003ae: f1c4 040c rsb r4, r4, #12
- 80003b2: f1c4 0220 rsb r2, r4, #32
- 80003b6: fa20 f002 lsr.w r0, r0, r2
- 80003ba: fa01 f304 lsl.w r3, r1, r4
- 80003be: ea40 0003 orr.w r0, r0, r3
- 80003c2: 4629 mov r1, r5
- 80003c4: bd30 pop {r4, r5, pc}
- 80003c6: fa21 f004 lsr.w r0, r1, r4
- 80003ca: 4629 mov r1, r5
- 80003cc: bd30 pop {r4, r5, pc}
- 80003ce: f094 0f00 teq r4, #0
- 80003d2: f483 1380 eor.w r3, r3, #1048576 ; 0x100000
- 80003d6: bf06 itte eq
- 80003d8: f481 1180 eoreq.w r1, r1, #1048576 ; 0x100000
- 80003dc: 3401 addeq r4, #1
- 80003de: 3d01 subne r5, #1
- 80003e0: e74e b.n 8000280 <__adddf3+0x8c>
- 80003e2: ea7f 5c64 mvns.w ip, r4, asr #21
- 80003e6: bf18 it ne
- 80003e8: ea7f 5c65 mvnsne.w ip, r5, asr #21
- 80003ec: d029 beq.n 8000442 <__adddf3+0x24e>
- 80003ee: ea94 0f05 teq r4, r5
- 80003f2: bf08 it eq
- 80003f4: ea90 0f02 teqeq r0, r2
- 80003f8: d005 beq.n 8000406 <__adddf3+0x212>
- 80003fa: ea54 0c00 orrs.w ip, r4, r0
- 80003fe: bf04 itt eq
- 8000400: 4619 moveq r1, r3
- 8000402: 4610 moveq r0, r2
- 8000404: bd30 pop {r4, r5, pc}
- 8000406: ea91 0f03 teq r1, r3
- 800040a: bf1e ittt ne
- 800040c: 2100 movne r1, #0
- 800040e: 2000 movne r0, #0
- 8000410: bd30 popne {r4, r5, pc}
- 8000412: ea5f 5c54 movs.w ip, r4, lsr #21
- 8000416: d105 bne.n 8000424 <__adddf3+0x230>
- 8000418: 0040 lsls r0, r0, #1
- 800041a: 4149 adcs r1, r1
- 800041c: bf28 it cs
- 800041e: f041 4100 orrcs.w r1, r1, #2147483648 ; 0x80000000
- 8000422: bd30 pop {r4, r5, pc}
- 8000424: f514 0480 adds.w r4, r4, #4194304 ; 0x400000
- 8000428: bf3c itt cc
- 800042a: f501 1180 addcc.w r1, r1, #1048576 ; 0x100000
- 800042e: bd30 popcc {r4, r5, pc}
- 8000430: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000
- 8000434: f045 41fe orr.w r1, r5, #2130706432 ; 0x7f000000
- 8000438: f441 0170 orr.w r1, r1, #15728640 ; 0xf00000
- 800043c: f04f 0000 mov.w r0, #0
- 8000440: bd30 pop {r4, r5, pc}
- 8000442: ea7f 5c64 mvns.w ip, r4, asr #21
- 8000446: bf1a itte ne
- 8000448: 4619 movne r1, r3
- 800044a: 4610 movne r0, r2
- 800044c: ea7f 5c65 mvnseq.w ip, r5, asr #21
- 8000450: bf1c itt ne
- 8000452: 460b movne r3, r1
- 8000454: 4602 movne r2, r0
- 8000456: ea50 3401 orrs.w r4, r0, r1, lsl #12
- 800045a: bf06 itte eq
- 800045c: ea52 3503 orrseq.w r5, r2, r3, lsl #12
- 8000460: ea91 0f03 teqeq r1, r3
- 8000464: f441 2100 orrne.w r1, r1, #524288 ; 0x80000
- 8000468: bd30 pop {r4, r5, pc}
- 800046a: bf00 nop
-
-0800046c <__aeabi_ui2d>:
- 800046c: f090 0f00 teq r0, #0
- 8000470: bf04 itt eq
- 8000472: 2100 moveq r1, #0
- 8000474: 4770 bxeq lr
- 8000476: b530 push {r4, r5, lr}
- 8000478: f44f 6480 mov.w r4, #1024 ; 0x400
- 800047c: f104 0432 add.w r4, r4, #50 ; 0x32
- 8000480: f04f 0500 mov.w r5, #0
- 8000484: f04f 0100 mov.w r1, #0
- 8000488: e750 b.n 800032c <__adddf3+0x138>
- 800048a: bf00 nop
-
-0800048c <__aeabi_i2d>:
- 800048c: f090 0f00 teq r0, #0
- 8000490: bf04 itt eq
- 8000492: 2100 moveq r1, #0
- 8000494: 4770 bxeq lr
- 8000496: b530 push {r4, r5, lr}
- 8000498: f44f 6480 mov.w r4, #1024 ; 0x400
- 800049c: f104 0432 add.w r4, r4, #50 ; 0x32
- 80004a0: f010 4500 ands.w r5, r0, #2147483648 ; 0x80000000
- 80004a4: bf48 it mi
- 80004a6: 4240 negmi r0, r0
- 80004a8: f04f 0100 mov.w r1, #0
- 80004ac: e73e b.n 800032c <__adddf3+0x138>
- 80004ae: bf00 nop
-
-080004b0 <__aeabi_f2d>:
- 80004b0: 0042 lsls r2, r0, #1
- 80004b2: ea4f 01e2 mov.w r1, r2, asr #3
- 80004b6: ea4f 0131 mov.w r1, r1, rrx
- 80004ba: ea4f 7002 mov.w r0, r2, lsl #28
- 80004be: bf1f itttt ne
- 80004c0: f012 437f andsne.w r3, r2, #4278190080 ; 0xff000000
- 80004c4: f093 4f7f teqne r3, #4278190080 ; 0xff000000
- 80004c8: f081 5160 eorne.w r1, r1, #939524096 ; 0x38000000
- 80004cc: 4770 bxne lr
- 80004ce: f032 427f bics.w r2, r2, #4278190080 ; 0xff000000
- 80004d2: bf08 it eq
- 80004d4: 4770 bxeq lr
- 80004d6: f093 4f7f teq r3, #4278190080 ; 0xff000000
- 80004da: bf04 itt eq
- 80004dc: f441 2100 orreq.w r1, r1, #524288 ; 0x80000
- 80004e0: 4770 bxeq lr
- 80004e2: b530 push {r4, r5, lr}
- 80004e4: f44f 7460 mov.w r4, #896 ; 0x380
- 80004e8: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000
- 80004ec: f021 4100 bic.w r1, r1, #2147483648 ; 0x80000000
- 80004f0: e71c b.n 800032c <__adddf3+0x138>
- 80004f2: bf00 nop
-
-080004f4 <__aeabi_ul2d>:
- 80004f4: ea50 0201 orrs.w r2, r0, r1
- 80004f8: bf08 it eq
- 80004fa: 4770 bxeq lr
- 80004fc: b530 push {r4, r5, lr}
- 80004fe: f04f 0500 mov.w r5, #0
- 8000502: e00a b.n 800051a <__aeabi_l2d+0x16>
-
-08000504 <__aeabi_l2d>:
- 8000504: ea50 0201 orrs.w r2, r0, r1
- 8000508: bf08 it eq
- 800050a: 4770 bxeq lr
- 800050c: b530 push {r4, r5, lr}
- 800050e: f011 4500 ands.w r5, r1, #2147483648 ; 0x80000000
- 8000512: d502 bpl.n 800051a <__aeabi_l2d+0x16>
- 8000514: 4240 negs r0, r0
- 8000516: eb61 0141 sbc.w r1, r1, r1, lsl #1
- 800051a: f44f 6480 mov.w r4, #1024 ; 0x400
- 800051e: f104 0432 add.w r4, r4, #50 ; 0x32
- 8000522: ea5f 5c91 movs.w ip, r1, lsr #22
- 8000526: f43f aed8 beq.w 80002da <__adddf3+0xe6>
- 800052a: f04f 0203 mov.w r2, #3
- 800052e: ea5f 0cdc movs.w ip, ip, lsr #3
- 8000532: bf18 it ne
- 8000534: 3203 addne r2, #3
- 8000536: ea5f 0cdc movs.w ip, ip, lsr #3
- 800053a: bf18 it ne
- 800053c: 3203 addne r2, #3
- 800053e: eb02 02dc add.w r2, r2, ip, lsr #3
- 8000542: f1c2 0320 rsb r3, r2, #32
- 8000546: fa00 fc03 lsl.w ip, r0, r3
- 800054a: fa20 f002 lsr.w r0, r0, r2
- 800054e: fa01 fe03 lsl.w lr, r1, r3
- 8000552: ea40 000e orr.w r0, r0, lr
- 8000556: fa21 f102 lsr.w r1, r1, r2
- 800055a: 4414 add r4, r2
- 800055c: e6bd b.n 80002da <__adddf3+0xe6>
- 800055e: bf00 nop
-
-08000560 <__aeabi_dmul>:
- 8000560: b570 push {r4, r5, r6, lr}
- 8000562: f04f 0cff mov.w ip, #255 ; 0xff
- 8000566: f44c 6ce0 orr.w ip, ip, #1792 ; 0x700
- 800056a: ea1c 5411 ands.w r4, ip, r1, lsr #20
- 800056e: bf1d ittte ne
- 8000570: ea1c 5513 andsne.w r5, ip, r3, lsr #20
- 8000574: ea94 0f0c teqne r4, ip
- 8000578: ea95 0f0c teqne r5, ip
- 800057c: f000 f8de bleq 800073c <__aeabi_dmul+0x1dc>
- 8000580: 442c add r4, r5
- 8000582: ea81 0603 eor.w r6, r1, r3
- 8000586: ea21 514c bic.w r1, r1, ip, lsl #21
- 800058a: ea23 534c bic.w r3, r3, ip, lsl #21
- 800058e: ea50 3501 orrs.w r5, r0, r1, lsl #12
- 8000592: bf18 it ne
- 8000594: ea52 3503 orrsne.w r5, r2, r3, lsl #12
- 8000598: f441 1180 orr.w r1, r1, #1048576 ; 0x100000
- 800059c: f443 1380 orr.w r3, r3, #1048576 ; 0x100000
- 80005a0: d038 beq.n 8000614 <__aeabi_dmul+0xb4>
- 80005a2: fba0 ce02 umull ip, lr, r0, r2
- 80005a6: f04f 0500 mov.w r5, #0
- 80005aa: fbe1 e502 umlal lr, r5, r1, r2
- 80005ae: f006 4200 and.w r2, r6, #2147483648 ; 0x80000000
- 80005b2: fbe0 e503 umlal lr, r5, r0, r3
- 80005b6: f04f 0600 mov.w r6, #0
- 80005ba: fbe1 5603 umlal r5, r6, r1, r3
- 80005be: f09c 0f00 teq ip, #0
- 80005c2: bf18 it ne
- 80005c4: f04e 0e01 orrne.w lr, lr, #1
- 80005c8: f1a4 04ff sub.w r4, r4, #255 ; 0xff
- 80005cc: f5b6 7f00 cmp.w r6, #512 ; 0x200
- 80005d0: f564 7440 sbc.w r4, r4, #768 ; 0x300
- 80005d4: d204 bcs.n 80005e0 <__aeabi_dmul+0x80>
- 80005d6: ea5f 0e4e movs.w lr, lr, lsl #1
- 80005da: 416d adcs r5, r5
- 80005dc: eb46 0606 adc.w r6, r6, r6
- 80005e0: ea42 21c6 orr.w r1, r2, r6, lsl #11
- 80005e4: ea41 5155 orr.w r1, r1, r5, lsr #21
- 80005e8: ea4f 20c5 mov.w r0, r5, lsl #11
- 80005ec: ea40 505e orr.w r0, r0, lr, lsr #21
- 80005f0: ea4f 2ece mov.w lr, lr, lsl #11
- 80005f4: f1b4 0cfd subs.w ip, r4, #253 ; 0xfd
- 80005f8: bf88 it hi
- 80005fa: f5bc 6fe0 cmphi.w ip, #1792 ; 0x700
- 80005fe: d81e bhi.n 800063e <__aeabi_dmul+0xde>
- 8000600: f1be 4f00 cmp.w lr, #2147483648 ; 0x80000000
- 8000604: bf08 it eq
- 8000606: ea5f 0e50 movseq.w lr, r0, lsr #1
- 800060a: f150 0000 adcs.w r0, r0, #0
- 800060e: eb41 5104 adc.w r1, r1, r4, lsl #20
- 8000612: bd70 pop {r4, r5, r6, pc}
- 8000614: f006 4600 and.w r6, r6, #2147483648 ; 0x80000000
- 8000618: ea46 0101 orr.w r1, r6, r1
- 800061c: ea40 0002 orr.w r0, r0, r2
- 8000620: ea81 0103 eor.w r1, r1, r3
- 8000624: ebb4 045c subs.w r4, r4, ip, lsr #1
- 8000628: bfc2 ittt gt
- 800062a: ebd4 050c rsbsgt r5, r4, ip
- 800062e: ea41 5104 orrgt.w r1, r1, r4, lsl #20
- 8000632: bd70 popgt {r4, r5, r6, pc}
- 8000634: f441 1180 orr.w r1, r1, #1048576 ; 0x100000
- 8000638: f04f 0e00 mov.w lr, #0
- 800063c: 3c01 subs r4, #1
- 800063e: f300 80ab bgt.w 8000798 <__aeabi_dmul+0x238>
- 8000642: f114 0f36 cmn.w r4, #54 ; 0x36
- 8000646: bfde ittt le
- 8000648: 2000 movle r0, #0
- 800064a: f001 4100 andle.w r1, r1, #2147483648 ; 0x80000000
- 800064e: bd70 pople {r4, r5, r6, pc}
- 8000650: f1c4 0400 rsb r4, r4, #0
- 8000654: 3c20 subs r4, #32
- 8000656: da35 bge.n 80006c4 <__aeabi_dmul+0x164>
- 8000658: 340c adds r4, #12
- 800065a: dc1b bgt.n 8000694 <__aeabi_dmul+0x134>
- 800065c: f104 0414 add.w r4, r4, #20
- 8000660: f1c4 0520 rsb r5, r4, #32
- 8000664: fa00 f305 lsl.w r3, r0, r5
- 8000668: fa20 f004 lsr.w r0, r0, r4
- 800066c: fa01 f205 lsl.w r2, r1, r5
- 8000670: ea40 0002 orr.w r0, r0, r2
- 8000674: f001 4200 and.w r2, r1, #2147483648 ; 0x80000000
- 8000678: f021 4100 bic.w r1, r1, #2147483648 ; 0x80000000
- 800067c: eb10 70d3 adds.w r0, r0, r3, lsr #31
- 8000680: fa21 f604 lsr.w r6, r1, r4
- 8000684: eb42 0106 adc.w r1, r2, r6
- 8000688: ea5e 0e43 orrs.w lr, lr, r3, lsl #1
- 800068c: bf08 it eq
- 800068e: ea20 70d3 biceq.w r0, r0, r3, lsr #31
- 8000692: bd70 pop {r4, r5, r6, pc}
- 8000694: f1c4 040c rsb r4, r4, #12
- 8000698: f1c4 0520 rsb r5, r4, #32
- 800069c: fa00 f304 lsl.w r3, r0, r4
- 80006a0: fa20 f005 lsr.w r0, r0, r5
- 80006a4: fa01 f204 lsl.w r2, r1, r4
- 80006a8: ea40 0002 orr.w r0, r0, r2
- 80006ac: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000
- 80006b0: eb10 70d3 adds.w r0, r0, r3, lsr #31
- 80006b4: f141 0100 adc.w r1, r1, #0
- 80006b8: ea5e 0e43 orrs.w lr, lr, r3, lsl #1
- 80006bc: bf08 it eq
- 80006be: ea20 70d3 biceq.w r0, r0, r3, lsr #31
- 80006c2: bd70 pop {r4, r5, r6, pc}
- 80006c4: f1c4 0520 rsb r5, r4, #32
- 80006c8: fa00 f205 lsl.w r2, r0, r5
- 80006cc: ea4e 0e02 orr.w lr, lr, r2
- 80006d0: fa20 f304 lsr.w r3, r0, r4
- 80006d4: fa01 f205 lsl.w r2, r1, r5
- 80006d8: ea43 0302 orr.w r3, r3, r2
- 80006dc: fa21 f004 lsr.w r0, r1, r4
- 80006e0: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000
- 80006e4: fa21 f204 lsr.w r2, r1, r4
- 80006e8: ea20 0002 bic.w r0, r0, r2
- 80006ec: eb00 70d3 add.w r0, r0, r3, lsr #31
- 80006f0: ea5e 0e43 orrs.w lr, lr, r3, lsl #1
- 80006f4: bf08 it eq
- 80006f6: ea20 70d3 biceq.w r0, r0, r3, lsr #31
- 80006fa: bd70 pop {r4, r5, r6, pc}
- 80006fc: f094 0f00 teq r4, #0
- 8000700: d10f bne.n 8000722 <__aeabi_dmul+0x1c2>
- 8000702: f001 4600 and.w r6, r1, #2147483648 ; 0x80000000
- 8000706: 0040 lsls r0, r0, #1
- 8000708: eb41 0101 adc.w r1, r1, r1
- 800070c: f411 1f80 tst.w r1, #1048576 ; 0x100000
- 8000710: bf08 it eq
- 8000712: 3c01 subeq r4, #1
- 8000714: d0f7 beq.n 8000706 <__aeabi_dmul+0x1a6>
- 8000716: ea41 0106 orr.w r1, r1, r6
- 800071a: f095 0f00 teq r5, #0
- 800071e: bf18 it ne
- 8000720: 4770 bxne lr
- 8000722: f003 4600 and.w r6, r3, #2147483648 ; 0x80000000
- 8000726: 0052 lsls r2, r2, #1
- 8000728: eb43 0303 adc.w r3, r3, r3
- 800072c: f413 1f80 tst.w r3, #1048576 ; 0x100000
- 8000730: bf08 it eq
- 8000732: 3d01 subeq r5, #1
- 8000734: d0f7 beq.n 8000726 <__aeabi_dmul+0x1c6>
- 8000736: ea43 0306 orr.w r3, r3, r6
- 800073a: 4770 bx lr
- 800073c: ea94 0f0c teq r4, ip
- 8000740: ea0c 5513 and.w r5, ip, r3, lsr #20
- 8000744: bf18 it ne
- 8000746: ea95 0f0c teqne r5, ip
- 800074a: d00c beq.n 8000766 <__aeabi_dmul+0x206>
- 800074c: ea50 0641 orrs.w r6, r0, r1, lsl #1
- 8000750: bf18 it ne
- 8000752: ea52 0643 orrsne.w r6, r2, r3, lsl #1
- 8000756: d1d1 bne.n 80006fc <__aeabi_dmul+0x19c>
- 8000758: ea81 0103 eor.w r1, r1, r3
- 800075c: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000
- 8000760: f04f 0000 mov.w r0, #0
- 8000764: bd70 pop {r4, r5, r6, pc}
- 8000766: ea50 0641 orrs.w r6, r0, r1, lsl #1
- 800076a: bf06 itte eq
- 800076c: 4610 moveq r0, r2
- 800076e: 4619 moveq r1, r3
- 8000770: ea52 0643 orrsne.w r6, r2, r3, lsl #1
- 8000774: d019 beq.n 80007aa <__aeabi_dmul+0x24a>
- 8000776: ea94 0f0c teq r4, ip
- 800077a: d102 bne.n 8000782 <__aeabi_dmul+0x222>
- 800077c: ea50 3601 orrs.w r6, r0, r1, lsl #12
- 8000780: d113 bne.n 80007aa <__aeabi_dmul+0x24a>
- 8000782: ea95 0f0c teq r5, ip
- 8000786: d105 bne.n 8000794 <__aeabi_dmul+0x234>
- 8000788: ea52 3603 orrs.w r6, r2, r3, lsl #12
- 800078c: bf1c itt ne
- 800078e: 4610 movne r0, r2
- 8000790: 4619 movne r1, r3
- 8000792: d10a bne.n 80007aa <__aeabi_dmul+0x24a>
- 8000794: ea81 0103 eor.w r1, r1, r3
- 8000798: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000
- 800079c: f041 41fe orr.w r1, r1, #2130706432 ; 0x7f000000
- 80007a0: f441 0170 orr.w r1, r1, #15728640 ; 0xf00000
- 80007a4: f04f 0000 mov.w r0, #0
- 80007a8: bd70 pop {r4, r5, r6, pc}
- 80007aa: f041 41fe orr.w r1, r1, #2130706432 ; 0x7f000000
- 80007ae: f441 0178 orr.w r1, r1, #16252928 ; 0xf80000
- 80007b2: bd70 pop {r4, r5, r6, pc}
-
-080007b4 <__aeabi_ddiv>:
- 80007b4: b570 push {r4, r5, r6, lr}
- 80007b6: f04f 0cff mov.w ip, #255 ; 0xff
- 80007ba: f44c 6ce0 orr.w ip, ip, #1792 ; 0x700
- 80007be: ea1c 5411 ands.w r4, ip, r1, lsr #20
- 80007c2: bf1d ittte ne
- 80007c4: ea1c 5513 andsne.w r5, ip, r3, lsr #20
- 80007c8: ea94 0f0c teqne r4, ip
- 80007cc: ea95 0f0c teqne r5, ip
- 80007d0: f000 f8a7 bleq 8000922 <__aeabi_ddiv+0x16e>
- 80007d4: eba4 0405 sub.w r4, r4, r5
- 80007d8: ea81 0e03 eor.w lr, r1, r3
- 80007dc: ea52 3503 orrs.w r5, r2, r3, lsl #12
- 80007e0: ea4f 3101 mov.w r1, r1, lsl #12
- 80007e4: f000 8088 beq.w 80008f8 <__aeabi_ddiv+0x144>
- 80007e8: ea4f 3303 mov.w r3, r3, lsl #12
- 80007ec: f04f 5580 mov.w r5, #268435456 ; 0x10000000
- 80007f0: ea45 1313 orr.w r3, r5, r3, lsr #4
- 80007f4: ea43 6312 orr.w r3, r3, r2, lsr #24
- 80007f8: ea4f 2202 mov.w r2, r2, lsl #8
- 80007fc: ea45 1511 orr.w r5, r5, r1, lsr #4
- 8000800: ea45 6510 orr.w r5, r5, r0, lsr #24
- 8000804: ea4f 2600 mov.w r6, r0, lsl #8
- 8000808: f00e 4100 and.w r1, lr, #2147483648 ; 0x80000000
- 800080c: 429d cmp r5, r3
- 800080e: bf08 it eq
- 8000810: 4296 cmpeq r6, r2
- 8000812: f144 04fd adc.w r4, r4, #253 ; 0xfd
- 8000816: f504 7440 add.w r4, r4, #768 ; 0x300
- 800081a: d202 bcs.n 8000822 <__aeabi_ddiv+0x6e>
- 800081c: 085b lsrs r3, r3, #1
- 800081e: ea4f 0232 mov.w r2, r2, rrx
- 8000822: 1ab6 subs r6, r6, r2
- 8000824: eb65 0503 sbc.w r5, r5, r3
- 8000828: 085b lsrs r3, r3, #1
- 800082a: ea4f 0232 mov.w r2, r2, rrx
- 800082e: f44f 1080 mov.w r0, #1048576 ; 0x100000
- 8000832: f44f 2c00 mov.w ip, #524288 ; 0x80000
- 8000836: ebb6 0e02 subs.w lr, r6, r2
- 800083a: eb75 0e03 sbcs.w lr, r5, r3
- 800083e: bf22 ittt cs
- 8000840: 1ab6 subcs r6, r6, r2
- 8000842: 4675 movcs r5, lr
- 8000844: ea40 000c orrcs.w r0, r0, ip
- 8000848: 085b lsrs r3, r3, #1
- 800084a: ea4f 0232 mov.w r2, r2, rrx
- 800084e: ebb6 0e02 subs.w lr, r6, r2
- 8000852: eb75 0e03 sbcs.w lr, r5, r3
- 8000856: bf22 ittt cs
- 8000858: 1ab6 subcs r6, r6, r2
- 800085a: 4675 movcs r5, lr
- 800085c: ea40 005c orrcs.w r0, r0, ip, lsr #1
- 8000860: 085b lsrs r3, r3, #1
- 8000862: ea4f 0232 mov.w r2, r2, rrx
- 8000866: ebb6 0e02 subs.w lr, r6, r2
- 800086a: eb75 0e03 sbcs.w lr, r5, r3
- 800086e: bf22 ittt cs
- 8000870: 1ab6 subcs r6, r6, r2
- 8000872: 4675 movcs r5, lr
- 8000874: ea40 009c orrcs.w r0, r0, ip, lsr #2
- 8000878: 085b lsrs r3, r3, #1
- 800087a: ea4f 0232 mov.w r2, r2, rrx
- 800087e: ebb6 0e02 subs.w lr, r6, r2
- 8000882: eb75 0e03 sbcs.w lr, r5, r3
- 8000886: bf22 ittt cs
- 8000888: 1ab6 subcs r6, r6, r2
- 800088a: 4675 movcs r5, lr
- 800088c: ea40 00dc orrcs.w r0, r0, ip, lsr #3
- 8000890: ea55 0e06 orrs.w lr, r5, r6
- 8000894: d018 beq.n 80008c8 <__aeabi_ddiv+0x114>
- 8000896: ea4f 1505 mov.w r5, r5, lsl #4
- 800089a: ea45 7516 orr.w r5, r5, r6, lsr #28
- 800089e: ea4f 1606 mov.w r6, r6, lsl #4
- 80008a2: ea4f 03c3 mov.w r3, r3, lsl #3
- 80008a6: ea43 7352 orr.w r3, r3, r2, lsr #29
- 80008aa: ea4f 02c2 mov.w r2, r2, lsl #3
- 80008ae: ea5f 1c1c movs.w ip, ip, lsr #4
- 80008b2: d1c0 bne.n 8000836 <__aeabi_ddiv+0x82>
- 80008b4: f411 1f80 tst.w r1, #1048576 ; 0x100000
- 80008b8: d10b bne.n 80008d2 <__aeabi_ddiv+0x11e>
- 80008ba: ea41 0100 orr.w r1, r1, r0
- 80008be: f04f 0000 mov.w r0, #0
- 80008c2: f04f 4c00 mov.w ip, #2147483648 ; 0x80000000
- 80008c6: e7b6 b.n 8000836 <__aeabi_ddiv+0x82>
- 80008c8: f411 1f80 tst.w r1, #1048576 ; 0x100000
- 80008cc: bf04 itt eq
- 80008ce: 4301 orreq r1, r0
- 80008d0: 2000 moveq r0, #0
- 80008d2: f1b4 0cfd subs.w ip, r4, #253 ; 0xfd
- 80008d6: bf88 it hi
- 80008d8: f5bc 6fe0 cmphi.w ip, #1792 ; 0x700
- 80008dc: f63f aeaf bhi.w 800063e <__aeabi_dmul+0xde>
- 80008e0: ebb5 0c03 subs.w ip, r5, r3
- 80008e4: bf04 itt eq
- 80008e6: ebb6 0c02 subseq.w ip, r6, r2
- 80008ea: ea5f 0c50 movseq.w ip, r0, lsr #1
- 80008ee: f150 0000 adcs.w r0, r0, #0
- 80008f2: eb41 5104 adc.w r1, r1, r4, lsl #20
- 80008f6: bd70 pop {r4, r5, r6, pc}
- 80008f8: f00e 4e00 and.w lr, lr, #2147483648 ; 0x80000000
- 80008fc: ea4e 3111 orr.w r1, lr, r1, lsr #12
- 8000900: eb14 045c adds.w r4, r4, ip, lsr #1
- 8000904: bfc2 ittt gt
- 8000906: ebd4 050c rsbsgt r5, r4, ip
- 800090a: ea41 5104 orrgt.w r1, r1, r4, lsl #20
- 800090e: bd70 popgt {r4, r5, r6, pc}
- 8000910: f441 1180 orr.w r1, r1, #1048576 ; 0x100000
- 8000914: f04f 0e00 mov.w lr, #0
- 8000918: 3c01 subs r4, #1
- 800091a: e690 b.n 800063e <__aeabi_dmul+0xde>
- 800091c: ea45 0e06 orr.w lr, r5, r6
- 8000920: e68d b.n 800063e <__aeabi_dmul+0xde>
- 8000922: ea0c 5513 and.w r5, ip, r3, lsr #20
- 8000926: ea94 0f0c teq r4, ip
- 800092a: bf08 it eq
- 800092c: ea95 0f0c teqeq r5, ip
- 8000930: f43f af3b beq.w 80007aa <__aeabi_dmul+0x24a>
- 8000934: ea94 0f0c teq r4, ip
- 8000938: d10a bne.n 8000950 <__aeabi_ddiv+0x19c>
- 800093a: ea50 3401 orrs.w r4, r0, r1, lsl #12
- 800093e: f47f af34 bne.w 80007aa <__aeabi_dmul+0x24a>
- 8000942: ea95 0f0c teq r5, ip
- 8000946: f47f af25 bne.w 8000794 <__aeabi_dmul+0x234>
- 800094a: 4610 mov r0, r2
- 800094c: 4619 mov r1, r3
- 800094e: e72c b.n 80007aa <__aeabi_dmul+0x24a>
- 8000950: ea95 0f0c teq r5, ip
- 8000954: d106 bne.n 8000964 <__aeabi_ddiv+0x1b0>
- 8000956: ea52 3503 orrs.w r5, r2, r3, lsl #12
- 800095a: f43f aefd beq.w 8000758 <__aeabi_dmul+0x1f8>
- 800095e: 4610 mov r0, r2
- 8000960: 4619 mov r1, r3
- 8000962: e722 b.n 80007aa <__aeabi_dmul+0x24a>
- 8000964: ea50 0641 orrs.w r6, r0, r1, lsl #1
- 8000968: bf18 it ne
- 800096a: ea52 0643 orrsne.w r6, r2, r3, lsl #1
- 800096e: f47f aec5 bne.w 80006fc <__aeabi_dmul+0x19c>
- 8000972: ea50 0441 orrs.w r4, r0, r1, lsl #1
- 8000976: f47f af0d bne.w 8000794 <__aeabi_dmul+0x234>
- 800097a: ea52 0543 orrs.w r5, r2, r3, lsl #1
- 800097e: f47f aeeb bne.w 8000758 <__aeabi_dmul+0x1f8>
- 8000982: e712 b.n 80007aa <__aeabi_dmul+0x24a>
-
-08000984 <__gedf2>:
- 8000984: f04f 3cff mov.w ip, #4294967295
- 8000988: e006 b.n 8000998 <__cmpdf2+0x4>
- 800098a: bf00 nop
-
-0800098c <__ledf2>:
- 800098c: f04f 0c01 mov.w ip, #1
- 8000990: e002 b.n 8000998 <__cmpdf2+0x4>
- 8000992: bf00 nop
-
-08000994 <__cmpdf2>:
- 8000994: f04f 0c01 mov.w ip, #1
- 8000998: f84d cd04 str.w ip, [sp, #-4]!
- 800099c: ea4f 0c41 mov.w ip, r1, lsl #1
- 80009a0: ea7f 5c6c mvns.w ip, ip, asr #21
- 80009a4: ea4f 0c43 mov.w ip, r3, lsl #1
- 80009a8: bf18 it ne
- 80009aa: ea7f 5c6c mvnsne.w ip, ip, asr #21
- 80009ae: d01b beq.n 80009e8 <__cmpdf2+0x54>
- 80009b0: b001 add sp, #4
- 80009b2: ea50 0c41 orrs.w ip, r0, r1, lsl #1
- 80009b6: bf0c ite eq
- 80009b8: ea52 0c43 orrseq.w ip, r2, r3, lsl #1
- 80009bc: ea91 0f03 teqne r1, r3
- 80009c0: bf02 ittt eq
- 80009c2: ea90 0f02 teqeq r0, r2
- 80009c6: 2000 moveq r0, #0
- 80009c8: 4770 bxeq lr
- 80009ca: f110 0f00 cmn.w r0, #0
- 80009ce: ea91 0f03 teq r1, r3
- 80009d2: bf58 it pl
- 80009d4: 4299 cmppl r1, r3
- 80009d6: bf08 it eq
- 80009d8: 4290 cmpeq r0, r2
- 80009da: bf2c ite cs
- 80009dc: 17d8 asrcs r0, r3, #31
- 80009de: ea6f 70e3 mvncc.w r0, r3, asr #31
- 80009e2: f040 0001 orr.w r0, r0, #1
- 80009e6: 4770 bx lr
- 80009e8: ea4f 0c41 mov.w ip, r1, lsl #1
- 80009ec: ea7f 5c6c mvns.w ip, ip, asr #21
- 80009f0: d102 bne.n 80009f8 <__cmpdf2+0x64>
- 80009f2: ea50 3c01 orrs.w ip, r0, r1, lsl #12
- 80009f6: d107 bne.n 8000a08 <__cmpdf2+0x74>
- 80009f8: ea4f 0c43 mov.w ip, r3, lsl #1
- 80009fc: ea7f 5c6c mvns.w ip, ip, asr #21
- 8000a00: d1d6 bne.n 80009b0 <__cmpdf2+0x1c>
- 8000a02: ea52 3c03 orrs.w ip, r2, r3, lsl #12
- 8000a06: d0d3 beq.n 80009b0 <__cmpdf2+0x1c>
- 8000a08: f85d 0b04 ldr.w r0, [sp], #4
- 8000a0c: 4770 bx lr
- 8000a0e: bf00 nop
-
-08000a10 <__aeabi_cdrcmple>:
- 8000a10: 4684 mov ip, r0
- 8000a12: 4610 mov r0, r2
- 8000a14: 4662 mov r2, ip
- 8000a16: 468c mov ip, r1
- 8000a18: 4619 mov r1, r3
- 8000a1a: 4663 mov r3, ip
- 8000a1c: e000 b.n 8000a20 <__aeabi_cdcmpeq>
- 8000a1e: bf00 nop
-
-08000a20 <__aeabi_cdcmpeq>:
- 8000a20: b501 push {r0, lr}
- 8000a22: f7ff ffb7 bl 8000994 <__cmpdf2>
- 8000a26: 2800 cmp r0, #0
- 8000a28: bf48 it mi
- 8000a2a: f110 0f00 cmnmi.w r0, #0
- 8000a2e: bd01 pop {r0, pc}
-
-08000a30 <__aeabi_dcmpeq>:
- 8000a30: f84d ed08 str.w lr, [sp, #-8]!
- 8000a34: f7ff fff4 bl 8000a20 <__aeabi_cdcmpeq>
- 8000a38: bf0c ite eq
- 8000a3a: 2001 moveq r0, #1
- 8000a3c: 2000 movne r0, #0
- 8000a3e: f85d fb08 ldr.w pc, [sp], #8
- 8000a42: bf00 nop
-
-08000a44 <__aeabi_dcmplt>:
- 8000a44: f84d ed08 str.w lr, [sp, #-8]!
- 8000a48: f7ff ffea bl 8000a20 <__aeabi_cdcmpeq>
- 8000a4c: bf34 ite cc
- 8000a4e: 2001 movcc r0, #1
- 8000a50: 2000 movcs r0, #0
- 8000a52: f85d fb08 ldr.w pc, [sp], #8
- 8000a56: bf00 nop
-
-08000a58 <__aeabi_dcmple>:
- 8000a58: f84d ed08 str.w lr, [sp, #-8]!
- 8000a5c: f7ff ffe0 bl 8000a20 <__aeabi_cdcmpeq>
- 8000a60: bf94 ite ls
- 8000a62: 2001 movls r0, #1
- 8000a64: 2000 movhi r0, #0
- 8000a66: f85d fb08 ldr.w pc, [sp], #8
- 8000a6a: bf00 nop
-
-08000a6c <__aeabi_dcmpge>:
- 8000a6c: f84d ed08 str.w lr, [sp, #-8]!
- 8000a70: f7ff ffce bl 8000a10 <__aeabi_cdrcmple>
- 8000a74: bf94 ite ls
- 8000a76: 2001 movls r0, #1
- 8000a78: 2000 movhi r0, #0
- 8000a7a: f85d fb08 ldr.w pc, [sp], #8
- 8000a7e: bf00 nop
-
-08000a80 <__aeabi_dcmpgt>:
- 8000a80: f84d ed08 str.w lr, [sp, #-8]!
- 8000a84: f7ff ffc4 bl 8000a10 <__aeabi_cdrcmple>
- 8000a88: bf34 ite cc
- 8000a8a: 2001 movcc r0, #1
- 8000a8c: 2000 movcs r0, #0
- 8000a8e: f85d fb08 ldr.w pc, [sp], #8
- 8000a92: bf00 nop
-
-08000a94 <__aeabi_dcmpun>:
- 8000a94: ea4f 0c41 mov.w ip, r1, lsl #1
- 8000a98: ea7f 5c6c mvns.w ip, ip, asr #21
- 8000a9c: d102 bne.n 8000aa4 <__aeabi_dcmpun+0x10>
- 8000a9e: ea50 3c01 orrs.w ip, r0, r1, lsl #12
- 8000aa2: d10a bne.n 8000aba <__aeabi_dcmpun+0x26>
- 8000aa4: ea4f 0c43 mov.w ip, r3, lsl #1
- 8000aa8: ea7f 5c6c mvns.w ip, ip, asr #21
- 8000aac: d102 bne.n 8000ab4 <__aeabi_dcmpun+0x20>
- 8000aae: ea52 3c03 orrs.w ip, r2, r3, lsl #12
- 8000ab2: d102 bne.n 8000aba <__aeabi_dcmpun+0x26>
- 8000ab4: f04f 0000 mov.w r0, #0
- 8000ab8: 4770 bx lr
- 8000aba: f04f 0001 mov.w r0, #1
- 8000abe: 4770 bx lr
-
-08000ac0 <__aeabi_d2iz>:
- 8000ac0: ea4f 0241 mov.w r2, r1, lsl #1
- 8000ac4: f512 1200 adds.w r2, r2, #2097152 ; 0x200000
- 8000ac8: d215 bcs.n 8000af6 <__aeabi_d2iz+0x36>
- 8000aca: d511 bpl.n 8000af0 <__aeabi_d2iz+0x30>
- 8000acc: f46f 7378 mvn.w r3, #992 ; 0x3e0
- 8000ad0: ebb3 5262 subs.w r2, r3, r2, asr #21
- 8000ad4: d912 bls.n 8000afc <__aeabi_d2iz+0x3c>
- 8000ad6: ea4f 23c1 mov.w r3, r1, lsl #11
- 8000ada: f043 4300 orr.w r3, r3, #2147483648 ; 0x80000000
- 8000ade: ea43 5350 orr.w r3, r3, r0, lsr #21
- 8000ae2: f011 4f00 tst.w r1, #2147483648 ; 0x80000000
- 8000ae6: fa23 f002 lsr.w r0, r3, r2
- 8000aea: bf18 it ne
- 8000aec: 4240 negne r0, r0
- 8000aee: 4770 bx lr
- 8000af0: f04f 0000 mov.w r0, #0
- 8000af4: 4770 bx lr
- 8000af6: ea50 3001 orrs.w r0, r0, r1, lsl #12
- 8000afa: d105 bne.n 8000b08 <__aeabi_d2iz+0x48>
- 8000afc: f011 4000 ands.w r0, r1, #2147483648 ; 0x80000000
- 8000b00: bf08 it eq
- 8000b02: f06f 4000 mvneq.w r0, #2147483648 ; 0x80000000
- 8000b06: 4770 bx lr
- 8000b08: f04f 0000 mov.w r0, #0
- 8000b0c: 4770 bx lr
- 8000b0e: bf00 nop
-
-08000b10 <__aeabi_uldivmod>:
- 8000b10: b953 cbnz r3, 8000b28 <__aeabi_uldivmod+0x18>
- 8000b12: b94a cbnz r2, 8000b28 <__aeabi_uldivmod+0x18>
- 8000b14: 2900 cmp r1, #0
- 8000b16: bf08 it eq
- 8000b18: 2800 cmpeq r0, #0
- 8000b1a: bf1c itt ne
- 8000b1c: f04f 31ff movne.w r1, #4294967295
- 8000b20: f04f 30ff movne.w r0, #4294967295
- 8000b24: f000 b972 b.w 8000e0c <__aeabi_idiv0>
- 8000b28: f1ad 0c08 sub.w ip, sp, #8
- 8000b2c: e96d ce04 strd ip, lr, [sp, #-16]!
- 8000b30: f000 f806 bl 8000b40 <__udivmoddi4>
- 8000b34: f8dd e004 ldr.w lr, [sp, #4]
- 8000b38: e9dd 2302 ldrd r2, r3, [sp, #8]
- 8000b3c: b004 add sp, #16
- 8000b3e: 4770 bx lr
-
-08000b40 <__udivmoddi4>:
- 8000b40: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
- 8000b44: 9e08 ldr r6, [sp, #32]
- 8000b46: 4604 mov r4, r0
- 8000b48: 4688 mov r8, r1
- 8000b4a: 2b00 cmp r3, #0
- 8000b4c: d14b bne.n 8000be6 <__udivmoddi4+0xa6>
- 8000b4e: 428a cmp r2, r1
- 8000b50: 4615 mov r5, r2
- 8000b52: d967 bls.n 8000c24 <__udivmoddi4+0xe4>
- 8000b54: fab2 f282 clz r2, r2
- 8000b58: b14a cbz r2, 8000b6e <__udivmoddi4+0x2e>
- 8000b5a: f1c2 0720 rsb r7, r2, #32
- 8000b5e: fa01 f302 lsl.w r3, r1, r2
- 8000b62: fa20 f707 lsr.w r7, r0, r7
- 8000b66: 4095 lsls r5, r2
- 8000b68: ea47 0803 orr.w r8, r7, r3
- 8000b6c: 4094 lsls r4, r2
- 8000b6e: ea4f 4e15 mov.w lr, r5, lsr #16
- 8000b72: 0c23 lsrs r3, r4, #16
- 8000b74: fbb8 f7fe udiv r7, r8, lr
- 8000b78: fa1f fc85 uxth.w ip, r5
- 8000b7c: fb0e 8817 mls r8, lr, r7, r8
- 8000b80: ea43 4308 orr.w r3, r3, r8, lsl #16
- 8000b84: fb07 f10c mul.w r1, r7, ip
- 8000b88: 4299 cmp r1, r3
- 8000b8a: d909 bls.n 8000ba0 <__udivmoddi4+0x60>
- 8000b8c: 18eb adds r3, r5, r3
- 8000b8e: f107 30ff add.w r0, r7, #4294967295
- 8000b92: f080 811b bcs.w 8000dcc <__udivmoddi4+0x28c>
- 8000b96: 4299 cmp r1, r3
- 8000b98: f240 8118 bls.w 8000dcc <__udivmoddi4+0x28c>
- 8000b9c: 3f02 subs r7, #2
- 8000b9e: 442b add r3, r5
- 8000ba0: 1a5b subs r3, r3, r1
- 8000ba2: b2a4 uxth r4, r4
- 8000ba4: fbb3 f0fe udiv r0, r3, lr
- 8000ba8: fb0e 3310 mls r3, lr, r0, r3
- 8000bac: ea44 4403 orr.w r4, r4, r3, lsl #16
- 8000bb0: fb00 fc0c mul.w ip, r0, ip
- 8000bb4: 45a4 cmp ip, r4
- 8000bb6: d909 bls.n 8000bcc <__udivmoddi4+0x8c>
- 8000bb8: 192c adds r4, r5, r4
- 8000bba: f100 33ff add.w r3, r0, #4294967295
- 8000bbe: f080 8107 bcs.w 8000dd0 <__udivmoddi4+0x290>
- 8000bc2: 45a4 cmp ip, r4
- 8000bc4: f240 8104 bls.w 8000dd0 <__udivmoddi4+0x290>
- 8000bc8: 3802 subs r0, #2
- 8000bca: 442c add r4, r5
- 8000bcc: ea40 4007 orr.w r0, r0, r7, lsl #16
- 8000bd0: eba4 040c sub.w r4, r4, ip
- 8000bd4: 2700 movs r7, #0
- 8000bd6: b11e cbz r6, 8000be0 <__udivmoddi4+0xa0>
- 8000bd8: 40d4 lsrs r4, r2
- 8000bda: 2300 movs r3, #0
- 8000bdc: e9c6 4300 strd r4, r3, [r6]
- 8000be0: 4639 mov r1, r7
- 8000be2: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
- 8000be6: 428b cmp r3, r1
- 8000be8: d909 bls.n 8000bfe <__udivmoddi4+0xbe>
- 8000bea: 2e00 cmp r6, #0
- 8000bec: f000 80eb beq.w 8000dc6 <__udivmoddi4+0x286>
- 8000bf0: 2700 movs r7, #0
- 8000bf2: e9c6 0100 strd r0, r1, [r6]
- 8000bf6: 4638 mov r0, r7
- 8000bf8: 4639 mov r1, r7
- 8000bfa: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
- 8000bfe: fab3 f783 clz r7, r3
- 8000c02: 2f00 cmp r7, #0
- 8000c04: d147 bne.n 8000c96 <__udivmoddi4+0x156>
- 8000c06: 428b cmp r3, r1
- 8000c08: d302 bcc.n 8000c10 <__udivmoddi4+0xd0>
- 8000c0a: 4282 cmp r2, r0
- 8000c0c: f200 80fa bhi.w 8000e04 <__udivmoddi4+0x2c4>
- 8000c10: 1a84 subs r4, r0, r2
- 8000c12: eb61 0303 sbc.w r3, r1, r3
- 8000c16: 2001 movs r0, #1
- 8000c18: 4698 mov r8, r3
- 8000c1a: 2e00 cmp r6, #0
- 8000c1c: d0e0 beq.n 8000be0 <__udivmoddi4+0xa0>
- 8000c1e: e9c6 4800 strd r4, r8, [r6]
- 8000c22: e7dd b.n 8000be0 <__udivmoddi4+0xa0>
- 8000c24: b902 cbnz r2, 8000c28 <__udivmoddi4+0xe8>
- 8000c26: deff udf #255 ; 0xff
- 8000c28: fab2 f282 clz r2, r2
- 8000c2c: 2a00 cmp r2, #0
- 8000c2e: f040 808f bne.w 8000d50 <__udivmoddi4+0x210>
- 8000c32: 1b49 subs r1, r1, r5
- 8000c34: ea4f 4e15 mov.w lr, r5, lsr #16
- 8000c38: fa1f f885 uxth.w r8, r5
- 8000c3c: 2701 movs r7, #1
- 8000c3e: fbb1 fcfe udiv ip, r1, lr
- 8000c42: 0c23 lsrs r3, r4, #16
- 8000c44: fb0e 111c mls r1, lr, ip, r1
- 8000c48: ea43 4301 orr.w r3, r3, r1, lsl #16
- 8000c4c: fb08 f10c mul.w r1, r8, ip
- 8000c50: 4299 cmp r1, r3
- 8000c52: d907 bls.n 8000c64 <__udivmoddi4+0x124>
- 8000c54: 18eb adds r3, r5, r3
- 8000c56: f10c 30ff add.w r0, ip, #4294967295
- 8000c5a: d202 bcs.n 8000c62 <__udivmoddi4+0x122>
- 8000c5c: 4299 cmp r1, r3
- 8000c5e: f200 80cd bhi.w 8000dfc <__udivmoddi4+0x2bc>
- 8000c62: 4684 mov ip, r0
- 8000c64: 1a59 subs r1, r3, r1
- 8000c66: b2a3 uxth r3, r4
- 8000c68: fbb1 f0fe udiv r0, r1, lr
- 8000c6c: fb0e 1410 mls r4, lr, r0, r1
- 8000c70: ea43 4404 orr.w r4, r3, r4, lsl #16
- 8000c74: fb08 f800 mul.w r8, r8, r0
- 8000c78: 45a0 cmp r8, r4
- 8000c7a: d907 bls.n 8000c8c <__udivmoddi4+0x14c>
- 8000c7c: 192c adds r4, r5, r4
- 8000c7e: f100 33ff add.w r3, r0, #4294967295
- 8000c82: d202 bcs.n 8000c8a <__udivmoddi4+0x14a>
- 8000c84: 45a0 cmp r8, r4
- 8000c86: f200 80b6 bhi.w 8000df6 <__udivmoddi4+0x2b6>
- 8000c8a: 4618 mov r0, r3
- 8000c8c: eba4 0408 sub.w r4, r4, r8
- 8000c90: ea40 400c orr.w r0, r0, ip, lsl #16
- 8000c94: e79f b.n 8000bd6 <__udivmoddi4+0x96>
- 8000c96: f1c7 0c20 rsb ip, r7, #32
- 8000c9a: 40bb lsls r3, r7
- 8000c9c: fa22 fe0c lsr.w lr, r2, ip
- 8000ca0: ea4e 0e03 orr.w lr, lr, r3
- 8000ca4: fa01 f407 lsl.w r4, r1, r7
- 8000ca8: fa20 f50c lsr.w r5, r0, ip
- 8000cac: fa21 f30c lsr.w r3, r1, ip
- 8000cb0: ea4f 481e mov.w r8, lr, lsr #16
- 8000cb4: 4325 orrs r5, r4
- 8000cb6: fbb3 f9f8 udiv r9, r3, r8
- 8000cba: 0c2c lsrs r4, r5, #16
- 8000cbc: fb08 3319 mls r3, r8, r9, r3
- 8000cc0: fa1f fa8e uxth.w sl, lr
- 8000cc4: ea44 4303 orr.w r3, r4, r3, lsl #16
- 8000cc8: fb09 f40a mul.w r4, r9, sl
- 8000ccc: 429c cmp r4, r3
- 8000cce: fa02 f207 lsl.w r2, r2, r7
- 8000cd2: fa00 f107 lsl.w r1, r0, r7
- 8000cd6: d90b bls.n 8000cf0 <__udivmoddi4+0x1b0>
- 8000cd8: eb1e 0303 adds.w r3, lr, r3
- 8000cdc: f109 30ff add.w r0, r9, #4294967295
- 8000ce0: f080 8087 bcs.w 8000df2 <__udivmoddi4+0x2b2>
- 8000ce4: 429c cmp r4, r3
- 8000ce6: f240 8084 bls.w 8000df2 <__udivmoddi4+0x2b2>
- 8000cea: f1a9 0902 sub.w r9, r9, #2
- 8000cee: 4473 add r3, lr
- 8000cf0: 1b1b subs r3, r3, r4
- 8000cf2: b2ad uxth r5, r5
- 8000cf4: fbb3 f0f8 udiv r0, r3, r8
- 8000cf8: fb08 3310 mls r3, r8, r0, r3
- 8000cfc: ea45 4403 orr.w r4, r5, r3, lsl #16
- 8000d00: fb00 fa0a mul.w sl, r0, sl
- 8000d04: 45a2 cmp sl, r4
- 8000d06: d908 bls.n 8000d1a <__udivmoddi4+0x1da>
- 8000d08: eb1e 0404 adds.w r4, lr, r4
- 8000d0c: f100 33ff add.w r3, r0, #4294967295
- 8000d10: d26b bcs.n 8000dea <__udivmoddi4+0x2aa>
- 8000d12: 45a2 cmp sl, r4
- 8000d14: d969 bls.n 8000dea <__udivmoddi4+0x2aa>
- 8000d16: 3802 subs r0, #2
- 8000d18: 4474 add r4, lr
- 8000d1a: ea40 4009 orr.w r0, r0, r9, lsl #16
- 8000d1e: fba0 8902 umull r8, r9, r0, r2
- 8000d22: eba4 040a sub.w r4, r4, sl
- 8000d26: 454c cmp r4, r9
- 8000d28: 46c2 mov sl, r8
- 8000d2a: 464b mov r3, r9
- 8000d2c: d354 bcc.n 8000dd8 <__udivmoddi4+0x298>
- 8000d2e: d051 beq.n 8000dd4 <__udivmoddi4+0x294>
- 8000d30: 2e00 cmp r6, #0
- 8000d32: d069 beq.n 8000e08 <__udivmoddi4+0x2c8>
- 8000d34: ebb1 050a subs.w r5, r1, sl
- 8000d38: eb64 0403 sbc.w r4, r4, r3
- 8000d3c: fa04 fc0c lsl.w ip, r4, ip
- 8000d40: 40fd lsrs r5, r7
- 8000d42: 40fc lsrs r4, r7
- 8000d44: ea4c 0505 orr.w r5, ip, r5
- 8000d48: e9c6 5400 strd r5, r4, [r6]
- 8000d4c: 2700 movs r7, #0
- 8000d4e: e747 b.n 8000be0 <__udivmoddi4+0xa0>
- 8000d50: f1c2 0320 rsb r3, r2, #32
- 8000d54: fa20 f703 lsr.w r7, r0, r3
- 8000d58: 4095 lsls r5, r2
- 8000d5a: fa01 f002 lsl.w r0, r1, r2
- 8000d5e: fa21 f303 lsr.w r3, r1, r3
- 8000d62: ea4f 4e15 mov.w lr, r5, lsr #16
- 8000d66: 4338 orrs r0, r7
- 8000d68: 0c01 lsrs r1, r0, #16
- 8000d6a: fbb3 f7fe udiv r7, r3, lr
- 8000d6e: fa1f f885 uxth.w r8, r5
- 8000d72: fb0e 3317 mls r3, lr, r7, r3
- 8000d76: ea41 4103 orr.w r1, r1, r3, lsl #16
- 8000d7a: fb07 f308 mul.w r3, r7, r8
- 8000d7e: 428b cmp r3, r1
- 8000d80: fa04 f402 lsl.w r4, r4, r2
- 8000d84: d907 bls.n 8000d96 <__udivmoddi4+0x256>
- 8000d86: 1869 adds r1, r5, r1
- 8000d88: f107 3cff add.w ip, r7, #4294967295
- 8000d8c: d22f bcs.n 8000dee <__udivmoddi4+0x2ae>
- 8000d8e: 428b cmp r3, r1
- 8000d90: d92d bls.n 8000dee <__udivmoddi4+0x2ae>
- 8000d92: 3f02 subs r7, #2
- 8000d94: 4429 add r1, r5
- 8000d96: 1acb subs r3, r1, r3
- 8000d98: b281 uxth r1, r0
- 8000d9a: fbb3 f0fe udiv r0, r3, lr
- 8000d9e: fb0e 3310 mls r3, lr, r0, r3
- 8000da2: ea41 4103 orr.w r1, r1, r3, lsl #16
- 8000da6: fb00 f308 mul.w r3, r0, r8
- 8000daa: 428b cmp r3, r1
- 8000dac: d907 bls.n 8000dbe <__udivmoddi4+0x27e>
- 8000dae: 1869 adds r1, r5, r1
- 8000db0: f100 3cff add.w ip, r0, #4294967295
- 8000db4: d217 bcs.n 8000de6 <__udivmoddi4+0x2a6>
- 8000db6: 428b cmp r3, r1
- 8000db8: d915 bls.n 8000de6 <__udivmoddi4+0x2a6>
- 8000dba: 3802 subs r0, #2
- 8000dbc: 4429 add r1, r5
- 8000dbe: 1ac9 subs r1, r1, r3
- 8000dc0: ea40 4707 orr.w r7, r0, r7, lsl #16
- 8000dc4: e73b b.n 8000c3e <__udivmoddi4+0xfe>
- 8000dc6: 4637 mov r7, r6
- 8000dc8: 4630 mov r0, r6
- 8000dca: e709 b.n 8000be0 <__udivmoddi4+0xa0>
- 8000dcc: 4607 mov r7, r0
- 8000dce: e6e7 b.n 8000ba0 <__udivmoddi4+0x60>
- 8000dd0: 4618 mov r0, r3
- 8000dd2: e6fb b.n 8000bcc <__udivmoddi4+0x8c>
- 8000dd4: 4541 cmp r1, r8
- 8000dd6: d2ab bcs.n 8000d30 <__udivmoddi4+0x1f0>
- 8000dd8: ebb8 0a02 subs.w sl, r8, r2
- 8000ddc: eb69 020e sbc.w r2, r9, lr
- 8000de0: 3801 subs r0, #1
- 8000de2: 4613 mov r3, r2
- 8000de4: e7a4 b.n 8000d30 <__udivmoddi4+0x1f0>
- 8000de6: 4660 mov r0, ip
- 8000de8: e7e9 b.n 8000dbe <__udivmoddi4+0x27e>
- 8000dea: 4618 mov r0, r3
- 8000dec: e795 b.n 8000d1a <__udivmoddi4+0x1da>
- 8000dee: 4667 mov r7, ip
- 8000df0: e7d1 b.n 8000d96 <__udivmoddi4+0x256>
- 8000df2: 4681 mov r9, r0
- 8000df4: e77c b.n 8000cf0 <__udivmoddi4+0x1b0>
- 8000df6: 3802 subs r0, #2
- 8000df8: 442c add r4, r5
- 8000dfa: e747 b.n 8000c8c <__udivmoddi4+0x14c>
- 8000dfc: f1ac 0c02 sub.w ip, ip, #2
- 8000e00: 442b add r3, r5
- 8000e02: e72f b.n 8000c64 <__udivmoddi4+0x124>
- 8000e04: 4638 mov r0, r7
- 8000e06: e708 b.n 8000c1a <__udivmoddi4+0xda>
- 8000e08: 4637 mov r7, r6
- 8000e0a: e6e9 b.n 8000be0 <__udivmoddi4+0xa0>
-
-08000e0c <__aeabi_idiv0>:
- 8000e0c: 4770 bx lr
- 8000e0e: bf00 nop
-
-08000e10 :
-* Function Name : deg_to_rad
-* Description : converts degrees to radians
-* Return : angle in radians
-*******************************************************************************/
-double deg_to_rad(double deg)
-{
- 8000e10: b590 push {r4, r7, lr}
- 8000e12: b085 sub sp, #20
- 8000e14: af00 add r7, sp, #0
- 8000e16: ed87 0b00 vstr d0, [r7]
- double rad = deg*(M_PI/180);
- 8000e1a: a30b add r3, pc, #44 ; (adr r3, 8000e48 )
- 8000e1c: e9d3 2300 ldrd r2, r3, [r3]
- 8000e20: e9d7 0100 ldrd r0, r1, [r7]
- 8000e24: f7ff fb9c bl 8000560 <__aeabi_dmul>
- 8000e28: 4603 mov r3, r0
- 8000e2a: 460c mov r4, r1
- 8000e2c: e9c7 3402 strd r3, r4, [r7, #8]
- return rad;
- 8000e30: e9d7 3402 ldrd r3, r4, [r7, #8]
- 8000e34: ec44 3b17 vmov d7, r3, r4
-}
- 8000e38: eeb0 0a47 vmov.f32 s0, s14
- 8000e3c: eef0 0a67 vmov.f32 s1, s15
- 8000e40: 3714 adds r7, #20
- 8000e42: 46bd mov sp, r7
- 8000e44: bd90 pop {r4, r7, pc}
- 8000e46: bf00 nop
- 8000e48: a2529d39 .word 0xa2529d39
- 8000e4c: 3f91df46 .word 0x3f91df46
-
-08000e50 :
-* Function Name : rad_to_deg
-* Description : converts radians to degrees
-* Return : angle in degrees
-*******************************************************************************/
-double rad_to_deg(double rad)
-{
- 8000e50: b590 push {r4, r7, lr}
- 8000e52: b085 sub sp, #20
- 8000e54: af00 add r7, sp, #0
- 8000e56: ed87 0b00 vstr d0, [r7]
- double deg = rad*(180/M_PI);
- 8000e5a: a30b add r3, pc, #44 ; (adr r3, 8000e88 )
- 8000e5c: e9d3 2300 ldrd r2, r3, [r3]
- 8000e60: e9d7 0100 ldrd r0, r1, [r7]
- 8000e64: f7ff fb7c bl 8000560 <__aeabi_dmul>
- 8000e68: 4603 mov r3, r0
- 8000e6a: 460c mov r4, r1
- 8000e6c: e9c7 3402 strd r3, r4, [r7, #8]
- return deg;
- 8000e70: e9d7 3402 ldrd r3, r4, [r7, #8]
- 8000e74: ec44 3b17 vmov d7, r3, r4
-}
- 8000e78: eeb0 0a47 vmov.f32 s0, s14
- 8000e7c: eef0 0a67 vmov.f32 s1, s15
- 8000e80: 3714 adds r7, #20
- 8000e82: 46bd mov sp, r7
- 8000e84: bd90 pop {r4, r7, pc}
- 8000e86: bf00 nop
- 8000e88: 1a63c1f8 .word 0x1a63c1f8
- 8000e8c: 404ca5dc .word 0x404ca5dc
-
-08000e90 :
-* Function Name : leap_year_check
-* Description : checks if year is a leap year
-* Return : false: no leap year, true: leap year
-*******************************************************************************/
-int leap_year_check(int year)
-{
- 8000e90: b480 push {r7}
- 8000e92: b083 sub sp, #12
- 8000e94: af00 add r7, sp, #0
- 8000e96: 6078 str r0, [r7, #4]
- if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
- 8000e98: 687b ldr r3, [r7, #4]
- 8000e9a: f003 0303 and.w r3, r3, #3
- 8000e9e: 2b00 cmp r3, #0
- 8000ea0: d10c bne.n 8000ebc
- 8000ea2: 687a ldr r2, [r7, #4]
- 8000ea4: 4b11 ldr r3, [pc, #68] ; (8000eec )
- 8000ea6: fb83 1302 smull r1, r3, r3, r2
- 8000eaa: 1159 asrs r1, r3, #5
- 8000eac: 17d3 asrs r3, r2, #31
- 8000eae: 1acb subs r3, r1, r3
- 8000eb0: 2164 movs r1, #100 ; 0x64
- 8000eb2: fb01 f303 mul.w r3, r1, r3
- 8000eb6: 1ad3 subs r3, r2, r3
- 8000eb8: 2b00 cmp r3, #0
- 8000eba: d10d bne.n 8000ed8
- 8000ebc: 687a ldr r2, [r7, #4]
- 8000ebe: 4b0b ldr r3, [pc, #44] ; (8000eec )
- 8000ec0: fb83 1302 smull r1, r3, r3, r2
- 8000ec4: 11d9 asrs r1, r3, #7
- 8000ec6: 17d3 asrs r3, r2, #31
- 8000ec8: 1acb subs r3, r1, r3
- 8000eca: f44f 71c8 mov.w r1, #400 ; 0x190
- 8000ece: fb01 f303 mul.w r3, r1, r3
- 8000ed2: 1ad3 subs r3, r2, r3
- 8000ed4: 2b00 cmp r3, #0
- 8000ed6: d101 bne.n 8000edc
- {
- return true;
- 8000ed8: 2301 movs r3, #1
- 8000eda: e000 b.n 8000ede
- }
- return false;
- 8000edc: 2300 movs r3, #0
-}
- 8000ede: 4618 mov r0, r3
- 8000ee0: 370c adds r7, #12
- 8000ee2: 46bd mov sp, r7
- 8000ee4: f85d 7b04 ldr.w r7, [sp], #4
- 8000ee8: 4770 bx lr
- 8000eea: bf00 nop
- 8000eec: 51eb851f .word 0x51eb851f
-
-08000ef0 :
-* Description : calculates the day of year
-* Return : day of year (1.1.. = 1, 2.1.. = 2,...)
-* Source : https://overiq.com/c-examples/c-program-to-calculate-the-day-of-year-from-the-date/
-*******************************************************************************/
-int calc_day_of_year(int day, int mon, int year)
-{
- 8000ef0: b580 push {r7, lr}
- 8000ef2: b088 sub sp, #32
- 8000ef4: af00 add r7, sp, #0
- 8000ef6: 60f8 str r0, [r7, #12]
- 8000ef8: 60b9 str r1, [r7, #8]
- 8000efa: 607a str r2, [r7, #4]
- int days_in_feb = 28;
- 8000efc: 231c movs r3, #28
- 8000efe: 61fb str r3, [r7, #28]
- int doy = day; //day of year
- 8000f00: 68fb ldr r3, [r7, #12]
- 8000f02: 61bb str r3, [r7, #24]
-
- // check for leap year
- bool leap_year = leap_year_check(year);
- 8000f04: 6878 ldr r0, [r7, #4]
- 8000f06: f7ff ffc3 bl 8000e90
- 8000f0a: 4603 mov r3, r0
- 8000f0c: 2b00 cmp r3, #0
- 8000f0e: bf14 ite ne
- 8000f10: 2301 movne r3, #1
- 8000f12: 2300 moveq r3, #0
- 8000f14: 75fb strb r3, [r7, #23]
- if(leap_year == true)
- 8000f16: 7dfb ldrb r3, [r7, #23]
- 8000f18: 2b00 cmp r3, #0
- 8000f1a: d001 beq.n 8000f20
- {
- days_in_feb = 29;
- 8000f1c: 231d movs r3, #29
- 8000f1e: 61fb str r3, [r7, #28]
- }
-
- switch(mon)
- 8000f20: 68bb ldr r3, [r7, #8]
- 8000f22: 3b02 subs r3, #2
- 8000f24: 2b0a cmp r3, #10
- 8000f26: d85b bhi.n 8000fe0
- 8000f28: a201 add r2, pc, #4 ; (adr r2, 8000f30 )
- 8000f2a: f852 f023 ldr.w pc, [r2, r3, lsl #2]
- 8000f2e: bf00 nop
- 8000f30: 08000f5d .word 0x08000f5d
- 8000f34: 08000f65 .word 0x08000f65
- 8000f38: 08000f71 .word 0x08000f71
- 8000f3c: 08000f7d .word 0x08000f7d
- 8000f40: 08000f89 .word 0x08000f89
- 8000f44: 08000f95 .word 0x08000f95
- 8000f48: 08000fa1 .word 0x08000fa1
- 8000f4c: 08000fad .word 0x08000fad
- 8000f50: 08000fb9 .word 0x08000fb9
- 8000f54: 08000fc5 .word 0x08000fc5
- 8000f58: 08000fd3 .word 0x08000fd3
- {
- case 2:
- doy += 31;
- 8000f5c: 69bb ldr r3, [r7, #24]
- 8000f5e: 331f adds r3, #31
- 8000f60: 61bb str r3, [r7, #24]
- break;
- 8000f62: e03d b.n 8000fe0
- case 3:
- doy += 31+days_in_feb;
- 8000f64: 69fb ldr r3, [r7, #28]
- 8000f66: 331f adds r3, #31
- 8000f68: 69ba ldr r2, [r7, #24]
- 8000f6a: 4413 add r3, r2
- 8000f6c: 61bb str r3, [r7, #24]
- break;
- 8000f6e: e037 b.n 8000fe0
- case 4:
- doy += days_in_feb+62;
- 8000f70: 69fb ldr r3, [r7, #28]
- 8000f72: 333e adds r3, #62 ; 0x3e
- 8000f74: 69ba ldr r2, [r7, #24]
- 8000f76: 4413 add r3, r2
- 8000f78: 61bb str r3, [r7, #24]
- break;
- 8000f7a: e031 b.n 8000fe0
- case 5:
- doy += days_in_feb+92;
- 8000f7c: 69fb ldr r3, [r7, #28]
- 8000f7e: 335c adds r3, #92 ; 0x5c
- 8000f80: 69ba ldr r2, [r7, #24]
- 8000f82: 4413 add r3, r2
- 8000f84: 61bb str r3, [r7, #24]
- break;
- 8000f86: e02b b.n 8000fe0
- case 6:
- doy += days_in_feb+123;
- 8000f88: 69fb ldr r3, [r7, #28]
- 8000f8a: 337b adds r3, #123 ; 0x7b
- 8000f8c: 69ba ldr r2, [r7, #24]
- 8000f8e: 4413 add r3, r2
- 8000f90: 61bb str r3, [r7, #24]
- break;
- 8000f92: e025 b.n 8000fe0
- case 7:
- doy += days_in_feb+153;
- 8000f94: 69fb ldr r3, [r7, #28]
- 8000f96: 3399 adds r3, #153 ; 0x99
- 8000f98: 69ba ldr r2, [r7, #24]
- 8000f9a: 4413 add r3, r2
- 8000f9c: 61bb str r3, [r7, #24]
- break;
- 8000f9e: e01f b.n 8000fe0
- case 8:
- doy += days_in_feb+184;
- 8000fa0: 69fb ldr r3, [r7, #28]
- 8000fa2: 33b8 adds r3, #184 ; 0xb8
- 8000fa4: 69ba ldr r2, [r7, #24]
- 8000fa6: 4413 add r3, r2
- 8000fa8: 61bb str r3, [r7, #24]
- break;
- 8000faa: e019 b.n 8000fe0
- case 9:
- doy += days_in_feb+215;
- 8000fac: 69fb ldr r3, [r7, #28]
- 8000fae: 33d7 adds r3, #215 ; 0xd7
- 8000fb0: 69ba ldr r2, [r7, #24]
- 8000fb2: 4413 add r3, r2
- 8000fb4: 61bb str r3, [r7, #24]
- break;
- 8000fb6: e013 b.n 8000fe0
- case 10:
- doy += days_in_feb+245;
- 8000fb8: 69fb ldr r3, [r7, #28]
- 8000fba: 33f5 adds r3, #245 ; 0xf5
- 8000fbc: 69ba ldr r2, [r7, #24]
- 8000fbe: 4413 add r3, r2
- 8000fc0: 61bb str r3, [r7, #24]
- break;
- 8000fc2: e00d b.n 8000fe0
- case 11:
- doy += days_in_feb+276;
- 8000fc4: 69fb ldr r3, [r7, #28]
- 8000fc6: f503 738a add.w r3, r3, #276 ; 0x114
- 8000fca: 69ba ldr r2, [r7, #24]
- 8000fcc: 4413 add r3, r2
- 8000fce: 61bb str r3, [r7, #24]
- break;
- 8000fd0: e006 b.n 8000fe0
- case 12:
- doy += days_in_feb+306;
- 8000fd2: 69fb ldr r3, [r7, #28]
- 8000fd4: f503 7399 add.w r3, r3, #306 ; 0x132
- 8000fd8: 69ba ldr r2, [r7, #24]
- 8000fda: 4413 add r3, r2
- 8000fdc: 61bb str r3, [r7, #24]
- break;
- 8000fde: bf00 nop
- }
- return doy;
- 8000fe0: 69bb ldr r3, [r7, #24]
-}
- 8000fe2: 4618 mov r0, r3
- 8000fe4: 3720 adds r7, #32
- 8000fe6: 46bd mov sp, r7
- 8000fe8: bd80 pop {r7, pc}
- 8000fea: bf00 nop
- 8000fec: 0000 movs r0, r0
- ...
-
-08000ff0 :
-* Function Name : calc_sunrise_sunset
-* Description : calculates the sunrise and sunset time of a specific date
-* Source : General Solar Position Calculations, NOAA Global Monitoring Division
-*******************************************************************************/
-void calc_sunrise_sunset(int date, int month, int year, int sunrise_time[2], int sunset_time[2])
-{
- 8000ff0: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
- 8000ff4: b0a3 sub sp, #140 ; 0x8c
- 8000ff6: af00 add r7, sp, #0
- 8000ff8: 60f8 str r0, [r7, #12]
- 8000ffa: 60b9 str r1, [r7, #8]
- 8000ffc: 607a str r2, [r7, #4]
- 8000ffe: 603b str r3, [r7, #0]
- double gamma = 0;
- 8001000: f04f 0300 mov.w r3, #0
- 8001004: f04f 0400 mov.w r4, #0
- 8001008: e9c7 3420 strd r3, r4, [r7, #128] ; 0x80
- bool leap_year;
- double eqtime = 0;
- 800100c: f04f 0300 mov.w r3, #0
- 8001010: f04f 0400 mov.w r4, #0
- 8001014: e9c7 341a strd r3, r4, [r7, #104] ; 0x68
- double decl = 0;
- 8001018: f04f 0300 mov.w r3, #0
- 800101c: f04f 0400 mov.w r4, #0
- 8001020: e9c7 3418 strd r3, r4, [r7, #96] ; 0x60
- double decl_deg = 0;
- 8001024: f04f 0300 mov.w r3, #0
- 8001028: f04f 0400 mov.w r4, #0
- 800102c: e9c7 3416 strd r3, r4, [r7, #88] ; 0x58
- double zenith_sun = 0;
- 8001030: f04f 0300 mov.w r3, #0
- 8001034: f04f 0400 mov.w r4, #0
- 8001038: e9c7 3414 strd r3, r4, [r7, #80] ; 0x50
- double lat_nbg_rad = 0;
- 800103c: f04f 0300 mov.w r3, #0
- 8001040: f04f 0400 mov.w r4, #0
- 8001044: e9c7 3412 strd r3, r4, [r7, #72] ; 0x48
- double ha = 0;
- 8001048: f04f 0300 mov.w r3, #0
- 800104c: f04f 0400 mov.w r4, #0
- 8001050: e9c7 3410 strd r3, r4, [r7, #64] ; 0x40
- double sunrise = 0;
- 8001054: f04f 0300 mov.w r3, #0
- 8001058: f04f 0400 mov.w r4, #0
- 800105c: e9c7 340e strd r3, r4, [r7, #56] ; 0x38
- double sunset = 0;
- 8001060: f04f 0300 mov.w r3, #0
- 8001064: f04f 0400 mov.w r4, #0
- 8001068: e9c7 340c strd r3, r4, [r7, #48] ; 0x30
- double ha_deg = 0;
- 800106c: f04f 0300 mov.w r3, #0
- 8001070: f04f 0400 mov.w r4, #0
- 8001074: e9c7 340a strd r3, r4, [r7, #40] ; 0x28
- int sunrise_h = 0;
- 8001078: 2300 movs r3, #0
- 800107a: 67fb str r3, [r7, #124] ; 0x7c
- int sunset_h = 0;
- 800107c: 2300 movs r3, #0
- 800107e: 67bb str r3, [r7, #120] ; 0x78
- double sunrise_min = 0;
- 8001080: f04f 0300 mov.w r3, #0
- 8001084: f04f 0400 mov.w r4, #0
- 8001088: e9c7 3408 strd r3, r4, [r7, #32]
- double sunset_min = 0;
- 800108c: f04f 0300 mov.w r3, #0
- 8001090: f04f 0400 mov.w r4, #0
- 8001094: e9c7 3406 strd r3, r4, [r7, #24]
- int int_sunrise_min = 0;
- 8001098: 2300 movs r3, #0
- 800109a: 677b str r3, [r7, #116] ; 0x74
- int int_sunset_min = 0;
- 800109c: 2300 movs r3, #0
- 800109e: 673b str r3, [r7, #112] ; 0x70
-
- //day of year calculation
- int day_of_year = calc_day_of_year(date, month, year);
- 80010a0: 687a ldr r2, [r7, #4]
- 80010a2: 68b9 ldr r1, [r7, #8]
- 80010a4: 68f8 ldr r0, [r7, #12]
- 80010a6: f7ff ff23 bl 8000ef0
- 80010aa: 6178 str r0, [r7, #20]
-
- // fractional year (γ) in radians
- // check for leap year
- leap_year = leap_year_check(year);
- 80010ac: 6878 ldr r0, [r7, #4]
- 80010ae: f7ff feef bl 8000e90
- 80010b2: 4603 mov r3, r0
- 80010b4: 2b00 cmp r3, #0
- 80010b6: bf14 ite ne
- 80010b8: 2301 movne r3, #1
- 80010ba: 2300 moveq r3, #0
- 80010bc: 74fb strb r3, [r7, #19]
- if(leap_year == false)
- 80010be: 7cfb ldrb r3, [r7, #19]
- 80010c0: f083 0301 eor.w r3, r3, #1
- 80010c4: b2db uxtb r3, r3
- 80010c6: 2b00 cmp r3, #0
- 80010c8: d00f beq.n 80010ea
- {
- //The back part of the formula was omitted, because there is no difference in the result
- gamma = ((2 * M_PI)/365)*(day_of_year - 1);
- 80010ca: 697b ldr r3, [r7, #20]
- 80010cc: 3b01 subs r3, #1
- 80010ce: 4618 mov r0, r3
- 80010d0: f7ff f9dc bl 800048c <__aeabi_i2d>
- 80010d4: f20f 537c addw r3, pc, #1404 ; 0x57c
- 80010d8: e9d3 2300 ldrd r2, r3, [r3]
- 80010dc: f7ff fa40 bl 8000560 <__aeabi_dmul>
- 80010e0: 4603 mov r3, r0
- 80010e2: 460c mov r4, r1
- 80010e4: e9c7 3420 strd r3, r4, [r7, #128] ; 0x80
- 80010e8: e00e b.n 8001108
- } else {
- //The back part of the formula was omitted, because there is no difference in the result
- gamma = ((2 * M_PI)/366)*(day_of_year - 1);
- 80010ea: 697b ldr r3, [r7, #20]
- 80010ec: 3b01 subs r3, #1
- 80010ee: 4618 mov r0, r3
- 80010f0: f7ff f9cc bl 800048c <__aeabi_i2d>
- 80010f4: f20f 5364 addw r3, pc, #1380 ; 0x564
- 80010f8: e9d3 2300 ldrd r2, r3, [r3]
- 80010fc: f7ff fa30 bl 8000560 <__aeabi_dmul>
- 8001100: 4603 mov r3, r0
- 8001102: 460c mov r4, r1
- 8001104: e9c7 3420 strd r3, r4, [r7, #128] ; 0x80
- }
-
- //Equation of time in minutes
- eqtime = 229.18*(0.000075 + 0.001868*cos(gamma) - 0.032077*sin(gamma) - 0.014615*cos(2*gamma) - 0.040849*sin(2*gamma));
- 8001108: ed97 0b20 vldr d0, [r7, #128] ; 0x80
- 800110c: f003 f968 bl 80043e0
- 8001110: ec51 0b10 vmov r0, r1, d0
- 8001114: f20f 534c addw r3, pc, #1356 ; 0x54c
- 8001118: e9d3 2300 ldrd r2, r3, [r3]
- 800111c: f7ff fa20 bl 8000560 <__aeabi_dmul>
- 8001120: 4603 mov r3, r0
- 8001122: 460c mov r4, r1
- 8001124: 4618 mov r0, r3
- 8001126: 4621 mov r1, r4
- 8001128: f20f 5340 addw r3, pc, #1344 ; 0x540
- 800112c: e9d3 2300 ldrd r2, r3, [r3]
- 8001130: f7ff f860 bl 80001f4 <__adddf3>
- 8001134: 4603 mov r3, r0
- 8001136: 460c mov r4, r1
- 8001138: 4625 mov r5, r4
- 800113a: 461c mov r4, r3
- 800113c: ed97 0b20 vldr d0, [r7, #128] ; 0x80
- 8001140: f003 fa16 bl 8004570
- 8001144: ec51 0b10 vmov r0, r1, d0
- 8001148: f20f 5328 addw r3, pc, #1320 ; 0x528
- 800114c: e9d3 2300 ldrd r2, r3, [r3]
- 8001150: f7ff fa06 bl 8000560 <__aeabi_dmul>
- 8001154: 4602 mov r2, r0
- 8001156: 460b mov r3, r1
- 8001158: 4620 mov r0, r4
- 800115a: 4629 mov r1, r5
- 800115c: f7ff f848 bl 80001f0 <__aeabi_dsub>
- 8001160: 4603 mov r3, r0
- 8001162: 460c mov r4, r1
- 8001164: 4625 mov r5, r4
- 8001166: 461c mov r4, r3
- 8001168: e9d7 0120 ldrd r0, r1, [r7, #128] ; 0x80
- 800116c: 4602 mov r2, r0
- 800116e: 460b mov r3, r1
- 8001170: f7ff f840 bl 80001f4 <__adddf3>
- 8001174: 4602 mov r2, r0
- 8001176: 460b mov r3, r1
- 8001178: ec43 2b17 vmov d7, r2, r3
- 800117c: eeb0 0a47 vmov.f32 s0, s14
- 8001180: eef0 0a67 vmov.f32 s1, s15
- 8001184: f003 f92c bl 80043e0
- 8001188: ec51 0b10 vmov r0, r1, d0
- 800118c: f20f 43ec addw r3, pc, #1260 ; 0x4ec
- 8001190: e9d3 2300 ldrd r2, r3, [r3]
- 8001194: f7ff f9e4 bl 8000560 <__aeabi_dmul>
- 8001198: 4602 mov r2, r0
- 800119a: 460b mov r3, r1
- 800119c: 4620 mov r0, r4
- 800119e: 4629 mov r1, r5
- 80011a0: f7ff f826 bl 80001f0 <__aeabi_dsub>
- 80011a4: 4603 mov r3, r0
- 80011a6: 460c mov r4, r1
- 80011a8: 4625 mov r5, r4
- 80011aa: 461c mov r4, r3
- 80011ac: e9d7 0120 ldrd r0, r1, [r7, #128] ; 0x80
- 80011b0: 4602 mov r2, r0
- 80011b2: 460b mov r3, r1
- 80011b4: f7ff f81e bl 80001f4 <__adddf3>
- 80011b8: 4602 mov r2, r0
- 80011ba: 460b mov r3, r1
- 80011bc: ec43 2b17 vmov d7, r2, r3
- 80011c0: eeb0 0a47 vmov.f32 s0, s14
- 80011c4: eef0 0a67 vmov.f32 s1, s15
- 80011c8: f003 f9d2 bl 8004570
- 80011cc: ec51 0b10 vmov r0, r1, d0
- 80011d0: f20f 43b0 addw r3, pc, #1200 ; 0x4b0
- 80011d4: e9d3 2300 ldrd r2, r3, [r3]
- 80011d8: f7ff f9c2 bl 8000560 <__aeabi_dmul>
- 80011dc: 4602 mov r2, r0
- 80011de: 460b mov r3, r1
- 80011e0: 4620 mov r0, r4
- 80011e2: 4629 mov r1, r5
- 80011e4: f7ff f804 bl 80001f0 <__aeabi_dsub>
- 80011e8: 4603 mov r3, r0
- 80011ea: 460c mov r4, r1
- 80011ec: 4618 mov r0, r3
- 80011ee: 4621 mov r1, r4
- 80011f0: f20f 4398 addw r3, pc, #1176 ; 0x498
- 80011f4: e9d3 2300 ldrd r2, r3, [r3]
- 80011f8: f7ff f9b2 bl 8000560 <__aeabi_dmul>
- 80011fc: 4603 mov r3, r0
- 80011fe: 460c mov r4, r1
- 8001200: e9c7 341a strd r3, r4, [r7, #104] ; 0x68
-
- //Solar declination angle in radians
- decl = 0.006918 - 0.399912*cos(gamma) + 0.070257*sin(gamma) - 0.006758*cos(2*gamma) + 0.000907*sin(2*gamma) - 0.002697*cos(3*gamma) + 0.00148*sin(3*gamma);
- 8001204: ed97 0b20 vldr d0, [r7, #128] ; 0x80
- 8001208: f003 f8ea bl 80043e0
- 800120c: ec51 0b10 vmov r0, r1, d0
- 8001210: f20f 4380 addw r3, pc, #1152 ; 0x480
- 8001214: e9d3 2300 ldrd r2, r3, [r3]
- 8001218: f7ff f9a2 bl 8000560 <__aeabi_dmul>
- 800121c: 4603 mov r3, r0
- 800121e: 460c mov r4, r1
- 8001220: 461a mov r2, r3
- 8001222: 4623 mov r3, r4
- 8001224: f20f 4174 addw r1, pc, #1140 ; 0x474
- 8001228: e9d1 0100 ldrd r0, r1, [r1]
- 800122c: f7fe ffe0 bl 80001f0 <__aeabi_dsub>
- 8001230: 4603 mov r3, r0
- 8001232: 460c mov r4, r1
- 8001234: 4625 mov r5, r4
- 8001236: 461c mov r4, r3
- 8001238: ed97 0b20 vldr d0, [r7, #128] ; 0x80
- 800123c: f003 f998 bl 8004570
- 8001240: ec51 0b10 vmov r0, r1, d0
- 8001244: f20f 435c addw r3, pc, #1116 ; 0x45c
- 8001248: e9d3 2300 ldrd r2, r3, [r3]
- 800124c: f7ff f988 bl 8000560 <__aeabi_dmul>
- 8001250: 4602 mov r2, r0
- 8001252: 460b mov r3, r1
- 8001254: 4620 mov r0, r4
- 8001256: 4629 mov r1, r5
- 8001258: f7fe ffcc bl 80001f4 <__adddf3>
- 800125c: 4603 mov r3, r0
- 800125e: 460c mov r4, r1
- 8001260: 4625 mov r5, r4
- 8001262: 461c mov r4, r3
- 8001264: e9d7 0120 ldrd r0, r1, [r7, #128] ; 0x80
- 8001268: 4602 mov r2, r0
- 800126a: 460b mov r3, r1
- 800126c: f7fe ffc2 bl 80001f4 <__adddf3>
- 8001270: 4602 mov r2, r0
- 8001272: 460b mov r3, r1
- 8001274: ec43 2b17 vmov d7, r2, r3
- 8001278: eeb0 0a47 vmov.f32 s0, s14
- 800127c: eef0 0a67 vmov.f32 s1, s15
- 8001280: f003 f8ae bl 80043e0
- 8001284: ec51 0b10 vmov r0, r1, d0
- 8001288: f20f 4320 addw r3, pc, #1056 ; 0x420
- 800128c: e9d3 2300 ldrd r2, r3, [r3]
- 8001290: f7ff f966 bl 8000560 <__aeabi_dmul>
- 8001294: 4602 mov r2, r0
- 8001296: 460b mov r3, r1
- 8001298: 4620 mov r0, r4
- 800129a: 4629 mov r1, r5
- 800129c: f7fe ffa8 bl 80001f0 <__aeabi_dsub>
- 80012a0: 4603 mov r3, r0
- 80012a2: 460c mov r4, r1
- 80012a4: 4625 mov r5, r4
- 80012a6: 461c mov r4, r3
- 80012a8: e9d7 0120 ldrd r0, r1, [r7, #128] ; 0x80
- 80012ac: 4602 mov r2, r0
- 80012ae: 460b mov r3, r1
- 80012b0: f7fe ffa0 bl 80001f4 <__adddf3>
- 80012b4: 4602 mov r2, r0
- 80012b6: 460b mov r3, r1
- 80012b8: ec43 2b17 vmov d7, r2, r3
- 80012bc: eeb0 0a47 vmov.f32 s0, s14
- 80012c0: eef0 0a67 vmov.f32 s1, s15
- 80012c4: f003 f954 bl 8004570
- 80012c8: ec51 0b10 vmov r0, r1, d0
- 80012cc: a3f9 add r3, pc, #996 ; (adr r3, 80016b4 )
- 80012ce: e9d3 2300 ldrd r2, r3, [r3]
- 80012d2: f7ff f945 bl 8000560 <__aeabi_dmul>
- 80012d6: 4602 mov r2, r0
- 80012d8: 460b mov r3, r1
- 80012da: 4620 mov r0, r4
- 80012dc: 4629 mov r1, r5
- 80012de: f7fe ff89 bl 80001f4 <__adddf3>
- 80012e2: 4603 mov r3, r0
- 80012e4: 460c mov r4, r1
- 80012e6: 4625 mov r5, r4
- 80012e8: 461c mov r4, r3
- 80012ea: f04f 0200 mov.w r2, #0
- 80012ee: 4bd0 ldr r3, [pc, #832] ; (8001630 )
- 80012f0: e9d7 0120 ldrd r0, r1, [r7, #128] ; 0x80
- 80012f4: f7ff f934 bl 8000560 <__aeabi_dmul>
- 80012f8: 4602 mov r2, r0
- 80012fa: 460b mov r3, r1
- 80012fc: ec43 2b17 vmov d7, r2, r3
- 8001300: eeb0 0a47 vmov.f32 s0, s14
- 8001304: eef0 0a67 vmov.f32 s1, s15
- 8001308: f003 f86a bl 80043e0
- 800130c: ec51 0b10 vmov r0, r1, d0
- 8001310: a3c1 add r3, pc, #772 ; (adr r3, 8001618 )
- 8001312: e9d3 2300 ldrd r2, r3, [r3]
- 8001316: f7ff f923 bl 8000560 <__aeabi_dmul>
- 800131a: 4602 mov r2, r0
- 800131c: 460b mov r3, r1
- 800131e: 4620 mov r0, r4
- 8001320: 4629 mov r1, r5
- 8001322: f7fe ff65 bl 80001f0 <__aeabi_dsub>
- 8001326: 4603 mov r3, r0
- 8001328: 460c mov r4, r1
- 800132a: 4625 mov r5, r4
- 800132c: 461c mov r4, r3
- 800132e: f04f 0200 mov.w r2, #0
- 8001332: 4bbf ldr r3, [pc, #764] ; (8001630 )
- 8001334: e9d7 0120 ldrd r0, r1, [r7, #128] ; 0x80
- 8001338: f7ff f912 bl 8000560 <__aeabi_dmul>
- 800133c: 4602 mov r2, r0
- 800133e: 460b mov r3, r1
- 8001340: ec43 2b17 vmov d7, r2, r3
- 8001344: eeb0 0a47 vmov.f32 s0, s14
- 8001348: eef0 0a67 vmov.f32 s1, s15
- 800134c: f003 f910 bl 8004570
- 8001350: ec51 0b10 vmov r0, r1, d0
- 8001354: a3b2 add r3, pc, #712 ; (adr r3, 8001620 )
- 8001356: e9d3 2300 ldrd r2, r3, [r3]
- 800135a: f7ff f901 bl 8000560 <__aeabi_dmul>
- 800135e: 4602 mov r2, r0
- 8001360: 460b mov r3, r1
- 8001362: 4620 mov r0, r4
- 8001364: 4629 mov r1, r5
- 8001366: f7fe ff45 bl 80001f4 <__adddf3>
- 800136a: 4603 mov r3, r0
- 800136c: 460c mov r4, r1
- 800136e: e9c7 3418 strd r3, r4, [r7, #96] ; 0x60
-
- //Solar declination angle in degrees
- decl_deg = rad_to_deg(decl);
- 8001372: ed97 0b18 vldr d0, [r7, #96] ; 0x60
- 8001376: f7ff fd6b bl 8000e50
- 800137a: ed87 0b16 vstr d0, [r7, #88] ; 0x58
-
- //Hour angle in degrees, positive number corresponds to sunrise, negative to sunset
- //special case of sunrise or sunset, the zenith is set to 90.833Deg
- zenith_sun = deg_to_rad(90.833);
- 800137e: ed9f 0baa vldr d0, [pc, #680] ; 8001628
- 8001382: f7ff fd45 bl 8000e10
- 8001386: ed87 0b14 vstr d0, [r7, #80] ; 0x50
- //Latitude of Nuernberg in rad
- lat_nbg_rad = deg_to_rad(latitude_nbg);
- 800138a: 4baa ldr r3, [pc, #680] ; (8001634 )
- 800138c: 681b ldr r3, [r3, #0]
- 800138e: 4618 mov r0, r3
- 8001390: f7ff f87c bl 800048c <__aeabi_i2d>
- 8001394: 4603 mov r3, r0
- 8001396: 460c mov r4, r1
- 8001398: ec44 3b10 vmov d0, r3, r4
- 800139c: f7ff fd38 bl 8000e10
- 80013a0: ed87 0b12 vstr d0, [r7, #72] ; 0x48
- ha = acos((cos(zenith_sun)/(cos(lat_nbg_rad)*cos(decl)))-(tan(lat_nbg_rad)*tan(decl)));
- 80013a4: ed97 0b14 vldr d0, [r7, #80] ; 0x50
- 80013a8: f003 f81a bl 80043e0
- 80013ac: ec56 5b10 vmov r5, r6, d0
- 80013b0: ed97 0b12 vldr d0, [r7, #72] ; 0x48
- 80013b4: f003 f814 bl 80043e0
- 80013b8: ec59 8b10 vmov r8, r9, d0
- 80013bc: ed97 0b18 vldr d0, [r7, #96] ; 0x60
- 80013c0: f003 f80e bl 80043e0
- 80013c4: ec54 3b10 vmov r3, r4, d0
- 80013c8: 461a mov r2, r3
- 80013ca: 4623 mov r3, r4
- 80013cc: 4640 mov r0, r8
- 80013ce: 4649 mov r1, r9
- 80013d0: f7ff f8c6 bl 8000560 <__aeabi_dmul>
- 80013d4: 4603 mov r3, r0
- 80013d6: 460c mov r4, r1
- 80013d8: 461a mov r2, r3
- 80013da: 4623 mov r3, r4
- 80013dc: 4628 mov r0, r5
- 80013de: 4631 mov r1, r6
- 80013e0: f7ff f9e8 bl 80007b4 <__aeabi_ddiv>
- 80013e4: 4603 mov r3, r0
- 80013e6: 460c mov r4, r1
- 80013e8: 4625 mov r5, r4
- 80013ea: 461c mov r4, r3
- 80013ec: ed97 0b12 vldr d0, [r7, #72] ; 0x48
- 80013f0: f003 f906 bl 8004600
- 80013f4: ec59 8b10 vmov r8, r9, d0
- 80013f8: ed97 0b18 vldr d0, [r7, #96] ; 0x60
- 80013fc: f003 f900 bl 8004600
- 8001400: ec53 2b10 vmov r2, r3, d0
- 8001404: 4640 mov r0, r8
- 8001406: 4649 mov r1, r9
- 8001408: f7ff f8aa bl 8000560 <__aeabi_dmul>
- 800140c: 4602 mov r2, r0
- 800140e: 460b mov r3, r1
- 8001410: 4620 mov r0, r4
- 8001412: 4629 mov r1, r5
- 8001414: f7fe feec bl 80001f0 <__aeabi_dsub>
- 8001418: 4603 mov r3, r0
- 800141a: 460c mov r4, r1
- 800141c: ec44 3b17 vmov d7, r3, r4
- 8001420: eeb0 0a47 vmov.f32 s0, s14
- 8001424: eef0 0a67 vmov.f32 s1, s15
- 8001428: f003 f91a bl 8004660
- 800142c: ed87 0b10 vstr d0, [r7, #64] ; 0x40
- ha_deg = rad_to_deg(ha);
- 8001430: ed97 0b10 vldr d0, [r7, #64] ; 0x40
- 8001434: f7ff fd0c bl 8000e50
- 8001438: ed87 0b0a vstr d0, [r7, #40] ; 0x28
-
- //UTC time of sunrise (or sunset) in minutes
- sunrise = (720-4*(longitude_nbg+ha_deg)-eqtime);
- 800143c: 4b7e ldr r3, [pc, #504] ; (8001638 )
- 800143e: 681b ldr r3, [r3, #0]
- 8001440: 4618 mov r0, r3
- 8001442: f7ff f823 bl 800048c <__aeabi_i2d>
- 8001446: e9d7 230a ldrd r2, r3, [r7, #40] ; 0x28
- 800144a: f7fe fed3 bl 80001f4 <__adddf3>
- 800144e: 4603 mov r3, r0
- 8001450: 460c mov r4, r1
- 8001452: 4618 mov r0, r3
- 8001454: 4621 mov r1, r4
- 8001456: f04f 0200 mov.w r2, #0
- 800145a: 4b78 ldr r3, [pc, #480] ; (800163c )
- 800145c: f7ff f880 bl 8000560 <__aeabi_dmul>
- 8001460: 4603 mov r3, r0
- 8001462: 460c mov r4, r1
- 8001464: 461a mov r2, r3
- 8001466: 4623 mov r3, r4
- 8001468: f04f 0000 mov.w r0, #0
- 800146c: 4974 ldr r1, [pc, #464] ; (8001640 )
- 800146e: f7fe febf bl 80001f0 <__aeabi_dsub>
- 8001472: 4603 mov r3, r0
- 8001474: 460c mov r4, r1
- 8001476: 4618 mov r0, r3
- 8001478: 4621 mov r1, r4
- 800147a: e9d7 231a ldrd r2, r3, [r7, #104] ; 0x68
- 800147e: f7fe feb7 bl 80001f0 <__aeabi_dsub>
- 8001482: 4603 mov r3, r0
- 8001484: 460c mov r4, r1
- 8001486: e9c7 340e strd r3, r4, [r7, #56] ; 0x38
- sunset = 720-4*(longitude_nbg-ha_deg)-eqtime;
- 800148a: 4b6b ldr r3, [pc, #428] ; (8001638 )
- 800148c: 681b ldr r3, [r3, #0]
- 800148e: 4618 mov r0, r3
- 8001490: f7fe fffc bl 800048c <__aeabi_i2d>
- 8001494: e9d7 230a ldrd r2, r3, [r7, #40] ; 0x28
- 8001498: f7fe feaa bl 80001f0 <__aeabi_dsub>
- 800149c: 4603 mov r3, r0
- 800149e: 460c mov r4, r1
- 80014a0: 4618 mov r0, r3
- 80014a2: 4621 mov r1, r4
- 80014a4: f04f 0200 mov.w r2, #0
- 80014a8: 4b64 ldr r3, [pc, #400] ; (800163c )
- 80014aa: f7ff f859 bl 8000560 <__aeabi_dmul>
- 80014ae: 4603 mov r3, r0
- 80014b0: 460c mov r4, r1
- 80014b2: 461a mov r2, r3
- 80014b4: 4623 mov r3, r4
- 80014b6: f04f 0000 mov.w r0, #0
- 80014ba: 4961 ldr r1, [pc, #388] ; (8001640 )
- 80014bc: f7fe fe98 bl 80001f0 <__aeabi_dsub>
- 80014c0: 4603 mov r3, r0
- 80014c2: 460c mov r4, r1
- 80014c4: 4618 mov r0, r3
- 80014c6: 4621 mov r1, r4
- 80014c8: e9d7 231a ldrd r2, r3, [r7, #104] ; 0x68
- 80014cc: f7fe fe90 bl 80001f0 <__aeabi_dsub>
- 80014d0: 4603 mov r3, r0
- 80014d2: 460c mov r4, r1
- 80014d4: e9c7 340c strd r3, r4, [r7, #48] ; 0x30
-
- //Convert sunrise (or sunset) UTC time in hours
- sunrise = sunrise/60;
- 80014d8: f04f 0200 mov.w r2, #0
- 80014dc: 4b59 ldr r3, [pc, #356] ; (8001644 )
- 80014de: e9d7 010e ldrd r0, r1, [r7, #56] ; 0x38
- 80014e2: f7ff f967 bl 80007b4 <__aeabi_ddiv>
- 80014e6: 4603 mov r3, r0
- 80014e8: 460c mov r4, r1
- 80014ea: e9c7 340e strd r3, r4, [r7, #56] ; 0x38
- sunset = sunset/60;
- 80014ee: f04f 0200 mov.w r2, #0
- 80014f2: 4b54 ldr r3, [pc, #336] ; (8001644 )
- 80014f4: e9d7 010c ldrd r0, r1, [r7, #48] ; 0x30
- 80014f8: f7ff f95c bl 80007b4 <__aeabi_ddiv>
- 80014fc: 4603 mov r3, r0
- 80014fe: 460c mov r4, r1
- 8001500: e9c7 340c strd r3, r4, [r7, #48] ; 0x30
-
- //Seperate hours and minutes
- sunrise_h = floor(sunrise);
- 8001504: ed97 0b0e vldr d0, [r7, #56] ; 0x38
- 8001508: f002 ffae bl 8004468
- 800150c: ec54 3b10 vmov r3, r4, d0
- 8001510: 4618 mov r0, r3
- 8001512: 4621 mov r1, r4
- 8001514: f7ff fad4 bl 8000ac0 <__aeabi_d2iz>
- 8001518: 4603 mov r3, r0
- 800151a: 67fb str r3, [r7, #124] ; 0x7c
- sunrise_min = sunrise - sunrise_h;
- 800151c: 6ff8 ldr r0, [r7, #124] ; 0x7c
- 800151e: f7fe ffb5 bl 800048c <__aeabi_i2d>
- 8001522: 4603 mov r3, r0
- 8001524: 460c mov r4, r1
- 8001526: 461a mov r2, r3
- 8001528: 4623 mov r3, r4
- 800152a: e9d7 010e ldrd r0, r1, [r7, #56] ; 0x38
- 800152e: f7fe fe5f bl 80001f0 <__aeabi_dsub>
- 8001532: 4603 mov r3, r0
- 8001534: 460c mov r4, r1
- 8001536: e9c7 3408 strd r3, r4, [r7, #32]
- //Cut off after two decimal places
- int_sunrise_min = floor(sunrise_min * 100.0);
- 800153a: f04f 0200 mov.w r2, #0
- 800153e: 4b42 ldr r3, [pc, #264] ; (8001648 )
- 8001540: e9d7 0108 ldrd r0, r1, [r7, #32]
- 8001544: f7ff f80c bl 8000560 <__aeabi_dmul>
- 8001548: 4603 mov r3, r0
- 800154a: 460c mov r4, r1
- 800154c: ec44 3b17 vmov d7, r3, r4
- 8001550: eeb0 0a47 vmov.f32 s0, s14
- 8001554: eef0 0a67 vmov.f32 s1, s15
- 8001558: f002 ff86 bl 8004468
- 800155c: ec54 3b10 vmov r3, r4, d0
- 8001560: 4618 mov r0, r3
- 8001562: 4621 mov r1, r4
- 8001564: f7ff faac bl 8000ac0 <__aeabi_d2iz>
- 8001568: 4603 mov r3, r0
- 800156a: 677b str r3, [r7, #116] ; 0x74
- if (int_sunrise_min >= 60)
- 800156c: 6f7b ldr r3, [r7, #116] ; 0x74
- 800156e: 2b3b cmp r3, #59 ; 0x3b
- 8001570: dd05 ble.n 800157e
- {
- sunrise_h = sunrise_h + 1;
- 8001572: 6ffb ldr r3, [r7, #124] ; 0x7c
- 8001574: 3301 adds r3, #1
- 8001576: 67fb str r3, [r7, #124] ; 0x7c
- int_sunrise_min = int_sunrise_min - 60;
- 8001578: 6f7b ldr r3, [r7, #116] ; 0x74
- 800157a: 3b3c subs r3, #60 ; 0x3c
- 800157c: 677b str r3, [r7, #116] ; 0x74
- }
- sunset_h = floor(sunset);
- 800157e: ed97 0b0c vldr d0, [r7, #48] ; 0x30
- 8001582: f002 ff71 bl 8004468
- 8001586: ec54 3b10 vmov r3, r4, d0
- 800158a: 4618 mov r0, r3
- 800158c: 4621 mov r1, r4
- 800158e: f7ff fa97 bl 8000ac0 <__aeabi_d2iz>
- 8001592: 4603 mov r3, r0
- 8001594: 67bb str r3, [r7, #120] ; 0x78
- sunset_min = sunset - sunset_h;
- 8001596: 6fb8 ldr r0, [r7, #120] ; 0x78
- 8001598: f7fe ff78 bl 800048c <__aeabi_i2d>
- 800159c: 4603 mov r3, r0
- 800159e: 460c mov r4, r1
- 80015a0: 461a mov r2, r3
- 80015a2: 4623 mov r3, r4
- 80015a4: e9d7 010c ldrd r0, r1, [r7, #48] ; 0x30
- 80015a8: f7fe fe22 bl 80001f0 <__aeabi_dsub>
- 80015ac: 4603 mov r3, r0
- 80015ae: 460c mov r4, r1
- 80015b0: e9c7 3406 strd r3, r4, [r7, #24]
- //Cut off after two decimal places
- int_sunset_min = floor(sunset_min * 100.0);
- 80015b4: f04f 0200 mov.w r2, #0
- 80015b8: 4b23 ldr r3, [pc, #140] ; (8001648 )
- 80015ba: e9d7 0106 ldrd r0, r1, [r7, #24]
- 80015be: f7fe ffcf bl 8000560 <__aeabi_dmul>
- 80015c2: 4603 mov r3, r0
- 80015c4: 460c mov r4, r1
- 80015c6: ec44 3b17 vmov d7, r3, r4
- 80015ca: eeb0 0a47 vmov.f32 s0, s14
- 80015ce: eef0 0a67 vmov.f32 s1, s15
- 80015d2: f002 ff49 bl 8004468
- 80015d6: ec54 3b10 vmov r3, r4, d0
- 80015da: 4618 mov r0, r3
- 80015dc: 4621 mov r1, r4
- 80015de: f7ff fa6f bl 8000ac0 <__aeabi_d2iz>
- 80015e2: 4603 mov r3, r0
- 80015e4: 673b str r3, [r7, #112] ; 0x70
- if (int_sunset_min >= 60)
- 80015e6: 6f3b ldr r3, [r7, #112] ; 0x70
- 80015e8: 2b3b cmp r3, #59 ; 0x3b
- 80015ea: dd05 ble.n 80015f8
- {
- sunset_h = sunset_h + 1;
- 80015ec: 6fbb ldr r3, [r7, #120] ; 0x78
- 80015ee: 3301 adds r3, #1
- 80015f0: 67bb str r3, [r7, #120] ; 0x78
- int_sunset_min = int_sunset_min - 60;
- 80015f2: 6f3b ldr r3, [r7, #112] ; 0x70
- 80015f4: 3b3c subs r3, #60 ; 0x3c
- 80015f6: 673b str r3, [r7, #112] ; 0x70
- }
-
- //Add time difference from German time to UTC Time
- //Private variable winterTime must be initialized accordingly
- if (winterTime)
- 80015f8: 4b14 ldr r3, [pc, #80] ; (800164c )
- 80015fa: 781b ldrb r3, [r3, #0]
- 80015fc: 2b00 cmp r3, #0
- 80015fe: d05d beq.n 80016bc
- {
- sunrise_h = sunrise_h + UTC_DER_win;
- 8001600: 4b13 ldr r3, [pc, #76] ; (8001650 )
- 8001602: 681b ldr r3, [r3, #0]
- 8001604: 6ffa ldr r2, [r7, #124] ; 0x7c
- 8001606: 4413 add r3, r2
- 8001608: 67fb str r3, [r7, #124] ; 0x7c
- sunset_h = sunset_h + UTC_DER_win;
- 800160a: 4b11 ldr r3, [pc, #68] ; (8001650 )
- 800160c: 681b ldr r3, [r3, #0]
- 800160e: 6fba ldr r2, [r7, #120] ; 0x78
- 8001610: 4413 add r3, r2
- 8001612: 67bb str r3, [r7, #120] ; 0x78
- 8001614: e05c b.n 80016d0
- 8001616: bf00 nop
- 8001618: d9839475 .word 0xd9839475
- 800161c: 3f661804 .word 0x3f661804
- 8001620: e646f156 .word 0xe646f156
- 8001624: 3f583f91 .word 0x3f583f91
- 8001628: df3b645a .word 0xdf3b645a
- 800162c: 4056b54f .word 0x4056b54f
- 8001630: 40080000 .word 0x40080000
- 8001634: 20000000 .word 0x20000000
- 8001638: 20000004 .word 0x20000004
- 800163c: 40100000 .word 0x40100000
- 8001640: 40868000 .word 0x40868000
- 8001644: 404e0000 .word 0x404e0000
- 8001648: 40590000 .word 0x40590000
- 800164c: 20000010 .word 0x20000010
- 8001650: 2000000c .word 0x2000000c
- 8001654: d4b3ac9a .word 0xd4b3ac9a
- 8001658: 3f91a099 .word 0x3f91a099
- 800165c: 79e42523 .word 0x79e42523
- 8001660: 3f919445 .word 0x3f919445
- 8001664: ba2be059 .word 0xba2be059
- 8001668: 3f5e9af5 .word 0x3f5e9af5
- 800166c: 30553261 .word 0x30553261
- 8001670: 3f13a92a .word 0x3f13a92a
- 8001674: 83e8576d .word 0x83e8576d
- 8001678: 3fa06c65 .word 0x3fa06c65
- 800167c: 183f91e6 .word 0x183f91e6
- 8001680: 3f8dee78 .word 0x3f8dee78
- 8001684: fe260b2d .word 0xfe260b2d
- 8001688: 3fa4ea28 .word 0x3fa4ea28
- 800168c: 8f5c28f6 .word 0x8f5c28f6
- 8001690: 406ca5c2 .word 0x406ca5c2
- 8001694: 8051c9f7 .word 0x8051c9f7
- 8001698: 3fd99828 .word 0x3fd99828
- 800169c: 7c0f4517 .word 0x7c0f4517
- 80016a0: 3f7c560c .word 0x3f7c560c
- 80016a4: dd50a88f .word 0xdd50a88f
- 80016a8: 3fb1fc5c .word 0x3fb1fc5c
- 80016ac: cfc829d0 .word 0xcfc829d0
- 80016b0: 3f7bae46 .word 0x3f7bae46
- 80016b4: ab324852 .word 0xab324852
- 80016b8: 3f4db877 .word 0x3f4db877
- } else {
- sunrise_h = sunrise_h + UTC_DER_sum;
- 80016bc: 4b0f ldr r3, [pc, #60] ; (80016fc )
- 80016be: 681b ldr r3, [r3, #0]
- 80016c0: 6ffa ldr r2, [r7, #124] ; 0x7c
- 80016c2: 4413 add r3, r2
- 80016c4: 67fb str r3, [r7, #124] ; 0x7c
- sunset_h = sunset_h + UTC_DER_sum;
- 80016c6: 4b0d ldr r3, [pc, #52] ; (80016fc )
- 80016c8: 681b ldr r3, [r3, #0]
- 80016ca: 6fba ldr r2, [r7, #120] ; 0x78
- 80016cc: 4413 add r3, r2
- 80016ce: 67bb str r3, [r7, #120] ; 0x78
- }
-
- sunrise_time[0] = sunrise_h;
- 80016d0: 683b ldr r3, [r7, #0]
- 80016d2: 6ffa ldr r2, [r7, #124] ; 0x7c
- 80016d4: 601a str r2, [r3, #0]
- sunrise_time[1] = int_sunrise_min;
- 80016d6: 683b ldr r3, [r7, #0]
- 80016d8: 3304 adds r3, #4
- 80016da: 6f7a ldr r2, [r7, #116] ; 0x74
- 80016dc: 601a str r2, [r3, #0]
- sunset_time[0] = sunset_h;
- 80016de: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8
- 80016e2: 6fba ldr r2, [r7, #120] ; 0x78
- 80016e4: 601a str r2, [r3, #0]
- sunset_time[1] = int_sunset_min;
- 80016e6: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8
- 80016ea: 3304 adds r3, #4
- 80016ec: 6f3a ldr r2, [r7, #112] ; 0x70
- 80016ee: 601a str r2, [r3, #0]
-}
- 80016f0: bf00 nop
- 80016f2: 378c adds r7, #140 ; 0x8c
- 80016f4: 46bd mov sp, r7
- 80016f6: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
- 80016fa: bf00 nop
- 80016fc: 20000008 .word 0x20000008
-
-08001700 :
-* Function Name : calc_tomorrows_date
-* Description : calculates tomorrow's date
-* Source : https://github.com/vyacht/stm32/blob/master/vynmea/rtc.c
-*******************************************************************************/
-void calc_tomorrows_date(int day, int wday, int month, int year, int DaysInMonth[12], int tomorrows_date[4])
-{
- 8001700: b480 push {r7}
- 8001702: b085 sub sp, #20
- 8001704: af00 add r7, sp, #0
- 8001706: 60f8 str r0, [r7, #12]
- 8001708: 60b9 str r1, [r7, #8]
- 800170a: 607a str r2, [r7, #4]
- 800170c: 603b str r3, [r7, #0]
- bool leap_year;
-
- day++; // next day
- 800170e: 68fb ldr r3, [r7, #12]
- 8001710: 3301 adds r3, #1
- 8001712: 60fb str r3, [r7, #12]
- wday++; // next weekday
- 8001714: 68bb ldr r3, [r7, #8]
- 8001716: 3301 adds r3, #1
- 8001718: 60bb str r3, [r7, #8]
- if(wday == 8)
- 800171a: 68bb ldr r3, [r7, #8]
- 800171c: 2b08 cmp r3, #8
- 800171e: d101 bne.n 8001724
- {
- wday = 1; // Monday
- 8001720: 2301 movs r3, #1
- 8001722: 60bb str r3, [r7, #8]
- }
- if(day > DaysInMonth[month-1])
- 8001724: 687b ldr r3, [r7, #4]
- 8001726: f103 4380 add.w r3, r3, #1073741824 ; 0x40000000
- 800172a: 3b01 subs r3, #1
- 800172c: 009b lsls r3, r3, #2
- 800172e: 69ba ldr r2, [r7, #24]
- 8001730: 4413 add r3, r2
- 8001732: 681b ldr r3, [r3, #0]
- 8001734: 68fa ldr r2, [r7, #12]
- 8001736: 429a cmp r2, r3
- 8001738: dd04 ble.n 8001744
- { // next month
- day = 1;
- 800173a: 2301 movs r3, #1
- 800173c: 60fb str r3, [r7, #12]
- month++;
- 800173e: 687b ldr r3, [r7, #4]
- 8001740: 3301 adds r3, #1
- 8001742: 607b str r3, [r7, #4]
- }
- if(day > 31 && month == 12) // next year
- 8001744: 68fb ldr r3, [r7, #12]
- 8001746: 2b1f cmp r3, #31
- 8001748: dd09 ble.n 800175e
- 800174a: 687b ldr r3, [r7, #4]
- 800174c: 2b0c cmp r3, #12
- 800174e: d106 bne.n 800175e
- {
- day = 1;
- 8001750: 2301 movs r3, #1
- 8001752: 60fb str r3, [r7, #12]
- month = 1;
- 8001754: 2301 movs r3, #1
- 8001756: 607b str r3, [r7, #4]
- year++;
- 8001758: 683b ldr r3, [r7, #0]
- 800175a: 3301 adds r3, #1
- 800175c: 603b str r3, [r7, #0]
- }
-
- tomorrows_date[0] = day;
- 800175e: 69fb ldr r3, [r7, #28]
- 8001760: 68fa ldr r2, [r7, #12]
- 8001762: 601a str r2, [r3, #0]
- tomorrows_date[1] = wday;
- 8001764: 69fb ldr r3, [r7, #28]
- 8001766: 3304 adds r3, #4
- 8001768: 68ba ldr r2, [r7, #8]
- 800176a: 601a str r2, [r3, #0]
- tomorrows_date[2] = month;
- 800176c: 69fb ldr r3, [r7, #28]
- 800176e: 3308 adds r3, #8
- 8001770: 687a ldr r2, [r7, #4]
- 8001772: 601a str r2, [r3, #0]
- tomorrows_date[3] = year;
- 8001774: 69fb ldr r3, [r7, #28]
- 8001776: 330c adds r3, #12
- 8001778: 683a ldr r2, [r7, #0]
- 800177a: 601a str r2, [r3, #0]
-
-}
- 800177c: bf00 nop
- 800177e: 3714 adds r7, #20
- 8001780: 46bd mov sp, r7
- 8001782: f85d 7b04 ldr.w r7, [sp], #4
- 8001786: 4770 bx lr
-
-08001788 :
-/*******************************************************************************
-* Function Name : set_Alarm
-* Description : sets the wake up Alarm
-*******************************************************************************/
-void set_Alarm(int h, int min, int weekDay)
-{
- 8001788: b580 push {r7, lr}
- 800178a: b084 sub sp, #16
- 800178c: af00 add r7, sp, #0
- 800178e: 60f8 str r0, [r7, #12]
- 8001790: 60b9 str r1, [r7, #8]
- 8001792: 607a str r2, [r7, #4]
- /** Enable the Alarm A*/
- sAlarm.AlarmTime.Hours = h;
- 8001794: 68fb ldr r3, [r7, #12]
- 8001796: b2da uxtb r2, r3
- 8001798: 4b19 ldr r3, [pc, #100] ; (8001800 )
- 800179a: 701a strb r2, [r3, #0]
- sAlarm.AlarmTime.Minutes = min;
- 800179c: 68bb ldr r3, [r7, #8]
- 800179e: b2da uxtb r2, r3
- 80017a0: 4b17 ldr r3, [pc, #92] ; (8001800 )
- 80017a2: 705a strb r2, [r3, #1]
- sAlarm.AlarmTime.Seconds = 0;
- 80017a4: 4b16 ldr r3, [pc, #88] ; (8001800 )
- 80017a6: 2200 movs r2, #0
- 80017a8: 709a strb r2, [r3, #2]
- sAlarm.AlarmTime.SubSeconds = 0;
- 80017aa: 4b15 ldr r3, [pc, #84] ; (8001800 )
- 80017ac: 2200 movs r2, #0
- 80017ae: 605a str r2, [r3, #4]
- sAlarm.AlarmTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
- 80017b0: 4b13 ldr r3, [pc, #76] ; (8001800 )
- 80017b2: 2200 movs r2, #0
- 80017b4: 60da str r2, [r3, #12]
- sAlarm.AlarmTime.StoreOperation = RTC_STOREOPERATION_RESET;
- 80017b6: 4b12 ldr r3, [pc, #72] ; (8001800 )
- 80017b8: 2200 movs r2, #0
- 80017ba: 611a str r2, [r3, #16]
- sAlarm.AlarmMask = RTC_ALARMMASK_NONE; //only by specific time
- 80017bc: 4b10 ldr r3, [pc, #64] ; (8001800 )
- 80017be: 2200 movs r2, #0
- 80017c0: 615a str r2, [r3, #20]
- sAlarm.AlarmSubSecondMask = RTC_ALARMSUBSECONDMASK_ALL;
- 80017c2: 4b0f ldr r3, [pc, #60] ; (8001800 )
- 80017c4: 2200 movs r2, #0
- 80017c6: 619a str r2, [r3, #24]
- sAlarm.AlarmDateWeekDaySel = RTC_ALARMDATEWEEKDAYSEL_WEEKDAY;
- 80017c8: 4b0d ldr r3, [pc, #52] ; (8001800 )
- 80017ca: f04f 4280 mov.w r2, #1073741824 ; 0x40000000
- 80017ce: 61da str r2, [r3, #28]
- sAlarm.AlarmDateWeekDay = weekDay;
- 80017d0: 687b ldr r3, [r7, #4]
- 80017d2: b2da uxtb r2, r3
- 80017d4: 4b0a ldr r3, [pc, #40] ; (8001800 )
- 80017d6: f883 2020 strb.w r2, [r3, #32]
- sAlarm.Alarm = RTC_ALARM_A;
- 80017da: 4b09 ldr r3, [pc, #36] ; (8001800 )
- 80017dc: f44f 7280 mov.w r2, #256 ; 0x100
- 80017e0: 625a str r2, [r3, #36] ; 0x24
- if (HAL_RTC_SetAlarm_IT(&hrtc, &sAlarm, RTC_FORMAT_BIN) != HAL_OK)
- 80017e2: 2200 movs r2, #0
- 80017e4: 4906 ldr r1, [pc, #24] ; (8001800 )
- 80017e6: 4807 ldr r0, [pc, #28] ; (8001804 )
- 80017e8: f001 ff04 bl 80035f4
- 80017ec: 4603 mov r3, r0
- 80017ee: 2b00 cmp r3, #0
- 80017f0: d001 beq.n 80017f6
- {
- Error_Handler();
- 80017f2: f000 fa7d bl 8001cf0
- }
-}
- 80017f6: bf00 nop
- 80017f8: 3710 adds r7, #16
- 80017fa: 46bd mov sp, r7
- 80017fc: bd80 pop {r7, pc}
- 80017fe: bf00 nop
- 8001800: 200000b8 .word 0x200000b8
- 8001804: 200000e4 .word 0x200000e4
-
-08001808 :
-
-// sending to UART
-void transmit_uart(char *string){
- 8001808: b580 push {r7, lr}
- 800180a: b084 sub sp, #16
- 800180c: af00 add r7, sp, #0
- 800180e: 6078 str r0, [r7, #4]
- uint8_t len = strlen(string);
- 8001810: 6878 ldr r0, [r7, #4]
- 8001812: f7fe fce1 bl 80001d8
- 8001816: 4603 mov r3, r0
- 8001818: 73fb strb r3, [r7, #15]
- HAL_UART_Transmit(&huart2, (uint8_t*) string, len, 200);
- 800181a: 7bfb ldrb r3, [r7, #15]
- 800181c: b29a uxth r2, r3
- 800181e: 23c8 movs r3, #200 ; 0xc8
- 8001820: 6879 ldr r1, [r7, #4]
- 8001822: 4803 ldr r0, [pc, #12] ; (8001830 )
- 8001824: f002 f94b bl 8003abe
-}
- 8001828: bf00 nop
- 800182a: 3710 adds r7, #16
- 800182c: 46bd mov sp, r7
- 800182e: bd80 pop {r7, pc}
- 8001830: 20000104 .word 0x20000104
-
-08001834 :
-/**
- * @brief The application entry point.
- * @retval int
- */
-int main(void)
-{
- 8001834: b5b0 push {r4, r5, r7, lr}
- 8001836: b0ae sub sp, #184 ; 0xb8
- 8001838: af02 add r7, sp, #8
- /* USER CODE END 1 */
-
- /* MCU Configuration--------------------------------------------------------*/
-
- /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
- HAL_Init();
- 800183a: f000 fb6b bl 8001f14
- /* USER CODE BEGIN Init */
-
- /* USER CODE END Init */
-
- /* Configure the system clock */
- SystemClock_Config();
- 800183e: f000 f8e1 bl 8001a04
- /* USER CODE BEGIN SysInit */
-
- /* USER CODE END SysInit */
-
- /* Initialize all configured peripherals */
- MX_GPIO_Init();
- 8001842: f000 f9e5 bl 8001c10
- MX_USART2_UART_Init();
- 8001846: f000 f9b9 bl 8001bbc
- MX_RTC_Init();
- 800184a: f000 f95f bl 8001b0c
- /* USER CODE BEGIN 2 */
- int hours = 0;
- 800184e: 2300 movs r3, #0
- 8001850: f8c7 309c str.w r3, [r7, #156] ; 0x9c
- int minutes = 0;
- 8001854: 2300 movs r3, #0
- 8001856: f8c7 3098 str.w r3, [r7, #152] ; 0x98
- int seconds = 0;
- 800185a: 2300 movs r3, #0
- 800185c: f8c7 3094 str.w r3, [r7, #148] ; 0x94
- int weekDay = 0;
- 8001860: 2300 movs r3, #0
- 8001862: f8c7 30ac str.w r3, [r7, #172] ; 0xac
- int month = 0;
- 8001866: 2300 movs r3, #0
- 8001868: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8
- int date = 0;
- 800186c: 2300 movs r3, #0
- 800186e: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4
- int year = 0;
- 8001872: 2300 movs r3, #0
- 8001874: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0
-
- int sunrise_h = 0;
- 8001878: 2300 movs r3, #0
- 800187a: f8c7 3090 str.w r3, [r7, #144] ; 0x90
- int sunset_h = 0;
- 800187e: 2300 movs r3, #0
- 8001880: f8c7 308c str.w r3, [r7, #140] ; 0x8c
- int int_sunrise_min = 0;
- 8001884: 2300 movs r3, #0
- 8001886: f8c7 3088 str.w r3, [r7, #136] ; 0x88
- int int_sunset_min = 0;
- 800188a: 2300 movs r3, #0
- 800188c: f8c7 3084 str.w r3, [r7, #132] ; 0x84
- int sunrise_time[2] = {0};
- 8001890: f107 0378 add.w r3, r7, #120 ; 0x78
- 8001894: 2200 movs r2, #0
- 8001896: 601a str r2, [r3, #0]
- 8001898: 605a str r2, [r3, #4]
- int sunset_time[2] = {0};
- 800189a: f107 0370 add.w r3, r7, #112 ; 0x70
- 800189e: 2200 movs r2, #0
- 80018a0: 601a str r2, [r3, #0]
- 80018a2: 605a str r2, [r3, #4]
- int tomorrows_date[4] = {0};
- 80018a4: f107 0360 add.w r3, r7, #96 ; 0x60
- 80018a8: 2200 movs r2, #0
- 80018aa: 601a str r2, [r3, #0]
- 80018ac: 605a str r2, [r3, #4]
- 80018ae: 609a str r2, [r3, #8]
- 80018b0: 60da str r2, [r3, #12]
- int DaysInMonth[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
- 80018b2: 4b4d ldr r3, [pc, #308] ; (80019e8 )
- 80018b4: f107 0430 add.w r4, r7, #48 ; 0x30
- 80018b8: 461d mov r5, r3
- 80018ba: cd0f ldmia r5!, {r0, r1, r2, r3}
- 80018bc: c40f stmia r4!, {r0, r1, r2, r3}
- 80018be: cd0f ldmia r5!, {r0, r1, r2, r3}
- 80018c0: c40f stmia r4!, {r0, r1, r2, r3}
- 80018c2: e895 000f ldmia.w r5, {r0, r1, r2, r3}
- 80018c6: e884 000f stmia.w r4, {r0, r1, r2, r3}
- int DaysInMonthLeapYear[12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
- 80018ca: 4b48 ldr r3, [pc, #288] ; (80019ec )
- 80018cc: 463c mov r4, r7
- 80018ce: 461d mov r5, r3
- 80018d0: cd0f ldmia r5!, {r0, r1, r2, r3}
- 80018d2: c40f stmia r4!, {r0, r1, r2, r3}
- 80018d4: cd0f ldmia r5!, {r0, r1, r2, r3}
- 80018d6: c40f stmia r4!, {r0, r1, r2, r3}
- 80018d8: e895 000f ldmia.w r5, {r0, r1, r2, r3}
- 80018dc: e884 000f stmia.w r4, {r0, r1, r2, r3}
- bool leap_year = false;
- 80018e0: 2300 movs r3, #0
- 80018e2: f887 3083 strb.w r3, [r7, #131] ; 0x83
- /* USER CODE BEGIN WHILE */
- while (1)
- {
-
- //Get Time and Date
- if (HAL_RTC_GetTime(&hrtc, &sTime, RTC_FORMAT_BIN) == HAL_OK)
- 80018e6: 2200 movs r2, #0
- 80018e8: 4941 ldr r1, [pc, #260] ; (80019f0 )
- 80018ea: 4842 ldr r0, [pc, #264] ; (80019f4 )
- 80018ec: f001 fd2e bl 800334c
- 80018f0: 4603 mov r3, r0
- 80018f2: 2b00 cmp r3, #0
- 80018f4: d10b bne.n 800190e
- {
- hours = sTime.Hours;
- 80018f6: 4b3e ldr r3, [pc, #248] ; (80019f0 )
- 80018f8: 781b ldrb r3, [r3, #0]
- 80018fa: f8c7 309c str.w r3, [r7, #156] ; 0x9c
- minutes = sTime.Minutes;
- 80018fe: 4b3c ldr r3, [pc, #240] ; (80019f0 )
- 8001900: 785b ldrb r3, [r3, #1]
- 8001902: f8c7 3098 str.w r3, [r7, #152] ; 0x98
- seconds = sTime.Seconds;
- 8001906: 4b3a ldr r3, [pc, #232] ; (80019f0 )
- 8001908: 789b ldrb r3, [r3, #2]
- 800190a: f8c7 3094 str.w r3, [r7, #148] ; 0x94
- }
- if (HAL_RTC_GetDate(&hrtc, &sDate, RTC_FORMAT_BIN) == HAL_OK)
- 800190e: 2200 movs r2, #0
- 8001910: 4939 ldr r1, [pc, #228] ; (80019f8 )
- 8001912: 4838 ldr r0, [pc, #224] ; (80019f4 )
- 8001914: f001 fe1f bl 8003556
- 8001918: 4603 mov r3, r0
- 800191a: 2b00 cmp r3, #0
- 800191c: d111 bne.n 8001942
- {
- weekDay = sDate.WeekDay;
- 800191e: 4b36 ldr r3, [pc, #216] ; (80019f8 )
- 8001920: 781b ldrb r3, [r3, #0]
- 8001922: f8c7 30ac str.w r3, [r7, #172] ; 0xac
- month = sDate.Month;
- 8001926: 4b34 ldr r3, [pc, #208] ; (80019f8 )
- 8001928: 785b ldrb r3, [r3, #1]
- 800192a: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8
- date = sDate.Date;
- 800192e: 4b32 ldr r3, [pc, #200] ; (80019f8 )
- 8001930: 789b ldrb r3, [r3, #2]
- 8001932: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4
- year = 2000 + sDate.Year;
- 8001936: 4b30 ldr r3, [pc, #192] ; (80019f8 )
- 8001938: 78db ldrb r3, [r3, #3]
- 800193a: f503 63fa add.w r3, r3, #2000 ; 0x7d0
- 800193e: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0
- }
-
- // check for leap year
- leap_year = leap_year_check(year);
- 8001942: f8d7 00a0 ldr.w r0, [r7, #160] ; 0xa0
- 8001946: f7ff faa3 bl 8000e90
- 800194a: 4603 mov r3, r0
- 800194c: 2b00 cmp r3, #0
- 800194e: bf14 ite ne
- 8001950: 2301 movne r3, #1
- 8001952: 2300 moveq r3, #0
- 8001954: f887 3083 strb.w r3, [r7, #131] ; 0x83
- if (leap_year)
- 8001958: f897 3083 ldrb.w r3, [r7, #131] ; 0x83
- 800195c: 2b00 cmp r3, #0
- 800195e: d00f beq.n 8001980
- {
- //Calculate tomorrow's date
- calc_tomorrows_date(date, weekDay, month, year, DaysInMonthLeapYear, tomorrows_date);
- 8001960: f107 0360 add.w r3, r7, #96 ; 0x60
- 8001964: 9301 str r3, [sp, #4]
- 8001966: 463b mov r3, r7
- 8001968: 9300 str r3, [sp, #0]
- 800196a: f8d7 30a0 ldr.w r3, [r7, #160] ; 0xa0
- 800196e: f8d7 20a8 ldr.w r2, [r7, #168] ; 0xa8
- 8001972: f8d7 10ac ldr.w r1, [r7, #172] ; 0xac
- 8001976: f8d7 00a4 ldr.w r0, [r7, #164] ; 0xa4
- 800197a: f7ff fec1 bl 8001700
- 800197e: e00f b.n 80019a0
- } else {
- //Calculate tomorrow's date
- calc_tomorrows_date(date, weekDay, month, year, DaysInMonth, tomorrows_date);
- 8001980: f107 0360 add.w r3, r7, #96 ; 0x60
- 8001984: 9301 str r3, [sp, #4]
- 8001986: f107 0330 add.w r3, r7, #48 ; 0x30
- 800198a: 9300 str r3, [sp, #0]
- 800198c: f8d7 30a0 ldr.w r3, [r7, #160] ; 0xa0
- 8001990: f8d7 20a8 ldr.w r2, [r7, #168] ; 0xa8
- 8001994: f8d7 10ac ldr.w r1, [r7, #172] ; 0xac
- 8001998: f8d7 00a4 ldr.w r0, [r7, #164] ; 0xa4
- 800199c: f7ff feb0 bl 8001700
- }
-
- //Calculate sunrise and sunset time for tomorrow
- calc_sunrise_sunset(tomorrows_date[0], tomorrows_date[2], tomorrows_date[3], sunrise_time, sunset_time);
- 80019a0: 6e38 ldr r0, [r7, #96] ; 0x60
- 80019a2: 6eb9 ldr r1, [r7, #104] ; 0x68
- 80019a4: 6efa ldr r2, [r7, #108] ; 0x6c
- 80019a6: f107 0478 add.w r4, r7, #120 ; 0x78
- 80019aa: f107 0370 add.w r3, r7, #112 ; 0x70
- 80019ae: 9300 str r3, [sp, #0]
- 80019b0: 4623 mov r3, r4
- 80019b2: f7ff fb1d bl 8000ff0
-
- set_Alarm(16, 22, 1);
- 80019b6: 2201 movs r2, #1
- 80019b8: 2116 movs r1, #22
- 80019ba: 2010 movs r0, #16
- 80019bc: f7ff fee4 bl 8001788
-
- HAL_Delay(5000);
- 80019c0: f241 3088 movw r0, #5000 ; 0x1388
- 80019c4: f000 fb18 bl 8001ff8
-
- transmit_uart("Ich gehe schlafen!\r\n");
- 80019c8: 480c ldr r0, [pc, #48] ; (80019fc )
- 80019ca: f7ff ff1d bl 8001808
-
- // Suspend Tick increment to prevent wake up by Systick interrupt
- HAL_SuspendTick();
- 80019ce: f000 fb35 bl 800203c
-
- HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI); //Interrupt for wake up
- 80019d2: 2101 movs r1, #1
- 80019d4: 2000 movs r0, #0
- 80019d6: f000 fdff bl 80025d8
-
- HAL_ResumeTick();
- 80019da: f000 fb3f bl 800205c
-
- transmit_uart("Bin wieder wach!\r\n");
- 80019de: 4808 ldr r0, [pc, #32] ; (8001a00 )
- 80019e0: f7ff ff12 bl 8001808
- if (HAL_RTC_GetTime(&hrtc, &sTime, RTC_FORMAT_BIN) == HAL_OK)
- 80019e4: e77f b.n 80018e6
- 80019e6: bf00 nop
- 80019e8: 08005fac .word 0x08005fac
- 80019ec: 08005fdc .word 0x08005fdc
- 80019f0: 200000a4 .word 0x200000a4
- 80019f4: 200000e4 .word 0x200000e4
- 80019f8: 200000e0 .word 0x200000e0
- 80019fc: 08005f80 .word 0x08005f80
- 8001a00: 08005f98 .word 0x08005f98
-
-08001a04 :
-/**
- * @brief System Clock Configuration
- * @retval None
- */
-void SystemClock_Config(void)
-{
- 8001a04: b580 push {r7, lr}
- 8001a06: b098 sub sp, #96 ; 0x60
- 8001a08: af00 add r7, sp, #0
- RCC_OscInitTypeDef RCC_OscInitStruct = {0};
- 8001a0a: f107 0330 add.w r3, r7, #48 ; 0x30
- 8001a0e: 2230 movs r2, #48 ; 0x30
- 8001a10: 2100 movs r1, #0
- 8001a12: 4618 mov r0, r3
- 8001a14: f002 fcdc bl 80043d0
- RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
- 8001a18: f107 031c add.w r3, r7, #28
- 8001a1c: 2200 movs r2, #0
- 8001a1e: 601a str r2, [r3, #0]
- 8001a20: 605a str r2, [r3, #4]
- 8001a22: 609a str r2, [r3, #8]
- 8001a24: 60da str r2, [r3, #12]
- 8001a26: 611a str r2, [r3, #16]
- RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
- 8001a28: f107 0308 add.w r3, r7, #8
- 8001a2c: 2200 movs r2, #0
- 8001a2e: 601a str r2, [r3, #0]
- 8001a30: 605a str r2, [r3, #4]
- 8001a32: 609a str r2, [r3, #8]
- 8001a34: 60da str r2, [r3, #12]
- 8001a36: 611a str r2, [r3, #16]
-
- /** Configure the main internal regulator output voltage
- */
- __HAL_RCC_PWR_CLK_ENABLE();
- 8001a38: 2300 movs r3, #0
- 8001a3a: 607b str r3, [r7, #4]
- 8001a3c: 4b31 ldr r3, [pc, #196] ; (8001b04 )
- 8001a3e: 6c1b ldr r3, [r3, #64] ; 0x40
- 8001a40: 4a30 ldr r2, [pc, #192] ; (8001b04 )
- 8001a42: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
- 8001a46: 6413 str r3, [r2, #64] ; 0x40
- 8001a48: 4b2e ldr r3, [pc, #184] ; (8001b04 )
- 8001a4a: 6c1b ldr r3, [r3, #64] ; 0x40
- 8001a4c: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
- 8001a50: 607b str r3, [r7, #4]
- 8001a52: 687b ldr r3, [r7, #4]
- __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE2);
- 8001a54: 2300 movs r3, #0
- 8001a56: 603b str r3, [r7, #0]
- 8001a58: 4b2b ldr r3, [pc, #172] ; (8001b08 )
- 8001a5a: 681b ldr r3, [r3, #0]
- 8001a5c: f423 4340 bic.w r3, r3, #49152 ; 0xc000
- 8001a60: 4a29 ldr r2, [pc, #164] ; (8001b08 )
- 8001a62: f443 4300 orr.w r3, r3, #32768 ; 0x8000
- 8001a66: 6013 str r3, [r2, #0]
- 8001a68: 4b27 ldr r3, [pc, #156] ; (8001b08 )
- 8001a6a: 681b ldr r3, [r3, #0]
- 8001a6c: f403 4340 and.w r3, r3, #49152 ; 0xc000
- 8001a70: 603b str r3, [r7, #0]
- 8001a72: 683b ldr r3, [r7, #0]
- /** Initializes the RCC Oscillators according to the specified parameters
- * in the RCC_OscInitTypeDef structure.
- */
- RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_LSI;
- 8001a74: 230a movs r3, #10
- 8001a76: 633b str r3, [r7, #48] ; 0x30
- RCC_OscInitStruct.HSIState = RCC_HSI_ON;
- 8001a78: 2301 movs r3, #1
- 8001a7a: 63fb str r3, [r7, #60] ; 0x3c
- RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
- 8001a7c: 2310 movs r3, #16
- 8001a7e: 643b str r3, [r7, #64] ; 0x40
- RCC_OscInitStruct.LSIState = RCC_LSI_ON;
- 8001a80: 2301 movs r3, #1
- 8001a82: 647b str r3, [r7, #68] ; 0x44
- RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
- 8001a84: 2302 movs r3, #2
- 8001a86: 64bb str r3, [r7, #72] ; 0x48
- RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
- 8001a88: 2300 movs r3, #0
- 8001a8a: 64fb str r3, [r7, #76] ; 0x4c
- RCC_OscInitStruct.PLL.PLLM = 16;
- 8001a8c: 2310 movs r3, #16
- 8001a8e: 653b str r3, [r7, #80] ; 0x50
- RCC_OscInitStruct.PLL.PLLN = 336;
- 8001a90: f44f 73a8 mov.w r3, #336 ; 0x150
- 8001a94: 657b str r3, [r7, #84] ; 0x54
- RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4;
- 8001a96: 2304 movs r3, #4
- 8001a98: 65bb str r3, [r7, #88] ; 0x58
- RCC_OscInitStruct.PLL.PLLQ = 7;
- 8001a9a: 2307 movs r3, #7
- 8001a9c: 65fb str r3, [r7, #92] ; 0x5c
- if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
- 8001a9e: f107 0330 add.w r3, r7, #48 ; 0x30
- 8001aa2: 4618 mov r0, r3
- 8001aa4: f000 fdb4 bl 8002610
- 8001aa8: 4603 mov r3, r0
- 8001aaa: 2b00 cmp r3, #0
- 8001aac: d001 beq.n 8001ab2
- {
- Error_Handler();
- 8001aae: f000 f91f bl 8001cf0
- }
- /** Initializes the CPU, AHB and APB buses clocks
- */
- RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
- 8001ab2: 230f movs r3, #15
- 8001ab4: 61fb str r3, [r7, #28]
- |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
- RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
- 8001ab6: 2302 movs r3, #2
- 8001ab8: 623b str r3, [r7, #32]
- RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
- 8001aba: 2300 movs r3, #0
- 8001abc: 627b str r3, [r7, #36] ; 0x24
- RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
- 8001abe: f44f 5380 mov.w r3, #4096 ; 0x1000
- 8001ac2: 62bb str r3, [r7, #40] ; 0x28
- RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
- 8001ac4: 2300 movs r3, #0
- 8001ac6: 62fb str r3, [r7, #44] ; 0x2c
-
- if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
- 8001ac8: f107 031c add.w r3, r7, #28
- 8001acc: 2102 movs r1, #2
- 8001ace: 4618 mov r0, r3
- 8001ad0: f001 f80e bl 8002af0
- 8001ad4: 4603 mov r3, r0
- 8001ad6: 2b00 cmp r3, #0
- 8001ad8: d001 beq.n 8001ade
- {
- Error_Handler();
- 8001ada: f000 f909 bl 8001cf0
- }
- PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
- 8001ade: 2302 movs r3, #2
- 8001ae0: 60bb str r3, [r7, #8]
- PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;
- 8001ae2: f44f 7300 mov.w r3, #512 ; 0x200
- 8001ae6: 617b str r3, [r7, #20]
- if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
- 8001ae8: f107 0308 add.w r3, r7, #8
- 8001aec: 4618 mov r0, r3
- 8001aee: f001 f9f1 bl 8002ed4
- 8001af2: 4603 mov r3, r0
- 8001af4: 2b00 cmp r3, #0
- 8001af6: d001 beq.n 8001afc
- {
- Error_Handler();
- 8001af8: f000 f8fa bl 8001cf0
- }
-}
- 8001afc: bf00 nop
- 8001afe: 3760 adds r7, #96 ; 0x60
- 8001b00: 46bd mov sp, r7
- 8001b02: bd80 pop {r7, pc}
- 8001b04: 40023800 .word 0x40023800
- 8001b08: 40007000 .word 0x40007000
-
-08001b0c :
- * @brief RTC Initialization Function
- * @param None
- * @retval None
- */
-static void MX_RTC_Init(void)
-{
- 8001b0c: b580 push {r7, lr}
- 8001b0e: af00 add r7, sp, #0
- /* USER CODE BEGIN RTC_Init 1 */
-
- /* USER CODE END RTC_Init 1 */
- /** Initialize RTC Only
- */
- hrtc.Instance = RTC;
- 8001b10: 4b26 ldr r3, [pc, #152] ; (8001bac )
- 8001b12: 4a27 ldr r2, [pc, #156] ; (8001bb0 )
- 8001b14: 601a str r2, [r3, #0]
- hrtc.Init.HourFormat = RTC_HOURFORMAT_24;
- 8001b16: 4b25 ldr r3, [pc, #148] ; (8001bac )
- 8001b18: 2200 movs r2, #0
- 8001b1a: 605a str r2, [r3, #4]
- hrtc.Init.AsynchPrediv = 127;
- 8001b1c: 4b23 ldr r3, [pc, #140] ; (8001bac )
- 8001b1e: 227f movs r2, #127 ; 0x7f
- 8001b20: 609a str r2, [r3, #8]
- hrtc.Init.SynchPrediv = 255;
- 8001b22: 4b22 ldr r3, [pc, #136] ; (8001bac )
- 8001b24: 22ff movs r2, #255 ; 0xff
- 8001b26: 60da str r2, [r3, #12]
- hrtc.Init.OutPut = RTC_OUTPUT_DISABLE;
- 8001b28: 4b20 ldr r3, [pc, #128] ; (8001bac )
- 8001b2a: 2200 movs r2, #0
- 8001b2c: 611a str r2, [r3, #16]
- hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
- 8001b2e: 4b1f ldr r3, [pc, #124] ; (8001bac )
- 8001b30: 2200 movs r2, #0
- 8001b32: 615a str r2, [r3, #20]
- hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
- 8001b34: 4b1d ldr r3, [pc, #116] ; (8001bac )
- 8001b36: 2200 movs r2, #0
- 8001b38: 619a str r2, [r3, #24]
- if (HAL_RTC_Init(&hrtc) != HAL_OK)
- 8001b3a: 481c ldr r0, [pc, #112] ; (8001bac )
- 8001b3c: f001 fab8 bl 80030b0
- 8001b40: 4603 mov r3, r0
- 8001b42: 2b00 cmp r3, #0
- 8001b44: d001 beq.n 8001b4a
- {
- Error_Handler();
- 8001b46: f000 f8d3 bl 8001cf0
-
- /* USER CODE END Check_RTC_BKUP */
-
- /** Initialize RTC and set the Time and Date
- */
- sTime.Hours = 16;
- 8001b4a: 4b1a ldr r3, [pc, #104] ; (8001bb4 )
- 8001b4c: 2210 movs r2, #16
- 8001b4e: 701a strb r2, [r3, #0]
- sTime.Minutes = 20;
- 8001b50: 4b18 ldr r3, [pc, #96] ; (8001bb4 )
- 8001b52: 2214 movs r2, #20
- 8001b54: 705a strb r2, [r3, #1]
- sTime.Seconds = 30;
- 8001b56: 4b17 ldr r3, [pc, #92] ; (8001bb4 )
- 8001b58: 221e movs r2, #30
- 8001b5a: 709a strb r2, [r3, #2]
- sTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
- 8001b5c: 4b15 ldr r3, [pc, #84] ; (8001bb4 )
- 8001b5e: 2200 movs r2, #0
- 8001b60: 60da str r2, [r3, #12]
- sTime.StoreOperation = RTC_STOREOPERATION_RESET;
- 8001b62: 4b14 ldr r3, [pc, #80] ; (8001bb4 )
- 8001b64: 2200 movs r2, #0
- 8001b66: 611a str r2, [r3, #16]
- if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BIN) != HAL_OK)
- 8001b68: 2200 movs r2, #0
- 8001b6a: 4912 ldr r1, [pc, #72] ; (8001bb4 )
- 8001b6c: 480f ldr r0, [pc, #60] ; (8001bac )
- 8001b6e: f001 fb30 bl 80031d2
- 8001b72: 4603 mov r3, r0
- 8001b74: 2b00 cmp r3, #0
- 8001b76: d001 beq.n 8001b7c
- {
- Error_Handler();
- 8001b78: f000 f8ba bl 8001cf0
- }
- sDate.WeekDay = RTC_WEEKDAY_MONDAY;
- 8001b7c: 4b0e ldr r3, [pc, #56] ; (8001bb8 )
- 8001b7e: 2201 movs r2, #1
- 8001b80: 701a strb r2, [r3, #0]
- sDate.Month = RTC_MONTH_JANUARY;
- 8001b82: 4b0d ldr r3, [pc, #52] ; (8001bb8 )
- 8001b84: 2201 movs r2, #1
- 8001b86: 705a strb r2, [r3, #1]
- sDate.Date = 11;
- 8001b88: 4b0b ldr r3, [pc, #44] ; (8001bb8 )
- 8001b8a: 220b movs r2, #11
- 8001b8c: 709a strb r2, [r3, #2]
- sDate.Year = 21;
- 8001b8e: 4b0a ldr r3, [pc, #40] ; (8001bb8 )
- 8001b90: 2215 movs r2, #21
- 8001b92: 70da strb r2, [r3, #3]
-
- if (HAL_RTC_SetDate(&hrtc, &sDate, RTC_FORMAT_BIN) != HAL_OK)
- 8001b94: 2200 movs r2, #0
- 8001b96: 4908 ldr r1, [pc, #32] ; (8001bb8 )
- 8001b98: 4804 ldr r0, [pc, #16] ; (8001bac )
- 8001b9a: f001 fc35 bl 8003408
- 8001b9e: 4603 mov r3, r0
- 8001ba0: 2b00 cmp r3, #0
- 8001ba2: d001 beq.n 8001ba8
- {
- Error_Handler();
- 8001ba4: f000 f8a4 bl 8001cf0
-
- /* USER CODE BEGIN RTC_Init 2 */
-
- /* USER CODE END RTC_Init 2 */
-
-}
- 8001ba8: bf00 nop
- 8001baa: bd80 pop {r7, pc}
- 8001bac: 200000e4 .word 0x200000e4
- 8001bb0: 40002800 .word 0x40002800
- 8001bb4: 200000a4 .word 0x200000a4
- 8001bb8: 200000e0 .word 0x200000e0
-
-08001bbc :
- * @brief USART2 Initialization Function
- * @param None
- * @retval None
- */
-static void MX_USART2_UART_Init(void)
-{
- 8001bbc: b580 push {r7, lr}
- 8001bbe: af00 add r7, sp, #0
- /* USER CODE END USART2_Init 0 */
-
- /* USER CODE BEGIN USART2_Init 1 */
-
- /* USER CODE END USART2_Init 1 */
- huart2.Instance = USART2;
- 8001bc0: 4b11 ldr r3, [pc, #68] ; (8001c08 )
- 8001bc2: 4a12 ldr r2, [pc, #72] ; (8001c0c )
- 8001bc4: 601a str r2, [r3, #0]
- huart2.Init.BaudRate = 115200;
- 8001bc6: 4b10 ldr r3, [pc, #64] ; (8001c08 )
- 8001bc8: f44f 32e1 mov.w r2, #115200 ; 0x1c200
- 8001bcc: 605a str r2, [r3, #4]
- huart2.Init.WordLength = UART_WORDLENGTH_8B;
- 8001bce: 4b0e ldr r3, [pc, #56] ; (8001c08 )
- 8001bd0: 2200 movs r2, #0
- 8001bd2: 609a str r2, [r3, #8]
- huart2.Init.StopBits = UART_STOPBITS_1;
- 8001bd4: 4b0c ldr r3, [pc, #48] ; (8001c08 )
- 8001bd6: 2200 movs r2, #0
- 8001bd8: 60da str r2, [r3, #12]
- huart2.Init.Parity = UART_PARITY_NONE;
- 8001bda: 4b0b ldr r3, [pc, #44] ; (8001c08 )
- 8001bdc: 2200 movs r2, #0
- 8001bde: 611a str r2, [r3, #16]
- huart2.Init.Mode = UART_MODE_TX_RX;
- 8001be0: 4b09 ldr r3, [pc, #36] ; (8001c08 )
- 8001be2: 220c movs r2, #12
- 8001be4: 615a str r2, [r3, #20]
- huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
- 8001be6: 4b08 ldr r3, [pc, #32] ; (8001c08 )
- 8001be8: 2200 movs r2, #0
- 8001bea: 619a str r2, [r3, #24]
- huart2.Init.OverSampling = UART_OVERSAMPLING_16;
- 8001bec: 4b06 ldr r3, [pc, #24] ; (8001c08 )
- 8001bee: 2200 movs r2, #0
- 8001bf0: 61da str r2, [r3, #28]
- if (HAL_UART_Init(&huart2) != HAL_OK)
- 8001bf2: 4805 ldr r0, [pc, #20] ; (8001c08 )
- 8001bf4: f001 ff16 bl 8003a24
- 8001bf8: 4603 mov r3, r0
- 8001bfa: 2b00 cmp r3, #0
- 8001bfc: d001 beq.n 8001c02
- {
- Error_Handler();
- 8001bfe: f000 f877 bl 8001cf0
- }
- /* USER CODE BEGIN USART2_Init 2 */
-
- /* USER CODE END USART2_Init 2 */
-
-}
- 8001c02: bf00 nop
- 8001c04: bd80 pop {r7, pc}
- 8001c06: bf00 nop
- 8001c08: 20000104 .word 0x20000104
- 8001c0c: 40004400 .word 0x40004400
-
-08001c10 :
- * @brief GPIO Initialization Function
- * @param None
- * @retval None
- */
-static void MX_GPIO_Init(void)
-{
- 8001c10: b580 push {r7, lr}
- 8001c12: b08a sub sp, #40 ; 0x28
- 8001c14: af00 add r7, sp, #0
- GPIO_InitTypeDef GPIO_InitStruct = {0};
- 8001c16: f107 0314 add.w r3, r7, #20
- 8001c1a: 2200 movs r2, #0
- 8001c1c: 601a str r2, [r3, #0]
- 8001c1e: 605a str r2, [r3, #4]
- 8001c20: 609a str r2, [r3, #8]
- 8001c22: 60da str r2, [r3, #12]
- 8001c24: 611a str r2, [r3, #16]
-
- /* GPIO Ports Clock Enable */
- __HAL_RCC_GPIOC_CLK_ENABLE();
- 8001c26: 2300 movs r3, #0
- 8001c28: 613b str r3, [r7, #16]
- 8001c2a: 4b2d ldr r3, [pc, #180] ; (8001ce0 )
- 8001c2c: 6b1b ldr r3, [r3, #48] ; 0x30
- 8001c2e: 4a2c ldr r2, [pc, #176] ; (8001ce0 )
- 8001c30: f043 0304 orr.w r3, r3, #4
- 8001c34: 6313 str r3, [r2, #48] ; 0x30
- 8001c36: 4b2a ldr r3, [pc, #168] ; (8001ce0 )
- 8001c38: 6b1b ldr r3, [r3, #48] ; 0x30
- 8001c3a: f003 0304 and.w r3, r3, #4
- 8001c3e: 613b str r3, [r7, #16]
- 8001c40: 693b ldr r3, [r7, #16]
- __HAL_RCC_GPIOH_CLK_ENABLE();
- 8001c42: 2300 movs r3, #0
- 8001c44: 60fb str r3, [r7, #12]
- 8001c46: 4b26 ldr r3, [pc, #152] ; (8001ce0 )
- 8001c48: 6b1b ldr r3, [r3, #48] ; 0x30
- 8001c4a: 4a25 ldr r2, [pc, #148] ; (8001ce0 )
- 8001c4c: f043 0380 orr.w r3, r3, #128 ; 0x80
- 8001c50: 6313 str r3, [r2, #48] ; 0x30
- 8001c52: 4b23 ldr r3, [pc, #140] ; (8001ce0 )
- 8001c54: 6b1b ldr r3, [r3, #48] ; 0x30
- 8001c56: f003 0380 and.w r3, r3, #128 ; 0x80
- 8001c5a: 60fb str r3, [r7, #12]
- 8001c5c: 68fb ldr r3, [r7, #12]
- __HAL_RCC_GPIOA_CLK_ENABLE();
- 8001c5e: 2300 movs r3, #0
- 8001c60: 60bb str r3, [r7, #8]
- 8001c62: 4b1f ldr r3, [pc, #124] ; (8001ce0 )
- 8001c64: 6b1b ldr r3, [r3, #48] ; 0x30
- 8001c66: 4a1e ldr r2, [pc, #120] ; (8001ce0 )
- 8001c68: f043 0301 orr.w r3, r3, #1
- 8001c6c: 6313 str r3, [r2, #48] ; 0x30
- 8001c6e: 4b1c ldr r3, [pc, #112] ; (8001ce0 )
- 8001c70: 6b1b ldr r3, [r3, #48] ; 0x30
- 8001c72: f003 0301 and.w r3, r3, #1
- 8001c76: 60bb str r3, [r7, #8]
- 8001c78: 68bb ldr r3, [r7, #8]
- __HAL_RCC_GPIOB_CLK_ENABLE();
- 8001c7a: 2300 movs r3, #0
- 8001c7c: 607b str r3, [r7, #4]
- 8001c7e: 4b18 ldr r3, [pc, #96] ; (8001ce0 )
- 8001c80: 6b1b ldr r3, [r3, #48] ; 0x30
- 8001c82: 4a17 ldr r2, [pc, #92] ; (8001ce0 )
- 8001c84: f043 0302 orr.w r3, r3, #2
- 8001c88: 6313 str r3, [r2, #48] ; 0x30
- 8001c8a: 4b15 ldr r3, [pc, #84] ; (8001ce0 )
- 8001c8c: 6b1b ldr r3, [r3, #48] ; 0x30
- 8001c8e: f003 0302 and.w r3, r3, #2
- 8001c92: 607b str r3, [r7, #4]
- 8001c94: 687b ldr r3, [r7, #4]
-
- /*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET);
- 8001c96: 2200 movs r2, #0
- 8001c98: 2120 movs r1, #32
- 8001c9a: 4812 ldr r0, [pc, #72] ; (8001ce4 )
- 8001c9c: f000 fc82 bl 80025a4
-
- /*Configure GPIO pin : B1_Pin */
- GPIO_InitStruct.Pin = B1_Pin;
- 8001ca0: f44f 5300 mov.w r3, #8192 ; 0x2000
- 8001ca4: 617b str r3, [r7, #20]
- GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
- 8001ca6: 4b10 ldr r3, [pc, #64] ; (8001ce8 )
- 8001ca8: 61bb str r3, [r7, #24]
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- 8001caa: 2300 movs r3, #0
- 8001cac: 61fb str r3, [r7, #28]
- HAL_GPIO_Init(B1_GPIO_Port, &GPIO_InitStruct);
- 8001cae: f107 0314 add.w r3, r7, #20
- 8001cb2: 4619 mov r1, r3
- 8001cb4: 480d ldr r0, [pc, #52] ; (8001cec )
- 8001cb6: f000 faf3 bl 80022a0
-
- /*Configure GPIO pin : LD2_Pin */
- GPIO_InitStruct.Pin = LD2_Pin;
- 8001cba: 2320 movs r3, #32
- 8001cbc: 617b str r3, [r7, #20]
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- 8001cbe: 2301 movs r3, #1
- 8001cc0: 61bb str r3, [r7, #24]
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- 8001cc2: 2300 movs r3, #0
- 8001cc4: 61fb str r3, [r7, #28]
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- 8001cc6: 2300 movs r3, #0
- 8001cc8: 623b str r3, [r7, #32]
- HAL_GPIO_Init(LD2_GPIO_Port, &GPIO_InitStruct);
- 8001cca: f107 0314 add.w r3, r7, #20
- 8001cce: 4619 mov r1, r3
- 8001cd0: 4804 ldr r0, [pc, #16] ; (8001ce4 )
- 8001cd2: f000 fae5 bl 80022a0
-
-}
- 8001cd6: bf00 nop
- 8001cd8: 3728 adds r7, #40 ; 0x28
- 8001cda: 46bd mov sp, r7
- 8001cdc: bd80 pop {r7, pc}
- 8001cde: bf00 nop
- 8001ce0: 40023800 .word 0x40023800
- 8001ce4: 40020000 .word 0x40020000
- 8001ce8: 10210000 .word 0x10210000
- 8001cec: 40020800 .word 0x40020800
-
-08001cf0 :
-/**
- * @brief This function is executed in case of error occurrence.
- * @retval None
- */
-void Error_Handler(void)
-{
- 8001cf0: b480 push {r7}
- 8001cf2: 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");
- 8001cf4: b672 cpsid i
- /* USER CODE BEGIN Error_Handler_Debug */
- /* User can add his own implementation to report the HAL error return state */
- __disable_irq();
- while (1)
- 8001cf6: e7fe b.n 8001cf6
-
-08001cf8 :
- * @brief Alarm callback
- * @param hrtc: RTC handle
- * @retval None
- */
-void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc)
-{
- 8001cf8: b580 push {r7, lr}
- 8001cfa: b082 sub sp, #8
- 8001cfc: af00 add r7, sp, #0
- 8001cfe: 6078 str r0, [r7, #4]
- /* Alarm generation */
- transmit_uart("Alarm!!!!\r\n");
- 8001d00: 4803 ldr r0, [pc, #12] ; (8001d10 )
- 8001d02: f7ff fd81 bl 8001808
-}
- 8001d06: bf00 nop
- 8001d08: 3708 adds r7, #8
- 8001d0a: 46bd mov sp, r7
- 8001d0c: bd80 pop {r7, pc}
- 8001d0e: bf00 nop
- 8001d10: 0800600c .word 0x0800600c
-
-08001d14 :
-/* USER CODE END 0 */
-/**
- * Initializes the Global MSP.
- */
-void HAL_MspInit(void)
-{
- 8001d14: b580 push {r7, lr}
- 8001d16: b082 sub sp, #8
- 8001d18: af00 add r7, sp, #0
- /* USER CODE BEGIN MspInit 0 */
-
- /* USER CODE END MspInit 0 */
-
- __HAL_RCC_SYSCFG_CLK_ENABLE();
- 8001d1a: 2300 movs r3, #0
- 8001d1c: 607b str r3, [r7, #4]
- 8001d1e: 4b10 ldr r3, [pc, #64] ; (8001d60 )
- 8001d20: 6c5b ldr r3, [r3, #68] ; 0x44
- 8001d22: 4a0f ldr r2, [pc, #60] ; (8001d60 )
- 8001d24: f443 4380 orr.w r3, r3, #16384 ; 0x4000
- 8001d28: 6453 str r3, [r2, #68] ; 0x44
- 8001d2a: 4b0d ldr r3, [pc, #52] ; (8001d60 )
- 8001d2c: 6c5b ldr r3, [r3, #68] ; 0x44
- 8001d2e: f403 4380 and.w r3, r3, #16384 ; 0x4000
- 8001d32: 607b str r3, [r7, #4]
- 8001d34: 687b ldr r3, [r7, #4]
- __HAL_RCC_PWR_CLK_ENABLE();
- 8001d36: 2300 movs r3, #0
- 8001d38: 603b str r3, [r7, #0]
- 8001d3a: 4b09 ldr r3, [pc, #36] ; (8001d60 )
- 8001d3c: 6c1b ldr r3, [r3, #64] ; 0x40
- 8001d3e: 4a08 ldr r2, [pc, #32] ; (8001d60 )
- 8001d40: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
- 8001d44: 6413 str r3, [r2, #64] ; 0x40
- 8001d46: 4b06 ldr r3, [pc, #24] ; (8001d60 )
- 8001d48: 6c1b ldr r3, [r3, #64] ; 0x40
- 8001d4a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
- 8001d4e: 603b str r3, [r7, #0]
- 8001d50: 683b ldr r3, [r7, #0]
-
- HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_0);
- 8001d52: 2007 movs r0, #7
- 8001d54: f000 fa62 bl 800221c
- /* System interrupt init*/
-
- /* USER CODE BEGIN MspInit 1 */
-
- /* USER CODE END MspInit 1 */
-}
- 8001d58: bf00 nop
- 8001d5a: 3708 adds r7, #8
- 8001d5c: 46bd mov sp, r7
- 8001d5e: bd80 pop {r7, pc}
- 8001d60: 40023800 .word 0x40023800
-
-08001d64 :
-* This function configures the hardware resources used in this example
-* @param hrtc: RTC handle pointer
-* @retval None
-*/
-void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
-{
- 8001d64: b580 push {r7, lr}
- 8001d66: b082 sub sp, #8
- 8001d68: af00 add r7, sp, #0
- 8001d6a: 6078 str r0, [r7, #4]
- if(hrtc->Instance==RTC)
- 8001d6c: 687b ldr r3, [r7, #4]
- 8001d6e: 681b ldr r3, [r3, #0]
- 8001d70: 4a08 ldr r2, [pc, #32] ; (8001d94 )
- 8001d72: 4293 cmp r3, r2
- 8001d74: d10a bne.n 8001d8c
- {
- /* USER CODE BEGIN RTC_MspInit 0 */
-
- /* USER CODE END RTC_MspInit 0 */
- /* Peripheral clock enable */
- __HAL_RCC_RTC_ENABLE();
- 8001d76: 4b08 ldr r3, [pc, #32] ; (8001d98 )
- 8001d78: 2201 movs r2, #1
- 8001d7a: 601a str r2, [r3, #0]
- /* RTC interrupt Init */
- HAL_NVIC_SetPriority(RTC_Alarm_IRQn, 0, 0);
- 8001d7c: 2200 movs r2, #0
- 8001d7e: 2100 movs r1, #0
- 8001d80: 2029 movs r0, #41 ; 0x29
- 8001d82: f000 fa56 bl 8002232
- HAL_NVIC_EnableIRQ(RTC_Alarm_IRQn);
- 8001d86: 2029 movs r0, #41 ; 0x29
- 8001d88: f000 fa6f bl 800226a