From 286630139d0e6355ad62c7cbb0c9fe827cbb7fa7 Mon Sep 17 00:00:00 2001 From: Tobias <tm@tm3d.de> Date: Sat, 18 Feb 2017 18:47:34 +0100 Subject: [PATCH] Remove double --- DS2423 - Autosave/DS2423.atsln | 20 --- DS2423 - Autosave/DS2423.c | 250 --------------------------------- DS2424_Autosave/DS2423.cproj | 147 ------------------- DS2424_Autosave/Makefile | 202 -------------------------- 4 files changed, 619 deletions(-) delete mode 100644 DS2423 - Autosave/DS2423.atsln delete mode 100644 DS2423 - Autosave/DS2423.c delete mode 100644 DS2424_Autosave/DS2423.cproj delete mode 100644 DS2424_Autosave/Makefile diff --git a/DS2423 - Autosave/DS2423.atsln b/DS2423 - Autosave/DS2423.atsln deleted file mode 100644 index 55ec947..0000000 --- a/DS2423 - Autosave/DS2423.atsln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Atmel Studio Solution File, Format Version 11.00 -Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "DS2423", "DS2423.cproj", "{26106A5A-6618-4774-943F-65C46DDB610B}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|AVR = Debug|AVR - Release|AVR = Release|AVR - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {26106A5A-6618-4774-943F-65C46DDB610B}.Debug|AVR.ActiveCfg = Debug|AVR - {26106A5A-6618-4774-943F-65C46DDB610B}.Debug|AVR.Build.0 = Debug|AVR - {26106A5A-6618-4774-943F-65C46DDB610B}.Release|AVR.ActiveCfg = Release|AVR - {26106A5A-6618-4774-943F-65C46DDB610B}.Release|AVR.Build.0 = Release|AVR - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/DS2423 - Autosave/DS2423.c b/DS2423 - Autosave/DS2423.c deleted file mode 100644 index 067b602..0000000 --- a/DS2423 - Autosave/DS2423.c +++ /dev/null @@ -1,250 +0,0 @@ -// Copyright (c) 2017, Tobias Mueller tm(at)tm3d.de -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the -// distribution. -// * All advertising materials mentioning features or use of this -// software must display the following acknowledgement: This product -// includes software developed by tm3d.de and its contributors. -// * Neither the name of tm3d.de nor the names of its contributors may -// be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#define _CPULLUP_ - -#define F_CPU 8000000UL -#include <avr/io.h> -#include <avr/interrupt.h> -#include <util/delay.h> -#include <avr/wdt.h> -#include <avr/sleep.h> - - - -extern void OWINIT(); - -uint8_t owid[8]={0x1D, 0xA2, 0xD9, 0x84, 0x00, 0x26, 0x02, 0x5C};/**/ -uint8_t config_info[26]={9,13,9,13,9,13,9,13,0x02,19,19,19,19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //+2 for CRC - - - -extern uint8_t mode; -extern uint8_t gcontrol; -extern uint8_t reset_indicator; - - - - - - -typedef union { - volatile uint8_t bytes[45]; - struct { - uint16_t addr; - uint8_t status; - uint8_t scratch[32];//3 - uint32_t counter; //35 - uint32_t zero; //39 - uint16_t crc; //43 - }; -} counterpack_t; -counterpack_t pack; - -volatile uint8_t lastcps; -typedef union { - uint32_t c32[4]; - uint8_t c8[16]; -} counters_t; - -volatile counters_t counters; - -volatile uint8_t istat; -volatile uint8_t changefromeeprom; - - - -#if defined(__AVR_ATtiny24__)||defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny24A__)||defined(__AVR_ATtiny44A__) || defined(__AVR_ATtiny84A__) -#define PCINT_VECTOR PCINT0_vect -#define PIN_REG PINA -#define PIN_DDR DDRA -#define PIN_CH2 (1<<PINA4) -#define PIN_CH3 (1<<PINA5) -#define PIN_CH0 (1<<PINA6) -#define PIN_CH1 (1<<PINA7) -#define PORT_EE PINA //WARNING have to be the same PORT like PINREG because of istat -#define PIN_EE (1<<PINA0) -#define TEST_TIMER ((TIMSK0 & (1<<TOIE0))==0) - -#endif - - -ISR(PCINT0_vect) { - if (((PIN_REG&PIN_CH2)==0)&&((istat&PIN_CH2)==PIN_CH2)) { counters.c32[2]++; } - if (((PIN_REG&PIN_CH3)==0)&&((istat&PIN_CH3)==PIN_CH3)) { counters.c32[3]++; } - if (((PIN_REG&PIN_CH0)==0)&&((istat&PIN_CH0)==PIN_CH0)) { counters.c32[0]++; } - if (((PIN_REG&PIN_CH1)==0)&&((istat&PIN_CH1)==PIN_CH1)) { counters.c32[1]++; } - istat=PIN_REG; - changefromeeprom=1; -} - - -ISR(ANA_COMP_vect) { - if (changefromeeprom==0) return; - if ((ACSR&(1<<ACO))!=0) { - _delay_ms(5); - if ((ACSR&(1<<ACO))!=0) { - CLKPR=0x80;//Switch to 4 MHz - CLKPR=01; - - PORTB|=(1<<PINB1); - EEARH=0; - for(uint8_t i=0;i<16;i++) { - uint8_t addr=i^0x0C; - while(EECR & (1<<EEPE)); - EECR = (0<<EEPM1)|(0<<EEPM0); - EEARL = i; - EEDR = counters.c8[addr]; - EECR |= (1<<EEMPE); - EECR |= (1<<EEPE); - } - changefromeeprom=0; - PORTB&=~(1<<PINB1); - CLKPR=0x80; - CLKPR=0; - GIFR|=(1<<INTF0); - } - } - -} - -int testSW(void) { - uint8_t r; - DDRB&=~(1<<PORTB0); //Eingang - __asm__ __volatile__ ("nop"); - PORTB|=(1<<PORTB0); //Pullup - __asm__ __volatile__ ("nop"); - __asm__ __volatile__ ("nop"); - __asm__ __volatile__ ("nop"); - __asm__ __volatile__ ("nop"); - __asm__ __volatile__ ("nop"); - r=PINB&(1<<PORTB0); - __asm__ __volatile__ ("nop"); - PORTB&=~(1<<PORTB0); - __asm__ __volatile__ ("nop"); - DDRB|=(1<<PORTB0); //Eingang - return (r==0); - - -} - - -int main(void){ - PRR|=(1<<PRUSI)|(1<<PRADC); //Switch off usi and adc for save Power - OWINIT(); - - pack.zero=0; - counters.c32[0]=0; - counters.c32[2]=0; - counters.c32[1]=0; - counters.c32[3]=0; - changefromeeprom=1; - ACSR|=(1<<ACD); //Disable Comparator - ADCSRB|=(1<<ACME); //Disable Analog multiplexer - MCUCR &=~(1<<PUD); //All Pins Pullup... - -#if defined(__AVR_ATtiny24__)||defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny24A__)||defined(__AVR_ATtiny44A__) || defined(__AVR_ATtiny84A__) - - PORTB|=0xFF-(1<<PINB2); //Make PullUp an all Pins but not OW_PIN - PORTA|=0xFF; - PORTA&=~(1<<PINA2); //AIN1 -#ifndef _CPULLUP_ - PORTA&=~((1<<PINA4)|(1<<PINA5)); - PORTA&=~((1<<PINA6)|(1<<PINA7)); - #endif - - GIMSK|=(1<<PCIE0); - PCMSK0=(1<<PCINT4)|(1<<PCINT5) - |(1<<PCINT6)|(1<<PCINT7); - - - istat=PINB; -#endif - - EEARH=0; - - uint8_t addr; - - if (testSW()) { //Jumper gesetzt ->Ruecksetzen - for(uint8_t i=0;i<16;i++) { - while(EECR & (1<<EEPE)); - EECR = (0<<EEPM1)|(0<<EEPM0); - EEARL = i; - EEDR = 0; - EECR |= (1<<EEMPE); - EECR |= (1<<EEPE); - } - } - - - for(uint8_t i=0;i<16;i++) { - addr=i^0x0C; - while(EECR & (1<<EEPE)); - EEARL=i; - EECR |= (1<<EERE); - counters.c8[addr]=EEDR; - } - changefromeeprom=0; //Daten neu eingelesen - for (uint8_t i=0;i<4;i++) { - if (counters.c32[i]==0xFFFFFFFF) { - counters.c32[i]=0; - changefromeeprom=1; //Daten geaendert - } - //counters.c32[i]=0; - } - - - /*for(uint8_t i=0;i<16;i++) { - while(EECR & (1<<EEPE)); - EECR = (1<<EEPM0); - EEARL = i; - EECR |= (1<<EEMPE); - EECR |= (1<<EEPE); - }*/ - - - - - DIDR0|=(1<<ADC2D)|(1<<ADC1D); // Disable Digital input on Analog AIN0/AIN1 (PINA1 / PINA2) - ACSR&=~(1<<ACD); - ACSR|=(1<<ACIE)|(1<<ACIS1)|(1<<ACIS0)|(1<<ACBG); //Enabble comperator interrupt Rising edge....(1<<ACIS0) - - sei(); - DDRB|=(1<<PINB1); - PORTB&=~(1<<PINB1); - while(1) { - - MCUCR|=(1<<SE); - MCUCR&=~(1<<SM1); - asm("SLEEP"); - } -} \ No newline at end of file diff --git a/DS2424_Autosave/DS2423.cproj b/DS2424_Autosave/DS2423.cproj deleted file mode 100644 index be31af6..0000000 --- a/DS2424_Autosave/DS2423.cproj +++ /dev/null @@ -1,147 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <SchemaVersion>2.0</SchemaVersion> - <ProjectVersion>7.0</ProjectVersion> - <ToolchainName>com.Atmel.AVRGCC8.C</ToolchainName> - <ProjectGuid>{26106a5a-6618-4774-943f-65c46ddb610b}</ProjectGuid> - <avrdevice>ATtiny84A</avrdevice> - <avrdeviceseries>none</avrdeviceseries> - <OutputType>Executable</OutputType> - <Language>C</Language> - <OutputFileName>$(MSBuildProjectName)</OutputFileName> - <OutputFileExtension>.elf</OutputFileExtension> - <OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory> - <AssemblyName>DS2423</AssemblyName> - <Name>DS2423</Name> - <RootNamespace>DS2423</RootNamespace> - <ToolchainFlavour>Native</ToolchainFlavour> - <KeepTimersRunning>true</KeepTimersRunning> - <OverrideVtor>false</OverrideVtor> - <CacheFlash>true</CacheFlash> - <ProgFlashFromRam>true</ProgFlashFromRam> - <RamSnippetAddress>0x20000000</RamSnippetAddress> - <UncachedRange /> - <preserveEEPROM>true</preserveEEPROM> - <OverrideVtorValue>exception_table</OverrideVtorValue> - <BootSegment>2</BootSegment> - <eraseonlaunchrule>1</eraseonlaunchrule> - <AsfFrameworkConfig> - <framework-data> - <options /> - <configurations /> - <files /> - <documentation help="" /> - <offline-documentation help="" /> - <dependencies> - <content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.28.1" /> - </dependencies> - </framework-data> - </AsfFrameworkConfig> - <avrtool>com.atmel.avrdbg.tool.atmelice</avrtool> - <com_atmel_avrdbg_tool_atmelice> - <ToolOptions> - <InterfaceProperties> - </InterfaceProperties> - <InterfaceName>debugWIRE</InterfaceName> - </ToolOptions> - <ToolType>com.atmel.avrdbg.tool.atmelice</ToolType> - <ToolNumber>J41800000789</ToolNumber> - <ToolName>Atmel-ICE</ToolName> - </com_atmel_avrdbg_tool_atmelice> - <avrtoolinterface>debugWIRE</avrtoolinterface> - <ExternalProgrammingToolCommand /> - <avrtoolserialnumber>J41800000789</avrtoolserialnumber> - <avrdeviceexpectedsignature>0x1E930C</avrdeviceexpectedsignature> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)' == 'Release' "> - <ToolchainSettings> - <AvrGcc> - <avrgcc.common.Device>-mmcu=attiny84a -B "%24(PackRepoDir)\atmel\ATtiny_DFP\1.0.79\gcc\dev\attiny84a"</avrgcc.common.Device> - <avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex> - <avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss> - <avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep> - <avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec> - <avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures> - <avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned> - <avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned> - <avrgcc.compiler.symbols.DefSymbols> - <ListValues> - <Value>DEBUG</Value> - </ListValues> - </avrgcc.compiler.symbols.DefSymbols> - <avrgcc.compiler.directories.IncludePaths> - <ListValues> - <Value>%24(PackRepoDir)\atmel\ATtiny_DFP\1.0.79\include</Value> - </ListValues> - </avrgcc.compiler.directories.IncludePaths> - <avrgcc.compiler.optimization.level>Optimize (-O1)</avrgcc.compiler.optimization.level> - <avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers> - <avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum> - <avrgcc.compiler.optimization.DebugLevel>Default (-g2)</avrgcc.compiler.optimization.DebugLevel> - <avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings> - <avrgcc.linker.libraries.Libraries> - <ListValues> - <Value>libm</Value> - </ListValues> - </avrgcc.linker.libraries.Libraries> - <avrgcc.assembler.general.IncludePaths> - <ListValues> - <Value>%24(PackRepoDir)\atmel\ATtiny_DFP\1.0.79\include</Value> - </ListValues> - </avrgcc.assembler.general.IncludePaths> - <avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel> - </AvrGcc> - </ToolchainSettings> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> - <ToolchainSettings> - <AvrGcc> - <avrgcc.common.Device>-mmcu=attiny84a -B "%24(PackRepoDir)\atmel\ATtiny_DFP\1.0.79\gcc\dev\attiny84a"</avrgcc.common.Device> - <avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex> - <avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss> - <avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep> - <avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec> - <avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures> - <avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned> - <avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned> - <avrgcc.compiler.symbols.DefSymbols> - <ListValues> - <Value>DEBUG</Value> - </ListValues> - </avrgcc.compiler.symbols.DefSymbols> - <avrgcc.compiler.directories.IncludePaths> - <ListValues> - <Value>%24(PackRepoDir)\atmel\ATtiny_DFP\1.0.79\include</Value> - </ListValues> - </avrgcc.compiler.directories.IncludePaths> - <avrgcc.compiler.optimization.level>Optimize (-O1)</avrgcc.compiler.optimization.level> - <avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers> - <avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum> - <avrgcc.compiler.optimization.DebugLevel>Default (-g2)</avrgcc.compiler.optimization.DebugLevel> - <avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings> - <avrgcc.linker.libraries.Libraries> - <ListValues> - <Value>libm</Value> - </ListValues> - </avrgcc.linker.libraries.Libraries> - <avrgcc.assembler.general.IncludePaths> - <ListValues> - <Value>%24(PackRepoDir)\atmel\ATtiny_DFP\1.0.79\include</Value> - </ListValues> - </avrgcc.assembler.general.IncludePaths> - <avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel> - </AvrGcc> - </ToolchainSettings> - </PropertyGroup> - <ItemGroup> - <Compile Include="..\common\OWDS2423.S"> - <SubType>compile</SubType> - <Link>OWDS2423.S</Link> - </Compile> - <Compile Include="DS2423.c"> - <SubType>compile</SubType> - </Compile> - </ItemGroup> - <Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" /> -</Project> \ No newline at end of file diff --git a/DS2424_Autosave/Makefile b/DS2424_Autosave/Makefile deleted file mode 100644 index aeca415..0000000 --- a/DS2424_Autosave/Makefile +++ /dev/null @@ -1,202 +0,0 @@ -# Hey Emacs, this is a -*- makefile -*- - -# AVR-GCC Makefile template, derived from the WinAVR template (which -# is public domain), believed to be neutral to any flavor of "make" -# (GNU make, BSD make, SysV make) - - -MCU = attiny84 -FORMAT = ihex -TARGET =DS2423 -SRC = DS2423.c -ASRC = ../common/OWDS2423.S - -# Name of this Makefile (used for "make depend"). -MAKEFILE = Makefile - - -CFLAGS = -x c -funsigned-char -funsigned-bitfields -I. -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -std=gnu99 -MD -MP - -#ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs - - -#Additional libraries. - -# Minimalistic printf version -PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min - -# Floating point printf version (requires MATH_LIB = -lm below) -PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt - -PRINTF_LIB = - -# Minimalistic scanf version -SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min - -# Floating point + %[ scanf version (requires MATH_LIB = -lm below) -SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt - -SCANF_LIB = - -MATH_LIB = -lm - -# External memory options - -# 64 KB of external RAM, starting after internal RAM (ATmega128!), -# used for variables (.data/.bss) and heap (malloc()). -#EXTMEMOPTS = -Wl,--section-start,.data=0x801100,--defsym=__heap_end=0x80ffff - -# 64 KB of external RAM, starting after internal RAM (ATmega128!), -# only used for heap (malloc()). -#EXTMEMOPTS = -Wl,--defsym=__heap_start=0x801100,--defsym=__heap_end=0x80ffff - -EXTMEMOPTS = - -#LDMAP = $(LDFLAGS) -Wl,-Map=$(TARGET).map,--cref -#LDFLAGS = $(EXTMEMOPTS) $(LDMAP) $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB) -LDFLAGS = -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=$(MCU) - -# Programming support using avrdude. Settings and variables. - -#AVRDUDE_PROGRAMMER = stk500 -#AVRDUDE_PORT = /dev/term/a - -#AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex -#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep - - -# Uncomment the following if you want avrdude's erase cycle counter. -# Note that this counter needs to be initialized first using -Yn, -# see avrdude manual. -#AVRDUDE_ERASE_COUNTER = -y - -# Uncomment the following if you do /not/ wish a verification to be -# performed after programming the device. -#AVRDUDE_NO_VERIFY = -V - -# Increase verbosity level. Please use this when submitting bug -# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude> -# to submit bug reports. -#AVRDUDE_VERBOSE = -v -v - -#AVRDUDE_BASIC = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) -#AVRDUDE_FLAGS = $(AVRDUDE_BASIC) $(AVRDUDE_NO_VERIFY) $(AVRDUDE_VERBOSE) $(AVRDUDE_ERASE_COUNTER) - - -CC = avr-gcc -OBJCOPY = avr-objcopy -OBJDUMP = avr-objdump -SIZE = avr-size -NM = avr-nm -#AVRDUDE = avrdude -REMOVE = rm -f -MV = mv -f - -# Define all object files. -OBJ = $(SRC:.c=.o) $(ASRC:.S=.o) - -# Define all listing files. -LST = $(ASRC:.S=.lst) $(SRC:.c=.lst) - -# Combine all necessary flags and optional flags. -# Add target processor to flags. -ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) -ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS) - - -# Default target. -all: build - -build: elf hex eep - -elf: $(TARGET).elf -hex: $(TARGET).hex -#eep: $(TARGET).eep -lss: $(TARGET).lss -sym: $(TARGET).sym - - -# Program the device. -program: $(TARGET).hex $(TARGET).eep - $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM) - - - - -# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB. -COFFCONVERT=$(OBJCOPY) --debugging \ ---change-section-address .data-0x800000 \ ---change-section-address .bss-0x800000 \ ---change-section-address .noinit-0x800000 \ ---change-section-address .eeprom-0x810000 - - -coff: $(TARGET).elf - $(COFFCONVERT) -O coff-avr $(TARGET).elf $(TARGET).cof - - -extcoff: $(TARGET).elf - $(COFFCONVERT) -O coff-ext-avr $(TARGET).elf $(TARGET).cof - - -.SUFFIXES: .elf .hex .eep .lss .sym - -.elf.hex: - $(OBJCOPY) -O $(FORMAT) $< $@ -# $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@ - -.elf.eep: - -$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \ - --change-section-lma .eeprom=0 -O $(FORMAT) $< $@ - -# Create extended listing file from ELF output file. -.elf.lss: - $(OBJDUMP) -h -S $< > $@ - -# Create a symbol table from ELF output file. -.elf.sym: - $(NM) -n $< > $@ - - - -# Link: create ELF output file from object files. -$(TARGET).elf: $(OBJ) - $(CC) $(OBJ) --output $@ $(LDFLAGS) - - -# Compile: create object files from C source files. -.c.o: - $(CC) -c $(ALL_CFLAGS) $< -o $@ - - -# Compile: create assembler files from C source files. -.c.s: - $(CC) -S $(ALL_CFLAGS) $< -o $@ - - -# Assemble: create object files from assembler source files. -.S.o: - $(CC) -c $(ALL_ASFLAGS) $< -o $@ - - - -# Target: clean project. -clean: - $(REMOVE) $(TARGET).hex $(TARGET).eep $(TARGET).cof $(TARGET).elf \ - $(TARGET).map $(TARGET).sym $(TARGET).lss \ - $(OBJ) $(LST) $(SRC:.c=.s) $(SRC:.c=.d) - -depend: - if grep '^# DO NOT DELETE' $(MAKEFILE) >/dev/null; \ - then \ - sed -e '/^# DO NOT DELETE/,$$d' $(MAKEFILE) > \ - $(MAKEFILE).$$$$ && \ - $(MV) $(MAKEFILE).$$$$ $(MAKEFILE); \ - fi - echo '# DO NOT DELETE THIS LINE -- make depend depends on it.' \ - >> $(MAKEFILE); \ - $(CC) -M -mmcu=$(MCU) $(CDEFS) $(CINCS) $(SRC) $(ASRC) >> $(MAKEFILE) - -.PHONY: all build elf hex eep lss sym program coff extcoff clean depend - - -- 2.34.1