diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/core_cm3.h b/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/startup_keil/core_cm3.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/core_cm3.h
rename to Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/startup_keil/core_cm3.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.ewd b/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.ewd
index ab5cf1b24..a5145929a 100644
--- a/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.ewd
+++ b/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.ewd
@@ -313,7 +313,7 @@
JLINK_ID
2
- 12
+ 13
1
1
@@ -370,8 +370,8 @@
CCUSBDevice
- 0
- 0
+ 1
+ 1
CCRDICatchReset
@@ -423,7 +423,7 @@
CCJLinkResetList
- 4
+ 5
7
@@ -470,6 +470,31 @@
OCJLinkScriptFile
1
+
+ CCJLinkUsbSerialNo
+
+
+
+ CCTcpIpAlt
+ 0
+ 0
+
+
+ CCJLinkTcpIpSerialNo
+
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
@@ -662,7 +687,7 @@
RDI_ID
2
- 1
+ 2
1
1
@@ -709,10 +734,6 @@
CCRDICatchFIQ
0
-
- CCRDIUseETM
- 0
-
OCDriverInfo
1
@@ -723,7 +744,7 @@
STLINK_ID
2
- 1
+ 2
1
1
@@ -738,6 +759,23 @@
CCSTLinkInterfaceCmdLine
0
+
+ CCSTLinkResetList
+ 1
+ 0
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
@@ -923,7 +961,7 @@
OCLastSavedByProductVersion
- 6.10.1.52170
+ 6.20.1.52589
OCDownloadAttachToProgram
@@ -1147,7 +1185,7 @@
JLINK_ID
2
- 12
+ 13
1
1
@@ -1204,8 +1242,8 @@
CCUSBDevice
- 0
- 0
+ 1
+ 1
CCRDICatchReset
@@ -1257,7 +1295,7 @@
CCJLinkResetList
- 4
+ 5
7
@@ -1304,6 +1342,31 @@
OCJLinkScriptFile
1
+
+ CCJLinkUsbSerialNo
+
+
+
+ CCTcpIpAlt
+ 0
+ 0
+
+
+ CCJLinkTcpIpSerialNo
+
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
@@ -1496,7 +1559,7 @@
RDI_ID
2
- 1
+ 2
1
1
@@ -1543,10 +1606,6 @@
CCRDICatchFIQ
0
-
- CCRDIUseETM
- 0
-
OCDriverInfo
1
@@ -1557,7 +1616,7 @@
STLINK_ID
2
- 1
+ 2
1
1
@@ -1572,6 +1631,23 @@
CCSTLinkInterfaceCmdLine
0
+
+ CCSTLinkResetList
+ 1
+ 0
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
@@ -1981,7 +2057,7 @@
JLINK_ID
2
- 12
+ 13
1
1
@@ -2038,8 +2114,8 @@
CCUSBDevice
- 0
- 0
+ 1
+ 1
CCRDICatchReset
@@ -2091,7 +2167,7 @@
CCJLinkResetList
- 4
+ 5
7
@@ -2138,6 +2214,31 @@
OCJLinkScriptFile
1
+
+ CCJLinkUsbSerialNo
+
+
+
+ CCTcpIpAlt
+ 0
+ 0
+
+
+ CCJLinkTcpIpSerialNo
+
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
@@ -2330,7 +2431,7 @@
RDI_ID
2
- 1
+ 2
1
1
@@ -2377,10 +2478,6 @@
CCRDICatchFIQ
0
-
- CCRDIUseETM
- 0
-
OCDriverInfo
1
@@ -2391,7 +2488,7 @@
STLINK_ID
2
- 1
+ 2
1
1
@@ -2406,6 +2503,23 @@
CCSTLinkInterfaceCmdLine
0
+
+ CCSTLinkResetList
+ 1
+ 0
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.ewp b/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.ewp
index 75afbc5e4..66a7dd5c8 100644
--- a/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.ewp
+++ b/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.ewp
@@ -12,7 +12,7 @@
General
3
- 18
+ 21
1
1
@@ -29,7 +29,7 @@
Variant
- 17
+ 19
37
@@ -38,8 +38,8 @@
Input variant
- 1
- 3
+ 3
+ 6
Input description
@@ -47,8 +47,8 @@
Output variant
- 0
- 3
+ 2
+ 7
Output description
@@ -60,7 +60,7 @@
FPU
- 1
+ 2
0
@@ -87,7 +87,7 @@
OGLastSavedByProductVersion
- 6.10.1.52170
+ 6.20.1.52589
GeneralEnableMisra
@@ -135,13 +135,31 @@
RTConfigPath2
$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h
+
+ GFPUCoreSlave
+ 19
+ 37
+
+
+ GBECoreSlave
+ 19
+ 37
+
+
+ OGUseCmsis
+ 1
+
+
+ OGUseCmsisDspLib
+ 0
+
ICCARM
2
- 26
+ 28
1
1
@@ -362,11 +380,15 @@
1
- IccRelaxedFpPrecision
+ IccCppInlineSemantics
0
- IccCppInlineSemantics
+ IccCmsis
+ 1
+
+
+ IccFloatSemantics
0
@@ -588,7 +610,7 @@
ILINK
0
- 11
+ 13
1
1
@@ -834,6 +856,22 @@
IlinkOptExceptionsForce
0
+
+ IlinkCmsis
+ 1
+
+
+ IlinkOptMergeDuplSections
+ 0
+
+
+ IlinkOptUseVfe
+ 1
+
+
+ IlinkOptForceVfe
+ 0
+
@@ -873,7 +911,7 @@
General
3
- 18
+ 21
1
1
@@ -890,7 +928,7 @@
Variant
- 17
+ 19
37
@@ -899,8 +937,8 @@
Input variant
- 1
- 3
+ 3
+ 6
Input description
@@ -908,8 +946,8 @@
Output variant
- 0
- 3
+ 2
+ 7
Output description
@@ -921,7 +959,7 @@
FPU
- 1
+ 2
0
@@ -948,7 +986,7 @@
OGLastSavedByProductVersion
- 6.10.1.52170
+ 6.20.1.52589
GeneralEnableMisra
@@ -996,13 +1034,31 @@
RTConfigPath2
$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h
+
+ GFPUCoreSlave
+ 19
+ 37
+
+
+ GBECoreSlave
+ 19
+ 37
+
+
+ OGUseCmsis
+ 1
+
+
+ OGUseCmsisDspLib
+ 0
+
ICCARM
2
- 26
+ 28
1
1
@@ -1234,11 +1290,15 @@
1
- IccRelaxedFpPrecision
+ IccCppInlineSemantics
0
- IccCppInlineSemantics
+ IccCmsis
+ 1
+
+
+ IccFloatSemantics
0
@@ -1460,7 +1520,7 @@
ILINK
0
- 11
+ 13
1
1
@@ -1706,6 +1766,22 @@
IlinkOptExceptionsForce
0
+
+ IlinkCmsis
+ 1
+
+
+ IlinkOptMergeDuplSections
+ 0
+
+
+ IlinkOptUseVfe
+ 1
+
+
+ IlinkOptForceVfe
+ 0
+
@@ -1745,7 +1821,7 @@
General
3
- 18
+ 21
1
1
@@ -1762,7 +1838,7 @@
Variant
- 17
+ 19
37
@@ -1771,8 +1847,8 @@
Input variant
- 1
- 3
+ 3
+ 6
Input description
@@ -1780,8 +1856,8 @@
Output variant
- 0
- 3
+ 2
+ 7
Output description
@@ -1793,7 +1869,7 @@
FPU
- 1
+ 2
0
@@ -1820,7 +1896,7 @@
OGLastSavedByProductVersion
- 6.10.1.52170
+ 6.20.1.52589
GeneralEnableMisra
@@ -1868,13 +1944,31 @@
RTConfigPath2
$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h
+
+ GFPUCoreSlave
+ 19
+ 37
+
+
+ GBECoreSlave
+ 19
+ 37
+
+
+ OGUseCmsis
+ 1
+
+
+ OGUseCmsisDspLib
+ 0
+
ICCARM
2
- 26
+ 28
1
1
@@ -2106,11 +2200,15 @@
1
- IccRelaxedFpPrecision
+ IccCppInlineSemantics
0
- IccCppInlineSemantics
+ IccCmsis
+ 1
+
+
+ IccFloatSemantics
0
@@ -2332,7 +2430,7 @@
ILINK
0
- 11
+ 13
1
1
@@ -2578,6 +2676,22 @@
IlinkOptExceptionsForce
0
+
+ IlinkCmsis
+ 1
+
+
+ IlinkOptMergeDuplSections
+ 0
+
+
+ IlinkOptUseVfe
+ 1
+
+
+ IlinkOptForceVfe
+ 0
+
@@ -2735,7 +2849,7 @@
ICCARM
- 26
+ 28
0
1
@@ -2956,11 +3070,15 @@
1
- IccRelaxedFpPrecision
+ IccCppInlineSemantics
0
- IccCppInlineSemantics
+ IccCmsis
+ 1
+
+
+ IccFloatSemantics
0
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/cmsis/core_cm3.h b/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/cmsis/core_cm3.h
index 9f83c1c0a..ca21d367f 100644
--- a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/cmsis/core_cm3.h
+++ b/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/cmsis/core_cm3.h
@@ -619,159 +619,183 @@ static __INLINE void __set_CONTROL(uint32_t control)
#endif /* __ARMCC_VERSION */
-
-
#elif (defined (__ICCARM__)) /*------------------ ICC Compiler -------------------*/
/* IAR iccarm specific functions */
-#define __enable_irq __enable_interrupt /*!< global Interrupt enable */
-#define __disable_irq __disable_interrupt /*!< global Interrupt disable */
+#if (__VER__ >= 6020000) // If iccarm version is 6.20.0 or later ----------
-static __INLINE void __enable_fault_irq() { __ASM ("cpsie f"); }
-static __INLINE void __disable_fault_irq() { __ASM ("cpsid f"); }
+#include
-static __INLINE void __WFI() { __ASM ("wfi"); }
-static __INLINE void __WFE() { __ASM ("wfe"); }
-static __INLINE void __SEV() { __ASM ("sev"); }
-static __INLINE void __CLREX() { __ASM ("clrex"); }
+#else
-/**
- * @brief Return the Process Stack Pointer
- *
- * @param none
- * @return uint32_t ProcessStackPointer
- *
- * Return the actual process stack pointer
- */
-extern uint32_t __get_PSP(void);
+#pragma diag_suppress=Pe940
+#pragma diag_suppress=Pe177
-/**
- * @brief Set the Process Stack Pointer
- *
- * @param uint32_t Process Stack Pointer
- * @return none
- *
- * Assign the value ProcessStackPointer to the MSP
- * (process stack pointer) Cortex processor register
- */
-extern void __set_PSP(uint32_t topOfProcStack);
+#define __enable_irq __enable_interrupt
+#define __disable_irq __disable_interrupt
+#define __NOP __no_operation
-/**
- * @brief Return the Main Stack Pointer
- *
- * @param none
- * @return uint32_t Main Stack Pointer
- *
- * Return the current value of the MSP (main stack pointer)
- * Cortex processor register
- */
-extern uint32_t __get_MSP(void);
+#if (__VER__ < 6020000) // If iccarm version is older than 6.20.0 ----------
-/**
- * @brief Set the Main Stack Pointer
- *
- * @param uint32_t Main Stack Pointer
- * @return none
- *
- * Assign the value mainStackPointer to the MSP
- * (main stack pointer) Cortex processor register
- */
-extern void __set_MSP(uint32_t topOfMainStack);
+#if (__VER__ < 6010002) // If iccarm version is older than 6.10.2 ----------
-/**
- * @brief Reverse byte order in unsigned short value
- *
- * @param uint16_t value to reverse
- * @return uint32_t reversed value
- *
- * Reverse byte order in unsigned short value
- */
-extern uint32_t __REV16(uint16_t value);
+static uint32_t __get_APSR(void)
+{
+ __ASM("mrs r0, apsr");
+}
-/**
- * @brief Reverse bit order of value
- *
- * @param uint32_t value to reverse
- * @return uint32_t reversed value
- *
- * Reverse bit order of value
- */
-extern uint32_t __RBIT(uint32_t value);
+static uint32_t __get_xPSR(void)
+{
+ __ASM("mrs r0, psr"); // assembler does not know "xpsr"
+}
-/**
- * @brief LDR Exclusive
- *
- * @param uint8_t* address
- * @return uint8_t value of (*address)
- *
- * Exclusive LDR command
- */
-extern uint8_t __LDREXB(uint8_t *addr);
+#endif // __VER__ < 6010002
-/**
- * @brief LDR Exclusive
- *
- * @param uint16_t* address
- * @return uint16_t value of (*address)
- *
- * Exclusive LDR command
- */
-extern uint16_t __LDREXH(uint16_t *addr);
+static uint32_t __get_IPSR(void)
+{
+ __ASM("mrs r0, ipsr");
+}
-/**
- * @brief LDR Exclusive
- *
- * @param uint32_t* address
- * @return uint32_t value of (*address)
- *
- * Exclusive LDR command
- */
-extern uint32_t __LDREXW(uint32_t *addr);
+static uint32_t __get_PSR(void)
+{
+ __ASM("mrs r0, psr");
+}
-/**
- * @brief STR Exclusive
- *
- * @param uint8_t *address
- * @param uint8_t value to store
- * @return uint32_t successful / failed
- *
- * Exclusive STR command
- */
-extern uint32_t __STREXB(uint8_t value, uint8_t *addr);
+static uint32_t __get_PSP(void)
+{
+ __ASM("mrs r0, psp");
+}
+
+static void __set_PSP(uint32_t topOfProcStack)
+{
+ __ASM("msr psp, r0");
+}
-/**
- * @brief STR Exclusive
- *
- * @param uint16_t *address
- * @param uint16_t value to store
- * @return uint32_t successful / failed
- *
- * Exclusive STR command
- */
-extern uint32_t __STREXH(uint16_t value, uint16_t *addr);
+static uint32_t __get_MSP(void)
+{
+ __ASM("mrs r0, msp");
+}
+
+static void __set_MSP(uint32_t topOfMainStack)
+{
+ __ASM("msr msp, r0");
+}
-/**
- * @brief STR Exclusive
- *
- * @param uint32_t *address
- * @param uint32_t value to store
- * @return uint32_t successful / failed
- *
- * Exclusive STR command
- */
-extern uint32_t __STREXW(uint32_t value, uint32_t *addr);
+static __INLINE void __WFI(void)
+{
+ __ASM ("wfi");
+}
+
+static __INLINE void __WFE(void)
+{
+ __ASM ("wfe");
+}
+
+static __INLINE void __SEV(void)
+{
+ __ASM ("sev");
+}
+
+static uint32_t __REV16(uint32_t value)
+{
+ __ASM("rev16 r0, r0");
+}
+
+#endif // __VER__ < 6020000
+
+#if (__CORTEX_M >= 0x03) // __CORTEX_M is defined in core_cm0.h, core_cm3.h and core_cm4.h.
+
+#if (__VER__ < 6020000) // If iccarm version is older than 6.20.0 ----------
+
+static __INLINE void __enable_fault_irq(void)
+{
+ __ASM ("cpsie f");
+}
+
+static __INLINE void __disable_fault_irq(void)
+{
+ __ASM ("cpsid f");
+}
+
+static uint32_t __RBIT(uint32_t value)
+{
+ __ASM("rbit r0, r0");
+}
+
+static uint8_t __LDREXB(volatile uint8_t *addr)
+{
+ __ASM("ldrexb r0, [r0]");
+}
+
+static uint16_t __LDREXH(volatile uint16_t *addr)
+{
+ __ASM("ldrexh r0, [r0]");
+}
+
+static uint32_t __LDREXW(volatile uint32_t *addr)
+{
+ __ASM("ldrex r0, [r0]");
+}
+
+static uint32_t __STREXB(uint8_t value, volatile uint8_t *addr)
+{
+ __ASM("strexb r0, r0, [r1]");
+}
+
+static uint32_t __STREXH(uint16_t value, volatile uint16_t *addr)
+{
+ __ASM("strexh r0, r0, [r1]");
+}
+
+static uint32_t __STREXW(uint32_t value, volatile uint32_t *addr)
+{
+ __ASM("strex r0, r0, [r1]");
+}
+
+static __INLINE void __CLREX(void)
+{
+ __ASM ("clrex");
+}
+
+#else // __VER__ >= 6020000 ---------------------
+
+#define __LDREXW __LDREX
+#define __STREXW __STREX
+#define __enable_fault_irq __enable_fiq
+#define __disable_fault_irq __disable_fiq
+
+#endif // __VER__ < 6020000
+
+#endif /* (__CORTEX_M >= 0x03) */
+
+#if (__CORTEX_M == 0x04) // __CORTEX_M is defined in core_cm0.h, core_cm3.h and core_cm4.h.
+
+#if (__VER__ < 6020000) // If iccarm version is older than 6.20.0 ----------
+
+static uint32_t __get_FPSCR(void)
+{
+#if (__FPU_PRESENT == 1) // __FPU_PRESENT is defined in the device header file, if present in current device.
+ __ASM("vmrs r0, fpscr");
+#else
+ return(0);
+#endif
+}
+
+static void __set_FPSCR(uint32_t fpscr)
+{
+#if (__FPU_PRESENT == 1) // __FPU_PRESENT is defined in the device header file, if present in current device.
+ __ASM("vmsr fpscr, r0");
+#endif
+}
+#endif // __VER__ < 6020000
-/* intrinsic void __set_PRIMASK(); */
-/* intrinsic void __get_PRIMASK(); */
-/* intrinsic void __set_FAULTMASK(); */
-/* intrinsic void __get_FAULTMASK(); */
-/* intrinsic uint32_t __REV(uint32_t value); */
-/* intrinsic uint32_t __REVSH(uint32_t value); */
-/* intrinsic unsigned long __STREX(unsigned long, unsigned long); */
-/* intrinsic unsigned long __LDREX(unsigned long *); */
+#endif /* (__CORTEX_M == 0x04) */
+#pragma diag_default=Pe940
+#pragma diag_default=Pe177
+#endif // __VER__ >= 6020000
#elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/
/* GNU gcc specific functions */
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewd b/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewd
index 05e9b9db0..0611d71ee 100644
--- a/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewd
+++ b/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewd
@@ -89,7 +89,7 @@
OCLastSavedByProductVersion
- 5.50.5.51996
+ 6.20.1.52589
OCDownloadAttachToProgram
@@ -281,776 +281,10 @@
IARROM_ID
2
-
- 0
- 1
- 1
-
- CRomLogFileCheck
- 0
-
-
- CRomLogFileEditB
- $PROJ_DIR$\cspycomm.log
-
-
- CRomCommunication
- 0
-
-
- CRomCommPort
- 0
- 0
-
-
- CRomCommBaud
- 0
- 7
-
-
- OCDriverInfo
- 1
-
-
-
-
- JLINK_ID
- 2
-
- 11
- 1
- 1
-
- JLinkSpeed
- 32
-
-
- CCJLinkDoLogfile
- 0
-
-
- CCJLinkLogFile
- $PROJ_DIR$\cspycomm.log
-
-
- CCJLinkHWResetDelay
- 0
-
-
- OCDriverInfo
- 1
-
-
- JLinkInitialSpeed
- 32
-
-
- CCDoJlinkMultiTarget
- 0
-
-
- CCScanChainNonARMDevices
- 0
-
-
- CCJLinkMultiTarget
- 0
-
-
- CCJLinkIRLength
- 0
-
-
- CCJLinkCommRadio
- 0
-
-
- CCJLinkTCPIP
- aaa.bbb.ccc.ddd
-
-
- CCJLinkSpeedRadioV2
- 0
-
-
- CCUSBDevice
- 0
- 0
-
-
- CCRDICatchReset
- 0
-
-
- CCRDICatchUndef
- 0
-
-
- CCRDICatchSWI
- 0
-
-
- CCRDICatchData
- 0
-
-
- CCRDICatchPrefetch
- 0
-
-
- CCRDICatchIRQ
- 0
-
-
- CCRDICatchFIQ
- 0
-
-
- CCJLinkBreakpointRadio
- 0
-
-
- CCJLinkDoUpdateBreakpoints
- 0
-
-
- CCJLinkUpdateBreakpoints
- main
-
-
- CCJLinkInterfaceRadio
- 1
-
-
- OCJLinkAttachSlave
- 1
-
-
- CCJLinkResetList
- 2
- 7
-
-
- CCJLinkInterfaceCmdLine
- 0
-
-
- CCCatchCORERESET
- 0
-
-
- CCCatchMMERR
- 0
-
-
- CCCatchNOCPERR
- 0
-
-
- CCCatchCHRERR
- 0
-
-
- CCCatchSTATERR
- 0
-
-
- CCCatchBUSERR
- 0
-
-
- CCCatchINTERR
- 0
-
-
- CCCatchHARDERR
- 0
-
-
- CCCatchDummy
- 0
-
-
-
-
- LMIFTDI_ID
- 2
-
- 2
- 1
- 1
-
- OCDriverInfo
- 1
-
-
- LmiftdiSpeed
- 500
-
-
- CCLmiftdiDoLogfile
- 0
-
-
- CCLmiftdiLogFile
- $PROJ_DIR$\cspycomm.log
-
-
- CCLmiFtdiInterfaceRadio
- 0
-
-
- CCLmiFtdiInterfaceCmdLine
- 0
-
-
-
-
- MACRAIGOR_ID
- 2
-
- 3
- 1
- 1
-
- jtag
- 0
- 0
-
-
- EmuSpeed
- 1
-
-
- TCPIP
- aaa.bbb.ccc.ddd
-
-
- DoLogfile
- 0
-
-
- LogFile
- $PROJ_DIR$\cspycomm.log
-
-
- DoEmuMultiTarget
- 0
-
-
- EmuMultiTarget
- 0@ARM7TDMI
-
-
- EmuHWReset
- 0
-
-
- CEmuCommBaud
- 0
- 4
-
-
- CEmuCommPort
- 0
- 0
-
-
- jtago
- 0
- 0
-
-
- OCDriverInfo
- 1
-
-
- UnusedAddr
- 0x00800000
-
-
- CCMacraigorHWResetDelay
-
-
-
- CCJTagBreakpointRadio
- 0
-
-
- CCJTagDoUpdateBreakpoints
- 0
-
-
- CCJTagUpdateBreakpoints
- main
-
-
- CCMacraigorInterfaceRadio
- 0
-
-
- CCMacraigorInterfaceCmdLine
- 0
-
-
-
-
- RDI_ID
- 2
-
- 1
- 1
- 1
-
- CRDIDriverDll
- ###Uninitialized###
-
-
- CRDILogFileCheck
- 0
-
-
- CRDILogFileEdit
- $PROJ_DIR$\cspycomm.log
-
-
- CCRDIHWReset
- 0
-
-
- CCRDICatchReset
- 0
-
-
- CCRDICatchUndef
- 0
-
-
- CCRDICatchSWI
- 0
-
-
- CCRDICatchData
- 0
-
-
- CCRDICatchPrefetch
- 0
-
-
- CCRDICatchIRQ
- 0
-
-
- CCRDICatchFIQ
- 0
-
-
- CCRDIUseETM
- 0
-
-
- OCDriverInfo
- 1
-
-
-
-
- STLINK_ID
- 2
-
- 1
- 1
- 1
-
- OCDriverInfo
- 1
-
-
- CCSTLinkInterfaceRadio
- 0
-
-
- CCSTLinkInterfaceCmdLine
- 0
-
-
-
-
- THIRDPARTY_ID
- 2
-
- 0
- 1
- 1
-
- CThirdPartyDriverDll
- ###Uninitialized###
-
-
- CThirdPartyLogFileCheck
- 0
-
-
- CThirdPartyLogFileEditB
- $PROJ_DIR$\cspycomm.log
-
-
- OCDriverInfo
- 1
-
-
-
-
-
- $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB5_Plugin.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin
- 0
-
-
- $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin
- 1
-
-
- $EW_DIR$\common\plugins\FreeRTOS\FreeRTOSPlugin.ewplugin
- 0
-
-
- $EW_DIR$\common\plugins\OpenRTOS\OpenRTOSPlugin.ewplugin
- 0
-
-
- $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
- 0
-
-
- $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin
- 1
-
-
- $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin
- 1
-
-
- $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin
- 1
-
-
-
-
- Release
-
- ARM
-
- 1
-
- C-SPY
- 2
-
- 22
- 1
- 1
-
- CInput
- 1
-
-
- CEndian
- 1
-
-
- CProcessor
- 1
-
-
- OCVariant
- 0
-
-
- MacOverride
- 1
-
-
- MacFile
- $PROJ_DIR$\system\at91sam3u-ek-flash.mac
-
-
- MemOverride
- 0
-
-
- MemFile
- $TOOLKIT_DIR$\CONFIG\debugger\Atmel\ioAT91SAM3U4.ddf
-
-
- RunToEnable
- 1
-
-
- RunToName
- main
-
-
- CExtraOptionsCheck
- 0
-
-
- CExtraOptions
-
-
-
- CFpuProcessor
- 1
-
-
- OCDDFArgumentProducer
-
-
-
- OCDownloadSuppressDownload
- 0
-
-
- OCDownloadVerifyAll
- 1
-
-
- OCProductVersion
- 5.30.0.51236
-
-
- OCDynDriverList
- JLINK_ID
-
-
- OCLastSavedByProductVersion
- 5.30.0.51236
-
-
- OCDownloadAttachToProgram
- 0
-
-
- UseFlashLoader
- 1
-
-
- CLowLevel
- 1
-
-
- OCBE8Slave
- 1
-
-
- MacFile2
-
-
-
- CDevice
- 1
-
-
- FlashLoadersV3
- $PROJ_DIR$\RTOSDemo_Release.board
-
-
- OCImagesSuppressCheck1
- 0
-
-
- OCImagesPath1
-
-
-
- OCImagesSuppressCheck2
- 0
-
-
- OCImagesPath2
-
-
-
- OCImagesSuppressCheck3
- 0
-
-
- OCImagesPath3
-
-
-
- OverrideDefFlashBoard
- 0
-
-
- OCImagesOffset1
-
-
-
- OCImagesOffset2
-
-
-
- OCImagesOffset3
-
-
-
- OCImagesUse1
- 0
-
-
- OCImagesUse2
- 0
-
-
- OCImagesUse3
- 0
-
-
-
-
- ARMSIM_ID
- 2
1
1
1
-
- OCSimDriverInfo
- 1
-
-
- OCSimEnablePSP
- 0
-
-
- OCSimPspOverrideConfig
- 0
-
-
- OCSimPspConfigFile
-
-
-
-
-
- ANGEL_ID
- 2
-
- 0
- 1
- 1
-
- CCAngelHeartbeat
- 1
-
-
- CAngelCommunication
- 1
-
-
- CAngelCommBaud
- 0
- 3
-
-
- CAngelCommPort
- 0
- 0
-
-
- ANGELTCPIP
- aaa.bbb.ccc.ddd
-
-
- DoAngelLogfile
- 0
-
-
- AngelLogFile
- $PROJ_DIR$\cspycomm.log
-
-
- OCDriverInfo
- 1
-
-
-
-
- GDBSERVER_ID
- 2
-
- 0
- 1
- 1
-
- OCDriverInfo
- 1
-
-
- TCPIP
- aaa.bbb.ccc.ddd
-
-
- DoLogfile
- 0
-
-
- LogFile
- $PROJ_DIR$\cspycomm.log
-
-
- CCJTagBreakpointRadio
- 0
-
-
- CCJTagDoUpdateBreakpoints
- 0
-
-
- CCJTagUpdateBreakpoints
- main
-
-
-
-
- IARROM_ID
- 2
-
- 0
- 1
- 1
CRomLogFileCheck
0
@@ -1059,10 +293,6 @@
CRomLogFileEditB
$PROJ_DIR$\cspycomm.log
-
- CRomCommunication
- 0
-
CRomCommPort
0
@@ -1083,7 +313,7 @@
JLINK_ID
2
- 11
+ 13
1
1
@@ -1140,8 +370,8 @@
CCUSBDevice
- 0
- 0
+ 1
+ 1
CCRDICatchReset
@@ -1193,7 +423,7 @@
CCJLinkResetList
- 2
+ 5
7
@@ -1236,6 +466,35 @@
CCCatchDummy
0
+
+ OCJLinkScriptFile
+ 1
+
+
+ CCJLinkUsbSerialNo
+
+
+
+ CCTcpIpAlt
+ 0
+ 0
+
+
+ CCJLinkTcpIpSerialNo
+
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
@@ -1360,11 +619,75 @@
+
+ PEMICRO_ID
+ 2
+
+ 0
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ OCPEMicroAttachSlave
+ 1
+
+
+ CCPEMicroInterfaceList
+ 0
+ 0
+
+
+ CCPEMicroResetDelay
+
+
+
+ CCPEMicroJtagSpeed
+ #UNINITIALIZED#
+
+
+ CCJPEMicroShowSettings
+ 0
+
+
+ DoLogfile
+ 0
+
+
+ LogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CCPEMicroUSBDevice
+ 0
+ 0
+
+
+ CCPEMicroSerialPort
+ 0
+ 0
+
+
+ CCJPEMicroTCPIPAutoScanNetwork
+ 1
+
+
+ CCPEMicroTCPIP
+ 10.0.0.1
+
+
+ CCPEMicroCommCmdLineProducer
+ 0
+
+
+
RDI_ID
2
- 1
+ 2
1
1
@@ -1411,10 +734,6 @@
CCRDICatchFIQ
0
-
- CCRDIUseETM
- 0
-
OCDriverInfo
1
@@ -1425,7 +744,7 @@
STLINK_ID
2
- 1
+ 2
1
1
@@ -1440,6 +759,23 @@
CCSTLinkInterfaceCmdLine
0
+
+ CCSTLinkResetList
+ 1
+ 0
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
@@ -1481,7 +817,11 @@
0
- $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin
+ $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
0
@@ -1489,7 +829,11 @@
0
- $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB5_Plugin.ewplugin
+ $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB6_Plugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
0
@@ -1520,10 +864,6 @@
$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
0
-
- $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin
- 1
-
$EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin
1
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewp b/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewp
index 3a71869f2..18b54fbc0 100644
--- a/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewp
+++ b/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewp
@@ -12,7 +12,7 @@
General
3
- 17
+ 21
1
1
@@ -29,7 +29,7 @@
Variant
- 17
+ 19
37
@@ -38,8 +38,8 @@
Input variant
- 1
- 3
+ 3
+ 6
Input description
@@ -47,8 +47,8 @@
Output variant
- 0
- 3
+ 2
+ 7
Output description
@@ -60,7 +60,7 @@
FPU
- 1
+ 2
0
@@ -81,17 +81,13 @@
RTDescription
Use the normal configuration of the C/C++ runtime library. No locale interface, C locale, no file descriptor support, no multibytes in printf and scanf, and no hex floats in strtod.
-
- RTConfigPath
- $TOOLKIT_DIR$\INC\DLib_Config_Normal.h
-
OGProductVersion
5.10.0.159
OGLastSavedByProductVersion
- 5.30.0.51236
+ 6.20.1.52589
GeneralEnableMisra
@@ -135,13 +131,35 @@
0
111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+ RTConfigPath2
+ $TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h
+
+
+ GFPUCoreSlave
+ 19
+ 37
+
+
+ GBECoreSlave
+ 19
+ 37
+
+
+ OGUseCmsis
+ 1
+
+
+ OGUseCmsisDspLib
+ 0
+
ICCARM
2
- 22
+ 28
1
1
@@ -262,10 +280,6 @@
OutputFile
$FILE_BNAME$.o
-
- CCLangSelect
- 0
-
CCLibConfigHeader
1
@@ -294,10 +308,6 @@
CCStdIncCheck
0
-
- CCStdIncludePath
- $TOOLKIT_DIR$\INC\
-
CCCodeSection
.text
@@ -345,13 +355,53 @@
CCPosIndNoDynInit
0
+
+ IccLang
+ 0
+
+
+ IccCDialect
+ 1
+
+
+ IccAllowVLA
+ 0
+
+
+ IccCppDialect
+ 1
+
+
+ IccExceptions
+ 1
+
+
+ IccRTTI
+ 1
+
+
+ IccStaticDestr
+ 1
+
+
+ IccCppInlineSemantics
+ 1
+
+
+ IccCmsis
+ 1
+
+
+ IccFloatSemantics
+ 0
+
AARM
2
- 7
+ 8
1
1
@@ -495,10 +545,6 @@
AIgnoreStdInclude
0
-
- AStdIncludes
- $TOOLKIT_DIR$\INC\
-
AUserIncludes
$PROJ_DIR$/.
@@ -568,7 +614,7 @@
ILINK
0
- 9
+ 13
1
1
@@ -794,825 +840,40 @@
IlinkLogUnusedFragments
0
-
-
-
- IARCHIVE
- 0
-
- 0
- 1
- 1
-
- IarchiveInputs
-
-
-
- IarchiveOverride
- 0
-
-
- IarchiveOutput
- ###Unitialized###
-
-
-
-
- BILINK
- 0
-
-
-
-
- Release
-
- ARM
-
- 1
-
- General
- 3
-
- 17
- 1
- 1
-
- ExePath
- Release\Exe
-
-
- ObjPath
- Release\Obj
-
-
- ListPath
- Release\List
-
-
- Variant
- 17
- 37
-
-
- GEndianMode
- 0
-
-
- Input variant
- 1
- 3
-
-
- Input description
- No specifier n, no float nor long long, no scan set, no assignment suppressing.
-
-
- Output variant
- 0
- 3
-
-
- Output description
- No specifier a, A, no specifier n, no float nor long long, no flags.
-
-
- GOutputBinary
- 0
-
- FPU
- 1
+ IlinkCrcReverseByteOrder
0
- OGCoreOrChip
- 1
-
-
- GRuntimeLibSelect
- 0
- 1
-
-
- GRuntimeLibSelectSlave
- 0
+ IlinkCrcUseAsInput
1
- RTDescription
- Use the normal configuration of the C/C++ runtime library. No locale interface, C locale, no file descriptor support, no multibytes in printf and scanf, and no hex floats in strtod.
-
-
- RTConfigPath
- $TOOLKIT_DIR$\INC\DLib_Config_Normal.h
-
-
- OGProductVersion
- 5.10.0.159
-
-
- OGLastSavedByProductVersion
- 5.30.0.51236
-
-
- GeneralEnableMisra
- 0
-
-
- GeneralMisraVerbose
+ IlinkOptInline
0
- OGChipSelectEditMenu
- AT91SAM3U4 Atmel AT91SAM3U4
-
-
- GenLowLevelInterface
- 1
-
-
- GEndianModeBE
+ IlinkOptExceptionsAllow
1
- OGBufferedTerminalOutput
+ IlinkOptExceptionsForce
0
- GenStdoutInterface
+ IlinkCmsis
1
- GeneralMisraRules98
- 0
- 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
-
-
- GeneralMisraVer
- 0
-
-
- GeneralMisraRules04
- 0
- 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
-
-
-
-
- ICCARM
- 2
-
- 22
- 1
- 1
-
- CCDefines
- at91sam3u4
- flash
-
-
- CCPreprocFile
- 0
-
-
- CCPreprocComments
- 0
-
-
- CCPreprocLine
- 0
-
-
- CCListCFile
- 0
-
-
- CCListCMnemonics
- 0
-
-
- CCListCMessages
- 0
-
-
- CCListAssFile
- 0
-
-
- CCListAssSource
- 0
-
-
- CCEnableRemarks
+ IlinkOptMergeDuplSections
0
- CCDiagSuppress
- pa082
-
-
- CCDiagRemark
-
-
-
- CCDiagWarning
-
-
-
- CCDiagError
-
-
-
- CCObjPrefix
+ IlinkOptUseVfe
1
- CCAllowList
- 1
- 1111101
-
-
- CCDebugInfo
- 1
-
-
- IEndianMode
- 1
-
-
- IProcessor
- 1
-
-
- IExtraOptionsCheck
- 0
-
-
- IExtraOptions
-
-
-
- CCLangConformance
- 0
-
-
- CCSignedPlainChar
- 1
-
-
- CCRequirePrototypes
- 0
-
-
- CCMultibyteSupport
- 0
-
-
- CCDiagWarnAreErr
- 0
-
-
- CCCompilerRuntimeInfo
- 0
-
-
- IFpuProcessor
- 1
-
-
- OutputFile
- $FILE_BNAME$.o
-
-
- CCLangSelect
- 0
-
-
- CCLibConfigHeader
- 1
-
-
- PreInclude
-
-
-
- CompilerMisraOverride
- 0
-
-
- CCIncludePath2
- $PROJ_DIR$/system
- $PROJ_DIR$/AT91Lib/peripherals
- $PROJ_DIR$/AT91Lib/components
- $PROJ_DIR$/AT91Lib/drivers
- $PROJ_DIR$/AT91Lib
- $PROJ_DIR$/../../Source/include
- $PROJ_DIR$/../../Source/portable/IAR/ARM_CM3
- $PROJ_DIR$/.
- $PROJ_DIR$/../common/include
-
-
- CCStdIncCheck
- 0
-
-
- CCStdIncludePath
- $TOOLKIT_DIR$\INC\
-
-
- CCCodeSection
- .text
-
-
- IInterwork2
- 0
-
-
- IProcessorMode2
- 1
-
-
- CCOptLevel
- 3
-
-
- CCOptStrategy
- 0
- 0
-
-
- CCOptLevelSlave
- 3
-
-
- CompilerMisraRules98
- 0
- 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
-
-
- CompilerMisraRules04
- 0
- 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
-
-
- CCPosIndRopi
- 0
-
-
- CCPosIndRwpi
- 0
-
-
- CCPosIndNoDynInit
- 0
-
-
-
-
- AARM
- 2
-
- 7
- 1
- 1
-
- AObjPrefix
- 1
-
-
- AEndian
- 1
-
-
- ACaseSensitivity
- 1
-
-
- MacroChars
- 0
- 0
-
-
- AWarnEnable
- 0
-
-
- AWarnWhat
- 0
-
-
- AWarnOne
-
-
-
- AWarnRange1
-
-
-
- AWarnRange2
-
-
-
- ADebug
- 1
-
-
- AltRegisterNames
- 0
-
-
- ADefines
-
-
-
- AList
- 0
-
-
- AListHeader
- 1
-
-
- AListing
- 1
-
-
- Includes
- 0
-
-
- MacDefs
- 0
-
-
- MacExps
- 1
-
-
- MacExec
- 0
-
-
- OnlyAssed
- 0
-
-
- MultiLine
- 0
-
-
- PageLengthCheck
- 0
-
-
- PageLength
- 80
-
-
- TabSpacing
- 8
-
-
- AXRef
- 0
-
-
- AXRefDefines
- 0
-
-
- AXRefInternal
- 0
-
-
- AXRefDual
- 0
-
-
- AProcessor
- 1
-
-
- AFpuProcessor
- 1
-
-
- AOutputFile
- $FILE_BNAME$.o
-
-
- AMultibyteSupport
- 0
-
-
- ALimitErrorsCheck
- 0
-
-
- ALimitErrorsEdit
- 100
-
-
- AIgnoreStdInclude
- 0
-
-
- AStdIncludes
- $TOOLKIT_DIR$\INC\
-
-
- AUserIncludes
- $PROJ_DIR$/.
-
-
- AExtraOptionsCheckV2
- 0
-
-
- AExtraOptionsV2
-
-
-
-
-
- OBJCOPY
- 0
-
- 1
- 1
- 1
-
- OOCOutputFormat
- 2
- 0
-
-
- OCOutputOverride
- 0
-
-
- OOCOutputFile
- RTOSDemo.srec
-
-
- OOCCommandLineProducer
- 1
-
-
- OOCObjCopyEnable
- 0
-
-
-
-
- CUSTOM
- 3
-
-
-
-
-
-
- BICOMP
- 0
-
-
-
- BUILDACTION
- 1
-
-
-
-
-
-
- ILINK
- 0
-
- 9
- 1
- 1
-
- IlinkOutputFile
- RTOSDemo.out
-
-
- IlinkLibIOConfig
- 1
-
-
- XLinkMisraHandler
- 0
-
-
- IlinkInputFileSlave
- 0
-
-
- IlinkDebugInfoEnable
- 1
-
-
- IlinkKeepSymbols
-
-
-
- IlinkRawBinaryFile
-
-
-
- IlinkRawBinarySymbol
-
-
-
- IlinkRawBinarySegment
-
-
-
- IlinkRawBinaryAlign
-
-
-
- IlinkDefines
-
-
-
- IlinkConfigDefines
-
-
-
- IlinkMapFile
- 0
-
-
- IlinkLogFile
- 0
-
-
- IlinkLogInitialization
- 0
-
-
- IlinkLogModule
- 0
-
-
- IlinkLogSection
- 0
-
-
- IlinkLogVeneer
- 0
-
-
- IlinkIcfOverride
- 1
-
-
- IlinkIcfFile
- C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_AT91SAM3U256_IAR\system\flash.icf
-
-
- IlinkIcfFileSlave
-
-
-
- IlinkEnableRemarks
- 0
-
-
- IlinkSuppressDiags
-
-
-
- IlinkTreatAsRem
-
-
-
- IlinkTreatAsWarn
-
-
-
- IlinkTreatAsErr
-
-
-
- IlinkWarningsAreErrors
- 0
-
-
- IlinkUseExtraOptions
- 0
-
-
- IlinkExtraOptions
-
-
-
- IlinkLowLevelInterfaceSlave
- 1
-
-
- IlinkAutoLibEnable
- 1
-
-
- IlinkAdditionalLibs
-
-
-
- IlinkOverrideProgramEntryLabel
- 0
-
-
- IlinkProgramEntryLabelSelect
- 0
-
-
- IlinkProgramEntryLabel
- __iar_program_start
-
-
- DoFill
- 0
-
-
- FillerByte
- 0xFF
-
-
- FillerStart
- 0x0
-
-
- FillerEnd
- 0x0
-
-
- CrcSize
- 0
- 1
-
-
- CrcAlign
- 1
-
-
- CrcAlgo
- 1
-
-
- CrcPoly
- 0x11021
-
-
- CrcCompl
- 0
- 0
-
-
- CrcBitOrder
- 0
- 0
-
-
- CrcInitialValue
- 0x0
-
-
- DoCrc
- 0
-
-
- IlinkBE8Slave
- 1
-
-
- IlinkBufferedTerminalOutput
- 1
-
-
- IlinkStdoutInterfaceSlave
- 1
-
-
- CrcFullSize
- 0
-
-
- IlinkIElfToolPostProcess
- 0
-
-
- IlinkLogAutoLibSelect
- 0
-
-
- IlinkLogRedirSymbols
- 0
-
-
- IlinkLogUnusedFragments
+ IlinkOptForceVfe
0
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.cspy.bat b/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.cspy.bat
index 77a0a944d..480a2d1e9 100644
--- a/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.cspy.bat
+++ b/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.cspy.bat
@@ -1,33 +1,15 @@
-@REM This bat file has been generated by the IAR Embeddded Workbench
-@REM C-SPY interactive debugger,as an aid to preparing a command
-@REM line for running the cspybat command line utility with the
-@REM appropriate settings.
+@REM This batch file has been generated by the IAR Embedded Workbench
+@REM C-SPY Debugger, as an aid to preparing a command line for running
+@REM the cspybat command line utility using the appropriate settings.
@REM
-@REM After making some adjustments to this file, you can launch cspybat
-@REM by typing the name of this file followed by the name of the debug
-@REM file (usually an ubrof file). Note that this file is generated
-@REM every time a new debug session is initialized, so you may want to
-@REM move or rename the file before making changes.
-@REM
-@REM Note: some command line arguments cannot be properly generated
-@REM by this process. Specifically, the plugin which is responsible
-@REM for the Terminal I/O window (and other C runtime functionality)
-@REM comes in a special version for cspybat, and the name of that
-@REM plugin dll is not known when generating this file. It resides in
-@REM the $TOOLKIT_DIR$\bin folder and is usually called XXXbat.dll or
-@REM XXXlibsupportbat.dll, where XXX is the name of the corresponding
-@REM tool chain. Replace the '' parameter
-@REM below with the appropriate file name. Other plugins loaded by
-@REM C-SPY are usually not needed by, or will not work in, cspybat
-@REM but they are listed at the end of this file for reference.
+@REM You can launch cspybat by typing the name of this batch file followed
+@REM by the name of the debug file (usually an ELF/DWARF or UBROF file).
+@REM Note that this file is generated every time a new debug session
+@REM is initialized, so you may want to move or rename the file before
+@REM making changes.
+@REM
-"C:\devtools\IAR Systems\Embedded Workbench 5.4\common\bin\cspybat" "C:\devtools\IAR Systems\Embedded Workbench 5.4\arm\bin\armproc.dll" "C:\devtools\IAR Systems\Embedded Workbench 5.4\arm\bin\armjlink.dll" %1 --plugin "C:\devtools\IAR Systems\Embedded Workbench 5.4\arm\bin\" --macro "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\CORTEX_AT91SAM3U256_IAR\system\at91sam3u-ek-flash.mac" --flash_loader "C:\devtools\IAR Systems\Embedded Workbench 5.4\arm\config\flashloader\Atmel\AT91SAM3U4-EK\at91sam3u4-flash.board" --backend -B "--endian=little" "--cpu=Cortex-M3" "--fpu=None" "-p" "C:\devtools\IAR Systems\Embedded Workbench 5.4\arm\CONFIG\debugger\Atmel\ioAT91SAM3U4.ddf" "--drv_verify_download" "--semihosting" "--device=AT91SAM3U4" "--drv_communication=USB0" "--jlink_speed=auto" "--jlink_initial_speed=32" "--jlink_reset_strategy=0,0" "--jlink_interface=SWD" "--drv_catch_exceptions=0x000"
+"C:\devtools\IAR Systems\Embedded Workbench 6.0\common\bin\cspybat" "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\bin\armproc.dll" "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\bin\armjlink.dll" %1 --plugin "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\bin\armbat.dll" --macro "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\CORTEX_AT91SAM3U256_IAR\system\at91sam3u-ek-flash.mac" --flash_loader "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\config\flashloader\Atmel\AT91SAM3U4-EK\at91sam3u4-flash.board" --backend -B "--endian=little" "--cpu=Cortex-M3" "--fpu=None" "-p" "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\CONFIG\debugger\Atmel\ioAT91SAM3U4.ddf" "--drv_verify_download" "--semihosting" "--device=AT91SAM3U4" "--drv_communication=USB0" "--jlink_speed=auto" "--jlink_initial_speed=32" "--jlink_reset_strategy=0,0" "--jlink_interface=SWD" "--drv_catch_exceptions=0x000" "--drv_swo_clock_setup=72000000,0,2000000"
-@REM Loaded plugins:
-@REM C:\devtools\IAR Systems\Embedded Workbench 5.4\arm\bin\armlibsupport.dll
-@REM C:\devtools\IAR Systems\Embedded Workbench 5.4\common\plugins\CodeCoverage\CodeCoverage.dll
-@REM C:\devtools\IAR Systems\Embedded Workbench 5.4\common\plugins\Profiling\Profiling.dll
-@REM C:\devtools\IAR Systems\Embedded Workbench 5.4\common\plugins\stack\stack.dll
-@REM C:\devtools\IAR Systems\Embedded Workbench 5.4\common\plugins\SymList\SymList.dll
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.dni b/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.dni
index f6d332e07..5c96ed1be 100644
--- a/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.dni
+++ b/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.dni
@@ -114,9 +114,21 @@ Enabled=0
Mode=3
Graph=0
Symbiont=0
+[Breakpoints]
+Count=0
+[Stack]
+FillEnabled=0
+OverflowWarningsEnabled=1
+WarningThreshold=90
+SpWarningsEnabled=1
+WarnLogOnly=1
+UseTrigger=1
+TriggerName=main
+LimitSize=0
+ByteLimit=50
[Disassemble mode]
mode=0
-[Breakpoints]
+[Breakpoints2]
Count=0
[Aliases]
Count=0
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.wsdt b/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.wsdt
index e317b9c17..d91c73877 100644
--- a/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.wsdt
+++ b/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.wsdt
@@ -17,7 +17,7 @@
20 1216 324 81 20 1622 580 82 994
-
+
TabID-16570-17725
@@ -29,7 +29,7 @@
- 0 TabID-13247-26794 Build Build TabID-4179-11901 Debug Log Debug-Log TabID-30005-19605 Find in Files Find-in-Files TabID-6552-24144 Breakpoints Breakpoints 0
+ 0 TabID-13247-26794 Build Build TabID-4179-11901 Debug Log Debug-Log TabID-30005-19605 Find in Files Find-in-Files TabID-6552-24144 Breakpoints Breakpoints 0
@@ -42,7 +42,7 @@
- iaridepm.enu1 -2 -2 670 332 -2 -2 240 200 142857 203666 198810 684318 -2 -2 268 1682 -2 -2 1684 270 1002381 274949 142857 203666
+ iaridepm.enu1 -2 -2 670 332 -2 -2 240 200 142857 203666 198810 684318 -2 -2 268 1682 -2 -2 1684 270 1002381 274949 142857 203666
diff --git a/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/CoreSupport/core_cm3.h b/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/CoreSupport/core_cm3.h
deleted file mode 100644
index 2b6b51a7d..000000000
--- a/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/CoreSupport/core_cm3.h
+++ /dev/null
@@ -1,1818 +0,0 @@
-/**************************************************************************//**
- * @file core_cm3.h
- * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Header File
- * @version V1.30
- * @date 30. October 2009
- *
- * @note
- * Copyright (C) 2009 ARM Limited. All rights reserved.
- *
- * @par
- * ARM Limited (ARM) is supplying this software for use with Cortex-M
- * processor based microcontrollers. This file can be freely distributed
- * within development tools that are supporting such ARM based processors.
- *
- * @par
- * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
- * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
- * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
- * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
- *
- ******************************************************************************/
-
-#ifndef __CM3_CORE_H__
-#define __CM3_CORE_H__
-
-/** @addtogroup CMSIS_CM3_core_LintCinfiguration CMSIS CM3 Core Lint Configuration
- *
- * List of Lint messages which will be suppressed and not shown:
- * - Error 10: \n
- * register uint32_t __regBasePri __asm("basepri"); \n
- * Error 10: Expecting ';'
- * .
- * - Error 530: \n
- * return(__regBasePri); \n
- * Warning 530: Symbol '__regBasePri' (line 264) not initialized
- * .
- * - Error 550: \n
- * __regBasePri = (basePri & 0x1ff); \n
- * Warning 550: Symbol '__regBasePri' (line 271) not accessed
- * .
- * - Error 754: \n
- * uint32_t RESERVED0[24]; \n
- * Info 754: local structure member '' (line 109, file ./cm3_core.h) not referenced
- * .
- * - Error 750: \n
- * #define __CM3_CORE_H__ \n
- * Info 750: local macro '__CM3_CORE_H__' (line 43, file./cm3_core.h) not referenced
- * .
- * - Error 528: \n
- * static __INLINE void NVIC_DisableIRQ(uint32_t IRQn) \n
- * Warning 528: Symbol 'NVIC_DisableIRQ(unsigned int)' (line 419, file ./cm3_core.h) not referenced
- * .
- * - Error 751: \n
- * } InterruptType_Type; \n
- * Info 751: local typedef 'InterruptType_Type' (line 170, file ./cm3_core.h) not referenced
- * .
- * Note: To re-enable a Message, insert a space before 'lint' *
- *
- */
-
-/*lint -save */
-/*lint -e10 */
-/*lint -e530 */
-/*lint -e550 */
-/*lint -e754 */
-/*lint -e750 */
-/*lint -e528 */
-/*lint -e751 */
-
-
-/** @addtogroup CMSIS_CM3_core_definitions CM3 Core Definitions
- This file defines all structures and symbols for CMSIS core:
- - CMSIS version number
- - Cortex-M core registers and bitfields
- - Cortex-M core peripheral base address
- @{
- */
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#define __CM3_CMSIS_VERSION_MAIN (0x01) /*!< [31:16] CMSIS HAL main version */
-#define __CM3_CMSIS_VERSION_SUB (0x30) /*!< [15:0] CMSIS HAL sub version */
-#define __CM3_CMSIS_VERSION ((__CM3_CMSIS_VERSION_MAIN << 16) | __CM3_CMSIS_VERSION_SUB) /*!< CMSIS HAL version number */
-
-#define __CORTEX_M (0x03) /*!< Cortex core */
-
-#include /* Include standard types */
-
-#if defined (__ICCARM__)
- #include /* IAR Intrinsics */
-#endif
-
-
-#ifndef __NVIC_PRIO_BITS
- #define __NVIC_PRIO_BITS 4 /*!< standard definition for NVIC Priority Bits */
-#endif
-
-
-
-
-/**
- * IO definitions
- *
- * define access restrictions to peripheral registers
- */
-
-#ifdef __cplusplus
- #define __I volatile /*!< defines 'read only' permissions */
-#else
- #define __I volatile const /*!< defines 'read only' permissions */
-#endif
-#define __O volatile /*!< defines 'write only' permissions */
-#define __IO volatile /*!< defines 'read / write' permissions */
-
-
-
-/*******************************************************************************
- * Register Abstraction
- ******************************************************************************/
-/** @addtogroup CMSIS_CM3_core_register CMSIS CM3 Core Register
- @{
-*/
-
-
-/** @addtogroup CMSIS_CM3_NVIC CMSIS CM3 NVIC
- memory mapped structure for Nested Vectored Interrupt Controller (NVIC)
- @{
- */
-typedef struct
-{
- __IO uint32_t ISER[8]; /*!< Offset: 0x000 Interrupt Set Enable Register */
- uint32_t RESERVED0[24];
- __IO uint32_t ICER[8]; /*!< Offset: 0x080 Interrupt Clear Enable Register */
- uint32_t RSERVED1[24];
- __IO uint32_t ISPR[8]; /*!< Offset: 0x100 Interrupt Set Pending Register */
- uint32_t RESERVED2[24];
- __IO uint32_t ICPR[8]; /*!< Offset: 0x180 Interrupt Clear Pending Register */
- uint32_t RESERVED3[24];
- __IO uint32_t IABR[8]; /*!< Offset: 0x200 Interrupt Active bit Register */
- uint32_t RESERVED4[56];
- __IO uint8_t IP[240]; /*!< Offset: 0x300 Interrupt Priority Register (8Bit wide) */
- uint32_t RESERVED5[644];
- __O uint32_t STIR; /*!< Offset: 0xE00 Software Trigger Interrupt Register */
-} NVIC_Type;
-/*@}*/ /* end of group CMSIS_CM3_NVIC */
-
-
-/** @addtogroup CMSIS_CM3_SCB CMSIS CM3 SCB
- memory mapped structure for System Control Block (SCB)
- @{
- */
-typedef struct
-{
- __I uint32_t CPUID; /*!< Offset: 0x00 CPU ID Base Register */
- __IO uint32_t ICSR; /*!< Offset: 0x04 Interrupt Control State Register */
- __IO uint32_t VTOR; /*!< Offset: 0x08 Vector Table Offset Register */
- __IO uint32_t AIRCR; /*!< Offset: 0x0C Application Interrupt / Reset Control Register */
- __IO uint32_t SCR; /*!< Offset: 0x10 System Control Register */
- __IO uint32_t CCR; /*!< Offset: 0x14 Configuration Control Register */
- __IO uint8_t SHP[12]; /*!< Offset: 0x18 System Handlers Priority Registers (4-7, 8-11, 12-15) */
- __IO uint32_t SHCSR; /*!< Offset: 0x24 System Handler Control and State Register */
- __IO uint32_t CFSR; /*!< Offset: 0x28 Configurable Fault Status Register */
- __IO uint32_t HFSR; /*!< Offset: 0x2C Hard Fault Status Register */
- __IO uint32_t DFSR; /*!< Offset: 0x30 Debug Fault Status Register */
- __IO uint32_t MMFAR; /*!< Offset: 0x34 Mem Manage Address Register */
- __IO uint32_t BFAR; /*!< Offset: 0x38 Bus Fault Address Register */
- __IO uint32_t AFSR; /*!< Offset: 0x3C Auxiliary Fault Status Register */
- __I uint32_t PFR[2]; /*!< Offset: 0x40 Processor Feature Register */
- __I uint32_t DFR; /*!< Offset: 0x48 Debug Feature Register */
- __I uint32_t ADR; /*!< Offset: 0x4C Auxiliary Feature Register */
- __I uint32_t MMFR[4]; /*!< Offset: 0x50 Memory Model Feature Register */
- __I uint32_t ISAR[5]; /*!< Offset: 0x60 ISA Feature Register */
-} SCB_Type;
-
-/* SCB CPUID Register Definitions */
-#define SCB_CPUID_IMPLEMENTER_Pos 24 /*!< SCB CPUID: IMPLEMENTER Position */
-#define SCB_CPUID_IMPLEMENTER_Msk (0xFFul << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */
-
-#define SCB_CPUID_VARIANT_Pos 20 /*!< SCB CPUID: VARIANT Position */
-#define SCB_CPUID_VARIANT_Msk (0xFul << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */
-
-#define SCB_CPUID_PARTNO_Pos 4 /*!< SCB CPUID: PARTNO Position */
-#define SCB_CPUID_PARTNO_Msk (0xFFFul << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */
-
-#define SCB_CPUID_REVISION_Pos 0 /*!< SCB CPUID: REVISION Position */
-#define SCB_CPUID_REVISION_Msk (0xFul << SCB_CPUID_REVISION_Pos) /*!< SCB CPUID: REVISION Mask */
-
-/* SCB Interrupt Control State Register Definitions */
-#define SCB_ICSR_NMIPENDSET_Pos 31 /*!< SCB ICSR: NMIPENDSET Position */
-#define SCB_ICSR_NMIPENDSET_Msk (1ul << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */
-
-#define SCB_ICSR_PENDSVSET_Pos 28 /*!< SCB ICSR: PENDSVSET Position */
-#define SCB_ICSR_PENDSVSET_Msk (1ul << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */
-
-#define SCB_ICSR_PENDSVCLR_Pos 27 /*!< SCB ICSR: PENDSVCLR Position */
-#define SCB_ICSR_PENDSVCLR_Msk (1ul << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */
-
-#define SCB_ICSR_PENDSTSET_Pos 26 /*!< SCB ICSR: PENDSTSET Position */
-#define SCB_ICSR_PENDSTSET_Msk (1ul << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */
-
-#define SCB_ICSR_PENDSTCLR_Pos 25 /*!< SCB ICSR: PENDSTCLR Position */
-#define SCB_ICSR_PENDSTCLR_Msk (1ul << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */
-
-#define SCB_ICSR_ISRPREEMPT_Pos 23 /*!< SCB ICSR: ISRPREEMPT Position */
-#define SCB_ICSR_ISRPREEMPT_Msk (1ul << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */
-
-#define SCB_ICSR_ISRPENDING_Pos 22 /*!< SCB ICSR: ISRPENDING Position */
-#define SCB_ICSR_ISRPENDING_Msk (1ul << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */
-
-#define SCB_ICSR_VECTPENDING_Pos 12 /*!< SCB ICSR: VECTPENDING Position */
-#define SCB_ICSR_VECTPENDING_Msk (0x1FFul << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */
-
-#define SCB_ICSR_RETTOBASE_Pos 11 /*!< SCB ICSR: RETTOBASE Position */
-#define SCB_ICSR_RETTOBASE_Msk (1ul << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */
-
-#define SCB_ICSR_VECTACTIVE_Pos 0 /*!< SCB ICSR: VECTACTIVE Position */
-#define SCB_ICSR_VECTACTIVE_Msk (0x1FFul << SCB_ICSR_VECTACTIVE_Pos) /*!< SCB ICSR: VECTACTIVE Mask */
-
-/* SCB Interrupt Control State Register Definitions */
-#define SCB_VTOR_TBLBASE_Pos 29 /*!< SCB VTOR: TBLBASE Position */
-#define SCB_VTOR_TBLBASE_Msk (0x1FFul << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */
-
-#define SCB_VTOR_TBLOFF_Pos 7 /*!< SCB VTOR: TBLOFF Position */
-#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFul << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */
-
-/* SCB Application Interrupt and Reset Control Register Definitions */
-#define SCB_AIRCR_VECTKEY_Pos 16 /*!< SCB AIRCR: VECTKEY Position */
-#define SCB_AIRCR_VECTKEY_Msk (0xFFFFul << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */
-
-#define SCB_AIRCR_VECTKEYSTAT_Pos 16 /*!< SCB AIRCR: VECTKEYSTAT Position */
-#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFul << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */
-
-#define SCB_AIRCR_ENDIANESS_Pos 15 /*!< SCB AIRCR: ENDIANESS Position */
-#define SCB_AIRCR_ENDIANESS_Msk (1ul << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */
-
-#define SCB_AIRCR_PRIGROUP_Pos 8 /*!< SCB AIRCR: PRIGROUP Position */
-#define SCB_AIRCR_PRIGROUP_Msk (7ul << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */
-
-#define SCB_AIRCR_SYSRESETREQ_Pos 2 /*!< SCB AIRCR: SYSRESETREQ Position */
-#define SCB_AIRCR_SYSRESETREQ_Msk (1ul << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */
-
-#define SCB_AIRCR_VECTCLRACTIVE_Pos 1 /*!< SCB AIRCR: VECTCLRACTIVE Position */
-#define SCB_AIRCR_VECTCLRACTIVE_Msk (1ul << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */
-
-#define SCB_AIRCR_VECTRESET_Pos 0 /*!< SCB AIRCR: VECTRESET Position */
-#define SCB_AIRCR_VECTRESET_Msk (1ul << SCB_AIRCR_VECTRESET_Pos) /*!< SCB AIRCR: VECTRESET Mask */
-
-/* SCB System Control Register Definitions */
-#define SCB_SCR_SEVONPEND_Pos 4 /*!< SCB SCR: SEVONPEND Position */
-#define SCB_SCR_SEVONPEND_Msk (1ul << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */
-
-#define SCB_SCR_SLEEPDEEP_Pos 2 /*!< SCB SCR: SLEEPDEEP Position */
-#define SCB_SCR_SLEEPDEEP_Msk (1ul << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */
-
-#define SCB_SCR_SLEEPONEXIT_Pos 1 /*!< SCB SCR: SLEEPONEXIT Position */
-#define SCB_SCR_SLEEPONEXIT_Msk (1ul << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */
-
-/* SCB Configuration Control Register Definitions */
-#define SCB_CCR_STKALIGN_Pos 9 /*!< SCB CCR: STKALIGN Position */
-#define SCB_CCR_STKALIGN_Msk (1ul << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */
-
-#define SCB_CCR_BFHFNMIGN_Pos 8 /*!< SCB CCR: BFHFNMIGN Position */
-#define SCB_CCR_BFHFNMIGN_Msk (1ul << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */
-
-#define SCB_CCR_DIV_0_TRP_Pos 4 /*!< SCB CCR: DIV_0_TRP Position */
-#define SCB_CCR_DIV_0_TRP_Msk (1ul << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */
-
-#define SCB_CCR_UNALIGN_TRP_Pos 3 /*!< SCB CCR: UNALIGN_TRP Position */
-#define SCB_CCR_UNALIGN_TRP_Msk (1ul << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */
-
-#define SCB_CCR_USERSETMPEND_Pos 1 /*!< SCB CCR: USERSETMPEND Position */
-#define SCB_CCR_USERSETMPEND_Msk (1ul << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */
-
-#define SCB_CCR_NONBASETHRDENA_Pos 0 /*!< SCB CCR: NONBASETHRDENA Position */
-#define SCB_CCR_NONBASETHRDENA_Msk (1ul << SCB_CCR_NONBASETHRDENA_Pos) /*!< SCB CCR: NONBASETHRDENA Mask */
-
-/* SCB System Handler Control and State Register Definitions */
-#define SCB_SHCSR_USGFAULTENA_Pos 18 /*!< SCB SHCSR: USGFAULTENA Position */
-#define SCB_SHCSR_USGFAULTENA_Msk (1ul << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */
-
-#define SCB_SHCSR_BUSFAULTENA_Pos 17 /*!< SCB SHCSR: BUSFAULTENA Position */
-#define SCB_SHCSR_BUSFAULTENA_Msk (1ul << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */
-
-#define SCB_SHCSR_MEMFAULTENA_Pos 16 /*!< SCB SHCSR: MEMFAULTENA Position */
-#define SCB_SHCSR_MEMFAULTENA_Msk (1ul << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */
-
-#define SCB_SHCSR_SVCALLPENDED_Pos 15 /*!< SCB SHCSR: SVCALLPENDED Position */
-#define SCB_SHCSR_SVCALLPENDED_Msk (1ul << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */
-
-#define SCB_SHCSR_BUSFAULTPENDED_Pos 14 /*!< SCB SHCSR: BUSFAULTPENDED Position */
-#define SCB_SHCSR_BUSFAULTPENDED_Msk (1ul << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */
-
-#define SCB_SHCSR_MEMFAULTPENDED_Pos 13 /*!< SCB SHCSR: MEMFAULTPENDED Position */
-#define SCB_SHCSR_MEMFAULTPENDED_Msk (1ul << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */
-
-#define SCB_SHCSR_USGFAULTPENDED_Pos 12 /*!< SCB SHCSR: USGFAULTPENDED Position */
-#define SCB_SHCSR_USGFAULTPENDED_Msk (1ul << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */
-
-#define SCB_SHCSR_SYSTICKACT_Pos 11 /*!< SCB SHCSR: SYSTICKACT Position */
-#define SCB_SHCSR_SYSTICKACT_Msk (1ul << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */
-
-#define SCB_SHCSR_PENDSVACT_Pos 10 /*!< SCB SHCSR: PENDSVACT Position */
-#define SCB_SHCSR_PENDSVACT_Msk (1ul << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */
-
-#define SCB_SHCSR_MONITORACT_Pos 8 /*!< SCB SHCSR: MONITORACT Position */
-#define SCB_SHCSR_MONITORACT_Msk (1ul << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */
-
-#define SCB_SHCSR_SVCALLACT_Pos 7 /*!< SCB SHCSR: SVCALLACT Position */
-#define SCB_SHCSR_SVCALLACT_Msk (1ul << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */
-
-#define SCB_SHCSR_USGFAULTACT_Pos 3 /*!< SCB SHCSR: USGFAULTACT Position */
-#define SCB_SHCSR_USGFAULTACT_Msk (1ul << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */
-
-#define SCB_SHCSR_BUSFAULTACT_Pos 1 /*!< SCB SHCSR: BUSFAULTACT Position */
-#define SCB_SHCSR_BUSFAULTACT_Msk (1ul << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */
-
-#define SCB_SHCSR_MEMFAULTACT_Pos 0 /*!< SCB SHCSR: MEMFAULTACT Position */
-#define SCB_SHCSR_MEMFAULTACT_Msk (1ul << SCB_SHCSR_MEMFAULTACT_Pos) /*!< SCB SHCSR: MEMFAULTACT Mask */
-
-/* SCB Configurable Fault Status Registers Definitions */
-#define SCB_CFSR_USGFAULTSR_Pos 16 /*!< SCB CFSR: Usage Fault Status Register Position */
-#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFul << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */
-
-#define SCB_CFSR_BUSFAULTSR_Pos 8 /*!< SCB CFSR: Bus Fault Status Register Position */
-#define SCB_CFSR_BUSFAULTSR_Msk (0xFFul << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */
-
-#define SCB_CFSR_MEMFAULTSR_Pos 0 /*!< SCB CFSR: Memory Manage Fault Status Register Position */
-#define SCB_CFSR_MEMFAULTSR_Msk (0xFFul << SCB_CFSR_MEMFAULTSR_Pos) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */
-
-/* SCB Hard Fault Status Registers Definitions */
-#define SCB_HFSR_DEBUGEVT_Pos 31 /*!< SCB HFSR: DEBUGEVT Position */
-#define SCB_HFSR_DEBUGEVT_Msk (1ul << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */
-
-#define SCB_HFSR_FORCED_Pos 30 /*!< SCB HFSR: FORCED Position */
-#define SCB_HFSR_FORCED_Msk (1ul << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */
-
-#define SCB_HFSR_VECTTBL_Pos 1 /*!< SCB HFSR: VECTTBL Position */
-#define SCB_HFSR_VECTTBL_Msk (1ul << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */
-
-/* SCB Debug Fault Status Register Definitions */
-#define SCB_DFSR_EXTERNAL_Pos 4 /*!< SCB DFSR: EXTERNAL Position */
-#define SCB_DFSR_EXTERNAL_Msk (1ul << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */
-
-#define SCB_DFSR_VCATCH_Pos 3 /*!< SCB DFSR: VCATCH Position */
-#define SCB_DFSR_VCATCH_Msk (1ul << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */
-
-#define SCB_DFSR_DWTTRAP_Pos 2 /*!< SCB DFSR: DWTTRAP Position */
-#define SCB_DFSR_DWTTRAP_Msk (1ul << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */
-
-#define SCB_DFSR_BKPT_Pos 1 /*!< SCB DFSR: BKPT Position */
-#define SCB_DFSR_BKPT_Msk (1ul << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */
-
-#define SCB_DFSR_HALTED_Pos 0 /*!< SCB DFSR: HALTED Position */
-#define SCB_DFSR_HALTED_Msk (1ul << SCB_DFSR_HALTED_Pos) /*!< SCB DFSR: HALTED Mask */
-/*@}*/ /* end of group CMSIS_CM3_SCB */
-
-
-/** @addtogroup CMSIS_CM3_SysTick CMSIS CM3 SysTick
- memory mapped structure for SysTick
- @{
- */
-typedef struct
-{
- __IO uint32_t CTRL; /*!< Offset: 0x00 SysTick Control and Status Register */
- __IO uint32_t LOAD; /*!< Offset: 0x04 SysTick Reload Value Register */
- __IO uint32_t VAL; /*!< Offset: 0x08 SysTick Current Value Register */
- __I uint32_t CALIB; /*!< Offset: 0x0C SysTick Calibration Register */
-} SysTick_Type;
-
-/* SysTick Control / Status Register Definitions */
-#define SysTick_CTRL_COUNTFLAG_Pos 16 /*!< SysTick CTRL: COUNTFLAG Position */
-#define SysTick_CTRL_COUNTFLAG_Msk (1ul << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */
-
-#define SysTick_CTRL_CLKSOURCE_Pos 2 /*!< SysTick CTRL: CLKSOURCE Position */
-#define SysTick_CTRL_CLKSOURCE_Msk (1ul << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */
-
-#define SysTick_CTRL_TICKINT_Pos 1 /*!< SysTick CTRL: TICKINT Position */
-#define SysTick_CTRL_TICKINT_Msk (1ul << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */
-
-#define SysTick_CTRL_ENABLE_Pos 0 /*!< SysTick CTRL: ENABLE Position */
-#define SysTick_CTRL_ENABLE_Msk (1ul << SysTick_CTRL_ENABLE_Pos) /*!< SysTick CTRL: ENABLE Mask */
-
-/* SysTick Reload Register Definitions */
-#define SysTick_LOAD_RELOAD_Pos 0 /*!< SysTick LOAD: RELOAD Position */
-#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFul << SysTick_LOAD_RELOAD_Pos) /*!< SysTick LOAD: RELOAD Mask */
-
-/* SysTick Current Register Definitions */
-#define SysTick_VAL_CURRENT_Pos 0 /*!< SysTick VAL: CURRENT Position */
-#define SysTick_VAL_CURRENT_Msk (0xFFFFFFul << SysTick_VAL_CURRENT_Pos) /*!< SysTick VAL: CURRENT Mask */
-
-/* SysTick Calibration Register Definitions */
-#define SysTick_CALIB_NOREF_Pos 31 /*!< SysTick CALIB: NOREF Position */
-#define SysTick_CALIB_NOREF_Msk (1ul << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */
-
-#define SysTick_CALIB_SKEW_Pos 30 /*!< SysTick CALIB: SKEW Position */
-#define SysTick_CALIB_SKEW_Msk (1ul << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */
-
-#define SysTick_CALIB_TENMS_Pos 0 /*!< SysTick CALIB: TENMS Position */
-#define SysTick_CALIB_TENMS_Msk (0xFFFFFFul << SysTick_VAL_CURRENT_Pos) /*!< SysTick CALIB: TENMS Mask */
-/*@}*/ /* end of group CMSIS_CM3_SysTick */
-
-
-/** @addtogroup CMSIS_CM3_ITM CMSIS CM3 ITM
- memory mapped structure for Instrumentation Trace Macrocell (ITM)
- @{
- */
-typedef struct
-{
- __O union
- {
- __O uint8_t u8; /*!< Offset: ITM Stimulus Port 8-bit */
- __O uint16_t u16; /*!< Offset: ITM Stimulus Port 16-bit */
- __O uint32_t u32; /*!< Offset: ITM Stimulus Port 32-bit */
- } PORT [32]; /*!< Offset: 0x00 ITM Stimulus Port Registers */
- uint32_t RESERVED0[864];
- __IO uint32_t TER; /*!< Offset: ITM Trace Enable Register */
- uint32_t RESERVED1[15];
- __IO uint32_t TPR; /*!< Offset: ITM Trace Privilege Register */
- uint32_t RESERVED2[15];
- __IO uint32_t TCR; /*!< Offset: ITM Trace Control Register */
- uint32_t RESERVED3[29];
- __IO uint32_t IWR; /*!< Offset: ITM Integration Write Register */
- __IO uint32_t IRR; /*!< Offset: ITM Integration Read Register */
- __IO uint32_t IMCR; /*!< Offset: ITM Integration Mode Control Register */
- uint32_t RESERVED4[43];
- __IO uint32_t LAR; /*!< Offset: ITM Lock Access Register */
- __IO uint32_t LSR; /*!< Offset: ITM Lock Status Register */
- uint32_t RESERVED5[6];
- __I uint32_t PID4; /*!< Offset: ITM Peripheral Identification Register #4 */
- __I uint32_t PID5; /*!< Offset: ITM Peripheral Identification Register #5 */
- __I uint32_t PID6; /*!< Offset: ITM Peripheral Identification Register #6 */
- __I uint32_t PID7; /*!< Offset: ITM Peripheral Identification Register #7 */
- __I uint32_t PID0; /*!< Offset: ITM Peripheral Identification Register #0 */
- __I uint32_t PID1; /*!< Offset: ITM Peripheral Identification Register #1 */
- __I uint32_t PID2; /*!< Offset: ITM Peripheral Identification Register #2 */
- __I uint32_t PID3; /*!< Offset: ITM Peripheral Identification Register #3 */
- __I uint32_t CID0; /*!< Offset: ITM Component Identification Register #0 */
- __I uint32_t CID1; /*!< Offset: ITM Component Identification Register #1 */
- __I uint32_t CID2; /*!< Offset: ITM Component Identification Register #2 */
- __I uint32_t CID3; /*!< Offset: ITM Component Identification Register #3 */
-} ITM_Type;
-
-/* ITM Trace Privilege Register Definitions */
-#define ITM_TPR_PRIVMASK_Pos 0 /*!< ITM TPR: PRIVMASK Position */
-#define ITM_TPR_PRIVMASK_Msk (0xFul << ITM_TPR_PRIVMASK_Pos) /*!< ITM TPR: PRIVMASK Mask */
-
-/* ITM Trace Control Register Definitions */
-#define ITM_TCR_BUSY_Pos 23 /*!< ITM TCR: BUSY Position */
-#define ITM_TCR_BUSY_Msk (1ul << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */
-
-#define ITM_TCR_ATBID_Pos 16 /*!< ITM TCR: ATBID Position */
-#define ITM_TCR_ATBID_Msk (0x7Ful << ITM_TCR_ATBID_Pos) /*!< ITM TCR: ATBID Mask */
-
-#define ITM_TCR_TSPrescale_Pos 8 /*!< ITM TCR: TSPrescale Position */
-#define ITM_TCR_TSPrescale_Msk (3ul << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */
-
-#define ITM_TCR_SWOENA_Pos 4 /*!< ITM TCR: SWOENA Position */
-#define ITM_TCR_SWOENA_Msk (1ul << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */
-
-#define ITM_TCR_DWTENA_Pos 3 /*!< ITM TCR: DWTENA Position */
-#define ITM_TCR_DWTENA_Msk (1ul << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */
-
-#define ITM_TCR_SYNCENA_Pos 2 /*!< ITM TCR: SYNCENA Position */
-#define ITM_TCR_SYNCENA_Msk (1ul << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */
-
-#define ITM_TCR_TSENA_Pos 1 /*!< ITM TCR: TSENA Position */
-#define ITM_TCR_TSENA_Msk (1ul << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */
-
-#define ITM_TCR_ITMENA_Pos 0 /*!< ITM TCR: ITM Enable bit Position */
-#define ITM_TCR_ITMENA_Msk (1ul << ITM_TCR_ITMENA_Pos) /*!< ITM TCR: ITM Enable bit Mask */
-
-/* ITM Integration Write Register Definitions */
-#define ITM_IWR_ATVALIDM_Pos 0 /*!< ITM IWR: ATVALIDM Position */
-#define ITM_IWR_ATVALIDM_Msk (1ul << ITM_IWR_ATVALIDM_Pos) /*!< ITM IWR: ATVALIDM Mask */
-
-/* ITM Integration Read Register Definitions */
-#define ITM_IRR_ATREADYM_Pos 0 /*!< ITM IRR: ATREADYM Position */
-#define ITM_IRR_ATREADYM_Msk (1ul << ITM_IRR_ATREADYM_Pos) /*!< ITM IRR: ATREADYM Mask */
-
-/* ITM Integration Mode Control Register Definitions */
-#define ITM_IMCR_INTEGRATION_Pos 0 /*!< ITM IMCR: INTEGRATION Position */
-#define ITM_IMCR_INTEGRATION_Msk (1ul << ITM_IMCR_INTEGRATION_Pos) /*!< ITM IMCR: INTEGRATION Mask */
-
-/* ITM Lock Status Register Definitions */
-#define ITM_LSR_ByteAcc_Pos 2 /*!< ITM LSR: ByteAcc Position */
-#define ITM_LSR_ByteAcc_Msk (1ul << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */
-
-#define ITM_LSR_Access_Pos 1 /*!< ITM LSR: Access Position */
-#define ITM_LSR_Access_Msk (1ul << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */
-
-#define ITM_LSR_Present_Pos 0 /*!< ITM LSR: Present Position */
-#define ITM_LSR_Present_Msk (1ul << ITM_LSR_Present_Pos) /*!< ITM LSR: Present Mask */
-/*@}*/ /* end of group CMSIS_CM3_ITM */
-
-
-/** @addtogroup CMSIS_CM3_InterruptType CMSIS CM3 Interrupt Type
- memory mapped structure for Interrupt Type
- @{
- */
-typedef struct
-{
- uint32_t RESERVED0;
- __I uint32_t ICTR; /*!< Offset: 0x04 Interrupt Control Type Register */
-#if ((defined __CM3_REV) && (__CM3_REV >= 0x200))
- __IO uint32_t ACTLR; /*!< Offset: 0x08 Auxiliary Control Register */
-#else
- uint32_t RESERVED1;
-#endif
-} InterruptType_Type;
-
-/* Interrupt Controller Type Register Definitions */
-#define InterruptType_ICTR_INTLINESNUM_Pos 0 /*!< InterruptType ICTR: INTLINESNUM Position */
-#define InterruptType_ICTR_INTLINESNUM_Msk (0x1Ful << InterruptType_ICTR_INTLINESNUM_Pos) /*!< InterruptType ICTR: INTLINESNUM Mask */
-
-/* Auxiliary Control Register Definitions */
-#define InterruptType_ACTLR_DISFOLD_Pos 2 /*!< InterruptType ACTLR: DISFOLD Position */
-#define InterruptType_ACTLR_DISFOLD_Msk (1ul << InterruptType_ACTLR_DISFOLD_Pos) /*!< InterruptType ACTLR: DISFOLD Mask */
-
-#define InterruptType_ACTLR_DISDEFWBUF_Pos 1 /*!< InterruptType ACTLR: DISDEFWBUF Position */
-#define InterruptType_ACTLR_DISDEFWBUF_Msk (1ul << InterruptType_ACTLR_DISDEFWBUF_Pos) /*!< InterruptType ACTLR: DISDEFWBUF Mask */
-
-#define InterruptType_ACTLR_DISMCYCINT_Pos 0 /*!< InterruptType ACTLR: DISMCYCINT Position */
-#define InterruptType_ACTLR_DISMCYCINT_Msk (1ul << InterruptType_ACTLR_DISMCYCINT_Pos) /*!< InterruptType ACTLR: DISMCYCINT Mask */
-/*@}*/ /* end of group CMSIS_CM3_InterruptType */
-
-
-#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1)
-/** @addtogroup CMSIS_CM3_MPU CMSIS CM3 MPU
- memory mapped structure for Memory Protection Unit (MPU)
- @{
- */
-typedef struct
-{
- __I uint32_t TYPE; /*!< Offset: 0x00 MPU Type Register */
- __IO uint32_t CTRL; /*!< Offset: 0x04 MPU Control Register */
- __IO uint32_t RNR; /*!< Offset: 0x08 MPU Region RNRber Register */
- __IO uint32_t RBAR; /*!< Offset: 0x0C MPU Region Base Address Register */
- __IO uint32_t RASR; /*!< Offset: 0x10 MPU Region Attribute and Size Register */
- __IO uint32_t RBAR_A1; /*!< Offset: 0x14 MPU Alias 1 Region Base Address Register */
- __IO uint32_t RASR_A1; /*!< Offset: 0x18 MPU Alias 1 Region Attribute and Size Register */
- __IO uint32_t RBAR_A2; /*!< Offset: 0x1C MPU Alias 2 Region Base Address Register */
- __IO uint32_t RASR_A2; /*!< Offset: 0x20 MPU Alias 2 Region Attribute and Size Register */
- __IO uint32_t RBAR_A3; /*!< Offset: 0x24 MPU Alias 3 Region Base Address Register */
- __IO uint32_t RASR_A3; /*!< Offset: 0x28 MPU Alias 3 Region Attribute and Size Register */
-} MPU_Type;
-
-/* MPU Type Register */
-#define MPU_TYPE_IREGION_Pos 16 /*!< MPU TYPE: IREGION Position */
-#define MPU_TYPE_IREGION_Msk (0xFFul << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */
-
-#define MPU_TYPE_DREGION_Pos 8 /*!< MPU TYPE: DREGION Position */
-#define MPU_TYPE_DREGION_Msk (0xFFul << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */
-
-#define MPU_TYPE_SEPARATE_Pos 0 /*!< MPU TYPE: SEPARATE Position */
-#define MPU_TYPE_SEPARATE_Msk (1ul << MPU_TYPE_SEPARATE_Pos) /*!< MPU TYPE: SEPARATE Mask */
-
-/* MPU Control Register */
-#define MPU_CTRL_PRIVDEFENA_Pos 2 /*!< MPU CTRL: PRIVDEFENA Position */
-#define MPU_CTRL_PRIVDEFENA_Msk (1ul << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */
-
-#define MPU_CTRL_HFNMIENA_Pos 1 /*!< MPU CTRL: HFNMIENA Position */
-#define MPU_CTRL_HFNMIENA_Msk (1ul << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */
-
-#define MPU_CTRL_ENABLE_Pos 0 /*!< MPU CTRL: ENABLE Position */
-#define MPU_CTRL_ENABLE_Msk (1ul << MPU_CTRL_ENABLE_Pos) /*!< MPU CTRL: ENABLE Mask */
-
-/* MPU Region Number Register */
-#define MPU_RNR_REGION_Pos 0 /*!< MPU RNR: REGION Position */
-#define MPU_RNR_REGION_Msk (0xFFul << MPU_RNR_REGION_Pos) /*!< MPU RNR: REGION Mask */
-
-/* MPU Region Base Address Register */
-#define MPU_RBAR_ADDR_Pos 5 /*!< MPU RBAR: ADDR Position */
-#define MPU_RBAR_ADDR_Msk (0x7FFFFFFul << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */
-
-#define MPU_RBAR_VALID_Pos 4 /*!< MPU RBAR: VALID Position */
-#define MPU_RBAR_VALID_Msk (1ul << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */
-
-#define MPU_RBAR_REGION_Pos 0 /*!< MPU RBAR: REGION Position */
-#define MPU_RBAR_REGION_Msk (0xFul << MPU_RBAR_REGION_Pos) /*!< MPU RBAR: REGION Mask */
-
-/* MPU Region Attribute and Size Register */
-#define MPU_RASR_XN_Pos 28 /*!< MPU RASR: XN Position */
-#define MPU_RASR_XN_Msk (1ul << MPU_RASR_XN_Pos) /*!< MPU RASR: XN Mask */
-
-#define MPU_RASR_AP_Pos 24 /*!< MPU RASR: AP Position */
-#define MPU_RASR_AP_Msk (7ul << MPU_RASR_AP_Pos) /*!< MPU RASR: AP Mask */
-
-#define MPU_RASR_TEX_Pos 19 /*!< MPU RASR: TEX Position */
-#define MPU_RASR_TEX_Msk (7ul << MPU_RASR_TEX_Pos) /*!< MPU RASR: TEX Mask */
-
-#define MPU_RASR_S_Pos 18 /*!< MPU RASR: Shareable bit Position */
-#define MPU_RASR_S_Msk (1ul << MPU_RASR_S_Pos) /*!< MPU RASR: Shareable bit Mask */
-
-#define MPU_RASR_C_Pos 17 /*!< MPU RASR: Cacheable bit Position */
-#define MPU_RASR_C_Msk (1ul << MPU_RASR_C_Pos) /*!< MPU RASR: Cacheable bit Mask */
-
-#define MPU_RASR_B_Pos 16 /*!< MPU RASR: Bufferable bit Position */
-#define MPU_RASR_B_Msk (1ul << MPU_RASR_B_Pos) /*!< MPU RASR: Bufferable bit Mask */
-
-#define MPU_RASR_SRD_Pos 8 /*!< MPU RASR: Sub-Region Disable Position */
-#define MPU_RASR_SRD_Msk (0xFFul << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */
-
-#define MPU_RASR_SIZE_Pos 1 /*!< MPU RASR: Region Size Field Position */
-#define MPU_RASR_SIZE_Msk (0x1Ful << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */
-
-#define MPU_RASR_ENA_Pos 0 /*!< MPU RASR: Region enable bit Position */
-#define MPU_RASR_ENA_Msk (0x1Ful << MPU_RASR_ENA_Pos) /*!< MPU RASR: Region enable bit Disable Mask */
-
-/*@}*/ /* end of group CMSIS_CM3_MPU */
-#endif
-
-
-/** @addtogroup CMSIS_CM3_CoreDebug CMSIS CM3 Core Debug
- memory mapped structure for Core Debug Register
- @{
- */
-typedef struct
-{
- __IO uint32_t DHCSR; /*!< Offset: 0x00 Debug Halting Control and Status Register */
- __O uint32_t DCRSR; /*!< Offset: 0x04 Debug Core Register Selector Register */
- __IO uint32_t DCRDR; /*!< Offset: 0x08 Debug Core Register Data Register */
- __IO uint32_t DEMCR; /*!< Offset: 0x0C Debug Exception and Monitor Control Register */
-} CoreDebug_Type;
-
-/* Debug Halting Control and Status Register */
-#define CoreDebug_DHCSR_DBGKEY_Pos 16 /*!< CoreDebug DHCSR: DBGKEY Position */
-#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFul << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */
-
-#define CoreDebug_DHCSR_S_RESET_ST_Pos 25 /*!< CoreDebug DHCSR: S_RESET_ST Position */
-#define CoreDebug_DHCSR_S_RESET_ST_Msk (1ul << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */
-
-#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24 /*!< CoreDebug DHCSR: S_RETIRE_ST Position */
-#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1ul << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */
-
-#define CoreDebug_DHCSR_S_LOCKUP_Pos 19 /*!< CoreDebug DHCSR: S_LOCKUP Position */
-#define CoreDebug_DHCSR_S_LOCKUP_Msk (1ul << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */
-
-#define CoreDebug_DHCSR_S_SLEEP_Pos 18 /*!< CoreDebug DHCSR: S_SLEEP Position */
-#define CoreDebug_DHCSR_S_SLEEP_Msk (1ul << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */
-
-#define CoreDebug_DHCSR_S_HALT_Pos 17 /*!< CoreDebug DHCSR: S_HALT Position */
-#define CoreDebug_DHCSR_S_HALT_Msk (1ul << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */
-
-#define CoreDebug_DHCSR_S_REGRDY_Pos 16 /*!< CoreDebug DHCSR: S_REGRDY Position */
-#define CoreDebug_DHCSR_S_REGRDY_Msk (1ul << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */
-
-#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5 /*!< CoreDebug DHCSR: C_SNAPSTALL Position */
-#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1ul << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */
-
-#define CoreDebug_DHCSR_C_MASKINTS_Pos 3 /*!< CoreDebug DHCSR: C_MASKINTS Position */
-#define CoreDebug_DHCSR_C_MASKINTS_Msk (1ul << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */
-
-#define CoreDebug_DHCSR_C_STEP_Pos 2 /*!< CoreDebug DHCSR: C_STEP Position */
-#define CoreDebug_DHCSR_C_STEP_Msk (1ul << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */
-
-#define CoreDebug_DHCSR_C_HALT_Pos 1 /*!< CoreDebug DHCSR: C_HALT Position */
-#define CoreDebug_DHCSR_C_HALT_Msk (1ul << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */
-
-#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0 /*!< CoreDebug DHCSR: C_DEBUGEN Position */
-#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1ul << CoreDebug_DHCSR_C_DEBUGEN_Pos) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */
-
-/* Debug Core Register Selector Register */
-#define CoreDebug_DCRSR_REGWnR_Pos 16 /*!< CoreDebug DCRSR: REGWnR Position */
-#define CoreDebug_DCRSR_REGWnR_Msk (1ul << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */
-
-#define CoreDebug_DCRSR_REGSEL_Pos 0 /*!< CoreDebug DCRSR: REGSEL Position */
-#define CoreDebug_DCRSR_REGSEL_Msk (0x1Ful << CoreDebug_DCRSR_REGSEL_Pos) /*!< CoreDebug DCRSR: REGSEL Mask */
-
-/* Debug Exception and Monitor Control Register */
-#define CoreDebug_DEMCR_TRCENA_Pos 24 /*!< CoreDebug DEMCR: TRCENA Position */
-#define CoreDebug_DEMCR_TRCENA_Msk (1ul << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */
-
-#define CoreDebug_DEMCR_MON_REQ_Pos 19 /*!< CoreDebug DEMCR: MON_REQ Position */
-#define CoreDebug_DEMCR_MON_REQ_Msk (1ul << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */
-
-#define CoreDebug_DEMCR_MON_STEP_Pos 18 /*!< CoreDebug DEMCR: MON_STEP Position */
-#define CoreDebug_DEMCR_MON_STEP_Msk (1ul << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */
-
-#define CoreDebug_DEMCR_MON_PEND_Pos 17 /*!< CoreDebug DEMCR: MON_PEND Position */
-#define CoreDebug_DEMCR_MON_PEND_Msk (1ul << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */
-
-#define CoreDebug_DEMCR_MON_EN_Pos 16 /*!< CoreDebug DEMCR: MON_EN Position */
-#define CoreDebug_DEMCR_MON_EN_Msk (1ul << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */
-
-#define CoreDebug_DEMCR_VC_HARDERR_Pos 10 /*!< CoreDebug DEMCR: VC_HARDERR Position */
-#define CoreDebug_DEMCR_VC_HARDERR_Msk (1ul << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */
-
-#define CoreDebug_DEMCR_VC_INTERR_Pos 9 /*!< CoreDebug DEMCR: VC_INTERR Position */
-#define CoreDebug_DEMCR_VC_INTERR_Msk (1ul << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */
-
-#define CoreDebug_DEMCR_VC_BUSERR_Pos 8 /*!< CoreDebug DEMCR: VC_BUSERR Position */
-#define CoreDebug_DEMCR_VC_BUSERR_Msk (1ul << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */
-
-#define CoreDebug_DEMCR_VC_STATERR_Pos 7 /*!< CoreDebug DEMCR: VC_STATERR Position */
-#define CoreDebug_DEMCR_VC_STATERR_Msk (1ul << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */
-
-#define CoreDebug_DEMCR_VC_CHKERR_Pos 6 /*!< CoreDebug DEMCR: VC_CHKERR Position */
-#define CoreDebug_DEMCR_VC_CHKERR_Msk (1ul << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */
-
-#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5 /*!< CoreDebug DEMCR: VC_NOCPERR Position */
-#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1ul << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */
-
-#define CoreDebug_DEMCR_VC_MMERR_Pos 4 /*!< CoreDebug DEMCR: VC_MMERR Position */
-#define CoreDebug_DEMCR_VC_MMERR_Msk (1ul << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */
-
-#define CoreDebug_DEMCR_VC_CORERESET_Pos 0 /*!< CoreDebug DEMCR: VC_CORERESET Position */
-#define CoreDebug_DEMCR_VC_CORERESET_Msk (1ul << CoreDebug_DEMCR_VC_CORERESET_Pos) /*!< CoreDebug DEMCR: VC_CORERESET Mask */
-/*@}*/ /* end of group CMSIS_CM3_CoreDebug */
-
-
-/* Memory mapping of Cortex-M3 Hardware */
-#define SCS_BASE (0xE000E000) /*!< System Control Space Base Address */
-#define ITM_BASE (0xE0000000) /*!< ITM Base Address */
-#define CoreDebug_BASE (0xE000EDF0) /*!< Core Debug Base Address */
-#define SysTick_BASE (SCS_BASE + 0x0010) /*!< SysTick Base Address */
-#define NVIC_BASE (SCS_BASE + 0x0100) /*!< NVIC Base Address */
-#define SCB_BASE (SCS_BASE + 0x0D00) /*!< System Control Block Base Address */
-
-#define InterruptType ((InterruptType_Type *) SCS_BASE) /*!< Interrupt Type Register */
-#define SCB ((SCB_Type *) SCB_BASE) /*!< SCB configuration struct */
-#define SysTick ((SysTick_Type *) SysTick_BASE) /*!< SysTick configuration struct */
-#define NVIC ((NVIC_Type *) NVIC_BASE) /*!< NVIC configuration struct */
-#define ITM ((ITM_Type *) ITM_BASE) /*!< ITM configuration struct */
-#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */
-
-#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1)
- #define MPU_BASE (SCS_BASE + 0x0D90) /*!< Memory Protection Unit */
- #define MPU ((MPU_Type*) MPU_BASE) /*!< Memory Protection Unit */
-#endif
-
-/*@}*/ /* end of group CMSIS_CM3_core_register */
-
-
-/*******************************************************************************
- * Hardware Abstraction Layer
- ******************************************************************************/
-
-#if defined ( __CC_ARM )
- #define __ASM __asm /*!< asm keyword for ARM Compiler */
- #define __INLINE __inline /*!< inline keyword for ARM Compiler */
-
-#elif defined ( __ICCARM__ )
- #define __ASM __asm /*!< asm keyword for IAR Compiler */
- #define __INLINE inline /*!< inline keyword for IAR Compiler. Only avaiable in High optimization mode! */
-
-#elif defined ( __GNUC__ )
- #define __ASM __asm /*!< asm keyword for GNU Compiler */
- #define __INLINE inline /*!< inline keyword for GNU Compiler */
-
-#elif defined ( __TASKING__ )
- #define __ASM __asm /*!< asm keyword for TASKING Compiler */
- #define __INLINE inline /*!< inline keyword for TASKING Compiler */
-
-#endif
-
-
-/* ################### Compiler specific Intrinsics ########################### */
-
-#if defined ( __CC_ARM ) /*------------------RealView Compiler -----------------*/
-/* ARM armcc specific functions */
-
-#define __enable_fault_irq __enable_fiq
-#define __disable_fault_irq __disable_fiq
-
-#define __NOP __nop
-#define __WFI __wfi
-#define __WFE __wfe
-#define __SEV __sev
-#define __ISB() __isb(0)
-#define __DSB() __dsb(0)
-#define __DMB() __dmb(0)
-#define __REV __rev
-#define __RBIT __rbit
-#define __LDREXB(ptr) ((unsigned char ) __ldrex(ptr))
-#define __LDREXH(ptr) ((unsigned short) __ldrex(ptr))
-#define __LDREXW(ptr) ((unsigned int ) __ldrex(ptr))
-#define __STREXB(value, ptr) __strex(value, ptr)
-#define __STREXH(value, ptr) __strex(value, ptr)
-#define __STREXW(value, ptr) __strex(value, ptr)
-
-
-/* intrinsic unsigned long long __ldrexd(volatile void *ptr) */
-/* intrinsic int __strexd(unsigned long long val, volatile void *ptr) */
-/* intrinsic void __enable_irq(); */
-/* intrinsic void __disable_irq(); */
-
-
-/**
- * @brief Return the Process Stack Pointer
- *
- * @return ProcessStackPointer
- *
- * Return the actual process stack pointer
- */
-extern uint32_t __get_PSP(void);
-
-/**
- * @brief Set the Process Stack Pointer
- *
- * @param topOfProcStack Process Stack Pointer
- *
- * Assign the value ProcessStackPointer to the MSP
- * (process stack pointer) Cortex processor register
- */
-extern void __set_PSP(uint32_t topOfProcStack);
-
-/**
- * @brief Return the Main Stack Pointer
- *
- * @return Main Stack Pointer
- *
- * Return the current value of the MSP (main stack pointer)
- * Cortex processor register
- */
-extern uint32_t __get_MSP(void);
-
-/**
- * @brief Set the Main Stack Pointer
- *
- * @param topOfMainStack Main Stack Pointer
- *
- * Assign the value mainStackPointer to the MSP
- * (main stack pointer) Cortex processor register
- */
-extern void __set_MSP(uint32_t topOfMainStack);
-
-/**
- * @brief Reverse byte order in unsigned short value
- *
- * @param value value to reverse
- * @return reversed value
- *
- * Reverse byte order in unsigned short value
- */
-extern uint32_t __REV16(uint16_t value);
-
-/**
- * @brief Reverse byte order in signed short value with sign extension to integer
- *
- * @param value value to reverse
- * @return reversed value
- *
- * Reverse byte order in signed short value with sign extension to integer
- */
-extern int32_t __REVSH(int16_t value);
-
-
-#if (__ARMCC_VERSION < 400000)
-
-/**
- * @brief Remove the exclusive lock created by ldrex
- *
- * Removes the exclusive lock which is created by ldrex.
- */
-extern void __CLREX(void);
-
-/**
- * @brief Return the Base Priority value
- *
- * @return BasePriority
- *
- * Return the content of the base priority register
- */
-extern uint32_t __get_BASEPRI(void);
-
-/**
- * @brief Set the Base Priority value
- *
- * @param basePri BasePriority
- *
- * Set the base priority register
- */
-extern void __set_BASEPRI(uint32_t basePri);
-
-/**
- * @brief Return the Priority Mask value
- *
- * @return PriMask
- *
- * Return state of the priority mask bit from the priority mask register
- */
-extern uint32_t __get_PRIMASK(void);
-
-/**
- * @brief Set the Priority Mask value
- *
- * @param priMask PriMask
- *
- * Set the priority mask bit in the priority mask register
- */
-extern void __set_PRIMASK(uint32_t priMask);
-
-/**
- * @brief Return the Fault Mask value
- *
- * @return FaultMask
- *
- * Return the content of the fault mask register
- */
-extern uint32_t __get_FAULTMASK(void);
-
-/**
- * @brief Set the Fault Mask value
- *
- * @param faultMask faultMask value
- *
- * Set the fault mask register
- */
-extern void __set_FAULTMASK(uint32_t faultMask);
-
-/**
- * @brief Return the Control Register value
- *
- * @return Control value
- *
- * Return the content of the control register
- */
-extern uint32_t __get_CONTROL(void);
-
-/**
- * @brief Set the Control Register value
- *
- * @param control Control value
- *
- * Set the control register
- */
-extern void __set_CONTROL(uint32_t control);
-
-#else /* (__ARMCC_VERSION >= 400000) */
-
-/**
- * @brief Remove the exclusive lock created by ldrex
- *
- * Removes the exclusive lock which is created by ldrex.
- */
-#define __CLREX __clrex
-
-/**
- * @brief Return the Base Priority value
- *
- * @return BasePriority
- *
- * Return the content of the base priority register
- */
-static __INLINE uint32_t __get_BASEPRI(void)
-{
- register uint32_t __regBasePri __ASM("basepri");
- return(__regBasePri);
-}
-
-/**
- * @brief Set the Base Priority value
- *
- * @param basePri BasePriority
- *
- * Set the base priority register
- */
-static __INLINE void __set_BASEPRI(uint32_t basePri)
-{
- register uint32_t __regBasePri __ASM("basepri");
- __regBasePri = (basePri & 0xff);
-}
-
-/**
- * @brief Return the Priority Mask value
- *
- * @return PriMask
- *
- * Return state of the priority mask bit from the priority mask register
- */
-static __INLINE uint32_t __get_PRIMASK(void)
-{
- register uint32_t __regPriMask __ASM("primask");
- return(__regPriMask);
-}
-
-/**
- * @brief Set the Priority Mask value
- *
- * @param priMask PriMask
- *
- * Set the priority mask bit in the priority mask register
- */
-static __INLINE void __set_PRIMASK(uint32_t priMask)
-{
- register uint32_t __regPriMask __ASM("primask");
- __regPriMask = (priMask);
-}
-
-/**
- * @brief Return the Fault Mask value
- *
- * @return FaultMask
- *
- * Return the content of the fault mask register
- */
-static __INLINE uint32_t __get_FAULTMASK(void)
-{
- register uint32_t __regFaultMask __ASM("faultmask");
- return(__regFaultMask);
-}
-
-/**
- * @brief Set the Fault Mask value
- *
- * @param faultMask faultMask value
- *
- * Set the fault mask register
- */
-static __INLINE void __set_FAULTMASK(uint32_t faultMask)
-{
- register uint32_t __regFaultMask __ASM("faultmask");
- __regFaultMask = (faultMask & 1);
-}
-
-/**
- * @brief Return the Control Register value
- *
- * @return Control value
- *
- * Return the content of the control register
- */
-static __INLINE uint32_t __get_CONTROL(void)
-{
- register uint32_t __regControl __ASM("control");
- return(__regControl);
-}
-
-/**
- * @brief Set the Control Register value
- *
- * @param control Control value
- *
- * Set the control register
- */
-static __INLINE void __set_CONTROL(uint32_t control)
-{
- register uint32_t __regControl __ASM("control");
- __regControl = control;
-}
-
-#endif /* __ARMCC_VERSION */
-
-
-
-#elif (defined (__ICCARM__)) /*------------------ ICC Compiler -------------------*/
-/* IAR iccarm specific functions */
-
-#define __enable_irq __enable_interrupt /*!< global Interrupt enable */
-#define __disable_irq __disable_interrupt /*!< global Interrupt disable */
-
-static __INLINE void __enable_fault_irq() { __ASM ("cpsie f"); }
-static __INLINE void __disable_fault_irq() { __ASM ("cpsid f"); }
-
-#define __NOP __no_operation /*!< no operation intrinsic in IAR Compiler */
-static __INLINE void __WFI() { __ASM ("wfi"); }
-static __INLINE void __WFE() { __ASM ("wfe"); }
-static __INLINE void __SEV() { __ASM ("sev"); }
-static __INLINE void __CLREX() { __ASM ("clrex"); }
-
-/* intrinsic void __ISB(void) */
-/* intrinsic void __DSB(void) */
-/* intrinsic void __DMB(void) */
-/* intrinsic void __set_PRIMASK(); */
-/* intrinsic void __get_PRIMASK(); */
-/* intrinsic void __set_FAULTMASK(); */
-/* intrinsic void __get_FAULTMASK(); */
-/* intrinsic uint32_t __REV(uint32_t value); */
-/* intrinsic uint32_t __REVSH(uint32_t value); */
-/* intrinsic unsigned long __STREX(unsigned long, unsigned long); */
-/* intrinsic unsigned long __LDREX(unsigned long *); */
-
-
-/**
- * @brief Return the Process Stack Pointer
- *
- * @return ProcessStackPointer
- *
- * Return the actual process stack pointer
- */
-extern uint32_t __get_PSP(void);
-
-/**
- * @brief Set the Process Stack Pointer
- *
- * @param topOfProcStack Process Stack Pointer
- *
- * Assign the value ProcessStackPointer to the MSP
- * (process stack pointer) Cortex processor register
- */
-extern void __set_PSP(uint32_t topOfProcStack);
-
-/**
- * @brief Return the Main Stack Pointer
- *
- * @return Main Stack Pointer
- *
- * Return the current value of the MSP (main stack pointer)
- * Cortex processor register
- */
-extern uint32_t __get_MSP(void);
-
-/**
- * @brief Set the Main Stack Pointer
- *
- * @param topOfMainStack Main Stack Pointer
- *
- * Assign the value mainStackPointer to the MSP
- * (main stack pointer) Cortex processor register
- */
-extern void __set_MSP(uint32_t topOfMainStack);
-
-/**
- * @brief Reverse byte order in unsigned short value
- *
- * @param value value to reverse
- * @return reversed value
- *
- * Reverse byte order in unsigned short value
- */
-extern uint32_t __REV16(uint16_t value);
-
-/**
- * @brief Reverse bit order of value
- *
- * @param value value to reverse
- * @return reversed value
- *
- * Reverse bit order of value
- */
-extern uint32_t __RBIT(uint32_t value);
-
-/**
- * @brief LDR Exclusive (8 bit)
- *
- * @param *addr address pointer
- * @return value of (*address)
- *
- * Exclusive LDR command for 8 bit values)
- */
-extern uint8_t __LDREXB(uint8_t *addr);
-
-/**
- * @brief LDR Exclusive (16 bit)
- *
- * @param *addr address pointer
- * @return value of (*address)
- *
- * Exclusive LDR command for 16 bit values
- */
-extern uint16_t __LDREXH(uint16_t *addr);
-
-/**
- * @brief LDR Exclusive (32 bit)
- *
- * @param *addr address pointer
- * @return value of (*address)
- *
- * Exclusive LDR command for 32 bit values
- */
-extern uint32_t __LDREXW(uint32_t *addr);
-
-/**
- * @brief STR Exclusive (8 bit)
- *
- * @param value value to store
- * @param *addr address pointer
- * @return successful / failed
- *
- * Exclusive STR command for 8 bit values
- */
-extern uint32_t __STREXB(uint8_t value, uint8_t *addr);
-
-/**
- * @brief STR Exclusive (16 bit)
- *
- * @param value value to store
- * @param *addr address pointer
- * @return successful / failed
- *
- * Exclusive STR command for 16 bit values
- */
-extern uint32_t __STREXH(uint16_t value, uint16_t *addr);
-
-/**
- * @brief STR Exclusive (32 bit)
- *
- * @param value value to store
- * @param *addr address pointer
- * @return successful / failed
- *
- * Exclusive STR command for 32 bit values
- */
-extern uint32_t __STREXW(uint32_t value, uint32_t *addr);
-
-
-
-#elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/
-/* GNU gcc specific functions */
-
-static __INLINE void __enable_irq() { __ASM volatile ("cpsie i"); }
-static __INLINE void __disable_irq() { __ASM volatile ("cpsid i"); }
-
-static __INLINE void __enable_fault_irq() { __ASM volatile ("cpsie f"); }
-static __INLINE void __disable_fault_irq() { __ASM volatile ("cpsid f"); }
-
-static __INLINE void __NOP() { __ASM volatile ("nop"); }
-static __INLINE void __WFI() { __ASM volatile ("wfi"); }
-static __INLINE void __WFE() { __ASM volatile ("wfe"); }
-static __INLINE void __SEV() { __ASM volatile ("sev"); }
-static __INLINE void __ISB() { __ASM volatile ("isb"); }
-static __INLINE void __DSB() { __ASM volatile ("dsb"); }
-static __INLINE void __DMB() { __ASM volatile ("dmb"); }
-static __INLINE void __CLREX() { __ASM volatile ("clrex"); }
-
-
-/**
- * @brief Return the Process Stack Pointer
- *
- * @return ProcessStackPointer
- *
- * Return the actual process stack pointer
- */
-extern uint32_t __get_PSP(void);
-
-/**
- * @brief Set the Process Stack Pointer
- *
- * @param topOfProcStack Process Stack Pointer
- *
- * Assign the value ProcessStackPointer to the MSP
- * (process stack pointer) Cortex processor register
- */
-extern void __set_PSP(uint32_t topOfProcStack);
-
-/**
- * @brief Return the Main Stack Pointer
- *
- * @return Main Stack Pointer
- *
- * Return the current value of the MSP (main stack pointer)
- * Cortex processor register
- */
-extern uint32_t __get_MSP(void);
-
-/**
- * @brief Set the Main Stack Pointer
- *
- * @param topOfMainStack Main Stack Pointer
- *
- * Assign the value mainStackPointer to the MSP
- * (main stack pointer) Cortex processor register
- */
-extern void __set_MSP(uint32_t topOfMainStack);
-
-/**
- * @brief Return the Base Priority value
- *
- * @return BasePriority
- *
- * Return the content of the base priority register
- */
-extern uint32_t __get_BASEPRI(void);
-
-/**
- * @brief Set the Base Priority value
- *
- * @param basePri BasePriority
- *
- * Set the base priority register
- */
-extern void __set_BASEPRI(uint32_t basePri);
-
-/**
- * @brief Return the Priority Mask value
- *
- * @return PriMask
- *
- * Return state of the priority mask bit from the priority mask register
- */
-extern uint32_t __get_PRIMASK(void);
-
-/**
- * @brief Set the Priority Mask value
- *
- * @param priMask PriMask
- *
- * Set the priority mask bit in the priority mask register
- */
-extern void __set_PRIMASK(uint32_t priMask);
-
-/**
- * @brief Return the Fault Mask value
- *
- * @return FaultMask
- *
- * Return the content of the fault mask register
- */
-extern uint32_t __get_FAULTMASK(void);
-
-/**
- * @brief Set the Fault Mask value
- *
- * @param faultMask faultMask value
- *
- * Set the fault mask register
- */
-extern void __set_FAULTMASK(uint32_t faultMask);
-
-/**
- * @brief Return the Control Register value
-*
-* @return Control value
- *
- * Return the content of the control register
- */
-extern uint32_t __get_CONTROL(void);
-
-/**
- * @brief Set the Control Register value
- *
- * @param control Control value
- *
- * Set the control register
- */
-extern void __set_CONTROL(uint32_t control);
-
-/**
- * @brief Reverse byte order in integer value
- *
- * @param value value to reverse
- * @return reversed value
- *
- * Reverse byte order in integer value
- */
-extern uint32_t __REV(uint32_t value);
-
-/**
- * @brief Reverse byte order in unsigned short value
- *
- * @param value value to reverse
- * @return reversed value
- *
- * Reverse byte order in unsigned short value
- */
-extern uint32_t __REV16(uint16_t value);
-
-/**
- * @brief Reverse byte order in signed short value with sign extension to integer
- *
- * @param value value to reverse
- * @return reversed value
- *
- * Reverse byte order in signed short value with sign extension to integer
- */
-extern int32_t __REVSH(int16_t value);
-
-/**
- * @brief Reverse bit order of value
- *
- * @param value value to reverse
- * @return reversed value
- *
- * Reverse bit order of value
- */
-extern uint32_t __RBIT(uint32_t value);
-
-/**
- * @brief LDR Exclusive (8 bit)
- *
- * @param *addr address pointer
- * @return value of (*address)
- *
- * Exclusive LDR command for 8 bit value
- */
-extern uint8_t __LDREXB(uint8_t *addr);
-
-/**
- * @brief LDR Exclusive (16 bit)
- *
- * @param *addr address pointer
- * @return value of (*address)
- *
- * Exclusive LDR command for 16 bit values
- */
-extern uint16_t __LDREXH(uint16_t *addr);
-
-/**
- * @brief LDR Exclusive (32 bit)
- *
- * @param *addr address pointer
- * @return value of (*address)
- *
- * Exclusive LDR command for 32 bit values
- */
-extern uint32_t __LDREXW(uint32_t *addr);
-
-/**
- * @brief STR Exclusive (8 bit)
- *
- * @param value value to store
- * @param *addr address pointer
- * @return successful / failed
- *
- * Exclusive STR command for 8 bit values
- */
-extern uint32_t __STREXB(uint8_t value, uint8_t *addr);
-
-/**
- * @brief STR Exclusive (16 bit)
- *
- * @param value value to store
- * @param *addr address pointer
- * @return successful / failed
- *
- * Exclusive STR command for 16 bit values
- */
-extern uint32_t __STREXH(uint16_t value, uint16_t *addr);
-
-/**
- * @brief STR Exclusive (32 bit)
- *
- * @param value value to store
- * @param *addr address pointer
- * @return successful / failed
- *
- * Exclusive STR command for 32 bit values
- */
-extern uint32_t __STREXW(uint32_t value, uint32_t *addr);
-
-
-#elif (defined (__TASKING__)) /*------------------ TASKING Compiler ---------------------*/
-/* TASKING carm specific functions */
-
-/*
- * The CMSIS functions have been implemented as intrinsics in the compiler.
- * Please use "carm -?i" to get an up to date list of all instrinsics,
- * Including the CMSIS ones.
- */
-
-#endif
-
-
-/** @addtogroup CMSIS_CM3_Core_FunctionInterface CMSIS CM3 Core Function Interface
- Core Function Interface containing:
- - Core NVIC Functions
- - Core SysTick Functions
- - Core Reset Functions
-*/
-/*@{*/
-
-/* ########################## NVIC functions #################################### */
-
-/**
- * @brief Set the Priority Grouping in NVIC Interrupt Controller
- *
- * @param PriorityGroup is priority grouping field
- *
- * Set the priority grouping field using the required unlock sequence.
- * The parameter priority_grouping is assigned to the field
- * SCB->AIRCR [10:8] PRIGROUP field. Only values from 0..7 are used.
- * In case of a conflict between priority grouping and available
- * priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set.
- */
-static __INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
-{
- uint32_t reg_value;
- uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */
-
- reg_value = SCB->AIRCR; /* read old register configuration */
- reg_value &= ~(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk); /* clear bits to change */
- reg_value = (reg_value |
- (0x5FA << SCB_AIRCR_VECTKEY_Pos) |
- (PriorityGroupTmp << 8)); /* Insert write key and priorty group */
- SCB->AIRCR = reg_value;
-}
-
-/**
- * @brief Get the Priority Grouping from NVIC Interrupt Controller
- *
- * @return priority grouping field
- *
- * Get the priority grouping from NVIC Interrupt Controller.
- * priority grouping is SCB->AIRCR [10:8] PRIGROUP field.
- */
-static __INLINE uint32_t NVIC_GetPriorityGrouping(void)
-{
- return ((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos); /* read priority grouping field */
-}
-
-/**
- * @brief Enable Interrupt in NVIC Interrupt Controller
- *
- * @param IRQn The positive number of the external interrupt to enable
- *
- * Enable a device specific interupt in the NVIC interrupt controller.
- * The interrupt number cannot be a negative value.
- */
-static __INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)
-{
- NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* enable interrupt */
-}
-
-/**
- * @brief Disable the interrupt line for external interrupt specified
- *
- * @param IRQn The positive number of the external interrupt to disable
- *
- * Disable a device specific interupt in the NVIC interrupt controller.
- * The interrupt number cannot be a negative value.
- */
-static __INLINE void NVIC_DisableIRQ(IRQn_Type IRQn)
-{
- NVIC->ICER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* disable interrupt */
-}
-
-/**
- * @brief Read the interrupt pending bit for a device specific interrupt source
- *
- * @param IRQn The number of the device specifc interrupt
- * @return 1 = interrupt pending, 0 = interrupt not pending
- *
- * Read the pending register in NVIC and return 1 if its status is pending,
- * otherwise it returns 0
- */
-static __INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn)
-{
- return((uint32_t) ((NVIC->ISPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0)); /* Return 1 if pending else 0 */
-}
-
-/**
- * @brief Set the pending bit for an external interrupt
- *
- * @param IRQn The number of the interrupt for set pending
- *
- * Set the pending bit for the specified interrupt.
- * The interrupt number cannot be a negative value.
- */
-static __INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn)
-{
- NVIC->ISPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* set interrupt pending */
-}
-
-/**
- * @brief Clear the pending bit for an external interrupt
- *
- * @param IRQn The number of the interrupt for clear pending
- *
- * Clear the pending bit for the specified interrupt.
- * The interrupt number cannot be a negative value.
- */
-static __INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn)
-{
- NVIC->ICPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */
-}
-
-/**
- * @brief Read the active bit for an external interrupt
- *
- * @param IRQn The number of the interrupt for read active bit
- * @return 1 = interrupt active, 0 = interrupt not active
- *
- * Read the active register in NVIC and returns 1 if its status is active,
- * otherwise it returns 0.
- */
-static __INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn)
-{
- return((uint32_t)((NVIC->IABR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0)); /* Return 1 if active else 0 */
-}
-
-/**
- * @brief Set the priority for an interrupt
- *
- * @param IRQn The number of the interrupt for set priority
- * @param priority The priority to set
- *
- * Set the priority for the specified interrupt. The interrupt
- * number can be positive to specify an external (device specific)
- * interrupt, or negative to specify an internal (core) interrupt.
- *
- * Note: The priority cannot be set for every core interrupt.
- */
-static __INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
-{
- if(IRQn < 0) {
- SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for Cortex-M3 System Interrupts */
- else {
- NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for device specific Interrupts */
-}
-
-/**
- * @brief Read the priority for an interrupt
- *
- * @param IRQn The number of the interrupt for get priority
- * @return The priority for the interrupt
- *
- * Read the priority for the specified interrupt. The interrupt
- * number can be positive to specify an external (device specific)
- * interrupt, or negative to specify an internal (core) interrupt.
- *
- * The returned priority value is automatically aligned to the implemented
- * priority bits of the microcontroller.
- *
- * Note: The priority cannot be set for every core interrupt.
- */
-static __INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn)
-{
-
- if(IRQn < 0) {
- return((uint32_t)(SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] >> (8 - __NVIC_PRIO_BITS))); } /* get priority for Cortex-M3 system interrupts */
- else {
- return((uint32_t)(NVIC->IP[(uint32_t)(IRQn)] >> (8 - __NVIC_PRIO_BITS))); } /* get priority for device specific interrupts */
-}
-
-
-/**
- * @brief Encode the priority for an interrupt
- *
- * @param PriorityGroup The used priority group
- * @param PreemptPriority The preemptive priority value (starting from 0)
- * @param SubPriority The sub priority value (starting from 0)
- * @return The encoded priority for the interrupt
- *
- * Encode the priority for an interrupt with the given priority group,
- * preemptive priority value and sub priority value.
- * In case of a conflict between priority grouping and available
- * priority bits (__NVIC_PRIO_BITS) the samllest possible priority group is set.
- *
- * The returned priority value can be used for NVIC_SetPriority(...) function
- */
-static __INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority)
-{
- uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */
- uint32_t PreemptPriorityBits;
- uint32_t SubPriorityBits;
-
- PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp;
- SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS;
-
- return (
- ((PreemptPriority & ((1 << (PreemptPriorityBits)) - 1)) << SubPriorityBits) |
- ((SubPriority & ((1 << (SubPriorityBits )) - 1)))
- );
-}
-
-
-/**
- * @brief Decode the priority of an interrupt
- *
- * @param Priority The priority for the interrupt
- * @param PriorityGroup The used priority group
- * @param pPreemptPriority The preemptive priority value (starting from 0)
- * @param pSubPriority The sub priority value (starting from 0)
- *
- * Decode an interrupt priority value with the given priority group to
- * preemptive priority value and sub priority value.
- * In case of a conflict between priority grouping and available
- * priority bits (__NVIC_PRIO_BITS) the samllest possible priority group is set.
- *
- * The priority value can be retrieved with NVIC_GetPriority(...) function
- */
-static __INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* pPreemptPriority, uint32_t* pSubPriority)
-{
- uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */
- uint32_t PreemptPriorityBits;
- uint32_t SubPriorityBits;
-
- PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp;
- SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS;
-
- *pPreemptPriority = (Priority >> SubPriorityBits) & ((1 << (PreemptPriorityBits)) - 1);
- *pSubPriority = (Priority ) & ((1 << (SubPriorityBits )) - 1);
-}
-
-
-
-/* ################################## SysTick function ############################################ */
-
-#if (!defined (__Vendor_SysTickConfig)) || (__Vendor_SysTickConfig == 0)
-
-/**
- * @brief Initialize and start the SysTick counter and its interrupt.
- *
- * @param ticks number of ticks between two interrupts
- * @return 1 = failed, 0 = successful
- *
- * Initialise the system tick timer and its interrupt and start the
- * system tick timer / counter in free running mode to generate
- * periodical interrupts.
- */
-static __INLINE uint32_t SysTick_Config(uint32_t ticks)
-{
- if (ticks > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */
-
- SysTick->LOAD = (ticks & SysTick_LOAD_RELOAD_Msk) - 1; /* set reload register */
- NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1); /* set Priority for Cortex-M0 System Interrupts */
- SysTick->VAL = 0; /* Load the SysTick Counter Value */
- SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
- SysTick_CTRL_TICKINT_Msk |
- SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */
- return (0); /* Function successful */
-}
-
-#endif
-
-
-
-
-/* ################################## Reset function ############################################ */
-
-/**
- * @brief Initiate a system reset request.
- *
- * Initiate a system reset request to reset the MCU
- */
-static __INLINE void NVIC_SystemReset(void)
-{
- SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) |
- (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |
- SCB_AIRCR_SYSRESETREQ_Msk); /* Keep priority group unchanged */
- __DSB(); /* Ensure completion of memory access */
- while(1); /* wait until reset */
-}
-
-/*@}*/ /* end of group CMSIS_CM3_Core_FunctionInterface */
-
-
-
-/* ##################################### Debug In/Output function ########################################### */
-
-/** @addtogroup CMSIS_CM3_CoreDebugInterface CMSIS CM3 Core Debug Interface
- Core Debug Interface containing:
- - Core Debug Receive / Transmit Functions
- - Core Debug Defines
- - Core Debug Variables
-*/
-/*@{*/
-
-extern volatile int ITM_RxBuffer; /*!< variable to receive characters */
-#define ITM_RXBUFFER_EMPTY 0x5AA55AA5 /*!< value identifying ITM_RxBuffer is ready for next character */
-
-
-/**
- * @brief Outputs a character via the ITM channel 0
- *
- * @param ch character to output
- * @return character to output
- *
- * The function outputs a character via the ITM channel 0.
- * The function returns when no debugger is connected that has booked the output.
- * It is blocking when a debugger is connected, but the previous character send is not transmitted.
- */
-static __INLINE uint32_t ITM_SendChar (uint32_t ch)
-{
- if ((CoreDebug->DEMCR & CoreDebug_DEMCR_TRCENA_Msk) && /* Trace enabled */
- (ITM->TCR & ITM_TCR_ITMENA_Msk) && /* ITM enabled */
- (ITM->TER & (1ul << 0) ) ) /* ITM Port #0 enabled */
- {
- while (ITM->PORT[0].u32 == 0);
- ITM->PORT[0].u8 = (uint8_t) ch;
- }
- return (ch);
-}
-
-
-/**
- * @brief Inputs a character via variable ITM_RxBuffer
- *
- * @return received character, -1 = no character received
- *
- * The function inputs a character via variable ITM_RxBuffer.
- * The function returns when no debugger is connected that has booked the output.
- * It is blocking when a debugger is connected, but the previous character send is not transmitted.
- */
-static __INLINE int ITM_ReceiveChar (void) {
- int ch = -1; /* no character available */
-
- if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) {
- ch = ITM_RxBuffer;
- ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */
- }
-
- return (ch);
-}
-
-
-/**
- * @brief Check if a character via variable ITM_RxBuffer is available
- *
- * @return 1 = character available, 0 = no character available
- *
- * The function checks variable ITM_RxBuffer whether a character is available or not.
- * The function returns '1' if a character is available and '0' if no character is available.
- */
-static __INLINE int ITM_CheckChar (void) {
-
- if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) {
- return (0); /* no character available */
- } else {
- return (1); /* character available */
- }
-}
-
-/*@}*/ /* end of group CMSIS_CM3_core_DebugInterface */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/ /* end of group CMSIS_CM3_core_definitions */
-
-#endif /* __CM3_CORE_H__ */
-
-/*lint -restore */
diff --git a/Demo/CORTEX_EFMG890F128_IAR/RTOSDemo.ewd b/Demo/CORTEX_EFMG890F128_IAR/RTOSDemo.ewd
index 29d302c7f..b04237f4d 100644
--- a/Demo/CORTEX_EFMG890F128_IAR/RTOSDemo.ewd
+++ b/Demo/CORTEX_EFMG890F128_IAR/RTOSDemo.ewd
@@ -12,7 +12,7 @@
C-SPY
2
- 21
+ 22
1
1
@@ -89,7 +89,7 @@
OCLastSavedByProductVersion
- 5.41.2.51798
+ 6.20.1.52589
OCDownloadAttachToProgram
@@ -147,6 +147,30 @@
OverrideDefFlashBoard
0
+
+ OCImagesOffset1
+
+
+
+ OCImagesOffset2
+
+
+
+ OCImagesOffset3
+
+
+
+ OCImagesUse1
+ 0
+
+
+ OCImagesUse2
+ 0
+
+
+ OCImagesUse3
+ 0
+
@@ -258,7 +282,7 @@
IARROM_ID
2
- 0
+ 1
1
1
@@ -269,10 +293,6 @@
CRomLogFileEditB
$PROJ_DIR$\cspycomm.log
-
- CRomCommunication
- 0
-
CRomCommPort
0
@@ -293,7 +313,7 @@
JLINK_ID
2
- 10
+ 13
1
1
@@ -350,8 +370,8 @@
CCUSBDevice
- 0
- 0
+ 1
+ 1
CCRDICatchReset
@@ -403,13 +423,78 @@
CCJLinkResetList
- 2
+ 5
7
CCJLinkInterfaceCmdLine
0
+
+ CCCatchCORERESET
+ 0
+
+
+ CCCatchMMERR
+ 0
+
+
+ CCCatchNOCPERR
+ 0
+
+
+ CCCatchCHRERR
+ 0
+
+
+ CCCatchSTATERR
+ 0
+
+
+ CCCatchBUSERR
+ 0
+
+
+ CCCatchINTERR
+ 0
+
+
+ CCCatchHARDERR
+ 0
+
+
+ CCCatchDummy
+ 0
+
+
+ OCJLinkScriptFile
+ 1
+
+
+ CCJLinkUsbSerialNo
+
+
+
+ CCTcpIpAlt
+ 0
+ 0
+
+
+ CCJLinkTcpIpSerialNo
+
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
@@ -534,11 +619,75 @@
+
+ PEMICRO_ID
+ 2
+
+ 0
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ OCPEMicroAttachSlave
+ 1
+
+
+ CCPEMicroInterfaceList
+ 0
+ 0
+
+
+ CCPEMicroResetDelay
+
+
+
+ CCPEMicroJtagSpeed
+ #UNINITIALIZED#
+
+
+ CCJPEMicroShowSettings
+ 0
+
+
+ DoLogfile
+ 0
+
+
+ LogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CCPEMicroUSBDevice
+ 0
+ 0
+
+
+ CCPEMicroSerialPort
+ 0
+ 0
+
+
+ CCJPEMicroTCPIPAutoScanNetwork
+ 1
+
+
+ CCPEMicroTCPIP
+ 10.0.0.1
+
+
+ CCPEMicroCommCmdLineProducer
+ 0
+
+
+
RDI_ID
2
- 1
+ 2
1
1
@@ -585,10 +734,6 @@
CCRDICatchFIQ
0
-
- CCRDIUseETM
- 0
-
OCDriverInfo
1
@@ -599,7 +744,7 @@
STLINK_ID
2
- 1
+ 2
1
1
@@ -614,6 +759,23 @@
CCSTLinkInterfaceCmdLine
0
+
+ CCSTLinkResetList
+ 1
+ 0
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
@@ -655,7 +817,11 @@
0
- $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin
+ $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
0
@@ -663,7 +829,11 @@
0
- $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB5_Plugin.ewplugin
+ $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB6_Plugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
0
@@ -687,715 +857,13 @@
0
- $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
- 0
-
-
- $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin
- 1
-
-
- $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin
- 1
-
-
- $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin
- 1
-
-
-
-
- Release
-
- ARM
-
- 0
-
- C-SPY
- 2
-
- 21
- 1
- 0
-
- CInput
- 1
-
-
- CEndian
- 1
-
-
- CProcessor
- 1
-
-
- OCVariant
- 0
-
-
- MacOverride
- 0
-
-
- MacFile
-
-
-
- MemOverride
- 0
-
-
- MemFile
-
-
-
- RunToEnable
- 1
-
-
- RunToName
- main
-
-
- CExtraOptionsCheck
- 0
-
-
- CExtraOptions
-
-
-
- CFpuProcessor
- 1
-
-
- OCDDFArgumentProducer
-
-
-
- OCDownloadSuppressDownload
- 0
-
-
- OCDownloadVerifyAll
- 0
-
-
- OCProductVersion
- 5.41.2.51798
-
-
- OCDynDriverList
- ARMSIM_ID
-
-
- OCLastSavedByProductVersion
-
-
-
- OCDownloadAttachToProgram
- 0
-
-
- UseFlashLoader
- 0
-
-
- CLowLevel
- 1
-
-
- OCBE8Slave
- 1
-
-
- MacFile2
-
-
-
- CDevice
- 1
-
-
- FlashLoadersV3
-
-
-
- OCImagesSuppressCheck1
- 0
-
-
- OCImagesPath1
-
-
-
- OCImagesSuppressCheck2
- 0
-
-
- OCImagesPath2
-
-
-
- OCImagesSuppressCheck3
- 0
-
-
- OCImagesPath3
-
-
-
- OverrideDefFlashBoard
- 0
-
-
-
-
- ARMSIM_ID
- 2
-
- 1
- 1
- 0
-
- OCSimDriverInfo
- 1
-
-
- OCSimEnablePSP
- 0
-
-
- OCSimPspOverrideConfig
- 0
-
-
- OCSimPspConfigFile
-
-
-
-
-
- ANGEL_ID
- 2
-
- 0
- 1
- 0
-
- CCAngelHeartbeat
- 1
-
-
- CAngelCommunication
- 1
-
-
- CAngelCommBaud
- 0
- 3
-
-
- CAngelCommPort
- 0
- 0
-
-
- ANGELTCPIP
- aaa.bbb.ccc.ddd
-
-
- DoAngelLogfile
- 0
-
-
- AngelLogFile
- $PROJ_DIR$\cspycomm.log
-
-
- OCDriverInfo
- 1
-
-
-
-
- GDBSERVER_ID
- 2
-
- 0
- 1
- 0
-
- OCDriverInfo
- 1
-
-
- TCPIP
- aaa.bbb.ccc.ddd
-
-
- DoLogfile
- 0
-
-
- LogFile
- $PROJ_DIR$\cspycomm.log
-
-
- CCJTagBreakpointRadio
- 0
-
-
- CCJTagDoUpdateBreakpoints
- 0
-
-
- CCJTagUpdateBreakpoints
- main
-
-
-
-
- IARROM_ID
- 2
-
- 0
- 1
- 0
-
- CRomLogFileCheck
- 0
-
-
- CRomLogFileEditB
- $PROJ_DIR$\cspycomm.log
-
-
- CRomCommunication
- 0
-
-
- CRomCommPort
- 0
- 0
-
-
- CRomCommBaud
- 0
- 7
-
-
- OCDriverInfo
- 1
-
-
-
-
- JLINK_ID
- 2
-
- 10
- 1
- 0
-
- JLinkSpeed
- 32
-
-
- CCJLinkDoLogfile
- 0
-
-
- CCJLinkLogFile
- $PROJ_DIR$\cspycomm.log
-
-
- CCJLinkHWResetDelay
- 0
-
-
- OCDriverInfo
- 1
-
-
- JLinkInitialSpeed
- 32
-
-
- CCDoJlinkMultiTarget
- 0
-
-
- CCScanChainNonARMDevices
- 0
-
-
- CCJLinkMultiTarget
- 0
-
-
- CCJLinkIRLength
- 0
-
-
- CCJLinkCommRadio
- 0
-
-
- CCJLinkTCPIP
- aaa.bbb.ccc.ddd
-
-
- CCJLinkSpeedRadioV2
- 0
-
-
- CCUSBDevice
- 0
- 0
-
-
- CCRDICatchReset
- 0
-
-
- CCRDICatchUndef
- 0
-
-
- CCRDICatchSWI
- 0
-
-
- CCRDICatchData
- 0
-
-
- CCRDICatchPrefetch
- 0
-
-
- CCRDICatchIRQ
- 0
-
-
- CCRDICatchFIQ
- 0
-
-
- CCJLinkBreakpointRadio
- 0
-
-
- CCJLinkDoUpdateBreakpoints
- 0
-
-
- CCJLinkUpdateBreakpoints
- main
-
-
- CCJLinkInterfaceRadio
- 0
-
-
- OCJLinkAttachSlave
- 1
-
-
- CCJLinkResetList
- 2
- 5
-
-
- CCJLinkInterfaceCmdLine
- 0
-
-
-
-
- LMIFTDI_ID
- 2
-
- 2
- 1
- 0
-
- OCDriverInfo
- 1
-
-
- LmiftdiSpeed
- 500
-
-
- CCLmiftdiDoLogfile
- 0
-
-
- CCLmiftdiLogFile
- $PROJ_DIR$\cspycomm.log
-
-
- CCLmiFtdiInterfaceRadio
- 0
-
-
- CCLmiFtdiInterfaceCmdLine
- 0
-
-
-
-
- MACRAIGOR_ID
- 2
-
- 3
- 1
- 0
-
- jtag
- 0
- 0
-
-
- EmuSpeed
- 1
-
-
- TCPIP
- aaa.bbb.ccc.ddd
-
-
- DoLogfile
- 0
-
-
- LogFile
- $PROJ_DIR$\cspycomm.log
-
-
- DoEmuMultiTarget
- 0
-
-
- EmuMultiTarget
- 0@ARM7TDMI
-
-
- EmuHWReset
- 0
-
-
- CEmuCommBaud
- 0
- 4
-
-
- CEmuCommPort
- 0
- 0
-
-
- jtago
- 0
- 0
-
-
- OCDriverInfo
- 1
-
-
- UnusedAddr
- 0x00800000
-
-
- CCMacraigorHWResetDelay
-
-
-
- CCJTagBreakpointRadio
- 0
-
-
- CCJTagDoUpdateBreakpoints
- 0
-
-
- CCJTagUpdateBreakpoints
- main
-
-
- CCMacraigorInterfaceRadio
- 0
-
-
- CCMacraigorInterfaceCmdLine
- 0
-
-
-
-
- RDI_ID
- 2
-
- 1
- 1
- 0
-
- CRDIDriverDll
- ###Uninitialized###
-
-
- CRDILogFileCheck
- 0
-
-
- CRDILogFileEdit
- $PROJ_DIR$\cspycomm.log
-
-
- CCRDIHWReset
- 0
-
-
- CCRDICatchReset
- 0
-
-
- CCRDICatchUndef
- 0
-
-
- CCRDICatchSWI
- 0
-
-
- CCRDICatchData
- 0
-
-
- CCRDICatchPrefetch
- 0
-
-
- CCRDICatchIRQ
- 0
-
-
- CCRDICatchFIQ
- 0
-
-
- CCRDIUseETM
- 0
-
-
- OCDriverInfo
- 1
-
-
-
-
- STLINK_ID
- 2
-
- 1
- 1
- 0
-
- OCDriverInfo
- 1
-
-
- CCSTLinkInterfaceRadio
- 0
-
-
- CCSTLinkInterfaceCmdLine
- 0
-
-
-
-
- THIRDPARTY_ID
- 2
-
- 0
- 1
- 0
-
- CThirdPartyDriverDll
- ###Uninitialized###
-
-
- CThirdPartyLogFileCheck
- 0
-
-
- CThirdPartyLogFileEditB
- $PROJ_DIR$\cspycomm.log
-
-
- OCDriverInfo
- 1
-
-
-
-
-
- $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB5_Plugin.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin
- 0
-
-
- $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin
- 1
-
-
- $EW_DIR$\common\plugins\FreeRTOS\FreeRTOSPlugin.ewplugin
+ $EW_DIR$\common\plugins\OpenRTOS\OpenRTOSPlugin.ewplugin
0
$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
0
-
- $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin
- 1
-
$EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin
1
diff --git a/Demo/CORTEX_EFMG890F128_IAR/RTOSDemo.ewp b/Demo/CORTEX_EFMG890F128_IAR/RTOSDemo.ewp
index e631e98ff..5042446cf 100644
--- a/Demo/CORTEX_EFMG890F128_IAR/RTOSDemo.ewp
+++ b/Demo/CORTEX_EFMG890F128_IAR/RTOSDemo.ewp
@@ -12,7 +12,7 @@
General
3
- 17
+ 21
1
1
@@ -29,8 +29,8 @@
Variant
- 13
- 36
+ 19
+ 37
GEndianMode
@@ -38,8 +38,8 @@
Input variant
- 1
- 0
+ 3
+ 1
Input description
@@ -47,8 +47,8 @@
Output variant
- 0
- 0
+ 2
+ 1
Output description
@@ -60,7 +60,7 @@
FPU
- 0
+ 2
0
@@ -81,17 +81,13 @@
RTDescription
Use the normal configuration of the C/C++ runtime library. No locale interface, C locale, no file descriptor support, no multibytes in printf and scanf, and no hex floats in strtod.
-
- RTConfigPath
- $TOOLKIT_DIR$\INC\DLib_Config_Normal.h
-
OGProductVersion
5.41.0.51757
OGLastSavedByProductVersion
- 5.41.2.51798
+ 6.20.1.52589
GeneralEnableMisra
@@ -135,13 +131,35 @@
0
111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+ RTConfigPath2
+ $TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h
+
+
+ GFPUCoreSlave
+ 19
+ 37
+
+
+ GBECoreSlave
+ 19
+ 37
+
+
+ OGUseCmsis
+ 1
+
+
+ OGUseCmsisDspLib
+ 0
+
ICCARM
2
- 21
+ 28
1
1
@@ -262,10 +280,6 @@
OutputFile
$FILE_BNAME$.o
-
- CCLangSelect
- 0
-
CCLibConfigHeader
1
@@ -292,10 +306,6 @@
CCStdIncCheck
0
-
- CCStdIncludePath
- $TOOLKIT_DIR$\INC\
-
CCCodeSection
.text
@@ -331,13 +341,65 @@
0
111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+ CCPosIndRopi
+ 0
+
+
+ CCPosIndRwpi
+ 0
+
+
+ CCPosIndNoDynInit
+ 0
+
+
+ IccLang
+ 0
+
+
+ IccCDialect
+ 1
+
+
+ IccAllowVLA
+ 0
+
+
+ IccCppDialect
+ 1
+
+
+ IccExceptions
+ 1
+
+
+ IccRTTI
+ 1
+
+
+ IccStaticDestr
+ 1
+
+
+ IccCppInlineSemantics
+ 1
+
+
+ IccCmsis
+ 1
+
+
+ IccFloatSemantics
+ 0
+
AARM
2
- 7
+ 8
1
1
@@ -481,10 +543,6 @@
AIgnoreStdInclude
0
-
- AStdIncludes
- $TOOLKIT_DIR$\INC\
-
AUserIncludes
$PROJ_DIR$\
@@ -554,7 +612,7 @@
ILINK
0
- 8
+ 13
1
1
@@ -768,803 +826,63 @@
IlinkIElfToolPostProcess
0
-
-
-
- IARCHIVE
- 0
-
- 0
- 1
- 1
-
- IarchiveInputs
-
-
-
- IarchiveOverride
- 0
-
-
- IarchiveOutput
- ###Unitialized###
-
-
-
-
- BILINK
- 0
-
-
-
-
- Release
-
- ARM
-
- 0
-
- General
- 3
-
- 17
- 1
- 0
-
- ExePath
- Release\Exe
-
-
- ObjPath
- Release\Obj
-
-
- ListPath
- Release\List
-
-
- Variant
- 13
- 0
-
-
- GEndianMode
- 0
-
- Input variant
- 1
- 0
-
-
- Input description
-
-
-
- Output variant
- 0
+ IlinkLogAutoLibSelect
0
- Output description
-
-
-
- GOutputBinary
+ IlinkLogRedirSymbols
0
- FPU
- 0
+ IlinkLogUnusedFragments
0
- OGCoreOrChip
+ IlinkCrcReverseByteOrder
0
- GRuntimeLibSelect
- 0
- 1
-
-
- GRuntimeLibSelectSlave
- 0
+ IlinkCrcUseAsInput
1
- RTDescription
-
-
-
- RTConfigPath
- dl-stnl0.a
-
-
- OGProductVersion
- 5.41.0.51757
-
-
- OGLastSavedByProductVersion
-
-
-
- GeneralEnableMisra
- 0
-
-
- GeneralMisraVerbose
+ IlinkOptInline
0
- OGChipSelectEditMenu
-
-
-
- GenLowLevelInterface
- 0
+ IlinkOptExceptionsAllow
+ 1
- GEndianModeBE
+ IlinkOptExceptionsForce
0
- OGBufferedTerminalOutput
- 0
+ IlinkCmsis
+ 1
- GenStdoutInterface
+ IlinkOptMergeDuplSections
0
- GeneralMisraRules98
- 0
- 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
+ IlinkOptUseVfe
+ 1
- GeneralMisraVer
+ IlinkOptForceVfe
0
-
- GeneralMisraRules04
- 0
- 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
-
- ICCARM
- 2
+ IARCHIVE
+ 0
- 21
+ 0
1
- 0
-
- CCDefines
- NDEBUG
-
-
- CCPreprocFile
- 0
-
-
- CCPreprocComments
- 0
-
-
- CCPreprocLine
- 0
-
-
- CCListCFile
- 0
-
-
- CCListCMnemonics
- 0
-
-
- CCListCMessages
- 0
-
-
- CCListAssFile
- 0
-
-
- CCListAssSource
- 0
-
-
- CCEnableRemarks
- 0
-
-
- CCDiagSuppress
-
-
-
- CCDiagRemark
-
-
-
- CCDiagWarning
-
-
-
- CCDiagError
-
-
-
- CCObjPrefix
- 1
-
-
- CCAllowList
- 1
- 1111111
-
-
- CCDebugInfo
- 0
-
-
- IEndianMode
- 1
-
-
- IProcessor
- 1
-
-
- IExtraOptionsCheck
- 0
-
-
- IExtraOptions
-
-
-
- CCLangConformance
- 0
-
-
- CCSignedPlainChar
- 1
-
-
- CCRequirePrototypes
- 0
-
-
- CCMultibyteSupport
- 0
-
-
- CCDiagWarnAreErr
- 0
-
-
- CCCompilerRuntimeInfo
- 0
-
-
- IFpuProcessor
- 1
-
-
- OutputFile
-
-
-
- CCLangSelect
- 0
-
-
- CCLibConfigHeader
- 1
-
-
- PreInclude
-
-
-
- CompilerMisraOverride
- 0
-
-
- CCIncludePath2
-
-
-
- CCStdIncCheck
- 0
-
-
- CCStdIncludePath
- ###Uninitialized###
-
-
- CCCodeSection
- .text
-
-
- IInterwork2
- 0
-
-
- IProcessorMode2
- 1
-
-
- CCOptLevel
- 3
-
-
- CCOptStrategy
- 0
- 0
-
-
- CCOptLevelSlave
- 1
-
-
- CompilerMisraRules98
- 0
- 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
-
-
- CompilerMisraRules04
- 0
- 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
-
-
-
-
- AARM
- 2
-
- 7
- 1
- 0
-
- AObjPrefix
- 1
-
-
- AEndian
- 1
-
-
- ACaseSensitivity
- 1
-
-
- MacroChars
- 0
- 0
-
-
- AWarnEnable
- 0
-
-
- AWarnWhat
- 0
-
-
- AWarnOne
-
-
-
- AWarnRange1
-
-
-
- AWarnRange2
-
-
-
- ADebug
- 0
-
-
- AltRegisterNames
- 0
-
-
- ADefines
-
-
-
- AList
- 0
-
-
- AListHeader
- 1
-
-
- AListing
- 1
-
-
- Includes
- 0
-
-
- MacDefs
- 0
-
-
- MacExps
- 1
-
-
- MacExec
- 0
-
-
- OnlyAssed
- 0
-
-
- MultiLine
- 0
-
-
- PageLengthCheck
- 0
-
-
- PageLength
- 80
-
-
- TabSpacing
- 8
-
-
- AXRef
- 0
-
-
- AXRefDefines
- 0
-
-
- AXRefInternal
- 0
-
-
- AXRefDual
- 0
-
-
- AProcessor
- 1
-
-
- AFpuProcessor
- 1
-
-
- AOutputFile
-
-
-
- AMultibyteSupport
- 0
-
-
- ALimitErrorsCheck
- 0
-
-
- ALimitErrorsEdit
- 100
-
-
- AIgnoreStdInclude
- 0
-
-
- AStdIncludes
- $TOOLKIT_DIR$\INC\
-
-
- AUserIncludes
-
-
-
- AExtraOptionsCheckV2
- 0
-
-
- AExtraOptionsV2
-
-
-
-
-
- OBJCOPY
- 0
-
- 1
- 1
- 0
-
- OOCOutputFormat
- 2
- 0
-
-
- OCOutputOverride
- 0
-
-
- OOCOutputFile
-
-
-
- OOCCommandLineProducer
- 1
-
-
- OOCObjCopyEnable
- 0
-
-
-
-
- CUSTOM
- 3
-
-
-
-
-
-
- BICOMP
- 0
-
-
-
- BUILDACTION
- 1
-
-
-
-
-
-
- ILINK
- 0
-
- 8
- 1
- 0
-
- IlinkLibIOConfig
- 1
-
-
- XLinkMisraHandler
- 0
-
-
- IlinkInputFileSlave
- 0
-
-
- IlinkOutputFile
- ###Unitialized###
-
-
- IlinkDebugInfoEnable
- 1
-
-
- IlinkKeepSymbols
-
-
-
- IlinkRawBinaryFile
-
-
-
- IlinkRawBinarySymbol
-
-
-
- IlinkRawBinarySegment
-
-
-
- IlinkRawBinaryAlign
-
-
-
- IlinkDefines
-
-
-
- IlinkConfigDefines
-
-
-
- IlinkMapFile
- 0
-
-
- IlinkLogFile
- 0
-
-
- IlinkLogInitialization
- 0
-
-
- IlinkLogModule
- 0
-
-
- IlinkLogSection
- 0
-
-
- IlinkLogVeneer
- 0
-
-
- IlinkIcfOverride
- 0
-
-
- IlinkIcfFile
- lnk0t.icf
-
-
- IlinkIcfFileSlave
-
-
-
- IlinkEnableRemarks
- 0
-
-
- IlinkSuppressDiags
-
-
-
- IlinkTreatAsRem
-
-
-
- IlinkTreatAsWarn
-
-
-
- IlinkTreatAsErr
-
-
-
- IlinkWarningsAreErrors
- 0
-
-
- IlinkUseExtraOptions
- 0
-
-
- IlinkExtraOptions
-
-
-
- IlinkLowLevelInterfaceSlave
- 1
-
-
- IlinkAutoLibEnable
- 1
-
-
- IlinkAdditionalLibs
-
-
-
- IlinkOverrideProgramEntryLabel
- 0
-
-
- IlinkProgramEntryLabelSelect
- 0
-
-
- IlinkProgramEntryLabel
-
-
-
- DoFill
- 0
-
-
- FillerByte
- 0xFF
-
-
- FillerStart
- 0x0
-
-
- FillerEnd
- 0x0
-
-
- CrcSize
- 0
- 1
-
-
- CrcAlign
- 1
-
-
- CrcAlgo
- 1
-
-
- CrcPoly
- 0x11021
-
-
- CrcCompl
- 0
- 0
-
-
- CrcBitOrder
- 0
- 0
-
-
- CrcInitialValue
- 0x0
-
-
- DoCrc
- 0
-
-
- IlinkBE8Slave
- 1
-
-
- IlinkBufferedTerminalOutput
- 1
-
-
- IlinkStdoutInterfaceSlave
- 1
-
-
- CrcFullSize
- 0
-
-
- IlinkIElfToolPostProcess
- 0
-
-
-
-
- IARCHIVE
- 0
-
- 0
- 1
- 0
+ 1
IarchiveInputs
diff --git a/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.cspy.bat b/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.cspy.bat
index 75c3b8c99..e3c9e7993 100644
--- a/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.cspy.bat
+++ b/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.cspy.bat
@@ -1,33 +1,15 @@
-@REM This bat file has been generated by the IAR Embeddded Workbench
-@REM C-SPY interactive debugger,as an aid to preparing a command
-@REM line for running the cspybat command line utility with the
-@REM appropriate settings.
+@REM This batch file has been generated by the IAR Embedded Workbench
+@REM C-SPY Debugger, as an aid to preparing a command line for running
+@REM the cspybat command line utility using the appropriate settings.
@REM
-@REM After making some adjustments to this file, you can launch cspybat
-@REM by typing the name of this file followed by the name of the debug
-@REM file (usually an ubrof file). Note that this file is generated
-@REM every time a new debug session is initialized, so you may want to
-@REM move or rename the file before making changes.
-@REM
-@REM Note: some command line arguments cannot be properly generated
-@REM by this process. Specifically, the plugin which is responsible
-@REM for the Terminal I/O window (and other C runtime functionality)
-@REM comes in a special version for cspybat, and the name of that
-@REM plugin dll is not known when generating this file. It resides in
-@REM the $TOOLKIT_DIR$\bin folder and is usually called XXXbat.dll or
-@REM XXXlibsupportbat.dll, where XXX is the name of the corresponding
-@REM tool chain. Replace the '' parameter
-@REM below with the appropriate file name. Other plugins loaded by
-@REM C-SPY are usually not needed by, or will not work in, cspybat
-@REM but they are listed at the end of this file for reference.
+@REM You can launch cspybat by typing the name of this batch file followed
+@REM by the name of the debug file (usually an ELF/DWARF or UBROF file).
+@REM Note that this file is generated every time a new debug session
+@REM is initialized, so you may want to move or rename the file before
+@REM making changes.
+@REM
-"C:\devtools\IAR Systems\Embedded Workbench 5.4\common\bin\cspybat" "C:\devtools\IAR Systems\Embedded Workbench 5.4\arm\bin\armproc.dll" "C:\devtools\IAR Systems\Embedded Workbench 5.4\arm\bin\armjlink.dll" %1 --plugin "C:\devtools\IAR Systems\Embedded Workbench 5.4\arm\bin\" --flash_loader "C:\devtools\IAR Systems\Embedded Workbench 5.4\arm\config\flashloader\EnergyMicro\FlashEFM32.board" --backend -B "--endian=little" "--cpu=Cortex-M3" "--fpu=None" "-p" "C:\devtools\IAR Systems\Embedded Workbench 5.4\arm\CONFIG\debugger\EnergyMicro\EFM32G890F128.ddf" "--semihosting" "--device=EFM32G890F128" "-d" "jlink" "--drv_communication=USB0" "--jlink_speed=auto" "--jlink_initial_speed=32" "--jlink_reset_strategy=0,0" "--jlink_interface=SWD"
+"C:\devtools\IAR Systems\Embedded Workbench 6.0\common\bin\cspybat" "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\bin\armproc.dll" "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\bin\armjlink.dll" %1 --plugin "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\bin\armbat.dll" --flash_loader "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\config\flashloader\EnergyMicro\FlashEFM32.board" --backend -B "--endian=little" "--cpu=Cortex-M3" "--fpu=None" "-p" "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\CONFIG\debugger\EnergyMicro\EFM32G890F128.ddf" "--semihosting" "--device=EFM32G890F128" "--drv_communication=USB0" "--jlink_speed=auto" "--jlink_initial_speed=32" "--jlink_reset_strategy=0,0" "--jlink_interface=SWD" "--drv_catch_exceptions=0x000" "--drv_swo_clock_setup=72000000,0,2000000"
-@REM Loaded plugins:
-@REM C:\devtools\IAR Systems\Embedded Workbench 5.4\arm\bin\armlibsupport.dll
-@REM C:\devtools\IAR Systems\Embedded Workbench 5.4\common\plugins\CodeCoverage\CodeCoverage.dll
-@REM C:\devtools\IAR Systems\Embedded Workbench 5.4\common\plugins\Profiling\Profiling.dll
-@REM C:\devtools\IAR Systems\Embedded Workbench 5.4\common\plugins\stack\stack.dll
-@REM C:\devtools\IAR Systems\Embedded Workbench 5.4\common\plugins\SymList\SymList.dll
diff --git a/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.dni b/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.dni
index 314bfe70b..1525b10b6 100644
--- a/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.dni
+++ b/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.dni
@@ -19,15 +19,6 @@ UseTrigger=1
TriggerName=main
LimitSize=0
ByteLimit=50
-[Interrupts]
-Enabled=1
-[MemoryMap]
-Enabled=0
-Base=0
-UseAuto=0
-TypeViolation=1
-UnspecRange=1
-ActionState=1
[TraceHelper]
Enabled=0
ShowSource=1
@@ -67,6 +58,25 @@ LogEnabled=0
SumEnabled=0
ShowTimeLog=1
ShowTimeSum=1
+[TraceHelperExtra]
+Enabled=0
+ShowSource=1
+[DriverProfiling]
+Enabled=0
+Source=4
+Graph=0
+[Breakpoints]
+Count=0
+[Stack]
+FillEnabled=0
+OverflowWarningsEnabled=1
+WarningThreshold=90
+SpWarningsEnabled=1
+WarnLogOnly=1
+UseTrigger=1
+TriggerName=main
+LimitSize=0
+ByteLimit=50
[InterruptLog]
LogEnabled=1
SumEnabled=1
@@ -74,16 +84,21 @@ GraphEnabled=0
ShowTimeLog=1
ShowTimeSum=1
SumSortOrder=0
-[TraceHelperExtra]
+[Interrupts]
+Enabled=1
+[MemoryMap]
Enabled=0
-ShowSource=1
-[DriverProfiling]
+Base=0
+UseAuto=0
+TypeViolation=1
+UnspecRange=1
+ActionState=1
+[Trace1]
Enabled=0
-Source=4
-Graph=0
+ShowSource=1
[Disassemble mode]
mode=1
-[Breakpoints]
+[Breakpoints2]
Count=0
[Aliases]
Count=0
diff --git a/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.wsdt b/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.wsdt
index c78b3c773..ec80e1cfb 100644
--- a/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.wsdt
+++ b/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.wsdt
@@ -70,7 +70,7 @@
- iaridepm.enu1 -2 -2 740 302 -2 -2 200 200 119048 203666 180952 755601 -2 -2 198 1682 -2 -2 1684 200 1002381 203666 119048 203666
+ iaridepm.enu1 -2 -2 740 302 -2 -2 200 200 119048 203666 180952 755601 -2 -2 198 1682 -2 -2 1684 200 1002381 203666 119048 203666
diff --git a/Demo/CORTEX_LM3S316_IAR/RTOSDemo.ewd b/Demo/CORTEX_LM3S316_IAR/RTOSDemo.ewd
index e68a6ffd2..731a5bb5e 100644
--- a/Demo/CORTEX_LM3S316_IAR/RTOSDemo.ewd
+++ b/Demo/CORTEX_LM3S316_IAR/RTOSDemo.ewd
@@ -1,7 +1,7 @@
- 1
+ 2
Debug
@@ -12,7 +12,7 @@
C-SPY
2
- 15
+ 22
1
1
@@ -45,7 +45,7 @@
MemFile
- $TOOLKIT_DIR$\CONFIG\debugger\Luminary\iolm3s316.ddf
+ $TOOLKIT_DIR$\CONFIG\debugger\TexasInstruments\iolm3s316.ddf
RunToEnable
@@ -89,16 +89,12 @@
OCLastSavedByProductVersion
- 5.11.0.50615
+ 6.20.1.52589
OCDownloadAttachToProgram
0
-
- FlashLoaders
- ,,,,(default),
-
UseFlashLoader
1
@@ -111,6 +107,70 @@
OCBE8Slave
1
+
+ MacFile2
+
+
+
+ CDevice
+ 1
+
+
+ FlashLoadersV3
+ $TOOLKIT_DIR$\config\flashloader\TexasInstruments\FlashLM3S3xx.board
+
+
+ OCImagesSuppressCheck1
+ 0
+
+
+ OCImagesPath1
+
+
+
+ OCImagesSuppressCheck2
+ 0
+
+
+ OCImagesPath2
+
+
+
+ OCImagesSuppressCheck3
+ 0
+
+
+ OCImagesPath3
+
+
+
+ OverrideDefFlashBoard
+ 0
+
+
+ OCImagesOffset1
+
+
+
+ OCImagesOffset2
+
+
+
+ OCImagesOffset3
+
+
+
+ OCImagesUse1
+ 0
+
+
+ OCImagesUse2
+ 0
+
+
+ OCImagesUse3
+ 0
+
@@ -222,7 +282,7 @@
IARROM_ID
2
- 0
+ 1
1
1
@@ -233,10 +293,6 @@
CRomLogFileEditB
$TOOLKIT_DIR$\cspycomm.log
-
- CRomCommunication
- 0
-
CRomCommPort
0
@@ -257,7 +313,7 @@
JLINK_ID
2
- 9
+ 13
1
1
@@ -314,8 +370,8 @@
CCUSBDevice
- 0
- 0
+ 1
+ 1
CCRDICatchReset
@@ -367,8 +423,77 @@
CCJLinkResetList
+ 5
+ 7
+
+
+ CCJLinkInterfaceCmdLine
+ 0
+
+
+ CCCatchCORERESET
+ 0
+
+
+ CCCatchMMERR
+ 0
+
+
+ CCCatchNOCPERR
+ 0
+
+
+ CCCatchCHRERR
+ 0
+
+
+ CCCatchSTATERR
+ 0
+
+
+ CCCatchBUSERR
+ 0
+
+
+ CCCatchINTERR
+ 0
+
+
+ CCCatchHARDERR
+ 0
+
+
+ CCCatchDummy
+ 0
+
+
+ OCJLinkScriptFile
+ 1
+
+
+ CCJLinkUsbSerialNo
+
+
+
+ CCTcpIpAlt
0
- 5
+ 0
+
+
+ CCJLinkTcpIpSerialNo
+
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
@@ -376,7 +501,7 @@
LMIFTDI_ID
2
- 1
+ 2
1
1
@@ -395,13 +520,21 @@
CCLmiftdiLogFile
$TOOLKIT_DIR$\cspycomm.log
+
+ CCLmiFtdiInterfaceRadio
+ 0
+
+
+ CCLmiFtdiInterfaceCmdLine
+ 0
+
MACRAIGOR_ID
2
- 2
+ 3
1
1
@@ -476,13 +609,85 @@
CCJTagUpdateBreakpoints
main
+
+ CCMacraigorInterfaceRadio
+ 0
+
+
+ CCMacraigorInterfaceCmdLine
+ 0
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 0
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ OCPEMicroAttachSlave
+ 1
+
+
+ CCPEMicroInterfaceList
+ 0
+ 0
+
+
+ CCPEMicroResetDelay
+
+
+
+ CCPEMicroJtagSpeed
+ #UNINITIALIZED#
+
+
+ CCJPEMicroShowSettings
+ 0
+
+
+ DoLogfile
+ 0
+
+
+ LogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CCPEMicroUSBDevice
+ 0
+ 0
+
+
+ CCPEMicroSerialPort
+ 0
+ 0
+
+
+ CCJPEMicroTCPIPAutoScanNetwork
+ 1
+
+
+ CCPEMicroTCPIP
+ 10.0.0.1
+
+
+ CCPEMicroCommCmdLineProducer
+ 0
+
RDI_ID
2
- 1
+ 2
1
1
@@ -530,13 +735,47 @@
0
- CCRDIUseETM
- 0
+ OCDriverInfo
+ 1
+
+
+
+ STLINK_ID
+ 2
+
+ 2
+ 1
+ 1
OCDriverInfo
1
+
+ CCSTLinkInterfaceRadio
+ 0
+
+
+ CCSTLinkInterfaceCmdLine
+ 0
+
+
+ CCSTLinkResetList
+ 1
+ 0
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
@@ -566,11 +805,11 @@
- $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
0
- $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
0
@@ -578,7 +817,11 @@
0
- $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin
+ $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
0
@@ -586,7 +829,19 @@
0
- $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin
+ $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB6_Plugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin
0
@@ -598,17 +853,25 @@
0
- $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ $EW_DIR$\common\plugins\FreeRTOS\FreeRTOSPlugin.ewplugin
0
- $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin
+ $EW_DIR$\common\plugins\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
0
$EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin
0
+
+ $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin
+ 1
+
diff --git a/Demo/CORTEX_LM3S316_IAR/RTOSDemo.ewp b/Demo/CORTEX_LM3S316_IAR/RTOSDemo.ewp
index 1a331cba4..530a98f52 100644
--- a/Demo/CORTEX_LM3S316_IAR/RTOSDemo.ewp
+++ b/Demo/CORTEX_LM3S316_IAR/RTOSDemo.ewp
@@ -1,7 +1,7 @@
- 1
+ 2
Debug
@@ -12,7 +12,7 @@
General
3
- 14
+ 21
1
1
@@ -29,8 +29,8 @@
Variant
- 7
- 31
+ 19
+ 37
GEndianMode
@@ -38,8 +38,8 @@
Input variant
- 1
- 3
+ 3
+ 6
Input description
@@ -47,8 +47,8 @@
Output variant
- 0
- 3
+ 2
+ 7
Output description
@@ -60,7 +60,7 @@
FPU
- 0
+ 2
0
@@ -81,10 +81,6 @@
RTDescription
Use the normal configuration of the C/C++ runtime library. No locale interface, C locale, no file descriptor support, no multibytes in printf and scanf, and no hex floats in strtod.
-
- RTConfigPath
- $TOOLKIT_DIR$\INC\DLib_Config_Normal.h
-
OGProductVersion
4.39B
@@ -93,11 +89,6 @@
OGLastSavedByProductVersion
5.11.0.50615
-
- GeneralMisraRules
- 0
- 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
-
GeneralEnableMisra
0
@@ -122,13 +113,53 @@
OGBufferedTerminalOutput
0
+
+ GenStdoutInterface
+ 0
+
+
+ GeneralMisraRules98
+ 0
+ 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
+
+
+ GeneralMisraVer
+ 0
+
+
+ GeneralMisraRules04
+ 0
+ 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+
+ RTConfigPath2
+ $TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h
+
+
+ GFPUCoreSlave
+ 19
+ 37
+
+
+ GBECoreSlave
+ 19
+ 37
+
+
+ OGUseCmsis
+ 0
+
+
+ OGUseCmsisDspLib
+ 0
+
ICCARM
2
- 19
+ 28
1
1
@@ -250,10 +281,6 @@
OutputFile
$FILE_BNAME$.o
-
- CCLangSelect
- 0
-
CCLibConfigHeader
1
@@ -262,11 +289,6 @@
PreInclude
-
- CompilerMisraRules
- 0
- 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
-
CompilerMisraOverride
0
@@ -282,10 +304,6 @@
CCStdIncCheck
0
-
- CCStdIncludePath
- $TOOLKIT_DIR$\INC\
-
CCCodeSection
.text
@@ -311,13 +329,75 @@
CCOptLevelSlave
1
+
+ CompilerMisraRules98
+ 0
+ 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
+
+
+ CompilerMisraRules04
+ 0
+ 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+
+ CCPosIndRopi
+ 0
+
+
+ CCPosIndRwpi
+ 0
+
+
+ CCPosIndNoDynInit
+ 0
+
+
+ IccLang
+ 0
+
+
+ IccCDialect
+ 1
+
+
+ IccAllowVLA
+ 0
+
+
+ IccCppDialect
+ 1
+
+
+ IccExceptions
+ 1
+
+
+ IccRTTI
+ 1
+
+
+ IccStaticDestr
+ 1
+
+
+ IccCppInlineSemantics
+ 1
+
+
+ IccCmsis
+ 1
+
+
+ IccFloatSemantics
+ 0
+
AARM
2
- 7
+ 8
1
1
@@ -462,10 +542,6 @@
AIgnoreStdInclude
0
-
- AStdIncludes
- $TOOLKIT_DIR$\INC\
-
AUserIncludes
$PROJ_DIR$\
@@ -489,7 +565,7 @@
1
OOCOutputFormat
- 1
+ 2
0
@@ -535,7 +611,7 @@
ILINK
0
- 5
+ 13
1
1
@@ -678,10 +754,6 @@
IlinkProgramEntryLabel
__iar_program_start
-
- IlinkNXPLPCChecksum
- 0
-
DoFill
0
@@ -741,6 +813,66 @@
IlinkBufferedTerminalOutput
1
+
+ IlinkStdoutInterfaceSlave
+ 1
+
+
+ CrcFullSize
+ 0
+
+
+ IlinkIElfToolPostProcess
+ 0
+
+
+ IlinkLogAutoLibSelect
+ 0
+
+
+ IlinkLogRedirSymbols
+ 0
+
+
+ IlinkLogUnusedFragments
+ 0
+
+
+ IlinkCrcReverseByteOrder
+ 0
+
+
+ IlinkCrcUseAsInput
+ 1
+
+
+ IlinkOptInline
+ 0
+
+
+ IlinkOptExceptionsAllow
+ 1
+
+
+ IlinkOptExceptionsForce
+ 0
+
+
+ IlinkCmsis
+ 1
+
+
+ IlinkOptMergeDuplSections
+ 0
+
+
+ IlinkOptUseVfe
+ 1
+
+
+ IlinkOptForceVfe
+ 0
+
diff --git a/Demo/CORTEX_LM3S316_IAR/settings/RTOSDemo.dni b/Demo/CORTEX_LM3S316_IAR/settings/RTOSDemo.dni
index 8984f2a6b..b96f7c213 100644
--- a/Demo/CORTEX_LM3S316_IAR/settings/RTOSDemo.dni
+++ b/Demo/CORTEX_LM3S316_IAR/settings/RTOSDemo.dni
@@ -24,10 +24,25 @@ Category=_ 0
[TermIOLog]
LoggingEnabled=_ 0
LogFile=_ ""
-[Disassemble mode]
-mode=1
[Breakpoints]
Count=0
[TraceHelper]
Enabled=0
ShowSource=1
+[Stack]
+FillEnabled=0
+OverflowWarningsEnabled=1
+WarningThreshold=90
+SpWarningsEnabled=1
+WarnLogOnly=1
+UseTrigger=1
+TriggerName=main
+LimitSize=0
+ByteLimit=50
+[Disassemble mode]
+mode=1
+[Breakpoints2]
+Count=0
+[Aliases]
+Count=0
+SuppressDialog=0
diff --git a/Demo/CORTEX_LM3S316_IAR/settings/RTOSDemo.wsdt b/Demo/CORTEX_LM3S316_IAR/settings/RTOSDemo.wsdt
index c5955e2ee..25e72a1fe 100644
--- a/Demo/CORTEX_LM3S316_IAR/settings/RTOSDemo.wsdt
+++ b/Demo/CORTEX_LM3S316_IAR/settings/RTOSDemo.wsdt
@@ -12,7 +12,7 @@
- 186 27 27 27
+ 238 27 27 27
@@ -26,7 +26,7 @@
-
+
TabID-2928-28933
@@ -34,24 +34,24 @@
Workspace
- RTOSDemo RTOSDemo/Libraries
+ RTOSDemo RTOSDemo/Demo Source RTOSDemo/Libraries
- 0 TabID-24894-24921 Build Build TabID-10790-31422 Debug Log Debug-Log TabID-27705-5723 Find in Files Find-in-Files 0
+ 0 TabID-24894-24921 Build Build TabID-10790-31422 Debug Log Debug-Log TabID-27705-5723 Find in Files Find-in-Files 0
- TextEditor C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\CORTEX_LM3S316_IAR\main.c 0 195 8048 8048 0 0 1000000 1000000 1
+ TextEditor $WS_DIR$\main.c 0 0 0 0 0 0 1000000 1000000 1
- iaridepm.enu1 -2 -2 738 260 -2 -2 200 202 142857 205703 187143 753564 -2 -2 200 1402 -2 -2 1404 202 1002857 205703 142857 205703
+ iaridepm.enu1 -2 -2 738 312 -2 -2 240 202 142857 205703 186905 753564 -2 -2 200 1682 -2 -2 1684 202 1002381 205703 142857 205703
diff --git a/Demo/CORTEX_LM3S811_IAR/RTOSDemo.ewd b/Demo/CORTEX_LM3S811_IAR/RTOSDemo.ewd
index cfdaf6ecc..25834c6ff 100644
--- a/Demo/CORTEX_LM3S811_IAR/RTOSDemo.ewd
+++ b/Demo/CORTEX_LM3S811_IAR/RTOSDemo.ewd
@@ -1,7 +1,7 @@
- 1
+ 2
Debug
@@ -12,7 +12,7 @@
C-SPY
2
- 15
+ 22
1
1
@@ -45,7 +45,7 @@
MemFile
- $TOOLKIT_DIR$\CONFIG\debugger\Luminary\iolm3s811.ddf
+ $TOOLKIT_DIR$\CONFIG\debugger\TexasInstruments\iolm3s811.ddf
RunToEnable
@@ -89,16 +89,12 @@
OCLastSavedByProductVersion
- 5.11.0.50615
+ 6.20.1.52589
OCDownloadAttachToProgram
0
-
- FlashLoaders
- ,,,,(default),
-
UseFlashLoader
1
@@ -111,6 +107,70 @@
OCBE8Slave
1
+
+ MacFile2
+
+
+
+ CDevice
+ 1
+
+
+ FlashLoadersV3
+ $TOOLKIT_DIR$\config\flashloader\TexasInstruments\FlashLM3S8xx.board
+
+
+ OCImagesSuppressCheck1
+ 0
+
+
+ OCImagesPath1
+
+
+
+ OCImagesSuppressCheck2
+ 0
+
+
+ OCImagesPath2
+
+
+
+ OCImagesSuppressCheck3
+ 0
+
+
+ OCImagesPath3
+
+
+
+ OverrideDefFlashBoard
+ 0
+
+
+ OCImagesOffset1
+
+
+
+ OCImagesOffset2
+
+
+
+ OCImagesOffset3
+
+
+
+ OCImagesUse1
+ 0
+
+
+ OCImagesUse2
+ 0
+
+
+ OCImagesUse3
+ 0
+
@@ -222,7 +282,7 @@
IARROM_ID
2
- 0
+ 1
1
1
@@ -233,10 +293,6 @@
CRomLogFileEditB
$TOOLKIT_DIR$\cspycomm.log
-
- CRomCommunication
- 0
-
CRomCommPort
0
@@ -257,7 +313,7 @@
JLINK_ID
2
- 9
+ 13
1
1
@@ -314,8 +370,8 @@
CCUSBDevice
- 0
- 0
+ 1
+ 1
CCRDICatchReset
@@ -367,16 +423,85 @@
CCJLinkResetList
- 0
+ 5
5
+
+ CCJLinkInterfaceCmdLine
+ 0
+
+
+ CCCatchCORERESET
+ 0
+
+
+ CCCatchMMERR
+ 0
+
+
+ CCCatchNOCPERR
+ 0
+
+
+ CCCatchCHRERR
+ 0
+
+
+ CCCatchSTATERR
+ 0
+
+
+ CCCatchBUSERR
+ 0
+
+
+ CCCatchINTERR
+ 0
+
+
+ CCCatchHARDERR
+ 0
+
+
+ CCCatchDummy
+ 0
+
+
+ OCJLinkScriptFile
+ 1
+
+
+ CCJLinkUsbSerialNo
+
+
+
+ CCTcpIpAlt
+ 0
+ 0
+
+
+ CCJLinkTcpIpSerialNo
+
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
LMIFTDI_ID
2
- 1
+ 2
1
1
@@ -395,13 +520,21 @@
CCLmiftdiLogFile
$TOOLKIT_DIR$\cspycomm.log
+
+ CCLmiFtdiInterfaceRadio
+ 0
+
+
+ CCLmiFtdiInterfaceCmdLine
+ 0
+
MACRAIGOR_ID
2
- 2
+ 3
1
1
@@ -476,13 +609,85 @@
CCJTagUpdateBreakpoints
main
+
+ CCMacraigorInterfaceRadio
+ 0
+
+
+ CCMacraigorInterfaceCmdLine
+ 0
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 0
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ OCPEMicroAttachSlave
+ 1
+
+
+ CCPEMicroInterfaceList
+ 0
+ 0
+
+
+ CCPEMicroResetDelay
+
+
+
+ CCPEMicroJtagSpeed
+ #UNINITIALIZED#
+
+
+ CCJPEMicroShowSettings
+ 0
+
+
+ DoLogfile
+ 0
+
+
+ LogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CCPEMicroUSBDevice
+ 0
+ 0
+
+
+ CCPEMicroSerialPort
+ 0
+ 0
+
+
+ CCJPEMicroTCPIPAutoScanNetwork
+ 1
+
+
+ CCPEMicroTCPIP
+ 10.0.0.1
+
+
+ CCPEMicroCommCmdLineProducer
+ 0
+
RDI_ID
2
- 1
+ 2
1
1
@@ -530,13 +735,47 @@
0
- CCRDIUseETM
- 0
+ OCDriverInfo
+ 1
+
+
+
+ STLINK_ID
+ 2
+
+ 2
+ 1
+ 1
OCDriverInfo
1
+
+ CCSTLinkInterfaceRadio
+ 0
+
+
+ CCSTLinkInterfaceCmdLine
+ 0
+
+
+ CCSTLinkResetList
+ 1
+ 0
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
@@ -566,11 +805,11 @@
- $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
0
- $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
0
@@ -578,7 +817,11 @@
0
- $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin
+ $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
0
@@ -586,7 +829,19 @@
0
- $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin
+ $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB6_Plugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin
0
@@ -598,17 +853,25 @@
0
- $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ $EW_DIR$\common\plugins\FreeRTOS\FreeRTOSPlugin.ewplugin
0
- $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin
+ $EW_DIR$\common\plugins\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
0
$EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin
0
+
+ $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin
+ 1
+
diff --git a/Demo/CORTEX_LM3S811_IAR/RTOSDemo.ewp b/Demo/CORTEX_LM3S811_IAR/RTOSDemo.ewp
index b6d9faa4a..ee85a1c61 100644
--- a/Demo/CORTEX_LM3S811_IAR/RTOSDemo.ewp
+++ b/Demo/CORTEX_LM3S811_IAR/RTOSDemo.ewp
@@ -1,7 +1,7 @@
- 1
+ 2
Debug
@@ -12,7 +12,7 @@
General
3
- 14
+ 21
1
1
@@ -29,8 +29,8 @@
Variant
- 7
- 31
+ 19
+ 37
GEndianMode
@@ -38,8 +38,8 @@
Input variant
- 1
- 0
+ 3
+ 1
Input description
@@ -47,8 +47,8 @@
Output variant
- 0
- 0
+ 2
+ 1
Output description
@@ -60,7 +60,7 @@
FPU
- 0
+ 2
0
@@ -81,10 +81,6 @@
RTDescription
Use the full configuration of the C/C++ runtime library. Full locale interface, C locale, file descriptor support, multibytes in printf and scanf, and hex floats in strtod.
-
- RTConfigPath
- $TOOLKIT_DIR$\INC\DLib_Config_Full.h
-
OGProductVersion
4.40A
@@ -93,11 +89,6 @@
OGLastSavedByProductVersion
5.11.0.50615
-
- GeneralMisraRules
- 0
- 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
-
GeneralEnableMisra
0
@@ -122,13 +113,53 @@
OGBufferedTerminalOutput
0
+
+ GenStdoutInterface
+ 0
+
+
+ GeneralMisraRules98
+ 0
+ 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
+
+
+ GeneralMisraVer
+ 0
+
+
+ GeneralMisraRules04
+ 0
+ 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+
+ RTConfigPath2
+ $TOOLKIT_DIR$\INC\c\DLib_Config_Full.h
+
+
+ GFPUCoreSlave
+ 19
+ 37
+
+
+ GBECoreSlave
+ 19
+ 37
+
+
+ OGUseCmsis
+ 0
+
+
+ OGUseCmsisDspLib
+ 0
+
ICCARM
2
- 19
+ 28
1
1
@@ -248,10 +279,6 @@
OutputFile
$FILE_BNAME$.o
-
- CCLangSelect
- 0
-
CCLibConfigHeader
1
@@ -260,11 +287,6 @@
PreInclude
-
- CompilerMisraRules
- 0
- 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
-
CompilerMisraOverride
0
@@ -280,10 +302,6 @@
CCStdIncCheck
0
-
- CCStdIncludePath
- $TOOLKIT_DIR$\INC\
-
CCCodeSection
.text
@@ -309,13 +327,75 @@
CCOptLevelSlave
1
+
+ CompilerMisraRules98
+ 0
+ 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
+
+
+ CompilerMisraRules04
+ 0
+ 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+
+ CCPosIndRopi
+ 0
+
+
+ CCPosIndRwpi
+ 0
+
+
+ CCPosIndNoDynInit
+ 0
+
+
+ IccLang
+ 0
+
+
+ IccCDialect
+ 1
+
+
+ IccAllowVLA
+ 0
+
+
+ IccCppDialect
+ 1
+
+
+ IccExceptions
+ 1
+
+
+ IccRTTI
+ 1
+
+
+ IccStaticDestr
+ 1
+
+
+ IccCppInlineSemantics
+ 1
+
+
+ IccCmsis
+ 1
+
+
+ IccFloatSemantics
+ 0
+
AARM
2
- 7
+ 8
1
1
@@ -461,10 +541,6 @@
AIgnoreStdInclude
0
-
- AStdIncludes
- $TOOLKIT_DIR$\INC\
-
AUserIncludes
$PROJ_DIR$\.
@@ -488,7 +564,7 @@
1
OOCOutputFormat
- 1
+ 2
0
@@ -534,7 +610,7 @@
ILINK
0
- 5
+ 13
1
1
@@ -677,10 +753,6 @@
IlinkProgramEntryLabel
__iar_program_start
-
- IlinkNXPLPCChecksum
- 0
-
DoFill
0
@@ -740,6 +812,66 @@
IlinkBufferedTerminalOutput
1
+
+ IlinkStdoutInterfaceSlave
+ 1
+
+
+ CrcFullSize
+ 0
+
+
+ IlinkIElfToolPostProcess
+ 0
+
+
+ IlinkLogAutoLibSelect
+ 0
+
+
+ IlinkLogRedirSymbols
+ 0
+
+
+ IlinkLogUnusedFragments
+ 0
+
+
+ IlinkCrcReverseByteOrder
+ 0
+
+
+ IlinkCrcUseAsInput
+ 1
+
+
+ IlinkOptInline
+ 0
+
+
+ IlinkOptExceptionsAllow
+ 1
+
+
+ IlinkOptExceptionsForce
+ 0
+
+
+ IlinkCmsis
+ 1
+
+
+ IlinkOptMergeDuplSections
+ 0
+
+
+ IlinkOptUseVfe
+ 1
+
+
+ IlinkOptForceVfe
+ 0
+
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.ewd b/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.ewd
index ef1c0392d..07de60338 100644
--- a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.ewd
+++ b/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.ewd
@@ -12,7 +12,7 @@
C-SPY
2
- 18
+ 22
1
1
@@ -45,7 +45,7 @@
MemFile
- $TOOLKIT_DIR$\CONFIG\debugger\Luminary\iolm3sxxxx.ddf
+ $TOOLKIT_DIR$\CONFIG\debugger\TexasInstruments\iolm3sxxxx.ddf
RunToEnable
@@ -89,7 +89,7 @@
OCLastSavedByProductVersion
- 5.30.0.51236
+ 6.20.1.52589
OCDownloadAttachToProgram
@@ -116,8 +116,60 @@
1
- FlashLoadersV2
- ,,,,(default),
+ FlashLoadersV3
+ $TOOLKIT_DIR$\config\flashloader\TexasInstruments\FlashLM3Sx8xx.board
+
+
+ OCImagesSuppressCheck1
+ 0
+
+
+ OCImagesPath1
+
+
+
+ OCImagesSuppressCheck2
+ 0
+
+
+ OCImagesPath2
+
+
+
+ OCImagesSuppressCheck3
+ 0
+
+
+ OCImagesPath3
+
+
+
+ OverrideDefFlashBoard
+ 0
+
+
+ OCImagesOffset1
+
+
+
+ OCImagesOffset2
+
+
+
+ OCImagesOffset3
+
+
+
+ OCImagesUse1
+ 0
+
+
+ OCImagesUse2
+ 0
+
+
+ OCImagesUse3
+ 0
@@ -230,7 +282,7 @@
IARROM_ID
2
- 0
+ 1
1
1
@@ -241,10 +293,6 @@
CRomLogFileEditB
$TOOLKIT_DIR$\cspycomm.log
-
- CRomCommunication
- 0
-
CRomCommPort
0
@@ -265,7 +313,7 @@
JLINK_ID
2
- 10
+ 13
1
1
@@ -322,8 +370,8 @@
CCUSBDevice
- 0
- 0
+ 1
+ 1
CCRDICatchReset
@@ -375,20 +423,85 @@
CCJLinkResetList
- 0
+ 5
5
CCJLinkInterfaceCmdLine
0
+
+ CCCatchCORERESET
+ 0
+
+
+ CCCatchMMERR
+ 0
+
+
+ CCCatchNOCPERR
+ 0
+
+
+ CCCatchCHRERR
+ 0
+
+
+ CCCatchSTATERR
+ 0
+
+
+ CCCatchBUSERR
+ 0
+
+
+ CCCatchINTERR
+ 0
+
+
+ CCCatchHARDERR
+ 0
+
+
+ CCCatchDummy
+ 0
+
+
+ OCJLinkScriptFile
+ 1
+
+
+ CCJLinkUsbSerialNo
+
+
+
+ CCTcpIpAlt
+ 0
+ 0
+
+
+ CCJLinkTcpIpSerialNo
+
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
LMIFTDI_ID
2
- 1
+ 2
1
1
@@ -407,6 +520,14 @@
CCLmiftdiLogFile
$TOOLKIT_DIR$\cspycomm.log
+
+ CCLmiFtdiInterfaceRadio
+ 0
+
+
+ CCLmiFtdiInterfaceCmdLine
+ 0
+
@@ -498,11 +619,75 @@
+
+ PEMICRO_ID
+ 2
+
+ 0
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ OCPEMicroAttachSlave
+ 1
+
+
+ CCPEMicroInterfaceList
+ 0
+ 0
+
+
+ CCPEMicroResetDelay
+
+
+
+ CCPEMicroJtagSpeed
+ #UNINITIALIZED#
+
+
+ CCJPEMicroShowSettings
+ 0
+
+
+ DoLogfile
+ 0
+
+
+ LogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CCPEMicroUSBDevice
+ 0
+ 0
+
+
+ CCPEMicroSerialPort
+ 0
+ 0
+
+
+ CCJPEMicroTCPIPAutoScanNetwork
+ 1
+
+
+ CCPEMicroTCPIP
+ 10.0.0.1
+
+
+ CCPEMicroCommCmdLineProducer
+ 0
+
+
+
RDI_ID
2
- 1
+ 2
1
1
@@ -549,10 +734,6 @@
CCRDICatchFIQ
0
-
- CCRDIUseETM
- 0
-
OCDriverInfo
1
@@ -563,13 +744,38 @@
STLINK_ID
2
- 0
+ 2
1
1
OCDriverInfo
1
+
+ CCSTLinkInterfaceRadio
+ 0
+
+
+ CCSTLinkInterfaceCmdLine
+ 0
+
+
+ CCSTLinkResetList
+ 1
+ 0
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
@@ -611,17 +817,33 @@
0
- $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin
+ $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
0
$TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin
0
+
+ $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB6_Plugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
0
+
+ $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin
+ 0
+
$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin
0
@@ -631,12 +853,16 @@
1
- $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ $EW_DIR$\common\plugins\FreeRTOS\FreeRTOSPlugin.ewplugin
0
- $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin
- 1
+ $EW_DIR$\common\plugins\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
$EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.ewp b/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.ewp
index 4c2affb4e..32edafc2a 100644
--- a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.ewp
+++ b/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.ewp
@@ -1,7 +1,7 @@
- 1
+ 2
Debug
@@ -12,7 +12,7 @@
General
3
- 14
+ 21
1
1
@@ -33,8 +33,8 @@
Variant
- 7
- 31
+ 19
+ 37
GEndianMode
@@ -42,8 +42,8 @@
Input variant
- 1
- 3
+ 3
+ 6
Input description
@@ -51,8 +51,8 @@
Output variant
- 0
- 2
+ 2
+ 5
Output description
@@ -64,7 +64,7 @@
FPU
- 0
+ 2
0
@@ -85,19 +85,10 @@
RTDescription
Use the normal configuration of the C/C++ runtime library. No locale interface, C locale, no file descriptor support, no multibytes in printf and scanf, and no hex floats in strtod.
-
- RTConfigPath
- $TOOLKIT_DIR$\INC\DLib_Config_Normal.h
-
OGLastSavedByProductVersion
5.11.0.50615
-
- GeneralMisraRules
- 0
- 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
-
GeneralEnableMisra
0
@@ -122,13 +113,53 @@
OGBufferedTerminalOutput
0
+
+ GenStdoutInterface
+ 0
+
+
+ GeneralMisraRules98
+ 0
+ 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
+
+
+ GeneralMisraVer
+ 0
+
+
+ GeneralMisraRules04
+ 0
+ 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+
+ RTConfigPath2
+ $TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h
+
+
+ GFPUCoreSlave
+ 19
+ 37
+
+
+ GBECoreSlave
+ 19
+ 37
+
+
+ OGUseCmsis
+ 0
+
+
+ OGUseCmsisDspLib
+ 0
+
ICCARM
2
- 19
+ 28
1
1
@@ -249,10 +280,6 @@
OutputFile
$FILE_BNAME$.o
-
- CCLangSelect
- 0
-
CCLibConfigHeader
1
@@ -261,11 +288,6 @@
PreInclude
-
- CompilerMisraRules
- 0
- 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
-
CompilerMisraOverride
0
@@ -283,10 +305,6 @@
CCStdIncCheck
0
-
- CCStdIncludePath
- $TOOLKIT_DIR$\INC\
-
CCCodeSection
.text
@@ -312,13 +330,75 @@
CCOptLevelSlave
1
+
+ CompilerMisraRules98
+ 0
+ 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
+
+
+ CompilerMisraRules04
+ 0
+ 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+
+ CCPosIndRopi
+ 0
+
+
+ CCPosIndRwpi
+ 0
+
+
+ CCPosIndNoDynInit
+ 0
+
+
+ IccLang
+ 0
+
+
+ IccCDialect
+ 1
+
+
+ IccAllowVLA
+ 0
+
+
+ IccCppDialect
+ 1
+
+
+ IccExceptions
+ 1
+
+
+ IccRTTI
+ 1
+
+
+ IccStaticDestr
+ 1
+
+
+ IccCppInlineSemantics
+ 1
+
+
+ IccCmsis
+ 1
+
+
+ IccFloatSemantics
+ 0
+
AARM
2
- 7
+ 8
1
1
@@ -462,10 +542,6 @@
AIgnoreStdInclude
0
-
- AStdIncludes
- $TOOLKIT_DIR$\INC\
-
AUserIncludes
$PROJ_DIR$\
@@ -489,7 +565,7 @@
1
OOCOutputFormat
- 1
+ 2
0
@@ -535,7 +611,7 @@
ILINK
0
- 5
+ 13
1
1
@@ -679,10 +755,6 @@
IlinkProgramEntryLabel
__iar_program_start
-
- IlinkNXPLPCChecksum
- 0
-
DoFill
0
@@ -742,6 +814,66 @@
IlinkBufferedTerminalOutput
1
+
+ IlinkStdoutInterfaceSlave
+ 1
+
+
+ CrcFullSize
+ 0
+
+
+ IlinkIElfToolPostProcess
+ 0
+
+
+ IlinkLogAutoLibSelect
+ 0
+
+
+ IlinkLogRedirSymbols
+ 0
+
+
+ IlinkLogUnusedFragments
+ 0
+
+
+ IlinkCrcReverseByteOrder
+ 0
+
+
+ IlinkCrcUseAsInput
+ 1
+
+
+ IlinkOptInline
+ 0
+
+
+ IlinkOptExceptionsAllow
+ 1
+
+
+ IlinkOptExceptionsForce
+ 0
+
+
+ IlinkCmsis
+ 1
+
+
+ IlinkOptMergeDuplSections
+ 0
+
+
+ IlinkOptUseVfe
+ 1
+
+
+ IlinkOptForceVfe
+ 0
+
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.cspy.bat b/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.cspy.bat
index ac49556d8..34a20c3bd 100644
--- a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.cspy.bat
+++ b/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.cspy.bat
@@ -1,32 +1,15 @@
-@REM This bat file has been generated by the IAR Embeddded Workbench
-@REM C-SPY interactive debugger,as an aid to preparing a command
-@REM line for running the cspybat command line utility with the
-@REM appropriate settings.
+@REM This batch file has been generated by the IAR Embedded Workbench
+@REM C-SPY Debugger, as an aid to preparing a command line for running
+@REM the cspybat command line utility using the appropriate settings.
@REM
-@REM After making some adjustments to this file, you can launch cspybat
-@REM by typing the name of this file followed by the name of the debug
-@REM file (usually an ubrof file). Note that this file is generated
-@REM every time a new debug session is initialized, so you may want to
-@REM move or rename the file before making changes.
-@REM
-@REM Note: some command line arguments cannot be properly generated
-@REM by this process. Specifically, the plugin which is responsible
-@REM for the Terminal I/O window (and other C runtime functionality)
-@REM comes in a special version for cspybat, and the name of that
-@REM plugin dll is not known when generating this file. It resides in
-@REM the $TOOLKIT_DIR$\bin folder and is usually called XXXbat.dll or
-@REM XXXlibsupportbat.dll, where XXX is the name of the corresponding
-@REM tool chain. Replace the '' parameter
-@REM below with the appropriate file name. Other plugins loaded by
-@REM C-SPY are usually not needed by, or will not work in, cspybat
-@REM but they are listed at the end of this file for reference.
+@REM You can launch cspybat by typing the name of this batch file followed
+@REM by the name of the debug file (usually an ELF/DWARF or UBROF file).
+@REM Note that this file is generated every time a new debug session
+@REM is initialized, so you may want to move or rename the file before
+@REM making changes.
+@REM
-"C:\Devtools\IAR Systems\Embedded Workbench 5.0\common\bin\cspybat" "C:\Devtools\IAR Systems\Embedded Workbench 5.0\ARM\bin\armproc.dll" "C:\Devtools\IAR Systems\Embedded Workbench 5.0\ARM\bin\armlmiftdi.dll" %1 --plugin "C:\Devtools\IAR Systems\Embedded Workbench 5.0\ARM\bin\" --backend -B "--endian" "little" "--cpu" "Cortex-M3" "--fpu" "None" "--proc_device_desc_file" "C:\Devtools\IAR Systems\Embedded Workbench 5.0\ARM\CONFIG\debugger\Luminary\iolm3sxxxx.ddf" "--drv_verify_download" "all" "--proc_no_semihosting" "--proc_driver" "lmiftdi" "--lmiftdi_speed" "500"
+"C:\devtools\IAR Systems\Embedded Workbench 6.0\common\bin\cspybat" "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\bin\armproc.dll" "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\bin\armlmiftdi.dll" %1 --plugin "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\bin\armbat.dll" --flash_loader "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\config\flashloader\TexasInstruments\FlashLM3Sx8xx.board" --backend -B "--endian=little" "--cpu=Cortex-M3" "--fpu=None" "-p" "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\CONFIG\debugger\TexasInstruments\iolm3sxxxx.ddf" "--drv_verify_download" "--semihosting=none" "--device=LM3Sx9xx" "--lmiftdi_speed=500"
-@REM Loaded plugins:
-@REM armlibsupport.dll
-@REM C:\Devtools\IAR Systems\Embedded Workbench 5.0\common\plugins\CodeCoverage\CodeCoverage.dll
-@REM C:\Devtools\IAR Systems\Embedded Workbench 5.0\common\plugins\Profiling\Profiling.dll
-@REM C:\Devtools\IAR Systems\Embedded Workbench 5.0\common\plugins\stack\stack.dll
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.dni b/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.dni
index 922866af0..20e3854ba 100644
--- a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.dni
+++ b/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.dni
@@ -15,11 +15,6 @@ UseTrigger=1
TriggerName=main
LimitSize=0
ByteLimit=50
-[Disassemble mode]
-mode=1
-[Breakpoints]
-Bp0=_ "STD_CODE" "{C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\Common\Minimal\IntQueue.c}.363.2@1" 1 0 0 0 "" 0 ""
-Count=1
[Log file]
LoggingEnabled=_ 0
LogFile=_ ""
@@ -27,3 +22,21 @@ Category=_ 0
[TermIOLog]
LoggingEnabled=_ 0
LogFile=_ ""
+[Stack]
+FillEnabled=0
+OverflowWarningsEnabled=1
+WarningThreshold=90
+SpWarningsEnabled=1
+WarnLogOnly=1
+UseTrigger=1
+TriggerName=main
+LimitSize=0
+ByteLimit=50
+[Disassemble mode]
+mode=1
+[Breakpoints]
+Bp0=_ "STD_CODE" "{$PROJ_DIR$\..\..\..\WorkingCopy2\Demo\Common\Minimal\IntQueue.c}.363.2@1" 1 0 0 0 "" 0 ""
+Count=1
+[Aliases]
+Count=0
+SuppressDialog=0
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.wsdt b/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.wsdt
index cdf36be82..5e7339221 100644
--- a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.wsdt
+++ b/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.wsdt
@@ -17,7 +17,7 @@
482 68 826 19 1007 268 67
-
+
TabID-18883-22024
@@ -25,24 +25,24 @@
Workspace
- RTOSDemo RTOSDemo/Demo files RTOSDemo/Scheduler files
+ RTOSDemo RTOSDemo/Demo files
- 0 TabID-29040-7360 Find in Files Find-in-Files TabID-19024-10413 Build Build TabID-19202-19100 Debug Log Debug-Log 1
+ 0 TabID-29040-7360 Find in Files Find-in-Files TabID-19024-10413 Build Build TabID-19202-19100 Debug Log Debug-Log 1
- TextEditor C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\CORTEX_LM3Sxxxx_IAR_Keil\main.c 0 440 16856 16856 TextEditor C:\E\Dev\FreeRTOS\WorkingCopy2\Source\portable\IAR\ARM_CM3\portasm.s 0 98 3999 3999 TextEditor C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\CORTEX_LM3Sxxxx_IAR_Keil\IntQueueTimer.c 0 27 0 0 TextEditor C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\Common\Minimal\IntQueue.c 0 327 15684 15684 3 TextEditor C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\CORTEX_LM3Sxxxx_IAR_Keil\FreeRTOSConfig.h 0 61 0 0 0 1000000 1000000 1
+ TextEditor $WS_DIR$\main.c 0 0 0 0 0 0 1000000 1000000 1
- iaridepm.enu1 -2 -2 760 315 -2 -2 200 200 119048 203666 188690 775967 -2 -2 178 1682 -2 -2 1684 180 1002381 183299 119048 203666
+ iaridepm.enu1 -2 -2 760 315 -2 -2 200 200 119048 203666 188690 775967 -2 -2 178 1682 -2 -2 1684 180 1002381 183299 119048 203666
diff --git a/Demo/CORTEX_LPC1768_IAR/RTOSDemo.ewd b/Demo/CORTEX_LPC1768_IAR/RTOSDemo.ewd
index da9d540dd..9322a471c 100644
--- a/Demo/CORTEX_LPC1768_IAR/RTOSDemo.ewd
+++ b/Demo/CORTEX_LPC1768_IAR/RTOSDemo.ewd
@@ -12,7 +12,7 @@
C-SPY
2
- 21
+ 22
1
1
@@ -89,7 +89,7 @@
OCLastSavedByProductVersion
- 5.40.0.51529
+ 6.20.1.52589
OCDownloadAttachToProgram
@@ -147,6 +147,30 @@
OverrideDefFlashBoard
0
+
+ OCImagesOffset1
+
+
+
+ OCImagesOffset2
+
+
+
+ OCImagesOffset3
+
+
+
+ OCImagesUse1
+ 0
+
+
+ OCImagesUse2
+ 0
+
+
+ OCImagesUse3
+ 0
+
@@ -258,7 +282,7 @@
IARROM_ID
2
- 0
+ 1
1
1
@@ -269,10 +293,6 @@
CRomLogFileEditB
$PROJ_DIR$\cspycomm.log
-
- CRomCommunication
- 0
-
CRomCommPort
0
@@ -293,7 +313,7 @@
JLINK_ID
2
- 10
+ 13
1
1
@@ -350,8 +370,8 @@
CCUSBDevice
- 0
- 0
+ 1
+ 1
CCRDICatchReset
@@ -403,13 +423,78 @@
CCJLinkResetList
- 0
+ 5
7
CCJLinkInterfaceCmdLine
0
+
+ CCCatchCORERESET
+ 0
+
+
+ CCCatchMMERR
+ 0
+
+
+ CCCatchNOCPERR
+ 0
+
+
+ CCCatchCHRERR
+ 0
+
+
+ CCCatchSTATERR
+ 0
+
+
+ CCCatchBUSERR
+ 0
+
+
+ CCCatchINTERR
+ 0
+
+
+ CCCatchHARDERR
+ 0
+
+
+ CCCatchDummy
+ 0
+
+
+ OCJLinkScriptFile
+ 1
+
+
+ CCJLinkUsbSerialNo
+
+
+
+ CCTcpIpAlt
+ 0
+ 0
+
+
+ CCJLinkTcpIpSerialNo
+
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
@@ -534,11 +619,75 @@
+
+ PEMICRO_ID
+ 2
+
+ 0
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ OCPEMicroAttachSlave
+ 1
+
+
+ CCPEMicroInterfaceList
+ 0
+ 0
+
+
+ CCPEMicroResetDelay
+
+
+
+ CCPEMicroJtagSpeed
+ #UNINITIALIZED#
+
+
+ CCJPEMicroShowSettings
+ 0
+
+
+ DoLogfile
+ 0
+
+
+ LogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CCPEMicroUSBDevice
+ 0
+ 0
+
+
+ CCPEMicroSerialPort
+ 0
+ 0
+
+
+ CCJPEMicroTCPIPAutoScanNetwork
+ 1
+
+
+ CCPEMicroTCPIP
+ 10.0.0.1
+
+
+ CCPEMicroCommCmdLineProducer
+ 0
+
+
+
RDI_ID
2
- 1
+ 2
1
1
@@ -585,10 +734,6 @@
CCRDICatchFIQ
0
-
- CCRDIUseETM
- 0
-
OCDriverInfo
1
@@ -599,13 +744,38 @@
STLINK_ID
2
- 0
+ 2
1
1
OCDriverInfo
1
+
+ CCSTLinkInterfaceRadio
+ 0
+
+
+ CCSTLinkInterfaceCmdLine
+ 0
+
+
+ CCSTLinkResetList
+ 1
+ 0
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
@@ -647,13 +817,25 @@
0
- $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin
+ $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
0
$TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin
0
+
+ $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB6_Plugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
0
@@ -675,703 +857,13 @@
0
- $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
- 0
-
-
- $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin
- 1
-
-
- $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin
- 1
-
-
- $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin
- 1
-
-
-
-
- Release
-
- ARM
-
- 0
-
- C-SPY
- 2
-
- 21
- 1
- 0
-
- CInput
- 1
-
-
- CEndian
- 1
-
-
- CProcessor
- 1
-
-
- OCVariant
- 0
-
-
- MacOverride
- 0
-
-
- MacFile
-
-
-
- MemOverride
- 0
-
-
- MemFile
-
-
-
- RunToEnable
- 1
-
-
- RunToName
- main
-
-
- CExtraOptionsCheck
- 0
-
-
- CExtraOptions
-
-
-
- CFpuProcessor
- 1
-
-
- OCDDFArgumentProducer
-
-
-
- OCDownloadSuppressDownload
- 0
-
-
- OCDownloadVerifyAll
- 0
-
-
- OCProductVersion
- 5.40.0.51529
-
-
- OCDynDriverList
- ARMSIM_ID
-
-
- OCLastSavedByProductVersion
-
-
-
- OCDownloadAttachToProgram
- 0
-
-
- UseFlashLoader
- 0
-
-
- CLowLevel
- 1
-
-
- OCBE8Slave
- 1
-
-
- MacFile2
-
-
-
- CDevice
- 1
-
-
- FlashLoadersV3
-
-
-
- OCImagesSuppressCheck1
- 0
-
-
- OCImagesPath1
-
-
-
- OCImagesSuppressCheck2
- 0
-
-
- OCImagesPath2
-
-
-
- OCImagesSuppressCheck3
- 0
-
-
- OCImagesPath3
-
-
-
- OverrideDefFlashBoard
- 0
-
-
-
-
- ARMSIM_ID
- 2
-
- 1
- 1
- 0
-
- OCSimDriverInfo
- 1
-
-
- OCSimEnablePSP
- 0
-
-
- OCSimPspOverrideConfig
- 0
-
-
- OCSimPspConfigFile
-
-
-
-
-
- ANGEL_ID
- 2
-
- 0
- 1
- 0
-
- CCAngelHeartbeat
- 1
-
-
- CAngelCommunication
- 1
-
-
- CAngelCommBaud
- 0
- 3
-
-
- CAngelCommPort
- 0
- 0
-
-
- ANGELTCPIP
- aaa.bbb.ccc.ddd
-
-
- DoAngelLogfile
- 0
-
-
- AngelLogFile
- $PROJ_DIR$\cspycomm.log
-
-
- OCDriverInfo
- 1
-
-
-
-
- GDBSERVER_ID
- 2
-
- 0
- 1
- 0
-
- OCDriverInfo
- 1
-
-
- TCPIP
- aaa.bbb.ccc.ddd
-
-
- DoLogfile
- 0
-
-
- LogFile
- $PROJ_DIR$\cspycomm.log
-
-
- CCJTagBreakpointRadio
- 0
-
-
- CCJTagDoUpdateBreakpoints
- 0
-
-
- CCJTagUpdateBreakpoints
- main
-
-
-
-
- IARROM_ID
- 2
-
- 0
- 1
- 0
-
- CRomLogFileCheck
- 0
-
-
- CRomLogFileEditB
- $PROJ_DIR$\cspycomm.log
-
-
- CRomCommunication
- 0
-
-
- CRomCommPort
- 0
- 0
-
-
- CRomCommBaud
- 0
- 7
-
-
- OCDriverInfo
- 1
-
-
-
-
- JLINK_ID
- 2
-
- 10
- 1
- 0
-
- JLinkSpeed
- 32
-
-
- CCJLinkDoLogfile
- 0
-
-
- CCJLinkLogFile
- $PROJ_DIR$\cspycomm.log
-
-
- CCJLinkHWResetDelay
- 0
-
-
- OCDriverInfo
- 1
-
-
- JLinkInitialSpeed
- 32
-
-
- CCDoJlinkMultiTarget
- 0
-
-
- CCScanChainNonARMDevices
- 0
-
-
- CCJLinkMultiTarget
- 0
-
-
- CCJLinkIRLength
- 0
-
-
- CCJLinkCommRadio
- 0
-
-
- CCJLinkTCPIP
- aaa.bbb.ccc.ddd
-
-
- CCJLinkSpeedRadioV2
- 0
-
-
- CCUSBDevice
- 0
- 0
-
-
- CCRDICatchReset
- 0
-
-
- CCRDICatchUndef
- 0
-
-
- CCRDICatchSWI
- 0
-
-
- CCRDICatchData
- 0
-
-
- CCRDICatchPrefetch
- 0
-
-
- CCRDICatchIRQ
- 0
-
-
- CCRDICatchFIQ
- 0
-
-
- CCJLinkBreakpointRadio
- 0
-
-
- CCJLinkDoUpdateBreakpoints
- 0
-
-
- CCJLinkUpdateBreakpoints
- main
-
-
- CCJLinkInterfaceRadio
- 0
-
-
- OCJLinkAttachSlave
- 1
-
-
- CCJLinkResetList
- 0
- 5
-
-
- CCJLinkInterfaceCmdLine
- 0
-
-
-
-
- LMIFTDI_ID
- 2
-
- 2
- 1
- 0
-
- OCDriverInfo
- 1
-
-
- LmiftdiSpeed
- 500
-
-
- CCLmiftdiDoLogfile
- 0
-
-
- CCLmiftdiLogFile
- $PROJ_DIR$\cspycomm.log
-
-
- CCLmiFtdiInterfaceRadio
- 0
-
-
- CCLmiFtdiInterfaceCmdLine
- 0
-
-
-
-
- MACRAIGOR_ID
- 2
-
- 3
- 1
- 0
-
- jtag
- 0
- 0
-
-
- EmuSpeed
- 1
-
-
- TCPIP
- aaa.bbb.ccc.ddd
-
-
- DoLogfile
- 0
-
-
- LogFile
- $PROJ_DIR$\cspycomm.log
-
-
- DoEmuMultiTarget
- 0
-
-
- EmuMultiTarget
- 0@ARM7TDMI
-
-
- EmuHWReset
- 0
-
-
- CEmuCommBaud
- 0
- 4
-
-
- CEmuCommPort
- 0
- 0
-
-
- jtago
- 0
- 0
-
-
- OCDriverInfo
- 1
-
-
- UnusedAddr
- 0x00800000
-
-
- CCMacraigorHWResetDelay
-
-
-
- CCJTagBreakpointRadio
- 0
-
-
- CCJTagDoUpdateBreakpoints
- 0
-
-
- CCJTagUpdateBreakpoints
- main
-
-
- CCMacraigorInterfaceRadio
- 0
-
-
- CCMacraigorInterfaceCmdLine
- 0
-
-
-
-
- RDI_ID
- 2
-
- 1
- 1
- 0
-
- CRDIDriverDll
- ###Uninitialized###
-
-
- CRDILogFileCheck
- 0
-
-
- CRDILogFileEdit
- $PROJ_DIR$\cspycomm.log
-
-
- CCRDIHWReset
- 0
-
-
- CCRDICatchReset
- 0
-
-
- CCRDICatchUndef
- 0
-
-
- CCRDICatchSWI
- 0
-
-
- CCRDICatchData
- 0
-
-
- CCRDICatchPrefetch
- 0
-
-
- CCRDICatchIRQ
- 0
-
-
- CCRDICatchFIQ
- 0
-
-
- CCRDIUseETM
- 0
-
-
- OCDriverInfo
- 1
-
-
-
-
- STLINK_ID
- 2
-
- 0
- 1
- 0
-
- OCDriverInfo
- 1
-
-
-
-
- THIRDPARTY_ID
- 2
-
- 0
- 1
- 0
-
- CThirdPartyDriverDll
- ###Uninitialized###
-
-
- CThirdPartyLogFileCheck
- 0
-
-
- CThirdPartyLogFileEditB
- $PROJ_DIR$\cspycomm.log
-
-
- OCDriverInfo
- 1
-
-
-
-
-
- $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin
- 0
-
-
- $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin
- 1
-
-
- $EW_DIR$\common\plugins\FreeRTOS\FreeRTOSPlugin.ewplugin
+ $EW_DIR$\common\plugins\OpenRTOS\OpenRTOSPlugin.ewplugin
0
$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
0
-
- $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin
- 1
-
$EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin
1
diff --git a/Demo/CORTEX_LPC1768_IAR/RTOSDemo.ewp b/Demo/CORTEX_LPC1768_IAR/RTOSDemo.ewp
index 44825cfe6..5a442fa71 100644
--- a/Demo/CORTEX_LPC1768_IAR/RTOSDemo.ewp
+++ b/Demo/CORTEX_LPC1768_IAR/RTOSDemo.ewp
@@ -12,7 +12,7 @@
General
3
- 17
+ 21
1
1
@@ -29,8 +29,8 @@
Variant
- 11
- 35
+ 19
+ 37
GEndianMode
@@ -38,8 +38,8 @@
Input variant
- 1
- 3
+ 3
+ 6
Input description
@@ -47,8 +47,8 @@
Output variant
- 0
- 3
+ 2
+ 7
Output description
@@ -60,7 +60,7 @@
FPU
- 0
+ 2
0
@@ -81,17 +81,13 @@
RTDescription
Use the normal configuration of the C/C++ runtime library. No locale interface, C locale, no file descriptor support, no multibytes in printf and scanf, and no hex floats in strtod.
-
- RTConfigPath
- $TOOLKIT_DIR$\INC\DLib_Config_Normal.h
-
OGProductVersion
5.10.0.159
OGLastSavedByProductVersion
- 5.40.0.51529
+ 6.20.1.52589
GeneralEnableMisra
@@ -135,13 +131,35 @@
0
111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+ RTConfigPath2
+ $TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h
+
+
+ GFPUCoreSlave
+ 19
+ 37
+
+
+ GBECoreSlave
+ 19
+ 37
+
+
+ OGUseCmsis
+ 1
+
+
+ OGUseCmsisDspLib
+ 0
+
ICCARM
2
- 21
+ 28
1
1
@@ -261,10 +279,6 @@
OutputFile
$FILE_BNAME$.o
-
- CCLangSelect
- 0
-
CCLibConfigHeader
1
@@ -291,10 +305,6 @@
CCStdIncCheck
0
-
- CCStdIncludePath
- $TOOLKIT_DIR$\INC\
-
CCCodeSection
.text
@@ -330,13 +340,65 @@
0
111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+ CCPosIndRopi
+ 0
+
+
+ CCPosIndRwpi
+ 0
+
+
+ CCPosIndNoDynInit
+ 0
+
+
+ IccLang
+ 0
+
+
+ IccCDialect
+ 1
+
+
+ IccAllowVLA
+ 0
+
+
+ IccCppDialect
+ 1
+
+
+ IccExceptions
+ 1
+
+
+ IccRTTI
+ 1
+
+
+ IccStaticDestr
+ 1
+
+
+ IccCppInlineSemantics
+ 1
+
+
+ IccCmsis
+ 1
+
+
+ IccFloatSemantics
+ 0
+
AARM
2
- 7
+ 8
1
1
@@ -480,10 +542,6 @@
AIgnoreStdInclude
0
-
- AStdIncludes
- $TOOLKIT_DIR$\INC\
-
AUserIncludes
$PROJ_DIR$
@@ -553,7 +611,7 @@
ILINK
0
- 8
+ 13
1
1
@@ -767,803 +825,63 @@
IlinkIElfToolPostProcess
0
-
-
-
- IARCHIVE
- 0
-
- 0
- 1
- 1
-
- IarchiveInputs
-
-
-
- IarchiveOverride
- 0
-
-
- IarchiveOutput
- ###Unitialized###
-
-
-
-
- BILINK
- 0
-
-
-
-
- Release
-
- ARM
-
- 0
-
- General
- 3
-
- 17
- 1
- 0
-
- ExePath
- Release\Exe
-
-
- ObjPath
- Release\Obj
-
-
- ListPath
- Release\List
-
-
- Variant
- 11
- 0
-
-
- GEndianMode
- 0
-
-
- Input variant
- 1
- 0
-
-
- Input description
- Full formatting.
-
- Output variant
- 0
+ IlinkLogAutoLibSelect
0
- Output description
- Full formatting.
-
-
- GOutputBinary
+ IlinkLogRedirSymbols
0
- FPU
- 0
+ IlinkLogUnusedFragments
0
- OGCoreOrChip
+ IlinkCrcReverseByteOrder
0
- GRuntimeLibSelect
- 0
- 1
-
-
- GRuntimeLibSelectSlave
- 0
+ IlinkCrcUseAsInput
1
- RTDescription
- Use the normal configuration of the C/C++ runtime library. No locale interface, C locale, no file descriptor support, no multibytes in printf and scanf, and no hex floats in strtod.
-
-
- RTConfigPath
- $TOOLKIT_DIR$\INC\DLib_Config_Normal.h
-
-
- OGProductVersion
- 5.10.0.159
-
-
- OGLastSavedByProductVersion
- 5.10.0.159
-
-
- GeneralEnableMisra
- 0
-
-
- GeneralMisraVerbose
+ IlinkOptInline
0
- OGChipSelectEditMenu
- default None
-
-
- GenLowLevelInterface
- 0
+ IlinkOptExceptionsAllow
+ 1
- GEndianModeBE
+ IlinkOptExceptionsForce
0
- OGBufferedTerminalOutput
- 0
+ IlinkCmsis
+ 1
- GenStdoutInterface
+ IlinkOptMergeDuplSections
0
- GeneralMisraRules98
- 0
- 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
+ IlinkOptUseVfe
+ 1
- GeneralMisraVer
+ IlinkOptForceVfe
0
-
- GeneralMisraRules04
- 0
- 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
-
- ICCARM
- 2
+ IARCHIVE
+ 0
- 21
+ 0
1
- 0
-
- CCDefines
- NDEBUG
-
-
- CCPreprocFile
- 0
-
-
- CCPreprocComments
- 0
-
-
- CCPreprocLine
- 0
-
-
- CCListCFile
- 0
-
-
- CCListCMnemonics
- 0
-
-
- CCListCMessages
- 0
-
-
- CCListAssFile
- 0
-
-
- CCListAssSource
- 0
-
-
- CCEnableRemarks
- 0
-
-
- CCDiagSuppress
-
-
-
- CCDiagRemark
-
-
-
- CCDiagWarning
-
-
-
- CCDiagError
-
-
-
- CCObjPrefix
- 1
-
-
- CCAllowList
- 1
- 1111111
-
-
- CCDebugInfo
- 0
-
-
- IEndianMode
- 1
-
-
- IProcessor
- 1
-
-
- IExtraOptionsCheck
- 0
-
-
- IExtraOptions
-
-
-
- CCLangConformance
- 0
-
-
- CCSignedPlainChar
- 1
-
-
- CCRequirePrototypes
- 0
-
-
- CCMultibyteSupport
- 0
-
-
- CCDiagWarnAreErr
- 0
-
-
- CCCompilerRuntimeInfo
- 0
-
-
- IFpuProcessor
- 1
-
-
- OutputFile
- $FILE_BNAME$.o
-
-
- CCLangSelect
- 0
-
-
- CCLibConfigHeader
- 1
-
-
- PreInclude
-
-
-
- CompilerMisraOverride
- 0
-
-
- CCIncludePath2
-
-
-
- CCStdIncCheck
- 0
-
-
- CCStdIncludePath
- $TOOLKIT_DIR$\INC\
-
-
- CCCodeSection
- .text
-
-
- IInterwork2
- 1
-
-
- IProcessorMode2
- 1
-
-
- CCOptLevel
- 3
-
-
- CCOptStrategy
- 0
- 0
-
-
- CCOptLevelSlave
- 3
-
-
- CompilerMisraRules98
- 0
- 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
-
-
- CompilerMisraRules04
- 0
- 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
-
-
-
-
- AARM
- 2
-
- 7
- 1
- 0
-
- AObjPrefix
- 1
-
-
- AEndian
- 1
-
-
- ACaseSensitivity
- 1
-
-
- MacroChars
- 0
- 0
-
-
- AWarnEnable
- 0
-
-
- AWarnWhat
- 0
-
-
- AWarnOne
-
-
-
- AWarnRange1
-
-
-
- AWarnRange2
-
-
-
- ADebug
- 0
-
-
- AltRegisterNames
- 0
-
-
- ADefines
-
-
-
- AList
- 0
-
-
- AListHeader
- 1
-
-
- AListing
- 1
-
-
- Includes
- 0
-
-
- MacDefs
- 0
-
-
- MacExps
- 1
-
-
- MacExec
- 0
-
-
- OnlyAssed
- 0
-
-
- MultiLine
- 0
-
-
- PageLengthCheck
- 0
-
-
- PageLength
- 80
-
-
- TabSpacing
- 8
-
-
- AXRef
- 0
-
-
- AXRefDefines
- 0
-
-
- AXRefInternal
- 0
-
-
- AXRefDual
- 0
-
-
- AProcessor
- 1
-
-
- AFpuProcessor
- 1
-
-
- AOutputFile
- $FILE_BNAME$.o
-
-
- AMultibyteSupport
- 0
-
-
- ALimitErrorsCheck
- 0
-
-
- ALimitErrorsEdit
- 100
-
-
- AIgnoreStdInclude
- 0
-
-
- AStdIncludes
- $TOOLKIT_DIR$\INC\
-
-
- AUserIncludes
-
-
-
- AExtraOptionsCheckV2
- 0
-
-
- AExtraOptionsV2
-
-
-
-
-
- OBJCOPY
- 0
-
- 1
- 1
- 0
-
- OOCOutputFormat
- 2
- 0
-
-
- OCOutputOverride
- 0
-
-
- OOCOutputFile
- c.srec
-
-
- OOCCommandLineProducer
- 1
-
-
- OOCObjCopyEnable
- 0
-
-
-
-
- CUSTOM
- 3
-
-
-
-
-
-
- BICOMP
- 0
-
-
-
- BUILDACTION
- 1
-
-
-
-
-
-
- ILINK
- 0
-
- 8
- 1
- 0
-
- IlinkOutputFile
- ###Unitialized###
-
-
- IlinkLibIOConfig
- 1
-
-
- XLinkMisraHandler
- 0
-
-
- IlinkInputFileSlave
- 0
-
-
- IlinkDebugInfoEnable
- 1
-
-
- IlinkKeepSymbols
-
-
-
- IlinkRawBinaryFile
-
-
-
- IlinkRawBinarySymbol
-
-
-
- IlinkRawBinarySegment
-
-
-
- IlinkRawBinaryAlign
-
-
-
- IlinkDefines
-
-
-
- IlinkConfigDefines
-
-
-
- IlinkMapFile
- 0
-
-
- IlinkLogFile
- 0
-
-
- IlinkLogInitialization
- 0
-
-
- IlinkLogModule
- 0
-
-
- IlinkLogSection
- 0
-
-
- IlinkLogVeneer
- 0
-
-
- IlinkIcfOverride
- 0
-
-
- IlinkIcfFile
- $TOOLKIT_DIR$\CONFIG\generic.icf
-
-
- IlinkIcfFileSlave
-
-
-
- IlinkEnableRemarks
- 0
-
-
- IlinkSuppressDiags
-
-
-
- IlinkTreatAsRem
-
-
-
- IlinkTreatAsWarn
-
-
-
- IlinkTreatAsErr
-
-
-
- IlinkWarningsAreErrors
- 0
-
-
- IlinkUseExtraOptions
- 0
-
-
- IlinkExtraOptions
-
-
-
- IlinkLowLevelInterfaceSlave
- 1
-
-
- IlinkAutoLibEnable
- 1
-
-
- IlinkAdditionalLibs
-
-
-
- IlinkOverrideProgramEntryLabel
- 0
-
-
- IlinkProgramEntryLabelSelect
- 0
-
-
- IlinkProgramEntryLabel
-
-
-
- DoFill
- 0
-
-
- FillerByte
- 0xFF
-
-
- FillerStart
- 0x0
-
-
- FillerEnd
- 0x0
-
-
- CrcSize
- 0
- 1
-
-
- CrcAlign
- 1
-
-
- CrcAlgo
- 1
-
-
- CrcPoly
- 0x11021
-
-
- CrcCompl
- 0
- 0
-
-
- CrcBitOrder
- 0
- 0
-
-
- CrcInitialValue
- 0x0
-
-
- DoCrc
- 0
-
-
- IlinkBE8Slave
- 1
-
-
- IlinkBufferedTerminalOutput
- 1
-
-
- IlinkStdoutInterfaceSlave
- 1
-
-
- CrcFullSize
- 0
-
-
- IlinkIElfToolPostProcess
- 0
-
-
-
-
- IARCHIVE
- 0
-
- 0
- 1
- 0
+ 1
IarchiveInputs
diff --git a/Demo/CORTEX_LPC1768_IAR/core_cm3.h b/Demo/CORTEX_LPC1768_IAR/core_cm3.h
deleted file mode 100644
index b6f9696bf..000000000
--- a/Demo/CORTEX_LPC1768_IAR/core_cm3.h
+++ /dev/null
@@ -1,1367 +0,0 @@
-/******************************************************************************
- * @file: core_cm3.h
- * @purpose: CMSIS Cortex-M3 Core Peripheral Access Layer Header File
- * @version: V1.20
- * @date: 22. May 2009
- *----------------------------------------------------------------------------
- *
- * Copyright (C) 2009 ARM Limited. All rights reserved.
- *
- * ARM Limited (ARM) is supplying this software for use with Cortex-Mx
- * processor based microcontrollers. This file can be freely distributed
- * within development tools that are supporting such ARM based processors.
- *
- * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
- * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
- * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
- * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
- *
- ******************************************************************************/
-
-#ifndef __CM3_CORE_H__
-#define __CM3_CORE_H__
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#define __CM3_CMSIS_VERSION_MAIN (0x01) /*!< [31:16] CMSIS HAL main version */
-#define __CM3_CMSIS_VERSION_SUB (0x20) /*!< [15:0] CMSIS HAL sub version */
-#define __CM3_CMSIS_VERSION ((__CM3_CMSIS_VERSION_MAIN << 16) | __CM3_CMSIS_VERSION_SUB) /*!< CMSIS HAL version number */
-
-#define __CORTEX_M (0x03) /*!< Cortex core */
-
-/**
- * Lint configuration \n
- * ----------------------- \n
- *
- * The following Lint messages will be suppressed and not shown: \n
- * \n
- * --- Error 10: --- \n
- * register uint32_t __regBasePri __asm("basepri"); \n
- * Error 10: Expecting ';' \n
- * \n
- * --- Error 530: --- \n
- * return(__regBasePri); \n
- * Warning 530: Symbol '__regBasePri' (line 264) not initialized \n
- * \n
- * --- Error 550: --- \n
- * __regBasePri = (basePri & 0x1ff); \n
- * } \n
- * Warning 550: Symbol '__regBasePri' (line 271) not accessed \n
- * \n
- * --- Error 754: --- \n
- * uint32_t RESERVED0[24]; \n
- * Info 754: local structure member '' (line 109, file ./cm3_core.h) not referenced \n
- * \n
- * --- Error 750: --- \n
- * #define __CM3_CORE_H__ \n
- * Info 750: local macro '__CM3_CORE_H__' (line 43, file./cm3_core.h) not referenced \n
- * \n
- * --- Error 528: --- \n
- * static __INLINE void NVIC_DisableIRQ(uint32_t IRQn) \n
- * Warning 528: Symbol 'NVIC_DisableIRQ(unsigned int)' (line 419, file ./cm3_core.h) not referenced \n
- * \n
- * --- Error 751: --- \n
- * } InterruptType_Type; \n
- * Info 751: local typedef 'InterruptType_Type' (line 170, file ./cm3_core.h) not referenced \n
- * \n
- * \n
- * Note: To re-enable a Message, insert a space before 'lint' * \n
- *
- */
-
-/*lint -save */
-/*lint -e10 */
-/*lint -e530 */
-/*lint -e550 */
-/*lint -e754 */
-/*lint -e750 */
-/*lint -e528 */
-/*lint -e751 */
-
-
-#include /* Include standard types */
-
-#if defined (__ICCARM__)
- #include /* IAR Intrinsics */
-#endif
-
-
-#ifndef __NVIC_PRIO_BITS
- #define __NVIC_PRIO_BITS 4 /*!< standard definition for NVIC Priority Bits */
-#endif
-
-
-
-
-/**
- * IO definitions
- *
- * define access restrictions to peripheral registers
- */
-
-#ifdef __cplusplus
-#define __I volatile /*!< defines 'read only' permissions */
-#else
-#define __I volatile const /*!< defines 'read only' permissions */
-#endif
-#define __O volatile /*!< defines 'write only' permissions */
-#define __IO volatile /*!< defines 'read / write' permissions */
-
-
-
-/*******************************************************************************
- * Register Abstraction
- ******************************************************************************/
-
-
-/* System Reset */
-#define NVIC_VECTRESET 0 /*!< Vector Reset Bit */
-#define NVIC_SYSRESETREQ 2 /*!< System Reset Request */
-#define NVIC_AIRCR_VECTKEY (0x5FA << 16) /*!< AIRCR Key for write access */
-#define NVIC_AIRCR_ENDIANESS 15 /*!< Endianess */
-
-/* Core Debug */
-#define CoreDebug_DEMCR_TRCENA (1 << 24) /*!< DEMCR TRCENA enable */
-#define ITM_TCR_ITMENA 1 /*!< ITM enable */
-
-
-
-
-/* memory mapping struct for Nested Vectored Interrupt Controller (NVIC) */
-typedef struct
-{
- __IO uint32_t ISER[8]; /*!< Interrupt Set Enable Register */
- uint32_t RESERVED0[24];
- __IO uint32_t ICER[8]; /*!< Interrupt Clear Enable Register */
- uint32_t RSERVED1[24];
- __IO uint32_t ISPR[8]; /*!< Interrupt Set Pending Register */
- uint32_t RESERVED2[24];
- __IO uint32_t ICPR[8]; /*!< Interrupt Clear Pending Register */
- uint32_t RESERVED3[24];
- __IO uint32_t IABR[8]; /*!< Interrupt Active bit Register */
- uint32_t RESERVED4[56];
- __IO uint8_t IP[240]; /*!< Interrupt Priority Register, 8Bit wide */
- uint32_t RESERVED5[644];
- __O uint32_t STIR; /*!< Software Trigger Interrupt Register */
-} NVIC_Type;
-
-
-/* memory mapping struct for System Control Block */
-typedef struct
-{
- __I uint32_t CPUID; /*!< CPU ID Base Register */
- __IO uint32_t ICSR; /*!< Interrupt Control State Register */
- __IO uint32_t VTOR; /*!< Vector Table Offset Register */
- __IO uint32_t AIRCR; /*!< Application Interrupt / Reset Control Register */
- __IO uint32_t SCR; /*!< System Control Register */
- __IO uint32_t CCR; /*!< Configuration Control Register */
- __IO uint8_t SHP[12]; /*!< System Handlers Priority Registers (4-7, 8-11, 12-15) */
- __IO uint32_t SHCSR; /*!< System Handler Control and State Register */
- __IO uint32_t CFSR; /*!< Configurable Fault Status Register */
- __IO uint32_t HFSR; /*!< Hard Fault Status Register */
- __IO uint32_t DFSR; /*!< Debug Fault Status Register */
- __IO uint32_t MMFAR; /*!< Mem Manage Address Register */
- __IO uint32_t BFAR; /*!< Bus Fault Address Register */
- __IO uint32_t AFSR; /*!< Auxiliary Fault Status Register */
- __I uint32_t PFR[2]; /*!< Processor Feature Register */
- __I uint32_t DFR; /*!< Debug Feature Register */
- __I uint32_t ADR; /*!< Auxiliary Feature Register */
- __I uint32_t MMFR[4]; /*!< Memory Model Feature Register */
- __I uint32_t ISAR[5]; /*!< ISA Feature Register */
-} SCB_Type;
-
-
-/* memory mapping struct for SysTick */
-typedef struct
-{
- __IO uint32_t CTRL; /*!< SysTick Control and Status Register */
- __IO uint32_t LOAD; /*!< SysTick Reload Value Register */
- __IO uint32_t VAL; /*!< SysTick Current Value Register */
- __I uint32_t CALIB; /*!< SysTick Calibration Register */
-} SysTick_Type;
-
-
-/* memory mapping structur for ITM */
-typedef struct
-{
- __O union
- {
- __O uint8_t u8; /*!< ITM Stimulus Port 8-bit */
- __O uint16_t u16; /*!< ITM Stimulus Port 16-bit */
- __O uint32_t u32; /*!< ITM Stimulus Port 32-bit */
- } PORT [32]; /*!< ITM Stimulus Port Registers */
- uint32_t RESERVED0[864];
- __IO uint32_t TER; /*!< ITM Trace Enable Register */
- uint32_t RESERVED1[15];
- __IO uint32_t TPR; /*!< ITM Trace Privilege Register */
- uint32_t RESERVED2[15];
- __IO uint32_t TCR; /*!< ITM Trace Control Register */
- uint32_t RESERVED3[29];
- __IO uint32_t IWR; /*!< ITM Integration Write Register */
- __IO uint32_t IRR; /*!< ITM Integration Read Register */
- __IO uint32_t IMCR; /*!< ITM Integration Mode Control Register */
- uint32_t RESERVED4[43];
- __IO uint32_t LAR; /*!< ITM Lock Access Register */
- __IO uint32_t LSR; /*!< ITM Lock Status Register */
- uint32_t RESERVED5[6];
- __I uint32_t PID4; /*!< ITM Product ID Registers */
- __I uint32_t PID5;
- __I uint32_t PID6;
- __I uint32_t PID7;
- __I uint32_t PID0;
- __I uint32_t PID1;
- __I uint32_t PID2;
- __I uint32_t PID3;
- __I uint32_t CID0;
- __I uint32_t CID1;
- __I uint32_t CID2;
- __I uint32_t CID3;
-} ITM_Type;
-
-
-/* memory mapped struct for Interrupt Type */
-typedef struct
-{
- uint32_t RESERVED0;
- __I uint32_t ICTR; /*!< Interrupt Control Type Register */
-#if ((defined __CM3_REV) && (__CM3_REV >= 0x200))
- __IO uint32_t ACTLR; /*!< Auxiliary Control Register */
-#else
- uint32_t RESERVED1;
-#endif
-} InterruptType_Type;
-
-
-/* Memory Protection Unit */
-#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1)
-typedef struct
-{
- __I uint32_t TYPE; /*!< MPU Type Register */
- __IO uint32_t CTRL; /*!< MPU Control Register */
- __IO uint32_t RNR; /*!< MPU Region RNRber Register */
- __IO uint32_t RBAR; /*!< MPU Region Base Address Register */
- __IO uint32_t RASR; /*!< MPU Region Attribute and Size Register */
- __IO uint32_t RBAR_A1; /*!< MPU Alias 1 Region Base Address Register */
- __IO uint32_t RASR_A1; /*!< MPU Alias 1 Region Attribute and Size Register */
- __IO uint32_t RBAR_A2; /*!< MPU Alias 2 Region Base Address Register */
- __IO uint32_t RASR_A2; /*!< MPU Alias 2 Region Attribute and Size Register */
- __IO uint32_t RBAR_A3; /*!< MPU Alias 3 Region Base Address Register */
- __IO uint32_t RASR_A3; /*!< MPU Alias 3 Region Attribute and Size Register */
-} MPU_Type;
-#endif
-
-
-/* Core Debug Register */
-typedef struct
-{
- __IO uint32_t DHCSR; /*!< Debug Halting Control and Status Register */
- __O uint32_t DCRSR; /*!< Debug Core Register Selector Register */
- __IO uint32_t DCRDR; /*!< Debug Core Register Data Register */
- __IO uint32_t DEMCR; /*!< Debug Exception and Monitor Control Register */
-} CoreDebug_Type;
-
-
-/* Memory mapping of Cortex-M3 Hardware */
-#define SCS_BASE (0xE000E000) /*!< System Control Space Base Address */
-#define ITM_BASE (0xE0000000) /*!< ITM Base Address */
-#define CoreDebug_BASE (0xE000EDF0) /*!< Core Debug Base Address */
-#define SysTick_BASE (SCS_BASE + 0x0010) /*!< SysTick Base Address */
-#define NVIC_BASE (SCS_BASE + 0x0100) /*!< NVIC Base Address */
-#define SCB_BASE (SCS_BASE + 0x0D00) /*!< System Control Block Base Address */
-
-#define InterruptType ((InterruptType_Type *) SCS_BASE) /*!< Interrupt Type Register */
-#define SCB ((SCB_Type *) SCB_BASE) /*!< SCB configuration struct */
-#define SysTick ((SysTick_Type *) SysTick_BASE) /*!< SysTick configuration struct */
-#define NVIC ((NVIC_Type *) NVIC_BASE) /*!< NVIC configuration struct */
-#define ITM ((ITM_Type *) ITM_BASE) /*!< ITM configuration struct */
-#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */
-
-#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1)
- #define MPU_BASE (SCS_BASE + 0x0D90) /*!< Memory Protection Unit */
- #define MPU ((MPU_Type*) MPU_BASE) /*!< Memory Protection Unit */
-#endif
-
-
-
-/*******************************************************************************
- * Hardware Abstraction Layer
- ******************************************************************************/
-
-
-#if defined ( __CC_ARM )
- #define __ASM __asm /*!< asm keyword for ARM Compiler */
- #define __INLINE __inline /*!< inline keyword for ARM Compiler */
-
-#elif defined ( __ICCARM__ )
- #define __ASM __asm /*!< asm keyword for IAR Compiler */
- #define __INLINE inline /*!< inline keyword for IAR Compiler. Only avaiable in High optimization mode! */
-
-#elif defined ( __GNUC__ )
- #define __ASM __asm /*!< asm keyword for GNU Compiler */
- #define __INLINE inline /*!< inline keyword for GNU Compiler */
-
-#elif defined ( __TASKING__ )
- #define __ASM __asm /*!< asm keyword for TASKING Compiler */
- #define __INLINE inline /*!< inline keyword for TASKING Compiler */
-
-#endif
-
-
-/* ################### Compiler specific Intrinsics ########################### */
-
-#if defined ( __CC_ARM ) /*------------------RealView Compiler -----------------*/
-/* ARM armcc specific functions */
-
-#define __enable_fault_irq __enable_fiq
-#define __disable_fault_irq __disable_fiq
-
-#define __NOP __nop
-#define __WFI __wfi
-#define __WFE __wfe
-#define __SEV __sev
-#define __ISB() __isb(0)
-#define __DSB() __dsb(0)
-#define __DMB() __dmb(0)
-#define __REV __rev
-#define __RBIT __rbit
-#define __LDREXB(ptr) ((unsigned char ) __ldrex(ptr))
-#define __LDREXH(ptr) ((unsigned short) __ldrex(ptr))
-#define __LDREXW(ptr) ((unsigned int ) __ldrex(ptr))
-#define __STREXB(value, ptr) __strex(value, ptr)
-#define __STREXH(value, ptr) __strex(value, ptr)
-#define __STREXW(value, ptr) __strex(value, ptr)
-
-
-/* intrinsic unsigned long long __ldrexd(volatile void *ptr) */
-/* intrinsic int __strexd(unsigned long long val, volatile void *ptr) */
-/* intrinsic void __enable_irq(); */
-/* intrinsic void __disable_irq(); */
-
-
-/**
- * @brief Return the Process Stack Pointer
- *
- * @param none
- * @return uint32_t ProcessStackPointer
- *
- * Return the actual process stack pointer
- */
-extern uint32_t __get_PSP(void);
-
-/**
- * @brief Set the Process Stack Pointer
- *
- * @param uint32_t Process Stack Pointer
- * @return none
- *
- * Assign the value ProcessStackPointer to the MSP
- * (process stack pointer) Cortex processor register
- */
-extern void __set_PSP(uint32_t topOfProcStack);
-
-/**
- * @brief Return the Main Stack Pointer
- *
- * @param none
- * @return uint32_t Main Stack Pointer
- *
- * Return the current value of the MSP (main stack pointer)
- * Cortex processor register
- */
-extern uint32_t __get_MSP(void);
-
-/**
- * @brief Set the Main Stack Pointer
- *
- * @param uint32_t Main Stack Pointer
- * @return none
- *
- * Assign the value mainStackPointer to the MSP
- * (main stack pointer) Cortex processor register
- */
-extern void __set_MSP(uint32_t topOfMainStack);
-
-/**
- * @brief Reverse byte order in unsigned short value
- *
- * @param uint16_t value to reverse
- * @return uint32_t reversed value
- *
- * Reverse byte order in unsigned short value
- */
-extern uint32_t __REV16(uint16_t value);
-
-/*
- * @brief Reverse byte order in signed short value with sign extension to integer
- *
- * @param int16_t value to reverse
- * @return int32_t reversed value
- *
- * Reverse byte order in signed short value with sign extension to integer
- */
-extern int32_t __REVSH(int16_t value);
-
-
-#if (__ARMCC_VERSION < 400000)
-
-/**
- * @brief Remove the exclusive lock created by ldrex
- *
- * @param none
- * @return none
- *
- * Removes the exclusive lock which is created by ldrex.
- */
-extern void __CLREX(void);
-
-/**
- * @brief Return the Base Priority value
- *
- * @param none
- * @return uint32_t BasePriority
- *
- * Return the content of the base priority register
- */
-extern uint32_t __get_BASEPRI(void);
-
-/**
- * @brief Set the Base Priority value
- *
- * @param uint32_t BasePriority
- * @return none
- *
- * Set the base priority register
- */
-extern void __set_BASEPRI(uint32_t basePri);
-
-/**
- * @brief Return the Priority Mask value
- *
- * @param none
- * @return uint32_t PriMask
- *
- * Return the state of the priority mask bit from the priority mask
- * register
- */
-extern uint32_t __get_PRIMASK(void);
-
-/**
- * @brief Set the Priority Mask value
- *
- * @param uint32_t PriMask
- * @return none
- *
- * Set the priority mask bit in the priority mask register
- */
-extern void __set_PRIMASK(uint32_t priMask);
-
-/**
- * @brief Return the Fault Mask value
- *
- * @param none
- * @return uint32_t FaultMask
- *
- * Return the content of the fault mask register
- */
-extern uint32_t __get_FAULTMASK(void);
-
-/**
- * @brief Set the Fault Mask value
- *
- * @param uint32_t faultMask value
- * @return none
- *
- * Set the fault mask register
- */
-extern void __set_FAULTMASK(uint32_t faultMask);
-
-/**
- * @brief Return the Control Register value
- *
- * @param none
- * @return uint32_t Control value
- *
- * Return the content of the control register
- */
-extern uint32_t __get_CONTROL(void);
-
-/**
- * @brief Set the Control Register value
- *
- * @param uint32_t Control value
- * @return none
- *
- * Set the control register
- */
-extern void __set_CONTROL(uint32_t control);
-
-#else /* (__ARMCC_VERSION >= 400000) */
-
-
-/**
- * @brief Remove the exclusive lock created by ldrex
- *
- * @param none
- * @return none
- *
- * Removes the exclusive lock which is created by ldrex.
- */
-#define __CLREX __clrex
-
-/**
- * @brief Return the Base Priority value
- *
- * @param none
- * @return uint32_t BasePriority
- *
- * Return the content of the base priority register
- */
-static __INLINE uint32_t __get_BASEPRI(void)
-{
- register uint32_t __regBasePri __ASM("basepri");
- return(__regBasePri);
-}
-
-/**
- * @brief Set the Base Priority value
- *
- * @param uint32_t BasePriority
- * @return none
- *
- * Set the base priority register
- */
-static __INLINE void __set_BASEPRI(uint32_t basePri)
-{
- register uint32_t __regBasePri __ASM("basepri");
- __regBasePri = (basePri & 0x1ff);
-}
-
-/**
- * @brief Return the Priority Mask value
- *
- * @param none
- * @return uint32_t PriMask
- *
- * Return the state of the priority mask bit from the priority mask
- * register
- */
-static __INLINE uint32_t __get_PRIMASK(void)
-{
- register uint32_t __regPriMask __ASM("primask");
- return(__regPriMask);
-}
-
-/**
- * @brief Set the Priority Mask value
- *
- * @param uint32_t PriMask
- * @return none
- *
- * Set the priority mask bit in the priority mask register
- */
-static __INLINE void __set_PRIMASK(uint32_t priMask)
-{
- register uint32_t __regPriMask __ASM("primask");
- __regPriMask = (priMask);
-}
-
-/**
- * @brief Return the Fault Mask value
- *
- * @param none
- * @return uint32_t FaultMask
- *
- * Return the content of the fault mask register
- */
-static __INLINE uint32_t __get_FAULTMASK(void)
-{
- register uint32_t __regFaultMask __ASM("faultmask");
- return(__regFaultMask);
-}
-
-/**
- * @brief Set the Fault Mask value
- *
- * @param uint32_t faultMask value
- * @return none
- *
- * Set the fault mask register
- */
-static __INLINE void __set_FAULTMASK(uint32_t faultMask)
-{
- register uint32_t __regFaultMask __ASM("faultmask");
- __regFaultMask = (faultMask & 1);
-}
-
-/**
- * @brief Return the Control Register value
- *
- * @param none
- * @return uint32_t Control value
- *
- * Return the content of the control register
- */
-static __INLINE uint32_t __get_CONTROL(void)
-{
- register uint32_t __regControl __ASM("control");
- return(__regControl);
-}
-
-/**
- * @brief Set the Control Register value
- *
- * @param uint32_t Control value
- * @return none
- *
- * Set the control register
- */
-static __INLINE void __set_CONTROL(uint32_t control)
-{
- register uint32_t __regControl __ASM("control");
- __regControl = control;
-}
-
-#endif /* __ARMCC_VERSION */
-
-
-
-#elif (defined (__ICCARM__)) /*------------------ ICC Compiler -------------------*/
-/* IAR iccarm specific functions */
-
-#define __enable_irq __enable_interrupt /*!< global Interrupt enable */
-#define __disable_irq __disable_interrupt /*!< global Interrupt disable */
-
-static __INLINE void __enable_fault_irq() { __ASM ("cpsie f"); }
-static __INLINE void __disable_fault_irq() { __ASM ("cpsid f"); }
-
-#define __NOP __no_operation() /*!< no operation intrinsic in IAR Compiler */
-static __INLINE void __WFI() { __ASM ("wfi"); }
-static __INLINE void __WFE() { __ASM ("wfe"); }
-static __INLINE void __SEV() { __ASM ("sev"); }
-static __INLINE void __CLREX() { __ASM ("clrex"); }
-
-/* intrinsic void __ISB(void) */
-/* intrinsic void __DSB(void) */
-/* intrinsic void __DMB(void) */
-/* intrinsic void __set_PRIMASK(); */
-/* intrinsic void __get_PRIMASK(); */
-/* intrinsic void __set_FAULTMASK(); */
-/* intrinsic void __get_FAULTMASK(); */
-/* intrinsic uint32_t __REV(uint32_t value); */
-/* intrinsic uint32_t __REVSH(uint32_t value); */
-/* intrinsic unsigned long __STREX(unsigned long, unsigned long); */
-/* intrinsic unsigned long __LDREX(unsigned long *); */
-
-
-/**
- * @brief Return the Process Stack Pointer
- *
- * @param none
- * @return uint32_t ProcessStackPointer
- *
- * Return the actual process stack pointer
- */
-extern uint32_t __get_PSP(void);
-
-/**
- * @brief Set the Process Stack Pointer
- *
- * @param uint32_t Process Stack Pointer
- * @return none
- *
- * Assign the value ProcessStackPointer to the MSP
- * (process stack pointer) Cortex processor register
- */
-extern void __set_PSP(uint32_t topOfProcStack);
-
-/**
- * @brief Return the Main Stack Pointer
- *
- * @param none
- * @return uint32_t Main Stack Pointer
- *
- * Return the current value of the MSP (main stack pointer)
- * Cortex processor register
- */
-extern uint32_t __get_MSP(void);
-
-/**
- * @brief Set the Main Stack Pointer
- *
- * @param uint32_t Main Stack Pointer
- * @return none
- *
- * Assign the value mainStackPointer to the MSP
- * (main stack pointer) Cortex processor register
- */
-extern void __set_MSP(uint32_t topOfMainStack);
-
-/**
- * @brief Reverse byte order in unsigned short value
- *
- * @param uint16_t value to reverse
- * @return uint32_t reversed value
- *
- * Reverse byte order in unsigned short value
- */
-extern uint32_t __REV16(uint16_t value);
-
-/**
- * @brief Reverse bit order of value
- *
- * @param uint32_t value to reverse
- * @return uint32_t reversed value
- *
- * Reverse bit order of value
- */
-extern uint32_t __RBIT(uint32_t value);
-
-/**
- * @brief LDR Exclusive
- *
- * @param uint8_t* address
- * @return uint8_t value of (*address)
- *
- * Exclusive LDR command
- */
-extern uint8_t __LDREXB(uint8_t *addr);
-
-/**
- * @brief LDR Exclusive
- *
- * @param uint16_t* address
- * @return uint16_t value of (*address)
- *
- * Exclusive LDR command
- */
-extern uint16_t __LDREXH(uint16_t *addr);
-
-/**
- * @brief LDR Exclusive
- *
- * @param uint32_t* address
- * @return uint32_t value of (*address)
- *
- * Exclusive LDR command
- */
-extern uint32_t __LDREXW(uint32_t *addr);
-
-/**
- * @brief STR Exclusive
- *
- * @param uint8_t *address
- * @param uint8_t value to store
- * @return uint32_t successful / failed
- *
- * Exclusive STR command
- */
-extern uint32_t __STREXB(uint8_t value, uint8_t *addr);
-
-/**
- * @brief STR Exclusive
- *
- * @param uint16_t *address
- * @param uint16_t value to store
- * @return uint32_t successful / failed
- *
- * Exclusive STR command
- */
-extern uint32_t __STREXH(uint16_t value, uint16_t *addr);
-
-/**
- * @brief STR Exclusive
- *
- * @param uint32_t *address
- * @param uint32_t value to store
- * @return uint32_t successful / failed
- *
- * Exclusive STR command
- */
-extern uint32_t __STREXW(uint32_t value, uint32_t *addr);
-
-
-
-#elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/
-/* GNU gcc specific functions */
-
-static __INLINE void __enable_irq() { __ASM volatile ("cpsie i"); }
-static __INLINE void __disable_irq() { __ASM volatile ("cpsid i"); }
-
-static __INLINE void __enable_fault_irq() { __ASM volatile ("cpsie f"); }
-static __INLINE void __disable_fault_irq() { __ASM volatile ("cpsid f"); }
-
-static __INLINE void __NOP() { __ASM volatile ("nop"); }
-static __INLINE void __WFI() { __ASM volatile ("wfi"); }
-static __INLINE void __WFE() { __ASM volatile ("wfe"); }
-static __INLINE void __SEV() { __ASM volatile ("sev"); }
-static __INLINE void __ISB() { __ASM volatile ("isb"); }
-static __INLINE void __DSB() { __ASM volatile ("dsb"); }
-static __INLINE void __DMB() { __ASM volatile ("dmb"); }
-static __INLINE void __CLREX() { __ASM volatile ("clrex"); }
-
-
-/**
- * @brief Return the Process Stack Pointer
- *
- * @param none
- * @return uint32_t ProcessStackPointer
- *
- * Return the actual process stack pointer
- */
-extern uint32_t __get_PSP(void);
-
-/**
- * @brief Set the Process Stack Pointer
- *
- * @param uint32_t Process Stack Pointer
- * @return none
- *
- * Assign the value ProcessStackPointer to the MSP
- * (process stack pointer) Cortex processor register
- */
-extern void __set_PSP(uint32_t topOfProcStack);
-
-/**
- * @brief Return the Main Stack Pointer
- *
- * @param none
- * @return uint32_t Main Stack Pointer
- *
- * Return the current value of the MSP (main stack pointer)
- * Cortex processor register
- */
-extern uint32_t __get_MSP(void);
-
-/**
- * @brief Set the Main Stack Pointer
- *
- * @param uint32_t Main Stack Pointer
- * @return none
- *
- * Assign the value mainStackPointer to the MSP
- * (main stack pointer) Cortex processor register
- */
-extern void __set_MSP(uint32_t topOfMainStack);
-
-/**
- * @brief Return the Base Priority value
- *
- * @param none
- * @return uint32_t BasePriority
- *
- * Return the content of the base priority register
- */
-extern uint32_t __get_BASEPRI(void);
-
-/**
- * @brief Set the Base Priority value
- *
- * @param uint32_t BasePriority
- * @return none
- *
- * Set the base priority register
- */
-extern void __set_BASEPRI(uint32_t basePri);
-
-/**
- * @brief Return the Priority Mask value
- *
- * @param none
- * @return uint32_t PriMask
- *
- * Return the state of the priority mask bit from the priority mask
- * register
- */
-extern uint32_t __get_PRIMASK(void);
-
-/**
- * @brief Set the Priority Mask value
- *
- * @param uint32_t PriMask
- * @return none
- *
- * Set the priority mask bit in the priority mask register
- */
-extern void __set_PRIMASK(uint32_t priMask);
-
-/**
- * @brief Return the Fault Mask value
- *
- * @param none
- * @return uint32_t FaultMask
- *
- * Return the content of the fault mask register
- */
-extern uint32_t __get_FAULTMASK(void);
-
-/**
- * @brief Set the Fault Mask value
- *
- * @param uint32_t faultMask value
- * @return none
- *
- * Set the fault mask register
- */
-extern void __set_FAULTMASK(uint32_t faultMask);
-
-/**
- * @brief Return the Control Register value
-*
-* @param none
-* @return uint32_t Control value
- *
- * Return the content of the control register
- */
-extern uint32_t __get_CONTROL(void);
-
-/**
- * @brief Set the Control Register value
- *
- * @param uint32_t Control value
- * @return none
- *
- * Set the control register
- */
-extern void __set_CONTROL(uint32_t control);
-
-/**
- * @brief Reverse byte order in integer value
- *
- * @param uint32_t value to reverse
- * @return uint32_t reversed value
- *
- * Reverse byte order in integer value
- */
-extern uint32_t __REV(uint32_t value);
-
-/**
- * @brief Reverse byte order in unsigned short value
- *
- * @param uint16_t value to reverse
- * @return uint32_t reversed value
- *
- * Reverse byte order in unsigned short value
- */
-extern uint32_t __REV16(uint16_t value);
-
-/*
- * Reverse byte order in signed short value with sign extension to integer
- *
- * @param int16_t value to reverse
- * @return int32_t reversed value
- *
- * @brief Reverse byte order in signed short value with sign extension to integer
- */
-extern int32_t __REVSH(int16_t value);
-
-/**
- * @brief Reverse bit order of value
- *
- * @param uint32_t value to reverse
- * @return uint32_t reversed value
- *
- * Reverse bit order of value
- */
-extern uint32_t __RBIT(uint32_t value);
-
-/**
- * @brief LDR Exclusive
- *
- * @param uint8_t* address
- * @return uint8_t value of (*address)
- *
- * Exclusive LDR command
- */
-extern uint8_t __LDREXB(uint8_t *addr);
-
-/**
- * @brief LDR Exclusive
- *
- * @param uint16_t* address
- * @return uint16_t value of (*address)
- *
- * Exclusive LDR command
- */
-extern uint16_t __LDREXH(uint16_t *addr);
-
-/**
- * @brief LDR Exclusive
- *
- * @param uint32_t* address
- * @return uint32_t value of (*address)
- *
- * Exclusive LDR command
- */
-extern uint32_t __LDREXW(uint32_t *addr);
-
-/**
- * @brief STR Exclusive
- *
- * @param uint8_t *address
- * @param uint8_t value to store
- * @return uint32_t successful / failed
- *
- * Exclusive STR command
- */
-extern uint32_t __STREXB(uint8_t value, uint8_t *addr);
-
-/**
- * @brief STR Exclusive
- *
- * @param uint16_t *address
- * @param uint16_t value to store
- * @return uint32_t successful / failed
- *
- * Exclusive STR command
- */
-extern uint32_t __STREXH(uint16_t value, uint16_t *addr);
-
-/**
- * @brief STR Exclusive
- *
- * @param uint32_t *address
- * @param uint32_t value to store
- * @return uint32_t successful / failed
- *
- * Exclusive STR command
- */
-extern uint32_t __STREXW(uint32_t value, uint32_t *addr);
-
-
-#elif (defined (__TASKING__)) /*------------------ TASKING Compiler ---------------------*/
-/* TASKING carm specific functions */
-
-/*
- * The CMSIS functions have been implemented as intrinsics in the compiler.
- * Please use "carm -?i" to get an up to date list of all instrinsics,
- * Including the CMSIS ones.
- */
-
-#endif
-
-
-
-/* ########################## NVIC functions #################################### */
-
-
-/**
- * @brief Set the Priority Grouping in NVIC Interrupt Controller
- *
- * @param uint32_t priority_grouping is priority grouping field
- * @return none
- *
- * Set the priority grouping field using the required unlock sequence.
- * The parameter priority_grouping is assigned to the field
- * SCB->AIRCR [10:8] PRIGROUP field. Only values from 0..7 are used.
- * In case of a conflict between priority grouping and available
- * priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set.
- */
-static __INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
-{
- uint32_t reg_value;
- uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */
-
- reg_value = SCB->AIRCR; /* read old register configuration */
- reg_value &= ~((0xFFFFU << 16) | (0x0F << 8)); /* clear bits to change */
- reg_value = ((reg_value | NVIC_AIRCR_VECTKEY | (PriorityGroupTmp << 8))); /* Insert write key and priorty group */
- SCB->AIRCR = reg_value;
-}
-
-/**
- * @brief Get the Priority Grouping from NVIC Interrupt Controller
- *
- * @param none
- * @return uint32_t priority grouping field
- *
- * Get the priority grouping from NVIC Interrupt Controller.
- * priority grouping is SCB->AIRCR [10:8] PRIGROUP field.
- */
-static __INLINE uint32_t NVIC_GetPriorityGrouping(void)
-{
- return ((SCB->AIRCR >> 8) & 0x07); /* read priority grouping field */
-}
-
-/**
- * @brief Enable Interrupt in NVIC Interrupt Controller
- *
- * @param IRQn_Type IRQn specifies the interrupt number
- * @return none
- *
- * Enable a device specific interupt in the NVIC interrupt controller.
- * The interrupt number cannot be a negative value.
- */
-static __INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)
-{
- NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* enable interrupt */
-}
-
-/**
- * @brief Disable the interrupt line for external interrupt specified
- *
- * @param IRQn_Type IRQn is the positive number of the external interrupt
- * @return none
- *
- * Disable a device specific interupt in the NVIC interrupt controller.
- * The interrupt number cannot be a negative value.
- */
-static __INLINE void NVIC_DisableIRQ(IRQn_Type IRQn)
-{
- NVIC->ICER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* disable interrupt */
-}
-
-/**
- * @brief Read the interrupt pending bit for a device specific interrupt source
- *
- * @param IRQn_Type IRQn is the number of the device specifc interrupt
- * @return uint32_t 1 if pending interrupt else 0
- *
- * Read the pending register in NVIC and return 1 if its status is pending,
- * otherwise it returns 0
- */
-static __INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn)
-{
- return((uint32_t) ((NVIC->ISPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0)); /* Return 1 if pending else 0 */
-}
-
-/**
- * @brief Set the pending bit for an external interrupt
- *
- * @param IRQn_Type IRQn is the Number of the interrupt
- * @return none
- *
- * Set the pending bit for the specified interrupt.
- * The interrupt number cannot be a negative value.
- */
-static __INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn)
-{
- NVIC->ISPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* set interrupt pending */
-}
-
-/**
- * @brief Clear the pending bit for an external interrupt
- *
- * @param IRQn_Type IRQn is the Number of the interrupt
- * @return none
- *
- * Clear the pending bit for the specified interrupt.
- * The interrupt number cannot be a negative value.
- */
-static __INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn)
-{
- NVIC->ICPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */
-}
-
-/**
- * @brief Read the active bit for an external interrupt
- *
- * @param IRQn_Type IRQn is the Number of the interrupt
- * @return uint32_t 1 if active else 0
- *
- * Read the active register in NVIC and returns 1 if its status is active,
- * otherwise it returns 0.
- */
-static __INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn)
-{
- return((uint32_t)((NVIC->IABR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0)); /* Return 1 if active else 0 */
-}
-
-/**
- * @brief Set the priority for an interrupt
- *
- * @param IRQn_Type IRQn is the Number of the interrupt
- * @param priority is the priority for the interrupt
- * @return none
- *
- * Set the priority for the specified interrupt. The interrupt
- * number can be positive to specify an external (device specific)
- * interrupt, or negative to specify an internal (core) interrupt. \n
- *
- * Note: The priority cannot be set for every core interrupt.
- */
-static __INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
-{
- if(IRQn < 0) {
- SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for Cortex-M3 System Interrupts */
- else {
- NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for device specific Interrupts */
-}
-
-/**
- * @brief Read the priority for an interrupt
- *
- * @param IRQn_Type IRQn is the Number of the interrupt
- * @return uint32_t priority is the priority for the interrupt
- *
- * Read the priority for the specified interrupt. The interrupt
- * number can be positive to specify an external (device specific)
- * interrupt, or negative to specify an internal (core) interrupt.
- *
- * The returned priority value is automatically aligned to the implemented
- * priority bits of the microcontroller.
- *
- * Note: The priority cannot be set for every core interrupt.
- */
-static __INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn)
-{
-
- if(IRQn < 0) {
- return((uint32_t)(SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] >> (8 - __NVIC_PRIO_BITS))); } /* get priority for Cortex-M3 system interrupts */
- else {
- return((uint32_t)(NVIC->IP[(uint32_t)(IRQn)] >> (8 - __NVIC_PRIO_BITS))); } /* get priority for device specific interrupts */
-}
-
-
-/**
- * @brief Encode the priority for an interrupt
- *
- * @param uint32_t PriorityGroup is the used priority group
- * @param uint32_t PreemptPriority is the preemptive priority value (starting from 0)
- * @param uint32_t SubPriority is the sub priority value (starting from 0)
- * @return uint32_t the priority for the interrupt
- *
- * Encode the priority for an interrupt with the given priority group,
- * preemptive priority value and sub priority value.
- * In case of a conflict between priority grouping and available
- * priority bits (__NVIC_PRIO_BITS) the samllest possible priority group is set.
- *
- * The returned priority value can be used for NVIC_SetPriority(...) function
- */
-static __INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority)
-{
- uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */
- uint32_t PreemptPriorityBits;
- uint32_t SubPriorityBits;
-
- PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp;
- SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS;
-
- return (
- ((PreemptPriority & ((1 << (PreemptPriorityBits)) - 1)) << SubPriorityBits) |
- ((SubPriority & ((1 << (SubPriorityBits )) - 1)))
- );
-}
-
-
-/**
- * @brief Decode the priority of an interrupt
- *
- * @param uint32_t Priority the priority for the interrupt
- * @param uint32_t PrioGroup is the used priority group
- * @param uint32_t* pPreemptPrio is the preemptive priority value (starting from 0)
- * @param uint32_t* pSubPrio is the sub priority value (starting from 0)
- * @return none
- *
- * Decode an interrupt priority value with the given priority group to
- * preemptive priority value and sub priority value.
- * In case of a conflict between priority grouping and available
- * priority bits (__NVIC_PRIO_BITS) the samllest possible priority group is set.
- *
- * The priority value can be retrieved with NVIC_GetPriority(...) function
- */
-static __INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* pPreemptPriority, uint32_t* pSubPriority)
-{
- uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */
- uint32_t PreemptPriorityBits;
- uint32_t SubPriorityBits;
-
- PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp;
- SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS;
-
- *pPreemptPriority = (Priority >> SubPriorityBits) & ((1 << (PreemptPriorityBits)) - 1);
- *pSubPriority = (Priority ) & ((1 << (SubPriorityBits )) - 1);
-}
-
-
-
-/* ################################## SysTick function ############################################ */
-
-#if (!defined (__Vendor_SysTickConfig)) || (__Vendor_SysTickConfig == 0)
-
-/* SysTick constants */
-#define SYSTICK_ENABLE 0 /* Config-Bit to start or stop the SysTick Timer */
-#define SYSTICK_TICKINT 1 /* Config-Bit to enable or disable the SysTick interrupt */
-#define SYSTICK_CLKSOURCE 2 /* Clocksource has the offset 2 in SysTick Control and Status Register */
-#define SYSTICK_MAXCOUNT ((1<<24) -1) /* SysTick MaxCount */
-
-/**
- * @brief Initialize and start the SysTick counter and its interrupt.
- *
- * @param uint32_t ticks is the number of ticks between two interrupts
- * @return none
- *
- * Initialise the system tick timer and its interrupt and start the
- * system tick timer / counter in free running mode to generate
- * periodical interrupts.
- */
-static __INLINE uint32_t SysTick_Config(uint32_t ticks)
-{
- if (ticks > SYSTICK_MAXCOUNT) return (1); /* Reload value impossible */
-
- SysTick->LOAD = (ticks & SYSTICK_MAXCOUNT) - 1; /* set reload register */
- NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1); /* set Priority for Cortex-M0 System Interrupts */
- SysTick->VAL = (0x00); /* Load the SysTick Counter Value */
- SysTick->CTRL = (1 << SYSTICK_CLKSOURCE) | (1<AIRCR = (NVIC_AIRCR_VECTKEY | (SCB->AIRCR & (0x700)) | (1<DEMCR & CoreDebug_DEMCR_TRCENA) &&
- (ITM->TCR & ITM_TCR_ITMENA) &&
- (ITM->TER & (1UL << 0)) )
- {
- while (ITM->PORT[0].u32 == 0);
- ITM->PORT[0].u8 = (uint8_t) ch;
- }
- return (ch);
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __CM3_CORE_H__ */
-
-/*lint -restore */
diff --git a/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.cspy.bat b/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.cspy.bat
index c96471c07..597d84d1a 100644
--- a/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.cspy.bat
+++ b/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.cspy.bat
@@ -1,33 +1,15 @@
-@REM This bat file has been generated by the IAR Embeddded Workbench
-@REM C-SPY interactive debugger,as an aid to preparing a command
-@REM line for running the cspybat command line utility with the
-@REM appropriate settings.
+@REM This batch file has been generated by the IAR Embedded Workbench
+@REM C-SPY Debugger, as an aid to preparing a command line for running
+@REM the cspybat command line utility using the appropriate settings.
@REM
-@REM After making some adjustments to this file, you can launch cspybat
-@REM by typing the name of this file followed by the name of the debug
-@REM file (usually an ubrof file). Note that this file is generated
-@REM every time a new debug session is initialized, so you may want to
-@REM move or rename the file before making changes.
-@REM
-@REM Note: some command line arguments cannot be properly generated
-@REM by this process. Specifically, the plugin which is responsible
-@REM for the Terminal I/O window (and other C runtime functionality)
-@REM comes in a special version for cspybat, and the name of that
-@REM plugin dll is not known when generating this file. It resides in
-@REM the $TOOLKIT_DIR$\bin folder and is usually called XXXbat.dll or
-@REM XXXlibsupportbat.dll, where XXX is the name of the corresponding
-@REM tool chain. Replace the '' parameter
-@REM below with the appropriate file name. Other plugins loaded by
-@REM C-SPY are usually not needed by, or will not work in, cspybat
-@REM but they are listed at the end of this file for reference.
+@REM You can launch cspybat by typing the name of this batch file followed
+@REM by the name of the debug file (usually an ELF/DWARF or UBROF file).
+@REM Note that this file is generated every time a new debug session
+@REM is initialized, so you may want to move or rename the file before
+@REM making changes.
+@REM
-"C:\devtools\IAR Systems\Embedded Workbench 5.4\common\bin\cspybat" "C:\devtools\IAR Systems\Embedded Workbench 5.4\arm\bin\armproc.dll" "C:\devtools\IAR Systems\Embedded Workbench 5.4\arm\bin\armjlink.dll" %1 --plugin "C:\devtools\IAR Systems\Embedded Workbench 5.4\arm\bin\" --macro "C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\Flash.mac" --backend -B "--endian=little" "--cpu=Cortex-M3" "--fpu=None" "-p" "C:\devtools\IAR Systems\Embedded Workbench 5.4\arm\CONFIG\debugger\NXP\iolpc1768.ddf" "--drv_verify_download" "--semihosting=none" "--device=LPC1768" "-d" "jlink" "--drv_communication=USB0" "--jlink_speed=auto" "--jlink_initial_speed=32" "--jlink_reset_strategy=0,0"
+"C:\devtools\IAR Systems\Embedded Workbench 6.0\common\bin\cspybat" "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\bin\armproc.dll" "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\bin\armjlink.dll" %1 --plugin "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\bin\armbat.dll" --macro "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\CORTEX_LPC1768_IAR\Flash.mac" --flash_loader "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\config\flashloader\NXP\FlashNXPLPC512K_Cortex.board" --backend -B "--endian=little" "--cpu=Cortex-M3" "--fpu=None" "-p" "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\CONFIG\debugger\NXP\iolpc1768.ddf" "--drv_verify_download" "--semihosting=none" "--device=LPC1768" "--drv_communication=USB0" "--jlink_speed=auto" "--jlink_initial_speed=32" "--jlink_reset_strategy=0,0" "--drv_catch_exceptions=0x000" "--drv_swo_clock_setup=72000000,0,2000000"
-@REM Loaded plugins:
-@REM C:\devtools\IAR Systems\Embedded Workbench 5.4\arm\bin\armlibsupport.dll
-@REM C:\devtools\IAR Systems\Embedded Workbench 5.4\common\plugins\CodeCoverage\CodeCoverage.dll
-@REM C:\devtools\IAR Systems\Embedded Workbench 5.4\common\plugins\Profiling\Profiling.dll
-@REM C:\devtools\IAR Systems\Embedded Workbench 5.4\common\plugins\stack\stack.dll
-@REM C:\devtools\IAR Systems\Embedded Workbench 5.4\common\plugins\SymList\SymList.dll
diff --git a/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.dni b/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.dni
index 1929cbebc..9c7bea544 100644
--- a/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.dni
+++ b/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.dni
@@ -19,15 +19,6 @@ UseTrigger=1
TriggerName=main
LimitSize=0
ByteLimit=50
-[Interrupts]
-Enabled=1
-[MemoryMap]
-Enabled=0
-Base=0
-UseAuto=0
-TypeViolation=1
-UnspecRange=1
-ActionState=1
[TraceHelper]
Enabled=0
ShowSource=1
@@ -42,7 +33,41 @@ LogFile=_ ""
Enabled=0
Source=2
Graph=0
+[Breakpoints]
+Count=0
+[Stack]
+FillEnabled=0
+OverflowWarningsEnabled=1
+WarningThreshold=90
+SpWarningsEnabled=1
+WarnLogOnly=1
+UseTrigger=1
+TriggerName=main
+LimitSize=0
+ByteLimit=50
+[InterruptLog]
+LogEnabled=0
+SumEnabled=0
+GraphEnabled=0
+ShowTimeLog=1
+ShowTimeSum=1
+SumSortOrder=0
+[Interrupts]
+Enabled=1
+[MemoryMap]
+Enabled=0
+Base=0
+UseAuto=0
+TypeViolation=1
+UnspecRange=1
+ActionState=1
+[Trace1]
+Enabled=0
+ShowSource=1
[Disassemble mode]
mode=0
-[Breakpoints]
+[Breakpoints2]
+Count=0
+[Aliases]
Count=0
+SuppressDialog=0
diff --git a/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.wsdt b/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.wsdt
index fdfdeb890..a54070a95 100644
--- a/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.wsdt
+++ b/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.wsdt
@@ -12,7 +12,7 @@
- 315 27 27 27
+ 393 27 27 27
@@ -53,14 +53,14 @@
- TextEditor C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\main.c 0 146 5266 5266 0 TextEditor C:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\ARM_CM3\port.c 0 145 5821 5821 TextEditor C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\ParTest.c 0 76 3467 3467 TextEditor C:\E\Dev\FreeRTOS\WorkingCopy3\Source\queue.c 0 1055 34788 34788 TextEditor C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\webserver\emac.c 0 130 5273 5273 TextEditor C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\webserver\EthDev_LPC17xx.h 0 282 17892 17902 TextEditor C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\webserver\httpd-cgi.c 0 0 0 0 TextEditor C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\FreeRTOSConfig.h 0 45 0 0 0 1000000 1000000 1
+ TextEditor $WS_DIR$\main.c 0 0 0 0 0 0 1000000 1000000 1
- iaridepm.enu1 -2 -2 640 389 -2 -2 200 200 142857 203252 279286 652439 -2 -2 300 1402 -2 -2 1404 302 1002857 306911 142857 203252
+ iaridepm.enu1 -2 -2 639 467 -2 -2 240 200 142857 203666 279167 652749 -2 -2 299 1682 -2 -2 1684 301 1002381 306517 142857 203666
diff --git a/Demo/CORTEX_STM32F103_IAR/RTOSDemo.ewd b/Demo/CORTEX_STM32F103_IAR/RTOSDemo.ewd
index 5b6128974..c9a090a58 100644
--- a/Demo/CORTEX_STM32F103_IAR/RTOSDemo.ewd
+++ b/Demo/CORTEX_STM32F103_IAR/RTOSDemo.ewd
@@ -1,7 +1,7 @@
- 1
+ 2
Debug
@@ -12,7 +12,7 @@
C-SPY
2
- 15
+ 22
1
1
@@ -45,7 +45,7 @@
MemFile
- $TOOLKIT_DIR$\CONFIG\debugger\ST\iostm32f10x.ddf
+ $TOOLKIT_DIR$\CONFIG\debugger\ST\iostm32f10xxb.ddf
RunToEnable
@@ -89,16 +89,12 @@
OCLastSavedByProductVersion
- 5.11.0.50615
+ 6.20.1.52589
OCDownloadAttachToProgram
0
-
- FlashLoaders
- ,,,,(default),
-
UseFlashLoader
1
@@ -111,6 +107,70 @@
OCBE8Slave
1
+
+ MacFile2
+
+
+
+ CDevice
+ 1
+
+
+ FlashLoadersV3
+ $TOOLKIT_DIR$\config\flashloader\ST\FlashSTM32F10xxB.board
+
+
+ OCImagesSuppressCheck1
+ 0
+
+
+ OCImagesPath1
+
+
+
+ OCImagesSuppressCheck2
+ 0
+
+
+ OCImagesPath2
+
+
+
+ OCImagesSuppressCheck3
+ 0
+
+
+ OCImagesPath3
+
+
+
+ OverrideDefFlashBoard
+ 0
+
+
+ OCImagesOffset1
+
+
+
+ OCImagesOffset2
+
+
+
+ OCImagesOffset3
+
+
+
+ OCImagesUse1
+ 0
+
+
+ OCImagesUse2
+ 0
+
+
+ OCImagesUse3
+ 0
+
@@ -222,7 +282,7 @@
IARROM_ID
2
- 0
+ 1
1
1
@@ -233,10 +293,6 @@
CRomLogFileEditB
$TOOLKIT_DIR$\cspycomm.log
-
- CRomCommunication
- 0
-
CRomCommPort
0
@@ -257,7 +313,7 @@
JLINK_ID
2
- 9
+ 13
1
1
@@ -314,8 +370,8 @@
CCUSBDevice
- 0
- 0
+ 1
+ 1
CCRDICatchReset
@@ -367,8 +423,77 @@
CCJLinkResetList
+ 5
+ 7
+
+
+ CCJLinkInterfaceCmdLine
+ 0
+
+
+ CCCatchCORERESET
+ 0
+
+
+ CCCatchMMERR
+ 0
+
+
+ CCCatchNOCPERR
+ 0
+
+
+ CCCatchCHRERR
+ 0
+
+
+ CCCatchSTATERR
+ 0
+
+
+ CCCatchBUSERR
+ 0
+
+
+ CCCatchINTERR
+ 0
+
+
+ CCCatchHARDERR
+ 0
+
+
+ CCCatchDummy
+ 0
+
+
+ OCJLinkScriptFile
+ 1
+
+
+ CCJLinkUsbSerialNo
+
+
+
+ CCTcpIpAlt
0
- 5
+ 0
+
+
+ CCJLinkTcpIpSerialNo
+
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
@@ -376,7 +501,7 @@
LMIFTDI_ID
2
- 1
+ 2
1
1
@@ -395,13 +520,21 @@
CCLmiftdiLogFile
$TOOLKIT_DIR$\cspycomm.log
+
+ CCLmiFtdiInterfaceRadio
+ 0
+
+
+ CCLmiFtdiInterfaceCmdLine
+ 0
+
MACRAIGOR_ID
2
- 2
+ 3
1
1
@@ -476,13 +609,85 @@
CCJTagUpdateBreakpoints
main
+
+ CCMacraigorInterfaceRadio
+ 0
+
+
+ CCMacraigorInterfaceCmdLine
+ 0
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 0
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ OCPEMicroAttachSlave
+ 1
+
+
+ CCPEMicroInterfaceList
+ 0
+ 0
+
+
+ CCPEMicroResetDelay
+
+
+
+ CCPEMicroJtagSpeed
+ #UNINITIALIZED#
+
+
+ CCJPEMicroShowSettings
+ 0
+
+
+ DoLogfile
+ 0
+
+
+ LogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CCPEMicroUSBDevice
+ 0
+ 0
+
+
+ CCPEMicroSerialPort
+ 0
+ 0
+
+
+ CCJPEMicroTCPIPAutoScanNetwork
+ 1
+
+
+ CCPEMicroTCPIP
+ 10.0.0.1
+
+
+ CCPEMicroCommCmdLineProducer
+ 0
+
RDI_ID
2
- 1
+ 2
1
1
@@ -530,13 +735,47 @@
0
- CCRDIUseETM
- 0
+ OCDriverInfo
+ 1
+
+
+
+ STLINK_ID
+ 2
+
+ 2
+ 1
+ 1
OCDriverInfo
1
+
+ CCSTLinkInterfaceRadio
+ 0
+
+
+ CCSTLinkInterfaceCmdLine
+ 0
+
+
+ CCSTLinkResetList
+ 1
+ 0
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
@@ -566,11 +805,11 @@
- $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
0
- $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
0
@@ -578,7 +817,11 @@
0
- $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin
+ $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
0
@@ -586,7 +829,19 @@
0
- $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin
+ $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB6_Plugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin
0
@@ -598,17 +853,25 @@
0
- $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ $EW_DIR$\common\plugins\FreeRTOS\FreeRTOSPlugin.ewplugin
0
- $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin
+ $EW_DIR$\common\plugins\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
0
$EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin
0
+
+ $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin
+ 1
+
diff --git a/Demo/CORTEX_STM32F103_IAR/RTOSDemo.ewp b/Demo/CORTEX_STM32F103_IAR/RTOSDemo.ewp
index d9127ed12..b0ebcd31e 100644
--- a/Demo/CORTEX_STM32F103_IAR/RTOSDemo.ewp
+++ b/Demo/CORTEX_STM32F103_IAR/RTOSDemo.ewp
@@ -1,7 +1,7 @@
- 1
+ 2
Debug
@@ -12,7 +12,7 @@
General
3
- 14
+ 21
1
1
@@ -29,8 +29,8 @@
Variant
- 7
- 31
+ 19
+ 37
GEndianMode
@@ -38,8 +38,8 @@
Input variant
- 1
- 3
+ 3
+ 6
Input description
@@ -47,8 +47,8 @@
Output variant
- 0
- 3
+ 2
+ 7
Output description
@@ -60,7 +60,7 @@
FPU
- 0
+ 2
0
@@ -81,10 +81,6 @@
RTDescription
Use the full configuration of the C/C++ runtime library. Full locale interface, C locale, file descriptor support, multibytes in printf and scanf, and hex floats in strtod.
-
- RTConfigPath
- $TOOLKIT_DIR$\INC\DLib_Config_Full.h
-
OGProductVersion
4.41A
@@ -93,11 +89,6 @@
OGLastSavedByProductVersion
5.11.0.50615
-
- GeneralMisraRules
- 0
- 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
-
GeneralEnableMisra
0
@@ -108,7 +99,7 @@
OGChipSelectEditMenu
- STM32F10x ST STM32F10x
+ STM32F10xxB ST STM32F10xxB
GenLowLevelInterface
@@ -122,13 +113,53 @@
OGBufferedTerminalOutput
0
+
+ GenStdoutInterface
+ 0
+
+
+ GeneralMisraRules98
+ 0
+ 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
+
+
+ GeneralMisraVer
+ 0
+
+
+ GeneralMisraRules04
+ 0
+ 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+
+ RTConfigPath2
+ $TOOLKIT_DIR$\INC\c\DLib_Config_Full.h
+
+
+ GFPUCoreSlave
+ 19
+ 37
+
+
+ GBECoreSlave
+ 19
+ 37
+
+
+ OGUseCmsis
+ 0
+
+
+ OGUseCmsisDspLib
+ 0
+
ICCARM
2
- 19
+ 28
1
1
@@ -249,10 +280,6 @@
OutputFile
$FILE_BNAME$.o
-
- CCLangSelect
- 0
-
CCLibConfigHeader
1
@@ -261,11 +288,6 @@
PreInclude
-
- CompilerMisraRules
- 0
- 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
-
CompilerMisraOverride
0
@@ -281,10 +303,6 @@
CCStdIncCheck
0
-
- CCStdIncludePath
- $TOOLKIT_DIR$\INC\
-
CCCodeSection
.text
@@ -310,13 +328,75 @@
CCOptLevelSlave
1
+
+ CompilerMisraRules98
+ 0
+ 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
+
+
+ CompilerMisraRules04
+ 0
+ 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+
+ CCPosIndRopi
+ 0
+
+
+ CCPosIndRwpi
+ 0
+
+
+ CCPosIndNoDynInit
+ 0
+
+
+ IccLang
+ 0
+
+
+ IccCDialect
+ 1
+
+
+ IccAllowVLA
+ 0
+
+
+ IccCppDialect
+ 1
+
+
+ IccExceptions
+ 1
+
+
+ IccRTTI
+ 1
+
+
+ IccStaticDestr
+ 1
+
+
+ IccCppInlineSemantics
+ 1
+
+
+ IccCmsis
+ 1
+
+
+ IccFloatSemantics
+ 0
+
AARM
2
- 7
+ 8
1
1
@@ -460,10 +540,6 @@
AIgnoreStdInclude
0
-
- AStdIncludes
- $TOOLKIT_DIR$\INC\
-
AUserIncludes
$PROJ_DIR$\.
@@ -487,7 +563,7 @@
1
OOCOutputFormat
- 1
+ 2
0
@@ -533,7 +609,7 @@
ILINK
0
- 5
+ 13
1
1
@@ -676,10 +752,6 @@
IlinkProgramEntryLabel
__iar_program_start
-
- IlinkNXPLPCChecksum
- 0
-
DoFill
0
@@ -739,6 +811,66 @@
IlinkBufferedTerminalOutput
1
+
+ IlinkStdoutInterfaceSlave
+ 1
+
+
+ CrcFullSize
+ 0
+
+
+ IlinkIElfToolPostProcess
+ 0
+
+
+ IlinkLogAutoLibSelect
+ 0
+
+
+ IlinkLogRedirSymbols
+ 0
+
+
+ IlinkLogUnusedFragments
+ 0
+
+
+ IlinkCrcReverseByteOrder
+ 0
+
+
+ IlinkCrcUseAsInput
+ 1
+
+
+ IlinkOptInline
+ 0
+
+
+ IlinkOptExceptionsAllow
+ 1
+
+
+ IlinkOptExceptionsForce
+ 0
+
+
+ IlinkCmsis
+ 1
+
+
+ IlinkOptMergeDuplSections
+ 0
+
+
+ IlinkOptUseVfe
+ 1
+
+
+ IlinkOptForceVfe
+ 0
+
diff --git a/Demo/CORTEX_STM32L152_IAR/RTOSDemo.ewd b/Demo/CORTEX_STM32L152_IAR/RTOSDemo.ewd
index 91555229d..1a33452cb 100644
--- a/Demo/CORTEX_STM32L152_IAR/RTOSDemo.ewd
+++ b/Demo/CORTEX_STM32L152_IAR/RTOSDemo.ewd
@@ -89,7 +89,7 @@
OCLastSavedByProductVersion
- 6.10.1.52170
+ 6.20.1.52589
OCDownloadAttachToProgram
@@ -313,7 +313,7 @@
JLINK_ID
2
- 12
+ 13
1
1
@@ -370,8 +370,8 @@
CCUSBDevice
- 0
- 0
+ 1
+ 1
CCRDICatchReset
@@ -423,7 +423,7 @@
CCJLinkResetList
- 4
+ 5
7
@@ -470,6 +470,31 @@
OCJLinkScriptFile
1
+
+ CCJLinkUsbSerialNo
+
+
+
+ CCTcpIpAlt
+ 0
+ 0
+
+
+ CCJLinkTcpIpSerialNo
+
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
@@ -662,7 +687,7 @@
RDI_ID
2
- 1
+ 2
1
1
@@ -709,10 +734,6 @@
CCRDICatchFIQ
0
-
- CCRDIUseETM
- 0
-
OCDriverInfo
1
@@ -723,7 +744,7 @@
STLINK_ID
2
- 1
+ 2
1
1
@@ -738,6 +759,23 @@
CCSTLinkInterfaceCmdLine
0
+
+ CCSTLinkResetList
+ 1
+ 0
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
@@ -826,10 +864,6 @@
$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
0
-
- $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin
- 1
-
$EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin
1
@@ -1151,7 +1185,7 @@
JLINK_ID
2
- 12
+ 13
1
1
@@ -1208,8 +1242,8 @@
CCUSBDevice
- 0
- 0
+ 1
+ 1
CCRDICatchReset
@@ -1261,7 +1295,7 @@
CCJLinkResetList
- 4
+ 5
7
@@ -1308,6 +1342,31 @@
OCJLinkScriptFile
1
+
+ CCJLinkUsbSerialNo
+
+
+
+ CCTcpIpAlt
+ 0
+ 0
+
+
+ CCJLinkTcpIpSerialNo
+
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
@@ -1500,7 +1559,7 @@
RDI_ID
2
- 1
+ 2
1
1
@@ -1547,10 +1606,6 @@
CCRDICatchFIQ
0
-
- CCRDIUseETM
- 0
-
OCDriverInfo
1
@@ -1561,7 +1616,7 @@
STLINK_ID
2
- 1
+ 2
1
1
@@ -1576,6 +1631,23 @@
CCSTLinkInterfaceCmdLine
0
+
+ CCSTLinkResetList
+ 1
+ 0
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
@@ -1664,10 +1736,6 @@
$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
0
-
- $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin
- 1
-
$EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin
1
diff --git a/Demo/CORTEX_STM32L152_IAR/RTOSDemo.ewp b/Demo/CORTEX_STM32L152_IAR/RTOSDemo.ewp
index b87527416..eb5ca3c43 100644
--- a/Demo/CORTEX_STM32L152_IAR/RTOSDemo.ewp
+++ b/Demo/CORTEX_STM32L152_IAR/RTOSDemo.ewp
@@ -12,7 +12,7 @@
General
3
- 18
+ 21
1
1
@@ -29,7 +29,7 @@
Variant
- 17
+ 19
37
@@ -38,8 +38,8 @@
Input variant
- 1
- 3
+ 3
+ 6
Input description
@@ -47,8 +47,8 @@
Output variant
- 0
- 3
+ 2
+ 7
Output description
@@ -60,7 +60,7 @@
FPU
- 1
+ 2
0
@@ -87,7 +87,7 @@
OGLastSavedByProductVersion
- 6.10.1.52170
+ 6.20.1.52589
GeneralEnableMisra
@@ -135,13 +135,31 @@
RTConfigPath2
$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h
+
+ GFPUCoreSlave
+ 19
+ 37
+
+
+ GBECoreSlave
+ 19
+ 37
+
+
+ OGUseCmsis
+ 1
+
+
+ OGUseCmsisDspLib
+ 0
+
ICCARM
2
- 26
+ 28
1
1
@@ -366,11 +384,15 @@
1
- IccRelaxedFpPrecision
+ IccCppInlineSemantics
0
- IccCppInlineSemantics
+ IccCmsis
+ 1
+
+
+ IccFloatSemantics
0
@@ -593,7 +615,7 @@
ILINK
0
- 11
+ 13
1
1
@@ -839,6 +861,22 @@
IlinkOptExceptionsForce
0
+
+ IlinkCmsis
+ 1
+
+
+ IlinkOptMergeDuplSections
+ 0
+
+
+ IlinkOptUseVfe
+ 1
+
+
+ IlinkOptForceVfe
+ 0
+
@@ -878,7 +916,7 @@
General
3
- 18
+ 21
1
1
@@ -895,7 +933,7 @@
Variant
- 17
+ 19
37
@@ -904,8 +942,8 @@
Input variant
- 1
- 3
+ 3
+ 6
Input description
@@ -913,8 +951,8 @@
Output variant
- 0
- 3
+ 2
+ 7
Output description
@@ -926,7 +964,7 @@
FPU
- 1
+ 2
0
@@ -953,7 +991,7 @@
OGLastSavedByProductVersion
- 6.10.1.52170
+ 6.20.1.52589
GeneralEnableMisra
@@ -1001,13 +1039,31 @@
RTConfigPath2
$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h
+
+ GFPUCoreSlave
+ 19
+ 37
+
+
+ GBECoreSlave
+ 19
+ 37
+
+
+ OGUseCmsis
+ 1
+
+
+ OGUseCmsisDspLib
+ 0
+
ICCARM
2
- 26
+ 28
1
1
@@ -1232,11 +1288,15 @@
1
- IccRelaxedFpPrecision
+ IccCppInlineSemantics
0
- IccCppInlineSemantics
+ IccCmsis
+ 1
+
+
+ IccFloatSemantics
0
@@ -1459,7 +1519,7 @@
ILINK
0
- 11
+ 13
1
1
@@ -1705,6 +1765,22 @@
IlinkOptExceptionsForce
0
+
+ IlinkCmsis
+ 1
+
+
+ IlinkOptMergeDuplSections
+ 0
+
+
+ IlinkOptUseVfe
+ 1
+
+
+ IlinkOptForceVfe
+ 0
+
diff --git a/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.cspy.bat b/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.cspy.bat
index b4f2a0c75..ca27b312d 100644
--- a/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.cspy.bat
+++ b/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.cspy.bat
@@ -10,6 +10,6 @@
@REM
-"C:\devtools\IAR Systems\Embedded Workbench 6.0\common\bin\cspybat" "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\bin\armproc.dll" "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\bin\armjlink.dll" %1 --plugin "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\bin\armbat.dll" --flash_loader "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\config\flashloader\ST\FlashSTM32L15xxB.board" --backend -B "--endian=little" "--cpu=Cortex-M3" "--fpu=None" "-p" "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\CONFIG\debugger\ST\iostm32l152xx.ddf" "--semihosting" "--device=STM32L152xB" "--drv_communication=USB0" "--jlink_speed=auto" "--jlink_initial_speed=32" "--jlink_reset_strategy=0,0" "--jlink_interface=SWD" "--drv_catch_exceptions=0x000"
+"C:\devtools\IAR Systems\Embedded Workbench 6.0\common\bin\cspybat" "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\bin\armproc.dll" "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\bin\armjlink.dll" %1 --plugin "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\bin\armbat.dll" --flash_loader "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\config\flashloader\ST\FlashSTM32L15xxB.board" --backend -B "--endian=little" "--cpu=Cortex-M3" "--fpu=None" "-p" "C:\devtools\IAR Systems\Embedded Workbench 6.0\arm\CONFIG\debugger\ST\iostm32l152xx.ddf" "--semihosting" "--device=STM32L152xB" "--drv_communication=USB0" "--jlink_speed=auto" "--jlink_initial_speed=32" "--jlink_reset_strategy=0,0" "--jlink_interface=SWD" "--drv_catch_exceptions=0x000" "--drv_swo_clock_setup=72000000,0,2000000"
diff --git a/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.dni b/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.dni
index 5764d41c4..8ec8b615c 100644
--- a/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.dni
+++ b/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.dni
@@ -96,9 +96,21 @@ Enabled=0
Mode=3
Graph=0
Symbiont=0
+[Breakpoints]
+Count=0
+[Stack]
+FillEnabled=0
+OverflowWarningsEnabled=1
+WarningThreshold=90
+SpWarningsEnabled=1
+WarnLogOnly=1
+UseTrigger=1
+TriggerName=main
+LimitSize=0
+ByteLimit=50
[Disassemble mode]
mode=0
-[Breakpoints]
+[Breakpoints2]
Count=0
[Aliases]
Count=0
diff --git a/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.wsdt b/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.wsdt
index b4f7f175d..269cde5fe 100644
--- a/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.wsdt
+++ b/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.wsdt
@@ -17,7 +17,7 @@
20 1216 324 81 20 1622
-
+
TabID-27630-4718
@@ -29,7 +29,7 @@
- 0 TabID-10002-7709 Build Build TabID-18437-21512 Debug Log Debug-Log 0
+ 0 TabID-10002-7709 Build Build TabID-18437-21512 Debug Log Debug-Log 0
@@ -42,7 +42,7 @@
- iaridepm.enu1 -2 -2 740 438 -2 -2 200 200 119048 203666 261905 755601 -2 -2 198 1682 -2 -2 1684 200 1002381 203666 119048 203666
+ iaridepm.enu1 -2 -2 740 438 -2 -2 200 200 119048 203666 261905 755601 -2 -2 198 1682 -2 -2 1684 200 1002381 203666 119048 203666
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/CoreSupport/core_cm3.h b/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/CoreSupport/core_cm3.h
deleted file mode 100644
index 2c46056fe..000000000
--- a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/CoreSupport/core_cm3.h
+++ /dev/null
@@ -1,1818 +0,0 @@
-/**************************************************************************//**
- * @file core_cm3.h
- * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Header File
- * @version V1.30
- * @date 30. October 2009
- *
- * @note
- * Copyright (C) 2009 ARM Limited. All rights reserved.
- *
- * @par
- * ARM Limited (ARM) is supplying this software for use with Cortex-M
- * processor based microcontrollers. This file can be freely distributed
- * within development tools that are supporting such ARM based processors.
- *
- * @par
- * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
- * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
- * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
- * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
- *
- ******************************************************************************/
-
-#ifndef __CM3_CORE_H__
-#define __CM3_CORE_H__
-
-/** @addtogroup CMSIS_CM3_core_LintCinfiguration CMSIS CM3 Core Lint Configuration
- *
- * List of Lint messages which will be suppressed and not shown:
- * - Error 10: \n
- * register uint32_t __regBasePri __asm("basepri"); \n
- * Error 10: Expecting ';'
- * .
- * - Error 530: \n
- * return(__regBasePri); \n
- * Warning 530: Symbol '__regBasePri' (line 264) not initialized
- * .
- * - Error 550: \n
- * __regBasePri = (basePri & 0x1ff); \n
- * Warning 550: Symbol '__regBasePri' (line 271) not accessed
- * .
- * - Error 754: \n
- * uint32_t RESERVED0[24]; \n
- * Info 754: local structure member '' (line 109, file ./cm3_core.h) not referenced
- * .
- * - Error 750: \n
- * #define __CM3_CORE_H__ \n
- * Info 750: local macro '__CM3_CORE_H__' (line 43, file./cm3_core.h) not referenced
- * .
- * - Error 528: \n
- * static __INLINE void NVIC_DisableIRQ(uint32_t IRQn) \n
- * Warning 528: Symbol 'NVIC_DisableIRQ(unsigned int)' (line 419, file ./cm3_core.h) not referenced
- * .
- * - Error 751: \n
- * } InterruptType_Type; \n
- * Info 751: local typedef 'InterruptType_Type' (line 170, file ./cm3_core.h) not referenced
- * .
- * Note: To re-enable a Message, insert a space before 'lint' *
- *
- */
-
-/*lint -save */
-/*lint -e10 */
-/*lint -e530 */
-/*lint -e550 */
-/*lint -e754 */
-/*lint -e750 */
-/*lint -e528 */
-/*lint -e751 */
-
-
-/** @addtogroup CMSIS_CM3_core_definitions CM3 Core Definitions
- This file defines all structures and symbols for CMSIS core:
- - CMSIS version number
- - Cortex-M core registers and bitfields
- - Cortex-M core peripheral base address
- @{
- */
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#define __CM3_CMSIS_VERSION_MAIN (0x01) /*!< [31:16] CMSIS HAL main version */
-#define __CM3_CMSIS_VERSION_SUB (0x30) /*!< [15:0] CMSIS HAL sub version */
-#define __CM3_CMSIS_VERSION ((__CM3_CMSIS_VERSION_MAIN << 16) | __CM3_CMSIS_VERSION_SUB) /*!< CMSIS HAL version number */
-
-#define __CORTEX_M (0x03) /*!< Cortex core */
-
-#include /* Include standard types */
-
-#if defined (__ICCARM__)
- #include /* IAR Intrinsics */
-#endif
-
-
-#ifndef __NVIC_PRIO_BITS
- #define __NVIC_PRIO_BITS 4 /*!< standard definition for NVIC Priority Bits */
-#endif
-
-
-
-
-/**
- * IO definitions
- *
- * define access restrictions to peripheral registers
- */
-
-#ifdef __cplusplus
- #define __I volatile /*!< defines 'read only' permissions */
-#else
- #define __I volatile const /*!< defines 'read only' permissions */
-#endif
-#define __O volatile /*!< defines 'write only' permissions */
-#define __IO volatile /*!< defines 'read / write' permissions */
-
-
-
-/*******************************************************************************
- * Register Abstraction
- ******************************************************************************/
-/** @addtogroup CMSIS_CM3_core_register CMSIS CM3 Core Register
- @{
-*/
-
-
-/** @addtogroup CMSIS_CM3_NVIC CMSIS CM3 NVIC
- memory mapped structure for Nested Vectored Interrupt Controller (NVIC)
- @{
- */
-typedef struct
-{
- __IO uint32_t ISER[8]; /*!< Offset: 0x000 Interrupt Set Enable Register */
- uint32_t RESERVED0[24];
- __IO uint32_t ICER[8]; /*!< Offset: 0x080 Interrupt Clear Enable Register */
- uint32_t RSERVED1[24];
- __IO uint32_t ISPR[8]; /*!< Offset: 0x100 Interrupt Set Pending Register */
- uint32_t RESERVED2[24];
- __IO uint32_t ICPR[8]; /*!< Offset: 0x180 Interrupt Clear Pending Register */
- uint32_t RESERVED3[24];
- __IO uint32_t IABR[8]; /*!< Offset: 0x200 Interrupt Active bit Register */
- uint32_t RESERVED4[56];
- __IO uint8_t IP[240]; /*!< Offset: 0x300 Interrupt Priority Register (8Bit wide) */
- uint32_t RESERVED5[644];
- __O uint32_t STIR; /*!< Offset: 0xE00 Software Trigger Interrupt Register */
-} NVIC_Type;
-/*@}*/ /* end of group CMSIS_CM3_NVIC */
-
-
-/** @addtogroup CMSIS_CM3_SCB CMSIS CM3 SCB
- memory mapped structure for System Control Block (SCB)
- @{
- */
-typedef struct
-{
- __I uint32_t CPUID; /*!< Offset: 0x00 CPU ID Base Register */
- __IO uint32_t ICSR; /*!< Offset: 0x04 Interrupt Control State Register */
- __IO uint32_t VTOR; /*!< Offset: 0x08 Vector Table Offset Register */
- __IO uint32_t AIRCR; /*!< Offset: 0x0C Application Interrupt / Reset Control Register */
- __IO uint32_t SCR; /*!< Offset: 0x10 System Control Register */
- __IO uint32_t CCR; /*!< Offset: 0x14 Configuration Control Register */
- __IO uint8_t SHP[12]; /*!< Offset: 0x18 System Handlers Priority Registers (4-7, 8-11, 12-15) */
- __IO uint32_t SHCSR; /*!< Offset: 0x24 System Handler Control and State Register */
- __IO uint32_t CFSR; /*!< Offset: 0x28 Configurable Fault Status Register */
- __IO uint32_t HFSR; /*!< Offset: 0x2C Hard Fault Status Register */
- __IO uint32_t DFSR; /*!< Offset: 0x30 Debug Fault Status Register */
- __IO uint32_t MMFAR; /*!< Offset: 0x34 Mem Manage Address Register */
- __IO uint32_t BFAR; /*!< Offset: 0x38 Bus Fault Address Register */
- __IO uint32_t AFSR; /*!< Offset: 0x3C Auxiliary Fault Status Register */
- __I uint32_t PFR[2]; /*!< Offset: 0x40 Processor Feature Register */
- __I uint32_t DFR; /*!< Offset: 0x48 Debug Feature Register */
- __I uint32_t ADR; /*!< Offset: 0x4C Auxiliary Feature Register */
- __I uint32_t MMFR[4]; /*!< Offset: 0x50 Memory Model Feature Register */
- __I uint32_t ISAR[5]; /*!< Offset: 0x60 ISA Feature Register */
-} SCB_Type;
-
-/* SCB CPUID Register Definitions */
-#define SCB_CPUID_IMPLEMENTER_Pos 24 /*!< SCB CPUID: IMPLEMENTER Position */
-#define SCB_CPUID_IMPLEMENTER_Msk (0xFFul << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */
-
-#define SCB_CPUID_VARIANT_Pos 20 /*!< SCB CPUID: VARIANT Position */
-#define SCB_CPUID_VARIANT_Msk (0xFul << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */
-
-#define SCB_CPUID_PARTNO_Pos 4 /*!< SCB CPUID: PARTNO Position */
-#define SCB_CPUID_PARTNO_Msk (0xFFFul << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */
-
-#define SCB_CPUID_REVISION_Pos 0 /*!< SCB CPUID: REVISION Position */
-#define SCB_CPUID_REVISION_Msk (0xFul << SCB_CPUID_REVISION_Pos) /*!< SCB CPUID: REVISION Mask */
-
-/* SCB Interrupt Control State Register Definitions */
-#define SCB_ICSR_NMIPENDSET_Pos 31 /*!< SCB ICSR: NMIPENDSET Position */
-#define SCB_ICSR_NMIPENDSET_Msk (1ul << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */
-
-#define SCB_ICSR_PENDSVSET_Pos 28 /*!< SCB ICSR: PENDSVSET Position */
-#define SCB_ICSR_PENDSVSET_Msk (1ul << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */
-
-#define SCB_ICSR_PENDSVCLR_Pos 27 /*!< SCB ICSR: PENDSVCLR Position */
-#define SCB_ICSR_PENDSVCLR_Msk (1ul << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */
-
-#define SCB_ICSR_PENDSTSET_Pos 26 /*!< SCB ICSR: PENDSTSET Position */
-#define SCB_ICSR_PENDSTSET_Msk (1ul << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */
-
-#define SCB_ICSR_PENDSTCLR_Pos 25 /*!< SCB ICSR: PENDSTCLR Position */
-#define SCB_ICSR_PENDSTCLR_Msk (1ul << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */
-
-#define SCB_ICSR_ISRPREEMPT_Pos 23 /*!< SCB ICSR: ISRPREEMPT Position */
-#define SCB_ICSR_ISRPREEMPT_Msk (1ul << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */
-
-#define SCB_ICSR_ISRPENDING_Pos 22 /*!< SCB ICSR: ISRPENDING Position */
-#define SCB_ICSR_ISRPENDING_Msk (1ul << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */
-
-#define SCB_ICSR_VECTPENDING_Pos 12 /*!< SCB ICSR: VECTPENDING Position */
-#define SCB_ICSR_VECTPENDING_Msk (0x1FFul << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */
-
-#define SCB_ICSR_RETTOBASE_Pos 11 /*!< SCB ICSR: RETTOBASE Position */
-#define SCB_ICSR_RETTOBASE_Msk (1ul << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */
-
-#define SCB_ICSR_VECTACTIVE_Pos 0 /*!< SCB ICSR: VECTACTIVE Position */
-#define SCB_ICSR_VECTACTIVE_Msk (0x1FFul << SCB_ICSR_VECTACTIVE_Pos) /*!< SCB ICSR: VECTACTIVE Mask */
-
-/* SCB Interrupt Control State Register Definitions */
-#define SCB_VTOR_TBLBASE_Pos 29 /*!< SCB VTOR: TBLBASE Position */
-#define SCB_VTOR_TBLBASE_Msk (0x1FFul << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */
-
-#define SCB_VTOR_TBLOFF_Pos 7 /*!< SCB VTOR: TBLOFF Position */
-#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFul << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */
-
-/* SCB Application Interrupt and Reset Control Register Definitions */
-#define SCB_AIRCR_VECTKEY_Pos 16 /*!< SCB AIRCR: VECTKEY Position */
-#define SCB_AIRCR_VECTKEY_Msk (0xFFFFul << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */
-
-#define SCB_AIRCR_VECTKEYSTAT_Pos 16 /*!< SCB AIRCR: VECTKEYSTAT Position */
-#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFul << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */
-
-#define SCB_AIRCR_ENDIANESS_Pos 15 /*!< SCB AIRCR: ENDIANESS Position */
-#define SCB_AIRCR_ENDIANESS_Msk (1ul << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */
-
-#define SCB_AIRCR_PRIGROUP_Pos 8 /*!< SCB AIRCR: PRIGROUP Position */
-#define SCB_AIRCR_PRIGROUP_Msk (7ul << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */
-
-#define SCB_AIRCR_SYSRESETREQ_Pos 2 /*!< SCB AIRCR: SYSRESETREQ Position */
-#define SCB_AIRCR_SYSRESETREQ_Msk (1ul << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */
-
-#define SCB_AIRCR_VECTCLRACTIVE_Pos 1 /*!< SCB AIRCR: VECTCLRACTIVE Position */
-#define SCB_AIRCR_VECTCLRACTIVE_Msk (1ul << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */
-
-#define SCB_AIRCR_VECTRESET_Pos 0 /*!< SCB AIRCR: VECTRESET Position */
-#define SCB_AIRCR_VECTRESET_Msk (1ul << SCB_AIRCR_VECTRESET_Pos) /*!< SCB AIRCR: VECTRESET Mask */
-
-/* SCB System Control Register Definitions */
-#define SCB_SCR_SEVONPEND_Pos 4 /*!< SCB SCR: SEVONPEND Position */
-#define SCB_SCR_SEVONPEND_Msk (1ul << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */
-
-#define SCB_SCR_SLEEPDEEP_Pos 2 /*!< SCB SCR: SLEEPDEEP Position */
-#define SCB_SCR_SLEEPDEEP_Msk (1ul << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */
-
-#define SCB_SCR_SLEEPONEXIT_Pos 1 /*!< SCB SCR: SLEEPONEXIT Position */
-#define SCB_SCR_SLEEPONEXIT_Msk (1ul << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */
-
-/* SCB Configuration Control Register Definitions */
-#define SCB_CCR_STKALIGN_Pos 9 /*!< SCB CCR: STKALIGN Position */
-#define SCB_CCR_STKALIGN_Msk (1ul << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */
-
-#define SCB_CCR_BFHFNMIGN_Pos 8 /*!< SCB CCR: BFHFNMIGN Position */
-#define SCB_CCR_BFHFNMIGN_Msk (1ul << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */
-
-#define SCB_CCR_DIV_0_TRP_Pos 4 /*!< SCB CCR: DIV_0_TRP Position */
-#define SCB_CCR_DIV_0_TRP_Msk (1ul << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */
-
-#define SCB_CCR_UNALIGN_TRP_Pos 3 /*!< SCB CCR: UNALIGN_TRP Position */
-#define SCB_CCR_UNALIGN_TRP_Msk (1ul << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */
-
-#define SCB_CCR_USERSETMPEND_Pos 1 /*!< SCB CCR: USERSETMPEND Position */
-#define SCB_CCR_USERSETMPEND_Msk (1ul << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */
-
-#define SCB_CCR_NONBASETHRDENA_Pos 0 /*!< SCB CCR: NONBASETHRDENA Position */
-#define SCB_CCR_NONBASETHRDENA_Msk (1ul << SCB_CCR_NONBASETHRDENA_Pos) /*!< SCB CCR: NONBASETHRDENA Mask */
-
-/* SCB System Handler Control and State Register Definitions */
-#define SCB_SHCSR_USGFAULTENA_Pos 18 /*!< SCB SHCSR: USGFAULTENA Position */
-#define SCB_SHCSR_USGFAULTENA_Msk (1ul << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */
-
-#define SCB_SHCSR_BUSFAULTENA_Pos 17 /*!< SCB SHCSR: BUSFAULTENA Position */
-#define SCB_SHCSR_BUSFAULTENA_Msk (1ul << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */
-
-#define SCB_SHCSR_MEMFAULTENA_Pos 16 /*!< SCB SHCSR: MEMFAULTENA Position */
-#define SCB_SHCSR_MEMFAULTENA_Msk (1ul << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */
-
-#define SCB_SHCSR_SVCALLPENDED_Pos 15 /*!< SCB SHCSR: SVCALLPENDED Position */
-#define SCB_SHCSR_SVCALLPENDED_Msk (1ul << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */
-
-#define SCB_SHCSR_BUSFAULTPENDED_Pos 14 /*!< SCB SHCSR: BUSFAULTPENDED Position */
-#define SCB_SHCSR_BUSFAULTPENDED_Msk (1ul << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */
-
-#define SCB_SHCSR_MEMFAULTPENDED_Pos 13 /*!< SCB SHCSR: MEMFAULTPENDED Position */
-#define SCB_SHCSR_MEMFAULTPENDED_Msk (1ul << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */
-
-#define SCB_SHCSR_USGFAULTPENDED_Pos 12 /*!< SCB SHCSR: USGFAULTPENDED Position */
-#define SCB_SHCSR_USGFAULTPENDED_Msk (1ul << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */
-
-#define SCB_SHCSR_SYSTICKACT_Pos 11 /*!< SCB SHCSR: SYSTICKACT Position */
-#define SCB_SHCSR_SYSTICKACT_Msk (1ul << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */
-
-#define SCB_SHCSR_PENDSVACT_Pos 10 /*!< SCB SHCSR: PENDSVACT Position */
-#define SCB_SHCSR_PENDSVACT_Msk (1ul << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */
-
-#define SCB_SHCSR_MONITORACT_Pos 8 /*!< SCB SHCSR: MONITORACT Position */
-#define SCB_SHCSR_MONITORACT_Msk (1ul << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */
-
-#define SCB_SHCSR_SVCALLACT_Pos 7 /*!< SCB SHCSR: SVCALLACT Position */
-#define SCB_SHCSR_SVCALLACT_Msk (1ul << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */
-
-#define SCB_SHCSR_USGFAULTACT_Pos 3 /*!< SCB SHCSR: USGFAULTACT Position */
-#define SCB_SHCSR_USGFAULTACT_Msk (1ul << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */
-
-#define SCB_SHCSR_BUSFAULTACT_Pos 1 /*!< SCB SHCSR: BUSFAULTACT Position */
-#define SCB_SHCSR_BUSFAULTACT_Msk (1ul << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */
-
-#define SCB_SHCSR_MEMFAULTACT_Pos 0 /*!< SCB SHCSR: MEMFAULTACT Position */
-#define SCB_SHCSR_MEMFAULTACT_Msk (1ul << SCB_SHCSR_MEMFAULTACT_Pos) /*!< SCB SHCSR: MEMFAULTACT Mask */
-
-/* SCB Configurable Fault Status Registers Definitions */
-#define SCB_CFSR_USGFAULTSR_Pos 16 /*!< SCB CFSR: Usage Fault Status Register Position */
-#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFul << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */
-
-#define SCB_CFSR_BUSFAULTSR_Pos 8 /*!< SCB CFSR: Bus Fault Status Register Position */
-#define SCB_CFSR_BUSFAULTSR_Msk (0xFFul << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */
-
-#define SCB_CFSR_MEMFAULTSR_Pos 0 /*!< SCB CFSR: Memory Manage Fault Status Register Position */
-#define SCB_CFSR_MEMFAULTSR_Msk (0xFFul << SCB_CFSR_MEMFAULTSR_Pos) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */
-
-/* SCB Hard Fault Status Registers Definitions */
-#define SCB_HFSR_DEBUGEVT_Pos 31 /*!< SCB HFSR: DEBUGEVT Position */
-#define SCB_HFSR_DEBUGEVT_Msk (1ul << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */
-
-#define SCB_HFSR_FORCED_Pos 30 /*!< SCB HFSR: FORCED Position */
-#define SCB_HFSR_FORCED_Msk (1ul << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */
-
-#define SCB_HFSR_VECTTBL_Pos 1 /*!< SCB HFSR: VECTTBL Position */
-#define SCB_HFSR_VECTTBL_Msk (1ul << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */
-
-/* SCB Debug Fault Status Register Definitions */
-#define SCB_DFSR_EXTERNAL_Pos 4 /*!< SCB DFSR: EXTERNAL Position */
-#define SCB_DFSR_EXTERNAL_Msk (1ul << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */
-
-#define SCB_DFSR_VCATCH_Pos 3 /*!< SCB DFSR: VCATCH Position */
-#define SCB_DFSR_VCATCH_Msk (1ul << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */
-
-#define SCB_DFSR_DWTTRAP_Pos 2 /*!< SCB DFSR: DWTTRAP Position */
-#define SCB_DFSR_DWTTRAP_Msk (1ul << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */
-
-#define SCB_DFSR_BKPT_Pos 1 /*!< SCB DFSR: BKPT Position */
-#define SCB_DFSR_BKPT_Msk (1ul << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */
-
-#define SCB_DFSR_HALTED_Pos 0 /*!< SCB DFSR: HALTED Position */
-#define SCB_DFSR_HALTED_Msk (1ul << SCB_DFSR_HALTED_Pos) /*!< SCB DFSR: HALTED Mask */
-/*@}*/ /* end of group CMSIS_CM3_SCB */
-
-
-/** @addtogroup CMSIS_CM3_SysTick CMSIS CM3 SysTick
- memory mapped structure for SysTick
- @{
- */
-typedef struct
-{
- __IO uint32_t CTRL; /*!< Offset: 0x00 SysTick Control and Status Register */
- __IO uint32_t LOAD; /*!< Offset: 0x04 SysTick Reload Value Register */
- __IO uint32_t VAL; /*!< Offset: 0x08 SysTick Current Value Register */
- __I uint32_t CALIB; /*!< Offset: 0x0C SysTick Calibration Register */
-} SysTick_Type;
-
-/* SysTick Control / Status Register Definitions */
-#define SysTick_CTRL_COUNTFLAG_Pos 16 /*!< SysTick CTRL: COUNTFLAG Position */
-#define SysTick_CTRL_COUNTFLAG_Msk (1ul << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */
-
-#define SysTick_CTRL_CLKSOURCE_Pos 2 /*!< SysTick CTRL: CLKSOURCE Position */
-#define SysTick_CTRL_CLKSOURCE_Msk (1ul << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */
-
-#define SysTick_CTRL_TICKINT_Pos 1 /*!< SysTick CTRL: TICKINT Position */
-#define SysTick_CTRL_TICKINT_Msk (1ul << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */
-
-#define SysTick_CTRL_ENABLE_Pos 0 /*!< SysTick CTRL: ENABLE Position */
-#define SysTick_CTRL_ENABLE_Msk (1ul << SysTick_CTRL_ENABLE_Pos) /*!< SysTick CTRL: ENABLE Mask */
-
-/* SysTick Reload Register Definitions */
-#define SysTick_LOAD_RELOAD_Pos 0 /*!< SysTick LOAD: RELOAD Position */
-#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFul << SysTick_LOAD_RELOAD_Pos) /*!< SysTick LOAD: RELOAD Mask */
-
-/* SysTick Current Register Definitions */
-#define SysTick_VAL_CURRENT_Pos 0 /*!< SysTick VAL: CURRENT Position */
-#define SysTick_VAL_CURRENT_Msk (0xFFFFFFul << SysTick_VAL_CURRENT_Pos) /*!< SysTick VAL: CURRENT Mask */
-
-/* SysTick Calibration Register Definitions */
-#define SysTick_CALIB_NOREF_Pos 31 /*!< SysTick CALIB: NOREF Position */
-#define SysTick_CALIB_NOREF_Msk (1ul << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */
-
-#define SysTick_CALIB_SKEW_Pos 30 /*!< SysTick CALIB: SKEW Position */
-#define SysTick_CALIB_SKEW_Msk (1ul << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */
-
-#define SysTick_CALIB_TENMS_Pos 0 /*!< SysTick CALIB: TENMS Position */
-#define SysTick_CALIB_TENMS_Msk (0xFFFFFFul << SysTick_VAL_CURRENT_Pos) /*!< SysTick CALIB: TENMS Mask */
-/*@}*/ /* end of group CMSIS_CM3_SysTick */
-
-
-/** @addtogroup CMSIS_CM3_ITM CMSIS CM3 ITM
- memory mapped structure for Instrumentation Trace Macrocell (ITM)
- @{
- */
-typedef struct
-{
- __O union
- {
- __O uint8_t u8; /*!< Offset: ITM Stimulus Port 8-bit */
- __O uint16_t u16; /*!< Offset: ITM Stimulus Port 16-bit */
- __O uint32_t u32; /*!< Offset: ITM Stimulus Port 32-bit */
- } PORT [32]; /*!< Offset: 0x00 ITM Stimulus Port Registers */
- uint32_t RESERVED0[864];
- __IO uint32_t TER; /*!< Offset: ITM Trace Enable Register */
- uint32_t RESERVED1[15];
- __IO uint32_t TPR; /*!< Offset: ITM Trace Privilege Register */
- uint32_t RESERVED2[15];
- __IO uint32_t TCR; /*!< Offset: ITM Trace Control Register */
- uint32_t RESERVED3[29];
- __IO uint32_t IWR; /*!< Offset: ITM Integration Write Register */
- __IO uint32_t IRR; /*!< Offset: ITM Integration Read Register */
- __IO uint32_t IMCR; /*!< Offset: ITM Integration Mode Control Register */
- uint32_t RESERVED4[43];
- __IO uint32_t LAR; /*!< Offset: ITM Lock Access Register */
- __IO uint32_t LSR; /*!< Offset: ITM Lock Status Register */
- uint32_t RESERVED5[6];
- __I uint32_t PID4; /*!< Offset: ITM Peripheral Identification Register #4 */
- __I uint32_t PID5; /*!< Offset: ITM Peripheral Identification Register #5 */
- __I uint32_t PID6; /*!< Offset: ITM Peripheral Identification Register #6 */
- __I uint32_t PID7; /*!< Offset: ITM Peripheral Identification Register #7 */
- __I uint32_t PID0; /*!< Offset: ITM Peripheral Identification Register #0 */
- __I uint32_t PID1; /*!< Offset: ITM Peripheral Identification Register #1 */
- __I uint32_t PID2; /*!< Offset: ITM Peripheral Identification Register #2 */
- __I uint32_t PID3; /*!< Offset: ITM Peripheral Identification Register #3 */
- __I uint32_t CID0; /*!< Offset: ITM Component Identification Register #0 */
- __I uint32_t CID1; /*!< Offset: ITM Component Identification Register #1 */
- __I uint32_t CID2; /*!< Offset: ITM Component Identification Register #2 */
- __I uint32_t CID3; /*!< Offset: ITM Component Identification Register #3 */
-} ITM_Type;
-
-/* ITM Trace Privilege Register Definitions */
-#define ITM_TPR_PRIVMASK_Pos 0 /*!< ITM TPR: PRIVMASK Position */
-#define ITM_TPR_PRIVMASK_Msk (0xFul << ITM_TPR_PRIVMASK_Pos) /*!< ITM TPR: PRIVMASK Mask */
-
-/* ITM Trace Control Register Definitions */
-#define ITM_TCR_BUSY_Pos 23 /*!< ITM TCR: BUSY Position */
-#define ITM_TCR_BUSY_Msk (1ul << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */
-
-#define ITM_TCR_ATBID_Pos 16 /*!< ITM TCR: ATBID Position */
-#define ITM_TCR_ATBID_Msk (0x7Ful << ITM_TCR_ATBID_Pos) /*!< ITM TCR: ATBID Mask */
-
-#define ITM_TCR_TSPrescale_Pos 8 /*!< ITM TCR: TSPrescale Position */
-#define ITM_TCR_TSPrescale_Msk (3ul << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */
-
-#define ITM_TCR_SWOENA_Pos 4 /*!< ITM TCR: SWOENA Position */
-#define ITM_TCR_SWOENA_Msk (1ul << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */
-
-#define ITM_TCR_DWTENA_Pos 3 /*!< ITM TCR: DWTENA Position */
-#define ITM_TCR_DWTENA_Msk (1ul << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */
-
-#define ITM_TCR_SYNCENA_Pos 2 /*!< ITM TCR: SYNCENA Position */
-#define ITM_TCR_SYNCENA_Msk (1ul << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */
-
-#define ITM_TCR_TSENA_Pos 1 /*!< ITM TCR: TSENA Position */
-#define ITM_TCR_TSENA_Msk (1ul << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */
-
-#define ITM_TCR_ITMENA_Pos 0 /*!< ITM TCR: ITM Enable bit Position */
-#define ITM_TCR_ITMENA_Msk (1ul << ITM_TCR_ITMENA_Pos) /*!< ITM TCR: ITM Enable bit Mask */
-
-/* ITM Integration Write Register Definitions */
-#define ITM_IWR_ATVALIDM_Pos 0 /*!< ITM IWR: ATVALIDM Position */
-#define ITM_IWR_ATVALIDM_Msk (1ul << ITM_IWR_ATVALIDM_Pos) /*!< ITM IWR: ATVALIDM Mask */
-
-/* ITM Integration Read Register Definitions */
-#define ITM_IRR_ATREADYM_Pos 0 /*!< ITM IRR: ATREADYM Position */
-#define ITM_IRR_ATREADYM_Msk (1ul << ITM_IRR_ATREADYM_Pos) /*!< ITM IRR: ATREADYM Mask */
-
-/* ITM Integration Mode Control Register Definitions */
-#define ITM_IMCR_INTEGRATION_Pos 0 /*!< ITM IMCR: INTEGRATION Position */
-#define ITM_IMCR_INTEGRATION_Msk (1ul << ITM_IMCR_INTEGRATION_Pos) /*!< ITM IMCR: INTEGRATION Mask */
-
-/* ITM Lock Status Register Definitions */
-#define ITM_LSR_ByteAcc_Pos 2 /*!< ITM LSR: ByteAcc Position */
-#define ITM_LSR_ByteAcc_Msk (1ul << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */
-
-#define ITM_LSR_Access_Pos 1 /*!< ITM LSR: Access Position */
-#define ITM_LSR_Access_Msk (1ul << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */
-
-#define ITM_LSR_Present_Pos 0 /*!< ITM LSR: Present Position */
-#define ITM_LSR_Present_Msk (1ul << ITM_LSR_Present_Pos) /*!< ITM LSR: Present Mask */
-/*@}*/ /* end of group CMSIS_CM3_ITM */
-
-
-/** @addtogroup CMSIS_CM3_InterruptType CMSIS CM3 Interrupt Type
- memory mapped structure for Interrupt Type
- @{
- */
-typedef struct
-{
- uint32_t RESERVED0;
- __I uint32_t ICTR; /*!< Offset: 0x04 Interrupt Control Type Register */
-#if ((defined __CM3_REV) && (__CM3_REV >= 0x200))
- __IO uint32_t ACTLR; /*!< Offset: 0x08 Auxiliary Control Register */
-#else
- uint32_t RESERVED1;
-#endif
-} InterruptType_Type;
-
-/* Interrupt Controller Type Register Definitions */
-#define InterruptType_ICTR_INTLINESNUM_Pos 0 /*!< InterruptType ICTR: INTLINESNUM Position */
-#define InterruptType_ICTR_INTLINESNUM_Msk (0x1Ful << InterruptType_ICTR_INTLINESNUM_Pos) /*!< InterruptType ICTR: INTLINESNUM Mask */
-
-/* Auxiliary Control Register Definitions */
-#define InterruptType_ACTLR_DISFOLD_Pos 2 /*!< InterruptType ACTLR: DISFOLD Position */
-#define InterruptType_ACTLR_DISFOLD_Msk (1ul << InterruptType_ACTLR_DISFOLD_Pos) /*!< InterruptType ACTLR: DISFOLD Mask */
-
-#define InterruptType_ACTLR_DISDEFWBUF_Pos 1 /*!< InterruptType ACTLR: DISDEFWBUF Position */
-#define InterruptType_ACTLR_DISDEFWBUF_Msk (1ul << InterruptType_ACTLR_DISDEFWBUF_Pos) /*!< InterruptType ACTLR: DISDEFWBUF Mask */
-
-#define InterruptType_ACTLR_DISMCYCINT_Pos 0 /*!< InterruptType ACTLR: DISMCYCINT Position */
-#define InterruptType_ACTLR_DISMCYCINT_Msk (1ul << InterruptType_ACTLR_DISMCYCINT_Pos) /*!< InterruptType ACTLR: DISMCYCINT Mask */
-/*@}*/ /* end of group CMSIS_CM3_InterruptType */
-
-
-#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1)
-/** @addtogroup CMSIS_CM3_MPU CMSIS CM3 MPU
- memory mapped structure for Memory Protection Unit (MPU)
- @{
- */
-typedef struct
-{
- __I uint32_t TYPE; /*!< Offset: 0x00 MPU Type Register */
- __IO uint32_t CTRL; /*!< Offset: 0x04 MPU Control Register */
- __IO uint32_t RNR; /*!< Offset: 0x08 MPU Region RNRber Register */
- __IO uint32_t RBAR; /*!< Offset: 0x0C MPU Region Base Address Register */
- __IO uint32_t RASR; /*!< Offset: 0x10 MPU Region Attribute and Size Register */
- __IO uint32_t RBAR_A1; /*!< Offset: 0x14 MPU Alias 1 Region Base Address Register */
- __IO uint32_t RASR_A1; /*!< Offset: 0x18 MPU Alias 1 Region Attribute and Size Register */
- __IO uint32_t RBAR_A2; /*!< Offset: 0x1C MPU Alias 2 Region Base Address Register */
- __IO uint32_t RASR_A2; /*!< Offset: 0x20 MPU Alias 2 Region Attribute and Size Register */
- __IO uint32_t RBAR_A3; /*!< Offset: 0x24 MPU Alias 3 Region Base Address Register */
- __IO uint32_t RASR_A3; /*!< Offset: 0x28 MPU Alias 3 Region Attribute and Size Register */
-} MPU_Type;
-
-/* MPU Type Register */
-#define MPU_TYPE_IREGION_Pos 16 /*!< MPU TYPE: IREGION Position */
-#define MPU_TYPE_IREGION_Msk (0xFFul << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */
-
-#define MPU_TYPE_DREGION_Pos 8 /*!< MPU TYPE: DREGION Position */
-#define MPU_TYPE_DREGION_Msk (0xFFul << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */
-
-#define MPU_TYPE_SEPARATE_Pos 0 /*!< MPU TYPE: SEPARATE Position */
-#define MPU_TYPE_SEPARATE_Msk (1ul << MPU_TYPE_SEPARATE_Pos) /*!< MPU TYPE: SEPARATE Mask */
-
-/* MPU Control Register */
-#define MPU_CTRL_PRIVDEFENA_Pos 2 /*!< MPU CTRL: PRIVDEFENA Position */
-#define MPU_CTRL_PRIVDEFENA_Msk (1ul << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */
-
-#define MPU_CTRL_HFNMIENA_Pos 1 /*!< MPU CTRL: HFNMIENA Position */
-#define MPU_CTRL_HFNMIENA_Msk (1ul << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */
-
-#define MPU_CTRL_ENABLE_Pos 0 /*!< MPU CTRL: ENABLE Position */
-#define MPU_CTRL_ENABLE_Msk (1ul << MPU_CTRL_ENABLE_Pos) /*!< MPU CTRL: ENABLE Mask */
-
-/* MPU Region Number Register */
-#define MPU_RNR_REGION_Pos 0 /*!< MPU RNR: REGION Position */
-#define MPU_RNR_REGION_Msk (0xFFul << MPU_RNR_REGION_Pos) /*!< MPU RNR: REGION Mask */
-
-/* MPU Region Base Address Register */
-#define MPU_RBAR_ADDR_Pos 5 /*!< MPU RBAR: ADDR Position */
-#define MPU_RBAR_ADDR_Msk (0x7FFFFFFul << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */
-
-#define MPU_RBAR_VALID_Pos 4 /*!< MPU RBAR: VALID Position */
-#define MPU_RBAR_VALID_Msk (1ul << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */
-
-#define MPU_RBAR_REGION_Pos 0 /*!< MPU RBAR: REGION Position */
-#define MPU_RBAR_REGION_Msk (0xFul << MPU_RBAR_REGION_Pos) /*!< MPU RBAR: REGION Mask */
-
-/* MPU Region Attribute and Size Register */
-#define MPU_RASR_XN_Pos 28 /*!< MPU RASR: XN Position */
-#define MPU_RASR_XN_Msk (1ul << MPU_RASR_XN_Pos) /*!< MPU RASR: XN Mask */
-
-#define MPU_RASR_AP_Pos 24 /*!< MPU RASR: AP Position */
-#define MPU_RASR_AP_Msk (7ul << MPU_RASR_AP_Pos) /*!< MPU RASR: AP Mask */
-
-#define MPU_RASR_TEX_Pos 19 /*!< MPU RASR: TEX Position */
-#define MPU_RASR_TEX_Msk (7ul << MPU_RASR_TEX_Pos) /*!< MPU RASR: TEX Mask */
-
-#define MPU_RASR_S_Pos 18 /*!< MPU RASR: Shareable bit Position */
-#define MPU_RASR_S_Msk (1ul << MPU_RASR_S_Pos) /*!< MPU RASR: Shareable bit Mask */
-
-#define MPU_RASR_C_Pos 17 /*!< MPU RASR: Cacheable bit Position */
-#define MPU_RASR_C_Msk (1ul << MPU_RASR_C_Pos) /*!< MPU RASR: Cacheable bit Mask */
-
-#define MPU_RASR_B_Pos 16 /*!< MPU RASR: Bufferable bit Position */
-#define MPU_RASR_B_Msk (1ul << MPU_RASR_B_Pos) /*!< MPU RASR: Bufferable bit Mask */
-
-#define MPU_RASR_SRD_Pos 8 /*!< MPU RASR: Sub-Region Disable Position */
-#define MPU_RASR_SRD_Msk (0xFFul << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */
-
-#define MPU_RASR_SIZE_Pos 1 /*!< MPU RASR: Region Size Field Position */
-#define MPU_RASR_SIZE_Msk (0x1Ful << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */
-
-#define MPU_RASR_ENA_Pos 0 /*!< MPU RASR: Region enable bit Position */
-#define MPU_RASR_ENA_Msk (0x1Ful << MPU_RASR_ENA_Pos) /*!< MPU RASR: Region enable bit Disable Mask */
-
-/*@}*/ /* end of group CMSIS_CM3_MPU */
-#endif
-
-
-/** @addtogroup CMSIS_CM3_CoreDebug CMSIS CM3 Core Debug
- memory mapped structure for Core Debug Register
- @{
- */
-typedef struct
-{
- __IO uint32_t DHCSR; /*!< Offset: 0x00 Debug Halting Control and Status Register */
- __O uint32_t DCRSR; /*!< Offset: 0x04 Debug Core Register Selector Register */
- __IO uint32_t DCRDR; /*!< Offset: 0x08 Debug Core Register Data Register */
- __IO uint32_t DEMCR; /*!< Offset: 0x0C Debug Exception and Monitor Control Register */
-} CoreDebug_Type;
-
-/* Debug Halting Control and Status Register */
-#define CoreDebug_DHCSR_DBGKEY_Pos 16 /*!< CoreDebug DHCSR: DBGKEY Position */
-#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFul << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */
-
-#define CoreDebug_DHCSR_S_RESET_ST_Pos 25 /*!< CoreDebug DHCSR: S_RESET_ST Position */
-#define CoreDebug_DHCSR_S_RESET_ST_Msk (1ul << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */
-
-#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24 /*!< CoreDebug DHCSR: S_RETIRE_ST Position */
-#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1ul << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */
-
-#define CoreDebug_DHCSR_S_LOCKUP_Pos 19 /*!< CoreDebug DHCSR: S_LOCKUP Position */
-#define CoreDebug_DHCSR_S_LOCKUP_Msk (1ul << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */
-
-#define CoreDebug_DHCSR_S_SLEEP_Pos 18 /*!< CoreDebug DHCSR: S_SLEEP Position */
-#define CoreDebug_DHCSR_S_SLEEP_Msk (1ul << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */
-
-#define CoreDebug_DHCSR_S_HALT_Pos 17 /*!< CoreDebug DHCSR: S_HALT Position */
-#define CoreDebug_DHCSR_S_HALT_Msk (1ul << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */
-
-#define CoreDebug_DHCSR_S_REGRDY_Pos 16 /*!< CoreDebug DHCSR: S_REGRDY Position */
-#define CoreDebug_DHCSR_S_REGRDY_Msk (1ul << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */
-
-#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5 /*!< CoreDebug DHCSR: C_SNAPSTALL Position */
-#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1ul << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */
-
-#define CoreDebug_DHCSR_C_MASKINTS_Pos 3 /*!< CoreDebug DHCSR: C_MASKINTS Position */
-#define CoreDebug_DHCSR_C_MASKINTS_Msk (1ul << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */
-
-#define CoreDebug_DHCSR_C_STEP_Pos 2 /*!< CoreDebug DHCSR: C_STEP Position */
-#define CoreDebug_DHCSR_C_STEP_Msk (1ul << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */
-
-#define CoreDebug_DHCSR_C_HALT_Pos 1 /*!< CoreDebug DHCSR: C_HALT Position */
-#define CoreDebug_DHCSR_C_HALT_Msk (1ul << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */
-
-#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0 /*!< CoreDebug DHCSR: C_DEBUGEN Position */
-#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1ul << CoreDebug_DHCSR_C_DEBUGEN_Pos) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */
-
-/* Debug Core Register Selector Register */
-#define CoreDebug_DCRSR_REGWnR_Pos 16 /*!< CoreDebug DCRSR: REGWnR Position */
-#define CoreDebug_DCRSR_REGWnR_Msk (1ul << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */
-
-#define CoreDebug_DCRSR_REGSEL_Pos 0 /*!< CoreDebug DCRSR: REGSEL Position */
-#define CoreDebug_DCRSR_REGSEL_Msk (0x1Ful << CoreDebug_DCRSR_REGSEL_Pos) /*!< CoreDebug DCRSR: REGSEL Mask */
-
-/* Debug Exception and Monitor Control Register */
-#define CoreDebug_DEMCR_TRCENA_Pos 24 /*!< CoreDebug DEMCR: TRCENA Position */
-#define CoreDebug_DEMCR_TRCENA_Msk (1ul << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */
-
-#define CoreDebug_DEMCR_MON_REQ_Pos 19 /*!< CoreDebug DEMCR: MON_REQ Position */
-#define CoreDebug_DEMCR_MON_REQ_Msk (1ul << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */
-
-#define CoreDebug_DEMCR_MON_STEP_Pos 18 /*!< CoreDebug DEMCR: MON_STEP Position */
-#define CoreDebug_DEMCR_MON_STEP_Msk (1ul << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */
-
-#define CoreDebug_DEMCR_MON_PEND_Pos 17 /*!< CoreDebug DEMCR: MON_PEND Position */
-#define CoreDebug_DEMCR_MON_PEND_Msk (1ul << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */
-
-#define CoreDebug_DEMCR_MON_EN_Pos 16 /*!< CoreDebug DEMCR: MON_EN Position */
-#define CoreDebug_DEMCR_MON_EN_Msk (1ul << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */
-
-#define CoreDebug_DEMCR_VC_HARDERR_Pos 10 /*!< CoreDebug DEMCR: VC_HARDERR Position */
-#define CoreDebug_DEMCR_VC_HARDERR_Msk (1ul << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */
-
-#define CoreDebug_DEMCR_VC_INTERR_Pos 9 /*!< CoreDebug DEMCR: VC_INTERR Position */
-#define CoreDebug_DEMCR_VC_INTERR_Msk (1ul << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */
-
-#define CoreDebug_DEMCR_VC_BUSERR_Pos 8 /*!< CoreDebug DEMCR: VC_BUSERR Position */
-#define CoreDebug_DEMCR_VC_BUSERR_Msk (1ul << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */
-
-#define CoreDebug_DEMCR_VC_STATERR_Pos 7 /*!< CoreDebug DEMCR: VC_STATERR Position */
-#define CoreDebug_DEMCR_VC_STATERR_Msk (1ul << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */
-
-#define CoreDebug_DEMCR_VC_CHKERR_Pos 6 /*!< CoreDebug DEMCR: VC_CHKERR Position */
-#define CoreDebug_DEMCR_VC_CHKERR_Msk (1ul << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */
-
-#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5 /*!< CoreDebug DEMCR: VC_NOCPERR Position */
-#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1ul << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */
-
-#define CoreDebug_DEMCR_VC_MMERR_Pos 4 /*!< CoreDebug DEMCR: VC_MMERR Position */
-#define CoreDebug_DEMCR_VC_MMERR_Msk (1ul << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */
-
-#define CoreDebug_DEMCR_VC_CORERESET_Pos 0 /*!< CoreDebug DEMCR: VC_CORERESET Position */
-#define CoreDebug_DEMCR_VC_CORERESET_Msk (1ul << CoreDebug_DEMCR_VC_CORERESET_Pos) /*!< CoreDebug DEMCR: VC_CORERESET Mask */
-/*@}*/ /* end of group CMSIS_CM3_CoreDebug */
-
-
-/* Memory mapping of Cortex-M3 Hardware */
-#define SCS_BASE (0xE000E000) /*!< System Control Space Base Address */
-#define ITM_BASE (0xE0000000) /*!< ITM Base Address */
-#define CoreDebug_BASE (0xE000EDF0) /*!< Core Debug Base Address */
-#define SysTick_BASE (SCS_BASE + 0x0010) /*!< SysTick Base Address */
-#define NVIC_BASE (SCS_BASE + 0x0100) /*!< NVIC Base Address */
-#define SCB_BASE (SCS_BASE + 0x0D00) /*!< System Control Block Base Address */
-
-#define InterruptType ((InterruptType_Type *) SCS_BASE) /*!< Interrupt Type Register */
-#define SCB ((SCB_Type *) SCB_BASE) /*!< SCB configuration struct */
-#define SysTick ((SysTick_Type *) SysTick_BASE) /*!< SysTick configuration struct */
-#define NVIC ((NVIC_Type *) NVIC_BASE) /*!< NVIC configuration struct */
-#define ITM ((ITM_Type *) ITM_BASE) /*!< ITM configuration struct */
-#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */
-
-#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1)
- #define MPU_BASE (SCS_BASE + 0x0D90) /*!< Memory Protection Unit */
- #define MPU ((MPU_Type*) MPU_BASE) /*!< Memory Protection Unit */
-#endif
-
-/*@}*/ /* end of group CMSIS_CM3_core_register */
-
-
-/*******************************************************************************
- * Hardware Abstraction Layer
- ******************************************************************************/
-
-#if defined ( __CC_ARM )
- #define __ASM __asm /*!< asm keyword for ARM Compiler */
- #define __INLINE __inline /*!< inline keyword for ARM Compiler */
-
-#elif defined ( __ICCARM__ )
- #define __ASM __asm /*!< asm keyword for IAR Compiler */
- #define __INLINE inline /*!< inline keyword for IAR Compiler. Only avaiable in High optimization mode! */
-
-#elif defined ( __GNUC__ )
- #define __ASM __asm /*!< asm keyword for GNU Compiler */
- #define __INLINE inline /*!< inline keyword for GNU Compiler */
-
-#elif defined ( __TASKING__ )
- #define __ASM __asm /*!< asm keyword for TASKING Compiler */
- #define __INLINE inline /*!< inline keyword for TASKING Compiler */
-
-#endif
-
-
-/* ################### Compiler specific Intrinsics ########################### */
-
-#if defined ( __CC_ARM ) /*------------------RealView Compiler -----------------*/
-/* ARM armcc specific functions */
-
-#define __enable_fault_irq __enable_fiq
-#define __disable_fault_irq __disable_fiq
-
-#define __NOP __nop
-#define __WFI __wfi
-#define __WFE __wfe
-#define __SEV __sev
-#define __ISB() __isb(0)
-#define __DSB() __dsb(0)
-#define __DMB() __dmb(0)
-#define __REV __rev
-#define __RBIT __rbit
-#define __LDREXB(ptr) ((unsigned char ) __ldrex(ptr))
-#define __LDREXH(ptr) ((unsigned short) __ldrex(ptr))
-#define __LDREXW(ptr) ((unsigned int ) __ldrex(ptr))
-#define __STREXB(value, ptr) __strex(value, ptr)
-#define __STREXH(value, ptr) __strex(value, ptr)
-#define __STREXW(value, ptr) __strex(value, ptr)
-
-
-/* intrinsic unsigned long long __ldrexd(volatile void *ptr) */
-/* intrinsic int __strexd(unsigned long long val, volatile void *ptr) */
-/* intrinsic void __enable_irq(); */
-/* intrinsic void __disable_irq(); */
-
-
-/**
- * @brief Return the Process Stack Pointer
- *
- * @return ProcessStackPointer
- *
- * Return the actual process stack pointer
- */
-extern uint32_t __get_PSP(void);
-
-/**
- * @brief Set the Process Stack Pointer
- *
- * @param topOfProcStack Process Stack Pointer
- *
- * Assign the value ProcessStackPointer to the MSP
- * (process stack pointer) Cortex processor register
- */
-extern void __set_PSP(uint32_t topOfProcStack);
-
-/**
- * @brief Return the Main Stack Pointer
- *
- * @return Main Stack Pointer
- *
- * Return the current value of the MSP (main stack pointer)
- * Cortex processor register
- */
-extern uint32_t __get_MSP(void);
-
-/**
- * @brief Set the Main Stack Pointer
- *
- * @param topOfMainStack Main Stack Pointer
- *
- * Assign the value mainStackPointer to the MSP
- * (main stack pointer) Cortex processor register
- */
-extern void __set_MSP(uint32_t topOfMainStack);
-
-/**
- * @brief Reverse byte order in unsigned short value
- *
- * @param value value to reverse
- * @return reversed value
- *
- * Reverse byte order in unsigned short value
- */
-extern uint32_t __REV16(uint16_t value);
-
-/**
- * @brief Reverse byte order in signed short value with sign extension to integer
- *
- * @param value value to reverse
- * @return reversed value
- *
- * Reverse byte order in signed short value with sign extension to integer
- */
-extern int32_t __REVSH(int16_t value);
-
-
-#if (__ARMCC_VERSION < 400000)
-
-/**
- * @brief Remove the exclusive lock created by ldrex
- *
- * Removes the exclusive lock which is created by ldrex.
- */
-extern void __CLREX(void);
-
-/**
- * @brief Return the Base Priority value
- *
- * @return BasePriority
- *
- * Return the content of the base priority register
- */
-extern uint32_t __get_BASEPRI(void);
-
-/**
- * @brief Set the Base Priority value
- *
- * @param basePri BasePriority
- *
- * Set the base priority register
- */
-extern void __set_BASEPRI(uint32_t basePri);
-
-/**
- * @brief Return the Priority Mask value
- *
- * @return PriMask
- *
- * Return state of the priority mask bit from the priority mask register
- */
-extern uint32_t __get_PRIMASK(void);
-
-/**
- * @brief Set the Priority Mask value
- *
- * @param priMask PriMask
- *
- * Set the priority mask bit in the priority mask register
- */
-extern void __set_PRIMASK(uint32_t priMask);
-
-/**
- * @brief Return the Fault Mask value
- *
- * @return FaultMask
- *
- * Return the content of the fault mask register
- */
-extern uint32_t __get_FAULTMASK(void);
-
-/**
- * @brief Set the Fault Mask value
- *
- * @param faultMask faultMask value
- *
- * Set the fault mask register
- */
-extern void __set_FAULTMASK(uint32_t faultMask);
-
-/**
- * @brief Return the Control Register value
- *
- * @return Control value
- *
- * Return the content of the control register
- */
-extern uint32_t __get_CONTROL(void);
-
-/**
- * @brief Set the Control Register value
- *
- * @param control Control value
- *
- * Set the control register
- */
-extern void __set_CONTROL(uint32_t control);
-
-#else /* (__ARMCC_VERSION >= 400000) */
-
-/**
- * @brief Remove the exclusive lock created by ldrex
- *
- * Removes the exclusive lock which is created by ldrex.
- */
-#define __CLREX __clrex
-
-/**
- * @brief Return the Base Priority value
- *
- * @return BasePriority
- *
- * Return the content of the base priority register
- */
-static __INLINE uint32_t __get_BASEPRI(void)
-{
- register uint32_t __regBasePri __ASM("basepri");
- return(__regBasePri);
-}
-
-/**
- * @brief Set the Base Priority value
- *
- * @param basePri BasePriority
- *
- * Set the base priority register
- */
-static __INLINE void __set_BASEPRI(uint32_t basePri)
-{
- register uint32_t __regBasePri __ASM("basepri");
- __regBasePri = (basePri & 0xff);
-}
-
-/**
- * @brief Return the Priority Mask value
- *
- * @return PriMask
- *
- * Return state of the priority mask bit from the priority mask register
- */
-static __INLINE uint32_t __get_PRIMASK(void)
-{
- register uint32_t __regPriMask __ASM("primask");
- return(__regPriMask);
-}
-
-/**
- * @brief Set the Priority Mask value
- *
- * @param priMask PriMask
- *
- * Set the priority mask bit in the priority mask register
- */
-static __INLINE void __set_PRIMASK(uint32_t priMask)
-{
- register uint32_t __regPriMask __ASM("primask");
- __regPriMask = (priMask);
-}
-
-/**
- * @brief Return the Fault Mask value
- *
- * @return FaultMask
- *
- * Return the content of the fault mask register
- */
-static __INLINE uint32_t __get_FAULTMASK(void)
-{
- register uint32_t __regFaultMask __ASM("faultmask");
- return(__regFaultMask);
-}
-
-/**
- * @brief Set the Fault Mask value
- *
- * @param faultMask faultMask value
- *
- * Set the fault mask register
- */
-static __INLINE void __set_FAULTMASK(uint32_t faultMask)
-{
- register uint32_t __regFaultMask __ASM("faultmask");
- __regFaultMask = (faultMask & 1);
-}
-
-/**
- * @brief Return the Control Register value
- *
- * @return Control value
- *
- * Return the content of the control register
- */
-static __INLINE uint32_t __get_CONTROL(void)
-{
- register uint32_t __regControl __ASM("control");
- return(__regControl);
-}
-
-/**
- * @brief Set the Control Register value
- *
- * @param control Control value
- *
- * Set the control register
- */
-static __INLINE void __set_CONTROL(uint32_t control)
-{
- register uint32_t __regControl __ASM("control");
- __regControl = control;
-}
-
-#endif /* __ARMCC_VERSION */
-
-
-
-#elif (defined (__ICCARM__)) /*------------------ ICC Compiler -------------------*/
-/* IAR iccarm specific functions */
-
-#define __enable_irq __enable_interrupt /*!< global Interrupt enable */
-#define __disable_irq __disable_interrupt /*!< global Interrupt disable */
-
-static __INLINE void __enable_fault_irq() { __ASM ("cpsie f"); }
-static __INLINE void __disable_fault_irq() { __ASM ("cpsid f"); }
-
-#define __NOP __no_operation /*!< no operation intrinsic in IAR Compiler */
-static __INLINE void __WFI() { __ASM ("wfi"); }
-static __INLINE void __WFE() { __ASM ("wfe"); }
-static __INLINE void __SEV() { __ASM ("sev"); }
-static __INLINE void __CLREX() { __ASM ("clrex"); }
-
-/* intrinsic void __ISB(void) */
-/* intrinsic void __DSB(void) */
-/* intrinsic void __DMB(void) */
-/* intrinsic void __set_PRIMASK(); */
-/* intrinsic void __get_PRIMASK(); */
-/* intrinsic void __set_FAULTMASK(); */
-/* intrinsic void __get_FAULTMASK(); */
-/* intrinsic uint32_t __REV(uint32_t value); */
-/* intrinsic uint32_t __REVSH(uint32_t value); */
-/* intrinsic unsigned long __STREX(unsigned long, unsigned long); */
-/* intrinsic unsigned long __LDREX(unsigned long *); */
-
-
-/**
- * @brief Return the Process Stack Pointer
- *
- * @return ProcessStackPointer
- *
- * Return the actual process stack pointer
- */
-extern uint32_t __get_PSP(void);
-
-/**
- * @brief Set the Process Stack Pointer
- *
- * @param topOfProcStack Process Stack Pointer
- *
- * Assign the value ProcessStackPointer to the MSP
- * (process stack pointer) Cortex processor register
- */
-extern void __set_PSP(uint32_t topOfProcStack);
-
-/**
- * @brief Return the Main Stack Pointer
- *
- * @return Main Stack Pointer
- *
- * Return the current value of the MSP (main stack pointer)
- * Cortex processor register
- */
-extern uint32_t __get_MSP(void);
-
-/**
- * @brief Set the Main Stack Pointer
- *
- * @param topOfMainStack Main Stack Pointer
- *
- * Assign the value mainStackPointer to the MSP
- * (main stack pointer) Cortex processor register
- */
-extern void __set_MSP(uint32_t topOfMainStack);
-
-/**
- * @brief Reverse byte order in unsigned short value
- *
- * @param value value to reverse
- * @return reversed value
- *
- * Reverse byte order in unsigned short value
- */
-extern uint32_t __REV16(uint16_t value);
-
-/**
- * @brief Reverse bit order of value
- *
- * @param value value to reverse
- * @return reversed value
- *
- * Reverse bit order of value
- */
-extern uint32_t __RBIT(uint32_t value);
-
-/**
- * @brief LDR Exclusive (8 bit)
- *
- * @param *addr address pointer
- * @return value of (*address)
- *
- * Exclusive LDR command for 8 bit values)
- */
-extern uint8_t __LDREXB(uint8_t *addr);
-
-/**
- * @brief LDR Exclusive (16 bit)
- *
- * @param *addr address pointer
- * @return value of (*address)
- *
- * Exclusive LDR command for 16 bit values
- */
-extern uint16_t __LDREXH(uint16_t *addr);
-
-/**
- * @brief LDR Exclusive (32 bit)
- *
- * @param *addr address pointer
- * @return value of (*address)
- *
- * Exclusive LDR command for 32 bit values
- */
-extern uint32_t __LDREXW(uint32_t *addr);
-
-/**
- * @brief STR Exclusive (8 bit)
- *
- * @param value value to store
- * @param *addr address pointer
- * @return successful / failed
- *
- * Exclusive STR command for 8 bit values
- */
-extern uint32_t __STREXB(uint8_t value, uint8_t *addr);
-
-/**
- * @brief STR Exclusive (16 bit)
- *
- * @param value value to store
- * @param *addr address pointer
- * @return successful / failed
- *
- * Exclusive STR command for 16 bit values
- */
-extern uint32_t __STREXH(uint16_t value, uint16_t *addr);
-
-/**
- * @brief STR Exclusive (32 bit)
- *
- * @param value value to store
- * @param *addr address pointer
- * @return successful / failed
- *
- * Exclusive STR command for 32 bit values
- */
-extern uint32_t __STREXW(uint32_t value, uint32_t *addr);
-
-
-
-#elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/
-/* GNU gcc specific functions */
-
-static __INLINE void __enable_irq() { __ASM volatile ("cpsie i"); }
-static __INLINE void __disable_irq() { __ASM volatile ("cpsid i"); }
-
-static __INLINE void __enable_fault_irq() { __ASM volatile ("cpsie f"); }
-static __INLINE void __disable_fault_irq() { __ASM volatile ("cpsid f"); }
-
-static __INLINE void __NOP() { __ASM volatile ("nop"); }
-static __INLINE void __WFI() { __ASM volatile ("wfi"); }
-static __INLINE void __WFE() { __ASM volatile ("wfe"); }
-static __INLINE void __SEV() { __ASM volatile ("sev"); }
-static __INLINE void __ISB() { __ASM volatile ("isb"); }
-static __INLINE void __DSB() { __ASM volatile ("dsb"); }
-static __INLINE void __DMB() { __ASM volatile ("dmb"); }
-static __INLINE void __CLREX() { __ASM volatile ("clrex"); }
-
-
-/**
- * @brief Return the Process Stack Pointer
- *
- * @return ProcessStackPointer
- *
- * Return the actual process stack pointer
- */
-extern uint32_t __get_PSP(void);
-
-/**
- * @brief Set the Process Stack Pointer
- *
- * @param topOfProcStack Process Stack Pointer
- *
- * Assign the value ProcessStackPointer to the MSP
- * (process stack pointer) Cortex processor register
- */
-extern void __set_PSP(uint32_t topOfProcStack);
-
-/**
- * @brief Return the Main Stack Pointer
- *
- * @return Main Stack Pointer
- *
- * Return the current value of the MSP (main stack pointer)
- * Cortex processor register
- */
-extern uint32_t __get_MSP(void);
-
-/**
- * @brief Set the Main Stack Pointer
- *
- * @param topOfMainStack Main Stack Pointer
- *
- * Assign the value mainStackPointer to the MSP
- * (main stack pointer) Cortex processor register
- */
-extern void __set_MSP(uint32_t topOfMainStack);
-
-/**
- * @brief Return the Base Priority value
- *
- * @return BasePriority
- *
- * Return the content of the base priority register
- */
-extern uint32_t __get_BASEPRI(void);
-
-/**
- * @brief Set the Base Priority value
- *
- * @param basePri BasePriority
- *
- * Set the base priority register
- */
-extern void __set_BASEPRI(uint32_t basePri);
-
-/**
- * @brief Return the Priority Mask value
- *
- * @return PriMask
- *
- * Return state of the priority mask bit from the priority mask register
- */
-extern uint32_t __get_PRIMASK(void);
-
-/**
- * @brief Set the Priority Mask value
- *
- * @param priMask PriMask
- *
- * Set the priority mask bit in the priority mask register
- */
-extern void __set_PRIMASK(uint32_t priMask);
-
-/**
- * @brief Return the Fault Mask value
- *
- * @return FaultMask
- *
- * Return the content of the fault mask register
- */
-extern uint32_t __get_FAULTMASK(void);
-
-/**
- * @brief Set the Fault Mask value
- *
- * @param faultMask faultMask value
- *
- * Set the fault mask register
- */
-extern void __set_FAULTMASK(uint32_t faultMask);
-
-/**
- * @brief Return the Control Register value
-*
-* @return Control value
- *
- * Return the content of the control register
- */
-extern uint32_t __get_CONTROL(void);
-
-/**
- * @brief Set the Control Register value
- *
- * @param control Control value
- *
- * Set the control register
- */
-extern void __set_CONTROL(uint32_t control);
-
-/**
- * @brief Reverse byte order in integer value
- *
- * @param value value to reverse
- * @return reversed value
- *
- * Reverse byte order in integer value
- */
-extern uint32_t __REV(uint32_t value);
-
-/**
- * @brief Reverse byte order in unsigned short value
- *
- * @param value value to reverse
- * @return reversed value
- *
- * Reverse byte order in unsigned short value
- */
-extern uint32_t __REV16(uint16_t value);
-
-/**
- * @brief Reverse byte order in signed short value with sign extension to integer
- *
- * @param value value to reverse
- * @return reversed value
- *
- * Reverse byte order in signed short value with sign extension to integer
- */
-extern int32_t __REVSH(int16_t value);
-
-/**
- * @brief Reverse bit order of value
- *
- * @param value value to reverse
- * @return reversed value
- *
- * Reverse bit order of value
- */
-extern uint32_t __RBIT(uint32_t value);
-
-/**
- * @brief LDR Exclusive (8 bit)
- *
- * @param *addr address pointer
- * @return value of (*address)
- *
- * Exclusive LDR command for 8 bit value
- */
-extern uint8_t __LDREXB(uint8_t *addr);
-
-/**
- * @brief LDR Exclusive (16 bit)
- *
- * @param *addr address pointer
- * @return value of (*address)
- *
- * Exclusive LDR command for 16 bit values
- */
-extern uint16_t __LDREXH(uint16_t *addr);
-
-/**
- * @brief LDR Exclusive (32 bit)
- *
- * @param *addr address pointer
- * @return value of (*address)
- *
- * Exclusive LDR command for 32 bit values
- */
-extern uint32_t __LDREXW(uint32_t *addr);
-
-/**
- * @brief STR Exclusive (8 bit)
- *
- * @param value value to store
- * @param *addr address pointer
- * @return successful / failed
- *
- * Exclusive STR command for 8 bit values
- */
-extern uint32_t __STREXB(uint8_t value, uint8_t *addr);
-
-/**
- * @brief STR Exclusive (16 bit)
- *
- * @param value value to store
- * @param *addr address pointer
- * @return successful / failed
- *
- * Exclusive STR command for 16 bit values
- */
-extern uint32_t __STREXH(uint16_t value, uint16_t *addr);
-
-/**
- * @brief STR Exclusive (32 bit)
- *
- * @param value value to store
- * @param *addr address pointer
- * @return successful / failed
- *
- * Exclusive STR command for 32 bit values
- */
-extern uint32_t __STREXW(uint32_t value, uint32_t *addr);
-
-
-#elif (defined (__TASKING__)) /*------------------ TASKING Compiler ---------------------*/
-/* TASKING carm specific functions */
-
-/*
- * The CMSIS functions have been implemented as intrinsics in the compiler.
- * Please use "carm -?i" to get an up to date list of all instrinsics,
- * Including the CMSIS ones.
- */
-
-#endif
-
-
-/** @addtogroup CMSIS_CM3_Core_FunctionInterface CMSIS CM3 Core Function Interface
- Core Function Interface containing:
- - Core NVIC Functions
- - Core SysTick Functions
- - Core Reset Functions
-*/
-/*@{*/
-
-/* ########################## NVIC functions #################################### */
-
-/**
- * @brief Set the Priority Grouping in NVIC Interrupt Controller
- *
- * @param PriorityGroup is priority grouping field
- *
- * Set the priority grouping field using the required unlock sequence.
- * The parameter priority_grouping is assigned to the field
- * SCB->AIRCR [10:8] PRIGROUP field. Only values from 0..7 are used.
- * In case of a conflict between priority grouping and available
- * priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set.
- */
-static __INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
-{
- uint32_t reg_value;
- uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */
-
- reg_value = SCB->AIRCR; /* read old register configuration */
- reg_value &= ~(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk); /* clear bits to change */
- reg_value = (reg_value |
- (0x5FA << SCB_AIRCR_VECTKEY_Pos) |
- (PriorityGroupTmp << 8)); /* Insert write key and priorty group */
- SCB->AIRCR = reg_value;
-}
-
-/**
- * @brief Get the Priority Grouping from NVIC Interrupt Controller
- *
- * @return priority grouping field
- *
- * Get the priority grouping from NVIC Interrupt Controller.
- * priority grouping is SCB->AIRCR [10:8] PRIGROUP field.
- */
-static __INLINE uint32_t NVIC_GetPriorityGrouping(void)
-{
- return ((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos); /* read priority grouping field */
-}
-
-/**
- * @brief Enable Interrupt in NVIC Interrupt Controller
- *
- * @param IRQn The positive number of the external interrupt to enable
- *
- * Enable a device specific interupt in the NVIC interrupt controller.
- * The interrupt number cannot be a negative value.
- */
-static __INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)
-{
- NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* enable interrupt */
-}
-
-/**
- * @brief Disable the interrupt line for external interrupt specified
- *
- * @param IRQn The positive number of the external interrupt to disable
- *
- * Disable a device specific interupt in the NVIC interrupt controller.
- * The interrupt number cannot be a negative value.
- */
-static __INLINE void NVIC_DisableIRQ(IRQn_Type IRQn)
-{
- NVIC->ICER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* disable interrupt */
-}
-
-/**
- * @brief Read the interrupt pending bit for a device specific interrupt source
- *
- * @param IRQn The number of the device specifc interrupt
- * @return 1 = interrupt pending, 0 = interrupt not pending
- *
- * Read the pending register in NVIC and return 1 if its status is pending,
- * otherwise it returns 0
- */
-static __INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn)
-{
- return((uint32_t) ((NVIC->ISPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0)); /* Return 1 if pending else 0 */
-}
-
-/**
- * @brief Set the pending bit for an external interrupt
- *
- * @param IRQn The number of the interrupt for set pending
- *
- * Set the pending bit for the specified interrupt.
- * The interrupt number cannot be a negative value.
- */
-static __INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn)
-{
- NVIC->ISPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* set interrupt pending */
-}
-
-/**
- * @brief Clear the pending bit for an external interrupt
- *
- * @param IRQn The number of the interrupt for clear pending
- *
- * Clear the pending bit for the specified interrupt.
- * The interrupt number cannot be a negative value.
- */
-static __INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn)
-{
- NVIC->ICPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */
-}
-
-/**
- * @brief Read the active bit for an external interrupt
- *
- * @param IRQn The number of the interrupt for read active bit
- * @return 1 = interrupt active, 0 = interrupt not active
- *
- * Read the active register in NVIC and returns 1 if its status is active,
- * otherwise it returns 0.
- */
-static __INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn)
-{
- return((uint32_t)((NVIC->IABR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0)); /* Return 1 if active else 0 */
-}
-
-/**
- * @brief Set the priority for an interrupt
- *
- * @param IRQn The number of the interrupt for set priority
- * @param priority The priority to set
- *
- * Set the priority for the specified interrupt. The interrupt
- * number can be positive to specify an external (device specific)
- * interrupt, or negative to specify an internal (core) interrupt.
- *
- * Note: The priority cannot be set for every core interrupt.
- */
-static __INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
-{
- if(IRQn < 0) {
- SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for Cortex-M3 System Interrupts */
- else {
- NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for device specific Interrupts */
-}
-
-/**
- * @brief Read the priority for an interrupt
- *
- * @param IRQn The number of the interrupt for get priority
- * @return The priority for the interrupt
- *
- * Read the priority for the specified interrupt. The interrupt
- * number can be positive to specify an external (device specific)
- * interrupt, or negative to specify an internal (core) interrupt.
- *
- * The returned priority value is automatically aligned to the implemented
- * priority bits of the microcontroller.
- *
- * Note: The priority cannot be set for every core interrupt.
- */
-static __INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn)
-{
-
- if(IRQn < 0) {
- return((uint32_t)(SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] >> (8 - __NVIC_PRIO_BITS))); } /* get priority for Cortex-M3 system interrupts */
- else {
- return((uint32_t)(NVIC->IP[(uint32_t)(IRQn)] >> (8 - __NVIC_PRIO_BITS))); } /* get priority for device specific interrupts */
-}
-
-
-/**
- * @brief Encode the priority for an interrupt
- *
- * @param PriorityGroup The used priority group
- * @param PreemptPriority The preemptive priority value (starting from 0)
- * @param SubPriority The sub priority value (starting from 0)
- * @return The encoded priority for the interrupt
- *
- * Encode the priority for an interrupt with the given priority group,
- * preemptive priority value and sub priority value.
- * In case of a conflict between priority grouping and available
- * priority bits (__NVIC_PRIO_BITS) the samllest possible priority group is set.
- *
- * The returned priority value can be used for NVIC_SetPriority(...) function
- */
-static __INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority)
-{
- uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */
- uint32_t PreemptPriorityBits;
- uint32_t SubPriorityBits;
-
- PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp;
- SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS;
-
- return (
- ((PreemptPriority & ((1 << (PreemptPriorityBits)) - 1)) << SubPriorityBits) |
- ((SubPriority & ((1 << (SubPriorityBits )) - 1)))
- );
-}
-
-
-/**
- * @brief Decode the priority of an interrupt
- *
- * @param Priority The priority for the interrupt
- * @param PriorityGroup The used priority group
- * @param pPreemptPriority The preemptive priority value (starting from 0)
- * @param pSubPriority The sub priority value (starting from 0)
- *
- * Decode an interrupt priority value with the given priority group to
- * preemptive priority value and sub priority value.
- * In case of a conflict between priority grouping and available
- * priority bits (__NVIC_PRIO_BITS) the samllest possible priority group is set.
- *
- * The priority value can be retrieved with NVIC_GetPriority(...) function
- */
-static __INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* pPreemptPriority, uint32_t* pSubPriority)
-{
- uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */
- uint32_t PreemptPriorityBits;
- uint32_t SubPriorityBits;
-
- PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp;
- SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS;
-
- *pPreemptPriority = (Priority >> SubPriorityBits) & ((1 << (PreemptPriorityBits)) - 1);
- *pSubPriority = (Priority ) & ((1 << (SubPriorityBits )) - 1);
-}
-
-
-
-/* ################################## SysTick function ############################################ */
-
-#if (!defined (__Vendor_SysTickConfig)) || (__Vendor_SysTickConfig == 0)
-
-/**
- * @brief Initialize and start the SysTick counter and its interrupt.
- *
- * @param ticks number of ticks between two interrupts
- * @return 1 = failed, 0 = successful
- *
- * Initialise the system tick timer and its interrupt and start the
- * system tick timer / counter in free running mode to generate
- * periodical interrupts.
- */
-static __INLINE uint32_t SysTick_Config(uint32_t ticks)
-{
- if (ticks > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */
-
- SysTick->LOAD = (ticks & SysTick_LOAD_RELOAD_Msk) - 1; /* set reload register */
- NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1); /* set Priority for Cortex-M0 System Interrupts */
- SysTick->VAL = 0; /* Load the SysTick Counter Value */
- SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
- SysTick_CTRL_TICKINT_Msk |
- SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */
- return (0); /* Function successful */
-}
-
-#endif
-
-
-
-
-/* ################################## Reset function ############################################ */
-
-/**
- * @brief Initiate a system reset request.
- *
- * Initiate a system reset request to reset the MCU
- */
-static __INLINE void NVIC_SystemReset(void)
-{
- SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) |
- (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |
- SCB_AIRCR_SYSRESETREQ_Msk); /* Keep priority group unchanged */
- __DSB(); /* Ensure completion of memory access */
- while(1); /* wait until reset */
-}
-
-/*@}*/ /* end of group CMSIS_CM3_Core_FunctionInterface */
-
-
-
-/* ##################################### Debug In/Output function ########################################### */
-
-/** @addtogroup CMSIS_CM3_CoreDebugInterface CMSIS CM3 Core Debug Interface
- Core Debug Interface containing:
- - Core Debug Receive / Transmit Functions
- - Core Debug Defines
- - Core Debug Variables
-*/
-/*@{*/
-
-extern volatile int ITM_RxBuffer; /*!< variable to receive characters */
-#define ITM_RXBUFFER_EMPTY 0x5AA55AA5 /*!< value identifying ITM_RxBuffer is ready for next character */
-
-
-/**
- * @brief Outputs a character via the ITM channel 0
- *
- * @param ch character to output
- * @return character to output
- *
- * The function outputs a character via the ITM channel 0.
- * The function returns when no debugger is connected that has booked the output.
- * It is blocking when a debugger is connected, but the previous character send is not transmitted.
- */
-static __INLINE uint32_t ITM_SendChar (uint32_t ch)
-{
- if ((CoreDebug->DEMCR & CoreDebug_DEMCR_TRCENA_Msk) && /* Trace enabled */
- (ITM->TCR & ITM_TCR_ITMENA_Msk) && /* ITM enabled */
- (ITM->TER & (1ul << 0) ) ) /* ITM Port #0 enabled */
- {
- while (ITM->PORT[0].u32 == 0);
- ITM->PORT[0].u8 = (uint8_t) ch;
- }
- return (ch);
-}
-
-
-/**
- * @brief Inputs a character via variable ITM_RxBuffer
- *
- * @return received character, -1 = no character received
- *
- * The function inputs a character via variable ITM_RxBuffer.
- * The function returns when no debugger is connected that has booked the output.
- * It is blocking when a debugger is connected, but the previous character send is not transmitted.
- */
-static __INLINE int ITM_ReceiveChar (void) {
- int ch = -1; /* no character available */
-
- if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) {
- ch = ITM_RxBuffer;
- ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */
- }
-
- return (ch);
-}
-
-
-/**
- * @brief Check if a character via variable ITM_RxBuffer is available
- *
- * @return 1 = character available, 0 = no character available
- *
- * The function checks variable ITM_RxBuffer whether a character is available or not.
- * The function returns '1' if a character is available and '0' if no character is available.
- */
-static __INLINE int ITM_CheckChar (void) {
-
- if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) {
- return (0); /* no character available */
- } else {
- return (1); /* character available */
- }
-}
-
-/*@}*/ /* end of group CMSIS_CM3_core_DebugInterface */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/ /* end of group CMSIS_CM3_core_definitions */
-
-#endif /* __CM3_CORE_H__ */
-
-/*lint -restore */