硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3414|回复: 5
收起左侧

[有问必答] FreeRTOS/RTX IAP 应用程序无法使用中断

[复制链接]

3

主题

10

回帖

19

积分

新手上路

积分
19
发表于 2018-11-26 19:21:54 | 显示全部楼层 |阅读模式
FreeRTOS/RTX IAP 应用程序无法使用中断

Bootloeader:使用RTX,程序可以跳转到应用程序处(跳转之前关闭了中断__disable_isr());

Application:使用RTX,程序可以执行,但是中断进不去(例如定时器中断等),使用__enable_isr()函数打开中断会导致hard fault,执行到系统调度的时候也会导致hard fault。(中断向量表已设置)
#if(CONFIG_BOOTLOADER_ENABLE == 1)
    NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0); // bootloader
#else
    NVIC_SetVectorTable(NVIC_VectTab_FLASH, SOC_BOOTLOADER_SIZE + SOC_APPLICATION_INFO_SIZE); // application
#endif


注:同样的代码片段,bootloader和application使用裸机不带任何操作系统,都是正常的,所有都可以运行。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106989
QQ
发表于 2018-11-27 00:59:23 | 显示全部楼层
中断入口地址还是有问题,也就是中断向量表有问题。

使用这个帖子的方法可以方便的找出问题;

http://www.armbbs.cn/forum.php?m ... 4&highlight=IAP
回复

使用道具 举报

3

主题

10

回帖

19

积分

新手上路

积分
19
 楼主| 发表于 2018-11-27 10:03:38 | 显示全部楼层
eric2013 发表于 2018-11-27 00:59
中断入口地址还是有问题,也就是中断向量表有问题。

使用这个帖子的方法可以方便的找出问题;

多谢管理员大大。
回复

使用道具 举报

3

主题

10

回帖

19

积分

新手上路

积分
19
 楼主| 发表于 2018-11-27 19:54:56 | 显示全部楼层
本帖最后由 李邦 于 2018-11-27 19:59 编辑

bootloader和Application裸机时跳转正常,application执行正常。bootloader使用RTX/FreeRTOS,application使用裸机时跳转正常,application也执行正常。
bootloader和Application都是RTX时跳转正常,application hardfault(由于中断都不无法使用了)。(FreeRTOS也是同样的问题)调试时发现三种bootloader的跳转地址不一样,(程序的应用部分完全移植的)
裸机:0x8020145
freertos: 0x8020209
RTX: 0x80202B9
基本可以判断中断向量表出了问题,,,,,,郁闷的是application带系统就偏移出问题,,,不带系统就可以,,,


后来,换了一种处理的方式:
区1:bootloader
区2:升级信息表
区3:application
区4:application backup
bootloader下载bin文件到application backup区,bin文件下载完成后从appliction backup区将数据拷贝到application区,并更新“升级信息表”,然后软件复位,注意不要跳转;bootloader程序开始时会检查“升级信息表”,如果有更新,就跳转到application,此时应用程序就可以使用各种中断了。
【注:网上很多说在跳转时关闭打开了的中断,此方法试过,不能解决问题】


回复

使用道具 举报

6

主题

640

回帖

658

积分

金牌会员

积分
658
QQ
发表于 2018-12-3 18:21:43 | 显示全部楼层
内部FLASH很大嘛,可以任意这么使用
回复

使用道具 举报

3

主题

10

回帖

19

积分

新手上路

积分
19
 楼主| 发表于 2018-12-4 10:03:06 | 显示全部楼层
yklstudent 发表于 2018-12-3 18:21
内部FLASH很大嘛,可以任意这么使用

1M的,想怎么玩就怎么玩,,,
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-13 10:13 , Processed in 0.165437 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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