Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
Bootloader
50
bootloader跳转到rt thread的后运行失败的问题
发布于 2020-07-27 17:27:00 浏览:2236
订阅该版
[tocm] ### 硬件型号 STM32F412REX ### bootloader程序 是自己写的一个简单跳转程序,之前工程有验证过(之前的应用代码是freertos系统),是没问题的,跳转的地址是0x8020000; 核心跳转代码如下: ``` static void application_area_jump(void) { if (((*(__IO uint32_t *)Application_A0_Address) & STACK_ADDRESS_RAM_256) == 0x20000000) { __set_FAULTMASK(1); /* Jump to user application */ JumpAddress = *(__IO uint32_t *)(Application_A0_Address + 4); Jump_To_Application = (pFunction)JumpAddress; /* Initialize user application's Stack Pointer */ __set_MSP(*(__IO uint32_t *)Application_A0_Address); Jump_To_Application(); } else { printf(" Bootloader: Application_A0_Address & STACK_ADDRESS_RAM_256 == 0x20000000\r\n"); } } ``` ### rt-thread 工程修改的部分: 1. ![target.png](/uploads/20200727/47efecd30fd4e7ef8458fb945615703a.png) 2. ![vect.png](/uploads/20200727/077df2f66d9683b94640f2c0d5672f3e.png) 3. ![cst.png](/uploads/20200727/cb5ac6404fe90683420f5ffdd7eba940.png) ### 然后运行调试 可以跳转过来 进入到 **rt_hw_context_switch_to((rt_ubase_t)&to_thread->sp);** 走完汇编汇编文件跳回到 C 代码后,就死在了这里 ![temp.png](/uploads/20200727/21dbe68519c536c7bfaf18bc2a9a06ab.png) 此时的SCB值: ![tscb.png](/uploads/20200727/b2126e6c3fada6883811d19a8d6acbc4.png) ### 请问我是有什么地方配置的不对吗?
查看更多
红枫
认证专家
2020-07-27
这家伙很懒,什么也没写!
## 请参考下面代码: ```c static void qbt_jump_to_app(void) { typedef void (*app_func_t)(void); u32 app_addr = QBOOT_APP_ADDR; u32 stk_addr = *((__IO uint32_t *)app_addr); app_func_t app_func = (app_func_t)(*((__IO uint32_t *)(app_addr + 4))); if ((((u32)app_func & 0xff000000) != 0x08000000) || ((stk_addr & 0x2ff00000) != 0x20000000)) { LOG_E("No legitimate application."); return; } rt_kprintf("Jump to application running ... \n"); rt_thread_mdelay(200); __disable_irq(); HAL_DeInit(); for(int i=0; i<128; i++) { HAL_NVIC_DisableIRQ(i); HAL_NVIC_ClearPendingIRQ(i); } __set_CONTROL(0); __set_MSP(stk_addr); app_func();//Jump to application running LOG_E("Qboot jump to application fail."); } ```
2
个回答
默认排序
按发布时间排序
aozima
2020-07-27
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
1. 此时VTOR值是0x8020000,确认中断映射成功了; 也可以看当前PC是在boot还是APP中? 2. 进默认中断,说明对应的ISR没写。看IPSR就知道哪个ISR没写,可以参考 https://club.rt-thread.org/ask/question/425226.html 如果是在APP中,且这个ISR你不用,那么很可能是你boot用了,但进APP不用,却也没有关闭。
撰写答案
登录
注册新账号
关注者
0
被浏览
2.2k
关于作者
高级粘贴复制工程师
这家伙很懒,什么也没写!
提问
5
回答
6
被采纳
0
关注TA
发私信
相关问题
1
Linux下通过USBTinyISP为Arduino开发板烧?写Bootloader
2
请教修改NVIC后RTT调度函数失效的问题[已解决 bootloader中打开了不必要的中断]
3
进入bootloader的方式探讨
4
求助:IAP里的APP使用的RTT,跳转后出错。[已解决]
5
有没有人在STM32F103上用UART IAP跑过RT-Thread?
6
想做网口的IAP远程升级,不知可不可行
7
IAP问题
8
[已解决]请教基于RTT的IAP程序切换到应用程序不成功的问题(基于STM32F4)?
9
stm32f4xx-----IAP移植APP程序需要注意的地方
10
在调试IAP网络升级遇到跳转之后bootloader程序网络不通
推荐文章
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
【24嵌入式设计大赛】基于RT-Thread星火一号的智慧家居系统
2
RT-Thread EtherKit开源以太网硬件正式发布
3
如何在master上的BSP中添加配置yml文件
4
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
5
RT-Thread 发布 EtherKit开源以太网硬件!
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
MicroPython
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
16
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
5
次点赞
RTT_逍遥
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部