Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
cortex-M
RTT启动失败
内核
STM32F4上,内核无法启动,无法进入PendSV中断【求助】
发布于 2023-12-11 16:42:18 浏览:346
订阅该版
使用RT-Thread5.0.2版本,正点原子探索者F407开发板(V2.6),使用stm32f407-atk-explorer的bsp,MCU型号是STM32F407ZET6。 同样的代码在另外的开发板+JLink环境下正常运行,今天换了另外一块开发板(同型号不同批次),使用的STLink,发现系统无法启动,串口打印内核版本号后系统表现为卡死。 ![screenshot_Snipaste_2023-12-11_16-22-38.png](https://oss-club.rt-thread.org/uploads/20231211/17539dfa810bdbe21024a83d70a9b9fd.png) 进入调试环境下后,手动暂停CPU,发现CPU运行在0x1fff0000段,是STM32的原厂DFU,是正常情况下不应该进入的地址。 ![screenshot_Snipaste_2023-12-11_16-24-40.png](https://oss-club.rt-thread.org/uploads/20231211/c9a7720b206e650480cac3f9f7610032.png) 从Reset_Handler开始单步跟踪,发现问题。 在rtthread_startup函数中,最后会调用rt_system_scheduler_start启动调度器;在确定接下来应该执行的任务后,调用rt_hw_context_switch_to触发PendSV。 理应在这时应该进入PendSV,并在PendSV中切换到相关Thread,脱离前期运行状态。 此时,相关用来屏蔽中断的寄存器位已经全部取消。 ![screenshot_Snipaste_2023-12-11_16-33-32.png](https://oss-club.rt-thread.org/uploads/20231211/87c9867bdface65ab01311f7fd2121db.png.webp) 并且,PendSV也的确进入了Pend状态; ![screenshot_Snipaste_2023-12-11_16-35-27.png](https://oss-club.rt-thread.org/uploads/20231211/4b0d95fff51ac4634b81afa97330dc8a.png) 但是并未进入PendSV_Handler,而是继续往下执行到了“never goes here”的地方,并通过bx lr,回到了rtthread_startup函数。(在上上图,可看到LR是0x0804f6b1,即rtthread_startup的末尾) ![screenshot_Snipaste_2023-12-11_16-35-40.png](https://oss-club.rt-thread.org/uploads/20231211/1ff4202704d6782a98bd3c62fdaf71e9.png) ![screenshot_Snipaste_2023-12-11_16-36-46.png](https://oss-club.rt-thread.org/uploads/20231211/84a6c1696ecbd37485b65e4b5d283c66.png) 此时的SP是0x20001d80,读取后发现附近都是空的,都是0,因此pop pc后,CPU跳转到了0x0,并进入了STM32的DFU模式。 疑问:为什么相关寄存器都正常的前提下,CPU就是不进中断呢?没有思路了,发到这里向各位大神求助。。
查看更多
2
个回答
默认排序
按发布时间排序
fyyo429
2023-12-11
这家伙很懒,什么也没写!
更换MDK后,现象不变。 发现一个更加奇怪的现象,把电源开关一下,运行正常。但是在此时按键复位,就再也没法正常运行了。然后断开电源再重新上电,又能正常运行。
dale27
2023-12-13
这家伙很懒,什么也没写!
楼主有解决吗?我好像也遇到了一样的问题,进入Pendsv_Handler以后就跳到HardFault_Handler里面了,卡两天了
撰写答案
登录
注册新账号
关注者
0
被浏览
346
关于作者
fyyo429
这家伙很懒,什么也没写!
提问
1
回答
1
被采纳
0
关注TA
发私信
相关问题
1
rt-thread的学习疑惑
2
基于stm32的RTT在RTT Studio IDE环境中的启动顺序求解
3
关于 rt_object_detach 脱离内核对象函数的作用求解
4
RT-Thread内核什么时候考虑加入MPU功能?
5
rt_hw_board_init中开中断后,触发SysTick_Handler
6
Cortex-M0在bootloader环境下的上下文切换问题?
7
关于ART-PI的bootloader是怎么烧写进去的
8
为什么内核代码和bootloader的代码一样的
9
线程对象结构体为什么不直接选择继承内核对象?
10
使用rt_memset给线程栈初始化,为什么选择字符‘#’,而不是‘\0’?
推荐文章
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
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
2
RT-Thread 发布 EtherKit开源以太网硬件!
3
rt-thread使用cherryusb实现虚拟串口
4
《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
5
《原子操作:程序世界里的“最小魔法单位”解析》
热门标签
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
ota在线升级
UART
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
13
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
本月文章贡献
程序员阿伟
7
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部