cleanup: removing NOMANUAL
The \NOMANUAL tag is a remnant from days of yore and is no longer needed or useful. Cleaning up the code references to this. Change-Id: I1b8cc9c9560d1dbb711f05fa63fd23386789875c Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
This commit is contained in:
parent
090385b666
commit
2a63743192
65 changed files with 6 additions and 490 deletions
|
@ -52,10 +52,7 @@ const NANO_ESF _default_esf = {
|
||||||
* create its own or use a pointer to the global default ESF <_default_esf>.
|
* create its own or use a pointer to the global default ESF <_default_esf>.
|
||||||
*
|
*
|
||||||
* @return This function does not return.
|
* @return This function does not return.
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
FUNC_NORETURN void _NanoFatalErrorHandler(unsigned int reason,
|
FUNC_NORETURN void _NanoFatalErrorHandler(unsigned int reason,
|
||||||
const NANO_ESF *pEsf)
|
const NANO_ESF *pEsf)
|
||||||
{
|
{
|
||||||
|
|
|
@ -52,10 +52,7 @@
|
||||||
* (short form).
|
* (short form).
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _FaultDump(const NANO_ESF *esf, int fault)
|
void _FaultDump(const NANO_ESF *esf, int fault)
|
||||||
{
|
{
|
||||||
ARG_UNUSED(esf);
|
ARG_UNUSED(esf);
|
||||||
|
@ -81,10 +78,7 @@ void _FaultDump(const NANO_ESF *esf, int fault)
|
||||||
* responsible for implementing the error handling policy.
|
* responsible for implementing the error handling policy.
|
||||||
*
|
*
|
||||||
* @return This function does not return.
|
* @return This function does not return.
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _Fault(void)
|
void _Fault(void)
|
||||||
{
|
{
|
||||||
uint32_t ecr = _arc_v2_aux_reg_read(_ARC_V2_ECR);
|
uint32_t ecr = _arc_v2_aux_reg_read(_ARC_V2_ECR);
|
||||||
|
|
|
@ -65,8 +65,6 @@ static inline void nonEssentialTaskAbort(void)
|
||||||
* @param pEsf pointer to exception stack frame
|
* @param pEsf pointer to exception stack frame
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
void _SysFatalErrorHandler(unsigned int reason, const NANO_ESF * pEsf)
|
void _SysFatalErrorHandler(unsigned int reason, const NANO_ESF * pEsf)
|
||||||
{
|
{
|
||||||
|
|
|
@ -234,10 +234,7 @@ static ALWAYS_INLINE void nanoArchInit(void)
|
||||||
* the fiber's thread is stored in its struct tcs structure.
|
* the fiber's thread is stored in its struct tcs structure.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static ALWAYS_INLINE void fiberRtnValueSet(struct tcs *fiber, unsigned int value)
|
static ALWAYS_INLINE void fiberRtnValueSet(struct tcs *fiber, unsigned int value)
|
||||||
{
|
{
|
||||||
fiber->return_value = value;
|
fiber->return_value = value;
|
||||||
|
@ -248,10 +245,7 @@ static ALWAYS_INLINE void fiberRtnValueSet(struct tcs *fiber, unsigned int value
|
||||||
* @brief Indicates if kernel is handling interrupt
|
* @brief Indicates if kernel is handling interrupt
|
||||||
*
|
*
|
||||||
* @return 1 if interrupt handler is executed, 0 otherwise
|
* @return 1 if interrupt handler is executed, 0 otherwise
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static ALWAYS_INLINE int _IS_IN_ISR(void)
|
static ALWAYS_INLINE int _IS_IN_ISR(void)
|
||||||
{
|
{
|
||||||
uint32_t act = _arc_v2_aux_reg_read(_ARC_V2_AUX_IRQ_ACT);
|
uint32_t act = _arc_v2_aux_reg_read(_ARC_V2_AUX_IRQ_ACT);
|
||||||
|
|
|
@ -65,10 +65,7 @@ const NANO_ESF _default_esf = {0xdeaddead, /* a1 */
|
||||||
* @param pEsf pointer to the exception stack frame
|
* @param pEsf pointer to the exception stack frame
|
||||||
*
|
*
|
||||||
* @return This function does not return.
|
* @return This function does not return.
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
FUNC_NORETURN void _NanoFatalErrorHandler(unsigned int reason,
|
FUNC_NORETURN void _NanoFatalErrorHandler(unsigned int reason,
|
||||||
const NANO_ESF *pEsf)
|
const NANO_ESF *pEsf)
|
||||||
{
|
{
|
||||||
|
|
|
@ -60,10 +60,7 @@
|
||||||
* BFAR: 0xff001234
|
* BFAR: 0xff001234
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _FaultDump(const NANO_ESF *esf, int fault)
|
void _FaultDump(const NANO_ESF *esf, int fault)
|
||||||
{
|
{
|
||||||
int escalation = 0;
|
int escalation = 0;
|
||||||
|
@ -111,10 +108,7 @@ void _FaultDump(const NANO_ESF *esf, int fault)
|
||||||
* See _FaultDump() for example.
|
* See _FaultDump() for example.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void _FaultThreadShow(const NANO_ESF *esf)
|
static void _FaultThreadShow(const NANO_ESF *esf)
|
||||||
{
|
{
|
||||||
PR_EXC(" Executing thread ID (thread): 0x%x\n"
|
PR_EXC(" Executing thread ID (thread): 0x%x\n"
|
||||||
|
@ -130,10 +124,7 @@ static void _FaultThreadShow(const NANO_ESF *esf)
|
||||||
* See _FaultDump() for example.
|
* See _FaultDump() for example.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void _MpuFault(const NANO_ESF *esf, int fromHardFault)
|
static void _MpuFault(const NANO_ESF *esf, int fromHardFault)
|
||||||
{
|
{
|
||||||
PR_EXC("***** MPU FAULT *****\n");
|
PR_EXC("***** MPU FAULT *****\n");
|
||||||
|
@ -164,10 +155,7 @@ static void _MpuFault(const NANO_ESF *esf, int fromHardFault)
|
||||||
* See _FaultDump() for example.
|
* See _FaultDump() for example.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void _BusFault(const NANO_ESF *esf, int fromHardFault)
|
static void _BusFault(const NANO_ESF *esf, int fromHardFault)
|
||||||
{
|
{
|
||||||
PR_EXC("***** BUS FAULT *****\n");
|
PR_EXC("***** BUS FAULT *****\n");
|
||||||
|
@ -204,10 +192,7 @@ static void _BusFault(const NANO_ESF *esf, int fromHardFault)
|
||||||
* See _FaultDump() for example.
|
* See _FaultDump() for example.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void _UsageFault(const NANO_ESF *esf)
|
static void _UsageFault(const NANO_ESF *esf)
|
||||||
{
|
{
|
||||||
PR_EXC("***** USAGE FAULT *****\n");
|
PR_EXC("***** USAGE FAULT *****\n");
|
||||||
|
@ -244,10 +229,7 @@ static void _UsageFault(const NANO_ESF *esf)
|
||||||
* See _FaultDump() for example.
|
* See _FaultDump() for example.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void _HardFault(const NANO_ESF *esf)
|
static void _HardFault(const NANO_ESF *esf)
|
||||||
{
|
{
|
||||||
PR_EXC("***** HARD FAULT *****\n");
|
PR_EXC("***** HARD FAULT *****\n");
|
||||||
|
@ -272,10 +254,7 @@ static void _HardFault(const NANO_ESF *esf)
|
||||||
* See _FaultDump() for example.
|
* See _FaultDump() for example.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void _DebugMonitor(const NANO_ESF *esf)
|
static void _DebugMonitor(const NANO_ESF *esf)
|
||||||
{
|
{
|
||||||
PR_EXC("***** Debug monitor exception (not implemented) *****\n");
|
PR_EXC("***** Debug monitor exception (not implemented) *****\n");
|
||||||
|
@ -288,10 +267,7 @@ static void _DebugMonitor(const NANO_ESF *esf)
|
||||||
* See _FaultDump() for example.
|
* See _FaultDump() for example.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void _ReservedException(const NANO_ESF *esf, int fault)
|
static void _ReservedException(const NANO_ESF *esf, int fault)
|
||||||
{
|
{
|
||||||
PR_EXC("***** %s %d) *****\n",
|
PR_EXC("***** %s %d) *****\n",
|
||||||
|
@ -317,10 +293,7 @@ static void _ReservedException(const NANO_ESF *esf, int fault)
|
||||||
* Address: 0xff001234
|
* Address: 0xff001234
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void _FaultDump(const NANO_ESF *esf, int fault)
|
static void _FaultDump(const NANO_ESF *esf, int fault)
|
||||||
{
|
{
|
||||||
switch (fault) {
|
switch (fault) {
|
||||||
|
@ -363,10 +336,7 @@ static void _FaultDump(const NANO_ESF *esf, int fault)
|
||||||
* @param psp pointer to potential ESF on PSP
|
* @param psp pointer to potential ESF on PSP
|
||||||
*
|
*
|
||||||
* @return This function does not return.
|
* @return This function does not return.
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _Fault(const NANO_ESF *msp, const NANO_ESF *psp)
|
void _Fault(const NANO_ESF *msp, const NANO_ESF *psp)
|
||||||
{
|
{
|
||||||
const NANO_ESF *esf = _ScbIsNestedExc() ? msp : psp;
|
const NANO_ESF *esf = _ScbIsNestedExc() ? msp : psp;
|
||||||
|
@ -384,10 +354,7 @@ void _Fault(const NANO_ESF *msp, const NANO_ESF *psp)
|
||||||
* Turns on the desired hardware faults.
|
* Turns on the desired hardware faults.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _FaultInit(void)
|
void _FaultInit(void)
|
||||||
{
|
{
|
||||||
_ScbDivByZeroFaultEnable();
|
_ScbDivByZeroFaultEnable();
|
||||||
|
|
|
@ -66,10 +66,7 @@ static inline void nonEssentialTaskAbort(void)
|
||||||
* @param pEsf pointer to exception stack frame
|
* @param pEsf pointer to exception stack frame
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _SysFatalErrorHandler(unsigned int reason, const NANO_ESF * pEsf)
|
void _SysFatalErrorHandler(unsigned int reason, const NANO_ESF * pEsf)
|
||||||
{
|
{
|
||||||
nano_context_type_t curCtx = sys_execution_context_type_get();
|
nano_context_type_t curCtx = sys_execution_context_type_get();
|
||||||
|
|
|
@ -49,10 +49,7 @@ static struct k_args cmd_packet;
|
||||||
* - the task encounters a fatal exception
|
* - the task encounters a fatal exception
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _TaskAbort(void)
|
void _TaskAbort(void)
|
||||||
{
|
{
|
||||||
const int taskAbortCode = 1;
|
const int taskAbortCode = 1;
|
||||||
|
|
|
@ -33,10 +33,7 @@
|
||||||
* Obtain and return current value of IPSR register.
|
* Obtain and return current value of IPSR register.
|
||||||
*
|
*
|
||||||
* @return the contents of the IPSR register
|
* @return the contents of the IPSR register
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static ALWAYS_INLINE uint32_t _IpsrGet(void)
|
static ALWAYS_INLINE uint32_t _IpsrGet(void)
|
||||||
{
|
{
|
||||||
uint32_t vector;
|
uint32_t vector;
|
||||||
|
@ -52,10 +49,7 @@ static ALWAYS_INLINE uint32_t _IpsrGet(void)
|
||||||
* Store the value of <msp> in MSP register.
|
* Store the value of <msp> in MSP register.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static ALWAYS_INLINE void _MspSet(uint32_t msp /* value to store in MSP */
|
static ALWAYS_INLINE void _MspSet(uint32_t msp /* value to store in MSP */
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
|
|
@ -43,8 +43,6 @@
|
||||||
* interrupt context.
|
* interrupt context.
|
||||||
*
|
*
|
||||||
* @return 1 if in ISR, 0 if not.
|
* @return 1 if in ISR, 0 if not.
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
static ALWAYS_INLINE int _IsInIsr(void)
|
static ALWAYS_INLINE int _IsInIsr(void)
|
||||||
{
|
{
|
||||||
|
@ -63,10 +61,7 @@ static ALWAYS_INLINE int _IsInIsr(void)
|
||||||
* Enable fault exceptions.
|
* Enable fault exceptions.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static ALWAYS_INLINE void _ExcSetup(void)
|
static ALWAYS_INLINE void _ExcSetup(void)
|
||||||
{
|
{
|
||||||
_ScbExcPrioSet(_EXC_PENDSV, _EXC_PRIO(0xff));
|
_ScbExcPrioSet(_EXC_PENDSV, _EXC_PRIO(0xff));
|
||||||
|
|
|
@ -52,10 +52,7 @@ extern char _interrupt_stack[CONFIG_ISR_STACK_SIZE];
|
||||||
* pointer) register, and switched to automatically when taking an exception.
|
* pointer) register, and switched to automatically when taking an exception.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static ALWAYS_INLINE void _InterruptStackSetup(void)
|
static ALWAYS_INLINE void _InterruptStackSetup(void)
|
||||||
{
|
{
|
||||||
uint32_t msp = __GET_MSP();
|
uint32_t msp = __GET_MSP();
|
||||||
|
|
|
@ -179,10 +179,7 @@ static ALWAYS_INLINE void nanoArchInit(void)
|
||||||
* @param value is the value to set as a return value
|
* @param value is the value to set as a return value
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static ALWAYS_INLINE void fiberRtnValueSet(struct tcs *fiber,
|
static ALWAYS_INLINE void fiberRtnValueSet(struct tcs *fiber,
|
||||||
unsigned int value)
|
unsigned int value)
|
||||||
{
|
{
|
||||||
|
|
|
@ -67,10 +67,7 @@ const NANO_ESF _default_esf = {
|
||||||
* @param pEsf pointer to the exception stack frame
|
* @param pEsf pointer to the exception stack frame
|
||||||
*
|
*
|
||||||
* @return This function does not return.
|
* @return This function does not return.
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
FUNC_NORETURN void _NanoFatalErrorHandler(unsigned int reason,
|
FUNC_NORETURN void _NanoFatalErrorHandler(unsigned int reason,
|
||||||
const NANO_ESF *pEsf)
|
const NANO_ESF *pEsf)
|
||||||
{
|
{
|
||||||
|
|
|
@ -87,10 +87,7 @@ entering and exiting a C interrupt handler.
|
||||||
* C function prototype:
|
* C function prototype:
|
||||||
*
|
*
|
||||||
* void _IntEnt (void);
|
* void _IntEnt (void);
|
||||||
*
|
|
||||||
* NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
SECTION_FUNC(TEXT, _IntEnt)
|
SECTION_FUNC(TEXT, _IntEnt)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -252,10 +249,7 @@ BRANCH_LABEL(_HandleIdle)
|
||||||
* C function prototype:
|
* C function prototype:
|
||||||
*
|
*
|
||||||
* void _IntExit (void);
|
* void _IntExit (void);
|
||||||
*
|
|
||||||
* NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
SECTION_FUNC(TEXT, _IntExit)
|
SECTION_FUNC(TEXT, _IntExit)
|
||||||
|
|
||||||
cli /* disable interrupts */
|
cli /* disable interrupts */
|
||||||
|
@ -409,10 +403,7 @@ BRANCH_LABEL(nestedInterrupt)
|
||||||
* in the EFLAGS register upon execution of the handler,
|
* in the EFLAGS register upon execution of the handler,
|
||||||
* thus _SpuriousIntNoErrCodeHandler()/_SpuriousIntHandler() shall be
|
* thus _SpuriousIntNoErrCodeHandler()/_SpuriousIntHandler() shall be
|
||||||
* invoked with interrupts disabled.
|
* invoked with interrupts disabled.
|
||||||
*
|
|
||||||
* NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
SECTION_FUNC(TEXT, _SpuriousIntNoErrCodeHandler)
|
SECTION_FUNC(TEXT, _SpuriousIntNoErrCodeHandler)
|
||||||
|
|
||||||
pushl $0 /* push dummy err code onto stk */
|
pushl $0 /* push dummy err code onto stk */
|
||||||
|
|
|
@ -52,10 +52,7 @@
|
||||||
* @param pEsf the pointer to the exception stack frame
|
* @param pEsf the pointer to the exception stack frame
|
||||||
*
|
*
|
||||||
* @return This function does not return.
|
* @return This function does not return.
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
FUNC_NORETURN void _SysFatalErrorHandler(unsigned int reason,
|
FUNC_NORETURN void _SysFatalErrorHandler(unsigned int reason,
|
||||||
const NANO_ESF * pEsf)
|
const NANO_ESF * pEsf)
|
||||||
{
|
{
|
||||||
|
|
|
@ -62,10 +62,7 @@ void _thread_entry_wrapper(_thread_entry_t, _thread_arg_t,
|
||||||
* @param options thread options: USE_FP, USE_SSE
|
* @param options thread options: USE_FP, USE_SSE
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void _new_thread_internal(char *pStackMem, unsigned stackSize,
|
static void _new_thread_internal(char *pStackMem, unsigned stackSize,
|
||||||
int priority, unsigned options)
|
int priority, unsigned options)
|
||||||
{
|
{
|
||||||
|
@ -250,10 +247,7 @@ static void _new_thread_internal(char *pStackMem, unsigned stackSize,
|
||||||
* _thread_entry after it has done its work.
|
* _thread_entry after it has done its work.
|
||||||
*
|
*
|
||||||
* @return this routine does NOT return.
|
* @return this routine does NOT return.
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
__asm__("\t.globl _thread_entry\n"
|
__asm__("\t.globl _thread_entry\n"
|
||||||
"\t.section .text\n"
|
"\t.section .text\n"
|
||||||
"_thread_entry_wrapper:\n" /* should place this func .S file and use
|
"_thread_entry_wrapper:\n" /* should place this func .S file and use
|
||||||
|
@ -284,10 +278,7 @@ __asm__("\t.globl _thread_entry\n"
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @return opaque pointer to initialized TCS structure
|
* @return opaque pointer to initialized TCS structure
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _new_thread(char *pStackMem, unsigned stackSize, _thread_entry_t pEntry,
|
void _new_thread(char *pStackMem, unsigned stackSize, _thread_entry_t pEntry,
|
||||||
void *parameter1, void *parameter2, void *parameter3,
|
void *parameter1, void *parameter2, void *parameter3,
|
||||||
int priority, unsigned options)
|
int priority, unsigned options)
|
||||||
|
|
|
@ -36,10 +36,7 @@ NANO_CPU_EXC_CONNECT_NO_ERR(handler, vector, 0)
|
||||||
* @brief Return the current value of the EFLAGS register
|
* @brief Return the current value of the EFLAGS register
|
||||||
*
|
*
|
||||||
* @return the EFLAGS register.
|
* @return the EFLAGS register.
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline unsigned int EflagsGet(void)
|
static inline unsigned int EflagsGet(void)
|
||||||
{
|
{
|
||||||
unsigned int eflags; /* EFLAGS register contents */
|
unsigned int eflags; /* EFLAGS register contents */
|
||||||
|
@ -65,7 +62,6 @@ static inline unsigned int EflagsGet(void)
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline void _FpAccessDisable(void)
|
static inline void _FpAccessDisable(void)
|
||||||
{
|
{
|
||||||
void *tempReg;
|
void *tempReg;
|
||||||
|
@ -91,7 +87,6 @@ static inline void _FpAccessDisable(void)
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline void _do_fp_ctx_save(int flags, void *preemp_float_reg)
|
static inline void _do_fp_ctx_save(int flags, void *preemp_float_reg)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_SSE
|
#ifdef CONFIG_SSE
|
||||||
|
@ -121,7 +116,6 @@ static inline void _do_fp_ctx_save(int flags, void *preemp_float_reg)
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline void _do_fp_ctx_init(int flags)
|
static inline void _do_fp_ctx_init(int flags)
|
||||||
{
|
{
|
||||||
/* initialize x87 FPU */
|
/* initialize x87 FPU */
|
||||||
|
|
|
@ -759,10 +759,7 @@ extern unsigned int _interrupt_vectors_allocated[];
|
||||||
* function calls.
|
* function calls.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline void nanoArchInit(void)
|
static inline void nanoArchInit(void)
|
||||||
{
|
{
|
||||||
extern void *__isr___SpuriousIntHandler;
|
extern void *__isr___SpuriousIntHandler;
|
||||||
|
@ -811,10 +808,7 @@ static inline void nanoArchInit(void)
|
||||||
* thus the fibers context is stored in its TCS.
|
* thus the fibers context is stored in its TCS.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline void fiberRtnValueSet(struct tcs *fiber, unsigned int value)
|
static inline void fiberRtnValueSet(struct tcs *fiber, unsigned int value)
|
||||||
{
|
{
|
||||||
/* write into 'eax' slot created in _Swap() entry */
|
/* write into 'eax' slot created in _Swap() entry */
|
||||||
|
|
|
@ -176,10 +176,7 @@ static inline int pci_bar_config_get(union pci_addr_reg pci_ctrl_addr,
|
||||||
* @return -1 on error, 0 if 32 bit BAR retrieved or 1 if 64 bit BAR retrieved
|
* @return -1 on error, 0 if 32 bit BAR retrieved or 1 if 64 bit BAR retrieved
|
||||||
*
|
*
|
||||||
* NOTE: Routine does not set up parameters for 64 bit BARS, they are ignored.
|
* NOTE: Routine does not set up parameters for 64 bit BARS, they are ignored.
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline int pci_bar_params_get(union pci_addr_reg pci_ctrl_addr,
|
static inline int pci_bar_params_get(union pci_addr_reg pci_ctrl_addr,
|
||||||
struct pci_dev_info *dev_info)
|
struct pci_dev_info *dev_info)
|
||||||
{
|
{
|
||||||
|
@ -225,10 +222,7 @@ static inline int pci_bar_params_get(union pci_addr_reg pci_ctrl_addr,
|
||||||
* @brief Scan the specified PCI device for all sub functions
|
* @brief Scan the specified PCI device for all sub functions
|
||||||
*
|
*
|
||||||
* @return 1 if a device has been found, 0 otherwise.
|
* @return 1 if a device has been found, 0 otherwise.
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline int pci_dev_scan(union pci_addr_reg pci_ctrl_addr,
|
static inline int pci_dev_scan(union pci_addr_reg pci_ctrl_addr,
|
||||||
struct pci_dev_info *dev_info)
|
struct pci_dev_info *dev_info)
|
||||||
{
|
{
|
||||||
|
@ -350,10 +344,7 @@ void pci_bus_scan_init(void)
|
||||||
*
|
*
|
||||||
* @return 1 on success, 0 otherwise. On success, dev_info is filled in with
|
* @return 1 on success, 0 otherwise. On success, dev_info is filled in with
|
||||||
* currently found device information
|
* currently found device information
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int pci_bus_scan(struct pci_dev_info *dev_info)
|
int pci_bus_scan(struct pci_dev_info *dev_info)
|
||||||
{
|
{
|
||||||
union pci_addr_reg pci_ctrl_addr;
|
union pci_addr_reg pci_ctrl_addr;
|
||||||
|
|
|
@ -65,10 +65,7 @@ static uint32_t clock_accumulated_count;
|
||||||
* - enabling interrupt generation.
|
* - enabling interrupt generation.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static ALWAYS_INLINE void enable(
|
static ALWAYS_INLINE void enable(
|
||||||
uint32_t count /* interrupt triggers when up-counter reaches this value */
|
uint32_t count /* interrupt triggers when up-counter reaches this value */
|
||||||
)
|
)
|
||||||
|
@ -90,8 +87,6 @@ static ALWAYS_INLINE void enable(
|
||||||
* value is the 'time' elapsed from the starting count (assumed to be 0).
|
* value is the 'time' elapsed from the starting count (assumed to be 0).
|
||||||
*
|
*
|
||||||
* @return the current counter value
|
* @return the current counter value
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
static ALWAYS_INLINE uint32_t count_get(void)
|
static ALWAYS_INLINE uint32_t count_get(void)
|
||||||
{
|
{
|
||||||
|
@ -106,8 +101,6 @@ static ALWAYS_INLINE uint32_t count_get(void)
|
||||||
* value to which the timer will count up to.
|
* value to which the timer will count up to.
|
||||||
*
|
*
|
||||||
* @return the limit value
|
* @return the limit value
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
static ALWAYS_INLINE uint32_t limit_get(void)
|
static ALWAYS_INLINE uint32_t limit_get(void)
|
||||||
{
|
{
|
||||||
|
@ -122,10 +115,7 @@ static ALWAYS_INLINE uint32_t limit_get(void)
|
||||||
* event is pushed onto the microkernel stack.
|
* event is pushed onto the microkernel stack.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _timer_int_handler(void *unused)
|
void _timer_int_handler(void *unused)
|
||||||
{
|
{
|
||||||
uint32_t zero_ip_bit = _ARC_V2_TMR_CTRL_NH | _ARC_V2_TMR_CTRL_IE;
|
uint32_t zero_ip_bit = _ARC_V2_TMR_CTRL_NH | _ARC_V2_TMR_CTRL_IE;
|
||||||
|
@ -149,7 +139,6 @@ void _timer_int_handler(void *unused)
|
||||||
*
|
*
|
||||||
* @return 0
|
* @return 0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int _sys_clock_driver_init(struct device *device)
|
int _sys_clock_driver_init(struct device *device)
|
||||||
{
|
{
|
||||||
int irq = CONFIG_ARCV2_TIMER0_INT_LVL;
|
int irq = CONFIG_ARCV2_TIMER0_INT_LVL;
|
||||||
|
@ -185,7 +174,6 @@ int _sys_clock_driver_init(struct device *device)
|
||||||
*
|
*
|
||||||
* @return up counter of elapsed clock cycles
|
* @return up counter of elapsed clock cycles
|
||||||
*/
|
*/
|
||||||
|
|
||||||
uint32_t _sys_clock_cycle_get(void)
|
uint32_t _sys_clock_cycle_get(void)
|
||||||
{
|
{
|
||||||
return (clock_accumulated_count + count_get());
|
return (clock_accumulated_count + count_get());
|
||||||
|
@ -204,7 +192,6 @@ FUNC_ALIAS(_sys_clock_cycle_get, task_cycle_get_32, uint32_t);
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void timer_disable(void)
|
void timer_disable(void)
|
||||||
{
|
{
|
||||||
unsigned int key; /* interrupt lock level */
|
unsigned int key; /* interrupt lock level */
|
||||||
|
|
|
@ -120,10 +120,7 @@ static unsigned char idle_mode = IDLE_NOT_TICKLESS;
|
||||||
* This routine disables the systick counter.
|
* This routine disables the systick counter.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static ALWAYS_INLINE void sysTickStop(void)
|
static ALWAYS_INLINE void sysTickStop(void)
|
||||||
{
|
{
|
||||||
union __stcsr reg;
|
union __stcsr reg;
|
||||||
|
@ -149,10 +146,7 @@ static ALWAYS_INLINE void sysTickStop(void)
|
||||||
* This routine enables the systick counter.
|
* This routine enables the systick counter.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static ALWAYS_INLINE void sysTickStart(void)
|
static ALWAYS_INLINE void sysTickStart(void)
|
||||||
{
|
{
|
||||||
union __stcsr reg;
|
union __stcsr reg;
|
||||||
|
@ -178,8 +172,6 @@ static ALWAYS_INLINE void sysTickStart(void)
|
||||||
* interrupt.
|
* interrupt.
|
||||||
*
|
*
|
||||||
* @return the current counter value
|
* @return the current counter value
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
static ALWAYS_INLINE uint32_t sysTickCurrentGet(void)
|
static ALWAYS_INLINE uint32_t sysTickCurrentGet(void)
|
||||||
{
|
{
|
||||||
|
@ -193,8 +185,6 @@ static ALWAYS_INLINE uint32_t sysTickCurrentGet(void)
|
||||||
* This routine returns the value from the reload value register.
|
* This routine returns the value from the reload value register.
|
||||||
*
|
*
|
||||||
* @return the counter's initial count/wraparound value
|
* @return the counter's initial count/wraparound value
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
static ALWAYS_INLINE uint32_t sysTickReloadGet(void)
|
static ALWAYS_INLINE uint32_t sysTickReloadGet(void)
|
||||||
{
|
{
|
||||||
|
@ -212,10 +202,7 @@ static ALWAYS_INLINE uint32_t sysTickReloadGet(void)
|
||||||
* Note that the value given is assumed to be valid (i.e., count < (1<<24)).
|
* Note that the value given is assumed to be valid (i.e., count < (1<<24)).
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static ALWAYS_INLINE void sysTickReloadSet(
|
static ALWAYS_INLINE void sysTickReloadSet(
|
||||||
uint32_t count /* count from which timer is to count down */
|
uint32_t count /* count from which timer is to count down */
|
||||||
)
|
)
|
||||||
|
@ -241,10 +228,7 @@ static ALWAYS_INLINE void sysTickReloadSet(
|
||||||
* system operation) or _real_timer_int_handler (when GDB_INFO is enabled).
|
* system operation) or _real_timer_int_handler (when GDB_INFO is enabled).
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _TIMER_INT_HANDLER(void *unused)
|
void _TIMER_INT_HANDLER(void *unused)
|
||||||
{
|
{
|
||||||
ARG_UNUSED(unused);
|
ARG_UNUSED(unused);
|
||||||
|
@ -382,10 +366,7 @@ void _TIMER_INT_HANDLER(void *unused)
|
||||||
* more elapsed ticks during a "tickless idle".
|
* more elapsed ticks during a "tickless idle".
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void sysTickTicklessIdleInit(void)
|
static void sysTickTicklessIdleInit(void)
|
||||||
{
|
{
|
||||||
/* enable counter, disable interrupt and set clock src to system clock
|
/* enable counter, disable interrupt and set clock src to system clock
|
||||||
|
@ -461,7 +442,6 @@ static void sysTickTicklessIdleInit(void)
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _timer_idle_enter(int32_t ticks /* system ticks */
|
void _timer_idle_enter(int32_t ticks /* system ticks */
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
@ -519,7 +499,6 @@ void _timer_idle_enter(int32_t ticks /* system ticks */
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _timer_idle_exit(void)
|
void _timer_idle_exit(void)
|
||||||
{
|
{
|
||||||
uint32_t count; /* timer's current count register value */
|
uint32_t count; /* timer's current count register value */
|
||||||
|
@ -650,7 +629,6 @@ int _sys_clock_driver_init(struct device *device)
|
||||||
* systick counter is a 24-bit down counter which is reset to "reload" value
|
* systick counter is a 24-bit down counter which is reset to "reload" value
|
||||||
* once it reaches 0.
|
* once it reaches 0.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
uint32_t _sys_clock_cycle_get(void)
|
uint32_t _sys_clock_cycle_get(void)
|
||||||
{
|
{
|
||||||
return clock_accumulated_count + (__scs.systick.strvr - __scs.systick.stcvr);
|
return clock_accumulated_count + (__scs.systick.strvr - __scs.systick.stcvr);
|
||||||
|
@ -670,7 +648,6 @@ FUNC_ALIAS(_sys_clock_cycle_get, task_cycle_get_32, uint32_t);
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void timer_disable(void)
|
void timer_disable(void)
|
||||||
{
|
{
|
||||||
unsigned int key; /* interrupt lock level */
|
unsigned int key; /* interrupt lock level */
|
||||||
|
|
|
@ -216,10 +216,7 @@ static int stale_irq_check;
|
||||||
* significant word is being retrieved (as per HPET documentation).
|
* significant word is being retrieved (as per HPET documentation).
|
||||||
*
|
*
|
||||||
* @return current 64-bit counter value
|
* @return current 64-bit counter value
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static uint64_t _hpetMainCounterAtomic(void)
|
static uint64_t _hpetMainCounterAtomic(void)
|
||||||
{
|
{
|
||||||
uint32_t highBits;
|
uint32_t highBits;
|
||||||
|
@ -243,10 +240,7 @@ static uint64_t _hpetMainCounterAtomic(void)
|
||||||
* is pushed onto the microkernel stack.
|
* is pushed onto the microkernel stack.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _timer_int_handler(void *unused)
|
void _timer_int_handler(void *unused)
|
||||||
{
|
{
|
||||||
ARG_UNUSED(unused);
|
ARG_UNUSED(unused);
|
||||||
|
|
|
@ -158,10 +158,7 @@ extern struct nano_stack _k_command_stack;
|
||||||
* This routine sets the timer for periodic mode.
|
* This routine sets the timer for periodic mode.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline void periodic_mode_set(void)
|
static inline void periodic_mode_set(void)
|
||||||
{
|
{
|
||||||
*_REG_TIMER |= LOAPIC_TIMER_PERIODIC;
|
*_REG_TIMER |= LOAPIC_TIMER_PERIODIC;
|
||||||
|
@ -177,10 +174,7 @@ static inline void periodic_mode_set(void)
|
||||||
* This routine disables the LOAPIC timer by masking it.
|
* This routine disables the LOAPIC timer by masking it.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline void timer_interrupt_mask(void)
|
static inline void timer_interrupt_mask(void)
|
||||||
{
|
{
|
||||||
*_REG_TIMER |= LOAPIC_LVT_MASKED;
|
*_REG_TIMER |= LOAPIC_LVT_MASKED;
|
||||||
|
@ -196,10 +190,7 @@ static inline void timer_interrupt_mask(void)
|
||||||
* This routine enables the LOAPIC timer by unmasking it.
|
* This routine enables the LOAPIC timer by unmasking it.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline void timer_interrupt_unmask(void)
|
static inline void timer_interrupt_unmask(void)
|
||||||
{
|
{
|
||||||
*_REG_TIMER &= ~LOAPIC_LVT_MASKED;
|
*_REG_TIMER &= ~LOAPIC_LVT_MASKED;
|
||||||
|
@ -214,10 +205,7 @@ static inline void timer_interrupt_unmask(void)
|
||||||
* Note that setting the value to zero stops the timer.
|
* Note that setting the value to zero stops the timer.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline void initial_count_register_set(
|
static inline void initial_count_register_set(
|
||||||
uint32_t count /* count from which timer is to count down */
|
uint32_t count /* count from which timer is to count down */
|
||||||
)
|
)
|
||||||
|
@ -233,10 +221,7 @@ static inline void initial_count_register_set(
|
||||||
* This routine sets the timer for one shot mode.
|
* This routine sets the timer for one shot mode.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline void one_shot_mode_set(void)
|
static inline void one_shot_mode_set(void)
|
||||||
{
|
{
|
||||||
*_REG_TIMER &= ~LOAPIC_TIMER_PERIODIC;
|
*_REG_TIMER &= ~LOAPIC_TIMER_PERIODIC;
|
||||||
|
@ -251,10 +236,7 @@ static inline void one_shot_mode_set(void)
|
||||||
* external bus frequency.
|
* external bus frequency.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline void divide_configuration_register_set(void)
|
static inline void divide_configuration_register_set(void)
|
||||||
{
|
{
|
||||||
*_REG_TIMER_CFG = (*_REG_TIMER_CFG & ~0xf) | LOAPIC_TIMER_DIVBY_1;
|
*_REG_TIMER_CFG = (*_REG_TIMER_CFG & ~0xf) | LOAPIC_TIMER_DIVBY_1;
|
||||||
|
@ -269,8 +251,6 @@ static inline void divide_configuration_register_set(void)
|
||||||
* interrupt.
|
* interrupt.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
static inline uint32_t current_count_register_get(void)
|
static inline uint32_t current_count_register_get(void)
|
||||||
{
|
{
|
||||||
|
@ -285,8 +265,6 @@ static inline uint32_t current_count_register_get(void)
|
||||||
* This routine gets the value from the initial count register.
|
* This routine gets the value from the initial count register.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
static inline uint32_t initial_count_register_get(void)
|
static inline uint32_t initial_count_register_get(void)
|
||||||
{
|
{
|
||||||
|
@ -303,7 +281,6 @@ static inline uint32_t initial_count_register_get(void)
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _timer_int_handler(void *unused /* parameter is not used */
|
void _timer_int_handler(void *unused /* parameter is not used */
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
@ -399,10 +376,7 @@ void _timer_int_handler(void *unused /* parameter is not used */
|
||||||
* "tickless idle".
|
* "tickless idle".
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void tickless_idle_init(void)
|
static void tickless_idle_init(void)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
@ -426,7 +400,6 @@ static void tickless_idle_init(void)
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _timer_idle_enter(int32_t ticks /* system ticks */
|
void _timer_idle_enter(int32_t ticks /* system ticks */
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
@ -482,7 +455,6 @@ void _timer_idle_enter(int32_t ticks /* system ticks */
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _timer_idle_exit(void)
|
void _timer_idle_exit(void)
|
||||||
{
|
{
|
||||||
uint32_t remaining_cycles;
|
uint32_t remaining_cycles;
|
||||||
|
@ -578,7 +550,6 @@ void _timer_idle_exit(void)
|
||||||
*
|
*
|
||||||
* @return 0
|
* @return 0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int _sys_clock_driver_init(struct device *device)
|
int _sys_clock_driver_init(struct device *device)
|
||||||
{
|
{
|
||||||
ARG_UNUSED(device);
|
ARG_UNUSED(device);
|
||||||
|
@ -617,7 +588,6 @@ int _sys_clock_driver_init(struct device *device)
|
||||||
*
|
*
|
||||||
* @return up counter of elapsed clock cycles
|
* @return up counter of elapsed clock cycles
|
||||||
*/
|
*/
|
||||||
|
|
||||||
uint32_t _sys_clock_cycle_get(void)
|
uint32_t _sys_clock_cycle_get(void)
|
||||||
{
|
{
|
||||||
uint32_t val; /* system clock value */
|
uint32_t val; /* system clock value */
|
||||||
|
@ -655,7 +625,6 @@ FUNC_ALIAS(_sys_clock_cycle_get, task_cycle_get_32, uint32_t);
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void timer_disable(void)
|
void timer_disable(void)
|
||||||
{
|
{
|
||||||
unsigned int key; /* interrupt lock level */
|
unsigned int key; /* interrupt lock level */
|
||||||
|
|
|
@ -20,8 +20,6 @@
|
||||||
* DESCRIPTION
|
* DESCRIPTION
|
||||||
* This file contains various macros to abstract compiler capabilities that
|
* This file contains various macros to abstract compiler capabilities that
|
||||||
* utilize toolchain specific attributes and/or pragmas.
|
* utilize toolchain specific attributes and/or pragmas.
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _TOOLCHAIN_H
|
#ifndef _TOOLCHAIN_H
|
||||||
|
|
|
@ -19,8 +19,6 @@
|
||||||
/*
|
/*
|
||||||
* DESCRIPTION
|
* DESCRIPTION
|
||||||
* Macros to abstract compiler capabilities (common to all toolchains).
|
* Macros to abstract compiler capabilities (common to all toolchains).
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -19,10 +19,7 @@
|
||||||
/*
|
/*
|
||||||
* DESCRIPTION
|
* DESCRIPTION
|
||||||
* Macros to abstract compiler capabilities for GCC toolchain.
|
* Macros to abstract compiler capabilities for GCC toolchain.
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <toolchain/common.h>
|
#include <toolchain/common.h>
|
||||||
|
|
||||||
#define FUNC_ALIAS(real_func, new_alias, return_type) \
|
#define FUNC_ALIAS(real_func, new_alias, return_type) \
|
||||||
|
|
|
@ -38,8 +38,6 @@
|
||||||
* @param ticks the number of ticks to idle
|
* @param ticks the number of ticks to idle
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
void nano_cpu_set_idle(int32_t ticks)
|
void nano_cpu_set_idle(int32_t ticks)
|
||||||
{
|
{
|
||||||
|
|
|
@ -78,8 +78,6 @@
|
||||||
* 0000000c A __tNANO_nested_OFFSET
|
* 0000000c A __tNANO_nested_OFFSET
|
||||||
* 00000000 A __tNANO_fiber_OFFSET
|
* 00000000 A __tNANO_fiber_OFFSET
|
||||||
* 00000004 A __tNANO_task_OFFSET
|
* 00000004 A __tNANO_task_OFFSET
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _GEN_OFFSET_H
|
#ifndef _GEN_OFFSET_H
|
||||||
|
|
|
@ -193,8 +193,6 @@ void *nano_task_lifo_get_wait(struct nano_lifo *lifo)
|
||||||
* @param lifo LIFO from which to receive.
|
* @param lifo LIFO from which to receive.
|
||||||
*
|
*
|
||||||
* @return Pointer to first element in the list
|
* @return Pointer to first element in the list
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
void *_nano_fiber_lifo_get_panic(struct nano_lifo *lifo)
|
void *_nano_fiber_lifo_get_panic(struct nano_lifo *lifo)
|
||||||
{
|
{
|
||||||
|
|
|
@ -44,10 +44,7 @@ int example_handler (int event);
|
||||||
* @brief Event signal speed test
|
* @brief Event signal speed test
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void event_test(void)
|
void event_test(void)
|
||||||
{
|
{
|
||||||
int nReturn;
|
int nReturn;
|
||||||
|
@ -168,10 +165,7 @@ void event_test(void)
|
||||||
* This variable is used in the main test.
|
* This variable is used in the main test.
|
||||||
*
|
*
|
||||||
* @return 1
|
* @return 1
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int example_handler (int event)
|
int example_handler (int event)
|
||||||
{
|
{
|
||||||
nEventValue = event + 1;
|
nEventValue = event + 1;
|
||||||
|
|
|
@ -25,10 +25,7 @@
|
||||||
* @brief Queue transfer speed test
|
* @brief Queue transfer speed test
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void queue_test(void)
|
void queue_test(void)
|
||||||
{
|
{
|
||||||
uint32_t et; /* elapsed time */
|
uint32_t et; /* elapsed time */
|
||||||
|
|
|
@ -27,10 +27,7 @@
|
||||||
* @brief Data receive task
|
* @brief Data receive task
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void dequtask(void)
|
void dequtask(void)
|
||||||
{
|
{
|
||||||
int x, i;
|
int x, i;
|
||||||
|
|
|
@ -81,10 +81,7 @@ void mailbox_put(uint32_t size, int count, uint32_t *time);
|
||||||
* @brief Mailbox transfer speed test
|
* @brief Mailbox transfer speed test
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void mailbox_test(void)
|
void mailbox_test(void)
|
||||||
{
|
{
|
||||||
uint32_t putsize;
|
uint32_t putsize;
|
||||||
|
@ -131,15 +128,12 @@ void mailbox_test(void)
|
||||||
*
|
*
|
||||||
* @brief Write the number of data chunks into the mailbox
|
* @brief Write the number of data chunks into the mailbox
|
||||||
*
|
*
|
||||||
* @return N/A
|
|
||||||
*
|
|
||||||
* @param size The size of the data chunk.
|
* @param size The size of the data chunk.
|
||||||
* @param count Number of data chunks.
|
* @param count Number of data chunks.
|
||||||
* @param time The total time.
|
* @param time The total time.
|
||||||
*
|
*
|
||||||
* \NOMANUAL
|
* @return N/A
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void mailbox_put(uint32_t size, int count, uint32_t *time)
|
void mailbox_put(uint32_t size, int count, uint32_t *time)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
|
@ -37,10 +37,7 @@ int mailbox_get(kmbox_t mailbox,int size,int count,unsigned int* time);
|
||||||
* @brief Receive task
|
* @brief Receive task
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void mailrecvtask(void)
|
void mailrecvtask(void)
|
||||||
{
|
{
|
||||||
int getsize;
|
int getsize;
|
||||||
|
@ -77,10 +74,7 @@ void mailrecvtask(void)
|
||||||
* @param size Size of each data portion.
|
* @param size Size of each data portion.
|
||||||
* @param count Number of data portions.
|
* @param count Number of data portions.
|
||||||
* @param time Resulting time.
|
* @param time Resulting time.
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int mailbox_get(kmbox_t mailbox, int size, int count, unsigned int* time)
|
int mailbox_get(kmbox_t mailbox, int size, int count, unsigned int* time)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
|
@ -52,10 +52,7 @@ uint32_t tm_off;
|
||||||
* @brief Check for keypress
|
* @brief Check for keypress
|
||||||
*
|
*
|
||||||
* @return 1 when a keyboard key is pressed, or 0 if no keyboard support
|
* @return 1 when a keyboard key is pressed, or 0 if no keyboard support
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int kbhit(void)
|
int kbhit(void)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -70,10 +67,7 @@ int kbhit(void)
|
||||||
*
|
*
|
||||||
* @param continuously Run test till the user presses the key.
|
* @param continuously Run test till the user presses the key.
|
||||||
* @param autorun Expect user input.
|
* @param autorun Expect user input.
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void init_output(int *continuously, int *autorun)
|
void init_output(int *continuously, int *autorun)
|
||||||
{
|
{
|
||||||
ARG_UNUSED(continuously);
|
ARG_UNUSED(continuously);
|
||||||
|
@ -90,10 +84,7 @@ void init_output(int *continuously, int *autorun)
|
||||||
* @brief Close output for the test
|
* @brief Close output for the test
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void output_close(void)
|
void output_close(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -105,13 +96,10 @@ void output_close(void)
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @brief Perform all selected benchmarks
|
* @brief Perform all selected benchmarks
|
||||||
|
* see config.h to select or to unselect
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* see config.h to select or to unselect*/
|
|
||||||
void BenchTask(void)
|
void BenchTask(void)
|
||||||
{
|
{
|
||||||
int autorun = 0, continuously = 0;
|
int autorun = 0, continuously = 0;
|
||||||
|
@ -158,10 +146,7 @@ void BenchTask(void)
|
||||||
* @brief Dummy test
|
* @brief Dummy test
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void dummy_test(void)
|
void dummy_test(void)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -27,10 +27,7 @@
|
||||||
* @brief Memory map get/free test
|
* @brief Memory map get/free test
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void memorymap_test(void)
|
void memorymap_test(void)
|
||||||
{
|
{
|
||||||
uint32_t et; /* elapsed time */
|
uint32_t et; /* elapsed time */
|
||||||
|
|
|
@ -25,10 +25,7 @@
|
||||||
* @brief Memory pool get/free test
|
* @brief Memory pool get/free test
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void mempool_test(void)
|
void mempool_test(void)
|
||||||
{
|
{
|
||||||
uint32_t et; /* elapsed time */
|
uint32_t et; /* elapsed time */
|
||||||
|
|
|
@ -25,10 +25,7 @@
|
||||||
* @brief Mutex lock/unlock test
|
* @brief Mutex lock/unlock test
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void mutex_test(void)
|
void mutex_test(void)
|
||||||
{
|
{
|
||||||
uint32_t et; /* elapsed time */
|
uint32_t et; /* elapsed time */
|
||||||
|
|
|
@ -29,10 +29,7 @@ extern void _task_nop(void);
|
||||||
* @brief Kernel entry timing test
|
* @brief Kernel entry timing test
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void call_test(void)
|
void call_test(void)
|
||||||
{
|
{
|
||||||
uint32_t et; /* Elapsed Time */
|
uint32_t et; /* Elapsed Time */
|
||||||
|
|
|
@ -98,10 +98,7 @@ int pipeput(kpipe_t pipe, K_PIPE_OPTION
|
||||||
* @brief Test the pipes transfer speed
|
* @brief Test the pipes transfer speed
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void pipe_test(void)
|
void pipe_test(void)
|
||||||
{
|
{
|
||||||
uint32_t putsize;
|
uint32_t putsize;
|
||||||
|
@ -199,10 +196,7 @@ void pipe_test(void)
|
||||||
* @param size Data chunk size.
|
* @param size Data chunk size.
|
||||||
* @param count Number of data chunks.
|
* @param count Number of data chunks.
|
||||||
* @param time Total write time.
|
* @param time Total write time.
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int pipeput(kpipe_t pipe, K_PIPE_OPTION option, int size, int count, uint32_t *time)
|
int pipeput(kpipe_t pipe, K_PIPE_OPTION option, int size, int count, uint32_t *time)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
|
@ -38,10 +38,7 @@ int pipeget(kpipe_t pipe, K_PIPE_OPTION option,
|
||||||
* @brief Receive task
|
* @brief Receive task
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void piperecvtask(void)
|
void piperecvtask(void)
|
||||||
{
|
{
|
||||||
int getsize;
|
int getsize;
|
||||||
|
@ -95,10 +92,7 @@ void piperecvtask(void)
|
||||||
* @param size Data chunk size.
|
* @param size Data chunk size.
|
||||||
* @param count Number of data chunks.
|
* @param count Number of data chunks.
|
||||||
* @param time Total write time.
|
* @param time Total write time.
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int pipeget(kpipe_t pipe, K_PIPE_OPTION option, int size, int count,
|
int pipeget(kpipe_t pipe, K_PIPE_OPTION option, int size, int count,
|
||||||
unsigned int* time)
|
unsigned int* time)
|
||||||
{
|
{
|
||||||
|
|
|
@ -39,10 +39,7 @@ void piperecvtask(void);
|
||||||
* @brief Main function of the task that receives data in the test
|
* @brief Main function of the task that receives data in the test
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void recvtask(void)
|
void recvtask(void)
|
||||||
{
|
{
|
||||||
/* order must be compatible with master.c ! */
|
/* order must be compatible with master.c ! */
|
||||||
|
|
|
@ -26,10 +26,7 @@
|
||||||
* @brief Semaphore signal speed test
|
* @brief Semaphore signal speed test
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void sema_test(void)
|
void sema_test(void)
|
||||||
{
|
{
|
||||||
uint32_t et; /* elapsed Time */
|
uint32_t et; /* elapsed Time */
|
||||||
|
|
|
@ -28,10 +28,7 @@
|
||||||
* @brief Receive task (Wait task)
|
* @brief Receive task (Wait task)
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void waittask(void)
|
void waittask(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
|
@ -119,7 +119,6 @@ static pfunc func_array[] = {
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void dummyIsr(void *unused)
|
void dummyIsr(void *unused)
|
||||||
{
|
{
|
||||||
ARG_UNUSED(unused);
|
ARG_UNUSED(unused);
|
||||||
|
@ -136,7 +135,6 @@ void dummyIsr(void *unused)
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void isrDummyIntStub(void *unused)
|
static void isrDummyIntStub(void *unused)
|
||||||
{
|
{
|
||||||
ARG_UNUSED(unused);
|
ARG_UNUSED(unused);
|
||||||
|
@ -155,10 +153,7 @@ static void isrDummyIntStub(void *unused)
|
||||||
* (Gdb can be used to observe the counter as it increases.)
|
* (Gdb can be used to observe the counter as it increases.)
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void fgTaskEntry(void)
|
void fgTaskEntry(void)
|
||||||
{
|
{
|
||||||
#ifdef TEST_max
|
#ifdef TEST_max
|
||||||
|
|
|
@ -35,10 +35,7 @@ int errorCount = 0; /* track number of errors */
|
||||||
* @brief Test latency of nanokernel
|
* @brief Test latency of nanokernel
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void nanoTest(void)
|
void nanoTest(void)
|
||||||
{
|
{
|
||||||
PRINT_NANO_BANNER();
|
PRINT_NANO_BANNER();
|
||||||
|
@ -66,10 +63,7 @@ void nanoTest(void)
|
||||||
* @brief Nanokernel-only testing entry point
|
* @brief Nanokernel-only testing entry point
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void main(void)
|
void main(void)
|
||||||
{
|
{
|
||||||
bench_test_init();
|
bench_test_init();
|
||||||
|
@ -93,10 +87,7 @@ void microTaskSwitchYield(void);
|
||||||
* @brief Test latency of microkernel
|
* @brief Test latency of microkernel
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void microTest(void)
|
void microTest(void)
|
||||||
{
|
{
|
||||||
PRINT_MICRO_BANNER();
|
PRINT_MICRO_BANNER();
|
||||||
|
@ -123,10 +114,7 @@ void microTest(void)
|
||||||
* @brief Microkernel testing entry point
|
* @brief Microkernel testing entry point
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void microMain(void)
|
void microMain(void)
|
||||||
{
|
{
|
||||||
bench_test_init();
|
bench_test_init();
|
||||||
|
|
|
@ -39,10 +39,7 @@ static uint32_t timestamp;
|
||||||
* The interrupt handler gets the second timestamp.
|
* The interrupt handler gets the second timestamp.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void latencyTestIsr(void *unused)
|
static void latencyTestIsr(void *unused)
|
||||||
{
|
{
|
||||||
ARG_UNUSED(unused);
|
ARG_UNUSED(unused);
|
||||||
|
@ -59,10 +56,7 @@ static void latencyTestIsr(void *unused)
|
||||||
* gets the first timestamp and invokes the software interrupt.
|
* gets the first timestamp and invokes the software interrupt.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void makeInt(void)
|
static void makeInt(void)
|
||||||
{
|
{
|
||||||
initSwInterrupt(latencyTestIsr);
|
initSwInterrupt(latencyTestIsr);
|
||||||
|
@ -80,10 +74,7 @@ static void makeInt(void)
|
||||||
* @brief The test main function
|
* @brief The test main function
|
||||||
*
|
*
|
||||||
* @return 0 on success
|
* @return 0 on success
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int microIntToTask(void)
|
int microIntToTask(void)
|
||||||
{
|
{
|
||||||
PRINT_FORMAT(" 1- Measure time to switch from ISR to back to"
|
PRINT_FORMAT(" 1- Measure time to switch from ISR to back to"
|
||||||
|
|
|
@ -41,10 +41,7 @@ static uint32_t timestamp = 0;
|
||||||
* The interrupt handler gets the second timestamp.
|
* The interrupt handler gets the second timestamp.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void latencyTestIsr(void *unused)
|
static void latencyTestIsr(void *unused)
|
||||||
{
|
{
|
||||||
ARG_UNUSED(unused);
|
ARG_UNUSED(unused);
|
||||||
|
@ -62,10 +59,7 @@ static void latencyTestIsr(void *unused)
|
||||||
* software interrupt
|
* software interrupt
|
||||||
*
|
*
|
||||||
* @return 0 on success
|
* @return 0 on success
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void microInt(void)
|
void microInt(void)
|
||||||
{
|
{
|
||||||
task_sem_take_wait(INTSEMA);
|
task_sem_take_wait(INTSEMA);
|
||||||
|
@ -79,10 +73,7 @@ void microInt(void)
|
||||||
* @brief The test main function
|
* @brief The test main function
|
||||||
*
|
*
|
||||||
* @return 0 on success
|
* @return 0 on success
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int microIntToTaskEvt(void)
|
int microIntToTaskEvt(void)
|
||||||
{
|
{
|
||||||
PRINT_FORMAT(" 2- Measure time from ISR to executing a different task"
|
PRINT_FORMAT(" 2- Measure time from ISR to executing a different task"
|
||||||
|
|
|
@ -47,10 +47,7 @@ static uint32_t timestamp;
|
||||||
* acquires them in order to measure the necessary time.
|
* acquires them in order to measure the necessary time.
|
||||||
*
|
*
|
||||||
* @return 0 on success
|
* @return 0 on success
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int microSemaLockUnlock(void)
|
int microSemaLockUnlock(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -97,10 +94,7 @@ int microSemaLockUnlock(void)
|
||||||
* unlocks to measure the necessary time.
|
* unlocks to measure the necessary time.
|
||||||
*
|
*
|
||||||
* @return 0 on success
|
* @return 0 on success
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int microMutexLockUnlock(void)
|
int microMutexLockUnlock(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
|
@ -43,10 +43,7 @@ static uint32_t helper_task_iterations = 0;
|
||||||
* This task is define in .mdef as SEMYIELDTSK
|
* This task is define in .mdef as SEMYIELDTSK
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void yieldingTask(void)
|
void yieldingTask(void)
|
||||||
{
|
{
|
||||||
while (helper_task_iterations < NB_OF_YIELD) {
|
while (helper_task_iterations < NB_OF_YIELD) {
|
||||||
|
@ -60,10 +57,7 @@ void yieldingTask(void)
|
||||||
* @brief Entry point for task context switch using yield test
|
* @brief Entry point for task context switch using yield test
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void microTaskSwitchYield(void)
|
void microTaskSwitchYield(void)
|
||||||
{
|
{
|
||||||
uint32_t iterations = 0;
|
uint32_t iterations = 0;
|
||||||
|
|
|
@ -58,10 +58,7 @@ static volatile int ctxSwitchBalancer = 0;
|
||||||
* gets the first timestamp and invokes the software interrupt.
|
* gets the first timestamp and invokes the software interrupt.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void fiberOne(void)
|
static void fiberOne(void)
|
||||||
{
|
{
|
||||||
nano_fiber_sem_take_wait(&syncSema);
|
nano_fiber_sem_take_wait(&syncSema);
|
||||||
|
@ -82,10 +79,7 @@ static void fiberOne(void)
|
||||||
* the semaphore, fiber measures the time.
|
* the semaphore, fiber measures the time.
|
||||||
*
|
*
|
||||||
* @return 0 on success
|
* @return 0 on success
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void fiberTwo(void)
|
static void fiberTwo(void)
|
||||||
{
|
{
|
||||||
nano_fiber_sem_give(&syncSema);
|
nano_fiber_sem_give(&syncSema);
|
||||||
|
@ -101,10 +95,7 @@ static void fiberTwo(void)
|
||||||
* @brief The test main function
|
* @brief The test main function
|
||||||
*
|
*
|
||||||
* @return 0 on success
|
* @return 0 on success
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int nanoCtxSwitch(void)
|
int nanoCtxSwitch(void)
|
||||||
{
|
{
|
||||||
PRINT_FORMAT(" 4- Measure average context switch time between fibers");
|
PRINT_FORMAT(" 4- Measure average context switch time between fibers");
|
||||||
|
|
|
@ -41,10 +41,7 @@ static uint32_t timestamp;
|
||||||
* The interrupt handler gets the second timestamp.
|
* The interrupt handler gets the second timestamp.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void latencyTestIsr(void *unused)
|
static void latencyTestIsr(void *unused)
|
||||||
{
|
{
|
||||||
ARG_UNUSED(unused);
|
ARG_UNUSED(unused);
|
||||||
|
@ -60,10 +57,7 @@ static void latencyTestIsr(void *unused)
|
||||||
* gets the first timestamp and invokes the software interrupt.
|
* gets the first timestamp and invokes the software interrupt.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void fiberInt(void)
|
static void fiberInt(void)
|
||||||
{
|
{
|
||||||
initSwInterrupt(latencyTestIsr);
|
initSwInterrupt(latencyTestIsr);
|
||||||
|
@ -76,10 +70,7 @@ static void fiberInt(void)
|
||||||
* @brief The test main function
|
* @brief The test main function
|
||||||
*
|
*
|
||||||
* @return 0 on success
|
* @return 0 on success
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int nanoIntLatency(void)
|
int nanoIntLatency(void)
|
||||||
{
|
{
|
||||||
PRINT_FORMAT(" 1- Measure time to switch from fiber to ISR execution");
|
PRINT_FORMAT(" 1- Measure time to switch from fiber to ISR execution");
|
||||||
|
|
|
@ -40,10 +40,7 @@ static uint32_t timestamp = 0;
|
||||||
* @brief The test main function
|
* @brief The test main function
|
||||||
*
|
*
|
||||||
* @return 0 on success
|
* @return 0 on success
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int nanoIntLockUnlock(void)
|
int nanoIntLockUnlock(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
|
@ -43,10 +43,7 @@ static uint32_t timestamp;
|
||||||
* The interrupt handler gets the second timestamp.
|
* The interrupt handler gets the second timestamp.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void latencyTestIsr(void *unused)
|
static void latencyTestIsr(void *unused)
|
||||||
{
|
{
|
||||||
ARG_UNUSED(unused);
|
ARG_UNUSED(unused);
|
||||||
|
@ -63,10 +60,7 @@ static void latencyTestIsr(void *unused)
|
||||||
* gets the first timestamp and invokes the software interrupt.
|
* gets the first timestamp and invokes the software interrupt.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void fiberInt(void)
|
static void fiberInt(void)
|
||||||
{
|
{
|
||||||
setSwInterrupt(latencyTestIsr);
|
setSwInterrupt(latencyTestIsr);
|
||||||
|
@ -84,10 +78,7 @@ static void fiberInt(void)
|
||||||
* @brief The test main function
|
* @brief The test main function
|
||||||
*
|
*
|
||||||
* @return 0 on success
|
* @return 0 on success
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int nanoIntToFiber(void)
|
int nanoIntToFiber(void)
|
||||||
{
|
{
|
||||||
PRINT_FORMAT(" 2- Measure time to switch from ISR back to interrupted"
|
PRINT_FORMAT(" 2- Measure time to switch from ISR back to interrupted"
|
||||||
|
|
|
@ -54,10 +54,7 @@ static uint32_t timestamp = 0;
|
||||||
* The interrupt handler gets the second timestamp.
|
* The interrupt handler gets the second timestamp.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void latencyTestIsr(void *unused)
|
static void latencyTestIsr(void *unused)
|
||||||
{
|
{
|
||||||
ARG_UNUSED(unused);
|
ARG_UNUSED(unused);
|
||||||
|
@ -74,10 +71,7 @@ static void latencyTestIsr(void *unused)
|
||||||
* gets the first timestamp and invokes the software interrupt.
|
* gets the first timestamp and invokes the software interrupt.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void fiberInt(void)
|
static void fiberInt(void)
|
||||||
{
|
{
|
||||||
setSwInterrupt(latencyTestIsr);
|
setSwInterrupt(latencyTestIsr);
|
||||||
|
@ -93,10 +87,7 @@ static void fiberInt(void)
|
||||||
* the semaphore, fiber measures the time.
|
* the semaphore, fiber measures the time.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void fiberWaiter(void)
|
static void fiberWaiter(void)
|
||||||
{
|
{
|
||||||
nano_fiber_sem_take_wait(&testSema);
|
nano_fiber_sem_take_wait(&testSema);
|
||||||
|
@ -108,10 +99,7 @@ static void fiberWaiter(void)
|
||||||
* @brief The test main function
|
* @brief The test main function
|
||||||
*
|
*
|
||||||
* @return 0 on success
|
* @return 0 on success
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int nanoIntToFiberSem(void)
|
int nanoIntToFiberSem(void)
|
||||||
{
|
{
|
||||||
PRINT_FORMAT(" 3- Measure time from ISR to executing a different fiber"
|
PRINT_FORMAT(" 3- Measure time from ISR to executing a different fiber"
|
||||||
|
|
|
@ -1382,8 +1382,6 @@ static void (*intFPtr[256])(void) = {
|
||||||
* value passed to it (which is essentially the interrupt vector number).
|
* value passed to it (which is essentially the interrupt vector number).
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
void raiseInt(uint8_t id)
|
void raiseInt(uint8_t id)
|
||||||
{
|
{
|
||||||
|
@ -1400,10 +1398,7 @@ void raiseInt(uint8_t id)
|
||||||
* Trigger via NVIC. <id> is the IRQ number.
|
* Trigger via NVIC. <id> is the IRQ number.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void raiseInt(uint8_t id)
|
void raiseInt(uint8_t id)
|
||||||
{
|
{
|
||||||
_NvicSwInterruptTrigger((unsigned int)id);
|
_NvicSwInterruptTrigger((unsigned int)id);
|
||||||
|
|
|
@ -44,10 +44,7 @@ char tmpString[TMP_STRING_SIZE];
|
||||||
* the current interrupt service routine and stub code memory block.
|
* the current interrupt service routine and stub code memory block.
|
||||||
*
|
*
|
||||||
* @return the allocated interrupt vector
|
* @return the allocated interrupt vector
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int initSwInterrupt(ptestIsr pIsrHdlr)
|
int initSwInterrupt(ptestIsr pIsrHdlr)
|
||||||
{
|
{
|
||||||
vector = irq_connect(NANO_SOFT_IRQ, IRQ_PRIORITY, pIsrHdlr,
|
vector = irq_connect(NANO_SOFT_IRQ, IRQ_PRIORITY, pIsrHdlr,
|
||||||
|
@ -66,10 +63,7 @@ int initSwInterrupt(ptestIsr pIsrHdlr)
|
||||||
* initialized and connected by initSwInterrupt.
|
* initialized and connected by initSwInterrupt.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void setSwInterrupt(ptestIsr pIsrHdlr)
|
void setSwInterrupt(ptestIsr pIsrHdlr)
|
||||||
{
|
{
|
||||||
extern void _irq_handler_set(unsigned int irq, void (*old)(void *arg),
|
extern void _irq_handler_set(unsigned int irq, void (*old)(void *arg),
|
||||||
|
@ -88,8 +82,6 @@ void setSwInterrupt(ptestIsr pIsrHdlr)
|
||||||
* initialized and connected by initSwInterrupt.
|
* initialized and connected by initSwInterrupt.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
void raiseIntFunc(void)
|
void raiseIntFunc(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -48,10 +48,7 @@ extern int errorCount;
|
||||||
* @brief Print dash line
|
* @brief Print dash line
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline void printDashLine(void)
|
static inline void printDashLine(void)
|
||||||
{
|
{
|
||||||
PRINTF("|-----------------------------------------------------------------"
|
PRINTF("|-----------------------------------------------------------------"
|
||||||
|
@ -109,10 +106,7 @@ typedef void (*ptestIsr) (void *unused);
|
||||||
* the current interrupt service routine and stub code memory block.
|
* the current interrupt service routine and stub code memory block.
|
||||||
*
|
*
|
||||||
* @return the allocated interrupt vector
|
* @return the allocated interrupt vector
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int initSwInterrupt(ptestIsr pIsrHdlr);
|
int initSwInterrupt(ptestIsr pIsrHdlr);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -124,8 +118,5 @@ int initSwInterrupt(ptestIsr pIsrHdlr);
|
||||||
* initialized and connected by initSwInterrupt.
|
* initialized and connected by initSwInterrupt.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void setSwInterrupt(ptestIsr pIsrHdlr);
|
void setSwInterrupt(ptestIsr pIsrHdlr);
|
||||||
|
|
|
@ -1382,8 +1382,6 @@ static void (*intFPtr[256])(void) = {
|
||||||
* value passed to it (which is essentially the interrupt vector number).
|
* value passed to it (which is essentially the interrupt vector number).
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
void raiseInt(uint8_t id)
|
void raiseInt(uint8_t id)
|
||||||
{
|
{
|
||||||
|
@ -1400,10 +1398,7 @@ void raiseInt(uint8_t id)
|
||||||
* Trigger via NVIC. <id> is the IRQ number.
|
* Trigger via NVIC. <id> is the IRQ number.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void raiseInt(uint8_t id)
|
void raiseInt(uint8_t id)
|
||||||
{
|
{
|
||||||
_NvicSwInterruptTrigger((unsigned int)id);
|
_NvicSwInterruptTrigger((unsigned int)id);
|
||||||
|
|
|
@ -64,10 +64,7 @@ Platform-specific timestamp support for the tickless idle test.
|
||||||
* This routine initializes the timestamp timer.
|
* This routine initializes the timestamp timer.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _TimestampOpen(void)
|
void _TimestampOpen(void)
|
||||||
{
|
{
|
||||||
/* QEMU does not currently support the 32-bit timer modes of the GPTM */
|
/* QEMU does not currently support the 32-bit timer modes of the GPTM */
|
||||||
|
@ -96,10 +93,7 @@ void _TimestampOpen(void)
|
||||||
* This routine returns the timestamp value.
|
* This routine returns the timestamp value.
|
||||||
*
|
*
|
||||||
* @return timestamp value
|
* @return timestamp value
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
uint32_t _TimestampRead(void)
|
uint32_t _TimestampRead(void)
|
||||||
{
|
{
|
||||||
static uint32_t lastTimerVal = 0;
|
static uint32_t lastTimerVal = 0;
|
||||||
|
@ -132,10 +126,7 @@ uint32_t _TimestampRead(void)
|
||||||
* This routine releases the timestamp timer.
|
* This routine releases the timestamp timer.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _TimestampClose(void)
|
void _TimestampClose(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -179,10 +170,7 @@ void _TimestampClose(void)
|
||||||
* This routine initializes the timestamp timer.
|
* This routine initializes the timestamp timer.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _TimestampOpen(void)
|
void _TimestampOpen(void)
|
||||||
{
|
{
|
||||||
/* enable timer access */
|
/* enable timer access */
|
||||||
|
@ -216,10 +204,7 @@ void _TimestampOpen(void)
|
||||||
* This routine returns the timestamp value.
|
* This routine returns the timestamp value.
|
||||||
*
|
*
|
||||||
* @return timestamp value
|
* @return timestamp value
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
uint32_t _TimestampRead(void)
|
uint32_t _TimestampRead(void)
|
||||||
{
|
{
|
||||||
static uint32_t lastPrescale = 0;
|
static uint32_t lastPrescale = 0;
|
||||||
|
@ -253,10 +238,7 @@ uint32_t _TimestampRead(void)
|
||||||
* This routine releases the timestamp timer.
|
* This routine releases the timestamp timer.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _TimestampClose(void)
|
void _TimestampClose(void)
|
||||||
{
|
{
|
||||||
_TIMESTAMP_STATUS = 0x0; /* disable counter */
|
_TIMESTAMP_STATUS = 0x0; /* disable counter */
|
||||||
|
|
|
@ -28,10 +28,7 @@ static struct nano_fifo nanoFifo_sync; /* for synchronization */
|
||||||
* @brief Initialize LIFOs for the test
|
* @brief Initialize LIFOs for the test
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void lifo_test_init(void)
|
void lifo_test_init(void)
|
||||||
{
|
{
|
||||||
nano_lifo_init(&nanoLifo1);
|
nano_lifo_init(&nanoLifo1);
|
||||||
|
@ -47,10 +44,7 @@ void lifo_test_init(void)
|
||||||
* @param par2 Number of test loops.
|
* @param par2 Number of test loops.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void lifo_fiber1(int par1, int par2)
|
void lifo_fiber1(int par1, int par2)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -87,10 +81,7 @@ void lifo_fiber1(int par1, int par2)
|
||||||
* @param par2 Number of test cycles.
|
* @param par2 Number of test cycles.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void lifo_fiber2(int par1, int par2)
|
void lifo_fiber2(int par1, int par2)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -119,10 +110,7 @@ void lifo_fiber2(int par1, int par2)
|
||||||
* @param par2 Number of test loops.
|
* @param par2 Number of test loops.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void lifo_fiber3(int par1, int par2)
|
void lifo_fiber3(int par1, int par2)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -150,10 +138,7 @@ void lifo_fiber3(int par1, int par2)
|
||||||
* @brief The main test entry
|
* @brief The main test entry
|
||||||
*
|
*
|
||||||
* @return 1 if success and 0 on failure
|
* @return 1 if success and 0 on failure
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int lifo_test(void)
|
int lifo_test(void)
|
||||||
{
|
{
|
||||||
uint32_t t;
|
uint32_t t;
|
||||||
|
|
|
@ -29,10 +29,7 @@ static struct nano_fifo nanoFifo_sync; /* for synchronization */
|
||||||
* @brief Initialize FIFOs for the test
|
* @brief Initialize FIFOs for the test
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void fifo_test_init(void)
|
void fifo_test_init(void)
|
||||||
{
|
{
|
||||||
nano_fifo_init(&nanoFifo1);
|
nano_fifo_init(&nanoFifo1);
|
||||||
|
@ -44,14 +41,11 @@ void fifo_test_init(void)
|
||||||
*
|
*
|
||||||
* @brief Fifo test fiber
|
* @brief Fifo test fiber
|
||||||
*
|
*
|
||||||
* @return N/A
|
|
||||||
*
|
|
||||||
* @param par1 Ignored parameter.
|
* @param par1 Ignored parameter.
|
||||||
* @param par2 Number of test loops.
|
* @param par2 Number of test loops.
|
||||||
*
|
*
|
||||||
* \NOMANUAL
|
* @return N/A
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void fifo_fiber1(int par1, int par2)
|
void fifo_fiber1(int par1, int par2)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -76,14 +70,11 @@ void fifo_fiber1(int par1, int par2)
|
||||||
*
|
*
|
||||||
* @brief Fifo test fiber
|
* @brief Fifo test fiber
|
||||||
*
|
*
|
||||||
* @return N/A
|
|
||||||
*
|
|
||||||
* @param par1 Address of the counter.
|
* @param par1 Address of the counter.
|
||||||
* @param par2 Number of test cycles.
|
* @param par2 Number of test cycles.
|
||||||
*
|
*
|
||||||
* \NOMANUAL
|
* @return N/A
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void fifo_fiber2(int par1, int par2)
|
void fifo_fiber2(int par1, int par2)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -109,14 +100,11 @@ void fifo_fiber2(int par1, int par2)
|
||||||
*
|
*
|
||||||
* @brief Fifo test fiber
|
* @brief Fifo test fiber
|
||||||
*
|
*
|
||||||
* @return N/A
|
|
||||||
*
|
|
||||||
* @param par1 Address of the counter.
|
* @param par1 Address of the counter.
|
||||||
* @param par2 Number of test cycles.
|
* @param par2 Number of test cycles.
|
||||||
*
|
*
|
||||||
* \NOMANUAL
|
* @return N/A
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void fifo_fiber3(int par1, int par2)
|
void fifo_fiber3(int par1, int par2)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -145,10 +133,7 @@ void fifo_fiber3(int par1, int par2)
|
||||||
* @brief The main test entry
|
* @brief The main test entry
|
||||||
*
|
*
|
||||||
* @return 1 if success and 0 on failure
|
* @return 1 if success and 0 on failure
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int fifo_test(void)
|
int fifo_test(void)
|
||||||
{
|
{
|
||||||
uint32_t t;
|
uint32_t t;
|
||||||
|
|
|
@ -26,10 +26,7 @@ struct nano_sem nanoSem2;
|
||||||
* @brief Initialize semaphores for the test
|
* @brief Initialize semaphores for the test
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void sema_test_init(void)
|
void sema_test_init(void)
|
||||||
{
|
{
|
||||||
nano_sem_init(&nanoSem1);
|
nano_sem_init(&nanoSem1);
|
||||||
|
@ -45,10 +42,7 @@ void sema_test_init(void)
|
||||||
* @param par2 Number of test loops.
|
* @param par2 Number of test loops.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void sema_fiber1(int par1, int par2)
|
void sema_fiber1(int par1, int par2)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -70,10 +64,7 @@ void sema_fiber1(int par1, int par2)
|
||||||
* @param par2 Number of test cycles.
|
* @param par2 Number of test cycles.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void sema_fiber2(int par1, int par2)
|
void sema_fiber2(int par1, int par2)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -94,10 +85,7 @@ void sema_fiber2(int par1, int par2)
|
||||||
* @param par2 Number of test cycles.
|
* @param par2 Number of test cycles.
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void sema_fiber3(int par1, int par2)
|
void sema_fiber3(int par1, int par2)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -118,10 +106,7 @@ void sema_fiber3(int par1, int par2)
|
||||||
* @brief The main test entry
|
* @brief The main test entry
|
||||||
*
|
*
|
||||||
* @return 1 if success and 0 on failure
|
* @return 1 if success and 0 on failure
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int sema_test(void)
|
int sema_test(void)
|
||||||
{
|
{
|
||||||
uint32_t t;
|
uint32_t t;
|
||||||
|
|
|
@ -30,9 +30,7 @@ uint32_t stack2[2];
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
*
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void stack_test_init(void)
|
void stack_test_init(void)
|
||||||
{
|
{
|
||||||
nano_stack_init(&nano_stack_1, stack1);
|
nano_stack_init(&nano_stack_1, stack1);
|
||||||
|
@ -49,9 +47,7 @@ void stack_test_init(void)
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
*
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void stack_fiber1(int par1, int par2)
|
void stack_fiber1(int par1, int par2)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -85,9 +81,7 @@ void stack_fiber1(int par1, int par2)
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
*
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void stack_fiber2(int par1, int par2)
|
void stack_fiber2(int par1, int par2)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -115,9 +109,7 @@ void stack_fiber2(int par1, int par2)
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
*
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void stack_fiber3(int par1, int par2)
|
void stack_fiber3(int par1, int par2)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -145,9 +137,7 @@ void stack_fiber3(int par1, int par2)
|
||||||
*
|
*
|
||||||
* @return 1 if success and 0 on failure
|
* @return 1 if success and 0 on failure
|
||||||
*
|
*
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int stack_test(void)
|
int stack_test(void)
|
||||||
{
|
{
|
||||||
uint32_t t;
|
uint32_t t;
|
||||||
|
|
|
@ -64,8 +64,6 @@ uint32_t tm_off;
|
||||||
* Routine does necessary preparations for the test to start
|
* Routine does necessary preparations for the test to start
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
void begin_test(void)
|
void begin_test(void)
|
||||||
{
|
{
|
||||||
|
@ -84,10 +82,7 @@ void begin_test(void)
|
||||||
*
|
*
|
||||||
* @param i Number of tests.
|
* @param i Number of tests.
|
||||||
* @param t Time in ticks for the whole test.
|
* @param t Time in ticks for the whole test.
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int check_result(int i, uint32_t t)
|
int check_result(int i, uint32_t t)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
@ -124,10 +119,7 @@ int check_result(int i, uint32_t t)
|
||||||
* @brief Check for a key press
|
* @brief Check for a key press
|
||||||
*
|
*
|
||||||
* @return 1 when a keyboard key is pressed, or 0 if no keyboard support
|
* @return 1 when a keyboard key is pressed, or 0 if no keyboard support
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int kbhit(void)
|
int kbhit(void)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -138,11 +130,9 @@ int kbhit(void)
|
||||||
*
|
*
|
||||||
* @brief Prepares the test output
|
* @brief Prepares the test output
|
||||||
*
|
*
|
||||||
* @return N/A
|
|
||||||
*
|
|
||||||
* @param continuously Run test till the user presses the key.
|
* @param continuously Run test till the user presses the key.
|
||||||
*
|
*
|
||||||
* \NOMANUAL
|
* @return N/A
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void init_output(int *continuously)
|
void init_output(int *continuously)
|
||||||
|
@ -161,10 +151,7 @@ void init_output(int *continuously)
|
||||||
* @brief Close output for the test
|
* @brief Close output for the test
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void output_close(void)
|
void output_close(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -174,10 +161,7 @@ void output_close(void)
|
||||||
* @brief Perform all selected benchmarks
|
* @brief Perform all selected benchmarks
|
||||||
*
|
*
|
||||||
* @return N/A
|
* @return N/A
|
||||||
*
|
|
||||||
* \NOMANUAL
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef CONFIG_MICROKERNEL
|
#ifdef CONFIG_MICROKERNEL
|
||||||
void SysKernelBench(void)
|
void SysKernelBench(void)
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue