diff --git a/system/spi/spi_common.c b/system/spi/spi_common.c index 0f9cc4dba..906b4d1f0 100644 --- a/system/spi/spi_common.c +++ b/system/spi/spi_common.c @@ -192,7 +192,7 @@ int spitool_common_args(FAR struct spitool_s *spitool, FAR char **arg) case 'w': ret = arg_decimal(arg, &value); - if (value != 8 && value != 16) + if (value != 8 && value != 16 && value != 32) { goto out_of_range; } diff --git a/system/spi/spi_exch.c b/system/spi/spi_exch.c index 4d8d10c8f..31db5d83e 100644 --- a/system/spi/spi_exch.c +++ b/system/spi/spi_exch.c @@ -124,10 +124,14 @@ int spicmd_exch(FAR struct spitool_s *spitool, int argc, FAR char **argv) { spitool_printf(spitool, "%02X ", txdata[d]); } - else + else if (spitool->width <= 16) { spitool_printf(spitool, "%04X ", ((uint16_t *)txdata)[d]); } + else + { + spitool_printf(spitool, "%08" PRIX32 " ", ((uint32_t *)txdata)[d]); + } } spitool_printf(spitool, "\n"); @@ -175,10 +179,14 @@ int spicmd_exch(FAR struct spitool_s *spitool, int argc, FAR char **argv) { spitool_printf(spitool, "%02X ", rxdata[d]); } - else + else if (spitool->width <= 16) { spitool_printf(spitool, "%04X ", ((uint16_t *)rxdata)[d]); } + else + { + spitool_printf(spitool, "%08" PRIX32 " ", ((uint32_t *)rxdata)[d]); + } } spitool_printf(spitool, "\n");