烧录AT32
# 安装pyocd
```
pip install pyocd
```
# 下载AT的包
[雅特力pack包下载地址](https://www.arterytek.com/cn/support/index.jsp)
下载这个 -> pack -> 支持AT32 MCU型号于Keil5 MDK运行
# 添加路径
解压好后, 在~/.bashrc里添加路径, 对应型号对应包
```
export AT32F405_DFP_PACK_FILE="xxx/Keil5_AT32MCU_AddOn_V2.4.2_ZH/ArteryTek.AT32F402_405_DFP.2.1.1.pack"
```
# 操作芯片
操作时, 在指令后面添加 --pack=$AT32F405_DFP_PACK_FILE, 例如
```
pyocd list --targets --pack=$AT32F405_DFP_PACK_FILE
pyocd flash -t at32f405cbt7 build/*.hex --pack=$AT32F405_DFP_PACK_FILE
```
# 自己的操作
1. 拷贝key, key里define开启, 关掉if 1, 编译A.hex放一边, 烧录A.hex
2. 关闭keydefine, 开启if 1, 编译正式app, 烧录
# 20250515
方法1:
1. 普通烧录bl
2. 开key, if 0, stlink编译烧录
3. 关key, if 1, stlink编译烧录
方法2:
1. 普通烧录bl
2. 开key, if 1, stlink编译烧录(可以编译完长期不改, 放一边)
3. 关key, if 1, cdbus gui 烧录_e
# 新电脑配置udev规则
20251211
新电脑识别得到stlink, 但是烧录不了, 需要配置一下udev
执行以下指令看一下设备
```
lsusb
->
jax@jax-pc:~$ lsusb
Bus 003 Device 011: ID 0483:3748 STMicroelectronics ST-LINK/V2
```
再执行
```
ll /dev/bus/usb/003/011
->
crw-rw-rw- 1 root root 189, 266 Dec 11 16:13 /dev/bus/usb/003/011
```
发现属组(group)不是 plugdev, 添加udev规则
```
vim /etc/udev/rules.d/99-stlink.rules
```
添加以下内容
```
SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="3748", MODE="0664", GROUP="plugdev"
```
重新载入规则
```
sudo udevadm control --reload-rules
sudo udevadm trigger
```
重新拔插, 会发现属组变了
```
crw-rw-rw- 1 root plugdev 189, 266 Dec 11 16:13 /dev/bus/usb/003/011
```
然后就可以烧录了
ps: 但是我可以烧录的老电脑, 插入之后属组并不是plugdev, 不知道为什么, 可能之前是通过别的方法配置的, 先不管了
评论
发表评论