summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'cmd')
-rw-r--r--cmd/sbc_harness/CMakeLists.txt6
-rw-r--r--cmd/sbc_harness/config/tusb_config.h45
-rw-r--r--cmd/sbc_harness/fs_harness_flash_bin.c16
-rw-r--r--cmd/sbc_harness/fs_harness_uptime_txt.c5
-rw-r--r--cmd/sbc_harness/main.c11
l---------cmd/sbc_harness/static/Documentation/YOUR_RIGHTS_AND_OBLIGATIONS/printf.mit.txt1
-rw-r--r--cmd/sbc_harness/tusb_log.c13
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); }