aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbootloaders/atmega168/ATmegaBOOT_168.c2
-rw-r--r--bootloaders/atmega168/ATmegaBOOT_168_atmega328.hex125
-rwxr-xr-xbootloaders/atmega168/Makefile122
3 files changed, 210 insertions, 39 deletions
diff --git a/bootloaders/atmega168/ATmegaBOOT_168.c b/bootloaders/atmega168/ATmegaBOOT_168.c
index 90bef67..9413f86 100755
--- a/bootloaders/atmega168/ATmegaBOOT_168.c
+++ b/bootloaders/atmega168/ATmegaBOOT_168.c
@@ -87,7 +87,9 @@
/* set the UART baud rate */
/* 20060803: hacked by DojoCorp */
//#define BAUD_RATE 115200
+#ifndef BAUD_RATE
#define BAUD_RATE 19200
+#endif
/* SW_MAJOR and MINOR needs to be updated from time to time to avoid warning message from AVR Studio */
diff --git a/bootloaders/atmega168/ATmegaBOOT_168_atmega328.hex b/bootloaders/atmega168/ATmegaBOOT_168_atmega328.hex
new file mode 100644
index 0000000..43a8b30
--- /dev/null
+++ b/bootloaders/atmega168/ATmegaBOOT_168_atmega328.hex
@@ -0,0 +1,125 @@
+:107800000C94343C0C94513C0C94513C0C94513CE1
+:107810000C94513C0C94513C0C94513C0C94513CB4
+:107820000C94513C0C94513C0C94513C0C94513CA4
+:107830000C94513C0C94513C0C94513C0C94513C94
+:107840000C94513C0C94513C0C94513C0C94513C84
+:107850000C94513C0C94513C0C94513C0C94513C74
+:107860000C94513C0C94513C11241FBECFEFD8E036
+:10787000DEBFCDBF11E0A0E0B1E0ECE9FFE702C060
+:1078800005900D92A230B107D9F712E0A2E0B1E065
+:1078900001C01D92AD30B107E1F70E942D3D0C945F
+:1078A000CC3F0C94003C982F959595959595959582
+:1078B000905D8F708A307CF0282F295A8091C0000B
+:1078C00085FFFCCF9093C6008091C00085FFFCCF60
+:1078D0002093C6000895282F205DF0CF982F809127
+:1078E000C00085FFFCCF9093C6000895EF92FF92F1
+:1078F0000F931F93EE24FF2487018091C00087FD22
+:1079000017C00894E11CF11C011D111D81E4E8164B
+:1079100082E4F8068FE0080780E0180770F3E09132
+:107920000401F091050109958091C00087FFE9CF1E
+:107930008091C6001F910F91FF90EF9008950E94D3
+:10794000763C982F8091C00085FFFCCF9093C600B5
+:1079500091362CF490330CF09053892F089597555D
+:10796000892F08951F930E949F3C182F0E949F3CCF
+:107970001295107F810F1F9108951F93182F882350
+:1079800021F00E94763C1150E1F71F9108951F935A
+:10799000182F0E94763C803249F0809103018F5F5E
+:1079A000809303018530C1F01F9108958091C0003C
+:1079B00085FFFCCF84E18093C6008091C00085FFE5
+:1079C000FCCF1093C6008091C00085FFFCCF80E102
+:1079D0008093C6001F910895E0910401F091050184
+:1079E00009951F9108950E94763C803241F0809164
+:1079F00003018F5F80930301853081F008958091AA
+:107A0000C00085FFFCCF84E18093C6008091C00058
+:107A100085FFFCCF80E18093C6000895E0910401CA
+:107A2000F09105010995089540E951E08823A1F0FE
+:107A30002D9A28EE33E0FA013197F1F721503040CA
+:107A4000D1F72D9828EE33E0FA013197F1F7215064
+:107A50003040D1F7815061F708953F924F925F9285
+:107A60006F927F928F929F92AF92BF92CF92DF924E
+:107A7000EF92FF920F931F93CF93DF93000080E16B
+:107A80008093C4001092C50088E18093C10086E015
+:107A90008093C2005098589A259A81E00E94143D24
+:107AA00024E1F22E9EE1E92E85E9D82E0FE0C02ECA
+:107AB00010E1B12EAA24A394B1E49B2EA6E58A2E50
+:107AC000F2E57F2EE0E26E2E79E4572E63E5462E36
+:107AD00050E5352E0E94763C8033B1F18133B9F107
+:107AE000803409F46FC0813409F476C0823409F41B
+:107AF00085C0853409F488C0803531F1823521F1A3
+:107B0000813511F1853509F485C0863509F48DC0BC
+:107B1000843609F496C0843709F403C1853709F423
+:107B200072C1863709F466C0809103018F5F80932C
+:107B30000301853079F6E0910401F0910501099582
+:107B40000E94763C803351F60E94F33CC3CF0E94E2
+:107B5000763C803249F78091C00085FFFCCFF092DF
+:107B6000C6008091C00085FFFCCF9092C600809136
+:107B7000C00085FFFCCF8092C6008091C00085FFC9
+:107B8000FCCF7092C6008091C00085FFFCCF609250
+:107B9000C6008091C00085FFFCCF5092C600809146
+:107BA000C00085FFFCCF4092C6008091C00085FFD9
+:107BB000FCCF3092C6008091C00085FFFCCFB09210
+:107BC000C60088CF0E94763C863808F4BDCF0E945C
+:107BD000763C0E94F33C7ECF0E94763C803809F4CC
+:107BE0009CC0813809F40BC1823809F43CC1883942
+:107BF00009F48FC080E00E94C73C6CCF84E10E94F2
+:107C0000BD3C0E94F33C66CF85E00E94BD3C0E94D3
+:107C1000F33C60CF0E94763C809306010E94763C44
+:107C2000809307010E94F33C55CF0E94763C80333D
+:107C300009F41DC183E00E94BD3C80E00E94C73C66
+:107C400049CF0E94763C809309020E94763C809343
+:107C5000080280910C028E7F80930C020E94763C79
+:107C6000853409F415C18091080290910902892B8D
+:107C700089F000E010E00E94763CF801E85FFE4FDA
+:107C800080830F5F1F4F80910802909109020817AF
+:107C9000190788F30E94763C803209F045CF809125
+:107CA0000C0280FF01C16091060170910701660F0F
+:107CB000771F7093070160930601A0910802B091AD
+:107CC00009021097C9F0E8E0F1E09B01AD014E0F09
+:107CD0005F1FF999FECF32BD21BD819180BDFA9A17
+:107CE000F99A2F5F3F4FE417F50799F76A0F7B1F4B
+:107CF00070930701609306018091C00085FFFCCF5F
+:107D0000F092C6008091C00085FFFCCFB092C60003
+:107D1000E1CE83E00E94C73CDDCE82E00E94C73CFA
+:107D2000D9CE0E94763C809309020E94763C8093D3
+:107D300008028091060190910701880F991F909386
+:107D40000701809306010E94763C853409F4A6C0A1
+:107D500080910C028E7F80930C020E94763C8032D0
+:107D600009F0B8CE8091C00085FFFCCFF092C6002C
+:107D7000609108027091090261157105B9F140E046
+:107D800050E080910C02A82FA170B82FB27011C0E2
+:107D9000BB2309F45CC0E0910601F0910701319624
+:107DA000F0930701E09306014F5F5F4F46175707B7
+:107DB000E8F4AA2369F3F999FECF209106013091E6
+:107DC000070132BD21BDF89A90B58091C00085FFB2
+:107DD000FCCF9093C6002F5F3F4F30930701209355
+:107DE00006014F5F5F4F4617570718F38091C00099
+:107DF00085FDE5CE8091C00085FFF8CFE0CE81E023
+:107E00000E94C73C67CE0E94763C803209F08CCE3F
+:107E10008091C00085FFFCCFF092C6008091C00029
+:107E200085FFFCCFE092C6008091C00085FFFCCFAB
+:107E3000D092C6008091C00085FFFCCFC092C600E2
+:107E40008091C00085FFFCCFB092C60043CEE09188
+:107E50000601F091070194918091C00085FFFCCF4D
+:107E60009093C6009CCF80E10E94C73C33CE0E9415
+:107E7000763C0E94763C182F0E94763C112309F430
+:107E800083C0113009F484C08FE00E94C73C22CE29
+:107E900080910C02816080930C02E5CE80910C02EF
+:107EA000816080930C0259CF809107018823880F4D
+:107EB000880B8A2180930B02809106019091070123
+:107EC000880F991F90930701809306018091080203
+:107ED00080FF09C080910802909109020196909359
+:107EE000090280930802F894F999FECF1127E091D6
+:107EF0000601F0910701C8E0D1E08091080290915D
+:107F00000902103091F40091570001700130D9F34B
+:107F100003E000935700E89500915700017001308D
+:107F2000D9F301E100935700E89509901990009169
+:107F3000570001700130D9F301E000935700E89534
+:107F40001395103498F011270091570001700130FB
+:107F5000D9F305E000935700E895009157000170B0
+:107F60000130D9F301E100935700E895329602976A
+:107F700009F0C7CF103011F00296E5CF112480919F
+:107F8000C00085FFB9CEBCCE8EE10E94C73CA2CD19
+:0C7F900085E90E94C73C9ECDF894FFCF0D
+:027F9C00800063
+:040000030000780081
+:00000001FF
diff --git a/bootloaders/atmega168/Makefile b/bootloaders/atmega168/Makefile
index 884a70c..861cedd 100755
--- a/bootloaders/atmega168/Makefile
+++ b/bootloaders/atmega168/Makefile
@@ -4,20 +4,17 @@
#
# Instructions
#
-# To build the bootloader for the Diecimila:
+# To make bootloader .hex file:
# make diecimila
-#
-# To build the bootloader for the NG/Mini:
-# make ng
-#
-# To build the bootloader for the LilyPad:
# make lilypad
+# make ng
+# etc...
#
-# To burn the bootloader:
-# make TARGET=diecimila isp
-# make TARGET=ng isp
-# make TARGET=lilypad isp
-# make TARGET=pro8 isp
+# To burn bootloader .hex file:
+# make diecimila_isp
+# make lilypad_isp
+# make ng_isp
+# etc...
# program name should not be changed...
PROGRAM = ATmegaBOOT_168
@@ -39,11 +36,15 @@ LDSECTION = --section-start=.text=0x3800
# unlock the bootloader section) and 0xcf instead of 0x0f (to
# lock it), but since the high two bits of the lock byte are
# unused, avrdude would get confused.
-ISPFUSES = avrdude -c $(ISPTOOL) -p m168 -P $(ISPPORT) $(ISPSPEED) -e -u -U lock:w:0x3f:m -U efuse:w:0x00:m -U hfuse:w:0x$(HFUSE):m -U lfuse:w:0x$(LFUSE):m
-ISPFLASH = avrdude -c $(ISPTOOL) -p m168 -P $(ISPPORT) $(ISPSPEED) -U flash:w:$(PROGRAM)_$(TARGET).hex -U lock:w:0x0f:m
+
+ISPFUSES = avrdude -c $(ISPTOOL) -p $(MCU_TARGET) -P $(ISPPORT) $(ISPSPEED) \
+-e -u -U lock:w:0x3f:m -U efuse:w:0x$(EFUSE):m -U hfuse:w:0x$(HFUSE):m -U lfuse:w:0x$(LFUSE):m
+ISPFLASH = avrdude -c $(ISPTOOL) -p $(MCU_TARGET) -P $(ISPPORT) $(ISPSPEED) \
+-U flash:w:$(PROGRAM)_$(TARGET).hex -U lock:w:0x0f:m
STK500 = "C:\Program Files\Atmel\AVR Tools\STK500\Stk500.exe"
-STK500-1 = $(STK500) -e -d$(MCU_TARGET) -pf -vf -if$(PROGRAM)_$(TARGET).hex -lFF -LFF -f$(HFUSE)$(LFUSE) -EF8 -ms -q -cUSB -I200kHz -s -wt
+STK500-1 = $(STK500) -e -d$(MCU_TARGET) -pf -vf -if$(PROGRAM)_$(TARGET).hex \
+-lFF -LFF -f$(HFUSE)$(LFUSE) -EF8 -ms -q -cUSB -I200kHz -s -wt
STK500-2 = $(STK500) -d$(MCU_TARGET) -ms -q -lCF -LCF -cUSB -I200kHz -s -wt
@@ -68,61 +69,104 @@ all:
lilypad: TARGET = lilypad
lilypad: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>1' '-DNUM_LED_FLASHES=3'
-lilypad: $(PROGRAM)_lilypad.hex
lilypad: AVR_FREQ = 8000000L
-lilypad: HFUSE = DD
-lilypad: LFUSE = E2
+lilypad: $(PROGRAM)_lilypad.hex
+
+lilypad_isp: lilypad
+lilypad_isp: TARGET = lilypad
+lilypad_isp: HFUSE = DD
+lilypad_isp: LFUSE = E2
+lilypad_isp: EFUSE = 00
+lilypad_isp: isp
lilypad_resonator: TARGET = lilypad_resonator
lilypad_resonator: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=3'
-lilypad_resonator: $(PROGRAM)_lilypad_resonator.hex
lilypad_resonator: AVR_FREQ = 8000000L
-lilypad_resonator: HFUSE = DD
-lilypad_resonator: LFUSE = C6
+lilypad_resonator: $(PROGRAM)_lilypad_resonator.hex
+
+lilypad_resonator_isp: lilypad_resonator
+lilypad_resonator_isp: TARGET = lilypad_resonator
+lilypad_resonator_isp: HFUSE = DD
+lilypad_resonator_isp: LFUSE = C6
+lilypad_resonator_isp: EFUSE = 00
+lilypad_resonator_isp: isp
pro8: TARGET = pro_8MHz
pro8: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' '-DWATCHDOG_MODS'
-pro8: $(PROGRAM)_pro_8MHz.hex
pro8: AVR_FREQ = 8000000L
-pro8: HFUSE = DD
-pro8: LFUSE = C6
+pro8: $(PROGRAM)_pro_8MHz.hex
+
+pro8_isp: pro8
+pro8_isp: TARGET = pro_8MHz
+pro8_isp: HFUSE = DD
+pro8_isp: LFUSE = C6
+pro8_isp: EFUSE = 00
+pro8_isp: isp
pro16: TARGET = pro_16MHz
pro16: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' '-DWATCHDOG_MODS'
-pro16: $(PROGRAM)_pro_16MHz.hex
pro16: AVR_FREQ = 16000000L
-pro16: HFUSE = DD
-pro16: LFUSE = C6
+pro16: $(PROGRAM)_pro_16MHz.hex
+
+pro16_isp: pro16
+pro16_isp: TARGET = pro_16MHz
+pro16_isp: HFUSE = DD
+pro16_isp: LFUSE = C6
+pro16_isp: EFUSE = 00
+pro16_isp: isp
pro20: TARGET = pro_20mhz
pro20: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' '-DWATCHDOG_MODS'
-pro20: $(PROGRAM)_pro_20mhz.hex
pro20: AVR_FREQ = 20000000L
-pro20: HFUSE = DD
-pro20: LFUSE = C6
+pro20: $(PROGRAM)_pro_20mhz.hex
+
+pro20_isp: pro20
+pro20_isp: TARGET = pro_20mhz
+pro20_isp: HFUSE = DD
+pro20_isp: LFUSE = C6
+pro20_isp: EFUSE = 00
+pro20_isp: isp
diecimila: TARGET = diecimila
diecimila: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1'
-diecimila: $(PROGRAM)_diecimila.hex
diecimila: AVR_FREQ = 16000000L
-diecimila: HFUSE = DD
-diecimila: LFUSE = FF
+diecimila: $(PROGRAM)_diecimila.hex
+
+diecimila_isp: diecimila
+diecimila_isp: TARGET = diecimila
+diecimila_isp: HFUSE = DD
+diecimila_isp: LFUSE = FF
+diecimila_isp: EFUSE = 00
+diecimila_isp: isp
ng: TARGET = ng
ng: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>1' '-DNUM_LED_FLASHES=3'
-ng: $(PROGRAM)_ng.hex
ng: AVR_FREQ = 16000000L
-ng: HFUSE = DD
-ng: LFUSE = FF
+ng: $(PROGRAM)_ng.hex
+
+ng_isp: ng
+ng_isp: TARGET = ng
+ng_isp: HFUSE = DD
+ng_isp: LFUSE = FF
+ng_isp: EFUSE = 00
+ng_isp: isp
atmega328: TARGET = atmega328
-atmega328: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1'
-atmega328: $(PROGRAM)_atmega328.hex
-atmega328: AVR_FREQ = 16000000L
atmega328: MCU_TARGET = atmega328p
+atmega328: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' -DBAUD_RATE=57600
+atmega328: AVR_FREQ = 16000000L
atmega328: LDSECTION = --section-start=.text=0x7800
+atmega328: $(PROGRAM)_atmega328.hex
+
+atmega328_isp: atmega328
+atmega328_isp: TARGET = atmega328
+atmega328_isp: MCU_TARGET = atmega328p
+atmega328_isp: HFUSE = DA
+atmega328_isp: LFUSE = FF
+atmega328_isp: EFUSE = 05
+atmega328_isp: isp
-isp: $(PROGRAM)_$(TARGET).hex
+isp: $(TARGET)
$(ISPFUSES)
$(ISPFLASH)