M Makefile +1 -1
@@ 21,7 21,7 @@
#
NAME=CHANGEME
-MCUS=atmega48a atmega48p attiny13a
+MCUS=atmega48a atmega48p atmega88a attiny13a
SRCS=\
start.S \
M arch.h +1 -1
@@ 43,7 43,7 @@
#include "arch/generic_types.h"
-#if defined(MCU_ATMEGA48A) || defined(MCU_ATMEGA48P)
+#if defined(MCU_ATMEGA48A) || defined(MCU_ATMEGA48P) || defined(MCU_ATMEGA88A)
#include "arch/atmega48p.h"
#include "arch/atmega48p_i2c.h"
#include "arch/atmega48p_spi.h"
M arch/atmega48p.h +7 -0
@@ 28,8 28,15 @@
#define MCU_RAW_FREQ 8000000
#endif
+#if defined(MCU_ATMEGA48A) || defined(MCU_ATMEGA48P)
#define RAM_START_ADDR 0x100
#define RAM_END_ADDR 0x2ff
+#elif defined(MCU_ATMEGA88A)
+#define RAM_START_ADDR 0x100
+#define RAM_END_ADDR 0x4ff
+#else
+#error "Unknown MCU"
+#endif
#include "atmega48p_pins.h"
M mcu.mk +4 -0
@@ 23,6 23,7 @@
# flash output sizes for the various MCUs
OUTPUT_SIZE_ATMEGA48P=4096
OUTPUT_SIZE_ATMEGA48A=${OUTPUT_SIZE_ATMEGA48P}
+OUTPUT_SIZE_ATMEGA88A=8192
OUTPUT_SIZE_ATTINY12=1024
OUTPUT_SIZE_ATTINY13A=1024
@@ 32,6 33,7 @@ IVEC_ATMEGA48P=\
timer0compb timer0ovf spi_stc usart_rx usart_udre usart_tx adc \
ee_ready analog_comp twi spm_ready
IVEC_ATMEGA48A=${IVEC_ATMEGA48P}
+IVEC_ATMEGA88A=${IVEC_ATMEGA48P}
IVEC_ATTINY12=\
int0 pinchange timer0ovf ee_ready analog_comp
IVEC_ATTINY13A=\
@@ 42,6 44,7 @@ LD_FLAGS_ATMEGA48P=\
-mavr4 \
-Tdata 0x800100
LD_FLAGS_ATMEGA48A=${LD_FLAGS_ATMEGA48P}
+LD_FLAGS_ATMEGA88A=${LD_FLAGS_ATMEGA48P}
LD_FLAGS_ATTINY12=\
-mavr1
LD_FLAGS_ATTINY13A=\
@@ 78,6 81,7 @@ PIN_D6_ATMEGA48P = PCINT22 OC0A AIN0
PIN_D7_ATMEGA48P = PCINT23 AIN1
# ATmega48A uses the same pins header as ATmega48P
+# ATmega88A uses the same pins header as ATmega48P
PORTS_ATTINY12 = B
PINS_B_ATTINY12 = 0 1 2 3 4 5