Цитата(Alex ma @ Jul 26 2007, 13:22)

Пытаюсь подсчитать контрольную сумму Flash из bootloadera
Но в функцию расчета CRC передается все время 0xFFFF. Не могу понять почему.
Указатель на Flash unsigned int const __flash * ptrFlash
CRC unsigned char crc8Flash = 0xFF;
ptrFlash = (__flash unsigned int const*)0x0BFE; // получаем адрес ячейки Flash
while(coutFlash --){ // количество слов для расчета
crc8Flash = CRC8Byte(Lo(*ptrFlash), crc8Flash); //рассчитываем для младшего
crc8Flash = CRC8Byte(Hi(*ptrFlash), crc8Flash);
*ptrFlash++;
};
1)0x0BFE - если вы имели в виду конец пользовательской области флеш, то IAR считает адреса в байтах, т.е. 0x17FE
2)наверное все-таки *ptrFlash--;, иначе вы считаете сумму загрузчика.
3)а зачем вы используете указатель на int и делаете отдельный расчет для младшего и старшего? Может удобнее использовать указатель на char?