diff options
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/sbc_harness/CMakeLists.txt | 6 | ||||
-rw-r--r-- | cmd/sbc_harness/config/tusb_config.h | 45 | ||||
-rw-r--r-- | cmd/sbc_harness/fs_harness_flash_bin.c | 16 | ||||
-rw-r--r-- | cmd/sbc_harness/fs_harness_uptime_txt.c | 5 | ||||
-rw-r--r-- | cmd/sbc_harness/main.c | 11 | ||||
l--------- | cmd/sbc_harness/static/Documentation/YOUR_RIGHTS_AND_OBLIGATIONS/printf.mit.txt | 1 | ||||
-rw-r--r-- | cmd/sbc_harness/tusb_log.c | 13 |
7 files changed, 43 insertions, 54 deletions
diff --git a/cmd/sbc_harness/CMakeLists.txt b/cmd/sbc_harness/CMakeLists.txt index 878e151..0e904ab 100644 --- a/cmd/sbc_harness/CMakeLists.txt +++ b/cmd/sbc_harness/CMakeLists.txt @@ -26,16 +26,13 @@ target_link_libraries(sbc_harness_objs hardware_watchdog libmisc - libfmt libusb libdhcp libhw_cr lib9p_srv lib9p_util ) -pico_minimize_runtime(sbc_harness_objs - INCLUDE PRINTF PRINTF_MINIMAL PRINTF_LONG_LONG PRINTF_PTRDIFF_T -) +pico_minimize_runtime(sbc_harness_objs) target_compile_definitions(sbc_harness_objs PRIVATE #PICO_USE_FASTEST_SUPPORTED_CLOCK=1 @@ -75,7 +72,6 @@ target_embed_sources(sbc_harness_objs sbc_harness static.h static/Documentation/YOUR_RIGHTS_AND_OBLIGATIONS/dhcp.bsd3-mit.txt static/Documentation/YOUR_RIGHTS_AND_OBLIGATIONS/newlib.txt static/Documentation/YOUR_RIGHTS_AND_OBLIGATIONS/pico-sdk.bsd3.txt - static/Documentation/YOUR_RIGHTS_AND_OBLIGATIONS/printf.mit.txt static/Documentation/YOUR_RIGHTS_AND_OBLIGATIONS/tinyusb.mit.txt static/Documentation/harness_rom_bin.txt static/Documentation/harness_flash_bin.txt diff --git a/cmd/sbc_harness/config/tusb_config.h b/cmd/sbc_harness/config/tusb_config.h index 5240311..2c7c02a 100644 --- a/cmd/sbc_harness/config/tusb_config.h +++ b/cmd/sbc_harness/config/tusb_config.h @@ -31,40 +31,31 @@ #ifndef _TUSB_CONFIG_H_ #define _TUSB_CONFIG_H_ +#include <stdint.h> /* for uint{n}_t */ + #ifdef __cplusplus extern "C" { #endif //-------------------------------------------------------------------- -// Override the default definition of TU_ASSERT() to use our logging +// Override the default TU_MESS_FAILED() and tu_print_*() to use our logging //-------------------------------------------------------------------- -// "magically" select between the 1-arg and 2-args variants, inject a -// stringified version of `_cond`. -// -// Note: Use GNU-C `, ##__VA_ARGS__`, not standard C `__VA_OPT__(,) -// __VA_ARGS__`; because __VA_OPT__ doesn't handle present-but-empty -// arguments the way that we need. -#define TU_ASSERT(_cond, ...) \ - _GET_3RD_ARG(_cond, ##__VA_ARGS__, \ - _LIBMISC_TU_ASSERT_2ARGS, _LIBMISC_TU_ASSERT_1ARGS, _dummy) \ - (_cond, #_cond, ##__VA_ARGS__) - -#define _LIBMISC_TU_ASSERT_1ARGS(_cond, _cond_str) \ - _LIBMISC_TU_ASSERT_2ARGS(_cond, _cond_str, false) - -#define _LIBMISC_TU_ASSERT_2ARGS(_cond, _cond_str, _ret) \ - do { \ - if ( !(_cond) ) { \ - _libmisc_tu_mess_failed(_cond_str, \ - __FILE__, __LINE__, __func__); \ - TU_BREAKPOINT(); \ - return _ret; \ - } \ - } while (0) - -void _libmisc_tu_mess_failed(const char *expr, - const char *file, unsigned int line, const char *func); +#define TU_MESS_FAILED(_cond_str) _libmisc_tu_mess_failed(_cond_str, __FILE__, __LINE__, __func__) +#define tu_print_str _libmisc_tu_print_str +#define tu_print_byte _libmisc_tu_print_byte +#define tu_print_base10 _libmisc_tu_print_base10 +#define tu_print_base16 _libmisc_tu_print_base16 +#define tu_print_base16_u8 _libmisc_tu_print_base16_u8 +#define tu_print_base16_u16 _libmisc_tu_print_base16_u16 + +void _libmisc_tu_mess_failed(const char *expr, const char *file, unsigned int line, const char *func); +void _libmisc_tu_print_str(const char *); +void _libmisc_tu_print_byte(uint8_t); +void _libmisc_tu_print_base10(unsigned long); +void _libmisc_tu_print_base16(unsigned long); +void _libmisc_tu_print_base16_u8(uint8_t); +void _libmisc_tu_print_base16_u16(uint16_t); //-------------------------------------------------------------------- // Configuration: common diff --git a/cmd/sbc_harness/fs_harness_flash_bin.c b/cmd/sbc_harness/fs_harness_flash_bin.c index f353ddd..3c3fa16 100644 --- a/cmd/sbc_harness/fs_harness_flash_bin.c +++ b/cmd/sbc_harness/fs_harness_flash_bin.c @@ -41,7 +41,7 @@ static_assert(DATA_HSIZE % FLASH_SECTOR_SIZE == 0); [[noreturn]] static void __no_inline_not_in_flash_func(ab_flash_finalize)(uint8_t *buf) { assert(buf); - log_infof("copying upper flash to lower flash..."); + log_infoln("copying upper flash to lower flash..."); cr_save_and_disable_interrupts(); @@ -53,7 +53,7 @@ static_assert(DATA_HSIZE % FLASH_SECTOR_SIZE == 0); flash_range_program(off, buf, FLASH_SECTOR_SIZE); } - log_infof("rebooting..."); + log_infoln("rebooting..."); watchdog_reboot(0, 0, 300); @@ -71,7 +71,7 @@ static void ab_flash_initialize_zero(uint8_t *buf) { memset(buf, 0, FLASH_SECTOR_SIZE); - log_infof("zeroing upper flash..."); + log_infoln("zeroing upper flash..."); for (size_t off = DATA_HSIZE; off < DATA_SIZE; off += FLASH_SECTOR_SIZE) { if (memcmp(buf, DATA_START+off, FLASH_SECTOR_SIZE) == 0) continue; @@ -84,7 +84,7 @@ static void ab_flash_initialize_zero(uint8_t *buf) { flash_range_program(off, buf, FLASH_SECTOR_SIZE); cr_restore_interrupts(saved); } - log_debugf("... zeroed"); + log_debugln("... zeroed"); } /** @@ -95,7 +95,7 @@ static void ab_flash_initialize_zero(uint8_t *buf) { static void ab_flash_initialize(uint8_t *buf) { assert(buf); - log_infof("initializing upper flash..."); + log_infoln("initializing upper flash..."); for (size_t off = 0; off < DATA_HSIZE; off += FLASH_SECTOR_SIZE) { memcpy(buf, DATA_START+off, FLASH_SECTOR_SIZE); if (memcmp(buf, DATA_START+DATA_HSIZE+off, FLASH_SECTOR_SIZE) == 0) @@ -105,7 +105,7 @@ static void ab_flash_initialize(uint8_t *buf) { flash_range_program(DATA_HSIZE+off, buf, FLASH_SECTOR_SIZE); cr_restore_interrupts(saved); } - log_debugf("... initialized"); + log_debugln("... initialized"); } /** @@ -123,14 +123,14 @@ static void ab_flash_write_sector(size_t pos, uint8_t *dat) { pos += DATA_HSIZE; - log_infof("write flash sector @ %zu...", pos); + log_infoln("write flash sector @ %zu...", pos); if (memcmp(dat, DATA_START+pos, FLASH_SECTOR_SIZE) != 0) { bool saved = cr_save_and_disable_interrupts(); flash_range_erase(pos, FLASH_SECTOR_SIZE); flash_range_program(pos, dat, FLASH_SECTOR_SIZE); cr_restore_interrupts(saved); } - log_debugf("... written"); + log_debugln("... written"); } /* srv_file *******************************************************************/ diff --git a/cmd/sbc_harness/fs_harness_uptime_txt.c b/cmd/sbc_harness/fs_harness_uptime_txt.c index f7b755f..97246ea 100644 --- a/cmd/sbc_harness/fs_harness_uptime_txt.c +++ b/cmd/sbc_harness/fs_harness_uptime_txt.c @@ -4,11 +4,10 @@ * SPDX-License-Identifier: AGPL-3.0-or-later */ -#include <stdio.h> /* for snprintf() */ - #include <libhw/generic/alarmclock.h> #include <util9p/static.h> #include <libmisc/alloc.h> /* for heap_alloc(), free() */ +#include <libmisc/fmt.h> /* for fmt_snprint() */ #include "fs_harness_uptime_txt.h" @@ -120,7 +119,7 @@ static void uptime_fio_pread(struct uptime_fio *self, struct lib9p_srv_ctx *ctx, if (byte_offset == 0 || self->buf_len == 0) { uint64_t now = LO_CALL(bootclock, get_time_ns); - self->buf_len = snprintf(self->buf, sizeof(self->buf), "%"PRIu64"ns\n", now); + self->buf_len = fmt_snprint(self->buf, sizeof(self->buf), now, "ns\n"); } if (byte_offset > (uint64_t)self->buf_len) { diff --git a/cmd/sbc_harness/main.c b/cmd/sbc_harness/main.c index de9751b..143bae0 100644 --- a/cmd/sbc_harness/main.c +++ b/cmd/sbc_harness/main.c @@ -61,7 +61,7 @@ enum { PATH_BASE = __COUNTER__ }; __VA_OPT__(,) __VA_ARGS__ \ })) -struct lib9p_srv_file root = +static struct lib9p_srv_file root = STATIC_DIR("", STATIC_DIR("Documentation", STATIC_FILE("YOUR_RIGHTS_AND_OBLIGATIONS.md", @@ -80,9 +80,6 @@ struct lib9p_srv_file root = STATIC_FILE("pico-sdk.bsd3.txt", .data_start = _binary_static_Documentation_YOUR_RIGHTS_AND_OBLIGATIONS_pico_sdk_bsd3_txt_start, .data_end = _binary_static_Documentation_YOUR_RIGHTS_AND_OBLIGATIONS_pico_sdk_bsd3_txt_end), - STATIC_FILE("printf.mit.txt", - .data_start = _binary_static_Documentation_YOUR_RIGHTS_AND_OBLIGATIONS_printf_mit_txt_start, - .data_end = _binary_static_Documentation_YOUR_RIGHTS_AND_OBLIGATIONS_printf_mit_txt_end), STATIC_FILE("tinyusb.mit.txt", .data_start = _binary_static_Documentation_YOUR_RIGHTS_AND_OBLIGATIONS_tinyusb_mit_txt_start, .data_end = _binary_static_Documentation_YOUR_RIGHTS_AND_OBLIGATIONS_tinyusb_mit_txt_end), @@ -132,7 +129,7 @@ static COROUTINE hello_world_cr(void *_chan) { for (size_t i = 0;; i = (i+1) % strlen(msg)) { int result = usb_keyboard_rpc_send_req(chan, (uint32_t)msg[i]); if (result < 1) { - log_errorf("error sending rune U+%d", (uint32_t)msg[i]); + log_errorln("error sending rune U+", msg[i]); break; } } @@ -176,7 +173,7 @@ static COROUTINE write9p_cr(void *) { cr_end(); } -const char *const hexdig = "0123456789ABCDEF"; +static const char *const hexdig = "0123456789ABCDEF"; static_assert(_CONFIG_9P_MAX_REQS <= 16); COROUTINE init_cr(void *) { @@ -249,7 +246,7 @@ int main() { bootclock = rp2040_hwtimer(0); stdio_uart_init(); /* char *hdr = "=" * (80-strlen("info : MAIN: ")); */ - log_infof("==================================================================="); + log_infoln("==================================================================="); coroutine_add("init", init_cr, NULL); coroutine_main(); assert_notreached("all coroutines exited"); diff --git a/cmd/sbc_harness/static/Documentation/YOUR_RIGHTS_AND_OBLIGATIONS/printf.mit.txt b/cmd/sbc_harness/static/Documentation/YOUR_RIGHTS_AND_OBLIGATIONS/printf.mit.txt deleted file mode 120000 index 5a6e342..0000000 --- a/cmd/sbc_harness/static/Documentation/YOUR_RIGHTS_AND_OBLIGATIONS/printf.mit.txt +++ /dev/null @@ -1 +0,0 @@ -../../../../../3rd-party/pico-sdk/src/rp2_common/pico_printf/LICENSE
\ No newline at end of file diff --git a/cmd/sbc_harness/tusb_log.c b/cmd/sbc_harness/tusb_log.c index fe2c688..09fe755 100644 --- a/cmd/sbc_harness/tusb_log.c +++ b/cmd/sbc_harness/tusb_log.c @@ -7,9 +7,16 @@ #define LOG_NAME TINY_USB #include <libmisc/log.h> +#include "tusb_config.h" + void _libmisc_tu_mess_failed(const char *expr, const char *file, unsigned int line, const char *func) { - log_errorf("%s:%u:%s(): assertion \"%s\" failed", - file, line, func, - expr); + log_errorln(file, ":", line, ":", func, "(): assertion ", (qstr, expr), " failed"); } + +void _libmisc_tu_print_str(const char *x) { fmt_print_str(_log_dest, x); } +void _libmisc_tu_print_byte(uint8_t x) { fmt_print_byte(_log_dest, x); } +void _libmisc_tu_print_base10(unsigned long x) { fmt_print_base10(_log_dest, x); } +void _libmisc_tu_print_base16(unsigned long x) { fmt_print(_log_dest, "0x", (base16, x)); } +void _libmisc_tu_print_base16_u8(uint8_t x) { fmt_print_base16_u8_(_log_dest, x); } +void _libmisc_tu_print_base16_u16(uint16_t x) { fmt_print_base16_u16_(_log_dest, x); } |