ST意法半导体
直播中

klysa

13年用户 1273经验值
私信 关注
[问答]

使用CLI编程器编程选项字节后内核被锁定怎么解决?

我在定制板上使用 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
但它也锁定了核心。







回帖(1)

陈桂平

2022-12-14 14:04:10
当芯片配置为 RDP1 或 RDP2 时,*任何*尝试通过 JTAG/SWI 访问都会锁定内核。这是设计使然,这就是 RDP1/2 防止外部访问闪存和 RAM 的方式。程序员在重置后尝试访问芯片,这会触发锁定。这是正常行为。在对 RDP1 或 RDP2 进行编程后,您始终需要重启电源。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分