问题如下: 1.使用stm32cube,配置生成的工程,在读写norflash时,在固定位置出现写入数据错误(大部分正确,小部分错误)。然而在直接使用STM32H743I-EVAL\Examples\FMC\FMC_NOR的例子下到H745ii上读写正常。 2.使用STM32H743I-EVAL\Examples\FMC\FMC_NOR的例子关闭掉mpu的设置,同样会出现在固定位置出错(stm32cube配置生成的工程位置相同)。 3.使用stm32cube,配置生成的工程,添加了mpu设置,代码运行后出现调试断开。 4:fmc配置:如下 /** Perform the NOR1 memory initialization sequence */ hnor1.Instance = FMC_NORSRAM_DEVICE; hnor1.Extended = FMC_NORSRAM_EXTENDED_DEVICE; /* hnor1.Init */ hnor1.Init.NSBank = FMC_NORSRAM_BANK1; hnor1.Init.DataAddressMux = FMC_DATA_ADDRESS_MUX_DISABLE; hnor1.Init.MemoryType = FMC_MEMORY_TYPE_NOR; hnor1.Init.MemoryDataWidth = FMC_NORSRAM_MEM_BUS_WIDTH_16; hnor1.Init.BurstAccessMode = FMC_BURST_ACCESS_MODE_ENABLE; hnor1.Init.WaitSignalPolarity = FMC_WAIT_SIGNAL_POLARITY_LOW; hnor1.Init.WaitSignalActive = FMC_WAIT_TIMING_BEFORE_WS; hnor1.Init.WriteOperation = FMC_WRITE_OPERATION_ENABLE; hnor1.Init.WaitSignal = FMC_WAIT_SIGNAL_DISABLE; hnor1.Init.ExtendedMode = FMC_EXTENDED_MODE_DISABLE; hnor1.Init.AsynchronousWait = FMC_ASYNCHRONOUS_WAIT_ENABLE; hnor1.Init.WriteBurst = FMC_WRITE_BURST_DISABLE; hnor1.Init.ContinuousClock = FMC_CONTINUOUS_CLOCK_SYNC_ASYNC; // hnor1.Init.WriteFifo = FMC_WRITE_FIFO_ENABLE; // hnor1.Init.PageSize = FMC_PAGE_SIZE_NONE; /* Timing */ Timing.AddressSetupTime = 9; Timing.AddressHoldTime = 1; Timing.DataSetupTime = 5; Timing.BusTurnAroundDuration = 4; Timing.CLKDivision = 4; Timing.DataLatency = 2; Timing.AccessMode = FMC_ACCESS_MODE_B; |