【发布时间】:2016-07-14 15:20:15
【问题描述】:
MSP430 系列微控制器提供快速位设置/位清除机器指令。
这些位操作命令对于某些具有副作用或需要原子访问以防止故障或竞争条件的寄存器或 I/O 操作很有用。
但是,除了 MSP430 内核的几乎所有其他特殊功能的许多内部函数外,GCC 不提供位操作指令的内部函数。
这是为什么呢? GCC 是否仍然发出这些指令,发出这些指令需要哪些 C 代码?
【问题讨论】:
标签: gcc intrinsics msp430
MSP430 系列微控制器提供快速位设置/位清除机器指令。
这些位操作命令对于某些具有副作用或需要原子访问以防止故障或竞争条件的寄存器或 I/O 操作很有用。
但是,除了 MSP430 内核的几乎所有其他特殊功能的许多内部函数外,GCC 不提供位操作指令的内部函数。
这是为什么呢? GCC 是否仍然发出这些指令,发出这些指令需要哪些 C 代码?
【问题讨论】:
标签: gcc intrinsics msp430
C 语言已经允许表达位操作:
$猫比特.c #include【讨论】:
P1IE |= BIT1。编译器理解这一点,知道它的含义,以及如何为它生成有效的代码。