Initial commit

This commit is contained in:
Florian Klemenz 2017-09-25 23:35:01 +02:00
commit b757be1314
26 changed files with 2135 additions and 0 deletions

71
.cproject Normal file
View File

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

27
.project Normal file
View File

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

View File

@ -0,0 +1,28 @@
avrtarget/ClockFrequency=8000000
avrtarget/ExtRAMSize=0
avrtarget/ExtendedRAM=false
avrtarget/MCUType=atmega168p
avrtarget/UseEEPROM=false
avrtarget/UseExtendedRAMforHeap=true
avrtarget/avrdude/BitBangDelay=
avrtarget/avrdude/Bitclock=
avrtarget/avrdude/EEPROMFile=
avrtarget/avrdude/EEPROMFromConfig=true
avrtarget/avrdude/FlashFile=
avrtarget/avrdude/FlashFromConfig=true
avrtarget/avrdude/Fuses/ByteValues=-1\:-1
avrtarget/avrdude/Fuses/FileName=
avrtarget/avrdude/Fuses/MCUid=atmega8
avrtarget/avrdude/Fuses/UseFile=false
avrtarget/avrdude/Fuses/Write=false
avrtarget/avrdude/NoChipErase=false
avrtarget/avrdude/NoSigCheck=true
avrtarget/avrdude/NoVerify=false
avrtarget/avrdude/NoWrite=false
avrtarget/avrdude/OtherOptions=
avrtarget/avrdude/ProgrammerID=programmerconfig.1
avrtarget/avrdude/UseCounter=false
avrtarget/avrdude/WriteEEPROM=false
avrtarget/avrdude/WriteFlash=true
avrtarget/perConfig=false
eclipse.preferences.version=1

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

@ -0,0 +1,434 @@
Archive member included to satisfy reference by file (symbol)
/usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/crtatmega8.o (exit)
/usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o)
./libs/led/led.o (__do_copy_data)
Memory Configuration
Name Origin Length Attributes
text 0x0000000000000000 0x0000000000002000 xr
data 0x0000000000800060 0x000000000000ffa0 rw !x
eeprom 0x0000000000810000 0x0000000000010000 rw !x
fuse 0x0000000000820000 0x0000000000000400 rw !x
lock 0x0000000000830000 0x0000000000000400 rw !x
signature 0x0000000000840000 0x0000000000000400 rw !x
user_signatures 0x0000000000850000 0x0000000000000400 rw !x
*default* 0x0000000000000000 0xffffffffffffffff
Linker script and memory map
LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/crtatmega8.o
LOAD ./libs/led/led.o
LOAD ./main.o
START GROUP
LOAD /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a
LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/libm.a
LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/libc.a
LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/libatmega8.a
END GROUP
0x0000000000002000 __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x2000
0x000000000000ffa0 __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xffa0
0x0000000000010000 __EEPROM_REGION_LENGTH__ = DEFINED (__EEPROM_REGION_LENGTH__)?__EEPROM_REGION_LENGTH__:0x10000
0x0000000000000400 __FUSE_REGION_LENGTH__ = DEFINED (__FUSE_REGION_LENGTH__)?__FUSE_REGION_LENGTH__:0x400
0x0000000000000400 __LOCK_REGION_LENGTH__ = DEFINED (__LOCK_REGION_LENGTH__)?__LOCK_REGION_LENGTH__:0x400
0x0000000000000400 __SIGNATURE_REGION_LENGTH__ = DEFINED (__SIGNATURE_REGION_LENGTH__)?__SIGNATURE_REGION_LENGTH__:0x400
0x0000000000000400 __USER_SIGNATURE_REGION_LENGTH__ = DEFINED (__USER_SIGNATURE_REGION_LENGTH__)?__USER_SIGNATURE_REGION_LENGTH__:0x400
.hash
*(.hash)
.dynsym
*(.dynsym)
.dynstr
*(.dynstr)
.gnu.version
*(.gnu.version)
.gnu.version_d
*(.gnu.version_d)
.gnu.version_r
*(.gnu.version_r)
.rel.init
*(.rel.init)
.rela.init
*(.rela.init)
.rel.text
*(.rel.text)
*(.rel.text.*)
*(.rel.gnu.linkonce.t*)
.rela.text
*(.rela.text)
*(.rela.text.*)
*(.rela.gnu.linkonce.t*)
.rel.fini
*(.rel.fini)
.rela.fini
*(.rela.fini)
.rel.rodata
*(.rel.rodata)
*(.rel.rodata.*)
*(.rel.gnu.linkonce.r*)
.rela.rodata
*(.rela.rodata)
*(.rela.rodata.*)
*(.rela.gnu.linkonce.r*)
.rel.data
*(.rel.data)
*(.rel.data.*)
*(.rel.gnu.linkonce.d*)
.rela.data
*(.rela.data)
*(.rela.data.*)
*(.rela.gnu.linkonce.d*)
.rel.ctors
*(.rel.ctors)
.rela.ctors
*(.rela.ctors)
.rel.dtors
*(.rel.dtors)
.rela.dtors
*(.rela.dtors)
.rel.got
*(.rel.got)
.rela.got
*(.rela.got)
.rel.bss
*(.rel.bss)
.rela.bss
*(.rela.bss)
.rel.plt
*(.rel.plt)
.rela.plt
*(.rela.plt)
.text 0x0000000000000000 0x150
*(.vectors)
.vectors 0x0000000000000000 0x26 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/crtatmega8.o
0x0000000000000000 __vectors
0x0000000000000000 __vector_default
*(.vectors)
*(.progmem.gcc*)
0x0000000000000026 . = ALIGN (0x2)
0x0000000000000026 __trampolines_start = .
*(.trampolines)
.trampolines 0x0000000000000026 0x0 linker stubs
*(.trampolines*)
0x0000000000000026 __trampolines_end = .
*libprintf_flt.a:*(.progmem.data)
*libc.a:*(.progmem.data)
*(.progmem*)
0x0000000000000026 . = ALIGN (0x2)
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x0000000000000026 __ctors_start = .
*(.ctors)
0x0000000000000026 __ctors_end = .
0x0000000000000026 __dtors_start = .
*(.dtors)
0x0000000000000026 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x0000000000000026 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/crtatmega8.o
0x0000000000000026 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x0000000000000026 0xc /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/crtatmega8.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x0000000000000032 0x16 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o)
0x0000000000000032 __do_copy_data
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x0000000000000048 0x4 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/crtatmega8.o
*(.init9)
*(.text)
.text 0x000000000000004c 0x2 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/crtatmega8.o
0x000000000000004c __vector_1
0x000000000000004c __vector_12
0x000000000000004c __bad_interrupt
0x000000000000004c __vector_6
0x000000000000004c __vector_3
0x000000000000004c __vector_11
0x000000000000004c __vector_13
0x000000000000004c __vector_17
0x000000000000004c __vector_7
0x000000000000004c __vector_5
0x000000000000004c __vector_4
0x000000000000004c __vector_9
0x000000000000004c __vector_2
0x000000000000004c __vector_15
0x000000000000004c __vector_8
0x000000000000004c __vector_14
0x000000000000004c __vector_10
0x000000000000004c __vector_16
0x000000000000004c __vector_18
.text 0x000000000000004e 0x0 ./libs/led/led.o
.text 0x000000000000004e 0x0 ./main.o
.text 0x000000000000004e 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o)
.text 0x000000000000004e 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o)
0x000000000000004e . = ALIGN (0x2)
*(.text.*)
.text.led_initPorts
0x000000000000004e 0x24 ./libs/led/led.o
0x000000000000004e led_initPorts
.text.led_init
0x0000000000000072 0x6 ./libs/led/led.o
0x0000000000000072 led_init
.text.led_off 0x0000000000000078 0x3e ./libs/led/led.o
0x0000000000000078 led_off
.text.led_on 0x00000000000000b6 0x40 ./libs/led/led.o
0x00000000000000b6 led_on
.text.led_flash
0x00000000000000f6 0x2c ./libs/led/led.o
0x00000000000000f6 led_flash
.text.disco 0x0000000000000122 0xc ./libs/led/led.o
0x0000000000000122 disco
.text.startup.main
0x000000000000012e 0x1e ./main.o
0x000000000000012e main
.text.libgcc.mul
0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o)
.text.libgcc.div
0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o)
.text.libgcc 0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o)
.text.libgcc.prologue
0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o)
.text.libgcc.builtins
0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o)
.text.libgcc.fmul
0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o)
.text.libgcc.fixed
0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o)
.text.libgcc.mul
0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o)
.text.libgcc.div
0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o)
.text.libgcc 0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o)
.text.libgcc.prologue
0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o)
.text.libgcc.builtins
0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o)
.text.libgcc.fmul
0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o)
.text.libgcc.fixed
0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o)
0x000000000000014c . = ALIGN (0x2)
*(.fini9)
.fini9 0x000000000000014c 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o)
0x000000000000014c exit
0x000000000000014c _exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x000000000000014c 0x4 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o)
*(.fini0)
0x0000000000000150 _etext = .
.data 0x0000000000800060 0x2 load address 0x0000000000000150
0x0000000000800060 PROVIDE (__data_start, .)
*(.data)
.data 0x0000000000800060 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/crtatmega8.o
.data 0x0000000000800060 0x0 ./libs/led/led.o
.data 0x0000000000800060 0x0 ./main.o
.data 0x0000000000800060 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o)
.data 0x0000000000800060 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o)
*(.data*)
.data.led_flags
0x0000000000800060 0x1 ./libs/led/led.o
0x0000000000800060 led_flags
*(.rodata)
*(.rodata*)
*(.gnu.linkonce.d*)
0x0000000000800062 . = ALIGN (0x2)
*fill* 0x0000000000800061 0x1
0x0000000000800062 _edata = .
0x0000000000800062 PROVIDE (__data_end, .)
.bss 0x0000000000800062 0x0
[!provide] PROVIDE (__bss_start, .)
*(.bss)
.bss 0x0000000000800062 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/crtatmega8.o
.bss 0x0000000000800062 0x0 ./libs/led/led.o
.bss 0x0000000000800062 0x0 ./main.o
.bss 0x0000000000800062 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_exit.o)
.bss 0x0000000000800062 0x0 /usr/lib/gcc/avr/4.9.2/avr4/libgcc.a(_copy_data.o)
*(.bss*)
*(COMMON)
[!provide] PROVIDE (__bss_end, .)
0x0000000000000150 __data_load_start = LOADADDR (.data)
0x0000000000000152 __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x0000000000800062 0x0
[!provide] PROVIDE (__noinit_start, .)
*(.noinit*)
[!provide] PROVIDE (__noinit_end, .)
0x0000000000800062 _end = .
[!provide] PROVIDE (__heap_start, .)
.eeprom 0x0000000000810000 0x0
*(.eeprom*)
0x0000000000810000 __eeprom_end = .
.fuse
*(.fuse)
*(.lfuse)
*(.hfuse)
*(.efuse)
.lock
*(.lock*)
.signature
*(.signature*)
.user_signatures
*(.user_signatures*)
.stab
*(.stab)
.stabstr
*(.stabstr)
.stab.excl
*(.stab.excl)
.stab.exclstr
*(.stab.exclstr)
.stab.index
*(.stab.index)
.stab.indexstr
*(.stab.indexstr)
.comment 0x0000000000000000 0x11
*(.comment)
.comment 0x0000000000000000 0x11 ./libs/led/led.o
0x12 (size before relaxing)
.comment 0x0000000000000011 0x12 ./main.o
.note.gnu.avr.deviceinfo
0x0000000000000000 0x3c
.note.gnu.avr.deviceinfo
0x0000000000000000 0x3c /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr4/crtatmega8.o
.note.gnu.build-id
*(.note.gnu.build-id)
.debug
*(.debug)
.line
*(.line)
.debug_srcinfo
*(.debug_srcinfo)
.debug_sfnames
*(.debug_sfnames)
.debug_aranges
*(.debug_aranges)
.debug_pubnames
*(.debug_pubnames)
.debug_info
*(.debug_info .gnu.linkonce.wi.*)
.debug_abbrev
*(.debug_abbrev)
.debug_line
*(.debug_line .debug_line.* .debug_line_end)
.debug_frame
*(.debug_frame)
.debug_str
*(.debug_str)
.debug_loc
*(.debug_loc)
.debug_macinfo
*(.debug_macinfo)
.debug_weaknames
*(.debug_weaknames)
.debug_funcnames
*(.debug_funcnames)
.debug_typenames
*(.debug_typenames)
.debug_varnames
*(.debug_varnames)
.debug_pubtypes
*(.debug_pubtypes)
.debug_ranges
*(.debug_ranges)
.debug_macro
*(.debug_macro)
OUTPUT(avr-blink.elf elf32-avr)
LOAD linker stubs

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

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

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

Binary file not shown.

57
Release/avr-lib-uart.hex Normal file
View File

@ -0,0 +1,57 @@
:100000000C9434000C9451000C9451000C94510049
:100010000C9451000C9451000C9451000C9451001C
:100020000C9451000C9451000C9451000C9451000C
:100030000C9451000C9451000C9451000C945100FC
:100040000C9451000C9451000C9451000C945100EC
:100050000C9451000C9451000C9451000C945100DC
:100060000C9451000C94510011241FBECFEFD4E02A
:10007000DEBFCDBF11E0A0E0B1E0EAE6F3E002C0F0
:1000800005900D92AA30B107D9F721E0AAE0B1E0BE
:1000900001C01D92AB32B207E1F70E9464010C94DB
:1000A000B3010C94000088E18093C10086E0809346
:1000B000C2001092C50083E38093C400089590911C
:1000C000C00095FFFCCF8093C6000895CF93DF93C7
:1000D000EC018991882319F00E945F00FACFDF912B
:1000E000CF910895CF93DF93CDB7DEB727970FB6A3
:1000F000F894DEBF0FBECDBF4AE0BE016F5F7F4FF9
:100100000E947E01CE0101960E94660027960FB6DE
:10011000F894DEBF0FBECDBFDF91CF910895CF938E
:10012000DF93CDB7DEB727970FB6F894DEBF0FBECB
:10013000CDBF42E0BE016F5F7F4F0E947E01CE01C6
:1001400001960E94660027960FB6F894DEBF0FBE98
:10015000CDBFDF91CF910895CF93DF93CDB7DEB7B9
:1001600027970FB6F894DEBF0FBECDBF40E1BE01AA
:100170006F5F7F4F0E947E01CE0101960E94660054
:1001800027960FB6F894DEBF0FBECDBFDF91CF919B
:1001900008958AE00C945F008091C00087FFFCCF37
:1001A0008091C60008951F93CF93DF930E94CC00E7
:1001B000CAE0D1E01C2F105E8A3041F0882331F074
:1001C0001C1721F089930E94CC00F6CF18828AE098
:1001D00091E0DF91CF911F9108958AB1806E8AB925
:1001E0008091000181FF03C08BB18F718BB9809129
:1001F000000180FF03C08BB1806E8BB9089580939E
:10020000000108950C94ED00482F8091000181FFBA
:100210000BC09BB121E030E0042E01C0220F0A94F4
:10022000EAF7209529232BB98091000180FF0AC0AD
:100230005BB121E030E0C90101C0880F4A95EAF7BF
:10024000852B8BB908959091000191FF0AC09BB155
:1002500021E030E0082E01C0220F0A94EAF7292B92
:100260002BB99091000190FF0DC04BB121E030E01F
:10027000B90102C0660F771F8A95E2F7CB0180951E
:1002800084238BB90895CF93C82F0E9423018FE157
:100290009EE40197F1F700C000008C2F0E9404013A
:1002A0009FEF2AE683E0915020408040E1F700C0B4
:1002B0000000CF91089585E00E94430186E00E94EE
:1002C000430187E00C94430182E00E94FF000E94FA
:1002D00002010E9453000E945B0181E091E00E94B4
:1002E000660085E00E9443012FEF89E698E12150E6
:1002F00080409040E1F700C00000EFCFBB274A30BC
:1003000031F4992322F4BDE2909581959F4F0C948E
:100310008A01BB27FB015527AA27880F991FAA1F0F
:10032000A41710F0A41B83955051B9F7A05DAA3310
:1003300008F0A95DA193009779F7B111B1931192DB
:10034000CB010C94A301DC01FC01672F7191772391
:10035000E1F7329704C07C916D9370836291AE1780
:0A036000BF07C8F30895F894FFCF1B
:0A036A000152454144590A00000009
:00000001FF

446
Release/avr-lib-uart.lss Normal file
View File

@ -0,0 +1,446 @@
avr-lib-uart.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 0000000a 00800100 0000036a 000003fe 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 0000036a 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 00000021 0080010a 0080010a 00000408 2**0
ALLOC
3 .comment 00000011 00000000 00000000 00000408 2**0
CONTENTS, READONLY
4 .note.gnu.avr.deviceinfo 00000040 00000000 00000000 0000041c 2**2
CONTENTS, READONLY
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 34 00 jmp 0x68 ; 0x68 <__ctors_end>
4: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
8: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
10: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
14: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
18: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
1c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
20: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
24: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
28: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
2c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
30: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
34: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
38: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
3c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
40: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
44: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
48: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
4c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
50: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
54: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
58: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
5c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
60: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
64: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
00000068 <__ctors_end>:
68: 11 24 eor r1, r1
6a: 1f be out 0x3f, r1 ; 63
6c: cf ef ldi r28, 0xFF ; 255
6e: d4 e0 ldi r29, 0x04 ; 4
70: de bf out 0x3e, r29 ; 62
72: cd bf out 0x3d, r28 ; 61
00000074 <__do_copy_data>:
74: 11 e0 ldi r17, 0x01 ; 1
76: a0 e0 ldi r26, 0x00 ; 0
78: b1 e0 ldi r27, 0x01 ; 1
7a: ea e6 ldi r30, 0x6A ; 106
7c: f3 e0 ldi r31, 0x03 ; 3
7e: 02 c0 rjmp .+4 ; 0x84 <__do_copy_data+0x10>
80: 05 90 lpm r0, Z+
82: 0d 92 st X+, r0
84: aa 30 cpi r26, 0x0A ; 10
86: b1 07 cpc r27, r17
88: d9 f7 brne .-10 ; 0x80 <__do_copy_data+0xc>
0000008a <__do_clear_bss>:
8a: 21 e0 ldi r18, 0x01 ; 1
8c: aa e0 ldi r26, 0x0A ; 10
8e: b1 e0 ldi r27, 0x01 ; 1
90: 01 c0 rjmp .+2 ; 0x94 <.do_clear_bss_start>
00000092 <.do_clear_bss_loop>:
92: 1d 92 st X+, r1
00000094 <.do_clear_bss_start>:
94: ab 32 cpi r26, 0x2B ; 43
96: b2 07 cpc r27, r18
98: e1 f7 brne .-8 ; 0x92 <.do_clear_bss_loop>
9a: 0e 94 64 01 call 0x2c8 ; 0x2c8 <main>
9e: 0c 94 b3 01 jmp 0x366 ; 0x366 <_exit>
000000a2 <__bad_interrupt>:
a2: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
000000a6 <uart_init>:
a6: 88 e1 ldi r24, 0x18 ; 24
a8: 80 93 c1 00 sts 0x00C1, r24 ; 0x8000c1 <__TEXT_REGION_LENGTH__+0x7e00c1>
ac: 86 e0 ldi r24, 0x06 ; 6
ae: 80 93 c2 00 sts 0x00C2, r24 ; 0x8000c2 <__TEXT_REGION_LENGTH__+0x7e00c2>
b2: 10 92 c5 00 sts 0x00C5, r1 ; 0x8000c5 <__TEXT_REGION_LENGTH__+0x7e00c5>
b6: 83 e3 ldi r24, 0x33 ; 51
b8: 80 93 c4 00 sts 0x00C4, r24 ; 0x8000c4 <__TEXT_REGION_LENGTH__+0x7e00c4>
bc: 08 95 ret
000000be <uart_sendChar>:
be: 90 91 c0 00 lds r25, 0x00C0 ; 0x8000c0 <__TEXT_REGION_LENGTH__+0x7e00c0>
c2: 95 ff sbrs r25, 5
c4: fc cf rjmp .-8 ; 0xbe <uart_sendChar>
c6: 80 93 c6 00 sts 0x00C6, r24 ; 0x8000c6 <__TEXT_REGION_LENGTH__+0x7e00c6>
ca: 08 95 ret
000000cc <uart_sendString>:
cc: cf 93 push r28
ce: df 93 push r29
d0: ec 01 movw r28, r24
d2: 89 91 ld r24, Y+
d4: 88 23 and r24, r24
d6: 19 f0 breq .+6 ; 0xde <uart_sendString+0x12>
d8: 0e 94 5f 00 call 0xbe ; 0xbe <uart_sendChar>
dc: fa cf rjmp .-12 ; 0xd2 <uart_sendString+0x6>
de: df 91 pop r29
e0: cf 91 pop r28
e2: 08 95 ret
000000e4 <uart_sendInt>:
e4: cf 93 push r28
e6: df 93 push r29
e8: cd b7 in r28, 0x3d ; 61
ea: de b7 in r29, 0x3e ; 62
ec: 27 97 sbiw r28, 0x07 ; 7
ee: 0f b6 in r0, 0x3f ; 63
f0: f8 94 cli
f2: de bf out 0x3e, r29 ; 62
f4: 0f be out 0x3f, r0 ; 63
f6: cd bf out 0x3d, r28 ; 61
f8: 4a e0 ldi r20, 0x0A ; 10
fa: be 01 movw r22, r28
fc: 6f 5f subi r22, 0xFF ; 255
fe: 7f 4f sbci r23, 0xFF ; 255
100: 0e 94 7e 01 call 0x2fc ; 0x2fc <__itoa_ncheck>
104: ce 01 movw r24, r28
106: 01 96 adiw r24, 0x01 ; 1
108: 0e 94 66 00 call 0xcc ; 0xcc <uart_sendString>
10c: 27 96 adiw r28, 0x07 ; 7
10e: 0f b6 in r0, 0x3f ; 63
110: f8 94 cli
112: de bf out 0x3e, r29 ; 62
114: 0f be out 0x3f, r0 ; 63
116: cd bf out 0x3d, r28 ; 61
118: df 91 pop r29
11a: cf 91 pop r28
11c: 08 95 ret
0000011e <uart_sendBinary>:
11e: cf 93 push r28
120: df 93 push r29
122: cd b7 in r28, 0x3d ; 61
124: de b7 in r29, 0x3e ; 62
126: 27 97 sbiw r28, 0x07 ; 7
128: 0f b6 in r0, 0x3f ; 63
12a: f8 94 cli
12c: de bf out 0x3e, r29 ; 62
12e: 0f be out 0x3f, r0 ; 63
130: cd bf out 0x3d, r28 ; 61
132: 42 e0 ldi r20, 0x02 ; 2
134: be 01 movw r22, r28
136: 6f 5f subi r22, 0xFF ; 255
138: 7f 4f sbci r23, 0xFF ; 255
13a: 0e 94 7e 01 call 0x2fc ; 0x2fc <__itoa_ncheck>
13e: ce 01 movw r24, r28
140: 01 96 adiw r24, 0x01 ; 1
142: 0e 94 66 00 call 0xcc ; 0xcc <uart_sendString>
146: 27 96 adiw r28, 0x07 ; 7
148: 0f b6 in r0, 0x3f ; 63
14a: f8 94 cli
14c: de bf out 0x3e, r29 ; 62
14e: 0f be out 0x3f, r0 ; 63
150: cd bf out 0x3d, r28 ; 61
152: df 91 pop r29
154: cf 91 pop r28
156: 08 95 ret
00000158 <uart_sendHex>:
158: cf 93 push r28
15a: df 93 push r29
15c: cd b7 in r28, 0x3d ; 61
15e: de b7 in r29, 0x3e ; 62
160: 27 97 sbiw r28, 0x07 ; 7
162: 0f b6 in r0, 0x3f ; 63
164: f8 94 cli
166: de bf out 0x3e, r29 ; 62
168: 0f be out 0x3f, r0 ; 63
16a: cd bf out 0x3d, r28 ; 61
16c: 40 e1 ldi r20, 0x10 ; 16
16e: be 01 movw r22, r28
170: 6f 5f subi r22, 0xFF ; 255
172: 7f 4f sbci r23, 0xFF ; 255
174: 0e 94 7e 01 call 0x2fc ; 0x2fc <__itoa_ncheck>
178: ce 01 movw r24, r28
17a: 01 96 adiw r24, 0x01 ; 1
17c: 0e 94 66 00 call 0xcc ; 0xcc <uart_sendString>
180: 27 96 adiw r28, 0x07 ; 7
182: 0f b6 in r0, 0x3f ; 63
184: f8 94 cli
186: de bf out 0x3e, r29 ; 62
188: 0f be out 0x3f, r0 ; 63
18a: cd bf out 0x3d, r28 ; 61
18c: df 91 pop r29
18e: cf 91 pop r28
190: 08 95 ret
00000192 <uart_sendLF>:
192: 8a e0 ldi r24, 0x0A ; 10
194: 0c 94 5f 00 jmp 0xbe ; 0xbe <uart_sendChar>
00000198 <uart_receiveChar>:
198: 80 91 c0 00 lds r24, 0x00C0 ; 0x8000c0 <__TEXT_REGION_LENGTH__+0x7e00c0>
19c: 87 ff sbrs r24, 7
19e: fc cf rjmp .-8 ; 0x198 <uart_receiveChar>
1a0: 80 91 c6 00 lds r24, 0x00C6 ; 0x8000c6 <__TEXT_REGION_LENGTH__+0x7e00c6>
1a4: 08 95 ret
000001a6 <uart_receiveString>:
1a6: 1f 93 push r17
1a8: cf 93 push r28
1aa: df 93 push r29
1ac: 0e 94 cc 00 call 0x198 ; 0x198 <uart_receiveChar>
1b0: ca e0 ldi r28, 0x0A ; 10
1b2: d1 e0 ldi r29, 0x01 ; 1
1b4: 1c 2f mov r17, r28
1b6: 10 5e subi r17, 0xE0 ; 224
1b8: 8a 30 cpi r24, 0x0A ; 10
1ba: 41 f0 breq .+16 ; 0x1cc <uart_receiveString+0x26>
1bc: 88 23 and r24, r24
1be: 31 f0 breq .+12 ; 0x1cc <uart_receiveString+0x26>
1c0: 1c 17 cp r17, r28
1c2: 21 f0 breq .+8 ; 0x1cc <uart_receiveString+0x26>
1c4: 89 93 st Y+, r24
1c6: 0e 94 cc 00 call 0x198 ; 0x198 <uart_receiveChar>
1ca: f6 cf rjmp .-20 ; 0x1b8 <uart_receiveString+0x12>
1cc: 18 82 st Y, r1
1ce: 8a e0 ldi r24, 0x0A ; 10
1d0: 91 e0 ldi r25, 0x01 ; 1
1d2: df 91 pop r29
1d4: cf 91 pop r28
1d6: 1f 91 pop r17
1d8: 08 95 ret
000001da <led_initPorts>:
1da: 8a b1 in r24, 0x0a ; 10
1dc: 80 6e ori r24, 0xE0 ; 224
1de: 8a b9 out 0x0a, r24 ; 10
1e0: 80 91 00 01 lds r24, 0x0100 ; 0x800100 <__data_start>
1e4: 81 ff sbrs r24, 1
1e6: 03 c0 rjmp .+6 ; 0x1ee <led_initPorts+0x14>
1e8: 8b b1 in r24, 0x0b ; 11
1ea: 8f 71 andi r24, 0x1F ; 31
1ec: 8b b9 out 0x0b, r24 ; 11
1ee: 80 91 00 01 lds r24, 0x0100 ; 0x800100 <__data_start>
1f2: 80 ff sbrs r24, 0
1f4: 03 c0 rjmp .+6 ; 0x1fc <led_initPorts+0x22>
1f6: 8b b1 in r24, 0x0b ; 11
1f8: 80 6e ori r24, 0xE0 ; 224
1fa: 8b b9 out 0x0b, r24 ; 11
1fc: 08 95 ret
000001fe <led_config>:
1fe: 80 93 00 01 sts 0x0100, r24 ; 0x800100 <__data_start>
202: 08 95 ret
00000204 <led_init>:
204: 0c 94 ed 00 jmp 0x1da ; 0x1da <led_initPorts>
00000208 <led_off>:
208: 48 2f mov r20, r24
20a: 80 91 00 01 lds r24, 0x0100 ; 0x800100 <__data_start>
20e: 81 ff sbrs r24, 1
210: 0b c0 rjmp .+22 ; 0x228 <led_off+0x20>
212: 9b b1 in r25, 0x0b ; 11
214: 21 e0 ldi r18, 0x01 ; 1
216: 30 e0 ldi r19, 0x00 ; 0
218: 04 2e mov r0, r20
21a: 01 c0 rjmp .+2 ; 0x21e <led_off+0x16>
21c: 22 0f add r18, r18
21e: 0a 94 dec r0
220: ea f7 brpl .-6 ; 0x21c <led_off+0x14>
222: 20 95 com r18
224: 29 23 and r18, r25
226: 2b b9 out 0x0b, r18 ; 11
228: 80 91 00 01 lds r24, 0x0100 ; 0x800100 <__data_start>
22c: 80 ff sbrs r24, 0
22e: 0a c0 rjmp .+20 ; 0x244 <led_off+0x3c>
230: 5b b1 in r21, 0x0b ; 11
232: 21 e0 ldi r18, 0x01 ; 1
234: 30 e0 ldi r19, 0x00 ; 0
236: c9 01 movw r24, r18
238: 01 c0 rjmp .+2 ; 0x23c <led_off+0x34>
23a: 88 0f add r24, r24
23c: 4a 95 dec r20
23e: ea f7 brpl .-6 ; 0x23a <led_off+0x32>
240: 85 2b or r24, r21
242: 8b b9 out 0x0b, r24 ; 11
244: 08 95 ret
00000246 <led_on>:
246: 90 91 00 01 lds r25, 0x0100 ; 0x800100 <__data_start>
24a: 91 ff sbrs r25, 1
24c: 0a c0 rjmp .+20 ; 0x262 <led_on+0x1c>
24e: 9b b1 in r25, 0x0b ; 11
250: 21 e0 ldi r18, 0x01 ; 1
252: 30 e0 ldi r19, 0x00 ; 0
254: 08 2e mov r0, r24
256: 01 c0 rjmp .+2 ; 0x25a <led_on+0x14>
258: 22 0f add r18, r18
25a: 0a 94 dec r0
25c: ea f7 brpl .-6 ; 0x258 <led_on+0x12>
25e: 29 2b or r18, r25
260: 2b b9 out 0x0b, r18 ; 11
262: 90 91 00 01 lds r25, 0x0100 ; 0x800100 <__data_start>
266: 90 ff sbrs r25, 0
268: 0d c0 rjmp .+26 ; 0x284 <led_on+0x3e>
26a: 4b b1 in r20, 0x0b ; 11
26c: 21 e0 ldi r18, 0x01 ; 1
26e: 30 e0 ldi r19, 0x00 ; 0
270: b9 01 movw r22, r18
272: 02 c0 rjmp .+4 ; 0x278 <led_on+0x32>
274: 66 0f add r22, r22
276: 77 1f adc r23, r23
278: 8a 95 dec r24
27a: e2 f7 brpl .-8 ; 0x274 <led_on+0x2e>
27c: cb 01 movw r24, r22
27e: 80 95 com r24
280: 84 23 and r24, r20
282: 8b b9 out 0x0b, r24 ; 11
284: 08 95 ret
00000286 <led_flash>:
286: cf 93 push r28
288: c8 2f mov r28, r24
28a: 0e 94 23 01 call 0x246 ; 0x246 <led_on>
28e: 8f e1 ldi r24, 0x1F ; 31
290: 9e e4 ldi r25, 0x4E ; 78
292: 01 97 sbiw r24, 0x01 ; 1
294: f1 f7 brne .-4 ; 0x292 <led_flash+0xc>
296: 00 c0 rjmp .+0 ; 0x298 <led_flash+0x12>
298: 00 00 nop
29a: 8c 2f mov r24, r28
29c: 0e 94 04 01 call 0x208 ; 0x208 <led_off>
2a0: 9f ef ldi r25, 0xFF ; 255
2a2: 2a e6 ldi r18, 0x6A ; 106
2a4: 83 e0 ldi r24, 0x03 ; 3
2a6: 91 50 subi r25, 0x01 ; 1
2a8: 20 40 sbci r18, 0x00 ; 0
2aa: 80 40 sbci r24, 0x00 ; 0
2ac: e1 f7 brne .-8 ; 0x2a6 <led_flash+0x20>
2ae: 00 c0 rjmp .+0 ; 0x2b0 <led_flash+0x2a>
2b0: 00 00 nop
2b2: cf 91 pop r28
2b4: 08 95 ret
000002b6 <disco>:
2b6: 85 e0 ldi r24, 0x05 ; 5
2b8: 0e 94 43 01 call 0x286 ; 0x286 <led_flash>
2bc: 86 e0 ldi r24, 0x06 ; 6
2be: 0e 94 43 01 call 0x286 ; 0x286 <led_flash>
2c2: 87 e0 ldi r24, 0x07 ; 7
2c4: 0c 94 43 01 jmp 0x286 ; 0x286 <led_flash>
000002c8 <main>:
2c8: 82 e0 ldi r24, 0x02 ; 2
2ca: 0e 94 ff 00 call 0x1fe ; 0x1fe <led_config>
2ce: 0e 94 02 01 call 0x204 ; 0x204 <led_init>
2d2: 0e 94 53 00 call 0xa6 ; 0xa6 <uart_init>
2d6: 0e 94 5b 01 call 0x2b6 ; 0x2b6 <disco>
2da: 81 e0 ldi r24, 0x01 ; 1
2dc: 91 e0 ldi r25, 0x01 ; 1
2de: 0e 94 66 00 call 0xcc ; 0xcc <uart_sendString>
2e2: 85 e0 ldi r24, 0x05 ; 5
2e4: 0e 94 43 01 call 0x286 ; 0x286 <led_flash>
2e8: 2f ef ldi r18, 0xFF ; 255
2ea: 89 e6 ldi r24, 0x69 ; 105
2ec: 98 e1 ldi r25, 0x18 ; 24
2ee: 21 50 subi r18, 0x01 ; 1
2f0: 80 40 sbci r24, 0x00 ; 0
2f2: 90 40 sbci r25, 0x00 ; 0
2f4: e1 f7 brne .-8 ; 0x2ee <main+0x26>
2f6: 00 c0 rjmp .+0 ; 0x2f8 <main+0x30>
2f8: 00 00 nop
2fa: ef cf rjmp .-34 ; 0x2da <main+0x12>
000002fc <__itoa_ncheck>:
2fc: bb 27 eor r27, r27
2fe: 4a 30 cpi r20, 0x0A ; 10
300: 31 f4 brne .+12 ; 0x30e <__itoa_ncheck+0x12>
302: 99 23 and r25, r25
304: 22 f4 brpl .+8 ; 0x30e <__itoa_ncheck+0x12>
306: bd e2 ldi r27, 0x2D ; 45
308: 90 95 com r25
30a: 81 95 neg r24
30c: 9f 4f sbci r25, 0xFF ; 255
30e: 0c 94 8a 01 jmp 0x314 ; 0x314 <__utoa_common>
00000312 <__utoa_ncheck>:
312: bb 27 eor r27, r27
00000314 <__utoa_common>:
314: fb 01 movw r30, r22
316: 55 27 eor r21, r21
318: aa 27 eor r26, r26
31a: 88 0f add r24, r24
31c: 99 1f adc r25, r25
31e: aa 1f adc r26, r26
320: a4 17 cp r26, r20
322: 10 f0 brcs .+4 ; 0x328 <__utoa_common+0x14>
324: a4 1b sub r26, r20
326: 83 95 inc r24
328: 50 51 subi r21, 0x10 ; 16
32a: b9 f7 brne .-18 ; 0x31a <__utoa_common+0x6>
32c: a0 5d subi r26, 0xD0 ; 208
32e: aa 33 cpi r26, 0x3A ; 58
330: 08 f0 brcs .+2 ; 0x334 <__utoa_common+0x20>
332: a9 5d subi r26, 0xD9 ; 217
334: a1 93 st Z+, r26
336: 00 97 sbiw r24, 0x00 ; 0
338: 79 f7 brne .-34 ; 0x318 <__utoa_common+0x4>
33a: b1 11 cpse r27, r1
33c: b1 93 st Z+, r27
33e: 11 92 st Z+, r1
340: cb 01 movw r24, r22
342: 0c 94 a3 01 jmp 0x346 ; 0x346 <strrev>
00000346 <strrev>:
346: dc 01 movw r26, r24
348: fc 01 movw r30, r24
34a: 67 2f mov r22, r23
34c: 71 91 ld r23, Z+
34e: 77 23 and r23, r23
350: e1 f7 brne .-8 ; 0x34a <strrev+0x4>
352: 32 97 sbiw r30, 0x02 ; 2
354: 04 c0 rjmp .+8 ; 0x35e <strrev+0x18>
356: 7c 91 ld r23, X
358: 6d 93 st X+, r22
35a: 70 83 st Z, r23
35c: 62 91 ld r22, -Z
35e: ae 17 cp r26, r30
360: bf 07 cpc r27, r31
362: c8 f3 brcs .-14 ; 0x356 <strrev+0x10>
364: 08 95 ret
00000366 <_exit>:
366: f8 94 cli
00000368 <__stop_program>:
368: ff cf rjmp .-2 ; 0x368 <__stop_program>

530
Release/avr-lib-uart.map Normal file
View File

@ -0,0 +1,530 @@
Archive member included to satisfy reference by file (symbol)
/usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o (exit)
/usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
./libs/led/led.o (__do_copy_data)
/usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
./libs/uart/uart.o (__do_clear_bss)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(itoa_ncheck.o)
./libs/uart/uart.o (__itoa_ncheck)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(utoa_ncheck.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(itoa_ncheck.o) (__utoa_common)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(strrev.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(utoa_ncheck.o) (strrev)
Allocating common symbols
Common symbol size file
uartReceiveBuffer 0x21 ./libs/uart/uart.o
Memory Configuration
Name Origin Length Attributes
text 0x0000000000000000 0x0000000000020000 xr
data 0x0000000000800060 0x000000000000ffa0 rw !x
eeprom 0x0000000000810000 0x0000000000010000 rw !x
fuse 0x0000000000820000 0x0000000000000400 rw !x
lock 0x0000000000830000 0x0000000000000400 rw !x
signature 0x0000000000840000 0x0000000000000400 rw !x
user_signatures 0x0000000000850000 0x0000000000000400 rw !x
*default* 0x0000000000000000 0xffffffffffffffff
Linker script and memory map
Address of section .data set to 0x800100
LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o
LOAD ./libs/uart/uart.o
LOAD ./libs/led/led.o
LOAD ./main.o
START GROUP
LOAD /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a
LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a
LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a
LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libatmega168p.a
END GROUP
0x0000000000020000 __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x20000
0x000000000000ffa0 __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xffa0
0x0000000000010000 __EEPROM_REGION_LENGTH__ = DEFINED (__EEPROM_REGION_LENGTH__)?__EEPROM_REGION_LENGTH__:0x10000
0x0000000000000400 __FUSE_REGION_LENGTH__ = DEFINED (__FUSE_REGION_LENGTH__)?__FUSE_REGION_LENGTH__:0x400
0x0000000000000400 __LOCK_REGION_LENGTH__ = DEFINED (__LOCK_REGION_LENGTH__)?__LOCK_REGION_LENGTH__:0x400
0x0000000000000400 __SIGNATURE_REGION_LENGTH__ = DEFINED (__SIGNATURE_REGION_LENGTH__)?__SIGNATURE_REGION_LENGTH__:0x400
0x0000000000000400 __USER_SIGNATURE_REGION_LENGTH__ = DEFINED (__USER_SIGNATURE_REGION_LENGTH__)?__USER_SIGNATURE_REGION_LENGTH__:0x400
.hash
*(.hash)
.dynsym
*(.dynsym)
.dynstr
*(.dynstr)
.gnu.version
*(.gnu.version)
.gnu.version_d
*(.gnu.version_d)
.gnu.version_r
*(.gnu.version_r)
.rel.init
*(.rel.init)
.rela.init
*(.rela.init)
.rel.text
*(.rel.text)
*(.rel.text.*)
*(.rel.gnu.linkonce.t*)
.rela.text
*(.rela.text)
*(.rela.text.*)
*(.rela.gnu.linkonce.t*)
.rel.fini
*(.rel.fini)
.rela.fini
*(.rela.fini)
.rel.rodata
*(.rel.rodata)
*(.rel.rodata.*)
*(.rel.gnu.linkonce.r*)
.rela.rodata
*(.rela.rodata)
*(.rela.rodata.*)
*(.rela.gnu.linkonce.r*)
.rel.data
*(.rel.data)
*(.rel.data.*)
*(.rel.gnu.linkonce.d*)
.rela.data
*(.rela.data)
*(.rela.data.*)
*(.rela.gnu.linkonce.d*)
.rel.ctors
*(.rel.ctors)
.rela.ctors
*(.rela.ctors)
.rel.dtors
*(.rel.dtors)
.rela.dtors
*(.rela.dtors)
.rel.got
*(.rel.got)
.rela.got
*(.rela.got)
.rel.bss
*(.rel.bss)
.rela.bss
*(.rela.bss)
.rel.plt
*(.rel.plt)
.rela.plt
*(.rela.plt)
.text 0x0000000000000000 0x36a
*(.vectors)
.vectors 0x0000000000000000 0x68 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o
0x0000000000000000 __vectors
0x0000000000000000 __vector_default
*(.vectors)
*(.progmem.gcc*)
0x0000000000000068 . = ALIGN (0x2)
0x0000000000000068 __trampolines_start = .
*(.trampolines)
.trampolines 0x0000000000000068 0x0 linker stubs
*(.trampolines*)
0x0000000000000068 __trampolines_end = .
*libprintf_flt.a:*(.progmem.data)
*libc.a:*(.progmem.data)
*(.progmem*)
0x0000000000000068 . = ALIGN (0x2)
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x0000000000000068 __ctors_start = .
*(.ctors)
0x0000000000000068 __ctors_end = .
0x0000000000000068 __dtors_start = .
*(.dtors)
0x0000000000000068 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x0000000000000068 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o
0x0000000000000068 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x0000000000000068 0xc /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x0000000000000074 0x16 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
0x0000000000000074 __do_copy_data
.init4 0x000000000000008a 0x10 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
0x000000000000008a __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x000000000000009a 0x8 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o
*(.init9)
*(.text)
.text 0x00000000000000a2 0x4 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o
0x00000000000000a2 __vector_22
0x00000000000000a2 __vector_1
0x00000000000000a2 __vector_24
0x00000000000000a2 __vector_12
0x00000000000000a2 __bad_interrupt
0x00000000000000a2 __vector_6
0x00000000000000a2 __vector_3
0x00000000000000a2 __vector_23
0x00000000000000a2 __vector_25
0x00000000000000a2 __vector_11
0x00000000000000a2 __vector_13
0x00000000000000a2 __vector_17
0x00000000000000a2 __vector_19
0x00000000000000a2 __vector_7
0x00000000000000a2 __vector_5
0x00000000000000a2 __vector_4
0x00000000000000a2 __vector_9
0x00000000000000a2 __vector_2
0x00000000000000a2 __vector_21
0x00000000000000a2 __vector_15
0x00000000000000a2 __vector_8
0x00000000000000a2 __vector_14
0x00000000000000a2 __vector_10
0x00000000000000a2 __vector_16
0x00000000000000a2 __vector_18
0x00000000000000a2 __vector_20
.text 0x00000000000000a6 0x0 ./libs/uart/uart.o
.text 0x00000000000000a6 0x0 ./libs/led/led.o
.text 0x00000000000000a6 0x0 ./main.o
.text 0x00000000000000a6 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
.text 0x00000000000000a6 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
.text 0x00000000000000a6 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
.text 0x00000000000000a6 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(itoa_ncheck.o)
.text 0x00000000000000a6 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(utoa_ncheck.o)
.text 0x00000000000000a6 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(strrev.o)
0x00000000000000a6 . = ALIGN (0x2)
*(.text.*)
.text.uart_init
0x00000000000000a6 0x18 ./libs/uart/uart.o
0x00000000000000a6 uart_init
.text.uart_sendChar
0x00000000000000be 0xe ./libs/uart/uart.o
0x00000000000000be uart_sendChar
.text.uart_sendString
0x00000000000000cc 0x18 ./libs/uart/uart.o
0x00000000000000cc uart_sendString
.text.uart_sendInt
0x00000000000000e4 0x3a ./libs/uart/uart.o
0x00000000000000e4 uart_sendInt
.text.uart_sendBinary
0x000000000000011e 0x3a ./libs/uart/uart.o
0x000000000000011e uart_sendBinary
.text.uart_sendHex
0x0000000000000158 0x3a ./libs/uart/uart.o
0x0000000000000158 uart_sendHex
.text.uart_sendLF
0x0000000000000192 0x6 ./libs/uart/uart.o
0x0000000000000192 uart_sendLF
.text.uart_receiveChar
0x0000000000000198 0xe ./libs/uart/uart.o
0x0000000000000198 uart_receiveChar
.text.uart_receiveString
0x00000000000001a6 0x34 ./libs/uart/uart.o
0x00000000000001a6 uart_receiveString
.text.led_initPorts
0x00000000000001da 0x24 ./libs/led/led.o
0x00000000000001da led_initPorts
.text.led_config
0x00000000000001fe 0x6 ./libs/led/led.o
0x00000000000001fe led_config
.text.led_init
0x0000000000000204 0x4 ./libs/led/led.o
0x0000000000000204 led_init
.text.led_off 0x0000000000000208 0x3e ./libs/led/led.o
0x0000000000000208 led_off
.text.led_on 0x0000000000000246 0x40 ./libs/led/led.o
0x0000000000000246 led_on
.text.led_flash
0x0000000000000286 0x30 ./libs/led/led.o
0x0000000000000286 led_flash
.text.disco 0x00000000000002b6 0x12 ./libs/led/led.o
0x00000000000002b6 disco
.text.startup.main
0x00000000000002c8 0x34 ./main.o
0x00000000000002c8 main
.text.libgcc.mul
0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
.text.libgcc.div
0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
.text.libgcc 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
.text.libgcc.prologue
0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
.text.libgcc.builtins
0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
.text.libgcc.fmul
0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
.text.libgcc.fixed
0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
.text.libgcc.mul
0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
.text.libgcc.div
0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
.text.libgcc 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
.text.libgcc.prologue
0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
.text.libgcc.builtins
0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
.text.libgcc.fmul
0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
.text.libgcc.fixed
0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
.text.libgcc.mul
0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.div
0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
.text.libgcc 0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.prologue
0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.builtins
0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.fmul
0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.fixed
0x00000000000002fc 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
.text.avr-libc
0x00000000000002fc 0x16 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(itoa_ncheck.o)
0x00000000000002fc __itoa_ncheck
.text.avr-libc
0x0000000000000312 0x34 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(utoa_ncheck.o)
0x0000000000000312 __utoa_ncheck
0x0000000000000314 __utoa_common
.text.avr-libc
0x0000000000000346 0x20 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(strrev.o)
0x0000000000000346 strrev
0x0000000000000366 . = ALIGN (0x2)
*(.fini9)
.fini9 0x0000000000000366 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
0x0000000000000366 exit
0x0000000000000366 _exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x0000000000000366 0x4 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
*(.fini0)
0x000000000000036a _etext = .
.data 0x0000000000800100 0xa load address 0x000000000000036a
0x0000000000800100 PROVIDE (__data_start, .)
*(.data)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o
.data 0x0000000000800100 0x0 ./libs/uart/uart.o
.data 0x0000000000800100 0x0 ./libs/led/led.o
.data 0x0000000000800100 0x0 ./main.o
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(itoa_ncheck.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(utoa_ncheck.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(strrev.o)
*(.data*)
.data.led_flags
0x0000000000800100 0x1 ./libs/led/led.o
0x0000000000800100 led_flags
*(.rodata)
.rodata 0x0000000000800101 0x8 ./main.o
*(.rodata*)
*(.gnu.linkonce.d*)
0x000000000080010a . = ALIGN (0x2)
*fill* 0x0000000000800109 0x1
0x000000000080010a _edata = .
0x000000000080010a PROVIDE (__data_end, .)
.bss 0x000000000080010a 0x21
0x000000000080010a PROVIDE (__bss_start, .)
*(.bss)
.bss 0x000000000080010a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o
.bss 0x000000000080010a 0x0 ./libs/uart/uart.o
.bss 0x000000000080010a 0x0 ./libs/led/led.o
.bss 0x000000000080010a 0x0 ./main.o
.bss 0x000000000080010a 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
.bss 0x000000000080010a 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
.bss 0x000000000080010a 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
.bss 0x000000000080010a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(itoa_ncheck.o)
.bss 0x000000000080010a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(utoa_ncheck.o)
.bss 0x000000000080010a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(strrev.o)
*(.bss*)
*(COMMON)
COMMON 0x000000000080010a 0x21 ./libs/uart/uart.o
0x000000000080010a uartReceiveBuffer
0x000000000080012b PROVIDE (__bss_end, .)
0x000000000000036a __data_load_start = LOADADDR (.data)
0x0000000000000374 __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x000000000080012b 0x0
[!provide] PROVIDE (__noinit_start, .)
*(.noinit*)
[!provide] PROVIDE (__noinit_end, .)
0x000000000080012b _end = .
[!provide] PROVIDE (__heap_start, .)
.eeprom 0x0000000000810000 0x0
*(.eeprom*)
0x0000000000810000 __eeprom_end = .
.fuse
*(.fuse)
*(.lfuse)
*(.hfuse)
*(.efuse)
.lock
*(.lock*)
.signature
*(.signature*)
.user_signatures
*(.user_signatures*)
.stab
*(.stab)
.stabstr
*(.stabstr)
.stab.excl
*(.stab.excl)
.stab.exclstr
*(.stab.exclstr)
.stab.index
*(.stab.index)
.stab.indexstr
*(.stab.indexstr)
.comment 0x0000000000000000 0x11
*(.comment)
.comment 0x0000000000000000 0x11 ./libs/uart/uart.o
0x12 (size before relaxing)
.comment 0x0000000000000011 0x12 ./libs/led/led.o
.comment 0x0000000000000011 0x12 ./main.o
.note.gnu.avr.deviceinfo
0x0000000000000000 0x40
.note.gnu.avr.deviceinfo
0x0000000000000000 0x40 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega168p.o
.note.gnu.build-id
*(.note.gnu.build-id)
.debug
*(.debug)
.line
*(.line)
.debug_srcinfo
*(.debug_srcinfo)
.debug_sfnames
*(.debug_sfnames)
.debug_aranges
*(.debug_aranges)
.debug_pubnames
*(.debug_pubnames)
.debug_info
*(.debug_info .gnu.linkonce.wi.*)
.debug_abbrev
*(.debug_abbrev)
.debug_line
*(.debug_line .debug_line.* .debug_line_end)
.debug_frame
*(.debug_frame)
.debug_str
*(.debug_str)
.debug_loc
*(.debug_loc)
.debug_macinfo
*(.debug_macinfo)
.debug_weaknames
*(.debug_weaknames)
.debug_funcnames
*(.debug_funcnames)
.debug_typenames
*(.debug_typenames)
.debug_varnames
*(.debug_varnames)
.debug_pubtypes
*(.debug_pubtypes)
.debug_ranges
*(.debug_ranges)
.debug_macro
*(.debug_macro)
OUTPUT(avr-lib-uart.elf elf32-avr)
LOAD linker stubs

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

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

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

Binary file not shown.

View File

@ -0,0 +1,24 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
../libs/led/led.c
OBJS += \
./libs/led/led.o
C_DEPS += \
./libs/led/led.d
# Each subdirectory must supply rules for building sources it contributes
libs/led/%.o: ../libs/led/%.c
@echo 'Building file: $<'
@echo 'Invoking: AVR Compiler'
avr-gcc -Wall -Os -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega168p -DF_CPU=8000000UL -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '

View File

@ -0,0 +1,24 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
../libs/uart/uart.c
OBJS += \
./libs/uart/uart.o
C_DEPS += \
./libs/uart/uart.d
# Each subdirectory must supply rules for building sources it contributes
libs/uart/%.o: ../libs/uart/%.c
@echo 'Building file: $<'
@echo 'Invoking: AVR Compiler'
avr-gcc -Wall -Os -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega168p -DF_CPU=8000000UL -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '

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

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

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

Binary file not shown.

5
Release/main.d Normal file
View File

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

BIN
Release/main.o Normal file

Binary file not shown.

91
Release/makefile Normal file
View File

@ -0,0 +1,91 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
-include ../makefile.init
RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include libs/uart/subdir.mk
-include libs/led/subdir.mk
-include subdir.mk
-include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(ASM_DEPS)),)
-include $(ASM_DEPS)
endif
ifneq ($(strip $(S_DEPS)),)
-include $(S_DEPS)
endif
ifneq ($(strip $(S_UPPER_DEPS)),)
-include $(S_UPPER_DEPS)
endif
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
endif
-include ../makefile.defs
# Add inputs and outputs from these tool invocations to the build variables
LSS += \
avr-lib-uart.lss \
FLASH_IMAGE += \
avr-lib-uart.hex \
EEPROM_IMAGE += \
avr-lib-uart.eep \
SIZEDUMMY += \
sizedummy \
# All Target
all: avr-lib-uart.elf secondary-outputs
# Tool invocations
avr-lib-uart.elf: $(OBJS) $(USER_OBJS)
@echo 'Building target: $@'
@echo 'Invoking: AVR C Linker'
avr-gcc -Wl,-Map,avr-lib-uart.map -mmcu=atmega168p -o "avr-lib-uart.elf" $(OBJS) $(USER_OBJS) $(LIBS)
@echo 'Finished building target: $@'
@echo ' '
avr-lib-uart.lss: avr-lib-uart.elf
@echo 'Invoking: AVR Create Extended Listing'
-avr-objdump -h -S avr-lib-uart.elf >"avr-lib-uart.lss"
@echo 'Finished building: $@'
@echo ' '
avr-lib-uart.hex: avr-lib-uart.elf
@echo 'Create Flash image (ihex format)'
-avr-objcopy -R .eeprom -R .fuse -R .lock -R .signature -O ihex avr-lib-uart.elf "avr-lib-uart.hex"
@echo 'Finished building: $@'
@echo ' '
avr-lib-uart.eep: avr-lib-uart.elf
@echo 'Create eeprom image (ihex format)'
-avr-objcopy -j .eeprom --no-change-warnings --change-section-lma .eeprom=0 -O ihex avr-lib-uart.elf "avr-lib-uart.eep"
@echo 'Finished building: $@'
@echo ' '
sizedummy: avr-lib-uart.elf
@echo 'Invoking: Print Size'
-avr-size --format=avr --mcu=atmega168p avr-lib-uart.elf
@echo 'Finished building: $@'
@echo ' '
# Other Targets
clean:
-$(RM) $(FLASH_IMAGE)$(ELFS)$(OBJS)$(ASM_DEPS)$(EEPROM_IMAGE)$(S_DEPS)$(SIZEDUMMY)$(S_UPPER_DEPS)$(LSS)$(C_DEPS) avr-lib-uart.elf
-@echo ' '
secondary-outputs: $(LSS) $(FLASH_IMAGE) $(EEPROM_IMAGE) $(SIZEDUMMY)
.PHONY: all clean dependents
-include ../makefile.targets

8
Release/objects.mk Normal file
View File

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

27
Release/sources.mk Normal file
View File

@ -0,0 +1,27 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
OBJ_SRCS :=
S_SRCS :=
ASM_SRCS :=
C_SRCS :=
S_UPPER_SRCS :=
O_SRCS :=
FLASH_IMAGE :=
ELFS :=
OBJS :=
ASM_DEPS :=
EEPROM_IMAGE :=
S_DEPS :=
SIZEDUMMY :=
S_UPPER_DEPS :=
LSS :=
C_DEPS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
libs/led \
libs/uart \
. \

24
Release/subdir.mk Normal file
View File

@ -0,0 +1,24 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
../main.c
OBJS += \
./main.o
C_DEPS += \
./main.d
# Each subdirectory must supply rules for building sources it contributes
%.o: ../%.c
@echo 'Building file: $<'
@echo 'Invoking: AVR Compiler'
avr-gcc -Wall -Os -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega168p -DF_CPU=8000000UL -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '

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

@ -0,0 +1,62 @@
/*
* led.c
*
* Created on: 26.07.2015
* Author: Flo
*/
#include "led.h"
// init default configuration
volatile uint8_t led_flags = LED_ACTIVE_LOW;
void led_initPorts() {
// define the following pins as OUTPUT
LED_DDR |= ((1<<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));
}
if (led_flags & LED_ACTIVE_LOW) {
// 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);
if (led_flags & LED_ACTIVE_LOW) sbi(LED_PORT,pin);
}
void led_on(uint8_t pin) {
if (led_flags & LED_ACTIVE_HIGH) sbi(LED_PORT,pin);
if (led_flags & LED_ACTIVE_LOW) cbi(LED_PORT,pin);
}
void led_flash(uint8_t pin) {
led_on(pin);
_delay_ms(10);
led_off(pin);
_delay_ms(140);
}
void disco(){
led_flash(LED_BLUE);
led_flash(LED_RED);
led_flash(LED_GREEN);
}

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

@ -0,0 +1,64 @@
/*
* led.h
*
* Created on: 26.07.2015
* Author: Flo
*/
#include <util/delay.h>
#include <avr/io.h>
#ifndef LED_H_
#define LED_H_
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif
#define LED_PORT PORTD
#define LED_DDR DDRD
#define LED_ACTIVE_LOW 0x01
#define LED_ACTIVE_HIGH 0x02
#if defined (__AVR_ATmega8__)
#define LED_BLUE PD5
#define LED_RED PD6
#define LED_GREEN PD7
#elif defined (__AVR_ATmega168P__)
#define LED_BLUE PD5
#define LED_RED PD6
#define LED_GREEN PD7
#elif defined (__AVR_ATtiny2313__)
#define LED_BLUE PD3
#define LED_RED PD4
#define LED_GREEN PD5
#else
#if !defined(__COMPILING_AVR_LIBC__)
#warning "device type not defined"
#endif
#endif
extern volatile uint8_t led_flags;
void led_init();
void led_config(uint8_t flags);
void led_initPorts();
void led_off(uint8_t pin);
void led_on(uint8_t pin);
void led_flash(uint8_t pin);
void disco();
#endif /* LED_H_ */

125
libs/uart/uart.c Normal file
View File

@ -0,0 +1,125 @@
/*
* uart.c
*
*/
#include "uart.h"
char uartReceiveBuffer[UART_RECV_BUFFER_SIZE];
void uart_init() {
#if defined (__AVR_ATmega8__)
// enable receive and transmit
UCSRB |= (1 << RXEN) | (1 << TXEN);
// set frame format
//Set data frame format: asynchronous mode,no parity, 1 stop bit, 8 bit size
UCSRC=(1<<URSEL)|(0<<UMSEL)|(0<<UPM1)|(0<<UPM0)|(0<<USBS)|(0<<UCSZ2)|(1<<UCSZ1)|(1<<UCSZ0);
//UCSRC |= (1<<URSEL)|(3<<UCSZ0); // async 8n1
// set baud rate
UBRRH = UBRR_VAL >> 8;
UBRRL = UBRR_VAL & 0xFF;
#elif defined (__AVR_ATmega168P__)
// enable receive and transmit
UCSR0B = (1<<RXEN0)|(1<<TXEN0);
// set frame format
// UCSR0C = ((1<<UCSZ01)|(1<<UCSZ00))&(0<<USBS0); // 8n1
UCSR0C = (1<<UCSZ01)|(1<<UCSZ00); // 8n2
// set baud rate
UBRR0H = UBRR_VAL >> 8;
UBRR0L = UBRR_VAL;
#else
# if !defined(__COMPILING_AVR_LIBC__)
# warning "device type not defined"
# endif
#endif
}
// ======================= SEND =======================
void uart_sendChar(char c) {
#if defined (__AVR_ATmega8__)
while (!(UCSRA & (1<<UDRE)));
UDR = c;
#elif defined (__AVR_ATmega168P__)
while (!(UCSR0A & (1<<UDRE0))) {}
UDR0 = c;
#else
# if !defined(__COMPILING_AVR_LIBC__)
# warning "device type not defined"
# endif
#endif
}
void uart_sendInt(int c) {
char m[7];
itoa(c,m,10);
uart_sendString(m);
}
void uart_sendBinary(int c) {
char m[7];
itoa(c,m,2);
uart_sendString(m);
}
void uart_sendHex(int c) {
char m[7];
itoa(c,m,16);
uart_sendString(m);
}
void uart_sendString(char *s) {
while (*s != '\0') {
uart_sendChar(*s);
s++;
}
}
void uart_sendLF() {
uart_sendChar('\n');
}
// ======================= RECEIVE =======================
char uart_receiveChar() {
#if defined (__AVR_ATmega8__)
while (!(UCSRA & (1<<RXC)));
return UDR;
#elif defined (__AVR_ATmega168P__)
while ( !(UCSR0A & (1<<RXC0)) );
return UDR0;
#else
# if !defined(__COMPILING_AVR_LIBC__)
# warning "device type not defined"
# endif
#endif
}
char* uart_receiveString() {
char nextChar;
char stringLen = 0;
char *startPtr = uartReceiveBuffer;
char *bufferPtr = uartReceiveBuffer;
nextChar = uart_receiveChar();
while( nextChar != '\n' && nextChar != '\0' && stringLen < UART_RECV_BUFFER_SIZE - 1 ) {
*(bufferPtr++) = nextChar;
stringLen++;
nextChar = uart_receiveChar();
}
*bufferPtr = '\0';
return startPtr;
}

41
libs/uart/uart.h Normal file
View File

@ -0,0 +1,41 @@
/*
* uart.h
*
*/
#include <avr/io.h>
#include <stdlib.h>
#ifndef UART_H_
#define UART_H_
#define UART_RECV_BUFFER_SIZE 33 // max 32 chars + '\0'
//#define BAUD 19200UL // Baudrate
#define BAUD 9600UL // Baudrate
// Berechnungen
//#define UBRR_VAL F_CPU/16/BAUD-1
#define UBRR_VAL ((F_CPU+BAUD*8UL)/(BAUD*16UL)-1UL) // clever runden
#define BAUD_REAL (F_CPU/(16UL*(UBRR_VAL+1UL))) // Reale Baudrate
#define BAUD_ERROR ((BAUD_REAL*1000)/BAUD) // Fehler in Promille, 1000 = kein Fehler.
#if ((BAUD_ERROR<990) || (BAUD_ERROR>1010))
#error Baud rate error greater than 1% - too high!
#endif
void uart_init();
void uart_sendChar(char c);
void uart_sendString (char *s);
void uart_sendBinary(int c);
void uart_sendInt(int c);
void uart_sendHex(int c);
void uart_sendLF();
char uart_receiveChar();
char* uart_receiveString();
#endif /* UART_H_ */

40
main.c Normal file
View File

@ -0,0 +1,40 @@
/*
* 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/uart/uart.h"
int main (void) {
led_config(LED_ACTIVE_HIGH);
led_init();
uart_init();
// forever loop
disco();
while(1){
uart_sendString("READY\n\0");
uint8_t status = 0;
if (status == 0) {
led_flash(LED_BLUE);
}
else {
led_flash(LED_RED);
}
_delay_ms(1000);
};
// will never reach me...
return 0;
}