Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
cortex-M
RTT启动失败
内核
STM32F4上,内核无法启动,无法进入PendSV中断【求助】
发布于 2023-12-11 16:42:18 浏览:227
订阅该版
使用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
被浏览
227
关于作者
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
机器人操作系统 (ROS2) 和 RT-Thread 通信
4
国产MCU移植系列教程汇总,欢迎查看!
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
【NXP-MCXA153】RTT PIN驱动添加
2
NXP MCXN236测评-FLASH
3
不用开发板都能跑的RT-Thread(保姆级教程)
4
RTTHREAD Doxygen 阅读
5
RT-Thread RISCV64 qemu 极简上手(不用思考就能跑起来)
热门标签
RT-Thread Studio
串口
LWIP
Env
SPI
Bootloader
AT
ART-Pi
Hardfault
CAN总线
FinSH
USB
文件系统
DMA
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
ota在线升级
WIZnet_W5500
I2C_IIC
UART
flash
packages_软件包
cubemx
freemodbus
PWM
潘多拉开发板_Pandora
定时器
BSP
ADC
flashDB
中断
编译报错
Debug
socket
GD32
msh
keil_MDK
at_device
SFUD
ulog
C++_cpp
MicroPython
本月问答贡献
小小李sunny
3
个答案
4
次被采纳
Rb君
16
个答案
3
次被采纳
三世执戟
13
个答案
2
次被采纳
用户名由3_15位
12
个答案
2
次被采纳
xiaorui
9
个答案
2
次被采纳
本月文章贡献
andeyqi
3
篇文章
2
次点赞
Z_Y
2
篇文章
6
次点赞
Lu_盼盼
2
篇文章
1
次点赞
liYony
1
篇文章
12
次点赞
Rb君
1
篇文章
5
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部