首页 > 解决方案 > 如何在 Linux 上从 STM32WB55 Nucleo Pack 闪存 MB1355C 和/或 MB1293C?

问题描述

我想在我的(Ubuntu 18.04.3 LTS)机器上使用STM32WB55 Nucleo Pack对(MB1355C 和/或 MB1293C)设备进行编程 - 最好使用支持调试功能的基于 Eclipse 的 IDE 的便利性。

我安装了

我现在有以下udev rules

chandran@chandran-OptiPlex-9020:~$ ll /etc/udev/rules.d/
total 160
drwxr-xr-x 2 root root  4096 Dec 13 14:11  ./
drwxr-xr-x 4 root root  4096 Dec  4 13:44  ../
-rw-rw-r-- 1 root root   270 Oct 14 18:10  49-stlinkv1.rules
-rw-rw-r-- 1 root root   270 Oct 14 18:10  49-stlinkv1.rules.O
-rw-rw-r-- 1 root root   464 Oct 14 18:10  49-stlinkv2-1.rules
-rw-rw-r-- 1 root root   464 Oct 14 18:10  49-stlinkv2-1.rules.O
-rw-rw-r-- 1 root root   278 Oct 14 18:10  49-stlinkv2.rules
-rw-rw-r-- 1 root root   278 Oct 14 18:10  49-stlinkv2.rules.O
-rw-r--r-- 1 root root   458 Dec 11 17:26  49-stlinkv3loader.rules
-rw-rw-r-- 1 root root   845 Oct 14 18:10  49-stlinkv3.rules
-rw-rw-r-- 1 root root   845 Oct 14 18:10  49-stlinkv3.rules.O
-rw-r--r-- 1 root root   381 Dec  6 17:10 '#61-msp430uif.rules#'
-rw-r--r-- 1 root root   381 Dec  4 15:09  61-msp430uif.rules
-rwxr-xr-x 1 root root  2145 Dec  4 15:09  70-mm-no-ti-emulators.rules*
-rw-r--r-- 1 root root 58549 Dec  4 12:29  70-snap.core.rules
-rw-r--r-- 1 root root    79 Dec  5 12:11  77-msp430-blacklist.rules
-rw-r--r-- 1 root root     0 Dec  5 12:10  77-msp430-blacklist.rules~
-rw-rw-r-- 1 root root 18450 Oct 14 17:33  99-jlink.rules
-rw-rw-r-- 1 root root 18450 Oct 14 17:33  99-jlink.rules.O

我在拨出组中

chandran@chandran-OptiPlex-9020:~$ groups chandran
chandran : chandran adm dialout cdrom sudo dip plugdev lpadmin sambashare

我下载了一个名为的示例项目STM32100E-EVAL_USART_IrDA_Transmit并成功构建,但是当我连接评估板并单击debug以刷新微控制器时收到以下错误消息

ST-Link enumeration failed
Error in initializing ST-Link device.
Reason: (2) ST-Link DLL error.

当我使用 STM32CubeIDE 尝试上述操作时,我收到了相同的错误消息。

我已尝试按照用户手册JP1第 7.6 节所述进行换档,但无济于事。

先前关于堆栈溢出的问题处理相同的错误消息,因此我启动了 STM32CubeProgrammer并尝试进行@IsaBostan 建议的更改,但似乎未检测到开发板

在此处输入图像描述

我该如何着手解决这个问题并对电路板进行编程?

欢迎调试想法或建议,即使它们尚未经过测试......

标签: linuxlinux-device-driverstm32nucleo

解决方案


正如 KamilCuk 所建议的那样,这只是一个权限问题

启动TrueStudioroot然后单击debug解决了问题。

这是在我的机器上工作的:

sudo su
/opt/Atollic_TrueSTUDIO_for_STM32_x86_64_9.3.0/ide/./TrueSTUDIO

STM32CubeIDE 的调试器在我的机器上按如下方式启动时也可以工作:

sudo su
/opt/st/stm32cubeide_1.1.0/./stm32cubeide

STM32CubeProgrammer 在启动时会立即连接到设备,如下所示:

sudo su
/usr/local/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin/./STM32CubeProgrammer

我的设备显示在/dev/ttyACM0以下权限下:

crw-rw----+ 1 root dialout 166, 0 Dec 28 11:56 ttyACM0

openocd并且st-flash不是必需的。


推荐阅读