技巧和窍门–中断API

中断在实时嵌入式系统中起着至关重要的作用,但是很少有中断控制与应用程序编程接口(API)相关联。汇编语言代码或编译器内在函数通常散布在整个代码中,使得使用中断函数很危险且难以理解。本文将探讨中断API的外观。

可以定义六种不同的功能来处理任何微控制器上的大多数中断行为。这些功能的摘要可以在下面看到。

Isr_Enable(IsrType)

Isr_Disable(IsrType)

Isr_GlobalEnable()

Isr_GlobalDisable()

Isr_CriticalSectionStart()

Isr_CriticalSectionEnd()

前两个功能用于启用和禁用单个中断。例如,在ARM Coretex-M0 +上,IsrType将允许在嵌套矢量中断控制器(NVIC)中控制多达32个不同的中断。这些功能被分为两个不同的功能,以通过防止任何需要刷新指令管道的分支代码来提高性能。

全局功能用于在全局或系统级别禁用和启用中断。这些功能通常会在初始化期间使用。在这里,可以使用汇编级指令或编译器内部指令将CPU控制在最低级别。

最后两个控制中断的功能旨在开始和结束代码的关键部分。当需要原子操作时,开发人员通常会在关键部分之前禁用中断,然后在之后启用它们。问题在于,假定首先启用了中断!最后两个功能跟踪中断是否被启用和禁用,并在关键部分之后恢复中断的状态。

这六个简单的API函数的使用可以大大提高嵌入式软件的可读性和清晰度。可以下载API的可下载模板 这里 或单击本文末尾的下载图像。这些是开发嵌入式系统时应使用的一小部分API的简单示例。对于其他API,请考虑适用于MCU的API标准’s located 这里 。与API标准相关的模板将很快在商店中提供。

下载ISR API:

 下载链接

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.