RTX5: added support for ARMv8-M Mainline (including TrustZone Context Management)
diff --git a/ARM.CMSIS.pdsc b/ARM.CMSIS.pdsc
index b7175ed..c3a7af3 100644
--- a/ARM.CMSIS.pdsc
+++ b/ARM.CMSIS.pdsc
@@ -12,8 +12,8 @@
CMSIS_Core:
- Added new file cmsis_compiler.h.
- Deleted deprecated files core_cmfunc.h, core_cminstr.h, core_cmsimd.h.
- - Reworked compiler secific include files.
- - Reworked core dependant include files.
+ - Reworked compiler specific include files.
+ - Reworked core dependent include files.
- Added __PACKED macro.
</release>
<release version="5.0.0-Beta11">
@@ -814,6 +814,25 @@
<require Tcompiler="ARMCC"/>
</condition>
+ <condition id="ARMv8MBL_LE_ARMCC">
+ <description>ARMv8-M Baseline processor based device in little endian mode for the ARM Compiler</description>
+ <require Dcore="ARMV8MBL" Dendian="Little-endian"/>
+ <require Tcompiler="ARMCC"/>
+ </condition>
+
+ <condition id="ARMv8MML_LE_ARMCC">
+ <description>ARMv8-M Mainline processor based device in little endian mode for the ARM Compiler</description>
+ <require Dcore="ARMV8MML" Dfpu="0" Dendian="Little-endian"/>
+ <require Tcompiler="ARMCC"/>
+ </condition>
+
+ <condition id="ARMv8MML_FP_LE_ARMCC">
+ <description>ARMv8-M Mainline processor based device using Floating Point Unit in little endian mode for the ARM Compiler</description>
+ <accept Dcore="ARMV8MML" Dfpu="SP_FPU" Dendian="Little-endian"/>
+ <accept Dcore="ARMV8MML" Dfpu="DP_FPU" Dendian="Little-endian"/>
+ <require Tcompiler="ARMCC"/>
+ </condition>
+
<!-- GCC compiler -->
<condition id="CM0_LE_GCC">
<description>Cortex-M0 or Cortex-M0+ or SC000 processor based device in little endian mode for the GCC Compiler</description>
@@ -1056,23 +1075,32 @@
<require Tcompiler="IAR"/>
</condition>
- <condition id="RTOS RTX Dependency">
+ <condition id="RTOS RTX">
<description>Components required for RTOS RTX</description>
<require condition="Cortex-M Device"/>
<require Cclass="Device" Cgroup="Startup"/>
- <deny Cclass="CMSIS" Cgroup="RTOS2" Csub="Keil RTX5"/> -->
+ <deny Cclass="CMSIS" Cgroup="RTOS2" Csub="Keil RTX5"/>
</condition>
- <condition id="RTOS RTX5 Dependency">
+ <condition id="RTOS RTX5">
<description>Components required for RTOS RTX5</description>
- <require Cclass="CMSIS" Cgroup="RTOS2" Csub="Keil RTX5"/> -->
+ <require condition="Cortex-M Device"/>
+ <require Cclass="CMSIS" Cgroup="RTOS2" Csub="Keil RTX5"/>
</condition>
- <condition id="RTOS2 RTX5 Dependency">
+ <condition id="RTOS2 RTX5">
<description>Components required for RTOS2 RTX5</description>
<require condition="Cortex-M Device"/>
<require Cclass="CMSIS" Cgroup="CORE"/>
<require Cclass="Device" Cgroup="Startup"/>
<deny Cclass="CMSIS" Cgroup="RTOS" Csub="Keil RTX"/>
</condition>
+ <condition id="RTOS2 RTX5 ARMv8M">
+ <description>Components required for RTOS2 RTX5 on ARMv8M</description>
+ <accept Dcore="ARMV8MBL"/>
+ <accept Dcore="ARMV8MML"/>
+ <require Cclass="CMSIS" Cgroup="CORE"/>
+ <require Cclass="Device" Cgroup="Startup"/>
+ </condition>
+
</conditions>
<components>
@@ -1360,7 +1388,7 @@
</component>
<!-- CMSIS-RTOS Keil RTX component -->
- <component Cclass="CMSIS" Cgroup="RTOS" Csub="Keil RTX" Cversion="4.81.0" Capiversion="1.0" condition="RTOS RTX Dependency">
+ <component Cclass="CMSIS" Cgroup="RTOS" Csub="Keil RTX" Cversion="4.81.0" Capiversion="1.0" condition="RTOS RTX">
<description>CMSIS-RTOS RTX implementation for Cortex-M, SC000, and SC300</description>
<RTE_Components_h>
<!-- the following content goes into file 'RTE_Components.h' -->
@@ -1436,7 +1464,7 @@
</component>
<!-- CMSIS-RTOS Keil RTX5 component -->
- <component Cclass="CMSIS" Cgroup="RTOS" Csub="Keil RTX5" Cversion="5.0.0-Alpha" Capiversion="1.0" condition="RTOS RTX5 Dependency">
+ <component Cclass="CMSIS" Cgroup="RTOS" Csub="Keil RTX5" Cversion="5.0.0-Alpha" Capiversion="1.0" condition="RTOS RTX5">
<description>CMSIS-RTOS RTX5 implementation for Cortex-M, SC000, and SC300</description>
<RTE_Components_h>
<!-- the following content goes into file 'RTE_Components.h' -->
@@ -1452,7 +1480,7 @@
</component>
<!-- CMSIS-RTOS2 Keil RTX5 component -->
- <component Cclass="CMSIS" Cgroup="RTOS2" Csub="Keil RTX5" Cversion="5.0.0-Alpha" Capiversion="2.0" condition="RTOS2 RTX5 Dependency">
+ <component Cclass="CMSIS" Cgroup="RTOS2" Csub="Keil RTX5" Cvariant="Release" Cversion="5.0.0-Alpha" Capiversion="2.0" condition="RTOS2 RTX5">
<description>CMSIS-RTOS2 RTX5 implementation for Cortex-M, SC000, and SC300</description>
<RTE_Components_h>
<!-- the following content goes into file 'RTE_Components.h' -->
@@ -1492,6 +1520,67 @@
<file category="library" condition="CM7F_LE_GCC" name="CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM4F.a" src="CMSIS/RTOS2/RTX/Source"/>
</files>
</component>
+ <component Cclass="CMSIS" Cgroup="RTOS2" Csub="Keil RTX5" Cvariant="Release" Cversion="5.0.0-Alpha" Capiversion="2.0" condition="RTOS2 RTX5 ARMv8M">
+ <description>CMSIS-RTOS2 RTX5 implementation for ARMv8-M</description>
+ <RTE_Components_h>
+ <!-- the following content goes into file 'RTE_Components.h' -->
+ #define RTE_CMSIS_RTOS2 /* CMSIS-RTOS2 */
+ #define RTE_CMSIS_RTOS2_RTX5 /* CMSIS-RTOS2 Keil RTX5 */
+ </RTE_Components_h>
+ <files>
+ <!-- RTX documentation -->
+ <file category="doc" name="CMSIS/Documentation/RTOS2/html/rtx5_impl.html"/>
+
+ <!-- RTX header files -->
+ <file category="header" name="CMSIS/RTOS2/Include/cmsis_os2.h"/>
+ <file category="header" name="CMSIS/RTOS2/RTX/Include/rtx_os.h"/>
+
+ <!-- RTX configuration -->
+ <file category="source" attr="config" name="CMSIS/RTOS2/RTX/Config/RTX_Config.c" version="5.0.0"/>
+
+ <!-- RTX templates -->
+ <file category="source" attr="template" name="CMSIS/RTOS2/RTX/Template/main.c" select="CMSIS-RTOS 'main' function"/>
+ <file category="source" attr="template" name="CMSIS/RTOS2/RTX/Source/user_svc.c" select="CMSIS-RTOS User SVC"/>
+ <file category="other" name="CMSIS/RTOS2/RTX/RTX5.scvd"/>
+
+ <!-- RTX libraries (CPU and Compiler dependent) -->
+ <!-- ARMCC -->
+ <!-- <file category="library" condition="ARMv8MBL_LE_ARMCC" name="CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MB.lib" src="CMSIS/RTOS2/RTX/Source"/> -->
+ <file category="library" condition="ARMv8MML_LE_ARMCC" name="CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MM.lib" src="CMSIS/RTOS2/RTX/Source"/>
+ <file category="library" condition="ARMv8MML_FP_LE_ARMCC" name="CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMF.lib" src="CMSIS/RTOS2/RTX/Source"/>
+ </files>
+ </component>
+ <component Cclass="CMSIS" Cgroup="RTOS2" Csub="Keil RTX5" Cvariant="Release NS" Cversion="5.0.0-Alpha" Capiversion="2.0" condition="RTOS2 RTX5 ARMv8M">
+ <description>CMSIS-RTOS2 RTX5 implementation for ARMv8-M None-Secure Domain</description>
+ <RTE_Components_h>
+ <!-- the following content goes into file 'RTE_Components.h' -->
+ #define RTE_CMSIS_RTOS2 /* CMSIS-RTOS2 */
+ #define RTE_CMSIS_RTOS2_RTX5 /* CMSIS-RTOS2 Keil RTX5 */
+ </RTE_Components_h>
+ <files>
+ <!-- RTX documentation -->
+ <file category="doc" name="CMSIS/Documentation/RTOS2/html/rtx5_impl.html"/>
+
+ <!-- RTX header files -->
+ <file category="header" name="CMSIS/RTOS2/Include/cmsis_os2.h"/>
+ <file category="header" name="CMSIS/RTOS2/RTX/Include/rtx_os.h"/>
+
+ <!-- RTX configuration -->
+ <file category="source" attr="config" name="CMSIS/RTOS2/RTX/Config/RTX_Config.c" version="5.0.0"/>
+
+ <!-- RTX templates -->
+ <file category="source" attr="template" name="CMSIS/RTOS2/RTX/Template/main.c" select="CMSIS-RTOS 'main' function"/>
+ <file category="source" attr="template" name="CMSIS/RTOS2/RTX/Source/user_svc.c" select="CMSIS-RTOS User SVC"/>
+ <file category="other" name="CMSIS/RTOS2/RTX/RTX5.scvd"/>
+
+ <!-- RTX libraries (CPU and Compiler dependent) -->
+ <!-- ARMCC -->
+ <!-- <file category="library" condition="ARMv8MBL_LE_ARMCC" name="CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MBN.lib" src="CMSIS/RTOS2/RTX/Source"/> -->
+ <file category="library" condition="ARMv8MML_LE_ARMCC" name="CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMN.lib" src="CMSIS/RTOS2/RTX/Source"/>
+ <file category="library" condition="ARMv8MML_FP_LE_ARMCC" name="CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMFN.lib" src="CMSIS/RTOS2/RTX/Source"/>
+ </files>
+ </component>
+
</components>
<boards>
@@ -1660,7 +1749,7 @@
</attributes>
</example>
- <example name="CMSIS-RTOS2 Blinky" doc="Abstract.txt" folder="CMSIS/RTOS2/RTX/Examples/Simulation/RTX5_Blinky">
+ <example name="CMSIS-RTOS2 Blinky" doc="Abstract.txt" folder="CMSIS/RTOS2/RTX/Examples/Simulation/RTX5_Blinky">
<description>CMSIS-RTOS2 Blinky example</description>
<board name="uVision Simulator" vendor="Keil"/>
<project>
diff --git a/CMSIS/RTOS2/RTX/Include/rtx_config.h b/CMSIS/RTOS2/RTX/Include/rtx_config.h
index f805dc3..debeeb0 100644
--- a/CMSIS/RTOS2/RTX/Include/rtx_config.h
+++ b/CMSIS/RTOS2/RTX/Include/rtx_config.h
@@ -113,7 +113,7 @@
&os_idle_thread_stack,
(uint32_t)sizeof(os_idle_thread_stack),
osPriorityIdle,
- { 0U, 0U }
+ 0U, 0U
};
@@ -161,7 +161,7 @@
&os_timer_thread_stack,
(uint32_t)sizeof(os_timer_thread_stack),
(osPriority_t)OS_TIMER_THREAD_PRIO,
- { 0U, 0U }
+ 0U, 0U
};
// Timer Message Queue Control Block
diff --git a/CMSIS/RTOS2/RTX/Include/rtx_os.h b/CMSIS/RTOS2/RTX/Include/rtx_os.h
index af4c0d8..c44a7b0 100644
--- a/CMSIS/RTOS2/RTX/Include/rtx_os.h
+++ b/CMSIS/RTOS2/RTX/Include/rtx_os.h
@@ -99,10 +99,6 @@
#define os_ThreadFlagDefStack 0x10U ///< Default Stack flag
#define os_ThreadFlagExitPtr 0x20U ///< Exit Pointer flag
-/// Stack Frame definitions
-#define os_StackFrameBasic 0x00U ///< Stack Frame: Basic (CPU)
-#define os_StackFrameExtended 0x01U ///< Stack Frame: Extended (CPU and FPU)
-
/// Stack Marker definitions
#define os_StackMagicWord 0xE25A2EA5U ///< Stack Magic Word (Stack Base)
#define os_StackFillPattern 0xCCCCCCCCU ///< Stack Fill Pattern
@@ -122,7 +118,7 @@
uint32_t delay; ///< Delay Time
int8_t priority; ///< Thread Priority
int8_t priority_base; ///< Base Priority
- uint8_t stack_frame; ///< Stack Frame
+ uint8_t stack_frame; ///< Stack Frame (EXC_RETURN[7..0])
uint8_t flags_options; ///< Thread/Event Flags Options
int32_t wait_flags; ///< Waiting Thread/Event Flags
int32_t thread_flags; ///< Thread Flags
@@ -130,6 +126,7 @@
void *stack_mem; ///< Stack Memory
uint32_t stack_size; ///< Stack Size
uint32_t sp; ///< Current Stack Pointer
+ uint32_t tz_memory; ///< TrustZone Memory Identifier
} os_thread_t;
diff --git a/CMSIS/RTOS2/RTX/Include1/cmsis_os.h b/CMSIS/RTOS2/RTX/Include1/cmsis_os.h
index 84b8a78..cca7a3b 100644
--- a/CMSIS/RTOS2/RTX/Include1/cmsis_os.h
+++ b/CMSIS/RTOS2/RTX/Include1/cmsis_os.h
@@ -17,7 +17,7 @@
*
* ----------------------------------------------------------------------
*
- * $Date: 30. June 2016
+ * $Date: 20. September 2016
* $Revision: V2.0
*
* Project: CMSIS-RTOS API
@@ -428,7 +428,7 @@
(instances == 1) ? os_ThreadCbSize : 0U, \
((stacksz) && (instances == 1)) ? (&os_thread_stack##name) : NULL, \
8*((stacksz+7)/8), \
- (priority), { 0U, 0U } } }
+ (priority), 0U, 0U } }
#endif
#endif
diff --git a/CMSIS/RTOS2/RTX/Library/ARM/MDK/RTX_CM.uvoptx b/CMSIS/RTOS2/RTX/Library/ARM/MDK/RTX_CM.uvoptx
index 607a7af..c423e08 100644
--- a/CMSIS/RTOS2/RTX/Library/ARM/MDK/RTX_CM.uvoptx
+++ b/CMSIS/RTOS2/RTX/Library/ARM/MDK/RTX_CM.uvoptx
@@ -435,6 +435,721 @@
</TargetOption>
</Target>
+ <Target>
+ <TargetName>ARMv8MBL_LE</TargetName>
+ <ToolsetNumber>0x4</ToolsetNumber>
+ <ToolsetName>ARM-ADS</ToolsetName>
+ <TargetOption>
+ <CLKADS>12000000</CLKADS>
+ <OPTTT>
+ <gFlags>1</gFlags>
+ <BeepAtEnd>1</BeepAtEnd>
+ <RunSim>0</RunSim>
+ <RunTarget>1</RunTarget>
+ <RunAbUc>0</RunAbUc>
+ </OPTTT>
+ <OPTHX>
+ <HexSelection>1</HexSelection>
+ <FlashByte>65535</FlashByte>
+ <HexRangeLowAddress>0</HexRangeLowAddress>
+ <HexRangeHighAddress>0</HexRangeHighAddress>
+ <HexOffset>0</HexOffset>
+ </OPTHX>
+ <OPTLEX>
+ <PageWidth>79</PageWidth>
+ <PageLength>66</PageLength>
+ <TabStop>8</TabStop>
+ <ListingPath>.\ARMv8MBL_LE\</ListingPath>
+ </OPTLEX>
+ <ListingPage>
+ <CreateCListing>1</CreateCListing>
+ <CreateAListing>1</CreateAListing>
+ <CreateLListing>1</CreateLListing>
+ <CreateIListing>0</CreateIListing>
+ <AsmCond>1</AsmCond>
+ <AsmSymb>1</AsmSymb>
+ <AsmXref>0</AsmXref>
+ <CCond>1</CCond>
+ <CCode>0</CCode>
+ <CListInc>0</CListInc>
+ <CSymb>0</CSymb>
+ <LinkerCodeListing>0</LinkerCodeListing>
+ </ListingPage>
+ <OPTXL>
+ <LMap>1</LMap>
+ <LComments>1</LComments>
+ <LGenerateSymbols>1</LGenerateSymbols>
+ <LLibSym>1</LLibSym>
+ <LLines>1</LLines>
+ <LLocSym>1</LLocSym>
+ <LPubSym>1</LPubSym>
+ <LXref>0</LXref>
+ <LExpSel>0</LExpSel>
+ </OPTXL>
+ <OPTFL>
+ <tvExp>1</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <IsCurrentTarget>0</IsCurrentTarget>
+ </OPTFL>
+ <CpuCode>7</CpuCode>
+ <DebugOpt>
+ <uSim>0</uSim>
+ <uTrg>1</uTrg>
+ <sLdApp>1</sLdApp>
+ <sGomain>1</sGomain>
+ <sRbreak>1</sRbreak>
+ <sRwatch>1</sRwatch>
+ <sRmem>1</sRmem>
+ <sRfunc>1</sRfunc>
+ <sRbox>1</sRbox>
+ <tLdApp>1</tLdApp>
+ <tGomain>1</tGomain>
+ <tRbreak>1</tRbreak>
+ <tRwatch>1</tRwatch>
+ <tRmem>1</tRmem>
+ <tRfunc>0</tRfunc>
+ <tRbox>1</tRbox>
+ <tRtrace>1</tRtrace>
+ <sRSysVw>1</sRSysVw>
+ <tRSysVw>1</tRSysVw>
+ <sRunDeb>0</sRunDeb>
+ <sLrtime>0</sLrtime>
+ <nTsel>13</nTsel>
+ <sDll></sDll>
+ <sDllPa></sDllPa>
+ <sDlgDll></sDlgDll>
+ <sDlgPa></sDlgPa>
+ <sIfile></sIfile>
+ <tDll></tDll>
+ <tDllPa></tDllPa>
+ <tDlgDll></tDlgDll>
+ <tDlgPa></tDlgPa>
+ <tIfile></tIfile>
+ <pMon>BIN\UL2V8M.DLL</pMon>
+ </DebugOpt>
+ <TargetDriverDllRegistry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>UL2V8M</Key>
+ <Name>UL2V8M(-S0 -C0 -P0 -FC1000 -FD20000000</Name>
+ </SetRegEntry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>UL2CM3</Key>
+ <Name>UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0NEW_DEVICE -FL040000 -FS00 -FP0($$Device:ARMCM4_FP$Device\ARM\Flash\NEW_DEVICE.FLM)</Name>
+ </SetRegEntry>
+ </TargetDriverDllRegistry>
+ <Breakpoint/>
+ <Tracepoint>
+ <THDelay>0</THDelay>
+ </Tracepoint>
+ <DebugFlag>
+ <trace>0</trace>
+ <periodic>1</periodic>
+ <aLwin>0</aLwin>
+ <aCover>0</aCover>
+ <aSer1>0</aSer1>
+ <aSer2>0</aSer2>
+ <aPa>0</aPa>
+ <viewmode>0</viewmode>
+ <vrSel>0</vrSel>
+ <aSym>0</aSym>
+ <aTbox>0</aTbox>
+ <AscS1>0</AscS1>
+ <AscS2>0</AscS2>
+ <AscS3>0</AscS3>
+ <aSer3>0</aSer3>
+ <eProf>0</eProf>
+ <aLa>0</aLa>
+ <aPa1>0</aPa1>
+ <AscS4>0</AscS4>
+ <aSer4>0</aSer4>
+ <StkLoc>0</StkLoc>
+ <TrcWin>0</TrcWin>
+ <newCpu>0</newCpu>
+ <uProt>0</uProt>
+ </DebugFlag>
+ <LintExecutable></LintExecutable>
+ <LintConfigFile></LintConfigFile>
+ <bLintAuto>0</bLintAuto>
+ <Lin2Executable></Lin2Executable>
+ <Lin2ConfigFile></Lin2ConfigFile>
+ <bLin2Auto>0</bLin2Auto>
+ </TargetOption>
+ </Target>
+
+ <Target>
+ <TargetName>ARMv8MML_LE</TargetName>
+ <ToolsetNumber>0x4</ToolsetNumber>
+ <ToolsetName>ARM-ADS</ToolsetName>
+ <TargetOption>
+ <CLKADS>12000000</CLKADS>
+ <OPTTT>
+ <gFlags>1</gFlags>
+ <BeepAtEnd>1</BeepAtEnd>
+ <RunSim>0</RunSim>
+ <RunTarget>1</RunTarget>
+ <RunAbUc>0</RunAbUc>
+ </OPTTT>
+ <OPTHX>
+ <HexSelection>1</HexSelection>
+ <FlashByte>65535</FlashByte>
+ <HexRangeLowAddress>0</HexRangeLowAddress>
+ <HexRangeHighAddress>0</HexRangeHighAddress>
+ <HexOffset>0</HexOffset>
+ </OPTHX>
+ <OPTLEX>
+ <PageWidth>79</PageWidth>
+ <PageLength>66</PageLength>
+ <TabStop>8</TabStop>
+ <ListingPath>.\ARMv8MML_LE\</ListingPath>
+ </OPTLEX>
+ <ListingPage>
+ <CreateCListing>1</CreateCListing>
+ <CreateAListing>1</CreateAListing>
+ <CreateLListing>1</CreateLListing>
+ <CreateIListing>0</CreateIListing>
+ <AsmCond>1</AsmCond>
+ <AsmSymb>1</AsmSymb>
+ <AsmXref>0</AsmXref>
+ <CCond>1</CCond>
+ <CCode>0</CCode>
+ <CListInc>0</CListInc>
+ <CSymb>0</CSymb>
+ <LinkerCodeListing>0</LinkerCodeListing>
+ </ListingPage>
+ <OPTXL>
+ <LMap>1</LMap>
+ <LComments>1</LComments>
+ <LGenerateSymbols>1</LGenerateSymbols>
+ <LLibSym>1</LLibSym>
+ <LLines>1</LLines>
+ <LLocSym>1</LLocSym>
+ <LPubSym>1</LPubSym>
+ <LXref>0</LXref>
+ <LExpSel>0</LExpSel>
+ </OPTXL>
+ <OPTFL>
+ <tvExp>1</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <IsCurrentTarget>0</IsCurrentTarget>
+ </OPTFL>
+ <CpuCode>7</CpuCode>
+ <DebugOpt>
+ <uSim>0</uSim>
+ <uTrg>1</uTrg>
+ <sLdApp>1</sLdApp>
+ <sGomain>1</sGomain>
+ <sRbreak>1</sRbreak>
+ <sRwatch>1</sRwatch>
+ <sRmem>1</sRmem>
+ <sRfunc>1</sRfunc>
+ <sRbox>1</sRbox>
+ <tLdApp>1</tLdApp>
+ <tGomain>1</tGomain>
+ <tRbreak>1</tRbreak>
+ <tRwatch>1</tRwatch>
+ <tRmem>1</tRmem>
+ <tRfunc>0</tRfunc>
+ <tRbox>1</tRbox>
+ <tRtrace>1</tRtrace>
+ <sRSysVw>1</sRSysVw>
+ <tRSysVw>1</tRSysVw>
+ <sRunDeb>0</sRunDeb>
+ <sLrtime>0</sLrtime>
+ <nTsel>13</nTsel>
+ <sDll></sDll>
+ <sDllPa></sDllPa>
+ <sDlgDll></sDlgDll>
+ <sDlgPa></sDlgPa>
+ <sIfile></sIfile>
+ <tDll></tDll>
+ <tDllPa></tDllPa>
+ <tDlgDll></tDlgDll>
+ <tDlgPa></tDlgPa>
+ <tIfile></tIfile>
+ <pMon>BIN\UL2V8M.DLL</pMon>
+ </DebugOpt>
+ <TargetDriverDllRegistry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>UL2V8M</Key>
+ <Name>UL2V8M(-S0 -C0 -P0 -FC1000 -FD20000000</Name>
+ </SetRegEntry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>UL2CM3</Key>
+ <Name>UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0NEW_DEVICE -FL040000 -FS00 -FP0($$Device:ARMCM4_FP$Device\ARM\Flash\NEW_DEVICE.FLM)</Name>
+ </SetRegEntry>
+ </TargetDriverDllRegistry>
+ <Breakpoint/>
+ <Tracepoint>
+ <THDelay>0</THDelay>
+ </Tracepoint>
+ <DebugFlag>
+ <trace>0</trace>
+ <periodic>1</periodic>
+ <aLwin>0</aLwin>
+ <aCover>0</aCover>
+ <aSer1>0</aSer1>
+ <aSer2>0</aSer2>
+ <aPa>0</aPa>
+ <viewmode>0</viewmode>
+ <vrSel>0</vrSel>
+ <aSym>0</aSym>
+ <aTbox>0</aTbox>
+ <AscS1>0</AscS1>
+ <AscS2>0</AscS2>
+ <AscS3>0</AscS3>
+ <aSer3>0</aSer3>
+ <eProf>0</eProf>
+ <aLa>0</aLa>
+ <aPa1>0</aPa1>
+ <AscS4>0</AscS4>
+ <aSer4>0</aSer4>
+ <StkLoc>0</StkLoc>
+ <TrcWin>0</TrcWin>
+ <newCpu>0</newCpu>
+ <uProt>0</uProt>
+ </DebugFlag>
+ <LintExecutable></LintExecutable>
+ <LintConfigFile></LintConfigFile>
+ <bLintAuto>0</bLintAuto>
+ <Lin2Executable></Lin2Executable>
+ <Lin2ConfigFile></Lin2ConfigFile>
+ <bLin2Auto>0</bLin2Auto>
+ </TargetOption>
+ </Target>
+
+ <Target>
+ <TargetName>ARMv8MML_NS_LE</TargetName>
+ <ToolsetNumber>0x4</ToolsetNumber>
+ <ToolsetName>ARM-ADS</ToolsetName>
+ <TargetOption>
+ <CLKADS>12000000</CLKADS>
+ <OPTTT>
+ <gFlags>1</gFlags>
+ <BeepAtEnd>1</BeepAtEnd>
+ <RunSim>0</RunSim>
+ <RunTarget>1</RunTarget>
+ <RunAbUc>0</RunAbUc>
+ </OPTTT>
+ <OPTHX>
+ <HexSelection>1</HexSelection>
+ <FlashByte>65535</FlashByte>
+ <HexRangeLowAddress>0</HexRangeLowAddress>
+ <HexRangeHighAddress>0</HexRangeHighAddress>
+ <HexOffset>0</HexOffset>
+ </OPTHX>
+ <OPTLEX>
+ <PageWidth>79</PageWidth>
+ <PageLength>66</PageLength>
+ <TabStop>8</TabStop>
+ <ListingPath>.\ARMv8MML_NS_LE\</ListingPath>
+ </OPTLEX>
+ <ListingPage>
+ <CreateCListing>1</CreateCListing>
+ <CreateAListing>1</CreateAListing>
+ <CreateLListing>1</CreateLListing>
+ <CreateIListing>0</CreateIListing>
+ <AsmCond>1</AsmCond>
+ <AsmSymb>1</AsmSymb>
+ <AsmXref>0</AsmXref>
+ <CCond>1</CCond>
+ <CCode>0</CCode>
+ <CListInc>0</CListInc>
+ <CSymb>0</CSymb>
+ <LinkerCodeListing>0</LinkerCodeListing>
+ </ListingPage>
+ <OPTXL>
+ <LMap>1</LMap>
+ <LComments>1</LComments>
+ <LGenerateSymbols>1</LGenerateSymbols>
+ <LLibSym>1</LLibSym>
+ <LLines>1</LLines>
+ <LLocSym>1</LLocSym>
+ <LPubSym>1</LPubSym>
+ <LXref>0</LXref>
+ <LExpSel>0</LExpSel>
+ </OPTXL>
+ <OPTFL>
+ <tvExp>1</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <IsCurrentTarget>0</IsCurrentTarget>
+ </OPTFL>
+ <CpuCode>7</CpuCode>
+ <DebugOpt>
+ <uSim>0</uSim>
+ <uTrg>1</uTrg>
+ <sLdApp>1</sLdApp>
+ <sGomain>1</sGomain>
+ <sRbreak>1</sRbreak>
+ <sRwatch>1</sRwatch>
+ <sRmem>1</sRmem>
+ <sRfunc>1</sRfunc>
+ <sRbox>1</sRbox>
+ <tLdApp>1</tLdApp>
+ <tGomain>1</tGomain>
+ <tRbreak>1</tRbreak>
+ <tRwatch>1</tRwatch>
+ <tRmem>1</tRmem>
+ <tRfunc>0</tRfunc>
+ <tRbox>1</tRbox>
+ <tRtrace>1</tRtrace>
+ <sRSysVw>1</sRSysVw>
+ <tRSysVw>1</tRSysVw>
+ <sRunDeb>0</sRunDeb>
+ <sLrtime>0</sLrtime>
+ <nTsel>13</nTsel>
+ <sDll></sDll>
+ <sDllPa></sDllPa>
+ <sDlgDll></sDlgDll>
+ <sDlgPa></sDlgPa>
+ <sIfile></sIfile>
+ <tDll></tDll>
+ <tDllPa></tDllPa>
+ <tDlgDll></tDlgDll>
+ <tDlgPa></tDlgPa>
+ <tIfile></tIfile>
+ <pMon>BIN\UL2V8M.DLL</pMon>
+ </DebugOpt>
+ <TargetDriverDllRegistry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>UL2V8M</Key>
+ <Name>UL2V8M(-S0 -C0 -P0 -FC1000 -FD20000000</Name>
+ </SetRegEntry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>UL2CM3</Key>
+ <Name>UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0NEW_DEVICE -FL040000 -FS00 -FP0($$Device:ARMCM4_FP$Device\ARM\Flash\NEW_DEVICE.FLM)</Name>
+ </SetRegEntry>
+ </TargetDriverDllRegistry>
+ <Breakpoint/>
+ <Tracepoint>
+ <THDelay>0</THDelay>
+ </Tracepoint>
+ <DebugFlag>
+ <trace>0</trace>
+ <periodic>1</periodic>
+ <aLwin>0</aLwin>
+ <aCover>0</aCover>
+ <aSer1>0</aSer1>
+ <aSer2>0</aSer2>
+ <aPa>0</aPa>
+ <viewmode>0</viewmode>
+ <vrSel>0</vrSel>
+ <aSym>0</aSym>
+ <aTbox>0</aTbox>
+ <AscS1>0</AscS1>
+ <AscS2>0</AscS2>
+ <AscS3>0</AscS3>
+ <aSer3>0</aSer3>
+ <eProf>0</eProf>
+ <aLa>0</aLa>
+ <aPa1>0</aPa1>
+ <AscS4>0</AscS4>
+ <aSer4>0</aSer4>
+ <StkLoc>0</StkLoc>
+ <TrcWin>0</TrcWin>
+ <newCpu>0</newCpu>
+ <uProt>0</uProt>
+ </DebugFlag>
+ <LintExecutable></LintExecutable>
+ <LintConfigFile></LintConfigFile>
+ <bLintAuto>0</bLintAuto>
+ <Lin2Executable></Lin2Executable>
+ <Lin2ConfigFile></Lin2ConfigFile>
+ <bLin2Auto>0</bLin2Auto>
+ </TargetOption>
+ </Target>
+
+ <Target>
+ <TargetName>ARMv8MML_SP_LE</TargetName>
+ <ToolsetNumber>0x4</ToolsetNumber>
+ <ToolsetName>ARM-ADS</ToolsetName>
+ <TargetOption>
+ <CLKADS>12000000</CLKADS>
+ <OPTTT>
+ <gFlags>1</gFlags>
+ <BeepAtEnd>1</BeepAtEnd>
+ <RunSim>0</RunSim>
+ <RunTarget>1</RunTarget>
+ <RunAbUc>0</RunAbUc>
+ </OPTTT>
+ <OPTHX>
+ <HexSelection>1</HexSelection>
+ <FlashByte>65535</FlashByte>
+ <HexRangeLowAddress>0</HexRangeLowAddress>
+ <HexRangeHighAddress>0</HexRangeHighAddress>
+ <HexOffset>0</HexOffset>
+ </OPTHX>
+ <OPTLEX>
+ <PageWidth>79</PageWidth>
+ <PageLength>66</PageLength>
+ <TabStop>8</TabStop>
+ <ListingPath>.\ARMv8MML_SP_LE\</ListingPath>
+ </OPTLEX>
+ <ListingPage>
+ <CreateCListing>1</CreateCListing>
+ <CreateAListing>1</CreateAListing>
+ <CreateLListing>1</CreateLListing>
+ <CreateIListing>0</CreateIListing>
+ <AsmCond>1</AsmCond>
+ <AsmSymb>1</AsmSymb>
+ <AsmXref>0</AsmXref>
+ <CCond>1</CCond>
+ <CCode>0</CCode>
+ <CListInc>0</CListInc>
+ <CSymb>0</CSymb>
+ <LinkerCodeListing>0</LinkerCodeListing>
+ </ListingPage>
+ <OPTXL>
+ <LMap>1</LMap>
+ <LComments>1</LComments>
+ <LGenerateSymbols>1</LGenerateSymbols>
+ <LLibSym>1</LLibSym>
+ <LLines>1</LLines>
+ <LLocSym>1</LLocSym>
+ <LPubSym>1</LPubSym>
+ <LXref>0</LXref>
+ <LExpSel>0</LExpSel>
+ </OPTXL>
+ <OPTFL>
+ <tvExp>1</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <IsCurrentTarget>0</IsCurrentTarget>
+ </OPTFL>
+ <CpuCode>7</CpuCode>
+ <DebugOpt>
+ <uSim>0</uSim>
+ <uTrg>1</uTrg>
+ <sLdApp>1</sLdApp>
+ <sGomain>1</sGomain>
+ <sRbreak>1</sRbreak>
+ <sRwatch>1</sRwatch>
+ <sRmem>1</sRmem>
+ <sRfunc>1</sRfunc>
+ <sRbox>1</sRbox>
+ <tLdApp>1</tLdApp>
+ <tGomain>1</tGomain>
+ <tRbreak>1</tRbreak>
+ <tRwatch>1</tRwatch>
+ <tRmem>1</tRmem>
+ <tRfunc>0</tRfunc>
+ <tRbox>1</tRbox>
+ <tRtrace>1</tRtrace>
+ <sRSysVw>1</sRSysVw>
+ <tRSysVw>1</tRSysVw>
+ <sRunDeb>0</sRunDeb>
+ <sLrtime>0</sLrtime>
+ <nTsel>13</nTsel>
+ <sDll></sDll>
+ <sDllPa></sDllPa>
+ <sDlgDll></sDlgDll>
+ <sDlgPa></sDlgPa>
+ <sIfile></sIfile>
+ <tDll></tDll>
+ <tDllPa></tDllPa>
+ <tDlgDll></tDlgDll>
+ <tDlgPa></tDlgPa>
+ <tIfile></tIfile>
+ <pMon>BIN\UL2V8M.DLL</pMon>
+ </DebugOpt>
+ <TargetDriverDllRegistry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>UL2V8M</Key>
+ <Name>UL2V8M(-S0 -C0 -P0 -FD20000000 -FC1000)</Name>
+ </SetRegEntry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>UL2CM3</Key>
+ <Name>UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0NEW_DEVICE -FL040000 -FS00 -FP0($$Device:ARMCM4_FP$Device\ARM\Flash\NEW_DEVICE.FLM)</Name>
+ </SetRegEntry>
+ </TargetDriverDllRegistry>
+ <Breakpoint/>
+ <Tracepoint>
+ <THDelay>0</THDelay>
+ </Tracepoint>
+ <DebugFlag>
+ <trace>0</trace>
+ <periodic>1</periodic>
+ <aLwin>0</aLwin>
+ <aCover>0</aCover>
+ <aSer1>0</aSer1>
+ <aSer2>0</aSer2>
+ <aPa>0</aPa>
+ <viewmode>0</viewmode>
+ <vrSel>0</vrSel>
+ <aSym>0</aSym>
+ <aTbox>0</aTbox>
+ <AscS1>0</AscS1>
+ <AscS2>0</AscS2>
+ <AscS3>0</AscS3>
+ <aSer3>0</aSer3>
+ <eProf>0</eProf>
+ <aLa>0</aLa>
+ <aPa1>0</aPa1>
+ <AscS4>0</AscS4>
+ <aSer4>0</aSer4>
+ <StkLoc>0</StkLoc>
+ <TrcWin>0</TrcWin>
+ <newCpu>0</newCpu>
+ <uProt>0</uProt>
+ </DebugFlag>
+ <LintExecutable></LintExecutable>
+ <LintConfigFile></LintConfigFile>
+ <bLintAuto>0</bLintAuto>
+ <Lin2Executable></Lin2Executable>
+ <Lin2ConfigFile></Lin2ConfigFile>
+ <bLin2Auto>0</bLin2Auto>
+ </TargetOption>
+ </Target>
+
+ <Target>
+ <TargetName>ARMv8MML_SP_NS_LE</TargetName>
+ <ToolsetNumber>0x4</ToolsetNumber>
+ <ToolsetName>ARM-ADS</ToolsetName>
+ <TargetOption>
+ <CLKADS>12000000</CLKADS>
+ <OPTTT>
+ <gFlags>1</gFlags>
+ <BeepAtEnd>1</BeepAtEnd>
+ <RunSim>0</RunSim>
+ <RunTarget>1</RunTarget>
+ <RunAbUc>0</RunAbUc>
+ </OPTTT>
+ <OPTHX>
+ <HexSelection>1</HexSelection>
+ <FlashByte>65535</FlashByte>
+ <HexRangeLowAddress>0</HexRangeLowAddress>
+ <HexRangeHighAddress>0</HexRangeHighAddress>
+ <HexOffset>0</HexOffset>
+ </OPTHX>
+ <OPTLEX>
+ <PageWidth>79</PageWidth>
+ <PageLength>66</PageLength>
+ <TabStop>8</TabStop>
+ <ListingPath>.\ARMv8MML_SP_NS_LE\</ListingPath>
+ </OPTLEX>
+ <ListingPage>
+ <CreateCListing>1</CreateCListing>
+ <CreateAListing>1</CreateAListing>
+ <CreateLListing>1</CreateLListing>
+ <CreateIListing>0</CreateIListing>
+ <AsmCond>1</AsmCond>
+ <AsmSymb>1</AsmSymb>
+ <AsmXref>0</AsmXref>
+ <CCond>1</CCond>
+ <CCode>0</CCode>
+ <CListInc>0</CListInc>
+ <CSymb>0</CSymb>
+ <LinkerCodeListing>0</LinkerCodeListing>
+ </ListingPage>
+ <OPTXL>
+ <LMap>1</LMap>
+ <LComments>1</LComments>
+ <LGenerateSymbols>1</LGenerateSymbols>
+ <LLibSym>1</LLibSym>
+ <LLines>1</LLines>
+ <LLocSym>1</LLocSym>
+ <LPubSym>1</LPubSym>
+ <LXref>0</LXref>
+ <LExpSel>0</LExpSel>
+ </OPTXL>
+ <OPTFL>
+ <tvExp>1</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <IsCurrentTarget>0</IsCurrentTarget>
+ </OPTFL>
+ <CpuCode>7</CpuCode>
+ <DebugOpt>
+ <uSim>0</uSim>
+ <uTrg>1</uTrg>
+ <sLdApp>1</sLdApp>
+ <sGomain>1</sGomain>
+ <sRbreak>1</sRbreak>
+ <sRwatch>1</sRwatch>
+ <sRmem>1</sRmem>
+ <sRfunc>1</sRfunc>
+ <sRbox>1</sRbox>
+ <tLdApp>1</tLdApp>
+ <tGomain>1</tGomain>
+ <tRbreak>1</tRbreak>
+ <tRwatch>1</tRwatch>
+ <tRmem>1</tRmem>
+ <tRfunc>0</tRfunc>
+ <tRbox>1</tRbox>
+ <tRtrace>1</tRtrace>
+ <sRSysVw>1</sRSysVw>
+ <tRSysVw>1</tRSysVw>
+ <sRunDeb>0</sRunDeb>
+ <sLrtime>0</sLrtime>
+ <nTsel>13</nTsel>
+ <sDll></sDll>
+ <sDllPa></sDllPa>
+ <sDlgDll></sDlgDll>
+ <sDlgPa></sDlgPa>
+ <sIfile></sIfile>
+ <tDll></tDll>
+ <tDllPa></tDllPa>
+ <tDlgDll></tDlgDll>
+ <tDlgPa></tDlgPa>
+ <tIfile></tIfile>
+ <pMon>BIN\UL2V8M.DLL</pMon>
+ </DebugOpt>
+ <TargetDriverDllRegistry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>UL2V8M</Key>
+ <Name>UL2V8M(-S0 -C0 -P0 -FD20000000 -FC1000)</Name>
+ </SetRegEntry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>UL2CM3</Key>
+ <Name>UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0NEW_DEVICE -FL040000 -FS00 -FP0($$Device:ARMCM4_FP$Device\ARM\Flash\NEW_DEVICE.FLM)</Name>
+ </SetRegEntry>
+ </TargetDriverDllRegistry>
+ <Breakpoint/>
+ <Tracepoint>
+ <THDelay>0</THDelay>
+ </Tracepoint>
+ <DebugFlag>
+ <trace>0</trace>
+ <periodic>1</periodic>
+ <aLwin>0</aLwin>
+ <aCover>0</aCover>
+ <aSer1>0</aSer1>
+ <aSer2>0</aSer2>
+ <aPa>0</aPa>
+ <viewmode>0</viewmode>
+ <vrSel>0</vrSel>
+ <aSym>0</aSym>
+ <aTbox>0</aTbox>
+ <AscS1>0</AscS1>
+ <AscS2>0</AscS2>
+ <AscS3>0</AscS3>
+ <aSer3>0</aSer3>
+ <eProf>0</eProf>
+ <aLa>0</aLa>
+ <aPa1>0</aPa1>
+ <AscS4>0</AscS4>
+ <aSer4>0</aSer4>
+ <StkLoc>0</StkLoc>
+ <TrcWin>0</TrcWin>
+ <newCpu>0</newCpu>
+ <uProt>0</uProt>
+ </DebugFlag>
+ <LintExecutable></LintExecutable>
+ <LintConfigFile></LintConfigFile>
+ <bLintAuto>0</bLintAuto>
+ <Lin2Executable></Lin2Executable>
+ <Lin2ConfigFile></Lin2ConfigFile>
+ <bLin2Auto>0</bLin2Auto>
+ </TargetOption>
+ </Target>
+
<Group>
<GroupName>Core</GroupName>
<tvExp>1</tvExp>
@@ -629,6 +1344,30 @@
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>16</FileNumber>
+ <FileType>2</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\..\..\Source\ARM\irq_armv8mbl.s</PathWithFileName>
+ <FilenameWithoutPath>irq_armv8mbl.s</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>17</FileNumber>
+ <FileType>2</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\..\..\Source\ARM\irq_armv8mml.s</PathWithFileName>
+ <FilenameWithoutPath>irq_armv8mml.s</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
</Group>
<Group>
diff --git a/CMSIS/RTOS2/RTX/Library/ARM/MDK/RTX_CM.uvprojx b/CMSIS/RTOS2/RTX/Library/ARM/MDK/RTX_CM.uvprojx
index 9a77faa..d8efa2c 100644
--- a/CMSIS/RTOS2/RTX/Library/ARM/MDK/RTX_CM.uvprojx
+++ b/CMSIS/RTOS2/RTX/Library/ARM/MDK/RTX_CM.uvprojx
@@ -10,7 +10,7 @@
<TargetName>CM0_LE</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
- <pArmCC>6050000::V6.5::.\ARMCLANG_6.5</pArmCC>
+ <pArmCC>6050000::V6.5::.\ARMCLANG</pArmCC>
<pCCUsed>6050000::V6.5::.\ARMCLANG</pCCUsed>
<TargetOption>
<TargetCommonOption>
@@ -536,6 +536,92 @@
</FileArmAds>
</FileOption>
</File>
+ <File>
+ <FileName>irq_armv8mbl.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_armv8mbl.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ <File>
+ <FileName>irq_armv8mml.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_armv8mml.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
</Files>
</Group>
<Group>
@@ -1073,6 +1159,92 @@
</FileArmAds>
</FileOption>
</File>
+ <File>
+ <FileName>irq_armv8mbl.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_armv8mbl.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ <File>
+ <FileName>irq_armv8mml.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_armv8mml.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
</Files>
</Group>
<Group>
@@ -1610,6 +1782,3207 @@
<FileType>2</FileType>
<FilePath>..\..\..\Source\ARM\irq_cm4f.s</FilePath>
</File>
+ <File>
+ <FileName>irq_armv8mbl.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_armv8mbl.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ <File>
+ <FileName>irq_armv8mml.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_armv8mml.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>::CMSIS</GroupName>
+ </Group>
+ </Groups>
+ </Target>
+ <Target>
+ <TargetName>ARMv8MBL_LE</TargetName>
+ <ToolsetNumber>0x4</ToolsetNumber>
+ <ToolsetName>ARM-ADS</ToolsetName>
+ <pArmCC>6050000::V6.5::.\ARMCLANG</pArmCC>
+ <pCCUsed>6050000::V6.5::.\ARMCLANG</pCCUsed>
+ <TargetOption>
+ <TargetCommonOption>
+ <Device>ARMv8MBL</Device>
+ <Vendor>ARM</Vendor>
+ <PackID>ARM.CMSIS.5.0.0-Beta12</PackID>
+ <PackURL>http://www.keil.com/pack/</PackURL>
+ <Cpu>IRAM(0x20000000,0x00020000) IROM(0x00000000,0x00040000) CPUTYPE("ARMV8MBL") CLOCK(12000000) ELITTLE</Cpu>
+ <FlashUtilSpec></FlashUtilSpec>
+ <StartupFile></StartupFile>
+ <FlashDriverDll>UL2V8M(-S0 -C0 -P0 -FD20000000 -FC1000)</FlashDriverDll>
+ <DeviceId>0</DeviceId>
+ <RegisterFile>$$Device:ARMv8MBL$Device\ARM\ARMv8MBL\Include\ARMv8MBL.h</RegisterFile>
+ <MemoryEnv></MemoryEnv>
+ <Cmp></Cmp>
+ <Asm></Asm>
+ <Linker></Linker>
+ <OHString></OHString>
+ <InfinionOptionDll></InfinionOptionDll>
+ <SLE66CMisc></SLE66CMisc>
+ <SLE66AMisc></SLE66AMisc>
+ <SLE66LinkerMisc></SLE66LinkerMisc>
+ <SFDFile>$$Device:ARMv8MBL$Device\ARM\SVD\ARMv8MBL.svd</SFDFile>
+ <bCustSvd>0</bCustSvd>
+ <UseEnv>0</UseEnv>
+ <BinPath></BinPath>
+ <IncludePath></IncludePath>
+ <LibPath></LibPath>
+ <RegisterFilePath></RegisterFilePath>
+ <DBRegisterFilePath></DBRegisterFilePath>
+ <TargetStatus>
+ <Error>0</Error>
+ <ExitCodeStop>0</ExitCodeStop>
+ <ButtonStop>0</ButtonStop>
+ <NotGenerated>0</NotGenerated>
+ <InvalidFlash>1</InvalidFlash>
+ </TargetStatus>
+ <OutputDirectory>.\ARMv8MBL_LE\</OutputDirectory>
+ <OutputName>RTX_V8MB</OutputName>
+ <CreateExecutable>0</CreateExecutable>
+ <CreateLib>1</CreateLib>
+ <CreateHexFile>0</CreateHexFile>
+ <DebugInformation>1</DebugInformation>
+ <BrowseInformation>1</BrowseInformation>
+ <ListingPath>.\ARMv8MBL_LE\</ListingPath>
+ <HexFormatSelection>1</HexFormatSelection>
+ <Merge32K>0</Merge32K>
+ <CreateBatchFile>1</CreateBatchFile>
+ <BeforeCompile>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopU1X>0</nStopU1X>
+ <nStopU2X>0</nStopU2X>
+ </BeforeCompile>
+ <BeforeMake>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopB1X>0</nStopB1X>
+ <nStopB2X>0</nStopB2X>
+ </BeforeMake>
+ <AfterMake>
+ <RunUserProg1>1</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name>cmd.exe /C copy ARMv8MBL_LE\RTX_V8MB.lib ..\.</UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopA1X>0</nStopA1X>
+ <nStopA2X>0</nStopA2X>
+ </AfterMake>
+ <SelectedForBatchBuild>0</SelectedForBatchBuild>
+ <SVCSIdString></SVCSIdString>
+ </TargetCommonOption>
+ <CommonProperty>
+ <UseCPPCompiler>0</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>1</IncludeInBuild>
+ <AlwaysBuild>0</AlwaysBuild>
+ <GenerateAssemblyFile>0</GenerateAssemblyFile>
+ <AssembleAssemblyFile>0</AssembleAssemblyFile>
+ <PublicsOnly>0</PublicsOnly>
+ <StopOnExitCode>3</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <DllOption>
+ <SimDllName></SimDllName>
+ <SimDllArguments></SimDllArguments>
+ <SimDlgDll></SimDlgDll>
+ <SimDlgDllArguments></SimDlgDllArguments>
+ <TargetDllName>SARMV8M.DLL</TargetDllName>
+ <TargetDllArguments></TargetDllArguments>
+ <TargetDlgDll>TCM.DLL</TargetDlgDll>
+ <TargetDlgDllArguments>-pV8MBL</TargetDlgDllArguments>
+ </DllOption>
+ <DebugOption>
+ <OPTHX>
+ <HexSelection>1</HexSelection>
+ <HexRangeLowAddress>0</HexRangeLowAddress>
+ <HexRangeHighAddress>0</HexRangeHighAddress>
+ <HexOffset>0</HexOffset>
+ <Oh166RecLen>16</Oh166RecLen>
+ </OPTHX>
+ </DebugOption>
+ <Utilities>
+ <Flash1>
+ <UseTargetDll>1</UseTargetDll>
+ <UseExternalTool>0</UseExternalTool>
+ <RunIndependent>0</RunIndependent>
+ <UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
+ <Capability>1</Capability>
+ <DriverSelection>4096</DriverSelection>
+ </Flash1>
+ <bUseTDR>1</bUseTDR>
+ <Flash2>BIN\UL2V8M.DLL</Flash2>
+ <Flash3></Flash3>
+ <Flash4></Flash4>
+ <pFcarmOut></pFcarmOut>
+ <pFcarmGrp></pFcarmGrp>
+ <pFcArmRoot></pFcArmRoot>
+ <FcArmLst>0</FcArmLst>
+ </Utilities>
+ <TargetArmAds>
+ <ArmAdsMisc>
+ <GenerateListings>0</GenerateListings>
+ <asHll>1</asHll>
+ <asAsm>1</asAsm>
+ <asMacX>1</asMacX>
+ <asSyms>1</asSyms>
+ <asFals>1</asFals>
+ <asDbgD>1</asDbgD>
+ <asForm>1</asForm>
+ <ldLst>0</ldLst>
+ <ldmm>1</ldmm>
+ <ldXref>1</ldXref>
+ <BigEnd>0</BigEnd>
+ <AdsALst>0</AdsALst>
+ <AdsACrf>1</AdsACrf>
+ <AdsANop>0</AdsANop>
+ <AdsANot>0</AdsANot>
+ <AdsLLst>0</AdsLLst>
+ <AdsLmap>1</AdsLmap>
+ <AdsLcgr>1</AdsLcgr>
+ <AdsLsym>1</AdsLsym>
+ <AdsLszi>1</AdsLszi>
+ <AdsLtoi>1</AdsLtoi>
+ <AdsLsun>1</AdsLsun>
+ <AdsLven>1</AdsLven>
+ <AdsLsxf>1</AdsLsxf>
+ <RvctClst>0</RvctClst>
+ <GenPPlst>0</GenPPlst>
+ <AdsCpuType>"ARMV8MBL"</AdsCpuType>
+ <RvctDeviceName></RvctDeviceName>
+ <mOS>0</mOS>
+ <uocRom>0</uocRom>
+ <uocRam>0</uocRam>
+ <hadIROM>1</hadIROM>
+ <hadIRAM>1</hadIRAM>
+ <hadXRAM>0</hadXRAM>
+ <uocXRam>0</uocXRam>
+ <RvdsVP>0</RvdsVP>
+ <hadIRAM2>0</hadIRAM2>
+ <hadIROM2>0</hadIROM2>
+ <StupSel>8</StupSel>
+ <useUlib>0</useUlib>
+ <EndSel>0</EndSel>
+ <uLtcg>0</uLtcg>
+ <nSecure>0</nSecure>
+ <RoSelD>3</RoSelD>
+ <RwSelD>3</RwSelD>
+ <CodeSel>0</CodeSel>
+ <OptFeed>0</OptFeed>
+ <NoZi1>0</NoZi1>
+ <NoZi2>0</NoZi2>
+ <NoZi3>0</NoZi3>
+ <NoZi4>0</NoZi4>
+ <NoZi5>0</NoZi5>
+ <Ro1Chk>0</Ro1Chk>
+ <Ro2Chk>0</Ro2Chk>
+ <Ro3Chk>0</Ro3Chk>
+ <Ir1Chk>1</Ir1Chk>
+ <Ir2Chk>0</Ir2Chk>
+ <Ra1Chk>0</Ra1Chk>
+ <Ra2Chk>0</Ra2Chk>
+ <Ra3Chk>0</Ra3Chk>
+ <Im1Chk>1</Im1Chk>
+ <Im2Chk>0</Im2Chk>
+ <OnChipMemories>
+ <Ocm1>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm1>
+ <Ocm2>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm2>
+ <Ocm3>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm3>
+ <Ocm4>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm4>
+ <Ocm5>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm5>
+ <Ocm6>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm6>
+ <IRAM>
+ <Type>0</Type>
+ <StartAddress>0x20000000</StartAddress>
+ <Size>0x20000</Size>
+ </IRAM>
+ <IROM>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x40000</Size>
+ </IROM>
+ <XRAM>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </XRAM>
+ <OCR_RVCT1>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT1>
+ <OCR_RVCT2>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT2>
+ <OCR_RVCT3>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT3>
+ <OCR_RVCT4>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x40000</Size>
+ </OCR_RVCT4>
+ <OCR_RVCT5>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT5>
+ <OCR_RVCT6>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT6>
+ <OCR_RVCT7>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT7>
+ <OCR_RVCT8>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT8>
+ <OCR_RVCT9>
+ <Type>0</Type>
+ <StartAddress>0x20000000</StartAddress>
+ <Size>0x20000</Size>
+ </OCR_RVCT9>
+ <OCR_RVCT10>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT10>
+ </OnChipMemories>
+ <RvctStartVector></RvctStartVector>
+ </ArmAdsMisc>
+ <Cads>
+ <interw>1</interw>
+ <Optim>4</Optim>
+ <oTime>0</oTime>
+ <SplitLS>0</SplitLS>
+ <OneElfS>1</OneElfS>
+ <Strict>0</Strict>
+ <EnumInt>0</EnumInt>
+ <PlainCh>0</PlainCh>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <wLevel>2</wLevel>
+ <uThumb>0</uThumb>
+ <uSurpInc>0</uSurpInc>
+ <uC99>0</uC99>
+ <useXO>0</useXO>
+ <v6Lang>3</v6Lang>
+ <v6LangP>0</v6LangP>
+ <vShortEn>1</vShortEn>
+ <vShortWch>1</vShortWch>
+ <v6Lto>0</v6Lto>
+ <v6WtE>0</v6WtE>
+ <v6Rtti>0</v6Rtti>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath>..\..\..\Include;..\..\..\..\Include</IncludePath>
+ </VariousControls>
+ </Cads>
+ <Aads>
+ <interw>1</interw>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <thumb>1</thumb>
+ <SplitLS>0</SplitLS>
+ <SwStkChk>0</SwStkChk>
+ <NoWarn>0</NoWarn>
+ <uSurpInc>0</uSurpInc>
+ <useXO>0</useXO>
+ <uClangAs>0</uClangAs>
+ <VariousControls>
+ <MiscControls>--no_hide_all</MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ <LDads>
+ <umfTarg>0</umfTarg>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <noStLib>0</noStLib>
+ <RepFail>1</RepFail>
+ <useFile>0</useFile>
+ <TextAddressRange></TextAddressRange>
+ <DataAddressRange></DataAddressRange>
+ <pXoBase></pXoBase>
+ <ScatterFile></ScatterFile>
+ <IncludeLibs></IncludeLibs>
+ <IncludeLibsPath></IncludeLibsPath>
+ <Misc></Misc>
+ <LinkerInputFile></LinkerInputFile>
+ <DisabledWarnings></DisabledWarnings>
+ </LDads>
+ </TargetArmAds>
+ </TargetOption>
+ <Groups>
+ <Group>
+ <GroupName>Core</GroupName>
+ <Files>
+ <File>
+ <FileName>rtx_kernel.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_kernel.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_thread.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_thread.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_delay.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_delay.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_timer.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_timer.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_evflags.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_evflags.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_mutex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_mutex.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_semaphore.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_semaphore.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_memory.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_memory.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_mempool.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_mempool.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_msgqueue.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_msgqueue.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_system.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_system.c</FilePath>
+ </File>
+ <File>
+ <FileName>user_svc.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\user_svc.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Handlers</GroupName>
+ <Files>
+ <File>
+ <FileName>irq_cm0.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_cm0.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ <File>
+ <FileName>irq_cm3.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_cm3.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ <File>
+ <FileName>irq_cm4f.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_cm4f.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ <File>
+ <FileName>irq_armv8mbl.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_armv8mbl.s</FilePath>
+ </File>
+ <File>
+ <FileName>irq_armv8mml.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_armv8mml.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>::CMSIS</GroupName>
+ </Group>
+ </Groups>
+ </Target>
+ <Target>
+ <TargetName>ARMv8MML_LE</TargetName>
+ <ToolsetNumber>0x4</ToolsetNumber>
+ <ToolsetName>ARM-ADS</ToolsetName>
+ <pArmCC>6050000::V6.5::.\ARMCLANG</pArmCC>
+ <pCCUsed>6050000::V6.5::.\ARMCLANG</pCCUsed>
+ <TargetOption>
+ <TargetCommonOption>
+ <Device>ARMv8MML</Device>
+ <Vendor>ARM</Vendor>
+ <PackID>ARM.CMSIS.5.0.0-Beta12</PackID>
+ <PackURL>http://www.keil.com/pack/</PackURL>
+ <Cpu>IRAM(0x20000000,0x00020000) IROM(0x00000000,0x00040000) CPUTYPE("ARMV8MML") CLOCK(12000000) ELITTLE</Cpu>
+ <FlashUtilSpec></FlashUtilSpec>
+ <StartupFile></StartupFile>
+ <FlashDriverDll>UL2V8M(-S0 -C0 -P0 -FD20000000 -FC1000)</FlashDriverDll>
+ <DeviceId>0</DeviceId>
+ <RegisterFile>$$Device:ARMv8MML$Device\ARM\ARMv8MML\Include\ARMv8MML.h</RegisterFile>
+ <MemoryEnv></MemoryEnv>
+ <Cmp></Cmp>
+ <Asm></Asm>
+ <Linker></Linker>
+ <OHString></OHString>
+ <InfinionOptionDll></InfinionOptionDll>
+ <SLE66CMisc></SLE66CMisc>
+ <SLE66AMisc></SLE66AMisc>
+ <SLE66LinkerMisc></SLE66LinkerMisc>
+ <SFDFile>$$Device:ARMv8MML$Device\ARM\SVD\ARMv8MML.svd</SFDFile>
+ <bCustSvd>0</bCustSvd>
+ <UseEnv>0</UseEnv>
+ <BinPath></BinPath>
+ <IncludePath></IncludePath>
+ <LibPath></LibPath>
+ <RegisterFilePath></RegisterFilePath>
+ <DBRegisterFilePath></DBRegisterFilePath>
+ <TargetStatus>
+ <Error>0</Error>
+ <ExitCodeStop>0</ExitCodeStop>
+ <ButtonStop>0</ButtonStop>
+ <NotGenerated>0</NotGenerated>
+ <InvalidFlash>1</InvalidFlash>
+ </TargetStatus>
+ <OutputDirectory>.\ARMv8MML_LE\</OutputDirectory>
+ <OutputName>RTX_V8MM</OutputName>
+ <CreateExecutable>0</CreateExecutable>
+ <CreateLib>1</CreateLib>
+ <CreateHexFile>0</CreateHexFile>
+ <DebugInformation>1</DebugInformation>
+ <BrowseInformation>1</BrowseInformation>
+ <ListingPath>.\ARMv8MML_LE\</ListingPath>
+ <HexFormatSelection>1</HexFormatSelection>
+ <Merge32K>0</Merge32K>
+ <CreateBatchFile>1</CreateBatchFile>
+ <BeforeCompile>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopU1X>0</nStopU1X>
+ <nStopU2X>0</nStopU2X>
+ </BeforeCompile>
+ <BeforeMake>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopB1X>0</nStopB1X>
+ <nStopB2X>0</nStopB2X>
+ </BeforeMake>
+ <AfterMake>
+ <RunUserProg1>1</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name>cmd.exe /C copy ARMv8MML_LE\RTX_V8MM.lib ..\.</UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopA1X>0</nStopA1X>
+ <nStopA2X>0</nStopA2X>
+ </AfterMake>
+ <SelectedForBatchBuild>0</SelectedForBatchBuild>
+ <SVCSIdString></SVCSIdString>
+ </TargetCommonOption>
+ <CommonProperty>
+ <UseCPPCompiler>0</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>1</IncludeInBuild>
+ <AlwaysBuild>0</AlwaysBuild>
+ <GenerateAssemblyFile>0</GenerateAssemblyFile>
+ <AssembleAssemblyFile>0</AssembleAssemblyFile>
+ <PublicsOnly>0</PublicsOnly>
+ <StopOnExitCode>3</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <DllOption>
+ <SimDllName></SimDllName>
+ <SimDllArguments></SimDllArguments>
+ <SimDlgDll></SimDlgDll>
+ <SimDlgDllArguments></SimDlgDllArguments>
+ <TargetDllName>SARMV8M.DLL</TargetDllName>
+ <TargetDllArguments></TargetDllArguments>
+ <TargetDlgDll>TCM.DLL</TargetDlgDll>
+ <TargetDlgDllArguments>-pV8MML</TargetDlgDllArguments>
+ </DllOption>
+ <DebugOption>
+ <OPTHX>
+ <HexSelection>1</HexSelection>
+ <HexRangeLowAddress>0</HexRangeLowAddress>
+ <HexRangeHighAddress>0</HexRangeHighAddress>
+ <HexOffset>0</HexOffset>
+ <Oh166RecLen>16</Oh166RecLen>
+ </OPTHX>
+ </DebugOption>
+ <Utilities>
+ <Flash1>
+ <UseTargetDll>1</UseTargetDll>
+ <UseExternalTool>0</UseExternalTool>
+ <RunIndependent>0</RunIndependent>
+ <UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
+ <Capability>1</Capability>
+ <DriverSelection>4096</DriverSelection>
+ </Flash1>
+ <bUseTDR>1</bUseTDR>
+ <Flash2>BIN\UL2V8M.DLL</Flash2>
+ <Flash3></Flash3>
+ <Flash4></Flash4>
+ <pFcarmOut></pFcarmOut>
+ <pFcarmGrp></pFcarmGrp>
+ <pFcArmRoot></pFcArmRoot>
+ <FcArmLst>0</FcArmLst>
+ </Utilities>
+ <TargetArmAds>
+ <ArmAdsMisc>
+ <GenerateListings>0</GenerateListings>
+ <asHll>1</asHll>
+ <asAsm>1</asAsm>
+ <asMacX>1</asMacX>
+ <asSyms>1</asSyms>
+ <asFals>1</asFals>
+ <asDbgD>1</asDbgD>
+ <asForm>1</asForm>
+ <ldLst>0</ldLst>
+ <ldmm>1</ldmm>
+ <ldXref>1</ldXref>
+ <BigEnd>0</BigEnd>
+ <AdsALst>0</AdsALst>
+ <AdsACrf>1</AdsACrf>
+ <AdsANop>0</AdsANop>
+ <AdsANot>0</AdsANot>
+ <AdsLLst>0</AdsLLst>
+ <AdsLmap>1</AdsLmap>
+ <AdsLcgr>1</AdsLcgr>
+ <AdsLsym>1</AdsLsym>
+ <AdsLszi>1</AdsLszi>
+ <AdsLtoi>1</AdsLtoi>
+ <AdsLsun>1</AdsLsun>
+ <AdsLven>1</AdsLven>
+ <AdsLsxf>1</AdsLsxf>
+ <RvctClst>0</RvctClst>
+ <GenPPlst>0</GenPPlst>
+ <AdsCpuType>"ARMV8MML"</AdsCpuType>
+ <RvctDeviceName></RvctDeviceName>
+ <mOS>0</mOS>
+ <uocRom>0</uocRom>
+ <uocRam>0</uocRam>
+ <hadIROM>1</hadIROM>
+ <hadIRAM>1</hadIRAM>
+ <hadXRAM>0</hadXRAM>
+ <uocXRam>0</uocXRam>
+ <RvdsVP>0</RvdsVP>
+ <hadIRAM2>0</hadIRAM2>
+ <hadIROM2>0</hadIROM2>
+ <StupSel>8</StupSel>
+ <useUlib>0</useUlib>
+ <EndSel>0</EndSel>
+ <uLtcg>0</uLtcg>
+ <nSecure>0</nSecure>
+ <RoSelD>3</RoSelD>
+ <RwSelD>3</RwSelD>
+ <CodeSel>0</CodeSel>
+ <OptFeed>0</OptFeed>
+ <NoZi1>0</NoZi1>
+ <NoZi2>0</NoZi2>
+ <NoZi3>0</NoZi3>
+ <NoZi4>0</NoZi4>
+ <NoZi5>0</NoZi5>
+ <Ro1Chk>0</Ro1Chk>
+ <Ro2Chk>0</Ro2Chk>
+ <Ro3Chk>0</Ro3Chk>
+ <Ir1Chk>1</Ir1Chk>
+ <Ir2Chk>0</Ir2Chk>
+ <Ra1Chk>0</Ra1Chk>
+ <Ra2Chk>0</Ra2Chk>
+ <Ra3Chk>0</Ra3Chk>
+ <Im1Chk>1</Im1Chk>
+ <Im2Chk>0</Im2Chk>
+ <OnChipMemories>
+ <Ocm1>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm1>
+ <Ocm2>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm2>
+ <Ocm3>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm3>
+ <Ocm4>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm4>
+ <Ocm5>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm5>
+ <Ocm6>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm6>
+ <IRAM>
+ <Type>0</Type>
+ <StartAddress>0x20000000</StartAddress>
+ <Size>0x20000</Size>
+ </IRAM>
+ <IROM>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x40000</Size>
+ </IROM>
+ <XRAM>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </XRAM>
+ <OCR_RVCT1>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT1>
+ <OCR_RVCT2>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT2>
+ <OCR_RVCT3>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT3>
+ <OCR_RVCT4>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x40000</Size>
+ </OCR_RVCT4>
+ <OCR_RVCT5>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT5>
+ <OCR_RVCT6>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT6>
+ <OCR_RVCT7>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT7>
+ <OCR_RVCT8>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT8>
+ <OCR_RVCT9>
+ <Type>0</Type>
+ <StartAddress>0x20000000</StartAddress>
+ <Size>0x20000</Size>
+ </OCR_RVCT9>
+ <OCR_RVCT10>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT10>
+ </OnChipMemories>
+ <RvctStartVector></RvctStartVector>
+ </ArmAdsMisc>
+ <Cads>
+ <interw>1</interw>
+ <Optim>4</Optim>
+ <oTime>0</oTime>
+ <SplitLS>0</SplitLS>
+ <OneElfS>1</OneElfS>
+ <Strict>0</Strict>
+ <EnumInt>0</EnumInt>
+ <PlainCh>0</PlainCh>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <wLevel>2</wLevel>
+ <uThumb>0</uThumb>
+ <uSurpInc>0</uSurpInc>
+ <uC99>0</uC99>
+ <useXO>0</useXO>
+ <v6Lang>3</v6Lang>
+ <v6LangP>0</v6LangP>
+ <vShortEn>1</vShortEn>
+ <vShortWch>1</vShortWch>
+ <v6Lto>0</v6Lto>
+ <v6WtE>0</v6WtE>
+ <v6Rtti>0</v6Rtti>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath>..\..\..\Include;..\..\..\..\Include</IncludePath>
+ </VariousControls>
+ </Cads>
+ <Aads>
+ <interw>1</interw>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <thumb>1</thumb>
+ <SplitLS>0</SplitLS>
+ <SwStkChk>0</SwStkChk>
+ <NoWarn>0</NoWarn>
+ <uSurpInc>0</uSurpInc>
+ <useXO>0</useXO>
+ <uClangAs>0</uClangAs>
+ <VariousControls>
+ <MiscControls>--no_hide_all</MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ <LDads>
+ <umfTarg>0</umfTarg>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <noStLib>0</noStLib>
+ <RepFail>1</RepFail>
+ <useFile>0</useFile>
+ <TextAddressRange></TextAddressRange>
+ <DataAddressRange></DataAddressRange>
+ <pXoBase></pXoBase>
+ <ScatterFile></ScatterFile>
+ <IncludeLibs></IncludeLibs>
+ <IncludeLibsPath></IncludeLibsPath>
+ <Misc></Misc>
+ <LinkerInputFile></LinkerInputFile>
+ <DisabledWarnings></DisabledWarnings>
+ </LDads>
+ </TargetArmAds>
+ </TargetOption>
+ <Groups>
+ <Group>
+ <GroupName>Core</GroupName>
+ <Files>
+ <File>
+ <FileName>rtx_kernel.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_kernel.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_thread.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_thread.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_delay.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_delay.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_timer.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_timer.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_evflags.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_evflags.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_mutex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_mutex.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_semaphore.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_semaphore.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_memory.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_memory.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_mempool.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_mempool.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_msgqueue.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_msgqueue.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_system.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_system.c</FilePath>
+ </File>
+ <File>
+ <FileName>user_svc.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\user_svc.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Handlers</GroupName>
+ <Files>
+ <File>
+ <FileName>irq_cm0.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_cm0.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ <File>
+ <FileName>irq_cm3.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_cm3.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ <File>
+ <FileName>irq_cm4f.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_cm4f.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ <File>
+ <FileName>irq_armv8mbl.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_armv8mbl.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ <File>
+ <FileName>irq_armv8mml.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_armv8mml.s</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>::CMSIS</GroupName>
+ </Group>
+ </Groups>
+ </Target>
+ <Target>
+ <TargetName>ARMv8MML_NS_LE</TargetName>
+ <ToolsetNumber>0x4</ToolsetNumber>
+ <ToolsetName>ARM-ADS</ToolsetName>
+ <pArmCC>6050000::V6.5::.\ARMCLANG</pArmCC>
+ <pCCUsed>6050000::V6.5::.\ARMCLANG</pCCUsed>
+ <TargetOption>
+ <TargetCommonOption>
+ <Device>ARMv8MML</Device>
+ <Vendor>ARM</Vendor>
+ <PackID>ARM.CMSIS.5.0.0-Beta12</PackID>
+ <PackURL>http://www.keil.com/pack/</PackURL>
+ <Cpu>IRAM(0x20000000,0x00020000) IROM(0x00000000,0x00040000) CPUTYPE("ARMV8MML") CLOCK(12000000) ELITTLE</Cpu>
+ <FlashUtilSpec></FlashUtilSpec>
+ <StartupFile></StartupFile>
+ <FlashDriverDll>UL2V8M(-S0 -C0 -P0 -FD20000000 -FC1000)</FlashDriverDll>
+ <DeviceId>0</DeviceId>
+ <RegisterFile>$$Device:ARMv8MML$Device\ARM\ARMv8MML\Include\ARMv8MML.h</RegisterFile>
+ <MemoryEnv></MemoryEnv>
+ <Cmp></Cmp>
+ <Asm></Asm>
+ <Linker></Linker>
+ <OHString></OHString>
+ <InfinionOptionDll></InfinionOptionDll>
+ <SLE66CMisc></SLE66CMisc>
+ <SLE66AMisc></SLE66AMisc>
+ <SLE66LinkerMisc></SLE66LinkerMisc>
+ <SFDFile>$$Device:ARMv8MML$Device\ARM\SVD\ARMv8MML.svd</SFDFile>
+ <bCustSvd>0</bCustSvd>
+ <UseEnv>0</UseEnv>
+ <BinPath></BinPath>
+ <IncludePath></IncludePath>
+ <LibPath></LibPath>
+ <RegisterFilePath></RegisterFilePath>
+ <DBRegisterFilePath></DBRegisterFilePath>
+ <TargetStatus>
+ <Error>0</Error>
+ <ExitCodeStop>0</ExitCodeStop>
+ <ButtonStop>0</ButtonStop>
+ <NotGenerated>0</NotGenerated>
+ <InvalidFlash>1</InvalidFlash>
+ </TargetStatus>
+ <OutputDirectory>.\ARMv8MML_NS_LE\</OutputDirectory>
+ <OutputName>RTX_V8MMN</OutputName>
+ <CreateExecutable>0</CreateExecutable>
+ <CreateLib>1</CreateLib>
+ <CreateHexFile>0</CreateHexFile>
+ <DebugInformation>1</DebugInformation>
+ <BrowseInformation>1</BrowseInformation>
+ <ListingPath>.\ARMv8MML_NS_LE\</ListingPath>
+ <HexFormatSelection>1</HexFormatSelection>
+ <Merge32K>0</Merge32K>
+ <CreateBatchFile>1</CreateBatchFile>
+ <BeforeCompile>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopU1X>0</nStopU1X>
+ <nStopU2X>0</nStopU2X>
+ </BeforeCompile>
+ <BeforeMake>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopB1X>0</nStopB1X>
+ <nStopB2X>0</nStopB2X>
+ </BeforeMake>
+ <AfterMake>
+ <RunUserProg1>1</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name>cmd.exe /C copy ARMv8MML_NS_LE\RTX_V8MMN.lib ..\.</UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopA1X>0</nStopA1X>
+ <nStopA2X>0</nStopA2X>
+ </AfterMake>
+ <SelectedForBatchBuild>0</SelectedForBatchBuild>
+ <SVCSIdString></SVCSIdString>
+ </TargetCommonOption>
+ <CommonProperty>
+ <UseCPPCompiler>0</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>1</IncludeInBuild>
+ <AlwaysBuild>0</AlwaysBuild>
+ <GenerateAssemblyFile>0</GenerateAssemblyFile>
+ <AssembleAssemblyFile>0</AssembleAssemblyFile>
+ <PublicsOnly>0</PublicsOnly>
+ <StopOnExitCode>3</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <DllOption>
+ <SimDllName></SimDllName>
+ <SimDllArguments></SimDllArguments>
+ <SimDlgDll></SimDlgDll>
+ <SimDlgDllArguments></SimDlgDllArguments>
+ <TargetDllName>SARMV8M.DLL</TargetDllName>
+ <TargetDllArguments></TargetDllArguments>
+ <TargetDlgDll>TCM.DLL</TargetDlgDll>
+ <TargetDlgDllArguments>-pV8MML</TargetDlgDllArguments>
+ </DllOption>
+ <DebugOption>
+ <OPTHX>
+ <HexSelection>1</HexSelection>
+ <HexRangeLowAddress>0</HexRangeLowAddress>
+ <HexRangeHighAddress>0</HexRangeHighAddress>
+ <HexOffset>0</HexOffset>
+ <Oh166RecLen>16</Oh166RecLen>
+ </OPTHX>
+ </DebugOption>
+ <Utilities>
+ <Flash1>
+ <UseTargetDll>1</UseTargetDll>
+ <UseExternalTool>0</UseExternalTool>
+ <RunIndependent>0</RunIndependent>
+ <UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
+ <Capability>1</Capability>
+ <DriverSelection>4096</DriverSelection>
+ </Flash1>
+ <bUseTDR>1</bUseTDR>
+ <Flash2>BIN\UL2V8M.DLL</Flash2>
+ <Flash3></Flash3>
+ <Flash4></Flash4>
+ <pFcarmOut></pFcarmOut>
+ <pFcarmGrp></pFcarmGrp>
+ <pFcArmRoot></pFcArmRoot>
+ <FcArmLst>0</FcArmLst>
+ </Utilities>
+ <TargetArmAds>
+ <ArmAdsMisc>
+ <GenerateListings>0</GenerateListings>
+ <asHll>1</asHll>
+ <asAsm>1</asAsm>
+ <asMacX>1</asMacX>
+ <asSyms>1</asSyms>
+ <asFals>1</asFals>
+ <asDbgD>1</asDbgD>
+ <asForm>1</asForm>
+ <ldLst>0</ldLst>
+ <ldmm>1</ldmm>
+ <ldXref>1</ldXref>
+ <BigEnd>0</BigEnd>
+ <AdsALst>0</AdsALst>
+ <AdsACrf>1</AdsACrf>
+ <AdsANop>0</AdsANop>
+ <AdsANot>0</AdsANot>
+ <AdsLLst>0</AdsLLst>
+ <AdsLmap>1</AdsLmap>
+ <AdsLcgr>1</AdsLcgr>
+ <AdsLsym>1</AdsLsym>
+ <AdsLszi>1</AdsLszi>
+ <AdsLtoi>1</AdsLtoi>
+ <AdsLsun>1</AdsLsun>
+ <AdsLven>1</AdsLven>
+ <AdsLsxf>1</AdsLsxf>
+ <RvctClst>0</RvctClst>
+ <GenPPlst>0</GenPPlst>
+ <AdsCpuType>"ARMV8MML"</AdsCpuType>
+ <RvctDeviceName></RvctDeviceName>
+ <mOS>0</mOS>
+ <uocRom>0</uocRom>
+ <uocRam>0</uocRam>
+ <hadIROM>1</hadIROM>
+ <hadIRAM>1</hadIRAM>
+ <hadXRAM>0</hadXRAM>
+ <uocXRam>0</uocXRam>
+ <RvdsVP>0</RvdsVP>
+ <hadIRAM2>0</hadIRAM2>
+ <hadIROM2>0</hadIROM2>
+ <StupSel>8</StupSel>
+ <useUlib>0</useUlib>
+ <EndSel>0</EndSel>
+ <uLtcg>0</uLtcg>
+ <nSecure>0</nSecure>
+ <RoSelD>3</RoSelD>
+ <RwSelD>3</RwSelD>
+ <CodeSel>0</CodeSel>
+ <OptFeed>0</OptFeed>
+ <NoZi1>0</NoZi1>
+ <NoZi2>0</NoZi2>
+ <NoZi3>0</NoZi3>
+ <NoZi4>0</NoZi4>
+ <NoZi5>0</NoZi5>
+ <Ro1Chk>0</Ro1Chk>
+ <Ro2Chk>0</Ro2Chk>
+ <Ro3Chk>0</Ro3Chk>
+ <Ir1Chk>1</Ir1Chk>
+ <Ir2Chk>0</Ir2Chk>
+ <Ra1Chk>0</Ra1Chk>
+ <Ra2Chk>0</Ra2Chk>
+ <Ra3Chk>0</Ra3Chk>
+ <Im1Chk>1</Im1Chk>
+ <Im2Chk>0</Im2Chk>
+ <OnChipMemories>
+ <Ocm1>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm1>
+ <Ocm2>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm2>
+ <Ocm3>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm3>
+ <Ocm4>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm4>
+ <Ocm5>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm5>
+ <Ocm6>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm6>
+ <IRAM>
+ <Type>0</Type>
+ <StartAddress>0x20000000</StartAddress>
+ <Size>0x20000</Size>
+ </IRAM>
+ <IROM>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x40000</Size>
+ </IROM>
+ <XRAM>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </XRAM>
+ <OCR_RVCT1>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT1>
+ <OCR_RVCT2>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT2>
+ <OCR_RVCT3>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT3>
+ <OCR_RVCT4>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x40000</Size>
+ </OCR_RVCT4>
+ <OCR_RVCT5>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT5>
+ <OCR_RVCT6>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT6>
+ <OCR_RVCT7>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT7>
+ <OCR_RVCT8>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT8>
+ <OCR_RVCT9>
+ <Type>0</Type>
+ <StartAddress>0x20000000</StartAddress>
+ <Size>0x20000</Size>
+ </OCR_RVCT9>
+ <OCR_RVCT10>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT10>
+ </OnChipMemories>
+ <RvctStartVector></RvctStartVector>
+ </ArmAdsMisc>
+ <Cads>
+ <interw>1</interw>
+ <Optim>4</Optim>
+ <oTime>0</oTime>
+ <SplitLS>0</SplitLS>
+ <OneElfS>1</OneElfS>
+ <Strict>0</Strict>
+ <EnumInt>0</EnumInt>
+ <PlainCh>0</PlainCh>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <wLevel>2</wLevel>
+ <uThumb>0</uThumb>
+ <uSurpInc>0</uSurpInc>
+ <uC99>0</uC99>
+ <useXO>0</useXO>
+ <v6Lang>3</v6Lang>
+ <v6LangP>0</v6LangP>
+ <vShortEn>1</vShortEn>
+ <vShortWch>1</vShortWch>
+ <v6Lto>0</v6Lto>
+ <v6WtE>0</v6WtE>
+ <v6Rtti>0</v6Rtti>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define>__DOMAIN_NS=1U</Define>
+ <Undefine></Undefine>
+ <IncludePath>..\..\..\Include;..\..\..\..\Include</IncludePath>
+ </VariousControls>
+ </Cads>
+ <Aads>
+ <interw>1</interw>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <thumb>1</thumb>
+ <SplitLS>0</SplitLS>
+ <SwStkChk>0</SwStkChk>
+ <NoWarn>0</NoWarn>
+ <uSurpInc>0</uSurpInc>
+ <useXO>0</useXO>
+ <uClangAs>0</uClangAs>
+ <VariousControls>
+ <MiscControls>--no_hide_all</MiscControls>
+ <Define>__DOMAIN_NS=1</Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ <LDads>
+ <umfTarg>0</umfTarg>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <noStLib>0</noStLib>
+ <RepFail>1</RepFail>
+ <useFile>0</useFile>
+ <TextAddressRange></TextAddressRange>
+ <DataAddressRange></DataAddressRange>
+ <pXoBase></pXoBase>
+ <ScatterFile></ScatterFile>
+ <IncludeLibs></IncludeLibs>
+ <IncludeLibsPath></IncludeLibsPath>
+ <Misc></Misc>
+ <LinkerInputFile></LinkerInputFile>
+ <DisabledWarnings></DisabledWarnings>
+ </LDads>
+ </TargetArmAds>
+ </TargetOption>
+ <Groups>
+ <Group>
+ <GroupName>Core</GroupName>
+ <Files>
+ <File>
+ <FileName>rtx_kernel.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_kernel.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_thread.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_thread.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_delay.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_delay.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_timer.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_timer.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_evflags.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_evflags.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_mutex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_mutex.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_semaphore.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_semaphore.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_memory.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_memory.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_mempool.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_mempool.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_msgqueue.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_msgqueue.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_system.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_system.c</FilePath>
+ </File>
+ <File>
+ <FileName>user_svc.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\user_svc.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Handlers</GroupName>
+ <Files>
+ <File>
+ <FileName>irq_cm0.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_cm0.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ <File>
+ <FileName>irq_cm3.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_cm3.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ <File>
+ <FileName>irq_cm4f.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_cm4f.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ <File>
+ <FileName>irq_armv8mbl.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_armv8mbl.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ <File>
+ <FileName>irq_armv8mml.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_armv8mml.s</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>::CMSIS</GroupName>
+ </Group>
+ </Groups>
+ </Target>
+ <Target>
+ <TargetName>ARMv8MML_SP_LE</TargetName>
+ <ToolsetNumber>0x4</ToolsetNumber>
+ <ToolsetName>ARM-ADS</ToolsetName>
+ <pArmCC>6050000::V6.5::.\ARMCLANG</pArmCC>
+ <pCCUsed>6050000::V6.5::.\ARMCLANG</pCCUsed>
+ <TargetOption>
+ <TargetCommonOption>
+ <Device>ARMv8MML_SP</Device>
+ <Vendor>ARM</Vendor>
+ <PackID>ARM.CMSIS.5.0.0-Beta12</PackID>
+ <PackURL>http://www.keil.com/pack/</PackURL>
+ <Cpu>IRAM(0x20000000,0x00020000) IROM(0x00000000,0x00040000) CPUTYPE("ARMV8MML") FPU3(SFPU) CLOCK(12000000) ESEL ELITTLE</Cpu>
+ <FlashUtilSpec></FlashUtilSpec>
+ <StartupFile></StartupFile>
+ <FlashDriverDll>UL2V8M(-S0 -C0 -P0 -FD20000000 -FC1000)</FlashDriverDll>
+ <DeviceId>0</DeviceId>
+ <RegisterFile>$$Device:ARMv8MML_SP$Device\ARM\ARMv8MML\Include\ARMv8MML_SP.h</RegisterFile>
+ <MemoryEnv></MemoryEnv>
+ <Cmp></Cmp>
+ <Asm></Asm>
+ <Linker></Linker>
+ <OHString></OHString>
+ <InfinionOptionDll></InfinionOptionDll>
+ <SLE66CMisc></SLE66CMisc>
+ <SLE66AMisc></SLE66AMisc>
+ <SLE66LinkerMisc></SLE66LinkerMisc>
+ <SFDFile>$$Device:ARMv8MML_SP$Device\ARM\SVD\ARMv8MML.svd</SFDFile>
+ <bCustSvd>0</bCustSvd>
+ <UseEnv>0</UseEnv>
+ <BinPath></BinPath>
+ <IncludePath></IncludePath>
+ <LibPath></LibPath>
+ <RegisterFilePath></RegisterFilePath>
+ <DBRegisterFilePath></DBRegisterFilePath>
+ <TargetStatus>
+ <Error>0</Error>
+ <ExitCodeStop>0</ExitCodeStop>
+ <ButtonStop>0</ButtonStop>
+ <NotGenerated>0</NotGenerated>
+ <InvalidFlash>1</InvalidFlash>
+ </TargetStatus>
+ <OutputDirectory>.\ARMv8MML_SP_LE\</OutputDirectory>
+ <OutputName>RTX_V8MMF</OutputName>
+ <CreateExecutable>0</CreateExecutable>
+ <CreateLib>1</CreateLib>
+ <CreateHexFile>0</CreateHexFile>
+ <DebugInformation>1</DebugInformation>
+ <BrowseInformation>1</BrowseInformation>
+ <ListingPath>.\ARMv8MML_SP_LE\</ListingPath>
+ <HexFormatSelection>1</HexFormatSelection>
+ <Merge32K>0</Merge32K>
+ <CreateBatchFile>1</CreateBatchFile>
+ <BeforeCompile>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopU1X>0</nStopU1X>
+ <nStopU2X>0</nStopU2X>
+ </BeforeCompile>
+ <BeforeMake>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopB1X>0</nStopB1X>
+ <nStopB2X>0</nStopB2X>
+ </BeforeMake>
+ <AfterMake>
+ <RunUserProg1>1</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name>cmd.exe /C copy ARMv8MML_SP_LE\RTX_V8MMF.lib ..\.</UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopA1X>0</nStopA1X>
+ <nStopA2X>0</nStopA2X>
+ </AfterMake>
+ <SelectedForBatchBuild>0</SelectedForBatchBuild>
+ <SVCSIdString></SVCSIdString>
+ </TargetCommonOption>
+ <CommonProperty>
+ <UseCPPCompiler>0</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>1</IncludeInBuild>
+ <AlwaysBuild>0</AlwaysBuild>
+ <GenerateAssemblyFile>0</GenerateAssemblyFile>
+ <AssembleAssemblyFile>0</AssembleAssemblyFile>
+ <PublicsOnly>0</PublicsOnly>
+ <StopOnExitCode>3</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <DllOption>
+ <SimDllName></SimDllName>
+ <SimDllArguments></SimDllArguments>
+ <SimDlgDll></SimDlgDll>
+ <SimDlgDllArguments></SimDlgDllArguments>
+ <TargetDllName>SARMV8M.DLL</TargetDllName>
+ <TargetDllArguments> -MPU</TargetDllArguments>
+ <TargetDlgDll>TCM.DLL</TargetDlgDll>
+ <TargetDlgDllArguments>-pV8MML</TargetDlgDllArguments>
+ </DllOption>
+ <DebugOption>
+ <OPTHX>
+ <HexSelection>1</HexSelection>
+ <HexRangeLowAddress>0</HexRangeLowAddress>
+ <HexRangeHighAddress>0</HexRangeHighAddress>
+ <HexOffset>0</HexOffset>
+ <Oh166RecLen>16</Oh166RecLen>
+ </OPTHX>
+ </DebugOption>
+ <Utilities>
+ <Flash1>
+ <UseTargetDll>1</UseTargetDll>
+ <UseExternalTool>0</UseExternalTool>
+ <RunIndependent>0</RunIndependent>
+ <UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
+ <Capability>1</Capability>
+ <DriverSelection>4096</DriverSelection>
+ </Flash1>
+ <bUseTDR>1</bUseTDR>
+ <Flash2>BIN\UL2V8M.DLL</Flash2>
+ <Flash3></Flash3>
+ <Flash4></Flash4>
+ <pFcarmOut></pFcarmOut>
+ <pFcarmGrp></pFcarmGrp>
+ <pFcArmRoot></pFcArmRoot>
+ <FcArmLst>0</FcArmLst>
+ </Utilities>
+ <TargetArmAds>
+ <ArmAdsMisc>
+ <GenerateListings>0</GenerateListings>
+ <asHll>1</asHll>
+ <asAsm>1</asAsm>
+ <asMacX>1</asMacX>
+ <asSyms>1</asSyms>
+ <asFals>1</asFals>
+ <asDbgD>1</asDbgD>
+ <asForm>1</asForm>
+ <ldLst>0</ldLst>
+ <ldmm>1</ldmm>
+ <ldXref>1</ldXref>
+ <BigEnd>0</BigEnd>
+ <AdsALst>0</AdsALst>
+ <AdsACrf>1</AdsACrf>
+ <AdsANop>0</AdsANop>
+ <AdsANot>0</AdsANot>
+ <AdsLLst>0</AdsLLst>
+ <AdsLmap>1</AdsLmap>
+ <AdsLcgr>1</AdsLcgr>
+ <AdsLsym>1</AdsLsym>
+ <AdsLszi>1</AdsLszi>
+ <AdsLtoi>1</AdsLtoi>
+ <AdsLsun>1</AdsLsun>
+ <AdsLven>1</AdsLven>
+ <AdsLsxf>1</AdsLsxf>
+ <RvctClst>0</RvctClst>
+ <GenPPlst>0</GenPPlst>
+ <AdsCpuType>"ARMV8MML"</AdsCpuType>
+ <RvctDeviceName></RvctDeviceName>
+ <mOS>0</mOS>
+ <uocRom>0</uocRom>
+ <uocRam>0</uocRam>
+ <hadIROM>1</hadIROM>
+ <hadIRAM>1</hadIRAM>
+ <hadXRAM>0</hadXRAM>
+ <uocXRam>0</uocXRam>
+ <RvdsVP>2</RvdsVP>
+ <hadIRAM2>0</hadIRAM2>
+ <hadIROM2>0</hadIROM2>
+ <StupSel>8</StupSel>
+ <useUlib>0</useUlib>
+ <EndSel>1</EndSel>
+ <uLtcg>0</uLtcg>
+ <nSecure>0</nSecure>
+ <RoSelD>3</RoSelD>
+ <RwSelD>3</RwSelD>
+ <CodeSel>0</CodeSel>
+ <OptFeed>0</OptFeed>
+ <NoZi1>0</NoZi1>
+ <NoZi2>0</NoZi2>
+ <NoZi3>0</NoZi3>
+ <NoZi4>0</NoZi4>
+ <NoZi5>0</NoZi5>
+ <Ro1Chk>0</Ro1Chk>
+ <Ro2Chk>0</Ro2Chk>
+ <Ro3Chk>0</Ro3Chk>
+ <Ir1Chk>1</Ir1Chk>
+ <Ir2Chk>0</Ir2Chk>
+ <Ra1Chk>0</Ra1Chk>
+ <Ra2Chk>0</Ra2Chk>
+ <Ra3Chk>0</Ra3Chk>
+ <Im1Chk>1</Im1Chk>
+ <Im2Chk>0</Im2Chk>
+ <OnChipMemories>
+ <Ocm1>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm1>
+ <Ocm2>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm2>
+ <Ocm3>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm3>
+ <Ocm4>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm4>
+ <Ocm5>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm5>
+ <Ocm6>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm6>
+ <IRAM>
+ <Type>0</Type>
+ <StartAddress>0x20000000</StartAddress>
+ <Size>0x20000</Size>
+ </IRAM>
+ <IROM>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x40000</Size>
+ </IROM>
+ <XRAM>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </XRAM>
+ <OCR_RVCT1>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT1>
+ <OCR_RVCT2>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT2>
+ <OCR_RVCT3>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT3>
+ <OCR_RVCT4>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x40000</Size>
+ </OCR_RVCT4>
+ <OCR_RVCT5>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT5>
+ <OCR_RVCT6>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT6>
+ <OCR_RVCT7>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT7>
+ <OCR_RVCT8>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT8>
+ <OCR_RVCT9>
+ <Type>0</Type>
+ <StartAddress>0x20000000</StartAddress>
+ <Size>0x20000</Size>
+ </OCR_RVCT9>
+ <OCR_RVCT10>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT10>
+ </OnChipMemories>
+ <RvctStartVector></RvctStartVector>
+ </ArmAdsMisc>
+ <Cads>
+ <interw>1</interw>
+ <Optim>4</Optim>
+ <oTime>0</oTime>
+ <SplitLS>0</SplitLS>
+ <OneElfS>1</OneElfS>
+ <Strict>0</Strict>
+ <EnumInt>0</EnumInt>
+ <PlainCh>0</PlainCh>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <wLevel>2</wLevel>
+ <uThumb>0</uThumb>
+ <uSurpInc>0</uSurpInc>
+ <uC99>0</uC99>
+ <useXO>0</useXO>
+ <v6Lang>3</v6Lang>
+ <v6LangP>0</v6LangP>
+ <vShortEn>1</vShortEn>
+ <vShortWch>1</vShortWch>
+ <v6Lto>0</v6Lto>
+ <v6WtE>0</v6WtE>
+ <v6Rtti>0</v6Rtti>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath>..\..\..\Include;..\..\..\..\Include</IncludePath>
+ </VariousControls>
+ </Cads>
+ <Aads>
+ <interw>1</interw>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <thumb>1</thumb>
+ <SplitLS>0</SplitLS>
+ <SwStkChk>0</SwStkChk>
+ <NoWarn>0</NoWarn>
+ <uSurpInc>0</uSurpInc>
+ <useXO>0</useXO>
+ <uClangAs>0</uClangAs>
+ <VariousControls>
+ <MiscControls>--no_hide_all --fpu=fpv5-sp</MiscControls>
+ <Define>__FPU_USED=1</Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ <LDads>
+ <umfTarg>0</umfTarg>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <noStLib>0</noStLib>
+ <RepFail>1</RepFail>
+ <useFile>0</useFile>
+ <TextAddressRange></TextAddressRange>
+ <DataAddressRange></DataAddressRange>
+ <pXoBase></pXoBase>
+ <ScatterFile></ScatterFile>
+ <IncludeLibs></IncludeLibs>
+ <IncludeLibsPath></IncludeLibsPath>
+ <Misc></Misc>
+ <LinkerInputFile></LinkerInputFile>
+ <DisabledWarnings></DisabledWarnings>
+ </LDads>
+ </TargetArmAds>
+ </TargetOption>
+ <Groups>
+ <Group>
+ <GroupName>Core</GroupName>
+ <Files>
+ <File>
+ <FileName>rtx_kernel.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_kernel.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_thread.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_thread.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_delay.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_delay.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_timer.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_timer.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_evflags.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_evflags.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_mutex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_mutex.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_semaphore.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_semaphore.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_memory.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_memory.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_mempool.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_mempool.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_msgqueue.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_msgqueue.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_system.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_system.c</FilePath>
+ </File>
+ <File>
+ <FileName>user_svc.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\user_svc.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Handlers</GroupName>
+ <Files>
+ <File>
+ <FileName>irq_cm0.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_cm0.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ <File>
+ <FileName>irq_cm3.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_cm3.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ <File>
+ <FileName>irq_cm4f.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_cm4f.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ <File>
+ <FileName>irq_armv8mbl.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_armv8mbl.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ <File>
+ <FileName>irq_armv8mml.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_armv8mml.s</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>::CMSIS</GroupName>
+ </Group>
+ </Groups>
+ </Target>
+ <Target>
+ <TargetName>ARMv8MML_SP_NS_LE</TargetName>
+ <ToolsetNumber>0x4</ToolsetNumber>
+ <ToolsetName>ARM-ADS</ToolsetName>
+ <pArmCC>6050000::V6.5::.\ARMCLANG</pArmCC>
+ <pCCUsed>6050000::V6.5::.\ARMCLANG</pCCUsed>
+ <TargetOption>
+ <TargetCommonOption>
+ <Device>ARMv8MML_SP</Device>
+ <Vendor>ARM</Vendor>
+ <PackID>ARM.CMSIS.5.0.0-Beta12</PackID>
+ <PackURL>http://www.keil.com/pack/</PackURL>
+ <Cpu>IRAM(0x20000000,0x00020000) IROM(0x00000000,0x00040000) CPUTYPE("ARMV8MML") FPU3(SFPU) CLOCK(12000000) ESEL ELITTLE</Cpu>
+ <FlashUtilSpec></FlashUtilSpec>
+ <StartupFile></StartupFile>
+ <FlashDriverDll>UL2V8M(-S0 -C0 -P0 -FD20000000 -FC1000)</FlashDriverDll>
+ <DeviceId>0</DeviceId>
+ <RegisterFile>$$Device:ARMv8MML_SP$Device\ARM\ARMv8MML\Include\ARMv8MML_SP.h</RegisterFile>
+ <MemoryEnv></MemoryEnv>
+ <Cmp></Cmp>
+ <Asm></Asm>
+ <Linker></Linker>
+ <OHString></OHString>
+ <InfinionOptionDll></InfinionOptionDll>
+ <SLE66CMisc></SLE66CMisc>
+ <SLE66AMisc></SLE66AMisc>
+ <SLE66LinkerMisc></SLE66LinkerMisc>
+ <SFDFile>$$Device:ARMv8MML_SP$Device\ARM\SVD\ARMv8MML.svd</SFDFile>
+ <bCustSvd>0</bCustSvd>
+ <UseEnv>0</UseEnv>
+ <BinPath></BinPath>
+ <IncludePath></IncludePath>
+ <LibPath></LibPath>
+ <RegisterFilePath></RegisterFilePath>
+ <DBRegisterFilePath></DBRegisterFilePath>
+ <TargetStatus>
+ <Error>0</Error>
+ <ExitCodeStop>0</ExitCodeStop>
+ <ButtonStop>0</ButtonStop>
+ <NotGenerated>0</NotGenerated>
+ <InvalidFlash>1</InvalidFlash>
+ </TargetStatus>
+ <OutputDirectory>.\ARMv8MML_SP_NS_LE\</OutputDirectory>
+ <OutputName>RTX_V8MMFN</OutputName>
+ <CreateExecutable>0</CreateExecutable>
+ <CreateLib>1</CreateLib>
+ <CreateHexFile>0</CreateHexFile>
+ <DebugInformation>1</DebugInformation>
+ <BrowseInformation>1</BrowseInformation>
+ <ListingPath>.\ARMv8MML_SP_NS_LE\</ListingPath>
+ <HexFormatSelection>1</HexFormatSelection>
+ <Merge32K>0</Merge32K>
+ <CreateBatchFile>1</CreateBatchFile>
+ <BeforeCompile>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopU1X>0</nStopU1X>
+ <nStopU2X>0</nStopU2X>
+ </BeforeCompile>
+ <BeforeMake>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopB1X>0</nStopB1X>
+ <nStopB2X>0</nStopB2X>
+ </BeforeMake>
+ <AfterMake>
+ <RunUserProg1>1</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name>cmd.exe /C copy ARMv8MML_SP_NS_LE\RTX_V8MMFN.lib ..\.</UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopA1X>0</nStopA1X>
+ <nStopA2X>0</nStopA2X>
+ </AfterMake>
+ <SelectedForBatchBuild>0</SelectedForBatchBuild>
+ <SVCSIdString></SVCSIdString>
+ </TargetCommonOption>
+ <CommonProperty>
+ <UseCPPCompiler>0</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>1</IncludeInBuild>
+ <AlwaysBuild>0</AlwaysBuild>
+ <GenerateAssemblyFile>0</GenerateAssemblyFile>
+ <AssembleAssemblyFile>0</AssembleAssemblyFile>
+ <PublicsOnly>0</PublicsOnly>
+ <StopOnExitCode>3</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <DllOption>
+ <SimDllName></SimDllName>
+ <SimDllArguments></SimDllArguments>
+ <SimDlgDll></SimDlgDll>
+ <SimDlgDllArguments></SimDlgDllArguments>
+ <TargetDllName>SARMV8M.DLL</TargetDllName>
+ <TargetDllArguments> -MPU</TargetDllArguments>
+ <TargetDlgDll>TCM.DLL</TargetDlgDll>
+ <TargetDlgDllArguments>-pV8MML</TargetDlgDllArguments>
+ </DllOption>
+ <DebugOption>
+ <OPTHX>
+ <HexSelection>1</HexSelection>
+ <HexRangeLowAddress>0</HexRangeLowAddress>
+ <HexRangeHighAddress>0</HexRangeHighAddress>
+ <HexOffset>0</HexOffset>
+ <Oh166RecLen>16</Oh166RecLen>
+ </OPTHX>
+ </DebugOption>
+ <Utilities>
+ <Flash1>
+ <UseTargetDll>1</UseTargetDll>
+ <UseExternalTool>0</UseExternalTool>
+ <RunIndependent>0</RunIndependent>
+ <UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
+ <Capability>1</Capability>
+ <DriverSelection>4096</DriverSelection>
+ </Flash1>
+ <bUseTDR>1</bUseTDR>
+ <Flash2>BIN\UL2V8M.DLL</Flash2>
+ <Flash3></Flash3>
+ <Flash4></Flash4>
+ <pFcarmOut></pFcarmOut>
+ <pFcarmGrp></pFcarmGrp>
+ <pFcArmRoot></pFcArmRoot>
+ <FcArmLst>0</FcArmLst>
+ </Utilities>
+ <TargetArmAds>
+ <ArmAdsMisc>
+ <GenerateListings>0</GenerateListings>
+ <asHll>1</asHll>
+ <asAsm>1</asAsm>
+ <asMacX>1</asMacX>
+ <asSyms>1</asSyms>
+ <asFals>1</asFals>
+ <asDbgD>1</asDbgD>
+ <asForm>1</asForm>
+ <ldLst>0</ldLst>
+ <ldmm>1</ldmm>
+ <ldXref>1</ldXref>
+ <BigEnd>0</BigEnd>
+ <AdsALst>0</AdsALst>
+ <AdsACrf>1</AdsACrf>
+ <AdsANop>0</AdsANop>
+ <AdsANot>0</AdsANot>
+ <AdsLLst>0</AdsLLst>
+ <AdsLmap>1</AdsLmap>
+ <AdsLcgr>1</AdsLcgr>
+ <AdsLsym>1</AdsLsym>
+ <AdsLszi>1</AdsLszi>
+ <AdsLtoi>1</AdsLtoi>
+ <AdsLsun>1</AdsLsun>
+ <AdsLven>1</AdsLven>
+ <AdsLsxf>1</AdsLsxf>
+ <RvctClst>0</RvctClst>
+ <GenPPlst>0</GenPPlst>
+ <AdsCpuType>"ARMV8MML"</AdsCpuType>
+ <RvctDeviceName></RvctDeviceName>
+ <mOS>0</mOS>
+ <uocRom>0</uocRom>
+ <uocRam>0</uocRam>
+ <hadIROM>1</hadIROM>
+ <hadIRAM>1</hadIRAM>
+ <hadXRAM>0</hadXRAM>
+ <uocXRam>0</uocXRam>
+ <RvdsVP>2</RvdsVP>
+ <hadIRAM2>0</hadIRAM2>
+ <hadIROM2>0</hadIROM2>
+ <StupSel>8</StupSel>
+ <useUlib>0</useUlib>
+ <EndSel>1</EndSel>
+ <uLtcg>0</uLtcg>
+ <nSecure>0</nSecure>
+ <RoSelD>3</RoSelD>
+ <RwSelD>3</RwSelD>
+ <CodeSel>0</CodeSel>
+ <OptFeed>0</OptFeed>
+ <NoZi1>0</NoZi1>
+ <NoZi2>0</NoZi2>
+ <NoZi3>0</NoZi3>
+ <NoZi4>0</NoZi4>
+ <NoZi5>0</NoZi5>
+ <Ro1Chk>0</Ro1Chk>
+ <Ro2Chk>0</Ro2Chk>
+ <Ro3Chk>0</Ro3Chk>
+ <Ir1Chk>1</Ir1Chk>
+ <Ir2Chk>0</Ir2Chk>
+ <Ra1Chk>0</Ra1Chk>
+ <Ra2Chk>0</Ra2Chk>
+ <Ra3Chk>0</Ra3Chk>
+ <Im1Chk>1</Im1Chk>
+ <Im2Chk>0</Im2Chk>
+ <OnChipMemories>
+ <Ocm1>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm1>
+ <Ocm2>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm2>
+ <Ocm3>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm3>
+ <Ocm4>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm4>
+ <Ocm5>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm5>
+ <Ocm6>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm6>
+ <IRAM>
+ <Type>0</Type>
+ <StartAddress>0x20000000</StartAddress>
+ <Size>0x20000</Size>
+ </IRAM>
+ <IROM>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x40000</Size>
+ </IROM>
+ <XRAM>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </XRAM>
+ <OCR_RVCT1>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT1>
+ <OCR_RVCT2>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT2>
+ <OCR_RVCT3>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT3>
+ <OCR_RVCT4>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x40000</Size>
+ </OCR_RVCT4>
+ <OCR_RVCT5>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT5>
+ <OCR_RVCT6>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT6>
+ <OCR_RVCT7>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT7>
+ <OCR_RVCT8>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT8>
+ <OCR_RVCT9>
+ <Type>0</Type>
+ <StartAddress>0x20000000</StartAddress>
+ <Size>0x20000</Size>
+ </OCR_RVCT9>
+ <OCR_RVCT10>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT10>
+ </OnChipMemories>
+ <RvctStartVector></RvctStartVector>
+ </ArmAdsMisc>
+ <Cads>
+ <interw>1</interw>
+ <Optim>4</Optim>
+ <oTime>0</oTime>
+ <SplitLS>0</SplitLS>
+ <OneElfS>1</OneElfS>
+ <Strict>0</Strict>
+ <EnumInt>0</EnumInt>
+ <PlainCh>0</PlainCh>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <wLevel>2</wLevel>
+ <uThumb>0</uThumb>
+ <uSurpInc>0</uSurpInc>
+ <uC99>0</uC99>
+ <useXO>0</useXO>
+ <v6Lang>3</v6Lang>
+ <v6LangP>0</v6LangP>
+ <vShortEn>1</vShortEn>
+ <vShortWch>1</vShortWch>
+ <v6Lto>0</v6Lto>
+ <v6WtE>0</v6WtE>
+ <v6Rtti>0</v6Rtti>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define>__DOMAIN_NS=1U</Define>
+ <Undefine></Undefine>
+ <IncludePath>..\..\..\Include;..\..\..\..\Include</IncludePath>
+ </VariousControls>
+ </Cads>
+ <Aads>
+ <interw>1</interw>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <thumb>1</thumb>
+ <SplitLS>0</SplitLS>
+ <SwStkChk>0</SwStkChk>
+ <NoWarn>0</NoWarn>
+ <uSurpInc>0</uSurpInc>
+ <useXO>0</useXO>
+ <uClangAs>0</uClangAs>
+ <VariousControls>
+ <MiscControls>--no_hide_all --fpu=fpv5-sp</MiscControls>
+ <Define>__FPU_USED=1 __DOMAIN_NS=1</Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ <LDads>
+ <umfTarg>0</umfTarg>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <noStLib>0</noStLib>
+ <RepFail>1</RepFail>
+ <useFile>0</useFile>
+ <TextAddressRange></TextAddressRange>
+ <DataAddressRange></DataAddressRange>
+ <pXoBase></pXoBase>
+ <ScatterFile></ScatterFile>
+ <IncludeLibs></IncludeLibs>
+ <IncludeLibsPath></IncludeLibsPath>
+ <Misc></Misc>
+ <LinkerInputFile></LinkerInputFile>
+ <DisabledWarnings></DisabledWarnings>
+ </LDads>
+ </TargetArmAds>
+ </TargetOption>
+ <Groups>
+ <Group>
+ <GroupName>Core</GroupName>
+ <Files>
+ <File>
+ <FileName>rtx_kernel.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_kernel.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_thread.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_thread.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_delay.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_delay.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_timer.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_timer.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_evflags.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_evflags.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_mutex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_mutex.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_semaphore.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_semaphore.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_memory.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_memory.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_mempool.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_mempool.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_msgqueue.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_msgqueue.c</FilePath>
+ </File>
+ <File>
+ <FileName>rtx_system.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\rtx_system.c</FilePath>
+ </File>
+ <File>
+ <FileName>user_svc.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\Source\user_svc.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Handlers</GroupName>
+ <Files>
+ <File>
+ <FileName>irq_cm0.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_cm0.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ <File>
+ <FileName>irq_cm3.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_cm3.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ <File>
+ <FileName>irq_cm4f.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_cm4f.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ <File>
+ <FileName>irq_armv8mbl.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_armv8mbl.s</FilePath>
+ <FileOption>
+ <CommonProperty>
+ <UseCPPCompiler>2</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>0</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <FileArmAds>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <uClangAs>2</uClangAs>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </FileArmAds>
+ </FileOption>
+ </File>
+ <File>
+ <FileName>irq_armv8mml.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\Source\ARM\irq_armv8mml.s</FilePath>
+ </File>
</Files>
</Group>
<Group>
@@ -1625,6 +4998,11 @@
<component Cclass="CMSIS" Cgroup="CORE" Cvendor="ARM" Cversion="5.0.0" condition="Cortex-M ARMv8-M Device">
<package name="CMSIS" schemaVersion="1.3" url="http://www.keil.com/pack/" vendor="ARM" version="5.0.0-Beta4"/>
<targetInfos>
+ <targetInfo name="ARMv8MBL_LE"/>
+ <targetInfo name="ARMv8MML_LE"/>
+ <targetInfo name="ARMv8MML_NS_LE"/>
+ <targetInfo name="ARMv8MML_SP_LE"/>
+ <targetInfo name="ARMv8MML_SP_NS_LE"/>
<targetInfo name="CM0_LE"/>
<targetInfo name="CM3_LE"/>
<targetInfo name="CM4F_LE"/>
diff --git a/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM0.lib b/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM0.lib
index f7892cf..a5117e0 100644
--- a/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM0.lib
+++ b/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM0.lib
Binary files differ
diff --git a/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM3.lib b/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM3.lib
index f4aaf87..41cf8da 100644
--- a/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM3.lib
+++ b/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM3.lib
Binary files differ
diff --git a/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM4F.lib b/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM4F.lib
index 97c0d2e..6fd89a4 100644
--- a/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM4F.lib
+++ b/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM4F.lib
Binary files differ
diff --git a/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MM.lib b/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MM.lib
new file mode 100644
index 0000000..b615d91
--- /dev/null
+++ b/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MM.lib
Binary files differ
diff --git a/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMF.lib b/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMF.lib
new file mode 100644
index 0000000..f59f7e2
--- /dev/null
+++ b/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMF.lib
Binary files differ
diff --git a/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMFN.lib b/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMFN.lib
new file mode 100644
index 0000000..0ea250e
--- /dev/null
+++ b/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMFN.lib
Binary files differ
diff --git a/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMN.lib b/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMN.lib
new file mode 100644
index 0000000..3d701f4
--- /dev/null
+++ b/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMN.lib
Binary files differ
diff --git a/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM0.a b/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM0.a
index 95c73f4..e71f188 100644
--- a/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM0.a
+++ b/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM0.a
Binary files differ
diff --git a/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM3.a b/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM3.a
index f651227..e17eaf2 100644
--- a/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM3.a
+++ b/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM3.a
Binary files differ
diff --git a/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM4F.a b/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM4F.a
index bddb420..54d6b5f 100644
--- a/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM4F.a
+++ b/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM4F.a
Binary files differ
diff --git a/CMSIS/RTOS2/RTX/Source/ARM/irq_armv8mbl.s b/CMSIS/RTOS2/RTX/Source/ARM/irq_armv8mbl.s
new file mode 100644
index 0000000..9ed5acc
--- /dev/null
+++ b/CMSIS/RTOS2/RTX/Source/ARM/irq_armv8mbl.s
@@ -0,0 +1,246 @@
+;/*
+; * Copyright (c) 2016 ARM Limited. All rights reserved.
+; *
+; * SPDX-License-Identifier: Apache-2.0
+; *
+; * Licensed under the Apache License, Version 2.0 (the License); you may
+; * not use this file except in compliance with the License.
+; * You may obtain a copy of the License at
+; *
+; * http://www.apache.org/licenses/LICENSE-2.0
+; *
+; * Unless required by applicable law or agreed to in writing, software
+; * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+; * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; * See the License for the specific language governing permissions and
+; * limitations under the License.
+; *
+; * -----------------------------------------------------------------------------
+; *
+; * Project: CMSIS-RTOS RTX
+; * Title: ARMv8M Main Line Exception handlers
+; *
+; * -----------------------------------------------------------------------------
+; */
+
+
+ IF :LNOT::DEF:__FPU_USED
+__FPU_USED EQU 0
+ ENDIF
+
+ IF :LNOT::DEF:__DOMAIN_NS
+__DOMAIN_NS EQU 0
+ ENDIF
+
+I_T_RUN_OFS EQU 28 ; osInfo.thread.run offset
+TCB_SM_OFS EQU 48 ; TCB.stack_mem offset
+TCB_SP_OFS EQU 56 ; TCB.SP offset
+TCB_SF_OFS EQU 34 ; TCB.stack_frame offset
+TCB_TZM_OFS EQU 60 ; TCB.tz_memory offset
+
+
+ PRESERVE8
+ THUMB
+
+
+ AREA |.constdata|, DATA, READONLY
+ EXPORT os_irq_cm
+os_irq_cm DCB 0 ; Non weak library reference
+
+
+ AREA |.text|, CODE, READONLY
+
+
+SVC_Handler PROC
+ EXPORT SVC_Handler
+ IMPORT os_UserSVC_Table
+ IMPORT os_Info
+ IF __DOMAIN_NS = 1
+ IMPORT TZ_LoadContext_S
+ ENDIF
+
+ MRS R0,PSP ; Get PSP
+ LDR R1,[R0,#24] ; Load saved PC from stack
+ LDRB R1,[R1,#-2] ; Load SVC number
+ CBNZ R1,SVC_User ; Branch if not SVC 0
+
+ PUSH {R0,LR} ; Save PSP and EXC_RETURN
+ LDM R0,{R0-R3,R12} ; Load function parameters and address from stack
+ BLX R12 ; Call service function
+ POP {R12,LR} ; Restore PSP and EXC_RETURN
+ STR R0,[R12] ; Store function return value
+
+SVC_Context
+ LDR R3,=os_Info+I_T_RUN_OFS; Load address of os_Info.run
+ LDM R3,{R1,R2} ; Load os_Info.thread.run: curr & next
+ CMP R1,R2 ; Check if thread switch is required
+ BXEQ LR ; Exit when threads are the same
+
+ IF __FPU_USED = 1
+ CBNZ R1,SVC_ContextSave ; Branch if running thread is not deleted
+ TST LR,#0x10 ; Check if extended stack frame
+ BNE SVC_ContextSwitch
+ LDR R1,=0xE000EF34 ; FPCCR Address
+ LDR R0,[R1] ; Load FPCCR
+ BIC R0,#1 ; Clear LSPACT (Lazy state)
+ STR R0,[R1] ; Store FPCCR
+ B SVC_ContextSwitch
+ ELSE
+ CBZ R1,SVC_ContextSwitch ; Branch if running thread is deleted
+ ENDIF
+
+SVC_ContextSave
+ STMDB R12!,{R4-R11} ; Save R4..R11
+ IF __FPU_USED = 1
+ TST LR,#0x10 ; Check if extended stack frame
+ VSTMDBEQ R12!,{S16-S31} ; Save VFP S16.S31
+ ENDIF
+
+ STR R12,[R1,#TCB_SP_OFS] ; Store SP
+ STRB LR, [R1,#TCB_SF_OFS] ; Store stack frame information
+
+SVC_ContextSwitch
+ STR R2,[R3] ; os_Info.thread.run: curr = next
+
+SVC_ContextRestore
+ LDR R0,[R2,#TCB_SM_OFS] ; Load stack memory base
+ LDRB R1,[R2,#TCB_SF_OFS] ; Load stack frame information
+ MSR PSPLIM,R0 ; Set PSPLIM
+ LDR R0,[R2,#TCB_SP_OFS] ; Load SP
+ ORR LR,R1,#0xFFFFFF00 ; Set EXC_RETURN
+
+ IF __FPU_USED = 1
+ TST LR,#0x10 ; Check if extended stack frame
+ VLDMIAEQ R0!,{S16-S31} ; Restore VFP S16..S31
+ ENDIF
+ LDMIA R0!,{R4-R11} ; Restore R4..R11
+ MSR PSP,R0 ; Set PSP
+
+ IF __DOMAIN_NS = 1
+ LDR R0,[R2,#TCB_TZM_OFS] ; Load TrustZone memory identifier
+ CBZ R0,SVC_Exit ; Branch if there is no secure context
+ PUSH {R4,LR} ; Save EXC_RETURN
+ BL TZ_LoadContext_S ; Load secure context
+ POP {R4,PC} ; Exit from handler
+ ENDIF
+
+SVC_Exit
+ BX LR ; Exit from handler
+
+SVC_User
+ PUSH {R4,LR} ; Save registers
+ LDR R2,=os_UserSVC_Table ; Load address of SVC table
+ LDR R3,[R2] ; Load SVC maximum number
+ CMP R1,R3 ; Check SVC number range
+ BHI SVC_Done ; Branch if out of range
+
+ LDR R4,[R2,R1,LSL #2] ; Load address of SVC function
+
+ LDM R0,{R0-R3} ; Load function parameters from stack
+ BLX R4 ; Call service function
+ MRS R4,PSP ; Get PSP
+ STR R0,[R4] ; Store function return value
+
+SVC_Done
+ POP {R4,PC} ; Return from handler
+
+ ALIGN
+ ENDP
+
+
+PendSV_Handler PROC
+ EXPORT PendSV_Handler
+ IMPORT os_PendSV_Handler
+
+ PUSH {R4,LR} ; Save EXC_RETURN
+ BL os_PendSV_Handler
+ POP {R4,LR} ; Restore EXC_RETURN
+ B Sys_Context
+
+ ALIGN
+ ENDP
+
+
+SysTick_Handler PROC
+ EXPORT SysTick_Handler
+ IMPORT os_Tick_Handler
+
+ PUSH {R4,LR} ; Save EXC_RETURN
+ BL os_Tick_Handler ; Call os_Tick_Handler
+ POP {R4,LR} ; Restore EXC_RETURN
+ B Sys_Context
+
+ ALIGN
+ ENDP
+
+
+Sys_Context PROC
+ EXPORT Sys_Context
+ IMPORT os_Info
+ IF __DOMAIN_NS = 1
+ IMPORT TZ_LoadContext_S
+ IMPORT TZ_StoreContext_S
+ ENDIF
+
+ LDR R3,=os_Info+I_T_RUN_OFS; Load address of os_Info.run
+ LDM R3,{R1,R2} ; Load os_Info.thread.run: curr & next
+ CMP R1,R2 ; Check if thread switch is required
+ BXEQ LR ; Exit when threads are the same
+
+Sys_ContextSave
+ IF __DOMAIN_NS = 1
+ TST LR,#0x40 ; Check domain of interrupted thread
+ BEQ Sys_ContextSave1 ; Branch if non-secure
+ LDR R0,[R1,#TCB_TZM_OFS] ; Load TrustZone memory identifier
+ PUSH {R1,R2,R3,LR} ; Save registers and EXC_RETURN
+ BL TZ_StoreContext_S ; Store secure context
+ POP {R1,R2,R3,LR} ; Restore registers and EXC_RETURN
+ MRS R0,PSP ; Get PSP
+ B Sys_ContextSave2
+ ENDIF
+
+Sys_ContextSave1
+ MRS R0,PSP ; Get PSP
+ STMDB R0!,{R4-R11} ; Save R4..R11
+ IF __FPU_USED = 1
+ TST LR,#0x10 ; Check if extended stack frame
+ VSTMDBEQ R0!,{S16-S31} ; Save VFP S16.S31
+ ENDIF
+
+Sys_ContextSave2
+ STR R0,[R1,#TCB_SP_OFS] ; Store SP
+ STRB LR,[R1,#TCB_SF_OFS] ; Store stack frame information
+
+Sys_ContextSwitch
+ STR R2,[R3] ; os_Info.run: curr = next
+
+Sys_ContextRestore
+ LDR R0,[R2,#TCB_SM_OFS] ; Load stack memory base
+ LDRB R1,[R2,#TCB_SF_OFS] ; Load stack frame information
+ MSR PSPLIM,R0 ; Set PSPLIM
+ LDR R0,[R2,#TCB_SP_OFS] ; Load SP
+ ORR LR,R1,#0xFFFFFF00 ; Set EXC_RETURN
+
+ IF __FPU_USED = 1
+ TST LR,#0x10 ; Check if extended stack frame
+ VLDMIAEQ R0!,{S16-S31} ; Restore VFP S16..S31
+ ENDIF
+ LDMIA R0!,{R4-R11} ; Restore R4..R11
+ MSR PSP,R0 ; Set PSP
+
+ IF __DOMAIN_NS = 1
+ LDR R0,[R2,#TCB_TZM_OFS] ; Load TrustZone memory identifier
+ CBZ R0,Sys_ContextExit ; Branch if there is no secure context
+ PUSH {R4,LR} ; Save EXC_RETURN
+ BL TZ_LoadContext_S ; Load secure context
+ POP {R4,PC} ; Exit from handler
+ ENDIF
+
+Sys_ContextExit
+ BX LR ; Exit from handler
+
+ ALIGN
+ ENDP
+
+
+ END
diff --git a/CMSIS/RTOS2/RTX/Source/ARM/irq_armv8mml.s b/CMSIS/RTOS2/RTX/Source/ARM/irq_armv8mml.s
new file mode 100644
index 0000000..9ed5acc
--- /dev/null
+++ b/CMSIS/RTOS2/RTX/Source/ARM/irq_armv8mml.s
@@ -0,0 +1,246 @@
+;/*
+; * Copyright (c) 2016 ARM Limited. All rights reserved.
+; *
+; * SPDX-License-Identifier: Apache-2.0
+; *
+; * Licensed under the Apache License, Version 2.0 (the License); you may
+; * not use this file except in compliance with the License.
+; * You may obtain a copy of the License at
+; *
+; * http://www.apache.org/licenses/LICENSE-2.0
+; *
+; * Unless required by applicable law or agreed to in writing, software
+; * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+; * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; * See the License for the specific language governing permissions and
+; * limitations under the License.
+; *
+; * -----------------------------------------------------------------------------
+; *
+; * Project: CMSIS-RTOS RTX
+; * Title: ARMv8M Main Line Exception handlers
+; *
+; * -----------------------------------------------------------------------------
+; */
+
+
+ IF :LNOT::DEF:__FPU_USED
+__FPU_USED EQU 0
+ ENDIF
+
+ IF :LNOT::DEF:__DOMAIN_NS
+__DOMAIN_NS EQU 0
+ ENDIF
+
+I_T_RUN_OFS EQU 28 ; osInfo.thread.run offset
+TCB_SM_OFS EQU 48 ; TCB.stack_mem offset
+TCB_SP_OFS EQU 56 ; TCB.SP offset
+TCB_SF_OFS EQU 34 ; TCB.stack_frame offset
+TCB_TZM_OFS EQU 60 ; TCB.tz_memory offset
+
+
+ PRESERVE8
+ THUMB
+
+
+ AREA |.constdata|, DATA, READONLY
+ EXPORT os_irq_cm
+os_irq_cm DCB 0 ; Non weak library reference
+
+
+ AREA |.text|, CODE, READONLY
+
+
+SVC_Handler PROC
+ EXPORT SVC_Handler
+ IMPORT os_UserSVC_Table
+ IMPORT os_Info
+ IF __DOMAIN_NS = 1
+ IMPORT TZ_LoadContext_S
+ ENDIF
+
+ MRS R0,PSP ; Get PSP
+ LDR R1,[R0,#24] ; Load saved PC from stack
+ LDRB R1,[R1,#-2] ; Load SVC number
+ CBNZ R1,SVC_User ; Branch if not SVC 0
+
+ PUSH {R0,LR} ; Save PSP and EXC_RETURN
+ LDM R0,{R0-R3,R12} ; Load function parameters and address from stack
+ BLX R12 ; Call service function
+ POP {R12,LR} ; Restore PSP and EXC_RETURN
+ STR R0,[R12] ; Store function return value
+
+SVC_Context
+ LDR R3,=os_Info+I_T_RUN_OFS; Load address of os_Info.run
+ LDM R3,{R1,R2} ; Load os_Info.thread.run: curr & next
+ CMP R1,R2 ; Check if thread switch is required
+ BXEQ LR ; Exit when threads are the same
+
+ IF __FPU_USED = 1
+ CBNZ R1,SVC_ContextSave ; Branch if running thread is not deleted
+ TST LR,#0x10 ; Check if extended stack frame
+ BNE SVC_ContextSwitch
+ LDR R1,=0xE000EF34 ; FPCCR Address
+ LDR R0,[R1] ; Load FPCCR
+ BIC R0,#1 ; Clear LSPACT (Lazy state)
+ STR R0,[R1] ; Store FPCCR
+ B SVC_ContextSwitch
+ ELSE
+ CBZ R1,SVC_ContextSwitch ; Branch if running thread is deleted
+ ENDIF
+
+SVC_ContextSave
+ STMDB R12!,{R4-R11} ; Save R4..R11
+ IF __FPU_USED = 1
+ TST LR,#0x10 ; Check if extended stack frame
+ VSTMDBEQ R12!,{S16-S31} ; Save VFP S16.S31
+ ENDIF
+
+ STR R12,[R1,#TCB_SP_OFS] ; Store SP
+ STRB LR, [R1,#TCB_SF_OFS] ; Store stack frame information
+
+SVC_ContextSwitch
+ STR R2,[R3] ; os_Info.thread.run: curr = next
+
+SVC_ContextRestore
+ LDR R0,[R2,#TCB_SM_OFS] ; Load stack memory base
+ LDRB R1,[R2,#TCB_SF_OFS] ; Load stack frame information
+ MSR PSPLIM,R0 ; Set PSPLIM
+ LDR R0,[R2,#TCB_SP_OFS] ; Load SP
+ ORR LR,R1,#0xFFFFFF00 ; Set EXC_RETURN
+
+ IF __FPU_USED = 1
+ TST LR,#0x10 ; Check if extended stack frame
+ VLDMIAEQ R0!,{S16-S31} ; Restore VFP S16..S31
+ ENDIF
+ LDMIA R0!,{R4-R11} ; Restore R4..R11
+ MSR PSP,R0 ; Set PSP
+
+ IF __DOMAIN_NS = 1
+ LDR R0,[R2,#TCB_TZM_OFS] ; Load TrustZone memory identifier
+ CBZ R0,SVC_Exit ; Branch if there is no secure context
+ PUSH {R4,LR} ; Save EXC_RETURN
+ BL TZ_LoadContext_S ; Load secure context
+ POP {R4,PC} ; Exit from handler
+ ENDIF
+
+SVC_Exit
+ BX LR ; Exit from handler
+
+SVC_User
+ PUSH {R4,LR} ; Save registers
+ LDR R2,=os_UserSVC_Table ; Load address of SVC table
+ LDR R3,[R2] ; Load SVC maximum number
+ CMP R1,R3 ; Check SVC number range
+ BHI SVC_Done ; Branch if out of range
+
+ LDR R4,[R2,R1,LSL #2] ; Load address of SVC function
+
+ LDM R0,{R0-R3} ; Load function parameters from stack
+ BLX R4 ; Call service function
+ MRS R4,PSP ; Get PSP
+ STR R0,[R4] ; Store function return value
+
+SVC_Done
+ POP {R4,PC} ; Return from handler
+
+ ALIGN
+ ENDP
+
+
+PendSV_Handler PROC
+ EXPORT PendSV_Handler
+ IMPORT os_PendSV_Handler
+
+ PUSH {R4,LR} ; Save EXC_RETURN
+ BL os_PendSV_Handler
+ POP {R4,LR} ; Restore EXC_RETURN
+ B Sys_Context
+
+ ALIGN
+ ENDP
+
+
+SysTick_Handler PROC
+ EXPORT SysTick_Handler
+ IMPORT os_Tick_Handler
+
+ PUSH {R4,LR} ; Save EXC_RETURN
+ BL os_Tick_Handler ; Call os_Tick_Handler
+ POP {R4,LR} ; Restore EXC_RETURN
+ B Sys_Context
+
+ ALIGN
+ ENDP
+
+
+Sys_Context PROC
+ EXPORT Sys_Context
+ IMPORT os_Info
+ IF __DOMAIN_NS = 1
+ IMPORT TZ_LoadContext_S
+ IMPORT TZ_StoreContext_S
+ ENDIF
+
+ LDR R3,=os_Info+I_T_RUN_OFS; Load address of os_Info.run
+ LDM R3,{R1,R2} ; Load os_Info.thread.run: curr & next
+ CMP R1,R2 ; Check if thread switch is required
+ BXEQ LR ; Exit when threads are the same
+
+Sys_ContextSave
+ IF __DOMAIN_NS = 1
+ TST LR,#0x40 ; Check domain of interrupted thread
+ BEQ Sys_ContextSave1 ; Branch if non-secure
+ LDR R0,[R1,#TCB_TZM_OFS] ; Load TrustZone memory identifier
+ PUSH {R1,R2,R3,LR} ; Save registers and EXC_RETURN
+ BL TZ_StoreContext_S ; Store secure context
+ POP {R1,R2,R3,LR} ; Restore registers and EXC_RETURN
+ MRS R0,PSP ; Get PSP
+ B Sys_ContextSave2
+ ENDIF
+
+Sys_ContextSave1
+ MRS R0,PSP ; Get PSP
+ STMDB R0!,{R4-R11} ; Save R4..R11
+ IF __FPU_USED = 1
+ TST LR,#0x10 ; Check if extended stack frame
+ VSTMDBEQ R0!,{S16-S31} ; Save VFP S16.S31
+ ENDIF
+
+Sys_ContextSave2
+ STR R0,[R1,#TCB_SP_OFS] ; Store SP
+ STRB LR,[R1,#TCB_SF_OFS] ; Store stack frame information
+
+Sys_ContextSwitch
+ STR R2,[R3] ; os_Info.run: curr = next
+
+Sys_ContextRestore
+ LDR R0,[R2,#TCB_SM_OFS] ; Load stack memory base
+ LDRB R1,[R2,#TCB_SF_OFS] ; Load stack frame information
+ MSR PSPLIM,R0 ; Set PSPLIM
+ LDR R0,[R2,#TCB_SP_OFS] ; Load SP
+ ORR LR,R1,#0xFFFFFF00 ; Set EXC_RETURN
+
+ IF __FPU_USED = 1
+ TST LR,#0x10 ; Check if extended stack frame
+ VLDMIAEQ R0!,{S16-S31} ; Restore VFP S16..S31
+ ENDIF
+ LDMIA R0!,{R4-R11} ; Restore R4..R11
+ MSR PSP,R0 ; Set PSP
+
+ IF __DOMAIN_NS = 1
+ LDR R0,[R2,#TCB_TZM_OFS] ; Load TrustZone memory identifier
+ CBZ R0,Sys_ContextExit ; Branch if there is no secure context
+ PUSH {R4,LR} ; Save EXC_RETURN
+ BL TZ_LoadContext_S ; Load secure context
+ POP {R4,PC} ; Exit from handler
+ ENDIF
+
+Sys_ContextExit
+ BX LR ; Exit from handler
+
+ ALIGN
+ ENDP
+
+
+ END
diff --git a/CMSIS/RTOS2/RTX/Source/ARM/irq_cm0.s b/CMSIS/RTOS2/RTX/Source/ARM/irq_cm0.s
index 630eb60..574ba74 100644
--- a/CMSIS/RTOS2/RTX/Source/ARM/irq_cm0.s
+++ b/CMSIS/RTOS2/RTX/Source/ARM/irq_cm0.s
@@ -24,116 +24,119 @@
; */
+I_T_RUN_OFS EQU 28 ; osInfo.thread.run offset
+TCB_SP_OFS EQU 56 ; TCB.SP offset
+
+
PRESERVE8
THUMB
-I_T_RUN_OFS EQU 28 ; osInfo.thread.run offset
-TCB_SP_OFS EQU 56 ; TCB.SP offset
- AREA |.constdata|, DATA, READONLY
- EXPORT os_irq_cm
-os_irq_cm DCB 0 ; Non weak library reference
+ AREA |.constdata|, DATA, READONLY
+ EXPORT os_irq_cm
+os_irq_cm DCB 0 ; Non weak library reference
- AREA |.text|, CODE, READONLY
+
+ AREA |.text|, CODE, READONLY
SVC_Handler PROC
- EXPORT SVC_Handler
- IMPORT os_UserSVC_Table
- IMPORT os_Info
+ EXPORT SVC_Handler
+ IMPORT os_UserSVC_Table
+ IMPORT os_Info
- MRS R0,PSP ; Get PSP
- LDR R1,[R0,#24] ; Load saved PC from stack
- SUBS R1,R1,#2 ; Point to SVC instruction
- LDRB R1,[R1] ; Load SVC number
- CMP R1,#0
- BNE SVC_User ; Branch if not SVC 0
+ MRS R0,PSP ; Get PSP
+ LDR R1,[R0,#24] ; Load saved PC from stack
+ SUBS R1,R1,#2 ; Point to SVC instruction
+ LDRB R1,[R1] ; Load SVC number
+ CMP R1,#0
+ BNE SVC_User ; Branch if not SVC 0
- LDMIA R0,{R0-R3} ; Load function parameters from stack
- BLX R7 ; Call service function
- MRS R3,PSP ; Get PSP
- STR R0,[R3] ; Store function return value
+ LDMIA R0,{R0-R3} ; Load function parameters from stack
+ BLX R7 ; Call service function
+ MRS R3,PSP ; Get PSP
+ STR R0,[R3] ; Store function return value
SVC_Context
- LDR R3,=os_Info+I_T_RUN_OFS ; Load address of os_Info.run
- LDMIA R3!,{R1,R2} ; Load os_Info.thread.run: curr & next
- CMP R1,R2 ; Check if thread switch is required
- BEQ SVC_Exit ; Branch when threads are the same
+ LDR R3,=os_Info+I_T_RUN_OFS; Load address of os_Info.run
+ LDMIA R3!,{R1,R2} ; Load os_Info.thread.run: curr & next
+ CMP R1,R2 ; Check if thread switch is required
+ BEQ SVC_Exit ; Branch when threads are the same
- SUBS R3,R3,#8
- CMP R1,#0
- BEQ SVC_ContextSwitch ; Branch if running thread is deleted
+ SUBS R3,R3,#8
+ CMP R1,#0
+ BEQ SVC_ContextSwitch ; Branch if running thread is deleted
SVC_ContextSave
- MRS R0,PSP ; Get PSP
- SUBS R0,R0,#32 ; Adjust address
- STR R0,[R1,#TCB_SP_OFS] ; Store SP
- STMIA R0!,{R4-R7} ; Save R4..R7
- MOV R4,R8
- MOV R5,R9
- MOV R6,R10
- MOV R7,R11
- STMIA R0!,{R4-R7} ; Save R8..R11
+ MRS R0,PSP ; Get PSP
+ SUBS R0,R0,#32 ; Adjust address
+ STR R0,[R1,#TCB_SP_OFS] ; Store SP
+ STMIA R0!,{R4-R7} ; Save R4..R7
+ MOV R4,R8
+ MOV R5,R9
+ MOV R6,R10
+ MOV R7,R11
+ STMIA R0!,{R4-R7} ; Save R8..R11
SVC_ContextSwitch
- STR R2,[R3] ; os_Info.thread.run: curr = next
+ STR R2,[R3] ; os_Info.thread.run: curr = next
SVC_ContextRestore
- LDR R0,[R2,#TCB_SP_OFS] ; Load SP
- ADDS R0,R0,#16 ; Adjust address
- LDMIA R0!,{R4-R7} ; Restore R8..R11
- MOV R8,R4
- MOV R9,R5
- MOV R10,R6
- MOV R11,R7
- MSR PSP,R0 ; Set PSP
- SUBS R0,R0,#32 ; Adjust address
- LDMIA R0!,{R4-R7} ; Restore R4..R7
+ LDR R0,[R2,#TCB_SP_OFS] ; Load SP
+ ADDS R0,R0,#16 ; Adjust address
+ LDMIA R0!,{R4-R7} ; Restore R8..R11
+ MOV R8,R4
+ MOV R9,R5
+ MOV R10,R6
+ MOV R11,R7
+ MSR PSP,R0 ; Set PSP
+ SUBS R0,R0,#32 ; Adjust address
+ LDMIA R0!,{R4-R7} ; Restore R4..R7
SVC_Exit
- MOVS R0,#~0xFFFFFFFD ; Set EXC_RETURN value
- MVNS R0,R0
- BX R0 ; Exit from handler
+ MOVS R0,#~0xFFFFFFFD ; Set EXC_RETURN value
+ MVNS R0,R0
+ BX R0 ; Exit from handler
SVC_User
- PUSH {R4,LR} ; Save registers
- LDR R2,=os_UserSVC_Table ; Load address of SVC table
- LDR R3,[R2] ; Load SVC maximum number
- CMP R1,R3 ; Check SVC number range
- BHI SVC_Done ; Branch if out of range
+ PUSH {R4,LR} ; Save registers
+ LDR R2,=os_UserSVC_Table ; Load address of SVC table
+ LDR R3,[R2] ; Load SVC maximum number
+ CMP R1,R3 ; Check SVC number range
+ BHI SVC_Done ; Branch if out of range
- LSLS R1,R1,#2
- LDR R4,[R2,R1] ; Load address of SVC function
+ LSLS R1,R1,#2
+ LDR R4,[R2,R1] ; Load address of SVC function
- LDMIA R0,{R0-R3} ; Load function parameters from stack
- BLX R4 ; Call service function
- MRS R4,PSP ; Get PSP
- STMIA R4!,{R0-R3} ; Store function return values
+ LDMIA R0,{R0-R3} ; Load function parameters from stack
+ BLX R4 ; Call service function
+ MRS R4,PSP ; Get PSP
+ STMIA R4!,{R0-R3} ; Store function return values
SVC_Done
- POP {R4,PC} ; Return from handler
+ POP {R4,PC} ; Return from handler
ALIGN
ENDP
PendSV_Handler PROC
- EXPORT PendSV_Handler
- IMPORT os_PendSV_Handler
+ EXPORT PendSV_Handler
+ IMPORT os_PendSV_Handler
- BL os_PendSV_Handler
- B SVC_Context
+ BL os_PendSV_Handler
+ B SVC_Context
ALIGN
ENDP
SysTick_Handler PROC
- EXPORT SysTick_Handler
- IMPORT os_Tick_Handler
+ EXPORT SysTick_Handler
+ IMPORT os_Tick_Handler
- BL os_Tick_Handler
- B SVC_Context
+ BL os_Tick_Handler
+ B SVC_Context
ALIGN
ENDP
diff --git a/CMSIS/RTOS2/RTX/Source/ARM/irq_cm3.s b/CMSIS/RTOS2/RTX/Source/ARM/irq_cm3.s
index ba27211..88d666d 100644
--- a/CMSIS/RTOS2/RTX/Source/ARM/irq_cm3.s
+++ b/CMSIS/RTOS2/RTX/Source/ARM/irq_cm3.s
@@ -24,98 +24,101 @@
; */
+I_T_RUN_OFS EQU 28 ; osInfo.thread.run offset
+TCB_SP_OFS EQU 56 ; TCB.SP offset
+
+
PRESERVE8
THUMB
-I_T_RUN_OFS EQU 28 ; osInfo.thread.run offset
-TCB_SP_OFS EQU 56 ; TCB.SP offset
- AREA |.constdata|, DATA, READONLY
- EXPORT os_irq_cm
-os_irq_cm DCB 0 ; Non weak library reference
+ AREA |.constdata|, DATA, READONLY
+ EXPORT os_irq_cm
+os_irq_cm DCB 0 ; Non weak library reference
- AREA |.text|, CODE, READONLY
+
+ AREA |.text|, CODE, READONLY
SVC_Handler PROC
- EXPORT SVC_Handler
- IMPORT os_UserSVC_Table
- IMPORT os_Info
+ EXPORT SVC_Handler
+ IMPORT os_UserSVC_Table
+ IMPORT os_Info
- MRS R0,PSP ; Get PSP
- LDR R1,[R0,#24] ; Load saved PC from stack
- LDRB R1,[R1,#-2] ; Load SVC number
- CBNZ R1,SVC_User ; Branch if not SVC 0
+ MRS R0,PSP ; Get PSP
+ LDR R1,[R0,#24] ; Load saved PC from stack
+ LDRB R1,[R1,#-2] ; Load SVC number
+ CBNZ R1,SVC_User ; Branch if not SVC 0
- LDM R0,{R0-R3,R12} ; Load function parameters and address from stack
- BLX R12 ; Call service function
- MRS R12,PSP ; Get PSP
- STR R0,[R12] ; Store function return value
+ LDM R0,{R0-R3,R12} ; Load function parameters and address from stack
+ BLX R12 ; Call service function
+ MRS R12,PSP ; Get PSP
+ STR R0,[R12] ; Store function return value
SVC_Context
- LDR R3,=os_Info+I_T_RUN_OFS ; Load address of os_Info.run
- LDM R3,{R1,R2} ; Load os_Info.thread.run: curr & next
- CMP R1,R2 ; Check if thread switch is required
- BEQ SVC_Exit ; Branch when threads are the same
+ LDR R3,=os_Info+I_T_RUN_OFS; Load address of os_Info.run
+ LDM R3,{R1,R2} ; Load os_Info.thread.run: curr & next
+ CMP R1,R2 ; Check if thread switch is required
+ BEQ SVC_Exit ; Branch when threads are the same
- CBZ R1,SVC_ContextSwitch ; Branch if running thread is deleted
+ CBZ R1,SVC_ContextSwitch ; Branch if running thread is deleted
SVC_ContextSave
- STMDB R12!,{R4-R11} ; Save R4..R11
- STR R12,[R1,#TCB_SP_OFS] ; Store SP
+ STMDB R12!,{R4-R11} ; Save R4..R11
+ STR R12,[R1,#TCB_SP_OFS] ; Store SP
SVC_ContextSwitch
- STR R2,[R3] ; os_Info.thread.run: curr = next
+ STR R2,[R3] ; os_Info.thread.run: curr = next
SVC_ContextRestore
- LDR R12,[R2,#TCB_SP_OFS] ; Load SP
- LDMIA R12!,{R4-R11} ; Restore R4..R11
- MSR PSP,R12 ; Set PSP
+ LDR R0,[R2,#TCB_SP_OFS] ; Load SP
+ LDMIA R0!,{R4-R11} ; Restore R4..R11
+ MSR PSP,R0 ; Set PSP
SVC_Exit
- MVN LR,#~0xFFFFFFFD ; Set EXC_RETURN value
- BX LR ; Exit from handler
+ MVN LR,#~0xFFFFFFFD ; Set EXC_RETURN value
+ BX LR ; Exit from handler
SVC_User
- PUSH {R4,LR} ; Save registers
- LDR R2,=os_UserSVC_Table ; Load address of SVC table
- LDR R3,[R2] ; Load SVC maximum number
- CMP R1,R3 ; Check SVC number range
- BHI SVC_Done ; Branch if out of range
+ PUSH {R4,LR} ; Save registers
+ LDR R2,=os_UserSVC_Table ; Load address of SVC table
+ LDR R3,[R2] ; Load SVC maximum number
+ CMP R1,R3 ; Check SVC number range
+ BHI SVC_Done ; Branch if out of range
- LDR R4,[R2,R1,LSL #2] ; Load address of SVC function
+ LDR R4,[R2,R1,LSL #2] ; Load address of SVC function
- LDM R0,{R0-R3} ; Load function parameters from stack
- BLX R4 ; Call service function
- MRS R12,PSP ; Get PSP
- STM R12,{R0-R3} ; Store function return values
+ LDM R0,{R0-R3} ; Load function parameters from stack
+ BLX R4 ; Call service function
+ MRS R4,PSP ; Get PSP
+ STR R0,[R4] ; Store function return value
SVC_Done
- POP {R4,PC} ; Return from handler
+ POP {R4,PC} ; Return from handler
ALIGN
ENDP
PendSV_Handler PROC
- EXPORT PendSV_Handler
- IMPORT os_PendSV_Handler
+ EXPORT PendSV_Handler
+ IMPORT os_PendSV_Handler
- BL os_PendSV_Handler
- MRS R12,PSP
- B SVC_Context
+ BL os_PendSV_Handler
+ MRS R12,PSP
+ B SVC_Context
ALIGN
ENDP
SysTick_Handler PROC
- EXPORT SysTick_Handler
- IMPORT os_Tick_Handler
+ EXPORT SysTick_Handler
+ IMPORT os_Tick_Handler
- BL os_Tick_Handler
- MRS R12,PSP
- B SVC_Context
+ BL os_Tick_Handler
+ MRS R12,PSP
+ B SVC_Context
ALIGN
ENDP
diff --git a/CMSIS/RTOS2/RTX/Source/ARM/irq_cm4f.s b/CMSIS/RTOS2/RTX/Source/ARM/irq_cm4f.s
index c902631..6e8184c 100644
--- a/CMSIS/RTOS2/RTX/Source/ARM/irq_cm4f.s
+++ b/CMSIS/RTOS2/RTX/Source/ARM/irq_cm4f.s
@@ -24,121 +24,122 @@
; */
+I_T_RUN_OFS EQU 28 ; osInfo.thread.run offset
+TCB_SP_OFS EQU 56 ; TCB.SP offset
+TCB_SF_OFS EQU 34 ; TCB.stack_frame offset
+
+
PRESERVE8
THUMB
-I_T_RUN_OFS EQU 28 ; osInfo.thread.run offset
-TCB_SP_OFS EQU 56 ; TCB.SP offset
-TCB_SF_OFS EQU 34 ; TCB.stack_frame offset
- AREA |.constdata|, DATA, READONLY
- EXPORT os_irq_cm
-os_irq_cm DCB 0 ; Non weak library reference
+ AREA |.constdata|, DATA, READONLY
+ EXPORT os_irq_cm
+os_irq_cm DCB 0 ; Non weak library reference
- AREA |.text|, CODE, READONLY
+
+ AREA |.text|, CODE, READONLY
SVC_Handler PROC
- EXPORT SVC_Handler
- IMPORT os_UserSVC_Table
- IMPORT os_Info
+ EXPORT SVC_Handler
+ IMPORT os_UserSVC_Table
+ IMPORT os_Info
- MRS R0,PSP ; Get PSP
- LDR R1,[R0,#24] ; Load saved PC from stack
- LDRB R1,[R1,#-2] ; Load SVC number
- CBNZ R1,SVC_User ; Branch if not SVC 0
+ MRS R0,PSP ; Get PSP
+ LDR R1,[R0,#24] ; Load saved PC from stack
+ LDRB R1,[R1,#-2] ; Load SVC number
+ CBNZ R1,SVC_User ; Branch if not SVC 0
- PUSH {R0,LR} ; Save PSP and EXC_RETURN
- LDM R0,{R0-R3,R12} ; Load function parameters and address from stack
- BLX R12 ; Call service function
- POP {R12,LR} ; Restore PSP and EXC_RETURN
- STR R0,[R12] ; Store function return value
+ PUSH {R0,LR} ; Save PSP and EXC_RETURN
+ LDM R0,{R0-R3,R12} ; Load function parameters and address from stack
+ BLX R12 ; Call service function
+ POP {R12,LR} ; Restore PSP and EXC_RETURN
+ STR R0,[R12] ; Store function return value
SVC_Context
- LDR R3,=os_Info+I_T_RUN_OFS ; Load address of os_Info.run
- LDM R3,{R1,R2} ; Load os_Info.thread.run: curr & next
- CMP R1,R2 ; Check if thread switch is required
- BEQ SVC_Exit ; Branch when threads are the same
+ LDR R3,=os_Info+I_T_RUN_OFS; Load address of os_Info.run
+ LDM R3,{R1,R2} ; Load os_Info.thread.run: curr & next
+ CMP R1,R2 ; Check if thread switch is required
+ BXEQ LR ; Exit when threads are the same
- CBNZ R1,SVC_ContextSave ; Branch if running thread is not deleted
-
- TST LR,#0x10 ; Check if extended stack frame
- BNE SVC_ContextSwitch
- LDR R1,=0xE000EF34 ; FPCCR Address
- LDR R0,[R1] ; Load FPCCR
- BIC R0,#1 ; Clear LSPACT (Lazy state)
- STR R0,[R1] ; Store FPCCR
- B SVC_ContextSwitch
+ CBNZ R1,SVC_ContextSave ; Branch if running thread is not deleted
+ TST LR,#0x10 ; Check if extended stack frame
+ BNE SVC_ContextSwitch
+ LDR R1,=0xE000EF34 ; FPCCR Address
+ LDR R0,[R1] ; Load FPCCR
+ BIC R0,#1 ; Clear LSPACT (Lazy state)
+ STR R0,[R1] ; Store FPCCR
+ B SVC_ContextSwitch
SVC_ContextSave
- TST LR,#0x10 ; Check if extended stack frame
+ STMDB R12!,{R4-R11} ; Save R4..R11
+ TST LR,#0x10 ; Check if extended stack frame
VSTMDBEQ R12!,{S16-S31} ; Save VFP S16.S31
- MOVEQ R0,#1 ; Extended stack frame identifier
- MOVNE R0,#0 ; Basic stack frame identifier
- STMDB R12!,{R4-R11} ; Save R4..R11
- STR R12,[R1,#TCB_SP_OFS] ; Store SP
- STRB R0, [R1,#TCB_SF_OFS] ; Store stack frame information
+
+ STR R12,[R1,#TCB_SP_OFS] ; Store SP
+ STRB LR, [R1,#TCB_SF_OFS] ; Store stack frame information
SVC_ContextSwitch
- STR R2,[R3] ; os_Info.thread.run: curr = next
+ STR R2,[R3] ; os_Info.thread.run: curr = next
SVC_ContextRestore
- LDR R12,[R2,#TCB_SP_OFS] ; Load SP
- LDRB R0, [R2,#TCB_SF_OFS] ; Load stack frame information
- LDMIA R12!,{R4-R11} ; Restore R4..R11
- CMP R0,#1 ; Check if extended stack frame
- VLDMIAEQ R12!,{S16-S31} ; Restore VFP S16..S31
- MVNEQ LR,#~0xFFFFFFED ; Set EXC_RETURN value
- MVNNE LR,#~0xFFFFFFFD
- MSR PSP,R12 ; Set PSP
+ LDRB R1,[R2,#TCB_SF_OFS] ; Load stack frame information
+ LDR R0,[R2,#TCB_SP_OFS] ; Load SP
+ ORR LR,R1,#0xFFFFFF00 ; Set EXC_RETURN
+
+ TST LR,#0x10 ; Check if extended stack frame
+ VLDMIAEQ R0!,{S16-S31} ; Restore VFP S16..S31
+ LDMIA R0!,{R4-R11} ; Restore R4..R11
+ MSR PSP,R0 ; Set PSP
SVC_Exit
- BX LR ; Exit from handler
+ BX LR ; Exit from handler
SVC_User
- PUSH {R4,LR} ; Save registers
- LDR R2,=os_UserSVC_Table ; Load address of SVC table
- LDR R3,[R2] ; Load SVC maximum number
- CMP R1,R3 ; Check SVC number range
- BHI SVC_Done ; Branch if out of range
+ PUSH {R4,LR} ; Save registers
+ LDR R2,=os_UserSVC_Table ; Load address of SVC table
+ LDR R3,[R2] ; Load SVC maximum number
+ CMP R1,R3 ; Check SVC number range
+ BHI SVC_Done ; Branch if out of range
- LDR R4,[R2,R1,LSL #2] ; Load address of SVC function
+ LDR R4,[R2,R1,LSL #2] ; Load address of SVC function
- LDM R0,{R0-R3} ; Load function parameters from stack
- BLX R4 ; Call service function
- MRS R12,PSP ; Get PSP
- STM R12,{R0-R3} ; Store function return values
+ LDM R0,{R0-R3} ; Load function parameters from stack
+ BLX R4 ; Call service function
+ MRS R4,PSP ; Get PSP
+ STR R0,[R4] ; Store function return value
SVC_Done
- POP {R4,PC} ; Return from handler
+ POP {R4,PC} ; Return from handler
ALIGN
ENDP
PendSV_Handler PROC
- EXPORT PendSV_Handler
- IMPORT os_PendSV_Handler
+ EXPORT PendSV_Handler
+ IMPORT os_PendSV_Handler
- PUSH {R4,LR} ; Save EXC_RETURN
- BL os_PendSV_Handler
- POP {R4,LR} ; Restore EXC_RETURN
- MRS R12,PSP
- B SVC_Context
+ PUSH {R4,LR} ; Save EXC_RETURN
+ BL os_PendSV_Handler
+ POP {R4,LR} ; Restore EXC_RETURN
+ MRS R12,PSP
+ B SVC_Context
ALIGN
ENDP
SysTick_Handler PROC
- EXPORT SysTick_Handler
- IMPORT os_Tick_Handler
+ EXPORT SysTick_Handler
+ IMPORT os_Tick_Handler
- PUSH {R4,LR} ; Save EXC_RETURN
- BL os_Tick_Handler
- POP {R4,LR} ; Restore EXC_RETURN
- MRS R12,PSP
- B SVC_Context
+ PUSH {R4,LR} ; Save EXC_RETURN
+ BL os_Tick_Handler
+ POP {R4,LR} ; Restore EXC_RETURN
+ MRS R12,PSP
+ B SVC_Context
ALIGN
ENDP
diff --git a/CMSIS/RTOS2/RTX/Source/core_cm.h b/CMSIS/RTOS2/RTX/Source/core_cm.h
index 8198283..cfce32d 100644
--- a/CMSIS/RTOS2/RTX/Source/core_cm.h
+++ b/CMSIS/RTOS2/RTX/Source/core_cm.h
@@ -29,9 +29,60 @@
#include "RTE_Components.h"
#include CMSIS_device_header
-#if !defined(__NO_EXCLUSIVE_ACCESS) && (__CORTEX_M < 3U)
-#define __NO_EXCLUSIVE_ACCESS
+#ifndef __ARM_ARCH_6M__
+#define __ARM_ARCH_6M__ 0U
#endif
+#ifndef __ARM_ARCH_7M__
+#define __ARM_ARCH_7M__ 0U
+#endif
+#ifndef __ARM_ARCH_7EM__
+#define __ARM_ARCH_7EM__ 0U
+#endif
+#ifndef __ARM_ARCH_8M_BASE__
+#define __ARM_ARCH_8M_BASE__ 0U
+#endif
+#ifndef __ARM_ARCH_8M_MAIN__
+#define __ARM_ARCH_8M_MAIN__ 0U
+#endif
+
+#if ((__ARM_ARCH_6M__ + \
+ __ARM_ARCH_7M__ + \
+ __ARM_ARCH_7EM__ + \
+ __ARM_ARCH_8M_BASE__ + \
+ __ARM_ARCH_8M_MAIN__) != 1U)
+#error "Unknown ARM Architecture!"
+#endif
+
+#ifndef __DOMAIN_NS
+#define __DOMAIN_NS 0U
+#elif ((__DOMAIN_NS == 1U) && \
+ ((__ARM_ARCH_6M__ == 1U) || \
+ (__ARM_ARCH_7M__ == 1U) || \
+ (__ARM_ARCH_7EM__ == 1U)))
+#error "Non-secure domain requires ARMv8-M Architecture!"
+#endif
+
+#ifndef __EXCLUSIVE_ACCESS
+#if ((__ARM_ARCH_7M__ == 1U) || \
+ (__ARM_ARCH_7EM__ == 1U) || \
+ (__ARM_ARCH_8M_BASE__ == 1U) || \
+ (__ARM_ARCH_8M_MAIN__ == 1U))
+#define __EXCLUSIVE_ACCESS 1U
+#else
+#define __EXCLUSIVE_ACCESS 0U
+#endif
+#endif
+
+
+#define XPSR_INITIAL_VALUE 0x01000000U
+
+#if (__DOMAIN_NS == 1U)
+#define STACK_FRAME_INIT 0xBCU
+#else
+#define STACK_FRAME_INIT 0xFDU
+#endif
+
+#define IS_EXTENDED_STACK_FRAME(n) (((n) & 0x10U) == 0U)
// ==== Service Calls definitions ====
@@ -72,7 +123,9 @@
SVC_ArgR(2,a3); \
SVC_ArgR(3,a4)
-#if (__CORTEX_M >= 3U)
+#if ((__ARM_ARCH_7M__ == 1U) || \
+ (__ARM_ARCH_7EM__ == 1U) || \
+ (__ARM_ARCH_8M_MAIN__ == 1U))
#define SVC_Call0(f) \
__ASM volatile \
( \
@@ -82,7 +135,8 @@
: "r" (__r0), "r" (__r1), "r" (__r2), "r" (__r3) \
: "r12", "lr", "cc" \
)
-#else
+#elif ((__ARM_ARCH_6M__ == 1U) || \
+ (__ARM_ARCH_8M_BASE__ == 1U))
#define SVC_Call0(f) \
__ASM volatile \
( \
@@ -151,14 +205,25 @@
// ==== Core Peripherals functions ====
-#define XPSR_INITIAL_VALUE 0x01000000U
-
extern uint32_t SystemCoreClock; // System Clock Frequency (Core Clock)
/// Initialize SVC and PendSV System Service Calls
__STATIC_INLINE void os_SVC_Initialize (void) {
-#if (__CORTEX_M >= 3U)
+#if (__ARM_ARCH_8M_MAIN__ == 1U)
+ uint32_t p, n;
+
+ SCB->SHPR[10] = 0xFFU;
+ n = 32U - (uint32_t)__CLZ(~(SCB->SHPR[10] | 0xFFFFFF00U));
+ p = NVIC_GetPriorityGrouping();
+ if (p >= n) {
+ n = p + 1U;
+ }
+ SCB->SHPR[7] = (uint8_t)(0xFEU << n);
+#elif (__ARM_ARCH_8M_BASE__ == 1U)
+ SCB->SHPR[1] |= 0x00FF0000U;
+ SCB->SHPR[0] |= (SCB->SHPR[1] << (8+1)) & 0xFC000000U;
+#elif ((__ARM_ARCH_7M__ == 1U) || (__ARM_ARCH_7EM__ == 1U))
uint32_t p, n;
SCB->SHP[10] = 0xFFU;
@@ -168,7 +233,7 @@
n = p + 1U;
}
SCB->SHP[7] = (uint8_t)(0xFEU << n);
-#else
+#elif (__ARM_ARCH_6M__ == 1U)
SCB->SHP[1] |= 0x00FF0000U;
SCB->SHP[0] |= (SCB->SHP[1] << (8+1)) & 0xFC000000U;
#endif
@@ -179,9 +244,13 @@
__STATIC_INLINE void os_SysTick_Setup (uint32_t period) {
SysTick->LOAD = period - 1U;
SysTick->VAL = 0U;
-#if (__CORTEX_M >= 3U)
+#if (__ARM_ARCH_8M_MAIN__ == 1U)
+ SCB->SHPR[11] = 0xFFU;
+#elif (__ARM_ARCH_8M_BASE__ == 1U)
+ SCB->SHPR[1] |= 0xFF000000U;
+#elif ((__ARM_ARCH_7M__ == 1U) || (__ARM_ARCH_7EM__ == 1U))
SCB->SHP[11] = 0xFFU;
-#else
+#elif (__ARM_ARCH_6M__ == 1U)
SCB->SHP[1] |= 0xFF000000U;
#endif
}
@@ -219,7 +288,18 @@
/// Setup External Tick Timer Interrupt
/// \param[in] irqn Interrupt number
__STATIC_INLINE void os_ExtTick_SetupIRQ (int32_t irqn) {
- NVIC->IP[irqn] = 0xFFU;
+#if (__ARM_ARCH_8M_MAIN__ == 1U)
+ NVIC->IPR[irqn] = 0xFFU;
+#elif (__ARM_ARCH_8M_BASE__ == 1U)
+ NVIC->IPR[irqn >> 2] = (NVIC->IPR[irqn >> 2] & ~(0xFFU << ((irqn & 3) << 3))) |
+ (0xFFU << ((irqn & 3) << 3));
+#elif ((__ARM_ARCH_7M__ == 1U) || \
+ (__ARM_ARCH_7EM__ == 1U))
+ NVIC->IP[irqn] = 0xFFU;
+#elif (__ARM_ARCH_6M__ == 1U)
+ NVIC->IP[irqn >> 2] = (NVIC->IP[irqn >> 2] & ~(0xFFU << ((irqn & 3) << 3))) |
+ (0xFFU << ((irqn & 3) << 3));
+#endif
}
/// Enable External Tick Timer Interrupt
@@ -270,7 +350,7 @@
// ==== Exclusive Access Operation ====
-#if (__CORTEX_M >= 3U)
+#if (__EXCLUSIVE_ACCESS == 1U)
/// Exclusive Access Operation: Write (8-bit)
/// \param[in] mem Memory address
@@ -564,7 +644,7 @@
return ret;
}
-#endif // __CORTEX_M >= 3U
+#endif // (__EXCLUSIVE_ACCESS == 1U)
#endif // __CORE_CM_H
diff --git a/CMSIS/RTOS2/RTX/Source/rtx_evflags.c b/CMSIS/RTOS2/RTX/Source/rtx_evflags.c
index 8dec7a0..d877d27 100644
--- a/CMSIS/RTOS2/RTX/Source/rtx_evflags.c
+++ b/CMSIS/RTOS2/RTX/Source/rtx_evflags.c
@@ -33,12 +33,12 @@
/// \param[in] flags specifies the flags to set.
/// \return event flags after setting.
static int32_t os_EventFlagsSet (os_event_flags_t *ef, int32_t flags) {
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
uint32_t primask = __get_PRIMASK();
#endif
int32_t event_flags;
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
__disable_irq();
ef->event_flags |= flags;
@@ -59,12 +59,12 @@
/// \param[in] flags specifies the flags to clear.
/// \return event flags before clearing.
static int32_t os_EventFlagsClear (os_event_flags_t *ef, int32_t flags) {
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
uint32_t primask = __get_PRIMASK();
#endif
int32_t event_flags;
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
__disable_irq();
event_flags = ef->event_flags;
@@ -86,13 +86,13 @@
/// \param[in] options specifies flags options (osFlagsXxxx).
/// \return event flags before clearing or 0 if specified flags have not been set.
static int32_t os_EventFlagsCheck (os_event_flags_t *ef, int32_t flags, uint32_t options) {
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
uint32_t primask;
#endif
int32_t event_flags;
if ((options & osFlagsAutoClear) != 0U) {
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
primask = __get_PRIMASK();
__disable_irq();
diff --git a/CMSIS/RTOS2/RTX/Source/rtx_kernel.c b/CMSIS/RTOS2/RTX/Source/rtx_kernel.c
index aecac5a..7d386b0 100644
--- a/CMSIS/RTOS2/RTX/Source/rtx_kernel.c
+++ b/CMSIS/RTOS2/RTX/Source/rtx_kernel.c
@@ -194,6 +194,13 @@
os_Info.mpi.message_queue = os_Config.mpi.message_queue;
}
+#if (__DOMAIN_NS == 1U)
+ // Initialize Secure Process Stack
+ if (TZ_InitContextSystem_S() == 0U) {
+ return osError;
+ }
+#endif
+
// Create Idle Thread
os_Info.thread.idle = (os_thread_t *)(os_svcThreadNew(
os_IdleThread,
@@ -251,7 +258,6 @@
return osError;
}
os_ThreadSwitch(thread);
- __set_PSP(thread->sp + (8U*4U));
if ((os_Config.flags & os_ConfigPrivilegedMode) != 0U) {
// Privileged Thread mode & PSP
@@ -457,6 +463,9 @@
}
switch (__get_CONTROL() & 0x03U) {
case 0x00U: // Privileged Thread mode & MSP
+#if ((__ARM_ARCH_8M_BASE__ == 1U) || (__ARM_ARCH_8M_MAIN__ == 1U))
+ __set_PSPLIM((uint32_t)stack);
+#endif
__set_PSP((uint32_t)(stack + 8)); // Initial PSP
__set_CONTROL(0x02U); // Set Privileged Thread mode & PSP
__DSB();
diff --git a/CMSIS/RTOS2/RTX/Source/rtx_lib.h b/CMSIS/RTOS2/RTX/Source/rtx_lib.h
index f14d83b..fa87c5e 100644
--- a/CMSIS/RTOS2/RTX/Source/rtx_lib.h
+++ b/CMSIS/RTOS2/RTX/Source/rtx_lib.h
@@ -29,6 +29,7 @@
#include <string.h>
#include <stdbool.h>
#include "core_cm.h" // Cortex-M definitions
+#include "tz_context.h" // TrustZone Context API
#include "cmsis_os2.h" // CMSIS RTOS API
#include "rtx_os.h" // RTX OS definitions
diff --git a/CMSIS/RTOS2/RTX/Source/rtx_mempool.c b/CMSIS/RTOS2/RTX/Source/rtx_mempool.c
index b8439c2..64f2970 100644
--- a/CMSIS/RTOS2/RTX/Source/rtx_mempool.c
+++ b/CMSIS/RTOS2/RTX/Source/rtx_mempool.c
@@ -68,7 +68,7 @@
/// \param[in] mp_info memory pool info.
/// \return address of the allocated memory block or NULL in case of no memory is available.
void *os_MemoryPoolAlloc (os_mp_info_t *mp_info) {
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
uint32_t primask = __get_PRIMASK();
#endif
void *block;
@@ -77,7 +77,7 @@
return NULL;
}
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
__disable_irq();
block = mp_info->block_free;
@@ -130,7 +130,7 @@
/// \param[in] block address of the allocated memory block to be returned to the memory pool.
/// \return status code that indicates the execution status of the function.
osStatus_t os_MemoryPoolFree (os_mp_info_t *mp_info, void *block) {
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
uint32_t primask = __get_PRIMASK();
#endif
@@ -141,7 +141,7 @@
return osErrorParameter;
}
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
__disable_irq();
*((void **)block) = mp_info->block_free;
diff --git a/CMSIS/RTOS2/RTX/Source/rtx_msgqueue.c b/CMSIS/RTOS2/RTX/Source/rtx_msgqueue.c
index c539a53..22c8bba 100644
--- a/CMSIS/RTOS2/RTX/Source/rtx_msgqueue.c
+++ b/CMSIS/RTOS2/RTX/Source/rtx_msgqueue.c
@@ -32,7 +32,7 @@
/// \param[in] mq message queue object.
/// \param[in] msg message object.
static void os_MessageQueuePut (os_message_queue_t *mq, os_message_t *msg) {
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
uint32_t primask = __get_PRIMASK();
#endif
os_message_t *prev, *next;
@@ -63,7 +63,7 @@
mq->msg_last = msg;
}
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
__disable_irq();
mq->msg_count++;
@@ -80,14 +80,14 @@
/// \param[in] mq message queue object.
/// \return message object or NULL.
static os_message_t *os_MessageQueueGet (os_message_queue_t *mq) {
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
uint32_t primask = __get_PRIMASK();
#endif
os_message_t *msg;
uint32_t count;
uint8_t flags;
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
__disable_irq();
count = mq->msg_count;
@@ -109,7 +109,7 @@
msg = mq->msg_first;
while (msg != NULL) {
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
__disable_irq();
flags = msg->flags;
diff --git a/CMSIS/RTOS2/RTX/Source/rtx_semaphore.c b/CMSIS/RTOS2/RTX/Source/rtx_semaphore.c
index 7a47982..fab55e9 100644
--- a/CMSIS/RTOS2/RTX/Source/rtx_semaphore.c
+++ b/CMSIS/RTOS2/RTX/Source/rtx_semaphore.c
@@ -32,12 +32,12 @@
/// \param[in] semaphore semaphore object.
/// \return 1 - success, 0 - failure.
static uint32_t os_SemaphoreTokenDecrement (os_semaphore_t *semaphore) {
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
uint32_t primask = __get_PRIMASK();
#endif
uint32_t ret;
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
__disable_irq();
if (semaphore->tokens != 0U) {
@@ -65,12 +65,12 @@
/// \param[in] semaphore semaphore object.
/// \return 1 - success, 0 - failure.
static uint32_t os_SemaphoreTokenIncrement (os_semaphore_t *semaphore) {
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
uint32_t primask = __get_PRIMASK();
#endif
uint32_t ret;
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
__disable_irq();
if (semaphore->tokens < semaphore->max_tokens) {
diff --git a/CMSIS/RTOS2/RTX/Source/rtx_system.c b/CMSIS/RTOS2/RTX/Source/rtx_system.c
index 6a37c6d..88be588 100644
--- a/CMSIS/RTOS2/RTX/Source/rtx_system.c
+++ b/CMSIS/RTOS2/RTX/Source/rtx_system.c
@@ -32,7 +32,7 @@
/// \param[in] object object.
/// \return 1 - success, 0 - failure.
static uint32_t os_isr_queue_put (void *object) {
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
uint32_t primask = __get_PRIMASK();
#else
uint32_t n;
@@ -42,7 +42,7 @@
max = os_Info.isr_queue.max;
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
__disable_irq();
if (os_Info.isr_queue.cnt < max) {
@@ -75,7 +75,7 @@
/// Get Object from ISR Queue.
/// \return object or NULL.
static void *os_isr_queue_get (void) {
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
uint32_t primask = __get_PRIMASK();
#else
uint32_t n;
@@ -85,7 +85,7 @@
max = os_Info.isr_queue.max;
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
__disable_irq();
if (os_Info.isr_queue.cnt != 0U) {
diff --git a/CMSIS/RTOS2/RTX/Source/rtx_thread.c b/CMSIS/RTOS2/RTX/Source/rtx_thread.c
index 280a107..cb841c7 100644
--- a/CMSIS/RTOS2/RTX/Source/rtx_thread.c
+++ b/CMSIS/RTOS2/RTX/Source/rtx_thread.c
@@ -33,12 +33,12 @@
/// \param[in] flags specifies the flags to set.
/// \return thread flags after setting.
static int32_t os_ThreadFlagsSet (os_thread_t *thread, int32_t flags) {
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
uint32_t primask = __get_PRIMASK();
#endif
int32_t thread_flags;
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
__disable_irq();
thread->thread_flags |= flags;
@@ -59,12 +59,12 @@
/// \param[in] flags specifies the flags to clear.
/// \return thread flags before clearing.
static int32_t os_ThreadFlagsClear (os_thread_t *thread, int32_t flags) {
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
uint32_t primask = __get_PRIMASK();
#endif
int32_t thread_flags;
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
__disable_irq();
thread_flags = thread->thread_flags;
@@ -86,13 +86,13 @@
/// \param[in] options specifies flags options (osFlagsXxxx).
/// \return thread flags before clearing or 0 if specified flags have not been set.
static int32_t os_ThreadFlagsCheck (os_thread_t *thread, int32_t flags, uint32_t options) {
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
uint32_t primask;
#endif
int32_t thread_flags;
if ((options & osFlagsAutoClear) != 0U) {
-#ifdef __NO_EXCLUSIVE_ACCESS
+#if (__EXCLUSIVE_ACCESS == 0U)
primask = __get_PRIMASK();
__disable_irq();
@@ -312,13 +312,13 @@
/// \return pointer to registers R0-R3.
uint32_t *os_ThreadRegPtr (os_thread_t *thread) {
-#if (__FPU_USED != 0U)
- if (thread->stack_frame & os_StackFrameExtended) {
- // Extended Stack Frame: R4-R11, S16-S31, R0-R3, R12, LR, PC, xPSR, S0-S15, FPSCR
- return ((uint32_t *)(thread->sp + 8U*4U + 16U*4U));
+#if (__FPU_USED == 1U)
+ if (IS_EXTENDED_STACK_FRAME(thread->stack_frame)) {
+ // Extended Stack Frame: S16-S31, R4-R11, R0-R3, R12, LR, PC, xPSR, S0-S15, FPSCR
+ return ((uint32_t *)(thread->sp + (16U+8U)*4U));
} else {
- // Basic Stack Frame: R4-R11, R0-R3, R12, LR, PC, xPSR
- return ((uint32_t *)(thread->sp + 8U*4U));
+ // Basic Stack Frame: R4-R11, R0-R3, R12, LR, PC, xPSR
+ return ((uint32_t *)(thread->sp + 8U *4U));
}
#else
// Stack Frame: R4-R11, R0-R3, R12, LR, PC, xPSR
@@ -499,15 +499,19 @@
/// Create a thread and add it to Active Threads.
/// \note API identical to osThreadNew
osThreadId_t os_svcThreadNew (os_thread_func_t func, void *argument, const osThreadAttr_t *attr) {
- os_thread_t *thread;
- uint32_t attr_bits;
- void *stack_mem;
- uint32_t stack_size;
- osPriority_t priority;
- uint8_t flags;
- const char *name;
- uint32_t *ptr;
- uint32_t n;
+ os_thread_t *thread;
+ uint32_t attr_bits;
+ void *stack_mem;
+ uint32_t stack_size;
+ osPriority_t priority;
+ uint8_t flags;
+ const char *name;
+ uint32_t *ptr;
+ uint32_t n;
+#if (__DOMAIN_NS == 1U)
+ TZ_ModuleId_t tz_module;
+ TZ_MemoryId_t tz_memory;
+#endif
// Check parameters
if (func == NULL) {
@@ -522,6 +526,9 @@
stack_mem = attr->stack_mem;
stack_size = attr->stack_size;
priority = attr->priority;
+#if (__DOMAIN_NS == 1U)
+ tz_module = attr->tz_module;
+#endif
if (thread != NULL) {
if (((uint32_t)thread & 3U) || (attr->cb_size < sizeof(os_thread_t))) {
return (osThreadId_t)NULL;
@@ -546,6 +553,9 @@
stack_mem = NULL;
stack_size = 0U;
priority = osPriorityNormal;
+#if (__DOMAIN_NS == 1U)
+ tz_module = 0U;
+#endif
}
// Check stack size
@@ -595,6 +605,32 @@
flags |= os_FlagSystemMemory;
}
+#if (__DOMAIN_NS == 1U)
+ // Allocate secure process stack
+ if (tz_module != 0U) {
+ tz_memory = TZ_AllocModuleContext_S(tz_module);
+ if (tz_memory == 0U) {
+ if (flags & os_FlagSystemMemory) {
+ if (flags & os_ThreadFlagDefStack) {
+ os_MemoryPoolFree(os_Info.mpi.stack, thread->stack_mem);
+ } else {
+ os_MemoryFree(os_Info.mem.stack, thread->stack_mem);
+ }
+ }
+ if (flags & os_FlagSystemObject) {
+ if (os_Info.mpi.thread != NULL) {
+ os_MemoryPoolFree(os_Info.mpi.thread, thread);
+ } else {
+ os_MemoryFree(os_Info.mem.common, thread);
+ }
+ }
+ return (osThreadId_t)NULL;
+ }
+ } else {
+ tz_memory = 0U;
+ }
+#endif
+
// Initialize control block
thread->id = os_IdThread;
thread->state = os_ThreadReady;
@@ -609,7 +645,7 @@
thread->delay = 0U;
thread->priority = (int8_t)priority;
thread->priority_base = (int8_t)priority;
- thread->stack_frame = os_StackFrameBasic;
+ thread->stack_frame = STACK_FRAME_INIT;
thread->flags_options = 0U;
thread->wait_flags = 0;
thread->thread_flags = 0;
@@ -617,6 +653,9 @@
thread->stack_mem = stack_mem;
thread->stack_size = stack_size;
thread->sp = (uint32_t)stack_mem + stack_size - 64U;
+#if (__DOMAIN_NS == 1U)
+ thread->tz_memory = tz_memory;
+#endif
// Initialize stack
ptr = (uint32_t *)stack_mem;
@@ -837,6 +876,13 @@
// Mark object as inactive
thread->state = os_ThreadInactive;
+#if (__DOMAIN_NS == 1U)
+ // Free secure process stack
+ if (thread->tz_memory != 0U) {
+ TZ_FreeModuleContext_S(thread->tz_memory);
+ }
+#endif
+
// Free stack memory
if (thread->flags & os_FlagSystemMemory) {
if (thread->flags & os_ThreadFlagDefStack) {