控制IRQ和FIQ中断的编译器内部函数 – 基于Keil MDK

💡 原文中文,约3400字,阅读约需9分钟。
📝

内容提要

本文讨论了编译器内部函数__disable_irq、__enable_irq、__disable_fiq和__enable_fiq的用法和限制。这些函数用于控制IRQ和FIQ中断,只能在特权模式下使用。对于不同架构的处理器,编译器会使用不同的指令来替代这些函数。这些函数的作用包括保护共享资源和禁止中断嵌套。在使用时建议使用宏进行封装以提高移植性。

🎯

关键要点

  • 本文讨论了编译器内部函数__disable_irq、__enable_irq、__disable_fiq和__enable_fiq的用法和限制。
  • 这些函数用于控制IRQ和FIQ中断,只能在特权模式下使用。
  • 不同架构的处理器使用不同的指令替代这些函数。
  • 这些函数的作用包括保护共享资源和禁止中断嵌套。
  • 建议使用宏进行封装以提高移植性。
  • __enable_fiq函数用于使能FIQ中断,限制在特权级别下使用。
  • __disable_fiq函数用于禁用FIQ中断,限制在特权级别下使用。
  • __enable_irq函数用于使能IRQ中断,限制在特权级别下使用。
  • __disable_irq函数用于禁止IRQ中断,限制在特权级别下使用。
  • 这些函数的使用可以保护共享资源和禁止中断嵌套,增加程序的确定性。
  • 中断嵌套虽然能提高响应时间,但大多数应用不需要如此高的响应时间。
  • 建议在进入和退出中断服务函数时调用中断控制函数以禁止中断嵌套。
  • 由于与编译器特性相关,这些函数不具备移植性,建议使用宏进行封装。
🏷️

标签

➡️

继续阅读