From 9086767475dad7973b2a5b600908c6bbb6054fd5 Mon Sep 17 00:00:00 2001 From: flo Date: Mon, 25 Sep 2017 23:32:42 +0200 Subject: [PATCH] Initial commit --- .cproject | 71 ++++ .project | 27 ++ .settings/de.innot.avreclipse.core.prefs | 28 ++ Release/avr-blink.map | 434 ++++++++++++++++++++ Release/avr-lib-lcd.eep | 1 + Release/avr-lib-lcd.elf | Bin 0 -> 4016 bytes Release/avr-lib-lcd.hex | 52 +++ Release/avr-lib-lcd.lss | 398 +++++++++++++++++++ Release/avr-lib-lcd.map | 479 +++++++++++++++++++++++ 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/lcd/hd44780/hd44780.d | 4 + Release/libs/lcd/hd44780/hd44780.o | Bin 0 -> 3140 bytes Release/libs/lcd/hd44780/subdir.mk | 24 ++ Release/libs/lcd/subdir.mk | 8 + Release/libs/led/led.d | 3 + Release/libs/led/led.o | Bin 0 -> 2292 bytes Release/libs/led/subdir.mk | 24 ++ Release/main.d | 5 + Release/main.o | Bin 0 -> 1272 bytes Release/makefile | 91 +++++ Release/objects.mk | 8 + Release/sources.mk | 27 ++ Release/subdir.mk | 24 ++ libs/lcd/hd44780/hd44780.c | 177 +++++++++ libs/lcd/hd44780/hd44780.h | 155 ++++++++ libs/led/led.c | 65 +++ libs/led/led.h | 64 +++ main.c | 41 ++ 32 files changed, 2876 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-lcd.eep create mode 100755 Release/avr-lib-lcd.elf create mode 100644 Release/avr-lib-lcd.hex create mode 100644 Release/avr-lib-lcd.lss create mode 100644 Release/avr-lib-lcd.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/lcd/hd44780/hd44780.d create mode 100644 Release/libs/lcd/hd44780/hd44780.o create mode 100644 Release/libs/lcd/hd44780/subdir.mk create mode 100644 Release/libs/lcd/subdir.mk 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/lcd/hd44780/hd44780.c create mode 100644 libs/lcd/hd44780/hd44780.h 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..46ae798 --- /dev/null +++ b/.project @@ -0,0 +1,27 @@ + + + avr-lib-lcd + + + + + + 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-lcd.eep b/Release/avr-lib-lcd.eep new file mode 100644 index 0000000..1996e8f --- /dev/null +++ b/Release/avr-lib-lcd.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/Release/avr-lib-lcd.elf b/Release/avr-lib-lcd.elf new file mode 100755 index 0000000000000000000000000000000000000000..4965d654e75496d5be486b7a5a59820edb2114f4 GIT binary patch literal 4016 zcmcInZ)_7~7=N!DICXX#Q3H{%A|xPc*Us@z5l5iR1%$Z`#Kd^HwYRQey{p$7|6;;z zfP+C?yS35~BgBMHs7cX)ON^9nL^1P&i7_TprXm{5wn&`vrT(6`ckAtj#xFd}d++mm z{y*>g-h17_z}C%zATWzutc_Wy0m7J@u{oF?tb_vU6dOJ_Q*Q z46Z{6Mq@6CFe+0G7|r*5)GV$2e02Pq{12DDx>S=tlh5Y!V}ImbxjBi4hCcFT@B41b zozjKM)Y}-04P*^vV8lo=p|?<$JDweU!-c1z93QDj8^cVfNLQw|uuL6UY{@Rp`|=}# zE7w`IxAs(eY^t|Vp8HZT(ubG0Fdu%By#C#`jN8zYJjix*_(~nBVT0G-`$;%CImL2} zoq*(Zc6xlpjYIili>J|Oyw2sL$%^!mygN0(-r~>xd?on6sUtrQq~XZ|8RX6;4rWF& z*}n8(Ec0Y$q%w7mQI1Wg+^O@3+?O^E5;yP*_sLOAuFuTW8(dG?UgWyU27f)Bx9Y1% z_h$!#{Ub-S#+ye+2FKFBSQ_I;iZYl#Ic7=R$Uk`NCwNxs^D55E z_pI+ORdo1XotS@H^7$t!(m~(ai4X?%Y}cHe(O#A_UJ-IeTP6HQhp!Fa5{@O0E?F?) zPJPDij9yDpXX8VKp{n89VbZg&zqbALsS%1CI&g?`M|y8~5A;rX`-KXz zcKejjn>;8`jQpdMb1zRBH>(m=35r&mtV$LV;|a<~EA}dLr(VN&ALD08l8~(vin~`g ze(Xl(`r;O&F=6iPAESSz3Zp`^?%AtqyO+fm<85i$xba!f@}_M&p71ny*Lv$2D~I%H z40@L~>}QWD`stiVJfCh1W*EcsWhi4nRx;aw#vD|&Fgi0O?kQ5h`kREC5+ zhbb&)lZE@hub(!WEL4Mk-i8-|f5CBm`ei-wj>1B4YJ-|bz4c)?h;P;_E59WEm$1&UW?*N}E-~p;e zybm#VaYWd~E`z5#n~3lg%y$2895`>oWIq9%z_Flpq5Smu@J`2@EYtwo<1GZX=l44F zYaKWMT&i!f@QTAf2yC5m>hA#X1q|9Rs^>6xd;Ww2zYDw$^;`C5fvx&zeLn!ciC9mW z@jiC=Uvl6t9r#-Z9s}NoeDlqCzXLPYOAo&OcR1#d<8rDEG9N_Lj~m!+zMs{2GZp|_ zMD?x!w)eY|^yWQ4>+>?O)gSGj2&}{8QH*Mriz&e8!PEDd^6dwvGqlje{lH(K9?itG z_ct*bOq>R9&wmEkA`kMPbLcNP@MW^M)jJ0K8AR6l|K_m&(}7($d!L#isQw3mH=*8n zkP&_a*xvsV2d)DynE9#R)xh@kei->m*u~aEZ|^qA@fXjg?{_hU|zsVl) zse>ANcFQ4ekcnbji}<1_7MZO@rZv#S89f>kH95@r1G1)?pexkSuzHOT-rd2FC@WG& zx6E0!M`uwfqEK9UUqtt+2piYcm>AR4uqH(T_sBtA)x`RG?h%r7sU-A+-L#>7gNOo} zw{H`-2DUY|7mL&39aFm_iX2BoNz;)*m-k_sj@VG*{q^8Gq>va-Y0oyVR%*VMK|bb~z-fip|7Ug@3h8zP7}#=27Ch7E!{G$}+YfI-}7zkK5TT z#k*j@8=28+NbZz+x@{{=MYc6JZQIbkqct$AEm5S6o!%WWq>4c`wx0*)nS!d)83}Wi zx@u819VK8fc#m{$O4ZX|cF9s~M!}-3J=)+MZGqPRD2T6GXJ;vBJ)JLe#r-R%3*k&C z5)aa8E$*JRm&J~Xs{&bYH%{HmBfADZfj~>^_LpWa2)zQfjP~>C!sSjs^?QoL%6`!VeCmOcP%C4: + 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: e0 e2 ldi r30, 0x20 ; 32 + 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: ae 30 cpi r26, 0x0E ; 14 + 86: b1 07 cpc r27, r17 + 88: d9 f7 brne .-10 ; 0x80 <__do_copy_data+0xc> + 8a: 0e 94 74 01 call 0x2e8 ; 0x2e8
+ 8e: 0c 94 8e 01 jmp 0x31c ; 0x31c <_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: 45 9a sbi 0x08, 5 ; 8 + 158: 85 e3 ldi r24, 0x35 ; 53 + 15a: 8a 95 dec r24 + 15c: f1 f7 brne .-4 ; 0x15a + 15e: 00 00 nop + 160: 45 98 cbi 0x08, 5 ; 8 + 162: 08 95 ret + +00000164 : + 164: 98 b1 in r25, 0x08 ; 8 + 166: 90 7f andi r25, 0xF0 ; 240 + 168: 98 b9 out 0x08, r25 ; 8 + 16a: 98 b1 in r25, 0x08 ; 8 + 16c: 82 95 swap r24 + 16e: 8f 70 andi r24, 0x0F ; 15 + 170: 98 2b or r25, r24 + 172: 98 b9 out 0x08, r25 ; 8 + 174: 0c 94 ab 00 jmp 0x156 ; 0x156 + +00000178 : + 178: cf 93 push r28 + 17a: c8 2f mov r28, r24 + 17c: 44 9a sbi 0x08, 4 ; 8 + 17e: 0e 94 b2 00 call 0x164 ; 0x164 + 182: 8c 2f mov r24, r28 + 184: 82 95 swap r24 + 186: 80 7f andi r24, 0xF0 ; 240 + 188: 0e 94 b2 00 call 0x164 ; 0x164 + 18c: 8a e7 ldi r24, 0x7A ; 122 + 18e: 8a 95 dec r24 + 190: f1 f7 brne .-4 ; 0x18e + 192: 00 c0 rjmp .+0 ; 0x194 + 194: cf 91 pop r28 + 196: 08 95 ret + +00000198 : + 198: cf 93 push r28 + 19a: c8 2f mov r28, r24 + 19c: 44 98 cbi 0x08, 4 ; 8 + 19e: 0e 94 b2 00 call 0x164 ; 0x164 + 1a2: 8c 2f mov r24, r28 + 1a4: 82 95 swap r24 + 1a6: 80 7f andi r24, 0xF0 ; 240 + 1a8: 0e 94 b2 00 call 0x164 ; 0x164 + 1ac: 80 e7 ldi r24, 0x70 ; 112 + 1ae: 8a 95 dec r24 + 1b0: f1 f7 brne .-4 ; 0x1ae + 1b2: cf 91 pop r28 + 1b4: 08 95 ret + +000001b6 : + 1b6: 81 e0 ldi r24, 0x01 ; 1 + 1b8: 0e 94 cc 00 call 0x198 ; 0x198 + 1bc: 8f e9 ldi r24, 0x9F ; 159 + 1be: 9f e0 ldi r25, 0x0F ; 15 + 1c0: 01 97 sbiw r24, 0x01 ; 1 + 1c2: f1 f7 brne .-4 ; 0x1c0 + 1c4: 00 c0 rjmp .+0 ; 0x1c6 + 1c6: 00 00 nop + 1c8: 08 95 ret + +000001ca : + 1ca: 87 b1 in r24, 0x07 ; 7 + 1cc: 8f 63 ori r24, 0x3F ; 63 + 1ce: 87 b9 out 0x07, r24 ; 7 + 1d0: 88 b1 in r24, 0x08 ; 8 + 1d2: 80 7c andi r24, 0xC0 ; 192 + 1d4: 88 b9 out 0x08, r24 ; 8 + 1d6: 8f e2 ldi r24, 0x2F ; 47 + 1d8: 95 e7 ldi r25, 0x75 ; 117 + 1da: 01 97 sbiw r24, 0x01 ; 1 + 1dc: f1 f7 brne .-4 ; 0x1da + 1de: 00 c0 rjmp .+0 ; 0x1e0 + 1e0: 00 00 nop + 1e2: 80 e3 ldi r24, 0x30 ; 48 + 1e4: 0e 94 b2 00 call 0x164 ; 0x164 + 1e8: 8f e0 ldi r24, 0x0F ; 15 + 1ea: 97 e2 ldi r25, 0x27 ; 39 + 1ec: 01 97 sbiw r24, 0x01 ; 1 + 1ee: f1 f7 brne .-4 ; 0x1ec + 1f0: 00 c0 rjmp .+0 ; 0x1f2 + 1f2: 00 00 nop + 1f4: 0e 94 ab 00 call 0x156 ; 0x156 + 1f8: 8f ec ldi r24, 0xCF ; 207 + 1fa: 97 e0 ldi r25, 0x07 ; 7 + 1fc: 01 97 sbiw r24, 0x01 ; 1 + 1fe: f1 f7 brne .-4 ; 0x1fc + 200: 00 c0 rjmp .+0 ; 0x202 + 202: 00 00 nop + 204: 0e 94 ab 00 call 0x156 ; 0x156 + 208: 8f ec ldi r24, 0xCF ; 207 + 20a: 97 e0 ldi r25, 0x07 ; 7 + 20c: 01 97 sbiw r24, 0x01 ; 1 + 20e: f1 f7 brne .-4 ; 0x20c + 210: 00 c0 rjmp .+0 ; 0x212 + 212: 00 00 nop + 214: 80 e2 ldi r24, 0x20 ; 32 + 216: 0e 94 b2 00 call 0x164 ; 0x164 + 21a: 8f e0 ldi r24, 0x0F ; 15 + 21c: 97 e2 ldi r25, 0x27 ; 39 + 21e: 01 97 sbiw r24, 0x01 ; 1 + 220: f1 f7 brne .-4 ; 0x21e + 222: 00 c0 rjmp .+0 ; 0x224 + 224: 00 00 nop + 226: 88 e2 ldi r24, 0x28 ; 40 + 228: 0e 94 cc 00 call 0x198 ; 0x198 + 22c: 8c e0 ldi r24, 0x0C ; 12 + 22e: 0e 94 cc 00 call 0x198 ; 0x198 + 232: 86 e0 ldi r24, 0x06 ; 6 + 234: 0e 94 cc 00 call 0x198 ; 0x198 + 238: 0c 94 db 00 jmp 0x1b6 ; 0x1b6 + +0000023c : + 23c: 82 e0 ldi r24, 0x02 ; 2 + 23e: 0e 94 cc 00 call 0x198 ; 0x198 + 242: 8f e9 ldi r24, 0x9F ; 159 + 244: 9f e0 ldi r25, 0x0F ; 15 + 246: 01 97 sbiw r24, 0x01 ; 1 + 248: f1 f7 brne .-4 ; 0x246 + 24a: 00 c0 rjmp .+0 ; 0x24c + 24c: 00 00 nop + 24e: 08 95 ret + +00000250 : + 250: 62 30 cpi r22, 0x02 ; 2 + 252: 59 f0 breq .+22 ; 0x26a + 254: 18 f4 brcc .+6 ; 0x25c + 256: 61 30 cpi r22, 0x01 ; 1 + 258: 31 f0 breq .+12 ; 0x266 + 25a: 08 95 ret + 25c: 63 30 cpi r22, 0x03 ; 3 + 25e: 39 f0 breq .+14 ; 0x26e + 260: 64 30 cpi r22, 0x04 ; 4 + 262: 39 f0 breq .+14 ; 0x272 + 264: 08 95 ret + 266: 80 58 subi r24, 0x80 ; 128 + 268: 05 c0 rjmp .+10 ; 0x274 + 26a: 80 54 subi r24, 0x40 ; 64 + 26c: 03 c0 rjmp .+6 ; 0x274 + 26e: 80 57 subi r24, 0x70 ; 112 + 270: 01 c0 rjmp .+2 ; 0x274 + 272: 80 53 subi r24, 0x30 ; 48 + 274: 0c 94 cc 00 jmp 0x198 ; 0x198 + +00000278 : + 278: cf 93 push r28 + 27a: df 93 push r29 + 27c: ec 01 movw r28, r24 + 27e: 89 91 ld r24, Y+ + 280: 88 23 and r24, r24 + 282: 19 f0 breq .+6 ; 0x28a + 284: 0e 94 bc 00 call 0x178 ; 0x178 + 288: fa cf rjmp .-12 ; 0x27e + 28a: df 91 pop r29 + 28c: cf 91 pop r28 + 28e: 08 95 ret + +00000290 : + 290: ef 92 push r14 + 292: ff 92 push r15 + 294: 0f 93 push r16 + 296: 1f 93 push r17 + 298: cf 93 push r28 + 29a: df 93 push r29 + 29c: 00 d0 rcall .+0 ; 0x29e + 29e: cd b7 in r28, 0x3d ; 61 + 2a0: de b7 in r29, 0x3e ; 62 + 2a2: 28 e0 ldi r18, 0x08 ; 8 + 2a4: 82 9f mul r24, r18 + 2a6: c0 01 movw r24, r0 + 2a8: 11 24 eor r1, r1 + 2aa: 80 64 ori r24, 0x40 ; 64 + 2ac: 69 83 std Y+1, r22 ; 0x01 + 2ae: 7a 83 std Y+2, r23 ; 0x02 + 2b0: 0e 94 cc 00 call 0x198 ; 0x198 + 2b4: 69 81 ldd r22, Y+1 ; 0x01 + 2b6: e6 2e mov r14, r22 + 2b8: 7a 81 ldd r23, Y+2 ; 0x02 + 2ba: f7 2e mov r15, r23 + 2bc: 87 01 movw r16, r14 + 2be: 08 5f subi r16, 0xF8 ; 248 + 2c0: 1f 4f sbci r17, 0xFF ; 255 + 2c2: f7 01 movw r30, r14 + 2c4: 81 91 ld r24, Z+ + 2c6: 7f 01 movw r14, r30 + 2c8: 0e 94 bc 00 call 0x178 ; 0x178 + 2cc: e0 16 cp r14, r16 + 2ce: f1 06 cpc r15, r17 + 2d0: c1 f7 brne .-16 ; 0x2c2 + 2d2: 80 e8 ldi r24, 0x80 ; 128 + 2d4: 0f 90 pop r0 + 2d6: 0f 90 pop r0 + 2d8: df 91 pop r29 + 2da: cf 91 pop r28 + 2dc: 1f 91 pop r17 + 2de: 0f 91 pop r16 + 2e0: ff 90 pop r15 + 2e2: ef 90 pop r14 + 2e4: 0c 94 cc 00 jmp 0x198 ; 0x198 + +000002e8
: + 2e8: 81 e0 ldi r24, 0x01 ; 1 + 2ea: 0e 94 59 00 call 0xb2 ; 0xb2 + 2ee: 0e 94 5c 00 call 0xb8 ; 0xb8 + 2f2: 0e 94 a2 00 call 0x144 ; 0x144 + 2f6: 0e 94 e5 00 call 0x1ca ; 0x1ca + 2fa: 81 e0 ldi r24, 0x01 ; 1 + 2fc: 91 e0 ldi r25, 0x01 ; 1 + 2fe: 0e 94 3c 01 call 0x278 ; 0x278 + 302: 85 e0 ldi r24, 0x05 ; 5 + 304: 0e 94 8a 00 call 0x114 ; 0x114 + 308: 2f ef ldi r18, 0xFF ; 255 + 30a: 89 e6 ldi r24, 0x69 ; 105 + 30c: 98 e1 ldi r25, 0x18 ; 24 + 30e: 21 50 subi r18, 0x01 ; 1 + 310: 80 40 sbci r24, 0x00 ; 0 + 312: 90 40 sbci r25, 0x00 ; 0 + 314: e1 f7 brne .-8 ; 0x30e + 316: 00 c0 rjmp .+0 ; 0x318 + 318: 00 00 nop + 31a: f3 cf rjmp .-26 ; 0x302 + +0000031c <_exit>: + 31c: f8 94 cli + +0000031e <__stop_program>: + 31e: ff cf rjmp .-2 ; 0x31e <__stop_program> diff --git a/Release/avr-lib-lcd.map b/Release/avr-lib-lcd.map new file mode 100644 index 0000000..4b3bab2 --- /dev/null +++ b/Release/avr-lib-lcd.map @@ -0,0 +1,479 @@ +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 ./libs/lcd/hd44780/hd44780.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 0x320 + *(.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 ./libs/lcd/hd44780/hd44780.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.led_disco + 0x0000000000000144 0x12 ./libs/led/led.o + 0x0000000000000144 led_disco + .text.lcd_enable + 0x0000000000000156 0xe ./libs/lcd/hd44780/hd44780.o + .text.lcd_out 0x0000000000000164 0x14 ./libs/lcd/hd44780/hd44780.o + .text.lcd_data + 0x0000000000000178 0x20 ./libs/lcd/hd44780/hd44780.o + 0x0000000000000178 lcd_data + .text.lcd_command + 0x0000000000000198 0x1e ./libs/lcd/hd44780/hd44780.o + 0x0000000000000198 lcd_command + .text.lcd_clear + 0x00000000000001b6 0x14 ./libs/lcd/hd44780/hd44780.o + 0x00000000000001b6 lcd_clear + .text.lcd_init + 0x00000000000001ca 0x72 ./libs/lcd/hd44780/hd44780.o + 0x00000000000001ca lcd_init + .text.lcd_home + 0x000000000000023c 0x14 ./libs/lcd/hd44780/hd44780.o + 0x000000000000023c lcd_home + .text.lcd_setcursor + 0x0000000000000250 0x28 ./libs/lcd/hd44780/hd44780.o + 0x0000000000000250 lcd_setcursor + .text.lcd_string + 0x0000000000000278 0x18 ./libs/lcd/hd44780/hd44780.o + 0x0000000000000278 lcd_string + .text.lcd_generatechar + 0x0000000000000290 0x58 ./libs/lcd/hd44780/hd44780.o + 0x0000000000000290 lcd_generatechar + .text.startup.main + 0x00000000000002e8 0x34 ./main.o + 0x00000000000002e8 main + .text.libgcc.mul + 0x000000000000031c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text.libgcc.div + 0x000000000000031c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text.libgcc 0x000000000000031c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text.libgcc.prologue + 0x000000000000031c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text.libgcc.builtins + 0x000000000000031c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text.libgcc.fmul + 0x000000000000031c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text.libgcc.fixed + 0x000000000000031c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .text.libgcc.mul + 0x000000000000031c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + .text.libgcc.div + 0x000000000000031c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + .text.libgcc 0x000000000000031c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + .text.libgcc.prologue + 0x000000000000031c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + .text.libgcc.builtins + 0x000000000000031c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + .text.libgcc.fmul + 0x000000000000031c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + .text.libgcc.fixed + 0x000000000000031c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + 0x000000000000031c . = ALIGN (0x2) + *(.fini9) + .fini9 0x000000000000031c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + 0x000000000000031c exit + 0x000000000000031c _exit + *(.fini9) + *(.fini8) + *(.fini8) + *(.fini7) + *(.fini7) + *(.fini6) + *(.fini6) + *(.fini5) + *(.fini5) + *(.fini4) + *(.fini4) + *(.fini3) + *(.fini3) + *(.fini2) + *(.fini2) + *(.fini1) + *(.fini1) + *(.fini0) + .fini0 0x000000000000031c 0x4 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + *(.fini0) + 0x0000000000000320 _etext = . + +.data 0x0000000000800100 0xe load address 0x0000000000000320 + 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 ./libs/lcd/hd44780/hd44780.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 0x0000000000800101 0xc ./main.o + *(.rodata*) + *(.gnu.linkonce.d*) + 0x000000000080010e . = ALIGN (0x2) + *fill* 0x000000000080010d 0x1 + 0x000000000080010e _edata = . + 0x000000000080010e PROVIDE (__data_end, .) + +.bss 0x000000000080010e 0x0 + [!provide] PROVIDE (__bss_start, .) + *(.bss) + .bss 0x000000000080010e 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o + .bss 0x000000000080010e 0x0 ./libs/led/led.o + .bss 0x000000000080010e 0x0 ./libs/lcd/hd44780/hd44780.o + .bss 0x000000000080010e 0x0 ./main.o + .bss 0x000000000080010e 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o) + .bss 0x000000000080010e 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o) + *(.bss*) + *(COMMON) + [!provide] PROVIDE (__bss_end, .) + 0x0000000000000320 __data_load_start = LOADADDR (.data) + 0x000000000000032e __data_load_end = (__data_load_start + SIZEOF (.data)) + +.noinit 0x000000000080010e 0x0 + [!provide] PROVIDE (__noinit_start, .) + *(.noinit*) + [!provide] PROVIDE (__noinit_end, .) + 0x000000000080010e _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 ./libs/lcd/hd44780/hd44780.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-lcd.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/lcd/hd44780/hd44780.d b/Release/libs/lcd/hd44780/hd44780.d new file mode 100644 index 0000000..919cf03 --- /dev/null +++ b/Release/libs/lcd/hd44780/hd44780.d @@ -0,0 +1,4 @@ +libs/lcd/hd44780/hd44780.o: ../libs/lcd/hd44780/hd44780.c \ + ../libs/lcd/hd44780/hd44780.h + +../libs/lcd/hd44780/hd44780.h: diff --git a/Release/libs/lcd/hd44780/hd44780.o b/Release/libs/lcd/hd44780/hd44780.o new file mode 100644 index 0000000000000000000000000000000000000000..68d1f81a08d023fad0897cc9be01f59487148ed0 GIT binary patch literal 3140 zcma)8U1*zC7=FKeb;eoRHP$)jv{B2fKYXhr=p6o(ZC!^Hm35m#!H_1QjkIY^GMPna z+B#dupv}_IP=wv;g+i}JFNENQ>_)mP83?v?!zmQjLSdKndCvEp$)Sq_%U3p1nT#qz>< zX?nQ)VtKKCR%EGoDAI*9m(HTxhr$4+N1c|Ty?CU=U4qBrj+N3s`{n+C! zm_={9wJw`6{02*L{3aC2pO;Gh4BGo>J?{FKi)+?bg{fz)bykzga)B$mcXjJ(W3i>U zR9r5~&7ZITcD-$7{946oYRxB76C)GMO^yBTjEvoPCaqw!<=y+%SYgzne`W8+E^9OY zN8?Q64Aoi+jfJh5do!#jUB{0f4Yzf@bN2ag#Cgp*tWL}PG0(J4Hnz-|z3s$BYzdfQ za9bXR=gq2jW2+hX4TC=k{FcEFRx!cG7H3qOgTH=Vb!-Fj0#e68RkLN6yzMd84S<_w zOVFg4?QS2h_i2G}`lC^i(wJf^HX_ z?(9+^H#i*4B>NN|NoIyTG7wKhlj&IRKvD>YF6307h~;7m#D@k4W9fv82a>UjLaB7h z&Fdc;bO&aWx%h=lcF2uqbD31SPo?%H)5%OMmyGvgEQ}`@z%lWpx%(mS$mkDw$EExp z=DGtoHtzg>G#mH;`hU%Dbn|(eL%=l31t83FyahI}szZO1i+M&iu&$-&)9U3sgZ`kG z!}ECoP0v39Or68%UqPeJ5%fpVbj}H2<{U$R5{)^h(08NhTIYb7a|S)nm^mMy{|HU5 zC1K!?4V)(CqF{epd&pQjFw>Y5c*NaTo(D1aiLZ*7`@p>-cJH%`xeq)S8-DH$&qL#| zff>_t=Dr88!6>b2geVN-JZ$)Ro~&&@>edVc>#^KNo!hJf{@DSTxNrrt5|W;AVDkA73{3qy~4p!N9fOg+BM zFq$^4cNPv)Zw90tKF*K(p!N7ZO}$US`L48Sy%Zd#UInBTKI-uuX+8dbX6ns?@3h{$ zH>LwU?T(?xebajLz^2|e;2AV+dVVE1IHto31RoH&1~%8?}OI+5!lpoK-%Eb#u)7fG;@A+IMf07sK@V**83IM)H?^l@0vEP_X`}R z-Z1o9;iDecqxCj`O}#Y8dHA$xy)`&Yy;rwl*bleNpCa&)mJl-&*qpeeA)Hlr^eJ^wy)L~#~)8+>Ngt9zG;4MHQ1RW14oa3k?kBfadJ<# z*ZWD#w z(P}=#%7rk{!W4k8imyo=-50MBnB-U81Xq&a}%B}c~n(l}4aT@%-C z0&W53w||nvcf#`?F{cy$f3*@Q?dBfYvWPw0(?}7{fMHdcr_B=?4*C8S{1)i9LxEP`peHP zHIW=#Dr(L!72|QHL*;Y?Hv)&8N{i3iG-sNLuZ^D%$H$B1h+q6+wiRi7H~NZuQ)Qf^ zZO0&XNnmfw+l@Ky_51SnBPYEs-?N&o%Qwoq)R#;YAk4eA5yRXuc;4%8Fl@a+aQ!Ag zGe_T#Ve9=2J=Rl?`J5v^k74Vb0_U8X_ICyWTW{LZ<36Y!kHpqH4bE>iq+3>pcVKyH!)YzY(zY&V%ekjCy?Us`oE2YtX*21^lW81BxFdSbKj3o?e%^{7Y0V oK$*ZoPY4oIJ$n9+sAUkC!{GnVdJOi*K38GbdJj;_kMSbjWWoFTUe9*YJ0Mz6Q}0z(SJ!k`zgufQu2d>wr6TKc%tY#*$R2{r zCSg(LL*rx)gbEDj8emPL)XjD7x_2Rx}+5eTRNaQ^6|0$dcSM03S;3USgGxE2*1w=XH|H|Xpu%3M( ztak=##qPTT2eIw14(#r2^XTLBGfs(6_yg=IC|?0%tlxxk4ex=Xq2sGFoG~h|-2MXt nKT*$p3wB>x`wz_f2yMa1(Krj`z8od?;nw?xoX_xCvGx7{)Fy>S literal 0 HcmV?d00001 diff --git a/Release/makefile b/Release/makefile new file mode 100644 index 0000000..38f3ada --- /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/led/subdir.mk +-include libs/lcd/hd44780/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-lcd.lss \ + +FLASH_IMAGE += \ +avr-lib-lcd.hex \ + +EEPROM_IMAGE += \ +avr-lib-lcd.eep \ + +SIZEDUMMY += \ +sizedummy \ + + +# All Target +all: avr-lib-lcd.elf secondary-outputs + +# Tool invocations +avr-lib-lcd.elf: $(OBJS) $(USER_OBJS) + @echo 'Building target: $@' + @echo 'Invoking: AVR C Linker' + avr-gcc -Wl,-Map,avr-lib-lcd.map -mmcu=atmega168p -o "avr-lib-lcd.elf" $(OBJS) $(USER_OBJS) $(LIBS) + @echo 'Finished building target: $@' + @echo ' ' + +avr-lib-lcd.lss: avr-lib-lcd.elf + @echo 'Invoking: AVR Create Extended Listing' + -avr-objdump -h -S avr-lib-lcd.elf >"avr-lib-lcd.lss" + @echo 'Finished building: $@' + @echo ' ' + +avr-lib-lcd.hex: avr-lib-lcd.elf + @echo 'Create Flash image (ihex format)' + -avr-objcopy -R .eeprom -R .fuse -R .lock -R .signature -O ihex avr-lib-lcd.elf "avr-lib-lcd.hex" + @echo 'Finished building: $@' + @echo ' ' + +avr-lib-lcd.eep: avr-lib-lcd.elf + @echo 'Create eeprom image (ihex format)' + -avr-objcopy -j .eeprom --no-change-warnings --change-section-lma .eeprom=0 -O ihex avr-lib-lcd.elf "avr-lib-lcd.eep" + @echo 'Finished building: $@' + @echo ' ' + +sizedummy: avr-lib-lcd.elf + @echo 'Invoking: Print Size' + -avr-size --format=avr --mcu=atmega168p avr-lib-lcd.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-lcd.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..950d7c5 --- /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/lcd/hd44780 \ +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/lcd/hd44780/hd44780.c b/libs/lcd/hd44780/hd44780.c new file mode 100644 index 0000000..4cbffab --- /dev/null +++ b/libs/lcd/hd44780/hd44780.c @@ -0,0 +1,177 @@ +// Ansteuerung eines HD44780 kompatiblen LCD im 4-Bit-Interfacemodus +// http://www.mikrocontroller.net/articles/HD44780 +// http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung +// +// Die Pinbelegung ist über defines in lcd-routines.h einstellbar + +#include +#include "hd44780.h" +#include + +//////////////////////////////////////////////////////////////////////////////// +// Erzeugt einen Enable-Puls +static void lcd_enable( void ) +{ + LCD_PORT |= (1<>(4-LCD_DB)); // Maske löschen + LCD_PORT |= (data>>(4-LCD_DB)); // Bits setzen + lcd_enable(); +} + +//////////////////////////////////////////////////////////////////////////////// +// Initialisierung: muss ganz am Anfang des Programms aufgerufen werden. +void lcd_init( void ) +{ + // verwendete Pins auf Ausgang schalten + uint8_t pins = (0x0F << LCD_DB) | // 4 Datenleitungen + (1< PORTD Bit PD0-PD3 +#define LCD_PORT PORTC +#define LCD_DDR DDRC +#define LCD_DB PC0 + +// LCD RS <--> PORTD Bit PD4 (RS: 1=Data, 0=Command) +#define LCD_RS PC4 + +// LCD EN <--> PORTD Bit PD5 (EN: 1-Impuls für Daten) +#define LCD_EN PC5 + +//////////////////////////////////////////////////////////////////////////////// +// LCD Ausführungszeiten (MS=Millisekunden, US=Mikrosekunden) + +#define LCD_BOOTUP_MS 15 +#define LCD_ENABLE_US 20 +#define LCD_WRITEDATA_US 46 +#define LCD_COMMAND_US 42 + +#define LCD_SOFT_RESET_MS1 5 +#define LCD_SOFT_RESET_MS2 1 +#define LCD_SOFT_RESET_MS3 1 +#define LCD_SET_4BITMODE_MS 5 + +#define LCD_CLEAR_DISPLAY_MS 2 +#define LCD_CURSOR_HOME_MS 2 + +//////////////////////////////////////////////////////////////////////////////// +// Zeilendefinitionen des verwendeten LCD +// Die Einträge hier sollten für ein LCD mit einer Zeilenlänge von 16 Zeichen passen +// Bei anderen Zeilenlängen müssen diese Einträge angepasst werden + +#define LCD_DDADR_LINE1 0x00 +#define LCD_DDADR_LINE2 0x40 +#define LCD_DDADR_LINE3 0x10 +#define LCD_DDADR_LINE4 0x50 + +//////////////////////////////////////////////////////////////////////////////// +// Initialisierung: muss ganz am Anfang des Programms aufgerufen werden. +void lcd_init( void ); + +//////////////////////////////////////////////////////////////////////////////// +// LCD löschen +void lcd_clear( void ); + +//////////////////////////////////////////////////////////////////////////////// +// Cursor in die 1. Zeile, 0-te Spalte +void lcd_home( void ); + +//////////////////////////////////////////////////////////////////////////////// +// Cursor an eine beliebige Position +void lcd_setcursor( uint8_t spalte, uint8_t zeile ); + +//////////////////////////////////////////////////////////////////////////////// +// Ausgabe eines einzelnen Zeichens an der aktuellen Cursorposition +void lcd_data( uint8_t data ); + +//////////////////////////////////////////////////////////////////////////////// +// Ausgabe eines Strings an der aktuellen Cursorposition +void lcd_string( const char *data ); + +//////////////////////////////////////////////////////////////////////////////// +// Definition eines benutzerdefinierten Sonderzeichens. +// data muss auf ein Array[8] mit den Zeilencodes des zu definierenden Zeichens +// zeigen. Später können diese mit lcd_data(0-7) aufgerufen werden +void lcd_generatechar( uint8_t startadresse, const uint8_t *data ); + +//////////////////////////////////////////////////////////////////////////////// +// Ausgabe eines Kommandos an das LCD. +void lcd_command( uint8_t data ); + + +//////////////////////////////////////////////////////////////////////////////// +// LCD Befehle und Argumente. +// Zur Verwendung in lcd_command + +// Clear Display -------------- 0b00000001 +#define LCD_CLEAR_DISPLAY 0x01 + +// Cursor Home ---------------- 0b0000001x +#define LCD_CURSOR_HOME 0x02 + +// Set Entry Mode ------------- 0b000001xx +#define LCD_SET_ENTRY 0x04 + +#define LCD_ENTRY_DECREASE 0x00 +#define LCD_ENTRY_INCREASE 0x02 +#define LCD_ENTRY_NOSHIFT 0x00 +#define LCD_ENTRY_SHIFT 0x01 + +// Set Display ---------------- 0b00001xxx +#define LCD_SET_DISPLAY 0x08 + +#define LCD_DISPLAY_OFF 0x00 +#define LCD_DISPLAY_ON 0x04 +#define LCD_CURSOR_OFF 0x00 +#define LCD_CURSOR_ON 0x02 +#define LCD_BLINKING_OFF 0x00 +#define LCD_BLINKING_ON 0x01 + +// Set Shift ------------------ 0b0001xxxx +#define LCD_SET_SHIFT 0x10 + +#define LCD_CURSOR_MOVE 0x00 +#define LCD_DISPLAY_SHIFT 0x08 +#define LCD_SHIFT_LEFT 0x00 +#define LCD_SHIFT_RIGHT 0x04 + +// Set Function --------------- 0b001xxxxx +#define LCD_SET_FUNCTION 0x20 + +#define LCD_FUNCTION_4BIT 0x00 +#define LCD_FUNCTION_8BIT 0x10 +#define LCD_FUNCTION_1LINE 0x00 +#define LCD_FUNCTION_2LINE 0x08 +#define LCD_FUNCTION_5X7 0x00 +#define LCD_FUNCTION_5X10 0x04 + +#define LCD_SOFT_RESET 0x30 + +// Set CG RAM Address --------- 0b01xxxxxx (Character Generator RAM) +#define LCD_SET_CGADR 0x40 + +#define LCD_GC_CHAR0 0 +#define LCD_GC_CHAR1 1 +#define LCD_GC_CHAR2 2 +#define LCD_GC_CHAR3 3 +#define LCD_GC_CHAR4 4 +#define LCD_GC_CHAR5 5 +#define LCD_GC_CHAR6 6 +#define LCD_GC_CHAR7 7 + +// Set DD RAM Address --------- 0b1xxxxxxx (Display Data RAM) +#define LCD_SET_DDADR 0x80 + +#endif 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..1c4d6b1 --- /dev/null +++ b/main.c @@ -0,0 +1,41 @@ +/* + * main.c + * + */ + +#ifndef F_CPU +// #define F_CPU 18432000UL + #define F_CPU 8000000UL +#endif + + +#include + +#include "libs/led/led.h" +#include "libs/lcd/hd44780/hd44780.h" + +int main (void) { + led_config(LED_ACTIVE_LOW); led_init(); led_disco(); +// led_config(LED_ACTIVE_HIGH); led_init(); + + + lcd_init(); //lcd_clear(); + lcd_string("It work's!\0"); + + // forever loop + + 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; +}