📄 chipspiresource.nc
字号:
/**
* Interface for the SPI resource for an entire chip. The chip accesses
* the platform SPI resource one time, but can have multiple clients
* using the SPI bus on top. When all of the clients are released, the
* chip will normally try to release itself from the platforms SPI bus.
* In some cases, this isn't desirable - so even though upper components
* aren't actively using the SPI bus, they can tell the chip to hold onto
* it so they can have immediate access when they need.
*
* Any component that aborts a release MUST attempt the release at a later
* time if they don't acquire and release the SPI bus naturally after the
* abort.
*
* @author David Moss
*/
interface ChipSpiResource {
/**
* The SPI bus is about to be automatically released. Modules that aren't
* using the SPI bus but still want the SPI bus to stick around must call
* abortRelease() within the event.
*/
async event void releasing();
/**
* Abort the release of the SPI bus. This must be called only with the
* releasing() event
*/
async command void abortRelease();
/**
* Release the SPI bus if there are no objections
* @return SUCCESS if the SPI bus is released from the chip.
* FAIL if the SPI bus is already in use.
* EBUSY if some component aborted the release.
*/
async command error_t attemptRelease();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -