Перейти к содержанию

Прошивка stm 32 blue pill вместе с st-link v2 в CubeIDE под Mac OS catalina


Victor Samilenko

Рекомендуемые сообщения

Пытаюсь прошить, не говоря уже о дебаге, китайский 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 все шьется отлично, но хотелось бы как то прям из идеи и что бы с дебагом

IMG_3781_1.jpg

Изменено пользователем Victor Samilenko
Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

2 часа назад, mail_robot сказал:

///////////////////

К винде пока доступа нет, как только найду попробую

Изменено пользователем Falconist
Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

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 или как то так и скопировать их себе в проект и настроить проект правильно

Желательно найти гайд как это все сделать. Но я могу точно сказать что эта связка работает и работает хорошо вместе с дебагером

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

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
}

 

Изменено пользователем Clor

Аудиофилы настолько суровы что их наушники мешают спать соседям.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...