我在定制板上使用
STM32L412。
我有一个用于我们生产的编程脚本,它调用 STM32_Programmer_CLI.exe 来下载十六进制文件以及一些参数来对选项字节进行编程:
- STM32_Programmer_CLI.exe -c port=SWD freq=24000 mode=PowerDown -d example.hex -v -ob SRAM2_PE=0 SRAM2_RST=0 BOR_LEV=1 WRP1A_STRT=0x0 WRP1A_END=0x3d RDP=0xBB -ob displ -rst -score
一切正常,选项字节显示正确,但最后它说:
- MCU Reset
- Software reset is performed
- Core is locked up
设备坏了。只有
电源循环有助于解决这个问题。
有没有人知道我在这里做错了什么?我已经尝试了一些不同的重置或运行命令,但没有任何帮助。设备保持锁定状态。
我想,问题在于设置读出保护。
我试图在启动时在固件中设置选项字节,当我设置 OBL_LAUNCH 位时,我也得到了一个锁或者系统似乎在系统内存中启动,因为 PC 寄存器类似于 0x1FFF2xxx。但我不确定。
这不是一个真正的大问题,因为电源循环解决了它,但想了解我做错了什么或者它是否是芯片的“功能”。
运行上面的脚本后我也试过这个
- STM32_Programmer_CLI.exe -c port=SWD freq=24000 mode=PowerDown -ob displ -rst -score
但它也锁定了核心。