参考STM32MP157-DK2做的核心板,但是将I2C4修改成连接PD12,PD13,使用GPIOD没有使用GPIOZ。 在MPC端通过 echo mem > /sys/power/state进入低功耗,MCU的固件运行时没有问题,MCU的固件不启动或停止时进入低功耗会在32秒后被看门狗重启。 我追踪发现是suspend时以下位置I2C配置出问题了: driver_suspend() stpmic1_lp_copy_reg() stpmic1_register_read() stm32_i2c_read_write_membyte() hi2c->i2c_state = write ? I2C_STATE_BUSY_TX : I2C_STATE_BUSY_RX; hi2c->i2c_err = I2C_ERROR_NONE; i2c_transfer_config(hi2c, dev_addr, I2C_MEMADD_SIZE_8BIT, write ? I2C_RELOAD_MODE : I2C_SOFTEND_MODE, I2C_GENERATE_START_WRITE); timeout_ref = timeout_init_us(I2C_TIMEOUT_BUSY_US); if (i2c_wait_txis(hi2c, timeout_ref)) goto bail; 我的MCU的固件代码中有__HAL_RCC_GPIOD_CLK_ENABLE();这个GPIOD时钟使能的处理,当我不做GPIOD时钟使能时,MCU的固件运行时进入低功耗也会出这个问题。 从现状看像是GPIOD时钟没使能导致的问题。 但是我取了寄存器RCC_MP_AHB4ENSETR的值查看,发现GPIODEN位是1,难道MPC端使能GPIOD时钟还有什么其他操作吗? 而且通过echo -n stop > /sys/class/remoteproc/remoteproc0/state停止MCU的固件之后会出问题,难道这样还会把使能的GPIOD时钟关闭吗? |
当MCU固件不启动或停止时进入低功耗并在32秒后被看门狗重启,可能与低功耗模式配置以及相关外设的状态保存有关。确保在进入低功耗之前,所有必要的状态和配置都得到适当的处理和保存。另外,在MCU固件中,在进入低功耗模式之前应该关闭所有的外设时钟,并根据需要保存相关状态,以便在唤醒后能够正常恢复。 |
STM32MP157的opengl库
请问MP157的A7核可以裸跑Freertos吗
STM32MP135D下载问题请教
TF-A启动失败,显示 BL2: Failed to load image (-12)
我希望用STM32MP157D_DK1运行qt程序 希望提供适配的arm gcc编译工具
镜像下载
STM32mp157的spi问题
STM32MP135 使用HAL库 驱动2.4寸刷新率巨低,求大佬指点迷津
STM32MP157 UBOOT 显示logo
Stm32Mp135驱动OV5640