Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
qboot
20
关于qboot跳转外部qspi flash无法启动问题
发布于 2023-08-02 11:38:53 浏览:1086
订阅该版
当前环境,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.1k
关于作者
Dev_XH
每天进步一点点,发际线后移一点点
提问
7
回答
9
被采纳
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
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
RTT串口查找函数使用过程中遇到的问题。
2
RT-Thread CI编译产物artifacts自动上传功能介绍
3
STM32G030移植RT-Thread
4
CubeMX & RT-Thread Studio 联合开发说明
5
RT-Thread项目助手v0.3 | Ubuntu与MacOS平台的RT-Thread Env
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
cubemx
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
GD32
定时器
ADC
flashDB
编译报错
socket
中断
rt_mq_消息队列_msg_queue
keil_MDK
Debug
SFUD
ulog
msh
C++_cpp
MicroPython
本月问答贡献
lchnu
5
个答案
3
次被采纳
三世执戟
9
个答案
2
次被采纳
张世争
1
个答案
2
次被采纳
a1012112796
14
个答案
1
次被采纳
聚散无由
5
个答案
1
次被采纳
本月文章贡献
jinchanchan
12
篇文章
14
次点赞
ssdd45555
3
篇文章
2
次点赞
lvdongchina
2
篇文章
1
次点赞
聚散无由
1
篇文章
4
次点赞
RTT_逍遥
1
篇文章
3
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部