#include <sys/types.h>
#include "stlink-common.h"
+#define DEBUG_LOG_LEVEL 100
+#define STND_LOG_LEVEL 50
+
enum st_cmds {DO_WRITE = 0, DO_READ = 1, DO_ERASE = 2};
struct opts
{
stm32_addr_t addr;
size_t size;
int reset;
+ int log_level;
};
static void usage(void)
{
- puts("stlinkv1 command line: ./flash [--reset] {read|write} /dev/sgX path addr <size>");
- puts("stlinkv1 command line: ./flash /dev/sgX erase");
- puts("stlinkv2 command line: ./flash [--reset] {read|write} path addr <size>");
- puts("stlinkv2 command line: ./flash erase");
+ puts("stlinkv1 command line: ./flash [--debug] [--reset] {read|write} /dev/sgX path addr <size>");
+ puts("stlinkv1 command line: ./flash [--debug] /dev/sgX erase");
+ puts("stlinkv2 command line: ./flash [--debug] [--reset] {read|write} path addr <size>");
+ puts("stlinkv2 command line: ./flash [--debug] erase");
puts(" use hex format for addr and <size>");
}
if (ac < 1) return -1;
+ if (strcmp(av[0], "--debug") == 0)
+ {
+ o->log_level = DEBUG_LOG_LEVEL;
+ ac--;
+ av++;
+ }
+ else
+ {
+ o->log_level = STND_LOG_LEVEL;
+ }
+
if (strcmp(av[0], "--reset") == 0)
{
o->reset = 1;
if (o.devname != NULL) /* stlinkv1 */
{
- sl = stlink_v1_open(50, 1);
+ sl = stlink_v1_open(o.log_level, 1);
if (sl == NULL) goto on_error;
- sl->verbose = 50;
+ sl->verbose = o.log_level;
}
else /* stlinkv2 */
{
- sl = stlink_open_usb(50, 1);
+ sl = stlink_open_usb(o.log_level, 1);
if (sl == NULL) goto on_error;
- sl->verbose = 50;
+ sl->verbose = o.log_level;
}
if (stlink_current_mode(sl) == STLINK_DEV_DFU_MODE)