QK Class Reference

QK services. More...

#include <qk.h>

List of all members.

Static Public Member Functions

static char const Q_ROM *Q_ROM_VAR getVersion (void)
 get the current QK version number string
static char const Q_ROM *Q_ROM_VAR getPortVersion (void)
 Returns the QK-port version.
static void onIdle (void)
 QK idle callback (customized in BSPs for QK).
static QMutex mutexLock (uint8_t prioCeiling)
 QK priority-ceiling mutex lock.
static void mutexUnlock (QMutex mutex)
 QK priority-ceiling mutex unlock.

Detailed Description

QK services.

This class groups together QK services. It has only static members and should not be instantiated. to the QK class (as static class members). However, to avoid C++ potential name-mangling problems in assembly language, these elements are defined outside of the QK class and use the extern "C" linkage specification.

Definition at line 195 of file qk.h.


Member Function Documentation

static char const Q_ROM* Q_ROM_VAR QK::getPortVersion ( void   )  [static]

Returns the QK-port version.

This function returns constant version string in the format x.y.zz, where x (one digit) is the major version, y (one digit) is the minor version, and zz (two digits) is the maintenance release version. An example of the QK-port version string is "1.1.03".

See also:
QK::getVersion()
char const Q_ROM *Q_ROM_VAR QK::getVersion ( void   )  [static]

get the current QK version number string

Returns:
version of the QK as a constant 6-character string of the form x.y.zz, where x is a 1-digit major version number, y is a 1-digit minor version number, and zz is a 2-digit release number.
See also:
QK::getPortVersion()

Definition at line 52 of file qk.cpp.

References QF::init(), QActive::m_prio, QF::onCleanup(), onIdle(), QF::onStartup(), Q_ASSERT, Q_REQUIRE, Q_ROM, Q_ROM_VAR, QF_MAX_ACTIVE, QK_init(), QK_INT_LOCK_, QK_INT_LOCK_KEY_, QK_INT_UNLOCK_, QP_VERSION, QS_FLUSH, QF::remove_(), QF::run(), QActive::start(), QActive::stop(), and QF::stop().

QMutex QK::mutexLock ( uint8_t  prioCeiling  )  [static]

QK priority-ceiling mutex lock.

Lock the QK scheduler up to the priority level prioCeiling. The code between QK::mutexLock() and QK::mutexUnlock() should be kept to the minimum.

    QMutex mux;
    . . .
    mux = QK::mutexLock(PRIO_CEILING);

    // access the shared resource

    QK::mutexUnlock(mux);

    . . . 

Definition at line 44 of file qk_mutex.cpp.

References QK_ceilingPrio_, QK_INT_LOCK_, QK_INT_LOCK_KEY_, QK_INT_UNLOCK_, QS_BEGIN_NOLOCK_, QS_END_NOLOCK_, QS_QK_MUTEX_LOCK, and QS_U8_.

void QK::mutexUnlock ( QMutex  mutex  )  [static]

QK priority-ceiling mutex unlock.

Note:
This function should be always paired with QK::mutexLock(). The code between QK::mutexLock() and QK::mutexUnlock() should be kept to the minimum.
    QMutex mux;
    . . .
    mux = QK::mutexLock(PRIO_CEILING);

    // access the shared resource

    QK::mutexUnlock(mux);

    . . . 

Definition at line 62 of file qk_mutex.cpp.

References QK_ceilingPrio_, QK_INT_LOCK_, QK_INT_LOCK_KEY_, QK_INT_UNLOCK_, QS_BEGIN_NOLOCK_, QS_END_NOLOCK_, QS_QK_MUTEX_UNLOCK, and QS_U8_.

static void QK::onIdle ( void   )  [static]

QK idle callback (customized in BSPs for QK).

QK::onIdle() is called continously by the QK idle loop. This callback gives the application an opportunity to enter a power-saving CPU mode, or perform some other idle processing.

Note:
QK::onIdle() is invoked with interrupts unlocked and must also return with interrupts unlocked.
See also:
QF::onIdle()

Referenced by getVersion().


The documentation for this class was generated from the following files:
Generated on Tue Mar 16 19:39:10 2010 for QP/C++ by  doxygen 1.6.3