diff --git a/CMakeLists.txt b/CMakeLists.txt index 1c369de..dccff37 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,10 +7,13 @@ option(BLISP_BUILD_CLI "Build CLI Tool" OFF) add_library(libblisp_obj OBJECT lib/blisp.c + lib/blisp_easy.c + lib/blisp_util.c lib/chip/blisp_chip_bl60x.c - lib/chip/blisp_chip_bl70x.c lib/blisp_easy.c) + lib/chip/blisp_chip_bl70x.c) target_include_directories(libblisp_obj PRIVATE ${CMAKE_SOURCE_DIR}/include/) +target_compile_options(libblisp_obj PRIVATE -Wall -Wextra -Wpedantic) set_property(TARGET libblisp_obj PROPERTY POSITION_INDEPENDENT_CODE 1) diff --git a/include/blisp.h b/include/blisp.h index ce85fb1..84031f2 100644 --- a/include/blisp.h +++ b/include/blisp.h @@ -72,5 +72,4 @@ int32_t blisp_device_flash_write(struct blisp_device* device, int32_t blisp_device_program_check(struct blisp_device* device); int32_t blisp_device_reset(struct blisp_device* device); void blisp_device_close(struct blisp_device* device); - -#endif \ No newline at end of file +#endif diff --git a/include/blisp_util.h b/include/blisp_util.h index f1f4d8f..7fe38c8 100644 --- a/include/blisp_util.h +++ b/include/blisp_util.h @@ -2,35 +2,18 @@ #ifndef _BLISP_UTIL_H #define _BLISP_UTIL_H -#include -#include +#include #ifdef WIN32 -#include +# include #else -#include +# include #endif -static 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 blisp_dlog(const char* format, ...); +void sleep_ms(int milliseconds); -static 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); /** * * Generated on Mon Jan 9 19:56:36 2023 @@ -44,7 +27,6 @@ static void sleep_ms(int milliseconds) { * - ReflectOut = True * - Algorithm = table-driven */ - static const uint32_t crc_table[256] = { 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, @@ -80,19 +62,4 @@ static const uint32_t crc_table[256] = { 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d }; -static 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; -} - - -#endif \ No newline at end of file +#endif diff --git a/lib/blisp.c b/lib/blisp.c index 0d5882c..8b30d51 100644 --- a/lib/blisp.c +++ b/lib/blisp.c @@ -13,7 +13,7 @@ #define DEBUG -static void drain(struct sp_port* port) { +static void drain([[maybe_unused]] struct sp_port* port) { #if defined(__APPLE__) || defined(__FreeBSD__) sp_drain(port); #endif @@ -412,4 +412,4 @@ int32_t blisp_device_reset(struct blisp_device* device) { void blisp_device_close(struct blisp_device* device) { struct sp_port* serial_port = device->serial_port; sp_close(serial_port); -} \ No newline at end of file +} diff --git a/lib/blisp_util.c b/lib/blisp_util.c new file mode 100644 index 0000000..27bca4f --- /dev/null +++ b/lib/blisp_util.c @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: MIT +#include +#include +#include + +#ifdef WIN32 +# include +#else +# include +#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; +} diff --git a/lib/chip/blisp_chip_bl60x.c b/lib/chip/blisp_chip_bl60x.c index e8ae033..0a56f46 100644 --- a/lib/chip/blisp_chip_bl60x.c +++ b/lib/chip/blisp_chip_bl60x.c @@ -4,7 +4,7 @@ #include "../../data/bl60x_eflash_loader.h" #include "blisp.h" -int64_t blisp_chip_bl60x_get_eflash_loader(uint8_t clk_type, uint8_t** firmware_buf_ptr) +int64_t blisp_chip_bl60x_get_eflash_loader([[maybe_unused]] uint8_t clk_type, uint8_t** firmware_buf_ptr) { uint8_t* firmware_buf = malloc(sizeof(bl60x_eflash_loader_bin)); memcpy(firmware_buf, bl60x_eflash_loader_bin, sizeof(bl60x_eflash_loader_bin)); diff --git a/lib/chip/blisp_chip_bl70x.c b/lib/chip/blisp_chip_bl70x.c index a380720..6368211 100644 --- a/lib/chip/blisp_chip_bl70x.c +++ b/lib/chip/blisp_chip_bl70x.c @@ -4,7 +4,7 @@ #include "../../data/bl70x_eflash_loader.h" #include "blisp.h" -int64_t blisp_chip_bl70x_get_eflash_loader(uint8_t clk_type, uint8_t** firmware_buf_ptr) +int64_t blisp_chip_bl70x_get_eflash_loader([[maybe_unused]] uint8_t clk_type, uint8_t** firmware_buf_ptr) { uint8_t* firmware_buf = malloc(sizeof(bl70x_eflash_loader_bin)); memcpy(firmware_buf, bl70x_eflash_loader_bin, sizeof(bl70x_eflash_loader_bin)); diff --git a/tools/blisp/CMakeLists.txt b/tools/blisp/CMakeLists.txt index ce38714..3cfffda 100644 --- a/tools/blisp/CMakeLists.txt +++ b/tools/blisp/CMakeLists.txt @@ -13,6 +13,8 @@ target_link_libraries(blisp PRIVATE argtable3 libblisp_static) +target_compile_options(blisp PRIVATE -Wall -Wextra -Wpedantic) + if (WIN32) target_link_libraries(blisp PRIVATE Setupapi.lib) elseif (APPLE)