Victor Samilenko Опубликовано 21 сентября, 2020 Поделиться Опубликовано 21 сентября, 2020 (изменено) Пытаюсь прошить, не говоря уже о дебаге, китайский stm32F103C8T6 китайским st-link'om, но вылетают ошибки то: при Debug probe - ST-LINK (OpenOCD) Warn : UNEXPECTED idcode: 0x2ba01477 Error: expected 1 of 1: 0x1ba01477 при Debug probe - ST-LINK (ST-LINK GDB server) Vendor = 0x3B Error in initializing ST-LINK device. Reason: ST-LINK: Could not verify ST device! Abort connection. в stm32f1x.cfg менял 0x1ba01477 на 0x2ba01477 в if { [info exists CPUTAPID] } { set _CPUTAPID $CPUTAPID } else { if { [using_jtag] } { # See STM Document RM0008 Section 26.6.3 set _CPUTAPID 0x3ba00477 } { # this is the SW-DP tap id not the jtag tap id set _CPUTAPID 0x1ba01477 } } Сам ST-LINK апгрейдил до последней версии, джамперы как только не ставил, хотя и не нашел в каком положении они должны быть st-info --probe Found 1 stlink programmers serial: 3f3f050010134753384c4e00 hla-serial: "\x3f\x3f\x05\x00\x10\x13\x47\x53\x38\x4c\x4e\x00" flash: 131072 (pagesize: 1024) sram: 20480 chipid: 0x0410 descr: F1xx Medium-density Через STM32 CubeProgrammer все шьется отлично, но хотелось бы как то прям из идеи и что бы с дебагом Изменено 21 сентября, 2020 пользователем Victor Samilenko 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
mail_robot Опубликовано 21 сентября, 2020 Поделиться Опубликовано 21 сентября, 2020 под виндой не пробовал? 0 Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух Ссылка на комментарий Поделиться на другие сайты Поделиться
20% скидка на весь каталог электронных компонентов в ТМ Электроникс!Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!Перейти на страницу акции Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
Victor Samilenko Опубликовано 21 сентября, 2020 Автор Поделиться Опубликовано 21 сентября, 2020 (изменено) 2 часа назад, mail_robot сказал: /////////////////// К винде пока доступа нет, как только найду попробую Изменено 21 сентября, 2020 пользователем Falconist 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторовОбязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей. Подробнее>>Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
Victor Samilenko Опубликовано 21 сентября, 2020 Автор Поделиться Опубликовано 21 сентября, 2020 Под виндой все заработало, но хотелось бы разобраться где собака зарыта с MacOS 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
tar Опубликовано 21 сентября, 2020 Поделиться Опубликовано 21 сентября, 2020 7 часов назад, Victor Samilenko сказал: ытаюсь прошить, не говоря уже о дебаге, китайский stm32F103C8T6 китайским st-link'om, но вылетают ошибки то Под мак успешно настроил VSCode работает и прошивка и дебаг Если коротко то делается это так: Ставится brew Потом через brew ставится openOCD GNU Arm Embedded Toolchain После этого в VSCode ставится https://marketplace.visualstudio.com/items?itemName=bmd.stm32-for-vscode Там же в описании написано как нужно генерить проект и дополнительные плагины для работы (типа Cortex-Debug extension) Потом суть в том что нужно найти targets и конфиги для программатора, они лежат что то типа в /usr/local/share/openOCD или как то так и скопировать их себе в проект и настроить проект правильно Желательно найти гайд как это все сделать. Но я могу точно сказать что эта связка работает и работает хорошо вместе с дебагером 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Clor Опубликовано 9 ноября, 2020 Поделиться Опубликовано 9 ноября, 2020 (изменено) https://community.st.com/s/question/0D50X0000BUjpxv/error-in-initializing-stlink-device-reason-18-could-not-verify-st-device-abort-connection Цитата Yes, hate the blue pill with clone MCU on it. In my case I have a CKS32F103… instead of STM32F103… However, if you do end up with one, there is a way to get it working with OpenOCD. >> 1. Use OpenOCD as your debugger (GDB will not work) 2. Find the config file : stm32f1x.cfg Location is similar to this : >> C:\ST\STM32CubeIDE_1.3.0\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.debug.openocd_1.3.0.202002181050\resources\openocd\st_scripts\target 3. Add the following near the top of stm32f1x.cfg (before the first If – statement): set CPUTAPID 0 The zero tells OpenOCD to ignore id numbers, which means all clones or genuine MCUs will work. 4. Save the changes. Now your flash and debug should work. Note: If you change to OpenOCD without changing “stm32f1x.cfg”, you will get the following Error: “UNEXPECTED idcode: 0x2ba01477…. Expected: 0x1ba01477”, and you will again be stuck. Information Source: http://openocd.org/doc/html/TAP-Declaration.html#TAP-Declaration-Commands Я так понимаю вы проверку вендера не отключили. # script for stm32f1x family # # stm32 devices support both JTAG and SWD transports. # source [find target/swj-dp.tcl] source [find mem_helper.tcl] #set CPUTAPID 0 <<ТУТ! if { [info exists CHIPNAME] } { set _CHIPNAME $CHIPNAME } else { set _CHIPNAME stm32f1x } if { [info exists CORE_RESET] } { set _CORE_RESET $CORE_RESET } else { set _CORE_RESET 0 } if { [info exists CONNECT_UNDER_RESET] } { set _CONNECT_UNDER_RESET $CONNECT_UNDER_RESET } else { set _CONNECT_UNDER_RESET 0 } if { [info exists ENABLE_LOW_POWER] } { set _ENABLE_LOW_POWER $ENABLE_LOW_POWER } else { set _ENABLE_LOW_POWER 0 } if { [info exists STOP_WATCHDOG] } { set _STOP_WATCHDOG $STOP_WATCHDOG } else { set _STOP_WATCHDOG 0 } set _ENDIAN little # Work-area is a space in RAM used for flash programming # By default use 4kB (as found on some STM32F100s) if { [info exists WORKAREASIZE] } { set _WORKAREASIZE $WORKAREASIZE } else { set _WORKAREASIZE 0x1000 } #jtag scan chain if { [info exists CPUTAPID] } { set _CPUTAPID $CPUTAPID } else { if { [using_jtag] } { # See STM Document RM0008 Section 26.6.3 set _CPUTAPID 0x3ba00477 } { # this is the SW-DP tap id not the jtag tap id set _CPUTAPID 0x1ba01477 } } swj_newdap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID set _TARGETNAME $_CHIPNAME.cpu dap create $_CHIPNAME.dap -chain-position $_TARGETNAME target create $_TARGETNAME cortex_m -endian $_ENDIAN -dap $_CHIPNAME.dap -ap-num 0 $_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 1 # flash size will be probed set _FLASHNAME $_CHIPNAME.flash flash bank $_FLASHNAME stm32f1x 0x08000000 0 0 0 $_TARGETNAME # check for second flash bank if { [regexp -nocase {stm32f101.g..} $_CHIPNAME] || [regexp -nocase {stm32f101.f..} $_CHIPNAME] || [regexp -nocase {stm32f103.g..} $_CHIPNAME] || [regexp -nocase {stm32f103.f..} $_CHIPNAME] } { # STM32F101/103xG 1Mo & STM32F101/103xF 768K have a dual bank flash (XL family). # Add the second flash bank. set _FLASHNAME $_CHIPNAME.flash1 flash bank $_FLASHNAME stm32f1x 0x08080000 0 0 0 $_TARGETNAME } if { [info exists CLOCK_FREQ] } { set _CLOCK_FREQ $CLOCK_FREQ } else { set _CLOCK_FREQ 4000 } adapter speed $_CLOCK_FREQ adapter srst delay 100 if {[using_jtag]} { jtag_ntrst_delay 100 } if {![using_hla]} { global _CORE_RESET if { [expr ($_CORE_RESET == 1)] } { # Only resetting Core cortex_m reset_config vectreset } else { # if srst is not fitted use SYSRESETREQ to # perform a soft reset cortex_m reset_config sysresetreq } } $_TARGETNAME configure -event examine-end { global _ENABLE_LOW_POWER global _STOP_WATCHDOG if { [expr ($_ENABLE_LOW_POWER == 1)] } { # Enable debug during low power modes (uses more power) # DBGMCU_CR |= DBG_STANDBY | DBG_STOP | DBG_SLEEP mmw 0xE0042004 0x00000007 0 } if { [expr ($_ENABLE_LOW_POWER == 0)] } { # Disable debug during low power modes # DBGMCU_CR |= ~(DBG_STANDBY | DBG_STOP | DBG_SLEEP) mmw 0xE0042004 0 0x00000007 } if { [expr ($_STOP_WATCHDOG == 1)] } { # Stop watchdog counters during halt # DBGMCU_CR |= DBG_WWDG_STOP | DBG_IWDG_STOP mmw 0xE0042004 0x00000300 0 } if { [expr ($_STOP_WATCHDOG == 0)] } { # Don't stop watchdog counters during halt # DBGMCU_CR |= ~(DBG_WWDG_STOP | DBG_IWDG_STOP) mmw 0xE0042004 0 0x00000300 } } $_TARGETNAME configure -event reset-init { global _CLOCK_FREQ adapter speed $_CLOCK_FREQ } $_TARGETNAME configure -event gdb-attach { global _CONNECT_UNDER_RESET # Needed to be able to use the connect_assert_srst in reset_config # otherwise, wrong value when reading device flash size register if { [expr ($_CONNECT_UNDER_RESET == 1)] } { reset init } } $_TARGETNAME configure -event trace-config { # Set TRACE_IOEN; TRACE_MODE is set to async; when using sync # change this value accordingly to configure trace pins # assignment mmw 0xE0042004 0x00000020 0 } $_TARGETNAME configure -event gdb-detach { # to close connection if debug mode entered shutdown } Изменено 9 ноября, 2020 пользователем Clor 0 Аудиофилы настолько суровы что их наушники мешают спать соседям. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.