PY32F002A (и другие от PUYA)- чудо микроконтроллер

ну так ты и reset на GPIO переключать не пробовал, через байты конфигурации, тут:

Ну давай)) ,трынди))
Он не отстанет, пока не поймет как RST с SWD вяжется, и зачем.

Я пробовал, дальше что?
Ты, это, 24 вольта подай, все наладится…

Картинку что stm32cubeprogrammer не видит мк вижу периодически, то в сон криво заведу, то в вечный цикл то ещё где нибудь кривыми руками в регистры запишу.
Лечится ловким многократным нажатием на reset с мгновенным нажатием на Connect в программе.

Я, в таких случаях, перевожу контроллер в режим заводского загрузчика. BOOT0 подтянуть к Vcc перед подачей питания. А из под заводского загрузчика подключаюсь программатором и чищу флэш и не нужно тренировать реакцию.

Если речь идет про STM32, то не нужно ничего “тренировать”. Просто нажимаем Reset, а потом подключаем МК к ПК и отпускаем Reset. Все. ))

Речь про STM, когда купил свою первую блюпилл, первым же проектом заблокировал отладочный интерфейс, классическая ошибка новичков. Так вот, фокус с ресетом получился, но получился не спервого раза и даже не с десятого. А с заводким загрузчиком получается сразу.

Если в утилите ST-Link установить опцию connect after reset, то подключиться получается после первого нажатия reset и потом можно стереть прошивку и после подключаться будет с первого раза.

Знаю, включал, и все равно нужно было на компе запустить подключение к контроллеру, а потом вовремя отпустить ресет. Чуть раньше или чуть позже и чуда не происходило.
Я ни начем не настаиваю, какдый делает как ему удобно и привычно.

забудь, reset у нас нету

перевода в заводской загрузчик тоже нету )))

мы пока еще ни байта кода не написали, только подготовили пин к использованию

есть команды SWD, не в жисть не поверю, что разработчик не продумал этот вопрос, будем разбираться…
Так интересно…напомнило, как Цербер ломал )))

PS для начала понять, какие команды и для чего катайцы написали:

> py32f003 list
py32f003
  py32f003 lock bank_id
  py32f003 mass_erase bank_id
  py32f003 options_load bank_id
  py32f003 options_read bank_id
  py32f003 options_write ('OPTR' optr_data) ('SDKR' sdkr_data) ('WRPR'
            wrpr_data)
  py32f003 unlock bank_id
py32f003.cpu
  py32f003.cpu arm
    py32f003.cpu arm core_state ['arm'|'thumb']
    py32f003.cpu arm disassemble address [count ['thumb']]
    py32f003.cpu arm semihosting ['enable'|'disable']
    py32f003.cpu arm semihosting_basedir [dir]
    py32f003.cpu arm semihosting_cmdline arguments
    py32f003.cpu arm semihosting_fileio ['enable'|'disable']
    py32f003.cpu arm semihosting_read_user_param
    py32f003.cpu arm semihosting_redirect (disable | tcp <port>
              ['debug'|'stdio'|'all'])
    py32f003.cpu arm semihosting_resexit ['enable'|'disable']
  py32f003.cpu arp_examine ['allow-defer']
  py32f003.cpu arp_halt
  py32f003.cpu arp_halt_gdb
  py32f003.cpu arp_poll
  py32f003.cpu arp_reset
  py32f003.cpu arp_waitstate
  py32f003.cpu array2mem arrayname bitwidth address count
  py32f003.cpu cget target_attribute
  py32f003.cpu configure [target_attribute ...]
  py32f003.cpu cortex_m
    py32f003.cpu cortex_m maskisr ['auto'|'on'|'off'|'steponly']
    py32f003.cpu cortex_m reset_config ['sysresetreq'|'vectreset']
    py32f003.cpu cortex_m vector_catch
              ['all'|'none'|('bus_err'|'chk_err'|...)*]
  py32f003.cpu curstate
  py32f003.cpu eventlist
  py32f003.cpu examine_deferred
  py32f003.cpu get_reg list
  py32f003.cpu invoke-event event_name
  py32f003.cpu itm
    py32f003.cpu itm port <port> (0|1|on|off)
    py32f003.cpu itm ports (0|1|on|off)
  py32f003.cpu mdb address [count]
  py32f003.cpu mdd address [count]
  py32f003.cpu mdh address [count]
  py32f003.cpu mdw address [count]
  py32f003.cpu mem2array arrayname bitwidth address count
  py32f003.cpu mwb address data [count]
  py32f003.cpu mwd address data [count]
  py32f003.cpu mwh address data [count]
  py32f003.cpu mww address data [count]
  py32f003.cpu read_memory address width count ['phys']
  py32f003.cpu rtt
    py32f003.cpu rtt channellist
    py32f003.cpu rtt channels
    py32f003.cpu rtt polling_interval [interval]
    py32f003.cpu rtt setup <address> <size> <ID>
    py32f003.cpu rtt start
    py32f003.cpu rtt stop
  py32f003.cpu set_reg dict
  py32f003.cpu tpiu
    py32f003.cpu tpiu config (disable | ((external | internal (<filename> |
              <:port> | -)) (sync <port width> | ((manchester | uart)
              <formatter enable>)) <TRACECLKIN freq> [<trace freq>]))
  py32f003.cpu was_examined
  py32f003.cpu write_memory address width data ['phys']
py32f003.dap
  py32f003.dap apcsw [value [mask]]
  py32f003.dap apid [ap_num]
  py32f003.dap apreg ap_num reg [value]
  py32f003.dap apsel [ap_num]
  py32f003.dap baseaddr [ap_num]
  py32f003.dap dpreg reg [value]
  py32f003.dap info [ap_num | 'root']
  py32f003.dap memaccess [cycles]
  py32f003.dap nu_npcx_quirks [enable]
  py32f003.dap ti_be_32_quirks [enable]


Какую то хрень пишите, сначала про stm32 и nRST, теперь py32.
И да, reset есть всегда до запуска софта в мк.

“так он же Болгарин…а какая разница” (c) Брат

обморок, ответь, себе, на вопрос - как связан пин nRST и отладка/программирование.
если ты еще не выучил китайский, вот тебе перевод

ты на дурачка косишь или и есть? SOP8L1!

и что с ним не так?
про дурачка и кто как косить умеет, мы с тобой потом поговорим.

  • Alternatives to SRST:

In cases where SRST is not available (e.g., on some JTAG adapters or when selective reset of multiple targets on a scan chain is required), OpenOCD can still achieve a reset by using JTAG commands or by triggering a software reset (e.g., for Cortex-M targets, an NVIC reset).

  • Альтернативы SRST:

В случаях, когда SRST недоступен (например, на некоторых адаптерах JTAG или когда требуется выборочный сброс нескольких целей в цепочке сканирования), OpenOCD все равно может выполнить сброс с помощью команд JTAG или путем запуска программного сброса (например, для целей Cortex-M сброс NVIC).

Осталось найти как именно

ты можешь напрячься, выключить катушку и сформулировать членораздельно свой вопрос?

изначально он звучал так

тебе попытались разжевать - без него, так же как и с ним.
он не участвует в процессе отладки и программирования.

мы же про stm32 говорим)))
на основании этого

и этого

пока ты там тужишься, еще тебе историю про nRST пин расскажу.
если его превратить в I/O GPIO с помощью option byte и не дай бог притянуть к земле, после передергивания питания запуска МК не будет.
во как))

Ужость!

Хорошо, хоть не на ночь сказано.

сначала не вник, ща сам перечитал и засмеялся.