Initial commit
This commit is contained in:
commit
9086767475
71
.cproject
Normal file
71
.cproject
Normal 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
27
.project
Normal 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>
|
||||
28
.settings/de.innot.avreclipse.core.prefs
Normal file
28
.settings/de.innot.avreclipse.core.prefs
Normal 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
434
Release/avr-blink.map
Normal 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
1
Release/avr-lib-lcd.eep
Normal file
@ -0,0 +1 @@
|
||||
:00000001FF
|
||||
BIN
Release/avr-lib-lcd.elf
Executable file
BIN
Release/avr-lib-lcd.elf
Executable file
Binary file not shown.
52
Release/avr-lib-lcd.hex
Normal file
52
Release/avr-lib-lcd.hex
Normal 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
398
Release/avr-lib-lcd.lss
Normal 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
479
Release/avr-lib-lcd.map
Normal 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
1
Release/avr-lib-led.eep
Normal file
@ -0,0 +1 @@
|
||||
:00000001FF
|
||||
BIN
Release/avr-lib-led.elf
Executable file
BIN
Release/avr-lib-led.elf
Executable file
Binary file not shown.
27
Release/avr-lib-led.hex
Normal file
27
Release/avr-lib-led.hex
Normal 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
193
Release/avr-lib-led.lss
Normal 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
445
Release/avr-lib-led.map
Normal 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
|
||||
4
Release/libs/lcd/hd44780/hd44780.d
Normal file
4
Release/libs/lcd/hd44780/hd44780.d
Normal 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:
|
||||
BIN
Release/libs/lcd/hd44780/hd44780.o
Normal file
BIN
Release/libs/lcd/hd44780/hd44780.o
Normal file
Binary file not shown.
24
Release/libs/lcd/hd44780/subdir.mk
Normal file
24
Release/libs/lcd/hd44780/subdir.mk
Normal 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 ' '
|
||||
|
||||
|
||||
8
Release/libs/lcd/subdir.mk
Normal file
8
Release/libs/lcd/subdir.mk
Normal 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
3
Release/libs/led/led.d
Normal 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
BIN
Release/libs/led/led.o
Normal file
Binary file not shown.
24
Release/libs/led/subdir.mk
Normal file
24
Release/libs/led/subdir.mk
Normal 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
5
Release/main.d
Normal 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
BIN
Release/main.o
Normal file
Binary file not shown.
91
Release/makefile
Normal file
91
Release/makefile
Normal 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
8
Release/objects.mk
Normal file
@ -0,0 +1,8 @@
|
||||
################################################################################
|
||||
# Automatically-generated file. Do not edit!
|
||||
################################################################################
|
||||
|
||||
USER_OBJS :=
|
||||
|
||||
LIBS :=
|
||||
|
||||
27
Release/sources.mk
Normal file
27
Release/sources.mk
Normal 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
24
Release/subdir.mk
Normal 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
177
libs/lcd/hd44780/hd44780.c
Normal 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
155
libs/lcd/hd44780/hd44780.h
Normal 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
65
libs/led/led.c
Normal 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
64
libs/led/led.h
Normal 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
41
main.c
Normal 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;
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user