From b757be1314e51828a6a2ca2d62bd74dea4406f98 Mon Sep 17 00:00:00 2001 From: flo Date: Mon, 25 Sep 2017 23:35:01 +0200 Subject: [PATCH] Initial commit --- .cproject | 71 +++ .project | 27 ++ .settings/de.innot.avreclipse.core.prefs | 28 ++ Release/avr-blink.map | 434 +++++++++++++++++++ Release/avr-lib-uart.eep | 1 + Release/avr-lib-uart.elf | Bin 0 -> 4512 bytes Release/avr-lib-uart.hex | 57 +++ Release/avr-lib-uart.lss | 446 +++++++++++++++++++ Release/avr-lib-uart.map | 530 +++++++++++++++++++++++ Release/libs/led/led.d | 3 + Release/libs/led/led.o | Bin 0 -> 2416 bytes Release/libs/led/subdir.mk | 24 + Release/libs/uart/subdir.mk | 24 + Release/libs/uart/uart.d | 3 + Release/libs/uart/uart.o | Bin 0 -> 2676 bytes Release/main.d | 5 + Release/main.o | Bin 0 -> 1272 bytes Release/makefile | 91 ++++ Release/objects.mk | 8 + Release/sources.mk | 27 ++ Release/subdir.mk | 24 + libs/led/led.c | 62 +++ libs/led/led.h | 64 +++ libs/uart/uart.c | 125 ++++++ libs/uart/uart.h | 41 ++ main.c | 40 ++ 26 files changed, 2135 insertions(+) create mode 100644 .cproject create mode 100644 .project create mode 100644 .settings/de.innot.avreclipse.core.prefs create mode 100644 Release/avr-blink.map create mode 100644 Release/avr-lib-uart.eep create mode 100755 Release/avr-lib-uart.elf create mode 100644 Release/avr-lib-uart.hex create mode 100644 Release/avr-lib-uart.lss create mode 100644 Release/avr-lib-uart.map create mode 100644 Release/libs/led/led.d create mode 100644 Release/libs/led/led.o create mode 100644 Release/libs/led/subdir.mk create mode 100644 Release/libs/uart/subdir.mk create mode 100644 Release/libs/uart/uart.d create mode 100644 Release/libs/uart/uart.o create mode 100644 Release/main.d create mode 100644 Release/main.o create mode 100644 Release/makefile create mode 100644 Release/objects.mk create mode 100644 Release/sources.mk create mode 100644 Release/subdir.mk create mode 100644 libs/led/led.c create mode 100644 libs/led/led.h create mode 100644 libs/uart/uart.c create mode 100644 libs/uart/uart.h create mode 100644 main.c diff --git a/.cproject b/.cproject new file mode 100644 index 0000000..59d28ce --- /dev/null +++ b/.cproject @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..c9bf228 --- /dev/null +++ b/.project @@ -0,0 +1,27 @@ + + + avr-lib-uart + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + de.innot.avreclipse.core.avrnature + + diff --git a/.settings/de.innot.avreclipse.core.prefs b/.settings/de.innot.avreclipse.core.prefs new file mode 100644 index 0000000..56cb24c --- /dev/null +++ b/.settings/de.innot.avreclipse.core.prefs @@ -0,0 +1,28 @@ +avrtarget/ClockFrequency=8000000 +avrtarget/ExtRAMSize=0 +avrtarget/ExtendedRAM=false +avrtarget/MCUType=atmega168p +avrtarget/UseEEPROM=false +avrtarget/UseExtendedRAMforHeap=true +avrtarget/avrdude/BitBangDelay= +avrtarget/avrdude/Bitclock= +avrtarget/avrdude/EEPROMFile= +avrtarget/avrdude/EEPROMFromConfig=true +avrtarget/avrdude/FlashFile= +avrtarget/avrdude/FlashFromConfig=true +avrtarget/avrdude/Fuses/ByteValues=-1\:-1 +avrtarget/avrdude/Fuses/FileName= +avrtarget/avrdude/Fuses/MCUid=atmega8 +avrtarget/avrdude/Fuses/UseFile=false +avrtarget/avrdude/Fuses/Write=false +avrtarget/avrdude/NoChipErase=false +avrtarget/avrdude/NoSigCheck=true +avrtarget/avrdude/NoVerify=false +avrtarget/avrdude/NoWrite=false +avrtarget/avrdude/OtherOptions= +avrtarget/avrdude/ProgrammerID=programmerconfig.1 +avrtarget/avrdude/UseCounter=false +avrtarget/avrdude/WriteEEPROM=false +avrtarget/avrdude/WriteFlash=true +avrtarget/perConfig=false +eclipse.preferences.version=1 diff --git a/Release/avr-blink.map b/Release/avr-blink.map new file mode 100644 index 0000000..f135fff --- /dev/null +++ b/Release/avr-blink.map @@ -0,0 +1,434 @@ +Archive member included to satisfy reference by file (symbol) + +/usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o) + /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/crtatmega8.o (exit) +/usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o) + ./libs/led/led.o (__do_copy_data) + +Memory Configuration + +Name Origin Length Attributes +text 0x0000000000000000 0x0000000000002000 xr +data 0x0000000000800060 0x000000000000ffa0 rw !x +eeprom 0x0000000000810000 0x0000000000010000 rw !x +fuse 0x0000000000820000 0x0000000000000400 rw !x +lock 0x0000000000830000 0x0000000000000400 rw !x +signature 0x0000000000840000 0x0000000000000400 rw !x +user_signatures 0x0000000000850000 0x0000000000000400 rw !x +*default* 0x0000000000000000 0xffffffffffffffff + +Linker script and memory map + +LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/crtatmega8.o +LOAD ./libs/led/led.o +LOAD ./main.o +START GROUP +LOAD /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a +LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/libm.a +LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/libc.a +LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/libatmega8.a +END GROUP + 0x0000000000002000 __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x2000 + 0x000000000000ffa0 __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xffa0 + 0x0000000000010000 __EEPROM_REGION_LENGTH__ = DEFINED (__EEPROM_REGION_LENGTH__)?__EEPROM_REGION_LENGTH__:0x10000 + 0x0000000000000400 __FUSE_REGION_LENGTH__ = DEFINED (__FUSE_REGION_LENGTH__)?__FUSE_REGION_LENGTH__:0x400 + 0x0000000000000400 __LOCK_REGION_LENGTH__ = DEFINED (__LOCK_REGION_LENGTH__)?__LOCK_REGION_LENGTH__:0x400 + 0x0000000000000400 __SIGNATURE_REGION_LENGTH__ = DEFINED (__SIGNATURE_REGION_LENGTH__)?__SIGNATURE_REGION_LENGTH__:0x400 + 0x0000000000000400 __USER_SIGNATURE_REGION_LENGTH__ = DEFINED (__USER_SIGNATURE_REGION_LENGTH__)?__USER_SIGNATURE_REGION_LENGTH__:0x400 + +.hash + *(.hash) + +.dynsym + *(.dynsym) + +.dynstr + *(.dynstr) + +.gnu.version + *(.gnu.version) + +.gnu.version_d + *(.gnu.version_d) + +.gnu.version_r + *(.gnu.version_r) + +.rel.init + *(.rel.init) + +.rela.init + *(.rela.init) + +.rel.text + *(.rel.text) + *(.rel.text.*) + *(.rel.gnu.linkonce.t*) + +.rela.text + *(.rela.text) + *(.rela.text.*) + *(.rela.gnu.linkonce.t*) + +.rel.fini + *(.rel.fini) + +.rela.fini + *(.rela.fini) + +.rel.rodata + *(.rel.rodata) + *(.rel.rodata.*) + *(.rel.gnu.linkonce.r*) + +.rela.rodata + *(.rela.rodata) + *(.rela.rodata.*) + *(.rela.gnu.linkonce.r*) + +.rel.data + *(.rel.data) + *(.rel.data.*) + *(.rel.gnu.linkonce.d*) + +.rela.data + *(.rela.data) + *(.rela.data.*) + *(.rela.gnu.linkonce.d*) + +.rel.ctors + *(.rel.ctors) + +.rela.ctors + *(.rela.ctors) + +.rel.dtors + *(.rel.dtors) + +.rela.dtors + *(.rela.dtors) + +.rel.got + *(.rel.got) + +.rela.got + *(.rela.got) + +.rel.bss + *(.rel.bss) + +.rela.bss + *(.rela.bss) + +.rel.plt + *(.rel.plt) + +.rela.plt + *(.rela.plt) + +.text 0x0000000000000000 0x150 + *(.vectors) + .vectors 0x0000000000000000 0x26 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/crtatmega8.o + 0x0000000000000000 __vectors + 0x0000000000000000 __vector_default + *(.vectors) + *(.progmem.gcc*) + 0x0000000000000026 . = ALIGN (0x2) + 0x0000000000000026 __trampolines_start = . + *(.trampolines) + .trampolines 0x0000000000000026 0x0 linker stubs + *(.trampolines*) + 0x0000000000000026 __trampolines_end = . + *libprintf_flt.a:*(.progmem.data) + *libc.a:*(.progmem.data) + *(.progmem*) + 0x0000000000000026 . = ALIGN (0x2) + *(.jumptables) + *(.jumptables*) + *(.lowtext) + *(.lowtext*) + 0x0000000000000026 __ctors_start = . + *(.ctors) + 0x0000000000000026 __ctors_end = . + 0x0000000000000026 __dtors_start = . + *(.dtors) + 0x0000000000000026 __dtors_end = . + SORT(*)(.ctors) + SORT(*)(.dtors) + *(.init0) + .init0 0x0000000000000026 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/crtatmega8.o + 0x0000000000000026 __init + *(.init0) + *(.init1) + *(.init1) + *(.init2) + .init2 0x0000000000000026 0xc /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/crtatmega8.o + *(.init2) + *(.init3) + *(.init3) + *(.init4) + .init4 0x0000000000000032 0x16 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o) + 0x0000000000000032 __do_copy_data + *(.init4) + *(.init5) + *(.init5) + *(.init6) + *(.init6) + *(.init7) + *(.init7) + *(.init8) + *(.init8) + *(.init9) + .init9 0x0000000000000048 0x4 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/crtatmega8.o + *(.init9) + *(.text) + .text 0x000000000000004c 0x2 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/crtatmega8.o + 0x000000000000004c __vector_1 + 0x000000000000004c __vector_12 + 0x000000000000004c __bad_interrupt + 0x000000000000004c __vector_6 + 0x000000000000004c __vector_3 + 0x000000000000004c __vector_11 + 0x000000000000004c __vector_13 + 0x000000000000004c __vector_17 + 0x000000000000004c __vector_7 + 0x000000000000004c __vector_5 + 0x000000000000004c __vector_4 + 0x000000000000004c __vector_9 + 0x000000000000004c __vector_2 + 0x000000000000004c __vector_15 + 0x000000000000004c __vector_8 + 0x000000000000004c __vector_14 + 0x000000000000004c __vector_10 + 0x000000000000004c __vector_16 + 0x000000000000004c __vector_18 + .text 0x000000000000004e 0x0 ./libs/led/led.o + .text 0x000000000000004e 0x0 ./main.o + .text 0x000000000000004e 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o) + .text 0x000000000000004e 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o) + 0x000000000000004e . = ALIGN (0x2) + *(.text.*) + .text.led_initPorts + 0x000000000000004e 0x24 ./libs/led/led.o + 0x000000000000004e led_initPorts + .text.led_init + 0x0000000000000072 0x6 ./libs/led/led.o + 0x0000000000000072 led_init + .text.led_off 0x0000000000000078 0x3e ./libs/led/led.o + 0x0000000000000078 led_off + .text.led_on 0x00000000000000b6 0x40 ./libs/led/led.o + 0x00000000000000b6 led_on + .text.led_flash + 0x00000000000000f6 0x2c ./libs/led/led.o + 0x00000000000000f6 led_flash + .text.disco 0x0000000000000122 0xc ./libs/led/led.o + 0x0000000000000122 disco + .text.startup.main + 0x000000000000012e 0x1e ./main.o + 0x000000000000012e main + .text.libgcc.mul + 0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o) + .text.libgcc.div + 0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o) + .text.libgcc 0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o) + .text.libgcc.prologue + 0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o) + .text.libgcc.builtins + 0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o) + .text.libgcc.fmul + 0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o) + .text.libgcc.fixed + 0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o) + .text.libgcc.mul + 0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o) + .text.libgcc.div + 0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o) + .text.libgcc 0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o) + .text.libgcc.prologue + 0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o) + .text.libgcc.builtins + 0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o) + .text.libgcc.fmul + 0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o) + .text.libgcc.fixed + 0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o) + 0x000000000000014c . = ALIGN (0x2) + *(.fini9) + .fini9 0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o) + 0x000000000000014c exit + 0x000000000000014c _exit + *(.fini9) + *(.fini8) + *(.fini8) + *(.fini7) + *(.fini7) + *(.fini6) + *(.fini6) + *(.fini5) + *(.fini5) + *(.fini4) + *(.fini4) + *(.fini3) + *(.fini3) + *(.fini2) + *(.fini2) + *(.fini1) + *(.fini1) + *(.fini0) + .fini0 0x000000000000014c 0x4 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o) + *(.fini0) + 0x0000000000000150 _etext = . + +.data 0x0000000000800060 0x2 load address 0x0000000000000150 + 0x0000000000800060 PROVIDE (__data_start, .) + *(.data) + .data 0x0000000000800060 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/crtatmega8.o + .data 0x0000000000800060 0x0 ./libs/led/led.o + .data 0x0000000000800060 0x0 ./main.o + .data 0x0000000000800060 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o) + .data 0x0000000000800060 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o) + *(.data*) + .data.led_flags + 0x0000000000800060 0x1 ./libs/led/led.o + 0x0000000000800060 led_flags + *(.rodata) + *(.rodata*) + *(.gnu.linkonce.d*) + 0x0000000000800062 . = ALIGN (0x2) + *fill* 0x0000000000800061 0x1 + 0x0000000000800062 _edata = . + 0x0000000000800062 PROVIDE (__data_end, .) + +.bss 0x0000000000800062 0x0 + [!provide] PROVIDE (__bss_start, .) + *(.bss) + .bss 0x0000000000800062 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/crtatmega8.o + .bss 0x0000000000800062 0x0 ./libs/led/led.o + .bss 0x0000000000800062 0x0 ./main.o + .bss 0x0000000000800062 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o) + .bss 0x0000000000800062 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o) + *(.bss*) + *(COMMON) + [!provide] PROVIDE (__bss_end, .) + 0x0000000000000150 __data_load_start = LOADADDR (.data) + 0x0000000000000152 __data_load_end = (__data_load_start + SIZEOF (.data)) + +.noinit 0x0000000000800062 0x0 + [!provide] PROVIDE (__noinit_start, .) + *(.noinit*) + [!provide] PROVIDE (__noinit_end, .) + 0x0000000000800062 _end = . + [!provide] PROVIDE (__heap_start, .) + +.eeprom 0x0000000000810000 0x0 + *(.eeprom*) + 0x0000000000810000 __eeprom_end = . + +.fuse + *(.fuse) + *(.lfuse) + *(.hfuse) + *(.efuse) + +.lock + *(.lock*) + +.signature + *(.signature*) + +.user_signatures + *(.user_signatures*) + +.stab + *(.stab) + +.stabstr + *(.stabstr) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.comment 0x0000000000000000 0x11 + *(.comment) + .comment 0x0000000000000000 0x11 ./libs/led/led.o + 0x12 (size before relaxing) + .comment 0x0000000000000011 0x12 ./main.o + +.note.gnu.avr.deviceinfo + 0x0000000000000000 0x3c + .note.gnu.avr.deviceinfo + 0x0000000000000000 0x3c /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/crtatmega8.o + +.note.gnu.build-id + *(.note.gnu.build-id) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges + *(.debug_aranges) + +.debug_pubnames + *(.debug_pubnames) + +.debug_info + *(.debug_info .gnu.linkonce.wi.*) + +.debug_abbrev + *(.debug_abbrev) + +.debug_line + *(.debug_line .debug_line.* .debug_line_end) + +.debug_frame + *(.debug_frame) + +.debug_str + *(.debug_str) + +.debug_loc + *(.debug_loc) + +.debug_macinfo + *(.debug_macinfo) + +.debug_weaknames + *(.debug_weaknames) + +.debug_funcnames + *(.debug_funcnames) + +.debug_typenames + *(.debug_typenames) + +.debug_varnames + *(.debug_varnames) + +.debug_pubtypes + *(.debug_pubtypes) + +.debug_ranges + *(.debug_ranges) + +.debug_macro + *(.debug_macro) +OUTPUT(avr-blink.elf elf32-avr) +LOAD linker stubs diff --git a/Release/avr-lib-uart.eep b/Release/avr-lib-uart.eep new file mode 100644 index 0000000..1996e8f --- /dev/null +++ b/Release/avr-lib-uart.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/Release/avr-lib-uart.elf b/Release/avr-lib-uart.elf new file mode 100755 index 0000000000000000000000000000000000000000..f6ffd49fa8545397bb8158ebc0f2c2cd619c9ebb GIT binary patch literal 4512 zcmcIo4{RG(8Gq+wtJh|ZQz25emL&5;RsznSC0$o_kTiADb|FcV6b(kXxz0K9h<&bo z$=V97?#i+>owPVUubV(y3Dpo8ObUpNXrl2ZKpk7LkR}jlbeDFjPz7qDPRj&k=J&n3 z^BuQhRN8( zVk+|*8`n~q*O_{3{n;sXbNx@`vh$h4QoK7xrjp1z9}W<53?KekTY|d(<$iecF=$cgr3Bw`J?% zCs}h+D?{ulWcCDQmZr?AGL)M~eT)58`@OcY-uunThPI^%U*poo%9^DUT=GGF!()?L zTBFFTkoDwTDmFQvN;BbDp(J;5?x}+(IZAPqik+NyXHyv_xU*&I-`TEuU2|RTyK^;K zgI4Mna(9%kRj;g6XE*!m49m5-2f6eOLC8&%@5x?SdAyGNOktIDVXa~7F4}IctD7g; zRN>a#{oHb1aOJ|~k5o-&FRr{Pq_W@fk$paMuHK{igr^ptdrvsEyuxyfJqb>!@ch-! zUp}s-d#hVht&5ybJNmfhQQL)a{`&;#)h;{+y1+cDOYo@ucs?i`LoH}mb=~@_CoVs; zSks$ooihAf&A(c^r=juvXMK0P|I3S0*<;z~d&<;F;nmuI3j1njYbVN|t(vVmQ|Vng zbNlgZ@80>9)B9)db}#*C|MxTO)Zvx6in&b1^qc6<9|-RV*M*__gXu?niz`j1N^{>% zM>Fx`2huN9F046s&7J*FE#!s1K-5Z{JpZS7-OW&DG8Rd;LvdF&t6$MNB%g zZC~xfFGedSF-S-Q2i}bbu~<-vN<+cMEnDM+Rv*TBFVQWEIwkz((C-9dmf)X#loS`# zxh1%j_?m`NDO)a39A7FLEf*?4-)Fs_P^WV ze=qQGv8*okkV75?w(fNoI|e*m)NygyjDf4MU#CIa@r%Hx3%Y_A^?V)Vunw6Q`hNgT z?+O}(|AOaxnAn_GVZRj6y$j5=L{FV#P0NeeY0j@Lp-;4f!37Fo0HSkvf zoC7x7oa*;SV0*lmfX_n3W30dIkpBzVT#xcAMXVi|t%m+O&@-TEki61?eGXjjz}tXd zfb9lMs^?DNNznL2U|tu#9Do_`8se3*hd3slzTXc6k7G6flf44keE)lK@{R&i&CL9! zfTw}!yMXk+2W$?C|0lpR27~Y~NN(IqRKK@@&3aJ3Tm)92LiAefXz{E9iGLm{9y7CW`&N;x19ti7uV! z3v_ZqiN?i*G{os6QbIPsh%^YxXfP5Z2hyR4;+J8cROGlAPsl@wV3diW5h<7u4Oq{s=esmY=nLGElDXcH0C?w)S3E709Jpa-mAp}0H}iAhPr zsVFJZA%*8ACZ*Wm?wDeEYHGIVMq1%Oa8QiI6e*DyjoXZNNrxaD3@Sl!M1~6d0FNqi zP>h9!rO>x5H(OXzNhG8(aO}b87Dh66Ll{}jxQQgzGJ09SK?Rb=q9`AyXtVmHkQ5n{ zc8rF@QUaD;J?;0eQWUdRSLI=ZAZT89Vvz zK=vQ^EDi)77+8gEST>P+e#k;{G>W#Q8li87l8pJ2hoegH0G>)he-4`z&(zOPy&wC= z{A4ZR*!yF$BKe16qyFGn!apdDMbK=quuK=`Cmgp!kM2u;jpFX4JD>jEFo%Bo>wo_f zP49XdDyI1@MOeS38LI{D#w36AE~5WOr~z#b)87}sAez24XpkQLJzx%!(QLt7V>0pF z2)$MtrYoNY*&43`j{jQDSU0EiA9G!Lnz54P8*rc@DT;X$Ci$c9rCTuV{: + 0: 0c 94 34 00 jmp 0x68 ; 0x68 <__ctors_end> + 4: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 8: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 10: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 14: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 18: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 1c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 20: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 24: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 28: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 2c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 30: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 34: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 38: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 3c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 40: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 44: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 48: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 4c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 50: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 54: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 58: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 5c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 60: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 64: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + +00000068 <__ctors_end>: + 68: 11 24 eor r1, r1 + 6a: 1f be out 0x3f, r1 ; 63 + 6c: cf ef ldi r28, 0xFF ; 255 + 6e: d4 e0 ldi r29, 0x04 ; 4 + 70: de bf out 0x3e, r29 ; 62 + 72: cd bf out 0x3d, r28 ; 61 + +00000074 <__do_copy_data>: + 74: 11 e0 ldi r17, 0x01 ; 1 + 76: a0 e0 ldi r26, 0x00 ; 0 + 78: b1 e0 ldi r27, 0x01 ; 1 + 7a: ea e6 ldi r30, 0x6A ; 106 + 7c: f3 e0 ldi r31, 0x03 ; 3 + 7e: 02 c0 rjmp .+4 ; 0x84 <__do_copy_data+0x10> + 80: 05 90 lpm r0, Z+ + 82: 0d 92 st X+, r0 + 84: aa 30 cpi r26, 0x0A ; 10 + 86: b1 07 cpc r27, r17 + 88: d9 f7 brne .-10 ; 0x80 <__do_copy_data+0xc> + +0000008a <__do_clear_bss>: + 8a: 21 e0 ldi r18, 0x01 ; 1 + 8c: aa e0 ldi r26, 0x0A ; 10 + 8e: b1 e0 ldi r27, 0x01 ; 1 + 90: 01 c0 rjmp .+2 ; 0x94 <.do_clear_bss_start> + +00000092 <.do_clear_bss_loop>: + 92: 1d 92 st X+, r1 + +00000094 <.do_clear_bss_start>: + 94: ab 32 cpi r26, 0x2B ; 43 + 96: b2 07 cpc r27, r18 + 98: e1 f7 brne .-8 ; 0x92 <.do_clear_bss_loop> + 9a: 0e 94 64 01 call 0x2c8 ; 0x2c8
+ 9e: 0c 94 b3 01 jmp 0x366 ; 0x366 <_exit> + +000000a2 <__bad_interrupt>: + a2: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> + +000000a6 : + a6: 88 e1 ldi r24, 0x18 ; 24 + a8: 80 93 c1 00 sts 0x00C1, r24 ; 0x8000c1 <__TEXT_REGION_LENGTH__+0x7e00c1> + ac: 86 e0 ldi r24, 0x06 ; 6 + ae: 80 93 c2 00 sts 0x00C2, r24 ; 0x8000c2 <__TEXT_REGION_LENGTH__+0x7e00c2> + b2: 10 92 c5 00 sts 0x00C5, r1 ; 0x8000c5 <__TEXT_REGION_LENGTH__+0x7e00c5> + b6: 83 e3 ldi r24, 0x33 ; 51 + b8: 80 93 c4 00 sts 0x00C4, r24 ; 0x8000c4 <__TEXT_REGION_LENGTH__+0x7e00c4> + bc: 08 95 ret + +000000be : + be: 90 91 c0 00 lds r25, 0x00C0 ; 0x8000c0 <__TEXT_REGION_LENGTH__+0x7e00c0> + c2: 95 ff sbrs r25, 5 + c4: fc cf rjmp .-8 ; 0xbe + c6: 80 93 c6 00 sts 0x00C6, r24 ; 0x8000c6 <__TEXT_REGION_LENGTH__+0x7e00c6> + ca: 08 95 ret + +000000cc : + cc: cf 93 push r28 + ce: df 93 push r29 + d0: ec 01 movw r28, r24 + d2: 89 91 ld r24, Y+ + d4: 88 23 and r24, r24 + d6: 19 f0 breq .+6 ; 0xde + d8: 0e 94 5f 00 call 0xbe ; 0xbe + dc: fa cf rjmp .-12 ; 0xd2 + de: df 91 pop r29 + e0: cf 91 pop r28 + e2: 08 95 ret + +000000e4 : + e4: cf 93 push r28 + e6: df 93 push r29 + e8: cd b7 in r28, 0x3d ; 61 + ea: de b7 in r29, 0x3e ; 62 + ec: 27 97 sbiw r28, 0x07 ; 7 + ee: 0f b6 in r0, 0x3f ; 63 + f0: f8 94 cli + f2: de bf out 0x3e, r29 ; 62 + f4: 0f be out 0x3f, r0 ; 63 + f6: cd bf out 0x3d, r28 ; 61 + f8: 4a e0 ldi r20, 0x0A ; 10 + fa: be 01 movw r22, r28 + fc: 6f 5f subi r22, 0xFF ; 255 + fe: 7f 4f sbci r23, 0xFF ; 255 + 100: 0e 94 7e 01 call 0x2fc ; 0x2fc <__itoa_ncheck> + 104: ce 01 movw r24, r28 + 106: 01 96 adiw r24, 0x01 ; 1 + 108: 0e 94 66 00 call 0xcc ; 0xcc + 10c: 27 96 adiw r28, 0x07 ; 7 + 10e: 0f b6 in r0, 0x3f ; 63 + 110: f8 94 cli + 112: de bf out 0x3e, r29 ; 62 + 114: 0f be out 0x3f, r0 ; 63 + 116: cd bf out 0x3d, r28 ; 61 + 118: df 91 pop r29 + 11a: cf 91 pop r28 + 11c: 08 95 ret + +0000011e : + 11e: cf 93 push r28 + 120: df 93 push r29 + 122: cd b7 in r28, 0x3d ; 61 + 124: de b7 in r29, 0x3e ; 62 + 126: 27 97 sbiw r28, 0x07 ; 7 + 128: 0f b6 in r0, 0x3f ; 63 + 12a: f8 94 cli + 12c: de bf out 0x3e, r29 ; 62 + 12e: 0f be out 0x3f, r0 ; 63 + 130: cd bf out 0x3d, r28 ; 61 + 132: 42 e0 ldi r20, 0x02 ; 2 + 134: be 01 movw r22, r28 + 136: 6f 5f subi r22, 0xFF ; 255 + 138: 7f 4f sbci r23, 0xFF ; 255 + 13a: 0e 94 7e 01 call 0x2fc ; 0x2fc <__itoa_ncheck> + 13e: ce 01 movw r24, r28 + 140: 01 96 adiw r24, 0x01 ; 1 + 142: 0e 94 66 00 call 0xcc ; 0xcc + 146: 27 96 adiw r28, 0x07 ; 7 + 148: 0f b6 in r0, 0x3f ; 63 + 14a: f8 94 cli + 14c: de bf out 0x3e, r29 ; 62 + 14e: 0f be out 0x3f, r0 ; 63 + 150: cd bf out 0x3d, r28 ; 61 + 152: df 91 pop r29 + 154: cf 91 pop r28 + 156: 08 95 ret + +00000158 : + 158: cf 93 push r28 + 15a: df 93 push r29 + 15c: cd b7 in r28, 0x3d ; 61 + 15e: de b7 in r29, 0x3e ; 62 + 160: 27 97 sbiw r28, 0x07 ; 7 + 162: 0f b6 in r0, 0x3f ; 63 + 164: f8 94 cli + 166: de bf out 0x3e, r29 ; 62 + 168: 0f be out 0x3f, r0 ; 63 + 16a: cd bf out 0x3d, r28 ; 61 + 16c: 40 e1 ldi r20, 0x10 ; 16 + 16e: be 01 movw r22, r28 + 170: 6f 5f subi r22, 0xFF ; 255 + 172: 7f 4f sbci r23, 0xFF ; 255 + 174: 0e 94 7e 01 call 0x2fc ; 0x2fc <__itoa_ncheck> + 178: ce 01 movw r24, r28 + 17a: 01 96 adiw r24, 0x01 ; 1 + 17c: 0e 94 66 00 call 0xcc ; 0xcc + 180: 27 96 adiw r28, 0x07 ; 7 + 182: 0f b6 in r0, 0x3f ; 63 + 184: f8 94 cli + 186: de bf out 0x3e, r29 ; 62 + 188: 0f be out 0x3f, r0 ; 63 + 18a: cd bf out 0x3d, r28 ; 61 + 18c: df 91 pop r29 + 18e: cf 91 pop r28 + 190: 08 95 ret + +00000192 : + 192: 8a e0 ldi r24, 0x0A ; 10 + 194: 0c 94 5f 00 jmp 0xbe ; 0xbe + +00000198 : + 198: 80 91 c0 00 lds r24, 0x00C0 ; 0x8000c0 <__TEXT_REGION_LENGTH__+0x7e00c0> + 19c: 87 ff sbrs r24, 7 + 19e: fc cf rjmp .-8 ; 0x198 + 1a0: 80 91 c6 00 lds r24, 0x00C6 ; 0x8000c6 <__TEXT_REGION_LENGTH__+0x7e00c6> + 1a4: 08 95 ret + +000001a6 : + 1a6: 1f 93 push r17 + 1a8: cf 93 push r28 + 1aa: df 93 push r29 + 1ac: 0e 94 cc 00 call 0x198 ; 0x198 + 1b0: ca e0 ldi r28, 0x0A ; 10 + 1b2: d1 e0 ldi r29, 0x01 ; 1 + 1b4: 1c 2f mov r17, r28 + 1b6: 10 5e subi r17, 0xE0 ; 224 + 1b8: 8a 30 cpi r24, 0x0A ; 10 + 1ba: 41 f0 breq .+16 ; 0x1cc + 1bc: 88 23 and r24, r24 + 1be: 31 f0 breq .+12 ; 0x1cc + 1c0: 1c 17 cp r17, r28 + 1c2: 21 f0 breq .+8 ; 0x1cc + 1c4: 89 93 st Y+, r24 + 1c6: 0e 94 cc 00 call 0x198 ; 0x198 + 1ca: f6 cf rjmp .-20 ; 0x1b8 + 1cc: 18 82 st Y, r1 + 1ce: 8a e0 ldi r24, 0x0A ; 10 + 1d0: 91 e0 ldi r25, 0x01 ; 1 + 1d2: df 91 pop r29 + 1d4: cf 91 pop r28 + 1d6: 1f 91 pop r17 + 1d8: 08 95 ret + +000001da : + 1da: 8a b1 in r24, 0x0a ; 10 + 1dc: 80 6e ori r24, 0xE0 ; 224 + 1de: 8a b9 out 0x0a, r24 ; 10 + 1e0: 80 91 00 01 lds r24, 0x0100 ; 0x800100 <__data_start> + 1e4: 81 ff sbrs r24, 1 + 1e6: 03 c0 rjmp .+6 ; 0x1ee + 1e8: 8b b1 in r24, 0x0b ; 11 + 1ea: 8f 71 andi r24, 0x1F ; 31 + 1ec: 8b b9 out 0x0b, r24 ; 11 + 1ee: 80 91 00 01 lds r24, 0x0100 ; 0x800100 <__data_start> + 1f2: 80 ff sbrs r24, 0 + 1f4: 03 c0 rjmp .+6 ; 0x1fc + 1f6: 8b b1 in r24, 0x0b ; 11 + 1f8: 80 6e ori r24, 0xE0 ; 224 + 1fa: 8b b9 out 0x0b, r24 ; 11 + 1fc: 08 95 ret + +000001fe : + 1fe: 80 93 00 01 sts 0x0100, r24 ; 0x800100 <__data_start> + 202: 08 95 ret + +00000204 : + 204: 0c 94 ed 00 jmp 0x1da ; 0x1da + +00000208 : + 208: 48 2f mov r20, r24 + 20a: 80 91 00 01 lds r24, 0x0100 ; 0x800100 <__data_start> + 20e: 81 ff sbrs r24, 1 + 210: 0b c0 rjmp .+22 ; 0x228 + 212: 9b b1 in r25, 0x0b ; 11 + 214: 21 e0 ldi r18, 0x01 ; 1 + 216: 30 e0 ldi r19, 0x00 ; 0 + 218: 04 2e mov r0, r20 + 21a: 01 c0 rjmp .+2 ; 0x21e + 21c: 22 0f add r18, r18 + 21e: 0a 94 dec r0 + 220: ea f7 brpl .-6 ; 0x21c + 222: 20 95 com r18 + 224: 29 23 and r18, r25 + 226: 2b b9 out 0x0b, r18 ; 11 + 228: 80 91 00 01 lds r24, 0x0100 ; 0x800100 <__data_start> + 22c: 80 ff sbrs r24, 0 + 22e: 0a c0 rjmp .+20 ; 0x244 + 230: 5b b1 in r21, 0x0b ; 11 + 232: 21 e0 ldi r18, 0x01 ; 1 + 234: 30 e0 ldi r19, 0x00 ; 0 + 236: c9 01 movw r24, r18 + 238: 01 c0 rjmp .+2 ; 0x23c + 23a: 88 0f add r24, r24 + 23c: 4a 95 dec r20 + 23e: ea f7 brpl .-6 ; 0x23a + 240: 85 2b or r24, r21 + 242: 8b b9 out 0x0b, r24 ; 11 + 244: 08 95 ret + +00000246 : + 246: 90 91 00 01 lds r25, 0x0100 ; 0x800100 <__data_start> + 24a: 91 ff sbrs r25, 1 + 24c: 0a c0 rjmp .+20 ; 0x262 + 24e: 9b b1 in r25, 0x0b ; 11 + 250: 21 e0 ldi r18, 0x01 ; 1 + 252: 30 e0 ldi r19, 0x00 ; 0 + 254: 08 2e mov r0, r24 + 256: 01 c0 rjmp .+2 ; 0x25a + 258: 22 0f add r18, r18 + 25a: 0a 94 dec r0 + 25c: ea f7 brpl .-6 ; 0x258 + 25e: 29 2b or r18, r25 + 260: 2b b9 out 0x0b, r18 ; 11 + 262: 90 91 00 01 lds r25, 0x0100 ; 0x800100 <__data_start> + 266: 90 ff sbrs r25, 0 + 268: 0d c0 rjmp .+26 ; 0x284 + 26a: 4b b1 in r20, 0x0b ; 11 + 26c: 21 e0 ldi r18, 0x01 ; 1 + 26e: 30 e0 ldi r19, 0x00 ; 0 + 270: b9 01 movw r22, r18 + 272: 02 c0 rjmp .+4 ; 0x278 + 274: 66 0f add r22, r22 + 276: 77 1f adc r23, r23 + 278: 8a 95 dec r24 + 27a: e2 f7 brpl .-8 ; 0x274 + 27c: cb 01 movw r24, r22 + 27e: 80 95 com r24 + 280: 84 23 and r24, r20 + 282: 8b b9 out 0x0b, r24 ; 11 + 284: 08 95 ret + +00000286 : + 286: cf 93 push r28 + 288: c8 2f mov r28, r24 + 28a: 0e 94 23 01 call 0x246 ; 0x246 + 28e: 8f e1 ldi r24, 0x1F ; 31 + 290: 9e e4 ldi r25, 0x4E ; 78 + 292: 01 97 sbiw r24, 0x01 ; 1 + 294: f1 f7 brne .-4 ; 0x292 + 296: 00 c0 rjmp .+0 ; 0x298 + 298: 00 00 nop + 29a: 8c 2f mov r24, r28 + 29c: 0e 94 04 01 call 0x208 ; 0x208 + 2a0: 9f ef ldi r25, 0xFF ; 255 + 2a2: 2a e6 ldi r18, 0x6A ; 106 + 2a4: 83 e0 ldi r24, 0x03 ; 3 + 2a6: 91 50 subi r25, 0x01 ; 1 + 2a8: 20 40 sbci r18, 0x00 ; 0 + 2aa: 80 40 sbci r24, 0x00 ; 0 + 2ac: e1 f7 brne .-8 ; 0x2a6 + 2ae: 00 c0 rjmp .+0 ; 0x2b0 + 2b0: 00 00 nop + 2b2: cf 91 pop r28 + 2b4: 08 95 ret + +000002b6 : + 2b6: 85 e0 ldi r24, 0x05 ; 5 + 2b8: 0e 94 43 01 call 0x286 ; 0x286 + 2bc: 86 e0 ldi r24, 0x06 ; 6 + 2be: 0e 94 43 01 call 0x286 ; 0x286 + 2c2: 87 e0 ldi r24, 0x07 ; 7 + 2c4: 0c 94 43 01 jmp 0x286 ; 0x286 + +000002c8
: + 2c8: 82 e0 ldi r24, 0x02 ; 2 + 2ca: 0e 94 ff 00 call 0x1fe ; 0x1fe + 2ce: 0e 94 02 01 call 0x204 ; 0x204 + 2d2: 0e 94 53 00 call 0xa6 ; 0xa6 + 2d6: 0e 94 5b 01 call 0x2b6 ; 0x2b6 + 2da: 81 e0 ldi r24, 0x01 ; 1 + 2dc: 91 e0 ldi r25, 0x01 ; 1 + 2de: 0e 94 66 00 call 0xcc ; 0xcc + 2e2: 85 e0 ldi r24, 0x05 ; 5 + 2e4: 0e 94 43 01 call 0x286 ; 0x286 + 2e8: 2f ef ldi r18, 0xFF ; 255 + 2ea: 89 e6 ldi r24, 0x69 ; 105 + 2ec: 98 e1 ldi r25, 0x18 ; 24 + 2ee: 21 50 subi r18, 0x01 ; 1 + 2f0: 80 40 sbci r24, 0x00 ; 0 + 2f2: 90 40 sbci r25, 0x00 ; 0 + 2f4: e1 f7 brne .-8 ; 0x2ee + 2f6: 00 c0 rjmp .+0 ; 0x2f8 + 2f8: 00 00 nop + 2fa: ef cf rjmp .-34 ; 0x2da + +000002fc <__itoa_ncheck>: + 2fc: bb 27 eor r27, r27 + 2fe: 4a 30 cpi r20, 0x0A ; 10 + 300: 31 f4 brne .+12 ; 0x30e <__itoa_ncheck+0x12> + 302: 99 23 and r25, r25 + 304: 22 f4 brpl .+8 ; 0x30e <__itoa_ncheck+0x12> + 306: bd e2 ldi r27, 0x2D ; 45 + 308: 90 95 com r25 + 30a: 81 95 neg r24 + 30c: 9f 4f sbci r25, 0xFF ; 255 + 30e: 0c 94 8a 01 jmp 0x314 ; 0x314 <__utoa_common> + +00000312 <__utoa_ncheck>: + 312: bb 27 eor r27, r27 + +00000314 <__utoa_common>: + 314: fb 01 movw r30, r22 + 316: 55 27 eor r21, r21 + 318: aa 27 eor r26, r26 + 31a: 88 0f add r24, r24 + 31c: 99 1f adc r25, r25 + 31e: aa 1f adc r26, r26 + 320: a4 17 cp r26, r20 + 322: 10 f0 brcs .+4 ; 0x328 <__utoa_common+0x14> + 324: a4 1b sub r26, r20 + 326: 83 95 inc r24 + 328: 50 51 subi r21, 0x10 ; 16 + 32a: b9 f7 brne .-18 ; 0x31a <__utoa_common+0x6> + 32c: a0 5d subi r26, 0xD0 ; 208 + 32e: aa 33 cpi r26, 0x3A ; 58 + 330: 08 f0 brcs .+2 ; 0x334 <__utoa_common+0x20> + 332: a9 5d subi r26, 0xD9 ; 217 + 334: a1 93 st Z+, r26 + 336: 00 97 sbiw r24, 0x00 ; 0 + 338: 79 f7 brne .-34 ; 0x318 <__utoa_common+0x4> + 33a: b1 11 cpse r27, r1 + 33c: b1 93 st Z+, r27 + 33e: 11 92 st Z+, r1 + 340: cb 01 movw r24, r22 + 342: 0c 94 a3 01 jmp 0x346 ; 0x346 + +00000346 : + 346: dc 01 movw r26, r24 + 348: fc 01 movw r30, r24 + 34a: 67 2f mov r22, r23 + 34c: 71 91 ld r23, Z+ + 34e: 77 23 and r23, r23 + 350: e1 f7 brne .-8 ; 0x34a + 352: 32 97 sbiw r30, 0x02 ; 2 + 354: 04 c0 rjmp .+8 ; 0x35e + 356: 7c 91 ld r23, X + 358: 6d 93 st X+, r22 + 35a: 70 83 st Z, r23 + 35c: 62 91 ld r22, -Z + 35e: ae 17 cp r26, r30 + 360: bf 07 cpc r27, r31 + 362: c8 f3 brcs .-14 ; 0x356 + 364: 08 95 ret + +00000366 <_exit>: + 366: f8 94 cli + +00000368 <__stop_program>: + 368: ff cf rjmp .-2 ; 0x368 <__stop_program> diff --git a/Release/avr-lib-uart.map b/Release/avr-lib-uart.map new file mode 100644 index 0000000..405712d --- /dev/null +++ b/Release/avr-lib-uart.map @@ -0,0 +1,530 @@ +Archive member included to satisfy reference by file (symbol) + +/usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o (exit) +/usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + ./libs/led/led.o (__do_copy_data) +/usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o) + ./libs/uart/uart.o (__do_clear_bss) +/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(itoa_ncheck.o) + ./libs/uart/uart.o (__itoa_ncheck) +/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(utoa_ncheck.o) + /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(itoa_ncheck.o) (__utoa_common) +/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(strrev.o) + /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(utoa_ncheck.o) (strrev) + +Allocating common symbols +Common symbol size file + +uartReceiveBuffer 0x21 ./libs/uart/uart.o + +Memory Configuration + +Name Origin Length Attributes +text 0x0000000000000000 0x0000000000020000 xr +data 0x0000000000800060 0x000000000000ffa0 rw !x +eeprom 0x0000000000810000 0x0000000000010000 rw !x +fuse 0x0000000000820000 0x0000000000000400 rw !x +lock 0x0000000000830000 0x0000000000000400 rw !x +signature 0x0000000000840000 0x0000000000000400 rw !x +user_signatures 0x0000000000850000 0x0000000000000400 rw !x +*default* 0x0000000000000000 0xffffffffffffffff + +Linker script and memory map + +Address of section .data set to 0x800100 +LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o +LOAD ./libs/uart/uart.o +LOAD ./libs/led/led.o +LOAD ./main.o +START GROUP +LOAD /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a +LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a +LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a +LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libatmega168p.a +END GROUP + 0x0000000000020000 __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x20000 + 0x000000000000ffa0 __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xffa0 + 0x0000000000010000 __EEPROM_REGION_LENGTH__ = DEFINED (__EEPROM_REGION_LENGTH__)?__EEPROM_REGION_LENGTH__:0x10000 + 0x0000000000000400 __FUSE_REGION_LENGTH__ = DEFINED (__FUSE_REGION_LENGTH__)?__FUSE_REGION_LENGTH__:0x400 + 0x0000000000000400 __LOCK_REGION_LENGTH__ = DEFINED (__LOCK_REGION_LENGTH__)?__LOCK_REGION_LENGTH__:0x400 + 0x0000000000000400 __SIGNATURE_REGION_LENGTH__ = DEFINED (__SIGNATURE_REGION_LENGTH__)?__SIGNATURE_REGION_LENGTH__:0x400 + 0x0000000000000400 __USER_SIGNATURE_REGION_LENGTH__ = DEFINED (__USER_SIGNATURE_REGION_LENGTH__)?__USER_SIGNATURE_REGION_LENGTH__:0x400 + +.hash + *(.hash) + +.dynsym + *(.dynsym) + +.dynstr + *(.dynstr) + +.gnu.version + *(.gnu.version) + +.gnu.version_d + *(.gnu.version_d) + +.gnu.version_r + *(.gnu.version_r) + +.rel.init + *(.rel.init) + +.rela.init + *(.rela.init) + +.rel.text + *(.rel.text) + *(.rel.text.*) + *(.rel.gnu.linkonce.t*) + +.rela.text + *(.rela.text) + *(.rela.text.*) + *(.rela.gnu.linkonce.t*) + +.rel.fini + *(.rel.fini) + +.rela.fini + *(.rela.fini) + +.rel.rodata + *(.rel.rodata) + *(.rel.rodata.*) + *(.rel.gnu.linkonce.r*) + +.rela.rodata + *(.rela.rodata) + *(.rela.rodata.*) + *(.rela.gnu.linkonce.r*) + +.rel.data + *(.rel.data) + *(.rel.data.*) + *(.rel.gnu.linkonce.d*) + +.rela.data + *(.rela.data) + *(.rela.data.*) + *(.rela.gnu.linkonce.d*) + +.rel.ctors + *(.rel.ctors) + +.rela.ctors + *(.rela.ctors) + +.rel.dtors + *(.rel.dtors) + +.rela.dtors + *(.rela.dtors) + +.rel.got + *(.rel.got) + +.rela.got + *(.rela.got) + +.rel.bss + *(.rel.bss) + +.rela.bss + *(.rela.bss) + +.rel.plt + *(.rel.plt) + +.rela.plt + *(.rela.plt) + +.text 0x0000000000000000 0x36a + *(.vectors) + .vectors 0x0000000000000000 0x68 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o + 0x0000000000000000 __vectors + 0x0000000000000000 __vector_default + *(.vectors) + *(.progmem.gcc*) + 0x0000000000000068 . = ALIGN (0x2) + 0x0000000000000068 __trampolines_start = . + *(.trampolines) + .trampolines 0x0000000000000068 0x0 linker stubs + *(.trampolines*) + 0x0000000000000068 __trampolines_end = . + *libprintf_flt.a:*(.progmem.data) + *libc.a:*(.progmem.data) + *(.progmem*) + 0x0000000000000068 . = ALIGN (0x2) + *(.jumptables) + *(.jumptables*) + *(.lowtext) + *(.lowtext*) + 0x0000000000000068 __ctors_start = . + *(.ctors) + 0x0000000000000068 __ctors_end = . + 0x0000000000000068 __dtors_start = . + *(.dtors) + 0x0000000000000068 __dtors_end = . + SORT(*)(.ctors) + SORT(*)(.dtors) + *(.init0) + .init0 0x0000000000000068 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o + 0x0000000000000068 __init + *(.init0) + *(.init1) + *(.init1) + *(.init2) + .init2 0x0000000000000068 0xc /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o + *(.init2) + *(.init3) + *(.init3) + *(.init4) + .init4 0x0000000000000074 0x16 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + 0x0000000000000074 __do_copy_data + .init4 0x000000000000008a 0x10 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o) + 0x000000000000008a __do_clear_bss + *(.init4) + *(.init5) + *(.init5) + *(.init6) + *(.init6) + *(.init7) + *(.init7) + *(.init8) + *(.init8) + *(.init9) + .init9 0x000000000000009a 0x8 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o + *(.init9) + *(.text) + .text 0x00000000000000a2 0x4 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o + 0x00000000000000a2 __vector_22 + 0x00000000000000a2 __vector_1 + 0x00000000000000a2 __vector_24 + 0x00000000000000a2 __vector_12 + 0x00000000000000a2 __bad_interrupt + 0x00000000000000a2 __vector_6 + 0x00000000000000a2 __vector_3 + 0x00000000000000a2 __vector_23 + 0x00000000000000a2 __vector_25 + 0x00000000000000a2 __vector_11 + 0x00000000000000a2 __vector_13 + 0x00000000000000a2 __vector_17 + 0x00000000000000a2 __vector_19 + 0x00000000000000a2 __vector_7 + 0x00000000000000a2 __vector_5 + 0x00000000000000a2 __vector_4 + 0x00000000000000a2 __vector_9 + 0x00000000000000a2 __vector_2 + 0x00000000000000a2 __vector_21 + 0x00000000000000a2 __vector_15 + 0x00000000000000a2 __vector_8 + 0x00000000000000a2 __vector_14 + 0x00000000000000a2 __vector_10 + 0x00000000000000a2 __vector_16 + 0x00000000000000a2 __vector_18 + 0x00000000000000a2 __vector_20 + .text 0x00000000000000a6 0x0 ./libs/uart/uart.o + .text 0x00000000000000a6 0x0 ./libs/led/led.o + .text 0x00000000000000a6 0x0 ./main.o + .text 0x00000000000000a6 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text 0x00000000000000a6 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + .text 0x00000000000000a6 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o) + .text 0x00000000000000a6 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(itoa_ncheck.o) + .text 0x00000000000000a6 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(utoa_ncheck.o) + .text 0x00000000000000a6 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(strrev.o) + 0x00000000000000a6 . = ALIGN (0x2) + *(.text.*) + .text.uart_init + 0x00000000000000a6 0x18 ./libs/uart/uart.o + 0x00000000000000a6 uart_init + .text.uart_sendChar + 0x00000000000000be 0xe ./libs/uart/uart.o + 0x00000000000000be uart_sendChar + .text.uart_sendString + 0x00000000000000cc 0x18 ./libs/uart/uart.o + 0x00000000000000cc uart_sendString + .text.uart_sendInt + 0x00000000000000e4 0x3a ./libs/uart/uart.o + 0x00000000000000e4 uart_sendInt + .text.uart_sendBinary + 0x000000000000011e 0x3a ./libs/uart/uart.o + 0x000000000000011e uart_sendBinary + .text.uart_sendHex + 0x0000000000000158 0x3a ./libs/uart/uart.o + 0x0000000000000158 uart_sendHex + .text.uart_sendLF + 0x0000000000000192 0x6 ./libs/uart/uart.o + 0x0000000000000192 uart_sendLF + .text.uart_receiveChar + 0x0000000000000198 0xe ./libs/uart/uart.o + 0x0000000000000198 uart_receiveChar + .text.uart_receiveString + 0x00000000000001a6 0x34 ./libs/uart/uart.o + 0x00000000000001a6 uart_receiveString + .text.led_initPorts + 0x00000000000001da 0x24 ./libs/led/led.o + 0x00000000000001da led_initPorts + .text.led_config + 0x00000000000001fe 0x6 ./libs/led/led.o + 0x00000000000001fe led_config + .text.led_init + 0x0000000000000204 0x4 ./libs/led/led.o + 0x0000000000000204 led_init + .text.led_off 0x0000000000000208 0x3e ./libs/led/led.o + 0x0000000000000208 led_off + .text.led_on 0x0000000000000246 0x40 ./libs/led/led.o + 0x0000000000000246 led_on + .text.led_flash + 0x0000000000000286 0x30 ./libs/led/led.o + 0x0000000000000286 led_flash + .text.disco 0x00000000000002b6 0x12 ./libs/led/led.o + 0x00000000000002b6 disco + .text.startup.main + 0x00000000000002c8 0x34 ./main.o + 0x00000000000002c8 main + .text.libgcc.mul + 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text.libgcc.div + 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text.libgcc 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text.libgcc.prologue + 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text.libgcc.builtins + 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text.libgcc.fmul + 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text.libgcc.fixed + 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text.libgcc.mul + 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + .text.libgcc.div + 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + .text.libgcc 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + .text.libgcc.prologue + 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + .text.libgcc.builtins + 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + .text.libgcc.fmul + 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + .text.libgcc.fixed + 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + .text.libgcc.mul + 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o) + .text.libgcc.div + 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o) + .text.libgcc 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o) + .text.libgcc.prologue + 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o) + .text.libgcc.builtins + 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o) + .text.libgcc.fmul + 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o) + .text.libgcc.fixed + 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o) + .text.avr-libc + 0x00000000000002fc 0x16 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(itoa_ncheck.o) + 0x00000000000002fc __itoa_ncheck + .text.avr-libc + 0x0000000000000312 0x34 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(utoa_ncheck.o) + 0x0000000000000312 __utoa_ncheck + 0x0000000000000314 __utoa_common + .text.avr-libc + 0x0000000000000346 0x20 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(strrev.o) + 0x0000000000000346 strrev + 0x0000000000000366 . = ALIGN (0x2) + *(.fini9) + .fini9 0x0000000000000366 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + 0x0000000000000366 exit + 0x0000000000000366 _exit + *(.fini9) + *(.fini8) + *(.fini8) + *(.fini7) + *(.fini7) + *(.fini6) + *(.fini6) + *(.fini5) + *(.fini5) + *(.fini4) + *(.fini4) + *(.fini3) + *(.fini3) + *(.fini2) + *(.fini2) + *(.fini1) + *(.fini1) + *(.fini0) + .fini0 0x0000000000000366 0x4 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + *(.fini0) + 0x000000000000036a _etext = . + +.data 0x0000000000800100 0xa load address 0x000000000000036a + 0x0000000000800100 PROVIDE (__data_start, .) + *(.data) + .data 0x0000000000800100 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o + .data 0x0000000000800100 0x0 ./libs/uart/uart.o + .data 0x0000000000800100 0x0 ./libs/led/led.o + .data 0x0000000000800100 0x0 ./main.o + .data 0x0000000000800100 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .data 0x0000000000800100 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + .data 0x0000000000800100 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o) + .data 0x0000000000800100 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(itoa_ncheck.o) + .data 0x0000000000800100 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(utoa_ncheck.o) + .data 0x0000000000800100 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(strrev.o) + *(.data*) + .data.led_flags + 0x0000000000800100 0x1 ./libs/led/led.o + 0x0000000000800100 led_flags + *(.rodata) + .rodata 0x0000000000800101 0x8 ./main.o + *(.rodata*) + *(.gnu.linkonce.d*) + 0x000000000080010a . = ALIGN (0x2) + *fill* 0x0000000000800109 0x1 + 0x000000000080010a _edata = . + 0x000000000080010a PROVIDE (__data_end, .) + +.bss 0x000000000080010a 0x21 + 0x000000000080010a PROVIDE (__bss_start, .) + *(.bss) + .bss 0x000000000080010a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o + .bss 0x000000000080010a 0x0 ./libs/uart/uart.o + .bss 0x000000000080010a 0x0 ./libs/led/led.o + .bss 0x000000000080010a 0x0 ./main.o + .bss 0x000000000080010a 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .bss 0x000000000080010a 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + .bss 0x000000000080010a 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o) + .bss 0x000000000080010a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(itoa_ncheck.o) + .bss 0x000000000080010a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(utoa_ncheck.o) + .bss 0x000000000080010a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(strrev.o) + *(.bss*) + *(COMMON) + COMMON 0x000000000080010a 0x21 ./libs/uart/uart.o + 0x000000000080010a uartReceiveBuffer + 0x000000000080012b PROVIDE (__bss_end, .) + 0x000000000000036a __data_load_start = LOADADDR (.data) + 0x0000000000000374 __data_load_end = (__data_load_start + SIZEOF (.data)) + +.noinit 0x000000000080012b 0x0 + [!provide] PROVIDE (__noinit_start, .) + *(.noinit*) + [!provide] PROVIDE (__noinit_end, .) + 0x000000000080012b _end = . + [!provide] PROVIDE (__heap_start, .) + +.eeprom 0x0000000000810000 0x0 + *(.eeprom*) + 0x0000000000810000 __eeprom_end = . + +.fuse + *(.fuse) + *(.lfuse) + *(.hfuse) + *(.efuse) + +.lock + *(.lock*) + +.signature + *(.signature*) + +.user_signatures + *(.user_signatures*) + +.stab + *(.stab) + +.stabstr + *(.stabstr) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.comment 0x0000000000000000 0x11 + *(.comment) + .comment 0x0000000000000000 0x11 ./libs/uart/uart.o + 0x12 (size before relaxing) + .comment 0x0000000000000011 0x12 ./libs/led/led.o + .comment 0x0000000000000011 0x12 ./main.o + +.note.gnu.avr.deviceinfo + 0x0000000000000000 0x40 + .note.gnu.avr.deviceinfo + 0x0000000000000000 0x40 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o + +.note.gnu.build-id + *(.note.gnu.build-id) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges + *(.debug_aranges) + +.debug_pubnames + *(.debug_pubnames) + +.debug_info + *(.debug_info .gnu.linkonce.wi.*) + +.debug_abbrev + *(.debug_abbrev) + +.debug_line + *(.debug_line .debug_line.* .debug_line_end) + +.debug_frame + *(.debug_frame) + +.debug_str + *(.debug_str) + +.debug_loc + *(.debug_loc) + +.debug_macinfo + *(.debug_macinfo) + +.debug_weaknames + *(.debug_weaknames) + +.debug_funcnames + *(.debug_funcnames) + +.debug_typenames + *(.debug_typenames) + +.debug_varnames + *(.debug_varnames) + +.debug_pubtypes + *(.debug_pubtypes) + +.debug_ranges + *(.debug_ranges) + +.debug_macro + *(.debug_macro) +OUTPUT(avr-lib-uart.elf elf32-avr) +LOAD linker stubs diff --git a/Release/libs/led/led.d b/Release/libs/led/led.d new file mode 100644 index 0000000..ac70a3b --- /dev/null +++ b/Release/libs/led/led.d @@ -0,0 +1,3 @@ +libs/led/led.o: ../libs/led/led.c ../libs/led/led.h + +../libs/led/led.h: diff --git a/Release/libs/led/led.o b/Release/libs/led/led.o new file mode 100644 index 0000000000000000000000000000000000000000..da580a37e8c3014cc77914057d58edf6f6b9beb4 GIT binary patch literal 2416 zcma)8O=w(I6h3d>sAGsp`da@*r%BMHk=H6g>iD2tvV^$z&!CB=hRbL#-Rf zpR|$)O=t!cLEXA3WEoep^bfjl)8z=_RsvbLi{E$OJ(HUU1rOYu?>qP0@1A$>xkEml zy6~Fkd7|dYoE$Qd+johqVRF(WjLCy?Le_U$_4VD>mdGau(%IO#{@#XREyG&%jom`K zbwi}k?%x)fIjx!B?wstN>E=V}3=j5g=k|;3@sWw%%8O?97f(8044!Z2_SYt;vx!}{ zpqs8O^wy3~Ozd)Q6LW8vmAhD38~osjb*%l(YqdWg;rd%Qem*^bDz5+e-Cy2U-oA81 zzBG~V|2g&dXWgyYVyRV12v2^D2`3P`Sy5mGJHOKR?o`y z?wRFf@4%h&kDRE8FFAJ_+?RV0d8HTKI~W3f+2IcZzv}Se9wyj32=Vu@hV1_NBiX*( zo#BNH@5}K13?ImFR(oi^1cwC3m*euHjf}zvl9$&lXU)eDnX{ag1*q>`%UO9K1zED3 zXB0@E#Fm!~@0a&2KV$fSv@B;Ofegu2%jrzDE7irYB2hFq8_h&f3NEDJt*L1PlGV#m zqq=19N7Y7b306kS_2pzXZX``1tF4rmQdEiSwdExfWQqZCt(N+_CO0q1;&QVRW7owv zs>GMCM2qF5%-VPp`C~*PJar#eaRUAU42?fxOK#`$USIx0rel zVdM~}KD9LeNnqx`1kdv%o`io6gZX>_?!LS;A1(11JkOR`Yt8|4&&M%TpL;Qfclor% z)Z`w_58=(d1JmeogXwt~ePC+x8v@irW6jJd!jED2z^53)2!Lrk2gTG>EMfD?YEoW+ zPa3Jeq$sI=m`G@DCtPSYC2Ukz$|0lS(LTsb*ha`iO;2QEY>#ZHo{gZx&@@h3+CQc+ zQ%Kr^VI^K&t=1EM?fE-rpMv=PR?VvdhdYiHv#tarhr|&4)nO5dd%k>`8cl3A;s>dsF^%lU{|7xliBjD=YhTc44tdCDy^{xTCdOv`dFw|7aZ=KM1U;9(_)O@MjU|VDPu+ VI0oxuo%dq6djDck8!7la6h6}_6r|7}Kz?kb1VXDZ12Nr55T0#l(KKo(Y+N`QUI+SO`yNiGrWlgG zNPt2x@O*$9c5Ya(G!kP1Pou2(F>c(IM>MX~w7PL&^8CJ;dpoz2X%tU#-#Ono_kQQx zd(YfAb8vXjvMkYJ$%rIK+Ia|GwU} zyZzmZd#rixvul$ze<6xUZSzOv`jt8>--cbw(7?dn?%ts{kG{~|=e**)tPkAK=D9b^ zLc<7&z2sH|xXBCy+p-Ft{fpj(MhEOy4ZIch0R!(?v}r6fcH=jxA)UW@$!uFzq;N|L zuTJ4LDZDm?+fta-Ct}O`1i-RoqwG_j&Cs3FEQ1QKi|`6LvLxOjqYCeh;;ZF-g{j&x zW)zO&Yvl40yjE@~j86jj+T^CfalQ`uQsKTRzFzJ_^E|g>bjTl#IcP1+CsSS!I(c#3 zk+esOeQ%nK4U5(b6hi3Go1 z48dOrOP*WIkNNrcl2Cu4=mn<|e8`_p!0=#f2Y%i!eBdWZl*7n#IG)l!b^N#=AlYci z&5!$D;2xWt5N6N=mg%~G_@8noRFyHoM7P8;*NuU-tz`66u1DbD1niO@R+ z9R{%;(^lwDhvJNSp(hTH&7s3dZrcg`anEorUVK(S-Az`A?U3bHy^s}RTV(msA!)bS zEX%}nZTZr~gpXpLLY~81epkFd3coi~^c%+Sj<&6W%gyUSoNwp9&3g%R(s@;TMj3S8 z*HZI_f%!&g(ew7f!B;h>0^O2gA%uoR#+|{3hQtz)twc$Jbf&O~E$# z0${#*T6BFU;V}7b05C84__}Mpk71j9w}7+wX4RS;H05)HkDtHhaQ@kCWk@!89?6$|D817kFZU?T>x44`-57OgQmERxIF}Js6ZR0KP|B7~^0Ky5|`S l(R3RbP@+w0zM)!9D+haF0|xW*-DXdie5V0^gHMa*`v=EIlXw6C literal 0 HcmV?d00001 diff --git a/Release/main.d b/Release/main.d new file mode 100644 index 0000000..8d254c2 --- /dev/null +++ b/Release/main.d @@ -0,0 +1,5 @@ +main.o: ../main.c ../libs/led/led.h ../libs/uart/uart.h + +../libs/led/led.h: + +../libs/uart/uart.h: diff --git a/Release/main.o b/Release/main.o new file mode 100644 index 0000000000000000000000000000000000000000..32133c3a090470e54a20963de6e7bb90f5f0e745 GIT binary patch literal 1272 zcma)5O=}cE5Ut6?M2$ur#e;fC5Hx~xL~@Dvu_3POVUZQBF|5)!_hV1XBNK&{KDdQPcgx8 zw2bdr57qk96Va}mtMFNQI=1kidGN1U5m$km6~0;FeuYOBKB(~h3YT6GC#oa9-){M@ zeZK_F5^U5P8Wg?0pG7+wzmKwXOt@9LQRsKlWINu`Fizq^20>Q%8ijG*NlTtbN!Tv3 zI4J|SyFtE-YGI1){XIVniU7UwhP?T*$r<7+CB_Je#~%Wr+v7!Xh0f3kxdELWHZT%irSe!^=7UR~-Kh z^O;w|eB5Wm)Ln&v*!0I4wriU>+V}!$P)dlzAF*D5@+HuB3CbDg9^M0`4;^2f=JZi{ q<>m}@{6s$cJ(#*&%^4WSnk^VP8keE0%TZz"avr-lib-uart.lss" + @echo 'Finished building: $@' + @echo ' ' + +avr-lib-uart.hex: avr-lib-uart.elf + @echo 'Create Flash image (ihex format)' + -avr-objcopy -R .eeprom -R .fuse -R .lock -R .signature -O ihex avr-lib-uart.elf "avr-lib-uart.hex" + @echo 'Finished building: $@' + @echo ' ' + +avr-lib-uart.eep: avr-lib-uart.elf + @echo 'Create eeprom image (ihex format)' + -avr-objcopy -j .eeprom --no-change-warnings --change-section-lma .eeprom=0 -O ihex avr-lib-uart.elf "avr-lib-uart.eep" + @echo 'Finished building: $@' + @echo ' ' + +sizedummy: avr-lib-uart.elf + @echo 'Invoking: Print Size' + -avr-size --format=avr --mcu=atmega168p avr-lib-uart.elf + @echo 'Finished building: $@' + @echo ' ' + +# Other Targets +clean: + -$(RM) $(FLASH_IMAGE)$(ELFS)$(OBJS)$(ASM_DEPS)$(EEPROM_IMAGE)$(S_DEPS)$(SIZEDUMMY)$(S_UPPER_DEPS)$(LSS)$(C_DEPS) avr-lib-uart.elf + -@echo ' ' + +secondary-outputs: $(LSS) $(FLASH_IMAGE) $(EEPROM_IMAGE) $(SIZEDUMMY) + +.PHONY: all clean dependents + +-include ../makefile.targets diff --git a/Release/objects.mk b/Release/objects.mk new file mode 100644 index 0000000..742c2da --- /dev/null +++ b/Release/objects.mk @@ -0,0 +1,8 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +USER_OBJS := + +LIBS := + diff --git a/Release/sources.mk b/Release/sources.mk new file mode 100644 index 0000000..3408cad --- /dev/null +++ b/Release/sources.mk @@ -0,0 +1,27 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +OBJ_SRCS := +S_SRCS := +ASM_SRCS := +C_SRCS := +S_UPPER_SRCS := +O_SRCS := +FLASH_IMAGE := +ELFS := +OBJS := +ASM_DEPS := +EEPROM_IMAGE := +S_DEPS := +SIZEDUMMY := +S_UPPER_DEPS := +LSS := +C_DEPS := + +# Every subdirectory with source files must be described here +SUBDIRS := \ +libs/led \ +libs/uart \ +. \ + diff --git a/Release/subdir.mk b/Release/subdir.mk new file mode 100644 index 0000000..c4b52d4 --- /dev/null +++ b/Release/subdir.mk @@ -0,0 +1,24 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +# Add inputs and outputs from these tool invocations to the build variables +C_SRCS += \ +../main.c + +OBJS += \ +./main.o + +C_DEPS += \ +./main.d + + +# Each subdirectory must supply rules for building sources it contributes +%.o: ../%.c + @echo 'Building file: $<' + @echo 'Invoking: AVR Compiler' + avr-gcc -Wall -Os -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega168p -DF_CPU=8000000UL -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<" + @echo 'Finished building: $<' + @echo ' ' + + diff --git a/libs/led/led.c b/libs/led/led.c new file mode 100644 index 0000000..d0dba01 --- /dev/null +++ b/libs/led/led.c @@ -0,0 +1,62 @@ +/* + * led.c + * + * Created on: 26.07.2015 + * Author: Flo + */ + +#include "led.h" + +// init default configuration +volatile uint8_t led_flags = LED_ACTIVE_LOW; + +void led_initPorts() { + // define the following pins as OUTPUT + LED_DDR |= ((1< +#include + + +#ifndef LED_H_ +#define LED_H_ + + +#ifndef cbi + #define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) +#endif +#ifndef sbi + #define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) +#endif + +#define LED_PORT PORTD +#define LED_DDR DDRD + +#define LED_ACTIVE_LOW 0x01 +#define LED_ACTIVE_HIGH 0x02 + + +#if defined (__AVR_ATmega8__) + #define LED_BLUE PD5 + #define LED_RED PD6 + #define LED_GREEN PD7 +#elif defined (__AVR_ATmega168P__) + #define LED_BLUE PD5 + #define LED_RED PD6 + #define LED_GREEN PD7 +#elif defined (__AVR_ATtiny2313__) + #define LED_BLUE PD3 + #define LED_RED PD4 + #define LED_GREEN PD5 +#else + #if !defined(__COMPILING_AVR_LIBC__) + #warning "device type not defined" + #endif +#endif + + + +extern volatile uint8_t led_flags; + +void led_init(); +void led_config(uint8_t flags); +void led_initPorts(); + +void led_off(uint8_t pin); +void led_on(uint8_t pin); +void led_flash(uint8_t pin); + +void disco(); + + + +#endif /* LED_H_ */ diff --git a/libs/uart/uart.c b/libs/uart/uart.c new file mode 100644 index 0000000..c356a3a --- /dev/null +++ b/libs/uart/uart.c @@ -0,0 +1,125 @@ +/* + * uart.c + * + */ + + + +#include "uart.h" + +char uartReceiveBuffer[UART_RECV_BUFFER_SIZE]; + +void uart_init() { + #if defined (__AVR_ATmega8__) + // enable receive and transmit + UCSRB |= (1 << RXEN) | (1 << TXEN); + + // set frame format + //Set data frame format: asynchronous mode,no parity, 1 stop bit, 8 bit size + UCSRC=(1<> 8; + UBRRL = UBRR_VAL & 0xFF; + #elif defined (__AVR_ATmega168P__) + // enable receive and transmit + UCSR0B = (1<> 8; + UBRR0L = UBRR_VAL; + #else + # if !defined(__COMPILING_AVR_LIBC__) + # warning "device type not defined" + # endif + #endif +} + + +// ======================= SEND ======================= + + +void uart_sendChar(char c) { + #if defined (__AVR_ATmega8__) + while (!(UCSRA & (1< +#include + +#ifndef UART_H_ +#define UART_H_ + +#define UART_RECV_BUFFER_SIZE 33 // max 32 chars + '\0' + +//#define BAUD 19200UL // Baudrate +#define BAUD 9600UL // Baudrate + +// Berechnungen +//#define UBRR_VAL F_CPU/16/BAUD-1 +#define UBRR_VAL ((F_CPU+BAUD*8UL)/(BAUD*16UL)-1UL) // clever runden +#define BAUD_REAL (F_CPU/(16UL*(UBRR_VAL+1UL))) // Reale Baudrate +#define BAUD_ERROR ((BAUD_REAL*1000)/BAUD) // Fehler in Promille, 1000 = kein Fehler. + +#if ((BAUD_ERROR<990) || (BAUD_ERROR>1010)) + #error Baud rate error greater than 1% - too high! +#endif + + +void uart_init(); + +void uart_sendChar(char c); +void uart_sendString (char *s); +void uart_sendBinary(int c); +void uart_sendInt(int c); +void uart_sendHex(int c); +void uart_sendLF(); + + +char uart_receiveChar(); +char* uart_receiveString(); + +#endif /* UART_H_ */ diff --git a/main.c b/main.c new file mode 100644 index 0000000..c909f91 --- /dev/null +++ b/main.c @@ -0,0 +1,40 @@ +/* + * main.c + * + */ + +#ifndef F_CPU +// #define F_CPU 18432000UL + #define F_CPU 8000000UL +#endif + + +#include + +#include "libs/led/led.h" +#include "libs/uart/uart.h" + +int main (void) { + led_config(LED_ACTIVE_HIGH); + led_init(); + uart_init(); + + // forever loop + disco(); + while(1){ + uart_sendString("READY\n\0"); + + uint8_t status = 0; + if (status == 0) { + led_flash(LED_BLUE); + } + else { + led_flash(LED_RED); + } + + _delay_ms(1000); + }; + + // will never reach me... + return 0; +}