commit b757be1314e51828a6a2ca2d62bd74dea4406f98 Author: flo Date: Mon Sep 25 23:35:01 2017 +0200 Initial commit 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 0000000..f6ffd49 Binary files /dev/null and b/Release/avr-lib-uart.elf differ diff --git a/Release/avr-lib-uart.hex b/Release/avr-lib-uart.hex new file mode 100644 index 0000000..8581727 --- /dev/null +++ b/Release/avr-lib-uart.hex @@ -0,0 +1,57 @@ +:100000000C9434000C9451000C9451000C94510049 +:100010000C9451000C9451000C9451000C9451001C +:100020000C9451000C9451000C9451000C9451000C +:100030000C9451000C9451000C9451000C945100FC +:100040000C9451000C9451000C9451000C945100EC +:100050000C9451000C9451000C9451000C945100DC +:100060000C9451000C94510011241FBECFEFD4E02A +:10007000DEBFCDBF11E0A0E0B1E0EAE6F3E002C0F0 +:1000800005900D92AA30B107D9F721E0AAE0B1E0BE +:1000900001C01D92AB32B207E1F70E9464010C94DB +:1000A000B3010C94000088E18093C10086E0809346 +:1000B000C2001092C50083E38093C400089590911C +:1000C000C00095FFFCCF8093C6000895CF93DF93C7 +:1000D000EC018991882319F00E945F00FACFDF912B +:1000E000CF910895CF93DF93CDB7DEB727970FB6A3 +:1000F000F894DEBF0FBECDBF4AE0BE016F5F7F4FF9 +:100100000E947E01CE0101960E94660027960FB6DE +:10011000F894DEBF0FBECDBFDF91CF910895CF938E +:10012000DF93CDB7DEB727970FB6F894DEBF0FBECB +:10013000CDBF42E0BE016F5F7F4F0E947E01CE01C6 +:1001400001960E94660027960FB6F894DEBF0FBE98 +:10015000CDBFDF91CF910895CF93DF93CDB7DEB7B9 +:1001600027970FB6F894DEBF0FBECDBF40E1BE01AA +:100170006F5F7F4F0E947E01CE0101960E94660054 +:1001800027960FB6F894DEBF0FBECDBFDF91CF919B +:1001900008958AE00C945F008091C00087FFFCCF37 +:1001A0008091C60008951F93CF93DF930E94CC00E7 +:1001B000CAE0D1E01C2F105E8A3041F0882331F074 +:1001C0001C1721F089930E94CC00F6CF18828AE098 +:1001D00091E0DF91CF911F9108958AB1806E8AB925 +:1001E0008091000181FF03C08BB18F718BB9809129 +:1001F000000180FF03C08BB1806E8BB9089580939E +:10020000000108950C94ED00482F8091000181FFBA +:100210000BC09BB121E030E0042E01C0220F0A94F4 +:10022000EAF7209529232BB98091000180FF0AC0AD +:100230005BB121E030E0C90101C0880F4A95EAF7BF +:10024000852B8BB908959091000191FF0AC09BB155 +:1002500021E030E0082E01C0220F0A94EAF7292B92 +:100260002BB99091000190FF0DC04BB121E030E01F +:10027000B90102C0660F771F8A95E2F7CB0180951E +:1002800084238BB90895CF93C82F0E9423018FE157 +:100290009EE40197F1F700C000008C2F0E9404013A +:1002A0009FEF2AE683E0915020408040E1F700C0B4 +:1002B0000000CF91089585E00E94430186E00E94EE +:1002C000430187E00C94430182E00E94FF000E94FA +:1002D00002010E9453000E945B0181E091E00E94B4 +:1002E000660085E00E9443012FEF89E698E12150E6 +:1002F00080409040E1F700C00000EFCFBB274A30BC +:1003000031F4992322F4BDE2909581959F4F0C948E +:100310008A01BB27FB015527AA27880F991FAA1F0F +:10032000A41710F0A41B83955051B9F7A05DAA3310 +:1003300008F0A95DA193009779F7B111B1931192DB +:10034000CB010C94A301DC01FC01672F7191772391 +:10035000E1F7329704C07C916D9370836291AE1780 +:0A036000BF07C8F30895F894FFCF1B +:0A036A000152454144590A00000009 +:00000001FF diff --git a/Release/avr-lib-uart.lss b/Release/avr-lib-uart.lss new file mode 100644 index 0000000..e6fbce5 --- /dev/null +++ b/Release/avr-lib-uart.lss @@ -0,0 +1,446 @@ + +avr-lib-uart.elf: file format elf32-avr + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .data 0000000a 00800100 0000036a 000003fe 2**0 + CONTENTS, ALLOC, LOAD, DATA + 1 .text 0000036a 00000000 00000000 00000094 2**1 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 2 .bss 00000021 0080010a 0080010a 00000408 2**0 + ALLOC + 3 .comment 00000011 00000000 00000000 00000408 2**0 + CONTENTS, READONLY + 4 .note.gnu.avr.deviceinfo 00000040 00000000 00000000 0000041c 2**2 + CONTENTS, READONLY + +Disassembly of section .text: + +00000000 <__vectors>: + 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 0000000..da580a3 Binary files /dev/null and b/Release/libs/led/led.o differ diff --git a/Release/libs/led/subdir.mk b/Release/libs/led/subdir.mk new file mode 100644 index 0000000..f6afad7 --- /dev/null +++ b/Release/libs/led/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 += \ +../libs/led/led.c + +OBJS += \ +./libs/led/led.o + +C_DEPS += \ +./libs/led/led.d + + +# Each subdirectory must supply rules for building sources it contributes +libs/led/%.o: ../libs/led/%.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/Release/libs/uart/subdir.mk b/Release/libs/uart/subdir.mk new file mode 100644 index 0000000..d375e20 --- /dev/null +++ b/Release/libs/uart/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 += \ +../libs/uart/uart.c + +OBJS += \ +./libs/uart/uart.o + +C_DEPS += \ +./libs/uart/uart.d + + +# Each subdirectory must supply rules for building sources it contributes +libs/uart/%.o: ../libs/uart/%.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/Release/libs/uart/uart.d b/Release/libs/uart/uart.d new file mode 100644 index 0000000..d5d4e96 --- /dev/null +++ b/Release/libs/uart/uart.d @@ -0,0 +1,3 @@ +libs/uart/uart.o: ../libs/uart/uart.c ../libs/uart/uart.h + +../libs/uart/uart.h: diff --git a/Release/libs/uart/uart.o b/Release/libs/uart/uart.o new file mode 100644 index 0000000..8798d14 Binary files /dev/null and b/Release/libs/uart/uart.o differ 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 0000000..32133c3 Binary files /dev/null and b/Release/main.o differ diff --git a/Release/makefile b/Release/makefile new file mode 100644 index 0000000..eb19614 --- /dev/null +++ b/Release/makefile @@ -0,0 +1,91 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +-include ../makefile.init + +RM := rm -rf + +# All of the sources participating in the build are defined here +-include sources.mk +-include libs/uart/subdir.mk +-include libs/led/subdir.mk +-include subdir.mk +-include objects.mk + +ifneq ($(MAKECMDGOALS),clean) +ifneq ($(strip $(ASM_DEPS)),) +-include $(ASM_DEPS) +endif +ifneq ($(strip $(S_DEPS)),) +-include $(S_DEPS) +endif +ifneq ($(strip $(S_UPPER_DEPS)),) +-include $(S_UPPER_DEPS) +endif +ifneq ($(strip $(C_DEPS)),) +-include $(C_DEPS) +endif +endif + +-include ../makefile.defs + +# Add inputs and outputs from these tool invocations to the build variables +LSS += \ +avr-lib-uart.lss \ + +FLASH_IMAGE += \ +avr-lib-uart.hex \ + +EEPROM_IMAGE += \ +avr-lib-uart.eep \ + +SIZEDUMMY += \ +sizedummy \ + + +# All Target +all: avr-lib-uart.elf secondary-outputs + +# Tool invocations +avr-lib-uart.elf: $(OBJS) $(USER_OBJS) + @echo 'Building target: $@' + @echo 'Invoking: AVR C Linker' + avr-gcc -Wl,-Map,avr-lib-uart.map -mmcu=atmega168p -o "avr-lib-uart.elf" $(OBJS) $(USER_OBJS) $(LIBS) + @echo 'Finished building target: $@' + @echo ' ' + +avr-lib-uart.lss: avr-lib-uart.elf + @echo 'Invoking: AVR Create Extended Listing' + -avr-objdump -h -S avr-lib-uart.elf >"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; +}