kopia lustrzana https://github.com/stlink-org/stlink
added connect under reset code
rodzic
937f4d6aea
commit
ea17f9ac77
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"cmake.configureOnOpen": false
|
||||||
|
}
|
|
@ -937,7 +937,7 @@ static stlink_backend_t _stlink_usb_backend = {
|
||||||
_stlink_usb_set_swdclk
|
_stlink_usb_set_swdclk
|
||||||
};
|
};
|
||||||
|
|
||||||
stlink_t *stlink_open_usb(enum ugly_loglevel verbose, bool reset, char serial[STLINK_SERIAL_MAX_SIZE], int freq) {
|
stlink_t *stlink_open_usb(enum ugly_loglevel verbose, int reset, char serial[STLINK_SERIAL_MAX_SIZE], int freq) {
|
||||||
stlink_t* sl = NULL;
|
stlink_t* sl = NULL;
|
||||||
struct stlink_libusb* slu = NULL;
|
struct stlink_libusb* slu = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
@ -1145,9 +1145,10 @@ stlink_t *stlink_open_usb(enum ugly_loglevel verbose, bool reset, char serial[ST
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (reset == 2) stlink_jtag_reset(sl,0);
|
||||||
if (stlink_current_mode(sl) != STLINK_DEV_DEBUG_MODE) stlink_enter_swd_mode(sl);
|
if (stlink_current_mode(sl) != STLINK_DEV_DEBUG_MODE) stlink_enter_swd_mode(sl);
|
||||||
|
|
||||||
if (reset) {
|
if (reset == 1) {
|
||||||
if ( sl->version.stlink_v > 1) stlink_jtag_reset(sl, 2);
|
if ( sl->version.stlink_v > 1) stlink_jtag_reset(sl, 2);
|
||||||
stlink_reset(sl);
|
stlink_reset(sl);
|
||||||
usleep(10000);
|
usleep(10000);
|
||||||
|
|
|
@ -68,7 +68,7 @@ extern "C" {
|
||||||
* @retval NULL Error while opening the stlink
|
* @retval NULL Error while opening the stlink
|
||||||
* @retval !NULL Stlink found and ready to use
|
* @retval !NULL Stlink found and ready to use
|
||||||
*/
|
*/
|
||||||
stlink_t *stlink_open_usb(enum ugly_loglevel verbose, bool reset, char serial[STLINK_SERIAL_MAX_SIZE], int freq);
|
stlink_t *stlink_open_usb(enum ugly_loglevel verbose, int reset, char serial[STLINK_SERIAL_MAX_SIZE], int freq);
|
||||||
size_t stlink_probe_usb(stlink_t **stdevs[]);
|
size_t stlink_probe_usb(stlink_t **stdevs[]);
|
||||||
void stlink_probe_usb_free(stlink_t **stdevs[], size_t size);
|
void stlink_probe_usb_free(stlink_t **stdevs[], size_t size);
|
||||||
|
|
||||||
|
|
23
tests/usb.c
23
tests/usb.c
|
@ -1,15 +1,32 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#include <stlink.h>
|
#include <stlink.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
static void usage(void)
|
||||||
|
{
|
||||||
|
puts("test-usb --reset");
|
||||||
|
puts("test-usb --no-reset");
|
||||||
|
}
|
||||||
|
|
||||||
int main(int ac, char** av) {
|
int main(int ac, char** av) {
|
||||||
(void)ac;
|
|
||||||
(void)av;
|
|
||||||
|
|
||||||
stlink_t* sl;
|
stlink_t* sl;
|
||||||
struct stlink_reg regs;
|
struct stlink_reg regs;
|
||||||
|
int reset = 0;
|
||||||
|
|
||||||
sl = stlink_open_usb(10, 1, NULL, 0);
|
if (ac == 2) {
|
||||||
|
if (strcmp(av[1], "--reset") == 0)
|
||||||
|
reset = 2;
|
||||||
|
if (strcmp(av[1], "--no-reset") == 0)
|
||||||
|
reset = 1;
|
||||||
|
}
|
||||||
|
if (reset == 0) {
|
||||||
|
usage();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
sl = stlink_open_usb(10, reset, NULL, 0);
|
||||||
if (sl != NULL) {
|
if (sl != NULL) {
|
||||||
printf("-- version\n");
|
printf("-- version\n");
|
||||||
stlink_version(sl);
|
stlink_version(sl);
|
||||||
|
|
Ładowanie…
Reference in New Issue