Add gpio.{h, c}

This commit is contained in:
Alexander Heldt
2024-07-28 11:42:38 +02:00
parent 9b1e1b6f21
commit a8a5e21b77
14 changed files with 8228 additions and 721 deletions

View File

@@ -8,6 +8,8 @@ CFLAGS += -ffunction-sections -fdata-sections
CFLAGS += -fno-builtin CFLAGS += -fno-builtin
# "-fno-common ... specifies that the compiler places uninitialized global variables in the BSS section of the object file." # "-fno-common ... specifies that the compiler places uninitialized global variables in the BSS section of the object file."
CFLAGS += -fno-common CFLAGS += -fno-common
# Use experimental binary literal gcc extension (to be able to use binary literals; e.g. 0b0101)
CFLAGS += -std=c2x
DEBUG ?= 1 DEBUG ?= 1
ifeq ($(DEBUG), 0) ifeq ($(DEBUG), 0)

Binary file not shown.

View File

@@ -1,6 +1,56 @@
Discarded input sections Discarded input sections
.group 0x00000000 0xc build/gpio.o
.group 0x00000000 0xc build/gpio.o
.group 0x00000000 0xc build/gpio.o
.group 0x00000000 0xc build/gpio.o
.group 0x00000000 0xc build/gpio.o
.group 0x00000000 0xc build/gpio.o
.group 0x00000000 0xc build/gpio.o
.group 0x00000000 0xc build/gpio.o
.group 0x00000000 0xc build/gpio.o
.group 0x00000000 0xc build/gpio.o
.group 0x00000000 0xc build/gpio.o
.group 0x00000000 0xc build/gpio.o
.group 0x00000000 0xc build/gpio.o
.group 0x00000000 0xc build/gpio.o
.text 0x00000000 0x0 build/gpio.o
.data 0x00000000 0x0 build/gpio.o
.bss 0x00000000 0x0 build/gpio.o
.text.gpio_set_mode
0x00000000 0x62 build/gpio.o
.text.gpio_write
0x00000000 0x4c build/gpio.o
.debug_info 0x00000000 0x21a build/gpio.o
.debug_abbrev 0x00000000 0x12b build/gpio.o
.debug_aranges
0x00000000 0x28 build/gpio.o
.debug_rnglists
0x00000000 0x19 build/gpio.o
.debug_macro 0x00000000 0xb56 build/gpio.o
.debug_macro 0x00000000 0x22 build/gpio.o
.debug_macro 0x00000000 0x75 build/gpio.o
.debug_macro 0x00000000 0x2a build/gpio.o
.debug_macro 0x00000000 0x5c build/gpio.o
.debug_macro 0x00000000 0x3c build/gpio.o
.debug_macro 0x00000000 0x103 build/gpio.o
.debug_macro 0x00000000 0x3a build/gpio.o
.debug_macro 0x00000000 0x57 build/gpio.o
.debug_macro 0x00000000 0x6a build/gpio.o
.debug_macro 0x00000000 0x1df build/gpio.o
.debug_macro 0x00000000 0x89 build/gpio.o
.debug_macro 0x00000000 0x4cc build/gpio.o
.debug_macro 0x00000000 0x22 build/gpio.o
.debug_macro 0x00000000 0x34 build/gpio.o
.debug_line 0x00000000 0x116 build/gpio.o
.debug_str 0x00000000 0x551a build/gpio.o
.comment 0x00000000 0x46 build/gpio.o
.debug_line_str
0x00000000 0x260 build/gpio.o
.debug_frame 0x00000000 0x60 build/gpio.o
.ARM.attributes
0x00000000 0x34 build/gpio.o
.text 0x00000000 0x0 build/main.o .text 0x00000000 0x0 build/main.o
.data 0x00000000 0x0 build/main.o .data 0x00000000 0x0 build/main.o
.bss 0x00000000 0x0 build/main.o .bss 0x00000000 0x0 build/main.o
@@ -13,6 +63,10 @@ Discarded input sections
.text 0x00000000 0x0 build/startup.o .text 0x00000000 0x0 build/startup.o
.data 0x00000000 0x0 build/startup.o .data 0x00000000 0x0 build/startup.o
.bss 0x00000000 0x0 build/startup.o .bss 0x00000000 0x0 build/startup.o
.debug_macro 0x00000000 0x22 build/startup.o
.debug_macro 0x00000000 0x103 build/startup.o
.debug_macro 0x00000000 0x6a build/startup.o
.debug_macro 0x00000000 0x1df build/startup.o
Memory Configuration Memory Configuration
@@ -25,6 +79,7 @@ Linker script and memory map
LOAD /nix/store/yr89i11mszv2az19r26l372zgaiivj1c-gcc-arm-embedded-12.3.rel1/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/lib/libc_nano.a LOAD /nix/store/yr89i11mszv2az19r26l372zgaiivj1c-gcc-arm-embedded-12.3.rel1/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/lib/libc_nano.a
LOAD /nix/store/yr89i11mszv2az19r26l372zgaiivj1c-gcc-arm-embedded-12.3.rel1/bin/../lib/gcc/arm-none-eabi/12.3.1/libgcc.a LOAD /nix/store/yr89i11mszv2az19r26l372zgaiivj1c-gcc-arm-embedded-12.3.rel1/bin/../lib/gcc/arm-none-eabi/12.3.1/libgcc.a
LOAD build/gpio.o
LOAD build/main.o LOAD build/main.o
LOAD build/startup.o LOAD build/startup.o
0x20020000 stack_start = (ORIGIN (sram) + LENGTH (sram)) 0x20020000 stack_start = (ORIGIN (sram) + LENGTH (sram))
@@ -182,24 +237,20 @@ LOAD linker stubs
.debug_rnglists .debug_rnglists
0x00000013 0x1f build/startup.o 0x00000013 0x1f build/startup.o
.debug_macro 0x00000000 0x19f9 .debug_macro 0x00000000 0x165f
.debug_macro 0x00000000 0xab0 build/main.o .debug_macro 0x00000000 0xab6 build/main.o
.debug_macro 0x00000ab0 0xafc build/startup.o .debug_macro 0x00000ab6 0xb02 build/startup.o
.debug_macro 0x000015ac 0x22 build/startup.o .debug_macro 0x000015b8 0x56 build/startup.o
.debug_macro 0x000015ce 0x8e build/startup.o .debug_macro 0x0000160e 0x51 build/startup.o
.debug_macro 0x0000165c 0x51 build/startup.o
.debug_macro 0x000016ad 0x103 build/startup.o
.debug_macro 0x000017b0 0x6a build/startup.o
.debug_macro 0x0000181a 0x1df build/startup.o
.debug_line 0x00000000 0x139 .debug_line 0x00000000 0x139
.debug_line 0x00000000 0x4f build/main.o .debug_line 0x00000000 0x4f build/main.o
.debug_line 0x0000004f 0xea build/startup.o .debug_line 0x0000004f 0xea build/startup.o
.debug_str 0x00000000 0x3c00 .debug_str 0x00000000 0x3b8e
.debug_str 0x00000000 0x2db0 build/main.o .debug_str 0x00000000 0x2dcb build/main.o
.debug_str 0x00002db0 0xe50 build/startup.o .debug_str 0x00002dcb 0xdc3 build/startup.o
0x3d51 (size before relaxing) 0x3cdf (size before relaxing)
.comment 0x00000000 0x45 .comment 0x00000000 0x45
.comment 0x00000000 0x45 build/main.o .comment 0x00000000 0x45 build/main.o

5392
build/gpio.S Normal file

File diff suppressed because it is too large Load Diff

2043
build/gpio.i Normal file

File diff suppressed because it is too large Load Diff

BIN
build/gpio.o Normal file

Binary file not shown.

View File

@@ -60,16 +60,16 @@ main:
.byte 0x4 .byte 0x4
.4byte .Ldebug_abbrev0 .4byte .Ldebug_abbrev0
.uleb128 0x1 .uleb128 0x1
.4byte .LASF454
.byte 0x1d
.4byte .LASF455 .4byte .LASF455
.byte 0x1d
.4byte .LASF456 .4byte .LASF456
.4byte .LASF457
.4byte .LLRL0 .4byte .LLRL0
.4byte 0 .4byte 0
.4byte .Ldebug_line0 .4byte .Ldebug_line0
.4byte .Ldebug_macro0 .4byte .Ldebug_macro0
.uleb128 0x2 .uleb128 0x2
.4byte .LASF457 .4byte .LASF458
.byte 0x1 .byte 0x1
.byte 0x3 .byte 0x3
.byte 0x5 .byte 0x5
@@ -1355,14 +1355,14 @@ main:
.byte 0x5 .byte 0x5
.uleb128 0 .uleb128 0
.4byte .LASF391 .4byte .LASF391
.byte 0x6
.uleb128 0
.4byte .LASF392
.byte 0x5 .byte 0x5
.uleb128 0 .uleb128 0
.4byte .LASF393 .4byte .LASF392
.byte 0x6 .byte 0x6
.uleb128 0 .uleb128 0
.4byte .LASF393
.byte 0x5
.uleb128 0
.4byte .LASF394 .4byte .LASF394
.byte 0x6 .byte 0x6
.uleb128 0 .uleb128 0
@@ -1373,10 +1373,10 @@ main:
.byte 0x6 .byte 0x6
.uleb128 0 .uleb128 0
.4byte .LASF397 .4byte .LASF397
.byte 0x5 .byte 0x6
.uleb128 0 .uleb128 0
.4byte .LASF398 .4byte .LASF398
.byte 0x6 .byte 0x5
.uleb128 0 .uleb128 0
.4byte .LASF399 .4byte .LASF399
.byte 0x6 .byte 0x6
@@ -1385,16 +1385,16 @@ main:
.byte 0x6 .byte 0x6
.uleb128 0 .uleb128 0
.4byte .LASF401 .4byte .LASF401
.byte 0x5 .byte 0x6
.uleb128 0 .uleb128 0
.4byte .LASF402 .4byte .LASF402
.byte 0x5 .byte 0x5
.uleb128 0 .uleb128 0
.4byte .LASF403 .4byte .LASF403
.byte 0x6 .byte 0x5
.uleb128 0 .uleb128 0
.4byte .LASF404 .4byte .LASF404
.byte 0x5 .byte 0x6
.uleb128 0 .uleb128 0
.4byte .LASF405 .4byte .LASF405
.byte 0x5 .byte 0x5
@@ -1403,19 +1403,19 @@ main:
.byte 0x5 .byte 0x5
.uleb128 0 .uleb128 0
.4byte .LASF407 .4byte .LASF407
.byte 0x6 .byte 0x5
.uleb128 0 .uleb128 0
.4byte .LASF408 .4byte .LASF408
.byte 0x5 .byte 0x6
.uleb128 0 .uleb128 0
.4byte .LASF409 .4byte .LASF409
.byte 0x5 .byte 0x5
.uleb128 0 .uleb128 0
.4byte .LASF410 .4byte .LASF410
.byte 0x6 .byte 0x5
.uleb128 0 .uleb128 0
.4byte .LASF411 .4byte .LASF411
.byte 0x5 .byte 0x6
.uleb128 0 .uleb128 0
.4byte .LASF412 .4byte .LASF412
.byte 0x5 .byte 0x5
@@ -1433,10 +1433,10 @@ main:
.byte 0x5 .byte 0x5
.uleb128 0 .uleb128 0
.4byte .LASF417 .4byte .LASF417
.byte 0x6 .byte 0x5
.uleb128 0 .uleb128 0
.4byte .LASF418 .4byte .LASF418
.byte 0x5 .byte 0x6
.uleb128 0 .uleb128 0
.4byte .LASF419 .4byte .LASF419
.byte 0x5 .byte 0x5
@@ -1445,14 +1445,14 @@ main:
.byte 0x5 .byte 0x5
.uleb128 0 .uleb128 0
.4byte .LASF421 .4byte .LASF421
.byte 0x6
.uleb128 0
.4byte .LASF422
.byte 0x5 .byte 0x5
.uleb128 0 .uleb128 0
.4byte .LASF423 .4byte .LASF422
.byte 0x6 .byte 0x6
.uleb128 0 .uleb128 0
.4byte .LASF423
.byte 0x5
.uleb128 0
.4byte .LASF424 .4byte .LASF424
.byte 0x6 .byte 0x6
.uleb128 0 .uleb128 0
@@ -1469,10 +1469,10 @@ main:
.byte 0x6 .byte 0x6
.uleb128 0 .uleb128 0
.4byte .LASF429 .4byte .LASF429
.byte 0x5 .byte 0x6
.uleb128 0 .uleb128 0
.4byte .LASF430 .4byte .LASF430
.byte 0x6 .byte 0x5
.uleb128 0 .uleb128 0
.4byte .LASF431 .4byte .LASF431
.byte 0x6 .byte 0x6
@@ -1481,7 +1481,7 @@ main:
.byte 0x6 .byte 0x6
.uleb128 0 .uleb128 0
.4byte .LASF433 .4byte .LASF433
.byte 0x5 .byte 0x6
.uleb128 0 .uleb128 0
.4byte .LASF434 .4byte .LASF434
.byte 0x5 .byte 0x5
@@ -1493,10 +1493,10 @@ main:
.byte 0x5 .byte 0x5
.uleb128 0 .uleb128 0
.4byte .LASF437 .4byte .LASF437
.byte 0x6 .byte 0x5
.uleb128 0 .uleb128 0
.4byte .LASF438 .4byte .LASF438
.byte 0x5 .byte 0x6
.uleb128 0 .uleb128 0
.4byte .LASF439 .4byte .LASF439
.byte 0x5 .byte 0x5
@@ -1505,14 +1505,14 @@ main:
.byte 0x5 .byte 0x5
.uleb128 0 .uleb128 0
.4byte .LASF441 .4byte .LASF441
.byte 0x6
.uleb128 0
.4byte .LASF442
.byte 0x5 .byte 0x5
.uleb128 0 .uleb128 0
.4byte .LASF443 .4byte .LASF442
.byte 0x6 .byte 0x6
.uleb128 0 .uleb128 0
.4byte .LASF443
.byte 0x5
.uleb128 0
.4byte .LASF444 .4byte .LASF444
.byte 0x6 .byte 0x6
.uleb128 0 .uleb128 0
@@ -1529,7 +1529,7 @@ main:
.byte 0x6 .byte 0x6
.uleb128 0 .uleb128 0
.4byte .LASF449 .4byte .LASF449
.byte 0x5 .byte 0x6
.uleb128 0 .uleb128 0
.4byte .LASF450 .4byte .LASF450
.byte 0x5 .byte 0x5
@@ -1539,17 +1539,20 @@ main:
.uleb128 0 .uleb128 0
.4byte .LASF452 .4byte .LASF452
.byte 0x5 .byte 0x5
.uleb128 0x1 .uleb128 0
.4byte .LASF453 .4byte .LASF453
.byte 0x5
.uleb128 0x1
.4byte .LASF454
.byte 0x4 .byte 0x4
.byte 0 .byte 0
.section .debug_line,"",%progbits .section .debug_line,"",%progbits
.Ldebug_line0: .Ldebug_line0:
.section .debug_str,"MS",%progbits,1 .section .debug_str,"MS",%progbits,1
.LASF428: .LASF429:
.ascii "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC\000" .ascii "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC\000"
.LASF95: .LASF1:
.ascii "__SIG_ATOMIC_MAX__ 0x7fffffff\000" .ascii "__STDC_VERSION__ 202000L\000"
.LASF352: .LASF352:
.ascii "__TA_FBIT__ 63\000" .ascii "__TA_FBIT__ 63\000"
.LASF262: .LASF262:
@@ -1560,13 +1563,13 @@ main:
.ascii "__UINT_FAST8_TYPE__ unsigned int\000" .ascii "__UINT_FAST8_TYPE__ unsigned int\000"
.LASF218: .LASF218:
.ascii "__FLT64_MAX_EXP__ 1024\000" .ascii "__FLT64_MAX_EXP__ 1024\000"
.LASF416: .LASF417:
.ascii "__thumb2__ 1\000" .ascii "__thumb2__ 1\000"
.LASF234: .LASF234:
.ascii "__FLT32X_MAX_EXP__ 1024\000" .ascii "__FLT32X_MAX_EXP__ 1024\000"
.LASF129: .LASF129:
.ascii "__INT_FAST16_WIDTH__ 32\000" .ascii "__INT_FAST16_WIDTH__ 32\000"
.LASF379: .LASF380:
.ascii "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1\000" .ascii "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1\000"
.LASF315: .LASF315:
.ascii "__ULACCUM_EPSILON__ 0x1P-32ULK\000" .ascii "__ULACCUM_EPSILON__ 0x1P-32ULK\000"
@@ -1576,9 +1579,9 @@ main:
.ascii "__USQ_IBIT__ 0\000" .ascii "__USQ_IBIT__ 0\000"
.LASF119: .LASF119:
.ascii "__UINT8_C(c) c\000" .ascii "__UINT8_C(c) c\000"
.LASF431: .LASF432:
.ascii "__ARM_NEON__\000" .ascii "__ARM_NEON__\000"
.LASF387: .LASF388:
.ascii "__SIZEOF_WINT_T__ 4\000" .ascii "__SIZEOF_WINT_T__ 4\000"
.LASF327: .LASF327:
.ascii "__QQ_IBIT__ 0\000" .ascii "__QQ_IBIT__ 0\000"
@@ -1590,15 +1593,15 @@ main:
.ascii "__DBL_MIN_EXP__ (-1021)\000" .ascii "__DBL_MIN_EXP__ (-1021)\000"
.LASF85: .LASF85:
.ascii "__LONG_LONG_WIDTH__ 64\000" .ascii "__LONG_LONG_WIDTH__ 64\000"
.LASF372: .LASF373:
.ascii "__GCC_ATOMIC_CHAR16_T_LOCK_FREE 2\000" .ascii "__GCC_ATOMIC_CHAR16_T_LOCK_FREE 2\000"
.LASF445: .LASF446:
.ascii "__ARM_FEATURE_CDE_COPROC\000" .ascii "__ARM_FEATURE_CDE_COPROC\000"
.LASF407: .LASF408:
.ascii "__ARM_SIZEOF_WCHAR_T 4\000" .ascii "__ARM_SIZEOF_WCHAR_T 4\000"
.LASF424: .LASF425:
.ascii "__ARM_FP16_FORMAT_IEEE\000" .ascii "__ARM_FP16_FORMAT_IEEE\000"
.LASF397: .LASF398:
.ascii "__ARM_FEATURE_COMPLEX\000" .ascii "__ARM_FEATURE_COMPLEX\000"
.LASF277: .LASF277:
.ascii "__LLFRACT_IBIT__ 0\000" .ascii "__LLFRACT_IBIT__ 0\000"
@@ -1608,9 +1611,9 @@ main:
.ascii "__USFRACT_MIN__ 0.0UHR\000" .ascii "__USFRACT_MIN__ 0.0UHR\000"
.LASF6: .LASF6:
.ascii "__GNUC_MINOR__ 3\000" .ascii "__GNUC_MINOR__ 3\000"
.LASF441: .LASF442:
.ascii "__ARM_ASM_SYNTAX_UNIFIED__ 1\000" .ascii "__ARM_ASM_SYNTAX_UNIFIED__ 1\000"
.LASF392: .LASF393:
.ascii "__ARM_FEATURE_CRYPTO\000" .ascii "__ARM_FEATURE_CRYPTO\000"
.LASF172: .LASF172:
.ascii "__DBL_NORM_MAX__ ((double)1.7976931348623157e+308L)" .ascii "__DBL_NORM_MAX__ ((double)1.7976931348623157e+308L)"
@@ -1629,9 +1632,9 @@ main:
.ascii "__ORDER_BIG_ENDIAN__ 4321\000" .ascii "__ORDER_BIG_ENDIAN__ 4321\000"
.LASF284: .LASF284:
.ascii "__ULLFRACT_MAX__ 0XFFFFFFFFFFFFFFFFP-64ULLR\000" .ascii "__ULLFRACT_MAX__ 0XFFFFFFFFFFFFFFFFP-64ULLR\000"
.LASF381: .LASF382:
.ascii "__GCC_CONSTRUCTIVE_SIZE 64\000" .ascii "__GCC_CONSTRUCTIVE_SIZE 64\000"
.LASF389: .LASF390:
.ascii "__ARM_FEATURE_DSP 1\000" .ascii "__ARM_FEATURE_DSP 1\000"
.LASF360: .LASF360:
.ascii "__UTA_FBIT__ 64\000" .ascii "__UTA_FBIT__ 64\000"
@@ -1647,11 +1650,11 @@ main:
.ascii "__FLT_IS_IEC_60559__ 2\000" .ascii "__FLT_IS_IEC_60559__ 2\000"
.LASF35: .LASF35:
.ascii "__PTRDIFF_TYPE__ int\000" .ascii "__PTRDIFF_TYPE__ int\000"
.LASF366: .LASF367:
.ascii "__CHAR_UNSIGNED__ 1\000" .ascii "__CHAR_UNSIGNED__ 1\000"
.LASF44: .LASF44:
.ascii "__INT16_TYPE__ short int\000" .ascii "__INT16_TYPE__ short int\000"
.LASF394: .LASF395:
.ascii "__ARM_FEATURE_QRDMX\000" .ascii "__ARM_FEATURE_QRDMX\000"
.LASF181: .LASF181:
.ascii "__LDBL_DIG__ 15\000" .ascii "__LDBL_DIG__ 15\000"
@@ -1677,7 +1680,7 @@ main:
.ascii "__FLT32_MIN_10_EXP__ (-37)\000" .ascii "__FLT32_MIN_10_EXP__ (-37)\000"
.LASF267: .LASF267:
.ascii "__LFRACT_IBIT__ 0\000" .ascii "__LFRACT_IBIT__ 0\000"
.LASF412: .LASF413:
.ascii "__ARM_ARCH 7\000" .ascii "__ARM_ARCH 7\000"
.LASF3: .LASF3:
.ascii "__STDC_UTF_32__ 1\000" .ascii "__STDC_UTF_32__ 1\000"
@@ -1687,7 +1690,7 @@ main:
.ascii "__SCHAR_MAX__ 0x7f\000" .ascii "__SCHAR_MAX__ 0x7f\000"
.LASF222: .LASF222:
.ascii "__FLT64_NORM_MAX__ 1.7976931348623157e+308F64\000" .ascii "__FLT64_NORM_MAX__ 1.7976931348623157e+308F64\000"
.LASF404: .LASF405:
.ascii "__ARM_FEATURE_NUMERIC_MAXMIN\000" .ascii "__ARM_FEATURE_NUMERIC_MAXMIN\000"
.LASF282: .LASF282:
.ascii "__ULLFRACT_IBIT__ 0\000" .ascii "__ULLFRACT_IBIT__ 0\000"
@@ -1695,7 +1698,7 @@ main:
.ascii "__FLT64_DIG__ 15\000" .ascii "__FLT64_DIG__ 15\000"
.LASF9: .LASF9:
.ascii "__ATOMIC_RELAXED 0\000" .ascii "__ATOMIC_RELAXED 0\000"
.LASF429: .LASF430:
.ascii "__ARM_FEATURE_FP16_FML\000" .ascii "__ARM_FEATURE_FP16_FML\000"
.LASF80: .LASF80:
.ascii "__SIZE_MAX__ 0xffffffffU\000" .ascii "__SIZE_MAX__ 0xffffffffU\000"
@@ -1707,7 +1710,7 @@ main:
.ascii "__ULLACCUM_MAX__ 0XFFFFFFFFFFFFFFFFP-32ULLK\000" .ascii "__ULLACCUM_MAX__ 0XFFFFFFFFFFFFFFFFP-32ULLK\000"
.LASF313: .LASF313:
.ascii "__ULACCUM_MIN__ 0.0ULK\000" .ascii "__ULACCUM_MIN__ 0.0ULK\000"
.LASF423: .LASF424:
.ascii "__ARM_FP 4\000" .ascii "__ARM_FP 4\000"
.LASF160: .LASF160:
.ascii "__FLT_HAS_INFINITY__ 1\000" .ascii "__FLT_HAS_INFINITY__ 1\000"
@@ -1721,21 +1724,21 @@ main:
.ascii "__INT8_C(c) c\000" .ascii "__INT8_C(c) c\000"
.LASF212: .LASF212:
.ascii "__FP_FAST_FMAF32 1\000" .ascii "__FP_FAST_FMAF32 1\000"
.LASF398: .LASF399:
.ascii "__ARM_32BIT_STATE 1\000" .ascii "__ARM_32BIT_STATE 1\000"
.LASF438: .LASF439:
.ascii "__FDPIC__\000" .ascii "__FDPIC__\000"
.LASF111: .LASF111:
.ascii "__INT_LEAST16_WIDTH__ 16\000" .ascii "__INT_LEAST16_WIDTH__ 16\000"
.LASF323: .LASF323:
.ascii "__ULLACCUM_MIN__ 0.0ULLK\000" .ascii "__ULLACCUM_MIN__ 0.0ULLK\000"
.LASF396: .LASF397:
.ascii "__ARM_FEATURE_DOTPROD\000" .ascii "__ARM_FEATURE_DOTPROD\000"
.LASF432: .LASF433:
.ascii "__ARM_NEON\000" .ascii "__ARM_NEON\000"
.LASF400: .LASF401:
.ascii "__ARM_FEATURE_CMSE\000" .ascii "__ARM_FEATURE_CMSE\000"
.LASF456: .LASF457:
.ascii "/home/alex/code/own/c-compile-experiments\000" .ascii "/home/alex/code/own/c-compile-experiments\000"
.LASF229: .LASF229:
.ascii "__FLT64_IS_IEC_60559__ 2\000" .ascii "__FLT64_IS_IEC_60559__ 2\000"
@@ -1743,7 +1746,7 @@ main:
.ascii "__FLT32_HAS_DENORM__ 1\000" .ascii "__FLT32_HAS_DENORM__ 1\000"
.LASF225: .LASF225:
.ascii "__FLT64_DENORM_MIN__ 4.9406564584124654e-324F64\000" .ascii "__FLT64_DENORM_MIN__ 4.9406564584124654e-324F64\000"
.LASF367: .LASF368:
.ascii "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1\000" .ascii "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1\000"
.LASF349: .LASF349:
.ascii "__SA_IBIT__ 16\000" .ascii "__SA_IBIT__ 16\000"
@@ -1757,14 +1760,19 @@ main:
.ascii "__FLT_DIG__ 6\000" .ascii "__FLT_DIG__ 6\000"
.LASF174: .LASF174:
.ascii "__DBL_EPSILON__ ((double)2.2204460492503131e-16L)\000" .ascii "__DBL_EPSILON__ ((double)2.2204460492503131e-16L)\000"
.LASF368: .LASF369:
.ascii "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1\000" .ascii "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1\000"
.LASF350: .LASF350:
.ascii "__DA_FBIT__ 31\000" .ascii "__DA_FBIT__ 31\000"
.LASF406: .LASF407:
.ascii "__ARM_SIZEOF_MINIMAL_ENUM 1\000" .ascii "__ARM_SIZEOF_MINIMAL_ENUM 1\000"
.LASF452: .LASF453:
.ascii "__USES_INITFINI__ 1\000" .ascii "__USES_INITFINI__ 1\000"
.LASF455:
.ascii "GNU C2X 12.3.1 20230626 -mcpu=cortex-m4 -mthumb -mf"
.ascii "loat-abi=hard -mfpu=fpv4-sp-d16 -march=armv7e-m+fp "
.ascii "-g3 -ggdb -O0 -std=c2x -ffunction-sections -fdata-s"
.ascii "ections -fno-builtin -fno-common\000"
.LASF141: .LASF141:
.ascii "__GCC_IEC_559 0\000" .ascii "__GCC_IEC_559 0\000"
.LASF295: .LASF295:
@@ -1781,7 +1789,7 @@ main:
.ascii "__SFRACT_MAX__ 0X7FP-7HR\000" .ascii "__SFRACT_MAX__ 0X7FP-7HR\000"
.LASF5: .LASF5:
.ascii "__GNUC__ 12\000" .ascii "__GNUC__ 12\000"
.LASF437: .LASF438:
.ascii "__ARM_EABI__ 1\000" .ascii "__ARM_EABI__ 1\000"
.LASF118: .LASF118:
.ascii "__UINT_LEAST8_MAX__ 0xff\000" .ascii "__UINT_LEAST8_MAX__ 0xff\000"
@@ -1815,7 +1823,7 @@ main:
.ascii "__FLT64_HAS_INFINITY__ 1\000" .ascii "__FLT64_HAS_INFINITY__ 1\000"
.LASF241: .LASF241:
.ascii "__FLT32X_DENORM_MIN__ 4.9406564584124654e-324F32x\000" .ascii "__FLT32X_DENORM_MIN__ 4.9406564584124654e-324F32x\000"
.LASF427: .LASF428:
.ascii "__ARM_FEATURE_FP16_SCALAR_ARITHMETIC\000" .ascii "__ARM_FEATURE_FP16_SCALAR_ARITHMETIC\000"
.LASF286: .LASF286:
.ascii "__SACCUM_FBIT__ 7\000" .ascii "__SACCUM_FBIT__ 7\000"
@@ -1827,7 +1835,7 @@ main:
.ascii "__FLT64_MIN__ 2.2250738585072014e-308F64\000" .ascii "__FLT64_MIN__ 2.2250738585072014e-308F64\000"
.LASF258: .LASF258:
.ascii "__FRACT_MIN__ (-0.5R-0.5R)\000" .ascii "__FRACT_MIN__ (-0.5R-0.5R)\000"
.LASF376: .LASF377:
.ascii "__GCC_ATOMIC_INT_LOCK_FREE 2\000" .ascii "__GCC_ATOMIC_INT_LOCK_FREE 2\000"
.LASF90: .LASF90:
.ascii "__INTMAX_MAX__ 0x7fffffffffffffffLL\000" .ascii "__INTMAX_MAX__ 0x7fffffffffffffffLL\000"
@@ -1841,15 +1849,15 @@ main:
.ascii "__FLT64_MAX_10_EXP__ 308\000" .ascii "__FLT64_MAX_10_EXP__ 308\000"
.LASF287: .LASF287:
.ascii "__SACCUM_IBIT__ 8\000" .ascii "__SACCUM_IBIT__ 8\000"
.LASF388: .LASF389:
.ascii "__SIZEOF_PTRDIFF_T__ 4\000" .ascii "__SIZEOF_PTRDIFF_T__ 4\000"
.LASF248: .LASF248:
.ascii "__SFRACT_MIN__ (-0.5HR-0.5HR)\000" .ascii "__SFRACT_MIN__ (-0.5HR-0.5HR)\000"
.LASF357: .LASF357:
.ascii "__USA_IBIT__ 16\000" .ascii "__USA_IBIT__ 16\000"
.LASF439: .LASF440:
.ascii "__ARM_ARCH_EXT_IDIV__ 1\000" .ascii "__ARM_ARCH_EXT_IDIV__ 1\000"
.LASF393: .LASF394:
.ascii "__ARM_FEATURE_UNALIGNED 1\000" .ascii "__ARM_FEATURE_UNALIGNED 1\000"
.LASF294: .LASF294:
.ascii "__USACCUM_MAX__ 0XFFFFP-8UHK\000" .ascii "__USACCUM_MAX__ 0XFFFFP-8UHK\000"
@@ -1857,7 +1865,7 @@ main:
.ascii "__UINT32_C(c) c ## UL\000" .ascii "__UINT32_C(c) c ## UL\000"
.LASF358: .LASF358:
.ascii "__UDA_FBIT__ 32\000" .ascii "__UDA_FBIT__ 32\000"
.LASF417: .LASF418:
.ascii "__THUMBEL__ 1\000" .ascii "__THUMBEL__ 1\000"
.LASF25: .LASF25:
.ascii "__BIGGEST_ALIGNMENT__ 8\000" .ascii "__BIGGEST_ALIGNMENT__ 8\000"
@@ -1869,7 +1877,7 @@ main:
.ascii "__UINT_FAST8_MAX__ 0xffffffffU\000" .ascii "__UINT_FAST8_MAX__ 0xffffffffU\000"
.LASF26: .LASF26:
.ascii "__ORDER_LITTLE_ENDIAN__ 1234\000" .ascii "__ORDER_LITTLE_ENDIAN__ 1234\000"
.LASF383: .LASF384:
.ascii "__HAVE_SPECULATION_SAFE_VALUE 1\000" .ascii "__HAVE_SPECULATION_SAFE_VALUE 1\000"
.LASF318: .LASF318:
.ascii "__LLACCUM_MIN__ (-0X1P31LLK-0X1P31LLK)\000" .ascii "__LLACCUM_MIN__ (-0X1P31LLK-0X1P31LLK)\000"
@@ -1887,13 +1895,13 @@ main:
.ascii "__UINT16_TYPE__ short unsigned int\000" .ascii "__UINT16_TYPE__ short unsigned int\000"
.LASF86: .LASF86:
.ascii "__WCHAR_WIDTH__ 32\000" .ascii "__WCHAR_WIDTH__ 32\000"
.LASF371: .LASF372:
.ascii "__GCC_ATOMIC_CHAR_LOCK_FREE 2\000" .ascii "__GCC_ATOMIC_CHAR_LOCK_FREE 2\000"
.LASF339: .LASF339:
.ascii "__UHQ_IBIT__ 0\000" .ascii "__UHQ_IBIT__ 0\000"
.LASF261: .LASF261:
.ascii "__UFRACT_FBIT__ 16\000" .ascii "__UFRACT_FBIT__ 16\000"
.LASF403: .LASF404:
.ascii "__ARM_FEATURE_CLZ 1\000" .ascii "__ARM_FEATURE_CLZ 1\000"
.LASF74: .LASF74:
.ascii "__LONG_LONG_MAX__ 0x7fffffffffffffffLL\000" .ascii "__LONG_LONG_MAX__ 0x7fffffffffffffffLL\000"
@@ -1909,17 +1917,17 @@ main:
.ascii "__FLT32X_MANT_DIG__ 53\000" .ascii "__FLT32X_MANT_DIG__ 53\000"
.LASF365: .LASF365:
.ascii "__NO_INLINE__ 1\000" .ascii "__NO_INLINE__ 1\000"
.LASF442: .LASF443:
.ascii "__ARM_FEATURE_COPROC\000" .ascii "__ARM_FEATURE_COPROC\000"
.LASF273: .LASF273:
.ascii "__ULFRACT_MIN__ 0.0ULR\000" .ascii "__ULFRACT_MIN__ 0.0ULR\000"
.LASF147: .LASF147:
.ascii "__FLT_MANT_DIG__ 24\000" .ascii "__FLT_MANT_DIG__ 24\000"
.LASF411: .LASF412:
.ascii "__ARM_ARCH\000" .ascii "__ARM_ARCH\000"
.LASF220: .LASF220:
.ascii "__FLT64_DECIMAL_DIG__ 17\000" .ascii "__FLT64_DECIMAL_DIG__ 17\000"
.LASF369: .LASF370:
.ascii "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1\000" .ascii "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1\000"
.LASF199: .LASF199:
.ascii "__FLT32_MIN_EXP__ (-125)\000" .ascii "__FLT32_MIN_EXP__ (-125)\000"
@@ -1935,7 +1943,7 @@ main:
.ascii "__DBL_MIN_10_EXP__ (-307)\000" .ascii "__DBL_MIN_10_EXP__ (-307)\000"
.LASF292: .LASF292:
.ascii "__USACCUM_IBIT__ 8\000" .ascii "__USACCUM_IBIT__ 8\000"
.LASF434: .LASF435:
.ascii "__THUMB_INTERWORK__ 1\000" .ascii "__THUMB_INTERWORK__ 1\000"
.LASF198: .LASF198:
.ascii "__FLT32_DIG__ 6\000" .ascii "__FLT32_DIG__ 6\000"
@@ -1949,13 +1957,13 @@ main:
.ascii "__INT_LEAST64_MAX__ 0x7fffffffffffffffLL\000" .ascii "__INT_LEAST64_MAX__ 0x7fffffffffffffffLL\000"
.LASF296: .LASF296:
.ascii "__ACCUM_FBIT__ 15\000" .ascii "__ACCUM_FBIT__ 15\000"
.LASF374: .LASF375:
.ascii "__GCC_ATOMIC_WCHAR_T_LOCK_FREE 2\000" .ascii "__GCC_ATOMIC_WCHAR_T_LOCK_FREE 2\000"
.LASF312: .LASF312:
.ascii "__ULACCUM_IBIT__ 32\000" .ascii "__ULACCUM_IBIT__ 32\000"
.LASF276: .LASF276:
.ascii "__LLFRACT_FBIT__ 63\000" .ascii "__LLFRACT_FBIT__ 63\000"
.LASF378: .LASF379:
.ascii "__GCC_ATOMIC_LLONG_LOCK_FREE 1\000" .ascii "__GCC_ATOMIC_LLONG_LOCK_FREE 1\000"
.LASF108: .LASF108:
.ascii "__INT_LEAST8_WIDTH__ 8\000" .ascii "__INT_LEAST8_WIDTH__ 8\000"
@@ -1969,7 +1977,7 @@ main:
.ascii "__UACCUM_FBIT__ 16\000" .ascii "__UACCUM_FBIT__ 16\000"
.LASF94: .LASF94:
.ascii "__INTMAX_WIDTH__ 64\000" .ascii "__INTMAX_WIDTH__ 64\000"
.LASF444: .LASF445:
.ascii "__ARM_FEATURE_CDE\000" .ascii "__ARM_FEATURE_CDE\000"
.LASF266: .LASF266:
.ascii "__LFRACT_FBIT__ 31\000" .ascii "__LFRACT_FBIT__ 31\000"
@@ -1983,9 +1991,9 @@ main:
.ascii "__GNUC_STDC_INLINE__ 1\000" .ascii "__GNUC_STDC_INLINE__ 1\000"
.LASF165: .LASF165:
.ascii "__DBL_DIG__ 15\000" .ascii "__DBL_DIG__ 15\000"
.LASF420: .LASF421:
.ascii "__ARMEL__ 1\000" .ascii "__ARMEL__ 1\000"
.LASF418: .LASF419:
.ascii "__ARM_ARCH_ISA_THUMB\000" .ascii "__ARM_ARCH_ISA_THUMB\000"
.LASF306: .LASF306:
.ascii "__LACCUM_FBIT__ 31\000" .ascii "__LACCUM_FBIT__ 31\000"
@@ -1993,7 +2001,7 @@ main:
.ascii "__UTQ_IBIT__ 0\000" .ascii "__UTQ_IBIT__ 0\000"
.LASF156: .LASF156:
.ascii "__FLT_MIN__ 1.1754943508222875e-38F\000" .ascii "__FLT_MIN__ 1.1754943508222875e-38F\000"
.LASF377: .LASF378:
.ascii "__GCC_ATOMIC_LONG_LOCK_FREE 2\000" .ascii "__GCC_ATOMIC_LONG_LOCK_FREE 2\000"
.LASF231: .LASF231:
.ascii "__FLT32X_DIG__ 15\000" .ascii "__FLT32X_DIG__ 15\000"
@@ -2003,9 +2011,7 @@ main:
.ascii "__UDQ_FBIT__ 64\000" .ascii "__UDQ_FBIT__ 64\000"
.LASF128: .LASF128:
.ascii "__INT_FAST16_MAX__ 0x7fffffff\000" .ascii "__INT_FAST16_MAX__ 0x7fffffff\000"
.LASF347: .LASF420:
.ascii "__HA_IBIT__ 8\000"
.LASF419:
.ascii "__ARM_ARCH_ISA_THUMB 2\000" .ascii "__ARM_ARCH_ISA_THUMB 2\000"
.LASF344: .LASF344:
.ascii "__UTQ_FBIT__ 128\000" .ascii "__UTQ_FBIT__ 128\000"
@@ -2015,7 +2021,7 @@ main:
.ascii "__FLT32X_IS_IEC_60559__ 2\000" .ascii "__FLT32X_IS_IEC_60559__ 2\000"
.LASF139: .LASF139:
.ascii "__INTPTR_WIDTH__ 32\000" .ascii "__INTPTR_WIDTH__ 32\000"
.LASF370: .LASF371:
.ascii "__GCC_ATOMIC_BOOL_LOCK_FREE 2\000" .ascii "__GCC_ATOMIC_BOOL_LOCK_FREE 2\000"
.LASF188: .LASF188:
.ascii "__LDBL_MAX__ 1.7976931348623157e+308L\000" .ascii "__LDBL_MAX__ 1.7976931348623157e+308L\000"
@@ -2023,7 +2029,7 @@ main:
.ascii "__FINITE_MATH_ONLY__ 0\000" .ascii "__FINITE_MATH_ONLY__ 0\000"
.LASF289: .LASF289:
.ascii "__SACCUM_MAX__ 0X7FFFP-7HK\000" .ascii "__SACCUM_MAX__ 0X7FFFP-7HK\000"
.LASF410: .LASF411:
.ascii "__arm__ 1\000" .ascii "__arm__ 1\000"
.LASF180: .LASF180:
.ascii "__LDBL_MANT_DIG__ 53\000" .ascii "__LDBL_MANT_DIG__ 53\000"
@@ -2031,15 +2037,15 @@ main:
.ascii "__TQ_IBIT__ 0\000" .ascii "__TQ_IBIT__ 0\000"
.LASF354: .LASF354:
.ascii "__UHA_FBIT__ 8\000" .ascii "__UHA_FBIT__ 8\000"
.LASF414: .LASF415:
.ascii "__GCC_ASM_FLAG_OUTPUTS__ 1\000" .ascii "__GCC_ASM_FLAG_OUTPUTS__ 1\000"
.LASF451: .LASF452:
.ascii "__ELF__ 1\000" .ascii "__ELF__ 1\000"
.LASF408: .LASF409:
.ascii "__ARM_ARCH_PROFILE\000" .ascii "__ARM_ARCH_PROFILE\000"
.LASF110: .LASF110:
.ascii "__INT16_C(c) c\000" .ascii "__INT16_C(c) c\000"
.LASF384: .LASF385:
.ascii "__GCC_HAVE_DWARF2_CFI_ASM 1\000" .ascii "__GCC_HAVE_DWARF2_CFI_ASM 1\000"
.LASF105: .LASF105:
.ascii "__UINT64_MAX__ 0xffffffffffffffffULL\000" .ascii "__UINT64_MAX__ 0xffffffffffffffffULL\000"
@@ -2051,7 +2057,7 @@ main:
.ascii "__USFRACT_EPSILON__ 0x1P-8UHR\000" .ascii "__USFRACT_EPSILON__ 0x1P-8UHR\000"
.LASF11: .LASF11:
.ascii "__ATOMIC_ACQUIRE 2\000" .ascii "__ATOMIC_ACQUIRE 2\000"
.LASF443: .LASF444:
.ascii "__ARM_FEATURE_COPROC 15\000" .ascii "__ARM_FEATURE_COPROC 15\000"
.LASF0: .LASF0:
.ascii "__STDC__ 1\000" .ascii "__STDC__ 1\000"
@@ -2063,7 +2069,7 @@ main:
.ascii "__ATOMIC_CONSUME 1\000" .ascii "__ATOMIC_CONSUME 1\000"
.LASF131: .LASF131:
.ascii "__INT_FAST32_WIDTH__ 32\000" .ascii "__INT_FAST32_WIDTH__ 32\000"
.LASF449: .LASF450:
.ascii "__ARM_BF16_FORMAT_ALTERNATIVE\000" .ascii "__ARM_BF16_FORMAT_ALTERNATIVE\000"
.LASF37: .LASF37:
.ascii "__WINT_TYPE__ unsigned int\000" .ascii "__WINT_TYPE__ unsigned int\000"
@@ -2081,7 +2087,7 @@ main:
.ascii "__SIZEOF_DOUBLE__ 8\000" .ascii "__SIZEOF_DOUBLE__ 8\000"
.LASF7: .LASF7:
.ascii "__GNUC_PATCHLEVEL__ 1\000" .ascii "__GNUC_PATCHLEVEL__ 1\000"
.LASF450: .LASF451:
.ascii "__GXX_TYPEINFO_EQUALITY_INLINE 0\000" .ascii "__GXX_TYPEINFO_EQUALITY_INLINE 0\000"
.LASF259: .LASF259:
.ascii "__FRACT_MAX__ 0X7FFFP-15R\000" .ascii "__FRACT_MAX__ 0X7FFFP-15R\000"
@@ -2093,7 +2099,7 @@ main:
.ascii "__FLT_NORM_MAX__ 3.4028234663852886e+38F\000" .ascii "__FLT_NORM_MAX__ 3.4028234663852886e+38F\000"
.LASF263: .LASF263:
.ascii "__UFRACT_MIN__ 0.0UR\000" .ascii "__UFRACT_MIN__ 0.0UR\000"
.LASF433: .LASF434:
.ascii "__ARM_NEON_FP\000" .ascii "__ARM_NEON_FP\000"
.LASF2: .LASF2:
.ascii "__STDC_UTF_16__ 1\000" .ascii "__STDC_UTF_16__ 1\000"
@@ -2115,7 +2121,7 @@ main:
.ascii "__LDBL_MIN_EXP__ (-1021)\000" .ascii "__LDBL_MIN_EXP__ (-1021)\000"
.LASF281: .LASF281:
.ascii "__ULLFRACT_FBIT__ 64\000" .ascii "__ULLFRACT_FBIT__ 64\000"
.LASF386: .LASF387:
.ascii "__SIZEOF_WCHAR_T__ 4\000" .ascii "__SIZEOF_WCHAR_T__ 4\000"
.LASF30: .LASF30:
.ascii "__FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__\000" .ascii "__FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__\000"
@@ -2123,7 +2129,7 @@ main:
.ascii "__ACCUM_MAX__ 0X7FFFFFFFP-15K\000" .ascii "__ACCUM_MAX__ 0X7FFFFFFFP-15K\000"
.LASF89: .LASF89:
.ascii "__SIZE_WIDTH__ 32\000" .ascii "__SIZE_WIDTH__ 32\000"
.LASF391: .LASF392:
.ascii "__ARM_FEATURE_SAT 1\000" .ascii "__ARM_FEATURE_SAT 1\000"
.LASF96: .LASF96:
.ascii "__SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)\000" .ascii "__SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)\000"
@@ -2149,15 +2155,15 @@ main:
.ascii "__DQ_FBIT__ 63\000" .ascii "__DQ_FBIT__ 63\000"
.LASF355: .LASF355:
.ascii "__UHA_IBIT__ 8\000" .ascii "__UHA_IBIT__ 8\000"
.LASF402: .LASF403:
.ascii "__ARM_FEATURE_LDREX 7\000" .ascii "__ARM_FEATURE_LDREX 7\000"
.LASF97: .LASF97:
.ascii "__SIG_ATOMIC_WIDTH__ 32\000" .ascii "__SIG_ATOMIC_WIDTH__ 32\000"
.LASF448: .LASF449:
.ascii "__ARM_FEATURE_BF16_VECTOR_ARITHMETIC\000" .ascii "__ARM_FEATURE_BF16_VECTOR_ARITHMETIC\000"
.LASF71: .LASF71:
.ascii "__SHRT_MAX__ 0x7fff\000" .ascii "__SHRT_MAX__ 0x7fff\000"
.LASF426: .LASF427:
.ascii "__ARM_FP16_ARGS\000" .ascii "__ARM_FP16_ARGS\000"
.LASF28: .LASF28:
.ascii "__ORDER_PDP_ENDIAN__ 3412\000" .ascii "__ORDER_PDP_ENDIAN__ 3412\000"
@@ -2175,6 +2181,8 @@ main:
.ascii "__UQQ_FBIT__ 8\000" .ascii "__UQQ_FBIT__ 8\000"
.LASF265: .LASF265:
.ascii "__UFRACT_EPSILON__ 0x1P-16UR\000" .ascii "__UFRACT_EPSILON__ 0x1P-16UR\000"
.LASF95:
.ascii "__SIG_ATOMIC_MAX__ 0x7fffffff\000"
.LASF69: .LASF69:
.ascii "__GXX_ABI_VERSION 1017\000" .ascii "__GXX_ABI_VERSION 1017\000"
.LASF117: .LASF117:
@@ -2183,11 +2191,11 @@ main:
.ascii "__INT32_TYPE__ long int\000" .ascii "__INT32_TYPE__ long int\000"
.LASF233: .LASF233:
.ascii "__FLT32X_MIN_10_EXP__ (-307)\000" .ascii "__FLT32X_MIN_10_EXP__ (-307)\000"
.LASF447: .LASF448:
.ascii "__ARM_FEATURE_BF16_SCALAR_ARITHMETIC\000" .ascii "__ARM_FEATURE_BF16_SCALAR_ARITHMETIC\000"
.LASF65: .LASF65:
.ascii "__UINT_FAST32_TYPE__ unsigned int\000" .ascii "__UINT_FAST32_TYPE__ unsigned int\000"
.LASF440: .LASF441:
.ascii "__ARM_FEATURE_IDIV 1\000" .ascii "__ARM_FEATURE_IDIV 1\000"
.LASF184: .LASF184:
.ascii "__LDBL_MAX_EXP__ 1024\000" .ascii "__LDBL_MAX_EXP__ 1024\000"
@@ -2201,9 +2209,9 @@ main:
.ascii "__FLT64_MAX__ 1.7976931348623157e+308F64\000" .ascii "__FLT64_MAX__ 1.7976931348623157e+308F64\000"
.LASF122: .LASF122:
.ascii "__UINT_LEAST32_MAX__ 0xffffffffUL\000" .ascii "__UINT_LEAST32_MAX__ 0xffffffffUL\000"
.LASF380: .LASF381:
.ascii "__GCC_DESTRUCTIVE_SIZE 64\000" .ascii "__GCC_DESTRUCTIVE_SIZE 64\000"
.LASF415: .LASF416:
.ascii "__thumb__ 1\000" .ascii "__thumb__ 1\000"
.LASF195: .LASF195:
.ascii "__LDBL_HAS_QUIET_NAN__ 1\000" .ascii "__LDBL_HAS_QUIET_NAN__ 1\000"
@@ -2227,7 +2235,7 @@ main:
.ascii "__INT64_C(c) c ## LL\000" .ascii "__INT64_C(c) c ## LL\000"
.LASF328: .LASF328:
.ascii "__HQ_FBIT__ 15\000" .ascii "__HQ_FBIT__ 15\000"
.LASF405: .LASF406:
.ascii "__ARM_FEATURE_SIMD32 1\000" .ascii "__ARM_FEATURE_SIMD32 1\000"
.LASF75: .LASF75:
.ascii "__WCHAR_MAX__ 0xffffffffU\000" .ascii "__WCHAR_MAX__ 0xffffffffU\000"
@@ -2237,7 +2245,7 @@ main:
.ascii "__UINT8_TYPE__ unsigned char\000" .ascii "__UINT8_TYPE__ unsigned char\000"
.LASF82: .LASF82:
.ascii "__SHRT_WIDTH__ 16\000" .ascii "__SHRT_WIDTH__ 16\000"
.LASF422: .LASF423:
.ascii "__ARM_FP\000" .ascii "__ARM_FP\000"
.LASF51: .LASF51:
.ascii "__INT_LEAST8_TYPE__ signed char\000" .ascii "__INT_LEAST8_TYPE__ signed char\000"
@@ -2253,7 +2261,7 @@ main:
.ascii "__SIZEOF_POINTER__ 4\000" .ascii "__SIZEOF_POINTER__ 4\000"
.LASF304: .LASF304:
.ascii "__UACCUM_MAX__ 0XFFFFFFFFP-16UK\000" .ascii "__UACCUM_MAX__ 0XFFFFFFFFP-16UK\000"
.LASF421: .LASF422:
.ascii "__VFP_FP__ 1\000" .ascii "__VFP_FP__ 1\000"
.LASF274: .LASF274:
.ascii "__ULFRACT_MAX__ 0XFFFFFFFFP-32ULR\000" .ascii "__ULFRACT_MAX__ 0XFFFFFFFFP-32ULR\000"
@@ -2267,13 +2275,13 @@ main:
.ascii "__SACCUM_MIN__ (-0X1P7HK-0X1P7HK)\000" .ascii "__SACCUM_MIN__ (-0X1P7HK-0X1P7HK)\000"
.LASF83: .LASF83:
.ascii "__INT_WIDTH__ 32\000" .ascii "__INT_WIDTH__ 32\000"
.LASF382: .LASF383:
.ascii "__GCC_ATOMIC_POINTER_LOCK_FREE 2\000" .ascii "__GCC_ATOMIC_POINTER_LOCK_FREE 2\000"
.LASF125: .LASF125:
.ascii "__UINT64_C(c) c ## ULL\000" .ascii "__UINT64_C(c) c ## ULL\000"
.LASF310: .LASF310:
.ascii "__LACCUM_EPSILON__ 0x1P-31LK\000" .ascii "__LACCUM_EPSILON__ 0x1P-31LK\000"
.LASF457: .LASF458:
.ascii "main\000" .ascii "main\000"
.LASF250: .LASF250:
.ascii "__SFRACT_EPSILON__ 0x1P-7HR\000" .ascii "__SFRACT_EPSILON__ 0x1P-7HR\000"
@@ -2283,9 +2291,9 @@ main:
.ascii "__FLT32X_MAX__ 1.7976931348623157e+308F32x\000" .ascii "__FLT32X_MAX__ 1.7976931348623157e+308F32x\000"
.LASF340: .LASF340:
.ascii "__USQ_FBIT__ 32\000" .ascii "__USQ_FBIT__ 32\000"
.LASF1: .LASF347:
.ascii "__STDC_VERSION__ 201710L\000" .ascii "__HA_IBIT__ 8\000"
.LASF373: .LASF374:
.ascii "__GCC_ATOMIC_CHAR32_T_LOCK_FREE 2\000" .ascii "__GCC_ATOMIC_CHAR32_T_LOCK_FREE 2\000"
.LASF260: .LASF260:
.ascii "__FRACT_EPSILON__ 0x1P-15R\000" .ascii "__FRACT_EPSILON__ 0x1P-15R\000"
@@ -2293,9 +2301,9 @@ main:
.ascii "__STDC_HOSTED__ 1\000" .ascii "__STDC_HOSTED__ 1\000"
.LASF138: .LASF138:
.ascii "__INTPTR_MAX__ 0x7fffffff\000" .ascii "__INTPTR_MAX__ 0x7fffffff\000"
.LASF385: .LASF386:
.ascii "__PRAGMA_REDEFINE_EXTNAME 1\000" .ascii "__PRAGMA_REDEFINE_EXTNAME 1\000"
.LASF453: .LASF454:
.ascii "exit 42\000" .ascii "exit 42\000"
.LASF224: .LASF224:
.ascii "__FLT64_EPSILON__ 2.2204460492503131e-16F64\000" .ascii "__FLT64_EPSILON__ 2.2204460492503131e-16F64\000"
@@ -2315,7 +2323,7 @@ main:
.ascii "__LDBL_EPSILON__ 2.2204460492503131e-16L\000" .ascii "__LDBL_EPSILON__ 2.2204460492503131e-16L\000"
.LASF67: .LASF67:
.ascii "__INTPTR_TYPE__ int\000" .ascii "__INTPTR_TYPE__ int\000"
.LASF436: .LASF437:
.ascii "__ARM_PCS_VFP 1\000" .ascii "__ARM_PCS_VFP 1\000"
.LASF145: .LASF145:
.ascii "__DEC_EVAL_METHOD__ 2\000" .ascii "__DEC_EVAL_METHOD__ 2\000"
@@ -2339,16 +2347,11 @@ main:
.ascii "__SIZE_TYPE__ unsigned int\000" .ascii "__SIZE_TYPE__ unsigned int\000"
.LASF321: .LASF321:
.ascii "__ULLACCUM_FBIT__ 32\000" .ascii "__ULLACCUM_FBIT__ 32\000"
.LASF454:
.ascii "GNU C17 12.3.1 20230626 -mcpu=cortex-m4 -mthumb -mf"
.ascii "loat-abi=hard -mfpu=fpv4-sp-d16 -march=armv7e-m+fp "
.ascii "-g3 -ggdb -O0 -ffunction-sections -fdata-sections -"
.ascii "fno-builtin -fno-common\000"
.LASF216: .LASF216:
.ascii "__FLT64_MIN_EXP__ (-1021)\000" .ascii "__FLT64_MIN_EXP__ (-1021)\000"
.LASF256: .LASF256:
.ascii "__FRACT_FBIT__ 15\000" .ascii "__FRACT_FBIT__ 15\000"
.LASF375: .LASF376:
.ascii "__GCC_ATOMIC_SHORT_LOCK_FREE 2\000" .ascii "__GCC_ATOMIC_SHORT_LOCK_FREE 2\000"
.LASF361: .LASF361:
.ascii "__UTA_IBIT__ 64\000" .ascii "__UTA_IBIT__ 64\000"
@@ -2362,7 +2365,7 @@ main:
.ascii "__FLT_EVAL_METHOD_TS_18661_3__ 0\000" .ascii "__FLT_EVAL_METHOD_TS_18661_3__ 0\000"
.LASF177: .LASF177:
.ascii "__DBL_HAS_INFINITY__ 1\000" .ascii "__DBL_HAS_INFINITY__ 1\000"
.LASF390: .LASF391:
.ascii "__ARM_FEATURE_QBIT 1\000" .ascii "__ARM_FEATURE_QBIT 1\000"
.LASF61: .LASF61:
.ascii "__INT_FAST32_TYPE__ int\000" .ascii "__INT_FAST32_TYPE__ int\000"
@@ -2374,16 +2377,16 @@ main:
.ascii "__INTMAX_TYPE__ long long int\000" .ascii "__INTMAX_TYPE__ long long int\000"
.LASF91: .LASF91:
.ascii "__INTMAX_C(c) c ## LL\000" .ascii "__INTMAX_C(c) c ## LL\000"
.LASF399: .LASF400:
.ascii "__ARM_FEATURE_MVE\000" .ascii "__ARM_FEATURE_MVE\000"
.LASF413: .LASF414:
.ascii "__APCS_32__ 1\000" .ascii "__APCS_32__ 1\000"
.LASF175: .LASF175:
.ascii "__DBL_DENORM_MIN__ ((double)4.9406564584124654e-324" .ascii "__DBL_DENORM_MIN__ ((double)4.9406564584124654e-324"
.ascii "L)\000" .ascii "L)\000"
.LASF50: .LASF50:
.ascii "__UINT64_TYPE__ long long unsigned int\000" .ascii "__UINT64_TYPE__ long long unsigned int\000"
.LASF455: .LASF456:
.ascii "src/main.c\000" .ascii "src/main.c\000"
.LASF244: .LASF244:
.ascii "__FLT32X_HAS_QUIET_NAN__ 1\000" .ascii "__FLT32X_HAS_QUIET_NAN__ 1\000"
@@ -2399,7 +2402,7 @@ main:
.ascii "__FLT32X_HAS_INFINITY__ 1\000" .ascii "__FLT32X_HAS_INFINITY__ 1\000"
.LASF56: .LASF56:
.ascii "__UINT_LEAST16_TYPE__ short unsigned int\000" .ascii "__UINT_LEAST16_TYPE__ short unsigned int\000"
.LASF409: .LASF410:
.ascii "__ARM_ARCH_PROFILE 77\000" .ascii "__ARM_ARCH_PROFILE 77\000"
.LASF127: .LASF127:
.ascii "__INT_FAST8_WIDTH__ 32\000" .ascii "__INT_FAST8_WIDTH__ 32\000"
@@ -2407,13 +2410,15 @@ main:
.ascii "__VERSION__ \"12.3.1 20230626\"\000" .ascii "__VERSION__ \"12.3.1 20230626\"\000"
.LASF149: .LASF149:
.ascii "__FLT_MIN_EXP__ (-125)\000" .ascii "__FLT_MIN_EXP__ (-125)\000"
.LASF446: .LASF447:
.ascii "__ARM_FEATURE_MATMUL_INT8\000" .ascii "__ARM_FEATURE_MATMUL_INT8\000"
.LASF186: .LASF186:
.ascii "__DECIMAL_DIG__ 17\000" .ascii "__DECIMAL_DIG__ 17\000"
.LASF113: .LASF113:
.ascii "__INT32_C(c) c ## L\000" .ascii "__INT32_C(c) c ## L\000"
.LASF425: .LASF366:
.ascii "__STRICT_ANSI__ 1\000"
.LASF426:
.ascii "__ARM_FP16_FORMAT_ALTERNATIVE\000" .ascii "__ARM_FP16_FORMAT_ALTERNATIVE\000"
.LASF185: .LASF185:
.ascii "__LDBL_MAX_10_EXP__ 308\000" .ascii "__LDBL_MAX_10_EXP__ 308\000"
@@ -2425,7 +2430,7 @@ main:
.ascii "__DBL_HAS_DENORM__ 1\000" .ascii "__DBL_HAS_DENORM__ 1\000"
.LASF32: .LASF32:
.ascii "__GNUC_EXECUTION_CHARSET_NAME \"UTF-8\"\000" .ascii "__GNUC_EXECUTION_CHARSET_NAME \"UTF-8\"\000"
.LASF395: .LASF396:
.ascii "__ARM_FEATURE_CRC32\000" .ascii "__ARM_FEATURE_CRC32\000"
.LASF202: .LASF202:
.ascii "__FLT32_MAX_10_EXP__ 38\000" .ascii "__FLT32_MAX_10_EXP__ 38\000"
@@ -2433,7 +2438,7 @@ main:
.ascii "__QQ_FBIT__ 7\000" .ascii "__QQ_FBIT__ 7\000"
.LASF269: .LASF269:
.ascii "__LFRACT_MAX__ 0X7FFFFFFFP-31LR\000" .ascii "__LFRACT_MAX__ 0X7FFFFFFFP-31LR\000"
.LASF435: .LASF436:
.ascii "__ARM_ARCH_7EM__ 1\000" .ascii "__ARM_ARCH_7EM__ 1\000"
.LASF112: .LASF112:
.ascii "__INT_LEAST32_MAX__ 0x7fffffffL\000" .ascii "__INT_LEAST32_MAX__ 0x7fffffffL\000"
@@ -2445,7 +2450,7 @@ main:
.ascii "__SIG_ATOMIC_TYPE__ int\000" .ascii "__SIG_ATOMIC_TYPE__ int\000"
.LASF278: .LASF278:
.ascii "__LLFRACT_MIN__ (-0.5LLR-0.5LLR)\000" .ascii "__LLFRACT_MIN__ (-0.5LLR-0.5LLR)\000"
.LASF430: .LASF431:
.ascii "__ARM_FEATURE_FMA 1\000" .ascii "__ARM_FEATURE_FMA 1\000"
.LASF285: .LASF285:
.ascii "__ULLFRACT_EPSILON__ 0x1P-64ULLR\000" .ascii "__ULLFRACT_EPSILON__ 0x1P-64ULLR\000"
@@ -2453,7 +2458,7 @@ main:
.ascii "__LDBL_HAS_DENORM__ 1\000" .ascii "__LDBL_HAS_DENORM__ 1\000"
.LASF120: .LASF120:
.ascii "__UINT_LEAST16_MAX__ 0xffff\000" .ascii "__UINT_LEAST16_MAX__ 0xffff\000"
.LASF401: .LASF402:
.ascii "__ARM_FEATURE_LDREX\000" .ascii "__ARM_FEATURE_LDREX\000"
.LASF189: .LASF189:
.ascii "__LDBL_NORM_MAX__ 1.7976931348623157e+308L\000" .ascii "__LDBL_NORM_MAX__ 1.7976931348623157e+308L\000"

View File

@@ -3,7 +3,7 @@
# 0 "<built-in>" # 0 "<built-in>"
#define __STDC__ 1 #define __STDC__ 1
# 0 "<built-in>" # 0 "<built-in>"
#define __STDC_VERSION__ 201710L #define __STDC_VERSION__ 202000L
# 0 "<built-in>" # 0 "<built-in>"
#define __STDC_UTF_16__ 1 #define __STDC_UTF_16__ 1
# 0 "<built-in>" # 0 "<built-in>"
@@ -733,6 +733,8 @@
# 0 "<built-in>" # 0 "<built-in>"
#define __NO_INLINE__ 1 #define __NO_INLINE__ 1
# 0 "<built-in>" # 0 "<built-in>"
#define __STRICT_ANSI__ 1
# 0 "<built-in>"
#define __CHAR_UNSIGNED__ 1 #define __CHAR_UNSIGNED__ 1
# 0 "<built-in>" # 0 "<built-in>"
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -3,7 +3,7 @@
# 0 "<built-in>" # 0 "<built-in>"
#define __STDC__ 1 #define __STDC__ 1
# 0 "<built-in>" # 0 "<built-in>"
#define __STDC_VERSION__ 201710L #define __STDC_VERSION__ 202000L
# 0 "<built-in>" # 0 "<built-in>"
#define __STDC_UTF_16__ 1 #define __STDC_UTF_16__ 1
# 0 "<built-in>" # 0 "<built-in>"
@@ -733,6 +733,8 @@
# 0 "<built-in>" # 0 "<built-in>"
#define __NO_INLINE__ 1 #define __NO_INLINE__ 1
# 0 "<built-in>" # 0 "<built-in>"
#define __STRICT_ANSI__ 1
# 0 "<built-in>"
#define __CHAR_UNSIGNED__ 1 #define __CHAR_UNSIGNED__ 1
# 0 "<built-in>" # 0 "<built-in>"
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
@@ -952,29 +954,14 @@
#define __GNUC_PREREQ__(ma,mi) __GNUC_PREREQ(ma, mi) #define __GNUC_PREREQ__(ma,mi) __GNUC_PREREQ(ma, mi)
# 131 "/nix/store/yr89i11mszv2az19r26l372zgaiivj1c-gcc-arm-embedded-12.3.rel1/arm-none-eabi/include/sys/features.h" 3 4 # 249 "/nix/store/yr89i11mszv2az19r26l372zgaiivj1c-gcc-arm-embedded-12.3.rel1/arm-none-eabi/include/sys/features.h" 3 4
#undef _DEFAULT_SOURCE #define __ATFILE_VISIBLE 0
#define _DEFAULT_SOURCE 1
#undef _POSIX_SOURCE
#define _POSIX_SOURCE 1
#undef _POSIX_C_SOURCE
#define _POSIX_C_SOURCE 200809L
# 158 "/nix/store/yr89i11mszv2az19r26l372zgaiivj1c-gcc-arm-embedded-12.3.rel1/arm-none-eabi/include/sys/features.h" 3 4
#undef _ATFILE_SOURCE
#define _ATFILE_SOURCE 1
# 247 "/nix/store/yr89i11mszv2az19r26l372zgaiivj1c-gcc-arm-embedded-12.3.rel1/arm-none-eabi/include/sys/features.h" 3 4
#define __ATFILE_VISIBLE 1
#define __BSD_VISIBLE 1 #define __BSD_VISIBLE 0
@@ -991,15 +978,17 @@
#define __MISC_VISIBLE 1
#define __MISC_VISIBLE 0
# 299 "/nix/store/yr89i11mszv2az19r26l372zgaiivj1c-gcc-arm-embedded-12.3.rel1/arm-none-eabi/include/sys/features.h" 3 4
#define __POSIX_VISIBLE 0
#define __POSIX_VISIBLE 200809 #define __SVID_VISIBLE 0
# 303 "/nix/store/yr89i11mszv2az19r26l372zgaiivj1c-gcc-arm-embedded-12.3.rel1/arm-none-eabi/include/sys/features.h" 3 4
#define __SVID_VISIBLE 1
# 319 "/nix/store/yr89i11mszv2az19r26l372zgaiivj1c-gcc-arm-embedded-12.3.rel1/arm-none-eabi/include/sys/features.h" 3 4 # 319 "/nix/store/yr89i11mszv2az19r26l372zgaiivj1c-gcc-arm-embedded-12.3.rel1/arm-none-eabi/include/sys/features.h" 3 4
#define __XSI_VISIBLE 0 #define __XSI_VISIBLE 0
# 331 "/nix/store/yr89i11mszv2az19r26l372zgaiivj1c-gcc-arm-embedded-12.3.rel1/arm-none-eabi/include/sys/features.h" 3 4 # 331 "/nix/store/yr89i11mszv2az19r26l372zgaiivj1c-gcc-arm-embedded-12.3.rel1/arm-none-eabi/include/sys/features.h" 3 4

Binary file not shown.

16
src/gpio.c Normal file
View File

@@ -0,0 +1,16 @@
#include <inttypes.h>
#include <stdbool.h>
#include "gpio.h"
void gpio_set_mode(uint16_t pin, GPIO_MODE mode) {
struct gpio *gpio = GPIO(PINPORT(pin)); // GPIO port address
int pn = PINNUM(pin); // Pin number
gpio->MODER &= ~(0x0011 << (pn * 2)); // Clear existing setting. Each pin uses 2 bits
gpio->MODER |= (mode & 0b011) << (pn * 2); // Set new mode. Each pin uses 2 bits
}
void gpio_write(uint16_t pin, bool val) {
struct gpio *gpio = GPIO(PINPORT(pin));
gpio->BSRR = (0b0011 << PINNUM(pin)) << (val ? 0 : 16);
}

42
src/gpio.h Normal file
View File

@@ -0,0 +1,42 @@
#ifndef GPIO_H_
#define GPIO_H_
#include <stdbool.h>
#include <inttypes.h>
struct gpio {
volatile uint32_t MODER; // Port mode register
volatile uint32_t OTYPER; // Port output type register
volatile uint32_t OSPEEDR; // Port output speed register
volatile uint32_t PUPDR; // Port pull-up/pull-down register
volatile uint32_t IDR; // Port input data register
volatile uint32_t ODR; // Port output data register
volatile uint32_t BSRR; // Port bit set/reset register
volatile uint32_t LCKR; // Port configuration lock register
volatile uint32_t AFRL[2]; // Alternative function low register
volatile uint32_t AFRH[2]; // Alternative function high register
};
#define GPIO_BASE_ADDR (0x40020000U)
#define GPIO_PORT_OFFSET (0x400U)
#define GPIO(port) ((struct gpio*)(uintptr_t)(GPIO_BASE_ADDR + (GPIO_PORT_OFFSET * port)))
#define BIT(x) (1 << x)
// Create a 16bit number from a port and pin
#define PIN(port, num) ((((port) - 'A') << 8) | num)
// get the lower byte from a PIN
#define PINNUM(pin) (pin & 0b1111)
// get the upper byte from a PIN
#define PINPORT(pin) (pin >> 8)
typedef enum {
GPIO_MODE_INPUT,
GPIO_MODE_OUTPUT,
GPIO_MODE_AF,
GPIO_MODE_ANALOG
} GPIO_MODE;
void gpio_set_mode(uint16_t pin, GPIO_MODE mode);
void gpio_write(uint16_t pin, bool val);
#endif