feat: save stable CH390 bridge baseline
This commit is contained in:
+14
-45
@@ -19,41 +19,10 @@
|
||||
* Private Variables
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
/* CRC32 lookup table */
|
||||
static uint32_t g_crc_table[256];
|
||||
static bool g_crc_table_initialized = false;
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
* Private Functions
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* @brief Initialize CRC32 lookup table
|
||||
*/
|
||||
static void crc32_init_table(void)
|
||||
{
|
||||
uint32_t i, j, crc;
|
||||
|
||||
for (i = 0; i < 256; i++)
|
||||
{
|
||||
crc = i;
|
||||
for (j = 0; j < 8; j++)
|
||||
{
|
||||
if (crc & 1)
|
||||
{
|
||||
crc = (crc >> 1) ^ CRC32_POLYNOMIAL;
|
||||
}
|
||||
else
|
||||
{
|
||||
crc >>= 1;
|
||||
}
|
||||
}
|
||||
g_crc_table[i] = crc;
|
||||
}
|
||||
|
||||
g_crc_table_initialized = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Unlock Flash for writing
|
||||
*/
|
||||
@@ -105,12 +74,6 @@ static HAL_StatusTypeDef flash_program_halfword(uint32_t addr, uint16_t data)
|
||||
*/
|
||||
int flash_param_init(void)
|
||||
{
|
||||
/* Initialize CRC table */
|
||||
if (!g_crc_table_initialized)
|
||||
{
|
||||
crc32_init_table();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -243,16 +206,22 @@ uint32_t flash_param_crc32(const void *data, uint32_t len)
|
||||
const uint8_t *p = (const uint8_t *)data;
|
||||
uint32_t crc = 0xFFFFFFFF;
|
||||
uint32_t i;
|
||||
|
||||
/* Initialize table if needed */
|
||||
if (!g_crc_table_initialized)
|
||||
{
|
||||
crc32_init_table();
|
||||
}
|
||||
|
||||
uint32_t j;
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
{
|
||||
crc = g_crc_table[(crc ^ p[i]) & 0xFF] ^ (crc >> 8);
|
||||
crc ^= p[i];
|
||||
for (j = 0; j < 8u; ++j)
|
||||
{
|
||||
if ((crc & 1u) != 0u)
|
||||
{
|
||||
crc = (crc >> 1) ^ CRC32_POLYNOMIAL;
|
||||
}
|
||||
else
|
||||
{
|
||||
crc >>= 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return crc ^ 0xFFFFFFFF;
|
||||
|
||||
Reference in New Issue
Block a user