Отвечу сам себе: Задача была приделать контрольную сумму, совместимую с S-Record, к прошивке. В результате получилось так:
void
crc_process(void* src, unsigned int words)
{
uint32_t* ptr = src;
while (words-- != 0)
{
CRC_DR = __RBIT(*ptr++);
}
}
uint32_t
crc_result(void)
{
return ~__RBIT(CRC_DR);
}
Это совпадает с --little-endian-crc32 в srec_cat. А волшебное число, о котором говорилось в самом верху ветки, - это 0x2144DF1C.