硬汉嵌入式论坛

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

[CMSIS-RTOS] 判断程序是在中断里面还是在任务里面执行

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2020-8-4 11:07:54 | 显示全部楼层 |阅读模式

RTX5的代码里面有提供:


  1. /// Check if in IRQ Mode
  2. /// \return     true=IRQ, false=thread
  3. __STATIC_INLINE bool_t IsIrqMode (void) {
  4.   return (__get_IPSR() != 0U);
  5. }
复制代码

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2020-8-5 10:02:24 | 显示全部楼层
QQ截图20200805100204.png
回复

使用道具 举报

23

主题

211

回帖

280

积分

高级会员

积分
280
发表于 2020-8-5 16:21:28 | 显示全部楼层
使用库的方式,该怎么调用这个函数?包含这个rtx_core_cm.h头文件提示找不到路径?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2020-8-5 16:39:10 | 显示全部楼层
blackfire531 发表于 2020-8-5 16:21
使用库的方式,该怎么调用这个函数?包含这个rtx_core_cm.h头文件提示找不到路径?

直接调用这个__get_IPSR()就行,大于0表示在中断里面,等于0表示中断外。
回复

使用道具 举报

23

主题

211

回帖

280

积分

高级会员

积分
280
发表于 2020-8-5 18:24:22 | 显示全部楼层
eric2013 发表于 2020-8-5 16:39
直接调用这个__get_IPSR()就行,大于0表示在中断里面,等于0表示中断外。

回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2020-8-6 11:48:56 | 显示全部楼层
本帖最后由 caicaptain2 于 2020-8-6 16:57 编辑
eric2013 发表于 2020-8-5 16:39
直接调用这个__get_IPSR()就行,大于0表示在中断里面,等于0表示中断外。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 20:20 , Processed in 0.228529 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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