Спасибо, я уже разобрался, контроллер пашет, из программы в бут и наоборот переключается.
Программу для прошивки и искать не стал, ибо задумавшись о деталях моей задачи понял, что код прошивальщика мне надо писать свой и вставлять его в основную компьютерную программу. Софт написал, обмен данными наладил.
Остался один вопрос. Вот фрагмент бутлоадера:
Код
char GetPage(void)
{
char LocalCheckSum = 0;
char CheckSum = 0;
// The programming software generates a simple checksum in the
// same fashion as below to check for data transmission errors
for (j=0;j<PageByte;j++)
{
PageBuffer[j]=getchar();
LocalCheckSum += PageBuffer[j];
}
CheckSum = getchar();
if (LocalCheckSum == CheckSum) return 1;
else return 0;
}
То есть в бутлоадере контрольная сумма проверяется для всей страницы, длина которой для mega32 - 128 байт.
А в HEX файле контрольная сумма после каждого 16 байта.
Мне что делать - в прошивальщике пересчитывать контрольную сумму для каждой страницы или в бутлодыре каждые 16 байт? Или я что-то не понял...
И вот :
Код
:10026000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E
:10027000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E
Строки одинаковые, а контрольные суммы разные....
Как понять "сумма всех байт в строке должна быть равна нулю" ?
Считать байты данных или все байты кроме двоеточия?