По поводу volatile совершенно согласен.
Проблема в том что я в студии не могу посмотреть знач. переменной. Объясните пожалуйста в чём дело.
// ================================================================
long CalculateCRC32Block(unsigned char* buf, unsigned int len)
{
unsigned long crc = 0xFFFFFFFF;
while (len--)
{
crc = (crc >> 8) ^ pgm_read_dword(&(CRC32Table[(crc ^ *buf++) & 0xFF]));
}
return crc ^ 0xFFFFFFFF;
}
Если так
// ================================================================
int main(void)
{
unsigned char a[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
volatile unsigned long crc = CalculateCRC32Block(a, 9);
то значение переменной crc в студии не видно
Так тоже не видно
// ================================================================
int main(void)
{
unsigned char a[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
unsigned long crc = 0;
crc = CalculateCRC32Block(a, 9);
И только так я могу его посмотреть
// ================================================================
int main(void)
{
unsigned char a[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
volatile unsigned long crc = 0;
crc = CalculateCRC32Block(a, 9);
Может лучше использовать какую-нибудь другую программу для отладки?
Или руки кривые?