Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
qboot
20
关于qboot跳转外部qspi flash无法启动问题
发布于 2023-08-02 11:38:53 浏览:1332
订阅该版
当前环境,STM32H750VBT6,片内为qboot程序,片外为w25q64,qspi-falsh。 现在qboot,均运行正常,就是到了跳转的时候,就没有了响应,问题现场如下图片所示:  qboot跳转地址如下: ```c static int nor_flash_memory_mapped_mode(struct rt_qspi_device *device) { QSPI_CommandTypeDef s_command; QSPI_MemoryMappedTypeDef s_mem_mapped_cfg; /* Configure the command for the read instruction */ s_command.InstructionMode = QSPI_INSTRUCTION_1_LINE; s_command.Instruction = 0xEB; s_command.AddressMode = QSPI_ADDRESS_4_LINES; s_command.AddressSize = QSPI_ADDRESS_24_BITS; s_command.AlternateByteMode = QSPI_ALTERNATE_BYTES_4_LINES; s_command.AlternateBytes = 0x00; s_command.AlternateBytesSize = QSPI_ALTERNATE_BYTES_8_BITS; s_command.DataMode = QSPI_DATA_4_LINES; s_command.DummyCycles = 4; s_command.DdrMode = QSPI_DDR_MODE_DISABLE; s_command.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY; s_command.SIOOMode = QSPI_SIOO_INST_EVERY_CMD; /* Configure the memory mapped mode */ s_mem_mapped_cfg.TimeOutActivation = QSPI_TIMEOUT_COUNTER_ENABLE; s_mem_mapped_cfg.TimeOutPeriod = 1; if (HAL_QSPI_MemoryMapped((QSPI_HandleTypeDef *)(device->parent.bus->parent.user_data), &s_command, &s_mem_mapped_cfg) != HAL_OK) { rt_kprintf("memory mapped mode failed\n"); return -RT_ERROR; } return RT_EOK; } void qbt_jump_to_app(void) { typedef void (*app_func_t)(void); app_func_t app_func; struct rt_qspi_device *device = NULL; u32 stk_addr = 0; u32 reset_handler = 0; const u8 send[4] = {0x03, 0x00, 0x00, 0x00}; u8 recv[8] = {0}; device = (struct rt_qspi_device *)rt_device_find(QBOOT_QSPI_FLASH_DEVICE_NAME); if (device == RT_NULL) { LOG_E("no found qspi flash."); return; } rt_qspi_send_then_recv(device, send, sizeof(send), recv, sizeof(recv)); stk_addr = recv[0]; stk_addr += ((u32)recv[1] << 8); stk_addr += ((u32)recv[2] << 16); stk_addr += ((u32)recv[3] << 24); reset_handler = recv[4]; reset_handler += ((u32)recv[5] << 8); reset_handler += ((u32)recv[6] << 16); reset_handler += ((u32)recv[7] << 24); rt_kprintf("\r\nstk_addr :\t0x%08X\r\n", stk_addr); rt_kprintf("\r\nreset_handler :\t0x%08X\r\n", reset_handler); stk_addr &= 0x3FF00000; if (((reset_handler & 0xff000000) != QSPI_BASE) || (stk_addr != 0x20000000 && stk_addr != 0x24000000 && stk_addr != 0x30000000 && stk_addr != 0x38000000)) { LOG_E("No legitimate application."); return; } if (nor_flash_memory_mapped_mode(device) != RT_EOK) { rt_kprintf("nor_flash_memory_mapped_mode failed!\n"); return; } rt_kprintf("Jump to application running ... \n"); __disable_irq(); #if (__MPU_PRESENT == 1) HAL_MPU_Disable(); #endif SCB_DisableICache(); SCB_DisableDCache(); __set_CONTROL(0); __set_MSP(stk_addr); app_func = (app_func_t)(QSPI_BASE + 4); app_func(); LOG_E("Qboot jump to application fail."); } ``` app应用程序地址如下:  
查看更多
红枫
认证专家
2023-08-02
这家伙很懒,什么也没写!
正常情况复位地址应该是4字节对齐的,看log这里不对啊!你对照bin文件看看是app下载错了,还是原本编译出来就错了? 
2
个回答
默认排序
按发布时间排序
Dev_XH
2023-08-02
每天进步一点点,发际线后移一点点
求助红枫大佬协助,扣了快1天了😭
撰写答案
登录
注册新账号
关注者
1
被浏览
1.3k
关于作者
Dev_XH
每天进步一点点,发际线后移一点点
提问
7
回答
10
被采纳
0
关注TA
发私信
相关问题
1
qboot使用ymodem上传固件升级失败。
2
qboot ymodem上传固件后release失败
3
使用qboot制作BootLoader,下载APP后不能跳转执行
4
使用RTT 跳转进入app区后,无法调度
5
QSPI FLASH W25Q64,在进入映射模式后,如何退出?
6
制作极简版Bootloader过程中遇到无法解决的错误
7
qboot使用中程序跳转不成功
8
如何将qboot裁剪到通用Bootloader的32k大小?
9
qboot跳转app后卡在app的系统调用处,有人碰到过吗?
10
使用RTStudio添加qboot组件保存后,软件包没有显示,一直添加不了
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
【最新活动】RT-Thread论坛活动正在进行(2026年5月活动已更新)
4
国产MCU移植系列教程汇总,欢迎查看!
5
机器人操作系统 (ROS2) 和 RT-Thread 通信
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
五分钟玩转RT-Thread新社区
8
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
9
STM32的“GPU”——DMA2D实例详解
10
RT-Thread隐藏的宝藏之completion
最新文章
1
【RSOC26】RT-thread内核与多线程培训
2
【RSOC26】rtthread启动流程
3
轻量化Agent框架
4
【RSOC26】RT_Thread系统学习和环境的搭建以及git的学习
5
【RSOC26】环境搭建与Git协作学习
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
Bootloader
AT
Hardfault
CAN总线
ART-Pi
FinSH
DMA
USB
RT-Thread
SCons
文件系统
RT-Thread Nano
线程
MQTT
STM32
FAL
rt-smart
BSP
cubemx
RTC
WIZnet_W5500
PWM
I2C_IIC
UART
packages_软件包
GD32
ota在线升级
ESP8266
freemodbus
flash
keil_MDK
编译报错
ADC
潘多拉开发板_Pandora
flashDB
Debug
ulog
msh
rt_mq_消息队列_msg_queue
socket
MicroPython
SDIO总线
中断
SFUD
QEMU
本月问答贡献
crystal266
3
个答案
1
次被采纳
CYFS
3
个答案
1
次被采纳
oxlm
1
个答案
1
次被采纳
王棒棒
1
个答案
1
次被采纳
wdfk_prog
1
个答案
1
次被采纳
本月文章贡献
Ewan11111
3
篇文章
1
次点赞
longtsing
1
篇文章
4
次点赞
RTT_Studio
1
篇文章
4
次点赞
枫雪天
1
篇文章
3
次点赞
PVNR_2505
1
篇文章
3
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部