Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -487,9 +487,9 @@ pro8_isp: isp
atmega328_pro8: TARGET = atmega328_pro_8MHz
atmega328_pro8: CHIP = atmega328
atmega328_pro8:
$(MAKE) $(CHIP) AVR_FREQ=8000000L LED_START_FLASHES=3
mv $(PROGRAM)_$(CHIP).hex $(PROGRAM)_$(TARGET).hex
mv $(PROGRAM)_$(CHIP).lst $(PROGRAM)_$(TARGET).lst
$(MAKE) $(CHIP) AVR_FREQ=8000000L LED_START_FLASHES=0
copy $(PROGRAM)_$(CHIP).hex $(PROGRAM)_$(TARGET).hex
copy $(PROGRAM)_$(CHIP).lst $(PROGRAM)_$(TARGET).lst

atmega328_pro8_isp: atmega328_pro8
atmega328_pro8_isp: TARGET = atmega328_pro_8MHz
Expand Down
6 changes: 2 additions & 4 deletions SdCard.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,6 @@
/* CHIP SELECT PIN */
/********************/

/* !!! don't works !!! */

/* the default SS pin is PB2 */
#ifndef SD_SS_PORT
#define SD_SS_PORT B
Expand All @@ -44,8 +42,8 @@
#endif

/* build register name */
#define SD_SS_PORT_REG PORTC
#define SD_SS_DDR_REG DDRC
#define SD_SS_PORT_REG PORTB
#define SD_SS_DDR_REG DDRB

/* init at DIV32 : 8Mhtz -> 250 000 */
#define SPI_SCK_INIT_DIVISOR 0x10
Expand Down
26 changes: 17 additions & 9 deletions optiboot.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1098,20 +1098,28 @@ int sdcard_loader(void) {

/* next read data word */
stepBytesRemaining = 4;

if( hexNumber != 0x00 ) {
// Not a data record (e.g. 0x02 Extended Segment, 0x03 Start Segment,
// 0x04 Extended Linear, 0x05 Start Linear) - skip writing to flash
lineWords = 0;
}
}

else { //hexReadStep == READ_DATA

/* if needed prepare flash page */
if( pageAddress == pageBaseAddress ) {
__boot_page_erase_short(pageBaseAddress);
boot_spm_busy_wait();
}
if( lineWords ) {
/* if needed prepare flash page */
if( pageAddress == pageBaseAddress ) {
__boot_page_erase_short(pageBaseAddress);
boot_spm_busy_wait();
}

/* write a new word */
__boot_page_fill_short(pageAddress, hexNumber);
pageAddress += 2;
lineWords--;
/* write a new word */
__boot_page_fill_short(pageAddress, hexNumber);
pageAddress += 2;
lineWords--;
}

/* check if we need to change page */
if( pageAddress - pageBaseAddress >= SPM_PAGESIZE ) {
Expand Down
128 changes: 128 additions & 0 deletions optiboot_atmega328_pro_8MHz.hex
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
:10780000112484B714BE982F9D7009F079D24CD101
:1078100082E08093C00088E18093C10086E080937D
:10782000C20080E18093C4008EE053D2D0E0C0E07B
:1078300093E0F92EEE24E39425E0D22E31E1C32E1D
:107840008CD0813471F489D0182F49D282E012385B
:1078500021F086E0113809F083E078D080E176D01D
:10786000EFCF823419F484E143D2F8CF853411F498
:1078700085E0FACF853549F470D0C82FD0E06DD0BF
:10788000D82BCC0FDD1F2BD2E9CF863521F484E035
:107890002FD280E0E2CF843609F039C05ED05DD0CF
:1078A000982E5BD0882E00E011E058018FEFA81AC7
:1078B000B80A53D0F801808385019A10F6CF0FD211
:1078C000F5E48F1201C0FFCFFE01F7BEE89507B6C1
:1078D00000FCFDCFFE01A0E0B1E09C919D012E5F78
:1078E0003F4F11968C918927982789270C01E7BE75
:1078F000E89511243296D9019212EFCFFE01D7BE3E
:10790000E89507B600FCFDCFC7BEE895A7CF843742
:1079100071F423D022D0B82E20D0E1D18E01F8010D
:1079200085918F0113D0BA94B110F9CF97CF8537D5
:1079300039F4D5D18EE10AD085E908D08FE08DCF1A
:10794000813509F0A0CF88E0C4D19DCF9091C000CF
:1079500095FFFCCF8093C60008958091C00087FFFB
:10796000FCCF8091C00084FD01C0A8958091C60025
:10797000089581E090913A01963309F080E00895EE
:10798000CF92DF92EF92FF921F93CF93DF93EC01A0
:10799000162F462F60E070E0CB016ED2EADF811136
:1079A0001AC0C090C602D090C702E090C802F09002
:1079B000C902412FC701B6015FD2DBDF81110EC0C2
:1079C000F0E0E0E0CF01DF91CF911F91FF90EF90C9
:1079D000DF90CF900895C12CD12C760180910D01BC
:1079E000888780910E0190910F01C80ED91EE11C6D
:1079F000F11CC882D982EA82FB82809116019091A3
:107A00001701880F991FC80ED91EE11CF11C809127
:107A100011019091120135E0880F991F3A95E1F715
:107A2000892F99278695A7019601280F391F411D97
:107A3000511DDA01C9018C839D83AE83BF83412F21
:107A4000C701B60119D2E0E0F1E08081882309F492
:107A5000B7CF863499F48181893481F4828182356B
:107A600069F483818D3451F48085883439F48185BB
:107A7000853421F48285883509F4A4CFB096E115C8
:107A800033E0F30711F74FEFC41AD40AE40AF40AFB
:107A9000D6CF25E0FC0127BFE89507B600FCFDCF57
:107AA00081E187BFE8950895A5E1B0E0E9E5FDE350
:107AB0005EC283D18F87882309F404C1682FCE0169
:107AC00001965EDF009709F4FDC0FC01028CF38D86
:107AD000E02DFE87ED87FC01448C558C668C778CFD
:107AE0002D853E85225031094985429FC001439F23
:107AF000900D11248D809E80AF80B884880E991ED1
:107B0000A11CB11C4F85C501B401B6D1D12CC12C2B
:107B1000F12CE12C1E01FAE02F0E311C00E011E0E7
:107B20001C861A8A20E031E0398B288B2C8A3D8A0A
:107B3000411451046104710409F4C4C0E889F9894D
:107B40002191F98BE88B2B8B31E0431A51086108A6
:107B50007108E115F34008F43DC09A899F5F9A8B44
:107B60008985EFEF8E1A9E0AAE0ABE0A981750F169
:107B70008D859E85292F332769817A818B819C8110
:107B8000620F731F811D911D4F8576D1ED85FE8596
:107B9000FF27E058FF4FEE0FFF1F208131813E8706
:107BA0002D87225031094985429FC001439F900D86
:107BB00011248D809E80AF80B884880E991EA11CF0
:107BC000B11C1A8A4F85C501B40156D180E091E0FD
:107BD000998B888B9C8591110BC0EB89EA3309F056
:107BE0001F5F11501230A9F4FFEF2F1A3F0AA0CFE8
:107BF000F1018081982F9295907F9083FB898F2F40
:107C00008053FA3310F08B898753890FF1018083F9
:107C1000E8CF11118DCF2C85222309F458C02130D3
:107C200031F40A851B851695079514E03DC03C8507
:107C3000323009F44CC0333089F48A859B85813019
:107C4000910541F4EC14FD0411F0C70122DF90E02E
:107C500080E03AC0892B49F300E0E7CF0023B1F080
:107C6000EC14FD0439F423E0F70127BFE89507B6CB
:107C700000FCFDCF8A859B8521E0F6010C0127BF22
:107C8000E895112432E0C30ED11C0150C6018E19B3
:107C90009F098038910528F0C701FBDE80E8E80ED7
:107CA000F11C9C85943041F0EC85EF5FEC871B86DE
:107CB0001A862C883D883CCF14E00111F8CF1C8631
:107CC00011E0F5CF8FEF9FEF6596E2E16CC112E016
:107CD000EBCFE0E6F0E098E19083808308953DDE0D
:107CE000803219F088E0F5DFFFCF84E12FCE0895D0
:107CF000CF93C82F32DEC150E9F7F1DFCF9108955D
:107D0000282E80E0E6DFE0E0FF2709948CE284B9CA
:107D100080E58CBD08958EBD00000DB407FEFDCF3B
:107D20008EB508958FEFF7CF0895FCDF8F3FE9F709
:107D300081E00895289A089585B115B80895FF92B5
:107D40000F931F93CF93DF93C82FD42F152F062F98
:107D5000F72E8111EADF8C2F8064DDDF8F2DDBDFD2
:107D6000802FD9DF812FD7DF8D2FD5DF87E8C11195
:107D700001C085E9D0DFD6DFCBE0D4DF87FF02C0CA
:107D8000C150D9F7CDB7DEB7E5E01AC1CF92DF9287
:107D9000EF92FF92CF93C82F6A017B0140E050E041
:107DA000BA0187E3CCDFB701A6018C2FC8DFCF91E2
:107DB000FF90EF90DF90CF900895B0E0A0E0E2EE6A
:107DC000FEE3DFC08CE284B9209AB4DF80E58CBD8D
:107DD00081E08DBDB1DFAEDFCAE0A4DFC150E9F7BD
:107DE000ABDF0BE010E040E050E0BA0180E0A7DF3D
:107DF000C82F813039F001501109A9F79BDF92DFBC
:107E0000C0E030C04AEA51E060E070E088E097DF0F
:107E1000853069F187DF86DF85DF84DF8A3A71F795
:107E2000D2E0C12CD12CE12C80E4F82EB701A601C0
:107E300089E2ACDF8111FACFD23081F440E050E02A
:107E4000BA018AE37CDF8111D9CF6CDF807C803C72
:107E500009F4D3E067DF66DF65DFCD2F80E58CBDF9
:107E600069DF60DF8C2FCDB7DEB7E8E0A6C0D1E0D8
:107E7000C12CD12C7601DACFCF92DF92EF92FF9214
:107E8000CF93DF936B017C01C42F56DFC33039F0F1
:107E900089E0CC0CDD1CEE1CFF1C8A95D1F7B701E4
:107EA000A60181E14CDF811119C03CDF8F3FE9F36E
:107EB0008E3FA1F4C0E0D1E035DF8993C11583E0A6
:107EC000D807D1F72FDF2EDF35DF2CDF81E0DF9100
:107ED000CF91FF90EF90DF90CF9008952BDF22DFBE
:107EE00080E0F5CFCF92DF92EF92FF92CF93DF93B6
:107EF0006B017C01C42F20DFC33039F089E0CC0C4A
:107F0000DD1CEE1CFF1C8A95D1F7B701A60188E1A4
:107F100016DF811128C08EEFFEDEC0E0D1E089912E
:107F2000FADEC11583E0D807D1F7FCDEFBDEFADE0E
:107F30008F718530C1F4F9DEC82F8823A1F040E0AD
:107F400050E0BA018DE0FBDE81110DC0EBDE811146
:107F50000AC0F0DEE7DE8C2FDF91CF91FF90EF902B
:107F6000DF90CF900895E6DEDDDEC0E0F4CF2F9203
:107F70003F924F925F926F927F928F929F92AF92B9
:107F8000BF92CF92DF92EF92FF920F931F93CF9306
:107F9000DF93CDB7DEB7CA1BDB0B0FB6F894DEBF9D
:107FA0000FBECDBF09942A88398848885F846E84C3
:107FB0007D848C849B84AA84B984C884DF80EE800D
:107FC000FD800C811B81AA81B981CE0FD11D0FB616
:0C7FD000F894DEBF0FBECDBFED01089598
:040000030000780081
:00000001FF
Loading