我有一个 imxrt1170 板,想使用 flexspi1(连接到
FPGA)。
我想在 flexspi1 上使用 AHB 总线操作,但是当我访问 BASE_ADDR(0x30000000U) 时,调试软件提示超时
(Sat Oct 08, 2022 17:19:04: Warning: Communication timed out: Requested 4 bytes, received 0 bytes ! )
配置如下:
flexspi_config_t 配置;
FLEXSPI_Type *基础;
基础 = FLEXSPI1;
//设置根时钟 20MHz
flexspi_clock_init(kCLOCK_Root_Flexspi1, CLOCK_SRC, CLOCK_DIV);
/*获取 FLEXSPI 默认设置并配置 flexspi。*/
FLEXSPI_GetDefaultConfig(&config);
/* 设置 AHB 缓冲区大小以通过 AHB 总线读取数据。*/
config.ahbConfig.enableAHBPrefetch = true;
config.ahbConfig.enableAHBBufferable = true;
config.ahbConfig.enableReadAddressOpt = true;
配置.ahbConfig.enableAHBCachable = true;
config.ahbConfig.enableClearAHBBufferOpt = true;
config.rxSampleClock = FLEXSPI_RX_SAMPLE_CLOCK;
如果(组合模式)
{
config.enableCombination = true;
}
if(FREE_RUNNING_MODE)
{
config.enableSckFreeRunning = true;
}
FLEXSPI_Init(base, &config);
/* 根据串行闪存功能配置闪存设置。*/
FLEXSPI_SetFlashConfig(base, &deviceconfig, FLASH_PORT);
/* 更新 LUT 表。*/
FLEXSPI_UpdateLUT(base, 0, customLUT, CUSTOM_LUT_LENGTH);
/* 进行软件复位。*/
FLEXSPI_SoftwareReset(基础);
当我使用指针时,调试软件输出超时:
uint32_t *flexspi = (rt_uint32_t *)(0x30000000U); /* FLEXSPI1 起始地址。*/