5.5.0
19
3rd_party/CMSIS-RTX/SRC/GCC/ArInp.Scr
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
CREATE ./CM4F_LE/libRTX_CM4.a
|
||||
ADDMOD ./cm4f_le/rt_cmsis.o
|
||||
ADDMOD ./cm4f_le/rt_task.o
|
||||
ADDMOD ./cm4f_le/rt_system.o
|
||||
ADDMOD ./cm4f_le/rt_event.o
|
||||
ADDMOD ./cm4f_le/rt_list.o
|
||||
ADDMOD ./cm4f_le/rt_mailbox.o
|
||||
ADDMOD ./cm4f_le/rt_semaphore.o
|
||||
ADDMOD ./cm4f_le/rt_time.o
|
||||
ADDMOD ./cm4f_le/rt_timer.o
|
||||
ADDMOD ./cm4f_le/rt_mutex.o
|
||||
ADDMOD ./cm4f_le/rt_robin.o
|
||||
ADDMOD ./cm4f_le/rt_membox.o
|
||||
ADDMOD ./cm4f_le/rt_memory.o
|
||||
ADDMOD ./cm4f_le/svc_table.o
|
||||
ADDMOD ./cm4f_le/hal_cm.o
|
||||
ADDMOD ./cm4f_le/hal_cm4.o
|
||||
SAVE
|
||||
END
|
1
3rd_party/CMSIS-RTX/SRC/GCC/ArInp.bat
vendored
Normal file
@ -0,0 +1 @@
|
||||
"C:\tools\gnu_arm-eabi\bin\arm-eabi-ar" -M <ArInp.Scr
|
@ -2810,7 +2810,7 @@
|
||||
<wLevel>2</wLevel>
|
||||
<uThumb>1</uThumb>
|
||||
<VariousControls>
|
||||
<MiscControls>-mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections</MiscControls>
|
||||
<MiscControls>-mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -ffunction-sections</MiscControls>
|
||||
<Define>__CORTEX_M4F __FPU_PRESENT=1 __CMSIS_RTOS DBG_MSG</Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath>..\..\..\CMSIS\Include</IncludePath>
|
||||
|
69
3rd_party/ek-lm3s6965/arm/startup_LM3S6965.s
vendored
@ -1,8 +1,8 @@
|
||||
;/***************************************************************************/
|
||||
; * @file startup_LM3S6965.s for ARM-KEIL ARM assembler
|
||||
; * @brief CMSIS Cortex-M3 Core Device Startup File for LM3S6965
|
||||
; * @version CMSIS v4.2.0
|
||||
; * @date 07 March 2015
|
||||
; * @version CMSIS 4.3.0
|
||||
; * @date 20 August 2015
|
||||
; *
|
||||
; * @description
|
||||
; * Created from the CMSIS template for the specified device
|
||||
@ -14,11 +14,11 @@
|
||||
; * --pd "Stack_Size SETA 512" --pd "Heap_Size SETA 0"
|
||||
; *
|
||||
; * @note
|
||||
; * The functions assert_failed/Q_onAssert defined at the end of this file
|
||||
; * determine the error/assertion handling policy for the application and
|
||||
; * might need to be customized for each project. This function is defined
|
||||
; * in assembly to avoid accessing the stack, which might be corrupted by
|
||||
; * the time assert_failed/Q_onAssert are called.
|
||||
; * The function assert_failed defined at the end of this file defines
|
||||
; * the error/assertion handling policy for the application and might
|
||||
; * need to be customized for each project. This function is defined in
|
||||
; * assembly to re-set the stack pointer, in case it is corrupted by the
|
||||
; * time assert_failed is called.
|
||||
; *
|
||||
; ***************************************************************************/
|
||||
;/* Copyright (c) 2012 ARM LIMITED
|
||||
@ -85,7 +85,7 @@ __heap_limit
|
||||
; Place code into the reset code section.
|
||||
;
|
||||
;******************************************************************************
|
||||
AREA RESET, DATA, READONLY
|
||||
AREA RESET, DATA, READONLY
|
||||
EXPORT __Vectors
|
||||
EXPORT __Vectors_End
|
||||
EXPORT __Vectors_Size
|
||||
@ -182,15 +182,20 @@ Reset_Handler PROC
|
||||
IMPORT SystemInit
|
||||
IMPORT __main
|
||||
|
||||
BL SystemInit ; CMSIS system initialization
|
||||
LDR r0, =SystemInit ; CMSIS system initialization
|
||||
BLX r0
|
||||
|
||||
; Call the C library enty point that handles startup. This will copy
|
||||
; Call the C library enty point that handles startup. This will copy
|
||||
; the .data section initializers from flash to SRAM and zero fill the
|
||||
; .bss section.
|
||||
BL __main
|
||||
LDR r0, =__main
|
||||
BX r0
|
||||
|
||||
; __main calls the main() function, which should not return,
|
||||
; but just in case jump to assert_failed() if main returns.
|
||||
MOVS r0,#0
|
||||
MOVS r1,#0 ; error number
|
||||
B assert_failed ; __main should not return, but assert if it does
|
||||
B assert_failed
|
||||
ENDP
|
||||
|
||||
;******************************************************************************
|
||||
@ -432,40 +437,28 @@ __user_initial_stackheap PROC
|
||||
|
||||
;******************************************************************************
|
||||
;
|
||||
; The weak functions assert_failed/Q_onAssert define the error/assertion
|
||||
; handling policy for the application and might need to be customized
|
||||
; for each project. These functions are defined in assembly to avoid
|
||||
; accessing the stack, which might be corrupted by the time assert_failed
|
||||
; is called. For now the function just resets the CPU.
|
||||
; The function assert_failed defines the error/assertion handling policy
|
||||
; for the application. After making sure that the stack is OK, this function
|
||||
; calls Q_onAssert, which should NOT return (typically reset the CPU).
|
||||
;
|
||||
; NOTE: the functions assert_failed/Q_onAssert should NOT return.
|
||||
; NOTE: the function Q_onAssert should NOT return.
|
||||
;
|
||||
; The C proptotypes of these functions are as follows:
|
||||
; The C proptotype of the assert_failed() and Q_onAssert() functions are:
|
||||
; void assert_failed(char const *file, int line);
|
||||
; void Q_onAssert (char const *file, int line);
|
||||
;******************************************************************************
|
||||
EXPORT assert_failed [WEAK]
|
||||
EXPORT Q_onAssert [WEAK]
|
||||
EXPORT assert_failed
|
||||
IMPORT Q_onAssert
|
||||
assert_failed PROC
|
||||
Q_onAssert
|
||||
;
|
||||
; NOTE: add here your application-specific error handling
|
||||
;
|
||||
|
||||
; the following code implements the CMIS function
|
||||
; NVIC_SystemReset() from core_cm3.h
|
||||
; Leave this code if you wish to reset the system after an error.
|
||||
DSB ; ensure all memory access complete
|
||||
LDR r0,=0x05FA0004 ; (0x5FA << SCB_AIRCR_VECTKEY_Pos)
|
||||
; | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)
|
||||
; | SCB_AIRCR_SYSRESETREQ_Msk
|
||||
LDR r1,=0xE000ED0C ; address of SCB->AIRCR
|
||||
STR r0,[r1] ; r0 -> SCB->AIRCR
|
||||
DSB ; ensure all memory access complete
|
||||
B . ; wait until reset occurs
|
||||
LDR sp,=__initial_sp ; re-set the SP in case of stack overflow
|
||||
BL Q_onAssert ; call the application-specific handler
|
||||
|
||||
B . ; should not be reached, but just in case...
|
||||
|
||||
ENDP
|
||||
|
||||
|
||||
ALIGN ; make sure the end of this section is aligned
|
||||
ALIGN ; make sure the end of this section is aligned
|
||||
|
||||
END ; end of module
|
||||
END ; end of module
|
||||
|
63
3rd_party/ek-lm3s6965/gnu/startup_LM3S6965.c
vendored
@ -1,17 +1,18 @@
|
||||
/* File: startup_LM3S6965.c for GCC-ARM
|
||||
* Purpose: startup file for LM3S6965 Cortex-M3 device.
|
||||
* Should be used with GCC 'GNU Tools ARM Embedded'
|
||||
* Version: CMSIS v4.2.0
|
||||
* Date: 07 March 2015
|
||||
* Version: CMSIS 4.3.0
|
||||
* Date: 06 August 2015
|
||||
*
|
||||
* Created from the CMSIS template for the specified device
|
||||
* Quantum Leaps, www.state-machine.com
|
||||
*
|
||||
* NOTE: The function assert_failed defined at the end of this file
|
||||
* determines the error/assertion handling policy for the application and
|
||||
* might need to be customized for each project. This function is defined
|
||||
* using the GNU-ARM language extensions to avoid accessing the stack,
|
||||
* which might be corrupted by the time assert_failed is called.
|
||||
* NOTE:
|
||||
* The function assert_failed defined at the end of this file defines
|
||||
* the error/assertion handling policy for the application and might
|
||||
* need to be customized for each project. This function is defined in
|
||||
* assembly to re-set the stack pointer, in case it is corrupted by the
|
||||
* time assert_failed is called.
|
||||
*/
|
||||
/* Copyright (c) 2011 - 2014 ARM LIMITED
|
||||
|
||||
@ -47,20 +48,19 @@ extern int __stack_end__;
|
||||
/* Weak prototypes for error handlers --------------------------------------*/
|
||||
/**
|
||||
* \note
|
||||
* The functions assert_failed/Q_onAssert defined at the end of this file
|
||||
* determine the error/assertion handling policy for the application and
|
||||
* might need to be customized for each project. These functions are defined
|
||||
* as "naked" to avoid accessing the stack, which might be corrupted by
|
||||
* the time assert_failed/Q_onAssert are called.
|
||||
* The function assert_failed defined at the end of this file defines
|
||||
* the error/assertion handling policy for the application and might
|
||||
* need to be customized for each project. This function is defined in
|
||||
* assembly to avoid accessing the stack, which might be corrupted by
|
||||
* the time assert_failed is called.
|
||||
*/
|
||||
__attribute__ ((naked)) void assert_failed(char const *file, int line);
|
||||
__attribute__ ((alias("assert_failed")))
|
||||
void Q_onAssert(char const *file, int line);
|
||||
__attribute__ ((naked)) void assert_failed(char const *module, int loc);
|
||||
|
||||
/* Function prototypes -----------------------------------------------------*/
|
||||
void Default_Handler(void); /* Default empty handler */
|
||||
void Reset_Handler(void); /* Reset Handler */
|
||||
void SystemInit(void); /* CMSIS system initialization */
|
||||
void Q_onAssert(char const *module, int loc); /* QP assertion handler */
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* weak aliases for each Exception handler to the Default_Handler.
|
||||
@ -309,31 +309,22 @@ void _fini(void) { /* dummy */
|
||||
|
||||
/*****************************************************************************
|
||||
* The function assert_failed defines the error/assertion handling policy
|
||||
* for the application and might need to be customized for each project.
|
||||
* This function is defined as "naked" and specifically avoids accessing the
|
||||
* stack, which might be corrupted by the time assert_failed is called.
|
||||
* for the application. After making sure that the stack is OK, this function
|
||||
* calls Q_onAssert, which should NOT return (typically reset the CPU).
|
||||
*
|
||||
* NOTE: the functions assert_failed/Q_onAssert should NOT return.
|
||||
* NOTE: the function Q_onAssert should NOT return.
|
||||
*****************************************************************************/
|
||||
__attribute__ ((naked))
|
||||
void assert_failed(char const *file, int line) {
|
||||
|
||||
/* NOTE: add here your application-specific error handling... */
|
||||
|
||||
/* the following assembly implements the CMIS function
|
||||
* NVIC_SystemReset() from core_cm4.h
|
||||
* Leave this code if you wish to reset the system after an error.
|
||||
*/
|
||||
void assert_failed(char const *module, int loc) {
|
||||
/* re-set the SP in case of stack overflow */
|
||||
__asm volatile (
|
||||
" DSB\n\t" /* ensure all memory access complete */
|
||||
" LDR r0,=0x05FA0004\n\t" /* (0x5FA << SCB_AIRCR_VECTKEY_Pos)
|
||||
* | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)
|
||||
* | SCB_AIRCR_SYSRESETREQ_Msk */
|
||||
" LDR r1,=0xE000ED0C\n\t" /* address of SCB->AIRCR */
|
||||
" STR r0,[r1]\n\t" /* r0 -> SCB->AIRCR */
|
||||
" DSB\n\t" /* ensure all memory access complete */
|
||||
" B .\n\t" /* wait until reset occurs */
|
||||
);
|
||||
" MOV sp,%0\n\t"
|
||||
: : "r" (&__stack_end__));
|
||||
|
||||
Q_onAssert(module, loc); /* call the application-specific QP handler */
|
||||
|
||||
for (;;) { /* should not be reached, but just in case loop forever... */
|
||||
}
|
||||
}
|
||||
|
||||
/****** End Of File *********************************************************/
|
||||
|
45
3rd_party/ek-lm3s6965/iar/startup_LM3S6965.s
vendored
@ -1,8 +1,8 @@
|
||||
;/***************************************************************************/
|
||||
; * @file startup_LM3S6965.s for IAR ARM assembler
|
||||
; * @brief CMSIS Cortex-M# Core Device Startup File for LM3S6965
|
||||
; * @version CMSIS v4.1
|
||||
; * @date 07 March 2015
|
||||
; * @version CMSIS 4.3.0
|
||||
; * @date 20 August 2015
|
||||
; *
|
||||
; * @description
|
||||
; * Created from the CMSIS template for the specified device
|
||||
@ -12,8 +12,8 @@
|
||||
; * The function assert_failed defined at the end of this file defines
|
||||
; * the error/assertion handling policy for the application and might
|
||||
; * need to be customized for each project. This function is defined in
|
||||
; * assembly to avoid accessing the stack, which might be corrupted by
|
||||
; * the time assert_failed is called.
|
||||
; * assembly to re-set the stack pointer, in case it is corrupted by the
|
||||
; * time assert_failed is called.
|
||||
; *
|
||||
; ***************************************************************************/
|
||||
;/* Copyright (c) 2012 ARM LIMITED
|
||||
@ -303,36 +303,23 @@ Hibernate_IRQHandler
|
||||
|
||||
;******************************************************************************
|
||||
;
|
||||
; The weak functions assert_failed/Q_onAssert define the error/assertion
|
||||
; handling policy for the application and might need to be customized
|
||||
; for each project. These functions are defined in assembly to avoid
|
||||
; accessing the stack, which might be corrupted by the time assert_failed
|
||||
; is called. For now the function just resets the CPU.
|
||||
; The function assert_failed defines the error/assertion handling policy
|
||||
; for the application. After making sure that the stack is OK, this function
|
||||
; calls Q_onAssert, which should NOT return (typically reset the CPU).
|
||||
;
|
||||
; NOTE: the functions assert_failed/Q_onAssert should NOT return.
|
||||
; NOTE: the function Q_onAssert should NOT return.
|
||||
;
|
||||
; The C proptotypes of these functions are as follows:
|
||||
; The C proptotype of the assert_failed() and Q_onAssert() functions are:
|
||||
; void assert_failed(char const *file, int line);
|
||||
; void Q_onAssert (char const *file, int line);
|
||||
;******************************************************************************
|
||||
PUBWEAK assert_failed
|
||||
PUBWEAK Q_onAssert
|
||||
Q_onAssert
|
||||
PUBLIC assert_failed
|
||||
EXTERN Q_onAssert
|
||||
assert_failed
|
||||
;
|
||||
; NOTE: add here your application-specific error handling
|
||||
;
|
||||
LDR sp,=sfe(CSTACK) ; re-set the SP in case of stack overflow
|
||||
BL Q_onAssert ; call the application-specific handler
|
||||
|
||||
; the following code implements the CMIS function
|
||||
; NVIC_SystemReset() from core_cm4.h
|
||||
; Leave this code if you wish to reset the system after an error.
|
||||
DSB ; ensure all memory access complete
|
||||
LDR r0,=0x05FA0004 ; (0x5FA << SCB_AIRCR_VECTKEY_Pos)
|
||||
; | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)
|
||||
; | SCB_AIRCR_SYSRESETREQ_Msk
|
||||
LDR r1,=0xE000ED0C ; address of SCB->AIRCR
|
||||
STR r0,[r1] ; r0 -> SCB->AIRCR
|
||||
DSB ; ensure all memory access complete
|
||||
B . ; wait until reset occurs
|
||||
B . ; should not be reached, but just in case...
|
||||
|
||||
END
|
||||
|
||||
END ; end of module
|
||||
|
63
3rd_party/ek-lm3s811/arm/startup_LM3S811.s
vendored
@ -1,8 +1,8 @@
|
||||
;/***************************************************************************/
|
||||
; * @file startup_LM3S811.s for ARM-KEIL ARM assembler
|
||||
; * @brief CMSIS Cortex-M3 Core Device Startup File for LM3S811
|
||||
; * @version CMSIS v4.2.0
|
||||
; * @date 07 March 2015
|
||||
; * @version CMSIS 4.3.0
|
||||
; * @date 20 August 2015
|
||||
; *
|
||||
; * @description
|
||||
; * Created from the CMSIS template for the specified device
|
||||
@ -14,11 +14,11 @@
|
||||
; * --pd "Stack_Size SETA 512" --pd "Heap_Size SETA 0"
|
||||
; *
|
||||
; * @note
|
||||
; * The functions assert_failed/Q_onAssert defined at the end of this file
|
||||
; * determine the error/assertion handling policy for the application and
|
||||
; * might need to be customized for each project. This function is defined
|
||||
; * in assembly to avoid accessing the stack, which might be corrupted by
|
||||
; * the time assert_failed/Q_onAssert are called.
|
||||
; * The function assert_failed defined at the end of this file defines
|
||||
; * the error/assertion handling policy for the application and might
|
||||
; * need to be customized for each project. This function is defined in
|
||||
; * assembly to re-set the stack pointer, in case it is corrupted by the
|
||||
; * time assert_failed is called.
|
||||
; *
|
||||
; ***************************************************************************/
|
||||
;/* Copyright (c) 2012 ARM LIMITED
|
||||
@ -169,15 +169,20 @@ Reset_Handler PROC
|
||||
IMPORT SystemInit
|
||||
IMPORT __main
|
||||
|
||||
BL SystemInit ; CMSIS system initialization
|
||||
LDR r0, =SystemInit ; CMSIS system initialization
|
||||
BLX r0
|
||||
|
||||
; Call the C library enty point that handles startup. This will copy
|
||||
; Call the C library enty point that handles startup. This will copy
|
||||
; the .data section initializers from flash to SRAM and zero fill the
|
||||
; .bss section.
|
||||
BL __main
|
||||
LDR r0, =__main
|
||||
BX r0
|
||||
|
||||
; __main calls the main() function, which should not return,
|
||||
; but just in case jump to assert_failed() if main returns.
|
||||
MOVS r0,#0
|
||||
MOVS r1,#0 ; error number
|
||||
B assert_failed ; __main should not return, but assert if it does
|
||||
B assert_failed
|
||||
ENDP
|
||||
|
||||
;******************************************************************************
|
||||
@ -384,37 +389,25 @@ __user_initial_stackheap PROC
|
||||
|
||||
;******************************************************************************
|
||||
;
|
||||
; The weak functions assert_failed/Q_onAssert define the error/assertion
|
||||
; handling policy for the application and might need to be customized
|
||||
; for each project. These functions are defined in assembly to avoid
|
||||
; accessing the stack, which might be corrupted by the time assert_failed
|
||||
; is called. For now the function just resets the CPU.
|
||||
; The function assert_failed defines the error/assertion handling policy
|
||||
; for the application. After making sure that the stack is OK, this function
|
||||
; calls Q_onAssert, which should NOT return (typically reset the CPU).
|
||||
;
|
||||
; NOTE: the functions assert_failed/Q_onAssert should NOT return.
|
||||
; NOTE: the function Q_onAssert should NOT return.
|
||||
;
|
||||
; The C proptotypes of these functions are as follows:
|
||||
; The C proptotype of the assert_failed() and Q_onAssert() functions are:
|
||||
; void assert_failed(char const *file, int line);
|
||||
; void Q_onAssert (char const *file, int line);
|
||||
;******************************************************************************
|
||||
EXPORT assert_failed [WEAK]
|
||||
EXPORT Q_onAssert [WEAK]
|
||||
EXPORT assert_failed
|
||||
IMPORT Q_onAssert
|
||||
assert_failed PROC
|
||||
Q_onAssert
|
||||
;
|
||||
; NOTE: add here your application-specific error handling
|
||||
;
|
||||
|
||||
; the following code implements the CMIS function
|
||||
; NVIC_SystemReset() from core_cm3.h
|
||||
; Leave this code if you wish to reset the system after an error.
|
||||
DSB ; ensure all memory access complete
|
||||
LDR r0,=0x05FA0004 ; (0x5FA << SCB_AIRCR_VECTKEY_Pos)
|
||||
; | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)
|
||||
; | SCB_AIRCR_SYSRESETREQ_Msk
|
||||
LDR r1,=0xE000ED0C ; address of SCB->AIRCR
|
||||
STR r0,[r1] ; r0 -> SCB->AIRCR
|
||||
DSB ; ensure all memory access complete
|
||||
B . ; wait until reset occurs
|
||||
LDR sp,=__initial_sp ; re-set the SP in case of stack overflow
|
||||
BL Q_onAssert ; call the application-specific handler
|
||||
|
||||
B . ; should not be reached, but just in case...
|
||||
|
||||
ENDP
|
||||
|
||||
|
||||
|
63
3rd_party/ek-lm3s811/gnu/startup_LM3S811.c
vendored
@ -1,17 +1,18 @@
|
||||
/* File: startup_LM3S811.c for GNU-ARM
|
||||
* Purpose: startup file for TM4C123GH6PM Cortex-M4 device.
|
||||
* Should be used with GCC 'GNU Tools ARM Embedded'
|
||||
* Version: CMSIS v4.2.0
|
||||
* Date: 07 March 2015
|
||||
* Version: CMSIS 4.3.0
|
||||
* Date: 20 August 2015
|
||||
*
|
||||
* Created from the CMSIS template for the specified device
|
||||
* Quantum Leaps, www.state-machine.com
|
||||
*
|
||||
* NOTE: The function assert_failed defined at the end of this file
|
||||
* determines the error/assertion handling policy for the application and
|
||||
* might need to be customized for each project. This function is defined
|
||||
* using the GNU-ARM language extensions to avoid accessing the stack,
|
||||
* which might be corrupted by the time assert_failed is called.
|
||||
* NOTE:
|
||||
* The function assert_failed defined at the end of this file defines
|
||||
* the error/assertion handling policy for the application and might
|
||||
* need to be customized for each project. This function is defined in
|
||||
* assembly to re-set the stack pointer, in case it is corrupted by the
|
||||
* time assert_failed is called.
|
||||
*/
|
||||
/* Copyright (c) 2011 - 2014 ARM LIMITED
|
||||
|
||||
@ -47,20 +48,19 @@ extern int __stack_end__;
|
||||
/* Weak prototypes for error handlers --------------------------------------*/
|
||||
/**
|
||||
* \note
|
||||
* The functions assert_failed/Q_onAssert defined at the end of this file
|
||||
* determine the error/assertion handling policy for the application and
|
||||
* might need to be customized for each project. These functions are defined
|
||||
* as "naked" to avoid accessing the stack, which might be corrupted by
|
||||
* the time assert_failed/Q_onAssert are called.
|
||||
* The function assert_failed defined at the end of this file defines
|
||||
* the error/assertion handling policy for the application and might
|
||||
* need to be customized for each project. This function is defined in
|
||||
* assembly to avoid accessing the stack, which might be corrupted by
|
||||
* the time assert_failed is called.
|
||||
*/
|
||||
__attribute__ ((naked)) void assert_failed(char const *file, int line);
|
||||
__attribute__ ((alias("assert_failed")))
|
||||
void Q_onAssert(char const *file, int line);
|
||||
__attribute__ ((naked)) void assert_failed(char const *module, int loc);
|
||||
|
||||
/* Function prototypes -----------------------------------------------------*/
|
||||
void Default_Handler(void); /* Default empty handler */
|
||||
void Reset_Handler(void); /* Reset Handler */
|
||||
void SystemInit(void); /* CMSIS system initialization */
|
||||
void Q_onAssert(char const *module, int loc); /* QP assertion handler */
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* weak aliases for each Exception handler to the Default_Handler.
|
||||
@ -276,31 +276,22 @@ void _fini(void) { /* dummy */
|
||||
|
||||
/*****************************************************************************
|
||||
* The function assert_failed defines the error/assertion handling policy
|
||||
* for the application and might need to be customized for each project.
|
||||
* This function is defined as "naked" and specifically avoids accessing the
|
||||
* stack, which might be corrupted by the time assert_failed is called.
|
||||
* for the application. After making sure that the stack is OK, this function
|
||||
* calls Q_onAssert, which should NOT return (typically reset the CPU).
|
||||
*
|
||||
* NOTE: the functions assert_failed/Q_onAssert should NOT return.
|
||||
* NOTE: the function Q_onAssert should NOT return.
|
||||
*****************************************************************************/
|
||||
__attribute__ ((naked))
|
||||
void assert_failed(char const *file, int line) {
|
||||
|
||||
/* NOTE: add here your application-specific error handling... */
|
||||
|
||||
/* the following assembly implements the CMIS function
|
||||
* NVIC_SystemReset() from core_cm4.h
|
||||
* Leave this code if you wish to reset the system after an error.
|
||||
*/
|
||||
void assert_failed(char const *module, int loc) {
|
||||
/* re-set the SP in case of stack overflow */
|
||||
__asm volatile (
|
||||
" DSB\n\t" /* ensure all memory access complete */
|
||||
" LDR r0,=0x05FA0004\n\t" /* (0x5FA << SCB_AIRCR_VECTKEY_Pos)
|
||||
* | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)
|
||||
* | SCB_AIRCR_SYSRESETREQ_Msk */
|
||||
" LDR r1,=0xE000ED0C\n\t" /* address of SCB->AIRCR */
|
||||
" STR r0,[r1]\n\t" /* r0 -> SCB->AIRCR */
|
||||
" DSB\n\t" /* ensure all memory access complete */
|
||||
" B .\n\t" /* wait until reset occurs */
|
||||
);
|
||||
" MOV sp,%0\n\t"
|
||||
: : "r" (&__stack_end__));
|
||||
|
||||
Q_onAssert(module, loc); /* call the application-specific QP handler */
|
||||
|
||||
for (;;) { /* should not be reached, but just in case loop forever... */
|
||||
}
|
||||
}
|
||||
|
||||
/****** End Of File *********************************************************/
|
||||
|
43
3rd_party/ek-lm3s811/iar/startup_LM3S811.s
vendored
@ -1,8 +1,8 @@
|
||||
;/***************************************************************************/
|
||||
; * @file startup_LM3S811.s for IAR ARM assembler
|
||||
; * @brief CMSIS Cortex-M# Core Device Startup File for LM3S811
|
||||
; * @version CMSIS v4.1
|
||||
; * @date 07 March 2015
|
||||
; * @version CMSIS 4.3.0
|
||||
; * @date 20 August 2015
|
||||
; *
|
||||
; * @description
|
||||
; * Created from the CMSIS template for the specified device
|
||||
@ -12,8 +12,8 @@
|
||||
; * The function assert_failed defined at the end of this file defines
|
||||
; * the error/assertion handling policy for the application and might
|
||||
; * need to be customized for each project. This function is defined in
|
||||
; * assembly to avoid accessing the stack, which might be corrupted by
|
||||
; * the time assert_failed is called.
|
||||
; * assembly to re-set the stack pointer, in case it is corrupted by the
|
||||
; * time assert_failed is called.
|
||||
; *
|
||||
; ***************************************************************************/
|
||||
;/* Copyright (c) 2012 ARM LIMITED
|
||||
@ -253,36 +253,23 @@ FlashCtrl_IRQHandler
|
||||
|
||||
;******************************************************************************
|
||||
;
|
||||
; The weak functions assert_failed/Q_onAssert define the error/assertion
|
||||
; handling policy for the application and might need to be customized
|
||||
; for each project. These functions are defined in assembly to avoid
|
||||
; accessing the stack, which might be corrupted by the time assert_failed
|
||||
; is called. For now the function just resets the CPU.
|
||||
; The function assert_failed defines the error/assertion handling policy
|
||||
; for the application. After making sure that the stack is OK, this function
|
||||
; calls Q_onAssert, which should NOT return (typically reset the CPU).
|
||||
;
|
||||
; NOTE: the functions assert_failed/Q_onAssert should NOT return.
|
||||
; NOTE: the function Q_onAssert should NOT return.
|
||||
;
|
||||
; The C proptotypes of these functions are as follows:
|
||||
; The C proptotype of the assert_failed() and Q_onAssert() functions are:
|
||||
; void assert_failed(char const *file, int line);
|
||||
; void Q_onAssert (char const *file, int line);
|
||||
;******************************************************************************
|
||||
PUBWEAK assert_failed
|
||||
PUBWEAK Q_onAssert
|
||||
PUBLIC assert_failed
|
||||
EXTERN Q_onAssert
|
||||
assert_failed
|
||||
Q_onAssert
|
||||
;
|
||||
; NOTE: add here your application-specific error handling
|
||||
;
|
||||
LDR sp,=sfe(CSTACK) ; re-set the SP in case of stack overflow
|
||||
BL Q_onAssert ; call the application-specific handler
|
||||
|
||||
B . ; should not be reached, but just in case...
|
||||
|
||||
; the following code implements the CMIS function
|
||||
; NVIC_SystemReset() from core_cm3.h
|
||||
; Leave this code if you wish to reset the system after an error.
|
||||
DSB ; ensure all memory access complete
|
||||
LDR r0,=0x05FA0004 ; (0x5FA << SCB_AIRCR_VECTKEY_Pos)
|
||||
; | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)
|
||||
; | SCB_AIRCR_SYSRESETREQ_Msk
|
||||
LDR r1,=0xE000ED0C ; address of SCB->AIRCR
|
||||
STR r0,[r1] ; r0 -> SCB->AIRCR
|
||||
DSB ; ensure all memory access complete
|
||||
B . ; wait until reset occurs
|
||||
|
||||
END ; end of module
|
||||
|
@ -1,8 +1,8 @@
|
||||
;/***************************************************************************/
|
||||
; * @file startup_TM4C123GH6PM.s for ARM-KEIL ARM assembler
|
||||
; * @brief CMSIS Cortex-M# Core Device Startup File for TM4C123GH6PM
|
||||
; * @version CMSIS v4.1
|
||||
; * @date 07 March 2015
|
||||
; * @brief CMSIS Cortex-M4F Core Device Startup File for TM4C123GH6PM
|
||||
; * @version CMSIS 4.3.0
|
||||
; * @date 20 August 2015
|
||||
; *
|
||||
; * @description
|
||||
; * Created from the CMSIS template for the specified device
|
||||
@ -14,11 +14,11 @@
|
||||
; * --pd "Stack_Size SETA 512" --pd "Heap_Size SETA 0"
|
||||
; *
|
||||
; * @note
|
||||
; * The functions assert_failed/Q_onAssert defined at the end of this file
|
||||
; * determine the error/assertion handling policy for the application and
|
||||
; * might need to be customized for each project. This function is defined
|
||||
; * in assembly to avoid accessing the stack, which might be corrupted by
|
||||
; * the time assert_failed/Q_onAssert are called.
|
||||
; * The function assert_failed defined at the end of this file defines
|
||||
; * the error/assertion handling policy for the application and might
|
||||
; * need to be customized for each project. This function is defined in
|
||||
; * assembly to re-set the stack pointer, in case it is corrupted by the
|
||||
; * time assert_failed is called.
|
||||
; *
|
||||
; ***************************************************************************/
|
||||
;/* Copyright (c) 2012 ARM LIMITED
|
||||
@ -660,40 +660,27 @@ __user_initial_stackheap PROC
|
||||
|
||||
;******************************************************************************
|
||||
;
|
||||
; The functions assert_failed/Q_onAssert define the error/assertion
|
||||
; handling policy for the application and might need to be customized
|
||||
; for each project. These functions are defined in assembly to avoid
|
||||
; accessing the stack, which might be corrupted by the time assert_failed
|
||||
; is called. For now the function just resets the CPU.
|
||||
; The function assert_failed defines the error/assertion handling policy
|
||||
; for the application. After making sure that the stack is OK, this function
|
||||
; calls Q_onAssert, which should NOT return (typically reset the CPU).
|
||||
;
|
||||
; NOTE: the functions assert_failed/Q_onAssert should NOT return.
|
||||
; NOTE: the function Q_onAssert should NOT return.
|
||||
;
|
||||
; The C proptotypes of these functions are as follows:
|
||||
; The C proptotype of the assert_failed() and Q_onAssert() functions are:
|
||||
; void assert_failed(char const *file, int line);
|
||||
; void Q_onAssert (char const *file, int line);
|
||||
;******************************************************************************
|
||||
EXPORT assert_failed
|
||||
EXPORT Q_onAssert
|
||||
IMPORT Q_onAssert
|
||||
assert_failed PROC
|
||||
Q_onAssert
|
||||
;
|
||||
; NOTE: add here your application-specific error handling
|
||||
;
|
||||
|
||||
; the following code implements the CMIS function
|
||||
; NVIC_SystemReset() from core_cm4.h
|
||||
; Leave this code if you wish to reset the system after an error.
|
||||
DSB ; ensure all memory access complete
|
||||
LDR r0,=0x05FA0004 ; (0x5FA << SCB_AIRCR_VECTKEY_Pos)
|
||||
; | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)
|
||||
; | SCB_AIRCR_SYSRESETREQ_Msk
|
||||
LDR r1,=0xE000ED0C ; address of SCB->AIRCR
|
||||
STR r0,[r1] ; r0 -> SCB->AIRCR
|
||||
DSB ; ensure all memory access complete
|
||||
B . ; wait until reset occurs
|
||||
LDR sp,=__initial_sp ; re-set the SP in case of stack overflow
|
||||
BL Q_onAssert ; call the application-specific handler
|
||||
|
||||
B . ; should not be reached, but just in case...
|
||||
|
||||
ENDP
|
||||
|
||||
ALIGN ; make sure the end of this section is aligned
|
||||
|
||||
ALIGN ; make sure the end of this section is aligned
|
||||
|
||||
END ; end of module
|
||||
END ; end of module
|
||||
|
@ -1,17 +1,18 @@
|
||||
/* File: startup_TM4C123GH6PM.c
|
||||
* Purpose: startup file for TM4C123GH6PM Cortex-M4 device.
|
||||
* Should be used with GCC 'GNU Tools ARM Embedded'
|
||||
* Version: CMSIS v4.2.0
|
||||
* Date: 07 March 2015
|
||||
* Version: CMSIS 4.3.0
|
||||
* Date: 20 August 2015
|
||||
*
|
||||
* Created from the CMSIS template for the specified device
|
||||
* Quantum Leaps, www.state-machine.com
|
||||
*
|
||||
* NOTE: The function assert_failed defined at the end of this file
|
||||
* determines the error/assertion handling policy for the application and
|
||||
* might need to be customized for each project. This function is defined
|
||||
* using the GNU-ARM language extensions to avoid accessing the stack,
|
||||
* which might be corrupted by the time assert_failed is called.
|
||||
* NOTE:
|
||||
* The function assert_failed defined at the end of this file defines
|
||||
* the error/assertion handling policy for the application and might
|
||||
* need to be customized for each project. This function is defined in
|
||||
* assembly to re-set the stack pointer, in case it is corrupted by the
|
||||
* time assert_failed is called.
|
||||
*/
|
||||
/* Copyright (c) 2011 - 2014 ARM LIMITED
|
||||
|
||||
@ -47,20 +48,19 @@ extern int __stack_end__;
|
||||
/* Weak prototypes for error handlers --------------------------------------*/
|
||||
/**
|
||||
* \note
|
||||
* The functions assert_failed/Q_onAssert defined at the end of this file
|
||||
* determine the error/assertion handling policy for the application and
|
||||
* might need to be customized for each project. These functions are defined
|
||||
* as "naked" to avoid accessing the stack, which might be corrupted by
|
||||
* the time assert_failed/Q_onAssert are called.
|
||||
* The function assert_failed defined at the end of this file defines
|
||||
* the error/assertion handling policy for the application and might
|
||||
* need to be customized for each project. This function is defined in
|
||||
* assembly to avoid accessing the stack, which might be corrupted by
|
||||
* the time assert_failed is called.
|
||||
*/
|
||||
__attribute__ ((naked)) void assert_failed(char const *file, int line);
|
||||
__attribute__ ((alias("assert_failed")))
|
||||
void Q_onAssert(char const *file, int line);
|
||||
__attribute__ ((naked)) void assert_failed(char const *module, int loc);
|
||||
|
||||
/* Function prototypes -----------------------------------------------------*/
|
||||
void Default_Handler(void); /* Default empty handler */
|
||||
void Reset_Handler(void); /* Reset Handler */
|
||||
void SystemInit(void); /* CMSIS system initialization */
|
||||
void Q_onAssert(char const *module, int loc); /* QP assertion handler */
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* weak aliases for each Exception handler to the Default_Handler.
|
||||
@ -467,31 +467,22 @@ void _fini(void) { /* dummy */
|
||||
|
||||
/*****************************************************************************
|
||||
* The function assert_failed defines the error/assertion handling policy
|
||||
* for the application and might need to be customized for each project.
|
||||
* This function is defined as "naked" and specifically avoids accessing the
|
||||
* stack, which might be corrupted by the time assert_failed is called.
|
||||
* for the application. After making sure that the stack is OK, this function
|
||||
* calls Q_onAssert, which should NOT return (typically reset the CPU).
|
||||
*
|
||||
* NOTE: the functions assert_failed/Q_onAssert should NOT return.
|
||||
* NOTE: the function Q_onAssert should NOT return.
|
||||
*****************************************************************************/
|
||||
__attribute__ ((naked))
|
||||
void assert_failed(char const *file, int line) {
|
||||
|
||||
/* NOTE: add here your application-specific error handling... */
|
||||
|
||||
/* the following assembly implements the CMIS function
|
||||
* NVIC_SystemReset() from core_cm4.h
|
||||
* Leave this code if you wish to reset the system after an error.
|
||||
*/
|
||||
void assert_failed(char const *module, int loc) {
|
||||
/* re-set the SP in case of stack overflow */
|
||||
__asm volatile (
|
||||
" DSB\n\t" /* ensure all memory access complete */
|
||||
" LDR r0,=0x05FA0004\n\t" /* (0x5FA << SCB_AIRCR_VECTKEY_Pos)
|
||||
* | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)
|
||||
* | SCB_AIRCR_SYSRESETREQ_Msk */
|
||||
" LDR r1,=0xE000ED0C\n\t" /* address of SCB->AIRCR */
|
||||
" STR r0,[r1]\n\t" /* r0 -> SCB->AIRCR */
|
||||
" DSB\n\t" /* ensure all memory access complete */
|
||||
" B .\n\t" /* wait until reset occurs */
|
||||
);
|
||||
" MOV sp,%0\n\t"
|
||||
: : "r" (&__stack_end__));
|
||||
|
||||
Q_onAssert(module, loc); /* call the application-specific QP handler */
|
||||
|
||||
for (;;) { /* should not be reached, but just in case loop forever... */
|
||||
}
|
||||
}
|
||||
|
||||
/****** End Of File *********************************************************/
|
||||
|
323
3rd_party/ek-tm4c123gxl/iar/startup_TM4C123GH6PM.s
vendored
@ -1,8 +1,8 @@
|
||||
;/***************************************************************************/
|
||||
; * @file startup_TM4C123GH6PM.s for IAR ARM assembler
|
||||
; * @brief CMSIS Cortex-M# Core Device Startup File for TM4C123GH6PM
|
||||
; * @version CMSIS v4.1
|
||||
; * @date 07 March 2015
|
||||
; * @brief CMSIS Cortex-M4F Core Device Startup File for TM4C123GH6PM
|
||||
; * @version CMSIS 4.3.0
|
||||
; * @date 20 August 2015
|
||||
; *
|
||||
; * @description
|
||||
; * Created from the CMSIS template for the specified device
|
||||
@ -12,8 +12,8 @@
|
||||
; * The function assert_failed defined at the end of this file defines
|
||||
; * the error/assertion handling policy for the application and might
|
||||
; * need to be customized for each project. This function is defined in
|
||||
; * assembly to avoid accessing the stack, which might be corrupted by
|
||||
; * the time assert_failed is called.
|
||||
; * assembly to re-set the stack pointer, in case it is corrupted by the
|
||||
; * time assert_failed is called.
|
||||
; *
|
||||
; ***************************************************************************/
|
||||
;/* Copyright (c) 2012 ARM LIMITED
|
||||
@ -78,145 +78,145 @@ __vector_table
|
||||
DCD SysTick_Handler ; The SysTick handler
|
||||
|
||||
; IRQ handlers...
|
||||
DCD GPIOPortA_IRQHandler ; GPIO Port A
|
||||
DCD GPIOPortB_IRQHandler ; GPIO Port B
|
||||
DCD GPIOPortC_IRQHandler ; GPIO Port C
|
||||
DCD GPIOPortD_IRQHandler ; GPIO Port D
|
||||
DCD GPIOPortE_IRQHandler ; GPIO Port E
|
||||
DCD UART0_IRQHandler ; UART0 Rx and Tx
|
||||
DCD UART1_IRQHandler ; UART1 Rx and Tx
|
||||
DCD SSI0_IRQHandler ; SSI0 Rx and Tx
|
||||
DCD I2C0_IRQHandler ; I2C0 Master and Slave
|
||||
DCD PWMFault_IRQHandler ; PWM Fault
|
||||
DCD PWMGen0_IRQHandler ; PWM Generator 0
|
||||
DCD PWMGen1_IRQHandler ; PWM Generator 1
|
||||
DCD PWMGen2_IRQHandler ; PWM Generator 2
|
||||
DCD QEI0_IRQHandler ; Quadrature Encoder 0
|
||||
DCD ADCSeq0_IRQHandler ; ADC Sequence 0
|
||||
DCD ADCSeq1_IRQHandler ; ADC Sequence 1
|
||||
DCD ADCSeq2_IRQHandler ; ADC Sequence 2
|
||||
DCD ADCSeq3_IRQHandler ; ADC Sequence 3
|
||||
DCD Watchdog_IRQHandler ; Watchdog timer
|
||||
DCD Timer0A_IRQHandler ; Timer 0 subtimer A
|
||||
DCD Timer0B_IRQHandler ; Timer 0 subtimer B
|
||||
DCD Timer1A_IRQHandler ; Timer 1 subtimer A
|
||||
DCD Timer1B_IRQHandler ; Timer 1 subtimer B
|
||||
DCD Timer2A_IRQHandler ; Timer 2 subtimer A
|
||||
DCD Timer2B_IRQHandler ; Timer 2 subtimer B
|
||||
DCD Comp0_IRQHandler ; Analog Comparator 0
|
||||
DCD Comp1_IRQHandler ; Analog Comparator 1
|
||||
DCD Comp2_IRQHandler ; Analog Comparator 2
|
||||
DCD SysCtrl_IRQHandler ; System Control (PLL, OSC, BO)
|
||||
DCD FlashCtrl_IRQHandler ; FLASH Control
|
||||
DCD GPIOPortF_IRQHandler ; GPIO Port F
|
||||
DCD GPIOPortG_IRQHandler ; GPIO Port G
|
||||
DCD GPIOPortH_IRQHandler ; GPIO Port H
|
||||
DCD UART2_IRQHandler ; UART2 Rx and Tx
|
||||
DCD SSI1_IRQHandler ; SSI1 Rx and Tx
|
||||
DCD Timer3A_IRQHandler ; Timer 3 subtimer A
|
||||
DCD Timer3B_IRQHandler ; Timer 3 subtimer B
|
||||
DCD I2C1_IRQHandler ; I2C1 Master and Slave
|
||||
DCD QEI1_IRQHandler ; Quadrature Encoder 1
|
||||
DCD CAN0_IRQHandler ; CAN0
|
||||
DCD CAN1_IRQHandler ; CAN1
|
||||
DCD CAN2_IRQHandler ; CAN2
|
||||
DCD 0 ; Reserved
|
||||
DCD Hibernate_IRQHandler ; Hibernate
|
||||
DCD USB0_IRQHandler ; USB0
|
||||
DCD PWMGen3_IRQHandler ; PWM Generator 3
|
||||
DCD uDMAST_IRQHandler ; uDMA Software Transfer
|
||||
DCD uDMAError_IRQHandler ; uDMA Error
|
||||
DCD ADC1Seq0_IRQHandler ; ADC1 Sequence 0
|
||||
DCD ADC1Seq1_IRQHandler ; ADC1 Sequence 1
|
||||
DCD ADC1Seq2_IRQHandler ; ADC1 Sequence 2
|
||||
DCD ADC1Seq3_IRQHandler ; ADC1 Sequence 3
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD GPIOPortJ_IRQHandler ; GPIO Port J
|
||||
DCD GPIOPortK_IRQHandler ; GPIO Port K
|
||||
DCD GPIOPortL_IRQHandler ; GPIO Port L
|
||||
DCD SSI2_IRQHandler ; SSI2 Rx and Tx
|
||||
DCD SSI3_IRQHandler ; SSI3 Rx and Tx
|
||||
DCD UART3_IRQHandler ; UART3 Rx and Tx
|
||||
DCD UART4_IRQHandler ; UART4 Rx and Tx
|
||||
DCD UART5_IRQHandler ; UART5 Rx and Tx
|
||||
DCD UART6_IRQHandler ; UART6 Rx and Tx
|
||||
DCD UART7_IRQHandler ; UART7 Rx and Tx
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD I2C2_IRQHandler ; I2C2 Master and Slave
|
||||
DCD I2C3_IRQHandler ; I2C3 Master and Slave
|
||||
DCD Timer4A_IRQHandler ; Timer 4 subtimer A
|
||||
DCD Timer4B_IRQHandler ; Timer 4 subtimer B
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD Timer5A_IRQHandler ; Timer 5 subtimer A
|
||||
DCD Timer5B_IRQHandler ; Timer 5 subtimer B
|
||||
DCD WideTimer0A_IRQHandler ; Wide Timer 0 subtimer A
|
||||
DCD WideTimer0B_IRQHandler ; Wide Timer 0 subtimer B
|
||||
DCD WideTimer1A_IRQHandler ; Wide Timer 1 subtimer A
|
||||
DCD WideTimer1B_IRQHandler ; Wide Timer 1 subtimer B
|
||||
DCD WideTimer2A_IRQHandler ; Wide Timer 2 subtimer A
|
||||
DCD WideTimer2B_IRQHandler ; Wide Timer 2 subtimer B
|
||||
DCD WideTimer3A_IRQHandler ; Wide Timer 3 subtimer A
|
||||
DCD WideTimer3B_IRQHandler ; Wide Timer 3 subtimer B
|
||||
DCD WideTimer4A_IRQHandler ; Wide Timer 4 subtimer A
|
||||
DCD WideTimer4B_IRQHandler ; Wide Timer 4 subtimer B
|
||||
DCD WideTimer5A_IRQHandler ; Wide Timer 5 subtimer A
|
||||
DCD WideTimer5B_IRQHandler ; Wide Timer 5 subtimer B
|
||||
DCD FPU_IRQHandler ; FPU
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD I2C4_IRQHandler ; I2C4 Master and Slave
|
||||
DCD I2C5_IRQHandler ; I2C5 Master and Slave
|
||||
DCD GPIOPortM_IRQHandler ; GPIO Port M
|
||||
DCD GPIOPortN_IRQHandler ; GPIO Port N
|
||||
DCD QEI2_IRQHandler ; Quadrature Encoder 2
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD GPIOPortP0_IRQHandler ; GPIO Port P (Summary or P0)
|
||||
DCD GPIOPortP1_IRQHandler ; GPIO Port P1
|
||||
DCD GPIOPortP2_IRQHandler ; GPIO Port P2
|
||||
DCD GPIOPortP3_IRQHandler ; GPIO Port P3
|
||||
DCD GPIOPortP4_IRQHandler ; GPIO Port P4
|
||||
DCD GPIOPortP5_IRQHandler ; GPIO Port P5
|
||||
DCD GPIOPortP6_IRQHandler ; GPIO Port P6
|
||||
DCD GPIOPortP7_IRQHandler ; GPIO Port P7
|
||||
DCD GPIOPortQ0_IRQHandler ; GPIO Port Q (Summary or Q0)
|
||||
DCD GPIOPortQ1_IRQHandler ; GPIO Port Q1
|
||||
DCD GPIOPortQ2_IRQHandler ; GPIO Port Q2
|
||||
DCD GPIOPortQ3_IRQHandler ; GPIO Port Q3
|
||||
DCD GPIOPortQ4_IRQHandler ; GPIO Port Q4
|
||||
DCD GPIOPortQ5_IRQHandler ; GPIO Port Q5
|
||||
DCD GPIOPortQ6_IRQHandler ; GPIO Port Q6
|
||||
DCD GPIOPortQ7_IRQHandler ; GPIO Port Q7
|
||||
DCD GPIOPortR_IRQHandler ; GPIO Port R
|
||||
DCD GPIOPortS_IRQHandler ; GPIO Port S
|
||||
DCD PWM1Gen0_IRQHandler ; PWM 1 Generator 0
|
||||
DCD PWM1Gen1_IRQHandler ; PWM 1 Generator 1
|
||||
DCD PWM1Gen2_IRQHandler ; PWM 1 Generator 2
|
||||
DCD PWM1Gen3_IRQHandler ; PWM 1 Generator 3
|
||||
DCD PWM1Fault_IRQHandler ; PWM 1 Fault
|
||||
DCD GPIOPortA_IRQHandler ; GPIO Port A
|
||||
DCD GPIOPortB_IRQHandler ; GPIO Port B
|
||||
DCD GPIOPortC_IRQHandler ; GPIO Port C
|
||||
DCD GPIOPortD_IRQHandler ; GPIO Port D
|
||||
DCD GPIOPortE_IRQHandler ; GPIO Port E
|
||||
DCD UART0_IRQHandler ; UART0 Rx and Tx
|
||||
DCD UART1_IRQHandler ; UART1 Rx and Tx
|
||||
DCD SSI0_IRQHandler ; SSI0 Rx and Tx
|
||||
DCD I2C0_IRQHandler ; I2C0 Master and Slave
|
||||
DCD PWMFault_IRQHandler ; PWM Fault
|
||||
DCD PWMGen0_IRQHandler ; PWM Generator 0
|
||||
DCD PWMGen1_IRQHandler ; PWM Generator 1
|
||||
DCD PWMGen2_IRQHandler ; PWM Generator 2
|
||||
DCD QEI0_IRQHandler ; Quadrature Encoder 0
|
||||
DCD ADCSeq0_IRQHandler ; ADC Sequence 0
|
||||
DCD ADCSeq1_IRQHandler ; ADC Sequence 1
|
||||
DCD ADCSeq2_IRQHandler ; ADC Sequence 2
|
||||
DCD ADCSeq3_IRQHandler ; ADC Sequence 3
|
||||
DCD Watchdog_IRQHandler ; Watchdog timer
|
||||
DCD Timer0A_IRQHandler ; Timer 0 subtimer A
|
||||
DCD Timer0B_IRQHandler ; Timer 0 subtimer B
|
||||
DCD Timer1A_IRQHandler ; Timer 1 subtimer A
|
||||
DCD Timer1B_IRQHandler ; Timer 1 subtimer B
|
||||
DCD Timer2A_IRQHandler ; Timer 2 subtimer A
|
||||
DCD Timer2B_IRQHandler ; Timer 2 subtimer B
|
||||
DCD Comp0_IRQHandler ; Analog Comparator 0
|
||||
DCD Comp1_IRQHandler ; Analog Comparator 1
|
||||
DCD Comp2_IRQHandler ; Analog Comparator 2
|
||||
DCD SysCtrl_IRQHandler ; System Control (PLL, OSC, BO)
|
||||
DCD FlashCtrl_IRQHandler ; FLASH Control
|
||||
DCD GPIOPortF_IRQHandler ; GPIO Port F
|
||||
DCD GPIOPortG_IRQHandler ; GPIO Port G
|
||||
DCD GPIOPortH_IRQHandler ; GPIO Port H
|
||||
DCD UART2_IRQHandler ; UART2 Rx and Tx
|
||||
DCD SSI1_IRQHandler ; SSI1 Rx and Tx
|
||||
DCD Timer3A_IRQHandler ; Timer 3 subtimer A
|
||||
DCD Timer3B_IRQHandler ; Timer 3 subtimer B
|
||||
DCD I2C1_IRQHandler ; I2C1 Master and Slave
|
||||
DCD QEI1_IRQHandler ; Quadrature Encoder 1
|
||||
DCD CAN0_IRQHandler ; CAN0
|
||||
DCD CAN1_IRQHandler ; CAN1
|
||||
DCD CAN2_IRQHandler ; CAN2
|
||||
DCD 0 ; Reserved
|
||||
DCD Hibernate_IRQHandler ; Hibernate
|
||||
DCD USB0_IRQHandler ; USB0
|
||||
DCD PWMGen3_IRQHandler ; PWM Generator 3
|
||||
DCD uDMAST_IRQHandler ; uDMA Software Transfer
|
||||
DCD uDMAError_IRQHandler ; uDMA Error
|
||||
DCD ADC1Seq0_IRQHandler ; ADC1 Sequence 0
|
||||
DCD ADC1Seq1_IRQHandler ; ADC1 Sequence 1
|
||||
DCD ADC1Seq2_IRQHandler ; ADC1 Sequence 2
|
||||
DCD ADC1Seq3_IRQHandler ; ADC1 Sequence 3
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD GPIOPortJ_IRQHandler ; GPIO Port J
|
||||
DCD GPIOPortK_IRQHandler ; GPIO Port K
|
||||
DCD GPIOPortL_IRQHandler ; GPIO Port L
|
||||
DCD SSI2_IRQHandler ; SSI2 Rx and Tx
|
||||
DCD SSI3_IRQHandler ; SSI3 Rx and Tx
|
||||
DCD UART3_IRQHandler ; UART3 Rx and Tx
|
||||
DCD UART4_IRQHandler ; UART4 Rx and Tx
|
||||
DCD UART5_IRQHandler ; UART5 Rx and Tx
|
||||
DCD UART6_IRQHandler ; UART6 Rx and Tx
|
||||
DCD UART7_IRQHandler ; UART7 Rx and Tx
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD I2C2_IRQHandler ; I2C2 Master and Slave
|
||||
DCD I2C3_IRQHandler ; I2C3 Master and Slave
|
||||
DCD Timer4A_IRQHandler ; Timer 4 subtimer A
|
||||
DCD Timer4B_IRQHandler ; Timer 4 subtimer B
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD Timer5A_IRQHandler ; Timer 5 subtimer A
|
||||
DCD Timer5B_IRQHandler ; Timer 5 subtimer B
|
||||
DCD WideTimer0A_IRQHandler ; Wide Timer 0 subtimer A
|
||||
DCD WideTimer0B_IRQHandler ; Wide Timer 0 subtimer B
|
||||
DCD WideTimer1A_IRQHandler ; Wide Timer 1 subtimer A
|
||||
DCD WideTimer1B_IRQHandler ; Wide Timer 1 subtimer B
|
||||
DCD WideTimer2A_IRQHandler ; Wide Timer 2 subtimer A
|
||||
DCD WideTimer2B_IRQHandler ; Wide Timer 2 subtimer B
|
||||
DCD WideTimer3A_IRQHandler ; Wide Timer 3 subtimer A
|
||||
DCD WideTimer3B_IRQHandler ; Wide Timer 3 subtimer B
|
||||
DCD WideTimer4A_IRQHandler ; Wide Timer 4 subtimer A
|
||||
DCD WideTimer4B_IRQHandler ; Wide Timer 4 subtimer B
|
||||
DCD WideTimer5A_IRQHandler ; Wide Timer 5 subtimer A
|
||||
DCD WideTimer5B_IRQHandler ; Wide Timer 5 subtimer B
|
||||
DCD FPU_IRQHandler ; FPU
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD I2C4_IRQHandler ; I2C4 Master and Slave
|
||||
DCD I2C5_IRQHandler ; I2C5 Master and Slave
|
||||
DCD GPIOPortM_IRQHandler ; GPIO Port M
|
||||
DCD GPIOPortN_IRQHandler ; GPIO Port N
|
||||
DCD QEI2_IRQHandler ; Quadrature Encoder 2
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD GPIOPortP0_IRQHandler ; GPIO Port P (Summary or P0)
|
||||
DCD GPIOPortP1_IRQHandler ; GPIO Port P1
|
||||
DCD GPIOPortP2_IRQHandler ; GPIO Port P2
|
||||
DCD GPIOPortP3_IRQHandler ; GPIO Port P3
|
||||
DCD GPIOPortP4_IRQHandler ; GPIO Port P4
|
||||
DCD GPIOPortP5_IRQHandler ; GPIO Port P5
|
||||
DCD GPIOPortP6_IRQHandler ; GPIO Port P6
|
||||
DCD GPIOPortP7_IRQHandler ; GPIO Port P7
|
||||
DCD GPIOPortQ0_IRQHandler ; GPIO Port Q (Summary or Q0)
|
||||
DCD GPIOPortQ1_IRQHandler ; GPIO Port Q1
|
||||
DCD GPIOPortQ2_IRQHandler ; GPIO Port Q2
|
||||
DCD GPIOPortQ3_IRQHandler ; GPIO Port Q3
|
||||
DCD GPIOPortQ4_IRQHandler ; GPIO Port Q4
|
||||
DCD GPIOPortQ5_IRQHandler ; GPIO Port Q5
|
||||
DCD GPIOPortQ6_IRQHandler ; GPIO Port Q6
|
||||
DCD GPIOPortQ7_IRQHandler ; GPIO Port Q7
|
||||
DCD GPIOPortR_IRQHandler ; GPIO Port R
|
||||
DCD GPIOPortS_IRQHandler ; GPIO Port S
|
||||
DCD PWM1Gen0_IRQHandler ; PWM 1 Generator 0
|
||||
DCD PWM1Gen1_IRQHandler ; PWM 1 Generator 1
|
||||
DCD PWM1Gen2_IRQHandler ; PWM 1 Generator 2
|
||||
DCD PWM1Gen3_IRQHandler ; PWM 1 Generator 3
|
||||
DCD PWM1Fault_IRQHandler ; PWM 1 Fault
|
||||
|
||||
__Vectors_End
|
||||
|
||||
@ -526,37 +526,24 @@ PWM1Fault_IRQHandler
|
||||
|
||||
;******************************************************************************
|
||||
;
|
||||
; The functions assert_failed/Q_onAssert define the error/assertion
|
||||
; handling policy for the application and might need to be customized
|
||||
; for each project. These functions are defined in assembly to avoid
|
||||
; accessing the stack, which might be corrupted by the time assert_failed
|
||||
; is called. For now the function just resets the CPU.
|
||||
; The function assert_failed defines the error/assertion handling policy
|
||||
; for the application. After making sure that the stack is OK, this function
|
||||
; calls Q_onAssert, which should NOT return (typically reset the CPU).
|
||||
;
|
||||
; NOTE: the functions assert_failed/Q_onAssert should NOT return.
|
||||
; NOTE: the function Q_onAssert should NOT return.
|
||||
;
|
||||
; The C proptotypes of these functions are as follows:
|
||||
; The C proptotype of the assert_failed() and Q_onAssert() functions are:
|
||||
; void assert_failed(char const *file, int line);
|
||||
; void Q_onAssert (char const *file, int line);
|
||||
;******************************************************************************
|
||||
PUBLIC assert_failed
|
||||
PUBLIC Q_onAssert
|
||||
Q_onAssert
|
||||
EXTERN Q_onAssert
|
||||
assert_failed
|
||||
;
|
||||
; NOTE: add here your application-specific error handling
|
||||
;
|
||||
LDR sp,=sfe(CSTACK) ; re-set the SP in case of stack overflow
|
||||
BL Q_onAssert ; call the application-specific handler
|
||||
|
||||
; the following code implements the CMIS function
|
||||
; NVIC_SystemReset() from core_cm4.h
|
||||
; Leave this code if you wish to reset the system after an error.
|
||||
DSB ; ensure all memory access complete
|
||||
LDR r0,=0x05FA0004 ; (0x5FA << SCB_AIRCR_VECTKEY_Pos)
|
||||
; | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)
|
||||
; | SCB_AIRCR_SYSRESETREQ_Msk
|
||||
LDR r1,=0xE000ED0C ; address of SCB->AIRCR
|
||||
STR r0,[r1] ; r0 -> SCB->AIRCR
|
||||
DSB ; ensure all memory access complete
|
||||
B . ; wait until reset occurs
|
||||
B . ; should not be reached, but just in case...
|
||||
|
||||
|
||||
END
|
||||
END ; end of module
|
||||
|
||||
|
56
3rd_party/mbed-lpc1768/arm/startup_LPC17xx.s
vendored
@ -1,8 +1,8 @@
|
||||
;/***************************************************************************/
|
||||
; * @file startup_LPC17xx.s for ARM-KEIL ARM assembler
|
||||
; * @brief CMSIS Cortex-M3 Core Device Startup File for LPC17xx
|
||||
; * @version CMSIS v4.1
|
||||
; * @date 07 March 2015
|
||||
; * @file startup_TM4C123GH6PM.s for ARM-KEIL ARM assembler
|
||||
; * @brief CMSIS Cortex-M4F Core Device Startup File for TM4C123GH6PM
|
||||
; * @version CMSIS 4.3.0
|
||||
; * @date 06 August 2015
|
||||
; *
|
||||
; * @description
|
||||
; * Created from the CMSIS template for the specified device
|
||||
@ -14,11 +14,11 @@
|
||||
; * --pd "Stack_Size SETA 512" --pd "Heap_Size SETA 0"
|
||||
; *
|
||||
; * @note
|
||||
; * The functions assert_failed/Q_onAssert defined at the end of this file
|
||||
; * determine the error/assertion handling policy for the application and
|
||||
; * might need to be customized for each project. This function is defined
|
||||
; * in assembly to avoid accessing the stack, which might be corrupted by
|
||||
; * the time assert_failed/Q_onAssert are called.
|
||||
; * The function assert_failed defined at the end of this file defines
|
||||
; * the error/assertion handling policy for the application and might
|
||||
; * need to be customized for each project. This function is defined in
|
||||
; * assembly to re-set the stack pointer, in case it is corrupted by the
|
||||
; * time assert_failed is called.
|
||||
; *
|
||||
; ***************************************************************************/
|
||||
;/* Copyright (c) 2012 ARM LIMITED
|
||||
@ -410,40 +410,28 @@ __user_initial_stackheap PROC
|
||||
|
||||
;******************************************************************************
|
||||
;
|
||||
; The functions assert_failed/Q_onAssert define the error/assertion
|
||||
; handling policy for the application and might need to be customized
|
||||
; for each project. These functions are defined in assembly to avoid
|
||||
; accessing the stack, which might be corrupted by the time assert_failed
|
||||
; is called. For now the function just resets the CPU.
|
||||
; The function assert_failed defines the error/assertion handling policy
|
||||
; for the application. After making sure that the stack is OK, this function
|
||||
; calls Q_onAssert, which should NOT return (typically reset the CPU).
|
||||
;
|
||||
; NOTE: the functions assert_failed/Q_onAssert should NOT return.
|
||||
; NOTE: the function Q_onAssert should NOT return.
|
||||
;
|
||||
; The C proptotypes of these functions are as follows:
|
||||
; The C proptotype of the assert_failed() and Q_onAssert() functions are:
|
||||
; void assert_failed(char const *file, int line);
|
||||
; void Q_onAssert (char const *file, int line);
|
||||
;******************************************************************************
|
||||
EXPORT assert_failed
|
||||
EXPORT Q_onAssert
|
||||
IMPORT Q_onAssert
|
||||
assert_failed PROC
|
||||
Q_onAssert
|
||||
;
|
||||
; NOTE: add here your application-specific error handling
|
||||
;
|
||||
|
||||
; the following code implements the CMIS function
|
||||
; NVIC_SystemReset() from core_cm4.h
|
||||
; Leave this code if you wish to reset the system after an error.
|
||||
DSB ; ensure all memory access complete
|
||||
LDR r0,=0x05FA0004 ; (0x5FA << SCB_AIRCR_VECTKEY_Pos)
|
||||
; | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)
|
||||
; | SCB_AIRCR_SYSRESETREQ_Msk
|
||||
LDR r1,=0xE000ED0C ; address of SCB->AIRCR
|
||||
STR r0,[r1] ; r0 -> SCB->AIRCR
|
||||
DSB ; ensure all memory access complete
|
||||
B . ; wait until reset occurs
|
||||
LDR sp,=__initial_sp ; re-set the SP in case of stack overflow
|
||||
BL Q_onAssert ; call the application-specific handler
|
||||
|
||||
B . ; should not be reached, but just in case...
|
||||
|
||||
ENDP
|
||||
|
||||
|
||||
ALIGN ; make sure the end of this section is aligned
|
||||
ALIGN ; make sure the end of this section is aligned
|
||||
|
||||
END ; end of module
|
||||
END ; end of module
|
||||
|
52
3rd_party/mbed-lpc1768/gnu/startup_LPC17xx.c
vendored
@ -1,8 +1,8 @@
|
||||
/* File: startup_LPC17xx.c
|
||||
* Purpose: startup file for LPC17xx Cortex-M3 devices.
|
||||
* Should be used with GCC 'GNU Tools ARM Embedded'
|
||||
* Version: CMSIS v4.2.0
|
||||
* Date: 30 March 2015
|
||||
* Version: CMSIS 4.3.0
|
||||
* Date: 06 August 2015
|
||||
*
|
||||
* Created from the CMSIS template for the specified device
|
||||
* Quantum Leaps, www.state-machine.com
|
||||
@ -47,20 +47,19 @@ extern int __stack_end__;
|
||||
/* Weak prototypes for error handlers --------------------------------------*/
|
||||
/**
|
||||
* \note
|
||||
* The functions assert_failed/Q_onAssert defined at the end of this file
|
||||
* determine the error/assertion handling policy for the application and
|
||||
* might need to be customized for each project. These functions are defined
|
||||
* as "naked" to avoid accessing the stack, which might be corrupted by
|
||||
* the time assert_failed/Q_onAssert are called.
|
||||
* The function assert_failed defined at the end of this file defines
|
||||
* the error/assertion handling policy for the application and might
|
||||
* need to be customized for each project. This function is defined in
|
||||
* assembly to avoid accessing the stack, which might be corrupted by
|
||||
* the time assert_failed is called.
|
||||
*/
|
||||
__attribute__ ((naked)) void assert_failed(char const *file, int line);
|
||||
__attribute__ ((alias("assert_failed")))
|
||||
void Q_onAssert(char const *file, int line);
|
||||
__attribute__ ((naked)) void assert_failed(char const *module, int loc);
|
||||
|
||||
/* Function prototypes -----------------------------------------------------*/
|
||||
void Default_Handler(void); /* Default empty handler */
|
||||
void Reset_Handler(void); /* Reset Handler */
|
||||
void SystemInit(void); /* CMSIS system initialization */
|
||||
void Q_onAssert(char const *module, int loc); /* QP assertion handler */
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* weak aliases for each Exception handler to the Default_Handler.
|
||||
@ -290,31 +289,22 @@ void _fini(void) { /* dummy */
|
||||
|
||||
/*****************************************************************************
|
||||
* The function assert_failed defines the error/assertion handling policy
|
||||
* for the application and might need to be customized for each project.
|
||||
* This function is defined as "naked" and specifically avoids accessing the
|
||||
* stack, which might be corrupted by the time assert_failed is called.
|
||||
* for the application. After making sure that the stack is OK, this function
|
||||
* calls Q_onAssert, which should NOT return (typically reset the CPU).
|
||||
*
|
||||
* NOTE: the functions assert_failed/Q_onAssert should NOT return.
|
||||
* NOTE: the function Q_onAssert should NOT return.
|
||||
*****************************************************************************/
|
||||
__attribute__ ((naked))
|
||||
void assert_failed(char const *file, int line) {
|
||||
|
||||
/* NOTE: add here your application-specific error handling... */
|
||||
|
||||
/* the following assembly implements the CMIS function
|
||||
* NVIC_SystemReset() from core_cm4.h
|
||||
* Leave this code if you wish to reset the system after an error.
|
||||
*/
|
||||
void assert_failed(char const *module, int loc) {
|
||||
/* re-set the SP in case of stack overflow */
|
||||
__asm volatile (
|
||||
" DSB\n\t" /* ensure all memory access complete */
|
||||
" LDR r0,=0x05FA0004\n\t" /* (0x5FA << SCB_AIRCR_VECTKEY_Pos)
|
||||
* | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)
|
||||
* | SCB_AIRCR_SYSRESETREQ_Msk */
|
||||
" LDR r1,=0xE000ED0C\n\t" /* address of SCB->AIRCR */
|
||||
" STR r0,[r1]\n\t" /* r0 -> SCB->AIRCR */
|
||||
" DSB\n\t" /* ensure all memory access complete */
|
||||
" B .\n\t" /* wait until reset occurs */
|
||||
);
|
||||
" MOV sp,%0\n\t"
|
||||
: : "r" (&__stack_end__));
|
||||
|
||||
Q_onAssert(module, loc); /* call the application-specific QP handler */
|
||||
|
||||
for (;;) { /* should not be reached, but just in case loop forever... */
|
||||
}
|
||||
}
|
||||
|
||||
/****** End Of File *********************************************************/
|
||||
|
46
3rd_party/mbed-lpc1768/iar/startup_LPC17xx.s
vendored
@ -1,8 +1,8 @@
|
||||
;/***************************************************************************/
|
||||
; * @file startup_LPC17xx.s for IAR ARM assembler
|
||||
; * @brief CMSIS Cortex-M# Core Device Startup File for LPC17xx
|
||||
; * @version CMSIS v4.1
|
||||
; * @date 07 March 2015
|
||||
; * @file startup_TM4C123GH6PM.s for IAR ARM assembler
|
||||
; * @brief CMSIS Cortex-M4F Core Device Startup File for TM4C123GH6PM
|
||||
; * @version CMSIS 4.3.0
|
||||
; * @date 20 August 2015
|
||||
; *
|
||||
; * @description
|
||||
; * Created from the CMSIS template for the specified device
|
||||
@ -12,8 +12,8 @@
|
||||
; * The function assert_failed defined at the end of this file defines
|
||||
; * the error/assertion handling policy for the application and might
|
||||
; * need to be customized for each project. This function is defined in
|
||||
; * assembly to avoid accessing the stack, which might be corrupted by
|
||||
; * the time assert_failed is called.
|
||||
; * assembly to re-set the stack pointer, in case it is corrupted by the
|
||||
; * time assert_failed is called.
|
||||
; *
|
||||
; ***************************************************************************/
|
||||
;/* Copyright (c) 2012 ARM LIMITED
|
||||
@ -276,37 +276,23 @@ CANActivity_IRQHandler
|
||||
|
||||
;******************************************************************************
|
||||
;
|
||||
; The functions assert_failed/Q_onAssert define the error/assertion
|
||||
; handling policy for the application and might need to be customized
|
||||
; for each project. These functions are defined in assembly to avoid
|
||||
; accessing the stack, which might be corrupted by the time assert_failed
|
||||
; is called. For now the function just resets the CPU.
|
||||
; The function assert_failed defines the error/assertion handling policy
|
||||
; for the application. After making sure that the stack is OK, this function
|
||||
; calls Q_onAssert, which should NOT return (typically reset the CPU).
|
||||
;
|
||||
; NOTE: the functions assert_failed/Q_onAssert should NOT return.
|
||||
; NOTE: the function Q_onAssert should NOT return.
|
||||
;
|
||||
; The C proptotypes of these functions are as follows:
|
||||
; The C proptotype of the assert_failed() and Q_onAssert() functions are:
|
||||
; void assert_failed(char const *file, int line);
|
||||
; void Q_onAssert (char const *file, int line);
|
||||
;******************************************************************************
|
||||
PUBLIC assert_failed
|
||||
PUBLIC Q_onAssert
|
||||
Q_onAssert
|
||||
EXTERN Q_onAssert
|
||||
assert_failed
|
||||
;
|
||||
; NOTE: add here your application-specific error handling
|
||||
;
|
||||
LDR sp,=sfe(CSTACK) ; re-set the SP in case of stack overflow
|
||||
BL Q_onAssert ; call the application-specific handler
|
||||
|
||||
; the following code implements the CMIS function
|
||||
; NVIC_SystemReset() from core_cm4.h
|
||||
; Leave this code if you wish to reset the system after an error.
|
||||
DSB ; ensure all memory access complete
|
||||
LDR r0,=0x05FA0004 ; (0x5FA << SCB_AIRCR_VECTKEY_Pos)
|
||||
; | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)
|
||||
; | SCB_AIRCR_SYSRESETREQ_Msk
|
||||
LDR r1,=0xE000ED0C ; address of SCB->AIRCR
|
||||
STR r0,[r1] ; r0 -> SCB->AIRCR
|
||||
DSB ; ensure all memory access complete
|
||||
B . ; wait until reset occurs
|
||||
B . ; should not be reached, but just in case...
|
||||
|
||||
|
||||
END
|
||||
END ; end of module
|
||||
|
@ -9,7 +9,7 @@
|
||||
;
|
||||
;
|
||||
; Quantum Leaps, LLC; www.state-machine.com
|
||||
; 2015-03-24
|
||||
; 2015-08-27
|
||||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
|
||||
;* File Name : startup_stm32l053xx.s
|
||||
;* Author : MCD Application Team
|
||||
@ -304,39 +304,29 @@ __user_initial_stackheap
|
||||
|
||||
;******************************************************************************
|
||||
;
|
||||
; The functions assert_failed/Q_onAssert define the error/assertion
|
||||
; handling policy for the application and might need to be customized
|
||||
; for each project. These functions are defined in assembly to avoid
|
||||
; accessing the stack, which might be corrupted by the time assert_failed
|
||||
; is called. For now the function just resets the CPU.
|
||||
; The function assert_failed defines the error/assertion handling policy
|
||||
; for the application. After making sure that the stack is OK, this function
|
||||
; calls Q_onAssert, which should NOT return (typically reset the CPU).
|
||||
;
|
||||
; NOTE: the functions assert_failed/Q_onAssert should NOT return.
|
||||
; NOTE: the function Q_onAssert should NOT return.
|
||||
;
|
||||
; The C proptotypes of these functions are as follows:
|
||||
; The C proptotype of the assert_failed() and Q_onAssert() functions are:
|
||||
; void assert_failed(char const *file, int line);
|
||||
; void Q_onAssert (char const *file, int line);
|
||||
;******************************************************************************
|
||||
EXPORT assert_failed
|
||||
EXPORT Q_onAssert
|
||||
IMPORT Q_onAssert
|
||||
assert_failed PROC
|
||||
Q_onAssert
|
||||
;
|
||||
; NOTE: add here your application-specific error handling
|
||||
;
|
||||
|
||||
; the following code implements the CMIS function
|
||||
; NVIC_SystemReset() from core_cm4.h
|
||||
; Leave this code if you wish to reset the system after an error.
|
||||
DSB ; ensure all memory access complete
|
||||
LDR r0,=0x05FA0004 ; (0x5FA << SCB_AIRCR_VECTKEY_Pos)
|
||||
; | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)
|
||||
; | SCB_AIRCR_SYSRESETREQ_Msk
|
||||
LDR r1,=0xE000ED0C ; address of SCB->AIRCR
|
||||
STR r0,[r1] ; r0 -> SCB->AIRCR
|
||||
DSB ; ensure all memory access complete
|
||||
B . ; wait until reset occurs
|
||||
LDR R2,=__initial_sp ; load the original top of stack
|
||||
MOV SP,R2 ; re-set the SP in case of stack overflow
|
||||
BL Q_onAssert ; call the application-specific handler
|
||||
|
||||
B . ; should not be reached, but just in case...
|
||||
|
||||
ENDP
|
||||
|
||||
END
|
||||
|
||||
;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
|
||||
ALIGN ; make sure the end of this section is aligned
|
||||
|
||||
END ; end of module
|
||||
|
@ -1,17 +1,18 @@
|
||||
/* File: startup_stm32l053xx.c for GNU-ARM
|
||||
* Purpose: startup file for LM3S6965 Cortex-M3 device.
|
||||
* Should be used with GCC 'GNU Tools ARM Embedded'
|
||||
* Version: CMSIS v4.2.0
|
||||
* Date: 07 March 2015
|
||||
* Version: CMSIS 4.3.0
|
||||
* Date: 20 August 2015
|
||||
*
|
||||
* Created from the CMSIS template for the specified device
|
||||
* Quantum Leaps, www.state-machine.com
|
||||
*
|
||||
* NOTE: The function assert_failed defined at the end of this file
|
||||
* determines the error/assertion handling policy for the application and
|
||||
* might need to be customized for each project. This function is defined
|
||||
* using the GNU-ARM language extensions to avoid accessing the stack,
|
||||
* which might be corrupted by the time assert_failed is called.
|
||||
* NOTE:
|
||||
* The function assert_failed defined at the end of this file defines
|
||||
* the error/assertion handling policy for the application and might
|
||||
* need to be customized for each project. This function is defined in
|
||||
* assembly to re-set the stack pointer, in case it is corrupted by the
|
||||
* time assert_failed is called.
|
||||
*/
|
||||
/* Copyright (c) 2011 - 2014 ARM LIMITED
|
||||
|
||||
@ -47,20 +48,19 @@ extern int __stack_end__;
|
||||
/* Weak prototypes for error handlers --------------------------------------*/
|
||||
/**
|
||||
* \note
|
||||
* The functions assert_failed/Q_onAssert defined at the end of this file
|
||||
* determine the error/assertion handling policy for the application and
|
||||
* might need to be customized for each project. These functions are defined
|
||||
* as "naked" to avoid accessing the stack, which might be corrupted by
|
||||
* the time assert_failed/Q_onAssert are called.
|
||||
* The function assert_failed defined at the end of this file defines
|
||||
* the error/assertion handling policy for the application and might
|
||||
* need to be customized for each project. This function is defined in
|
||||
* assembly to avoid accessing the stack, which might be corrupted by
|
||||
* the time assert_failed is called.
|
||||
*/
|
||||
__attribute__ ((naked)) void assert_failed(char const *file, int line);
|
||||
__attribute__ ((alias("assert_failed")))
|
||||
void Q_onAssert(char const *file, int line);
|
||||
__attribute__ ((naked)) void assert_failed(char const *module, int loc);
|
||||
|
||||
/* Function prototypes -----------------------------------------------------*/
|
||||
void Default_Handler(void); /* Default empty handler */
|
||||
void Reset_Handler(void); /* Reset Handler */
|
||||
void SystemInit(void); /* CMSIS system initialization */
|
||||
void Q_onAssert(char const *module, int loc); /* QP assertion handler */
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* weak aliases for each Exception handler to the Default_Handler.
|
||||
@ -279,31 +279,22 @@ void _fini(void) { /* dummy */
|
||||
|
||||
/*****************************************************************************
|
||||
* The function assert_failed defines the error/assertion handling policy
|
||||
* for the application and might need to be customized for each project.
|
||||
* This function is defined as "naked" and specifically avoids accessing the
|
||||
* stack, which might be corrupted by the time assert_failed is called.
|
||||
* for the application. After making sure that the stack is OK, this function
|
||||
* calls Q_onAssert, which should NOT return (typically reset the CPU).
|
||||
*
|
||||
* NOTE: the functions assert_failed/Q_onAssert should NOT return.
|
||||
* NOTE: the function Q_onAssert should NOT return.
|
||||
*****************************************************************************/
|
||||
__attribute__ ((naked))
|
||||
void assert_failed(char const *file, int line) {
|
||||
|
||||
/* NOTE: add here your application-specific error handling... */
|
||||
|
||||
/* the following assembly implements the CMIS function
|
||||
* NVIC_SystemReset() from core_cm4.h
|
||||
* Leave this code if you wish to reset the system after an error.
|
||||
*/
|
||||
void assert_failed(char const *module, int loc) {
|
||||
/* re-set the SP in case of stack overflow */
|
||||
__asm volatile (
|
||||
" DSB\n\t" /* ensure all memory access complete */
|
||||
" LDR r0,=0x05FA0004\n\t" /* (0x5FA << SCB_AIRCR_VECTKEY_Pos)
|
||||
* | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)
|
||||
* | SCB_AIRCR_SYSRESETREQ_Msk */
|
||||
" LDR r1,=0xE000ED0C\n\t" /* address of SCB->AIRCR */
|
||||
" STR r0,[r1]\n\t" /* r0 -> SCB->AIRCR */
|
||||
" DSB\n\t" /* ensure all memory access complete */
|
||||
" B .\n\t" /* wait until reset occurs */
|
||||
);
|
||||
" MOV sp,%0\n\t"
|
||||
: : "r" (&__stack_end__));
|
||||
|
||||
Q_onAssert(module, loc); /* call the application-specific QP handler */
|
||||
|
||||
for (;;) { /* should not be reached, but just in case loop forever... */
|
||||
}
|
||||
}
|
||||
|
||||
/****** End Of File *********************************************************/
|
||||
|
@ -1,8 +1,8 @@
|
||||
;/***************************************************************************/
|
||||
; * @file startup_startup_stm32l053xx.s for IAR ARM assembler
|
||||
; * @brief CMSIS Cortex-M0+ Core Device Startup File for STM32L053xx.s
|
||||
; * @version CMSIS v4.1
|
||||
; * @date 27 March 2015
|
||||
; * @version CMSIS 4.3.0
|
||||
; * @date 20 August 2015
|
||||
; *
|
||||
; * @description
|
||||
; * Created from the CMSIS template for the specified device
|
||||
@ -12,8 +12,8 @@
|
||||
; * The function assert_failed defined at the end of this file defines
|
||||
; * the error/assertion handling policy for the application and might
|
||||
; * need to be customized for each project. This function is defined in
|
||||
; * assembly to avoid accessing the stack, which might be corrupted by
|
||||
; * the time assert_failed is called.
|
||||
; * assembly to re-set the stack pointer, in case it is corrupted by the
|
||||
; * time assert_failed is called.
|
||||
; *
|
||||
; ***************************************************************************/
|
||||
;/* Copyright (c) 2012 ARM LIMITED
|
||||
@ -258,37 +258,24 @@ USB_IRQHandler
|
||||
|
||||
;******************************************************************************
|
||||
;
|
||||
; The functions assert_failed/Q_onAssert define the error/assertion
|
||||
; handling policy for the application and might need to be customized
|
||||
; for each project. These functions are defined in assembly to avoid
|
||||
; accessing the stack, which might be corrupted by the time assert_failed
|
||||
; is called. For now the function just resets the CPU.
|
||||
; The function assert_failed defines the error/assertion handling policy
|
||||
; for the application. After making sure that the stack is OK, this function
|
||||
; calls Q_onAssert, which should NOT return (typically reset the CPU).
|
||||
;
|
||||
; NOTE: the functions assert_failed/Q_onAssert should NOT return.
|
||||
; NOTE: the function Q_onAssert should NOT return.
|
||||
;
|
||||
; The C proptotypes of these functions are as follows:
|
||||
; The C proptotype of the assert_failed() and Q_onAssert() functions are:
|
||||
; void assert_failed(char const *file, int line);
|
||||
; void Q_onAssert (char const *file, int line);
|
||||
;******************************************************************************
|
||||
PUBLIC assert_failed
|
||||
PUBLIC Q_onAssert
|
||||
Q_onAssert
|
||||
EXTERN Q_onAssert
|
||||
assert_failed
|
||||
;
|
||||
; NOTE: add here your application-specific error handling
|
||||
;
|
||||
LDR r2,=sfe(CSTACK) ; load the original top of stack
|
||||
MOV sp,r2 ; re-set the SP in case of stack overflow
|
||||
BL Q_onAssert ; call the application-specific handler
|
||||
|
||||
; the following code implements the CMIS function
|
||||
; NVIC_SystemReset() from core_cm4.h
|
||||
; Leave this code if you wish to reset the system after an error.
|
||||
DSB ; ensure all memory access complete
|
||||
LDR r0,=0x05FA0004 ; (0x5FA << SCB_AIRCR_VECTKEY_Pos)
|
||||
; | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)
|
||||
; | SCB_AIRCR_SYSRESETREQ_Msk
|
||||
LDR r1,=0xE000ED0C ; address of SCB->AIRCR
|
||||
STR r0,[r1] ; r0 -> SCB->AIRCR
|
||||
DSB ; ensure all memory access complete
|
||||
B . ; wait until reset occurs
|
||||
B . ; should not be reached, but just in case...
|
||||
|
||||
|
||||
END
|
||||
END ; end of module
|
||||
|
42
3rd_party/nucleo-l152re/arm/startup_stm32l1xx.s
vendored
@ -9,7 +9,7 @@
|
||||
;
|
||||
;
|
||||
; Quantum Leaps, LLC; www.state-machine.com
|
||||
; 2015-03-25
|
||||
; 2015-08-26
|
||||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
|
||||
;* File Name : startup_stm32l1xx_hd.s
|
||||
;* Author : MCD Application Team
|
||||
@ -443,41 +443,27 @@ __user_initial_stackheap
|
||||
|
||||
;******************************************************************************
|
||||
;
|
||||
; The functions assert_failed/Q_onAssert define the error/assertion
|
||||
; handling policy for the application and might need to be customized
|
||||
; for each project. These functions are defined in assembly to avoid
|
||||
; accessing the stack, which might be corrupted by the time assert_failed
|
||||
; is called. For now the function just resets the CPU.
|
||||
; The function assert_failed defines the error/assertion handling policy
|
||||
; for the application. After making sure that the stack is OK, this function
|
||||
; calls Q_onAssert, which should NOT return (typically reset the CPU).
|
||||
;
|
||||
; NOTE: the functions assert_failed/Q_onAssert should NOT return.
|
||||
; NOTE: the function Q_onAssert should NOT return.
|
||||
;
|
||||
; The C proptotypes of these functions are as follows:
|
||||
; The C proptotype of the assert_failed() and Q_onAssert() functions are:
|
||||
; void assert_failed(char const *file, int line);
|
||||
; void Q_onAssert (char const *file, int line);
|
||||
;******************************************************************************
|
||||
EXPORT assert_failed
|
||||
EXPORT Q_onAssert
|
||||
IMPORT Q_onAssert
|
||||
assert_failed PROC
|
||||
Q_onAssert
|
||||
;
|
||||
; NOTE: add here your application-specific error handling
|
||||
;
|
||||
|
||||
; the following code implements the CMIS function
|
||||
; NVIC_SystemReset() from core_cm4.h
|
||||
; Leave this code if you wish to reset the system after an error.
|
||||
DSB ; ensure all memory access complete
|
||||
LDR r0,=0x05FA0004 ; (0x5FA << SCB_AIRCR_VECTKEY_Pos)
|
||||
; | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)
|
||||
; | SCB_AIRCR_SYSRESETREQ_Msk
|
||||
LDR r1,=0xE000ED0C ; address of SCB->AIRCR
|
||||
STR r0,[r1] ; r0 -> SCB->AIRCR
|
||||
DSB ; ensure all memory access complete
|
||||
B . ; wait until reset occurs
|
||||
LDR sp,=__initial_sp ; re-set the SP in case of stack overflow
|
||||
BL Q_onAssert ; call the application-specific handler
|
||||
|
||||
B . ; should not be reached, but just in case...
|
||||
|
||||
ENDP
|
||||
|
||||
ALIGN ; make sure the end of this section is aligned
|
||||
ALIGN ; make sure the end of this section is aligned
|
||||
|
||||
END
|
||||
|
||||
;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
|
||||
END ; end of module
|
||||
|
63
3rd_party/nucleo-l152re/gnu/startup_stm32l1xx.c
vendored
@ -1,17 +1,18 @@
|
||||
/* File: startup_stm32l1xx.c for GNU-ARM
|
||||
* Purpose: startup file for STM32L1xx Cortex-M3 device.
|
||||
* Should be used with GCC 'GNU Tools ARM Embedded'
|
||||
* Version: CMSIS v4.2.0
|
||||
* Date: 27 March 2015
|
||||
* Version: CMSIS 4.3.0
|
||||
* Date: 20 August 2015
|
||||
*
|
||||
* Created from the CMSIS template for the specified device
|
||||
* Quantum Leaps, www.state-machine.com
|
||||
*
|
||||
* NOTE: The function assert_failed defined at the end of this file
|
||||
* determines the error/assertion handling policy for the application and
|
||||
* might need to be customized for each project. This function is defined
|
||||
* using the GNU-ARM language extensions to avoid accessing the stack,
|
||||
* which might be corrupted by the time assert_failed is called.
|
||||
* NOTE:
|
||||
* The function assert_failed defined at the end of this file defines
|
||||
* the error/assertion handling policy for the application and might
|
||||
* need to be customized for each project. This function is defined in
|
||||
* assembly to re-set the stack pointer, in case it is corrupted by the
|
||||
* time assert_failed is called.
|
||||
*/
|
||||
/* Copyright (c) 2011 - 2014 ARM LIMITED
|
||||
|
||||
@ -47,20 +48,19 @@ extern int __stack_end__;
|
||||
/* Weak prototypes for error handlers --------------------------------------*/
|
||||
/**
|
||||
* \note
|
||||
* The functions assert_failed/Q_onAssert defined at the end of this file
|
||||
* determine the error/assertion handling policy for the application and
|
||||
* might need to be customized for each project. These functions are defined
|
||||
* as "naked" to avoid accessing the stack, which might be corrupted by
|
||||
* the time assert_failed/Q_onAssert are called.
|
||||
* The function assert_failed defined at the end of this file defines
|
||||
* the error/assertion handling policy for the application and might
|
||||
* need to be customized for each project. This function is defined in
|
||||
* assembly to avoid accessing the stack, which might be corrupted by
|
||||
* the time assert_failed is called.
|
||||
*/
|
||||
__attribute__ ((naked)) void assert_failed(char const *file, int line);
|
||||
__attribute__ ((alias("assert_failed")))
|
||||
void Q_onAssert(char const *file, int line);
|
||||
__attribute__ ((naked)) void assert_failed(char const *module, int loc);
|
||||
|
||||
/* Function prototypes -----------------------------------------------------*/
|
||||
void Default_Handler(void); /* Default empty handler */
|
||||
void Reset_Handler(void); /* Reset Handler */
|
||||
void SystemInit(void); /* CMSIS system initialization */
|
||||
void Q_onAssert(char const *module, int loc); /* QP assertion handler */
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* weak aliases for each Exception handler to the Default_Handler.
|
||||
@ -334,31 +334,22 @@ void _fini(void) { /* dummy */
|
||||
|
||||
/*****************************************************************************
|
||||
* The function assert_failed defines the error/assertion handling policy
|
||||
* for the application and might need to be customized for each project.
|
||||
* This function is defined as "naked" and specifically avoids accessing the
|
||||
* stack, which might be corrupted by the time assert_failed is called.
|
||||
* for the application. After making sure that the stack is OK, this function
|
||||
* calls Q_onAssert, which should NOT return (typically reset the CPU).
|
||||
*
|
||||
* NOTE: the functions assert_failed/Q_onAssert should NOT return.
|
||||
* NOTE: the function Q_onAssert should NOT return.
|
||||
*****************************************************************************/
|
||||
__attribute__ ((naked))
|
||||
void assert_failed(char const *file, int line) {
|
||||
|
||||
/* NOTE: add here your application-specific error handling... */
|
||||
|
||||
/* the following assembly implements the CMIS function
|
||||
* NVIC_SystemReset() from core_cm4.h
|
||||
* Leave this code if you wish to reset the system after an error.
|
||||
*/
|
||||
void assert_failed(char const *module, int loc) {
|
||||
/* re-set the SP in case of stack overflow */
|
||||
__asm volatile (
|
||||
" DSB\n\t" /* ensure all memory access complete */
|
||||
" LDR r0,=0x05FA0004\n\t" /* (0x5FA << SCB_AIRCR_VECTKEY_Pos)
|
||||
* | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)
|
||||
* | SCB_AIRCR_SYSRESETREQ_Msk */
|
||||
" LDR r1,=0xE000ED0C\n\t" /* address of SCB->AIRCR */
|
||||
" STR r0,[r1]\n\t" /* r0 -> SCB->AIRCR */
|
||||
" DSB\n\t" /* ensure all memory access complete */
|
||||
" B .\n\t" /* wait until reset occurs */
|
||||
);
|
||||
" MOV sp,%0\n\t"
|
||||
: : "r" (&__stack_end__));
|
||||
|
||||
Q_onAssert(module, loc); /* call the application-specific QP handler */
|
||||
|
||||
for (;;) { /* should not be reached, but just in case loop forever... */
|
||||
}
|
||||
}
|
||||
|
||||
/****** End Of File *********************************************************/
|
||||
|
43
3rd_party/nucleo-l152re/iar/startup_stm32l1xx.s
vendored
@ -1,8 +1,8 @@
|
||||
;/***************************************************************************/
|
||||
; * @file startup_stm32l1xx for IAR ARM assembler
|
||||
; * @brief CMSIS Cortex-M3 Core Device Startup File for STM32L1xx.s
|
||||
; * @version CMSIS v4.1
|
||||
; * @date 27 March 2015
|
||||
; * @version CMSIS 4.3.0
|
||||
; * @date 20 August 2015
|
||||
; *
|
||||
; * @description
|
||||
; * Created from the CMSIS template for the specified device
|
||||
@ -12,8 +12,8 @@
|
||||
; * The function assert_failed defined at the end of this file defines
|
||||
; * the error/assertion handling policy for the application and might
|
||||
; * need to be customized for each project. This function is defined in
|
||||
; * assembly to avoid accessing the stack, which might be corrupted by
|
||||
; * the time assert_failed is called.
|
||||
; * assembly to re-set the stack pointer, in case it is corrupted by the
|
||||
; * time assert_failed is called.
|
||||
; *
|
||||
; ***************************************************************************/
|
||||
;/* Copyright (c) 2012 ARM LIMITED
|
||||
@ -343,37 +343,24 @@ COMP_ACQ_IRQHandler
|
||||
|
||||
;******************************************************************************
|
||||
;
|
||||
; The functions assert_failed/Q_onAssert define the error/assertion
|
||||
; handling policy for the application and might need to be customized
|
||||
; for each project. These functions are defined in assembly to avoid
|
||||
; accessing the stack, which might be corrupted by the time assert_failed
|
||||
; is called. For now the function just resets the CPU.
|
||||
; The function assert_failed defines the error/assertion handling policy
|
||||
; for the application. After making sure that the stack is OK, this function
|
||||
; calls Q_onAssert, which should NOT return (typically reset the CPU).
|
||||
;
|
||||
; NOTE: the functions assert_failed/Q_onAssert should NOT return.
|
||||
; NOTE: the function Q_onAssert should NOT return.
|
||||
;
|
||||
; The C proptotypes of these functions are as follows:
|
||||
; The C proptotype of the assert_failed() and Q_onAssert() functions are:
|
||||
; void assert_failed(char const *file, int line);
|
||||
; void Q_onAssert (char const *file, int line);
|
||||
;******************************************************************************
|
||||
PUBLIC assert_failed
|
||||
PUBLIC Q_onAssert
|
||||
Q_onAssert
|
||||
EXTERN Q_onAssert
|
||||
assert_failed
|
||||
;
|
||||
; NOTE: add here your application-specific error handling
|
||||
;
|
||||
LDR sp,=sfe(CSTACK) ; re-set the SP in case of stack overflow
|
||||
BL Q_onAssert ; call the application-specific handler
|
||||
|
||||
; the following code implements the CMIS function
|
||||
; NVIC_SystemReset() from core_cm4.h
|
||||
; Leave this code if you wish to reset the system after an error.
|
||||
DSB ; ensure all memory access complete
|
||||
LDR r0,=0x05FA0004 ; (0x5FA << SCB_AIRCR_VECTKEY_Pos)
|
||||
; | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)
|
||||
; | SCB_AIRCR_SYSRESETREQ_Msk
|
||||
LDR r1,=0xE000ED0C ; address of SCB->AIRCR
|
||||
STR r0,[r1] ; r0 -> SCB->AIRCR
|
||||
DSB ; ensure all memory access complete
|
||||
B . ; wait until reset occurs
|
||||
B . ; should not be reached, but just in case...
|
||||
|
||||
|
||||
END
|
||||
END ; end of module
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
;/***************************************************************************/
|
||||
; * @file startup_stm32f4xx.s for ARM-KEIL ARM assembler
|
||||
; * @brief CMSIS Cortex-M# Core Device Startup File for STM32F40xx devices
|
||||
; * @version CMSIS v4.1
|
||||
; * @date 07 March 2015
|
||||
; * @version CMSIS 4.3.0
|
||||
; * @date 20 August 2015
|
||||
; *
|
||||
; * @description
|
||||
; * Created from the CMSIS template for the specified device
|
||||
@ -14,11 +14,11 @@
|
||||
; * --pd "Stack_Size SETA 512" --pd "Heap_Size SETA 0"
|
||||
; *
|
||||
; * @note
|
||||
; * The functions assert_failed/Q_onAssert defined at the end of this file
|
||||
; * determine the error/assertion handling policy for the application and
|
||||
; * might need to be customized for each project. This function is defined
|
||||
; * in assembly to avoid accessing the stack, which might be corrupted by
|
||||
; * the time assert_failed/Q_onAssert are called.
|
||||
; * The function assert_failed defined at the end of this file defines
|
||||
; * the error/assertion handling policy for the application and might
|
||||
; * need to be customized for each project. This function is defined in
|
||||
; * assembly to re-set the stack pointer, in case it is corrupted by the
|
||||
; * time assert_failed is called.
|
||||
; *
|
||||
; ***************************************************************************/
|
||||
;/* Copyright (c) 2012 ARM LIMITED
|
||||
@ -221,15 +221,20 @@ Reset_Handler PROC
|
||||
IMPORT SystemInit
|
||||
IMPORT __main
|
||||
|
||||
BL SystemInit ; CMSIS system initialization
|
||||
LDR r0, =SystemInit ; CMSIS system initialization
|
||||
BLX r0
|
||||
|
||||
; Call the C library enty point that handles startup. This will copy
|
||||
; Call the C library enty point that handles startup. This will copy
|
||||
; the .data section initializers from flash to SRAM and zero fill the
|
||||
; .bss section.
|
||||
BL __main
|
||||
LDR r0, =__main
|
||||
BX r0
|
||||
|
||||
; __main calls the main() function, which should not return,
|
||||
; but just in case jump to assert_failed() if main returns.
|
||||
MOVS r0,#0
|
||||
MOVS r1,#0 ; error number
|
||||
B assert_failed ; __main should not return, but assert if it does
|
||||
B assert_failed
|
||||
ENDP
|
||||
|
||||
;******************************************************************************
|
||||
@ -547,40 +552,27 @@ __user_initial_stackheap PROC
|
||||
|
||||
;******************************************************************************
|
||||
;
|
||||
; The functions assert_failed/Q_onAssert define the error/assertion
|
||||
; handling policy for the application and might need to be customized
|
||||
; for each project. These functions are defined in assembly to avoid
|
||||
; accessing the stack, which might be corrupted by the time assert_failed
|
||||
; is called. For now the function just resets the CPU.
|
||||
; The function assert_failed defines the error/assertion handling policy
|
||||
; for the application. After making sure that the stack is OK, this function
|
||||
; calls Q_onAssert, which should NOT return (typically reset the CPU).
|
||||
;
|
||||
; NOTE: the functions assert_failed/Q_onAssert should NOT return.
|
||||
; NOTE: the function Q_onAssert should NOT return.
|
||||
;
|
||||
; The C proptotypes of these functions are as follows:
|
||||
; The C proptotype of the assert_failed() and Q_onAssert() functions are:
|
||||
; void assert_failed(char const *file, int line);
|
||||
; void Q_onAssert (char const *file, int line);
|
||||
;******************************************************************************
|
||||
EXPORT assert_failed
|
||||
EXPORT Q_onAssert
|
||||
IMPORT Q_onAssert
|
||||
assert_failed PROC
|
||||
Q_onAssert
|
||||
;
|
||||
; NOTE: add here your application-specific error handling
|
||||
;
|
||||
|
||||
; the following code implements the CMIS function
|
||||
; NVIC_SystemReset() from core_cm4.h
|
||||
; Leave this code if you wish to reset the system after an error.
|
||||
DSB ; ensure all memory access complete
|
||||
LDR r0,=0x05FA0004 ; (0x5FA << SCB_AIRCR_VECTKEY_Pos)
|
||||
; | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)
|
||||
; | SCB_AIRCR_SYSRESETREQ_Msk
|
||||
LDR r1,=0xE000ED0C ; address of SCB->AIRCR
|
||||
STR r0,[r1] ; r0 -> SCB->AIRCR
|
||||
DSB ; ensure all memory access complete
|
||||
B . ; wait until reset occurs
|
||||
LDR sp,=__initial_sp ; re-set the SP in case of stack overflow
|
||||
BL Q_onAssert ; call the application-specific handler
|
||||
|
||||
B . ; should not be reached, but just in case...
|
||||
|
||||
ENDP
|
||||
|
||||
ALIGN ; make sure the end of this section is aligned
|
||||
|
||||
ALIGN ; make sure the end of this section is aligned
|
||||
|
||||
END ; end of module
|
||||
END ; end of module
|
||||
|
@ -1,17 +1,18 @@
|
||||
/* File: startup_stm32f4xx.c
|
||||
* Purpose: startup file for stm32f4xx Cortex-M4 device.
|
||||
* Should be used with GCC 'GNU Tools ARM Embedded'
|
||||
* Version: CMSIS v4.2.0
|
||||
* Date: 07 March 2015
|
||||
* Version: CMSIS 4.3.0
|
||||
* Date: 20 August 2015
|
||||
*
|
||||
* Created from the CMSIS template for the specified device
|
||||
* Quantum Leaps, www.state-machine.com
|
||||
*
|
||||
* NOTE: The function assert_failed defined at the end of this file
|
||||
* determines the error/assertion handling policy for the application and
|
||||
* might need to be customized for each project. This function is defined
|
||||
* using the GNU-ARM language extensions to avoid accessing the stack,
|
||||
* which might be corrupted by the time assert_failed is called.
|
||||
* NOTE:
|
||||
* The function assert_failed defined at the end of this file defines
|
||||
* the error/assertion handling policy for the application and might
|
||||
* need to be customized for each project. This function is defined in
|
||||
* assembly to re-set the stack pointer, in case it is corrupted by the
|
||||
* time assert_failed is called.
|
||||
*/
|
||||
/* Copyright (c) 2011 - 2014 ARM LIMITED
|
||||
|
||||
@ -47,20 +48,19 @@ extern int __stack_end__;
|
||||
/* Weak prototypes for error handlers --------------------------------------*/
|
||||
/**
|
||||
* \note
|
||||
* The functions assert_failed/Q_onAssert defined at the end of this file
|
||||
* determine the error/assertion handling policy for the application and
|
||||
* might need to be customized for each project. These functions are defined
|
||||
* as "naked" to avoid accessing the stack, which might be corrupted by
|
||||
* the time assert_failed/Q_onAssert are called.
|
||||
* The function assert_failed defined at the end of this file defines
|
||||
* the error/assertion handling policy for the application and might
|
||||
* need to be customized for each project. This function is defined in
|
||||
* assembly to avoid accessing the stack, which might be corrupted by
|
||||
* the time assert_failed is called.
|
||||
*/
|
||||
__attribute__ ((naked)) void assert_failed(char const *file, int line);
|
||||
__attribute__ ((alias("assert_failed")))
|
||||
void Q_onAssert(char const *file, int line);
|
||||
__attribute__ ((naked)) void assert_failed(char const *module, int loc);
|
||||
|
||||
/* Function prototypes -----------------------------------------------------*/
|
||||
void Default_Handler(void); /* Default empty handler */
|
||||
void Reset_Handler(void); /* Reset Handler */
|
||||
void SystemInit(void); /* CMSIS system initialization */
|
||||
void Q_onAssert(char const *module, int loc); /* QP assertion handler */
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* weak aliases for each Exception handler to the Default_Handler.
|
||||
@ -366,37 +366,31 @@ void Default_Handler(void) {
|
||||
);
|
||||
}
|
||||
/*..........................................................................*/
|
||||
void _init() {
|
||||
void _init(void) { /* dummy */
|
||||
}
|
||||
/*..........................................................................*/
|
||||
void _fini(void) { /* dummy */
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* The function assert_failed defines the error/assertion
|
||||
* handling policy for the application and might need to be customized
|
||||
* for each project. This function is defined as "naked" and specifically
|
||||
* avoids accessing the stack, which might be corrupted by the time
|
||||
* assert_failed is called.
|
||||
* The function assert_failed defines the error/assertion handling policy
|
||||
* for the application. After making sure that the stack is OK, this function
|
||||
* calls Q_onAssert, which should NOT return (typically reset the CPU).
|
||||
*
|
||||
* NOTE: the functions assert_failed/Q_onAssert should NOT return.
|
||||
* NOTE: the function Q_onAssert should NOT return.
|
||||
*****************************************************************************/
|
||||
__attribute__ ((naked)) void assert_failed(char const *file, int line) {
|
||||
|
||||
/* NOTE: add here your application-specific error handling... */
|
||||
|
||||
/* the following assembly implements the CMIS function
|
||||
* NVIC_SystemReset() from core_cm4.h
|
||||
* Leave this code if you wish to reset the system after an error.
|
||||
*/
|
||||
__attribute__ ((naked))
|
||||
void assert_failed(char const *module, int loc) {
|
||||
/* re-set the SP in case of stack overflow */
|
||||
__asm volatile (
|
||||
" DSB\n\t" /* ensure all memory access complete */
|
||||
" LDR r0,=0x05FA0004\n\t" /* (0x5FA << SCB_AIRCR_VECTKEY_Pos)
|
||||
* | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)
|
||||
* | SCB_AIRCR_SYSRESETREQ_Msk */
|
||||
" LDR r1,=0xE000ED0C\n\t" /* address of SCB->AIRCR */
|
||||
" STR r0,[r1]\n\t" /* r0 -> SCB->AIRCR */
|
||||
" DSB\n\t" /* ensure all memory access complete */
|
||||
" B .\n\t" /* wait until reset occurs */
|
||||
);
|
||||
" MOV sp,%0\n\t"
|
||||
: : "r" (&__stack_end__));
|
||||
|
||||
Q_onAssert(module, loc); /* call the application-specific QP handler */
|
||||
|
||||
for (;;) { /* should not be reached, but just in case loop forever... */
|
||||
}
|
||||
}
|
||||
|
||||
/****** End Of File *********************************************************/
|
||||
|
@ -1,19 +1,19 @@
|
||||
;/***************************************************************************/
|
||||
; * @file startup_stm32f4xx.s for IAR ARM assembler
|
||||
; * @brief CMSIS Cortex-M4F Core Device Startup File for STM32F40xx devices
|
||||
; * @version CMSIS v4.2.0
|
||||
; * @date 2015-03-16
|
||||
; * @version CMSIS 4.3.0
|
||||
; * @date 20 August 2015
|
||||
; *
|
||||
; * @description
|
||||
; * Created from the CMSIS template for the specified device
|
||||
; * Quantum Leaps, www.state-machine.com
|
||||
; *
|
||||
; * @note
|
||||
; * The functions assert_failed/Q_onAssert defined at the end of this file
|
||||
; * define the error/assertion handling policy for the application and might
|
||||
; * need to be customized for each project. These functions are defined in
|
||||
; * assembly to avoid accessing the stack, which might be corrupted by
|
||||
; * the time assert_failed/Q_onAssert are called.
|
||||
; * The function assert_failed defined at the end of this file defines
|
||||
; * the error/assertion handling policy for the application and might
|
||||
; * need to be customized for each project. This function is defined in
|
||||
; * assembly to re-set the stack pointer, in case it is corrupted by the
|
||||
; * time assert_failed is called.
|
||||
; *
|
||||
; ***************************************************************************/
|
||||
;/* Copyright (c) 2012 ARM LIMITED
|
||||
@ -416,37 +416,24 @@ FPU_IRQHandler
|
||||
|
||||
;******************************************************************************
|
||||
;
|
||||
; The functions assert_failed/Q_onAssert define the error/assertion
|
||||
; handling policy for the application and might need to be customized
|
||||
; for each project. These functions are defined in assembly to avoid
|
||||
; accessing the stack, which might be corrupted by the time assert_failed
|
||||
; is called. For now the function just resets the CPU.
|
||||
; The function assert_failed defines the error/assertion handling policy
|
||||
; for the application. After making sure that the stack is OK, this function
|
||||
; calls Q_onAssert, which should NOT return (typically reset the CPU).
|
||||
;
|
||||
; NOTE: the functions assert_failed/Q_onAssert should NOT return.
|
||||
; NOTE: the function Q_onAssert should NOT return.
|
||||
;
|
||||
; The C proptotypes of these functions are as follows:
|
||||
; The C proptotype of the assert_failed() and Q_onAssert() functions are:
|
||||
; void assert_failed(char const *file, int line);
|
||||
; void Q_onAssert (char const *file, int line);
|
||||
;******************************************************************************
|
||||
PUBLIC assert_failed
|
||||
PUBLIC Q_onAssert
|
||||
Q_onAssert
|
||||
EXTERN Q_onAssert
|
||||
assert_failed
|
||||
;
|
||||
; NOTE: add here your application-specific error handling
|
||||
;
|
||||
LDR sp,=sfe(CSTACK) ; re-set the SP in case of stack overflow
|
||||
BL Q_onAssert ; call the application-specific handler
|
||||
|
||||
; the following code implements the CMIS function
|
||||
; NVIC_SystemReset() from core_cm4.h
|
||||
; Leave this code if you wish to reset the system after an error.
|
||||
DSB ; ensure all memory access complete
|
||||
LDR r0,=0x05FA0004 ; (0x5FA << SCB_AIRCR_VECTKEY_Pos)
|
||||
; | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)
|
||||
; | SCB_AIRCR_SYSRESETREQ_Msk
|
||||
LDR r1,=0xE000ED0C ; address of SCB->AIRCR
|
||||
STR r0,[r1] ; r0 -> SCB->AIRCR
|
||||
DSB ; ensure all memory access complete
|
||||
B . ; wait until reset occurs
|
||||
B . ; should not be reached, but just in case...
|
||||
|
||||
|
||||
END
|
||||
END ; end of module
|
||||
|
||||
|
2143
doxygen/Doxyfile
2141
doxygen/Doxyfile-CHM
@ -44,7 +44,14 @@ If you are developing and distributing traditional closed source applications, y
|
||||
@section getting_started Getting Started with QP/C
|
||||
The Quantum Leaps Application Note <a class="extern" target="_blank" href="http://www.state-machine.com/doc/AN_Getting_Started_with_QPC.pdf"><strong>Getting Started with QP/C</strong></a> provides step-by-step instructions on how to get started with QP/C quickly.
|
||||
|
||||
@image html AN_Getting_Started_with_QPC.jpg
|
||||
@htmlonly
|
||||
<div class="image">
|
||||
<a target="_blank" href="http://www.state-machine.com/doc/AN_Getting_Started_with_QPC.pdf"><img border="0" src="img/AN_Getting_Started_with_QPC.jpg" title="Download PDF"></a>
|
||||
<div class="caption">
|
||||
Application Note: Getting Started with QP/C
|
||||
</div>
|
||||
</div>
|
||||
@endhtmlonly
|
||||
|
||||
The standard QP/C distribution contains also many @ref exa "Example Projects", which are specifically designed to help you learn to use QP/C and to serve you as starting points for your own projects.
|
||||
|
||||
@ -85,7 +92,14 @@ The following annotated directory tree lists the top-level directories provided
|
||||
@section coding Coding Standard
|
||||
The QP/C framework has been developed in strict adherence to the documented <a class="extern" target="_blank" href="http://www.state-machine.com/doc/AN_QL_Coding_Standard.pdf"><strong>Quantum Leaps Coding Standard</strong></a>.
|
||||
|
||||
@image html AN_Coding_Standard.jpg "Quantum Leaps C/C++ Coding Standard"
|
||||
@htmlonly
|
||||
<div class="image">
|
||||
<a target="_blank" href="http://www.state-machine.com/doc/AN_QL_Coding_Standard.pdf"><img border="0" src="img/AN_Coding_Standard.jpg " title="Download PDF"></a>
|
||||
<div class="caption">
|
||||
Application Note: Quantum Leaps C/C++ Coding Standard
|
||||
</div>
|
||||
</div>
|
||||
@endhtmlonly
|
||||
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
@ -94,7 +108,14 @@ The QP/C framework has been developed in strict adherence to the documented <a c
|
||||
<p>The QP/C framework complies with most of the Motor Industry Software Reliability Association (MISRA) MISRA-C:2004 rules.
|
||||
</p>
|
||||
|
||||
@image html AN_MISRA-QPC.jpg "QP/C MISRA-C:2004 Compliance Matrix"
|
||||
@htmlonly
|
||||
<div class="image">
|
||||
<a target="_blank" href="http://www.state-machine.com/doc/AN_QP-C_MISRA.pdf"><img border="0" src="img/AN_MISRA-QPC.jpg" title="Download PDF"></a>
|
||||
<div class="caption">
|
||||
Application Note: QP/C MISRA-C:2004 Compliance Matrix
|
||||
</div>
|
||||
</div>
|
||||
@endhtmlonly
|
||||
|
||||
All deviations are carefully limited into very specific contexts and are documented with the Application Note: <a class="extern" target="_blank" href="http://www.state-machine.com/doc/AN_QP-C_MISRA.pdf"><strong>QP/C MISRA-C:2004 Compliance Matrix</strong></a>.
|
||||
|
@ -6,7 +6,14 @@
|
||||
|
||||
Even though QP/C is implemented in standard ANSI-C, it extensively uses object-oriented design principles such as **encapsulation** (classes), single **inheritance**, and, starting with QP5, **polymorphism** (late binding). At the C language level, these proven ways of software design become **design-patterns** and coding idioms.
|
||||
|
||||
@image html AN_Simple_OOP_in_C.jpg
|
||||
@htmlonly
|
||||
<div class="image">
|
||||
<a target="_blank" href="http://www.state-machine.com/doc/AN_Simple_OOP_in_C.pdf"><img border="0" src="img/AN_Simple_OOP_in_C.jpg" title="Download PDF"></a>
|
||||
<div class="caption">
|
||||
Application Note: Getting Started with QP/C
|
||||
</div>
|
||||
</div>
|
||||
@endhtmlonly
|
||||
|
||||
The Quantum Leaps Application Note <a class="extern" target="_blank" href="http://www.state-machine.com/doc/AN_Simple_OOP_in_C.pdf"><strong>Simple Object-Oriented Programming in C</strong></a> describes how the OOP design patterns are implemented in QP/C and how you should code them in your own applications.
|
||||
<div class="clear"></div>
|
@ -216,6 +216,34 @@ The Third-Party software components included in the <span class="img folder">3rd
|
||||
sub-folders.
|
||||
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
@section exa_own Creating your Own QP/C Projects
|
||||
|
||||
Perhaps the most important fact of life to remember is that in embedded systems nothing works until everything works. This means that you should always start with a <strong>working system</strong> and gradually evolve it, changing one thing at a time and making sure that it keeps working every step of the way.
|
||||
|
||||
Keeping this in mind, the provided QP/C application examples, such as the super-simple Blinky, or a bit more advanced @ref dpp or @ref game, allow you to get started with a working project rather than starting from scratch. You should also always try one of the provided example projects on the same evaluation board that it was designed for, before making any changes.
|
||||
|
||||
Only after convincing yourself that the example project works "as is", you can think about creating your own projects. At this point, the easiest and recommended way is to copy the existing working example project folder (such as the Blinky example) and rename it.
|
||||
|
||||
After copying the project folder, you still need to change the name of the project/workspace. The easiest and safest way to do this is to open the project/workspace in the corresponding IDE and use the Save As... option to save the project under a different name. You can do this also with the QM model file, which you can open in QM and "Save As" a different model.
|
||||
|
||||
@note
|
||||
By copying and re-naming an existing, working project, as opposed to creating a new one from scratch, you inherit the correct compiler and linker options an other project settings, which will help you get started much faster.
|
||||
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
@section exa_doc Next Steps and Further Reading About QP and QM
|
||||
|
||||
To work with QP/C effectively, you need to learn a bit more about active objects and state machines. Below is a list of links to enable you to further your knowledge:
|
||||
|
||||
1. The book “Practical UML Statecharts in C/C++, 2nd Edition” [PSiCC2] and the companion web-page to the book (http://www.state-machine.com/psicc2/
|
||||
2. Free Support Forum for QP/QM (https://sourceforge.net/p/qpc/discussion/668726 )
|
||||
3. QP Code Downloads summary (http://www.state-machine.com/downloads )
|
||||
4. QP Application Notes (http://www.state-machine.com/resources/appnotes.php )
|
||||
5. QP Articles (http://www.state-machine.com/resources/articles.php )
|
||||
6. QP/C Tutorial (http://www.state-machine.com/doxygen/qpc/tutorial.html)
|
||||
7. "State Space" Blog (http://embeddedgurus.com/state-space/ )
|
||||
|
||||
@next{exa_ref}
|
||||
*/
|
||||
|
@ -57,7 +57,31 @@ The very simple state machine of the Blinky AO is shown in the figure below:
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@image html under_construction.jpg
|
||||
------------------------------------------------------------------------------
|
||||
@section blinky_code State Machine Code
|
||||
The Blinky state machine shown above is implemented in the blinky.c source file, as shown in the
|
||||
listing below. The code has been specifically organized not to access target resources directly, but instead encapsulate all such access in the calls to the BSP (Board Support Package). So for example, instead of turning the LED on and off by writing to a specific GPIO register on an embedded board, the code calls the BSP functions `BSP_ledOn()` and `BSP_ledOff()`. These functions can then be defined differently for each Target board (or even a desktop workstation), without the need to change the state machine code.
|
||||
|
||||
@note
|
||||
The Blinky source code (blinky.c) is actually the same on all platforms, including Windows
|
||||
and the embedded boards. The only difference is in the Board Support Package (bsp.c), which is
|
||||
specific for the target.
|
||||
|
||||
@includelineno examples/arm-cm/blinky_ek-tm4c123gxl/blinky.c
|
||||
|
||||
As you can see, the structure of the state machine is very clearly recognizable in this code. Please refer to the Application Note <a class="extern" target="_blank" href="http://state-machine.com/doc/AN_Crash_Course_in_UML_State_Machines.pdf">A Crash Course in UML State Machines</a> for exact explanation of the state machine coding techniques.
|
||||
|
||||
|
||||
@subsection blinky_ao Defining Active Object (AO) Class
|
||||
|
||||
|
||||
|
||||
- hand-coding the simple state machine of the Blinky AO;
|
||||
- using a periodic time event;
|
||||
- initializing the QP framework; and
|
||||
- starting an AO.
|
||||
|
||||
|
||||
|
||||
@next{dpp}
|
||||
*/
|
@ -26,8 +26,8 @@
|
||||
- <span class="img folder">dpp</span> DPP (command-line)
|
||||
- <span class="img folder">dpp-gui</span> DPP (with GUI on Windows)
|
||||
- <span class="img folder">game-gui</span> "Fly 'n' Shoot" game from Chapter 1 of PSiCC2
|
||||
- <span class="img folder">history</span> Transition-to-History design pattern (hand-coded)
|
||||
- <span class="img folder">history_qm</span> Transition-to-History with QM model
|
||||
- <span class="img folder">history_qhsm</span> Transition-to-History (with ::QHsm class)
|
||||
- <span class="img folder">history_qmsm</span> Transition-to-History (with ::QMsm class)
|
||||
- <span class="img folder">qmsmtst</span> Test State Machine based on ::QMsm with QM model
|
||||
- <span class="img folder">qhsmtst</span> Test State Machine based on ::QHsm with QM model
|
||||
- <span class="img folder">reminder</span> Reminder design pattern from Chapter 5 of PSiCC2
|
@ -1,6 +1,75 @@
|
||||
/**
|
||||
@page history Revision History
|
||||
|
||||
@section qpc_5_5_0 Version 5.5.0, 2015-09-04
|
||||
|
||||
The main purpose of this release is the extension of the QS software
|
||||
tracing system to bi-directional communication with embedded Targets.
|
||||
Specifically, the QS-RX (receive channel for QS) has been added with the
|
||||
following capabilities:
|
||||
|
||||
1. Set global QS filters inside the Target
|
||||
|
||||
2. Set local QS filters inside the Target
|
||||
|
||||
3. Inject an arbitrary event to the Target (direct post or publish)
|
||||
|
||||
4. Execute a user-defined callback function inside the Target with arguments supplied from QSPY
|
||||
|
||||
5. Peek data inside the Target and send to QSPY
|
||||
|
||||
6. Poke data (supplied from QSPY) into the Target
|
||||
|
||||
7. Execute clock tick inside the Target
|
||||
|
||||
8. Request target information (version, all sizes of objects, build time-stamp)
|
||||
|
||||
9. Remotely reset of the Target
|
||||
|
||||
|
||||
This QP/C version complements the recent release of Qtools 5.5.0, where the <a href="http://www.state-machine.com/qspy ">QSPY host application</a> has been extended with a UDP socket, which is open for communication with various Front-Ends (GUI-based or headless). An example Front-End written in Tcl/Tk called "QspyView" has been developed to demonstrate all the features. The example application located in the directory qpc\examples\arm-cm\dpp_ek-tm4c123gxl\qspy contains customization of the "qspyview" script for the DPP application. Please refer to the documentation of this example (@ref arm-cm_dpp_ek-tm4c123gxl) for more information.
|
||||
|
||||
Finally, this release adds a state machine operation for implementing
|
||||
the shallow history mechanism. The operation is called "childState",
|
||||
because it computes a child state of a given parent, such that the child
|
||||
belongs to the same state hierarchy as the current state.
|
||||
|
||||
Changes in detail:
|
||||
|
||||
1. Modified the QS software tracing component to add new functionality,
|
||||
such as the QS-RX input channel. Also added new trace records.
|
||||
|
||||
2. Added file "qstamp.c" (in the qpc\include\ folder) to provide
|
||||
time-stamp of the application build.
|
||||
|
||||
3. Added function QMsm_childStateObj() to the QMsm class and
|
||||
QHsm_childState() to the QHsm class. These functions have been added to
|
||||
support the shallow-history mechanism.
|
||||
|
||||
4. Modified all example projects (qpc\examples\ folder) to include the
|
||||
"qstamp.c" file and force its re-compilation for each new build, so that
|
||||
every build has an up-to-date and unique time stamp.
|
||||
|
||||
5. Extended the DPP on TivaC LauchPad example (directory
|
||||
qpc\examples\arm-cm\dpp_ek-tm4c123gxl\) to demonstrate QS-RX (QS receive
|
||||
channel).
|
||||
|
||||
6. Provided example of customizing the "QspyView" Tcl/Tk script for the
|
||||
DPP application in the directory qpc\examples\arm-cm\dpp_ek-tm4c123gxl\qspy\
|
||||
|
||||
7. Modified all examples (qpc\examples\ folder) to call the
|
||||
QS_ASSERTION() macro to the Q_onAssert() callback function.
|
||||
|
||||
8. Modified the startup code (in the qpc\3rd_party\ folder) for ARM
|
||||
Cortex-M to invoke the Q_onAssert() callback from the assert_failure()
|
||||
exception handler. This is to allow application-level code to define
|
||||
Q_onAssert() for each specific project.
|
||||
|
||||
9. Replaced deprecated registers in TM4C (TivaC) projects
|
||||
(SYSCTL->RCGCGPIO rather than the deprecated SYSCTL->RCGC2).
|
||||
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
@section qpc_5_4_2 Version 5.4.2, 2015-06-04
|
||||
|
||||
The main focus of this release is to improve the support for "dual targeting" of QP/C applications, which is developing of deeply embedded code as much as possible on the desktop OS, such as Windows. Experience shows that "dual targeting" dramatically improves productivity of embedded systems developers, perhaps more than any other technique.
|
||||
@ -9,15 +78,15 @@ This release makes it possible to use exactly the **same** application code, mai
|
||||
|
||||
The support for "dual targeting" in this QP/C release works both for Win32 console and Win32 GUI applications. The Win32-GUI support enables developers to easily emulate the front-panels of the embedded devices, with LCD-screens (graphical and segmented), LEDs, buttons, switches, sliders, etc.
|
||||
|
||||
Changes in detal:
|
||||
Changes in detail:
|
||||
|
||||
1. Modified the QP/C ports to Windows (both @ref win32 and @ref win32-qv) so that they support both Win32 console and Win32-GUI applications. The newly introduced pre-processor #WIN32_GUI macro is now requierd to use the Win32-GUI facilities.
|
||||
1. Modified the QP/C ports to Windows (both @ref win32 and @ref win32-qv) so that they support both Win32 console and Win32-GUI applications. The newly introduced pre-processor #WIN32_GUI macro is now required to use the Win32-GUI facilities.
|
||||
|
||||
2. Added portable "safe" macros from `<stdio.h>` and `<string.h>` to the QP/C ports to Windows. These macros encapsulate the differences between Microsoft Visual C++ and other compilers (such as MinGW).
|
||||
|
||||
3. Simplified the structure of the QP/C Windows ports by eliminating one level of directories for the compilers used. Both VC++ and MinGW builds can now be run in the same port directory.
|
||||
|
||||
4. Modified the QF_stop() function in the QP/C port to @ref win32-qv, so that it unblocks the QV event-loop and thus lets the application terminate.
|
||||
4. Modified the QF_stop() function in the QP/C port to @ref win32-qv, so that it unblocks the QV event-loop and thus lets the application terminate.
|
||||
|
||||
5. Modified all examples for Windows to use the new port structure.
|
||||
|
||||
@ -44,13 +113,13 @@ Also, this release brings several cosmetic improvements:
|
||||
|
||||
2. All QM models have been saved with QM 3.3.0, which means that they will not open with QM 3.2.x or earlier QM versions.
|
||||
|
||||
3. The ROM-able QP version string QP_versionStr[] has been added and used consistently in the macros QEP_getVersion(), QF_getVersion(), QK_getVersion(), QV_getVersion(), and QS_getVersion() macros.
|
||||
3. The ROM-able QP version string QP_versionStr[] has been added and used consistently in the macros QEP_getVersion(), QF_getVersion(), QK_getVersion(), QV_getVersion(), and QS_getVersion() macros.
|
||||
|
||||
4. The `qpc/ports/arm-cm/qk/gnu/qk_port.s` ARM Cortex-M port to QK with GNU has been modified to use the CMSIS-compliant symbol __FPU_PRESENT instead of the FPU_VFP_V4_SP_D16 symbol.
|
||||
|
||||
5. All Makefiles for the GNU toolset have been cleaned up, whereas any `\` (back-slash) characters in the paths have been repalced with `/` (forward-slash) characters. Also all these Makefiles have been updated to provide the __FPU_PRESENT to C and assembler when the hardware FPU is used.
|
||||
|
||||
6. The file display drver for the EK-LM2S811 board locate at `qpc/3rd_party/ek-lm3s811/display96x16x1.c` has been modified to fix the problem with incorrect hardware delay with the GNU compiler at higher levels of optimization. The in-line assembly for the GNU compiler has been updated such that the delay loop cannot be "optimized away".
|
||||
6. The file display drver for the EK-LM2S811 board locate at `qpc/3rd_party/ek-lm3s811/display96x16x1.c` has been modified to fix the problem with incorrect hardware delay with the GNU compiler at higher levels of optimization. The in-line assembly for the GNU compiler has been updated such that the delay loop cannot be "optimized away".
|
||||
|
||||
7. Several README files have been updated.
|
||||
|
||||
@ -65,13 +134,13 @@ Additionally, this release changes the basic philosophy of building your embedde
|
||||
The move to building QP/C from sources ensures the consistent toolset version and compiler options applied to the application code as well as the QP/C framework code. (**NOTE:** The QP/C examples for "big operating systems", like @ref exa_win32 "Windows" or @ref exa_posix "Linux", still use QP/C as a pre-compiled library that is statically linked with the application code.)
|
||||
|
||||
@note
|
||||
Even though the QP/C source has been re-packaged in this release, there are no API changes to the code, so it remains **backwards compatible** with the existing applications. (Except the build process, which builds QP/C from sources rather than linking to the QP/C library.)
|
||||
Even though the QP/C source has been re-packaged in this release, there are no API changes to the code, so it remains **backwards compatible** with the existing applications. (Except the build process, which builds QP/C from sources rather than linking to the QP/C library.)
|
||||
|
||||
The two changes in basic approach to distributing and building the framework have also the following ripple effects:
|
||||
|
||||
1. The QP/C source code has been simplified and has been re-packaged into a much smaller number of source files. The whole QP/C source code now resides in the single <span class="img folder"><a href="dir_b2f33c71d4aa5e7af42a1ca61ff5af1b.html"><strong>source</strong></a></span> folder. Additionally, the source code files have now the **read-only** protection to prevent inadvertent changes to the QP/C soruce code that is part of your projects.
|
||||
|
||||
2. It is no longer necessary to define the **QPC environment variable** to build the QP/C examples. All directories and files referenced by example projects are **relative** to the project folder. This change reflects the fact that most development tools add source files to the project using relative paths (and now the projects contain QP/C source code, not just the QP library).
|
||||
2. It is no longer necessary to define the **QPC environment variable** to build the QP/C examples. All directories and files referenced by example projects are **relative** to the project folder. This change reflects the fact that most development tools add source files to the project using relative paths (and now the projects contain QP/C source code, not just the QP library).
|
||||
|
||||
3. The QP/C <span class="img folder">@ref ports</span> folder has been reorganized to contain all currently available QP/C ports. The ports are organized into three categories: @ref ports_native "native QP/C ports" ("bare-metal"), @ref ports_rtos "ports to 3rd-party RTOSes", and @ref ports_os "ports to big operating systems" (Windows and Linux).(**NOTE**: the ports are now documented in the this <strong>QP/C Reference Manual</strong>. Each port sub-directory contains a <span class="img qp_link">README</span> link to the corresponding page in the online documentation)
|
||||
|
||||
@ -94,7 +163,7 @@ Changes in detail:
|
||||
|
||||
5. Added the native @ref arm7-9 "port" and @ref exa_arm7-9 "examples" to the @ref arm7-9 "classic ARM7/9" with AT91SAM7S-EK board and the IAR-ARM toolset.
|
||||
|
||||
6. Added the native @ref avr "port" and @ref exa_avr "examples" to the AVR (AVRmega) with GNU-AVR and IAR-AVR toolsets. The @ref exa_avr "examples" are provided for the Arduino-UNO board.
|
||||
6. Added the native @ref avr "port" and @ref exa_avr "examples" to the AVR (AVRmega) with GNU-AVR and IAR-AVR toolsets. The @ref exa_avr "examples" are provided for the Arduino-UNO board.
|
||||
|
||||
7. Added the native @ref msp430 "port" and @ref exa_msp430 "examples" to MSP430 with TI CCS-430 and IAR-430 toolsets. The @ref exa_msp430 "examples" are provided for the MSP430 LauchPad boards (the MSP-EXP430G2 and MSP-EXP430F5529LP for the "classic" MSP430 and "extened" MSP430X, respectively).
|
||||
|
||||
@ -110,9 +179,9 @@ Changes in detail:
|
||||
|
||||
13. Updated @win32 "port to Win32" (Windows). Modified the port to apply a generous "fudge factor" in over-sizing QP event queues and event pools, to minimize the risk of overflowing queues/pools due to non-deterministic Windows behavior.
|
||||
|
||||
14. Added new @ref win32-qv "port to Win32-QV" (Windows with cooperative "Vanilla" scheduler, previously known as Win32-1T).
|
||||
|
||||
15. Updated the @ref lwip_ek-lm3s6965 "lwIP-QP example for EK-LM3S6965 board".
|
||||
14. Added new @ref win32-qv "port to Win32-QV" (Windows with cooperative "Vanilla" scheduler, previously known as Win32-1T).
|
||||
|
||||
15. Updated the @ref lwip_ek-lm3s6965 "lwIP-QP example for EK-LM3S6965 board".
|
||||
|
||||
|
||||
------------------------------------------------------------------------------
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
@ -5,6 +5,10 @@
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>QP built-in images</title>
|
||||
|
||||
<img src="AN_Coding_Standard.jpg">
|
||||
<img src="AN_Getting_Started_with_QPC.jpg">
|
||||
<img src="AN_MISRA-QPC.jpg">
|
||||
<img src="AN_Simple_OOP_in_C.jpg">
|
||||
<img src="board.png">
|
||||
<img src="checkboxoff.png">
|
||||
<img src="checkboxon.png">
|
||||
|
@ -1,8 +1,8 @@
|
||||
@echo off
|
||||
:: ==========================================================================
|
||||
:: Product: QP/C script for generating Doxygen documentation
|
||||
:: Last Updated for Version: 5.4.2
|
||||
:: Date of the Last Update: 2015-06-03
|
||||
:: Last Updated for Version: 5.5.0
|
||||
:: Date of the Last Update: 2015-08-10
|
||||
::
|
||||
:: Q u a n t u m L e a P s
|
||||
:: ---------------------------
|
||||
@ -29,8 +29,8 @@
|
||||
:: along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
::
|
||||
:: Contact information:
|
||||
:: Web: http://www.state-machine.com
|
||||
:: Email: info@state-machine.com
|
||||
:: http://www.state-machine.com
|
||||
:: mailto:info@state-machine.com
|
||||
:: ==========================================================================
|
||||
setlocal
|
||||
|
||||
@ -38,13 +38,13 @@ echo usage:
|
||||
echo make
|
||||
echo make -CHM
|
||||
|
||||
set VERSION=5.4.2
|
||||
set VERSION=5.5.0
|
||||
|
||||
:: Generate Resource Standard Metrics for QP/C ...............................
|
||||
set DOXHOME="C:\tools\doxygen\bin"
|
||||
set RCMHOME="C:\tools\MSquared\M2 RSM"
|
||||
|
||||
set RSM_OUTPUT=metrics.dox
|
||||
set RSM_OUTPUT=metrics.cc
|
||||
set RSM_INPUT=..\include\*.h ..\source\*.h ..\source\*.c
|
||||
|
||||
echo /** @page metrics Code Metrics > %RSM_OUTPUT%
|
||||
@ -73,16 +73,16 @@ if "%1"=="-CHM" (
|
||||
|
||||
echo Cleanup...
|
||||
rmdir /S /Q tmp
|
||||
echo CHM file generated in ..\doc\
|
||||
echo CHM file generated in ..\..\html\qpc\
|
||||
|
||||
) else (
|
||||
echo Cleanup...
|
||||
rmdir /S /Q ..\..\doc\qpc
|
||||
rmdir /S /Q ..\..\html\qpc
|
||||
|
||||
echo Adding custom images...
|
||||
xcopy preview.js ..\..\doc\qpc\
|
||||
xcopy img ..\..\doc\qpc\img\
|
||||
copy images\favicon.ico ..\..\doc\qpc
|
||||
xcopy preview.js ..\..\html\qpc\
|
||||
xcopy img ..\..\html\qpc\img\
|
||||
copy images\favicon.ico ..\..\html\qpc
|
||||
|
||||
echo Generating HTML...
|
||||
%DOXHOME%\doxygen.exe Doxyfile
|
||||
|
@ -1,7 +1,7 @@
|
||||
/** @page metrics Code Metrics
|
||||
|
||||
@code
|
||||
Standard Code Metrics for QP/C 5.4.2
|
||||
Standard Code Metrics for QP/C 5.5.0
|
||||
|
||||
Resource Standard Metrics (TM) for C, C++, C# and Java
|
||||
Version 7.75 - mSquaredTechnologies.com
|
||||
@ -9,7 +9,7 @@
|
||||
License Type: Windows Single User License
|
||||
Licensed To : Quantum Leaps, LLC
|
||||
License No. : WS2975 License Date: Dec 15, 2013
|
||||
Build Date : Sep 2 2009 Run Date: Jun 04, 2015
|
||||
Build Date : Sep 2 2009 Run Date: Sep 04, 2015
|
||||
(C)1996-2009 M Squared Technologies LLC
|
||||
________________________________________________________________________
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
|
||||
~~ Total File Summary ~~
|
||||
|
||||
LOC 150 eLOC 146 lLOC 52 Comment 414 Lines 611
|
||||
LOC 154 eLOC 150 lLOC 54 Comment 414 Lines 617
|
||||
________________________________________________________________________
|
||||
End of File: ..\include\qep.h
|
||||
|
||||
@ -51,7 +51,7 @@
|
||||
|
||||
~~ Total File Summary ~~
|
||||
|
||||
LOC 188 eLOC 188 lLOC 73 Comment 523 Lines 815
|
||||
LOC 196 eLOC 196 lLOC 77 Comment 559 Lines 862
|
||||
________________________________________________________________________
|
||||
End of File: ..\include\qf.h
|
||||
|
||||
@ -91,7 +91,7 @@
|
||||
|
||||
~~ Total File Summary ~~
|
||||
|
||||
LOC 58 eLOC 57 lLOC 6 Comment 110 Lines 196
|
||||
LOC 60 eLOC 59 lLOC 8 Comment 117 Lines 206
|
||||
________________________________________________________________________
|
||||
End of File: ..\include\qpc.h
|
||||
|
||||
@ -111,14 +111,14 @@
|
||||
|
||||
|
||||
NOTICE: The end of the source file has been reached where the
|
||||
open brace count { 18 != 16 } close brace count
|
||||
open brace count { 26 != 24 } close brace count
|
||||
This is an indication of non-compilable code within the source
|
||||
file. RSM processes all source code including code wrapped
|
||||
with preprocessor directives. Accurate metrics requires that
|
||||
all code present in this file must be compilable.
|
||||
~~ Total File Summary ~~
|
||||
|
||||
LOC 413 eLOC 409 lLOC 90 Comment 620 Lines 1072
|
||||
LOC 461 eLOC 456 lLOC 108 Comment 671 Lines 1158
|
||||
________________________________________________________________________
|
||||
End of File: ..\include\qs.h
|
||||
|
||||
@ -128,7 +128,7 @@
|
||||
|
||||
~~ Total File Summary ~~
|
||||
|
||||
LOC 71 eLOC 71 lLOC 0 Comment 43 Lines 122
|
||||
LOC 69 eLOC 69 lLOC 0 Comment 43 Lines 120
|
||||
________________________________________________________________________
|
||||
End of File: ..\include\qs_dummy.h
|
||||
|
||||
@ -168,7 +168,7 @@
|
||||
|
||||
~~ Total File Summary ~~
|
||||
|
||||
LOC 27 eLOC 25 lLOC 5 Comment 81 Lines 117
|
||||
LOC 29 eLOC 27 lLOC 6 Comment 83 Lines 123
|
||||
________________________________________________________________________
|
||||
End of File: ..\source\qs_pkg.h
|
||||
|
||||
@ -224,31 +224,40 @@
|
||||
Complexity Param 2 Return 1 Cyclo Vg 3 Total 6
|
||||
LOC 16 eLOC 13 lLOC 9 Comment 21 Lines 21
|
||||
|
||||
Function: QHsm_childState
|
||||
Parameters: (QHsm * const me, QStateHandler const parent)
|
||||
Cyclomatic Complexity Vg Detail
|
||||
Function Base : 1
|
||||
Loops while / do : 1
|
||||
Conditional if / else if: 1
|
||||
Complexity Param 2 Return 1 Cyclo Vg 3 Total 6
|
||||
LOC 19 eLOC 15 lLOC 12 Comment 28 Lines 25
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
~~ Total File Summary ~~
|
||||
|
||||
LOC 322 eLOC 279 lLOC 164 Comment 291 Lines 583
|
||||
LOC 343 eLOC 296 lLOC 176 Comment 319 Lines 629
|
||||
------------------------------------------------------------------------
|
||||
|
||||
~~ File Functional Summary ~~
|
||||
|
||||
File Function Count....: 6
|
||||
Total Function LOC.....: 282 Total Function Pts LOC : 2.5
|
||||
Total Function eLOC....: 241 Total Function Pts eLOC: 2.2
|
||||
Total Function lLOC....: 157 Total Function Pts lLOC: 1.3
|
||||
Total Function Params .: 12 Total Function Return .: 6
|
||||
Total Cyclo Complexity : 39 Total Function Complex.: 57
|
||||
File Function Count....: 7
|
||||
Total Function LOC.....: 301 Total Function Pts LOC : 2.7
|
||||
Total Function eLOC....: 256 Total Function Pts eLOC: 2.3
|
||||
Total Function lLOC....: 169 Total Function Pts lLOC: 1.4
|
||||
Total Function Params .: 14 Total Function Return .: 7
|
||||
Total Cyclo Complexity : 42 Total Function Complex.: 63
|
||||
------ ----- ----- ------ ------ -----
|
||||
Max Function LOC ......: 105 Average Function LOC ..: 47.00
|
||||
Max Function eLOC .....: 94 Average Function eLOC .: 40.17
|
||||
Max Function lLOC .....: 62 Average Function lLOC .: 26.17
|
||||
Max Function LOC ......: 105 Average Function LOC ..: 43.00
|
||||
Max Function eLOC .....: 94 Average Function eLOC .: 36.57
|
||||
Max Function lLOC .....: 62 Average Function lLOC .: 24.14
|
||||
------ ----- ----- ------ ------ -----
|
||||
Max Function Parameters: 2 Avg Function Parameters: 2.00
|
||||
Max Function Returns ..: 1 Avg Function Returns ..: 1.00
|
||||
Max Interface Complex. : 3 Avg Interface Complex. : 3.00
|
||||
Max Cyclomatic Complex.: 15 Avg Cyclomatic Complex.: 6.50
|
||||
Max Total Complexity ..: 18 Avg Total Complexity ..: 9.50
|
||||
Max Cyclomatic Complex.: 15 Avg Cyclomatic Complex.: 6.00
|
||||
Max Total Complexity ..: 18 Avg Total Complexity ..: 9.00
|
||||
________________________________________________________________________
|
||||
End of File: ..\source\qep_hsm.c
|
||||
|
||||
@ -317,31 +326,40 @@
|
||||
Complexity Param 2 Return 1 Cyclo Vg 3 Total 6
|
||||
LOC 11 eLOC 8 lLOC 6 Comment 16 Lines 12
|
||||
|
||||
Function: QMsm_childStateObj
|
||||
Parameters: (QMsm const * const me, QMState const * const parent)
|
||||
Cyclomatic Complexity Vg Detail
|
||||
Function Base : 1
|
||||
Loops for / foreach : 1
|
||||
Conditional if / else if: 1
|
||||
Complexity Param 2 Return 1 Cyclo Vg 3 Total 6
|
||||
LOC 19 eLOC 13 lLOC 9 Comment 18 Lines 23
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
~~ Total File Summary ~~
|
||||
|
||||
LOC 289 eLOC 241 lLOC 133 Comment 264 Lines 528
|
||||
LOC 310 eLOC 256 lLOC 142 Comment 282 Lines 568
|
||||
------------------------------------------------------------------------
|
||||
|
||||
~~ File Functional Summary ~~
|
||||
|
||||
File Function Count....: 7
|
||||
Total Function LOC.....: 264 Total Function Pts LOC : 2.3
|
||||
Total Function eLOC....: 218 Total Function Pts eLOC: 1.9
|
||||
Total Function lLOC....: 128 Total Function Pts lLOC: 1.0
|
||||
Total Function Params .: 15 Total Function Return .: 7
|
||||
Total Cyclo Complexity : 41 Total Function Complex.: 63
|
||||
File Function Count....: 8
|
||||
Total Function LOC.....: 283 Total Function Pts LOC : 2.4
|
||||
Total Function eLOC....: 231 Total Function Pts eLOC: 2.0
|
||||
Total Function lLOC....: 137 Total Function Pts lLOC: 1.1
|
||||
Total Function Params .: 17 Total Function Return .: 8
|
||||
Total Cyclo Complexity : 44 Total Function Complex.: 69
|
||||
------ ----- ----- ------ ------ -----
|
||||
Max Function LOC ......: 107 Average Function LOC ..: 37.71
|
||||
Max Function eLOC .....: 91 Average Function eLOC .: 31.14
|
||||
Max Function lLOC .....: 56 Average Function lLOC .: 18.29
|
||||
Max Function LOC ......: 107 Average Function LOC ..: 35.38
|
||||
Max Function eLOC .....: 91 Average Function eLOC .: 28.88
|
||||
Max Function lLOC .....: 56 Average Function lLOC .: 17.13
|
||||
------ ----- ----- ------ ------ -----
|
||||
Max Function Parameters: 3 Avg Function Parameters: 2.14
|
||||
Max Function Parameters: 3 Avg Function Parameters: 2.13
|
||||
Max Function Returns ..: 1 Avg Function Returns ..: 1.00
|
||||
Max Interface Complex. : 4 Avg Interface Complex. : 3.14
|
||||
Max Cyclomatic Complex.: 15 Avg Cyclomatic Complex.: 5.86
|
||||
Max Total Complexity ..: 18 Avg Total Complexity ..: 9.00
|
||||
Max Interface Complex. : 4 Avg Interface Complex. : 3.13
|
||||
Max Cyclomatic Complex.: 15 Avg Cyclomatic Complex.: 5.50
|
||||
Max Total Complexity ..: 18 Avg Total Complexity ..: 8.63
|
||||
________________________________________________________________________
|
||||
End of File: ..\source\qep_msm.c
|
||||
|
||||
@ -548,31 +566,44 @@
|
||||
Complexity Param 1 Return 1 Cyclo Vg 3 Total 5
|
||||
LOC 26 eLOC 22 lLOC 13 Comment 35 Lines 39
|
||||
|
||||
Function: QF_newRef_
|
||||
Parameters: (QEvt const * const e, QEvt const * const evtRef)
|
||||
Cyclomatic Complexity Vg Detail
|
||||
Function Base : 1
|
||||
Conditional if / else if: 1
|
||||
Complexity Param 2 Return 1 Cyclo Vg 2 Total 5
|
||||
LOC 7 eLOC 5 lLOC 3 Comment 16 Lines 11
|
||||
|
||||
Function: QF_poolGetMaxBlockSize
|
||||
Parameters: (void)
|
||||
Complexity Param 0 Return 1 Cyclo Vg 1 Total 2
|
||||
LOC 3 eLOC 2 lLOC 1 Comment 5 Lines 3
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
~~ Total File Summary ~~
|
||||
|
||||
LOC 84 eLOC 71 lLOC 36 Comment 170 Lines 250
|
||||
LOC 94 eLOC 78 lLOC 40 Comment 191 Lines 283
|
||||
------------------------------------------------------------------------
|
||||
|
||||
~~ File Functional Summary ~~
|
||||
|
||||
File Function Count....: 4
|
||||
Total Function LOC.....: 66 Total Function Pts LOC : 0.7
|
||||
Total Function eLOC....: 53 Total Function Pts eLOC: 0.6
|
||||
Total Function lLOC....: 34 Total Function Pts lLOC: 0.3
|
||||
Total Function Params .: 9 Total Function Return .: 4
|
||||
Total Cyclo Complexity : 10 Total Function Complex.: 23
|
||||
File Function Count....: 6
|
||||
Total Function LOC.....: 76 Total Function Pts LOC : 0.7
|
||||
Total Function eLOC....: 60 Total Function Pts eLOC: 0.6
|
||||
Total Function lLOC....: 38 Total Function Pts lLOC: 0.3
|
||||
Total Function Params .: 11 Total Function Return .: 6
|
||||
Total Cyclo Complexity : 13 Total Function Complex.: 30
|
||||
------ ----- ----- ------ ------ -----
|
||||
Max Function LOC ......: 26 Average Function LOC ..: 16.50
|
||||
Max Function eLOC .....: 22 Average Function eLOC .: 13.25
|
||||
Max Function lLOC .....: 14 Average Function lLOC .: 8.50
|
||||
Max Function LOC ......: 26 Average Function LOC ..: 12.67
|
||||
Max Function eLOC .....: 22 Average Function eLOC .: 10.00
|
||||
Max Function lLOC .....: 14 Average Function lLOC .: 6.33
|
||||
------ ----- ----- ------ ------ -----
|
||||
Max Function Parameters: 3 Avg Function Parameters: 2.25
|
||||
Max Function Parameters: 3 Avg Function Parameters: 1.83
|
||||
Max Function Returns ..: 1 Avg Function Returns ..: 1.00
|
||||
Max Interface Complex. : 4 Avg Interface Complex. : 3.25
|
||||
Max Cyclomatic Complex.: 4 Avg Cyclomatic Complex.: 2.50
|
||||
Max Total Complexity ..: 8 Avg Total Complexity ..: 5.75
|
||||
Max Interface Complex. : 4 Avg Interface Complex. : 2.83
|
||||
Max Cyclomatic Complex.: 4 Avg Cyclomatic Complex.: 2.17
|
||||
Max Total Complexity ..: 8 Avg Total Complexity ..: 5.00
|
||||
________________________________________________________________________
|
||||
End of File: ..\source\qf_dyn.c
|
||||
|
||||
@ -588,7 +619,7 @@
|
||||
Loops while / do : 2
|
||||
Logical and ( && ) : 2
|
||||
Complexity Param 4 Return 1 Cyclo Vg 5 Total 10
|
||||
LOC 36 eLOC 32 lLOC 24 Comment 54 Lines 52
|
||||
LOC 36 eLOC 32 lLOC 24 Comment 58 Lines 52
|
||||
|
||||
Function: QMPool_put
|
||||
Parameters: (QMPool * const me, void *b)
|
||||
@ -596,7 +627,7 @@
|
||||
Function Base : 1
|
||||
Logical and ( && ) : 1
|
||||
Complexity Param 2 Return 1 Cyclo Vg 2 Total 5
|
||||
LOC 15 eLOC 14 lLOC 9 Comment 25 Lines 22
|
||||
LOC 15 eLOC 14 lLOC 9 Comment 29 Lines 22
|
||||
|
||||
Function: QMPool_get
|
||||
Parameters: (QMPool * const me, uint_fast16_t const margin)
|
||||
@ -604,7 +635,7 @@
|
||||
Function Base : 1
|
||||
Conditional if / else if: 3
|
||||
Complexity Param 2 Return 1 Cyclo Vg 4 Total 7
|
||||
LOC 41 eLOC 35 lLOC 23 Comment 50 Lines 65
|
||||
LOC 41 eLOC 35 lLOC 23 Comment 54 Lines 65
|
||||
|
||||
Function: QF_getPoolMin
|
||||
Parameters: (uint_fast8_t const poolId)
|
||||
@ -618,7 +649,7 @@
|
||||
|
||||
~~ Total File Summary ~~
|
||||
|
||||
LOC 114 eLOC 102 lLOC 62 Comment 189 Lines 289
|
||||
LOC 114 eLOC 102 lLOC 62 Comment 201 Lines 301
|
||||
------------------------------------------------------------------------
|
||||
|
||||
~~ File Functional Summary ~~
|
||||
@ -1000,34 +1031,35 @@
|
||||
Function Base : 1
|
||||
Loops while / do : 1
|
||||
Conditional if / else if: 4
|
||||
Complexity Param 1 Return 1 Cyclo Vg 6 Total 8
|
||||
LOC 50 eLOC 44 lLOC 24 Comment 44 Lines 77
|
||||
Logical or ( || ) : 3
|
||||
Complexity Param 1 Return 1 Cyclo Vg 9 Total 11
|
||||
LOC 65 eLOC 58 lLOC 27 Comment 55 Lines 95
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
~~ Total File Summary ~~
|
||||
|
||||
LOC 148 eLOC 129 lLOC 67 Comment 219 Lines 354
|
||||
LOC 163 eLOC 143 lLOC 70 Comment 230 Lines 372
|
||||
------------------------------------------------------------------------
|
||||
|
||||
~~ File Functional Summary ~~
|
||||
|
||||
File Function Count....: 8
|
||||
Total Function LOC.....: 126 Total Function Pts LOC : 1.2
|
||||
Total Function eLOC....: 107 Total Function Pts eLOC: 1.0
|
||||
Total Function lLOC....: 62 Total Function Pts lLOC: 0.5
|
||||
Total Function LOC.....: 141 Total Function Pts LOC : 1.3
|
||||
Total Function eLOC....: 121 Total Function Pts eLOC: 1.1
|
||||
Total Function lLOC....: 65 Total Function Pts lLOC: 0.5
|
||||
Total Function Params .: 9 Total Function Return .: 8
|
||||
Total Cyclo Complexity : 19 Total Function Complex.: 36
|
||||
Total Cyclo Complexity : 22 Total Function Complex.: 39
|
||||
------ ----- ----- ------ ------ -----
|
||||
Max Function LOC ......: 50 Average Function LOC ..: 15.75
|
||||
Max Function eLOC .....: 44 Average Function eLOC .: 13.38
|
||||
Max Function lLOC .....: 24 Average Function lLOC .: 7.75
|
||||
Max Function LOC ......: 65 Average Function LOC ..: 17.63
|
||||
Max Function eLOC .....: 58 Average Function eLOC .: 15.13
|
||||
Max Function lLOC .....: 27 Average Function lLOC .: 8.13
|
||||
------ ----- ----- ------ ------ -----
|
||||
Max Function Parameters: 7 Avg Function Parameters: 1.13
|
||||
Max Function Returns ..: 1 Avg Function Returns ..: 1.00
|
||||
Max Interface Complex. : 8 Avg Interface Complex. : 2.13
|
||||
Max Cyclomatic Complex.: 6 Avg Cyclomatic Complex.: 2.38
|
||||
Max Total Complexity ..: 11 Avg Total Complexity ..: 4.50
|
||||
Max Cyclomatic Complex.: 9 Avg Cyclomatic Complex.: 2.75
|
||||
Max Total Complexity ..: 11 Avg Total Complexity ..: 4.88
|
||||
________________________________________________________________________
|
||||
End of File: ..\source\qk.c
|
||||
|
||||
@ -1086,7 +1118,7 @@
|
||||
Function: QS_initBuf
|
||||
Parameters: (uint8_t sto[], uint_fast16_t stoSize)
|
||||
Complexity Param 2 Return 1 Cyclo Vg 1 Total 4
|
||||
LOC 11 eLOC 10 lLOC 9 Comment 25 Lines 19
|
||||
LOC 21 eLOC 20 lLOC 19 Comment 30 Lines 35
|
||||
|
||||
Function: QS_filterOn
|
||||
Parameters: (uint_fast8_t rec)
|
||||
@ -1101,9 +1133,10 @@
|
||||
Parameters: (uint_fast8_t rec)
|
||||
Cyclomatic Complexity Vg Detail
|
||||
Function Base : 1
|
||||
Loops for / foreach : 1
|
||||
Conditional if / else if: 1
|
||||
Complexity Param 1 Return 1 Cyclo Vg 2 Total 4
|
||||
LOC 28 eLOC 25 lLOC 37 Comment 17 Lines 37
|
||||
Complexity Param 1 Return 1 Cyclo Vg 3 Total 5
|
||||
LOC 20 eLOC 15 lLOC 10 Comment 16 Lines 25
|
||||
|
||||
Function: QS_beginRec
|
||||
Parameters: (uint_fast8_t rec)
|
||||
@ -1119,6 +1152,15 @@
|
||||
Complexity Param 0 Return 1 Cyclo Vg 4 Total 5
|
||||
LOC 22 eLOC 18 lLOC 10 Comment 17 Lines 28
|
||||
|
||||
Function: QS_target_info_
|
||||
Parameters: (uint8_t isReset)
|
||||
Cyclomatic Complexity Vg Detail
|
||||
Function Base : 1
|
||||
Selection case : 12
|
||||
Conditional if / else if: 2
|
||||
Complexity Param 1 Return 1 Cyclo Vg 15 Total 17
|
||||
LOC 97 eLOC 90 lLOC 48 Comment 10 Lines 111
|
||||
|
||||
Function: QS_u8
|
||||
Parameters: (uint8_t format, uint8_t d)
|
||||
Complexity Param 2 Return 1 Cyclo Vg 1 Total 4
|
||||
@ -1194,24 +1236,33 @@
|
||||
|
||||
Function: QS_sig_dict
|
||||
Parameters: (enum_t const sig, void const * const obj, char_t const Q_RO
|
||||
M * const name)
|
||||
Complexity Param 3 Return 1 Cyclo Vg 1 Total 5
|
||||
LOC 11 eLOC 9 lLOC 8 Comment 3 Lines 11
|
||||
M *name)
|
||||
Cyclomatic Complexity Vg Detail
|
||||
Function Base : 1
|
||||
Conditional if / else if: 1
|
||||
Complexity Param 3 Return 1 Cyclo Vg 2 Total 6
|
||||
LOC 14 eLOC 11 lLOC 9 Comment 3 Lines 15
|
||||
|
||||
Function: QS_obj_dict
|
||||
Parameters: (void const * const obj, char_t const Q_ROM * const name)
|
||||
Complexity Param 2 Return 1 Cyclo Vg 1 Total 4
|
||||
LOC 10 eLOC 8 lLOC 7 Comment 3 Lines 10
|
||||
Parameters: (void const * const obj, char_t const Q_ROM *name)
|
||||
Cyclomatic Complexity Vg Detail
|
||||
Function Base : 1
|
||||
Conditional if / else if: 1
|
||||
Complexity Param 2 Return 1 Cyclo Vg 2 Total 5
|
||||
LOC 13 eLOC 10 lLOC 8 Comment 3 Lines 14
|
||||
|
||||
Function: QS_fun_dict
|
||||
Parameters: (void (* const fun)(void), char_t const Q_ROM * const name)
|
||||
Complexity Param 2 Return 1 Cyclo Vg 1 Total 4
|
||||
LOC 10 eLOC 8 lLOC 7 Comment 3 Lines 10
|
||||
Parameters: (void (* const fun)(void), char_t const Q_ROM *name)
|
||||
Cyclomatic Complexity Vg Detail
|
||||
Function Base : 1
|
||||
Conditional if / else if: 1
|
||||
Complexity Param 2 Return 1 Cyclo Vg 2 Total 5
|
||||
LOC 13 eLOC 10 lLOC 8 Comment 3 Lines 14
|
||||
|
||||
Function: QS_usr_dict
|
||||
Parameters: (enum_t const rec, char_t const Q_ROM * const name)
|
||||
Complexity Param 2 Return 1 Cyclo Vg 1 Total 4
|
||||
LOC 10 eLOC 8 lLOC 7 Comment 3 Lines 10
|
||||
LOC 10 eLOC 8 lLOC 7 Comment 3 Lines 11
|
||||
|
||||
Function: QS_mem
|
||||
Parameters: (uint8_t const *blk, uint8_t size)
|
||||
@ -1241,27 +1292,27 @@
|
||||
|
||||
~~ Total File Summary ~~
|
||||
|
||||
LOC 385 eLOC 334 lLOC 259 Comment 361 Lines 685
|
||||
LOC 495 eLOC 432 lLOC 295 Comment 376 Lines 821
|
||||
------------------------------------------------------------------------
|
||||
|
||||
~~ File Functional Summary ~~
|
||||
|
||||
File Function Count....: 23
|
||||
Total Function LOC.....: 372 Total Function Pts LOC : 3.0
|
||||
Total Function eLOC....: 321 Total Function Pts eLOC: 2.6
|
||||
Total Function lLOC....: 258 Total Function Pts lLOC: 2.0
|
||||
Total Function Params .: 32 Total Function Return .: 23
|
||||
Total Cyclo Complexity : 42 Total Function Complex.: 97
|
||||
File Function Count....: 24
|
||||
Total Function LOC.....: 480 Total Function Pts LOC : 3.9
|
||||
Total Function eLOC....: 417 Total Function Pts eLOC: 3.4
|
||||
Total Function lLOC....: 292 Total Function Pts lLOC: 2.3
|
||||
Total Function Params .: 33 Total Function Return .: 24
|
||||
Total Cyclo Complexity : 61 Total Function Complex.: 118
|
||||
------ ----- ----- ------ ------ -----
|
||||
Max Function LOC ......: 29 Average Function LOC ..: 16.17
|
||||
Max Function eLOC .....: 25 Average Function eLOC .: 13.96
|
||||
Max Function lLOC .....: 37 Average Function lLOC .: 11.22
|
||||
Max Function LOC ......: 97 Average Function LOC ..: 20.00
|
||||
Max Function eLOC .....: 90 Average Function eLOC .: 17.38
|
||||
Max Function lLOC .....: 48 Average Function lLOC .: 12.17
|
||||
------ ----- ----- ------ ------ -----
|
||||
Max Function Parameters: 3 Avg Function Parameters: 1.39
|
||||
Max Function Parameters: 3 Avg Function Parameters: 1.38
|
||||
Max Function Returns ..: 1 Avg Function Returns ..: 1.00
|
||||
Max Interface Complex. : 4 Avg Interface Complex. : 2.39
|
||||
Max Cyclomatic Complex.: 5 Avg Cyclomatic Complex.: 1.83
|
||||
Max Total Complexity ..: 7 Avg Total Complexity ..: 4.22
|
||||
Max Interface Complex. : 4 Avg Interface Complex. : 2.38
|
||||
Max Cyclomatic Complex.: 15 Avg Cyclomatic Complex.: 2.54
|
||||
Max Total Complexity ..: 17 Avg Total Complexity ..: 4.92
|
||||
________________________________________________________________________
|
||||
End of File: ..\source\qs.c
|
||||
|
||||
@ -1362,6 +1413,105 @@
|
||||
End of File: ..\source\qs_fp.c
|
||||
|
||||
|
||||
File: ..\source\qs_rx.c
|
||||
________________________________________________________________________
|
||||
|
||||
Function: QS_rxInitBuf
|
||||
Parameters: (uint8_t sto[], uint16_t stoSize)
|
||||
Complexity Param 2 Return 1 Cyclo Vg 1 Total 4
|
||||
LOC 18 eLOC 17 lLOC 15 Comment 19 Lines 21
|
||||
|
||||
Function: QS_rxGetNfree
|
||||
Parameters: (void)
|
||||
Cyclomatic Complexity Vg Detail
|
||||
Function Base : 1
|
||||
Conditional if / else if: 2
|
||||
Complexity Param 0 Return 1 Cyclo Vg 3 Total 4
|
||||
LOC 14 eLOC 10 lLOC 5 Comment 9 Lines 14
|
||||
|
||||
Function: QS_rxParse
|
||||
Parameters: (void)
|
||||
Cyclomatic Complexity Vg Detail
|
||||
Function Base : 1
|
||||
Loops while / do : 1
|
||||
Conditional if / else if: 5
|
||||
Complexity Param 0 Return 1 Cyclo Vg 7 Total 8
|
||||
LOC 36 eLOC 26 lLOC 16 Comment 5 Lines 41
|
||||
|
||||
Function: QS_rxParseData_
|
||||
Parameters: (uint8_t b)
|
||||
Cyclomatic Complexity Vg Detail
|
||||
Function Base : 1
|
||||
Selection case : 40
|
||||
Conditional if / else if: 16
|
||||
Complexity Param 1 Return 1 Cyclo Vg 57 Total 59
|
||||
LOC 253 eLOC 196 lLOC 124 Comment 18 Lines 264
|
||||
|
||||
Function: QS_rxHandleGoodFrame_
|
||||
Parameters: (void)
|
||||
Cyclomatic Complexity Vg Detail
|
||||
Function Base : 1
|
||||
Loops for / foreach : 3
|
||||
Selection case : 17
|
||||
Conditional if / else if: 4
|
||||
Complexity Param 0 Return 1 Cyclo Vg 25 Total 26
|
||||
LOC 127 eLOC 103 lLOC 69 Comment 15 Lines 137
|
||||
|
||||
Function: QS_rxHandleBadFrame_
|
||||
Parameters: (void)
|
||||
Cyclomatic Complexity Vg Detail
|
||||
Function Base : 1
|
||||
Selection case : 1
|
||||
Complexity Param 0 Return 1 Cyclo Vg 2 Total 3
|
||||
LOC 12 eLOC 8 lLOC 4 Comment 1 Lines 12
|
||||
|
||||
Function: QS_rxReportSuccess_
|
||||
Parameters: (enum QSpyRxRecords recId)
|
||||
Complexity Param 1 Return 1 Cyclo Vg 1 Total 3
|
||||
LOC 7 eLOC 6 lLOC 2 Comment 3 Lines 7
|
||||
|
||||
Function: QS_rxReportError_
|
||||
Parameters: (uint8_t stateId)
|
||||
Complexity Param 1 Return 1 Cyclo Vg 1 Total 3
|
||||
LOC 7 eLOC 6 lLOC 2 Comment 3 Lines 7
|
||||
|
||||
Function: QS_rxAddr_
|
||||
Parameters: (uint8_t b, QSAddr *addr, uint8_t *idx)
|
||||
Cyclomatic Complexity Vg Detail
|
||||
Function Base : 1
|
||||
Inlined if-else ( ? : ) : 1
|
||||
Complexity Param 3 Return 1 Cyclo Vg 2 Total 6
|
||||
LOC 5 eLOC 4 lLOC 3 Comment 1 Lines 5
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
~~ Total File Summary ~~
|
||||
|
||||
LOC 589 eLOC 485 lLOC 298 Comment 131 Lines 730
|
||||
------------------------------------------------------------------------
|
||||
|
||||
~~ File Functional Summary ~~
|
||||
|
||||
File Function Count....: 9
|
||||
Total Function LOC.....: 479 Total Function Pts LOC : 4.6
|
||||
Total Function eLOC....: 376 Total Function Pts eLOC: 3.8
|
||||
Total Function lLOC....: 240 Total Function Pts lLOC: 2.3
|
||||
Total Function Params .: 8 Total Function Return .: 9
|
||||
Total Cyclo Complexity : 99 Total Function Complex.: 116
|
||||
------ ----- ----- ------ ------ -----
|
||||
Max Function LOC ......: 253 Average Function LOC ..: 53.22
|
||||
Max Function eLOC .....: 196 Average Function eLOC .: 41.78
|
||||
Max Function lLOC .....: 124 Average Function lLOC .: 26.67
|
||||
------ ----- ----- ------ ------ -----
|
||||
Max Function Parameters: 3 Avg Function Parameters: 0.89
|
||||
Max Function Returns ..: 1 Avg Function Returns ..: 1.00
|
||||
Max Interface Complex. : 4 Avg Interface Complex. : 1.89
|
||||
Max Cyclomatic Complex.: 57 Avg Cyclomatic Complex.: 11.00
|
||||
Max Total Complexity ..: 59 Avg Total Complexity ..: 12.89
|
||||
________________________________________________________________________
|
||||
End of File: ..\source\qs_rx.c
|
||||
|
||||
|
||||
File: ..\source\qv.c
|
||||
________________________________________________________________________
|
||||
|
||||
@ -1377,7 +1527,7 @@
|
||||
|
||||
|
||||
NOTICE: The end of the source file has been reached where the
|
||||
open brace count { 9 != 8 } close brace count
|
||||
open brace count { 10 != 9 } close brace count
|
||||
This is an indication of non-compilable code within the source
|
||||
file. RSM processes all source code including code wrapped
|
||||
with preprocessor directives. Accurate metrics requires that
|
||||
@ -1393,14 +1543,14 @@
|
||||
|
||||
~~ Total File Summary ~~
|
||||
|
||||
LOC 71 eLOC 62 lLOC 32 Comment 161 Lines 231
|
||||
LOC 91 eLOC 81 lLOC 39 Comment 172 Lines 256
|
||||
------------------------------------------------------------------------
|
||||
|
||||
~~ File Functional Summary ~~
|
||||
|
||||
File Function Count....: 3
|
||||
Total Function LOC.....: 11 Total Function Pts LOC : 0.6
|
||||
Total Function eLOC....: 9 Total Function Pts eLOC: 0.5
|
||||
Total Function LOC.....: 11 Total Function Pts LOC : 0.7
|
||||
Total Function eLOC....: 9 Total Function Pts eLOC: 0.6
|
||||
Total Function lLOC....: 7 Total Function Pts lLOC: 0.3
|
||||
Total Function Params .: 0 Total Function Return .: 2
|
||||
Total Cyclo Complexity : 2 Total Function Complex.: 4
|
||||
@ -1420,15 +1570,15 @@
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
~~ Project Analysis For 33 Files ~~
|
||||
~~ Project Analysis For 34 Files ~~
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
~~ Total Project Summary ~~
|
||||
|
||||
LOC 3687 eLOC 3362 lLOC 1517 Comment 5997 Lines 9811
|
||||
Average per File, metric/33 files
|
||||
LOC 111 eLOC 101 lLOC 45 Comment 181 Lines 297
|
||||
LOC 4535 eLOC 4078 lLOC 1913 Comment 6340 Lines 11004
|
||||
Average per File, metric/34 files
|
||||
LOC 133 eLOC 119 lLOC 56 Comment 186 Lines 323
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
@ -1464,6 +1614,11 @@
|
||||
Complexity Param 2 Return 1 Cyclo Vg 3 Total 6
|
||||
LOC 16 eLOC 13 lLOC 9 Comment 21 Lines 21
|
||||
|
||||
Function: QHsm_childState
|
||||
Parameters: (QHsm * const me, QStateHandler const parent)
|
||||
Complexity Param 2 Return 1 Cyclo Vg 3 Total 6
|
||||
LOC 19 eLOC 15 lLOC 12 Comment 28 Lines 25
|
||||
|
||||
Function: QMsm_ctor
|
||||
Parameters: (QMsm * const me, QStateHandler initial)
|
||||
Complexity Param 2 Return 1 Cyclo Vg 1 Total 4
|
||||
@ -1500,6 +1655,11 @@
|
||||
Complexity Param 2 Return 1 Cyclo Vg 3 Total 6
|
||||
LOC 11 eLOC 8 lLOC 6 Comment 16 Lines 12
|
||||
|
||||
Function: QMsm_childStateObj
|
||||
Parameters: (QMsm const * const me, QMState const * const parent)
|
||||
Complexity Param 2 Return 1 Cyclo Vg 3 Total 6
|
||||
LOC 19 eLOC 13 lLOC 9 Comment 18 Lines 23
|
||||
|
||||
Function: QF_add_
|
||||
Parameters: (QMActive * const a)
|
||||
Complexity Param 1 Return 1 Cyclo Vg 3 Total 5
|
||||
@ -1569,21 +1729,31 @@
|
||||
Complexity Param 1 Return 1 Cyclo Vg 3 Total 5
|
||||
LOC 26 eLOC 22 lLOC 13 Comment 35 Lines 39
|
||||
|
||||
Function: QF_newRef_
|
||||
Parameters: (QEvt const * const e, QEvt const * const evtRef)
|
||||
Complexity Param 2 Return 1 Cyclo Vg 2 Total 5
|
||||
LOC 7 eLOC 5 lLOC 3 Comment 16 Lines 11
|
||||
|
||||
Function: QF_poolGetMaxBlockSize
|
||||
Parameters: (void)
|
||||
Complexity Param 0 Return 1 Cyclo Vg 1 Total 2
|
||||
LOC 3 eLOC 2 lLOC 1 Comment 5 Lines 3
|
||||
|
||||
Function: QMPool_init
|
||||
Parameters: (QMPool * const me, void * const poolSto, uint_fast32_t pool
|
||||
Size, uint_fast16_t blockSize)
|
||||
Complexity Param 4 Return 1 Cyclo Vg 5 Total 10
|
||||
LOC 36 eLOC 32 lLOC 24 Comment 54 Lines 52
|
||||
LOC 36 eLOC 32 lLOC 24 Comment 58 Lines 52
|
||||
|
||||
Function: QMPool_put
|
||||
Parameters: (QMPool * const me, void *b)
|
||||
Complexity Param 2 Return 1 Cyclo Vg 2 Total 5
|
||||
LOC 15 eLOC 14 lLOC 9 Comment 25 Lines 22
|
||||
LOC 15 eLOC 14 lLOC 9 Comment 29 Lines 22
|
||||
|
||||
Function: QMPool_get
|
||||
Parameters: (QMPool * const me, uint_fast16_t const margin)
|
||||
Complexity Param 2 Return 1 Cyclo Vg 4 Total 7
|
||||
LOC 41 eLOC 35 lLOC 23 Comment 50 Lines 65
|
||||
LOC 41 eLOC 35 lLOC 23 Comment 54 Lines 65
|
||||
|
||||
Function: QF_getPoolMin
|
||||
Parameters: (uint_fast8_t const poolId)
|
||||
@ -1723,8 +1893,8 @@
|
||||
|
||||
Function: QK_sched_
|
||||
Parameters: (uint_fast8_t p)
|
||||
Complexity Param 1 Return 1 Cyclo Vg 6 Total 8
|
||||
LOC 50 eLOC 44 lLOC 24 Comment 44 Lines 77
|
||||
Complexity Param 1 Return 1 Cyclo Vg 9 Total 11
|
||||
LOC 65 eLOC 58 lLOC 27 Comment 55 Lines 95
|
||||
|
||||
Function: QK_mutexLock
|
||||
Parameters: (uint_fast8_t prioCeiling)
|
||||
@ -1739,7 +1909,7 @@
|
||||
Function: QS_initBuf
|
||||
Parameters: (uint8_t sto[], uint_fast16_t stoSize)
|
||||
Complexity Param 2 Return 1 Cyclo Vg 1 Total 4
|
||||
LOC 11 eLOC 10 lLOC 9 Comment 25 Lines 19
|
||||
LOC 21 eLOC 20 lLOC 19 Comment 30 Lines 35
|
||||
|
||||
Function: QS_filterOn
|
||||
Parameters: (uint_fast8_t rec)
|
||||
@ -1748,8 +1918,8 @@
|
||||
|
||||
Function: QS_filterOff
|
||||
Parameters: (uint_fast8_t rec)
|
||||
Complexity Param 1 Return 1 Cyclo Vg 2 Total 4
|
||||
LOC 28 eLOC 25 lLOC 37 Comment 17 Lines 37
|
||||
Complexity Param 1 Return 1 Cyclo Vg 3 Total 5
|
||||
LOC 20 eLOC 15 lLOC 10 Comment 16 Lines 25
|
||||
|
||||
Function: QS_beginRec
|
||||
Parameters: (uint_fast8_t rec)
|
||||
@ -1761,6 +1931,11 @@
|
||||
Complexity Param 0 Return 1 Cyclo Vg 4 Total 5
|
||||
LOC 22 eLOC 18 lLOC 10 Comment 17 Lines 28
|
||||
|
||||
Function: QS_target_info_
|
||||
Parameters: (uint8_t isReset)
|
||||
Complexity Param 1 Return 1 Cyclo Vg 15 Total 17
|
||||
LOC 97 eLOC 90 lLOC 48 Comment 10 Lines 111
|
||||
|
||||
Function: QS_u8
|
||||
Parameters: (uint8_t format, uint8_t d)
|
||||
Complexity Param 2 Return 1 Cyclo Vg 1 Total 4
|
||||
@ -1818,24 +1993,24 @@
|
||||
|
||||
Function: QS_sig_dict
|
||||
Parameters: (enum_t const sig, void const * const obj, char_t const Q_RO
|
||||
M * const name)
|
||||
Complexity Param 3 Return 1 Cyclo Vg 1 Total 5
|
||||
LOC 11 eLOC 9 lLOC 8 Comment 3 Lines 11
|
||||
M *name)
|
||||
Complexity Param 3 Return 1 Cyclo Vg 2 Total 6
|
||||
LOC 14 eLOC 11 lLOC 9 Comment 3 Lines 15
|
||||
|
||||
Function: QS_obj_dict
|
||||
Parameters: (void const * const obj, char_t const Q_ROM * const name)
|
||||
Complexity Param 2 Return 1 Cyclo Vg 1 Total 4
|
||||
LOC 10 eLOC 8 lLOC 7 Comment 3 Lines 10
|
||||
Parameters: (void const * const obj, char_t const Q_ROM *name)
|
||||
Complexity Param 2 Return 1 Cyclo Vg 2 Total 5
|
||||
LOC 13 eLOC 10 lLOC 8 Comment 3 Lines 14
|
||||
|
||||
Function: QS_fun_dict
|
||||
Parameters: (void (* const fun)(void), char_t const Q_ROM * const name)
|
||||
Complexity Param 2 Return 1 Cyclo Vg 1 Total 4
|
||||
LOC 10 eLOC 8 lLOC 7 Comment 3 Lines 10
|
||||
Parameters: (void (* const fun)(void), char_t const Q_ROM *name)
|
||||
Complexity Param 2 Return 1 Cyclo Vg 2 Total 5
|
||||
LOC 13 eLOC 10 lLOC 8 Comment 3 Lines 14
|
||||
|
||||
Function: QS_usr_dict
|
||||
Parameters: (enum_t const rec, char_t const Q_ROM * const name)
|
||||
Complexity Param 2 Return 1 Cyclo Vg 1 Total 4
|
||||
LOC 10 eLOC 8 lLOC 7 Comment 3 Lines 10
|
||||
LOC 10 eLOC 8 lLOC 7 Comment 3 Lines 11
|
||||
|
||||
Function: QS_mem
|
||||
Parameters: (uint8_t const *blk, uint8_t size)
|
||||
@ -1872,6 +2047,51 @@
|
||||
Complexity Param 2 Return 1 Cyclo Vg 3 Total 6
|
||||
LOC 29 eLOC 26 lLOC 20 Comment 14 Lines 36
|
||||
|
||||
Function: QS_rxInitBuf
|
||||
Parameters: (uint8_t sto[], uint16_t stoSize)
|
||||
Complexity Param 2 Return 1 Cyclo Vg 1 Total 4
|
||||
LOC 18 eLOC 17 lLOC 15 Comment 19 Lines 21
|
||||
|
||||
Function: QS_rxGetNfree
|
||||
Parameters: (void)
|
||||
Complexity Param 0 Return 1 Cyclo Vg 3 Total 4
|
||||
LOC 14 eLOC 10 lLOC 5 Comment 9 Lines 14
|
||||
|
||||
Function: QS_rxParse
|
||||
Parameters: (void)
|
||||
Complexity Param 0 Return 1 Cyclo Vg 7 Total 8
|
||||
LOC 36 eLOC 26 lLOC 16 Comment 5 Lines 41
|
||||
|
||||
Function: QS_rxParseData_
|
||||
Parameters: (uint8_t b)
|
||||
Complexity Param 1 Return 1 Cyclo Vg 57 Total 59
|
||||
LOC 253 eLOC 196 lLOC 124 Comment 18 Lines 264
|
||||
|
||||
Function: QS_rxHandleGoodFrame_
|
||||
Parameters: (void)
|
||||
Complexity Param 0 Return 1 Cyclo Vg 25 Total 26
|
||||
LOC 127 eLOC 103 lLOC 69 Comment 15 Lines 137
|
||||
|
||||
Function: QS_rxHandleBadFrame_
|
||||
Parameters: (void)
|
||||
Complexity Param 0 Return 1 Cyclo Vg 2 Total 3
|
||||
LOC 12 eLOC 8 lLOC 4 Comment 1 Lines 12
|
||||
|
||||
Function: QS_rxReportSuccess_
|
||||
Parameters: (enum QSpyRxRecords recId)
|
||||
Complexity Param 1 Return 1 Cyclo Vg 1 Total 3
|
||||
LOC 7 eLOC 6 lLOC 2 Comment 3 Lines 7
|
||||
|
||||
Function: QS_rxReportError_
|
||||
Parameters: (uint8_t stateId)
|
||||
Complexity Param 1 Return 1 Cyclo Vg 1 Total 3
|
||||
LOC 7 eLOC 6 lLOC 2 Comment 3 Lines 7
|
||||
|
||||
Function: QS_rxAddr_
|
||||
Parameters: (uint8_t b, QSAddr *addr, uint8_t *idx)
|
||||
Complexity Param 3 Return 1 Cyclo Vg 2 Total 6
|
||||
LOC 5 eLOC 4 lLOC 3 Comment 1 Lines 5
|
||||
|
||||
Function: QF_init
|
||||
Parameters: (void)
|
||||
Complexity Param 0 Return 1 Cyclo Vg 1 Total 2
|
||||
@ -1883,47 +2103,47 @@
|
||||
LOC 3 eLOC 2 lLOC 1 Comment 14 Lines 4
|
||||
|
||||
Total: Functions
|
||||
LOC 2002 eLOC 1704 lLOC 1158 InCmp 232 CycloCmp 274
|
||||
Function Points FP(LOC) 15.6 FP(eLOC) 13.3 FP(lLOC) 9.0
|
||||
LOC 2652 eLOC 2225 lLOC 1460 InCmp 261 CycloCmp 404
|
||||
Function Points FP(LOC) 20.7 FP(eLOC) 17.4 FP(lLOC) 11.4
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
~~ Project Functional Analysis ~~
|
||||
|
||||
Total Functions .......: 87 Total Physical Lines ..: 2724
|
||||
Total LOC .............: 2002 Total Function Pts LOC : 15.6
|
||||
Total eLOC ............: 1704 Total Function Pts eLOC: 13.3
|
||||
Total lLOC.............: 1158 Total Function Pts lLOC: 9.0
|
||||
Total Cyclomatic Comp. : 274 Total Interface Comp. .: 232
|
||||
Total Parameters ......: 145 Total Return Points ...: 87
|
||||
Total Comment Lines ...: 2170 Total Blank Lines .....: 392
|
||||
Total Functions .......: 101 Total Physical Lines ..: 3440
|
||||
Total LOC .............: 2652 Total Function Pts LOC : 20.7
|
||||
Total eLOC ............: 2225 Total Function Pts eLOC: 17.4
|
||||
Total lLOC.............: 1460 Total Function Pts lLOC: 11.4
|
||||
Total Cyclomatic Comp. : 404 Total Interface Comp. .: 261
|
||||
Total Parameters ......: 160 Total Return Points ...: 101
|
||||
Total Comment Lines ...: 2348 Total Blank Lines .....: 427
|
||||
------ ----- ----- ------ ------ -----
|
||||
Avg Physical Lines ....: 31.31
|
||||
Avg LOC ...............: 23.01 Avg eLOC ..............: 19.59
|
||||
Avg lLOC ..............: 13.31 Avg Cyclomatic Comp. ..: 3.15
|
||||
Avg Interface Comp. ...: 2.67 Avg Parameters ........: 1.67
|
||||
Avg Return Points .....: 1.00 Avg Comment Lines .....: 24.94
|
||||
Avg Physical Lines ....: 34.06
|
||||
Avg LOC ...............: 26.26 Avg eLOC ..............: 22.03
|
||||
Avg lLOC ..............: 14.46 Avg Cyclomatic Comp. ..: 4.00
|
||||
Avg Interface Comp. ...: 2.58 Avg Parameters ........: 1.58
|
||||
Avg Return Points .....: 1.00 Avg Comment Lines .....: 23.25
|
||||
------ ----- ----- ------ ------ -----
|
||||
Max LOC ...............: 107
|
||||
Max eLOC ..............: 94 Max lLOC ..............: 62
|
||||
Max Cyclomatic Comp. ..: 15 Max Interface Comp. ...: 8
|
||||
Max LOC ...............: 253
|
||||
Max eLOC ..............: 196 Max lLOC ..............: 124
|
||||
Max Cyclomatic Comp. ..: 57 Max Interface Comp. ...: 8
|
||||
Max Parameters ........: 7 Max Return Points .....: 1
|
||||
Max Comment Lines .....: 79 Max Total Lines .......: 148
|
||||
Max Comment Lines .....: 79 Max Total Lines .......: 264
|
||||
------ ----- ----- ------ ------ -----
|
||||
Min LOC ...............: 3
|
||||
Min eLOC ..............: 2 Min lLOC ..............: 1
|
||||
Min Cyclomatic Comp. ..: 1 Min Interface Comp. ...: 1
|
||||
Min Parameters ........: 0 Min Return Points .....: 1
|
||||
Min Comment Lines .....: 3 Min Total Lines .......: 3
|
||||
Min Comment Lines .....: 1 Min Total Lines .......: 3
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
~~ File Summary ~~
|
||||
|
||||
C Source Files *.c ....: 18 C/C++ Include Files *.h: 15
|
||||
C Source Files *.c ....: 19 C/C++ Include Files *.h: 15
|
||||
C++ Source Files *.c* .: 0 C++ Include Files *.h* : 0
|
||||
C# Source Files *.cs ..: 0 Java Source File *.jav*: 0
|
||||
Other File Count ......: 0 Total File Count ......: 33
|
||||
Other File Count ......: 0 Total File Count ......: 34
|
||||
________________________________________________________________________
|
||||
|
||||
@endcode
|
2930
doxygen/qpc_metrics.txt
Normal file
@ -1,14 +1,14 @@
|
||||
@echo off
|
||||
:: ==========================================================================
|
||||
:: Product: QP/C script for running MSquared Resource Standard Metrics (RSM)
|
||||
:: Last Updated for Version: 5.2.0
|
||||
:: Date of the Last Update: Dec 20, 2013
|
||||
:: Last Updated for Version: 5.5.0
|
||||
:: Date of the Last Update: 2015-09-01
|
||||
::
|
||||
:: Q u a n t u m L e a P s
|
||||
:: ---------------------------
|
||||
:: innovating embedded systems
|
||||
::
|
||||
:: Copyright (C) 2002-2013 Quantum Leaps, LLC. All rights reserved.
|
||||
:: Copyright (C) Quantum Leaps, LLC. All rights reserved.
|
||||
::
|
||||
:: This program is open source software: you can redistribute it and/or
|
||||
:: modify it under the terms of the GNU General Public License as published
|
||||
@ -29,16 +29,15 @@
|
||||
:: along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
::
|
||||
:: Contact information:
|
||||
:: Quantum Leaps Web sites: http://www.quantum-leaps.com
|
||||
:: http://www.state-machine.com
|
||||
:: e-mail: info@quantum-leaps.com
|
||||
:: http://www.state-machine.com
|
||||
:: mailto:info@state-machine.com
|
||||
:: ==========================================================================
|
||||
setlocal
|
||||
|
||||
set RCMHOME="C:\tools\MSquared\M2 RSM"
|
||||
|
||||
set RSM_OUTPUT=qpc_metrics.txt
|
||||
set RSM_INPUT=..\include\*.h ..\qep\source\*.h ..\qep\source\*.c ..\qf\source\*.h ..\qf\source\*.c ..\qk\source\*.h ..\qk\source\*.c ..\qs\source\*.h ..\qs\source\*.c
|
||||
set RSM_INPUT=..\include\*.h ..\source\*.h ..\source\*.c
|
||||
|
||||
%RCMHOME%\rsm.exe -fd -n -xNOCOMMAND -xNOCONFIG -u"File cfg rsm_qpc.cfg" %RSM_INPUT% > %RSM_OUTPUT%
|
||||
|
||||
|
228
doxygen/scripts/jquery.plugins.min.js
vendored
@ -1,228 +0,0 @@
|
||||
/*
|
||||
* jQuery Color Animations
|
||||
* Copyright 2007 John Resig
|
||||
* Released under the MIT and GPL licenses.
|
||||
|
||||
*/
|
||||
(function(jQuery){jQuery.each(['backgroundColor','borderBottomColor','borderLeftColor','borderRightColor','borderTopColor','color','outlineColor'],function(i,attr){jQuery.fx.step[attr]=function(fx){if(fx.state==0){fx.start=getColor(fx.elem,attr);fx.end=getRGB(fx.end);}
|
||||
fx.elem.style[attr]="rgb("+[Math.max(Math.min(parseInt((fx.pos*(fx.end[0]-fx.start[0]))+fx.start[0]),255),0),Math.max(Math.min(parseInt((fx.pos*(fx.end[1]-fx.start[1]))+fx.start[1]),255),0),Math.max(Math.min(parseInt((fx.pos*(fx.end[2]-fx.start[2]))+fx.start[2]),255),0)].join(",")+")";}});function getRGB(color){var result;if(color&&color.constructor==Array&&color.length==3)
|
||||
return color;if(result=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
|
||||
return[parseInt(result[1]),parseInt(result[2]),parseInt(result[3])];if(result=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
|
||||
return[parseFloat(result[1])*2.55,parseFloat(result[2])*2.55,parseFloat(result[3])*2.55];if(result=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
|
||||
return[parseInt(result[1],16),parseInt(result[2],16),parseInt(result[3],16)];if(result=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
|
||||
return[parseInt(result[1]+result[1],16),parseInt(result[2]+result[2],16),parseInt(result[3]+result[3],16)];return colors[jQuery.trim(color).toLowerCase()];}
|
||||
function getColor(elem,attr){var color;do{color=jQuery.curCSS(elem,attr);if(color!=''&&color!='transparent'||jQuery.nodeName(elem,"body"))
|
||||
break;attr="backgroundColor";}while(elem=elem.parentNode);return getRGB(color);};var colors={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]};})(jQuery);
|
||||
|
||||
/*
|
||||
* jQuery Form Plugin
|
||||
* version: 2.28 (10-MAY-2009)
|
||||
* @requires jQuery v1.2.2 or later
|
||||
*
|
||||
* Examples and documentation at: http://malsup.com/jquery/form/
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*/
|
||||
;(function($) {
|
||||
|
||||
/*
|
||||
Usage Note:
|
||||
-----------
|
||||
Do not use both ajaxSubmit and ajaxForm on the same form. These
|
||||
functions are intended to be exclusive. Use ajaxSubmit if you want
|
||||
to bind your own submit handler to the form. For example,
|
||||
|
||||
$(document).ready(function() {
|
||||
$('#myForm').bind('submit', function() {
|
||||
$(this).ajaxSubmit({
|
||||
target: '#output'
|
||||
});
|
||||
return false; // <-- important!
|
||||
});
|
||||
});
|
||||
|
||||
Use ajaxForm when you want the plugin to manage all the event binding
|
||||
for you. For example,
|
||||
|
||||
$(document).ready(function() {
|
||||
$('#myForm').ajaxForm({
|
||||
target: '#output'
|
||||
});
|
||||
});
|
||||
|
||||
When using ajaxForm, the ajaxSubmit function will be invoked for you
|
||||
at the appropriate time.
|
||||
*/
|
||||
$.fn.ajaxSubmit=function(options){if(!this.length){log('ajaxSubmit: skipping submit process - no element selected');return this;}
|
||||
if(typeof options=='function')
|
||||
options={success:options};var url=$.trim(this.attr('action'));if(url){url=(url.match(/^([^#]+)/)||[])[1];}
|
||||
url=url||window.location.href||''
|
||||
options=$.extend({url:url,type:this.attr('method')||'GET'},options||{});var veto={};this.trigger('form-pre-serialize',[this,options,veto]);if(veto.veto){log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');return this;}
|
||||
if(options.beforeSerialize&&options.beforeSerialize(this,options)===false){log('ajaxSubmit: submit aborted via beforeSerialize callback');return this;}
|
||||
var a=this.formToArray(options.semantic);if(options.data){options.extraData=options.data;for(var n in options.data){if(options.data[n]instanceof Array){for(var k in options.data[n])
|
||||
a.push({name:n,value:options.data[n][k]});}
|
||||
else
|
||||
a.push({name:n,value:options.data[n]});}}
|
||||
if(options.beforeSubmit&&options.beforeSubmit(a,this,options)===false){log('ajaxSubmit: submit aborted via beforeSubmit callback');return this;}
|
||||
this.trigger('form-submit-validate',[a,this,options,veto]);if(veto.veto){log('ajaxSubmit: submit vetoed via form-submit-validate trigger');return this;}
|
||||
var q=$.param(a);if(options.type.toUpperCase()=='GET'){options.url+=(options.url.indexOf('?')>=0?'&':'?')+q;options.data=null;}
|
||||
else
|
||||
options.data=q;var $form=this,callbacks=[];if(options.resetForm)callbacks.push(function(){$form.resetForm();});if(options.clearForm)callbacks.push(function(){$form.clearForm();});if(!options.dataType&&options.target){var oldSuccess=options.success||function(){};callbacks.push(function(data){$(options.target).html(data).each(oldSuccess,arguments);});}
|
||||
else if(options.success)
|
||||
callbacks.push(options.success);options.success=function(data,status){for(var i=0,max=callbacks.length;i<max;i++)
|
||||
callbacks[i].apply(options,[data,status,$form]);};var files=$('input:file',this).fieldValue();var found=false;for(var j=0;j<files.length;j++)
|
||||
if(files[j])
|
||||
found=true;var multipart=false;if(options.iframe||found||multipart){if(options.closeKeepAlive)
|
||||
$.get(options.closeKeepAlive,fileUpload);else
|
||||
fileUpload();}
|
||||
else
|
||||
$.ajax(options);this.trigger('form-submit-notify',[this,options]);return this;function fileUpload(){var form=$form[0];if($(':input[name=submit]',form).length){alert('Error: Form elements must not be named "submit".');return;}
|
||||
var opts=$.extend({},$.ajaxSettings,options);var s=$.extend(true,{},$.extend(true,{},$.ajaxSettings),opts);var id='jqFormIO'+(new Date().getTime());var $io=$('<iframe id="'+id+'" name="'+id+'" src="about:blank" />');var io=$io[0];$io.css({position:'absolute',top:'-1000px',left:'-1000px'});var xhr={aborted:0,responseText:null,responseXML:null,status:0,statusText:'n/a',getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(){this.aborted=1;$io.attr('src','about:blank');}};var g=opts.global;if(g&&!$.active++)$.event.trigger("ajaxStart");if(g)$.event.trigger("ajaxSend",[xhr,opts]);if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&$.active--;return;}
|
||||
if(xhr.aborted)
|
||||
return;var cbInvoked=0;var timedOut=0;var sub=form.clk;if(sub){var n=sub.name;if(n&&!sub.disabled){options.extraData=options.extraData||{};options.extraData[n]=sub.value;if(sub.type=="image"){options.extraData[name+'.x']=form.clk_x;options.extraData[name+'.y']=form.clk_y;}}}
|
||||
setTimeout(function(){var t=$form.attr('target'),a=$form.attr('action');form.setAttribute('target',id);if(form.getAttribute('method')!='POST')
|
||||
form.setAttribute('method','POST');if(form.getAttribute('action')!=opts.url)
|
||||
form.setAttribute('action',opts.url);if(!options.skipEncodingOverride){$form.attr({encoding:'multipart/form-data',enctype:'multipart/form-data'});}
|
||||
if(opts.timeout)
|
||||
setTimeout(function(){timedOut=true;cb();},opts.timeout);var extraInputs=[];try{if(options.extraData)
|
||||
for(var n in options.extraData)
|
||||
extraInputs.push($('<input type="hidden" name="'+n+'" value="'+options.extraData[n]+'" />').appendTo(form)[0]);$io.appendTo('body');io.attachEvent?io.attachEvent('onload',cb):io.addEventListener('load',cb,false);form.submit();}
|
||||
finally{form.setAttribute('action',a);t?form.setAttribute('target',t):$form.removeAttr('target');$(extraInputs).remove();}},10);var nullCheckFlag=0;function cb(){if(cbInvoked++)return;io.detachEvent?io.detachEvent('onload',cb):io.removeEventListener('load',cb,false);var ok=true;try{if(timedOut)throw'timeout';var data,doc;doc=io.contentWindow?io.contentWindow.document:io.contentDocument?io.contentDocument:io.document;if((doc.body==null||doc.body.innerHTML=='')&&!nullCheckFlag){nullCheckFlag=1;cbInvoked--;setTimeout(cb,100);return;}
|
||||
xhr.responseText=doc.body?doc.body.innerHTML:null;xhr.responseXML=doc.XMLDocument?doc.XMLDocument:doc;xhr.getResponseHeader=function(header){var headers={'content-type':opts.dataType};return headers[header];};if(opts.dataType=='json'||opts.dataType=='script'){var ta=doc.getElementsByTagName('textarea')[0];xhr.responseText=ta?ta.value:xhr.responseText;}
|
||||
else if(opts.dataType=='xml'&&!xhr.responseXML&&xhr.responseText!=null){xhr.responseXML=toXml(xhr.responseText);}
|
||||
data=$.httpData(xhr,opts.dataType);}
|
||||
catch(e){ok=false;$.handleError(opts,xhr,'error',e);}
|
||||
if(ok){opts.success(data,'success');if(g)$.event.trigger("ajaxSuccess",[xhr,opts]);}
|
||||
if(g)$.event.trigger("ajaxComplete",[xhr,opts]);if(g&&!--$.active)$.event.trigger("ajaxStop");if(opts.complete)opts.complete(xhr,ok?'success':'error');setTimeout(function(){$io.remove();xhr.responseXML=null;},100);};function toXml(s,doc){if(window.ActiveXObject){doc=new ActiveXObject('Microsoft.XMLDOM');doc.async='false';doc.loadXML(s);}
|
||||
else
|
||||
doc=(new DOMParser()).parseFromString(s,'text/xml');return(doc&&doc.documentElement&&doc.documentElement.tagName!='parsererror')?doc:null;};};};$.fn.ajaxForm=function(options){return this.ajaxFormUnbind().bind('submit.form-plugin',function(){$(this).ajaxSubmit(options);return false;}).each(function(){$(":submit,input:image",this).bind('click.form-plugin',function(e){var form=this.form;form.clk=this;if(this.type=='image'){if(e.offsetX!=undefined){form.clk_x=e.offsetX;form.clk_y=e.offsetY;}else if(typeof $.fn.offset=='function'){var offset=$(this).offset();form.clk_x=e.pageX-offset.left;form.clk_y=e.pageY-offset.top;}else{form.clk_x=e.pageX-this.offsetLeft;form.clk_y=e.pageY-this.offsetTop;}}
|
||||
setTimeout(function(){form.clk=form.clk_x=form.clk_y=null;},10);});});};$.fn.ajaxFormUnbind=function(){this.unbind('submit.form-plugin');return this.each(function(){$(":submit,input:image",this).unbind('click.form-plugin');});};$.fn.formToArray=function(semantic){var a=[];if(this.length==0)return a;var form=this[0];var els=semantic?form.getElementsByTagName('*'):form.elements;if(!els)return a;for(var i=0,max=els.length;i<max;i++){var el=els[i];var n=el.name;if(!n)continue;if(semantic&&form.clk&&el.type=="image"){if(!el.disabled&&form.clk==el){a.push({name:n,value:$(el).val()});a.push({name:n+'.x',value:form.clk_x},{name:n+'.y',value:form.clk_y});}
|
||||
continue;}
|
||||
var v=$.fieldValue(el,true);if(v&&v.constructor==Array){for(var j=0,jmax=v.length;j<jmax;j++)
|
||||
a.push({name:n,value:v[j]});}
|
||||
else if(v!==null&&typeof v!='undefined')
|
||||
a.push({name:n,value:v});}
|
||||
if(!semantic&&form.clk){var $input=$(form.clk),input=$input[0],n=input.name;if(n&&!input.disabled&&input.type=='image'){a.push({name:n,value:$input.val()});a.push({name:n+'.x',value:form.clk_x},{name:n+'.y',value:form.clk_y});}}
|
||||
return a;};$.fn.formSerialize=function(semantic){return $.param(this.formToArray(semantic));};$.fn.fieldSerialize=function(successful){var a=[];this.each(function(){var n=this.name;if(!n)return;var v=$.fieldValue(this,successful);if(v&&v.constructor==Array){for(var i=0,max=v.length;i<max;i++)
|
||||
a.push({name:n,value:v[i]});}
|
||||
else if(v!==null&&typeof v!='undefined')
|
||||
a.push({name:this.name,value:v});});return $.param(a);};$.fn.fieldValue=function(successful){for(var val=[],i=0,max=this.length;i<max;i++){var el=this[i];var v=$.fieldValue(el,successful);if(v===null||typeof v=='undefined'||(v.constructor==Array&&!v.length))
|
||||
continue;v.constructor==Array?$.merge(val,v):val.push(v);}
|
||||
return val;};$.fieldValue=function(el,successful){var n=el.name,t=el.type,tag=el.tagName.toLowerCase();if(typeof successful=='undefined')successful=true;if(successful&&(!n||el.disabled||t=='reset'||t=='button'||(t=='checkbox'||t=='radio')&&!el.checked||(t=='submit'||t=='image')&&el.form&&el.form.clk!=el||tag=='select'&&el.selectedIndex==-1))
|
||||
return null;if(tag=='select'){var index=el.selectedIndex;if(index<0)return null;var a=[],ops=el.options;var one=(t=='select-one');var max=(one?index+1:ops.length);for(var i=(one?index:0);i<max;i++){var op=ops[i];if(op.selected){var v=op.value;if(!v)
|
||||
v=(op.attributes&&op.attributes['value']&&!(op.attributes['value'].specified))?op.text:op.value;if(one)return v;a.push(v);}}
|
||||
return a;}
|
||||
return el.value;};$.fn.clearForm=function(){return this.each(function(){$('input,select,textarea',this).clearFields();});};$.fn.clearFields=$.fn.clearInputs=function(){return this.each(function(){var t=this.type,tag=this.tagName.toLowerCase();if(t=='text'||t=='password'||tag=='textarea')
|
||||
this.value='';else if(t=='checkbox'||t=='radio')
|
||||
this.checked=false;else if(tag=='select')
|
||||
this.selectedIndex=-1;});};$.fn.resetForm=function(){return this.each(function(){if(typeof this.reset=='function'||(typeof this.reset=='object'&&!this.reset.nodeType))
|
||||
this.reset();});};$.fn.enable=function(b){if(b==undefined)b=true;return this.each(function(){this.disabled=!b;});};$.fn.selected=function(select){if(select==undefined)select=true;return this.each(function(){var t=this.type;if(t=='checkbox'||t=='radio')
|
||||
this.checked=select;else if(this.tagName.toLowerCase()=='option'){var $sel=$(this).parent('select');if(select&&$sel[0]&&$sel[0].type=='select-one'){$sel.find('option').selected(false);}
|
||||
this.selected=select;}});};function log(){if($.fn.ajaxSubmit.debug&&window.console&&window.console.log)
|
||||
window.console.log('[jquery.form] '+Array.prototype.join.call(arguments,''));};})(jQuery);
|
||||
|
||||
/* Copyright (c) 2007 Paul Bakaus (paul.bakaus@googlemail.com) and Brandon Aaron (brandon.aaron@gmail.com || http://brandonaaron.net)
|
||||
* Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
|
||||
* and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
|
||||
*
|
||||
* $LastChangedDate: 2007-12-20 08:43:48 -0600 (Thu, 20 Dec 2007) $
|
||||
* $Rev: 4257 $
|
||||
*
|
||||
* Version: 1.2
|
||||
*
|
||||
* Requires: jQuery 1.2+
|
||||
*/
|
||||
(function($){$.dimensions={version:'1.2'};$.each(['Height','Width'],function(i,name){$.fn['inner'+name]=function(){if(!this[0])return;var torl=name=='Height'?'Top':'Left',borr=name=='Height'?'Bottom':'Right';return this.is(':visible')?this[0]['client'+name]:num(this,name.toLowerCase())+num(this,'padding'+torl)+num(this,'padding'+borr);};$.fn['outer'+name]=function(options){if(!this[0])return;var torl=name=='Height'?'Top':'Left',borr=name=='Height'?'Bottom':'Right';options=$.extend({margin:false},options||{});var val=this.is(':visible')?this[0]['offset'+name]:num(this,name.toLowerCase())+num(this,'border'+torl+'Width')+num(this,'border'+borr+'Width')+num(this,'padding'+torl)+num(this,'padding'+borr);return val+(options.margin?(num(this,'margin'+torl)+num(this,'margin'+borr)):0);};});$.each(['Left','Top'],function(i,name){$.fn['scroll'+name]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(name=='Left'?val:$(window)['scrollLeft'](),name=='Top'?val:$(window)['scrollTop']()):this['scroll'+name]=val;}):this[0]==window||this[0]==document?self[(name=='Left'?'pageXOffset':'pageYOffset')]||$.boxModel&&document.documentElement['scroll'+name]||document.body['scroll'+name]:this[0]['scroll'+name];};});$.fn.extend({position:function(){var left=0,top=0,elem=this[0],offset,parentOffset,offsetParent,results;if(elem){offsetParent=this.offsetParent();offset=this.offset();parentOffset=offsetParent.offset();offset.top-=num(elem,'marginTop');offset.left-=num(elem,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&$.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return $(offsetParent);}});function num(el,prop){return parseInt($.curCSS(el.jquery?el[0]:el,prop,true))||0;};})(jQuery);
|
||||
|
||||
/*
|
||||
* jQuery Tooltip plugin 1.3
|
||||
*
|
||||
* http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/
|
||||
* http://docs.jquery.com/Plugins/Tooltip
|
||||
*
|
||||
* Copyright (c) 2006 - 2008 Jörn Zaefferer
|
||||
*
|
||||
* $Id: jquery.tooltip.js 5741 2008-06-21 15:22:16Z joern.zaefferer $
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*/
|
||||
;(function($){var helper={},current,title,tID,IE=$.browser.msie&&/MSIE\s(5\.5|6\.)/.test(navigator.userAgent),track=false;$.tooltip={blocked:false,defaults:{delay:200,fade:false,showURL:true,extraClass:"",top:15,left:15,id:"tooltip"},block:function(){$.tooltip.blocked=!$.tooltip.blocked;}};$.fn.extend({tooltip:function(settings){settings=$.extend({},$.tooltip.defaults,settings);createHelper(settings);return this.each(function(){$.data(this,"tooltip",settings);this.tOpacity=helper.parent.css("opacity");this.tooltipText=this.title;$(this).removeAttr("title");this.alt="";}).mouseover(save).mouseout(hide).click(hide);},fixPNG:IE?function(){return this.each(function(){var image=$(this).css('backgroundImage');if(image.match(/^url\(["']?(.*\.png)["']?\)$/i)){image=RegExp.$1;$(this).css({'backgroundImage':'none','filter':"progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='"+image+"')"}).each(function(){var position=$(this).css('position');if(position!='absolute'&&position!='relative')
|
||||
$(this).css('position','relative');});}});}:function(){return this;},unfixPNG:IE?function(){return this.each(function(){$(this).css({'filter':'',backgroundImage:''});});}:function(){return this;},hideWhenEmpty:function(){return this.each(function(){$(this)[$(this).html()?"show":"hide"]();});},url:function(){return this.attr('href')||this.attr('src');}});function createHelper(settings){if(helper.parent)
|
||||
return;helper.parent=$('<div id="'+settings.id+'"><h3></h3><div class="body"></div><div class="url"></div></div>').appendTo(document.body).hide();if($.fn.bgiframe)
|
||||
helper.parent.bgiframe();helper.title=$('h3',helper.parent);helper.body=$('div.body',helper.parent);helper.url=$('div.url',helper.parent);}
|
||||
function settings(element){return $.data(element,"tooltip");}
|
||||
function handle(event){if(settings(this).delay)
|
||||
tID=setTimeout(show,settings(this).delay);else
|
||||
show();track=!!settings(this).track;$(document.body).bind('mousemove',update);update(event);}
|
||||
function save(){if($.tooltip.blocked||this==current||(!this.tooltipText&&!settings(this).bodyHandler))
|
||||
return;current=this;title=this.tooltipText;if(settings(this).bodyHandler){helper.title.hide();var bodyContent=settings(this).bodyHandler.call(this);if(bodyContent.nodeType||bodyContent.jquery){helper.body.empty().append(bodyContent)}else{helper.body.html(bodyContent);}
|
||||
helper.body.show();}else if(settings(this).showBody){var parts=title.split(settings(this).showBody);helper.title.html(parts.shift()).show();helper.body.empty();for(var i=0,part;(part=parts[i]);i++){if(i>0)
|
||||
helper.body.append("<br/>");helper.body.append(part);}
|
||||
helper.body.hideWhenEmpty();}else{helper.title.html(title).show();helper.body.hide();}
|
||||
if(settings(this).showURL&&$(this).url())
|
||||
helper.url.html($(this).url().replace('http://','')).show();else
|
||||
helper.url.hide();helper.parent.addClass(settings(this).extraClass);if(settings(this).fixPNG)
|
||||
helper.parent.fixPNG();handle.apply(this,arguments);}
|
||||
function show(){tID=null;if((!IE||!$.fn.bgiframe)&&settings(current).fade){if(helper.parent.is(":animated"))
|
||||
helper.parent.stop().show().fadeTo(settings(current).fade,current.tOpacity);else
|
||||
helper.parent.is(':visible')?helper.parent.fadeTo(settings(current).fade,current.tOpacity):helper.parent.fadeIn(settings(current).fade);}else{helper.parent.show();}
|
||||
update();}
|
||||
function update(event){if($.tooltip.blocked)
|
||||
return;if(event&&event.target.tagName=="OPTION"){return;}
|
||||
if(!track&&helper.parent.is(":visible")){$(document.body).unbind('mousemove',update)}
|
||||
if(current==null){$(document.body).unbind('mousemove',update);return;}
|
||||
helper.parent.removeClass("viewport-right").removeClass("viewport-bottom");var left=helper.parent[0].offsetLeft;var top=helper.parent[0].offsetTop;if(event){left=event.pageX+settings(current).left;top=event.pageY+settings(current).top;var right='auto';if(settings(current).positionLeft){right=$(window).width()-left;left='auto';}
|
||||
helper.parent.css({left:left,right:right,top:top});}
|
||||
var v=viewport(),h=helper.parent[0];if(v.x+v.cx<h.offsetLeft+h.offsetWidth){left-=h.offsetWidth+20+settings(current).left;helper.parent.css({left:left+'px'}).addClass("viewport-right");}
|
||||
if(v.y+v.cy<h.offsetTop+h.offsetHeight){top-=h.offsetHeight+20+settings(current).top;helper.parent.css({top:top+'px'}).addClass("viewport-bottom");}}
|
||||
function viewport(){return{x:$(window).scrollLeft(),y:$(window).scrollTop(),cx:$(window).width(),cy:$(window).height()};}
|
||||
function hide(event){if($.tooltip.blocked)
|
||||
return;if(tID)
|
||||
clearTimeout(tID);current=null;var tsettings=settings(this);function complete(){helper.parent.removeClass(tsettings.extraClass).hide().css("opacity","");}
|
||||
if((!IE||!$.fn.bgiframe)&&tsettings.fade){if(helper.parent.is(':animated'))
|
||||
helper.parent.stop().fadeTo(tsettings.fade,0,complete);else
|
||||
helper.parent.stop().fadeOut(tsettings.fade,complete);}else
|
||||
complete();if(settings(this).fixPNG)
|
||||
helper.parent.unfixPNG();}})(jQuery);
|
||||
|
||||
/*
|
||||
* Superfish v1.4.8 - jQuery menu widget
|
||||
* Copyright (c) 2008 Joel Birch
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*
|
||||
* CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
|
||||
*/
|
||||
;(function($){$.fn.superfish=function(op){var sf=$.fn.superfish,c=sf.c,$arrow=$(['<span class="',c.arrowClass,'"> »</span>'].join('')),over=function(){var $$=$(this),menu=getMenu($$);clearTimeout(menu.sfTimer);$$.showSuperfishUl().siblings().hideSuperfishUl();},out=function(){var $$=$(this),menu=getMenu($$),o=sf.op;clearTimeout(menu.sfTimer);menu.sfTimer=setTimeout(function(){o.retainPath=($.inArray($$[0],o.$path)>-1);$$.hideSuperfishUl();if(o.$path.length&&$$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}},o.delay);},getMenu=function($menu){var menu=$menu.parents(['ul.',c.menuClass,':first'].join(''))[0];sf.op=sf.o[menu.serial];return menu;},addArrow=function($a){$a.addClass(c.anchorClass).append($arrow.clone());};return this.each(function(){var s=this.serial=sf.o.length;var o=$.extend({},sf.defaults,op);o.$path=$('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){$(this).addClass([o.hoverClass,c.bcClass].join(' ')).filter('li:has(ul)').removeClass(o.pathClass);});sf.o[s]=sf.op=o;$('li:has(ul)',this)[($.fn.hoverIntent&&!o.disableHI)?'hoverIntent':'hover'](over,out).each(function(){if(o.autoArrows)addArrow($('>a:first-child',this));}).not('.'+c.bcClass).hideSuperfishUl();var $a=$('a',this);$a.each(function(i){var $li=$a.eq(i).parents('li');$a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});});o.onInit.call(this);}).each(function(){var menuClasses=[c.menuClass];if(sf.op.dropShadows&&!($.browser.msie&&$.browser.version<7))menuClasses.push(c.shadowClass);$(this).addClass(menuClasses.join(' '));});};var sf=$.fn.superfish;sf.o=[];sf.op={};sf.IE7fix=function(){var o=sf.op;if($.browser.msie&&$.browser.version>6&&o.dropShadows&&o.animation.opacity!=undefined)
|
||||
this.toggleClass(sf.c.shadowClass+'-off');};sf.c={bcClass:'sf-breadcrumb',menuClass:'sf-js-enabled',anchorClass:'sf-with-ul',arrowClass:'sf-sub-indicator',shadowClass:'sf-shadow'};sf.defaults={hoverClass:'sfHover',pathClass:'overideThisToUse',pathLevels:1,delay:800,animation:{opacity:'show',height:'show'},speed:'normal',autoArrows:false,dropShadows:true,disableHI:false,onInit:function(){},onBeforeShow:function(){},onShow:function(){},onHide:function(){}};$.fn.extend({hideSuperfishUl:function(){var o=sf.op,not=(o.retainPath===true)?o.$path:'';o.retainPath=false;var $ul=$(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass).find('>ul').hide().css('visibility','hidden');o.onHide.call($ul);return this;},showSuperfishUl:function(){var o=sf.op,sh=sf.c.shadowClass+'-off',$ul=this.addClass(o.hoverClass).find('>ul:hidden').css('visibility','visible');sf.IE7fix.call($ul);o.onBeforeShow.call($ul);$ul.animate(o.animation,o.speed,function(){sf.IE7fix.call($ul);o.onShow.call($ul);});return this;}});})(jQuery);
|
||||
|
||||
/*
|
||||
* Supersubs v0.2b - jQuery plugin
|
||||
* Copyright (c) 2008 Joel Birch
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*
|
||||
*
|
||||
* This plugin automatically adjusts submenu widths of suckerfish-style menus to that of
|
||||
* their longest list item children. If you use this, please expect bugs and report them
|
||||
* to the jQuery Google Group with the word 'Superfish' in the subject line.
|
||||
*
|
||||
*/
|
||||
;(function($){$.fn.supersubs=function(options){var opts=$.extend({},$.fn.supersubs.defaults,options);return this.each(function(){var $$=$(this);var o=$.meta?$.extend({},opts,$$.data()):opts;var fontsize=$('<li id="menu-fontsize">—</li>').css({'padding':0,'position':'absolute','top':'-999em','width':'auto'}).appendTo($$).width();$('#menu-fontsize').remove();$ULs=$$.find('ul');$ULs.each(function(i){var $ul=$ULs.eq(i);var $LIs=$ul.children();var $As=$LIs.children('a');var liFloat=$LIs.css('white-space','nowrap').css('float');var emWidth=$ul.add($LIs).add($As).css({'float':'none','width':'auto'}).end().end()[0].clientWidth/fontsize;emWidth+=o.extraWidth;if(emWidth>o.maxWidth){emWidth=o.maxWidth;}
|
||||
else if(emWidth<o.minWidth){emWidth=o.minWidth;}
|
||||
emWidth+='em';$ul.css('width',emWidth);$LIs.css({'float':liFloat,'width':'100%','white-space':'normal'}).each(function(){var $childUl=$('>ul',this);var offsetDirection=$childUl.css('left')!==undefined?'left':'right';$childUl.css(offsetDirection,emWidth);});});});};$.fn.supersubs.defaults={minWidth:9,maxWidth:25,extraWidth:0};})(jQuery);
|
||||
|
||||
/*
|
||||
* HoverIntent
|
||||
*/
|
||||
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}
|
||||
if(p==this){return false;}
|
||||
var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}
|
||||
if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);
|
@ -1,20 +0,0 @@
|
||||
// tooltips ----------------------------------------------------------------
|
||||
$(function() {
|
||||
$('.questionmark_help').tooltip({
|
||||
delay: 0,
|
||||
showURL: false,
|
||||
track: true,
|
||||
showBody: " - ",
|
||||
fade: 250
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$('.preview_board').tooltip({
|
||||
delay: 0,
|
||||
fade: 250,
|
||||
showURL: false,
|
||||
bodyHandler: function() {
|
||||
return $("<img/>").attr("src", this.href);
|
||||
}
|
||||
});
|
||||
});
|
15
doxygen/snippets/qmp_init.c
Normal file
@ -0,0 +1,15 @@
|
||||
QMPool myMemPool1; /* memory pool object #1 (global) */
|
||||
static uint8_t memPoolSto1[512]; /* storage for a memory pool #1 */
|
||||
|
||||
QMPool myMemPool2; /* memory pool object #2 (global) */
|
||||
static uint8_t memPoolSto2[1024]; /* storage for a memory pool #2 */
|
||||
|
||||
QMPool_init(&myMemPool1,
|
||||
memPoolSto1,
|
||||
sizeof(memPoolSto1),
|
||||
10U); /* blocks of 10 bytes each */
|
||||
|
||||
QMPool_init(&myMemPool2,
|
||||
memPoolSto2,
|
||||
sizeof(memPoolSto2),
|
||||
25U); /* blocks of 25 bytes each */
|
12
doxygen/snippets/qmp_use.c
Normal file
@ -0,0 +1,12 @@
|
||||
void *block1 = QMPool_get(&myMemPool1, 0U); /* asserts on empty pool */
|
||||
/* block1 is guaranteed to be not NULL */
|
||||
~ ~ ~
|
||||
QMPool_put(&myMemPool1, block1);
|
||||
|
||||
void *block2 = QMpool_get(&myMemPool2, 5U); /* non-asserting version */
|
||||
if (block2 != (void *)0) { /* allocation succeeded? */
|
||||
~ ~ ~
|
||||
}
|
||||
|
||||
~ ~ ~
|
||||
QMPool_put(&myMemPool2, block2);
|
@ -1,7 +1,7 @@
|
||||
/*****************************************************************************
|
||||
* Product: Simple Blinky example
|
||||
* Last Updated for Version: 5.4.0
|
||||
* Date of the Last Update: 2015-03-16
|
||||
* Last Updated for Version: 5.5.0
|
||||
* Date of the Last Update: 2015-08-30
|
||||
*
|
||||
* Q u a n t u m L e a P s
|
||||
* ---------------------------
|
||||
@ -64,17 +64,6 @@ void Blinky_ctor(void) {
|
||||
QState Blinky_initial(Blinky * const me, QEvt const * const e) {
|
||||
(void)e; /* avoid compiler warning about unused parameter */
|
||||
|
||||
QS_OBJ_DICTIONARY(&l_blinky);
|
||||
QS_OBJ_DICTIONARY(&l_blinky.timeEvt);
|
||||
|
||||
QS_FUN_DICTIONARY(&QHsm_top);
|
||||
QS_FUN_DICTIONARY(&Blinky_initial);
|
||||
QS_FUN_DICTIONARY(&Blinky_off);
|
||||
QS_FUN_DICTIONARY(&Blinky_on);
|
||||
|
||||
QS_SIG_DICTIONARY(DUMMY_SIG, (void *)0); /* global signal */
|
||||
QS_SIG_DICTIONARY(TIMEOUT_SIG, me); /* signal just for Blinky */
|
||||
|
||||
/* arm the time event to expire in half a second and every half second */
|
||||
QTimeEvt_armX(&me->timeEvt, BSP_TICKS_PER_SEC/2U, BSP_TICKS_PER_SEC/2U);
|
||||
return Q_TRAN(&Blinky_off);
|
||||
|
@ -188,6 +188,7 @@
|
||||
</DebugFlag>
|
||||
<LintExecutable></LintExecutable>
|
||||
<LintConfigFile></LintConfigFile>
|
||||
<bLintAuto>0</bLintAuto>
|
||||
</TargetOption>
|
||||
</Target>
|
||||
|
||||
@ -364,6 +365,7 @@
|
||||
</DebugFlag>
|
||||
<LintExecutable></LintExecutable>
|
||||
<LintConfigFile></LintConfigFile>
|
||||
<bLintAuto>0</bLintAuto>
|
||||
</TargetOption>
|
||||
</Target>
|
||||
|
||||
@ -534,6 +536,7 @@
|
||||
</DebugFlag>
|
||||
<LintExecutable></LintExecutable>
|
||||
<LintConfigFile></LintConfigFile>
|
||||
<bLintAuto>0</bLintAuto>
|
||||
</TargetOption>
|
||||
</Target>
|
||||
|
||||
@ -595,6 +598,19 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>1</GroupNumber>
|
||||
<FileNumber>5</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\..\..\..\include\qstamp.c</PathWithFileName>
|
||||
<FilenameWithoutPath>qstamp.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
@ -605,7 +621,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>5</FileNumber>
|
||||
<FileNumber>6</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -618,7 +634,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>6</FileNumber>
|
||||
<FileNumber>7</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -631,7 +647,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>7</FileNumber>
|
||||
<FileNumber>8</FileNumber>
|
||||
<FileType>2</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -644,7 +660,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>8</FileNumber>
|
||||
<FileNumber>9</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -657,7 +673,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>9</FileNumber>
|
||||
<FileNumber>10</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -670,7 +686,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>10</FileNumber>
|
||||
<FileNumber>11</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -683,7 +699,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>11</FileNumber>
|
||||
<FileNumber>12</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -704,7 +720,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>12</FileNumber>
|
||||
<FileNumber>13</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -717,7 +733,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>13</FileNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -730,7 +746,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileNumber>15</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -743,7 +759,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>15</FileNumber>
|
||||
<FileNumber>16</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -756,7 +772,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>16</FileNumber>
|
||||
<FileNumber>17</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -769,7 +785,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>17</FileNumber>
|
||||
<FileNumber>18</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -782,7 +798,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>18</FileNumber>
|
||||
<FileNumber>19</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -795,7 +811,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>19</FileNumber>
|
||||
<FileNumber>20</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -808,7 +824,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>20</FileNumber>
|
||||
<FileNumber>21</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -821,7 +837,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>21</FileNumber>
|
||||
<FileNumber>22</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -834,7 +850,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>22</FileNumber>
|
||||
<FileNumber>23</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -847,7 +863,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>23</FileNumber>
|
||||
<FileNumber>24</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -860,7 +876,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>24</FileNumber>
|
||||
<FileNumber>25</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -873,7 +889,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>25</FileNumber>
|
||||
<FileNumber>26</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -894,7 +910,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>26</FileNumber>
|
||||
<FileNumber>27</FileNumber>
|
||||
<FileType>2</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -915,7 +931,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>27</FileNumber>
|
||||
<FileNumber>28</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -928,7 +944,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>28</FileNumber>
|
||||
<FileNumber>29</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -941,7 +957,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>29</FileNumber>
|
||||
<FileNumber>30</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -952,6 +968,19 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>31</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\..\..\..\source\qs_rx.c</PathWithFileName>
|
||||
<FilenameWithoutPath>qs_rx.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
</ProjectOpt>
|
||||
|
@ -68,9 +68,9 @@
|
||||
<nStopU2X>0</nStopU2X>
|
||||
</BeforeCompile>
|
||||
<BeforeMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg1>1</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg1Name>cmd /c "del .\dbg\qstamp.o"</UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
@ -84,6 +84,8 @@
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopA1X>0</nStopA1X>
|
||||
<nStopA2X>0</nStopA2X>
|
||||
</AfterMake>
|
||||
<SelectedForBatchBuild>1</SelectedForBatchBuild>
|
||||
<SVCSIdString></SVCSIdString>
|
||||
@ -227,6 +229,7 @@
|
||||
<useUlib>0</useUlib>
|
||||
<EndSel>0</EndSel>
|
||||
<uLtcg>0</uLtcg>
|
||||
<nSecure>0</nSecure>
|
||||
<RoSelD>3</RoSelD>
|
||||
<RwSelD>3</RwSelD>
|
||||
<CodeSel>0</CodeSel>
|
||||
@ -361,6 +364,10 @@
|
||||
<uSurpInc>1</uSurpInc>
|
||||
<uC99>0</uC99>
|
||||
<useXO>0</useXO>
|
||||
<v6Lang>0</v6Lang>
|
||||
<v6LangP>0</v6LangP>
|
||||
<vShortEn>0</vShortEn>
|
||||
<vShortWch>0</vShortWch>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define>__FPU_PRESENT</Define>
|
||||
@ -428,6 +435,11 @@
|
||||
<FileType>5</FileType>
|
||||
<FilePath>..\..\blinky.h</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qstamp.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\include\qstamp.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
@ -591,6 +603,10 @@
|
||||
<uSurpInc>2</uSurpInc>
|
||||
<uC99>2</uC99>
|
||||
<useXO>2</useXO>
|
||||
<v6Lang>0</v6Lang>
|
||||
<v6LangP>0</v6LangP>
|
||||
<vShortEn>0</vShortEn>
|
||||
<vShortWch>0</vShortWch>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
@ -633,6 +649,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_fp.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qs_rx.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_rx.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
</Groups>
|
||||
@ -699,9 +720,9 @@
|
||||
<nStopU2X>0</nStopU2X>
|
||||
</BeforeCompile>
|
||||
<BeforeMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg1>1</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg1Name>cmd /c "del .\rel\qstamp.o"</UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
@ -715,6 +736,8 @@
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopA1X>0</nStopA1X>
|
||||
<nStopA2X>0</nStopA2X>
|
||||
</AfterMake>
|
||||
<SelectedForBatchBuild>1</SelectedForBatchBuild>
|
||||
<SVCSIdString></SVCSIdString>
|
||||
@ -858,6 +881,7 @@
|
||||
<useUlib>0</useUlib>
|
||||
<EndSel>0</EndSel>
|
||||
<uLtcg>0</uLtcg>
|
||||
<nSecure>0</nSecure>
|
||||
<RoSelD>3</RoSelD>
|
||||
<RwSelD>3</RwSelD>
|
||||
<CodeSel>0</CodeSel>
|
||||
@ -992,6 +1016,10 @@
|
||||
<uSurpInc>1</uSurpInc>
|
||||
<uC99>0</uC99>
|
||||
<useXO>0</useXO>
|
||||
<v6Lang>0</v6Lang>
|
||||
<v6LangP>0</v6LangP>
|
||||
<vShortEn>0</vShortEn>
|
||||
<vShortWch>0</vShortWch>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define>NDEBUG __FPU_PRESENT</Define>
|
||||
@ -1059,6 +1087,11 @@
|
||||
<FileType>5</FileType>
|
||||
<FilePath>..\..\blinky.h</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qstamp.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\include\qstamp.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
@ -1222,6 +1255,10 @@
|
||||
<uSurpInc>2</uSurpInc>
|
||||
<uC99>2</uC99>
|
||||
<useXO>2</useXO>
|
||||
<v6Lang>0</v6Lang>
|
||||
<v6LangP>0</v6LangP>
|
||||
<vShortEn>0</vShortEn>
|
||||
<vShortWch>0</vShortWch>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
@ -1264,6 +1301,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_fp.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qs_rx.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_rx.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
</Groups>
|
||||
@ -1330,9 +1372,9 @@
|
||||
<nStopU2X>0</nStopU2X>
|
||||
</BeforeCompile>
|
||||
<BeforeMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg1>1</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg1Name>cmd /c "del .\spy\qstamp.o"</UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
@ -1342,10 +1384,12 @@
|
||||
<AfterMake>
|
||||
<RunUserProg1>1</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name>fromelf --bin --output .\dbg\blinky-qk.bin .\dbg\blinky-qk.axf</UserProg1Name>
|
||||
<UserProg1Name>fromelf --bin --output .\spy\blinky-qk.bin .\spy\blinky-qk.axf</UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopA1X>0</nStopA1X>
|
||||
<nStopA2X>0</nStopA2X>
|
||||
</AfterMake>
|
||||
<SelectedForBatchBuild>1</SelectedForBatchBuild>
|
||||
<SVCSIdString></SVCSIdString>
|
||||
@ -1489,6 +1533,7 @@
|
||||
<useUlib>0</useUlib>
|
||||
<EndSel>0</EndSel>
|
||||
<uLtcg>0</uLtcg>
|
||||
<nSecure>0</nSecure>
|
||||
<RoSelD>3</RoSelD>
|
||||
<RwSelD>3</RwSelD>
|
||||
<CodeSel>0</CodeSel>
|
||||
@ -1623,6 +1668,10 @@
|
||||
<uSurpInc>1</uSurpInc>
|
||||
<uC99>0</uC99>
|
||||
<useXO>0</useXO>
|
||||
<v6Lang>0</v6Lang>
|
||||
<v6LangP>0</v6LangP>
|
||||
<vShortEn>0</vShortEn>
|
||||
<vShortWch>0</vShortWch>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define>Q_SPY __FPU_PRESENT</Define>
|
||||
@ -1690,6 +1739,11 @@
|
||||
<FileType>5</FileType>
|
||||
<FilePath>..\..\blinky.h</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qstamp.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\include\qstamp.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
@ -1835,6 +1889,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_fp.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qs_rx.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_rx.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
</Groups>
|
||||
|
@ -1,13 +1,13 @@
|
||||
/*****************************************************************************
|
||||
* Product: "Blinky" example, EK-TM4C123GXL board, preemptive QK kernel
|
||||
* Last Updated for Version: 5.4.0
|
||||
* Date of the Last Update: 2015-04-04
|
||||
* Last Updated for Version: 5.5.0
|
||||
* Date of the Last Update: 2015-08-17
|
||||
*
|
||||
* Q u a n t u m L e a P s
|
||||
* ---------------------------
|
||||
* innovating embedded systems
|
||||
*
|
||||
* Copyright (C) Quantum Leaps, LLC. state-machine.com.
|
||||
* Copyright (C) Quantum Leaps, LLC. All rights reserved.
|
||||
*
|
||||
* This program is open source software: you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as published
|
||||
@ -28,8 +28,8 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Contact information:
|
||||
* Web: www.state-machine.com
|
||||
* Email: info@state-machine.com
|
||||
* http://www.state-machine.com
|
||||
* mailto:info@state-machine.com
|
||||
*****************************************************************************/
|
||||
#include "qpc.h"
|
||||
#include "blinky.h"
|
||||
@ -123,18 +123,15 @@ void BSP_init(void) {
|
||||
FPU->FPCCR &= ~((1U << FPU_FPCCR_ASPEN_Pos) | (1U << FPU_FPCCR_LSPEN_Pos));
|
||||
#endif
|
||||
|
||||
/* enable clock to the peripherals used by the application */
|
||||
SYSCTL->RCGC2 |= (1U << 5); /* enable clock to GPIOF */
|
||||
__NOP(); /* wait after enabling clocks */
|
||||
__NOP();
|
||||
__NOP();
|
||||
/* enable clock for to the peripherals used by this application... */
|
||||
SYSCTL->RCGCGPIO |= (1U << 5); /* enable Run mode for GPIOF */
|
||||
|
||||
/* configure the LEDs and push buttons */
|
||||
GPIOF->DIR |= (LED_RED | LED_GREEN | LED_BLUE);/* set direction: output */
|
||||
GPIOF->DEN |= (LED_RED | LED_GREEN | LED_BLUE); /* digital enable */
|
||||
GPIOF->DATA_Bits[LED_RED] = 0; /* turn the LED off */
|
||||
GPIOF->DATA_Bits[LED_GREEN] = 0; /* turn the LED off */
|
||||
GPIOF->DATA_Bits[LED_BLUE] = 0; /* turn the LED off */
|
||||
GPIOF->DATA_Bits[LED_RED] = 0U; /* turn the LED off */
|
||||
GPIOF->DATA_Bits[LED_GREEN] = 0U; /* turn the LED off */
|
||||
GPIOF->DATA_Bits[LED_BLUE] = 0U; /* turn the LED off */
|
||||
|
||||
/* configure the Buttons */
|
||||
GPIOF->DIR &= ~(BTN_SW1 | BTN_SW2); /* set direction: input */
|
||||
@ -197,7 +194,15 @@ void QK_onIdle(void) {
|
||||
}
|
||||
|
||||
/*..........................................................................*/
|
||||
/* NOTE Q_onAssert() defined in assembly in startup_TM4C123GH6PM.s */
|
||||
void Q_onAssert(char const Q_ROM *module, int loc) {
|
||||
/*
|
||||
* NOTE: add here your application-specific error handling
|
||||
*/
|
||||
(void)module;
|
||||
(void)loc;
|
||||
QS_ASSERTION(module, loc, (uint32_t)10000U); /* report assertion to QS */
|
||||
NVIC_SystemReset();
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
* NOTE00:
|
||||
|
@ -1,7 +1,7 @@
|
||||
##############################################################################
|
||||
# Product: Makefile for Blinky on EK-TM4C123GXL, QK kernel, GNU-ARM
|
||||
# Last Updated for Version: 5.4.1
|
||||
# Date of the Last Update: 2015-05-21
|
||||
# Product: Blinky on EK-TM4C123GXL, QK, GNU-ARM gnutoolchains.com/arm-eabi
|
||||
# Last Updated for Version: 5.5.0
|
||||
# Date of the Last Update: 2015-08-13
|
||||
#
|
||||
# Q u a n t u m L e a P s
|
||||
# ---------------------------
|
||||
@ -28,8 +28,8 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Contact information:
|
||||
# Web: http://www.state-machine.com
|
||||
# Email: info@state-machine.com
|
||||
# http://www.state-machine.com
|
||||
# mailto:info@state-machine.com
|
||||
##############################################################################
|
||||
# examples of invoking this Makefile:
|
||||
# building configurations: Debug (default), Release, and Spy
|
||||
@ -125,6 +125,7 @@ QP_ASMS := \
|
||||
|
||||
QS_SRCS := \
|
||||
qs.c \
|
||||
qs_rx.c \
|
||||
qs_fp.c
|
||||
|
||||
LIB_DIRS :=
|
||||
@ -136,7 +137,7 @@ DEFINES :=
|
||||
# ARM CPU, FPU, and Float-ABI types
|
||||
ARM_CPU := -mcpu=cortex-m4
|
||||
ARM_FPU := -mfpu=vfp
|
||||
FLOAT_ABI := -mfloat-abi=hard
|
||||
FLOAT_ABI := -mfloat-abi=softfp
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# GNU-ARM toolset (NOTE: You need to adjust to your machine)
|
||||
@ -260,7 +261,8 @@ $(TARGET_BIN): $(TARGET_ELF)
|
||||
$(BIN) -O binary $< $@
|
||||
|
||||
$(TARGET_ELF) : $(ASM_OBJS_EXT) $(C_OBJS_EXT) $(CPP_OBJS_EXT)
|
||||
$(LINK) $(LINKFLAGS) -o $@ $^ $(LIBS)
|
||||
$(CC) $(CFLAGS) -c $(QPC)/include/qstamp.c -o $(BIN_DIR)/qstamp.o
|
||||
$(LINK) $(LINKFLAGS) -o $@ $^ $(BIN_DIR)/qstamp.o $(LIBS)
|
||||
|
||||
$(BIN_DIR)/%.d : %.c
|
||||
$(CC) -MM -MT $(@:.d=.o) $(CFLAGS) $< > $@
|
||||
|
@ -12,7 +12,7 @@
|
||||
<name>General</name>
|
||||
<archiveVersion>3</archiveVersion>
|
||||
<data>
|
||||
<version>22</version>
|
||||
<version>24</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
@ -27,11 +27,6 @@
|
||||
<name>ListPath</name>
|
||||
<state>dbg</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Variant</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GEndianMode</name>
|
||||
<state>0</state>
|
||||
@ -58,11 +53,6 @@
|
||||
<name>GOutputBinary</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU</name>
|
||||
<version>5</version>
|
||||
<state>7</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGCoreOrChip</name>
|
||||
<state>1</state>
|
||||
@ -87,7 +77,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>OGLastSavedByProductVersion</name>
|
||||
<state>7.40.2.8567</state>
|
||||
<state>7.40.3.8937</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralEnableMisra</name>
|
||||
@ -135,14 +125,9 @@
|
||||
<name>RTConfigPath2</name>
|
||||
<state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GBECoreSlave</name>
|
||||
<version>21</version>
|
||||
<version>22</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
@ -157,6 +142,34 @@
|
||||
<name>GRuntimeLibThreads</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CoreVariant</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUDeviceSlave</name>
|
||||
<state>TM4C123GH6PM TexasInstruments TM4C123GH6PM</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU2</name>
|
||||
<version>0</version>
|
||||
<state>4</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NrRegs</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NEON</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave2</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
@ -629,7 +642,7 @@
|
||||
<name>BUILDACTION</name>
|
||||
<archiveVersion>1</archiveVersion>
|
||||
<data>
|
||||
<prebuild></prebuild>
|
||||
<prebuild>cmd /c "if exist $OBJ_DIR$\qstamp.o del $OBJ_DIR$\qstamp.o"</prebuild>
|
||||
<postbuild></postbuild>
|
||||
</data>
|
||||
</settings>
|
||||
@ -965,7 +978,7 @@
|
||||
<name>General</name>
|
||||
<archiveVersion>3</archiveVersion>
|
||||
<data>
|
||||
<version>22</version>
|
||||
<version>24</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>0</debug>
|
||||
<option>
|
||||
@ -980,11 +993,6 @@
|
||||
<name>ListPath</name>
|
||||
<state>rel</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Variant</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GEndianMode</name>
|
||||
<state>0</state>
|
||||
@ -1011,11 +1019,6 @@
|
||||
<name>GOutputBinary</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU</name>
|
||||
<version>5</version>
|
||||
<state>7</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGCoreOrChip</name>
|
||||
<state>1</state>
|
||||
@ -1040,7 +1043,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>OGLastSavedByProductVersion</name>
|
||||
<state>7.40.2.8567</state>
|
||||
<state>7.40.3.8937</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralEnableMisra</name>
|
||||
@ -1088,14 +1091,9 @@
|
||||
<name>RTConfigPath2</name>
|
||||
<state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GBECoreSlave</name>
|
||||
<version>21</version>
|
||||
<version>22</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
@ -1110,6 +1108,34 @@
|
||||
<name>GRuntimeLibThreads</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CoreVariant</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUDeviceSlave</name>
|
||||
<state>TM4C123GH6PM TexasInstruments TM4C123GH6PM</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU2</name>
|
||||
<version>0</version>
|
||||
<state>4</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NrRegs</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NEON</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave2</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
@ -1582,7 +1608,7 @@
|
||||
<name>BUILDACTION</name>
|
||||
<archiveVersion>1</archiveVersion>
|
||||
<data>
|
||||
<prebuild></prebuild>
|
||||
<prebuild>cmd /c "if exist $OBJ_DIR$\qstamp.o del $OBJ_DIR$\qstamp.o"</prebuild>
|
||||
<postbuild></postbuild>
|
||||
</data>
|
||||
</settings>
|
||||
@ -1918,7 +1944,7 @@
|
||||
<name>General</name>
|
||||
<archiveVersion>3</archiveVersion>
|
||||
<data>
|
||||
<version>22</version>
|
||||
<version>24</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
@ -1933,11 +1959,6 @@
|
||||
<name>ListPath</name>
|
||||
<state>spy</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Variant</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GEndianMode</name>
|
||||
<state>0</state>
|
||||
@ -1964,11 +1985,6 @@
|
||||
<name>GOutputBinary</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU</name>
|
||||
<version>5</version>
|
||||
<state>7</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGCoreOrChip</name>
|
||||
<state>1</state>
|
||||
@ -1993,7 +2009,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>OGLastSavedByProductVersion</name>
|
||||
<state>7.40.2.8567</state>
|
||||
<state>7.40.3.8937</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralEnableMisra</name>
|
||||
@ -2041,14 +2057,9 @@
|
||||
<name>RTConfigPath2</name>
|
||||
<state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GBECoreSlave</name>
|
||||
<version>21</version>
|
||||
<version>22</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
@ -2063,6 +2074,34 @@
|
||||
<name>GRuntimeLibThreads</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CoreVariant</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUDeviceSlave</name>
|
||||
<state>TM4C123GH6PM TexasInstruments TM4C123GH6PM</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU2</name>
|
||||
<version>0</version>
|
||||
<state>4</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NrRegs</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NEON</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave2</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
@ -2535,7 +2574,7 @@
|
||||
<name>BUILDACTION</name>
|
||||
<archiveVersion>1</archiveVersion>
|
||||
<data>
|
||||
<prebuild></prebuild>
|
||||
<prebuild>cmd /c "if exist $OBJ_DIR$\qstamp.o del $OBJ_DIR$\qstamp.o"</prebuild>
|
||||
<postbuild></postbuild>
|
||||
</data>
|
||||
</settings>
|
||||
@ -2878,6 +2917,9 @@
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\main.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\include\qstamp.c</name>
|
||||
</file>
|
||||
</group>
|
||||
<group>
|
||||
<name>ek-tm4c123gxl</name>
|
||||
@ -2966,6 +3008,9 @@
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\source\qs_pkg.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\source\qs_rx.c</name>
|
||||
</file>
|
||||
</group>
|
||||
</project>
|
||||
|
||||
|
@ -114,10 +114,6 @@
|
||||
<pMon>BIN\lmidk-agdi.dll</pMon>
|
||||
</DebugOpt>
|
||||
<TargetDriverDllRegistry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>DLGUARM</Key>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>ARMRTXEVENTFLAGS</Key>
|
||||
@ -599,6 +595,19 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>1</GroupNumber>
|
||||
<FileNumber>5</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\..\..\..\include\qstamp.c</PathWithFileName>
|
||||
<FilenameWithoutPath>qstamp.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
@ -609,7 +618,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>5</FileNumber>
|
||||
<FileNumber>6</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -622,7 +631,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>6</FileNumber>
|
||||
<FileNumber>7</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -635,7 +644,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>7</FileNumber>
|
||||
<FileNumber>8</FileNumber>
|
||||
<FileType>2</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -648,7 +657,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>8</FileNumber>
|
||||
<FileNumber>9</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -661,7 +670,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>9</FileNumber>
|
||||
<FileNumber>10</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -674,7 +683,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>10</FileNumber>
|
||||
<FileNumber>11</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -687,7 +696,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>11</FileNumber>
|
||||
<FileNumber>12</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -708,7 +717,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>12</FileNumber>
|
||||
<FileNumber>13</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -721,7 +730,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>13</FileNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -734,7 +743,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileNumber>15</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -747,7 +756,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>15</FileNumber>
|
||||
<FileNumber>16</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -760,7 +769,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>16</FileNumber>
|
||||
<FileNumber>17</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -773,7 +782,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>17</FileNumber>
|
||||
<FileNumber>18</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -786,7 +795,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>18</FileNumber>
|
||||
<FileNumber>19</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -799,7 +808,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>19</FileNumber>
|
||||
<FileNumber>20</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -812,7 +821,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>20</FileNumber>
|
||||
<FileNumber>21</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -825,7 +834,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>21</FileNumber>
|
||||
<FileNumber>22</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -838,7 +847,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>22</FileNumber>
|
||||
<FileNumber>23</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -851,7 +860,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>23</FileNumber>
|
||||
<FileNumber>24</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -864,7 +873,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>24</FileNumber>
|
||||
<FileNumber>25</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -893,7 +902,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>25</FileNumber>
|
||||
<FileNumber>26</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -906,7 +915,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>26</FileNumber>
|
||||
<FileNumber>27</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -919,7 +928,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>27</FileNumber>
|
||||
<FileNumber>28</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -930,6 +939,19 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>29</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\..\..\..\source\qs_rx.c</PathWithFileName>
|
||||
<FilenameWithoutPath>qs_rx.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
</ProjectOpt>
|
||||
|
@ -68,9 +68,9 @@
|
||||
<nStopU2X>0</nStopU2X>
|
||||
</BeforeCompile>
|
||||
<BeforeMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg1>1</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg1Name>cmd /c "del .\dbg\qstamp.o"</UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
@ -428,6 +428,11 @@
|
||||
<FileType>5</FileType>
|
||||
<FilePath>..\..\blinky.h</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qstamp.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\include\qstamp.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
@ -621,6 +626,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_fp.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qs_rx.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_rx.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
</Groups>
|
||||
@ -687,9 +697,9 @@
|
||||
<nStopU2X>0</nStopU2X>
|
||||
</BeforeCompile>
|
||||
<BeforeMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg1>1</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg1Name>cmd /c "del .\rel\qstamp.o"</UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
@ -1047,6 +1057,11 @@
|
||||
<FileType>5</FileType>
|
||||
<FilePath>..\..\blinky.h</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qstamp.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\include\qstamp.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
@ -1240,6 +1255,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_fp.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qs_rx.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_rx.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
</Groups>
|
||||
@ -1306,9 +1326,9 @@
|
||||
<nStopU2X>0</nStopU2X>
|
||||
</BeforeCompile>
|
||||
<BeforeMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg1>1</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg1Name>cmd /c "del .\spy\qstamp.o"</UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
@ -1318,7 +1338,7 @@
|
||||
<AfterMake>
|
||||
<RunUserProg1>1</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name>fromelf --bin --output .\dbg\blinky-qv.bin .\dbg\blinky-qv.axf</UserProg1Name>
|
||||
<UserProg1Name>fromelf --bin --output .\spy\blinky-qv.bin .\spy\blinky-qv.axf</UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
@ -1666,6 +1686,11 @@
|
||||
<FileType>5</FileType>
|
||||
<FilePath>..\..\blinky.h</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qstamp.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\include\qstamp.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
@ -1799,6 +1824,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_fp.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qs_rx.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_rx.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
</Groups>
|
||||
|
@ -1,13 +1,13 @@
|
||||
/*****************************************************************************
|
||||
* Product: "Blinky" on EK-TM4C123GXL board, cooperative Vanilla kernel
|
||||
* Last Updated for Version: 5.4.0
|
||||
* Date of the Last Update: 2015-04-04
|
||||
* Last Updated for Version: 5.5.0
|
||||
* Date of the Last Update: 2015-08-17
|
||||
*
|
||||
* Q u a n t u m L e a P s
|
||||
* ---------------------------
|
||||
* innovating embedded systems
|
||||
*
|
||||
* Copyright (C) Quantum Leaps, LLC. state-machine.com.
|
||||
* Copyright (C) Quantum Leaps, LLC. All rights reserved.
|
||||
*
|
||||
* This program is open source software: you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as published
|
||||
@ -28,8 +28,8 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Contact information:
|
||||
* Web: www.state-machine.com
|
||||
* Email: info@state-machine.com
|
||||
* http://www.state-machine.com
|
||||
* mailto:info@state-machine.com
|
||||
*****************************************************************************/
|
||||
#include "qpc.h"
|
||||
#include "blinky.h"
|
||||
@ -86,7 +86,6 @@ static uint32_t const l_led_pin[] = {
|
||||
/* ISRs used in this project ===============================================*/
|
||||
void SysTick_Handler(void) {
|
||||
QF_TICK_X(0U, (void *)0); /* process time events for rate 0 */
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -109,18 +108,15 @@ void BSP_init(void) {
|
||||
*/
|
||||
FPU->FPCCR &= ~((1U << FPU_FPCCR_ASPEN_Pos) | (1U << FPU_FPCCR_LSPEN_Pos));
|
||||
|
||||
/* enable clock to the peripherals used by the application */
|
||||
SYSCTL->RCGC2 |= (1U << 5); /* enable clock to GPIOF */
|
||||
__NOP(); /* wait after enabling clocks */
|
||||
__NOP();
|
||||
__NOP();
|
||||
/* enable clock for to the peripherals used by this application... */
|
||||
SYSCTL->RCGCGPIO |= (1U << 5); /* enable Run mode for GPIOF */
|
||||
|
||||
/* configure the LEDs and push buttons */
|
||||
GPIOF->DIR |= (LED_RED | LED_GREEN | LED_BLUE);/* set direction: output */
|
||||
GPIOF->DEN |= (LED_RED | LED_GREEN | LED_BLUE); /* digital enable */
|
||||
GPIOF->DATA_Bits[LED_RED] = 0; /* turn the LED off */
|
||||
GPIOF->DATA_Bits[LED_GREEN] = 0; /* turn the LED off */
|
||||
GPIOF->DATA_Bits[LED_BLUE] = 0; /* turn the LED off */
|
||||
GPIOF->DATA_Bits[LED_RED] = 0U; /* turn the LED off */
|
||||
GPIOF->DATA_Bits[LED_GREEN] = 0U; /* turn the LED off */
|
||||
GPIOF->DATA_Bits[LED_BLUE] = 0U; /* turn the LED off */
|
||||
|
||||
/* configure the Buttons */
|
||||
GPIOF->DIR &= ~(BTN_SW1 | BTN_SW2); /* set direction: input */
|
||||
@ -181,7 +177,16 @@ void QV_onIdle(void) { /* CATION: called with interrupts DISABLED, NOTE01 */
|
||||
}
|
||||
|
||||
/*..........................................................................*/
|
||||
/* NOTE Q_onAssert() defined in assembly in startup_TM4C123GH6PM.s */
|
||||
void Q_onAssert(char const *module, int loc) {
|
||||
/*
|
||||
* NOTE: add here your application-specific error handling
|
||||
*/
|
||||
(void)module;
|
||||
(void)loc;
|
||||
QS_ASSERTION(module, loc, (uint32_t)10000U); /* report assertion to QS */
|
||||
NVIC_SystemReset();
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* NOTE00:
|
||||
|
@ -1,7 +1,7 @@
|
||||
##############################################################################
|
||||
# Product: Makefile for Blinky on EK-TM4C123GXL, QV kernel, GNU-ARM
|
||||
# Last Updated for Version: 5.4.1
|
||||
# Date of the Last Update: 2015-05-21
|
||||
# Last Updated for Version: 5.5.0
|
||||
# Date of the Last Update: 2015-08-13
|
||||
#
|
||||
# Q u a n t u m L e a P s
|
||||
# ---------------------------
|
||||
@ -28,8 +28,8 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Contact information:
|
||||
# Web: http://www.state-machine.com
|
||||
# Email: info@state-machine.com
|
||||
# http://www.state-machine.com
|
||||
# mailto:info@state-machine.com
|
||||
##############################################################################
|
||||
# examples of invoking this Makefile:
|
||||
# building configurations: Debug (default), Release, and Spy
|
||||
@ -123,6 +123,7 @@ QP_ASMS :=
|
||||
|
||||
QS_SRCS := \
|
||||
qs.c \
|
||||
qs_rx.c \
|
||||
qs_fp.c
|
||||
|
||||
LIB_DIRS :=
|
||||
@ -134,7 +135,7 @@ DEFINES :=
|
||||
# ARM CPU, FPU, and Float-ABI types
|
||||
ARM_CPU := -mcpu=cortex-m4
|
||||
ARM_FPU := -mfpu=vfp
|
||||
FLOAT_ABI := -mfloat-abi=hard
|
||||
FLOAT_ABI := -mfloat-abi=softfp
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# GNU-ARM toolset (NOTE: You need to adjust to your machine)
|
||||
@ -258,7 +259,8 @@ $(TARGET_BIN): $(TARGET_ELF)
|
||||
$(BIN) -O binary $< $@
|
||||
|
||||
$(TARGET_ELF) : $(ASM_OBJS_EXT) $(C_OBJS_EXT) $(CPP_OBJS_EXT)
|
||||
$(LINK) $(LINKFLAGS) -o $@ $^ $(LIBS)
|
||||
$(CC) $(CFLAGS) -c $(QPC)/include/qstamp.c -o $(BIN_DIR)/qstamp.o
|
||||
$(LINK) $(LINKFLAGS) -o $@ $^ $(BIN_DIR)/qstamp.o $(LIBS)
|
||||
|
||||
$(BIN_DIR)/%.d : %.c
|
||||
$(CC) -MM -MT $(@:.d=.o) $(CFLAGS) $< > $@
|
||||
|
@ -12,7 +12,7 @@
|
||||
<name>General</name>
|
||||
<archiveVersion>3</archiveVersion>
|
||||
<data>
|
||||
<version>22</version>
|
||||
<version>24</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
@ -27,11 +27,6 @@
|
||||
<name>ListPath</name>
|
||||
<state>dbg</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Variant</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GEndianMode</name>
|
||||
<state>0</state>
|
||||
@ -58,11 +53,6 @@
|
||||
<name>GOutputBinary</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU</name>
|
||||
<version>5</version>
|
||||
<state>7</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGCoreOrChip</name>
|
||||
<state>1</state>
|
||||
@ -87,7 +77,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>OGLastSavedByProductVersion</name>
|
||||
<state>7.40.2.8567</state>
|
||||
<state>7.40.3.8937</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralEnableMisra</name>
|
||||
@ -135,14 +125,9 @@
|
||||
<name>RTConfigPath2</name>
|
||||
<state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GBECoreSlave</name>
|
||||
<version>21</version>
|
||||
<version>22</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
@ -157,6 +142,34 @@
|
||||
<name>GRuntimeLibThreads</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CoreVariant</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUDeviceSlave</name>
|
||||
<state>TM4C123GH6PM TexasInstruments TM4C123GH6PM</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU2</name>
|
||||
<version>0</version>
|
||||
<state>4</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NrRegs</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NEON</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave2</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
@ -629,7 +642,7 @@
|
||||
<name>BUILDACTION</name>
|
||||
<archiveVersion>1</archiveVersion>
|
||||
<data>
|
||||
<prebuild></prebuild>
|
||||
<prebuild>cmd /c "if exist $OBJ_DIR$\qstamp.o del $OBJ_DIR$\qstamp.o"</prebuild>
|
||||
<postbuild></postbuild>
|
||||
</data>
|
||||
</settings>
|
||||
@ -965,7 +978,7 @@
|
||||
<name>General</name>
|
||||
<archiveVersion>3</archiveVersion>
|
||||
<data>
|
||||
<version>22</version>
|
||||
<version>24</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>0</debug>
|
||||
<option>
|
||||
@ -980,11 +993,6 @@
|
||||
<name>ListPath</name>
|
||||
<state>rel</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Variant</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GEndianMode</name>
|
||||
<state>0</state>
|
||||
@ -1011,11 +1019,6 @@
|
||||
<name>GOutputBinary</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU</name>
|
||||
<version>5</version>
|
||||
<state>7</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGCoreOrChip</name>
|
||||
<state>1</state>
|
||||
@ -1040,7 +1043,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>OGLastSavedByProductVersion</name>
|
||||
<state>7.40.2.8567</state>
|
||||
<state>7.40.3.8937</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralEnableMisra</name>
|
||||
@ -1088,14 +1091,9 @@
|
||||
<name>RTConfigPath2</name>
|
||||
<state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GBECoreSlave</name>
|
||||
<version>21</version>
|
||||
<version>22</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
@ -1110,6 +1108,34 @@
|
||||
<name>GRuntimeLibThreads</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CoreVariant</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUDeviceSlave</name>
|
||||
<state>TM4C123GH6PM TexasInstruments TM4C123GH6PM</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU2</name>
|
||||
<version>0</version>
|
||||
<state>4</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NrRegs</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NEON</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave2</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
@ -1582,7 +1608,7 @@
|
||||
<name>BUILDACTION</name>
|
||||
<archiveVersion>1</archiveVersion>
|
||||
<data>
|
||||
<prebuild></prebuild>
|
||||
<prebuild>cmd /c "if exist $OBJ_DIR$\qstamp.o del $OBJ_DIR$\qstamp.o"</prebuild>
|
||||
<postbuild></postbuild>
|
||||
</data>
|
||||
</settings>
|
||||
@ -1918,7 +1944,7 @@
|
||||
<name>General</name>
|
||||
<archiveVersion>3</archiveVersion>
|
||||
<data>
|
||||
<version>22</version>
|
||||
<version>24</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
@ -1933,11 +1959,6 @@
|
||||
<name>ListPath</name>
|
||||
<state>spy</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Variant</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GEndianMode</name>
|
||||
<state>0</state>
|
||||
@ -1964,11 +1985,6 @@
|
||||
<name>GOutputBinary</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU</name>
|
||||
<version>5</version>
|
||||
<state>7</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGCoreOrChip</name>
|
||||
<state>1</state>
|
||||
@ -1993,7 +2009,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>OGLastSavedByProductVersion</name>
|
||||
<state>7.40.2.8567</state>
|
||||
<state>7.40.3.8937</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralEnableMisra</name>
|
||||
@ -2041,14 +2057,9 @@
|
||||
<name>RTConfigPath2</name>
|
||||
<state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GBECoreSlave</name>
|
||||
<version>21</version>
|
||||
<version>22</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
@ -2063,6 +2074,34 @@
|
||||
<name>GRuntimeLibThreads</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CoreVariant</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUDeviceSlave</name>
|
||||
<state>TM4C123GH6PM TexasInstruments TM4C123GH6PM</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU2</name>
|
||||
<version>0</version>
|
||||
<state>4</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NrRegs</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NEON</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave2</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
@ -2535,7 +2574,7 @@
|
||||
<name>BUILDACTION</name>
|
||||
<archiveVersion>1</archiveVersion>
|
||||
<data>
|
||||
<prebuild></prebuild>
|
||||
<prebuild>cmd /c "if exist $OBJ_DIR$\qstamp.o del $OBJ_DIR$\qstamp.o"</prebuild>
|
||||
<postbuild></postbuild>
|
||||
</data>
|
||||
</settings>
|
||||
@ -2878,6 +2917,9 @@
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\main.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\include\qstamp.c</name>
|
||||
</file>
|
||||
</group>
|
||||
<group>
|
||||
<name>ek-tm4c123gxl</name>
|
||||
@ -2960,6 +3002,9 @@
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\source\qs_pkg.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\source\qs_rx.c</name>
|
||||
</file>
|
||||
</group>
|
||||
</project>
|
||||
|
||||
|
@ -28,8 +28,8 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Contact information:
|
||||
# Web: www.state-machine.com
|
||||
# Email: info@state-machine.com
|
||||
# http://www.state-machine.com
|
||||
# mailto:info@state-machine.com
|
||||
##############################################################################
|
||||
# examples of invoking this Makefile:
|
||||
# building configurations: Debug (default), Release, and Spy
|
||||
@ -215,7 +215,8 @@ $(TARGET_BIN): $(TARGET_EXE)
|
||||
$(BIN) -O binary $< $@
|
||||
|
||||
$(TARGET_EXE) : $(C_OBJS_EXT) $(CPP_OBJS_EXT) $(RC_OBJS_EXT)
|
||||
$(LINK) $(LINKFLAGS) $(LIB_DIRS) -o $@ $^ $(LIBS)
|
||||
$(CC) $(CFLAGS) -c $(QPC)/include/qstamp.c -o $(BIN_DIR)/qstamp.o
|
||||
$(LINK) $(LINKFLAGS) $(LIB_DIRS) -o $@ $^ $(BIN_DIR)/qstamp.o $(LIBS)
|
||||
|
||||
$(BIN_DIR)/%.d : %.cpp
|
||||
$(CPP) -MM -MT $(@:.d=.o) $(CPPFLAGS) $< > $@
|
||||
|
@ -1,7 +1,7 @@
|
||||
##############################################################################
|
||||
# Product: Makefile for QP/C, Blinky console, Win32, MinGW
|
||||
# Last updated for version 5.4.2
|
||||
# Last updated on 2015-06-05
|
||||
# Last Updated for Version: 5.5.0
|
||||
# Date of the Last Update: 2015-08-13
|
||||
#
|
||||
# Q u a n t u m L e a P s
|
||||
# ---------------------------
|
||||
@ -28,8 +28,8 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Contact information:
|
||||
# Web: www.state-machine.com
|
||||
# Email: info@state-machine.com
|
||||
# http://www.state-machine.com
|
||||
# mailto:info@state-machine.com
|
||||
##############################################################################
|
||||
# examples of invoking this Makefile:
|
||||
# building configurations: Debug (default), Release, and Spy
|
||||
@ -215,7 +215,8 @@ $(TARGET_BIN): $(TARGET_EXE)
|
||||
$(BIN) -O binary $< $@
|
||||
|
||||
$(TARGET_EXE) : $(C_OBJS_EXT) $(CPP_OBJS_EXT) $(RC_OBJS_EXT)
|
||||
$(LINK) $(LINKFLAGS) $(LIB_DIRS) -o $@ $^ $(LIBS)
|
||||
$(CC) $(CFLAGS) -c $(QPC)/include/qstamp.c -o $(BIN_DIR)/qstamp.o
|
||||
$(LINK) $(LINKFLAGS) $(LIB_DIRS) -o $@ $^ $(BIN_DIR)/qstamp.o $(LIBS)
|
||||
|
||||
$(BIN_DIR)/%.d : %.cpp
|
||||
$(CPP) -MM -MT $(@:.d=.o) $(CPPFLAGS) $< > $@
|
||||
|
58
examples/arm-cm/dpp_ek-tm4c123gxl/.dpp
Normal file
@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<session version="3.3.0">
|
||||
<item name="license">GPL</item>
|
||||
<group name="locked"/>
|
||||
<group name="settings">
|
||||
<item name="tabs">1</item>
|
||||
<item name="windows">0</item>
|
||||
<item name="grid">3</item>
|
||||
</group>
|
||||
<group name="windows"/>
|
||||
<group name="search">
|
||||
<item name="options">4129280</item>
|
||||
<item name="replace">0</item>
|
||||
</group>
|
||||
<group name="vars"/>
|
||||
<group name="tools">
|
||||
<group name="tool">
|
||||
<item name="icon">0</item>
|
||||
<item name="title"></item>
|
||||
<item name="command"></item>
|
||||
<item name="args"></item>
|
||||
<item name="initial"></item>
|
||||
<item name="options">0</item>
|
||||
</group>
|
||||
<group name="tool">
|
||||
<item name="icon">0</item>
|
||||
<item name="title"></item>
|
||||
<item name="command"></item>
|
||||
<item name="args"></item>
|
||||
<item name="initial"></item>
|
||||
<item name="options">0</item>
|
||||
</group>
|
||||
<group name="tool">
|
||||
<item name="icon">0</item>
|
||||
<item name="title"></item>
|
||||
<item name="command"></item>
|
||||
<item name="args"></item>
|
||||
<item name="initial"></item>
|
||||
<item name="options">0</item>
|
||||
</group>
|
||||
<group name="tool">
|
||||
<item name="icon">0</item>
|
||||
<item name="title"></item>
|
||||
<item name="command"></item>
|
||||
<item name="args"></item>
|
||||
<item name="initial"></item>
|
||||
<item name="options">0</item>
|
||||
</group>
|
||||
<group name="tool">
|
||||
<item name="icon">0</item>
|
||||
<item name="title"></item>
|
||||
<item name="command"></item>
|
||||
<item name="args"></item>
|
||||
<item name="initial"></item>
|
||||
<item name="options">0</item>
|
||||
</group>
|
||||
</group>
|
||||
</session>
|
@ -1,75 +1,85 @@
|
||||
|
||||
--- Module: D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c (C)
|
||||
"D:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 46 8 Note 950: Non-ANSI reserved word or construct: 'inline' [MISRA 2004 Rule 1.1, required], [MISRA 2004 Rule 2.2, required]
|
||||
"D:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 46 15 Warning 618: Storage class specified after a type
|
||||
"D:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 46 15 Note 963: Qualifier const or volatile precedes a type; use +fqb to reverse the test
|
||||
"D:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 46 42 Note 960: Violates MISRA 2004 Required Rule 8.5, object/function definition in header file: 'QK_get_IPSR'
|
||||
"D:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 47 21 Note 960: Violates MISRA 2004 Required Rule 8.5, object/function definition in header file: 'regIPSR'
|
||||
"D:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 48 52 Note 960: Violates MISRA 2004 Required Rule 14.3, null statement not in line by itself
|
||||
"D:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 49 19 Warning 530: Symbol 'regIPSR' (line 47) not initialized [MISRA 2004 Rule 9.1, required]
|
||||
"D:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 47 1 Info 830: Location cited in prior message
|
||||
"D:\qp\qpc\ports\arm-cm\qk\gnu\qs_port.h" 59 10 Warning 537: Repeated include file 'D:\qp\qpc\ports\arm-cm\qk\gnu\qf_port.h'
|
||||
--- Module: C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c (C)
|
||||
"C:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 46 8 Note 950: Non-ANSI reserved word or construct: 'inline' [MISRA 2004 Rule 1.1, required], [MISRA 2004 Rule 2.2, required]
|
||||
"C:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 46 15 Warning 618: Storage class specified after a type
|
||||
"C:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 46 15 Note 963: Qualifier const or volatile precedes a type; use +fqb to reverse the test
|
||||
"C:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 46 42 Note 960: Violates MISRA 2004 Required Rule 8.5, object/function definition in header file: 'QK_get_IPSR'
|
||||
"C:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 47 21 Note 960: Violates MISRA 2004 Required Rule 8.5, object/function definition in header file: 'regIPSR'
|
||||
"C:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 48 52 Note 960: Violates MISRA 2004 Required Rule 14.3, null statement not in line by itself
|
||||
"C:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 49 19 Warning 530: Symbol 'regIPSR' (line 47) not initialized [MISRA 2004 Rule 9.1, required]
|
||||
"C:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 47 1 Info 830: Location cited in prior message
|
||||
"C:\qp\qpc\ports\arm-cm\qk\gnu\qs_port.h" 59 10 Warning 537: Repeated include file 'C:\qp\qpc\ports\arm-cm\qk\gnu\qf_port.h'
|
||||
|
||||
--- Module: D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\table.c (C)
|
||||
"D:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 46 8 Note 950: Non-ANSI reserved word or construct: 'inline' [MISRA 2004 Rule 1.1, required], [MISRA 2004 Rule 2.2, required]
|
||||
"D:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 46 15 Warning 618: Storage class specified after a type
|
||||
"D:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 46 15 Note 963: Qualifier const or volatile precedes a type; use +fqb to reverse the test
|
||||
"D:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 46 42 Note 960: Violates MISRA 2004 Required Rule 8.5, object/function definition in header file: 'QK_get_IPSR'
|
||||
"D:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 47 21 Note 960: Violates MISRA 2004 Required Rule 8.5, object/function definition in header file: 'regIPSR'
|
||||
"D:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 48 52 Note 960: Violates MISRA 2004 Required Rule 14.3, null statement not in line by itself
|
||||
"D:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 49 19 Warning 530: Symbol 'regIPSR' (line 47) not initialized [MISRA 2004 Rule 9.1, required]
|
||||
"D:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 47 1 Info 830: Location cited in prior message
|
||||
"D:\qp\qpc\ports\arm-cm\qk\gnu\qs_port.h" 59 10 Warning 537: Repeated include file 'D:\qp\qpc\ports\arm-cm\qk\gnu\qf_port.h'
|
||||
"D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\table.c" 148 21 Warning 527: Unreachable code at token 'status_' [MISRA 2004 Rule 14.1, required]
|
||||
"D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\table.c" 257 21 Warning 527: Unreachable code at token 'status_' [MISRA 2004 Rule 14.1, required]
|
||||
"D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\dpp.h" 56 1 Note 960: Violates MISRA 2004 Required Rule 8.7, could define variable at block scope: 'AO_Table' at location line 56, file D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\dpp.h, module D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c
|
||||
--- Module: C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\table.c (C)
|
||||
"C:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 46 8 Note 950: Non-ANSI reserved word or construct: 'inline' [MISRA 2004 Rule 1.1, required], [MISRA 2004 Rule 2.2, required]
|
||||
"C:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 46 15 Warning 618: Storage class specified after a type
|
||||
"C:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 46 15 Note 963: Qualifier const or volatile precedes a type; use +fqb to reverse the test
|
||||
"C:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 46 42 Note 960: Violates MISRA 2004 Required Rule 8.5, object/function definition in header file: 'QK_get_IPSR'
|
||||
"C:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 47 21 Note 960: Violates MISRA 2004 Required Rule 8.5, object/function definition in header file: 'regIPSR'
|
||||
"C:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 48 52 Note 960: Violates MISRA 2004 Required Rule 14.3, null statement not in line by itself
|
||||
"C:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 49 19 Warning 530: Symbol 'regIPSR' (line 47) not initialized [MISRA 2004 Rule 9.1, required]
|
||||
"C:\qp\qpc\ports\arm-cm\qk\gnu\qk_port.h" 47 1 Info 830: Location cited in prior message
|
||||
"C:\qp\qpc\ports\arm-cm\qk\gnu\qs_port.h" 59 10 Warning 537: Repeated include file 'C:\qp\qpc\ports\arm-cm\qk\gnu\qf_port.h'
|
||||
"C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\table.c" 148 21 Warning 527: Unreachable code at token 'status_' [MISRA 2004 Rule 14.1, required]
|
||||
"C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\table.c" 257 21 Warning 527: Unreachable code at token 'status_' [MISRA 2004 Rule 14.1, required]
|
||||
"C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\dpp.h" 56 1 Note 960: Violates MISRA 2004 Required Rule 8.7, could define variable at block scope: 'AO_Table' at location line 56, file C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\dpp.h, module C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c
|
||||
|
||||
/// Start of Pass 2 ///
|
||||
|
||||
--- Module: D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c (C)
|
||||
--- Module: C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c (C)
|
||||
|
||||
--- Module: D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\table.c (C)
|
||||
--- Module: C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\table.c (C)
|
||||
|
||||
--- Global Wrap-up
|
||||
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_mem'
|
||||
"D:\qp\qpc\include\qf.h" 162 1 Warning 526: Symbol 'QMActive_ctor(QMActive *, QStateHandler)' (line 162, file D:\qp\qpc\include\qf.h, module D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'Q_APP_BUILD_DATE'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'Q_APP_BUILD_TIME'
|
||||
"C:\qp\qpc\include\qf.h" 162 1 Warning 526: Symbol 'QMActive_ctor(QMActive *, QStateHandler)' (line 162, file C:\qp\qpc\include\qf.h, module C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QMActive_ctor'
|
||||
"D:\qp\qpc\include\qs.h" 262 1 Warning 526: Symbol 'QS_obj_dict(const void *, const char_t *)' (line 262, file D:\qp\qpc\include\qs.h, module D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
"C:\qp\qpc\include\qs.h" 272 1 Warning 526: Symbol 'QS_obj_dict(const void *, const char_t *)' (line 272, file C:\qp\qpc\include\qs.h, module C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_obj_dict'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_onStartup'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_onCleanup'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_onCommand'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_onFlush'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_onGetTime'
|
||||
"D:\qp\qpc\include\qs.h" 1068 1 Warning 526: Symbol 'QS_priv_' (line 1068, file D:\qp\qpc\include\qs.h, module D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_onReset'
|
||||
"C:\qp\qpc\include\qs.h" 1084 1 Warning 526: Symbol 'QS_priv_' (line 1084, file C:\qp\qpc\include\qs.h, module C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_priv_'
|
||||
"D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\table.c" 79 1 Info 759: header declaration for symbol 'Table_ctor(void)' defined at (line 79, file D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\table.c) could be moved from header to module
|
||||
"D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\table.c" 79 1 Info 765: external 'Table_ctor(void)' (line 79, file D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\table.c) could be made static [MISRA 2004 Rule 8.10, required]
|
||||
"C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\table.c" 79 1 Info 759: header declaration for symbol 'Table_ctor(void)' defined at (line 79, file C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\table.c) could be moved from header to module
|
||||
"C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\table.c" 79 1 Info 765: external 'Table_ctor(void)' (line 79, file C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\table.c) could be made static [MISRA 2004 Rule 8.10, required]
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QK_init'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QF_noTimeEvtsActiveX'
|
||||
"D:\qp\qpc\include\qf.h" 654 1 Warning 526: Symbol 'QF_newX_(uint_fast16_t, uint_fast16_t, enum_t)' (line 654, file D:\qp\qpc\include\qf.h, module D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
"C:\qp\qpc\include\qf.h" 657 1 Warning 526: Symbol 'QF_newX_(uint_fast16_t, uint_fast16_t, enum_t)' (line 657, file C:\qp\qpc\include\qf.h, module C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QF_newX_'
|
||||
"D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\bsp.h" 40 1 Warning 526: Symbol 'BSP_displayPaused(uint8_t)' (line 40, file D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\bsp.h, module D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QF_newRef_'
|
||||
"C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\bsp.h" 40 1 Warning 526: Symbol 'BSP_displayPaused(uint8_t)' (line 40, file C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\bsp.h, module C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'BSP_displayPaused'
|
||||
"D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\bsp.h" 41 1 Warning 526: Symbol 'BSP_displayPhilStat(uint8_t, const char_t *)' (line 41, file D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\bsp.h, module D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
"C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\bsp.h" 41 1 Warning 526: Symbol 'BSP_displayPhilStat(uint8_t, const char_t *)' (line 41, file C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\bsp.h, module C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'BSP_displayPhilStat'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'BSP_init'
|
||||
"D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\bsp.h" 42 1 Warning 526: Symbol 'BSP_terminate(int16_t)' (line 42, file D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\bsp.h, module D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
"C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\bsp.h" 42 1 Warning 526: Symbol 'BSP_terminate(int16_t)' (line 42, file C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\bsp.h, module C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'BSP_terminate'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'BSP_randomSeed'
|
||||
"D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\bsp.h" 45 1 Warning 526: Symbol 'BSP_random(void)' (line 45, file D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\bsp.h, module D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
"C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\bsp.h" 45 1 Warning 526: Symbol 'BSP_random(void)' (line 45, file C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\bsp.h, module C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'BSP_random'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QF_onStartup'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QF_onCleanup'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_beginRec'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_rxGetNfree'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_rxInitBuf'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_rxParse'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_rxPriv_'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QF_poolInit'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QF_poolGetMaxBlockSize'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QF_psInit'
|
||||
"D:\qp\qpc\include\qf.h" 563 1 Warning 526: Symbol 'QF_publish_(const QEvt *, const void *)' (line 563, file D:\qp\qpc\include\qf.h, module D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
"C:\qp\qpc\include\qf.h" 566 1 Warning 526: Symbol 'QF_publish_(const QEvt *, const void *)' (line 566, file C:\qp\qpc\include\qf.h, module C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QF_publish_'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QF_pwr2Lkup'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QP_versionStr'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_str'
|
||||
"D:\qp\qpc\include\qs.h" 258 1 Warning 526: Symbol 'QS_sig_dict(enum_t, const void *, const char_t *)' (line 258, file D:\qp\qpc\include\qs.h, module D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
"C:\qp\qpc\include\qs.h" 268 1 Warning 526: Symbol 'QS_sig_dict(enum_t, const void *, const char_t *)' (line 268, file C:\qp\qpc\include\qs.h, module C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_sig_dict'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_str_'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_str_ROM_'
|
||||
@ -98,7 +108,7 @@
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QActive_recall'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QActive_start_'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QActive_stop'
|
||||
"D:\qp\qpc\include\qf.h" 364 1 Warning 526: Symbol 'QActive_subscribe(const QActive *, enum_t)' (line 364, file D:\qp\qpc\include\qf.h, module D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
"C:\qp\qpc\include\qf.h" 364 1 Warning 526: Symbol 'QActive_subscribe(const QActive *, enum_t)' (line 364, file C:\qp\qpc\include\qf.h, module C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QActive_subscribe'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QActive_unsubscribe'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QActive_unsubscribeAll'
|
||||
@ -107,22 +117,22 @@
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QHsm_dispatch_'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QHsm_init_'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QHsm_isIn'
|
||||
"D:\qp\qpc\include\qep.h" 445 1 Warning 526: Symbol 'QHsm_top(const void *, const QEvt *)' (line 445, file D:\qp\qpc\include\qep.h, module D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
"C:\qp\qpc\include\qep.h" 445 1 Warning 526: Symbol 'QHsm_top(const void *, const QEvt *)' (line 445, file C:\qp\qpc\include\qep.h, module C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QHsm_top'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_filterOff'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_f32'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_f64'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_filterOn'
|
||||
"D:\qp\qpc\include\qs.h" 266 1 Warning 526: Symbol 'QS_fun_dict(void (*)(void), const char_t *)' (line 266, file D:\qp\qpc\include\qs.h, module D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
"C:\qp\qpc\include\qs.h" 276 1 Warning 526: Symbol 'QS_fun_dict(void (*)(void), const char_t *)' (line 276, file C:\qp\qpc\include\qs.h, module C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_fun_dict'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QF_tickX_'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QF_div8Lkup'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QK_onIdle'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_getByte'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_getBlock'
|
||||
"D:\qp\qpc\include\qf.h" 476 1 Warning 526: Symbol 'QTimeEvt_armX(struct QTimeEvt *, QTimeEvtCtr, QTimeEvtCtr)' (line 476, file D:\qp\qpc\include\qf.h, module D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
"C:\qp\qpc\include\qf.h" 476 1 Warning 526: Symbol 'QTimeEvt_armX(struct QTimeEvt *, QTimeEvtCtr, QTimeEvtCtr)' (line 476, file C:\qp\qpc\include\qf.h, module C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QTimeEvt_armX'
|
||||
"D:\qp\qpc\include\qf.h" 472 1 Warning 526: Symbol 'QTimeEvt_ctorX(struct QTimeEvt *, QMActive *, enum_t, uint_fast8_t)' (line 472, file D:\qp\qpc\include\qf.h, module D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
"C:\qp\qpc\include\qf.h" 472 1 Warning 526: Symbol 'QTimeEvt_ctorX(struct QTimeEvt *, QMActive *, enum_t, uint_fast8_t)' (line 472, file C:\qp\qpc\include\qf.h, module C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QTimeEvt_ctorX'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QTimeEvt_rearm'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QTimeEvt_disarm'
|
||||
@ -134,14 +144,14 @@
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QS_initBuf'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QK_readySet_'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QF_gc'
|
||||
"D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c" 88 1 Info 759: header declaration for symbol 'Philo_ctor(void)' defined at (line 88, file D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) could be moved from header to module
|
||||
"D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c" 88 1 Info 765: external 'Philo_ctor(void)' (line 88, file D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) could be made static [MISRA 2004 Rule 8.10, required]
|
||||
"C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c" 88 1 Info 759: header declaration for symbol 'Philo_ctor(void)' defined at (line 88, file C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) could be moved from header to module
|
||||
"C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c" 88 1 Info 765: external 'Philo_ctor(void)' (line 88, file C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) could be made static [MISRA 2004 Rule 8.10, required]
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QF_getPoolMin'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QF_getQueueMin'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QMPool_get'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QMPool_init'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QMPool_put'
|
||||
"D:\qp\qpc\include\qassert.h" 223 1 Warning 526: Symbol 'Q_onAssert(const char_t *, int_t)' (line 223, file D:\qp\qpc\include\qassert.h, module D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
"C:\qp\qpc\include\qassert.h" 223 1 Warning 526: Symbol 'Q_onAssert(const char_t *, int_t)' (line 223, file C:\qp\qpc\include\qassert.h, module C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) not defined
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'Q_onAssert'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QK_sched_'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QK_schedPrio_'
|
||||
@ -151,106 +161,124 @@
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QMsm_execTatbl_'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QMsm_init_'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QMsm_isInState'
|
||||
"D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c" 78 1 Info 759: header declaration for symbol 'AO_Philo' defined at (line 78, file D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) could be moved from header to module
|
||||
"D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c" 78 1 Info 765: external 'AO_Philo' (line 78, file D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) could be made static [MISRA 2004 Rule 8.10, required]
|
||||
"C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c" 78 1 Info 759: header declaration for symbol 'AO_Philo' defined at (line 78, file C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) could be moved from header to module
|
||||
"C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c" 78 1 Info 765: external 'AO_Philo' (line 78, file C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\philo.c) could be made static [MISRA 2004 Rule 8.10, required]
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QF_init'
|
||||
Note 960: Violates MISRA 2004 Required Rule 8.9, undefined symbol: 'QF_invPwr2Lkup'
|
||||
"D:\qp\qpc\include\qs.h" 750 1 Info 758: global enum '(untagged)' (line 750, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qep.h" 463 1 Info 769: global enumeration constant 'Q_RET_SUPER_SUB' (line 463, file D:\qp\qpc\include\qep.h) not referenced
|
||||
"D:\qp\qpc\include\qep.h" 468 1 Info 769: global enumeration constant 'Q_RET_IGNORED' (line 468, file D:\qp\qpc\include\qep.h) not referenced
|
||||
"D:\qp\qpc\include\qep.h" 475 1 Info 769: global enumeration constant 'Q_RET_NULL' (line 475, file D:\qp\qpc\include\qep.h) not referenced
|
||||
"D:\qp\qpc\include\qep.h" 480 1 Info 769: global enumeration constant 'Q_RET_TRAN_HIST' (line 480, file D:\qp\qpc\include\qep.h) not referenced
|
||||
"D:\qp\qpc\include\qep.h" 481 1 Info 769: global enumeration constant 'Q_RET_TRAN_EP' (line 481, file D:\qp\qpc\include\qep.h) not referenced
|
||||
"D:\qp\qpc\include\qep.h" 482 1 Info 769: global enumeration constant 'Q_RET_TRAN_XP' (line 482, file D:\qp\qpc\include\qep.h) not referenced
|
||||
"D:\qp\qpc\include\qep.h" 604 1 Info 769: global enumeration constant 'Q_ENTRY_SIG' (line 604, file D:\qp\qpc\include\qep.h) not referenced
|
||||
"D:\qp\qpc\include\qep.h" 605 1 Info 769: global enumeration constant 'Q_EXIT_SIG' (line 605, file D:\qp\qpc\include\qep.h) not referenced
|
||||
"D:\qp\qpc\include\qep.h" 606 1 Info 769: global enumeration constant 'Q_INIT_SIG' (line 606, file D:\qp\qpc\include\qep.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 57 1 Info 769: global enumeration constant 'QSpyRecords::QS_QP_RESET' (line 57, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 60 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_STATE_ENTRY' (line 60, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 61 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_STATE_EXIT' (line 61, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 62 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_STATE_INIT' (line 62, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 63 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_INIT_TRAN' (line 63, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 64 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_INTERN_TRAN' (line 64, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 65 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_TRAN' (line 65, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 66 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_IGNORED' (line 66, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 67 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_DISPATCH' (line 67, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 68 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_UNHANDLED' (line 68, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 71 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_ACTIVE_ADD' (line 71, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 72 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_ACTIVE_REMOVE' (line 72, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 73 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_ACTIVE_SUBSCRIBE' (line 73, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 74 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_ACTIVE_UNSUBSCRIBE' (line 74, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 75 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_ACTIVE_POST_FIFO' (line 75, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 76 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_ACTIVE_POST_LIFO' (line 76, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 77 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_ACTIVE_GET' (line 77, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 78 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_ACTIVE_GET_LAST' (line 78, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 79 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_EQUEUE_INIT' (line 79, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 80 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_EQUEUE_POST_FIFO' (line 80, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 81 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_EQUEUE_POST_LIFO' (line 81, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 82 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_EQUEUE_GET' (line 82, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 83 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_EQUEUE_GET_LAST' (line 83, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 84 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_MPOOL_INIT' (line 84, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 85 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_MPOOL_GET' (line 85, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 86 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_MPOOL_PUT' (line 86, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 87 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_PUBLISH' (line 87, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 88 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_RESERVED8' (line 88, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 89 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_NEW' (line 89, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 90 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_GC_ATTEMPT' (line 90, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 91 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_GC' (line 91, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 92 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_TICK' (line 92, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 93 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_TIMEEVT_ARM' (line 93, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 94 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_TIMEEVT_AUTO_DISARM' (line 94, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 95 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_TIMEEVT_DISARM_ATTEMPT' (line 95, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 96 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_TIMEEVT_DISARM' (line 96, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 97 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_TIMEEVT_REARM' (line 97, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 98 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_TIMEEVT_POST' (line 98, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 99 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_TIMEEVT_CTR' (line 99, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 100 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_CRIT_ENTRY' (line 100, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 101 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_CRIT_EXIT' (line 101, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 102 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_ISR_ENTRY' (line 102, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 103 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_ISR_EXIT' (line 103, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 104 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_INT_DISABLE' (line 104, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 105 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_INT_ENABLE' (line 105, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 106 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_ACTIVE_POST_ATTEMPT' (line 106, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 107 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_EQUEUE_POST_ATTEMPT' (line 107, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 108 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_MPOOL_GET_ATTEMPT' (line 108, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 109 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_RESERVED1' (line 109, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 110 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_RESERVED0' (line 110, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 113 1 Info 769: global enumeration constant 'QSpyRecords::QS_QK_MUTEX_LOCK' (line 113, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 114 1 Info 769: global enumeration constant 'QSpyRecords::QS_QK_MUTEX_UNLOCK' (line 114, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 115 1 Info 769: global enumeration constant 'QSpyRecords::QS_QK_SCHEDULE' (line 115, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 116 1 Info 769: global enumeration constant 'QSpyRecords::QS_QK_RESERVED1' (line 116, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 117 1 Info 769: global enumeration constant 'QSpyRecords::QS_QK_RESERVED0' (line 117, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 120 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_TRAN_HIST' (line 120, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 121 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_TRAN_EP' (line 121, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 122 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_TRAN_XP' (line 122, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 123 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_RESERVED1' (line 123, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 124 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_RESERVED0' (line 124, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 130 1 Info 769: global enumeration constant 'QSpyRecords::QS_USR_DICT' (line 130, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 131 1 Info 769: global enumeration constant 'QSpyRecords::QS_EMPTY' (line 131, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 132 1 Info 769: global enumeration constant 'QSpyRecords::QS_RESERVED3' (line 132, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 133 1 Info 769: global enumeration constant 'QSpyRecords::QS_RESERVED2' (line 133, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 134 1 Info 769: global enumeration constant 'QSpyRecords::QS_TEST_RUN' (line 134, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 135 1 Info 769: global enumeration constant 'QSpyRecords::QS_TEST_FAIL' (line 135, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 136 1 Info 769: global enumeration constant 'QSpyRecords::QS_ASSERT_FAIL' (line 136, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 139 1 Info 769: global enumeration constant 'QSpyRecords::QS_USER' (line 139, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 751 1 Info 769: global enumeration constant 'QS_I8_T' (line 751, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 752 1 Info 769: global enumeration constant 'QS_U8_T' (line 752, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 753 1 Info 769: global enumeration constant 'QS_I16_T' (line 753, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 754 1 Info 769: global enumeration constant 'QS_U16_T' (line 754, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 755 1 Info 769: global enumeration constant 'QS_I32_T' (line 755, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 756 1 Info 769: global enumeration constant 'QS_U32_T' (line 756, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 757 1 Info 769: global enumeration constant 'QS_F32_T' (line 757, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 758 1 Info 769: global enumeration constant 'QS_F64_T' (line 758, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 759 1 Info 769: global enumeration constant 'QS_STR_T' (line 759, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 760 1 Info 769: global enumeration constant 'QS_MEM_T' (line 760, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 761 1 Info 769: global enumeration constant 'QS_SIG_T' (line 761, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 762 1 Info 769: global enumeration constant 'QS_OBJ_T' (line 762, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 763 1 Info 769: global enumeration constant 'QS_FUN_T' (line 763, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 764 1 Info 769: global enumeration constant 'QS_I64_T' (line 764, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 765 1 Info 769: global enumeration constant 'QS_U64_T' (line 765, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\include\qs.h" 766 1 Info 769: global enumeration constant 'QS_U32_HEX_T' (line 766, file D:\qp\qpc\include\qs.h) not referenced
|
||||
"D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\dpp.h" 27 1 Info 769: global enumeration constant 'DPPSignals::MAX_PUB_SIG' (line 27, file D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\dpp.h) not referenced
|
||||
"D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\dpp.h" 31 1 Info 769: global enumeration constant 'DPPSignals::MAX_SIG' (line 31, file D:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\dpp.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 764 1 Info 758: global enum '(untagged)' (line 764, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 1095 1 Info 758: global enum 'QSpyRxRecords' (line 1095, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qep.h" 463 1 Info 769: global enumeration constant 'Q_RET_SUPER_SUB' (line 463, file C:\qp\qpc\include\qep.h) not referenced
|
||||
"C:\qp\qpc\include\qep.h" 468 1 Info 769: global enumeration constant 'Q_RET_IGNORED' (line 468, file C:\qp\qpc\include\qep.h) not referenced
|
||||
"C:\qp\qpc\include\qep.h" 475 1 Info 769: global enumeration constant 'Q_RET_NULL' (line 475, file C:\qp\qpc\include\qep.h) not referenced
|
||||
"C:\qp\qpc\include\qep.h" 480 1 Info 769: global enumeration constant 'Q_RET_TRAN_HIST' (line 480, file C:\qp\qpc\include\qep.h) not referenced
|
||||
"C:\qp\qpc\include\qep.h" 481 1 Info 769: global enumeration constant 'Q_RET_TRAN_EP' (line 481, file C:\qp\qpc\include\qep.h) not referenced
|
||||
"C:\qp\qpc\include\qep.h" 482 1 Info 769: global enumeration constant 'Q_RET_TRAN_XP' (line 482, file C:\qp\qpc\include\qep.h) not referenced
|
||||
"C:\qp\qpc\include\qep.h" 604 1 Info 769: global enumeration constant 'Q_ENTRY_SIG' (line 604, file C:\qp\qpc\include\qep.h) not referenced
|
||||
"C:\qp\qpc\include\qep.h" 605 1 Info 769: global enumeration constant 'Q_EXIT_SIG' (line 605, file C:\qp\qpc\include\qep.h) not referenced
|
||||
"C:\qp\qpc\include\qep.h" 606 1 Info 769: global enumeration constant 'Q_INIT_SIG' (line 606, file C:\qp\qpc\include\qep.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 67 1 Info 769: global enumeration constant 'QSpyRecords::QS_EMPTY' (line 67, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 70 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_STATE_ENTRY' (line 70, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 71 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_STATE_EXIT' (line 71, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 72 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_STATE_INIT' (line 72, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 73 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_INIT_TRAN' (line 73, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 74 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_INTERN_TRAN' (line 74, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 75 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_TRAN' (line 75, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 76 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_IGNORED' (line 76, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 77 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_DISPATCH' (line 77, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 78 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_UNHANDLED' (line 78, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 81 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_ACTIVE_ADD' (line 81, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 82 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_ACTIVE_REMOVE' (line 82, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 83 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_ACTIVE_SUBSCRIBE' (line 83, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 84 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_ACTIVE_UNSUBSCRIBE' (line 84, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 85 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_ACTIVE_POST_FIFO' (line 85, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 86 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_ACTIVE_POST_LIFO' (line 86, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 87 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_ACTIVE_GET' (line 87, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 88 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_ACTIVE_GET_LAST' (line 88, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 89 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_EQUEUE_INIT' (line 89, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 90 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_EQUEUE_POST_FIFO' (line 90, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 91 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_EQUEUE_POST_LIFO' (line 91, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 92 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_EQUEUE_GET' (line 92, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 93 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_EQUEUE_GET_LAST' (line 93, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 94 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_MPOOL_INIT' (line 94, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 95 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_MPOOL_GET' (line 95, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 96 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_MPOOL_PUT' (line 96, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 97 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_PUBLISH' (line 97, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 98 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_RESERVED8' (line 98, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 99 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_NEW' (line 99, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 100 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_GC_ATTEMPT' (line 100, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 101 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_GC' (line 101, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 102 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_TICK' (line 102, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 103 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_TIMEEVT_ARM' (line 103, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 104 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_TIMEEVT_AUTO_DISARM' (line 104, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 105 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_TIMEEVT_DISARM_ATTEMPT' (line 105, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 106 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_TIMEEVT_DISARM' (line 106, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 107 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_TIMEEVT_REARM' (line 107, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 108 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_TIMEEVT_POST' (line 108, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 109 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_TIMEEVT_CTR' (line 109, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 110 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_CRIT_ENTRY' (line 110, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 111 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_CRIT_EXIT' (line 111, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 112 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_ISR_ENTRY' (line 112, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 113 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_ISR_EXIT' (line 113, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 114 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_INT_DISABLE' (line 114, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 115 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_INT_ENABLE' (line 115, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 116 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_ACTIVE_POST_ATTEMPT' (line 116, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 117 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_EQUEUE_POST_ATTEMPT' (line 117, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 118 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_MPOOL_GET_ATTEMPT' (line 118, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 119 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_RESERVED1' (line 119, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 120 1 Info 769: global enumeration constant 'QSpyRecords::QS_QF_RESERVED0' (line 120, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 123 1 Info 769: global enumeration constant 'QSpyRecords::QS_QK_MUTEX_LOCK' (line 123, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 124 1 Info 769: global enumeration constant 'QSpyRecords::QS_QK_MUTEX_UNLOCK' (line 124, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 125 1 Info 769: global enumeration constant 'QSpyRecords::QS_QVK_SCHEDULE' (line 125, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 126 1 Info 769: global enumeration constant 'QSpyRecords::QS_QVK_IDLE' (line 126, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 127 1 Info 769: global enumeration constant 'QSpyRecords::QS_QK_RESUME' (line 127, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 130 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_TRAN_HIST' (line 130, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 131 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_TRAN_EP' (line 131, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 132 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_TRAN_XP' (line 132, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 133 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_RESERVED1' (line 133, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 134 1 Info 769: global enumeration constant 'QSpyRecords::QS_QEP_RESERVED0' (line 134, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 140 1 Info 769: global enumeration constant 'QSpyRecords::QS_USR_DICT' (line 140, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 141 1 Info 769: global enumeration constant 'QSpyRecords::QS_TARGET_INFO' (line 141, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 142 1 Info 769: global enumeration constant 'QSpyRecords::QS_RESERVED0' (line 142, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 143 1 Info 769: global enumeration constant 'QSpyRecords::QS_RX_STATUS' (line 143, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 144 1 Info 769: global enumeration constant 'QSpyRecords::QS_TEST_STATUS' (line 144, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 145 1 Info 769: global enumeration constant 'QSpyRecords::QS_PEEK_DATA' (line 145, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 146 1 Info 769: global enumeration constant 'QSpyRecords::QS_ASSERT_FAIL' (line 146, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 149 1 Info 769: global enumeration constant 'QSpyRecords::QS_USER' (line 149, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 765 1 Info 769: global enumeration constant 'QS_I8_T' (line 765, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 766 1 Info 769: global enumeration constant 'QS_U8_T' (line 766, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 767 1 Info 769: global enumeration constant 'QS_I16_T' (line 767, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 768 1 Info 769: global enumeration constant 'QS_U16_T' (line 768, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 769 1 Info 769: global enumeration constant 'QS_I32_T' (line 769, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 770 1 Info 769: global enumeration constant 'QS_U32_T' (line 770, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 771 1 Info 769: global enumeration constant 'QS_F32_T' (line 771, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 772 1 Info 769: global enumeration constant 'QS_F64_T' (line 772, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 773 1 Info 769: global enumeration constant 'QS_STR_T' (line 773, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 774 1 Info 769: global enumeration constant 'QS_MEM_T' (line 774, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 775 1 Info 769: global enumeration constant 'QS_SIG_T' (line 775, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 776 1 Info 769: global enumeration constant 'QS_OBJ_T' (line 776, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 777 1 Info 769: global enumeration constant 'QS_FUN_T' (line 777, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 778 1 Info 769: global enumeration constant 'QS_I64_T' (line 778, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 779 1 Info 769: global enumeration constant 'QS_U64_T' (line 779, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 780 1 Info 769: global enumeration constant 'QS_U32_HEX_T' (line 780, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 1096 1 Info 769: global enumeration constant 'QSpyRxRecords::QS_RX_INFO' (line 1096, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 1097 1 Info 769: global enumeration constant 'QSpyRxRecords::QS_RX_COMMAND' (line 1097, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 1098 1 Info 769: global enumeration constant 'QSpyRxRecords::QS_RX_RESET' (line 1098, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 1099 1 Info 769: global enumeration constant 'QSpyRxRecords::QS_RX_TICK' (line 1099, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 1100 1 Info 769: global enumeration constant 'QSpyRxRecords::QS_RX_PEEK' (line 1100, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 1101 1 Info 769: global enumeration constant 'QSpyRxRecords::QS_RX_POKE' (line 1101, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 1102 1 Info 769: global enumeration constant 'QSpyRxRecords::QS_RX_RESERVED7' (line 1102, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 1103 1 Info 769: global enumeration constant 'QSpyRxRecords::QS_RX_RESERVED6' (line 1103, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 1104 1 Info 769: global enumeration constant 'QSpyRxRecords::QS_RX_RESERVED5' (line 1104, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 1105 1 Info 769: global enumeration constant 'QSpyRxRecords::QS_RX_RESERVED4' (line 1105, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 1106 1 Info 769: global enumeration constant 'QSpyRxRecords::QS_RX_GLB_FILTER' (line 1106, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 1107 1 Info 769: global enumeration constant 'QSpyRxRecords::QS_RX_LOC_FILTER' (line 1107, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 1108 1 Info 769: global enumeration constant 'QSpyRxRecords::QS_RX_AO_FILTER' (line 1108, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 1109 1 Info 769: global enumeration constant 'QSpyRxRecords::QS_RX_RESERVED3' (line 1109, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 1110 1 Info 769: global enumeration constant 'QSpyRxRecords::QS_RX_RESERVED2' (line 1110, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 1111 1 Info 769: global enumeration constant 'QSpyRxRecords::QS_RX_RESERVED1' (line 1111, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\include\qs.h" 1112 1 Info 769: global enumeration constant 'QSpyRxRecords::QS_RX_EVENT' (line 1112, file C:\qp\qpc\include\qs.h) not referenced
|
||||
"C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\dpp.h" 27 1 Info 769: global enumeration constant 'DPPSignals::MAX_PUB_SIG' (line 27, file C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\dpp.h) not referenced
|
||||
"C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\dpp.h" 31 1 Info 769: global enumeration constant 'DPPSignals::MAX_SIG' (line 31, file C:\qp\qpc\examples\arm-cm\dpp_ek-tm4c123gxl\dpp.h) not referenced
|
||||
|
||||
Count Type Number Text
|
||||
|
||||
@ -259,10 +287,10 @@ Count Type Number Text
|
||||
2 Warning 530 Symbol '___' (___) not initialized
|
||||
2 Warning 537 Repeated include file '___'
|
||||
2 Warning 618 Storage class specified after a type
|
||||
1 Info 758 global ___ '___' (___) not referenced
|
||||
2 Info 758 global ___ '___' (___) not referenced
|
||||
3 Info 759 header declaration for symbol '___' defined at (___) could be moved from header to module
|
||||
3 Info 765 external '___' (___) could be made static
|
||||
95 Info 769 global enumeration constant '___' (___) not referenced
|
||||
112 Info 769 global enumeration constant '___' (___) not referenced
|
||||
2 Note 950 Non-ANSI reserved word or construct: '___'
|
||||
108 Note 960 Violates MISRA 2004 Required Rule ___, ___
|
||||
118 Note 960 Violates MISRA 2004 Required Rule ___, ___
|
||||
2 Note 963 Qualifier const or volatile ___ a type; use ___ to reverse the test
|
||||
|
@ -114,6 +114,10 @@
|
||||
<pMon>BIN\lmidk-agdi.dll</pMon>
|
||||
</DebugOpt>
|
||||
<TargetDriverDllRegistry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>DLGUARM</Key>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>ARMRTXEVENTFLAGS</Key>
|
||||
@ -188,6 +192,7 @@
|
||||
</DebugFlag>
|
||||
<LintExecutable></LintExecutable>
|
||||
<LintConfigFile></LintConfigFile>
|
||||
<bLintAuto>0</bLintAuto>
|
||||
</TargetOption>
|
||||
</Target>
|
||||
|
||||
@ -364,6 +369,7 @@
|
||||
</DebugFlag>
|
||||
<LintExecutable></LintExecutable>
|
||||
<LintConfigFile></LintConfigFile>
|
||||
<bLintAuto>0</bLintAuto>
|
||||
</TargetOption>
|
||||
</Target>
|
||||
|
||||
@ -534,6 +540,7 @@
|
||||
</DebugFlag>
|
||||
<LintExecutable></LintExecutable>
|
||||
<LintConfigFile></LintConfigFile>
|
||||
<bLintAuto>0</bLintAuto>
|
||||
</TargetOption>
|
||||
</Target>
|
||||
|
||||
@ -621,6 +628,19 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>1</GroupNumber>
|
||||
<FileNumber>7</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\..\..\..\include\qstamp.c</PathWithFileName>
|
||||
<FilenameWithoutPath>qstamp.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
@ -631,7 +651,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>7</FileNumber>
|
||||
<FileNumber>8</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -644,7 +664,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>8</FileNumber>
|
||||
<FileNumber>9</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -657,7 +677,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>9</FileNumber>
|
||||
<FileNumber>10</FileNumber>
|
||||
<FileType>2</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -670,7 +690,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>10</FileNumber>
|
||||
<FileNumber>11</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -683,7 +703,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>11</FileNumber>
|
||||
<FileNumber>12</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -696,7 +716,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>12</FileNumber>
|
||||
<FileNumber>13</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -709,7 +729,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>13</FileNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -730,7 +750,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileNumber>15</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -743,7 +763,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>15</FileNumber>
|
||||
<FileNumber>16</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -756,7 +776,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>16</FileNumber>
|
||||
<FileNumber>17</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -769,7 +789,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>17</FileNumber>
|
||||
<FileNumber>18</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -782,7 +802,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>18</FileNumber>
|
||||
<FileNumber>19</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -795,7 +815,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>19</FileNumber>
|
||||
<FileNumber>20</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -808,7 +828,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>20</FileNumber>
|
||||
<FileNumber>21</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -821,7 +841,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>21</FileNumber>
|
||||
<FileNumber>22</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -834,7 +854,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>22</FileNumber>
|
||||
<FileNumber>23</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -847,7 +867,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>23</FileNumber>
|
||||
<FileNumber>24</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -860,7 +880,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>24</FileNumber>
|
||||
<FileNumber>25</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -873,7 +893,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>25</FileNumber>
|
||||
<FileNumber>26</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -886,7 +906,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>26</FileNumber>
|
||||
<FileNumber>27</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -899,7 +919,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>27</FileNumber>
|
||||
<FileNumber>28</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -920,7 +940,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>28</FileNumber>
|
||||
<FileNumber>29</FileNumber>
|
||||
<FileType>2</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -935,13 +955,13 @@
|
||||
|
||||
<Group>
|
||||
<GroupName>QS</GroupName>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>29</FileNumber>
|
||||
<FileNumber>30</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -954,7 +974,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>30</FileNumber>
|
||||
<FileNumber>31</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -967,7 +987,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>31</FileNumber>
|
||||
<FileNumber>32</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -978,6 +998,19 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>33</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\..\..\..\source\qs_rx.c</PathWithFileName>
|
||||
<FilenameWithoutPath>qs_rx.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
</ProjectOpt>
|
||||
|
@ -10,6 +10,7 @@
|
||||
<TargetName>dpp-dbg</TargetName>
|
||||
<ToolsetNumber>0x4</ToolsetNumber>
|
||||
<ToolsetName>ARM-ADS</ToolsetName>
|
||||
<pCCUsed>5060020::V5.06 (build 20)::ARMCC</pCCUsed>
|
||||
<TargetOption>
|
||||
<TargetCommonOption>
|
||||
<Device>TM4C123GH6PM</Device>
|
||||
@ -68,9 +69,9 @@
|
||||
<nStopU2X>0</nStopU2X>
|
||||
</BeforeCompile>
|
||||
<BeforeMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg1>1</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg1Name>cmd /c "del .\dbg\qstamp.o"</UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
@ -84,6 +85,8 @@
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopA1X>0</nStopA1X>
|
||||
<nStopA2X>0</nStopA2X>
|
||||
</AfterMake>
|
||||
<SelectedForBatchBuild>1</SelectedForBatchBuild>
|
||||
<SVCSIdString></SVCSIdString>
|
||||
@ -227,6 +230,7 @@
|
||||
<useUlib>0</useUlib>
|
||||
<EndSel>0</EndSel>
|
||||
<uLtcg>0</uLtcg>
|
||||
<nSecure>0</nSecure>
|
||||
<RoSelD>3</RoSelD>
|
||||
<RwSelD>3</RwSelD>
|
||||
<CodeSel>0</CodeSel>
|
||||
@ -361,6 +365,10 @@
|
||||
<uSurpInc>1</uSurpInc>
|
||||
<uC99>0</uC99>
|
||||
<useXO>0</useXO>
|
||||
<v6Lang>0</v6Lang>
|
||||
<v6LangP>0</v6LangP>
|
||||
<vShortEn>0</vShortEn>
|
||||
<vShortWch>0</vShortWch>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define>__FPU_PRESENT</Define>
|
||||
@ -438,6 +446,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\table.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qstamp.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\include\qstamp.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
@ -601,6 +614,10 @@
|
||||
<uSurpInc>2</uSurpInc>
|
||||
<uC99>2</uC99>
|
||||
<useXO>2</useXO>
|
||||
<v6Lang>0</v6Lang>
|
||||
<v6LangP>0</v6LangP>
|
||||
<vShortEn>0</vShortEn>
|
||||
<vShortWch>0</vShortWch>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
@ -643,6 +660,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_fp.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qs_rx.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_rx.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
</Groups>
|
||||
@ -709,9 +731,9 @@
|
||||
<nStopU2X>0</nStopU2X>
|
||||
</BeforeCompile>
|
||||
<BeforeMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg1>1</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg1Name>cmd /c "del .\rel\qstamp.o"</UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
@ -725,6 +747,8 @@
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopA1X>0</nStopA1X>
|
||||
<nStopA2X>0</nStopA2X>
|
||||
</AfterMake>
|
||||
<SelectedForBatchBuild>1</SelectedForBatchBuild>
|
||||
<SVCSIdString></SVCSIdString>
|
||||
@ -868,6 +892,7 @@
|
||||
<useUlib>0</useUlib>
|
||||
<EndSel>0</EndSel>
|
||||
<uLtcg>0</uLtcg>
|
||||
<nSecure>0</nSecure>
|
||||
<RoSelD>3</RoSelD>
|
||||
<RwSelD>3</RwSelD>
|
||||
<CodeSel>0</CodeSel>
|
||||
@ -1002,6 +1027,10 @@
|
||||
<uSurpInc>1</uSurpInc>
|
||||
<uC99>0</uC99>
|
||||
<useXO>0</useXO>
|
||||
<v6Lang>0</v6Lang>
|
||||
<v6LangP>0</v6LangP>
|
||||
<vShortEn>0</vShortEn>
|
||||
<vShortWch>0</vShortWch>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define>NDEBUG __FPU_PRESENT</Define>
|
||||
@ -1079,6 +1108,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\table.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qstamp.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\include\qstamp.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
@ -1242,6 +1276,10 @@
|
||||
<uSurpInc>2</uSurpInc>
|
||||
<uC99>2</uC99>
|
||||
<useXO>2</useXO>
|
||||
<v6Lang>0</v6Lang>
|
||||
<v6LangP>0</v6LangP>
|
||||
<vShortEn>0</vShortEn>
|
||||
<vShortWch>0</vShortWch>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
@ -1284,6 +1322,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_fp.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qs_rx.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_rx.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
</Groups>
|
||||
@ -1292,6 +1335,7 @@
|
||||
<TargetName>dpp-spy</TargetName>
|
||||
<ToolsetNumber>0x4</ToolsetNumber>
|
||||
<ToolsetName>ARM-ADS</ToolsetName>
|
||||
<pCCUsed>5060020::V5.06 (build 20)::ARMCC</pCCUsed>
|
||||
<TargetOption>
|
||||
<TargetCommonOption>
|
||||
<Device>TM4C123GH6PM</Device>
|
||||
@ -1350,9 +1394,9 @@
|
||||
<nStopU2X>0</nStopU2X>
|
||||
</BeforeCompile>
|
||||
<BeforeMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg1>1</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg1Name>cmd /c "del .\spy\qstamp.o"</UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
@ -1366,6 +1410,8 @@
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopA1X>0</nStopA1X>
|
||||
<nStopA2X>0</nStopA2X>
|
||||
</AfterMake>
|
||||
<SelectedForBatchBuild>1</SelectedForBatchBuild>
|
||||
<SVCSIdString></SVCSIdString>
|
||||
@ -1509,6 +1555,7 @@
|
||||
<useUlib>0</useUlib>
|
||||
<EndSel>0</EndSel>
|
||||
<uLtcg>0</uLtcg>
|
||||
<nSecure>0</nSecure>
|
||||
<RoSelD>3</RoSelD>
|
||||
<RwSelD>3</RwSelD>
|
||||
<CodeSel>0</CodeSel>
|
||||
@ -1643,6 +1690,10 @@
|
||||
<uSurpInc>1</uSurpInc>
|
||||
<uC99>0</uC99>
|
||||
<useXO>0</useXO>
|
||||
<v6Lang>0</v6Lang>
|
||||
<v6LangP>0</v6LangP>
|
||||
<vShortEn>0</vShortEn>
|
||||
<vShortWch>0</vShortWch>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define>Q_SPY __FPU_PRESENT</Define>
|
||||
@ -1720,6 +1771,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\table.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qstamp.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\include\qstamp.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
@ -1865,6 +1921,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_fp.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qs_rx.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_rx.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
</Groups>
|
||||
|
@ -1,13 +1,13 @@
|
||||
/*****************************************************************************
|
||||
* Product: DPP example, EK-TM4C123GXL board, preemptive QK kernel
|
||||
* Last Updated for Version: 5.4.0
|
||||
* Date of the Last Update: 2015-04-04
|
||||
* Last Updated for Version: 5.5.0
|
||||
* Date of the Last Update: 2015-08-20
|
||||
*
|
||||
* Q u a n t u m L e a P s
|
||||
* ---------------------------
|
||||
* innovating embedded systems
|
||||
*
|
||||
* Copyright (C) Quantum Leaps, LLC. state-machine.com.
|
||||
* Copyright (C) Quantum Leaps, LLC. All rights reserved.
|
||||
*
|
||||
* This program is open source software: you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as published
|
||||
@ -28,8 +28,8 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Contact information:
|
||||
* Web: www.state-machine.com
|
||||
* Email: info@state-machine.com
|
||||
* http://www.state-machine.com
|
||||
* mailto:info@state-machine.com
|
||||
*****************************************************************************/
|
||||
#include "qpc.h"
|
||||
#include "dpp.h"
|
||||
@ -48,6 +48,7 @@ Q_DEFINE_THIS_FILE
|
||||
* DO NOT LEAVE THE ISR PRIORITIES AT THE DEFAULT VALUE!
|
||||
*/
|
||||
enum KernelUnawareISRs { /* see NOTE00 */
|
||||
UART0_PRIO,
|
||||
/* ... */
|
||||
MAX_KERNEL_UNAWARE_CMSIS_PRI /* keep always last */
|
||||
};
|
||||
@ -69,27 +70,33 @@ void GPIOPortA_IRQHandler(void);
|
||||
|
||||
/* Local-scope objects -----------------------------------------------------*/
|
||||
#define LED_RED (1U << 1)
|
||||
#define LED_GREEN (1U << 3)
|
||||
#define LED_BLUE (1U << 2)
|
||||
#define LED_GREEN (1U << 3)
|
||||
|
||||
#define BTN_SW1 (1U << 4)
|
||||
#define BTN_SW2 (1U << 0)
|
||||
|
||||
static unsigned l_rnd; /* random seed */
|
||||
static uint32_t l_rnd; /* random seed */
|
||||
|
||||
#ifdef Q_SPY
|
||||
|
||||
void UART0_IRQHandler(void);
|
||||
|
||||
QSTimeCtr QS_tickTime_;
|
||||
QSTimeCtr QS_tickPeriod_;
|
||||
static uint8_t l_SysTick_Handler;
|
||||
static uint8_t l_GPIOPortA_IRQHandler;
|
||||
|
||||
/* QS source IDs */
|
||||
static uint8_t const l_SysTick_Handler = (uint8_t)0;
|
||||
static uint8_t const l_GPIOPortA_IRQHandler = (uint8_t)0;
|
||||
|
||||
#define UART_BAUD_RATE 115200U
|
||||
#define UART_FR_TXFE 0x80U
|
||||
#define UART_FR_TXFE (1U << 7)
|
||||
#define UART_FR_RXFE (1U << 4)
|
||||
#define UART_TXFIFO_DEPTH 16U
|
||||
|
||||
enum AppRecords { /* application-specific trace records */
|
||||
PHILO_STAT = QS_USER
|
||||
PHILO_STAT = QS_USER,
|
||||
COMMAND_STAT
|
||||
};
|
||||
|
||||
#endif
|
||||
@ -180,18 +187,15 @@ void BSP_init(void) {
|
||||
FPU->FPCCR &= ~((1U << FPU_FPCCR_ASPEN_Pos) | (1U << FPU_FPCCR_LSPEN_Pos));
|
||||
#endif
|
||||
|
||||
/* enable clock to the peripherals used by the application */
|
||||
SYSCTL->RCGC2 |= (1U << 5); /* enable clock to GPIOF */
|
||||
__NOP(); /* wait after enabling clocks */
|
||||
__NOP();
|
||||
__NOP();
|
||||
/* enable clock for to the peripherals used by this application... */
|
||||
SYSCTL->RCGCGPIO |= (1U << 5); /* enable Run mode for GPIOF */
|
||||
|
||||
/* configure the LEDs and push buttons */
|
||||
GPIOF->DIR |= (LED_RED | LED_GREEN | LED_BLUE);/* set direction: output */
|
||||
GPIOF->DEN |= (LED_RED | LED_GREEN | LED_BLUE); /* digital enable */
|
||||
GPIOF->DATA_Bits[LED_RED] = 0; /* turn the LED off */
|
||||
GPIOF->DATA_Bits[LED_GREEN] = 0; /* turn the LED off */
|
||||
GPIOF->DATA_Bits[LED_BLUE] = 0; /* turn the LED off */
|
||||
GPIOF->DATA_Bits[LED_RED] = 0U; /* turn the LED off */
|
||||
GPIOF->DATA_Bits[LED_GREEN] = 0U; /* turn the LED off */
|
||||
GPIOF->DATA_Bits[LED_BLUE] = 0U; /* turn the LED off */
|
||||
|
||||
/* configure the Buttons */
|
||||
GPIOF->DIR &= ~(BTN_SW1 | BTN_SW2); /* set direction: input */
|
||||
@ -205,6 +209,8 @@ void BSP_init(void) {
|
||||
}
|
||||
QS_OBJ_DICTIONARY(&l_SysTick_Handler);
|
||||
QS_OBJ_DICTIONARY(&l_GPIOPortA_IRQHandler);
|
||||
QS_USR_DICTIONARY(PHILO_STAT);
|
||||
QS_USR_DICTIONARY(COMMAND_STAT);
|
||||
}
|
||||
/*..........................................................................*/
|
||||
void BSP_displayPhilStat(uint8_t n, char const *stat) {
|
||||
@ -257,12 +263,17 @@ void QF_onStartup(void) {
|
||||
* Assign a priority to EVERY ISR explicitly by calling NVIC_SetPriority().
|
||||
* DO NOT LEAVE THE ISR PRIORITIES AT THE DEFAULT VALUE!
|
||||
*/
|
||||
NVIC_SetPriority(UART0_IRQn, UART0_PRIO);
|
||||
NVIC_SetPriority(SysTick_IRQn, SYSTICK_PRIO);
|
||||
NVIC_SetPriority(GPIOA_IRQn, GPIOA_PRIO);
|
||||
/* ... */
|
||||
|
||||
/* enable IRQs... */
|
||||
NVIC_EnableIRQ(GPIOA_IRQn);
|
||||
|
||||
#ifdef Q_SPY
|
||||
NVIC_EnableIRQ(UART0_IRQn); /* UART0 interrupt used for QS-RX */
|
||||
#endif
|
||||
}
|
||||
/*..........................................................................*/
|
||||
void QF_onCleanup(void) {
|
||||
@ -276,6 +287,8 @@ void QK_onIdle(void) {
|
||||
QF_INT_ENABLE();
|
||||
|
||||
#ifdef Q_SPY
|
||||
QS_rxParse(); /* parse all the received bytes */
|
||||
|
||||
if ((UART0->FR & UART_FR_TXFE) != 0U) { /* TX done? */
|
||||
uint16_t fifo = UART_TXFIFO_DEPTH; /* max bytes we can accept */
|
||||
uint8_t const *block;
|
||||
@ -284,7 +297,7 @@ void QK_onIdle(void) {
|
||||
block = QS_getBlock(&fifo); /* try to get next block to transmit */
|
||||
QF_INT_ENABLE();
|
||||
|
||||
while (fifo-- != 0) { /* any bytes in the block? */
|
||||
while (fifo-- != 0) { /* any bytes in the block? */
|
||||
UART0->DR = *block++; /* put into the FIFO */
|
||||
}
|
||||
}
|
||||
@ -298,41 +311,58 @@ void QK_onIdle(void) {
|
||||
}
|
||||
|
||||
/*..........................................................................*/
|
||||
/* NOTE Q_onAssert() defined in assembly in startup_TM4C123GH6PM.s */
|
||||
void Q_onAssert(char const *module, int loc) {
|
||||
/*
|
||||
* NOTE: add here your application-specific error handling
|
||||
*/
|
||||
(void)module;
|
||||
(void)loc;
|
||||
QS_ASSERTION(module, loc, (uint32_t)10000U); /* report assertion to QS */
|
||||
NVIC_SystemReset();
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
/* QS callbacks ============================================================*/
|
||||
#ifdef Q_SPY
|
||||
/*..........................................................................*/
|
||||
uint8_t QS_onStartup(void const *arg) {
|
||||
static uint8_t qsBuf[2*1024]; /* buffer for Quantum Spy */
|
||||
static uint8_t qsTxBuf[2*1024]; /* buffer for QS transmit channel */
|
||||
static uint8_t qsRxBuf[100]; /* buffer for QS receive channel */
|
||||
uint32_t tmp;
|
||||
QS_initBuf(qsBuf, sizeof(qsBuf));
|
||||
|
||||
/* enable the peripherals used by the UART0 */
|
||||
SYSCTL->RCGC1 |= (1U << 0); /* enable clock to UART0 */
|
||||
SYSCTL->RCGC2 |= (1U << 0); /* enable clock to GPIOA */
|
||||
__NOP(); /* wait after enabling clocks */
|
||||
__NOP();
|
||||
__NOP();
|
||||
QS_initBuf (qsTxBuf, sizeof(qsTxBuf));
|
||||
QS_rxInitBuf(qsRxBuf, sizeof(qsRxBuf));
|
||||
|
||||
/* enable clock for UART0 and GPIOA (used by UART0 pins) */
|
||||
SYSCTL->RCGCUART |= (1U << 0); /* enable Run mode for UART0 */
|
||||
SYSCTL->RCGCGPIO |= (1U << 0); /* enable Run mode for GPIOA */
|
||||
|
||||
/* configure UART0 pins for UART operation */
|
||||
tmp = (1U << 0) | (1U << 1);
|
||||
GPIOA->DIR &= ~tmp;
|
||||
GPIOA->AFSEL |= tmp;
|
||||
GPIOA->DR2R |= tmp; /* set 2mA drive, DR4R and DR8R are cleared */
|
||||
GPIOA->SLR &= ~tmp;
|
||||
GPIOA->ODR &= ~tmp;
|
||||
GPIOA->PUR &= ~tmp;
|
||||
GPIOA->PDR &= ~tmp;
|
||||
GPIOA->DEN |= tmp;
|
||||
GPIOA->AMSEL &= ~tmp; /* disable analog function on the pins */
|
||||
GPIOA->AFSEL |= tmp; /* enable ALT function on the pins */
|
||||
GPIOA->DEN |= tmp; /* enable digital I/O on the pins */
|
||||
GPIOA->PCTL &= ~0x00U;
|
||||
GPIOA->PCTL |= 0x11U;
|
||||
|
||||
/* configure the UART for the desired baud rate, 8-N-1 operation */
|
||||
tmp = (((SystemCoreClock * 8U) / UART_BAUD_RATE) + 1U) / 2U;
|
||||
UART0->IBRD = tmp / 64U;
|
||||
UART0->FBRD = tmp % 64U;
|
||||
UART0->LCRH = 0x60U; /* configure 8-N-1 operation */
|
||||
UART0->LCRH |= 0x10U;
|
||||
UART0->CTL |= (1U << 0) | (1U << 8) | (1U << 9);
|
||||
UART0->LCRH = (0x3U << 5); /* configure 8-N-1 operation */
|
||||
UART0->LCRH |= (0x1U << 4); /* enable FIFOs */
|
||||
UART0->CTL = (1U << 0) /* UART enable */
|
||||
| (1U << 8) /* UART TX enable */
|
||||
| (1U << 9); /* UART RX enable */
|
||||
|
||||
/* configure UART interrupts (for the RX channel) */
|
||||
UART0->IM |= (1U << 4) | (1U << 6); /* enable RX and RX-TO interrupt */
|
||||
UART0->IFLS |= (0x2U << 2); /* interrupt on RX FIFO half-full */
|
||||
/* NOTE: do not enable the UART0 interrupt yet. Wait till QF_onStartup() */
|
||||
|
||||
QS_tickPeriod_ = SystemCoreClock / BSP_TICKS_PER_SEC;
|
||||
QS_tickTime_ = QS_tickPeriod_; /* to start the timestamp at zero */
|
||||
@ -348,73 +378,28 @@ uint8_t QS_onStartup(void const *arg) {
|
||||
QS_FILTER_ON(QS_QEP_DISPATCH);
|
||||
QS_FILTER_ON(QS_QEP_UNHANDLED);
|
||||
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_ADD);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_REMOVE);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_SUBSCRIBE);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_UNSUBSCRIBE);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_POST_FIFO);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_POST_LIFO);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_GET);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_GET_LAST);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_INIT);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_POST_FIFO);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_POST_LIFO);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_GET);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_GET_LAST);
|
||||
// QS_FILTER_ON(QS_QF_MPOOL_INIT);
|
||||
// QS_FILTER_ON(QS_QF_MPOOL_GET);
|
||||
// QS_FILTER_ON(QS_QF_MPOOL_PUT);
|
||||
// QS_FILTER_ON(QS_QF_PUBLISH);
|
||||
// QS_FILTER_ON(QS_QF_RESERVED8);
|
||||
// QS_FILTER_ON(QS_QF_NEW);
|
||||
// QS_FILTER_ON(QS_QF_GC_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_GC);
|
||||
QS_FILTER_ON(QS_QF_TICK);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_ARM);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_AUTO_DISARM);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_DISARM_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_DISARM);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_REARM);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_POST);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_CTR);
|
||||
// QS_FILTER_ON(QS_QF_CRIT_ENTRY);
|
||||
// QS_FILTER_ON(QS_QF_CRIT_EXIT);
|
||||
// QS_FILTER_ON(QS_QF_ISR_ENTRY);
|
||||
// QS_FILTER_ON(QS_QF_ISR_EXIT);
|
||||
// QS_FILTER_ON(QS_QF_INT_DISABLE);
|
||||
// QS_FILTER_ON(QS_QF_INT_ENABLE);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_POST_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_POST_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_MPOOL_GET_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_RESERVED1);
|
||||
// QS_FILTER_ON(QS_QF_RESERVED0);
|
||||
|
||||
// QS_FILTER_ON(QS_QK_MUTEX_LOCK);
|
||||
// QS_FILTER_ON(QS_QK_MUTEX_UNLOCK);
|
||||
// QS_FILTER_ON(QS_QK_SCHEDULE);
|
||||
// QS_FILTER_ON(QS_QK_RESERVED1);
|
||||
// QS_FILTER_ON(QS_QK_RESERVED0);
|
||||
|
||||
// QS_FILTER_ON(QS_QEP_TRAN_HIST);
|
||||
// QS_FILTER_ON(QS_QEP_TRAN_EP);
|
||||
// QS_FILTER_ON(QS_QEP_TRAN_XP);
|
||||
// QS_FILTER_ON(QS_QEP_RESERVED1);
|
||||
// QS_FILTER_ON(QS_QEP_RESERVED0);
|
||||
|
||||
QS_FILTER_ON(QS_SIG_DICT);
|
||||
QS_FILTER_ON(QS_OBJ_DICT);
|
||||
QS_FILTER_ON(QS_FUN_DICT);
|
||||
QS_FILTER_ON(QS_USR_DICT);
|
||||
QS_FILTER_ON(QS_EMPTY);
|
||||
QS_FILTER_ON(QS_RESERVED3);
|
||||
QS_FILTER_ON(QS_RESERVED2);
|
||||
QS_FILTER_ON(QS_TEST_RUN);
|
||||
QS_FILTER_ON(QS_TEST_FAIL);
|
||||
QS_FILTER_ON(QS_ASSERT_FAIL);
|
||||
QS_FILTER_ON(PHILO_STAT);
|
||||
QS_FILTER_ON(COMMAND_STAT);
|
||||
|
||||
return (uint8_t)1; /* return success */
|
||||
}
|
||||
/*..........................................................................*/
|
||||
/*
|
||||
* ISR for receiving bytes from the QSPY Back-End
|
||||
* NOTE: This ISR is "QF-unaware" meaning that it does not interact with
|
||||
* the QF/QK and is not disabled. Such ISRs don't need to call QK_ISR_ENTRY/
|
||||
* QK_ISR_EXIT and they cannot post or publish events.
|
||||
*/
|
||||
void UART0_IRQHandler(void) {
|
||||
uint32_t status = UART0->RIS; /* get the raw interrupt status */
|
||||
UART0->ICR = status; /* clear the asserted interrupts */
|
||||
|
||||
while ((UART0->FR & UART_FR_RXFE) == 0) { /* while RX FIFO NOT empty */
|
||||
uint32_t b = UART0->DR;
|
||||
QS_RX_PUT(b);
|
||||
}
|
||||
}
|
||||
/*..........................................................................*/
|
||||
void QS_onCleanup(void) {
|
||||
}
|
||||
/*..........................................................................*/
|
||||
@ -433,7 +418,7 @@ void QS_onFlush(void) {
|
||||
QF_INT_DISABLE();
|
||||
while ((block = QS_getBlock(&fifo)) != (uint8_t *)0) {
|
||||
QF_INT_ENABLE();
|
||||
/* busy-wait until TX FIFO empty */
|
||||
/* busy-wait as long as TX FIFO has data to transmit */
|
||||
while ((UART0->FR & UART_FR_TXFE) == 0) {
|
||||
}
|
||||
|
||||
@ -445,6 +430,30 @@ void QS_onFlush(void) {
|
||||
}
|
||||
QF_INT_ENABLE();
|
||||
}
|
||||
/*..........................................................................*/
|
||||
/*! callback function to reset the target (to be implemented in the BSP) */
|
||||
void QS_onReset(void) {
|
||||
NVIC_SystemReset();
|
||||
}
|
||||
/*..........................................................................*/
|
||||
/*! callback function to execute a user command (to be implemented in BSP) */
|
||||
void QS_onCommand(uint8_t cmdId, uint32_t param) {
|
||||
void assert_failed(char const *module, int loc);
|
||||
(void)cmdId;
|
||||
(void)param;
|
||||
QS_BEGIN(COMMAND_STAT, (void *)0) /* application-specific record begin */
|
||||
QS_U8(2, cmdId);
|
||||
QS_U32(8, param);
|
||||
QS_END()
|
||||
|
||||
if (cmdId == 10U) {
|
||||
Q_ERROR();
|
||||
}
|
||||
else if (cmdId == 11U) {
|
||||
assert_failed("QS_onCommand", 123);
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* Q_SPY */
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
##############################################################################
|
||||
# Product: Makefile for DPP on EK-TM4C123GXL, QK kernel, GNU-ARM
|
||||
# Last Updated for Version: 5.4.1
|
||||
# Date of the Last Update: 2015-05-21
|
||||
# Last Updated for Version: 5.5.0
|
||||
# Date of the Last Update: 2015-08-13
|
||||
#
|
||||
# Q u a n t u m L e a P s
|
||||
# ---------------------------
|
||||
@ -28,8 +28,8 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Contact information:
|
||||
# Web: http://www.state-machine.com
|
||||
# Email: info@state-machine.com
|
||||
# http://www.state-machine.com
|
||||
# mailto:info@state-machine.com
|
||||
##############################################################################
|
||||
# examples of invoking this Makefile:
|
||||
# building configurations: Debug (default), Release, and Spy
|
||||
@ -126,6 +126,7 @@ QP_ASMS := \
|
||||
|
||||
QS_SRCS := \
|
||||
qs.c \
|
||||
qs_rx.c \
|
||||
qs_fp.c
|
||||
|
||||
LIB_DIRS :=
|
||||
@ -137,7 +138,7 @@ DEFINES :=
|
||||
# ARM CPU, FPU, and Float-ABI types
|
||||
ARM_CPU := -mcpu=cortex-m4
|
||||
ARM_FPU := -mfpu=vfp
|
||||
FLOAT_ABI := -mfloat-abi=hard
|
||||
FLOAT_ABI := -mfloat-abi=softfp
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# GNU-ARM toolset (NOTE: You need to adjust to your machine)
|
||||
@ -261,7 +262,8 @@ $(TARGET_BIN): $(TARGET_ELF)
|
||||
$(BIN) -O binary $< $@
|
||||
|
||||
$(TARGET_ELF) : $(ASM_OBJS_EXT) $(C_OBJS_EXT) $(CPP_OBJS_EXT)
|
||||
$(LINK) $(LINKFLAGS) -o $@ $^ $(LIBS)
|
||||
$(CC) $(CFLAGS) -c $(QPC)/include/qstamp.c -o $(BIN_DIR)/qstamp.o
|
||||
$(LINK) $(LINKFLAGS) -o $@ $^ $(BIN_DIR)/qstamp.o $(LIBS)
|
||||
|
||||
$(BIN_DIR)/%.d : %.c
|
||||
$(CC) -MM -MT $(@:.d=.o) $(CFLAGS) $< > $@
|
||||
|
@ -12,7 +12,7 @@
|
||||
<name>General</name>
|
||||
<archiveVersion>3</archiveVersion>
|
||||
<data>
|
||||
<version>22</version>
|
||||
<version>24</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
@ -27,11 +27,6 @@
|
||||
<name>ListPath</name>
|
||||
<state>dbg</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Variant</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GEndianMode</name>
|
||||
<state>0</state>
|
||||
@ -58,11 +53,6 @@
|
||||
<name>GOutputBinary</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU</name>
|
||||
<version>5</version>
|
||||
<state>7</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGCoreOrChip</name>
|
||||
<state>1</state>
|
||||
@ -87,7 +77,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>OGLastSavedByProductVersion</name>
|
||||
<state>7.40.2.8567</state>
|
||||
<state>7.40.3.8937</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralEnableMisra</name>
|
||||
@ -135,14 +125,9 @@
|
||||
<name>RTConfigPath2</name>
|
||||
<state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GBECoreSlave</name>
|
||||
<version>21</version>
|
||||
<version>22</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
@ -157,6 +142,34 @@
|
||||
<name>GRuntimeLibThreads</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CoreVariant</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUDeviceSlave</name>
|
||||
<state>TM4C123GH6PM TexasInstruments TM4C123GH6PM</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU2</name>
|
||||
<version>0</version>
|
||||
<state>4</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NrRegs</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NEON</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave2</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
@ -629,7 +642,7 @@
|
||||
<name>BUILDACTION</name>
|
||||
<archiveVersion>1</archiveVersion>
|
||||
<data>
|
||||
<prebuild></prebuild>
|
||||
<prebuild>cmd /c "if exist $OBJ_DIR$\qstamp.o del $OBJ_DIR$\qstamp.o"</prebuild>
|
||||
<postbuild></postbuild>
|
||||
</data>
|
||||
</settings>
|
||||
@ -965,7 +978,7 @@
|
||||
<name>General</name>
|
||||
<archiveVersion>3</archiveVersion>
|
||||
<data>
|
||||
<version>22</version>
|
||||
<version>24</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>0</debug>
|
||||
<option>
|
||||
@ -980,11 +993,6 @@
|
||||
<name>ListPath</name>
|
||||
<state>rel</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Variant</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GEndianMode</name>
|
||||
<state>0</state>
|
||||
@ -1011,11 +1019,6 @@
|
||||
<name>GOutputBinary</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU</name>
|
||||
<version>5</version>
|
||||
<state>7</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGCoreOrChip</name>
|
||||
<state>1</state>
|
||||
@ -1040,7 +1043,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>OGLastSavedByProductVersion</name>
|
||||
<state>7.40.2.8567</state>
|
||||
<state>7.40.3.8937</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralEnableMisra</name>
|
||||
@ -1088,14 +1091,9 @@
|
||||
<name>RTConfigPath2</name>
|
||||
<state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GBECoreSlave</name>
|
||||
<version>21</version>
|
||||
<version>22</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
@ -1110,6 +1108,34 @@
|
||||
<name>GRuntimeLibThreads</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CoreVariant</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUDeviceSlave</name>
|
||||
<state>TM4C123GH6PM TexasInstruments TM4C123GH6PM</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU2</name>
|
||||
<version>0</version>
|
||||
<state>4</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NrRegs</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NEON</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave2</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
@ -1582,7 +1608,7 @@
|
||||
<name>BUILDACTION</name>
|
||||
<archiveVersion>1</archiveVersion>
|
||||
<data>
|
||||
<prebuild></prebuild>
|
||||
<prebuild>cmd /c "if exist $OBJ_DIR$\qstamp.o del $OBJ_DIR$\qstamp.o"</prebuild>
|
||||
<postbuild></postbuild>
|
||||
</data>
|
||||
</settings>
|
||||
@ -1918,7 +1944,7 @@
|
||||
<name>General</name>
|
||||
<archiveVersion>3</archiveVersion>
|
||||
<data>
|
||||
<version>22</version>
|
||||
<version>24</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
@ -1933,11 +1959,6 @@
|
||||
<name>ListPath</name>
|
||||
<state>spy</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Variant</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GEndianMode</name>
|
||||
<state>0</state>
|
||||
@ -1964,11 +1985,6 @@
|
||||
<name>GOutputBinary</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU</name>
|
||||
<version>5</version>
|
||||
<state>7</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGCoreOrChip</name>
|
||||
<state>1</state>
|
||||
@ -1993,7 +2009,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>OGLastSavedByProductVersion</name>
|
||||
<state>7.40.2.8567</state>
|
||||
<state>7.40.3.8937</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralEnableMisra</name>
|
||||
@ -2041,14 +2057,9 @@
|
||||
<name>RTConfigPath2</name>
|
||||
<state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GBECoreSlave</name>
|
||||
<version>21</version>
|
||||
<version>22</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
@ -2063,6 +2074,34 @@
|
||||
<name>GRuntimeLibThreads</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CoreVariant</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUDeviceSlave</name>
|
||||
<state>TM4C123GH6PM TexasInstruments TM4C123GH6PM</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU2</name>
|
||||
<version>0</version>
|
||||
<state>4</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NrRegs</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NEON</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave2</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
@ -2535,7 +2574,7 @@
|
||||
<name>BUILDACTION</name>
|
||||
<archiveVersion>1</archiveVersion>
|
||||
<data>
|
||||
<prebuild></prebuild>
|
||||
<prebuild>cmd /c "if exist $OBJ_DIR$\qstamp.o del $OBJ_DIR$\qstamp.o"</prebuild>
|
||||
<postbuild></postbuild>
|
||||
</data>
|
||||
</settings>
|
||||
@ -2878,6 +2917,9 @@
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\philo.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\include\qstamp.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\table.c</name>
|
||||
</file>
|
||||
@ -2969,6 +3011,9 @@
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\source\qs_pkg.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\source\qs_rx.c</name>
|
||||
</file>
|
||||
</group>
|
||||
</project>
|
||||
|
||||
|
375
examples/arm-cm/dpp_ek-tm4c123gxl/qspy/dpp.tcl
Normal file
@ -0,0 +1,375 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# Product: QSpyView -- Customization example for DPP application
|
||||
# Last updated for version 5.5.0
|
||||
# Last updated on 2015-08-21
|
||||
#
|
||||
# Q u a n t u m L e a P s
|
||||
# ---------------------------
|
||||
# innovating embedded systems
|
||||
#
|
||||
# Copyright (C) Quantum Leaps, LLC, All rights reserved.
|
||||
#
|
||||
# This program is open source software: you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License as published
|
||||
# by the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Alternatively, this program may be distributed and modified under the
|
||||
# terms of Quantum Leaps commercial licenses, which expressly supersede
|
||||
# the GNU General Public License and are specifically designed for
|
||||
# licensees interested in retaining the proprietary status of their code.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Contact information:
|
||||
# http://www.state-machine.com
|
||||
# mailto:info@state-machine.com
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
# command handlers ===========================================================
|
||||
proc onMyCommand {} {
|
||||
# do something here, for example:
|
||||
# - inject an event to the Target
|
||||
# - send a command to the Target
|
||||
# - peek memory
|
||||
# - poke memory
|
||||
# - exectute system tick in the Target
|
||||
# - open a dialog box...
|
||||
# - etc.
|
||||
|
||||
# as an example, the following code sends a command to the Target
|
||||
variable ::qspy::QS_RX
|
||||
::qspy::sendPkt [binary format cci $::qspy::QS_RX(COMMAND) 1 12345]
|
||||
}
|
||||
|
||||
proc onPause {} {
|
||||
global theButtonId theBtnState
|
||||
if {[string equal $theBtnState BTN_UP]} { ;# is DWN?
|
||||
set theBtnState BTN_DWN
|
||||
::qspy::sendEvent 6 6 0
|
||||
} else {
|
||||
set theBtnState BTN_UP
|
||||
::qspy::sendEvent 6 7 0
|
||||
}
|
||||
.canv.c itemconfigure $theButtonId -image ::img::$theBtnState
|
||||
}
|
||||
|
||||
# additinal menu options =====================================================
|
||||
.mbar.cust add command -label "MyCommand" -command onMyCommand
|
||||
|
||||
|
||||
# specific canvas for DPP ====================================================
|
||||
image create photo ::img::e -file img/eating.gif
|
||||
image create photo ::img::h -file img/hungry.gif
|
||||
image create photo ::img::t -file img/thinking.gif
|
||||
image create photo ::img::BTN_UP -file img/BTN_UP.gif
|
||||
image create photo ::img::BTN_DWN -file img/BTN_DWN.gif
|
||||
|
||||
wm geometry .canv =400x260
|
||||
.canv.c configure -width 400
|
||||
.canv.c configure -height 260
|
||||
|
||||
set thePhiloId [.canv.c create image 190 57 -image ::img::t]
|
||||
.canv.c create image 273 100 -image ::img::t
|
||||
.canv.c create image 237 185 -image ::img::t
|
||||
.canv.c create image 146 184 -image ::img::t
|
||||
.canv.c create image 107 100 -image ::img::t
|
||||
|
||||
|
||||
set theButtonId [.canv.c create image 200 120 -image ::img::BTN_UP]
|
||||
set theBtnState BTN_UP
|
||||
.canv.c bind $theButtonId <ButtonPress-1> onPause
|
||||
|
||||
# QS record handlers =========================================================
|
||||
|
||||
# QS User records [70..0x7C] -------------------------------------------------
|
||||
proc ::qspy::rec70 {} { ;# QS_USER
|
||||
variable thePkt
|
||||
variable theFmt
|
||||
binary scan $thePkt xx$theFmt(tstamp)xcxa* \
|
||||
tstamp philoNum stat
|
||||
|
||||
dispTxt [format "%010u Philo %1d is %s" $tstamp $philoNum $stat]
|
||||
|
||||
global thePhiloId
|
||||
set img [string index $stat 0]
|
||||
.canv.c itemconfigure [expr $thePhiloId + $philoNum] -image ::img::$img
|
||||
}
|
||||
#.............................................................................
|
||||
proc ::qspy::rec71 {} { ;# QS_USER + 1
|
||||
variable thePkt
|
||||
variable theFmt
|
||||
binary scan $thePkt xx$theFmt(tstamp)xcxi \
|
||||
tstamp cmdId param
|
||||
dispTxt [format "%010u cmd=%d param=%d" $tstamp $cmdId $param]
|
||||
}
|
||||
proc ::qspy::rec72 {} { ;# QS_USER + 2
|
||||
}
|
||||
proc ::qspy::rec73 {} { ;# QS_USER + 3
|
||||
}
|
||||
proc ::qspy::rec74 {} { ;# QS_USER + 4
|
||||
}
|
||||
proc ::qspy::rec75 {} { ;# QS_USER + 5
|
||||
}
|
||||
proc ::qspy::rec76 {} { ;# QS_USER + 6
|
||||
}
|
||||
proc ::qspy::rec77 {} { ;# QS_USER + 7
|
||||
}
|
||||
proc ::qspy::rec78 {} { ;# QS_USER + 8
|
||||
}
|
||||
proc ::qspy::rec79 {} { ;# QS_USER + 9
|
||||
}
|
||||
proc ::qspy::rec80 {} { ;# QS_USER + 10
|
||||
}
|
||||
proc ::qspy::rec81 {} { ;# QS_USER + 11
|
||||
}
|
||||
proc ::qspy::rec82 {} { ;# QS_USER + 12
|
||||
}
|
||||
proc ::qspy::rec83 {} { ;# QS_USER + 13
|
||||
}
|
||||
proc ::qspy::rec84 {} { ;# QS_USER + 14
|
||||
}
|
||||
proc ::qspy::rec85 {} { ;# QS_USER + 15
|
||||
}
|
||||
proc ::qspy::rec86 {} { ;# QS_USER + 16
|
||||
}
|
||||
proc ::qspy::rec87 {} { ;# QS_USER + 17
|
||||
}
|
||||
proc ::qspy::rec88 {} { ;# QS_USER + 18
|
||||
}
|
||||
proc ::qspy::rec89 {} { ;# QS_USER + 19
|
||||
}
|
||||
proc ::qspy::rec90 {} { ;# QS_USER + 20
|
||||
}
|
||||
proc ::qspy::rec91 {} { ;# QS_USER + 21
|
||||
}
|
||||
proc ::qspy::rec92 {} { ;# QS_USER + 22
|
||||
}
|
||||
proc ::qspy::rec93 {} { ;# QS_USER + 23
|
||||
}
|
||||
proc ::qspy::rec94 {} { ;# QS_USER + 24
|
||||
}
|
||||
proc ::qspy::rec95 {} { ;# QS_USER + 25
|
||||
}
|
||||
proc ::qspy::rec96 {} { ;# QS_USER + 26
|
||||
}
|
||||
proc ::qspy::rec97 {} { ;# QS_USER + 27
|
||||
}
|
||||
proc ::qspy::rec98 {} { ;# QS_USER + 28
|
||||
}
|
||||
proc ::qspy::rec99 {} { ;# QS_USER + 29
|
||||
}
|
||||
proc ::qspy::rec100 {} { ;# QS_USER + 30
|
||||
}
|
||||
proc ::qspy::rec101 {} { ;# QS_USER + 31
|
||||
}
|
||||
proc ::qspy::rec102 {} { ;# QS_USER + 32
|
||||
}
|
||||
proc ::qspy::rec103 {} { ;# QS_USER + 33
|
||||
}
|
||||
proc ::qspy::rec104 {} { ;# QS_USER + 34
|
||||
}
|
||||
proc ::qspy::rec105 {} { ;# QS_USER + 35
|
||||
}
|
||||
proc ::qspy::rec106 {} { ;# QS_USER + 36
|
||||
}
|
||||
proc ::qspy::rec107 {} { ;# QS_USER + 37
|
||||
}
|
||||
proc ::qspy::rec108 {} { ;# QS_USER + 38
|
||||
}
|
||||
proc ::qspy::rec109 {} { ;# QS_USER + 39
|
||||
}
|
||||
proc ::qspy::rec110 {} { ;# QS_USER + 40
|
||||
}
|
||||
proc ::qspy::rec111 {} { ;# QS_USER + 41
|
||||
}
|
||||
proc ::qspy::rec112 {} { ;# QS_USER + 42
|
||||
}
|
||||
proc ::qspy::rec113 {} { ;# QS_USER + 43
|
||||
}
|
||||
proc ::qspy::rec114 {} { ;# QS_USER + 44
|
||||
}
|
||||
proc ::qspy::rec115 {} { ;# QS_USER + 45
|
||||
}
|
||||
proc ::qspy::rec116 {} { ;# QS_USER + 46
|
||||
}
|
||||
proc ::qspy::rec117 {} { ;# QS_USER + 47
|
||||
}
|
||||
proc ::qspy::rec118 {} { ;# QS_USER + 48
|
||||
}
|
||||
proc ::qspy::rec119 {} { ;# QS_USER + 49
|
||||
}
|
||||
proc ::qspy::rec120 {} { ;# QS_USER + 50
|
||||
}
|
||||
proc ::qspy::rec121 {} { ;# QS_USER + 51
|
||||
}
|
||||
proc ::qspy::rec122 {} { ;# QS_USER + 52
|
||||
}
|
||||
proc ::qspy::rec123 {} { ;# QS_USER + 53
|
||||
}
|
||||
proc ::qspy::rec124 {} { ;# QS_USER + 54
|
||||
}
|
||||
|
||||
|
||||
# Special QS records ---------------------------------------------------------
|
||||
proc ::qspy::recRESET {} { ;# target reset callback
|
||||
}
|
||||
proc ::qspy::recINFO {} { ;# target info callback
|
||||
}
|
||||
|
||||
# QS standard records [1..54] ------------------------------------------------
|
||||
proc ::qspy::rec0 {} { ;# QS_EMPTY
|
||||
}
|
||||
|
||||
# [1] QEP records...
|
||||
proc ::qspy::rec1 {} { ;# QS_QEP_STATE_ENTRY
|
||||
}
|
||||
proc ::qspy::rec2 {} { ;# QS_QEP_STATE_EXIT
|
||||
}
|
||||
proc ::qspy::rec3 {} { ;# QS_QEP_STATE_INIT
|
||||
}
|
||||
proc ::qspy::rec4 {} { ;# QS_QEP_INIT_TRAN
|
||||
}
|
||||
proc ::qspy::rec5 {} { ;# QS_QEP_INTERN_TRAN
|
||||
}
|
||||
proc ::qspy::rec6 {} { ;# QS_QEP_TRAN
|
||||
}
|
||||
proc ::qspy::rec7 {} { ;# QS_QEP_IGNORED
|
||||
}
|
||||
proc ::qspy::rec8 {} { ;# QS_QEP_DISPATCH
|
||||
}
|
||||
proc ::qspy::rec9 {} { ;# QS_QEP_UNHANDLED
|
||||
}
|
||||
|
||||
# [10] QF records...
|
||||
proc ::qspy::rec10 {} { ;# QS_QF_ACTIVE_ADD
|
||||
}
|
||||
proc ::qspy::rec11 {} { ;# QS_QF_ACTIVE_REMOVE
|
||||
}
|
||||
proc ::qspy::rec12 {} { ;# QS_QF_ACTIVE_SUBSCRIBE
|
||||
}
|
||||
proc ::qspy::rec13 {} { ;# QS_QF_ACTIVE_UNSUBSCRIBE
|
||||
}
|
||||
proc ::qspy::rec14 {} { ;# QS_QF_ACTIVE_POST_FIFO
|
||||
}
|
||||
proc ::qspy::rec15 {} { ;# QS_QF_ACTIVE_POST_LIFO
|
||||
}
|
||||
proc ::qspy::rec16 {} { ;# QS_QF_ACTIVE_GET
|
||||
}
|
||||
proc ::qspy::rec17 {} { ;# QS_QF_ACTIVE_GET_LAST
|
||||
}
|
||||
proc ::qspy::rec18 {} { ;# QS_QF_EQUEUE_INIT
|
||||
}
|
||||
proc ::qspy::rec19 {} { ;# QS_QF_EQUEUE_POST_FIFO
|
||||
}
|
||||
proc ::qspy::rec20 {} { ;# QS_QF_EQUEUE_POST_LIFO
|
||||
}
|
||||
proc ::qspy::rec21 {} { ;# QS_QF_EQUEUE_GET
|
||||
}
|
||||
proc ::qspy::rec22 {} { ;# QS_QF_EQUEUE_GET_LAST
|
||||
}
|
||||
proc ::qspy::rec23 {} { ;# QS_QF_MPOOL_INIT
|
||||
}
|
||||
proc ::qspy::rec24 {} { ;# QS_QF_MPOOL_GET
|
||||
}
|
||||
proc ::qspy::rec25 {} { ;# QS_QF_MPOOL_PUT
|
||||
}
|
||||
proc ::qspy::rec26 {} { ;# QS_QF_PUBLISH
|
||||
}
|
||||
proc ::qspy::rec27 {} { ;# QS_QF_RESERVED8
|
||||
}
|
||||
proc ::qspy::rec28 {} { ;# QS_QF_NEW
|
||||
}
|
||||
proc ::qspy::rec29 {} { ;# QS_QF_GC_ATTEMPT
|
||||
}
|
||||
proc ::qspy::rec30 {} { ;# QS_QF_GC
|
||||
}
|
||||
proc ::qspy::rec31 {} { ;# QS_QF_TICK
|
||||
}
|
||||
proc ::qspy::rec32 {} { ;# QS_QF_TIMEEVT_ARM
|
||||
}
|
||||
proc ::qspy::rec33 {} { ;# QS_QF_TIMEEVT_AUTO_DISARM
|
||||
}
|
||||
proc ::qspy::rec34 {} { ;# QS_QF_TIMEEVT_DISARM_ATTEMPT
|
||||
}
|
||||
proc ::qspy::rec35 {} { ;# QS_QF_TIMEEVT_DISARM
|
||||
}
|
||||
proc ::qspy::rec36 {} { ;# QS_QF_TIMEEVT_REARM
|
||||
}
|
||||
proc ::qspy::rec37 {} { ;# QS_QF_TIMEEVT_POST
|
||||
}
|
||||
proc ::qspy::rec38 {} { ;# QS_QF_TIMEEVT_CTR
|
||||
}
|
||||
proc ::qspy::rec39 {} { ;# QS_QF_CRIT_ENTRY
|
||||
}
|
||||
proc ::qspy::rec40 {} { ;# QS_QF_CRIT_EXIT
|
||||
}
|
||||
proc ::qspy::rec41 {} { ;# QS_QF_ISR_ENTRY
|
||||
}
|
||||
proc ::qspy::rec42 {} { ;# QS_QF_ISR_EXIT
|
||||
}
|
||||
proc ::qspy::rec43 {} { ;# QS_QF_INT_DISABLE
|
||||
}
|
||||
proc ::qspy::rec44 {} { ;# QS_QF_INT_ENABLE
|
||||
}
|
||||
proc ::qspy::rec45 {} { ;# QS_QF_ACTIVE_POST_ATTEMPT
|
||||
}
|
||||
proc ::qspy::rec46 {} { ;# QS_QF_EQUEUE_POST_ATTEMPT
|
||||
}
|
||||
proc ::qspy::rec47 {} { ;# QS_QF_MPOOL_GET_ATTEMPT
|
||||
}
|
||||
proc ::qspy::rec48 {} { ;# QS_QF_RESERVED1
|
||||
}
|
||||
proc ::qspy::rec49 {} { ;# QS_QF_RESERVED0
|
||||
}
|
||||
|
||||
# [50] QK records
|
||||
proc ::qspy::rec50 {} { ;# QS_QK_MUTEX_LOCK
|
||||
}
|
||||
proc ::qspy::rec51 {} { ;# QS_QK_MUTEX_UNLOCK
|
||||
}
|
||||
proc ::qspy::rec52 {} { ;# QS_QK_SCHEDULE
|
||||
}
|
||||
proc ::qspy::rec53 {} { ;# QS_QK_RESERVED1
|
||||
}
|
||||
proc ::qspy::rec54 {} { ;# QS_QK_RESERVED0
|
||||
}
|
||||
|
||||
# [55] Additional QEP records
|
||||
proc ::qspy::rec55 {} { ;# QS_QEP_TRAN_HIST
|
||||
}
|
||||
proc ::qspy::rec56 {} { ;# QS_QEP_TRAN_EP
|
||||
}
|
||||
proc ::qspy::rec57 {} { ;# QS_QEP_TRAN_XP
|
||||
}
|
||||
proc ::qspy::rec58 {} { ;# QS_QEP_RESERVED1
|
||||
}
|
||||
proc ::qspy::rec59 {} { ;# QS_QEP_RESERVED0
|
||||
}
|
||||
|
||||
# Miscellaneous QS records
|
||||
proc ::qspy::rec60 {} { ;# QS_SIG_DICT
|
||||
}
|
||||
proc ::qspy::rec61 {} { ;# QS_OBJ_DICT
|
||||
}
|
||||
proc ::qspy::rec62 {} { ;# QS_FUN_DICT
|
||||
}
|
||||
proc ::qspy::rec63 {} { ;# QS_USR_DICT
|
||||
}
|
||||
proc ::qspy::rec65 {} { ;# QS_RESERVED0
|
||||
}
|
||||
proc ::qspy::rec66 {} { ;# QS_RX_STATUS
|
||||
}
|
||||
proc ::qspy::rec67 {} { ;# QS_TEST_STATUS
|
||||
}
|
||||
proc ::qspy::rec68 {} { ;# QS_PEEK_DATA
|
||||
}
|
||||
proc ::qspy::rec69 {} { ;# QS_ASSERT_FAIL
|
||||
}
|
||||
|
BIN
examples/arm-cm/dpp_ek-tm4c123gxl/qspy/img/BTN_DWN.gif
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
examples/arm-cm/dpp_ek-tm4c123gxl/qspy/img/BTN_UP.gif
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
examples/arm-cm/dpp_ek-tm4c123gxl/qspy/img/eating.gif
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
examples/arm-cm/dpp_ek-tm4c123gxl/qspy/img/hungry.gif
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
examples/arm-cm/dpp_ek-tm4c123gxl/qspy/img/thinking.gif
Normal file
After Width: | Height: | Size: 2.3 KiB |
1
examples/arm-cm/dpp_ek-tm4c123gxl/qspy/qspyview.bat
Normal file
@ -0,0 +1 @@
|
||||
wish C:\qp\qtools\qspy\qspyview\qspyview.tcl dpp.tcl
|
BIN
examples/arm-cm/dpp_ek-tm4c123gxl/qspy/qspyview.lnk
Normal file
@ -77,7 +77,7 @@
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<IsCurrentTarget>1</IsCurrentTarget>
|
||||
</OPTFL>
|
||||
<CpuCode>4</CpuCode>
|
||||
<CpuCode>255</CpuCode>
|
||||
<DebugOpt>
|
||||
<uSim>0</uSim>
|
||||
<uTrg>1</uTrg>
|
||||
@ -188,6 +188,7 @@
|
||||
</DebugFlag>
|
||||
<LintExecutable></LintExecutable>
|
||||
<LintConfigFile></LintConfigFile>
|
||||
<bLintAuto>0</bLintAuto>
|
||||
</TargetOption>
|
||||
</Target>
|
||||
|
||||
@ -364,6 +365,7 @@
|
||||
</DebugFlag>
|
||||
<LintExecutable></LintExecutable>
|
||||
<LintConfigFile></LintConfigFile>
|
||||
<bLintAuto>0</bLintAuto>
|
||||
</TargetOption>
|
||||
</Target>
|
||||
|
||||
@ -534,6 +536,7 @@
|
||||
</DebugFlag>
|
||||
<LintExecutable></LintExecutable>
|
||||
<LintConfigFile></LintConfigFile>
|
||||
<bLintAuto>0</bLintAuto>
|
||||
</TargetOption>
|
||||
</Target>
|
||||
|
||||
@ -621,6 +624,19 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>1</GroupNumber>
|
||||
<FileNumber>7</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\..\..\..\include\qstamp.c</PathWithFileName>
|
||||
<FilenameWithoutPath>qstamp.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
@ -631,7 +647,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>7</FileNumber>
|
||||
<FileNumber>8</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -644,7 +660,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>8</FileNumber>
|
||||
<FileNumber>9</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -657,7 +673,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>9</FileNumber>
|
||||
<FileNumber>10</FileNumber>
|
||||
<FileType>2</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -670,7 +686,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>10</FileNumber>
|
||||
<FileNumber>11</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -683,7 +699,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>11</FileNumber>
|
||||
<FileNumber>12</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -696,7 +712,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>12</FileNumber>
|
||||
<FileNumber>13</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -709,7 +725,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>13</FileNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -730,7 +746,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileNumber>15</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -743,7 +759,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>15</FileNumber>
|
||||
<FileNumber>16</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -756,7 +772,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>16</FileNumber>
|
||||
<FileNumber>17</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -769,7 +785,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>17</FileNumber>
|
||||
<FileNumber>18</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -782,7 +798,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>18</FileNumber>
|
||||
<FileNumber>19</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -795,7 +811,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>19</FileNumber>
|
||||
<FileNumber>20</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -808,7 +824,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>20</FileNumber>
|
||||
<FileNumber>21</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -821,7 +837,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>21</FileNumber>
|
||||
<FileNumber>22</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -834,7 +850,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>22</FileNumber>
|
||||
<FileNumber>23</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -847,7 +863,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>23</FileNumber>
|
||||
<FileNumber>24</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -860,7 +876,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>24</FileNumber>
|
||||
<FileNumber>25</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -873,7 +889,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>25</FileNumber>
|
||||
<FileNumber>26</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -886,7 +902,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>26</FileNumber>
|
||||
<FileNumber>27</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -915,7 +931,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>27</FileNumber>
|
||||
<FileNumber>28</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -928,7 +944,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>28</FileNumber>
|
||||
<FileNumber>29</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -941,7 +957,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>29</FileNumber>
|
||||
<FileNumber>30</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -952,6 +968,19 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>31</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\..\..\..\source\qs_rx.c</PathWithFileName>
|
||||
<FilenameWithoutPath>qs_rx.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
</ProjectOpt>
|
||||
|
@ -10,6 +10,7 @@
|
||||
<TargetName>dpp-dbg</TargetName>
|
||||
<ToolsetNumber>0x4</ToolsetNumber>
|
||||
<ToolsetName>ARM-ADS</ToolsetName>
|
||||
<pCCUsed>5060020::V5.06 (build 20)::ARMCC</pCCUsed>
|
||||
<TargetOption>
|
||||
<TargetCommonOption>
|
||||
<Device>TM4C123GH6PM</Device>
|
||||
@ -68,9 +69,9 @@
|
||||
<nStopU2X>0</nStopU2X>
|
||||
</BeforeCompile>
|
||||
<BeforeMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg1>1</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg1Name>cmd /c "del .\dbg\qstamp.o"</UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
@ -84,6 +85,8 @@
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopA1X>0</nStopA1X>
|
||||
<nStopA2X>0</nStopA2X>
|
||||
</AfterMake>
|
||||
<SelectedForBatchBuild>1</SelectedForBatchBuild>
|
||||
<SVCSIdString></SVCSIdString>
|
||||
@ -227,6 +230,7 @@
|
||||
<useUlib>0</useUlib>
|
||||
<EndSel>0</EndSel>
|
||||
<uLtcg>0</uLtcg>
|
||||
<nSecure>0</nSecure>
|
||||
<RoSelD>3</RoSelD>
|
||||
<RwSelD>3</RwSelD>
|
||||
<CodeSel>0</CodeSel>
|
||||
@ -361,6 +365,10 @@
|
||||
<uSurpInc>1</uSurpInc>
|
||||
<uC99>0</uC99>
|
||||
<useXO>0</useXO>
|
||||
<v6Lang>0</v6Lang>
|
||||
<v6LangP>0</v6LangP>
|
||||
<vShortEn>0</vShortEn>
|
||||
<vShortWch>0</vShortWch>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define>__FPU_PRESENT</Define>
|
||||
@ -438,6 +446,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\table.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qstamp.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\include\qstamp.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
@ -589,6 +602,10 @@
|
||||
<uSurpInc>2</uSurpInc>
|
||||
<uC99>2</uC99>
|
||||
<useXO>2</useXO>
|
||||
<v6Lang>0</v6Lang>
|
||||
<v6LangP>0</v6LangP>
|
||||
<vShortEn>0</vShortEn>
|
||||
<vShortWch>0</vShortWch>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
@ -631,6 +648,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_fp.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qs_rx.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_rx.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
</Groups>
|
||||
@ -639,6 +661,7 @@
|
||||
<TargetName>dpp-rel</TargetName>
|
||||
<ToolsetNumber>0x4</ToolsetNumber>
|
||||
<ToolsetName>ARM-ADS</ToolsetName>
|
||||
<pCCUsed>5060020::V5.06 (build 20)::ARMCC</pCCUsed>
|
||||
<TargetOption>
|
||||
<TargetCommonOption>
|
||||
<Device>TM4C123GH6PM</Device>
|
||||
@ -697,9 +720,9 @@
|
||||
<nStopU2X>0</nStopU2X>
|
||||
</BeforeCompile>
|
||||
<BeforeMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg1>1</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg1Name>cmd /c "del .\rel\qstamp.o"</UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
@ -713,6 +736,8 @@
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopA1X>0</nStopA1X>
|
||||
<nStopA2X>0</nStopA2X>
|
||||
</AfterMake>
|
||||
<SelectedForBatchBuild>1</SelectedForBatchBuild>
|
||||
<SVCSIdString></SVCSIdString>
|
||||
@ -856,6 +881,7 @@
|
||||
<useUlib>0</useUlib>
|
||||
<EndSel>0</EndSel>
|
||||
<uLtcg>0</uLtcg>
|
||||
<nSecure>0</nSecure>
|
||||
<RoSelD>3</RoSelD>
|
||||
<RwSelD>3</RwSelD>
|
||||
<CodeSel>0</CodeSel>
|
||||
@ -990,6 +1016,10 @@
|
||||
<uSurpInc>1</uSurpInc>
|
||||
<uC99>0</uC99>
|
||||
<useXO>0</useXO>
|
||||
<v6Lang>0</v6Lang>
|
||||
<v6LangP>0</v6LangP>
|
||||
<vShortEn>0</vShortEn>
|
||||
<vShortWch>0</vShortWch>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define>NDEBUG __FPU_PRESENT</Define>
|
||||
@ -1067,6 +1097,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\table.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qstamp.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\include\qstamp.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
@ -1218,6 +1253,10 @@
|
||||
<uSurpInc>2</uSurpInc>
|
||||
<uC99>2</uC99>
|
||||
<useXO>2</useXO>
|
||||
<v6Lang>0</v6Lang>
|
||||
<v6LangP>0</v6LangP>
|
||||
<vShortEn>0</vShortEn>
|
||||
<vShortWch>0</vShortWch>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
@ -1260,6 +1299,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_fp.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qs_rx.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_rx.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
</Groups>
|
||||
@ -1268,6 +1312,7 @@
|
||||
<TargetName>dpp-spy</TargetName>
|
||||
<ToolsetNumber>0x4</ToolsetNumber>
|
||||
<ToolsetName>ARM-ADS</ToolsetName>
|
||||
<pCCUsed>5060020::V5.06 (build 20)::ARMCC</pCCUsed>
|
||||
<TargetOption>
|
||||
<TargetCommonOption>
|
||||
<Device>TM4C123GH6PM</Device>
|
||||
@ -1326,9 +1371,9 @@
|
||||
<nStopU2X>0</nStopU2X>
|
||||
</BeforeCompile>
|
||||
<BeforeMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg1>1</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg1Name>cmd /c "del .\spy\qstamp.o"</UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
@ -1342,6 +1387,8 @@
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopA1X>0</nStopA1X>
|
||||
<nStopA2X>0</nStopA2X>
|
||||
</AfterMake>
|
||||
<SelectedForBatchBuild>1</SelectedForBatchBuild>
|
||||
<SVCSIdString></SVCSIdString>
|
||||
@ -1485,6 +1532,7 @@
|
||||
<useUlib>0</useUlib>
|
||||
<EndSel>0</EndSel>
|
||||
<uLtcg>0</uLtcg>
|
||||
<nSecure>0</nSecure>
|
||||
<RoSelD>3</RoSelD>
|
||||
<RwSelD>3</RwSelD>
|
||||
<CodeSel>0</CodeSel>
|
||||
@ -1619,6 +1667,10 @@
|
||||
<uSurpInc>1</uSurpInc>
|
||||
<uC99>0</uC99>
|
||||
<useXO>0</useXO>
|
||||
<v6Lang>0</v6Lang>
|
||||
<v6LangP>0</v6LangP>
|
||||
<vShortEn>0</vShortEn>
|
||||
<vShortWch>0</vShortWch>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define>Q_SPY __FPU_PRESENT</Define>
|
||||
@ -1696,6 +1748,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\table.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qstamp.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\include\qstamp.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
@ -1829,6 +1886,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_fp.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qs_rx.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\source\qs_rx.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
</Groups>
|
||||
|
@ -1,13 +1,13 @@
|
||||
/*****************************************************************************
|
||||
* Product: DPP example, EK-TM4C123GXL board, cooperative QV kernel
|
||||
* Last Updated for Version: 5.4.0
|
||||
* Date of the Last Update: 2015-04-04
|
||||
* Last Updated for Version: 5.5.0
|
||||
* Date of the Last Update: 2015-08-20
|
||||
*
|
||||
* Q u a n t u m L e a P s
|
||||
* ---------------------------
|
||||
* innovating embedded systems
|
||||
*
|
||||
* Copyright (C) Quantum Leaps, LLC. state-machine.com.
|
||||
* Copyright (C) Quantum Leaps, LLC. All rights reserved.
|
||||
*
|
||||
* This program is open source software: you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as published
|
||||
@ -28,8 +28,8 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Contact information:
|
||||
* Web: www.state-machine.com
|
||||
* Email: info@state-machine.com
|
||||
* http://www.state-machine.com
|
||||
* mailto:info@state-machine.com
|
||||
*****************************************************************************/
|
||||
#include "qpc.h"
|
||||
#include "dpp.h"
|
||||
@ -48,6 +48,7 @@ Q_DEFINE_THIS_FILE
|
||||
* DO NOT LEAVE THE ISR PRIORITIES AT THE DEFAULT VALUE!
|
||||
*/
|
||||
enum KernelUnawareISRs { /* see NOTE00 */
|
||||
UART0_PRIO,
|
||||
/* ... */
|
||||
MAX_KERNEL_UNAWARE_CMSIS_PRI /* keep always last */
|
||||
};
|
||||
@ -69,27 +70,33 @@ void GPIOPortA_IRQHandler(void);
|
||||
|
||||
/* Local-scope objects -----------------------------------------------------*/
|
||||
#define LED_RED (1U << 1)
|
||||
#define LED_GREEN (1U << 3)
|
||||
#define LED_BLUE (1U << 2)
|
||||
#define LED_GREEN (1U << 3)
|
||||
|
||||
#define BTN_SW1 (1U << 4)
|
||||
#define BTN_SW2 (1U << 0)
|
||||
|
||||
static unsigned l_rnd; /* random seed */
|
||||
static uint32_t l_rnd; /* random seed */
|
||||
|
||||
#ifdef Q_SPY
|
||||
|
||||
void UART0_IRQHandler(void);
|
||||
|
||||
QSTimeCtr QS_tickTime_;
|
||||
QSTimeCtr QS_tickPeriod_;
|
||||
static uint8_t l_SysTick_Handler;
|
||||
static uint8_t l_GPIOPortA_IRQHandler;
|
||||
|
||||
/* QS source IDs */
|
||||
static uint8_t const l_SysTick_Handler = (uint8_t)0;
|
||||
static uint8_t const l_GPIOPortA_IRQHandler = (uint8_t)0;
|
||||
|
||||
#define UART_BAUD_RATE 115200U
|
||||
#define UART_FR_TXFE 0x80U
|
||||
#define UART_FR_TXFE (1U << 7)
|
||||
#define UART_FR_RXFE (1U << 4)
|
||||
#define UART_TXFIFO_DEPTH 16U
|
||||
|
||||
enum AppRecords { /* application-specific trace records */
|
||||
PHILO_STAT = QS_USER
|
||||
PHILO_STAT = QS_USER,
|
||||
COMMAND_STAT
|
||||
};
|
||||
|
||||
#endif
|
||||
@ -172,18 +179,15 @@ void BSP_init(void) {
|
||||
FPU->FPCCR &= ~((1U << FPU_FPCCR_ASPEN_Pos) | (1U << FPU_FPCCR_LSPEN_Pos));
|
||||
#endif
|
||||
|
||||
/* enable clock to the peripherals used by the application */
|
||||
SYSCTL->RCGC2 |= (1U << 5); /* enable clock to GPIOF */
|
||||
__NOP(); /* wait after enabling clocks */
|
||||
__NOP();
|
||||
__NOP();
|
||||
/* enable clock for to the peripherals used by this application... */
|
||||
SYSCTL->RCGCGPIO |= (1U << 5); /* enable Run mode for GPIOF */
|
||||
|
||||
/* configure the LEDs and push buttons */
|
||||
GPIOF->DIR |= (LED_RED | LED_GREEN | LED_BLUE);/* set direction: output */
|
||||
GPIOF->DEN |= (LED_RED | LED_GREEN | LED_BLUE); /* digital enable */
|
||||
GPIOF->DATA_Bits[LED_RED] = 0; /* turn the LED off */
|
||||
GPIOF->DATA_Bits[LED_GREEN] = 0; /* turn the LED off */
|
||||
GPIOF->DATA_Bits[LED_BLUE] = 0; /* turn the LED off */
|
||||
GPIOF->DATA_Bits[LED_RED] = 0U; /* turn the LED off */
|
||||
GPIOF->DATA_Bits[LED_GREEN] = 0U; /* turn the LED off */
|
||||
GPIOF->DATA_Bits[LED_BLUE] = 0U; /* turn the LED off */
|
||||
|
||||
/* configure the Buttons */
|
||||
GPIOF->DIR &= ~(BTN_SW1 | BTN_SW2); /* set direction: input */
|
||||
@ -197,6 +201,8 @@ void BSP_init(void) {
|
||||
}
|
||||
QS_OBJ_DICTIONARY(&l_SysTick_Handler);
|
||||
QS_OBJ_DICTIONARY(&l_GPIOPortA_IRQHandler);
|
||||
QS_USR_DICTIONARY(PHILO_STAT);
|
||||
QS_USR_DICTIONARY(COMMAND_STAT);
|
||||
}
|
||||
/*..........................................................................*/
|
||||
void BSP_displayPhilStat(uint8_t n, char const *stat) {
|
||||
@ -249,12 +255,17 @@ void QF_onStartup(void) {
|
||||
* Assign a priority to EVERY ISR explicitly by calling NVIC_SetPriority().
|
||||
* DO NOT LEAVE THE ISR PRIORITIES AT THE DEFAULT VALUE!
|
||||
*/
|
||||
NVIC_SetPriority(UART0_IRQn, UART0_PRIO);
|
||||
NVIC_SetPriority(SysTick_IRQn, SYSTICK_PRIO);
|
||||
NVIC_SetPriority(GPIOA_IRQn, GPIOA_PRIO);
|
||||
/* ... */
|
||||
|
||||
/* enable IRQs... */
|
||||
NVIC_EnableIRQ(GPIOA_IRQn);
|
||||
|
||||
#ifdef Q_SPY
|
||||
NVIC_EnableIRQ(UART0_IRQn); /* UART0 interrupt used for QS-RX */
|
||||
#endif
|
||||
}
|
||||
/*..........................................................................*/
|
||||
void QF_onCleanup(void) {
|
||||
@ -267,67 +278,84 @@ void QV_onIdle(void) { /* called with interrupts disabled, see NOTE01 */
|
||||
|
||||
#ifdef Q_SPY
|
||||
QF_INT_ENABLE();
|
||||
QS_rxParse(); /* parse all the received bytes */
|
||||
|
||||
if ((UART0->FR & UART_FR_TXFE) != 0U) { /* TX done? */
|
||||
uint16_t fifo = UART_TXFIFO_DEPTH; /* max bytes we can accept */
|
||||
uint8_t const *block;
|
||||
|
||||
QF_INT_DISABLE();
|
||||
block = QS_getBlock(&fifo); /* try to get next block to transmit */
|
||||
block = QS_getBlock(&fifo); /* try to get next block to transmit */
|
||||
QF_INT_ENABLE();
|
||||
|
||||
while (fifo-- != 0) { /* any bytes in the block? */
|
||||
UART0->DR = *block++; /* put into the FIFO */
|
||||
while (fifo-- != 0) { /* any bytes in the block? */
|
||||
UART0->DR = *block++; /* put into the FIFO */
|
||||
}
|
||||
}
|
||||
#elif defined NDEBUG
|
||||
/* Put the CPU and peripherals to the low-power mode.
|
||||
* you might need to customize the clock management for your application,
|
||||
* see the datasheet for your particular Cortex-M MCU.
|
||||
* see the datasheet for your particular Cortex-M3 MCU.
|
||||
*/
|
||||
QV_CPU_SLEEP(); /* atomically go to sleep and enable interrupts */
|
||||
#else
|
||||
QF_INT_ENABLE(); /* just enable interrupts */
|
||||
__WFI(); /* Wait-For-Interrupt */
|
||||
#endif
|
||||
}
|
||||
|
||||
/*..........................................................................*/
|
||||
/* NOTE Q_onAssert() defined in assembly in startup_TM4C123GH6PM.s */
|
||||
void Q_onAssert(char const *file, int line) {
|
||||
/*
|
||||
* NOTE: add here your application-specific error handling
|
||||
*/
|
||||
(void)file;
|
||||
(void)line;
|
||||
QS_ASSERTION(file, line, (uint32_t)10000U); /* report assertion to QS */
|
||||
NVIC_SystemReset();
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
/* QS callbacks ============================================================*/
|
||||
#ifdef Q_SPY
|
||||
/*..........................................................................*/
|
||||
uint8_t QS_onStartup(void const *arg) {
|
||||
static uint8_t qsBuf[2*1024]; /* buffer for Quantum Spy */
|
||||
static uint8_t qsTxBuf[2*1024]; /* buffer for QS transmit channel */
|
||||
static uint8_t qsRxBuf[100]; /* buffer for QS receive channel */
|
||||
uint32_t tmp;
|
||||
QS_initBuf(qsBuf, sizeof(qsBuf));
|
||||
|
||||
/* enable the peripherals used by the UART0 */
|
||||
SYSCTL->RCGC1 |= (1U << 0); /* enable clock to UART0 */
|
||||
SYSCTL->RCGC2 |= (1U << 0); /* enable clock to GPIOA */
|
||||
__NOP(); /* wait after enabling clocks */
|
||||
__NOP();
|
||||
__NOP();
|
||||
QS_initBuf (qsTxBuf, sizeof(qsTxBuf));
|
||||
QS_rxInitBuf(qsRxBuf, sizeof(qsRxBuf));
|
||||
|
||||
/* enable clock for UART0 and GPIOA (used by UART0 pins) */
|
||||
SYSCTL->RCGCUART |= (1U << 0); /* enable Run mode for UART0 */
|
||||
SYSCTL->RCGCGPIO |= (1U << 0); /* enable Run mode for GPIOA */
|
||||
|
||||
/* configure UART0 pins for UART operation */
|
||||
tmp = (1U << 0) | (1U << 1);
|
||||
GPIOA->DIR &= ~tmp;
|
||||
GPIOA->AFSEL |= tmp;
|
||||
GPIOA->DR2R |= tmp; /* set 2mA drive, DR4R and DR8R are cleared */
|
||||
GPIOA->SLR &= ~tmp;
|
||||
GPIOA->ODR &= ~tmp;
|
||||
GPIOA->PUR &= ~tmp;
|
||||
GPIOA->PDR &= ~tmp;
|
||||
GPIOA->DEN |= tmp;
|
||||
GPIOA->AMSEL &= ~tmp; /* disable analog function on the pins */
|
||||
GPIOA->AFSEL |= tmp; /* enable ALT function on the pins */
|
||||
GPIOA->DEN |= tmp; /* enable digital I/O on the pins */
|
||||
GPIOA->PCTL &= ~0x00U;
|
||||
GPIOA->PCTL |= 0x11U;
|
||||
|
||||
/* configure the UART for the desired baud rate, 8-N-1 operation */
|
||||
tmp = (((ROM_SysCtlClockGet() * 8U) / UART_BAUD_RATE) + 1U) / 2U;
|
||||
tmp = (((SystemCoreClock * 8U) / UART_BAUD_RATE) + 1U) / 2U;
|
||||
UART0->IBRD = tmp / 64U;
|
||||
UART0->FBRD = tmp % 64U;
|
||||
UART0->LCRH = 0x60U; /* configure 8-N-1 operation */
|
||||
UART0->LCRH |= 0x10U;
|
||||
UART0->CTL |= (1U << 0) | (1U << 8) | (1U << 9);
|
||||
UART0->LCRH = (0x3U << 5); /* configure 8-N-1 operation */
|
||||
UART0->LCRH |= (0x1U << 4); /* enable FIFOs */
|
||||
UART0->CTL = (1U << 0) /* UART enable */
|
||||
| (1U << 8) /* UART TX enable */
|
||||
| (1U << 9); /* UART RX enable */
|
||||
|
||||
QS_tickPeriod_ = ROM_SysCtlClockGet() / BSP_TICKS_PER_SEC;
|
||||
/* configure UART interrupts (for the RX channel) */
|
||||
UART0->IM |= (1U << 4) | (1U << 6); /* enable RX and RX-TO interrupt */
|
||||
UART0->IFLS |= (0x2U << 2); /* interrupt on RX FIFO half-full */
|
||||
/* NOTE: do not enable the UART0 interrupt yet. Wait till QF_onStartup() */
|
||||
|
||||
QS_tickPeriod_ = SystemCoreClock / BSP_TICKS_PER_SEC;
|
||||
QS_tickTime_ = QS_tickPeriod_; /* to start the timestamp at zero */
|
||||
|
||||
/* setup the QS filters... */
|
||||
@ -341,73 +369,27 @@ uint8_t QS_onStartup(void const *arg) {
|
||||
QS_FILTER_ON(QS_QEP_DISPATCH);
|
||||
QS_FILTER_ON(QS_QEP_UNHANDLED);
|
||||
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_ADD);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_REMOVE);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_SUBSCRIBE);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_UNSUBSCRIBE);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_POST_FIFO);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_POST_LIFO);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_GET);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_GET_LAST);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_INIT);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_POST_FIFO);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_POST_LIFO);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_GET);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_GET_LAST);
|
||||
// QS_FILTER_ON(QS_QF_MPOOL_INIT);
|
||||
// QS_FILTER_ON(QS_QF_MPOOL_GET);
|
||||
// QS_FILTER_ON(QS_QF_MPOOL_PUT);
|
||||
// QS_FILTER_ON(QS_QF_PUBLISH);
|
||||
// QS_FILTER_ON(QS_QF_RESERVED8);
|
||||
// QS_FILTER_ON(QS_QF_NEW);
|
||||
// QS_FILTER_ON(QS_QF_GC_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_GC);
|
||||
QS_FILTER_ON(QS_QF_TICK);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_ARM);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_AUTO_DISARM);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_DISARM_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_DISARM);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_REARM);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_POST);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_CTR);
|
||||
// QS_FILTER_ON(QS_QF_CRIT_ENTRY);
|
||||
// QS_FILTER_ON(QS_QF_CRIT_EXIT);
|
||||
// QS_FILTER_ON(QS_QF_ISR_ENTRY);
|
||||
// QS_FILTER_ON(QS_QF_ISR_EXIT);
|
||||
// QS_FILTER_ON(QS_QF_INT_DISABLE);
|
||||
// QS_FILTER_ON(QS_QF_INT_ENABLE);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_POST_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_POST_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_MPOOL_GET_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_RESERVED1);
|
||||
// QS_FILTER_ON(QS_QF_RESERVED0);
|
||||
|
||||
// QS_FILTER_ON(QS_QK_MUTEX_LOCK);
|
||||
// QS_FILTER_ON(QS_QK_MUTEX_UNLOCK);
|
||||
// QS_FILTER_ON(QS_QK_SCHEDULE);
|
||||
// QS_FILTER_ON(QS_QK_RESERVED1);
|
||||
// QS_FILTER_ON(QS_QK_RESERVED0);
|
||||
|
||||
// QS_FILTER_ON(QS_QEP_TRAN_HIST);
|
||||
// QS_FILTER_ON(QS_QEP_TRAN_EP);
|
||||
// QS_FILTER_ON(QS_QEP_TRAN_XP);
|
||||
// QS_FILTER_ON(QS_QEP_RESERVED1);
|
||||
// QS_FILTER_ON(QS_QEP_RESERVED0);
|
||||
|
||||
QS_FILTER_ON(QS_SIG_DICT);
|
||||
QS_FILTER_ON(QS_OBJ_DICT);
|
||||
QS_FILTER_ON(QS_FUN_DICT);
|
||||
QS_FILTER_ON(QS_USR_DICT);
|
||||
QS_FILTER_ON(QS_EMPTY);
|
||||
QS_FILTER_ON(QS_RESERVED3);
|
||||
QS_FILTER_ON(QS_RESERVED2);
|
||||
QS_FILTER_ON(QS_TEST_RUN);
|
||||
QS_FILTER_ON(QS_TEST_FAIL);
|
||||
QS_FILTER_ON(QS_ASSERT_FAIL);
|
||||
QS_FILTER_ON(PHILO_STAT);
|
||||
QS_FILTER_ON(COMMAND_STAT);
|
||||
|
||||
return (uint8_t)1; /* return success */
|
||||
}
|
||||
/*..........................................................................*/
|
||||
/*
|
||||
* ISR for receiving bytes from the QSPY Back-End
|
||||
* NOTE: This ISR is "QF-unaware" meaning that it does not interact with
|
||||
* the QF/QK and is not disabled. Such ISRs cannot post or publish events.
|
||||
*/
|
||||
void UART0_IRQHandler(void) {
|
||||
uint32_t status = UART0->RIS; /* get the raw interrupt status */
|
||||
UART0->ICR = status; /* clear the asserted interrupts */
|
||||
|
||||
while ((UART0->FR & UART_FR_RXFE) == 0) { /* while RX FIFO NOT empty */
|
||||
uint32_t b = UART0->DR;
|
||||
QS_RX_PUT(b);
|
||||
}
|
||||
}
|
||||
/*..........................................................................*/
|
||||
void QS_onCleanup(void) {
|
||||
}
|
||||
/*..........................................................................*/
|
||||
@ -426,7 +408,7 @@ void QS_onFlush(void) {
|
||||
QF_INT_DISABLE();
|
||||
while ((block = QS_getBlock(&fifo)) != (uint8_t *)0) {
|
||||
QF_INT_ENABLE();
|
||||
/* busy-wait until TX FIFO empty */
|
||||
/* busy-wait as long as TX FIFO has data to transmit */
|
||||
while ((UART0->FR & UART_FR_TXFE) == 0) {
|
||||
}
|
||||
|
||||
@ -438,6 +420,30 @@ void QS_onFlush(void) {
|
||||
}
|
||||
QF_INT_ENABLE();
|
||||
}
|
||||
/*..........................................................................*/
|
||||
/*! callback function to reset the target (to be implemented in the BSP) */
|
||||
void QS_onReset(void) {
|
||||
NVIC_SystemReset();
|
||||
}
|
||||
/*..........................................................................*/
|
||||
/*! callback function to execute a user command (to be implemented in BSP) */
|
||||
void QS_onCommand(uint8_t cmdId, uint32_t param) {
|
||||
void assert_failed(char const *module, int loc);
|
||||
(void)cmdId;
|
||||
(void)param;
|
||||
QS_BEGIN(COMMAND_STAT, (void *)0) /* application-specific record begin */
|
||||
QS_U8(2, cmdId);
|
||||
QS_U32(8, param);
|
||||
QS_END()
|
||||
|
||||
if (cmdId == 10U) {
|
||||
Q_ERROR();
|
||||
}
|
||||
else if (cmdId == 11U) {
|
||||
assert_failed("QS_onCommand", 123);
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* Q_SPY */
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
##############################################################################
|
||||
# Product: Makefile for DPP on EK-TM4C123GXL, QV kernel, GNU-ARM
|
||||
# Last Updated for Version: 5.4.1
|
||||
# Date of the Last Update: 2015-05-21
|
||||
# Last Updated for Version: 5.5.0
|
||||
# Date of the Last Update: 2015-08-13
|
||||
#
|
||||
# Q u a n t u m L e a P s
|
||||
# ---------------------------
|
||||
@ -28,8 +28,8 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Contact information:
|
||||
# Web: http://www.state-machine.com
|
||||
# Email: info@state-machine.com
|
||||
# http://www.state-machine.com
|
||||
# mailto:info@state-machine.com
|
||||
##############################################################################
|
||||
# examples of invoking this Makefile:
|
||||
# building configurations: Debug (default), Release, and Spy
|
||||
@ -124,6 +124,7 @@ QP_ASMS :=
|
||||
|
||||
QS_SRCS := \
|
||||
qs.c \
|
||||
qs_rx.c \
|
||||
qs_fp.c
|
||||
|
||||
LIB_DIRS :=
|
||||
@ -135,7 +136,7 @@ DEFINES :=
|
||||
# ARM CPU, FPU, and Float-ABI types
|
||||
ARM_CPU := -mcpu=cortex-m4
|
||||
ARM_FPU := -mfpu=vfp
|
||||
FLOAT_ABI := -mfloat-abi=hard
|
||||
FLOAT_ABI := -mfloat-abi=softfp
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# GNU-ARM toolset (NOTE: You need to adjust to your machine)
|
||||
@ -259,7 +260,8 @@ $(TARGET_BIN): $(TARGET_ELF)
|
||||
$(BIN) -O binary $< $@
|
||||
|
||||
$(TARGET_ELF) : $(ASM_OBJS_EXT) $(C_OBJS_EXT) $(CPP_OBJS_EXT)
|
||||
$(LINK) $(LINKFLAGS) -o $@ $^ $(LIBS)
|
||||
$(CC) $(CFLAGS) -c $(QPC)/include/qstamp.c -o $(BIN_DIR)/qstamp.o
|
||||
$(LINK) $(LINKFLAGS) -o $@ $^ $(BIN_DIR)/qstamp.o $(LIBS)
|
||||
|
||||
$(BIN_DIR)/%.d : %.c
|
||||
$(CC) -MM -MT $(@:.d=.o) $(CFLAGS) $< > $@
|
||||
|
@ -12,7 +12,7 @@
|
||||
<name>General</name>
|
||||
<archiveVersion>3</archiveVersion>
|
||||
<data>
|
||||
<version>22</version>
|
||||
<version>24</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
@ -27,11 +27,6 @@
|
||||
<name>ListPath</name>
|
||||
<state>dbg</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Variant</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GEndianMode</name>
|
||||
<state>0</state>
|
||||
@ -58,11 +53,6 @@
|
||||
<name>GOutputBinary</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU</name>
|
||||
<version>5</version>
|
||||
<state>7</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGCoreOrChip</name>
|
||||
<state>1</state>
|
||||
@ -87,7 +77,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>OGLastSavedByProductVersion</name>
|
||||
<state>7.40.2.8567</state>
|
||||
<state>7.40.3.8937</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralEnableMisra</name>
|
||||
@ -135,15 +125,10 @@
|
||||
<name>RTConfigPath2</name>
|
||||
<state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GBECoreSlave</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGUseCmsis</name>
|
||||
@ -157,6 +142,34 @@
|
||||
<name>GRuntimeLibThreads</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CoreVariant</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUDeviceSlave</name>
|
||||
<state>TM4C123GH6PM TexasInstruments TM4C123GH6PM</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU2</name>
|
||||
<version>0</version>
|
||||
<state>4</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NrRegs</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NEON</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave2</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
@ -629,7 +642,7 @@
|
||||
<name>BUILDACTION</name>
|
||||
<archiveVersion>1</archiveVersion>
|
||||
<data>
|
||||
<prebuild></prebuild>
|
||||
<prebuild>cmd /c "if exist $OBJ_DIR$\qstamp.o del $OBJ_DIR$\qstamp.o"</prebuild>
|
||||
<postbuild></postbuild>
|
||||
</data>
|
||||
</settings>
|
||||
@ -965,7 +978,7 @@
|
||||
<name>General</name>
|
||||
<archiveVersion>3</archiveVersion>
|
||||
<data>
|
||||
<version>22</version>
|
||||
<version>24</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>0</debug>
|
||||
<option>
|
||||
@ -980,11 +993,6 @@
|
||||
<name>ListPath</name>
|
||||
<state>rel</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Variant</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GEndianMode</name>
|
||||
<state>0</state>
|
||||
@ -1011,11 +1019,6 @@
|
||||
<name>GOutputBinary</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU</name>
|
||||
<version>5</version>
|
||||
<state>7</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGCoreOrChip</name>
|
||||
<state>1</state>
|
||||
@ -1040,7 +1043,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>OGLastSavedByProductVersion</name>
|
||||
<state>7.40.2.8567</state>
|
||||
<state>7.40.3.8937</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralEnableMisra</name>
|
||||
@ -1088,14 +1091,9 @@
|
||||
<name>RTConfigPath2</name>
|
||||
<state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GBECoreSlave</name>
|
||||
<version>21</version>
|
||||
<version>22</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
@ -1110,6 +1108,34 @@
|
||||
<name>GRuntimeLibThreads</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CoreVariant</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUDeviceSlave</name>
|
||||
<state>TM4C123GH6PM TexasInstruments TM4C123GH6PM</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU2</name>
|
||||
<version>0</version>
|
||||
<state>4</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NrRegs</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NEON</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave2</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
@ -1582,7 +1608,7 @@
|
||||
<name>BUILDACTION</name>
|
||||
<archiveVersion>1</archiveVersion>
|
||||
<data>
|
||||
<prebuild></prebuild>
|
||||
<prebuild>cmd /c "if exist $OBJ_DIR$\qstamp.o del $OBJ_DIR$\qstamp.o"</prebuild>
|
||||
<postbuild></postbuild>
|
||||
</data>
|
||||
</settings>
|
||||
@ -1918,7 +1944,7 @@
|
||||
<name>General</name>
|
||||
<archiveVersion>3</archiveVersion>
|
||||
<data>
|
||||
<version>22</version>
|
||||
<version>24</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
@ -1933,11 +1959,6 @@
|
||||
<name>ListPath</name>
|
||||
<state>spy</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Variant</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GEndianMode</name>
|
||||
<state>0</state>
|
||||
@ -1964,11 +1985,6 @@
|
||||
<name>GOutputBinary</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU</name>
|
||||
<version>5</version>
|
||||
<state>7</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGCoreOrChip</name>
|
||||
<state>1</state>
|
||||
@ -1993,7 +2009,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>OGLastSavedByProductVersion</name>
|
||||
<state>7.40.2.8567</state>
|
||||
<state>7.40.3.8937</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralEnableMisra</name>
|
||||
@ -2041,15 +2057,10 @@
|
||||
<name>RTConfigPath2</name>
|
||||
<state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GBECoreSlave</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGUseCmsis</name>
|
||||
@ -2063,6 +2074,34 @@
|
||||
<name>GRuntimeLibThreads</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CoreVariant</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUDeviceSlave</name>
|
||||
<state>TM4C123GH6PM TexasInstruments TM4C123GH6PM</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU2</name>
|
||||
<version>0</version>
|
||||
<state>4</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NrRegs</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>NEON</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave2</name>
|
||||
<version>22</version>
|
||||
<state>39</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
@ -2535,7 +2574,7 @@
|
||||
<name>BUILDACTION</name>
|
||||
<archiveVersion>1</archiveVersion>
|
||||
<data>
|
||||
<prebuild></prebuild>
|
||||
<prebuild>cmd /c "if exist $OBJ_DIR$\qstamp.o del $OBJ_DIR$\qstamp.o"</prebuild>
|
||||
<postbuild></postbuild>
|
||||
</data>
|
||||
</settings>
|
||||
@ -2938,6 +2977,9 @@
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\source\qf_time.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\include\qstamp.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\source\qv.c</name>
|
||||
</file>
|
||||
@ -2960,6 +3002,9 @@
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\source\qs_pkg.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\..\source\qs_rx.c</name>
|
||||
</file>
|
||||
</group>
|
||||
</project>
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
##############################################################################
|
||||
# Product: Makefile for QP/C, DPP-GUI, Win32-QV, MinGW
|
||||
# Last updated for version 5.4.2
|
||||
# Last updated on 2015-06-05
|
||||
# Last updated for version 5.5.0
|
||||
# Last updated on 2015-08-14
|
||||
#
|
||||
# Q u a n t u m L e a P s
|
||||
# ---------------------------
|
||||
@ -28,8 +28,8 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Contact information:
|
||||
# Web: www.state-machine.com
|
||||
# Email: info@state-machine.com
|
||||
# http://www.state-machine.com
|
||||
# mailto:info@state-machine.com
|
||||
##############################################################################
|
||||
# examples of invoking this Makefile:
|
||||
# building configurations: Debug (default), Release, and Spy
|
||||
@ -217,7 +217,8 @@ $(TARGET_BIN): $(TARGET_EXE)
|
||||
$(BIN) -O binary $< $@
|
||||
|
||||
$(TARGET_EXE) : $(C_OBJS_EXT) $(CPP_OBJS_EXT) $(RC_OBJS_EXT)
|
||||
$(LINK) $(LINKFLAGS) $(LIB_DIRS) -o $@ $^ $(LIBS)
|
||||
$(CC) $(CFLAGS) -c $(QPC)/include/qstamp.c -o $(BIN_DIR)/qstamp.o
|
||||
$(LINK) $(LINKFLAGS) $(LIB_DIRS) -o $@ $^ $(BIN_DIR)/qstamp.o $(LIBS)
|
||||
|
||||
$(BIN_DIR)/%.d : %.cpp
|
||||
$(CPP) -MM -MT $(@:.d=.o) $(CPPFLAGS) $< > $@
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*****************************************************************************
|
||||
* Product: DPP example, Win32-GUI
|
||||
* Last updated for version 5.4.2
|
||||
* Last updated on 2015-06-03
|
||||
* Last updated for version 5.5.0
|
||||
* Last updated on 2015-08-14
|
||||
*
|
||||
* Q u a n t u m L e a P s
|
||||
* ---------------------------
|
||||
@ -361,79 +361,8 @@ uint8_t QS_onStartup(void const *arg) {
|
||||
&custParserFun); // customized parser function
|
||||
|
||||
/* setup the QS filters... */
|
||||
// QS_FILTER_ON(QS_QEP_STATE_ENTRY);
|
||||
// QS_FILTER_ON(QS_QEP_STATE_EXIT);
|
||||
// QS_FILTER_ON(QS_QEP_STATE_INIT);
|
||||
// QS_FILTER_ON(QS_QEP_INIT_TRAN);
|
||||
// QS_FILTER_ON(QS_QEP_INTERN_TRAN);
|
||||
// QS_FILTER_ON(QS_QEP_TRAN);
|
||||
// QS_FILTER_ON(QS_QEP_IGNORED);
|
||||
// QS_FILTER_ON(QS_QEP_DISPATCH);
|
||||
// QS_FILTER_ON(QS_QEP_UNHANDLED);
|
||||
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_ADD);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_REMOVE);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_SUBSCRIBE);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_UNSUBSCRIBE);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_POST_FIFO);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_POST_LIFO);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_GET);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_GET_LAST);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_INIT);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_POST_FIFO);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_POST_LIFO);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_GET);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_GET_LAST);
|
||||
QS_FILTER_ON(QS_QF_MPOOL_INIT);
|
||||
QS_FILTER_ON(QS_QF_MPOOL_GET);
|
||||
// QS_FILTER_ON(QS_QF_MPOOL_PUT);
|
||||
// QS_FILTER_ON(QS_QF_PUBLISH);
|
||||
// QS_FILTER_ON(QS_QF_RESERVED8);
|
||||
// QS_FILTER_ON(QS_QF_NEW);
|
||||
// QS_FILTER_ON(QS_QF_GC_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_GC);
|
||||
// QS_FILTER_ON(QS_QF_TICK);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_ARM);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_AUTO_DISARM);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_DISARM_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_DISARM);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_REARM);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_POST);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_CTR);
|
||||
// QS_FILTER_ON(QS_QF_CRIT_ENTRY);
|
||||
// QS_FILTER_ON(QS_QF_CRIT_EXIT);
|
||||
// QS_FILTER_ON(QS_QF_ISR_ENTRY);
|
||||
// QS_FILTER_ON(QS_QF_ISR_EXIT);
|
||||
// QS_FILTER_ON(QS_QF_INT_DISABLE);
|
||||
// QS_FILTER_ON(QS_QF_INT_ENABLE);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_POST_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_POST_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_MPOOL_GET_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_RESERVED1);
|
||||
// QS_FILTER_ON(QS_QF_RESERVED0);
|
||||
|
||||
// QS_FILTER_ON(QS_QK_MUTEX_LOCK);
|
||||
// QS_FILTER_ON(QS_QK_MUTEX_UNLOCK);
|
||||
// QS_FILTER_ON(QS_QK_SCHEDULE);
|
||||
// QS_FILTER_ON(QS_QK_RESERVED1);
|
||||
// QS_FILTER_ON(QS_QK_RESERVED0);
|
||||
|
||||
// QS_FILTER_ON(QS_QEP_TRAN_HIST);
|
||||
// QS_FILTER_ON(QS_QEP_TRAN_EP);
|
||||
// QS_FILTER_ON(QS_QEP_TRAN_XP);
|
||||
// QS_FILTER_ON(QS_QEP_RESERVED1);
|
||||
// QS_FILTER_ON(QS_QEP_RESERVED0);
|
||||
|
||||
QS_FILTER_ON(QS_SIG_DICT);
|
||||
QS_FILTER_ON(QS_OBJ_DICT);
|
||||
QS_FILTER_ON(QS_FUN_DICT);
|
||||
QS_FILTER_ON(QS_USR_DICT);
|
||||
QS_FILTER_ON(QS_EMPTY);
|
||||
QS_FILTER_ON(QS_RESERVED3);
|
||||
QS_FILTER_ON(QS_RESERVED2);
|
||||
QS_FILTER_ON(QS_TEST_RUN);
|
||||
QS_FILTER_ON(QS_TEST_FAIL);
|
||||
QS_FILTER_ON(QS_ASSERT_FAIL);
|
||||
|
||||
return CreateThread(NULL, 1024, &idleThread, (void *)0, 0, NULL)
|
||||
!= (HANDLE)0; /* return the status of creating the idle thread */
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
@ -81,7 +81,7 @@
|
||||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
||||
<AdditionalIncludeDirectories>.;..;../../../../include;../../../../ports/win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>.;..;../../../../include;../../../../ports/win32-qv;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>NDEBUG;WIN32_GUI;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>false</StringPooling>
|
||||
<ExceptionHandling>
|
||||
@ -102,10 +102,10 @@
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>qp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>../../../../ports/win32/$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
@ -116,6 +116,9 @@
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<OutputFile>.\Release/dpp-gui.bsc</OutputFile>
|
||||
</Bscmake>
|
||||
<PreBuildEvent>
|
||||
<Command>cmd /c "del $(OutDir)qstamp.obj"</Command>
|
||||
</PreBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='QSpy|Win32'">
|
||||
<Midl>
|
||||
@ -129,7 +132,7 @@
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>.;..;../../../../include;../../../../ports/win32;$(QTOOLS)/qspy/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>.;..;../../../../include;../../../../ports/win32-qv;$(QTOOLS)/qspy/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>Q_SPY;WIN32_GUI;snprintf=_snprintf;_CRT_SECURE_NO_WARNINGS;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>false</StringPooling>
|
||||
<ExceptionHandling>
|
||||
@ -152,10 +155,10 @@
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>qp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>../../../../ports/win32/$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<GenerateMapFile>false</GenerateMapFile>
|
||||
<MapFileName>
|
||||
@ -170,6 +173,9 @@
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<OutputFile>.\QSpy/dpp-gui.bsc</OutputFile>
|
||||
</Bscmake>
|
||||
<PreBuildEvent>
|
||||
<Command>cmd /c "del $(OutDir)qstamp.obj"</Command>
|
||||
</PreBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Midl>
|
||||
@ -183,7 +189,7 @@
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>.;..;../../../../include;../../../../ports/win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>.;..;../../../../include;../../../../ports/win32-qv;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32_GUI;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>false</StringPooling>
|
||||
<ExceptionHandling>
|
||||
@ -208,10 +214,10 @@
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>qp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>../../../../ports/win32/$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<GenerateMapFile>false</GenerateMapFile>
|
||||
<MapFileName>
|
||||
@ -226,12 +232,16 @@
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<OutputFile>.\Debug/dpp-gui.bsc</OutputFile>
|
||||
</Bscmake>
|
||||
<PreBuildEvent>
|
||||
<Command>cmd /c "del $(OutDir)qstamp.obj"</Command>
|
||||
</PreBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(QTOOLS)\qspy\source\qspy.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\include\qstamp.c" />
|
||||
<ClCompile Include="..\main.c" />
|
||||
<ClCompile Include="..\philo.c" />
|
||||
<ClCompile Include="..\table.c" />
|
||||
@ -261,6 +271,22 @@
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="dpp-gui.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Library Include="..\..\..\..\ports\win32-qv\Debug\qp.lib">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='QSpy|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
</Library>
|
||||
<Library Include="..\..\..\..\ports\win32-qv\QSpy\qp.lib">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
</Library>
|
||||
<Library Include="..\..\..\..\ports\win32-qv\Release\qp.lib">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='QSpy|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
|
||||
</Library>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
|
@ -3,11 +3,12 @@
|
||||
<ItemGroup>
|
||||
<ClCompile Include="bsp.c" />
|
||||
<ClCompile Include="$(QTOOLS)\qspy\source\qspy.c">
|
||||
<Filter>Q_SPY</Filter>
|
||||
<Filter>QSPY</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\main.c" />
|
||||
<ClCompile Include="..\philo.c" />
|
||||
<ClCompile Include="..\table.c" />
|
||||
<ClCompile Include="..\..\..\..\include\qstamp.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="resource.h" />
|
||||
@ -38,16 +39,30 @@
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="Q_SPY">
|
||||
<UniqueIdentifier>{9329cf7b-e791-415b-8458-a26ea9bf414f}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Res">
|
||||
<UniqueIdentifier>{c8d4d732-dcf8-4466-ad8e-3f15ab6fe204}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="QSPY">
|
||||
<UniqueIdentifier>{9329cf7b-e791-415b-8458-a26ea9bf414f}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="QP">
|
||||
<UniqueIdentifier>{fc58f96a-b3df-47d3-9a58-3283c0cf1a5c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="dpp-gui.rc">
|
||||
<Filter>Res</Filter>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Library Include="..\..\..\..\ports\win32\Debug\qp.lib">
|
||||
<Filter>QP</Filter>
|
||||
</Library>
|
||||
<Library Include="..\..\..\..\ports\win32\Release\qp.lib">
|
||||
<Filter>QP</Filter>
|
||||
</Library>
|
||||
<Library Include="..\..\..\..\ports\win32\QSpy\qp.lib">
|
||||
<Filter>QP</Filter>
|
||||
</Library>
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -1,7 +1,7 @@
|
||||
##############################################################################
|
||||
# Product: Makefile for QP/C, DPP-GUI, Win32, MinGW
|
||||
# Last updated for version 5.4.2
|
||||
# Last updated on 2015-06-05
|
||||
# Last updated for version 5.5.0
|
||||
# Last updated on 2015-08-14
|
||||
#
|
||||
# Q u a n t u m L e a P s
|
||||
# ---------------------------
|
||||
@ -28,8 +28,8 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Contact information:
|
||||
# Web: www.state-machine.com
|
||||
# Email: info@state-machine.com
|
||||
# http://www.state-machine.com
|
||||
# mailto:info@state-machine.com
|
||||
##############################################################################
|
||||
# examples of invoking this Makefile:
|
||||
# building configurations: Debug (default), Release, and Spy
|
||||
@ -217,7 +217,8 @@ $(TARGET_BIN): $(TARGET_EXE)
|
||||
$(BIN) -O binary $< $@
|
||||
|
||||
$(TARGET_EXE) : $(C_OBJS_EXT) $(CPP_OBJS_EXT) $(RC_OBJS_EXT)
|
||||
$(LINK) $(LINKFLAGS) $(LIB_DIRS) -o $@ $^ $(LIBS)
|
||||
$(CC) $(CFLAGS) -c $(QPC)/include/qstamp.c -o $(BIN_DIR)/qstamp.o
|
||||
$(LINK) $(LINKFLAGS) $(LIB_DIRS) -o $@ $^ $(BIN_DIR)/qstamp.o $(LIBS)
|
||||
|
||||
$(BIN_DIR)/%.d : %.cpp
|
||||
$(CPP) -MM -MT $(@:.d=.o) $(CPPFLAGS) $< > $@
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*****************************************************************************
|
||||
* Product: DPP example, Win32-GUI
|
||||
* Last updated for version 5.4.2
|
||||
* Last updated on 2015-06-03
|
||||
* Last updated for version 5.5.0
|
||||
* Last updated on 2015-08-14
|
||||
*
|
||||
* Q u a n t u m L e a P s
|
||||
* ---------------------------
|
||||
@ -361,79 +361,8 @@ uint8_t QS_onStartup(void const *arg) {
|
||||
&custParserFun); // customized parser function
|
||||
|
||||
/* setup the QS filters... */
|
||||
// QS_FILTER_ON(QS_QEP_STATE_ENTRY);
|
||||
// QS_FILTER_ON(QS_QEP_STATE_EXIT);
|
||||
// QS_FILTER_ON(QS_QEP_STATE_INIT);
|
||||
// QS_FILTER_ON(QS_QEP_INIT_TRAN);
|
||||
// QS_FILTER_ON(QS_QEP_INTERN_TRAN);
|
||||
// QS_FILTER_ON(QS_QEP_TRAN);
|
||||
// QS_FILTER_ON(QS_QEP_IGNORED);
|
||||
// QS_FILTER_ON(QS_QEP_DISPATCH);
|
||||
// QS_FILTER_ON(QS_QEP_UNHANDLED);
|
||||
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_ADD);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_REMOVE);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_SUBSCRIBE);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_UNSUBSCRIBE);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_POST_FIFO);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_POST_LIFO);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_GET);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_GET_LAST);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_INIT);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_POST_FIFO);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_POST_LIFO);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_GET);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_GET_LAST);
|
||||
QS_FILTER_ON(QS_QF_MPOOL_INIT);
|
||||
QS_FILTER_ON(QS_QF_MPOOL_GET);
|
||||
// QS_FILTER_ON(QS_QF_MPOOL_PUT);
|
||||
// QS_FILTER_ON(QS_QF_PUBLISH);
|
||||
// QS_FILTER_ON(QS_QF_RESERVED8);
|
||||
// QS_FILTER_ON(QS_QF_NEW);
|
||||
// QS_FILTER_ON(QS_QF_GC_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_GC);
|
||||
// QS_FILTER_ON(QS_QF_TICK);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_ARM);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_AUTO_DISARM);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_DISARM_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_DISARM);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_REARM);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_POST);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_CTR);
|
||||
// QS_FILTER_ON(QS_QF_CRIT_ENTRY);
|
||||
// QS_FILTER_ON(QS_QF_CRIT_EXIT);
|
||||
// QS_FILTER_ON(QS_QF_ISR_ENTRY);
|
||||
// QS_FILTER_ON(QS_QF_ISR_EXIT);
|
||||
// QS_FILTER_ON(QS_QF_INT_DISABLE);
|
||||
// QS_FILTER_ON(QS_QF_INT_ENABLE);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_POST_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_POST_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_MPOOL_GET_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_RESERVED1);
|
||||
// QS_FILTER_ON(QS_QF_RESERVED0);
|
||||
|
||||
// QS_FILTER_ON(QS_QK_MUTEX_LOCK);
|
||||
// QS_FILTER_ON(QS_QK_MUTEX_UNLOCK);
|
||||
// QS_FILTER_ON(QS_QK_SCHEDULE);
|
||||
// QS_FILTER_ON(QS_QK_RESERVED1);
|
||||
// QS_FILTER_ON(QS_QK_RESERVED0);
|
||||
|
||||
// QS_FILTER_ON(QS_QEP_TRAN_HIST);
|
||||
// QS_FILTER_ON(QS_QEP_TRAN_EP);
|
||||
// QS_FILTER_ON(QS_QEP_TRAN_XP);
|
||||
// QS_FILTER_ON(QS_QEP_RESERVED1);
|
||||
// QS_FILTER_ON(QS_QEP_RESERVED0);
|
||||
|
||||
QS_FILTER_ON(QS_SIG_DICT);
|
||||
QS_FILTER_ON(QS_OBJ_DICT);
|
||||
QS_FILTER_ON(QS_FUN_DICT);
|
||||
QS_FILTER_ON(QS_USR_DICT);
|
||||
QS_FILTER_ON(QS_EMPTY);
|
||||
QS_FILTER_ON(QS_RESERVED3);
|
||||
QS_FILTER_ON(QS_RESERVED2);
|
||||
QS_FILTER_ON(QS_TEST_RUN);
|
||||
QS_FILTER_ON(QS_TEST_FAIL);
|
||||
QS_FILTER_ON(QS_ASSERT_FAIL);
|
||||
|
||||
return CreateThread(NULL, 1024, &idleThread, (void *)0, 0, NULL)
|
||||
!= (HANDLE)0; /* return the status of creating the idle thread */
|
||||
|
@ -102,10 +102,10 @@
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>qp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>../../../../ports/win32/$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
@ -116,6 +116,9 @@
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<OutputFile>.\Release/dpp-gui.bsc</OutputFile>
|
||||
</Bscmake>
|
||||
<PreBuildEvent>
|
||||
<Command>cmd /c "del $(OutDir)qstamp.obj"</Command>
|
||||
</PreBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='QSpy|Win32'">
|
||||
<Midl>
|
||||
@ -152,10 +155,10 @@
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>qp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>../../../../ports/win32/$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<GenerateMapFile>false</GenerateMapFile>
|
||||
<MapFileName>
|
||||
@ -170,6 +173,9 @@
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<OutputFile>.\QSpy/dpp-gui.bsc</OutputFile>
|
||||
</Bscmake>
|
||||
<PreBuildEvent>
|
||||
<Command>cmd /c "del $(OutDir)qstamp.obj"</Command>
|
||||
</PreBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Midl>
|
||||
@ -208,10 +214,10 @@
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>qp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>../../../../ports/win32/$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<GenerateMapFile>false</GenerateMapFile>
|
||||
<MapFileName>
|
||||
@ -226,12 +232,16 @@
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<OutputFile>.\Debug/dpp-gui.bsc</OutputFile>
|
||||
</Bscmake>
|
||||
<PreBuildEvent>
|
||||
<Command>cmd /c "del $(OutDir)qstamp.obj"</Command>
|
||||
</PreBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(QTOOLS)\qspy\source\qspy.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\include\qstamp.c" />
|
||||
<ClCompile Include="..\main.c" />
|
||||
<ClCompile Include="..\philo.c" />
|
||||
<ClCompile Include="..\table.c" />
|
||||
@ -261,6 +271,22 @@
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="dpp-gui.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Library Include="..\..\..\..\ports\win32\Debug\qp.lib">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='QSpy|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
</Library>
|
||||
<Library Include="..\..\..\..\ports\win32\QSpy\qp.lib">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
</Library>
|
||||
<Library Include="..\..\..\..\ports\win32\Release\qp.lib">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='QSpy|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
|
||||
</Library>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
|
@ -3,11 +3,12 @@
|
||||
<ItemGroup>
|
||||
<ClCompile Include="bsp.c" />
|
||||
<ClCompile Include="$(QTOOLS)\qspy\source\qspy.c">
|
||||
<Filter>Q_SPY</Filter>
|
||||
<Filter>QSPY</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\main.c" />
|
||||
<ClCompile Include="..\philo.c" />
|
||||
<ClCompile Include="..\table.c" />
|
||||
<ClCompile Include="..\..\..\..\include\qstamp.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="resource.h" />
|
||||
@ -38,16 +39,30 @@
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="Q_SPY">
|
||||
<UniqueIdentifier>{9329cf7b-e791-415b-8458-a26ea9bf414f}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Res">
|
||||
<UniqueIdentifier>{c8d4d732-dcf8-4466-ad8e-3f15ab6fe204}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="QSPY">
|
||||
<UniqueIdentifier>{9329cf7b-e791-415b-8458-a26ea9bf414f}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="QP">
|
||||
<UniqueIdentifier>{fc58f96a-b3df-47d3-9a58-3283c0cf1a5c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="dpp-gui.rc">
|
||||
<Filter>Res</Filter>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Library Include="..\..\..\..\ports\win32\Debug\qp.lib">
|
||||
<Filter>QP</Filter>
|
||||
</Library>
|
||||
<Library Include="..\..\..\..\ports\win32\Release\qp.lib">
|
||||
<Filter>QP</Filter>
|
||||
</Library>
|
||||
<Library Include="..\..\..\..\ports\win32\QSpy\qp.lib">
|
||||
<Filter>QP</Filter>
|
||||
</Library>
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -73,7 +73,7 @@
|
||||
<LExpSel>0</LExpSel>
|
||||
</OPTXL>
|
||||
<OPTFL>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<IsCurrentTarget>1</IsCurrentTarget>
|
||||
</OPTFL>
|
||||
@ -82,17 +82,17 @@
|
||||
<Book>
|
||||
<Number>0</Number>
|
||||
<Title>MCB1700 Schematics (MCB1700)</Title>
|
||||
<Path>C:\tools\Keil_v5\ARM\PACK\Keil\LPC1700_DFP\2.0.0\Documents\mcb1700-schematics.pdf</Path>
|
||||
<Path>C:\tools\Keil_v5\ARM\PACK\Keil\LPC1700_DFP\2.1.0\Documents\mcb1700-schematics.pdf</Path>
|
||||
</Book>
|
||||
<Book>
|
||||
<Number>1</Number>
|
||||
<Title>User Manual (MCB1700)</Title>
|
||||
<Path>C:\tools\Keil_v5\ARM\PACK\Keil\LPC1700_DFP\2.0.0\Documents\mcb1700.chm</Path>
|
||||
<Path>C:\tools\Keil_v5\ARM\PACK\Keil\LPC1700_DFP\2.1.0\Documents\mcb1700.chm</Path>
|
||||
</Book>
|
||||
<Book>
|
||||
<Number>2</Number>
|
||||
<Title>MCB1700 Quick Start Guide (MCB1700)</Title>
|
||||
<Path>C:\tools\Keil_v5\ARM\PACK\Keil\LPC1700_DFP\2.0.0\Documents\mcb1700_quickstart.pdf</Path>
|
||||
<Path>C:\tools\Keil_v5\ARM\PACK\Keil\LPC1700_DFP\2.1.0\Documents\mcb1700_quickstart.pdf</Path>
|
||||
</Book>
|
||||
<Book>
|
||||
<Number>3</Number>
|
||||
@ -222,6 +222,7 @@
|
||||
</DebugFlag>
|
||||
<LintExecutable></LintExecutable>
|
||||
<LintConfigFile></LintConfigFile>
|
||||
<bLintAuto>0</bLintAuto>
|
||||
</TargetOption>
|
||||
</Target>
|
||||
|
||||
@ -286,17 +287,17 @@
|
||||
<Book>
|
||||
<Number>0</Number>
|
||||
<Title>MCB1700 Schematics (MCB1700)</Title>
|
||||
<Path>C:\tools\Keil_v5\ARM\PACK\Keil\LPC1700_DFP\2.0.0\Documents\mcb1700-schematics.pdf</Path>
|
||||
<Path>C:\tools\Keil_v5\ARM\PACK\Keil\LPC1700_DFP\2.1.0\Documents\mcb1700-schematics.pdf</Path>
|
||||
</Book>
|
||||
<Book>
|
||||
<Number>1</Number>
|
||||
<Title>User Manual (MCB1700)</Title>
|
||||
<Path>C:\tools\Keil_v5\ARM\PACK\Keil\LPC1700_DFP\2.0.0\Documents\mcb1700.chm</Path>
|
||||
<Path>C:\tools\Keil_v5\ARM\PACK\Keil\LPC1700_DFP\2.1.0\Documents\mcb1700.chm</Path>
|
||||
</Book>
|
||||
<Book>
|
||||
<Number>2</Number>
|
||||
<Title>MCB1700 Quick Start Guide (MCB1700)</Title>
|
||||
<Path>C:\tools\Keil_v5\ARM\PACK\Keil\LPC1700_DFP\2.0.0\Documents\mcb1700_quickstart.pdf</Path>
|
||||
<Path>C:\tools\Keil_v5\ARM\PACK\Keil\LPC1700_DFP\2.1.0\Documents\mcb1700_quickstart.pdf</Path>
|
||||
</Book>
|
||||
<Book>
|
||||
<Number>3</Number>
|
||||
@ -414,6 +415,7 @@
|
||||
</DebugFlag>
|
||||
<LintExecutable></LintExecutable>
|
||||
<LintConfigFile></LintConfigFile>
|
||||
<bLintAuto>0</bLintAuto>
|
||||
</TargetOption>
|
||||
</Target>
|
||||
|
||||
@ -478,17 +480,17 @@
|
||||
<Book>
|
||||
<Number>0</Number>
|
||||
<Title>MCB1700 Schematics (MCB1700)</Title>
|
||||
<Path>C:\tools\Keil_v5\ARM\PACK\Keil\LPC1700_DFP\2.0.0\Documents\mcb1700-schematics.pdf</Path>
|
||||
<Path>C:\tools\Keil_v5\ARM\PACK\Keil\LPC1700_DFP\2.1.0\Documents\mcb1700-schematics.pdf</Path>
|
||||
</Book>
|
||||
<Book>
|
||||
<Number>1</Number>
|
||||
<Title>User Manual (MCB1700)</Title>
|
||||
<Path>C:\tools\Keil_v5\ARM\PACK\Keil\LPC1700_DFP\2.0.0\Documents\mcb1700.chm</Path>
|
||||
<Path>C:\tools\Keil_v5\ARM\PACK\Keil\LPC1700_DFP\2.1.0\Documents\mcb1700.chm</Path>
|
||||
</Book>
|
||||
<Book>
|
||||
<Number>2</Number>
|
||||
<Title>MCB1700 Quick Start Guide (MCB1700)</Title>
|
||||
<Path>C:\tools\Keil_v5\ARM\PACK\Keil\LPC1700_DFP\2.0.0\Documents\mcb1700_quickstart.pdf</Path>
|
||||
<Path>C:\tools\Keil_v5\ARM\PACK\Keil\LPC1700_DFP\2.1.0\Documents\mcb1700_quickstart.pdf</Path>
|
||||
</Book>
|
||||
<Book>
|
||||
<Number>3</Number>
|
||||
@ -606,6 +608,7 @@
|
||||
</DebugFlag>
|
||||
<LintExecutable></LintExecutable>
|
||||
<LintConfigFile></LintConfigFile>
|
||||
<bLintAuto>0</bLintAuto>
|
||||
</TargetOption>
|
||||
</Target>
|
||||
|
||||
@ -693,6 +696,19 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>1</GroupNumber>
|
||||
<FileNumber>7</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\..\..\..\include\qstamp.c</PathWithFileName>
|
||||
<FilenameWithoutPath>qstamp.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
@ -703,7 +719,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>7</FileNumber>
|
||||
<FileNumber>8</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -716,7 +732,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>8</FileNumber>
|
||||
<FileNumber>9</FileNumber>
|
||||
<FileType>2</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -737,7 +753,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>9</FileNumber>
|
||||
<FileNumber>10</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -750,7 +766,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>10</FileNumber>
|
||||
<FileNumber>11</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -763,7 +779,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>11</FileNumber>
|
||||
<FileNumber>12</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -776,7 +792,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>12</FileNumber>
|
||||
<FileNumber>13</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -789,7 +805,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>13</FileNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -802,7 +818,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileNumber>15</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -815,7 +831,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>15</FileNumber>
|
||||
<FileNumber>16</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -828,7 +844,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>16</FileNumber>
|
||||
<FileNumber>17</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -841,7 +857,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>17</FileNumber>
|
||||
<FileNumber>18</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -854,7 +870,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>18</FileNumber>
|
||||
<FileNumber>19</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -867,7 +883,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>19</FileNumber>
|
||||
<FileNumber>20</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -880,7 +896,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>20</FileNumber>
|
||||
<FileNumber>21</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -893,7 +909,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>21</FileNumber>
|
||||
<FileNumber>22</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -906,7 +922,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>22</FileNumber>
|
||||
<FileNumber>23</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -919,7 +935,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>23</FileNumber>
|
||||
<FileNumber>24</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -932,7 +948,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>24</FileNumber>
|
||||
<FileNumber>25</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -953,7 +969,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>25</FileNumber>
|
||||
<FileNumber>26</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -966,7 +982,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>26</FileNumber>
|
||||
<FileNumber>27</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -979,7 +995,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>27</FileNumber>
|
||||
<FileNumber>28</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -992,7 +1008,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>28</FileNumber>
|
||||
<FileNumber>29</FileNumber>
|
||||
<FileType>2</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -1005,7 +1021,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>29</FileNumber>
|
||||
<FileNumber>30</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -1026,7 +1042,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>30</FileNumber>
|
||||
<FileNumber>31</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -1039,7 +1055,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>31</FileNumber>
|
||||
<FileNumber>32</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
@ -1052,7 +1068,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>32</FileNumber>
|
||||
<FileNumber>33</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
|
@ -10,11 +10,12 @@
|
||||
<TargetName>dpp-dbg</TargetName>
|
||||
<ToolsetNumber>0x4</ToolsetNumber>
|
||||
<ToolsetName>ARM-ADS</ToolsetName>
|
||||
<pCCUsed>5060020::V5.06 (build 20)::ARMCC</pCCUsed>
|
||||
<TargetOption>
|
||||
<TargetCommonOption>
|
||||
<Device>LPC1768</Device>
|
||||
<Vendor>NXP</Vendor>
|
||||
<PackID>Keil.LPC1700_DFP.2.0.0</PackID>
|
||||
<PackID>Keil.LPC1700_DFP.2.1.0</PackID>
|
||||
<PackURL>http://www.keil.com/pack/</PackURL>
|
||||
<Cpu>IROM(0x00000000,0x80000) IRAM(0x10000000,0x8000) IRAM2(0x2007C000,0x8000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE</Cpu>
|
||||
<FlashUtilSpec></FlashUtilSpec>
|
||||
@ -68,9 +69,9 @@
|
||||
<nStopU2X>0</nStopU2X>
|
||||
</BeforeCompile>
|
||||
<BeforeMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg1>1</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg1Name>cmd /c "del .\dbg\qstamp.o"</UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
@ -84,6 +85,8 @@
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopA1X>0</nStopA1X>
|
||||
<nStopA2X>0</nStopA2X>
|
||||
</AfterMake>
|
||||
<SelectedForBatchBuild>0</SelectedForBatchBuild>
|
||||
<SVCSIdString></SVCSIdString>
|
||||
@ -227,6 +230,7 @@
|
||||
<useUlib>0</useUlib>
|
||||
<EndSel>0</EndSel>
|
||||
<uLtcg>0</uLtcg>
|
||||
<nSecure>0</nSecure>
|
||||
<RoSelD>3</RoSelD>
|
||||
<RwSelD>3</RwSelD>
|
||||
<CodeSel>0</CodeSel>
|
||||
@ -361,6 +365,10 @@
|
||||
<uSurpInc>1</uSurpInc>
|
||||
<uC99>0</uC99>
|
||||
<useXO>0</useXO>
|
||||
<v6Lang>0</v6Lang>
|
||||
<v6LangP>0</v6LangP>
|
||||
<vShortEn>0</vShortEn>
|
||||
<vShortWch>0</vShortWch>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define>rvmdk __FPU_PRESENT</Define>
|
||||
@ -438,6 +446,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\table.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qstamp.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\include\qstamp.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
@ -606,6 +619,10 @@
|
||||
<uSurpInc>2</uSurpInc>
|
||||
<uC99>2</uC99>
|
||||
<useXO>2</useXO>
|
||||
<v6Lang>0</v6Lang>
|
||||
<v6LangP>0</v6LangP>
|
||||
<vShortEn>0</vShortEn>
|
||||
<vShortWch>0</vShortWch>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
@ -656,11 +673,12 @@
|
||||
<TargetName>dpp-rel</TargetName>
|
||||
<ToolsetNumber>0x4</ToolsetNumber>
|
||||
<ToolsetName>ARM-ADS</ToolsetName>
|
||||
<pCCUsed>5060020::V5.06 (build 20)::ARMCC</pCCUsed>
|
||||
<TargetOption>
|
||||
<TargetCommonOption>
|
||||
<Device>LPC1768</Device>
|
||||
<Vendor>NXP</Vendor>
|
||||
<PackID>Keil.LPC1700_DFP.2.0.0</PackID>
|
||||
<PackID>Keil.LPC1700_DFP.2.1.0</PackID>
|
||||
<PackURL>http://www.keil.com/pack/</PackURL>
|
||||
<Cpu>IROM(0x00000000,0x80000) IRAM(0x10000000,0x8000) IRAM2(0x2007C000,0x8000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE</Cpu>
|
||||
<FlashUtilSpec></FlashUtilSpec>
|
||||
@ -714,9 +732,9 @@
|
||||
<nStopU2X>0</nStopU2X>
|
||||
</BeforeCompile>
|
||||
<BeforeMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg1>1</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg1Name>cmd /c "del .\rel\qstamp.o"</UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
@ -730,6 +748,8 @@
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopA1X>0</nStopA1X>
|
||||
<nStopA2X>0</nStopA2X>
|
||||
</AfterMake>
|
||||
<SelectedForBatchBuild>0</SelectedForBatchBuild>
|
||||
<SVCSIdString></SVCSIdString>
|
||||
@ -873,6 +893,7 @@
|
||||
<useUlib>0</useUlib>
|
||||
<EndSel>0</EndSel>
|
||||
<uLtcg>0</uLtcg>
|
||||
<nSecure>0</nSecure>
|
||||
<RoSelD>3</RoSelD>
|
||||
<RwSelD>3</RwSelD>
|
||||
<CodeSel>0</CodeSel>
|
||||
@ -1007,6 +1028,10 @@
|
||||
<uSurpInc>1</uSurpInc>
|
||||
<uC99>0</uC99>
|
||||
<useXO>0</useXO>
|
||||
<v6Lang>0</v6Lang>
|
||||
<v6LangP>0</v6LangP>
|
||||
<vShortEn>0</vShortEn>
|
||||
<vShortWch>0</vShortWch>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define>NDEBUG __FPU_PRESENT</Define>
|
||||
@ -1084,6 +1109,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\table.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qstamp.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\include\qstamp.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
@ -1252,6 +1282,10 @@
|
||||
<uSurpInc>2</uSurpInc>
|
||||
<uC99>2</uC99>
|
||||
<useXO>2</useXO>
|
||||
<v6Lang>0</v6Lang>
|
||||
<v6LangP>0</v6LangP>
|
||||
<vShortEn>0</vShortEn>
|
||||
<vShortWch>0</vShortWch>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
@ -1302,11 +1336,12 @@
|
||||
<TargetName>dpp-spy</TargetName>
|
||||
<ToolsetNumber>0x4</ToolsetNumber>
|
||||
<ToolsetName>ARM-ADS</ToolsetName>
|
||||
<pCCUsed>5060020::V5.06 (build 20)::ARMCC</pCCUsed>
|
||||
<TargetOption>
|
||||
<TargetCommonOption>
|
||||
<Device>LPC1768</Device>
|
||||
<Vendor>NXP</Vendor>
|
||||
<PackID>Keil.LPC1700_DFP.2.0.0</PackID>
|
||||
<PackID>Keil.LPC1700_DFP.2.1.0</PackID>
|
||||
<PackURL>http://www.keil.com/pack/</PackURL>
|
||||
<Cpu>IROM(0x00000000,0x80000) IRAM(0x10000000,0x8000) IRAM2(0x2007C000,0x8000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE</Cpu>
|
||||
<FlashUtilSpec></FlashUtilSpec>
|
||||
@ -1360,9 +1395,9 @@
|
||||
<nStopU2X>0</nStopU2X>
|
||||
</BeforeCompile>
|
||||
<BeforeMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg1>1</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg1Name>cmd /c "del .\spy\qstamp.o"</UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
@ -1376,6 +1411,8 @@
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopA1X>0</nStopA1X>
|
||||
<nStopA2X>0</nStopA2X>
|
||||
</AfterMake>
|
||||
<SelectedForBatchBuild>0</SelectedForBatchBuild>
|
||||
<SVCSIdString></SVCSIdString>
|
||||
@ -1519,6 +1556,7 @@
|
||||
<useUlib>0</useUlib>
|
||||
<EndSel>0</EndSel>
|
||||
<uLtcg>0</uLtcg>
|
||||
<nSecure>0</nSecure>
|
||||
<RoSelD>3</RoSelD>
|
||||
<RwSelD>3</RwSelD>
|
||||
<CodeSel>0</CodeSel>
|
||||
@ -1653,6 +1691,10 @@
|
||||
<uSurpInc>1</uSurpInc>
|
||||
<uC99>0</uC99>
|
||||
<useXO>0</useXO>
|
||||
<v6Lang>0</v6Lang>
|
||||
<v6LangP>0</v6LangP>
|
||||
<vShortEn>0</vShortEn>
|
||||
<vShortWch>0</vShortWch>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define>Q_SPY __FPU_PRESENT</Define>
|
||||
@ -1730,6 +1772,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\table.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qstamp.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\..\..\..\include\qstamp.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
|
@ -1,13 +1,13 @@
|
||||
/*****************************************************************************
|
||||
* Product: DPP example, NXP mbed-LPC1768 board, QK kernel
|
||||
* Last Updated for Version: 5.4.0
|
||||
* Date of the Last Update: 2015-04-06
|
||||
* Last Updated for Version: 5.5.0
|
||||
* Date of the Last Update: 2015-08-20
|
||||
*
|
||||
* Q u a n t u m L e a P s
|
||||
* ---------------------------
|
||||
* innovating embedded systems
|
||||
*
|
||||
* Copyright (C) Quantum Leaps, LLC. state-machine.com.
|
||||
* Copyright (C) Quantum Leaps, LLC. All rights reserved.
|
||||
*
|
||||
* This program is open source software: you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as published
|
||||
@ -28,8 +28,8 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Contact information:
|
||||
* Web : http://www.state-machine.com
|
||||
* Email: info@state-machine.com
|
||||
* http://www.state-machine.com
|
||||
* mailto:info@state-machine.com
|
||||
*****************************************************************************/
|
||||
#include "qpc.h"
|
||||
#include "dpp.h"
|
||||
@ -289,8 +289,15 @@ void QK_onIdle(void) {
|
||||
#endif
|
||||
}
|
||||
/*..........................................................................*/
|
||||
/* NOTE Q_onAssert() defined in assembly in startup_TM4C123GH6PM.s */
|
||||
|
||||
void Q_onAssert(char const *module, int loc) {
|
||||
/*
|
||||
* NOTE: add here your application-specific error handling
|
||||
*/
|
||||
(void)module;
|
||||
(void)loc;
|
||||
QS_ASSERTION(module, loc, (uint32_t)10000U); /* report assertion to QS */
|
||||
NVIC_SystemReset();
|
||||
}
|
||||
|
||||
/* QS callbacks ============================================================*/
|
||||
#ifdef Q_SPY
|
||||
@ -354,69 +361,7 @@ uint8_t QS_onStartup(void const *arg) {
|
||||
QS_FILTER_ON(QS_QEP_DISPATCH);
|
||||
QS_FILTER_ON(QS_QEP_UNHANDLED);
|
||||
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_ADD);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_REMOVE);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_SUBSCRIBE);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_UNSUBSCRIBE);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_POST_FIFO);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_POST_LIFO);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_GET);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_GET_LAST);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_INIT);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_POST_FIFO);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_POST_LIFO);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_GET);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_GET_LAST);
|
||||
// QS_FILTER_ON(QS_QF_MPOOL_INIT);
|
||||
// QS_FILTER_ON(QS_QF_MPOOL_GET);
|
||||
// QS_FILTER_ON(QS_QF_MPOOL_PUT);
|
||||
// QS_FILTER_ON(QS_QF_PUBLISH);
|
||||
// QS_FILTER_ON(QS_QF_RESERVED8);
|
||||
// QS_FILTER_ON(QS_QF_NEW);
|
||||
// QS_FILTER_ON(QS_QF_GC_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_GC);
|
||||
QS_FILTER_ON(QS_QF_TICK);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_ARM);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_AUTO_DISARM);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_DISARM_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_DISARM);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_REARM);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_POST);
|
||||
// QS_FILTER_ON(QS_QF_TIMEEVT_CTR);
|
||||
// QS_FILTER_ON(QS_QF_CRIT_ENTRY);
|
||||
// QS_FILTER_ON(QS_QF_CRIT_EXIT);
|
||||
// QS_FILTER_ON(QS_QF_ISR_ENTRY);
|
||||
// QS_FILTER_ON(QS_QF_ISR_EXIT);
|
||||
// QS_FILTER_ON(QS_QF_INT_DISABLE);
|
||||
// QS_FILTER_ON(QS_QF_INT_ENABLE);
|
||||
// QS_FILTER_ON(QS_QF_ACTIVE_POST_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_EQUEUE_POST_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_MPOOL_GET_ATTEMPT);
|
||||
// QS_FILTER_ON(QS_QF_RESERVED1);
|
||||
// QS_FILTER_ON(QS_QF_RESERVED0);
|
||||
|
||||
// QS_FILTER_ON(QS_QK_MUTEX_LOCK);
|
||||
// QS_FILTER_ON(QS_QK_MUTEX_UNLOCK);
|
||||
// QS_FILTER_ON(QS_QK_SCHEDULE);
|
||||
// QS_FILTER_ON(QS_QK_RESERVED1);
|
||||
// QS_FILTER_ON(QS_QK_RESERVED0);
|
||||
|
||||
// QS_FILTER_ON(QS_QEP_TRAN_HIST);
|
||||
// QS_FILTER_ON(QS_QEP_TRAN_EP);
|
||||
// QS_FILTER_ON(QS_QEP_TRAN_XP);
|
||||
// QS_FILTER_ON(QS_QEP_RESERVED1);
|
||||
// QS_FILTER_ON(QS_QEP_RESERVED0);
|
||||
|
||||
QS_FILTER_ON(QS_SIG_DICT);
|
||||
QS_FILTER_ON(QS_OBJ_DICT);
|
||||
QS_FILTER_ON(QS_FUN_DICT);
|
||||
QS_FILTER_ON(QS_USR_DICT);
|
||||
QS_FILTER_ON(QS_EMPTY);
|
||||
QS_FILTER_ON(QS_RESERVED3);
|
||||
QS_FILTER_ON(QS_RESERVED2);
|
||||
QS_FILTER_ON(QS_TEST_RUN);
|
||||
QS_FILTER_ON(QS_TEST_FAIL);
|
||||
QS_FILTER_ON(QS_ASSERT_FAIL);
|
||||
QS_FILTER_ON(PHILO_STAT);
|
||||
|
||||
return (uint8_t)1; /* return success */
|
||||
}
|
||||
|