|

楼主 |
发表于 2019-9-10 15:14:47
|
显示全部楼层
本帖最后由 2pw 于 2019-9-10 16:52 编辑
受不了了。搞了两天不知道为什么是生成的bin有问题,更奇怪的是只有野火的boot能启动。至于为什么不行还没找到问题,实际是能跳转到app,但是app还没到main就报impreciserr,大概是无法跳到main。野火的boot确实能运行重新建个工程就可以了,qspi配置,暂且使用1线测试
- uint32_t QSPI_EnableMemoryMappedMode()
- {
- QSPI_CommandTypeDef s_command;
- QSPI_MemoryMappedTypeDef s_mem_mapped_cfg;
- /* ????? */
- s_command.InstructionMode = QSPI_INSTRUCTION_1_LINE;
- s_command.Instruction = 0x0b;
- s_command.AddressMode = QSPI_ADDRESS_1_LINE;
- s_command.AddressSize = QSPI_ADDRESS_32_BITS;
- s_command.DataMode = QSPI_DATA_1_LINE;
- s_command.DummyCycles = 8;
- s_command.DdrMode = QSPI_DDR_MODE_DISABLE;
- s_command.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
- s_command.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
- /* ???????? */
- s_mem_mapped_cfg.TimeOutActivation = QSPI_TIMEOUT_COUNTER_DISABLE;
- s_mem_mapped_cfg.TimeOutPeriod = 0;
- if (HAL_QSPI_MemoryMapped(&QSPIHandle, &s_command, &s_mem_mapped_cfg) != HAL_OK)
- {
- return 1;
- }
- return 0;
- }
复制代码 四线的- uint32_t QSPI_EnableMemoryMappedMode()
- {
- QSPI_CommandTypeDef s_command;
- QSPI_MemoryMappedTypeDef s_mem_mapped_cfg;
- /* ????? */
- s_command.InstructionMode = QSPI_INSTRUCTION_1_LINE;
- s_command.Instruction = QUAD_INOUT_FAST_READ_4_BYTE_ADDR_CMD;
- s_command.AddressMode = QSPI_ADDRESS_4_LINES;
- s_command.AddressSize = QSPI_ADDRESS_32_BITS;
- s_command.DataMode = QSPI_DATA_4_LINES;
- s_command.DummyCycles = 6;
- s_command.DdrMode = QSPI_DDR_MODE_DISABLE;
- s_command.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
- s_command.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
- /* ???????? */
- s_mem_mapped_cfg.TimeOutActivation = QSPI_TIMEOUT_COUNTER_DISABLE;
- s_mem_mapped_cfg.TimeOutPeriod = 0;
- if (HAL_QSPI_MemoryMapped(&QSPIHandle, &s_command, &s_mem_mapped_cfg) != HAL_OK)
- {
- return 1;
- }
- return 0;
- }
复制代码
boot程序
- SCB_DisableICache();
- SCB_DisableDCache();
- /* Disable Systick interrupt */
- SysTick->CTRL = 0;
- //中断地址
- SCB->VTOR = QSPI_BASE;
- /* Initialize user application's Stack Pointer & Jump to user application */
- JumpToApplication = (pFunction)(*(__IO uint32_t *)(QSPI_BASE + 4));
- __set_MSP(*(__IO uint32_t *)QSPI_BASE);
- JumpToApplication();
复制代码
|
|