From 6750a7afc55a287cbad9dc3f926a5f9c140a5d59 Mon Sep 17 00:00:00 2001 From: flo Date: Mon, 25 Sep 2017 23:34:02 +0200 Subject: [PATCH] Initial commit --- .cproject | 71 ++++ .project | 27 ++ .settings/de.innot.avreclipse.core.prefs | 28 ++ Release/avr-blink.map | 434 ++++++++++++++++++++++ Release/avr-lib-led.eep | 1 + Release/avr-lib-led.elf | Bin 0 -> 3212 bytes Release/avr-lib-led.hex | 27 ++ Release/avr-lib-led.lss | 193 ++++++++++ Release/avr-lib-led.map | 445 +++++++++++++++++++++++ Release/libs/led/led.d | 3 + Release/libs/led/led.o | Bin 0 -> 2284 bytes Release/libs/led/subdir.mk | 24 ++ Release/main.d | 3 + Release/main.o | Bin 0 -> 1052 bytes Release/makefile | 90 +++++ Release/objects.mk | 8 + Release/sources.mk | 26 ++ Release/subdir.mk | 24 ++ libs/led/led.c | 65 ++++ libs/led/led.h | 64 ++++ main.c | 36 ++ 21 files changed, 1569 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-led.eep create mode 100755 Release/avr-lib-led.elf create mode 100644 Release/avr-lib-led.hex create mode 100644 Release/avr-lib-led.lss create mode 100644 Release/avr-lib-led.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/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 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..5bcd26b --- /dev/null +++ b/.project @@ -0,0 +1,27 @@ + + + avr-lib-led + + + + + + 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-led.eep b/Release/avr-lib-led.eep new file mode 100644 index 0000000..1996e8f --- /dev/null +++ b/Release/avr-lib-led.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/Release/avr-lib-led.elf b/Release/avr-lib-led.elf new file mode 100755 index 0000000000000000000000000000000000000000..e3371d3abd270245c8d7989ee46c089019a9aa41 GIT binary patch literal 3212 zcmcInU1%It6uvuY+Nd!mRfMA0jTWr6ZnA6or&JTuZ5kVskfg<`beQhWCX3mb?e3(u z;?G8-#Z>9vrWS=-3ce^P(HA3PBKROm$%}nZM7Bk1-^wDGJ_zgg&CkxwG>R`haOa-y z{M~cTy>n;x)p*bLP$(okQpBL}P#c6jw+K;-xlM$HBG!sJAnGm80rP7RaL`V{p#CpD zLIqn+8OL&pFzSnK7~MB~G_6_v_59TzOTW&ZpKU6gElrm$T`8B8x!Pm5o;cS!z2c{Z zhT_M_VirS)$?1YIIa4?;LgSU1xg*m@_bYf7j3YC3Q-zZvR5w*$+$m1C&|>FwbE&m7 z6H?|Hhj{9w(}>yYiTH2;^@UQzlGi{ zFNirI-iBna_~7cg%deM?_lMgH?H6tN{PDV}H%bk~N%5xrJY1>=KMsD6Xed61aZWh; zmaA`FK7FydztDcn_5E}HTCp-85?!60kA&BD_3nBg+!omqiD6sBGK_~XxJMnk2k->7 zV^BaP2^(35i6Ws{8GTrbZrq$DTAFYMNHva!%{!PU!lxQo$W(&`?KNECGEuIq0RLFk zs9b3Tzg5Dkz&|eGd#gN|awUSNAG2I}RMOvw_)i4lKM7o@CZLEtz$aWAzFm3%v#Vz- zjzJ^xKMZ!nfua%i?}O)iMz? z1F)Y@xe^AJ{nv9X_Z+dF&VYYk06#1FGoO9HR}f-7#!BFHzAC06q;Y#5f;z z|30*_4Q>1>@EsVf5OKX3@QQn$8*!4pmF$_{1z@=!CF-Sm{|1)(aWh^4-lKP7G%AW% z1^gL!-jiH!4e%-Oce^+Syc;prx_A@tHsF;m-U=+QzXRB#F#0_h(C-c4H0`B)CxO3$ z$m{osfc=>O{s{OBHw5$l99XXRn*cr!TyfW9eiwk{{?4K{A1mS)=;iuCxH4XW4JnNN z{Qs_HO34l@w%vKcFrRdf2V&A+JUOc!Ldv_V(>VA_h9@XT9gR?X(j z;hdHMJfJ5mGpEL4J|6|Utz)P|Md|Vol%=MPw8aLirXgvhC8L`p`4*q2Sl7|Y%%W2AcCgf_mLGwEo$8`ul6p!T z8|va$P=O8G%!Y@xeAbVD@@2%RnQHpnT$X#`}6=W%k_ z8{c~~*m%5upzo>cd%)A{TSi%lw`Qxv^AOn$_g3|c7<)TPyFRiy6n}bX39;)LYxQ<> zI4?vbe<)*V`!HKMXCCo5yOxOkE<_S$CZijch#01&M~02Dh;|?sN$LmE2|aD3OuqL2 zi|&FI?*RL{zhlcKl9}t^qVTto@|U)AKi! zNA(EM?g7m1Rc8Czxw*O;{0Hck>==v0*~@{r2cWf92(EEE2IKKJ+D#a8yq92bSQ2>g F{sAO;csT$7 literal 0 HcmV?d00001 diff --git a/Release/avr-lib-led.hex b/Release/avr-lib-led.hex new file mode 100644 index 0000000..452d55a --- /dev/null +++ b/Release/avr-lib-led.hex @@ -0,0 +1,27 @@ +:100000000C9434000C9449000C9449000C94490061 +:100010000C9449000C9449000C9449000C9449003C +:100020000C9449000C9449000C9449000C9449002C +:100030000C9449000C9449000C9449000C9449001C +:100040000C9449000C9449000C9449000C9449000C +:100050000C9449000C9449000C9449000C944900FC +:100060000C9449000C94490011241FBECFEFD4E03A +:10007000DEBFCDBF11E0A0E0B1E0E2E8F1E002C0F8 +:1000800005900D92A230B107D9F70E94AB000C94F5 +:10009000BF000C9400008AB1806E8AB98091000183 +:1000A00081FF03C08BB18F7102C08BB1806E8BB9A1 +:1000B00008958093000108950C944B00982F80912F +:1000C00000014BB121E030E0B90102C0660F771F9B +:1000D0009A95E2F781FF04C0CB018095842302C08A +:1000E000CB01842B8BB90895982F809100014BB1DF +:1000F00021E030E0B90102C0660F771F9A95E2F760 +:1001000081FF03C0CB01842B03C0CB0180958423E6 +:100110008BB90895CF93C82F0E9474008FE19EE49D +:100120000197F1F700C000008C2F0E945E009FEF46 +:100130002AE683E0915020408040E1F700C00000B3 +:10014000CF91089585E00E948A0086E00E948A008F +:1001500087E00C948A0081E00E9459000E945C00B4 +:100160000E94A20085E00E948A002FEF89E698E1B4 +:10017000215080409040E1F700C00000F3CFF89498 +:02018000FFCFAF +:0201820001007A +:00000001FF diff --git a/Release/avr-lib-led.lss b/Release/avr-lib-led.lss new file mode 100644 index 0000000..313bce3 --- /dev/null +++ b/Release/avr-lib-led.lss @@ -0,0 +1,193 @@ + +avr-lib-led.elf: file format elf32-avr + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .data 00000002 00800100 00000182 000001f6 2**0 + CONTENTS, ALLOC, LOAD, DATA + 1 .text 00000182 00000000 00000000 00000074 2**1 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 2 .comment 00000011 00000000 00000000 000001f8 2**0 + CONTENTS, READONLY + 3 .note.gnu.avr.deviceinfo 00000040 00000000 00000000 0000020c 2**2 + CONTENTS, READONLY + +Disassembly of section .text: + +00000000 <__vectors>: + 0: 0c 94 34 00 jmp 0x68 ; 0x68 <__ctors_end> + 4: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 8: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + c: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 10: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 14: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 18: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 1c: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 20: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 24: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 28: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 2c: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 30: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 34: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 38: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 3c: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 40: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 44: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 48: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 4c: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 50: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 54: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 58: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 5c: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 60: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt> + 64: 0c 94 49 00 jmp 0x92 ; 0x92 <__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: e2 e8 ldi r30, 0x82 ; 130 + 7c: f1 e0 ldi r31, 0x01 ; 1 + 7e: 02 c0 rjmp .+4 ; 0x84 <__do_copy_data+0x10> + 80: 05 90 lpm r0, Z+ + 82: 0d 92 st X+, r0 + 84: a2 30 cpi r26, 0x02 ; 2 + 86: b1 07 cpc r27, r17 + 88: d9 f7 brne .-10 ; 0x80 <__do_copy_data+0xc> + 8a: 0e 94 ab 00 call 0x156 ; 0x156
+ 8e: 0c 94 bf 00 jmp 0x17e ; 0x17e <_exit> + +00000092 <__bad_interrupt>: + 92: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> + +00000096 : + 96: 8a b1 in r24, 0x0a ; 10 + 98: 80 6e ori r24, 0xE0 ; 224 + 9a: 8a b9 out 0x0a, r24 ; 10 + 9c: 80 91 00 01 lds r24, 0x0100 ; 0x800100 <__data_start> + a0: 81 ff sbrs r24, 1 + a2: 03 c0 rjmp .+6 ; 0xaa + a4: 8b b1 in r24, 0x0b ; 11 + a6: 8f 71 andi r24, 0x1F ; 31 + a8: 02 c0 rjmp .+4 ; 0xae + aa: 8b b1 in r24, 0x0b ; 11 + ac: 80 6e ori r24, 0xE0 ; 224 + ae: 8b b9 out 0x0b, r24 ; 11 + b0: 08 95 ret + +000000b2 : + b2: 80 93 00 01 sts 0x0100, r24 ; 0x800100 <__data_start> + b6: 08 95 ret + +000000b8 : + b8: 0c 94 4b 00 jmp 0x96 ; 0x96 + +000000bc : + bc: 98 2f mov r25, r24 + be: 80 91 00 01 lds r24, 0x0100 ; 0x800100 <__data_start> + c2: 4b b1 in r20, 0x0b ; 11 + c4: 21 e0 ldi r18, 0x01 ; 1 + c6: 30 e0 ldi r19, 0x00 ; 0 + c8: b9 01 movw r22, r18 + ca: 02 c0 rjmp .+4 ; 0xd0 + cc: 66 0f add r22, r22 + ce: 77 1f adc r23, r23 + d0: 9a 95 dec r25 + d2: e2 f7 brpl .-8 ; 0xcc + d4: 81 ff sbrs r24, 1 + d6: 04 c0 rjmp .+8 ; 0xe0 + d8: cb 01 movw r24, r22 + da: 80 95 com r24 + dc: 84 23 and r24, r20 + de: 02 c0 rjmp .+4 ; 0xe4 + e0: cb 01 movw r24, r22 + e2: 84 2b or r24, r20 + e4: 8b b9 out 0x0b, r24 ; 11 + e6: 08 95 ret + +000000e8 : + e8: 98 2f mov r25, r24 + ea: 80 91 00 01 lds r24, 0x0100 ; 0x800100 <__data_start> + ee: 4b b1 in r20, 0x0b ; 11 + f0: 21 e0 ldi r18, 0x01 ; 1 + f2: 30 e0 ldi r19, 0x00 ; 0 + f4: b9 01 movw r22, r18 + f6: 02 c0 rjmp .+4 ; 0xfc + f8: 66 0f add r22, r22 + fa: 77 1f adc r23, r23 + fc: 9a 95 dec r25 + fe: e2 f7 brpl .-8 ; 0xf8 + 100: 81 ff sbrs r24, 1 + 102: 03 c0 rjmp .+6 ; 0x10a + 104: cb 01 movw r24, r22 + 106: 84 2b or r24, r20 + 108: 03 c0 rjmp .+6 ; 0x110 + 10a: cb 01 movw r24, r22 + 10c: 80 95 com r24 + 10e: 84 23 and r24, r20 + 110: 8b b9 out 0x0b, r24 ; 11 + 112: 08 95 ret + +00000114 : + 114: cf 93 push r28 + 116: c8 2f mov r28, r24 + 118: 0e 94 74 00 call 0xe8 ; 0xe8 + 11c: 8f e1 ldi r24, 0x1F ; 31 + 11e: 9e e4 ldi r25, 0x4E ; 78 + 120: 01 97 sbiw r24, 0x01 ; 1 + 122: f1 f7 brne .-4 ; 0x120 + 124: 00 c0 rjmp .+0 ; 0x126 + 126: 00 00 nop + 128: 8c 2f mov r24, r28 + 12a: 0e 94 5e 00 call 0xbc ; 0xbc + 12e: 9f ef ldi r25, 0xFF ; 255 + 130: 2a e6 ldi r18, 0x6A ; 106 + 132: 83 e0 ldi r24, 0x03 ; 3 + 134: 91 50 subi r25, 0x01 ; 1 + 136: 20 40 sbci r18, 0x00 ; 0 + 138: 80 40 sbci r24, 0x00 ; 0 + 13a: e1 f7 brne .-8 ; 0x134 + 13c: 00 c0 rjmp .+0 ; 0x13e + 13e: 00 00 nop + 140: cf 91 pop r28 + 142: 08 95 ret + +00000144 : + 144: 85 e0 ldi r24, 0x05 ; 5 + 146: 0e 94 8a 00 call 0x114 ; 0x114 + 14a: 86 e0 ldi r24, 0x06 ; 6 + 14c: 0e 94 8a 00 call 0x114 ; 0x114 + 150: 87 e0 ldi r24, 0x07 ; 7 + 152: 0c 94 8a 00 jmp 0x114 ; 0x114 + +00000156
: + 156: 81 e0 ldi r24, 0x01 ; 1 + 158: 0e 94 59 00 call 0xb2 ; 0xb2 + 15c: 0e 94 5c 00 call 0xb8 ; 0xb8 + 160: 0e 94 a2 00 call 0x144 ; 0x144 + 164: 85 e0 ldi r24, 0x05 ; 5 + 166: 0e 94 8a 00 call 0x114 ; 0x114 + 16a: 2f ef ldi r18, 0xFF ; 255 + 16c: 89 e6 ldi r24, 0x69 ; 105 + 16e: 98 e1 ldi r25, 0x18 ; 24 + 170: 21 50 subi r18, 0x01 ; 1 + 172: 80 40 sbci r24, 0x00 ; 0 + 174: 90 40 sbci r25, 0x00 ; 0 + 176: e1 f7 brne .-8 ; 0x170 + 178: 00 c0 rjmp .+0 ; 0x17a + 17a: 00 00 nop + 17c: f3 cf rjmp .-26 ; 0x164 + +0000017e <_exit>: + 17e: f8 94 cli + +00000180 <__stop_program>: + 180: ff cf rjmp .-2 ; 0x180 <__stop_program> diff --git a/Release/avr-lib-led.map b/Release/avr-lib-led.map new file mode 100644 index 0000000..72c1c5b --- /dev/null +++ b/Release/avr-lib-led.map @@ -0,0 +1,445 @@ +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) + +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/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 0x182 + *(.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) + *(.init5) + *(.init5) + *(.init6) + *(.init6) + *(.init7) + *(.init7) + *(.init8) + *(.init8) + *(.init9) + .init9 0x000000000000008a 0x8 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o + *(.init9) + *(.text) + .text 0x0000000000000092 0x4 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o + 0x0000000000000092 __vector_22 + 0x0000000000000092 __vector_1 + 0x0000000000000092 __vector_24 + 0x0000000000000092 __vector_12 + 0x0000000000000092 __bad_interrupt + 0x0000000000000092 __vector_6 + 0x0000000000000092 __vector_3 + 0x0000000000000092 __vector_23 + 0x0000000000000092 __vector_25 + 0x0000000000000092 __vector_11 + 0x0000000000000092 __vector_13 + 0x0000000000000092 __vector_17 + 0x0000000000000092 __vector_19 + 0x0000000000000092 __vector_7 + 0x0000000000000092 __vector_5 + 0x0000000000000092 __vector_4 + 0x0000000000000092 __vector_9 + 0x0000000000000092 __vector_2 + 0x0000000000000092 __vector_21 + 0x0000000000000092 __vector_15 + 0x0000000000000092 __vector_8 + 0x0000000000000092 __vector_14 + 0x0000000000000092 __vector_10 + 0x0000000000000092 __vector_16 + 0x0000000000000092 __vector_18 + 0x0000000000000092 __vector_20 + .text 0x0000000000000096 0x0 ./libs/led/led.o + .text 0x0000000000000096 0x0 ./main.o + .text 0x0000000000000096 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text 0x0000000000000096 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + 0x0000000000000096 . = ALIGN (0x2) + *(.text.*) + .text.led_initPorts + 0x0000000000000096 0x1c ./libs/led/led.o + 0x0000000000000096 led_initPorts + .text.led_config + 0x00000000000000b2 0x6 ./libs/led/led.o + 0x00000000000000b2 led_config + .text.led_init + 0x00000000000000b8 0x4 ./libs/led/led.o + 0x00000000000000b8 led_init + .text.led_off 0x00000000000000bc 0x2c ./libs/led/led.o + 0x00000000000000bc led_off + .text.led_on 0x00000000000000e8 0x2c ./libs/led/led.o + 0x00000000000000e8 led_on + .text.led_flash + 0x0000000000000114 0x30 ./libs/led/led.o + 0x0000000000000114 led_flash + .text.disco 0x0000000000000144 0x12 ./libs/led/led.o + 0x0000000000000144 disco + .text.startup.main + 0x0000000000000156 0x28 ./main.o + 0x0000000000000156 main + .text.libgcc.mul + 0x000000000000017e 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text.libgcc.div + 0x000000000000017e 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text.libgcc 0x000000000000017e 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text.libgcc.prologue + 0x000000000000017e 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text.libgcc.builtins + 0x000000000000017e 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text.libgcc.fmul + 0x000000000000017e 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text.libgcc.fixed + 0x000000000000017e 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text.libgcc.mul + 0x000000000000017e 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + .text.libgcc.div + 0x000000000000017e 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + .text.libgcc 0x000000000000017e 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + .text.libgcc.prologue + 0x000000000000017e 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + .text.libgcc.builtins + 0x000000000000017e 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + .text.libgcc.fmul + 0x000000000000017e 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + .text.libgcc.fixed + 0x000000000000017e 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + 0x000000000000017e . = ALIGN (0x2) + *(.fini9) + .fini9 0x000000000000017e 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + 0x000000000000017e exit + 0x000000000000017e _exit + *(.fini9) + *(.fini8) + *(.fini8) + *(.fini7) + *(.fini7) + *(.fini6) + *(.fini6) + *(.fini5) + *(.fini5) + *(.fini4) + *(.fini4) + *(.fini3) + *(.fini3) + *(.fini2) + *(.fini2) + *(.fini1) + *(.fini1) + *(.fini0) + .fini0 0x000000000000017e 0x4 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + *(.fini0) + 0x0000000000000182 _etext = . + +.data 0x0000000000800100 0x2 load address 0x0000000000000182 + 0x0000000000800100 PROVIDE (__data_start, .) + *(.data) + .data 0x0000000000800100 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.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*) + .data.led_flags + 0x0000000000800100 0x1 ./libs/led/led.o + 0x0000000000800100 led_flags + *(.rodata) + *(.rodata*) + *(.gnu.linkonce.d*) + 0x0000000000800102 . = ALIGN (0x2) + *fill* 0x0000000000800101 0x1 + 0x0000000000800102 _edata = . + 0x0000000000800102 PROVIDE (__data_end, .) + +.bss 0x0000000000800102 0x0 + [!provide] PROVIDE (__bss_start, .) + *(.bss) + .bss 0x0000000000800102 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o + .bss 0x0000000000800102 0x0 ./libs/led/led.o + .bss 0x0000000000800102 0x0 ./main.o + .bss 0x0000000000800102 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .bss 0x0000000000800102 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + *(.bss*) + *(COMMON) + [!provide] PROVIDE (__bss_end, .) + 0x0000000000000182 __data_load_start = LOADADDR (.data) + 0x0000000000000184 __data_load_end = (__data_load_start + SIZEOF (.data)) + +.noinit 0x0000000000800102 0x0 + [!provide] PROVIDE (__noinit_start, .) + *(.noinit*) + [!provide] PROVIDE (__noinit_end, .) + 0x0000000000800102 _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 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-led.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..9cefe39118d24dda451632596c493866bb0fd53c GIT binary patch literal 2284 zcma)6OKcNY6upxP)SxuLkV2tIH6OJppdp}aX!%5nLihPK;xRNQnpR5ua}A zwjoFaDMZ1dtx&sWgA{h@Doa!rS+HSgP{kHS3hVToH*@2cY582~`JQv%z31I|AOF~M z`k3Q5qUK1yG?>V_RU$Vq*=Z8mWwW%&t(j`+)@*f3o0yrr%-?EhVm4E&PK#t} zEq6tJ-N%emGu!JO^;t*eitDa^`g^Tuku^`8YHe&M{n#E>y*+nqk5({ue){pgR_ISY z|KlI$p0g-(BDYQC&sV!&{!*Xn%XU?};`sbjrgo#w>~ZsZv(C;O>Fw_RGTYvJ=IbxA zo&G`pfPQ_$+k4O~3rmd|5qHH7kvG}X;I4dt$dTpf!qR%+!xrBHeAMDQmNCJ?l8@g; z59#%rS7f`gI>j?7zBa{MQoJ?A*=@sI@frlkm5uUM64?gtNwb_tID6iJNPoiFnTP(q zPdGdGBqKu!-)s0<30LqIxsvb>Gv6xJgtHS**2{Rp=}fmHg+V_rLD1h991nsRoQ}cS zo?Zi@(Mv(OFl6u#g>sk>R0hMP;ixYxM-?F}j^u`7ln+bA;UN=biUDD<82geYS1!un za3vpN)xj{xhnKDggSjZj-gpwt8;C@>>n@I>4W8dY{4qRlkLCc1mmC-OO5;2s_rth$ z6L1qSzk6#E-v!S*#GH2c|I|W&>zZ2N6|P0%o1OG8R4U?^3nMw7QGex` zr6!U?OGVB3rD8nFbf}b$;5OiZt+e>8O=G5!_`3M{aCEd#iukqfXP+RA??qp4XR3^I zwCxzgE(z>Sd7opB`~0rF{m4nL%Xh4%>+)^#9(5%X0}$pt`v}9_FL>VRlNh#MAGm%K zpqZoZ!LaqlpvQXZF`skf0~og6d2r6DX@B1$VC&tn^tcbI$0M=zz5(aAsi|IwfUS2Q zdWR5We|(avcN5sw8wdYCy`PhsE_m8AOOM~FdcOhNdXK<6Fx0fay9n6*wSgQ*jQ#OV zsoq0iTki!p->jPIJwU+L`wnCmV$|bXSG~W0S%dbCE#g--7*PCog0=V8;OTXl%fCa_ p0+cEidPe2H*L@k5B90vb;He#?p_PGYb)_aVi8e(dy_b;+N1>XPw literal 0 HcmV?d00001 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/main.d b/Release/main.d new file mode 100644 index 0000000..3273fcc --- /dev/null +++ b/Release/main.d @@ -0,0 +1,3 @@ +main.o: ../main.c ../libs/led/led.h + +../libs/led/led.h: diff --git a/Release/main.o b/Release/main.o new file mode 100644 index 0000000000000000000000000000000000000000..1ce25c6e01319aedd1bff7e40970f87f833d9a4e GIT binary patch literal 1052 zcma))&rcIU6vyAP4GK|&9_3QhXidxjh6@C=2C*KhAtEPDHcPv}Cf&B#9TVUp9ypM2 z@ZiBehd)IxgqvyNy?(zlJFsnH^d)cR^M1^{w>$6iM&p&|dE&&AExEQt&c;Me5L_|| zRhg6<^5w_WHxZ{N#+v_idhz||+~#rZYt8#D=SV-7`uh4xrCNWx{kXEEmeo^p$M90D zRg(Uo81;ub5%C4h6vT(;ChTWdzW!hayjHO9f}a=c`&Ufp59YC6_b^(&G?eYjxUA-$ zD)zFJ{!I61XEaEZWsFl*3H zy#;*<<(UO2nhI0Zt>#;7Mmv-^KW8_5e IIdS*>0eg37D*ylh literal 0 HcmV?d00001 diff --git a/Release/makefile b/Release/makefile new file mode 100644 index 0000000..e21716f --- /dev/null +++ b/Release/makefile @@ -0,0 +1,90 @@ +################################################################################ +# 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/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-led.lss \ + +FLASH_IMAGE += \ +avr-lib-led.hex \ + +EEPROM_IMAGE += \ +avr-lib-led.eep \ + +SIZEDUMMY += \ +sizedummy \ + + +# All Target +all: avr-lib-led.elf secondary-outputs + +# Tool invocations +avr-lib-led.elf: $(OBJS) $(USER_OBJS) + @echo 'Building target: $@' + @echo 'Invoking: AVR C Linker' + avr-gcc -Wl,-Map,avr-lib-led.map -mmcu=atmega168p -o "avr-lib-led.elf" $(OBJS) $(USER_OBJS) $(LIBS) + @echo 'Finished building target: $@' + @echo ' ' + +avr-lib-led.lss: avr-lib-led.elf + @echo 'Invoking: AVR Create Extended Listing' + -avr-objdump -h -S avr-lib-led.elf >"avr-lib-led.lss" + @echo 'Finished building: $@' + @echo ' ' + +avr-lib-led.hex: avr-lib-led.elf + @echo 'Create Flash image (ihex format)' + -avr-objcopy -R .eeprom -R .fuse -R .lock -R .signature -O ihex avr-lib-led.elf "avr-lib-led.hex" + @echo 'Finished building: $@' + @echo ' ' + +avr-lib-led.eep: avr-lib-led.elf + @echo 'Create eeprom image (ihex format)' + -avr-objcopy -j .eeprom --no-change-warnings --change-section-lma .eeprom=0 -O ihex avr-lib-led.elf "avr-lib-led.eep" + @echo 'Finished building: $@' + @echo ' ' + +sizedummy: avr-lib-led.elf + @echo 'Invoking: Print Size' + -avr-size --format=avr --mcu=atmega168p avr-lib-led.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-led.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..1761913 --- /dev/null +++ b/Release/sources.mk @@ -0,0 +1,26 @@ +################################################################################ +# 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 \ +. \ + 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..7e88ebf --- /dev/null +++ b/libs/led/led.c @@ -0,0 +1,65 @@ +/* + * 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 led_disco(); + + + +#endif /* LED_H_ */ diff --git a/main.c b/main.c new file mode 100644 index 0000000..f585cf7 --- /dev/null +++ b/main.c @@ -0,0 +1,36 @@ +/* + * main.c + * + */ + +#ifndef F_CPU +// #define F_CPU 18432000UL + #define F_CPU 8000000UL +#endif + + +#include + +#include "libs/led/led.h" + +int main (void) { + led_config(LED_ACTIVE_LOW); led_init(); +// led_config(LED_ACTIVE_HIGH); led_init(); + + // forever loop + disco(); + while(1){ + 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; +}