linux - 如何在 Linux 上从 STM32WB55 Nucleo Pack 闪存 MB1355C 和/或 MB1293C?
问题描述
我想在我的(Ubuntu 18.04.3 LTS)机器上使用STM32WB55 Nucleo Pack对(MB1355C 和/或 MB1293C)设备进行编程 - 最好使用支持调试功能的基于 Eclipse 的 IDE 的便利性。
我安装了
- STM32CubeProgrammer(2.2.1版)
- Atolic TrueStudio(版本 9.3.0)
- STM32CubeIDE(1.1.0版)
我现在有以下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 建议的更改,但似乎未检测到开发板
我该如何着手解决这个问题并对电路板进行编程?
欢迎调试想法或建议,即使它们尚未经过测试......
解决方案
正如 KamilCuk 所建议的那样,这只是一个权限问题
启动TrueStudio
为root
然后单击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
不是必需的。
推荐阅读
- shell - 循环打印文件名完整路径的shell脚本
- php - 我怎样才能干掉这个 php
- typescript - TypeScript - 在类型中存储元数据子类型而不影响类型
- java - Maven 找不到 JSON 依赖
- spring-boot - 构建器功能无法在 Spring Boot 的帮助下在 websocket 服务中实现
- postgresql - 在postgres中将整数附加到整数数组
- visual-studio-code - vscode mustache formatter 使用哪一个作为扩展名
- java - INSTALL_FAILED_NO_MATCHING_ABIS (什么会导致这个)
- java - 不叫 Mockito 间谍
- kotlin - 无法观察可变实时数据列表中的变化