An example project for the Heltec Turtle LoRa board (STM32L4 and SX1276 chips). The projects is only supported for the Nucleo-L432KC board platform in the mbed online and offline compiler environment. Visit www.radioshuttle.de (choose Turtle board) for instructions. Note that most source files and libraries are open source, however some files especially the RadioShuttle core protocol is copyrighted work. Check header for details.
Dependencies: mbed BufferedSerial SX1276GenericLib OLED_SSD1306 HELIOS_Si7021 NVProperty RadioShuttle-STM32L4 USBDeviceHT
Diff: Utils/mbed-util.s
- Revision:
- 43:ec1b7aa823a6
- Parent:
- 42:6f83ba18bcea
- Child:
- 44:cda7bca43f3b
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Utils/mbed-util.s Fri Feb 15 10:48:30 2019 +0100 @@ -0,0 +1,1666 @@ +#ifdef __ARMCC_VERSION +; generated by Component: ARM Compiler 5.06 update 4 (build 422) Tool: armcc [4d3604] +; commandline armcc [--cpp --split_sections -c -S --gnu -oBUILD\NUCLEO_L432KC\ARM\mbed-util.o --depend=BUILD\NUCLEO_L432KC\ARM\mbed-util.d --cpu=Cortex-M4.fp --apcs=interwork -O3 -Otime --preinclude=.\BUILD\NUCLEO_L432KC\ARM\mbed_config.h -I. -I./BulkSerial -I./ESP -I./FATFileSystem -I./FATFileSystem/ChaN -I./Flash -I./Flash/MD5 -I./Hardware-STM -I./NVProperty -I./Power -I./RadioShuttleLib -I./RadioShuttleLib/examples -I./RadioShuttleLib/examples/PMSensorRadio -I./RadioShuttleLib/examples/RadioTest -I./RadioShuttleLib/util -I./STM_MEMS -I./SX1276GenericLib -I./SX1276GenericLib/radio -I./SX1276GenericLib/registers -I./SX1276GenericLib/sx1276 -I./USBDeviceHT -I./USBDeviceHT/USBDevice -I./USBDeviceHT/USBSerial -I./USBDeviceHT/USBSerialBuffered -I./USBDeviceHT/targets/TARGET_STM -I./WIZnetInterface -I./WIZnetInterface/Socket -I./WIZnetInterface/arch -I./WIZnetInterface/arch/ext -I./WIZnetInterface/arch/int -I./WakeUpRTC -I./WakeUpRTC/Device -I./WakeUpRTC/Device/LPC1114_WakeInterruptIn -I./ZModem -I./mbed -I./mbed/e95d10626187 -I./mbed/e95d10626187/TARGET_NUCLEO_L432KC -I./mbed/e95d10626187/TARGET_NUCLEO_L432KC/TARGET_STM -I./mbed/e95d10626187/TARGET_NUCLEO_L432KC/TARGET_STM/TARGET_STM32L4 -I./mbed/e95d10626187/TARGET_NUCLEO_L432KC/TARGET_STM/TARGET_STM32L4/TARGET_STM32L432xC -I./mbed/e95d10626187/TARGET_NUCLEO_L432KC/TARGET_STM/TARGET_STM32L4/TARGET_STM32L432xC/TARGET_NUCLEO_L432KC -I./mbed/e95d10626187/TARGET_NUCLEO_L432KC/TARGET_STM/TARGET_STM32L4/TARGET_STM32L432xC/device -I./mbed/e95d10626187/TARGET_NUCLEO_L432KC/TARGET_STM/TARGET_STM32L4/device -I./mbed/e95d10626187/drivers -I./mbed/e95d10626187/hal -I./mbed/e95d10626187/platform -D__ASSERT_MSG -DMBED_ROM_START=0x8000000 -DMBED_ROM_SIZE=0x40000 -DDEVICE_CRC=1 -D__MBED__=1 -DDEVICE_I2CSLAVE=1 -D__FPU_PRESENT=1 -DDEVICE_PORTOUT=1 -DDEVICE_PORTINOUT=1 -DTARGET_RTOS_M4_M7 -DDEVICE_RTC=1 -DDEVICE_SERIAL_ASYNCH=1 -D__CMSIS_RTOS -DDEVICE_USTICKER=1 -DDEVICE_CAN=1 -DTARGET_CORTEX_M -DDEVICE_I2C_ASYNCH=1 -DTARGET_LIKE_CORTEX_M4 -DDEVICE_ANALOGOUT=1 -DTARGET_M4 -DARM_MATH_CM4 -DTARGET_STM32L4 -DDEVICE_SPI_ASYNCH=1 -DDEVICE_LPTICKER=1 -DDEVICE_PWMOUT=1 -DTARGET_STM32L432xC -DMBED_BUILD_TIMESTAMP=1548340964.1 -DTARGET_CORTEX -DDEVICE_I2C=1 -DTRANSACTION_QUEUE_SIZE_SPI=2 -D__CORTEX_M4 -DDEVICE_STDIO_MESSAGES=1 -DTARGET_FAMILY_STM32 -DTARGET_FF_ARDUINO -DDEVICE_PORTIN=1 -DTARGET_RELEASE -DTARGET_STM -DTARGET_STM32L432KC -DDEVICE_SERIAL_FC=1 -DDEVICE_TRNG=1 -DTARGET_LIKE_MBED -D__MBED_CMSIS_RTOS_CM -DDEVICE_SLEEP=1 -DDEVICE_SPI=1 -DDEVICE_INTERRUPTIN=1 -DDEVICE_SPISLAVE=1 -DDEVICE_ANALOGIN=1 -DDEVICE_SERIAL=1 -DDEVICE_FLASH=1 -DTARGET_NUCLEO_L432KC -DTOOLCHAIN_ARM -DTOOLCHAIN_ARM_STD --no_vla --multibyte_chars --brief_diagnostics --no_depend_system_headers --restrict --no_rtti .\mbed-util.cpp] + THUMB + REQUIRE8 + PRESERVE8 + + AREA ||i._Z14BatteryVoltagev||, CODE, READONLY, ALIGN=3 + +_Z14BatteryVoltagev PROC + PUSH {r4-r7,lr} + LDR r5,|L0.328| + VPUSH {d8} + SUB sp,sp,#0x84 + LDR r0,[r5,#0x4c] + ORR r0,r0,#0x2000 + STR r0,[r5,#0x4c] + LDR r0,[r5,#0x4c] + AND r0,r0,#0x2000 + STR r0,[sp,#0x80] + LDR r0,[r5,#0x88] + ORR r0,r0,#0x30000000 + STR r0,[r5,#0x88] + LDR r6,|L0.332| + MOV r0,sp + STR r6,[sp,#0] + BL HAL_ADC_DeInit + CMP r0,#0 + ITTTT NE + VMOVNE.F32 s0,#1.00000000 + ADDNE sp,sp,#0x84 + VPOPNE {d8} + POPNE {r4-r7,pc} + MOVS r4,#0 + MOVS r7,#4 + STRD r4,r7,[sp,#0x10] + STR r4,[sp,#4] + STR r4,[sp,#8] + STR r4,[sp,#0xc] + MOVS r0,#1 + STR r4,[sp,#0x18] + STRD r4,r0,[sp,#0x1c] + STRD r4,r0,[sp,#0x24] + STR r4,[sp,#0x2c] + LSLS r0,r0,#12 + STR r4,[sp,#0x30] + STRD r4,r0,[sp,#0x34] + MOV r0,sp + STR r4,[sp,#0x3c] + BL HAL_ADC_Init + CMP r0,#0 + ITTTT NE + VMOVNE.F32 s0,#2.00000000 + ADDNE sp,sp,#0x84 + VPOPNE {d8} + POPNE {r4-r7,pc} + LDR r0,|L0.336| + STR r0,[sp,#0x68] + MOVS r0,#6 + STR r0,[sp,#0x6c] + MOVS r0,#7 + STR r0,[sp,#0x70] + MOVS r0,#0x7f + STR r4,[sp,#0x7c] + STRD r0,r7,[sp,#0x74] + ADD r1,sp,#0x68 + MOV r0,sp + BL HAL_ADC_ConfigChannel + CMP r0,#0 + ITTTT NE + VMOVNE.F32 s0,#3.00000000 + ADDNE sp,sp,#0x84 + VPOPNE {d8} + POPNE {r4-r7,pc} + MOVS r1,#0x7f + MOV r0,sp + BL HAL_ADCEx_Calibration_Start + CMP r0,#0 + ITTTT NE + VMOVNE.F32 s0,#4.00000000 + ADDNE sp,sp,#0x84 + VPOPNE {d8} + POPNE {r4-r7,pc} + MOV r0,sp + BL HAL_ADC_Start + CMP r0,#0 + ITTTT NE + VMOVNE.F32 s0,#5.00000000 + ADDNE sp,sp,#0x84 + VPOPNE {d8} + POPNE {r4-r7,pc} + MOVS r1,#0xa + MOV r0,sp + BL HAL_ADC_PollForConversion + CMP r0,#0 + ITTTT NE + VMOVNE.F32 s0,#6.00000000 + ADDNE sp,sp,#0x84 + VPOPNE {d8} + POPNE {r4-r7,pc} + MOV r0,sp + BL HAL_ADC_GetValue + LDR r1,|L0.340| + UDIV r0,r1,r0 + BL __aeabi_ui2d + VLDR d1,|L0.344| + VMOV r2,r3,d1 + BL __aeabi_ddiv + BL __aeabi_d2f + VMOV s16,r0 + MOV r0,sp + BL ADC_Disable + MOV r0,sp + BL HAL_ADC_DeInit + LDR r0,[r5,#0x88] + BIC r0,r0,#0x30000000 + STR r0,[r5,#0x88] + LDR r0,[r5,#0x4c] + BIC r0,r0,#0x2000 + STR r0,[r5,#0x4c] + LDR r0,[r6,#8] + BIC r0,r0,#0x1800000 + STR r0,[r6,#8] + ADD sp,sp,#0x84 + VMOV.F32 s0,s16 + VPOP {d8} + POP {r4-r7,pc} + ENDP + + DCW 0x0000 +|L0.328| + DCD 0x40021000 +|L0.332| + DCD 0x50040000 +|L0.336| + DCD 0x80000001 +|L0.340| + DCD 0x004afb50 +|L0.344| + DCFD 0x408f400000000000 ; 1000 + + AREA ||i._Z5CPUIDPhij||, CODE, READONLY, ALIGN=2 + +_Z5CPUIDPhij PROC + LDR r3,|L1.48| + CMP r1,#0x10 + ITT LT + MOVLT r0,#0 + BXLT lr + EOR r1,r3,r2 + LDR r2,[r1,#0] + STR r2,[r0,#0] + LDR r2,[r1,#4] + STR r2,[r0,#4] + LDR r1,[r1,#8] + STR r1,[r0,#8] + LDR r1,|L1.52| + LDR r2,|L1.56| + LDRB r1,[r1,#0] + LDRH r2,[r2,#0] + AND r1,r1,#0x1f + ORR r1,r1,r2,LSL #16 + STR r1,[r0,#0xc] + MOVS r0,#0x10 + BX lr + ENDP + +|L1.48| + DCD 0x4aaa20c5 +|L1.52| + DCD 0x1fff7500 +|L1.56| + DCD 0x1fff75e0 + + AREA ||i._Z8OTPWritePhPKvj||, CODE, READONLY, ALIGN=1 + +_Z8OTPWritePhPKvj PROC + PUSH {r4-r6,lr} + SUB sp,sp,#8 + MOV r6,r2 + MOV r4,r1 + MOV r5,r0 + BL HAL_FLASH_Unlock + CBZ r6,|L2.84| +|L2.16| + LDRB r0,[r4,#0] + STRB r0,[sp,#0] + LDRB r0,[r4,#1] + STRB r0,[sp,#1] + LDRB r0,[r4,#2] + STRB r0,[sp,#2] + LDRB r0,[r4,#3] + STRB r0,[sp,#3] + LDRB r0,[r4,#4] + STRB r0,[sp,#4] + LDRB r0,[r4,#5] + STRB r0,[sp,#5] + LDRB r0,[r4,#6] + STRB r0,[sp,#6] + LDRB r0,[r4,#7] + STRB r0,[sp,#7] + LDRD r2,r3,[sp,#0] + MOV r1,r5 + MOVS r0,#0 + BL HAL_FLASH_Program + ADDS r4,r4,#8 + ADDS r5,r5,#8 + SUBS r6,r6,#8 + BNE |L2.16| +|L2.84| + ADD sp,sp,#8 + POP {r4-r6,lr} + B.W HAL_FLASH_Lock + ENDP + + + AREA ||.ARM.exidx||, LINKORDER=||i._Z5CPUIDPhij||, DATA, READONLY, SECTYPE={SHT_ARM_EXIDX}, ALIGN=2 + + DCD 0x00000000 + RELOC 42, ||i._Z5CPUIDPhij|| + DCD 0x00000001 + + AREA ||area_number.4||, LINKORDER=||i._Z14BatteryVoltagev||, DATA, READONLY, SECTYPE={SHT_ARM_EXIDX}, ALIGN=2 + + EXPORTAS ||area_number.4||, ||.ARM.exidx|| + DCD 0x00000000 + RELOC 42, ||i._Z14BatteryVoltagev|| + DCD 0x00000001 + + AREA ||area_number.5||, LINKORDER=||i._Z8OTPWritePhPKvj||, DATA, READONLY, SECTYPE={SHT_ARM_EXIDX}, ALIGN=2 + + EXPORTAS ||area_number.5||, ||.ARM.exidx|| + DCD 0x00000000 + RELOC 42, ||i._Z8OTPWritePhPKvj|| + DCD 0x00000001 + + AREA ||.arm_vfe_header||, DATA, READONLY, NOALLOC, ALIGN=2 + + DCD 0x00000000 + +;*** Start embedded assembler *** + +#line 1 ".\\mbed-util.cpp" + AREA ||.rev16_text||, CODE + THUMB + EXPORT |__asm___13_mbed_util_cpp_f390ad65___Z7__REV16j| +#line 468 "./mbed/e95d10626187/TARGET_NUCLEO_L432KC/cmsis_armcc.h" +|__asm___13_mbed_util_cpp_f390ad65___Z7__REV16j| PROC +#line 469 + + rev16 r0, r0 + bx lr + ENDP + AREA ||.revsh_text||, CODE + THUMB + EXPORT |__asm___13_mbed_util_cpp_f390ad65___Z7__REVSHs| +#line 483 +|__asm___13_mbed_util_cpp_f390ad65___Z7__REVSHs| PROC +#line 484 + + revsh r0, r0 + bx lr + ENDP + AREA ||.rrx_text||, CODE + THUMB + EXPORT |__asm___13_mbed_util_cpp_f390ad65___Z5__RRXj| +#line 670 +|__asm___13_mbed_util_cpp_f390ad65___Z5__RRXj| PROC +#line 671 + + rrx r0, r0 + bx lr + ENDP + +;*** End embedded assembler *** + + EXPORT _Z14BatteryVoltagev [CODE] + EXPORT _Z5CPUIDPhij [CODE] + EXPORT _Z8OTPWritePhPKvj [CODE] + + IMPORT ||Lib$$Request$$armlib|| [CODE,WEAK] + IMPORT ||Lib$$Request$$cpplib|| [CODE,WEAK] + IMPORT HAL_ADC_DeInit [CODE] + IMPORT HAL_ADC_Init [CODE] + IMPORT HAL_ADC_ConfigChannel [CODE] + IMPORT HAL_ADCEx_Calibration_Start [CODE] + IMPORT HAL_ADC_Start [CODE] + IMPORT HAL_ADC_PollForConversion [CODE] + IMPORT HAL_ADC_GetValue [CODE] + IMPORT __aeabi_ui2d [CODE] + IMPORT __aeabi_ddiv [CODE] + IMPORT __aeabi_d2f [CODE] + IMPORT ADC_Disable [CODE] + IMPORT HAL_FLASH_Unlock [CODE] + IMPORT HAL_FLASH_Program [CODE] + IMPORT HAL_FLASH_Lock [CODE] + + ATTR FILESCOPE + ATTR SETVALUE Tag_ABI_PCS_wchar_t,2 + ATTR SETVALUE Tag_ABI_enum_size,1 + ATTR SETVALUE Tag_ABI_optimization_goals,2 + ATTR SETSTRING Tag_conformance,"2.09" + ATTR SETVALUE AV,6,0 + ATTR SETVALUE AV,18,1 + + ASSERT {ENDIAN} = "little" + ASSERT {INTER} = {TRUE} + ASSERT {ROPI} = {FALSE} + ASSERT {RWPI} = {FALSE} + ASSERT {IEEE_FULL} = {FALSE} + ASSERT {IEEE_PART} = {FALSE} + ASSERT {IEEE_JAVA} = {FALSE} + END +#elif defined(__GNUC__) + .cpu cortex-m4 + .eabi_attribute 27, 1 + .eabi_attribute 20, 1 + .eabi_attribute 21, 1 + .eabi_attribute 23, 3 + .eabi_attribute 24, 1 + .eabi_attribute 25, 1 + .eabi_attribute 26, 1 + .eabi_attribute 30, 4 + .eabi_attribute 34, 1 + .eabi_attribute 18, 4 + .file "mbed-util.cpp" + .text +.Ltext0: + .cfi_sections .debug_frame + .section .text._Z5CPUIDPhim,"ax",%progbits + .align 1 + .global _Z5CPUIDPhim + .arch armv7e-m + .syntax unified + .thumb + .thumb_func + .fpu fpv4-sp-d16 + .type _Z5CPUIDPhim, %function +_Z5CPUIDPhim: +.LFB2093: + .file 1 "./mbed-util.cpp" + .loc 1 22 1 + .cfi_startproc + @ args = 0, pretend = 0, frame = 8 + @ frame_needed = 0, uses_anonymous_args = 0 +.LBB2: + .loc 1 28 5 + cmp r1, #15 +.LBE2: + .loc 1 22 1 + push {r0, r1, r2, lr} + .cfi_def_cfa_offset 16 + .cfi_offset 14, -4 + .loc 1 22 1 + mov r3, r0 +.LBB5: + .loc 1 28 5 + ble .L4 +.LBB3: + .loc 1 30 21 + ldr r1, .L6 + eors r1, r1, r2 + adds r0, r0, #12 + subs r1, r1, r3 +.L3: +.LBB4: + .loc 1 34 19 discriminator 2 + ldrb r2, [r3, r1] @ zero_extendqisi2 + .loc 1 34 17 discriminator 2 + strb r2, [r3], #1 + .loc 1 33 27 discriminator 2 + cmp r0, r3 + bne .L3 +.LBE4: + .loc 1 36 19 + ldr r3, .L6+4 + ldrh r2, [r3] + .loc 1 36 64 + subs r3, r3, #224 + .loc 1 36 101 + ldrh r3, [r3] + and r3, r3, #31 + .loc 1 36 60 + orr r3, r3, r2, lsl #16 + .loc 1 37 9 + movs r2, #4 + add r1, sp, r2 + .loc 1 36 12 + str r3, [sp, #4] + .loc 1 37 9 + bl memcpy + .loc 1 39 16 + movs r0, #16 +.L1: +.LBE3: +.LBE5: + .loc 1 42 1 + add sp, sp, #12 + .cfi_remember_state + .cfi_def_cfa_offset 4 + @ sp needed + ldr pc, [sp], #4 +.L4: + .cfi_restore_state + .loc 1 41 12 + movs r0, #0 + b .L1 +.L7: + .align 2 +.L6: + .word 1252663493 + .word 536835552 + .cfi_endproc +.LFE2093: + .size _Z5CPUIDPhim, .-_Z5CPUIDPhim + .global __aeabi_ui2d + .global __aeabi_ddiv + .global __aeabi_d2f + .section .text._Z14BatteryVoltagev,"ax",%progbits + .align 1 + .global _Z14BatteryVoltagev + .syntax unified + .thumb + .thumb_func + .fpu fpv4-sp-d16 + .type _Z14BatteryVoltagev, %function +_Z14BatteryVoltagev: +.LFB2094: + .loc 1 48 1 + .cfi_startproc + @ args = 0, pretend = 0, frame = 136 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r4, r5, r6, r7, lr} + .cfi_def_cfa_offset 20 + .cfi_offset 4, -20 + .cfi_offset 5, -16 + .cfi_offset 6, -12 + .cfi_offset 7, -8 + .cfi_offset 14, -4 +.LBB6: + .loc 1 60 5 + ldr r4, .L16 +.LBE6: + .loc 1 66 24 + ldr r6, .L16+4 +.LBB7: + .loc 1 60 5 + ldr r3, [r4, #76] + orr r3, r3, #8192 + str r3, [r4, #76] + ldr r3, [r4, #76] +.LBE7: + .loc 1 48 1 + sub sp, sp, #140 + .cfi_def_cfa_offset 160 +.LBB8: + .loc 1 60 5 + and r3, r3, #8192 + str r3, [sp, #4] + ldr r3, [sp, #4] +.LBE8: + .loc 1 62 5 + ldr r3, [r4, #136] + orr r3, r3, #805306368 + str r3, [r4, #136] + .loc 1 67 23 + add r0, sp, #32 + .loc 1 66 24 + str r6, [sp, #32] + .loc 1 67 23 + bl HAL_ADC_DeInit + .loc 1 67 5 + cmp r0, #0 + bne .L10 + .loc 1 77 42 + movs r3, #1 + .loc 1 78 42 + strd r3, r0, [sp, #64] + .loc 1 80 42 + strd r3, r0, [sp, #72] + .loc 1 74 42 + movs r7, #4 + .loc 1 83 42 + mov r3, #4096 + .loc 1 71 42 + strd r0, r0, [sp, #36] + .loc 1 73 42 + strd r0, r0, [sp, #44] + .loc 1 75 42 + strd r7, r0, [sp, #52] + .loc 1 76 42 + str r0, [sp, #60] + .loc 1 82 42 + strd r0, r0, [sp, #80] + .loc 1 84 42 + strd r3, r0, [sp, #88] + .loc 1 86 21 + add r0, sp, #32 + bl HAL_ADC_Init + .loc 1 86 5 + cmp r0, #0 + bne .L11 + .loc 1 92 26 + ldr r2, .L16+8 + movs r3, #6 + strd r2, r3, [sp, #8] + .loc 1 94 26 + movs r5, #127 + movs r3, #7 + .loc 1 96 20 + strd r7, r0, [sp, #24] + .loc 1 98 30 + add r1, sp, #8 + add r0, sp, #32 + .loc 1 94 26 + strd r3, r5, [sp, #16] + .loc 1 98 30 + bl HAL_ADC_ConfigChannel + .loc 1 98 5 + cmp r0, #0 + bne .L12 + .loc 1 117 36 + mov r1, r5 + add r0, sp, #32 + bl HAL_ADCEx_Calibration_Start + .loc 1 117 5 + cmp r0, #0 + bne .L13 + .loc 1 123 22 + add r0, sp, #32 + bl HAL_ADC_Start + .loc 1 123 5 + cmp r0, #0 + bne .L14 + .loc 1 132 34 + movs r1, #10 + add r0, sp, #32 + bl HAL_ADC_PollForConversion + .loc 1 132 5 + cmp r0, #0 + bne .L15 + .loc 1 141 38 + add r0, sp, #32 + bl HAL_ADC_GetValue + .loc 1 147 54 + ldr r3, .L16+12 + udiv r0, r3, r0 + bl __aeabi_ui2d + ldr r3, .L16+16 + movs r2, #0 + bl __aeabi_ddiv + .loc 1 147 11 + bl __aeabi_d2f + mov r5, r0 @ float + .loc 1 149 16 + add r0, sp, #32 + bl ADC_Disable + .loc 1 150 19 + add r0, sp, #32 + bl HAL_ADC_DeInit + .loc 1 159 5 + ldr r3, [r4, #136] + bic r3, r3, #805306368 + str r3, [r4, #136] + .loc 1 160 5 + ldr r3, [r4, #76] + bic r3, r3, #8192 + str r3, [r4, #76] + .loc 1 163 14 + ldr r3, [r6, #8] + bic r3, r3, #25165824 + str r3, [r6, #8] +.L8: + .loc 1 169 1 + mov r0, r5 @ float + add sp, sp, #140 + .cfi_remember_state + .cfi_def_cfa_offset 20 + @ sp needed + pop {r4, r5, r6, r7, pc} +.L10: + .cfi_restore_state + .loc 1 68 16 + mov r5, #1065353216 + b .L8 +.L11: + .loc 1 87 16 + mov r5, #1073741824 + b .L8 +.L12: + .loc 1 99 16 + ldr r5, .L16+20 + b .L8 +.L13: + .loc 1 119 16 + mov r5, #1082130432 + b .L8 +.L14: + .loc 1 125 16 + ldr r5, .L16+24 + b .L8 +.L15: + .loc 1 134 16 + ldr r5, .L16+28 + b .L8 +.L17: + .align 2 +.L16: + .word 1073876992 + .word 1342439424 + .word -2147483647 + .word 4914000 + .word 1083129856 + .word 1077936128 + .word 1084227584 + .word 1086324736 + .cfi_endproc +.LFE2094: + .size _Z14BatteryVoltagev, .-_Z14BatteryVoltagev + .section .text._Z8OTPWritePhPKvj,"ax",%progbits + .align 1 + .global _Z8OTPWritePhPKvj + .syntax unified + .thumb + .thumb_func + .fpu fpv4-sp-d16 + .type _Z8OTPWritePhPKvj, %function +_Z8OTPWritePhPKvj: +.LFB2095: + .loc 1 174 1 + .cfi_startproc + @ args = 0, pretend = 0, frame = 8 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r0, r1, r2, r4, r5, r6, r7, lr} + .cfi_def_cfa_offset 32 + .cfi_offset 4, -20 + .cfi_offset 5, -16 + .cfi_offset 6, -12 + .cfi_offset 7, -8 + .cfi_offset 14, -4 + .loc 1 174 1 + mov r5, r0 + mov r6, r1 + mov r7, r2 + .loc 1 179 18 + bl HAL_FLASH_Unlock + movs r4, #0 +.L21: + .loc 1 180 16 + cmn r7, r4 + sub r0, r6, r4 + sub r1, r5, r4 + beq .L19 + movs r3, #0 +.L20: +.LBB9: +.LBB10: + .loc 1 182 33 discriminator 2 + ldrb r2, [r0, r3] @ zero_extendqisi2 + strb r2, [sp, r3] + adds r3, r3, #1 + .loc 1 181 25 discriminator 2 + cmp r3, #8 + bne .L20 +.LBE10: + .loc 1 184 23 + ldrd r2, [sp] + movs r0, #0 + bl HAL_FLASH_Program + subs r4, r4, #8 +.LBE9: + .loc 1 180 2 + b .L21 +.L19: + .loc 1 189 19 + bl HAL_FLASH_Lock + .loc 1 190 1 + add sp, sp, #12 + .cfi_def_cfa_offset 20 + @ sp needed + pop {r4, r5, r6, r7, pc} + .cfi_endproc +.LFE2095: + .size _Z8OTPWritePhPKvj, .-_Z8OTPWritePhPKvj + .text +.Letext0: + .section .debug_info,"",%progbits +.Ldebug_info0: + .4byte 0x64 + .2byte 0x4 + .4byte .Ldebug_abbrev0 + .byte 0x4 + .uleb128 0x1 + .4byte .LASF6 + .byte 0x4 + .4byte .LASF7 + .4byte .LASF8 + .4byte .Ldebug_ranges0+0 + .4byte 0 + .4byte .Ldebug_line0 + .uleb128 0x2 + .4byte .LASF0 + .byte 0x1 + .byte 0xad + .byte 0x6 + .4byte .LASF2 + .4byte .LFB2095 + .4byte .LFE2095-.LFB2095 + .uleb128 0x1 + .byte 0x9c + .uleb128 0x2 + .4byte .LASF1 + .byte 0x1 + .byte 0x2f + .byte 0x1 + .4byte .LASF3 + .4byte .LFB2094 + .4byte .LFE2094-.LFB2094 + .uleb128 0x1 + .byte 0x9c + .uleb128 0x2 + .4byte .LASF4 + .byte 0x1 + .byte 0x15 + .byte 0x1 + .4byte .LASF5 + .4byte .LFB2093 + .4byte .LFE2093-.LFB2093 + .uleb128 0x1 + .byte 0x9c + .byte 0 + .section .debug_abbrev,"",%progbits +.Ldebug_abbrev0: + .uleb128 0x1 + .uleb128 0x11 + .byte 0x1 + .uleb128 0x25 + .uleb128 0xe + .uleb128 0x13 + .uleb128 0xb + .uleb128 0x3 + .uleb128 0xe + .uleb128 0x1b + .uleb128 0xe + .uleb128 0x55 + .uleb128 0x17 + .uleb128 0x11 + .uleb128 0x1 + .uleb128 0x10 + .uleb128 0x17 + .byte 0 + .byte 0 + .uleb128 0x2 + .uleb128 0x2e + .byte 0 + .uleb128 0x3f + .uleb128 0x19 + .uleb128 0x3 + .uleb128 0xe + .uleb128 0x3a + .uleb128 0xb + .uleb128 0x3b + .uleb128 0xb + .uleb128 0x39 + .uleb128 0xb + .uleb128 0x6e + .uleb128 0xe + .uleb128 0x11 + .uleb128 0x1 + .uleb128 0x12 + .uleb128 0x6 + .uleb128 0x40 + .uleb128 0x18 + .uleb128 0x2116 + .uleb128 0x19 + .byte 0 + .byte 0 + .byte 0 + .section .debug_aranges,"",%progbits + .4byte 0x2c + .2byte 0x2 + .4byte .Ldebug_info0 + .byte 0x4 + .byte 0 + .2byte 0 + .2byte 0 + .4byte .LFB2093 + .4byte .LFE2093-.LFB2093 + .4byte .LFB2094 + .4byte .LFE2094-.LFB2094 + .4byte .LFB2095 + .4byte .LFE2095-.LFB2095 + .4byte 0 + .4byte 0 + .section .debug_ranges,"",%progbits +.Ldebug_ranges0: + .4byte .LFB2093 + .4byte .LFE2093 + .4byte .LFB2094 + .4byte .LFE2094 + .4byte .LFB2095 + .4byte .LFE2095 + .4byte 0 + .4byte 0 + .section .debug_line,"",%progbits +.Ldebug_line0: + .section .debug_str,"MS",%progbits,1 +.LASF8: + .ascii "/Volumes/Data/work/mbed-work/Turtle_RadioShuttle\000" +.LASF7: + .ascii "./mbed-util.cpp\000" +.LASF0: + .ascii "OTPWrite\000" +.LASF5: + .ascii "_Z5CPUIDPhim\000" +.LASF4: + .ascii "CPUID\000" +.LASF3: + .ascii "_Z14BatteryVoltagev\000" +.LASF6: + .ascii "GNU C++98 8.2.1 20181213 (release) [gcc-8-branch re" + .ascii "vision 267074] -mcpu=cortex-m4 -mthumb -mfpu=fpv4-s" + .ascii "p-d16 -mfloat-abi=softfp -march=armv7e-m+fp -g1 -Os" + .ascii " -std=gnu++98 -fno-rtti -fmessage-length=0 -fno-exc" + .ascii "eptions -fno-builtin -ffunction-sections -fdata-sec" + .ascii "tions -funsigned-char -fno-delete-null-pointer-chec" + .ascii "ks -fomit-frame-pointer\000" +.LASF1: + .ascii "BatteryVoltage\000" +.LASF2: + .ascii "_Z8OTPWritePhPKvj\000" + .ident "GCC: (GNU Tools for Arm Embedded Processors 8-2018-q4-major) 8.2.1 20181213 (release) [gcc-8-branch revision 267074]" +#endif +#ifdef __ARMCC_VERSION +; generated by Component: ARM Compiler 5.06 update 4 (build 422) Tool: armcc [4d3604] +; commandline armcc [--cpp --split_sections -c -S --gnu -oBUILD\NUCLEO_L432KC\ARM\mbed-util.o --depend=BUILD\NUCLEO_L432KC\ARM\mbed-util.d --cpu=Cortex-M4.fp --apcs=interwork -O3 -Otime --preinclude=.\BUILD\NUCLEO_L432KC\ARM\mbed_config.h -I. -I./BulkSerial -I./ESP -I./FATFileSystem -I./FATFileSystem/ChaN -I./Flash -I./Flash/MD5 -I./Hardware-STM -I./NVProperty -I./Power -I./RadioShuttleLib -I./RadioShuttleLib/examples -I./RadioShuttleLib/examples/PMSensorRadio -I./RadioShuttleLib/examples/RadioTest -I./RadioShuttleLib/util -I./STM_MEMS -I./SX1276GenericLib -I./SX1276GenericLib/radio -I./SX1276GenericLib/registers -I./SX1276GenericLib/sx1276 -I./USBDeviceHT -I./USBDeviceHT/USBDevice -I./USBDeviceHT/USBSerial -I./USBDeviceHT/USBSerialBuffered -I./USBDeviceHT/targets/TARGET_STM -I./WIZnetInterface -I./WIZnetInterface/Socket -I./WIZnetInterface/arch -I./WIZnetInterface/arch/ext -I./WIZnetInterface/arch/int -I./WakeUpRTC -I./WakeUpRTC/Device -I./WakeUpRTC/Device/LPC1114_WakeInterruptIn -I./ZModem -I./mbed -I./mbed/e95d10626187 -I./mbed/e95d10626187/TARGET_NUCLEO_L432KC -I./mbed/e95d10626187/TARGET_NUCLEO_L432KC/TARGET_STM -I./mbed/e95d10626187/TARGET_NUCLEO_L432KC/TARGET_STM/TARGET_STM32L4 -I./mbed/e95d10626187/TARGET_NUCLEO_L432KC/TARGET_STM/TARGET_STM32L4/TARGET_STM32L432xC -I./mbed/e95d10626187/TARGET_NUCLEO_L432KC/TARGET_STM/TARGET_STM32L4/TARGET_STM32L432xC/TARGET_NUCLEO_L432KC -I./mbed/e95d10626187/TARGET_NUCLEO_L432KC/TARGET_STM/TARGET_STM32L4/TARGET_STM32L432xC/device -I./mbed/e95d10626187/TARGET_NUCLEO_L432KC/TARGET_STM/TARGET_STM32L4/device -I./mbed/e95d10626187/drivers -I./mbed/e95d10626187/hal -I./mbed/e95d10626187/platform -D__ASSERT_MSG -DMBED_ROM_START=0x8000000 -DMBED_ROM_SIZE=0x40000 -DDEVICE_CRC=1 -D__MBED__=1 -DDEVICE_I2CSLAVE=1 -D__FPU_PRESENT=1 -DDEVICE_PORTOUT=1 -DDEVICE_PORTINOUT=1 -DTARGET_RTOS_M4_M7 -DDEVICE_RTC=1 -DDEVICE_SERIAL_ASYNCH=1 -D__CMSIS_RTOS -DDEVICE_USTICKER=1 -DDEVICE_CAN=1 -DTARGET_CORTEX_M -DDEVICE_I2C_ASYNCH=1 -DTARGET_LIKE_CORTEX_M4 -DDEVICE_ANALOGOUT=1 -DTARGET_M4 -DARM_MATH_CM4 -DTARGET_STM32L4 -DDEVICE_SPI_ASYNCH=1 -DDEVICE_LPTICKER=1 -DDEVICE_PWMOUT=1 -DTARGET_STM32L432xC -DMBED_BUILD_TIMESTAMP=1548340964.1 -DTARGET_CORTEX -DDEVICE_I2C=1 -DTRANSACTION_QUEUE_SIZE_SPI=2 -D__CORTEX_M4 -DDEVICE_STDIO_MESSAGES=1 -DTARGET_FAMILY_STM32 -DTARGET_FF_ARDUINO -DDEVICE_PORTIN=1 -DTARGET_RELEASE -DTARGET_STM -DTARGET_STM32L432KC -DDEVICE_SERIAL_FC=1 -DDEVICE_TRNG=1 -DTARGET_LIKE_MBED -D__MBED_CMSIS_RTOS_CM -DDEVICE_SLEEP=1 -DDEVICE_SPI=1 -DDEVICE_INTERRUPTIN=1 -DDEVICE_SPISLAVE=1 -DDEVICE_ANALOGIN=1 -DDEVICE_SERIAL=1 -DDEVICE_FLASH=1 -DTARGET_NUCLEO_L432KC -DTOOLCHAIN_ARM -DTOOLCHAIN_ARM_STD --no_vla --multibyte_chars --brief_diagnostics --no_depend_system_headers --restrict --no_rtti .\mbed-util.cpp] + THUMB + REQUIRE8 + PRESERVE8 + + AREA ||i._Z14BatteryVoltagev||, CODE, READONLY, ALIGN=3 + +_Z14BatteryVoltagev PROC + PUSH {r4-r7,lr} + LDR r5,|L0.328| + VPUSH {d8} + SUB sp,sp,#0x84 + LDR r0,[r5,#0x4c] + ORR r0,r0,#0x2000 + STR r0,[r5,#0x4c] + LDR r0,[r5,#0x4c] + AND r0,r0,#0x2000 + STR r0,[sp,#0x80] + LDR r0,[r5,#0x88] + ORR r0,r0,#0x30000000 + STR r0,[r5,#0x88] + LDR r6,|L0.332| + MOV r0,sp + STR r6,[sp,#0] + BL HAL_ADC_DeInit + CMP r0,#0 + ITTTT NE + VMOVNE.F32 s0,#1.00000000 + ADDNE sp,sp,#0x84 + VPOPNE {d8} + POPNE {r4-r7,pc} + MOVS r4,#0 + MOVS r7,#4 + STRD r4,r7,[sp,#0x10] + STR r4,[sp,#4] + STR r4,[sp,#8] + STR r4,[sp,#0xc] + MOVS r0,#1 + STR r4,[sp,#0x18] + STRD r4,r0,[sp,#0x1c] + STRD r4,r0,[sp,#0x24] + STR r4,[sp,#0x2c] + LSLS r0,r0,#12 + STR r4,[sp,#0x30] + STRD r4,r0,[sp,#0x34] + MOV r0,sp + STR r4,[sp,#0x3c] + BL HAL_ADC_Init + CMP r0,#0 + ITTTT NE + VMOVNE.F32 s0,#2.00000000 + ADDNE sp,sp,#0x84 + VPOPNE {d8} + POPNE {r4-r7,pc} + LDR r0,|L0.336| + STR r0,[sp,#0x68] + MOVS r0,#6 + STR r0,[sp,#0x6c] + MOVS r0,#7 + STR r0,[sp,#0x70] + MOVS r0,#0x7f + STR r4,[sp,#0x7c] + STRD r0,r7,[sp,#0x74] + ADD r1,sp,#0x68 + MOV r0,sp + BL HAL_ADC_ConfigChannel + CMP r0,#0 + ITTTT NE + VMOVNE.F32 s0,#3.00000000 + ADDNE sp,sp,#0x84 + VPOPNE {d8} + POPNE {r4-r7,pc} + MOVS r1,#0x7f + MOV r0,sp + BL HAL_ADCEx_Calibration_Start + CMP r0,#0 + ITTTT NE + VMOVNE.F32 s0,#4.00000000 + ADDNE sp,sp,#0x84 + VPOPNE {d8} + POPNE {r4-r7,pc} + MOV r0,sp + BL HAL_ADC_Start + CMP r0,#0 + ITTTT NE + VMOVNE.F32 s0,#5.00000000 + ADDNE sp,sp,#0x84 + VPOPNE {d8} + POPNE {r4-r7,pc} + MOVS r1,#0xa + MOV r0,sp + BL HAL_ADC_PollForConversion + CMP r0,#0 + ITTTT NE + VMOVNE.F32 s0,#6.00000000 + ADDNE sp,sp,#0x84 + VPOPNE {d8} + POPNE {r4-r7,pc} + MOV r0,sp + BL HAL_ADC_GetValue + LDR r1,|L0.340| + UDIV r0,r1,r0 + BL __aeabi_ui2d + VLDR d1,|L0.344| + VMOV r2,r3,d1 + BL __aeabi_ddiv + BL __aeabi_d2f + VMOV s16,r0 + MOV r0,sp + BL ADC_Disable + MOV r0,sp + BL HAL_ADC_DeInit + LDR r0,[r5,#0x88] + BIC r0,r0,#0x30000000 + STR r0,[r5,#0x88] + LDR r0,[r5,#0x4c] + BIC r0,r0,#0x2000 + STR r0,[r5,#0x4c] + LDR r0,[r6,#8] + BIC r0,r0,#0x1800000 + STR r0,[r6,#8] + ADD sp,sp,#0x84 + VMOV.F32 s0,s16 + VPOP {d8} + POP {r4-r7,pc} + ENDP + + DCW 0x0000 +|L0.328| + DCD 0x40021000 +|L0.332| + DCD 0x50040000 +|L0.336| + DCD 0x80000001 +|L0.340| + DCD 0x004afb50 +|L0.344| + DCFD 0x408f400000000000 ; 1000 + + AREA ||i._Z5CPUIDPhij||, CODE, READONLY, ALIGN=2 + +_Z5CPUIDPhij PROC + LDR r3,|L1.48| + CMP r1,#0x10 + ITT LT + MOVLT r0,#0 + BXLT lr + EOR r1,r3,r2 + LDR r2,[r1,#0] + STR r2,[r0,#0] + LDR r2,[r1,#4] + STR r2,[r0,#4] + LDR r1,[r1,#8] + STR r1,[r0,#8] + LDR r1,|L1.52| + LDR r2,|L1.56| + LDRB r1,[r1,#0] + LDRH r2,[r2,#0] + AND r1,r1,#0x1f + ORR r1,r1,r2,LSL #16 + STR r1,[r0,#0xc] + MOVS r0,#0x10 + BX lr + ENDP + +|L1.48| + DCD 0x4aaa20c5 +|L1.52| + DCD 0x1fff7500 +|L1.56| + DCD 0x1fff75e0 + + AREA ||i._Z8OTPWritePhPKvj||, CODE, READONLY, ALIGN=1 + +_Z8OTPWritePhPKvj PROC + PUSH {r4-r6,lr} + SUB sp,sp,#8 + MOV r6,r2 + MOV r4,r1 + MOV r5,r0 + BL HAL_FLASH_Unlock + CBZ r6,|L2.84| +|L2.16| + LDRB r0,[r4,#0] + STRB r0,[sp,#0] + LDRB r0,[r4,#1] + STRB r0,[sp,#1] + LDRB r0,[r4,#2] + STRB r0,[sp,#2] + LDRB r0,[r4,#3] + STRB r0,[sp,#3] + LDRB r0,[r4,#4] + STRB r0,[sp,#4] + LDRB r0,[r4,#5] + STRB r0,[sp,#5] + LDRB r0,[r4,#6] + STRB r0,[sp,#6] + LDRB r0,[r4,#7] + STRB r0,[sp,#7] + LDRD r2,r3,[sp,#0] + MOV r1,r5 + MOVS r0,#0 + BL HAL_FLASH_Program + ADDS r4,r4,#8 + ADDS r5,r5,#8 + SUBS r6,r6,#8 + BNE |L2.16| +|L2.84| + ADD sp,sp,#8 + POP {r4-r6,lr} + B.W HAL_FLASH_Lock + ENDP + + + AREA ||.ARM.exidx||, LINKORDER=||i._Z5CPUIDPhij||, DATA, READONLY, SECTYPE={SHT_ARM_EXIDX}, ALIGN=2 + + DCD 0x00000000 + RELOC 42, ||i._Z5CPUIDPhij|| + DCD 0x00000001 + + AREA ||area_number.4||, LINKORDER=||i._Z14BatteryVoltagev||, DATA, READONLY, SECTYPE={SHT_ARM_EXIDX}, ALIGN=2 + + EXPORTAS ||area_number.4||, ||.ARM.exidx|| + DCD 0x00000000 + RELOC 42, ||i._Z14BatteryVoltagev|| + DCD 0x00000001 + + AREA ||area_number.5||, LINKORDER=||i._Z8OTPWritePhPKvj||, DATA, READONLY, SECTYPE={SHT_ARM_EXIDX}, ALIGN=2 + + EXPORTAS ||area_number.5||, ||.ARM.exidx|| + DCD 0x00000000 + RELOC 42, ||i._Z8OTPWritePhPKvj|| + DCD 0x00000001 + + AREA ||.arm_vfe_header||, DATA, READONLY, NOALLOC, ALIGN=2 + + DCD 0x00000000 + +;*** Start embedded assembler *** + +#line 1 ".\\mbed-util.cpp" + AREA ||.rev16_text||, CODE + THUMB + EXPORT |__asm___13_mbed_util_cpp_f390ad65___Z7__REV16j| +#line 468 "./mbed/e95d10626187/TARGET_NUCLEO_L432KC/cmsis_armcc.h" +|__asm___13_mbed_util_cpp_f390ad65___Z7__REV16j| PROC +#line 469 + + rev16 r0, r0 + bx lr + ENDP + AREA ||.revsh_text||, CODE + THUMB + EXPORT |__asm___13_mbed_util_cpp_f390ad65___Z7__REVSHs| +#line 483 +|__asm___13_mbed_util_cpp_f390ad65___Z7__REVSHs| PROC +#line 484 + + revsh r0, r0 + bx lr + ENDP + AREA ||.rrx_text||, CODE + THUMB + EXPORT |__asm___13_mbed_util_cpp_f390ad65___Z5__RRXj| +#line 670 +|__asm___13_mbed_util_cpp_f390ad65___Z5__RRXj| PROC +#line 671 + + rrx r0, r0 + bx lr + ENDP + +;*** End embedded assembler *** + + EXPORT _Z14BatteryVoltagev [CODE] + EXPORT _Z5CPUIDPhij [CODE] + EXPORT _Z8OTPWritePhPKvj [CODE] + + IMPORT ||Lib$$Request$$armlib|| [CODE,WEAK] + IMPORT ||Lib$$Request$$cpplib|| [CODE,WEAK] + IMPORT HAL_ADC_DeInit [CODE] + IMPORT HAL_ADC_Init [CODE] + IMPORT HAL_ADC_ConfigChannel [CODE] + IMPORT HAL_ADCEx_Calibration_Start [CODE] + IMPORT HAL_ADC_Start [CODE] + IMPORT HAL_ADC_PollForConversion [CODE] + IMPORT HAL_ADC_GetValue [CODE] + IMPORT __aeabi_ui2d [CODE] + IMPORT __aeabi_ddiv [CODE] + IMPORT __aeabi_d2f [CODE] + IMPORT ADC_Disable [CODE] + IMPORT HAL_FLASH_Unlock [CODE] + IMPORT HAL_FLASH_Program [CODE] + IMPORT HAL_FLASH_Lock [CODE] + + ATTR FILESCOPE + ATTR SETVALUE Tag_ABI_PCS_wchar_t,2 + ATTR SETVALUE Tag_ABI_enum_size,1 + ATTR SETVALUE Tag_ABI_optimization_goals,2 + ATTR SETSTRING Tag_conformance,"2.09" + ATTR SETVALUE AV,6,0 + ATTR SETVALUE AV,18,1 + + ASSERT {ENDIAN} = "little" + ASSERT {INTER} = {TRUE} + ASSERT {ROPI} = {FALSE} + ASSERT {RWPI} = {FALSE} + ASSERT {IEEE_FULL} = {FALSE} + ASSERT {IEEE_PART} = {FALSE} + ASSERT {IEEE_JAVA} = {FALSE} + END +#elif defined(__GNUC__) + .cpu cortex-m4 + .eabi_attribute 27, 1 + .eabi_attribute 20, 1 + .eabi_attribute 21, 1 + .eabi_attribute 23, 3 + .eabi_attribute 24, 1 + .eabi_attribute 25, 1 + .eabi_attribute 26, 1 + .eabi_attribute 30, 4 + .eabi_attribute 34, 1 + .eabi_attribute 18, 4 + .file "mbed-util.cpp" + .text +.Ltext0: + .cfi_sections .debug_frame + .section .text._Z5CPUIDPhim,"ax",%progbits + .align 1 + .global _Z5CPUIDPhim + .arch armv7e-m + .syntax unified + .thumb + .thumb_func + .fpu fpv4-sp-d16 + .type _Z5CPUIDPhim, %function +_Z5CPUIDPhim: +.LFB2093: + .file 1 "./mbed-util.cpp" + .loc 1 22 1 + .cfi_startproc + @ args = 0, pretend = 0, frame = 8 + @ frame_needed = 0, uses_anonymous_args = 0 +.LBB2: + .loc 1 28 5 + cmp r1, #15 +.LBE2: + .loc 1 22 1 + push {r0, r1, r2, lr} + .cfi_def_cfa_offset 16 + .cfi_offset 14, -4 + .loc 1 22 1 + mov r3, r0 +.LBB5: + .loc 1 28 5 + ble .L4 +.LBB3: + .loc 1 30 21 + ldr r1, .L6 + eors r1, r1, r2 + adds r0, r0, #12 + subs r1, r1, r3 +.L3: +.LBB4: + .loc 1 34 19 discriminator 2 + ldrb r2, [r3, r1] @ zero_extendqisi2 + .loc 1 34 17 discriminator 2 + strb r2, [r3], #1 + .loc 1 33 27 discriminator 2 + cmp r0, r3 + bne .L3 +.LBE4: + .loc 1 36 19 + ldr r3, .L6+4 + ldrh r2, [r3] + .loc 1 36 64 + subs r3, r3, #224 + .loc 1 36 101 + ldrh r3, [r3] + and r3, r3, #31 + .loc 1 36 60 + orr r3, r3, r2, lsl #16 + .loc 1 37 9 + movs r2, #4 + add r1, sp, r2 + .loc 1 36 12 + str r3, [sp, #4] + .loc 1 37 9 + bl memcpy + .loc 1 39 16 + movs r0, #16 +.L1: +.LBE3: +.LBE5: + .loc 1 42 1 + add sp, sp, #12 + .cfi_remember_state + .cfi_def_cfa_offset 4 + @ sp needed + ldr pc, [sp], #4 +.L4: + .cfi_restore_state + .loc 1 41 12 + movs r0, #0 + b .L1 +.L7: + .align 2 +.L6: + .word 1252663493 + .word 536835552 + .cfi_endproc +.LFE2093: + .size _Z5CPUIDPhim, .-_Z5CPUIDPhim + .global __aeabi_ui2d + .global __aeabi_ddiv + .global __aeabi_d2f + .section .text._Z14BatteryVoltagev,"ax",%progbits + .align 1 + .global _Z14BatteryVoltagev + .syntax unified + .thumb + .thumb_func + .fpu fpv4-sp-d16 + .type _Z14BatteryVoltagev, %function +_Z14BatteryVoltagev: +.LFB2094: + .loc 1 48 1 + .cfi_startproc + @ args = 0, pretend = 0, frame = 136 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r4, r5, r6, r7, lr} + .cfi_def_cfa_offset 20 + .cfi_offset 4, -20 + .cfi_offset 5, -16 + .cfi_offset 6, -12 + .cfi_offset 7, -8 + .cfi_offset 14, -4 +.LBB6: + .loc 1 60 5 + ldr r4, .L16 +.LBE6: + .loc 1 66 24 + ldr r6, .L16+4 +.LBB7: + .loc 1 60 5 + ldr r3, [r4, #76] + orr r3, r3, #8192 + str r3, [r4, #76] + ldr r3, [r4, #76] +.LBE7: + .loc 1 48 1 + sub sp, sp, #140 + .cfi_def_cfa_offset 160 +.LBB8: + .loc 1 60 5 + and r3, r3, #8192 + str r3, [sp, #4] + ldr r3, [sp, #4] +.LBE8: + .loc 1 62 5 + ldr r3, [r4, #136] + orr r3, r3, #805306368 + str r3, [r4, #136] + .loc 1 67 23 + add r0, sp, #32 + .loc 1 66 24 + str r6, [sp, #32] + .loc 1 67 23 + bl HAL_ADC_DeInit + .loc 1 67 5 + cmp r0, #0 + bne .L10 + .loc 1 77 42 + movs r3, #1 + .loc 1 78 42 + strd r3, r0, [sp, #64] + .loc 1 80 42 + strd r3, r0, [sp, #72] + .loc 1 74 42 + movs r7, #4 + .loc 1 83 42 + mov r3, #4096 + .loc 1 71 42 + strd r0, r0, [sp, #36] + .loc 1 73 42 + strd r0, r0, [sp, #44] + .loc 1 75 42 + strd r7, r0, [sp, #52] + .loc 1 76 42 + str r0, [sp, #60] + .loc 1 82 42 + strd r0, r0, [sp, #80] + .loc 1 84 42 + strd r3, r0, [sp, #88] + .loc 1 86 21 + add r0, sp, #32 + bl HAL_ADC_Init + .loc 1 86 5 + cmp r0, #0 + bne .L11 + .loc 1 92 26 + ldr r2, .L16+8 + movs r3, #6 + strd r2, r3, [sp, #8] + .loc 1 94 26 + movs r5, #127 + movs r3, #7 + .loc 1 96 20 + strd r7, r0, [sp, #24] + .loc 1 98 30 + add r1, sp, #8 + add r0, sp, #32 + .loc 1 94 26 + strd r3, r5, [sp, #16] + .loc 1 98 30 + bl HAL_ADC_ConfigChannel + .loc 1 98 5 + cmp r0, #0 + bne .L12 + .loc 1 117 36 + mov r1, r5 + add r0, sp, #32 + bl HAL_ADCEx_Calibration_Start + .loc 1 117 5 + cmp r0, #0 + bne .L13 + .loc 1 123 22 + add r0, sp, #32 + bl HAL_ADC_Start + .loc 1 123 5 + cmp r0, #0 + bne .L14 + .loc 1 132 34 + movs r1, #10 + add r0, sp, #32 + bl HAL_ADC_PollForConversion + .loc 1 132 5 + cmp r0, #0 + bne .L15 + .loc 1 141 38 + add r0, sp, #32 + bl HAL_ADC_GetValue + .loc 1 147 54 + ldr r3, .L16+12 + udiv r0, r3, r0 + bl __aeabi_ui2d + ldr r3, .L16+16 + movs r2, #0 + bl __aeabi_ddiv + .loc 1 147 11 + bl __aeabi_d2f + mov r5, r0 @ float + .loc 1 149 16 + add r0, sp, #32 + bl ADC_Disable + .loc 1 150 19 + add r0, sp, #32 + bl HAL_ADC_DeInit + .loc 1 159 5 + ldr r3, [r4, #136] + bic r3, r3, #805306368 + str r3, [r4, #136] + .loc 1 160 5 + ldr r3, [r4, #76] + bic r3, r3, #8192 + str r3, [r4, #76] + .loc 1 163 14 + ldr r3, [r6, #8] + bic r3, r3, #25165824 + str r3, [r6, #8] +.L8: + .loc 1 169 1 + mov r0, r5 @ float + add sp, sp, #140 + .cfi_remember_state + .cfi_def_cfa_offset 20 + @ sp needed + pop {r4, r5, r6, r7, pc} +.L10: + .cfi_restore_state + .loc 1 68 16 + mov r5, #1065353216 + b .L8 +.L11: + .loc 1 87 16 + mov r5, #1073741824 + b .L8 +.L12: + .loc 1 99 16 + ldr r5, .L16+20 + b .L8 +.L13: + .loc 1 119 16 + mov r5, #1082130432 + b .L8 +.L14: + .loc 1 125 16 + ldr r5, .L16+24 + b .L8 +.L15: + .loc 1 134 16 + ldr r5, .L16+28 + b .L8 +.L17: + .align 2 +.L16: + .word 1073876992 + .word 1342439424 + .word -2147483647 + .word 4914000 + .word 1083129856 + .word 1077936128 + .word 1084227584 + .word 1086324736 + .cfi_endproc +.LFE2094: + .size _Z14BatteryVoltagev, .-_Z14BatteryVoltagev + .section .text._Z8OTPWritePhPKvj,"ax",%progbits + .align 1 + .global _Z8OTPWritePhPKvj + .syntax unified + .thumb + .thumb_func + .fpu fpv4-sp-d16 + .type _Z8OTPWritePhPKvj, %function +_Z8OTPWritePhPKvj: +.LFB2095: + .loc 1 174 1 + .cfi_startproc + @ args = 0, pretend = 0, frame = 8 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r0, r1, r2, r4, r5, r6, r7, lr} + .cfi_def_cfa_offset 32 + .cfi_offset 4, -20 + .cfi_offset 5, -16 + .cfi_offset 6, -12 + .cfi_offset 7, -8 + .cfi_offset 14, -4 + .loc 1 174 1 + mov r5, r0 + mov r6, r1 + mov r7, r2 + .loc 1 179 18 + bl HAL_FLASH_Unlock + movs r4, #0 +.L21: + .loc 1 180 16 + cmn r7, r4 + sub r0, r6, r4 + sub r1, r5, r4 + beq .L19 + movs r3, #0 +.L20: +.LBB9: +.LBB10: + .loc 1 182 33 discriminator 2 + ldrb r2, [r0, r3] @ zero_extendqisi2 + strb r2, [sp, r3] + adds r3, r3, #1 + .loc 1 181 25 discriminator 2 + cmp r3, #8 + bne .L20 +.LBE10: + .loc 1 184 23 + ldrd r2, [sp] + movs r0, #0 + bl HAL_FLASH_Program + subs r4, r4, #8 +.LBE9: + .loc 1 180 2 + b .L21 +.L19: + .loc 1 189 19 + bl HAL_FLASH_Lock + .loc 1 190 1 + add sp, sp, #12 + .cfi_def_cfa_offset 20 + @ sp needed + pop {r4, r5, r6, r7, pc} + .cfi_endproc +.LFE2095: + .size _Z8OTPWritePhPKvj, .-_Z8OTPWritePhPKvj + .text +.Letext0: + .section .debug_info,"",%progbits +.Ldebug_info0: + .4byte 0x64 + .2byte 0x4 + .4byte .Ldebug_abbrev0 + .byte 0x4 + .uleb128 0x1 + .4byte .LASF6 + .byte 0x4 + .4byte .LASF7 + .4byte .LASF8 + .4byte .Ldebug_ranges0+0 + .4byte 0 + .4byte .Ldebug_line0 + .uleb128 0x2 + .4byte .LASF0 + .byte 0x1 + .byte 0xad + .byte 0x6 + .4byte .LASF2 + .4byte .LFB2095 + .4byte .LFE2095-.LFB2095 + .uleb128 0x1 + .byte 0x9c + .uleb128 0x2 + .4byte .LASF1 + .byte 0x1 + .byte 0x2f + .byte 0x1 + .4byte .LASF3 + .4byte .LFB2094 + .4byte .LFE2094-.LFB2094 + .uleb128 0x1 + .byte 0x9c + .uleb128 0x2 + .4byte .LASF4 + .byte 0x1 + .byte 0x15 + .byte 0x1 + .4byte .LASF5 + .4byte .LFB2093 + .4byte .LFE2093-.LFB2093 + .uleb128 0x1 + .byte 0x9c + .byte 0 + .section .debug_abbrev,"",%progbits +.Ldebug_abbrev0: + .uleb128 0x1 + .uleb128 0x11 + .byte 0x1 + .uleb128 0x25 + .uleb128 0xe + .uleb128 0x13 + .uleb128 0xb + .uleb128 0x3 + .uleb128 0xe + .uleb128 0x1b + .uleb128 0xe + .uleb128 0x55 + .uleb128 0x17 + .uleb128 0x11 + .uleb128 0x1 + .uleb128 0x10 + .uleb128 0x17 + .byte 0 + .byte 0 + .uleb128 0x2 + .uleb128 0x2e + .byte 0 + .uleb128 0x3f + .uleb128 0x19 + .uleb128 0x3 + .uleb128 0xe + .uleb128 0x3a + .uleb128 0xb + .uleb128 0x3b + .uleb128 0xb + .uleb128 0x39 + .uleb128 0xb + .uleb128 0x6e + .uleb128 0xe + .uleb128 0x11 + .uleb128 0x1 + .uleb128 0x12 + .uleb128 0x6 + .uleb128 0x40 + .uleb128 0x18 + .uleb128 0x2116 + .uleb128 0x19 + .byte 0 + .byte 0 + .byte 0 + .section .debug_aranges,"",%progbits + .4byte 0x2c + .2byte 0x2 + .4byte .Ldebug_info0 + .byte 0x4 + .byte 0 + .2byte 0 + .2byte 0 + .4byte .LFB2093 + .4byte .LFE2093-.LFB2093 + .4byte .LFB2094 + .4byte .LFE2094-.LFB2094 + .4byte .LFB2095 + .4byte .LFE2095-.LFB2095 + .4byte 0 + .4byte 0 + .section .debug_ranges,"",%progbits +.Ldebug_ranges0: + .4byte .LFB2093 + .4byte .LFE2093 + .4byte .LFB2094 + .4byte .LFE2094 + .4byte .LFB2095 + .4byte .LFE2095 + .4byte 0 + .4byte 0 + .section .debug_line,"",%progbits +.Ldebug_line0: + .section .debug_str,"MS",%progbits,1 +.LASF8: + .ascii "/Volumes/Data/work/mbed-work/Turtle_RadioShuttle\000" +.LASF7: + .ascii "./mbed-util.cpp\000" +.LASF0: + .ascii "OTPWrite\000" +.LASF5: + .ascii "_Z5CPUIDPhim\000" +.LASF4: + .ascii "CPUID\000" +.LASF3: + .ascii "_Z14BatteryVoltagev\000" +.LASF6: + .ascii "GNU C++98 8.2.1 20181213 (release) [gcc-8-branch re" + .ascii "vision 267074] -mcpu=cortex-m4 -mthumb -mfpu=fpv4-s" + .ascii "p-d16 -mfloat-abi=softfp -march=armv7e-m+fp -g1 -Os" + .ascii " -std=gnu++98 -fno-rtti -fmessage-length=0 -fno-exc" + .ascii "eptions -fno-builtin -ffunction-sections -fdata-sec" + .ascii "tions -funsigned-char -fno-delete-null-pointer-chec" + .ascii "ks -fomit-frame-pointer\000" +.LASF1: + .ascii "BatteryVoltage\000" +.LASF2: + .ascii "_Z8OTPWritePhPKvj\000" + .ident "GCC: (GNU Tools for Arm Embedded Processors 8-2018-q4-major) 8.2.1 20181213 (release) [gcc-8-branch revision 267074]" +#endif