Initial commit

This commit is contained in:
Florian Klemenz 2017-09-25 23:32:42 +02:00
commit 9086767475
32 changed files with 2876 additions and 0 deletions

71
.cproject Normal file
View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
<storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="de.innot.avreclipse.configuration.app.release.1546082396">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="de.innot.avreclipse.configuration.app.release.1546082396" moduleId="org.eclipse.cdt.core.settings" name="Release">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactName="${ProjName}" buildArtefactType="de.innot.avreclipse.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=de.innot.avreclipse.buildArtefactType.app,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" description="" id="de.innot.avreclipse.configuration.app.release.1546082396" name="Release" parent="de.innot.avreclipse.configuration.app.release">
<folderInfo id="de.innot.avreclipse.configuration.app.release.1546082396." name="/" resourcePath="">
<toolChain id="de.innot.avreclipse.toolchain.winavr.app.release.227240101" name="AVR-GCC Toolchain" superClass="de.innot.avreclipse.toolchain.winavr.app.release">
<option id="de.innot.avreclipse.toolchain.options.toolchain.objcopy.flash.app.release.2036219103" name="Generate HEX file for Flash memory" superClass="de.innot.avreclipse.toolchain.options.toolchain.objcopy.flash.app.release"/>
<option id="de.innot.avreclipse.toolchain.options.toolchain.objcopy.eeprom.app.release.1633209357" name="Generate HEX file for EEPROM" superClass="de.innot.avreclipse.toolchain.options.toolchain.objcopy.eeprom.app.release"/>
<option id="de.innot.avreclipse.toolchain.options.toolchain.objdump.app.release.220537138" name="Generate Extended Listing (Source + generated Assembler)" superClass="de.innot.avreclipse.toolchain.options.toolchain.objdump.app.release"/>
<option id="de.innot.avreclipse.toolchain.options.toolchain.size.app.release.1724318314" name="Print Size" superClass="de.innot.avreclipse.toolchain.options.toolchain.size.app.release"/>
<option id="de.innot.avreclipse.toolchain.options.toolchain.avrdude.app.release.1637376069" name="AVRDude" superClass="de.innot.avreclipse.toolchain.options.toolchain.avrdude.app.release"/>
<targetPlatform id="de.innot.avreclipse.targetplatform.winavr.app.release.1739197277" name="AVR Cross-Target" superClass="de.innot.avreclipse.targetplatform.winavr.app.release"/>
<builder buildPath="${workspace_loc:/avr-blink}/Release" id="de.innot.avreclipse.target.builder.winavr.app.release.1696841808" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="AVR GNU Make Builder" superClass="de.innot.avreclipse.target.builder.winavr.app.release"/>
<tool id="de.innot.avreclipse.tool.assembler.winavr.app.release.384702023" name="AVR Assembler" superClass="de.innot.avreclipse.tool.assembler.winavr.app.release">
<option id="de.innot.avreclipse.assembler.option.debug.level.871235924" name="Generate Debugging Info" superClass="de.innot.avreclipse.assembler.option.debug.level" value="de.innot.avreclipse.assembler.option.debug.level.none" valueType="enumerated"/>
<inputType id="de.innot.avreclipse.tool.assembler.input.826278966" superClass="de.innot.avreclipse.tool.assembler.input"/>
</tool>
<tool id="de.innot.avreclipse.tool.compiler.winavr.app.release.1061313516" name="AVR Compiler" superClass="de.innot.avreclipse.tool.compiler.winavr.app.release">
<option id="de.innot.avreclipse.compiler.option.debug.level.1305521020" name="Generate Debugging Info" superClass="de.innot.avreclipse.compiler.option.debug.level" value="de.innot.avreclipse.compiler.option.debug.level.none" valueType="enumerated"/>
<option id="de.innot.avreclipse.compiler.option.optimize.1894979385" name="Optimization Level" superClass="de.innot.avreclipse.compiler.option.optimize" value="de.innot.avreclipse.compiler.optimize.size" valueType="enumerated"/>
<inputType id="de.innot.avreclipse.compiler.winavr.input.1985911477" name="C Source Files" superClass="de.innot.avreclipse.compiler.winavr.input"/>
</tool>
<tool id="de.innot.avreclipse.tool.cppcompiler.app.release.1964381913" name="AVR C++ Compiler" superClass="de.innot.avreclipse.tool.cppcompiler.app.release">
<option id="de.innot.avreclipse.cppcompiler.option.debug.level.2046058808" name="Generate Debugging Info" superClass="de.innot.avreclipse.cppcompiler.option.debug.level" value="de.innot.avreclipse.cppcompiler.option.debug.level.none" valueType="enumerated"/>
<option id="de.innot.avreclipse.cppcompiler.option.optimize.223824258" name="Optimization Level" superClass="de.innot.avreclipse.cppcompiler.option.optimize" value="de.innot.avreclipse.cppcompiler.optimize.size" valueType="enumerated"/>
</tool>
<tool id="de.innot.avreclipse.tool.linker.winavr.app.release.674407755" name="AVR C Linker" superClass="de.innot.avreclipse.tool.linker.winavr.app.release">
<inputType id="de.innot.avreclipse.tool.linker.input.2045601914" name="OBJ Files" superClass="de.innot.avreclipse.tool.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
<tool id="de.innot.avreclipse.tool.cpplinker.app.release.1620735016" name="AVR C++ Linker" superClass="de.innot.avreclipse.tool.cpplinker.app.release"/>
<tool id="de.innot.avreclipse.tool.archiver.winavr.base.333307715" name="AVR Archiver" superClass="de.innot.avreclipse.tool.archiver.winavr.base"/>
<tool id="de.innot.avreclipse.tool.objdump.winavr.app.release.1873143777" name="AVR Create Extended Listing" superClass="de.innot.avreclipse.tool.objdump.winavr.app.release"/>
<tool id="de.innot.avreclipse.tool.objcopy.flash.winavr.app.release.2004208544" name="AVR Create Flash image" superClass="de.innot.avreclipse.tool.objcopy.flash.winavr.app.release"/>
<tool id="de.innot.avreclipse.tool.objcopy.eeprom.winavr.app.release.879077771" name="AVR Create EEPROM image" superClass="de.innot.avreclipse.tool.objcopy.eeprom.winavr.app.release"/>
<tool id="de.innot.avreclipse.tool.size.winavr.app.release.350841576" name="Print Size" superClass="de.innot.avreclipse.tool.size.winavr.app.release"/>
<tool id="de.innot.avreclipse.tool.avrdude.app.release.1795730812" name="AVRDude" superClass="de.innot.avreclipse.tool.avrdude.app.release"/>
</toolChain>
</folderInfo>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="avr-blink.de.innot.avreclipse.project.winavr.elf_2.1.0.819911573" name="AVR Cross Target Application" projectType="de.innot.avreclipse.project.winavr.elf_2.1.0"/>
</storageModule>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
<scannerConfigBuildInfo instanceId="de.innot.avreclipse.configuration.app.release.1546082396;de.innot.avreclipse.configuration.app.release.1546082396.;de.innot.avreclipse.tool.compiler.winavr.app.release.1061313516;de.innot.avreclipse.compiler.winavr.input.1985911477">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="de.innot.avreclipse.core.AVRGCCManagedMakePerProjectProfileC"/>
</scannerConfigBuildInfo>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
<storageModule moduleId="refreshScope"/>
</cproject>

27
.project Normal file
View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>avr-lib-lcd</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
<triggers>clean,full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
<triggers>full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
<nature>de.innot.avreclipse.core.avrnature</nature>
</natures>
</projectDescription>

View File

@ -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

434
Release/avr-blink.map Normal file
View File

@ -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

1
Release/avr-lib-lcd.eep Normal file
View File

@ -0,0 +1 @@
:00000001FF

BIN
Release/avr-lib-lcd.elf Executable file

Binary file not shown.

52
Release/avr-lib-lcd.hex Normal file
View File

@ -0,0 +1,52 @@
:100000000C9434000C9449000C9449000C94490061
:100010000C9449000C9449000C9449000C9449003C
:100020000C9449000C9449000C9449000C9449002C
:100030000C9449000C9449000C9449000C9449001C
:100040000C9449000C9449000C9449000C9449000C
:100050000C9449000C9449000C9449000C944900FC
:100060000C9449000C94490011241FBECFEFD4E03A
:10007000DEBFCDBF11E0A0E0B1E0E0E2F3E002C0FE
:1000800005900D92AE30B107D9F70E9474010C941F
:100090008E010C9400008AB1806E8AB980910001B3
:1000A00081FF03C08BB18F7102C08BB1806E8BB9A1
:1000B00008958093000108950C944B00982F80912F
:1000C00000014BB121E030E0B90102C0660F771F9B
:1000D0009A95E2F781FF04C0CB018095842302C08A
:1000E000CB01842B8BB90895982F809100014BB1DF
:1000F00021E030E0B90102C0660F771F9A95E2F760
:1001000081FF03C0CB01842B03C0CB0180958423E6
:100110008BB90895CF93C82F0E9474008FE19EE49D
:100120000197F1F700C000008C2F0E945E009FEF46
:100130002AE683E0915020408040E1F700C00000B3
:10014000CF91089585E00E948A0086E00E948A008F
:1001500087E00C948A00459A85E38A95F1F70000C0
:100160004598089598B1907F98B998B182958F700D
:10017000982B98B90C94AB00CF93C82F449A0E9447
:10018000B2008C2F8295807F0E94B2008AE78A9508
:10019000F1F700C0CF910895CF93C82F44980E94E3
:1001A000B2008C2F8295807F0E94B20080E78A95F2
:1001B000F1F7CF91089581E00E94CC008FE99FE094
:1001C0000197F1F700C00000089587B18F6387B9E8
:1001D00088B1807C88B98FE295E70197F1F700C07C
:1001E000000080E30E94B2008FE097E20197F1F7F0
:1001F00000C000000E94AB008FEC97E00197F1F780
:1002000000C000000E94AB008FEC97E00197F1F76F
:1002100000C0000080E20E94B2008FE097E20197E8
:10022000F1F700C0000088E20E94CC008CE00E9440
:10023000CC0086E00E94CC000C94DB0082E00E949F
:10024000CC008FE99FE00197F1F700C0000008950E
:10025000623059F018F4613031F00895633039F0AC
:10026000643039F00895805805C0805403C0805729
:1002700001C080530C94CC00CF93DF93EC018991A3
:10028000882319F00E94BC00FACFDF91CF91089526
:10029000EF92FF920F931F93CF93DF9300D0CDB7D0
:1002A000DEB728E0829FC0011124806469837A83CD
:1002B0000E94CC006981E62E7A81F72E8701085FC3
:1002C0001F4FF70181917F010E94BC00E016F106EB
:1002D000C1F780E80F900F90DF91CF911F910F91A0
:1002E000FF90EF900C94CC0081E00E9459000E9496
:1002F0005C000E94A2000E94E50081E091E00E9463
:100300003C0185E00E948A002FEF89E698E12150A8
:1003100080409040E1F700C00000F3CFF894FFCF99
:0E03200001497420776F726B27732100000073
:00000001FF

398
Release/avr-lib-lcd.lss Normal file
View File

@ -0,0 +1,398 @@
avr-lib-lcd.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 0000000e 00800100 00000320 00000394 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 00000320 00000000 00000000 00000074 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .comment 00000011 00000000 00000000 000003a2 2**0
CONTENTS, READONLY
3 .note.gnu.avr.deviceinfo 00000040 00000000 00000000 000003b4 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: 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 <main>
8e: 0c 94 8e 01 jmp 0x31c ; 0x31c <_exit>
00000092 <__bad_interrupt>:
92: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
00000096 <led_initPorts>:
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 <led_initPorts+0x14>
a4: 8b b1 in r24, 0x0b ; 11
a6: 8f 71 andi r24, 0x1F ; 31
a8: 02 c0 rjmp .+4 ; 0xae <led_initPorts+0x18>
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 <led_config>:
b2: 80 93 00 01 sts 0x0100, r24 ; 0x800100 <__data_start>
b6: 08 95 ret
000000b8 <led_init>:
b8: 0c 94 4b 00 jmp 0x96 ; 0x96 <led_initPorts>
000000bc <led_off>:
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 <led_off+0x14>
cc: 66 0f add r22, r22
ce: 77 1f adc r23, r23
d0: 9a 95 dec r25
d2: e2 f7 brpl .-8 ; 0xcc <led_off+0x10>
d4: 81 ff sbrs r24, 1
d6: 04 c0 rjmp .+8 ; 0xe0 <led_off+0x24>
d8: cb 01 movw r24, r22
da: 80 95 com r24
dc: 84 23 and r24, r20
de: 02 c0 rjmp .+4 ; 0xe4 <led_off+0x28>
e0: cb 01 movw r24, r22
e2: 84 2b or r24, r20
e4: 8b b9 out 0x0b, r24 ; 11
e6: 08 95 ret
000000e8 <led_on>:
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 <led_on+0x14>
f8: 66 0f add r22, r22
fa: 77 1f adc r23, r23
fc: 9a 95 dec r25
fe: e2 f7 brpl .-8 ; 0xf8 <led_on+0x10>
100: 81 ff sbrs r24, 1
102: 03 c0 rjmp .+6 ; 0x10a <led_on+0x22>
104: cb 01 movw r24, r22
106: 84 2b or r24, r20
108: 03 c0 rjmp .+6 ; 0x110 <led_on+0x28>
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 <led_flash>:
114: cf 93 push r28
116: c8 2f mov r28, r24
118: 0e 94 74 00 call 0xe8 ; 0xe8 <led_on>
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 <led_flash+0xc>
124: 00 c0 rjmp .+0 ; 0x126 <led_flash+0x12>
126: 00 00 nop
128: 8c 2f mov r24, r28
12a: 0e 94 5e 00 call 0xbc ; 0xbc <led_off>
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 <led_flash+0x20>
13c: 00 c0 rjmp .+0 ; 0x13e <led_flash+0x2a>
13e: 00 00 nop
140: cf 91 pop r28
142: 08 95 ret
00000144 <led_disco>:
144: 85 e0 ldi r24, 0x05 ; 5
146: 0e 94 8a 00 call 0x114 ; 0x114 <led_flash>
14a: 86 e0 ldi r24, 0x06 ; 6
14c: 0e 94 8a 00 call 0x114 ; 0x114 <led_flash>
150: 87 e0 ldi r24, 0x07 ; 7
152: 0c 94 8a 00 jmp 0x114 ; 0x114 <led_flash>
00000156 <lcd_enable>:
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 <lcd_enable+0x4>
15e: 00 00 nop
160: 45 98 cbi 0x08, 5 ; 8
162: 08 95 ret
00000164 <lcd_out>:
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 <lcd_enable>
00000178 <lcd_data>:
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 <lcd_out>
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 <lcd_out>
18c: 8a e7 ldi r24, 0x7A ; 122
18e: 8a 95 dec r24
190: f1 f7 brne .-4 ; 0x18e <lcd_data+0x16>
192: 00 c0 rjmp .+0 ; 0x194 <lcd_data+0x1c>
194: cf 91 pop r28
196: 08 95 ret
00000198 <lcd_command>:
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 <lcd_out>
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 <lcd_out>
1ac: 80 e7 ldi r24, 0x70 ; 112
1ae: 8a 95 dec r24
1b0: f1 f7 brne .-4 ; 0x1ae <lcd_command+0x16>
1b2: cf 91 pop r28
1b4: 08 95 ret
000001b6 <lcd_clear>:
1b6: 81 e0 ldi r24, 0x01 ; 1
1b8: 0e 94 cc 00 call 0x198 ; 0x198 <lcd_command>
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 <lcd_clear+0xa>
1c4: 00 c0 rjmp .+0 ; 0x1c6 <lcd_clear+0x10>
1c6: 00 00 nop
1c8: 08 95 ret
000001ca <lcd_init>:
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 <lcd_init+0x10>
1de: 00 c0 rjmp .+0 ; 0x1e0 <lcd_init+0x16>
1e0: 00 00 nop
1e2: 80 e3 ldi r24, 0x30 ; 48
1e4: 0e 94 b2 00 call 0x164 ; 0x164 <lcd_out>
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 <lcd_init+0x22>
1f0: 00 c0 rjmp .+0 ; 0x1f2 <lcd_init+0x28>
1f2: 00 00 nop
1f4: 0e 94 ab 00 call 0x156 ; 0x156 <lcd_enable>
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 <lcd_init+0x32>
200: 00 c0 rjmp .+0 ; 0x202 <lcd_init+0x38>
202: 00 00 nop
204: 0e 94 ab 00 call 0x156 ; 0x156 <lcd_enable>
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 <lcd_init+0x42>
210: 00 c0 rjmp .+0 ; 0x212 <lcd_init+0x48>
212: 00 00 nop
214: 80 e2 ldi r24, 0x20 ; 32
216: 0e 94 b2 00 call 0x164 ; 0x164 <lcd_out>
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 <lcd_init+0x54>
222: 00 c0 rjmp .+0 ; 0x224 <lcd_init+0x5a>
224: 00 00 nop
226: 88 e2 ldi r24, 0x28 ; 40
228: 0e 94 cc 00 call 0x198 ; 0x198 <lcd_command>
22c: 8c e0 ldi r24, 0x0C ; 12
22e: 0e 94 cc 00 call 0x198 ; 0x198 <lcd_command>
232: 86 e0 ldi r24, 0x06 ; 6
234: 0e 94 cc 00 call 0x198 ; 0x198 <lcd_command>
238: 0c 94 db 00 jmp 0x1b6 ; 0x1b6 <lcd_clear>
0000023c <lcd_home>:
23c: 82 e0 ldi r24, 0x02 ; 2
23e: 0e 94 cc 00 call 0x198 ; 0x198 <lcd_command>
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 <lcd_home+0xa>
24a: 00 c0 rjmp .+0 ; 0x24c <lcd_home+0x10>
24c: 00 00 nop
24e: 08 95 ret
00000250 <lcd_setcursor>:
250: 62 30 cpi r22, 0x02 ; 2
252: 59 f0 breq .+22 ; 0x26a <lcd_setcursor+0x1a>
254: 18 f4 brcc .+6 ; 0x25c <lcd_setcursor+0xc>
256: 61 30 cpi r22, 0x01 ; 1
258: 31 f0 breq .+12 ; 0x266 <lcd_setcursor+0x16>
25a: 08 95 ret
25c: 63 30 cpi r22, 0x03 ; 3
25e: 39 f0 breq .+14 ; 0x26e <lcd_setcursor+0x1e>
260: 64 30 cpi r22, 0x04 ; 4
262: 39 f0 breq .+14 ; 0x272 <lcd_setcursor+0x22>
264: 08 95 ret
266: 80 58 subi r24, 0x80 ; 128
268: 05 c0 rjmp .+10 ; 0x274 <lcd_setcursor+0x24>
26a: 80 54 subi r24, 0x40 ; 64
26c: 03 c0 rjmp .+6 ; 0x274 <lcd_setcursor+0x24>
26e: 80 57 subi r24, 0x70 ; 112
270: 01 c0 rjmp .+2 ; 0x274 <lcd_setcursor+0x24>
272: 80 53 subi r24, 0x30 ; 48
274: 0c 94 cc 00 jmp 0x198 ; 0x198 <lcd_command>
00000278 <lcd_string>:
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 <lcd_string+0x12>
284: 0e 94 bc 00 call 0x178 ; 0x178 <lcd_data>
288: fa cf rjmp .-12 ; 0x27e <lcd_string+0x6>
28a: df 91 pop r29
28c: cf 91 pop r28
28e: 08 95 ret
00000290 <lcd_generatechar>:
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 <lcd_generatechar+0xe>
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 <lcd_command>
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 <lcd_data>
2cc: e0 16 cp r14, r16
2ce: f1 06 cpc r15, r17
2d0: c1 f7 brne .-16 ; 0x2c2 <lcd_generatechar+0x32>
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 <lcd_command>
000002e8 <main>:
2e8: 81 e0 ldi r24, 0x01 ; 1
2ea: 0e 94 59 00 call 0xb2 ; 0xb2 <led_config>
2ee: 0e 94 5c 00 call 0xb8 ; 0xb8 <led_init>
2f2: 0e 94 a2 00 call 0x144 ; 0x144 <led_disco>
2f6: 0e 94 e5 00 call 0x1ca ; 0x1ca <lcd_init>
2fa: 81 e0 ldi r24, 0x01 ; 1
2fc: 91 e0 ldi r25, 0x01 ; 1
2fe: 0e 94 3c 01 call 0x278 ; 0x278 <lcd_string>
302: 85 e0 ldi r24, 0x05 ; 5
304: 0e 94 8a 00 call 0x114 ; 0x114 <led_flash>
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 <main+0x26>
316: 00 c0 rjmp .+0 ; 0x318 <main+0x30>
318: 00 00 nop
31a: f3 cf rjmp .-26 ; 0x302 <main+0x1a>
0000031c <_exit>:
31c: f8 94 cli
0000031e <__stop_program>:
31e: ff cf rjmp .-2 ; 0x31e <__stop_program>

479
Release/avr-lib-lcd.map Normal file
View File

@ -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

1
Release/avr-lib-led.eep Normal file
View File

@ -0,0 +1 @@
:00000001FF

BIN
Release/avr-lib-led.elf Executable file

Binary file not shown.

27
Release/avr-lib-led.hex Normal file
View File

@ -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

193
Release/avr-lib-led.lss Normal file
View File

@ -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 <main>
8e: 0c 94 bf 00 jmp 0x17e ; 0x17e <_exit>
00000092 <__bad_interrupt>:
92: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
00000096 <led_initPorts>:
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 <led_initPorts+0x14>
a4: 8b b1 in r24, 0x0b ; 11
a6: 8f 71 andi r24, 0x1F ; 31
a8: 02 c0 rjmp .+4 ; 0xae <led_initPorts+0x18>
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 <led_config>:
b2: 80 93 00 01 sts 0x0100, r24 ; 0x800100 <__data_start>
b6: 08 95 ret
000000b8 <led_init>:
b8: 0c 94 4b 00 jmp 0x96 ; 0x96 <led_initPorts>
000000bc <led_off>:
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 <led_off+0x14>
cc: 66 0f add r22, r22
ce: 77 1f adc r23, r23
d0: 9a 95 dec r25
d2: e2 f7 brpl .-8 ; 0xcc <led_off+0x10>
d4: 81 ff sbrs r24, 1
d6: 04 c0 rjmp .+8 ; 0xe0 <led_off+0x24>
d8: cb 01 movw r24, r22
da: 80 95 com r24
dc: 84 23 and r24, r20
de: 02 c0 rjmp .+4 ; 0xe4 <led_off+0x28>
e0: cb 01 movw r24, r22
e2: 84 2b or r24, r20
e4: 8b b9 out 0x0b, r24 ; 11
e6: 08 95 ret
000000e8 <led_on>:
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 <led_on+0x14>
f8: 66 0f add r22, r22
fa: 77 1f adc r23, r23
fc: 9a 95 dec r25
fe: e2 f7 brpl .-8 ; 0xf8 <led_on+0x10>
100: 81 ff sbrs r24, 1
102: 03 c0 rjmp .+6 ; 0x10a <led_on+0x22>
104: cb 01 movw r24, r22
106: 84 2b or r24, r20
108: 03 c0 rjmp .+6 ; 0x110 <led_on+0x28>
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 <led_flash>:
114: cf 93 push r28
116: c8 2f mov r28, r24
118: 0e 94 74 00 call 0xe8 ; 0xe8 <led_on>
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 <led_flash+0xc>
124: 00 c0 rjmp .+0 ; 0x126 <led_flash+0x12>
126: 00 00 nop
128: 8c 2f mov r24, r28
12a: 0e 94 5e 00 call 0xbc ; 0xbc <led_off>
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 <led_flash+0x20>
13c: 00 c0 rjmp .+0 ; 0x13e <led_flash+0x2a>
13e: 00 00 nop
140: cf 91 pop r28
142: 08 95 ret
00000144 <disco>:
144: 85 e0 ldi r24, 0x05 ; 5
146: 0e 94 8a 00 call 0x114 ; 0x114 <led_flash>
14a: 86 e0 ldi r24, 0x06 ; 6
14c: 0e 94 8a 00 call 0x114 ; 0x114 <led_flash>
150: 87 e0 ldi r24, 0x07 ; 7
152: 0c 94 8a 00 jmp 0x114 ; 0x114 <led_flash>
00000156 <main>:
156: 81 e0 ldi r24, 0x01 ; 1
158: 0e 94 59 00 call 0xb2 ; 0xb2 <led_config>
15c: 0e 94 5c 00 call 0xb8 ; 0xb8 <led_init>
160: 0e 94 a2 00 call 0x144 ; 0x144 <disco>
164: 85 e0 ldi r24, 0x05 ; 5
166: 0e 94 8a 00 call 0x114 ; 0x114 <led_flash>
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 <main+0x1a>
178: 00 c0 rjmp .+0 ; 0x17a <main+0x24>
17a: 00 00 nop
17c: f3 cf rjmp .-26 ; 0x164 <main+0xe>
0000017e <_exit>:
17e: f8 94 cli
00000180 <__stop_program>:
180: ff cf rjmp .-2 ; 0x180 <__stop_program>

445
Release/avr-lib-led.map Normal file
View File

@ -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

View File

@ -0,0 +1,4 @@
libs/lcd/hd44780/hd44780.o: ../libs/lcd/hd44780/hd44780.c \
../libs/lcd/hd44780/hd44780.h
../libs/lcd/hd44780/hd44780.h:

Binary file not shown.

View File

@ -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/lcd/hd44780/hd44780.c
OBJS += \
./libs/lcd/hd44780/hd44780.o
C_DEPS += \
./libs/lcd/hd44780/hd44780.d
# Each subdirectory must supply rules for building sources it contributes
libs/lcd/hd44780/%.o: ../libs/lcd/hd44780/%.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 ' '

View File

@ -0,0 +1,8 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
# Add inputs and outputs from these tool invocations to the build variables
# Each subdirectory must supply rules for building sources it contributes

3
Release/libs/led/led.d Normal file
View File

@ -0,0 +1,3 @@
libs/led/led.o: ../libs/led/led.c ../libs/led/led.h
../libs/led/led.h:

BIN
Release/libs/led/led.o Normal file

Binary file not shown.

View File

@ -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 ' '

5
Release/main.d Normal file
View File

@ -0,0 +1,5 @@
main.o: ../main.c ../libs/led/led.h ../libs/lcd/hd44780/hd44780.h
../libs/led/led.h:
../libs/lcd/hd44780/hd44780.h:

BIN
Release/main.o Normal file

Binary file not shown.

91
Release/makefile Normal file
View File

@ -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

8
Release/objects.mk Normal file
View File

@ -0,0 +1,8 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
USER_OBJS :=
LIBS :=

27
Release/sources.mk Normal file
View File

@ -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 \
. \

24
Release/subdir.mk Normal file
View File

@ -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 ' '

177
libs/lcd/hd44780/hd44780.c Normal file
View File

@ -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 <avr/io.h>
#include "hd44780.h"
#include <util/delay.h>
////////////////////////////////////////////////////////////////////////////////
// Erzeugt einen Enable-Puls
static void lcd_enable( void )
{
LCD_PORT |= (1<<LCD_EN); // Enable auf 1 setzen
_delay_us( LCD_ENABLE_US ); // kurze Pause
LCD_PORT &= ~(1<<LCD_EN); // Enable auf 0 setzen
}
////////////////////////////////////////////////////////////////////////////////
// Sendet eine 4-bit Ausgabeoperation an das LCD
static void lcd_out( uint8_t data )
{
data &= 0xF0; // obere 4 Bit maskieren
LCD_PORT &= ~(0xF0>>(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<<LCD_RS) | // R/S Leitung
(1<<LCD_EN); // Enable Leitung
LCD_DDR |= pins;
// initial alle Ausgänge auf Null
LCD_PORT &= ~pins;
// warten auf die Bereitschaft des LCD
_delay_ms( LCD_BOOTUP_MS );
// Soft-Reset muss 3mal hintereinander gesendet werden zur Initialisierung
lcd_out( LCD_SOFT_RESET );
_delay_ms( LCD_SOFT_RESET_MS1 );
lcd_enable();
_delay_ms( LCD_SOFT_RESET_MS2 );
lcd_enable();
_delay_ms( LCD_SOFT_RESET_MS3 );
// 4-bit Modus aktivieren
lcd_out( LCD_SET_FUNCTION |
LCD_FUNCTION_4BIT );
_delay_ms( LCD_SET_4BITMODE_MS );
// 4-bit Modus / 2 Zeilen / 5x7
lcd_command( LCD_SET_FUNCTION |
LCD_FUNCTION_4BIT |
LCD_FUNCTION_2LINE |
LCD_FUNCTION_5X7 );
// Display ein / Cursor aus / Blinken aus
lcd_command( LCD_SET_DISPLAY |
LCD_DISPLAY_ON |
LCD_CURSOR_OFF |
LCD_BLINKING_OFF);
// Cursor inkrement / kein Scrollen
lcd_command( LCD_SET_ENTRY |
LCD_ENTRY_INCREASE |
LCD_ENTRY_NOSHIFT );
lcd_clear();
}
////////////////////////////////////////////////////////////////////////////////
// Sendet ein Datenbyte an das LCD
void lcd_data( uint8_t data )
{
LCD_PORT |= (1<<LCD_RS); // RS auf 1 setzen
lcd_out( data ); // zuerst die oberen,
lcd_out( data<<4 ); // dann die unteren 4 Bit senden
_delay_us( LCD_WRITEDATA_US );
}
////////////////////////////////////////////////////////////////////////////////
// Sendet einen Befehl an das LCD
void lcd_command( uint8_t data )
{
LCD_PORT &= ~(1<<LCD_RS); // RS auf 0 setzen
lcd_out( data ); // zuerst die oberen,
lcd_out( data<<4 ); // dann die unteren 4 Bit senden
_delay_us( LCD_COMMAND_US );
}
////////////////////////////////////////////////////////////////////////////////
// Sendet den Befehl zur Löschung des Displays
void lcd_clear( void )
{
lcd_command( LCD_CLEAR_DISPLAY );
_delay_ms( LCD_CLEAR_DISPLAY_MS );
}
////////////////////////////////////////////////////////////////////////////////
// Sendet den Befehl: Cursor Home
void lcd_home( void )
{
lcd_command( LCD_CURSOR_HOME );
_delay_ms( LCD_CURSOR_HOME_MS );
}
////////////////////////////////////////////////////////////////////////////////
// Setzt den Cursor in Spalte x (0..15) Zeile y (1..4)
void lcd_setcursor( uint8_t x, uint8_t y )
{
uint8_t data;
switch (y)
{
case 1: // 1. Zeile
data = LCD_SET_DDADR + LCD_DDADR_LINE1 + x;
break;
case 2: // 2. Zeile
data = LCD_SET_DDADR + LCD_DDADR_LINE2 + x;
break;
case 3: // 3. Zeile
data = LCD_SET_DDADR + LCD_DDADR_LINE3 + x;
break;
case 4: // 4. Zeile
data = LCD_SET_DDADR + LCD_DDADR_LINE4 + x;
break;
default:
return; // für den Fall einer falschen Zeile
}
lcd_command( data );
}
////////////////////////////////////////////////////////////////////////////////
// Schreibt einen String auf das LCD
void lcd_string( const char *data )
{
while( *data != '\0' )
lcd_data( *data++ );
}
////////////////////////////////////////////////////////////////////////////////
// Schreibt ein Zeichen in den Character Generator RAM
void lcd_generatechar( uint8_t startadresse, const uint8_t *data )
{
// Startposition des Zeichens einstellen
lcd_command( LCD_SET_CGADR | (startadresse<<3) ); //Startadressen: 0;1;2;3;4;5;6;7
// Bitmuster übertragen
for ( uint8_t i=0; i<8; i++ )
{
lcd_data( data[i] );
}
lcd_command(LCD_SET_DDADR); //DRAM auf 0 setzen
}

155
libs/lcd/hd44780/hd44780.h Normal file
View File

@ -0,0 +1,155 @@
// Ansteuerung eines HD44780 kompatiblen LCD im 4-Bit-Interfacemodus
// http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung
//
#ifndef LCD_HD44780_ROUTINES_H
#define LCD_HD44780_ROUTINES_H
////////////////////////////////////////////////////////////////////////////////
// Hier die verwendete Taktfrequenz in Hz eintragen, wichtig!
#ifndef F_CPU
#define F_CPU 8000000
#endif
////////////////////////////////////////////////////////////////////////////////
// Pinbelegung für das LCD, an verwendete Pins anpassen
// Alle LCD Pins müssen an einem Port angeschlossen sein und die 4
// Datenleitungen müssen auf aufeinanderfolgenden Pins liegen
// LCD DB4-DB7 <--> 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

65
libs/led/led.c Normal file
View File

@ -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<<LED_BLUE)|(1<<LED_RED)|(1<<LED_GREEN));
if (led_flags & LED_ACTIVE_HIGH) {
// set output state to LOW to disable all leds (leds are active high)
LED_PORT &= ~((1<<LED_BLUE)|(1<<LED_RED)|(1<<LED_GREEN));
}
else {
// set output state to HIGH to disable all leds (leds are active low)
LED_PORT |= ((1<<LED_BLUE)|(1<<LED_RED)|(1<<LED_GREEN));
}
}
void led_config(uint8_t flags) {
led_flags = flags;
}
void led_init() {
led_initPorts();
}
void led_off(uint8_t pin) {
if (led_flags & LED_ACTIVE_HIGH) cbi(LED_PORT,pin);
else sbi(LED_PORT,pin);
// sbi(LED_PORT,pin);
}
void led_on(uint8_t pin) {
if (led_flags & LED_ACTIVE_HIGH) sbi(LED_PORT,pin);
else cbi(LED_PORT,pin);
// cbi(LED_PORT,pin);
}
void led_flash(uint8_t pin) {
led_on(pin);
_delay_ms(10);
led_off(pin);
_delay_ms(140);
}
void led_disco(){
led_flash(LED_BLUE);
led_flash(LED_RED);
led_flash(LED_GREEN);
}

64
libs/led/led.h Normal file
View File

@ -0,0 +1,64 @@
/*
* led.h
*
* Created on: 26.07.2015
* Author: Flo
*/
#include <util/delay.h>
#include <avr/io.h>
#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_ */

41
main.c Normal file
View File

@ -0,0 +1,41 @@
/*
* main.c
*
*/
#ifndef F_CPU
// #define F_CPU 18432000UL
#define F_CPU 8000000UL
#endif
#include <util/delay.h>
#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;
}