声明:
1、本翻译仅供个人学习使用,本人没有提供技术支持的义务,也不承担由此引发的任何后果。
2、请勿用于商业用途。
3、英文来自:http://www.keil.com/support/man/docs/c51/。
4、欢迎大家共同与我交流探讨(290207203@qq.com)。
ONEREGBANK Compiler Directive
| Abbreviation | OB |
| Arguments | None. |
| Default | None. |
| µVision | Options — C51 — Misc controls. |
| Description | The C51 Compiler selects registerbank 0 on entry to interrupts that do not specify theusing attribute. This is done at the beginning of the interrupt service routine with theMOV PSW,#0 instruction. This ensures that high-priority interrupts that do not use theusing attribute can interrupt lower priority interrupts that use a different registerbank. If your application uses only one registerbank for interrupts, you may use theONEREGBANK directive. This elimitates the MOV PSW,#0 instruction. |
| Example | C51 SAMPLE.C ONEREGBANK #pragma OB |
ONEREGBANK 编译器伪指令
| 缩写 | OB |
| 参数 | 无。 |
| 缺省 | 无。 |
| µVision | Options — C51 — Misc controls. |
| 描述 | 当不使用using属性时,C51 编译器选择寄存器组0作为中断的入口。这在中断服务程序的开始用指令MOV PSW,#0实现。 这确保未使用using属性的高优先级中断可以中断使用不同寄存器组的低优先级中断。 如果用户的中断只使用一个寄存器组, 用户使用ONEREGBANK伪指令。 它将消除指令MOV PSW,#0。 |
| 示例 | C51 SAMPLE.C ONEREGBANK #pragma OB |
本文详细介绍了C51编译器中的ONEREGBANK伪指令,该指令用于优化中断处理过程,当应用程序仅使用单一寄存器组时,可以避免不必要的寄存器切换开销。
1085

被折叠的 条评论
为什么被折叠?



