From cfe1de0dbbab7c58dc97bd927de4e4bdc3c0a06c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B6=E4=B8=AD=E6=96=AD=E5=BB=B6=E8=BF=9F=E7=9A=84RTOS?= Date: Mon, 17 Feb 2025 06:00:31 +0000 Subject: [PATCH] update Config/mcucfg_cmx.h. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 零中断延迟的RTOS --- Config/mcucfg_cmx.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Config/mcucfg_cmx.h b/Config/mcucfg_cmx.h index f676f7df..e735881b 100644 --- a/Config/mcucfg_cmx.h +++ b/Config/mcucfg_cmx.h @@ -115,8 +115,11 @@ do{ \ // 方案二、互斥访问机制 // 该方案适用于所有ARM内核,可实现全局不关总中断、零中断延迟。 -// 缺点是在默认情况下,系统会全局占用寄存器r7专用于互斥访问,这使得大部分函数都将无法使用r7。 -// 详情参见相关说明。 +// 缺点是在默认情况下、为提高易用性,系统会自动声明“全局寄存器变量r7”专用于互斥访问,这使得全局所有非库函数都将无法使用r7。 +// 为了追求更好的性能,您可采用手动声明方式: +// 1、注释掉 port_cmx.h 文件中的自动声明; +// 2、把所有调用中断挂起服务_FIFO的中断函数,统一放在一个C文件中,并在该文件中一次性声明全局寄存器变量r7。 +// 如在 stm32f0xx_it.c 文件中,在所有中断函数上方加入 register void **mPendSV_FIFO_Rx __ASM("r7"); // 方案三、关闭总中断 // 该方案适用于所有ARM内核,并具有极短的、确定的关闭总中断时间(包括再次开启总中断在内,不超过10个指令周期)。