From dcd24b56c51b2450e2bcc72a07c977b2c7e83f6f Mon Sep 17 00:00:00 2001 From: David Lenfesty Date: Mon, 2 Dec 2019 16:49:39 -0700 Subject: [PATCH] Done? --- final_project/sd_reader/Makefile | 2 +- final_project/sd_reader/main.c | 52 +- final_project/sd_reader/main.h | 1 + final_project/sd_reader/sd-reader.map | 677 +++++++++++++------------- final_project/sd_reader/sd-reader.out | Bin 49304 -> 60664 bytes final_project/sd_reader/wav.h | 8 +- 6 files changed, 401 insertions(+), 339 deletions(-) diff --git a/final_project/sd_reader/Makefile b/final_project/sd_reader/Makefile index f9c5d2b..bcfd475 100644 --- a/final_project/sd_reader/Makefile +++ b/final_project/sd_reader/Makefile @@ -16,7 +16,7 @@ OBJCOPY := avr-objcopy SIZE := avr-size -A DOXYGEN := doxygen -CFLAGS := -Werror -Wall -pedantic -mmcu=$(MCU) -std=c99 -g -Os -DF_CPU=$(MCU_FREQ) +CFLAGS := -Werror -Wall -pedantic -mmcu=$(MCU) -std=c99 -g -O3 -DF_CPU=$(MCU_FREQ) all: $(HEX) diff --git a/final_project/sd_reader/main.c b/final_project/sd_reader/main.c index 101c523..cc71de1 100644 --- a/final_project/sd_reader/main.c +++ b/final_project/sd_reader/main.c @@ -11,6 +11,8 @@ #define DEBUG 1 +const char* DATA_CHUNK_ID = "data"; + /* ---- Control Flow Variables ---- */ // Commands uint8_t cmd_depth = 0; @@ -22,7 +24,9 @@ uint16_t song_buf[2][SONG_BUF_LEN]; //! Buffers to play song from uint8_t song_position; //! where we are in the buffers bool song_buf_select; //! which buffer we're using bool song_selected; //! Flag to say we just selected the song, read data in -int8_t song_selection = -1; //! ID of selected song +int8_t song_selection = -1; //! ID of selected song +uint32_t song_len; +uint32_t song_read_position; typedef struct { @@ -155,9 +159,55 @@ int main() if (song_position > 128 || song_selected) { // Select opposite buffer bool read_song_buf = !song_buf_select; + + // Need to get past the metadata + if (song_selected) { + // Seek beginning of file + fat_seek_file(songs[song_selection].fd, 0, FAT_SEEK_SET); + + // Iterate until we get the data + bool is_data = false; + ck_hdr_t header; + while (!is_data) { + fat_read_file(songs[song_selection].fd, + (uint8_t* ) &header, sizeof(ck_hdr_t)); + + // Ghetto strcmp + for (uint8_t i = 0; i < 4; i++) { + if (DATA_CHUNK_ID[i] == header.ckID[i]) { + is_data = true; + } else { + break; + } + } + + // If this is metadata, skip the chunk + int32_t* offset = NULL; + *offset = header.cksize; + if (!is_data) { + fat_seek_file(songs[song_selection].fd, + offset, FAT_SEEK_CUR); + } + } + + // We are now at the actual data + // divide by two to get uint16 + song_len = header.cksize / 2; + song_read_position = 0; + } + + // hit end of song, no more to read + if (song_read_position == song_len) { + song_read_position = 0; + TIFR0 &= ~(1 << OCF0A); + return 0; + } + + // Read in file // 512 bytes to read, 256 samples fat_read_file(songs[song_selection].fd, (uint8_t*) song_buf[read_song_buf], 512); + song_read_position += 256; // If we selected the song, make sure we start playing from the right buffer if (song_selected) { diff --git a/final_project/sd_reader/main.h b/final_project/sd_reader/main.h index 57cbfa9..9540d36 100644 --- a/final_project/sd_reader/main.h +++ b/final_project/sd_reader/main.h @@ -14,6 +14,7 @@ #include "fifo.h" #include "comms.h" #include "periph.h" +#include "wav.h" #define MAX_SONG_NUM 9 #define SONG_BUF_LEN 256 // NO MORE THAN 256!!! diff --git a/final_project/sd_reader/sd-reader.map b/final_project/sd_reader/sd-reader.map index 000f7ca..abdd481 100644 --- a/final_project/sd_reader/sd-reader.map +++ b/final_project/sd_reader/sd-reader.map @@ -40,10 +40,10 @@ Archive member included to satisfy reference by file (symbol) /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) (__umulhisi3) /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o) main.o (malloc) +/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memcpy.o) + main.o (memcpy) /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o) fat.o (strchr) -/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strcpy.o) - main.o (strcpy) /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o) fat.o (strncmp) @@ -54,7 +54,11 @@ cmd_state 0x1 main.o song_buf 0x400 main.o song_buf_select 0x1 main.o __brkval 0x2 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o) +song_len 0x4 main.o +ck_fmt_t 0x2a periph.o +song_read_position 0x4 main.o song_selected 0x1 main.o +ck_master_t 0x4 periph.o songs 0x24 main.o song_position 0x1 main.o __flp 0x2 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o) @@ -186,7 +190,7 @@ END GROUP .rela.plt *(.rela.plt) -.text 0x0000000000000000 0x2884 +.text 0x0000000000000000 0x3948 *(.vectors) .vectors 0x0000000000000000 0x68 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o 0x0000000000000000 __vectors @@ -271,356 +275,356 @@ END GROUP 0x00000000000000c0 __vector_10 0x00000000000000c0 __vector_16 0x00000000000000c0 __vector_20 - .text 0x00000000000000c4 0x144 partition.o + .text 0x00000000000000c4 0x16e partition.o 0x00000000000000c4 partition_open - 0x00000000000001f8 partition_close - .text 0x0000000000000208 0x868 sd_raw.o - 0x0000000000000296 sd_raw_available - 0x00000000000002a2 sd_raw_init - 0x0000000000000420 sd_raw_locked - 0x000000000000042e sd_raw_read - 0x00000000000005ae sd_raw_read_interval - 0x000000000000080c sd_raw_get_info - .text 0x0000000000000a70 0x28 byteordering.o - 0x0000000000000a70 read16 - 0x0000000000000a78 read32 - 0x0000000000000a84 write16 - 0x0000000000000a8c write32 - .text 0x0000000000000a98 0x120 periph.o - 0x0000000000000a98 __vector_18 - 0x0000000000000ae8 __vector_14 - 0x0000000000000b76 gpio_init - 0x0000000000000b8a timer_init - 0x0000000000000b98 usart_init - .text 0x0000000000000bb8 0x14fa fat.o - 0x0000000000001082 fat_open - 0x0000000000001538 fat_close - 0x0000000000001544 fat_open_file - 0x00000000000015c0 fat_close_file - 0x00000000000015cc fat_read_file - 0x000000000000199e fat_seek_file - 0x0000000000001a2e fat_open_dir - 0x0000000000001a9e fat_close_dir - 0x0000000000001aaa fat_reset_dir - 0x0000000000001acc fat_read_dir - 0x0000000000001d96 fat_get_dir_entry_of_path - 0x0000000000001ea8 fat_get_fs_size - 0x0000000000001f16 fat_get_fs_free - .text 0x00000000000020b2 0x0 main.o - .text 0x00000000000020b2 0xb6 fifo.o - 0x00000000000020b2 fifo_init - 0x00000000000020c4 fifo_pop - 0x0000000000002118 fifo_push - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o) - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o) - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o) - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o) - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o) - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o) - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o) - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o) - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o) - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o) - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o) - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o) - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strcpy.o) - .text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o) - 0x0000000000002168 . = ALIGN (0x2) + 0x0000000000000222 partition_close + .text 0x0000000000000232 0xb18 sd_raw.o + 0x00000000000003cc sd_raw_init + 0x00000000000005b6 sd_raw_available + 0x00000000000005c2 sd_raw_locked + 0x00000000000005d0 sd_raw_read + 0x000000000000079e sd_raw_read_interval + 0x0000000000000aae sd_raw_get_info + .text 0x0000000000000d4a 0x28 byteordering.o + 0x0000000000000d4a read16 + 0x0000000000000d52 read32 + 0x0000000000000d5e write16 + 0x0000000000000d66 write32 + .text 0x0000000000000d72 0x120 periph.o + 0x0000000000000d72 __vector_18 + 0x0000000000000dc2 __vector_14 + 0x0000000000000e50 gpio_init + 0x0000000000000e64 timer_init + 0x0000000000000e72 usart_init + .text 0x0000000000000e92 0x20e8 fat.o + 0x00000000000016ee fat_open + 0x0000000000001bec fat_close + 0x0000000000001bf8 fat_get_dir_entry_of_path + 0x00000000000022ca fat_open_file + 0x0000000000002346 fat_close_file + 0x0000000000002352 fat_read_file + 0x0000000000002730 fat_seek_file + 0x00000000000027fa fat_open_dir + 0x000000000000286e fat_close_dir + 0x000000000000287a fat_read_dir + 0x0000000000002d10 fat_reset_dir + 0x0000000000002d32 fat_get_fs_size + 0x0000000000002d9a fat_get_fs_free + .text 0x0000000000002f7a 0x0 main.o + .text 0x0000000000002f7a 0xbe fifo.o + 0x0000000000002f7a fifo_init + 0x0000000000002f8c fifo_pop + 0x0000000000002fe4 fifo_push + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o) + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o) + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o) + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o) + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o) + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o) + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o) + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o) + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o) + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o) + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o) + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memcpy.o) + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o) + .text 0x0000000000003038 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o) + 0x0000000000003038 . = ALIGN (0x2) *(.text.*) - .text.startup 0x0000000000002168 0x1ee main.o - 0x0000000000002168 main + .text.startup 0x0000000000003038 0x3de main.o + 0x0000000000003038 main .text.libgcc.mul - 0x0000000000002356 0x20 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) - 0x0000000000002356 __mulsi3 + 0x0000000000003416 0x20 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) + 0x0000000000003416 __mulsi3 .text.libgcc.div - 0x0000000000002376 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) - .text.libgcc 0x0000000000002376 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) + 0x0000000000003436 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) + .text.libgcc 0x0000000000003436 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) .text.libgcc.prologue - 0x0000000000002376 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) + 0x0000000000003436 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) .text.libgcc.builtins - 0x0000000000002376 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) + 0x0000000000003436 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) .text.libgcc.fmul - 0x0000000000002376 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) + 0x0000000000003436 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) .text.libgcc.fixed - 0x0000000000002376 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) + 0x0000000000003436 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) .text.libgcc.mul - 0x0000000000002376 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) + 0x0000000000003436 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) .text.libgcc.div - 0x0000000000002376 0x28 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) - 0x0000000000002376 __udivmodhi4 - .text.libgcc 0x000000000000239e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) + 0x0000000000003436 0x28 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) + 0x0000000000003436 __udivmodhi4 + .text.libgcc 0x000000000000345e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) .text.libgcc.prologue - 0x000000000000239e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) + 0x000000000000345e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) .text.libgcc.builtins - 0x000000000000239e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) + 0x000000000000345e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) .text.libgcc.fmul - 0x000000000000239e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) + 0x000000000000345e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) .text.libgcc.fixed - 0x000000000000239e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) + 0x000000000000345e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) .text.libgcc.mul - 0x000000000000239e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) + 0x000000000000345e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) .text.libgcc.div - 0x000000000000239e 0x44 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) - 0x000000000000239e __udivmodsi4 - .text.libgcc 0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) + 0x000000000000345e 0x44 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) + 0x000000000000345e __udivmodsi4 + .text.libgcc 0x00000000000034a2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) .text.libgcc.prologue - 0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) + 0x00000000000034a2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) .text.libgcc.builtins - 0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) + 0x00000000000034a2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) .text.libgcc.fmul - 0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) + 0x00000000000034a2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) .text.libgcc.fixed - 0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) + 0x00000000000034a2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) .text.libgcc.mul - 0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) + 0x00000000000034a2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) .text.libgcc.div - 0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) - .text.libgcc 0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) + 0x00000000000034a2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) + .text.libgcc 0x00000000000034a2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) .text.libgcc.prologue - 0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) + 0x00000000000034a2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) .text.libgcc.builtins - 0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) + 0x00000000000034a2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) .text.libgcc.fmul - 0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) + 0x00000000000034a2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) .text.libgcc.fixed - 0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) + 0x00000000000034a2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) .text.libgcc.mul - 0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) + 0x00000000000034a2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) .text.libgcc.div - 0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) - .text.libgcc 0x00000000000023e2 0xc /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) - 0x00000000000023e2 __tablejump2__ + 0x00000000000034a2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) + .text.libgcc 0x00000000000034a2 0xc /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) + 0x00000000000034a2 __tablejump2__ .text.libgcc.prologue - 0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) + 0x00000000000034ae 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) .text.libgcc.builtins - 0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) + 0x00000000000034ae 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) .text.libgcc.fmul - 0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) + 0x00000000000034ae 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) .text.libgcc.fixed - 0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) + 0x00000000000034ae 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) .text.libgcc.mul - 0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) + 0x00000000000034ae 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) .text.libgcc.div - 0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) - .text.libgcc 0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) + 0x00000000000034ae 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) + .text.libgcc 0x00000000000034ae 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) .text.libgcc.prologue - 0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) + 0x00000000000034ae 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) .text.libgcc.builtins - 0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) + 0x00000000000034ae 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) .text.libgcc.fmul - 0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) + 0x00000000000034ae 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) .text.libgcc.fixed - 0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) + 0x00000000000034ae 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) .text.libgcc.mul - 0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) + 0x00000000000034ae 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) .text.libgcc.div - 0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) - .text.libgcc 0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) + 0x00000000000034ae 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) + .text.libgcc 0x00000000000034ae 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) .text.libgcc.prologue - 0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) + 0x00000000000034ae 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) .text.libgcc.builtins - 0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) + 0x00000000000034ae 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) .text.libgcc.fmul - 0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) + 0x00000000000034ae 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) .text.libgcc.fixed - 0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) + 0x00000000000034ae 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) .text.libgcc.mul - 0x00000000000023ee 0x16 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) - 0x00000000000023ee __muluhisi3 + 0x00000000000034ae 0x16 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) + 0x00000000000034ae __muluhisi3 .text.libgcc.div - 0x0000000000002404 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) - .text.libgcc 0x0000000000002404 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) + 0x00000000000034c4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) + .text.libgcc 0x00000000000034c4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) .text.libgcc.prologue - 0x0000000000002404 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) + 0x00000000000034c4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) .text.libgcc.builtins - 0x0000000000002404 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) + 0x00000000000034c4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) .text.libgcc.fmul - 0x0000000000002404 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) + 0x00000000000034c4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) .text.libgcc.fixed - 0x0000000000002404 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) + 0x00000000000034c4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) .text.libgcc.mul - 0x0000000000002404 0xa0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o) - 0x0000000000002404 __muldi3 + 0x00000000000034c4 0xa0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o) + 0x00000000000034c4 __muldi3 .text.libgcc.div - 0x00000000000024a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o) - .text.libgcc 0x00000000000024a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o) + 0x0000000000003564 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o) + .text.libgcc 0x0000000000003564 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o) .text.libgcc.prologue - 0x00000000000024a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o) + 0x0000000000003564 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o) .text.libgcc.builtins - 0x00000000000024a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o) + 0x0000000000003564 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o) .text.libgcc.fmul - 0x00000000000024a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o) + 0x0000000000003564 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o) .text.libgcc.fixed - 0x00000000000024a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o) + 0x0000000000003564 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o) .text.libgcc.mul - 0x00000000000024a4 0x12 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o) - 0x00000000000024a4 __muldi3_6 + 0x0000000000003564 0x12 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o) + 0x0000000000003564 __muldi3_6 .text.libgcc.div - 0x00000000000024b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o) - .text.libgcc 0x00000000000024b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o) + 0x0000000000003576 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o) + .text.libgcc 0x0000000000003576 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o) .text.libgcc.prologue - 0x00000000000024b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o) + 0x0000000000003576 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o) .text.libgcc.builtins - 0x00000000000024b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o) + 0x0000000000003576 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o) .text.libgcc.fmul - 0x00000000000024b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o) + 0x0000000000003576 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o) .text.libgcc.fixed - 0x00000000000024b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o) + 0x0000000000003576 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o) .text.libgcc.mul - 0x00000000000024b6 0x56 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o) - 0x00000000000024b6 __umulsidi3 - 0x00000000000024b8 __umulsidi3_helper + 0x0000000000003576 0x56 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o) + 0x0000000000003576 __umulsidi3 + 0x0000000000003578 __umulsidi3_helper .text.libgcc.div - 0x000000000000250c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o) - .text.libgcc 0x000000000000250c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o) + 0x00000000000035cc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o) + .text.libgcc 0x00000000000035cc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o) .text.libgcc.prologue - 0x000000000000250c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o) + 0x00000000000035cc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o) .text.libgcc.builtins - 0x000000000000250c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o) + 0x00000000000035cc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o) .text.libgcc.fmul - 0x000000000000250c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o) + 0x00000000000035cc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o) .text.libgcc.fixed - 0x000000000000250c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o) + 0x00000000000035cc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o) .text.libgcc.mul - 0x000000000000250c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o) + 0x00000000000035cc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o) .text.libgcc.div - 0x000000000000250c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o) - .text.libgcc 0x000000000000250c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o) + 0x00000000000035cc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o) + .text.libgcc 0x00000000000035cc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o) .text.libgcc.prologue - 0x000000000000250c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o) + 0x00000000000035cc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o) .text.libgcc.builtins - 0x000000000000250c 0x32 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o) - 0x000000000000250c __ashldi3 + 0x00000000000035cc 0x32 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o) + 0x00000000000035cc __ashldi3 .text.libgcc.fmul - 0x000000000000253e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o) + 0x00000000000035fe 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o) .text.libgcc.fixed - 0x000000000000253e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o) + 0x00000000000035fe 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o) .text.libgcc.mul - 0x000000000000253e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o) + 0x00000000000035fe 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o) .text.libgcc.div - 0x000000000000253e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o) - .text.libgcc 0x000000000000253e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o) + 0x00000000000035fe 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o) + .text.libgcc 0x00000000000035fe 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o) .text.libgcc.prologue - 0x000000000000253e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o) + 0x00000000000035fe 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o) .text.libgcc.builtins - 0x000000000000253e 0x3c /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o) - 0x000000000000253e __ashrdi3 - 0x0000000000002542 __lshrdi3 + 0x00000000000035fe 0x3c /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o) + 0x00000000000035fe __ashrdi3 + 0x0000000000003602 __lshrdi3 .text.libgcc.fmul - 0x000000000000257a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o) + 0x000000000000363a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o) .text.libgcc.fixed - 0x000000000000257a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o) + 0x000000000000363a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o) .text.libgcc.mul - 0x000000000000257a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o) + 0x000000000000363a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o) .text.libgcc.div - 0x000000000000257a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o) - .text.libgcc 0x000000000000257a 0x12 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o) - 0x000000000000257a __adddi3 + 0x000000000000363a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o) + .text.libgcc 0x000000000000363a 0x12 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o) + 0x000000000000363a __adddi3 .text.libgcc.prologue - 0x000000000000258c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o) + 0x000000000000364c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o) .text.libgcc.builtins - 0x000000000000258c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o) + 0x000000000000364c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o) .text.libgcc.fmul - 0x000000000000258c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o) + 0x000000000000364c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o) .text.libgcc.fixed - 0x000000000000258c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o) + 0x000000000000364c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o) .text.libgcc.mul - 0x000000000000258c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o) + 0x000000000000364c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o) .text.libgcc.div - 0x000000000000258c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o) - .text.libgcc 0x000000000000258c 0x18 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o) - 0x000000000000258c __adddi3_s8 + 0x000000000000364c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o) + .text.libgcc 0x000000000000364c 0x18 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o) + 0x000000000000364c __adddi3_s8 .text.libgcc.prologue - 0x00000000000025a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o) + 0x0000000000003664 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o) .text.libgcc.builtins - 0x00000000000025a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o) + 0x0000000000003664 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o) .text.libgcc.fmul - 0x00000000000025a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o) + 0x0000000000003664 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o) .text.libgcc.fixed - 0x00000000000025a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o) + 0x0000000000003664 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o) .text.libgcc.mul - 0x00000000000025a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o) + 0x0000000000003664 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o) .text.libgcc.div - 0x00000000000025a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o) - .text.libgcc 0x00000000000025a4 0x12 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o) - 0x00000000000025a4 __subdi3 + 0x0000000000003664 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o) + .text.libgcc 0x0000000000003664 0x12 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o) + 0x0000000000003664 __subdi3 .text.libgcc.prologue - 0x00000000000025b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o) + 0x0000000000003676 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o) .text.libgcc.builtins - 0x00000000000025b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o) + 0x0000000000003676 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o) .text.libgcc.fmul - 0x00000000000025b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o) + 0x0000000000003676 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o) .text.libgcc.fixed - 0x00000000000025b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o) + 0x0000000000003676 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o) .text.libgcc.mul - 0x00000000000025b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o) + 0x0000000000003676 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o) .text.libgcc.div - 0x00000000000025b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o) - .text.libgcc 0x00000000000025b6 0x12 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o) - 0x00000000000025b6 __cmpdi2 + 0x0000000000003676 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o) + .text.libgcc 0x0000000000003676 0x12 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o) + 0x0000000000003676 __cmpdi2 .text.libgcc.prologue - 0x00000000000025c8 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o) + 0x0000000000003688 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o) .text.libgcc.builtins - 0x00000000000025c8 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o) + 0x0000000000003688 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o) .text.libgcc.fmul - 0x00000000000025c8 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o) + 0x0000000000003688 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o) .text.libgcc.fixed - 0x00000000000025c8 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o) + 0x0000000000003688 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o) .text.libgcc.mul - 0x00000000000025c8 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o) + 0x0000000000003688 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o) .text.libgcc.div - 0x00000000000025c8 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o) - .text.libgcc 0x00000000000025c8 0x18 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o) - 0x00000000000025c8 __cmpdi2_s8 + 0x0000000000003688 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o) + .text.libgcc 0x0000000000003688 0x18 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o) + 0x0000000000003688 __cmpdi2_s8 .text.libgcc.prologue - 0x00000000000025e0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o) + 0x00000000000036a0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o) .text.libgcc.builtins - 0x00000000000025e0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o) + 0x00000000000036a0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o) .text.libgcc.fmul - 0x00000000000025e0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o) + 0x00000000000036a0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o) .text.libgcc.fixed - 0x00000000000025e0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o) + 0x00000000000036a0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o) .text.libgcc.mul - 0x00000000000025e0 0x1e /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) - 0x00000000000025e0 __umulhisi3 + 0x00000000000036a0 0x1e /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) + 0x00000000000036a0 __umulhisi3 .text.libgcc.div - 0x00000000000025fe 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) - .text.libgcc 0x00000000000025fe 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) + 0x00000000000036be 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) + .text.libgcc 0x00000000000036be 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) .text.libgcc.prologue - 0x00000000000025fe 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) + 0x00000000000036be 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) .text.libgcc.builtins - 0x00000000000025fe 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) + 0x00000000000036be 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) .text.libgcc.fmul - 0x00000000000025fe 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) + 0x00000000000036be 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) .text.libgcc.fixed - 0x00000000000025fe 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) + 0x00000000000036be 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) .text.avr-libc - 0x00000000000025fe 0x242 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o) - 0x00000000000025fe malloc - 0x000000000000272e free + 0x00000000000036be 0x242 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o) + 0x00000000000036be malloc + 0x00000000000037ee free .text.avr-libc - 0x0000000000002840 0x16 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o) - 0x0000000000002840 strchr + 0x0000000000003900 0x12 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memcpy.o) + 0x0000000000003900 memcpy .text.avr-libc - 0x0000000000002856 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strcpy.o) - 0x0000000000002856 strcpy + 0x0000000000003912 0x16 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o) + 0x0000000000003912 strchr .text.avr-libc - 0x0000000000002864 0x1c /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o) - 0x0000000000002864 strncmp - 0x0000000000002880 . = ALIGN (0x2) + 0x0000000000003928 0x1c /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o) + 0x0000000000003928 strncmp + 0x0000000000003944 . = ALIGN (0x2) *(.fini9) - .fini9 0x0000000000002880 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) - 0x0000000000002880 exit - 0x0000000000002880 _exit + .fini9 0x0000000000003944 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) + 0x0000000000003944 exit + 0x0000000000003944 _exit *(.fini9) *(.fini8) *(.fini8) @@ -639,11 +643,11 @@ END GROUP *(.fini1) *(.fini1) *(.fini0) - .fini0 0x0000000000002880 0x4 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) + .fini0 0x0000000000003944 0x4 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) *(.fini0) - 0x0000000000002884 _etext = . + 0x0000000000003948 _etext = . -.data 0x0000000000800100 0x16 load address 0x0000000000002884 +.data 0x0000000000800100 0x1e load address 0x0000000000003948 0x0000000000800100 PROVIDE (__data_start, .) *(.data) .data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o @@ -652,103 +656,110 @@ END GROUP .data 0x0000000000800100 0x0 byteordering.o .data 0x0000000000800100 0x0 periph.o .data 0x0000000000800100 0x0 fat.o - .data 0x0000000000800100 0x1 main.o + .data 0x0000000000800100 0x3 main.o 0x0000000000800100 song_selection - .data 0x0000000000800101 0x0 fifo.o - .data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) - .data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) - .data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) - .data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) - .data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) - .data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) - .data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) - .data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) - .data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o) - .data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o) - .data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o) - .data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o) - .data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o) - .data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o) - .data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o) - .data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o) - .data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o) - .data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o) - .data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) - .data 0x0000000000800101 0x6 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o) - 0x0000000000800101 __malloc_heap_end - 0x0000000000800103 __malloc_heap_start - 0x0000000000800105 __malloc_margin - .data 0x0000000000800107 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o) - .data 0x0000000000800107 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strcpy.o) - .data 0x0000000000800107 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o) + 0x0000000000800101 DATA_CHUNK_ID + .data 0x0000000000800103 0x0 fifo.o + .data 0x0000000000800103 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) + .data 0x0000000000800103 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) + .data 0x0000000000800103 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) + .data 0x0000000000800103 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) + .data 0x0000000000800103 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) + .data 0x0000000000800103 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) + .data 0x0000000000800103 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) + .data 0x0000000000800103 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) + .data 0x0000000000800103 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o) + .data 0x0000000000800103 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o) + .data 0x0000000000800103 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o) + .data 0x0000000000800103 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o) + .data 0x0000000000800103 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o) + .data 0x0000000000800103 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o) + .data 0x0000000000800103 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o) + .data 0x0000000000800103 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o) + .data 0x0000000000800103 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o) + .data 0x0000000000800103 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o) + .data 0x0000000000800103 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) + .data 0x0000000000800103 0x6 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o) + 0x0000000000800103 __malloc_heap_end + 0x0000000000800105 __malloc_heap_start + 0x0000000000800107 __malloc_margin + .data 0x0000000000800109 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memcpy.o) + .data 0x0000000000800109 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o) + .data 0x0000000000800109 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o) *(.data*) *(.rodata) - .rodata 0x0000000000800107 0xd fat.o + .rodata 0x0000000000800109 0xd fat.o *(.rodata*) .rodata.str1.1 - 0x0000000000800114 0x2 main.o + 0x0000000000800116 0x7 main.o *(.gnu.linkonce.d*) - 0x0000000000800116 . = ALIGN (0x2) - 0x0000000000800116 _edata = . - 0x0000000000800116 PROVIDE (__data_end, .) + 0x000000000080011e . = ALIGN (0x2) + *fill* 0x000000000080011d 0x1 + 0x000000000080011e _edata = . + 0x000000000080011e PROVIDE (__data_end, .) -.bss 0x0000000000800116 0x53c - 0x0000000000800116 PROVIDE (__bss_start, .) +.bss 0x000000000080011e 0x572 + 0x000000000080011e PROVIDE (__bss_start, .) *(.bss) - .bss 0x0000000000800116 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o - .bss 0x0000000000800116 0x11 partition.o - .bss 0x0000000000800127 0x1 sd_raw.o - .bss 0x0000000000800128 0x0 byteordering.o - .bss 0x0000000000800128 0x0 periph.o - .bss 0x0000000000800128 0xe3 fat.o - .bss 0x000000000080020b 0x1 main.o - 0x000000000080020b cmd_depth - .bss 0x000000000080020c 0x1a fifo.o - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o) - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o) - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o) - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o) - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o) - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o) - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o) - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o) - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o) - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o) - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o) - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o) - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strcpy.o) - .bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o) + .bss 0x000000000080011e 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o + .bss 0x000000000080011e 0x11 partition.o + .bss 0x000000000080012f 0x1 sd_raw.o + .bss 0x0000000000800130 0x0 byteordering.o + .bss 0x0000000000800130 0x0 periph.o + .bss 0x0000000000800130 0xe3 fat.o + .bss 0x0000000000800213 0x1 main.o + 0x0000000000800213 cmd_depth + .bss 0x0000000000800214 0x1a fifo.o + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o) + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o) + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o) + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o) + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o) + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o) + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o) + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o) + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o) + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o) + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o) + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memcpy.o) + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o) + .bss 0x000000000080022e 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o) *(.bss*) *(COMMON) - COMMON 0x0000000000800226 0x428 main.o - 0x0000000000800226 cmd_state - 0x0000000000800227 song_buf - 0x0000000000800627 song_buf_select - 0x0000000000800628 song_selected - 0x0000000000800629 songs - 0x000000000080064d song_position - COMMON 0x000000000080064e 0x4 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o) - 0x000000000080064e __brkval - 0x0000000000800650 __flp - 0x0000000000800652 PROVIDE (__bss_end, .) - 0x0000000000002884 __data_load_start = LOADADDR (.data) - 0x000000000000289a __data_load_end = (__data_load_start + SIZEOF (.data)) + COMMON 0x000000000080022e 0x2e periph.o + 0x000000000080022e ck_fmt_t + 0x0000000000800258 ck_master_t + COMMON 0x000000000080025c 0x430 main.o + 0x000000000080025c cmd_state + 0x000000000080025d song_buf + 0x000000000080065d song_buf_select + 0x000000000080065e song_len + 0x0000000000800662 song_read_position + 0x0000000000800666 song_selected + 0x0000000000800667 songs + 0x000000000080068b song_position + COMMON 0x000000000080068c 0x4 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o) + 0x000000000080068c __brkval + 0x000000000080068e __flp + 0x0000000000800690 PROVIDE (__bss_end, .) + 0x0000000000003948 __data_load_start = LOADADDR (.data) + 0x0000000000003966 __data_load_end = (__data_load_start + SIZEOF (.data)) -.noinit 0x0000000000800652 0x0 +.noinit 0x0000000000800690 0x0 [!provide] PROVIDE (__noinit_start, .) *(.noinit*) [!provide] PROVIDE (__noinit_end, .) - 0x0000000000800652 _end = . - 0x0000000000800652 PROVIDE (__heap_start, .) + 0x0000000000800690 _end = . + 0x0000000000800690 PROVIDE (__heap_start, .) .eeprom 0x0000000000810000 0x0 *(.eeprom*) @@ -769,25 +780,25 @@ END GROUP .user_signatures *(.user_signatures*) -.stab 0x0000000000000000 0x4ab8 +.stab 0x0000000000000000 0x5ff4 *(.stab) - .stab 0x0000000000000000 0x6e4 partition.o - .stab 0x00000000000006e4 0x129c sd_raw.o - 0x144c (size before relaxing) - .stab 0x0000000000001980 0x414 byteordering.o + .stab 0x0000000000000000 0x720 partition.o + .stab 0x0000000000000720 0x1980 sd_raw.o + 0x1b30 (size before relaxing) + .stab 0x00000000000020a0 0x414 byteordering.o 0x594 (size before relaxing) - .stab 0x0000000000001d94 0x69c periph.o - 0x8f4 (size before relaxing) - .stab 0x0000000000002430 0x1adc fat.o - 0x1d28 (size before relaxing) - .stab 0x0000000000003f0c 0x750 main.o - 0xab0 (size before relaxing) - .stab 0x000000000000465c 0x45c fifo.o - 0x5f4 (size before relaxing) + .stab 0x00000000000024b4 0x75c periph.o + 0x9b4 (size before relaxing) + .stab 0x0000000000002c10 0x25f8 fat.o + 0x2844 (size before relaxing) + .stab 0x0000000000005208 0x978 main.o + 0xd5c (size before relaxing) + .stab 0x0000000000005b80 0x474 fifo.o + 0x60c (size before relaxing) -.stabstr 0x0000000000000000 0x2638 +.stabstr 0x0000000000000000 0x2c10 *(.stabstr) - .stabstr 0x0000000000000000 0x2638 partition.o + .stabstr 0x0000000000000000 0x2c10 partition.o .stab.excl *(.stab.excl) diff --git a/final_project/sd_reader/sd-reader.out b/final_project/sd_reader/sd-reader.out index c550b5bfc848b6aba512fa309b3f815043740e55..45cd4849df43ce0b8b7db89f7760572684534ddb 100755 GIT binary patch literal 60664 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 literal 49304 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𝔘JW*Eq1A$ZYH0l_L3=U53hY~?I$=xy0A8)wCj4kmweoDUNAkl zke_k??0&QBiLj5>y}IrVoM1R#r1F%t@6HW}Hqe>J$FlTKeYAhiu-tCR_|Yq=wUS!j zd@>LWgr02d#7OwOV^nhhX=VMl_TSWFM|j53+)r%MnY=4;#APA9f(@NZ4aI|Drl< zth^7a>`$zN`B<*Zv{TLvY^1huyDQx^9}H~zK9JT~sn7Y~yZnaQ+{zV|^L*69ck?RV z2Wz@i`%F8Hyk@>@!($tcZg_9QmmAJ)V0BS-G?wS_TlrtG4hi$q*f;tWss+_>RS$3Y zz}2Hyue#g|Pu^3Ul_{P{YeACpuGnoTv*+!+efbqQPoe!lmY@37u6B?0d|}=Gb+4}e zX!T27-wFF@?W=1mg?H0rP<`LQ{^K3ryV!rc>w6FTkN148K?*pu7Kk$8s_3MYe z(cjR>?z!1 z_m_FLdLHsT>uKkoSU;yeyZ(-PjY4zvgV9e#YrNNVnb+plHh*ceGq{1@&r2FQHC)*+ zyrIiOkq4p^QdXjSx%CbAHSBMA zp`q)6=!f3qRAy`M_A4xq5iF^zuG>@hWL-%^b;F*9CmSLUba_a7hVf_p-&clR74w}D zwK*2t)=-Z9&yb3-6~{1k+E+YRxpT;K4Go}uP)mK{L*L-~vGuFEc-tfd%j>sc^)t7< zI}r6^ef{D3cck}t-*OyM3=-Ubf$O&UlPhVT4urycl6#Uo}QpwXX&v ztj1T15mxK-VTAd7TQI`5__nG${GPjd>{4_#xqrY3!l%5lb~@kr%|r1I1`fx+vG3D; zkDLlU1ITM!Uw2>K**)j$Pe=R|eZJxBUb5n;EvWU@@wbcRQrHB`rr3aec_|L-@)%}s{86s?Y8K-oVL2yT(#qp&obx3 z53IvDus7%UW3U5Sgpp4gEc8zT&E?;mgk4ds=d<(b>8$%CR${x$@J!O=_XN`YPxHUS z+FjZ&6*8{&=btJFya`H7C+15Ho{s;f`!w!2yQ+It+orhA{tFnXEauF)MBg_(ehdFD zeg@yvp|a=qjprpj(4#4wp1O<*KFwc-oJH+DQNhM8{=HbEliZ|E<%28FQA%3-H`|}+ zrD%H?65MsGTiW0Bu(@MO*28edIm&FGqA=WODvNu%7y_scnu`U%a0VSd`J7{>)YGyU_=Spuy* z$&}_$X%+slyxXqs7&kq4xldIDw(s7!`v?C0nxFRmz<*ftGv1rm{DSu%*Zhk2f3Nus z@8{NBzASjl{tIUvom$dC}(0x?f)UcUhb&Uh-M%PWPn_u^X9I4a-f&cZ`_y$k?E??JaU6*y8 z*F|lL+!R)mQWQ}w>D>j<#nrn`=Rli9LtS-Q@0)Vt^GSxw{$$uy(Ozko`Rggoz9DsdXl-T zZ96=BJKh)-Fyp*D+~kSs;a_`7=owi)xW3t4+0V2(;r3wH=2Zz9!S?<&c>1w6VM=rT z7VfX#7FiVzo78WK^oE;)72&3)KugC7{x|u?c{|cjQ%E@eBS~15Ff+J1q5j7QYB%qH zz~}Zd9;_N*8{&VU_AKJ71E+TcaUE0)B5Q)&&UDLe}Ij=X=P)uqQ9-FU;dDSz#Wc7 z{qKy(x%sbYfl9`!17}QH>GV9E&U!mke~G7{18neoRsC&|(DnAlk2yVG=umwwik?dB z+Tq4CnB6-n+CPd{RBTwyLp`4DG4o^_KRwxcu**|zB7+b1cq+UsdTaEJHTCD*H5E0_ z@i%x_P2H*P@x=QZZ!dVii*AYD)#b4^pSSt3O-yiCkH^A45C1WIQS_bBl(&0z&bb9O z1vQlaUj8tDo;N}UJgjS@@3EY#3_C|QO-5(s%dq=SS z`ul_J*WDi&($wCJm}y6#eN(R)_tX0=NJ+zMC7#9{!3^cXlbQF>GlCu0qr49U`kK>B z|32`njt)G9Ar$QRa>NJGr=x$0K8WWuT8fdbaD5qZE_w@p0eVNpM&SNRW912WW8#|} zaeeeF(Z{31niFfoYED;^&cE`Hg>2I144&XV%#Yyd(0H!{r$CgaU-Qx)e+^$1?hW6L zdGlAH5tUC`kq%VOPn=>(IT7Blgo@x6N2%iuN48^*W1=I;(Wie{dUGQ^?{P-Yjn*vP zw&u}uG*9?`i9FxAnuSr$Ey1w#zK&$aB*%4*#dy|T?x+~j+-SwJsRwYzgBb&+p1uD~R!OEF7@;G$*oZ#!$l;WA` zF?lZY(B9#d;OZ_lZE~6;eTl)2IEnA*y9_7s{r$|FZj1EJwDs}#zC6*|EjXde>^5DS zx1kT7jL;Hx{*hi4JvG^;H-winzcv7tstB+F= zKSX=Hm0sGpjw%^YG8#LL8McJVG+W=nsm(E!X6!U9IDJa9#dv4fVk$Y}CQjv~HV=7f z+*2u)R-RsIQMA_GXX&SDxg%Y*oiqJ7KR!V6RA@r#Z%x=vjq@il!x%F!RSC zBnBXHvHx3fj`?Pn6KztOul3yI+0JRkY6^aZdkXKAyi`JVrv2J0U5>Yz*GxM&ikWIF zOWY-7EwU2TZeVi|mI}a9SNYHIUrN3znNm5g@@T|+(cg6WtxZNVc_k(18BTjFddhll z$+{A%O-Hepxy(oBM!)e-__;>f+eG>9=X9DGs(ns#f^Q&ZNYt+?-DdJrjUPdMcA`Ef zFly+Tt*3Hrm)^m$zQ@mP#ci!bANibLAenY~Eav1nC6=0=o{|vUSjj8g-MTfim}kzF z_1KD@e7?G+v4yc&wiw3E);9JIksUjA?%MMT2kt4-{YAz`*+%wbtUXW`Zaf~vC($)L z6L>6M6c*s+#*2bmeG%Sfz{d>uoB_u{s2gz#4;b*z20RTHF5QBIu}TAe#(@82z)@zM zf3yM5G2nay-fX~+81P#L{G$O!TXgvo4S1;mZ!=)O0S64&iu<5iy&ML7ivgD!@Dm1n z+JNo2RI14tXuvZJc)0=JXTX0q;2#XQTN_>GCE%4g{e=G2}0)H>CJ)Fw=S>RZKl}pYk0$+|1#Mt!$cNduAyXZ{~ zm%{nrC#&&t#{Qz>edufJg`DMDRw<`W&}R$!KLnmH@UH^r3mo5$^t@Bxn*>(cs7hev zmh~$F3l{OF=~e{?MEX#8M8zLk82b>|%|28T@UHO_LBrpGCzhoO-xc10u@vC0NWVhG zbYFY4iaPu8JdpDa7M-R3OHjY=VjiPZnuJaI&jelH{4pMjG%qiKnn>65qno zC7#A^lsKJjka#guEJX5em34En+t@>rXDL&9BJt$1!;+rQUXu8B_Oir<>~)EY*yj@8 z$u3Cz7Z!$Ib2seZhE%Ns`PFp#2;h~hCd3->4B+#iA4J|*Rxa?%z$w6Fe+uz<5f23? zTc-el*BfvZv#2pAt6>=GA~<0kbQcxZGKdy|bkN#s25^`O{RD{v*dTcaKTD;fYlyjw zcx(|m{_ng7!yx>3UQ_Jwzn#~}Uuk2G{1svHR}tuAs}zxJhyl-3@s-pE(ZRL6G!GJ{ zdGL0mx!H7)d%eKaOO>!o1NhYNgR0ED%NToE@Ha~?jfV&t?u0?J3h`9c=f4C@KED^} zZeR+Vq6n`L_!WVbd6@{B94j1WEW4G{n7RTu1=u*=iB18&OLHf{OAR=Wt1O`Bb8WoG zB9C!gcLh^_QPy3YFa`1_8g{a~4Ki04@L#z_aFY)Aa7?8lIGLMk@}11XAzB0~m*xcu zil%d=TuE}vSue6DiRr45PMu30g{S*jX%i|>W z@g#}2aD7hM&Qm1)Uhb551HV?{I!=01aIy#a90daJ*2RFJoR&f|I?%^!92r%=@o1ecpeErAYqcST$&QKVq{a{wKRZ;xC!9k|I6- zCGG5FXIP%(`HB@v{588n;&0hK5;w6jiQi#W5}#vRBtFj`koYH9P6Xc z?YLj!4*VYyNAUM0zKnk&ac3ToxEudQ;x_y{iS7Jni7(?OwRbpK58h7Vp1gy^y?IB8 z`*LlC>tt8rdoPM0C+mkBT^b(9<0T%%hf5rXC;J-D5S}7&JaMwwI zvcnwPWA=-RG3|*!IeKu zN&keuEb%}2D-xgNuS@&|e^=r!4Sn^rp|76dpG%%IhQ9h0ZOUK?!E=d!`3 zg$5pNo^rDBrUFU7#-#hnDJI=dPB&Fap6RA-2K;7$)=}Sq!-t?8kH=6z}@l7Vp zwoZ1V$)ehja9fENm~>yaz@+=PEJHuZHuaPIi%m%q=a}*&&NUTFoM&1tae--t0k4&~ z$W$S5v8h(#J56*ZN5RRKoAyb3x9MSt|7vq!R@vTWHqT1KH+V6f)?G%?l;I)qIDd#F^%|CH9*2@ls>f z+6(Jm^Lfd$#r(6x`^=gza}9h>;{P%0 zd$c#qZ6*Cpa|ekV&H6s;m{}k1Z=3aT{f;?a^1o+JkobLblEhoh!zDgt9w+hV<`jv) zFgt<6I?)`r-i#wf7A#+N)FK}1n|=8LRhN{;ViW-?+as3dNYZO74;4k(c@;1*hEE5>8c!c#p+Pohrqd$#U?o7c!?X!dr#RDXnA@ zor05Hs{nzg8gLp@S%iFTjMF$;jfCAo{`CSsCgfk=N z2IM^|u@=SniLUamFF@iOmjS;NjMN&TIZf2A8CDK+@uCZQQRGC?z6V`kJ z;ZLCh`2@oM^$ChGC!zt}3S|F%4yza<&_=h(?>&e87y8mF)o#CccKw~oGY*|pdj?0( ztJ`67=4RKZv!H$s+*{D62&p#+oF;IEz_ZlSbpB^R*L0xsaPm=qbRJG;>BK{U&bkTH zSvQ4U$_M+WDsy%cW1p$GHwGR((|U6H=|5?HcENv*{F7A?shZw zKL-B6T`BJh%EsmieDOJXIq0j9{wj2?5IlmN{as*n;De;q<%G&#mB84)4E%rXMrCzT zG8_1bpyk~Ho>+Js&7Y9J(y&u{BJy2r3}>5m;b%#X6J9Bf0D==oy`f!qu zVIu;`Uk5pF3;7cSrUa5tbPBDXDNj;}f_@FNs4*v=9BXqc$?u@jN&Xhd`9jE_DKI6G ze4jK*VTq6NwGSW6Hf3c*GBa$OB+o+IgA!-jjvDYQ z5@*@ol{nM(rNoPD-$n!mun|`0+0ox6d-eAj< z_+eYI#0PA501p!VaICGJYJb1_Iabg!Y~%yefZc4NO;v{xkJgt0z|@ZS2>xen*v5$9 z$Gg^!0bs4|2ya()pz)$%8ZTF15N?8;Sa#Y@SQ#&;g|AS?%V~QD@KK=gLOc}koZa9n zzBc%ZZwHef`2dUkiLp$p2dUC9(&umj-6Hf3W?Y7`4X?@RT7u+M>i1`@KwN{p`W-}s+hYi(S)andrCb7zLry; zPZD@49}hfD;AuPs_-28p^Hkts;1o7P+&x$?=xKZu=yiggE}maMA@D45-{4KbGn-!n z9twWEw0;!;)^v^qeiC|8png6Q>%lLOHgPnK;AGlNK=?|v

Yv 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