OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3508|回复: 5

希望原子哥指点,BootLoader带RTX系统,跳转到APP后,要重设哪些寄存器

[复制链接]

16

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-4-26
在线时间
33 小时
发表于 2018-6-5 20:45:20 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 wuboaini23 于 2018-6-5 20:47 编辑

希望原子哥指点,BootLoader带RTX系统,跳转到APP后,要重设哪些寄存器,除了设置 SCB->VTOR = FLASH_BASE | 0x10000 还有设置APP程序IROM设置起始地址为0x8010000。还要设置哪些寄存器。现在有个问题是跳转到APP后,一进串口中断就进入了hardFault_handler函数。但是我另外一个APP串口是用DMA模式接收,又没问题。要是BootLoader不初始化任务,直接跳到APP,APP就都能运行,进中断也不会有问题。现在不知道到底是哪里有问题?

最佳答案

查看完整内容[请看2#楼]

问题找到了就是RTX自带这三个函数 void SVC_Handler(void) void PendSV_Handler(void) void SysTick_Handler(void) 所以在运行在特权模式时,会修改掉这三个函数中断的中断优先级。但是RTX和M4的优先级定义不同,RTX为数值越大 优先级越大 M4为数值越大 优先级越小
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

16

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-4-26
在线时间
33 小时
 楼主| 发表于 2018-6-5 20:45:21 | 显示全部楼层
问题找到了就是RTX自带这三个函数
void SVC_Handler(void)
void PendSV_Handler(void)
void SysTick_Handler(void)
所以在运行在特权模式时,会修改掉这三个函数中断的中断优先级。但是RTX和M4的优先级定义不同,RTX为数值越大 优先级越大 M4为数值越大 优先级越小
回复

使用道具 举报

117

主题

598

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
1702
金钱
1702
注册时间
2012-5-10
在线时间
439 小时
发表于 2018-6-5 21:47:11 | 显示全部楼层
我觉得不需要其他设置了,我bootloader,app都有os,没发现什么问题
如有技术问题,微信扫头像交流,STM32,JAVA,服务器
回复

使用道具 举报

16

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-4-26
在线时间
33 小时
 楼主| 发表于 2018-6-5 22:40:22 | 显示全部楼层
xsx127 发表于 2018-6-5 21:47
我觉得不需要其他设置了,我bootloader,app都有os,没发现什么问题

请问一下你的os是uμC/OS-II?我查出大概的原因了,我觉得是因为用了RTX系统,但是RTX系统自带
void SVC_Handler(void)
void PendSV_Handler(void)
void SysTick_Handler(void)
这三个函数在stm32f4xx_it.c也有定义,所以用RTX时就会报错,重定义,正常情况下会注释掉这三个函数。这三个函数又是时钟,中断切换,所以RTX估计修改这些值,所以跳到没带RTX的APP(这三个函数没改)一进中断就会进入硬件错误中断函数。但是准确的原因,修改了什么,还是没找到
回复

使用道具 举报

117

主题

598

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
1702
金钱
1702
注册时间
2012-5-10
在线时间
439 小时
发表于 2018-6-5 22:49:42 | 显示全部楼层
freertos
但是你说的几个中断,freertos也会用的
如有技术问题,微信扫头像交流,STM32,JAVA,服务器
回复

使用道具 举报

16

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-4-26
在线时间
33 小时
 楼主| 发表于 2018-6-5 22:54:43 | 显示全部楼层
xsx127 发表于 2018-6-5 22:49
freertos
但是你说的几个中断,freertos也会用的

我是刚刚测试,我把串口实验,修改为带RTX系统,串口中断就没问题了。可以试试boot带reertosAPP为裸机程序
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-28 06:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表