TL;DR:文档说明我必须先在微控制器中启用特定的内存区域,然后才能使用它。但是,我可以在启用它之前使用它,甚至可以在禁用它之后使用它。这怎么可能?
我目前正在为 STM32H743 微控制器开发一个应用程序。我不明白当时钟被禁用时 RAM 似乎如何正常工作。
该 MCU 具有多个存储器,分布在多个电源域中:
我想使用SRAM1。在参考手册 ( RM0433 Rev. 7) 中,第 366 页指出:
如果 CPU 要使用位于 D2 域(SRAM1、SRAM2 和 SRAM3)中的存储器,则必须启用它们。
在第 452 页的寄存器设置中描述了如何执行此操作:
RCC AHB2 时钟寄存器(RCC_AHB2ENR):
SRAM1EN: SRAM1 块使能
由软件置位和复位。置位时,该位表示 SRAM1 由 CPU 分配。它使 D2 …
在 STM32CubeProgrammer 尝试连接到 STM32H7B3LI 上的 ST-Link 模块时,我得到以下信息:
ST-LINK error (DEV_CONNECT_ERR)
Error: Problem occurred while trying to connect
Run Code Online (Sandbox Code Playgroud)
我已经尝试在这里安装固件,但没有帮助:https ://www.st.com/en/development-tools/stsw-link007.html
更新:我跳过了固件安装过程中的必要步骤。但是,我想连接,因为由于软件扰乱电源设置,主板拒绝通过其他方式连接,因此出现另一个错误:
16:54:40 : ST-LINK SN : 0035002E3438510534313939
16:54:40 : ST-LINK FW : V3J8M3
16:54:40 : Board : STM32H7B3I-DK
16:54:40 : Voltage : 3.28V
16:54:41 : ST-LINK error (DEV_CONNECT_ERR)
16:54:41 : ST-LINK SN : 0035002E3438510534313939
16:54:41 : ST-LINK FW : V3J8M3
16:54:41 : Board : STM32H7B3I-DK
16:54:41 : Voltage : 3.28V
16:54:41 : Error: ST-LINK error (DEV_CONNECT_ERR)
Run Code Online (Sandbox Code Playgroud)
当选择软件复位时:
16:55:24 : ST-LINK …Run Code Online (Sandbox Code Playgroud)