From a404e5ffc42eed5a61c5486bd0d13d035360ebc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?King=20K=C3=A9vin?= Date: Tue, 26 Mar 2019 19:51:55 +0100 Subject: [PATCH] BV I2C: check dump8 input argument --- lib/busvoodoo_i2c.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/busvoodoo_i2c.c b/lib/busvoodoo_i2c.c index d6b8d48..8779215 100644 --- a/lib/busvoodoo_i2c.c +++ b/lib/busvoodoo_i2c.c @@ -461,7 +461,7 @@ static void busvoodoo_i2c_command_reset(void* argument) (void)argument; // we won't use the argument if (!i2c_master_reset(BUSVOODOO_I2C)) { // reset the I2C peripheral since it might be stuck busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_WARNING); - printf("reset failed: check the SDA/SCL lines and retry"); + printf("reset failed: check the SDA/SCL lines and retry\n"); busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_RESET); } else { i2c_master_setup(BUSVOODOO_I2C, busvoodoo_i2c_speed); // re-setup I2C @@ -581,6 +581,13 @@ static void busvoodoo_i2c_command_scan(void* argument) */ static void busvoodoo_i2c_command_dump8(void* argument) { + if (NULL == argument) { + busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_WARNING); + printf("slave address needed\n"); + busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_RESET); + return; + } + uint16_t address = *(uint32_t*)argument; // use argument as device address printf("reading bytes from 8-bit memory device at I2C address "); // display explanation printf((busvoodoo_i2c_addressbits > 7) ? "%+03x\n" : "%+02x\n", address); // display address