doc: improve documentation of examples/tos_meets_rust
This commit is contained in:
182
examples/tos_meets_rust/docs/stlink.md
Normal file
182
examples/tos_meets_rust/docs/stlink.md
Normal file
@@ -0,0 +1,182 @@
|
||||
# ST-LINK 驱动安装
|
||||
|
||||
- 连接 ST-LINK (STv2) 和开发板
|
||||
|
||||
STv2 上有一个示意图标有各个 Pin 的含义, Pin 周围有一个缺口,
|
||||
缺口对应的一排 Pin 对应与示意图外侧的一列, STv2 和开发板接口连接对应关系如下表所示.
|
||||
|
||||
|STv2 接口 |开发板接口 |
|
||||
| ------------- |-------------|
|
||||
| 3.3v | 3v3 |
|
||||
| SWDIO | DIO |
|
||||
| SWCLK | CLK |
|
||||
| GND | GND |
|
||||
|
||||
- 安装 STv2 驱动
|
||||
|
||||
ST-LINK 的驱动源码地址为 https://github.com/stlink-org/stlink
|
||||
|
||||
安装编译依赖
|
||||
|
||||
- ubuntu
|
||||
|
||||
sudo apt install clang build-essential cmake libusb-1.0-0 libusb-1.0-0-dev
|
||||
|
||||
- archlinux
|
||||
|
||||
sudo pacman -S cmake libusb clang
|
||||
|
||||
下载源码并编译, 注意 st-link 默认分支是 develop, 这个分支上的功能是不稳定的
|
||||
|
||||
git clone https://github.com/stlink-org/stlink
|
||||
cd stlink
|
||||
git checkout v1.6.1
|
||||
|
||||
安装到 $HOME/.usr/stlink 目录中
|
||||
|
||||
make release
|
||||
cd build/Release && make install DESTDIR=$HOME/.usr/stlink
|
||||
|
||||
安装后 $HOME/.usr/stlink 结构如下
|
||||
|
||||
➜ Release git:(develop) tree ~/.usr/stlink/
|
||||
/home/m9/.usr/stlink/
|
||||
├── etc
|
||||
│ └── modprobe.d
|
||||
│ └── stlink_v1.conf
|
||||
├── lib
|
||||
│ └── udev
|
||||
│ └── rules.d
|
||||
│ ├── 49-stlinkv1.rules
|
||||
│ ├── 49-stlinkv2-1.rules
|
||||
│ ├── 49-stlinkv2.rules
|
||||
│ └── 49-stlinkv3.rules
|
||||
└── usr
|
||||
└── local
|
||||
├── bin
|
||||
│ ├── st-flash
|
||||
│ ├── st-info
|
||||
│ └── st-util
|
||||
├── include
|
||||
│ └── stlink
|
||||
│ ├── backend.h
|
||||
│ ├── chipid.h
|
||||
│ ├── commands.h
|
||||
│ ├── flash_loader.h
|
||||
│ ├── libusb_settings.h
|
||||
│ ├── logging.h
|
||||
│ ├── md5.h
|
||||
│ ├── reg.h
|
||||
│ ├── sg.h
|
||||
│ ├── stlink.h
|
||||
│ ├── stm32.h
|
||||
│ ├── usb.h
|
||||
│ └── version.h
|
||||
├── lib
|
||||
│ ├── libstlink.a
|
||||
│ ├── libstlink.so -> libstlink.so.1
|
||||
│ ├── libstlink.so.1 -> libstlink.so.1.6.1
|
||||
│ └── libstlink.so.1.6.1
|
||||
└── share
|
||||
└── man
|
||||
└── man1
|
||||
├── st-flash.1
|
||||
├── st-info.1
|
||||
└── st-util.1
|
||||
|
||||
现在需要通过 udev 设置 USB 访问权限, 进入到 stlink 源码根目录执行如下操作
|
||||
|
||||
sudo cp -a config/udev/rules.d/* /etc/udev/rules.d/
|
||||
sudo udevadm control --reload-rules
|
||||
sudo udevadm trigger
|
||||
|
||||
现在给电脑插上电路板, 使用 lsusb 查看 USB 设备, 能看到如下输出说明安装成功
|
||||
|
||||
➜ stlink git:(develop) lsusb
|
||||
...
|
||||
Bus 002 Device 013: ID 0483:3748 STMicroelectronics ST-LINK/V2
|
||||
...
|
||||
|
||||
在 shell 配置文件如 $HOME/.zshrc 中添加如下环境变量
|
||||
|
||||
STLINK=$HOME/.usr/stlink
|
||||
export PATH=${STLINK}/usr/local/bin:${PATH}
|
||||
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${STLINK}/usr/local/lib
|
||||
|
||||
刷新环境变量
|
||||
|
||||
exec $SHELL
|
||||
|
||||
更新库缓存
|
||||
|
||||
sudo ldconfig
|
||||
|
||||
然后查看板子信息
|
||||
|
||||
➜ ~ st-info --probe
|
||||
Found 1 stlink programmers
|
||||
serial: 2c5a15000b14324d434d4e00
|
||||
hla-serial: "\x2c\x5a\x15\x00\x0b\x14\x32\x4d\x43\x4d\x4e\x00"
|
||||
flash: 131072 (pagesize: 2048)
|
||||
sram: 36864
|
||||
chipid: 0x0460
|
||||
descr: G070/G071/G081
|
||||
|
||||
如果上述命令输出如下
|
||||
|
||||
Found 1 stlink programmers
|
||||
version: V2J35S7
|
||||
serial: 2C5A15000B14324D434D4E00
|
||||
flash: 0 (pagesize: 0)
|
||||
sram: 0
|
||||
chipid: 0x0000
|
||||
descr: unknown device
|
||||
|
||||
这表示无法识别 st-link 设备, 检查是否使用了 develop 分支的代码, 这个分支上的代码无法正确识别 st-link,
|
||||
切换到 v1.6.1 tag 解决问题.
|
||||
|
||||
测试文件读取
|
||||
|
||||
➜ ~ st-flash --debug read dummy.file 0 256
|
||||
st-flash 1.6.1-96-gbf41f14
|
||||
2020-09-22T23:56:45 DEBUG common.c: *** looking up stlink version
|
||||
2020-09-22T23:56:45 DEBUG common.c: st vid = 0x0483 (expect 0x0483)
|
||||
2020-09-22T23:56:45 DEBUG common.c: stlink pid = 0x3748
|
||||
2020-09-22T23:56:45 DEBUG common.c: stlink version = 0x2
|
||||
2020-09-22T23:56:45 DEBUG common.c: jtag version = 0x23
|
||||
2020-09-22T23:56:45 DEBUG common.c: swim version = 0x7
|
||||
2020-09-22T23:56:45 DEBUG common.c: stlink current mode: debug (jtag or swd)
|
||||
2020-09-22T23:56:45 DEBUG usb.c: JTAG/SWD freq set to 0
|
||||
2020-09-22T23:56:45 DEBUG common.c: *** set_swdclk ***
|
||||
2020-09-22T23:56:45 DEBUG common.c: stlink current mode: debug (jtag or swd)
|
||||
2020-09-22T23:56:45 DEBUG common.c: *** stlink_jtag_reset ***
|
||||
2020-09-22T23:56:45 DEBUG common.c: *** stlink_reset ***
|
||||
2020-09-22T23:56:45 DEBUG common.c: *** stlink_write_debug32 0x05fa0004 to 0xe000ed0c
|
||||
2020-09-22T23:56:45 DEBUG common.c: Loading device parameters....
|
||||
2020-09-22T23:56:45 DEBUG common.c: *** stlink_core_id ***
|
||||
2020-09-22T23:56:45 DEBUG common.c: core_id = 0x0bc11477
|
||||
2020-09-22T23:56:45 DEBUG common.c: *** stlink_read_debug32 0000000000 at 0xe0042000
|
||||
2020-09-22T23:56:45 DEBUG common.c: *** stlink_read_debug32 0x20006460 at 0x40015800
|
||||
2020-09-22T23:56:45 DEBUG common.c: *** stlink_read_debug32 0xffff0080 at 0x1fff75e0
|
||||
2020-09-22T23:56:45 INFO common.c: G070/G071/G081: 36 KiB SRAM, 128 KiB flash in at least 2 KiB pages.
|
||||
2020-09-22T23:56:45 DEBUG common.c: stlink current mode: debug (jtag or swd)
|
||||
2020-09-22T23:56:45 DEBUG common.c: stlink current mode: debug (jtag or swd)
|
||||
2020-09-22T23:56:45 DEBUG common.c: *** stlink_force_debug_mode ***
|
||||
2020-09-22T23:56:45 DEBUG common.c: *** stlink_status ***
|
||||
2020-09-22T23:56:45 DEBUG usb.c: core status: 00030003
|
||||
2020-09-22T23:56:45 DEBUG common.c: core status: halted
|
||||
2020-09-22T23:56:45 INFO common.c: read from address 0000000000 size 256
|
||||
2020-09-22T23:56:45 DEBUG common.c: *** stlink_read_mem32 ***
|
||||
2020-09-22T23:56:45 DEBUG common.c: data_len = 256 0x100
|
||||
68 5c 00 20 cd 00 00 08 c1 2d 00 08 c7 29 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b7 2f 00 08 00 00 00 00 00 00 00 00 25 01 00 08 b9 2f 00 08 df 00 00 08 00 00 00 00 df 00 00 08 df 00 00 08 df 00 00 08 df 00 00 08 df 00 00 08 df 00 00 08 00 00 00 00 df 00 00 08 df 00 00 08 df 00 00 08 df 00 00 08 df 00 00 08 df 00 00 08 00 00 00 00 df 00 00 08 df 00 00 08 df 00 00 08 df 00 00 08 df 00 00 08 df 00 00 08 df 00 00 08 df 00 00 08 df 00 00 08 df 00 00 08 df 00 00 08 9d 37 00 08 ad 37 00 08 bd 37 00 08 03 48 85 46 00 f0 56 fd 00 48 00 47 39 58 00 08 68 5c 00 20 04 48 80 47 04 48 00 47 fe e7 fe e7 fe e7 fe e7 fe e7 fe e7 4d 30 00 08 b9 00 00 08 72 b6 70 47 62 b6 70 47 ef f3 10 80 72 b6 70 47 80 f3 10 88 70 47 1b 48
|
||||
2020-09-22T23:56:45 DEBUG common.c: *** stlink_exit_debug_mode ***
|
||||
2020-09-22T23:56:45 DEBUG common.c: *** stlink_write_debug32 0xa05f0000 to 0xe000edf0
|
||||
2020-09-22T23:56:45 DEBUG common.c: *** stlink_close ***
|
||||
|
||||
- 虚拟机映射
|
||||
|
||||
VirtualBox 虚拟机需要将用户添加到 vboxusers 用户组
|
||||
|
||||
sudo usermod -aG vboxusers $USER
|
||||
|
||||
添加完毕后, 重启主机.
|
Reference in New Issue
Block a user