mirror of
https://github.com/pine64/blisp.git
synced 2025-03-12 01:48:56 +00:00
- Unused function warnings Move function definitions in include/blisp_util.h to lib/blisp_util.c. Defining them as static leads to internal linkage, accessible in that translation unit, hence the warning. Their references are to be handled in other translation units, so they shouldn't be static. - Unused function parameters Use C attribute `[[maybe_unused]]` (introduced in C23) to suppress unused parameter warnings. - `blisp_chip_xxxxx_get_eflash_loader` implementations accept clock type but don't use it. - `drain` function only has a body under macOS and FreeBSD with preprocessor predicates. - Enable compiler warnings Now that warnings are address enable them `-Wall -Wextra -Wpedantic` for the library and the tool targets. N.B. An equivalent of MSVC should be added to CMakeLists.txt, as these would only work when using GCC or Clang.
49 lines
925 B
C
49 lines
925 B
C
// SPDX-License-Identifier: MIT
|
|
#include <stdarg.h>
|
|
#include <stdint.h>
|
|
#include <stdio.h>
|
|
|
|
#ifdef WIN32
|
|
# include <windows.h>
|
|
#else
|
|
# include <time.h>
|
|
#endif
|
|
|
|
#include "blisp_util.h"
|
|
|
|
void blisp_dlog(const char* format, ...)
|
|
{
|
|
fflush(stdout);
|
|
va_list args;
|
|
va_start(args, format);
|
|
vfprintf(stderr, format, args);
|
|
va_end(args);
|
|
fputc('\n', stderr);
|
|
}
|
|
|
|
|
|
void sleep_ms(int milliseconds) {
|
|
#ifdef WIN32
|
|
Sleep(milliseconds);
|
|
#else
|
|
struct timespec ts;
|
|
ts.tv_sec = milliseconds / 1000;
|
|
ts.tv_nsec = (milliseconds % 1000) * 1000000;
|
|
nanosleep(&ts, NULL);
|
|
#endif
|
|
}
|
|
|
|
uint32_t crc32_calculate(const void *data, size_t data_len)
|
|
{
|
|
uint32_t crc = 0xffffffff;
|
|
const unsigned char *d = (const unsigned char *)data;
|
|
unsigned int tbl_idx;
|
|
|
|
while (data_len--) {
|
|
tbl_idx = (crc ^ *d) & 0xff;
|
|
crc = (crc_table[tbl_idx] ^ (crc >> 8)) & 0xffffffff;
|
|
d++;
|
|
}
|
|
return (crc & 0xffffffff) ^ 0xffffffff;
|
|
}
|