QP/C++  7.0.1
Real-Time Embedded Framework
qxk_port.hpp File Reference

QXK/C++ port to ARM Cortex-M, GNU-ARM toolset. More...

#include "qxk.hpp"

Go to the source code of this file.

Macros

#define QXK_ISR_CONTEXT_()   (QXK_get_IPSR() != 0U)
 
#define QXK_CONTEXT_SWITCH_()    *Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U)
 
#define QXK_ISR_ENTRY()   ((void)0)
 
#define QXK_ISR_EXIT()
 
#define QXK_ARM_ERRATUM_838869()    __asm volatile ("dsb" ::: "memory")
 
#define QXK_INIT()   QXK_init()
 

Functions

 __attribute__ ((always_inline)) static inline uint32_t QXK_get_IPSR(void)
 
void QXK_init (void)
 
void QXK_thread_ret (void)
 

Detailed Description

Date
Last updated on: 2022-05-02
Version
Last updated for: Version 7.0.0, 2022-04-30

Definition in file qxk_port.hpp.

Macro Definition Documentation

◆ QXK_ISR_CONTEXT_

#define QXK_ISR_CONTEXT_ ( )    (QXK_get_IPSR() != 0U)

Definition at line 35 of file qxk_port.hpp.

◆ QXK_CONTEXT_SWITCH_

#define QXK_CONTEXT_SWITCH_ ( )     *Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U)

Definition at line 45 of file qxk_port.hpp.

◆ QXK_ISR_ENTRY

#define QXK_ISR_ENTRY ( )    ((void)0)

Definition at line 49 of file qxk_port.hpp.

◆ QXK_ISR_EXIT

#define QXK_ISR_EXIT ( )
Value:
do { \
QF_INT_DISABLE(); \
if (QXK_sched_() != 0U) { \
QXK_CONTEXT_SWITCH_(); \
} \
QF_INT_ENABLE(); \
QXK_ARM_ERRATUM_838869(); \
} while (false)
std::uint_fast8_t QXK_sched_(void) noexcept
QXK scheduler finds the highest-priority thread ready to run.
Definition: qxk.cpp:340

Definition at line 51 of file qxk_port.hpp.

◆ QXK_ARM_ERRATUM_838869

#define QXK_ARM_ERRATUM_838869 ( )     __asm volatile ("dsb" ::: "memory")

Definition at line 67 of file qxk_port.hpp.

◆ QXK_INIT

#define QXK_INIT ( )    QXK_init()

Definition at line 84 of file qxk_port.hpp.

Function Documentation

◆ __attribute__()

__attribute__ ( (always_inline)  )

Definition at line 37 of file qxk_port.hpp.

◆ QXK_init()

void QXK_init ( void  )

Definition at line 74 of file qxk_port.cpp.

◆ QXK_thread_ret()

void QXK_thread_ret ( void  )