硬汉嵌入式论坛

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

[有问必答] __disable_irq();这个函数怎么进不去?

[复制链接]

16

主题

67

回帖

115

积分

初级会员

积分
115
发表于 2020-11-19 13:29:38 | 显示全部楼层 |阅读模式
本帖最后由 lihui163 于 2020-11-19 17:49 编辑

在单片机stm32F103中禁止中断函数__disable_irq();这个函数怎么进不去?在头文件core_cmFunc.h中怎么注释掉了,这个函数就不起作用?
1.png



回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2020-11-20 09:25:27 | 显示全部楼层
这个函数在MDK里面没有源码,所有看不到。

回复

使用道具 举报

16

主题

67

回帖

115

积分

初级会员

积分
115
 楼主| 发表于 2020-11-20 10:11:53 | 显示全部楼层
eric2013 发表于 2020-11-20 09:25
这个函数在MDK里面没有源码,所有看不到。

但是编译是没有问题的,咱们的例程中那个禁止中断函数可以找到的,
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2020-11-21 09:22:01 | 显示全部楼层
使用最新的CMSIS5.7.0软件包就可以看到了。现在新的将其整到arm_compat.h文件了,作为兼容性存在
  1. static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
  2. __disable_irq(void) {
  3.   unsigned int cpsr;
  4. #if __ARM_ARCH >= 6
  5. #if defined(__ARM_ARCH_PROFILE) && __ARM_ARCH_PROFILE == 'M'
  6.   __asm__ __volatile__("mrs %[cpsr], primask\n"
  7.                        "cpsid i\n"
  8.                        : [cpsr] "=r"(cpsr));
  9.   return cpsr & 0x1;
  10. #else /* !defined(__ARM_ARCH_PROFILE) || __ARM_ARCH_PROFILE != 'M' */
  11.   __asm__ __volatile__("mrs %[cpsr], cpsr\n"
  12.                        "cpsid i\n"
  13.                        : [cpsr] "=r"(cpsr));
  14.   return cpsr & 0x80;
  15. #endif
  16. #else /* __ARM_ARCH < 6 */
  17.   unsigned int tmp;
  18.   __asm__ __volatile__(
  19.           "mrs        %[cpsr], CPSR\n"
  20.           "bic        %[tmp], %[cpsr], #0x80\n"
  21.           "msr        CPSR_c, %[tmp]\n"
  22.           : [tmp]"=r"(tmp), [cpsr]"=r"(cpsr));
  23.   return cpsr & 0x80;
  24. #endif
  25. }
复制代码


回复

使用道具 举报

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
发表于 2020-11-22 15:56:09 | 显示全部楼层
eric2013 发表于 2020-11-21 09:22
使用最新的CMSIS5.7.0软件包就可以看到了。现在新的将其整到arm_compat.h文件了,作为兼容性存在

感谢硬汉的耐心举例回复。我公司的产品架构,MDK版本4.1,烧录工具V7,功夫未到家前,还是少提但方便的升级。
同时感谢硬汉在2012年整理的ucOS,ucGUI的资源。用那个模板历程放心对接使用。
Releasing your creativity
回复

使用道具 举报

16

主题

67

回帖

115

积分

初级会员

积分
115
 楼主| 发表于 2020-11-23 14:39:22 | 显示全部楼层
eric2013 发表于 2020-11-21 09:22
使用最新的CMSIS5.7.0软件包就可以看到了。现在新的将其整到arm_compat.h文件了,作为兼容性存在

非常感谢回答
回复

使用道具 举报

1

主题

10

回帖

13

积分

新手上路

积分
13
发表于 2022-1-5 17:56:29 | 显示全部楼层
eric2013 发表于 2020-11-21 09:22
使用最新的CMSIS5.7.0软件包就可以看到了。现在新的将其整到arm_compat.h文件了,作为兼容性存在

请问版主 , 如果要在M3的工程中使用这个命令, 需要添加哪些头文件?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2022-1-6 08:42:04 | 显示全部楼层
nstopb 发表于 2022-1-5 17:56
请问版主 , 如果要在M3的工程中使用这个命令, 需要添加哪些头文件?

直接升级CMSIS软件包所有头文件。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-9 22:05 , Processed in 0.243378 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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