Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Erik Strand
lufa
Commits
571159df
Commit
571159df
authored
May 13, 2010
by
Dean Camera
Browse files
Additional fix to the AVRISP-MKII clone project for 256KB AVRs.
parent
cd0093a1
Changes
2
Hide whitespace changes
Inline
Side-by-side
LUFA/ManPages/ChangeLog.txt
View file @
571159df
...
@@ -17,7 +17,7 @@
...
@@ -17,7 +17,7 @@
* <b>Fixed:</b>
* <b>Fixed:</b>
* - Fixed possible device lockup when INTERRUPT_CONTROL_ENDPOINT is enabled and the control endpoint is not properly
* - Fixed possible device lockup when INTERRUPT_CONTROL_ENDPOINT is enabled and the control endpoint is not properly
* selected when the ISR completes
* selected when the ISR completes
* - Fixed AVRISP-MKII clone project not correctly issuing
SET
EXTENDED ADDRESS commands when the extended address
* - Fixed AVRISP-MKII clone project not correctly issuing
LOAD
EXTENDED ADDRESS commands when the extended address
* boundary is crossed during programming or readback (thanks to Gerard Sexton)
* boundary is crossed during programming or readback (thanks to Gerard Sexton)
* - Fixed warnings when building the AVRISP-MKII clone project with the ENABLE_XPROG_PROTOCOL compile time option disabled
* - Fixed warnings when building the AVRISP-MKII clone project with the ENABLE_XPROG_PROTOCOL compile time option disabled
*
*
...
...
Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.c
View file @
571159df
...
@@ -227,18 +227,9 @@ void ISPProtocol_ProgramMemory(uint8_t V2Command)
...
@@ -227,18 +227,9 @@ void ISPProtocol_ProgramMemory(uint8_t V2Command)
PollAddress
=
(
CurrentAddress
&
0xFFFF
);
PollAddress
=
(
CurrentAddress
&
0xFFFF
);
}
}
/* EEPROM just increments the address each byte, flash needs to increment on each word and
/* EEPROM increments the address on each byte, flash needs to increment on each word */
* also check to ensure that a LOAD EXTENDED ADDRESS command is issued each time the extended
if
(
IsOddByte
||
(
V2Command
==
CMD_PROGRAM_EEPROM_ISP
))
* address boundary has been crossed */
CurrentAddress
++
;
if
(
V2Command
==
CMD_PROGRAM_EEPROM_ISP
)
{
CurrentAddress
++
;
}
else
if
(
IsOddByte
)
{
if
(
!
(
++
CurrentAddress
&
0xFFFF
))
ISPTarget_LoadExtendedAddress
();
}
}
}
/* If the current page must be committed, send the PROGRAM PAGE command to the target */
/* If the current page must be committed, send the PROGRAM PAGE command to the target */
...
@@ -258,6 +249,10 @@ void ISPProtocol_ProgramMemory(uint8_t V2Command)
...
@@ -258,6 +249,10 @@ void ISPProtocol_ProgramMemory(uint8_t V2Command)
ProgrammingStatus
=
ISPTarget_WaitForProgComplete
(
Write_Memory_Params
.
ProgrammingMode
,
PollAddress
,
PollValue
,
ProgrammingStatus
=
ISPTarget_WaitForProgComplete
(
Write_Memory_Params
.
ProgrammingMode
,
PollAddress
,
PollValue
,
Write_Memory_Params
.
DelayMS
,
Write_Memory_Params
.
ProgrammingCommands
[
2
]);
Write_Memory_Params
.
DelayMS
,
Write_Memory_Params
.
ProgrammingCommands
[
2
]);
/* Check to see if the FLASH address has crossed the extended address boundary */
if
((
V2Command
==
CMD_PROGRAM_FLASH_ISP
)
&&
!
(
CurrentAddress
&
0xFFFF
))
ISPTarget_LoadExtendedAddress
();
}
}
}
}
else
else
...
@@ -285,6 +280,13 @@ void ISPProtocol_ProgramMemory(uint8_t V2Command)
...
@@ -285,6 +280,13 @@ void ISPProtocol_ProgramMemory(uint8_t V2Command)
PollAddress
=
(
CurrentAddress
&
0xFFFF
);
PollAddress
=
(
CurrentAddress
&
0xFFFF
);
}
}
ProgrammingStatus
=
ISPTarget_WaitForProgComplete
(
Write_Memory_Params
.
ProgrammingMode
,
PollAddress
,
PollValue
,
Write_Memory_Params
.
DelayMS
,
Write_Memory_Params
.
ProgrammingCommands
[
2
]);
/* Abort the programming loop early if the byte/word programming failed */
if
(
ProgrammingStatus
!=
STATUS_CMD_OK
)
break
;
/* EEPROM just increments the address each byte, flash needs to increment on each word and
/* EEPROM just increments the address each byte, flash needs to increment on each word and
* also check to ensure that a LOAD EXTENDED ADDRESS command is issued each time the extended
* also check to ensure that a LOAD EXTENDED ADDRESS command is issued each time the extended
...
@@ -298,12 +300,6 @@ void ISPProtocol_ProgramMemory(uint8_t V2Command)
...
@@ -298,12 +300,6 @@ void ISPProtocol_ProgramMemory(uint8_t V2Command)
if
(
!
(
++
CurrentAddress
&
0xFFFF
))
if
(
!
(
++
CurrentAddress
&
0xFFFF
))
ISPTarget_LoadExtendedAddress
();
ISPTarget_LoadExtendedAddress
();
}
}
ProgrammingStatus
=
ISPTarget_WaitForProgComplete
(
Write_Memory_Params
.
ProgrammingMode
,
PollAddress
,
PollValue
,
Write_Memory_Params
.
DelayMS
,
Write_Memory_Params
.
ProgrammingCommands
[
2
]);
if
(
ProgrammingStatus
!=
STATUS_CMD_OK
)
break
;
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment