Release 6.1.10
This commit is contained in:
@@ -60,7 +60,7 @@ _tx_system_stack_base_address:
|
||||
;/* FUNCTION RELEASE */
|
||||
;/* */
|
||||
;/* _tx_initialize_low_level ARCv2_EM/MetaWare */
|
||||
;/* 6.1.9 */
|
||||
;/* 6.1.10 */
|
||||
;/* AUTHOR */
|
||||
;/* */
|
||||
;/* William E. Lamie, Microsoft Corporation */
|
||||
@@ -97,10 +97,16 @@ _tx_system_stack_base_address:
|
||||
;/* 10-15-2021 Andres Mlinar Modified comment(s), optimized*/
|
||||
;/* system stack usage, */
|
||||
;/* resulting in version 6.1.9 */
|
||||
;/* 01-31-2022 Andres Mlinar Modified comments(s), */
|
||||
;/* initialize interrupts right */
|
||||
;/* before enabling the task */
|
||||
;/* scheduler, */
|
||||
;/* resulting in version 6.1.10 */
|
||||
;/* */
|
||||
;/**************************************************************************/
|
||||
;VOID _tx_initialize_low_level(VOID)
|
||||
;{
|
||||
.align 4
|
||||
.global _tx_initialize_low_level
|
||||
.type _tx_initialize_low_level, @function
|
||||
_tx_initialize_low_level:
|
||||
@@ -131,6 +137,18 @@ _tx_initialize_low_level:
|
||||
;
|
||||
st r0, [gp, _tx_initialize_unused_memory@sda]
|
||||
;
|
||||
; /* Done, return to caller. */
|
||||
;
|
||||
j_s.d [blink] ; Return to caller
|
||||
nop
|
||||
;}
|
||||
;
|
||||
;VOID _tx_initialize_start_interrupts(VOID)
|
||||
;{
|
||||
.align 4
|
||||
.global _tx_initialize_start_interrupts
|
||||
.type _tx_initialize_start_interrupts, @function
|
||||
_tx_initialize_start_interrupts:
|
||||
;
|
||||
; /* Setup Timer 0 for periodic interrupts at interrupt vector 16. */
|
||||
;
|
||||
|
||||
@@ -48,9 +48,14 @@
|
||||
/* DATE NAME DESCRIPTION */
|
||||
/* */
|
||||
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
||||
/* 04-02-2021 Bhupendra Naphade Modified comment(s),updated */
|
||||
/* 04-02-2021 Bhupendra Naphade Modified comment(s), updated */
|
||||
/* macro definition, */
|
||||
/* resulting in version 6.1.6 */
|
||||
/* 01-31-2022 Andres Mlinar Modified comments(s), */
|
||||
/* initialize interrupts right */
|
||||
/* before enabling the task */
|
||||
/* scheduler, */
|
||||
/* resulting in version 6.1.10 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
|
||||
@@ -184,6 +189,12 @@ ULONG _tx_misra_time_stamp_get(VOID);
|
||||
#define TX_INLINE_INITIALIZATION
|
||||
#endif
|
||||
|
||||
/* Define the ARC-specific initialization code that is expanded in the generic source. */
|
||||
|
||||
void _tx_initialize_start_interrupts(void);
|
||||
|
||||
#define TX_PORT_SPECIFIC_PRE_SCHEDULER_INITIALIZATION _tx_initialize_start_interrupts();
|
||||
|
||||
|
||||
/* Determine whether or not stack checking is enabled. By default, ThreadX stack checking is
|
||||
disabled. When the following is defined, ThreadX thread stack checking is enabled. If stack
|
||||
@@ -311,7 +322,7 @@ ULONG _tx_misra_time_stamp_get(VOID);
|
||||
|
||||
#ifdef TX_THREAD_INIT
|
||||
CHAR _tx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARCv2_EM/MetaWare Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARCv2_EM/MetaWare Version 6.1.10 *";
|
||||
#else
|
||||
#ifdef TX_MISRA_ENABLE
|
||||
extern CHAR _tx_version_id[100];
|
||||
|
||||
@@ -1,157 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
<cconfiguration id="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695" moduleId="org.eclipse.cdt.core.settings" name="Debug">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCAssemblerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" errorParsers="com.arc.cdt.toolchain.ARCCompilerErrorParser;com.arc.cdt.toolchain.ARCLinkerErrorParser;com.arc.cdt.toolchain.ARCAssemblerErrorParser;org.eclipse.cdt.core.MakeErrorParser" id="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695" name="Debug" parent="com.arc.cdt.toolchain.av2em.exeDebugConfig">
|
||||
<folderInfo id="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695." name="/" resourcePath="">
|
||||
<toolChain id="com.arc.cdt.toolchain.av2em.exeToolChainDebug.687487123" superClass="com.arc.cdt.toolchain.av2em.exeToolChainDebug">
|
||||
<targetPlatform id="hcTargetPlatform.1489412971" isAbstract="false" name="Generic platform" superClass="hcTargetPlatform"/>
|
||||
<builder buildPath="${workspace_loc:/sample_threadx}/Debug" id="makeBuilder.172080285" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="makeBuilder"/>
|
||||
<tool id="av2em.exe.debug.exeCompilerDebug.670850607" superClass="av2em.exe.debug.exeCompilerDebug">
|
||||
<option id="arc.compiler.options.target.version.713469122" name="ARC Core Version" superClass="arc.compiler.options.target.version" value="arc.compiler.options.target.arcv2em" valueType="enumerated"/>
|
||||
<option id="arc.compiler.options.include_dirs.502094459" isActive="false" isDefinedList="false" name="Include Directories (one per line)" superClass="arc.compiler.options.include_dirs" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/tx/inc_generic}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/tx/inc_port}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/tx}""/>
|
||||
</option>
|
||||
<option id="arc.compiler.options.timers.timer0.514952339" name="Use Timer 0 (-Xtimer0)" superClass="arc.compiler.options.timers.timer0" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||
<option id="arc.compiler.options.timers.timer1.2077131365" name="Use timer 1 (-Xtimer1)" superClass="arc.compiler.options.timers.timer1" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||
<option id="arc.compiler.options.arcv2emcore.1571321769" name="ARC EM Core" superClass="arc.compiler.options.arcv2emcore" useByScannerDiscovery="true" value="arc.compiler.options.arcv2emcore.core1" valueType="enumerated"/>
|
||||
<option id="arc.compiler.options.stack_check.852036512" name="Hardware Stack Checking(-Xstack_check)" superClass="arc.compiler.options.stack_check" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||
<option id="arc.compiler.options.defines.46548459" isActive="false" isDefinedList="false" name="Preprocessor Defines (one per line)" superClass="arc.compiler.options.defines" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="TX_INCLUDE_USER_DEFINE_FILE"/>
|
||||
</option>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.603646508" name="MetaWare C++ Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeC.1127761944" name="MetaWare C Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeC"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.inputTypeCL.66701363" name="MetaWare OpenCL" superClass="com.arc.cdt.toolchain.arc.inputTypeCL"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.asmDebugExe.502330268" superClass="com.arc.cdt.toolchain.av2em.asmDebugExe">
|
||||
<option id="arc.compiler.options.target.asm.version.1322795579" name="ARC Core Version" superClass="arc.compiler.options.target.asm.version" value="arc.compiler.options.target.arcv2em" valueType="enumerated"/>
|
||||
<option id="arc.asm.options.timers.timer0.700216762" name="Use Timer 0 (-Xtimer0)" superClass="arc.asm.options.timers.timer0" value="true" valueType="boolean"/>
|
||||
<option id="arc.asm.options.timers.timer1.1921573159" name="Use timer 1 (-Xtimer1)" superClass="arc.asm.options.timers.timer1" value="true" valueType="boolean"/>
|
||||
<option id="arc.asm.options.stack_check.624314645" name="Hardware Stack Checking(-Xstack_check)" superClass="arc.asm.options.stack_check" value="true" valueType="boolean"/>
|
||||
<option id="com.arc.cdt.toolchain.asm.option.defines.229067703" name="Preprocessor Defines (one per line)" superClass="com.arc.cdt.toolchain.asm.option.defines" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="TX_ENABLE_HW_STACK_CHECKING"/>
|
||||
</option>
|
||||
<inputType id="com.arc.cdt.toolchain.asminput.362750288" name="Assembler Inputs" superClass="com.arc.cdt.toolchain.asminput"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.exeLinkerDebug.994503969" superClass="com.arc.cdt.toolchain.av2em.exeLinkerDebug">
|
||||
<option id="arc.linker.options.target.version.266280641" name="Target Runtime Libraries" superClass="arc.linker.options.target.version" value="arc.compiler.options.target.arcv2em" valueType="enumerated"/>
|
||||
<option id="com.arc.cdt.toolchain.option.linker.svr3.2027621986" isActive="false" isDefinedList="false" name="SVR3-style command files" superClass="com.arc.cdt.toolchain.option.linker.svr3" valueType="userObjs">
|
||||
<listOptionValue builtIn="false" value="../sample_threadx_regression.cmd"/>
|
||||
</option>
|
||||
<option id="arc.link.ld.user_objs.772443345" isDefinedList="false" name="Additional Object Files && Libraries" superClass="arc.link.ld.user_objs" valueType="userObjs">
|
||||
<listOptionValue builtIn="false" value=""..\..\tx\Debug\tx.a""/>
|
||||
</option>
|
||||
<option id="arc.linker.options.stack_check.1129063065" name="Hardware Stack Checking(-Xstack_check)" superClass="arc.linker.options.stack_check" value="true" valueType="boolean"/>
|
||||
<option id="com.arc.cdt.toolchain.linker.option.map.460013866" name="Generate listing file (=.map)" superClass="com.arc.cdt.toolchain.linker.option.map" value="true" valueType="boolean"/>
|
||||
<inputType id="com.arc.cdt.toolchain.linker.input.425165876" name="Linker Input" superClass="com.arc.cdt.toolchain.linker.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
</inputType>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.arc.archiver.887646463" superClass="com.arc.cdt.toolchain.arc.archiver"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<fileInfo id="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695.1251458183" name="threadx_initialize_kernel_setup_test.c" rcbsApplicability="disable" resourcePath="Regression/threadx_initialize_kernel_setup_test.c" toolsToInvoke="av2em.exe.debug.exeCompilerDebug.670850607.977610571">
|
||||
<tool id="av2em.exe.debug.exeCompilerDebug.670850607.977610571" superClass="av2em.exe.debug.exeCompilerDebug.670850607"/>
|
||||
</fileInfo>
|
||||
<sourceEntries>
|
||||
<entry excluding="Regression/threadx_initialize_kernel_setup_test.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224" moduleId="org.eclipse.cdt.core.settings" name="Release">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCAssemblerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" errorParsers="com.arc.cdt.toolchain.ARCCompilerErrorParser;com.arc.cdt.toolchain.ARCLinkerErrorParser;com.arc.cdt.toolchain.ARCAssemblerErrorParser;org.eclipse.cdt.core.MakeErrorParser" id="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224" name="Release" parent="com.arc.cdt.toolchain.av2em.exeReleaseConfig">
|
||||
<folderInfo id="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224." name="/" resourcePath="">
|
||||
<toolChain id="com.arc.cdt.toolchain.av2em.exeReleaseToolChain.1354693166" superClass="com.arc.cdt.toolchain.av2em.exeReleaseToolChain">
|
||||
<targetPlatform id="hcTargetPlatform.1484344501" isAbstract="false" name="Generic platform" superClass="hcTargetPlatform"/>
|
||||
<builder buildPath="${workspace_loc:/sample_threadx}/Release" id="makeBuilder.1056470287" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="makeBuilder"/>
|
||||
<tool id="arc.cdt.toolchain.av2em.exeCompilerRelease.93257878" superClass="arc.cdt.toolchain.av2em.exeCompilerRelease">
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.1040370238" name="MetaWare C++ Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeC.1016915037" name="MetaWare C Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeC"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.inputTypeCL.1090960130" name="MetaWare OpenCL" superClass="com.arc.cdt.toolchain.arc.inputTypeCL"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.asmReleaseExe.714380962" superClass="com.arc.cdt.toolchain.av2em.asmReleaseExe">
|
||||
<inputType id="com.arc.cdt.toolchain.asminput.1121766557" name="Assembler Inputs" superClass="com.arc.cdt.toolchain.asminput"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.exelinkerRelease.1145338994" superClass="com.arc.cdt.toolchain.av2em.exelinkerRelease">
|
||||
<inputType id="com.arc.cdt.toolchain.linker.input.773394203" name="Linker Input" superClass="com.arc.cdt.toolchain.linker.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
</inputType>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.arc.archiver.1360196687" superClass="com.arc.cdt.toolchain.arc.archiver"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id="sample_threadx.com.arc.cdt.toolchain.arc.av2em.exeProject.666673635" name="Executable" projectType="com.arc.cdt.toolchain.arc.av2em.exeProject"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||
<storageModule moduleId="refreshScope" versionNumber="2">
|
||||
<configuration configurationName="Debug">
|
||||
<resource resourceType="PROJECT" workspacePath="/sample_threadx"/>
|
||||
<resource resourceType="PROJECT" workspacePath="/sample_threadx_regression"/>
|
||||
</configuration>
|
||||
<configuration configurationName="Release">
|
||||
<resource resourceType="PROJECT" workspacePath="/sample_threadx"/>
|
||||
<resource resourceType="PROJECT" workspacePath="/sample_threadx_regression"/>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695;com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695.;av2em.exe.debug.exeCompilerDebug.670850607;com.arc.cdt.toolchain.arc.ccac.inputTypeC.1127761944">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224;com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224.;arc.cdt.toolchain.av2em.exeCompilerRelease.93257878;com.arc.cdt.toolchain.arc.inputTypeCL.1090960130">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224;com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224.;arc.cdt.toolchain.av2em.exeCompilerRelease.93257878;com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.1040370238">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695;com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695.;av2em.exe.debug.exeCompilerDebug.670850607;com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.603646508">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224;com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224.;arc.cdt.toolchain.av2em.exeCompilerRelease.93257878;com.arc.cdt.toolchain.arc.ccac.inputTypeC.1016915037">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695;com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695.;av2em.exe.debug.exeCompilerDebug.670850607;com.arc.cdt.toolchain.arc.inputTypeCL.66701363">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
</storageModule>
|
||||
</cproject>
|
||||
@@ -1,33 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>sample_threadx_regression</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
</natures>
|
||||
<linkedResources>
|
||||
<link>
|
||||
<name>Regression</name>
|
||||
<type>2</type>
|
||||
<locationURI>PARENT-5-PROJECT_LOC/TX/Test/Regression</locationURI>
|
||||
</link>
|
||||
</linkedResources>
|
||||
</projectDescription>
|
||||
@@ -1,55 +0,0 @@
|
||||
//
|
||||
// This is the linker script example (SRV3-style).
|
||||
// (c) Synopsys, 2013
|
||||
//
|
||||
//
|
||||
|
||||
//number of exceptions and interrupts
|
||||
NUMBER_OF_EXCEPTIONS = 16;//it is fixed (16)
|
||||
NUMBER_OF_INTERRUPTS = 5;//depends on HW configuration
|
||||
|
||||
//define Interrupt Vector Table size
|
||||
IVT_SIZE_ITEMS = (NUMBER_OF_EXCEPTIONS + NUMBER_OF_INTERRUPTS);//the total IVT size (in "items")
|
||||
IVT_SIZE_BYTES = IVT_SIZE_ITEMS * 4;//in bytes
|
||||
|
||||
//define ICCM and DCCM locations
|
||||
MEMORY {
|
||||
ICCM: ORIGIN = 0x00000000, LENGTH = 128K
|
||||
DCCM: ORIGIN = 0x80000000, LENGTH = 128K
|
||||
}
|
||||
|
||||
//define sections and groups
|
||||
SECTIONS {
|
||||
GROUP: {
|
||||
.ivt (TEXT) : # Interrupt table
|
||||
{
|
||||
___ivt1 = .;
|
||||
* (.ivt)
|
||||
___ivt2 = .;
|
||||
// Make the IVT at least IVT_SIZE_BYTES
|
||||
. += (___ivt2 - ___ivt1 < IVT_SIZE_BYTES) ? (IVT_SIZE_BYTES - (___ivt2 - ___ivt1)) : 0;
|
||||
}
|
||||
.ivh (TEXT) : // Interrupt handlers
|
||||
|
||||
//TEXT sections
|
||||
.text? : { *('.text$crt*') }
|
||||
* (TEXT): {}
|
||||
//Literals
|
||||
* (LIT): {}
|
||||
} > ICCM
|
||||
|
||||
GROUP: {
|
||||
//data sections
|
||||
.sdata?: {}
|
||||
.sbss?: {}
|
||||
*(DATA): {}
|
||||
*(BSS): {}
|
||||
//stack
|
||||
.stack_top: {}
|
||||
.stack ALIGN(4) SIZE(DEFINED _STACKSIZE?_STACKSIZE:4096): {}
|
||||
.stack_base: {}
|
||||
//heap (empty)
|
||||
.heap? ALIGN(4) SIZE(DEFINED _HEAPSIZE?_HEAPSIZE:0): {}
|
||||
.free_memory: {}
|
||||
} > DCCM
|
||||
}
|
||||
@@ -1,360 +0,0 @@
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* Copyright (c) Microsoft Corporation. All rights reserved. */
|
||||
;/* */
|
||||
;/* This software is licensed under the Microsoft Software License */
|
||||
;/* Terms for Microsoft Azure RTOS. Full text of the license can be */
|
||||
;/* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */
|
||||
;/* and in the root directory of this software. */
|
||||
;/* */
|
||||
;/**************************************************************************/
|
||||
|
||||
;/**************************************************************************/
|
||||
;/**************************************************************************/
|
||||
;/** */
|
||||
;/** ThreadX Component */
|
||||
;/** */
|
||||
;/** Initialize */
|
||||
;/** */
|
||||
;/**************************************************************************/
|
||||
;/**************************************************************************/
|
||||
|
||||
.equ IRQ_SELECT, 0x40B
|
||||
.equ KSTACK_TOP, 0x264
|
||||
.equ KSTACK_BASE, 0x265
|
||||
.equ STATUS32_SC, 0x4000
|
||||
|
||||
;
|
||||
; /* Define section for placement after all linker allocated RAM memory. This
|
||||
; is used to calculate the first free address that is passed to
|
||||
; tx_appication_define, soley for the ThreadX application's use. */
|
||||
;
|
||||
.section ".free_memory","aw"
|
||||
.align 4
|
||||
.global _tx_first_free_address
|
||||
_tx_first_free_address:
|
||||
.space 4
|
||||
;
|
||||
; /* Define section for placement before the main stack area for setting
|
||||
; up the STACK_TOP address for hardware stack checking. */
|
||||
;
|
||||
.section ".stack_top","aw"
|
||||
.align 4
|
||||
.global _tx_system_stack_top_address
|
||||
_tx_system_stack_top_address:
|
||||
.space 4
|
||||
;
|
||||
; /* Define section for placement after the main stack area for setting
|
||||
; up the STACK_BASE address for hardware stack checking. */
|
||||
;
|
||||
.section ".stack_base","aw"
|
||||
.align 4
|
||||
.global _tx_system_stack_base_address
|
||||
_tx_system_stack_base_address:
|
||||
.space 4
|
||||
;
|
||||
;
|
||||
.text
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* FUNCTION RELEASE */
|
||||
;/* */
|
||||
;/* _tx_initialize_low_level ARCv2_EM/MetaWare */
|
||||
;/* 6.x */
|
||||
;/* AUTHOR */
|
||||
;/* */
|
||||
;/* William E. Lamie, Microsoft Corporation */
|
||||
;/* */
|
||||
;/* DESCRIPTION */
|
||||
;/* */
|
||||
;/* This function is responsible for any low-level processor */
|
||||
;/* initialization, including setting up interrupt vectors, setting */
|
||||
;/* up a periodic timer interrupt source, saving the system stack */
|
||||
;/* pointer for use in ISR processing later, and finding the first */
|
||||
;/* available RAM memory address for tx_application_define. */
|
||||
;/* */
|
||||
;/* INPUT */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* OUTPUT */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* CALLS */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* CALLED BY */
|
||||
;/* */
|
||||
;/* _tx_initialize_kernel_enter ThreadX entry function */
|
||||
;/* */
|
||||
;/* RELEASE HISTORY */
|
||||
;/* */
|
||||
;/* DATE NAME DESCRIPTION */
|
||||
;/* */
|
||||
;/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
||||
;/* */
|
||||
;/**************************************************************************/
|
||||
;VOID _tx_initialize_low_level(VOID)
|
||||
;{
|
||||
.global _tx_initialize_low_level
|
||||
.type _tx_initialize_low_level, @function
|
||||
_tx_initialize_low_level:
|
||||
|
||||
.ifdef TX_ENABLE_HW_STACK_CHECKING
|
||||
mov r0, _tx_system_stack_top_address ; Pickup top of system stack (lowest memory address)
|
||||
sr r0, [KSTACK_TOP] ; Setup KSTACK_TOP
|
||||
mov r0, _tx_system_stack_base_address ; Pickup base of system stack (highest memory address)
|
||||
sr r0, [KSTACK_BASE] ; Setup KSTACK_BASE
|
||||
lr r0, [status32] ; Pickup current STATUS32
|
||||
or r0, r0, STATUS32_SC ; Or in hardware stack checking enable bit (SC)
|
||||
kflag r0 ; Enable hardware stack checking
|
||||
.endif
|
||||
;
|
||||
; /* Save the system stack pointer. */
|
||||
; _tx_thread_system_stack_ptr = (VOID_PTR) (sp);
|
||||
;
|
||||
mov r0, _estack ; Pickup the end of stack address
|
||||
st r0, [gp, _tx_thread_system_stack_ptr@sda] ; Save system stack pointer
|
||||
;
|
||||
;
|
||||
; /* Pickup the first available memory address. */
|
||||
;
|
||||
mov r0, _tx_first_free_address ; Pickup first free memory address
|
||||
;
|
||||
; /* Save the first available memory address. */
|
||||
; _tx_initialize_unused_memory = (VOID_PTR) _end;
|
||||
;
|
||||
st r0, [gp, _tx_initialize_unused_memory@sda]
|
||||
;
|
||||
;
|
||||
; /* Setup Timer 0 for periodic interrupts at interrupt vector 16. */
|
||||
;
|
||||
mov r0, 0 ; Disable additional ISR reg saving/restoring
|
||||
sr r0, [AUX_IRQ_CTRL] ;
|
||||
|
||||
mov r0, 16 ; Select timer 0
|
||||
sr r0, [IRQ_SELECT] ;
|
||||
mov r0, 15 ; Set timer 0 to priority 15
|
||||
sr r0, [IRQ_PRIORITY] ;
|
||||
mov r0, 1 ; Enable this interrupt
|
||||
sr r0, [IRQ_ENABLE] ;
|
||||
mov r0, 0x10000 ; Setup timer period
|
||||
sr r0, [LIMIT0] ;
|
||||
mov r0, 0 ; Clear timer 0 current count
|
||||
sr r0, [COUNT0] ;
|
||||
mov r0, 3 ; Enable timer 0
|
||||
sr r0, [CONTROL0] ;
|
||||
|
||||
.ifdef TX_TIMER_1_SETUP
|
||||
mov r0, 17 ; Select timer 1
|
||||
sr r0, [IRQ_SELECT] ;
|
||||
mov r0, 2 ; Set timer 1 to priority 14
|
||||
sr r0, [IRQ_PRIORITY] ;
|
||||
mov r0, 1 ; Enable this interrupt
|
||||
sr r0, [IRQ_ENABLE] ;
|
||||
mov r0, 0x10020 ; Setup timer period
|
||||
sr r0, [LIMIT1] ;
|
||||
mov r0, 0 ; Clear timer 0 current count
|
||||
sr r0, [COUNT1] ;
|
||||
mov r0, 3 ; Enable timer 0
|
||||
sr r0, [CONTROL1] ;
|
||||
.endif
|
||||
;
|
||||
; /* Done, return to caller. */
|
||||
;
|
||||
j_s.d [blink] ; Return to caller
|
||||
nop
|
||||
;}
|
||||
;
|
||||
;
|
||||
; /* Define default vector table entries. */
|
||||
;
|
||||
.global _tx_memory_error
|
||||
_tx_memory_error:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_memory_error
|
||||
|
||||
.global _tx_instruction_error
|
||||
_tx_instruction_error:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_instruction_error
|
||||
|
||||
.global _tx_ev_machine_check
|
||||
_tx_ev_machine_check:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_machine_check
|
||||
|
||||
.global _tx_ev_tblmiss_inst
|
||||
_tx_ev_tblmiss_inst:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_tblmiss_inst
|
||||
|
||||
.global _tx_ev_tblmiss_data
|
||||
_tx_ev_tblmiss_data:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_tblmiss_data
|
||||
|
||||
.global _tx_ev_protection_viol
|
||||
_tx_ev_protection_viol:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_protection_viol
|
||||
|
||||
.global _tx_ev_privilege_viol
|
||||
_tx_ev_privilege_viol:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_privilege_viol
|
||||
|
||||
.global _tx_ev_software_int
|
||||
_tx_ev_software_int:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_software_int
|
||||
|
||||
.global _tx_ev_trap
|
||||
_tx_ev_trap:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_trap
|
||||
|
||||
.global _tx_ev_extension
|
||||
_tx_ev_extension:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_extension
|
||||
|
||||
.global _tx_ev_divide_by_zero
|
||||
_tx_ev_divide_by_zero:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_divide_by_zero
|
||||
|
||||
.global _tx_ev_dc_error
|
||||
_tx_ev_dc_error:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_dc_error
|
||||
|
||||
.global _tx_ev_maligned
|
||||
_tx_ev_maligned:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_maligned
|
||||
|
||||
.global _tx_unsued_0
|
||||
_tx_unsued_0:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_unsued_0
|
||||
|
||||
.global _tx_unused_1
|
||||
_tx_unused_1:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_unused_1
|
||||
|
||||
.global _tx_timer_0
|
||||
_tx_timer_0:
|
||||
;
|
||||
; /* By default, setup Timer 0 as the ThreadX timer interrupt. */
|
||||
;
|
||||
sub sp, sp, 160 ; Allocate an interrupt stack frame
|
||||
st r0, [sp, 0] ; Save r0
|
||||
st r1, [sp, 4] ; Save r1
|
||||
st r2, [sp, 8] ; Save r2
|
||||
mov r0, 3
|
||||
sr r0, [CONTROL0]
|
||||
|
||||
b _tx_timer_interrupt ; Jump to generic ThreadX timer interrupt
|
||||
; handler
|
||||
; flag 1
|
||||
; nop
|
||||
; nop
|
||||
; nop
|
||||
; b _tx_timer_0
|
||||
|
||||
.global _tx_timer_1
|
||||
_tx_timer_1:
|
||||
sub sp, sp, 160 ; Allocate an interrupt stack frame
|
||||
st blink, [sp, 16] ; Save blink
|
||||
bl _tx_thread_context_save ; Call context save
|
||||
;
|
||||
; /* ISR processing goes here. If the applications wishes to re-enable
|
||||
; interrupts, the SETI instruction can be used here. Also note that
|
||||
; register usage in assembly code must be confined to the compiler
|
||||
; scratch registers. */
|
||||
;
|
||||
mov r0, 3
|
||||
sr r0, [CONTROL1]
|
||||
;
|
||||
b _tx_thread_context_restore ; Call context restore
|
||||
|
||||
; flag 1
|
||||
; nop
|
||||
; nop
|
||||
; nop
|
||||
; b _tx_timer_1
|
||||
|
||||
.global _tx_undefined_0
|
||||
_tx_undefined_0:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_undefined_0
|
||||
|
||||
.global _tx_undefined_1
|
||||
_tx_undefined_1:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_undefined_1
|
||||
|
||||
.global _tx_undefined_2
|
||||
_tx_undefined_2:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_undefined_2
|
||||
|
||||
.end
|
||||
@@ -1,29 +0,0 @@
|
||||
|
||||
.file "vectors.s"
|
||||
.section .ivt,text
|
||||
;; This directive forces this section to stay resident even if stripped out by the -zpurgetext linker option
|
||||
.sectflag .ivt,include
|
||||
|
||||
;// handler's name type number name offset in IVT (hex/dec)
|
||||
.long _start ; exception 0 program entry point offset 0x0 0
|
||||
.long _tx_memory_error ; exception 1 memory_error offset 0x4 4
|
||||
.long _tx_instruction_error ; exception 2 instruction_error offset 0x8 8
|
||||
.long _tx_ev_machine_check ; exception 3 EV_MachineCheck offset 0xC 12
|
||||
.long _tx_ev_tblmiss_inst ; exception 4 EV_TLBMissI offset 0x10 16
|
||||
.long _tx_ev_tblmiss_data ; exception 5 EV_TLBMissD offset 0x14 20
|
||||
.long _tx_ev_protection_viol ; exception 6 EV_ProtV offset 0x18 24
|
||||
.long _tx_ev_privilege_viol ; exception 7 EV_PrivilegeV offset 0x1C 28
|
||||
.long _tx_ev_software_int ; exception 8 EV_SWI offset 0x20 32
|
||||
.long _tx_ev_trap ; exception 9 EV_Trap offset 0x24 36
|
||||
.long _tx_ev_extension ; exception 10 EV_Extension offset 0x28 40
|
||||
.long _tx_ev_divide_by_zero ; exception 11 EV_DivZero offset 0x2C 44
|
||||
.long _tx_ev_dc_error ; exception 12 EV_DCError offset 0x30 48
|
||||
.long _tx_ev_maligned ; exception 13 EV_Maligned offset 0x34 52
|
||||
.long _tx_unsued_0 ; exception 14 unused offset 0x38 56
|
||||
.long _tx_unused_1 ; exception 15 unused offset 0x3C 60
|
||||
.long _tx_timer_0 ; IRQ 16 Timer 0 offset 0x40 64
|
||||
.long _tx_timer_1 ; IRQ 17 Timer 1 offset 0x44 68
|
||||
.long _tx_undefined_0 ; IRQ 18 offset 0x48 72
|
||||
.long _tx_undefined_1 ; IRQ 19 offset 0x4C 76
|
||||
.long _tx_undefined_2 ; IRQ 20 offset 0x50 80
|
||||
|
||||
@@ -1,141 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
<cconfiguration id="com.arc.cdt.toolchain.av2em.libDebugConfig.732975342">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arc.cdt.toolchain.av2em.libDebugConfig.732975342" moduleId="org.eclipse.cdt.core.settings" name="Debug">
|
||||
<externalSettings>
|
||||
<externalSetting>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/tx"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/tx/Debug"/>
|
||||
<entry flags="RESOLVED" kind="libraryFile" name="tx" srcPrefixMapping="" srcRootPath=""/>
|
||||
</externalSetting>
|
||||
</externalSettings>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCAssemblerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" errorParsers="com.arc.cdt.toolchain.ARCCompilerErrorParser;com.arc.cdt.toolchain.ARCLinkerErrorParser;com.arc.cdt.toolchain.ARCAssemblerErrorParser;org.eclipse.cdt.core.MakeErrorParser" id="com.arc.cdt.toolchain.av2em.libDebugConfig.732975342" name="Debug" parent="com.arc.cdt.toolchain.av2em.libDebugConfig">
|
||||
<folderInfo id="com.arc.cdt.toolchain.av2em.libDebugConfig.732975342." name="/" resourcePath="">
|
||||
<toolChain id="com.arc.cdt.toolchain.av2em.libDebugToolChain.1845103261" superClass="com.arc.cdt.toolchain.av2em.libDebugToolChain">
|
||||
<targetPlatform id="hcTargetPlatform.380373127" isAbstract="false" name="Generic platform" superClass="hcTargetPlatform"/>
|
||||
<builder buildPath="${workspace_loc:/tx}/Debug" id="makeBuilder.1508352290" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="makeBuilder"/>
|
||||
<tool id="av2em.lib.debug.libCompiler.557728458" superClass="av2em.lib.debug.libCompiler">
|
||||
<option id="arc.compiler.options.target.version.968426022" name="ARC Core Version" superClass="arc.compiler.options.target.version" value="arc.compiler.options.target.arcv2em" valueType="enumerated"/>
|
||||
<option id="arc.compiler.options.arcv2emcore.1960993463" name="ARC EM Core" superClass="arc.compiler.options.arcv2emcore" useByScannerDiscovery="true" value="arc.compiler.options.arcv2emcore.core1" valueType="enumerated"/>
|
||||
<option id="arc.compiler.options.stack_check.1862689574" name="Hardware Stack Checking(-Xstack_check)" superClass="arc.compiler.options.stack_check" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||
<option id="arc.compiler.options.include_dirs.1896471677" isActive="false" isDefinedList="false" name="Include Directories (one per line)" superClass="arc.compiler.options.include_dirs" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/inc_generic}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/inc_port}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}""/>
|
||||
</option>
|
||||
<option id="arc.compiler.options.defines.1598881910" isActive="false" isDefinedList="false" name="Preprocessor Defines (one per line)" superClass="arc.compiler.options.defines" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="TX_INCLUDE_USER_DEFINE_FILE"/>
|
||||
</option>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.1954753370" name="MetaWare C++ Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeC.1689674215" name="MetaWare C Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeC"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.inputTypeCL.242171198" name="MetaWare OpenCL" superClass="com.arc.cdt.toolchain.arc.inputTypeCL"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.libDebugAsm.1772833895" superClass="com.arc.cdt.toolchain.av2em.libDebugAsm">
|
||||
<option id="arc.compiler.options.target.asm.version.1731127945" name="ARC Core Version" superClass="arc.compiler.options.target.asm.version" value="arc.compiler.options.target.arcv2em" valueType="enumerated"/>
|
||||
<option id="arc.asm.options.stack_check.155109415" name="Hardware Stack Checking(-Xstack_check)" superClass="arc.asm.options.stack_check" value="true" valueType="boolean"/>
|
||||
<option id="com.arc.cdt.toolchain.asm.option.defines.645804646" name="Preprocessor Defines (one per line)" superClass="com.arc.cdt.toolchain.asm.option.defines" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="TX_ENABLE_HW_STACK_CHECKING"/>
|
||||
</option>
|
||||
<inputType id="com.arc.cdt.toolchain.asminput.1568134071" name="Assembler Inputs" superClass="com.arc.cdt.toolchain.asminput"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.arc.Linker.1782192981" superClass="com.arc.cdt.toolchain.arc.Linker">
|
||||
<option id="arc.linker.options.target.version.1043501439" name="Target Runtime Libraries" superClass="arc.linker.options.target.version" value="arc.compiler.options.target.arcv2em" valueType="enumerated"/>
|
||||
<option id="arc.linker.options.stack_check.98320731" name="Hardware Stack Checking(-Xstack_check)" superClass="arc.linker.options.stack_check" value="true" valueType="boolean"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.ArDebug.448807496" superClass="com.arc.cdt.toolchain.av2em.ArDebug"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053" moduleId="org.eclipse.cdt.core.settings" name="Release">
|
||||
<externalSettings>
|
||||
<externalSetting>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/tx"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/tx/Release"/>
|
||||
<entry flags="RESOLVED" kind="libraryFile" name="tx" srcPrefixMapping="" srcRootPath=""/>
|
||||
</externalSetting>
|
||||
</externalSettings>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCAssemblerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" errorParsers="com.arc.cdt.toolchain.ARCCompilerErrorParser;com.arc.cdt.toolchain.ARCLinkerErrorParser;com.arc.cdt.toolchain.ARCAssemblerErrorParser;org.eclipse.cdt.core.MakeErrorParser" id="com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053" name="Release" parent="com.arc.cdt.toolchain.av2em.libReleaseConfig">
|
||||
<folderInfo id="com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053." name="/" resourcePath="">
|
||||
<toolChain id="com.arc.cdt.toolchain.av2em.libReleaseToolChain.637077717" superClass="com.arc.cdt.toolchain.av2em.libReleaseToolChain">
|
||||
<targetPlatform id="hcTargetPlatform.1427038966" isAbstract="false" name="Generic platform" superClass="hcTargetPlatform"/>
|
||||
<builder buildPath="${workspace_loc:/tx}/Release" id="makeBuilder.1122480484" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="makeBuilder"/>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.libCompilerRelease.267590455" superClass="com.arc.cdt.toolchain.av2em.libCompilerRelease">
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.1437940047" name="MetaWare C++ Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeC.385033901" name="MetaWare C Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeC"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.inputTypeCL.1070557333" name="MetaWare OpenCL" superClass="com.arc.cdt.toolchain.arc.inputTypeCL"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.libReleaseAsm.1659783437" superClass="com.arc.cdt.toolchain.av2em.libReleaseAsm">
|
||||
<inputType id="com.arc.cdt.toolchain.asminput.612218762" name="Assembler Inputs" superClass="com.arc.cdt.toolchain.asminput"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.arc.Linker.1430136995" superClass="com.arc.cdt.toolchain.arc.Linker"/>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.ArRelease.50929117" superClass="com.arc.cdt.toolchain.av2em.ArRelease"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id="tx.com.arc.cdt.toolchain.arc.av2em.libProject.1936758151" name="Static Library" projectType="com.arc.cdt.toolchain.arc.av2em.libProject"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||
<storageModule moduleId="refreshScope" versionNumber="2">
|
||||
<configuration configurationName="Debug">
|
||||
<resource resourceType="PROJECT" workspacePath="/tx"/>
|
||||
</configuration>
|
||||
<configuration configurationName="Release">
|
||||
<resource resourceType="PROJECT" workspacePath="/tx"/>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053;com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053.;com.arc.cdt.toolchain.av2em.libCompilerRelease.267590455;com.arc.cdt.toolchain.arc.inputTypeCL.1070557333">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.libDebugConfig.732975342;com.arc.cdt.toolchain.av2em.libDebugConfig.732975342.;av2em.lib.debug.libCompiler.557728458;com.arc.cdt.toolchain.arc.inputTypeCL.242171198">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.libDebugConfig.732975342;com.arc.cdt.toolchain.av2em.libDebugConfig.732975342.;av2em.lib.debug.libCompiler.557728458;com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.1954753370">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053;com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053.;com.arc.cdt.toolchain.av2em.libCompilerRelease.267590455;com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.1437940047">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.libDebugConfig.732975342;com.arc.cdt.toolchain.av2em.libDebugConfig.732975342.;av2em.lib.debug.libCompiler.557728458;com.arc.cdt.toolchain.arc.ccac.inputTypeC.1689674215">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053;com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053.;com.arc.cdt.toolchain.av2em.libCompilerRelease.267590455;com.arc.cdt.toolchain.arc.ccac.inputTypeC.385033901">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
</storageModule>
|
||||
</cproject>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>tx</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
</natures>
|
||||
<linkedResources>
|
||||
<link>
|
||||
<name>inc_generic</name>
|
||||
<type>2</type>
|
||||
<locationURI>$%7BPARENT-5-PROJECT_LOC%7D/common/inc</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>inc_port</name>
|
||||
<type>2</type>
|
||||
<locationURI>$%7BPARENT-2-PROJECT_LOC%7D/inc</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src_generic</name>
|
||||
<type>2</type>
|
||||
<locationURI>$%7BPARENT-5-PROJECT_LOC%7D/common/src</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src_port</name>
|
||||
<type>2</type>
|
||||
<locationURI>$%7BPARENT-2-PROJECT_LOC%7D/src</locationURI>
|
||||
</link>
|
||||
</linkedResources>
|
||||
</projectDescription>
|
||||
@@ -1,341 +0,0 @@
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* Copyright (c) Microsoft Corporation. All rights reserved. */
|
||||
/* */
|
||||
/* This software is licensed under the Microsoft Software License */
|
||||
/* Terms for Microsoft Azure RTOS. Full text of the license can be */
|
||||
/* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */
|
||||
/* and in the root directory of this software. */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
|
||||
|
||||
/**************************************************************************/
|
||||
/**************************************************************************/
|
||||
/** */
|
||||
/** ThreadX Component */
|
||||
/** */
|
||||
/** User Specific */
|
||||
/** */
|
||||
/**************************************************************************/
|
||||
/**************************************************************************/
|
||||
|
||||
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* PORT SPECIFIC C INFORMATION RELEASE */
|
||||
/* */
|
||||
/* tx_user.h PORTABLE C */
|
||||
/* 6.x */
|
||||
/* */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* William E. Lamie, Microsoft Corporation */
|
||||
/* */
|
||||
/* DESCRIPTION */
|
||||
/* */
|
||||
/* This file contains user defines for configuring ThreadX in specific */
|
||||
/* ways. This file will have an effect only if the application and */
|
||||
/* ThreadX library are built with TX_INCLUDE_USER_DEFINE_FILE defined. */
|
||||
/* Note that all the defines in this file may also be made on the */
|
||||
/* command line when building ThreadX library and application objects. */
|
||||
/* */
|
||||
/* RELEASE HISTORY */
|
||||
/* */
|
||||
/* DATE NAME DESCRIPTION */
|
||||
/* */
|
||||
/* 05-19-2020 William E. Lamie Initial Version 6.0 */
|
||||
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
||||
/* resulting in version 6.1 */
|
||||
/* xx-xx-xxxx Scott Larson Modified comment(s), */
|
||||
/* added option to remove */
|
||||
/* FileX pointer, */
|
||||
/* resulting in version 6.x */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
|
||||
#ifndef TX_USER_H
|
||||
#define TX_USER_H
|
||||
|
||||
|
||||
#define TX_REGRESSION_TEST
|
||||
#define TEST_STACK_SIZE_PRINTF (4096)
|
||||
|
||||
|
||||
/* Define automated coverage test extensions... These are required for the
|
||||
ThreadX regression test. */
|
||||
|
||||
typedef unsigned int TEST_FLAG;
|
||||
extern TEST_FLAG threadx_byte_allocate_loop_test;
|
||||
extern TEST_FLAG threadx_byte_release_loop_test;
|
||||
extern TEST_FLAG threadx_mutex_suspension_put_test;
|
||||
extern TEST_FLAG threadx_mutex_suspension_priority_test;
|
||||
#ifndef TX_TIMER_PROCESS_IN_ISR
|
||||
extern TEST_FLAG threadx_delete_timer_thread;
|
||||
#endif
|
||||
|
||||
extern void abort_and_resume_byte_allocating_thread(void);
|
||||
extern void abort_all_threads_suspended_on_mutex(void);
|
||||
extern void suspend_lowest_priority(void);
|
||||
#ifndef TX_TIMER_PROCESS_IN_ISR
|
||||
extern void delete_timer_thread(void);
|
||||
#endif
|
||||
extern TEST_FLAG test_stack_analyze_flag;
|
||||
extern TEST_FLAG test_initialize_flag;
|
||||
extern TEST_FLAG test_forced_mutex_timeout;
|
||||
|
||||
|
||||
#ifdef TX_REGRESSION_TEST
|
||||
|
||||
/* Define extension macros for automated coverage tests. */
|
||||
|
||||
|
||||
#define TX_BYTE_ALLOCATE_EXTENSION if (threadx_byte_allocate_loop_test == ((TEST_FLAG) 1)) \
|
||||
{ \
|
||||
pool_ptr -> tx_byte_pool_owner = TX_NULL; \
|
||||
threadx_byte_allocate_loop_test = ((TEST_FLAG) 0); \
|
||||
}
|
||||
|
||||
#define TX_BYTE_RELEASE_EXTENSION if (threadx_byte_release_loop_test == ((TEST_FLAG) 1)) \
|
||||
{ \
|
||||
threadx_byte_release_loop_test = ((TEST_FLAG) 0); \
|
||||
abort_and_resume_byte_allocating_thread(); \
|
||||
}
|
||||
|
||||
#define TX_MUTEX_PUT_EXTENSION_1 if (threadx_mutex_suspension_put_test == ((TEST_FLAG) 1)) \
|
||||
{ \
|
||||
threadx_mutex_suspension_put_test = ((TEST_FLAG) 0); \
|
||||
abort_all_threads_suspended_on_mutex(); \
|
||||
}
|
||||
|
||||
|
||||
#define TX_MUTEX_PUT_EXTENSION_2 if (test_forced_mutex_timeout == ((TEST_FLAG) 1)) \
|
||||
{ \
|
||||
test_forced_mutex_timeout = ((TEST_FLAG) 0); \
|
||||
_tx_thread_wait_abort(mutex_ptr -> tx_mutex_suspension_list); \
|
||||
}
|
||||
|
||||
|
||||
#define TX_MUTEX_PRIORITY_CHANGE_EXTENSION if (threadx_mutex_suspension_priority_test == ((TEST_FLAG) 1)) \
|
||||
{ \
|
||||
threadx_mutex_suspension_priority_test = ((TEST_FLAG) 0); \
|
||||
suspend_lowest_priority(); \
|
||||
}
|
||||
|
||||
#endif /* TX_REGRESSION_TEST */
|
||||
|
||||
|
||||
/* Define various build options for the ThreadX port. The application should either make changes
|
||||
here by commenting or un-commenting the conditional compilation defined OR supply the defines
|
||||
though the compiler's equivalent of the -D option.
|
||||
|
||||
For maximum speed, the following should be defined:
|
||||
|
||||
TX_MAX_PRIORITIES 32
|
||||
TX_DISABLE_PREEMPTION_THRESHOLD
|
||||
TX_DISABLE_REDUNDANT_CLEARING
|
||||
TX_DISABLE_NOTIFY_CALLBACKS
|
||||
TX_NOT_INTERRUPTABLE
|
||||
TX_TIMER_PROCESS_IN_ISR
|
||||
TX_REACTIVATE_INLINE
|
||||
TX_DISABLE_STACK_FILLING
|
||||
TX_INLINE_THREAD_RESUME_SUSPEND
|
||||
|
||||
For minimum size, the following should be defined:
|
||||
|
||||
TX_MAX_PRIORITIES 32
|
||||
TX_DISABLE_PREEMPTION_THRESHOLD
|
||||
TX_DISABLE_REDUNDANT_CLEARING
|
||||
TX_DISABLE_NOTIFY_CALLBACKS
|
||||
TX_NO_FILEX_POINTER
|
||||
TX_NOT_INTERRUPTABLE
|
||||
TX_TIMER_PROCESS_IN_ISR
|
||||
|
||||
Of course, many of these defines reduce functionality and/or change the behavior of the
|
||||
system in ways that may not be worth the trade-off. For example, the TX_TIMER_PROCESS_IN_ISR
|
||||
results in faster and smaller code, however, it increases the amount of processing in the ISR.
|
||||
In addition, some services that are available in timers are not available from ISRs and will
|
||||
therefore return an error if this option is used. This may or may not be desirable for a
|
||||
given application. */
|
||||
|
||||
|
||||
/* Override various options with default values already assigned in tx_port.h. Please also refer
|
||||
to tx_port.h for descriptions on each of these options. */
|
||||
|
||||
/*
|
||||
#define TX_MAX_PRIORITIES 32
|
||||
#define TX_MINIMUM_STACK ????
|
||||
#define TX_THREAD_USER_EXTENSION ????
|
||||
#define TX_TIMER_THREAD_STACK_SIZE ????
|
||||
#define TX_TIMER_THREAD_PRIORITY ????
|
||||
*/
|
||||
|
||||
/* Determine if there is a FileX pointer in the thread control block.
|
||||
By default, the pointer is there for legacy/backwards compatibility.
|
||||
The pointer must also be there for applications using FileX.
|
||||
Define this to save space in the thread control block.
|
||||
*/
|
||||
|
||||
/*
|
||||
#define TX_NO_FILEX_POINTER
|
||||
*/
|
||||
|
||||
/* Determine if timer expirations (application timers, timeouts, and tx_thread_sleep calls
|
||||
should be processed within the a system timer thread or directly in the timer ISR.
|
||||
By default, the timer thread is used. When the following is defined, the timer expiration
|
||||
processing is done directly from the timer ISR, thereby eliminating the timer thread control
|
||||
block, stack, and context switching to activate it. */
|
||||
|
||||
/*
|
||||
#define TX_TIMER_PROCESS_IN_ISR
|
||||
*/
|
||||
|
||||
/* Determine if in-line timer reactivation should be used within the timer expiration processing.
|
||||
By default, this is disabled and a function call is used. When the following is defined,
|
||||
reactivating is performed in-line resulting in faster timer processing but slightly larger
|
||||
code size. */
|
||||
|
||||
/*
|
||||
#define TX_REACTIVATE_INLINE
|
||||
*/
|
||||
|
||||
/* Determine is stack filling is enabled. By default, ThreadX stack filling is enabled,
|
||||
which places an 0xEF pattern in each byte of each thread's stack. This is used by
|
||||
debuggers with ThreadX-awareness and by the ThreadX run-time stack checking feature. */
|
||||
|
||||
/*
|
||||
#define TX_DISABLE_STACK_FILLING
|
||||
*/
|
||||
|
||||
/* Determine whether or not stack checking is enabled. By default, ThreadX stack checking is
|
||||
disabled. When the following is defined, ThreadX thread stack checking is enabled. If stack
|
||||
checking is enabled (TX_ENABLE_STACK_CHECKING is defined), the TX_DISABLE_STACK_FILLING
|
||||
define is negated, thereby forcing the stack fill which is necessary for the stack checking
|
||||
logic. */
|
||||
|
||||
/*
|
||||
#define TX_ENABLE_STACK_CHECKING
|
||||
*/
|
||||
|
||||
/* Determine if preemption-threshold should be disabled. By default, preemption-threshold is
|
||||
enabled. If the application does not use preemption-threshold, it may be disabled to reduce
|
||||
code size and improve performance. */
|
||||
|
||||
/*
|
||||
#define TX_DISABLE_PREEMPTION_THRESHOLD
|
||||
*/
|
||||
|
||||
/* Determine if global ThreadX variables should be cleared. If the compiler startup code clears
|
||||
the .bss section prior to ThreadX running, the define can be used to eliminate unnecessary
|
||||
clearing of ThreadX global variables. */
|
||||
|
||||
/*
|
||||
#define TX_DISABLE_REDUNDANT_CLEARING
|
||||
*/
|
||||
|
||||
/* Determine if no timer processing is required. This option will help eliminate the timer
|
||||
processing when not needed. The user will also have to comment out the call to
|
||||
tx_timer_interrupt, which is typically made from assembly language in
|
||||
tx_initialize_low_level. Note: if TX_NO_TIMER is used, the define TX_TIMER_PROCESS_IN_ISR
|
||||
must also be used and tx_timer_initialize must be removed from ThreadX library. */
|
||||
|
||||
/*
|
||||
#define TX_NO_TIMER
|
||||
#ifndef TX_TIMER_PROCESS_IN_ISR
|
||||
#define TX_TIMER_PROCESS_IN_ISR
|
||||
#endif
|
||||
*/
|
||||
|
||||
/* Determine if the notify callback option should be disabled. By default, notify callbacks are
|
||||
enabled. If the application does not use notify callbacks, they may be disabled to reduce
|
||||
code size and improve performance. */
|
||||
|
||||
/*
|
||||
#define TX_DISABLE_NOTIFY_CALLBACKS
|
||||
*/
|
||||
|
||||
|
||||
/* Determine if the tx_thread_resume and tx_thread_suspend services should have their internal
|
||||
code in-line. This results in a larger image, but improves the performance of the thread
|
||||
resume and suspend services. */
|
||||
|
||||
/*
|
||||
#define TX_INLINE_THREAD_RESUME_SUSPEND
|
||||
*/
|
||||
|
||||
|
||||
/* Determine if the internal ThreadX code is non-interruptable. This results in smaller code
|
||||
size and less processing overhead, but increases the interrupt lockout time. */
|
||||
|
||||
/*
|
||||
#define TX_NOT_INTERRUPTABLE
|
||||
*/
|
||||
|
||||
|
||||
/* Determine if the trace event logging code should be enabled. This causes slight increases in
|
||||
code size and overhead, but provides the ability to generate system trace information which
|
||||
is available for viewing in TraceX. */
|
||||
|
||||
/*
|
||||
#define TX_ENABLE_EVENT_TRACE
|
||||
*/
|
||||
|
||||
|
||||
/* Determine if block pool performance gathering is required by the application. When the following is
|
||||
defined, ThreadX gathers various block pool performance information. */
|
||||
|
||||
/*
|
||||
#define TX_BLOCK_POOL_ENABLE_PERFORMANCE_INFO
|
||||
*/
|
||||
|
||||
/* Determine if byte pool performance gathering is required by the application. When the following is
|
||||
defined, ThreadX gathers various byte pool performance information. */
|
||||
|
||||
/*
|
||||
#define TX_BYTE_POOL_ENABLE_PERFORMANCE_INFO
|
||||
*/
|
||||
|
||||
/* Determine if event flags performance gathering is required by the application. When the following is
|
||||
defined, ThreadX gathers various event flags performance information. */
|
||||
|
||||
/*
|
||||
#define TX_EVENT_FLAGS_ENABLE_PERFORMANCE_INFO
|
||||
*/
|
||||
|
||||
/* Determine if mutex performance gathering is required by the application. When the following is
|
||||
defined, ThreadX gathers various mutex performance information. */
|
||||
|
||||
/*
|
||||
#define TX_MUTEX_ENABLE_PERFORMANCE_INFO
|
||||
*/
|
||||
|
||||
/* Determine if queue performance gathering is required by the application. When the following is
|
||||
defined, ThreadX gathers various queue performance information. */
|
||||
|
||||
/*
|
||||
#define TX_QUEUE_ENABLE_PERFORMANCE_INFO
|
||||
*/
|
||||
|
||||
/* Determine if semaphore performance gathering is required by the application. When the following is
|
||||
defined, ThreadX gathers various semaphore performance information. */
|
||||
|
||||
/*
|
||||
#define TX_SEMAPHORE_ENABLE_PERFORMANCE_INFO
|
||||
*/
|
||||
|
||||
/* Determine if thread performance gathering is required by the application. When the following is
|
||||
defined, ThreadX gathers various thread performance information. */
|
||||
|
||||
/*
|
||||
#define TX_THREAD_ENABLE_PERFORMANCE_INFO
|
||||
*/
|
||||
|
||||
/* Determine if timer performance gathering is required by the application. When the following is
|
||||
defined, ThreadX gathers various timer performance information. */
|
||||
|
||||
/*
|
||||
#define TX_TIMER_ENABLE_PERFORMANCE_INFO
|
||||
*/
|
||||
|
||||
|
||||
#endif /* TX_USER_H */
|
||||
@@ -1,145 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
<cconfiguration id="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695" moduleId="org.eclipse.cdt.core.settings" name="Debug">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCAssemblerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" errorParsers="com.arc.cdt.toolchain.ARCCompilerErrorParser;com.arc.cdt.toolchain.ARCLinkerErrorParser;com.arc.cdt.toolchain.ARCAssemblerErrorParser;org.eclipse.cdt.core.MakeErrorParser" id="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695" name="Debug" parent="com.arc.cdt.toolchain.av2em.exeDebugConfig">
|
||||
<folderInfo id="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695." name="/" resourcePath="">
|
||||
<toolChain id="com.arc.cdt.toolchain.av2em.exeToolChainDebug.687487123" superClass="com.arc.cdt.toolchain.av2em.exeToolChainDebug">
|
||||
<targetPlatform id="hcTargetPlatform.1489412971" isAbstract="false" name="Generic platform" superClass="hcTargetPlatform"/>
|
||||
<builder buildPath="${workspace_loc:/sample_threadx}/Debug" id="makeBuilder.172080285" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="makeBuilder"/>
|
||||
<tool id="av2em.exe.debug.exeCompilerDebug.670850607" superClass="av2em.exe.debug.exeCompilerDebug">
|
||||
<option id="arc.compiler.options.target.version.713469122" name="ARC Core Version" superClass="arc.compiler.options.target.version" value="arc.compiler.options.target.arcv2em" valueType="enumerated"/>
|
||||
<option id="arc.compiler.options.include_dirs.502094459" isActive="false" isDefinedList="false" name="Include Directories (one per line)" superClass="arc.compiler.options.include_dirs" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/tx/inc_generic}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/tx/inc_port}""/>
|
||||
</option>
|
||||
<option id="arc.compiler.options.timers.timer0.514952339" name="Use Timer 0 (-Xtimer0)" superClass="arc.compiler.options.timers.timer0" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||
<option id="arc.compiler.options.timers.timer1.2077131365" name="Use timer 1 (-Xtimer1)" superClass="arc.compiler.options.timers.timer1" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||
<option id="arc.compiler.options.arcv2emcore.1571321769" name="ARC EM Core" superClass="arc.compiler.options.arcv2emcore" useByScannerDiscovery="true" value="arc.compiler.options.arcv2emcore.core1" valueType="enumerated"/>
|
||||
<option id="arc.compiler.options.stack_check.852036512" name="Hardware Stack Checking(-Xstack_check)" superClass="arc.compiler.options.stack_check" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.603646508" name="MetaWare C++ Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeC.1127761944" name="MetaWare C Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeC"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.inputTypeCL.66701363" name="MetaWare OpenCL" superClass="com.arc.cdt.toolchain.arc.inputTypeCL"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.asmDebugExe.502330268" superClass="com.arc.cdt.toolchain.av2em.asmDebugExe">
|
||||
<option id="arc.compiler.options.target.asm.version.1322795579" name="ARC Core Version" superClass="arc.compiler.options.target.asm.version" value="arc.compiler.options.target.arcv2em" valueType="enumerated"/>
|
||||
<option id="arc.asm.options.timers.timer0.700216762" name="Use Timer 0 (-Xtimer0)" superClass="arc.asm.options.timers.timer0" value="true" valueType="boolean"/>
|
||||
<option id="arc.asm.options.timers.timer1.1921573159" name="Use timer 1 (-Xtimer1)" superClass="arc.asm.options.timers.timer1" value="true" valueType="boolean"/>
|
||||
<option id="arc.asm.options.stack_check.624314645" name="Hardware Stack Checking(-Xstack_check)" superClass="arc.asm.options.stack_check" value="true" valueType="boolean"/>
|
||||
<option id="com.arc.cdt.toolchain.asm.option.defines.229067703" name="Preprocessor Defines (one per line)" superClass="com.arc.cdt.toolchain.asm.option.defines" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="TX_ENABLE_HW_STACK_CHECKING"/>
|
||||
</option>
|
||||
<inputType id="com.arc.cdt.toolchain.asminput.362750288" name="Assembler Inputs" superClass="com.arc.cdt.toolchain.asminput"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.exeLinkerDebug.994503969" superClass="com.arc.cdt.toolchain.av2em.exeLinkerDebug">
|
||||
<option id="arc.linker.options.target.version.266280641" name="Target Runtime Libraries" superClass="arc.linker.options.target.version" value="arc.compiler.options.target.arcv2em" valueType="enumerated"/>
|
||||
<option id="com.arc.cdt.toolchain.option.linker.svr3.2027621986" isActive="false" isDefinedList="false" name="SVR3-style command files" superClass="com.arc.cdt.toolchain.option.linker.svr3" valueType="userObjs">
|
||||
<listOptionValue builtIn="false" value="../sample_threadx_validation.cmd"/>
|
||||
</option>
|
||||
<option id="arc.link.ld.user_objs.772443345" isDefinedList="false" name="Additional Object Files && Libraries" superClass="arc.link.ld.user_objs" valueType="userObjs">
|
||||
<listOptionValue builtIn="false" value=""..\..\tx\Debug\tx.a""/>
|
||||
</option>
|
||||
<option id="arc.linker.options.stack_check.1129063065" name="Hardware Stack Checking(-Xstack_check)" superClass="arc.linker.options.stack_check" value="true" valueType="boolean"/>
|
||||
<option id="com.arc.cdt.toolchain.linker.option.map.460013866" name="Generate listing file (=.map)" superClass="com.arc.cdt.toolchain.linker.option.map" value="true" valueType="boolean"/>
|
||||
<inputType id="com.arc.cdt.toolchain.linker.input.425165876" name="Linker Input" superClass="com.arc.cdt.toolchain.linker.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
</inputType>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.arc.archiver.887646463" superClass="com.arc.cdt.toolchain.arc.archiver"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224" moduleId="org.eclipse.cdt.core.settings" name="Release">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCAssemblerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" errorParsers="com.arc.cdt.toolchain.ARCCompilerErrorParser;com.arc.cdt.toolchain.ARCLinkerErrorParser;com.arc.cdt.toolchain.ARCAssemblerErrorParser;org.eclipse.cdt.core.MakeErrorParser" id="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224" name="Release" parent="com.arc.cdt.toolchain.av2em.exeReleaseConfig">
|
||||
<folderInfo id="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224." name="/" resourcePath="">
|
||||
<toolChain id="com.arc.cdt.toolchain.av2em.exeReleaseToolChain.1354693166" superClass="com.arc.cdt.toolchain.av2em.exeReleaseToolChain">
|
||||
<targetPlatform id="hcTargetPlatform.1484344501" isAbstract="false" name="Generic platform" superClass="hcTargetPlatform"/>
|
||||
<builder buildPath="${workspace_loc:/sample_threadx}/Release" id="makeBuilder.1056470287" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="makeBuilder"/>
|
||||
<tool id="arc.cdt.toolchain.av2em.exeCompilerRelease.93257878" superClass="arc.cdt.toolchain.av2em.exeCompilerRelease">
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.1040370238" name="MetaWare C++ Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeC.1016915037" name="MetaWare C Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeC"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.inputTypeCL.1090960130" name="MetaWare OpenCL" superClass="com.arc.cdt.toolchain.arc.inputTypeCL"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.asmReleaseExe.714380962" superClass="com.arc.cdt.toolchain.av2em.asmReleaseExe">
|
||||
<inputType id="com.arc.cdt.toolchain.asminput.1121766557" name="Assembler Inputs" superClass="com.arc.cdt.toolchain.asminput"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.exelinkerRelease.1145338994" superClass="com.arc.cdt.toolchain.av2em.exelinkerRelease">
|
||||
<inputType id="com.arc.cdt.toolchain.linker.input.773394203" name="Linker Input" superClass="com.arc.cdt.toolchain.linker.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
</inputType>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.arc.archiver.1360196687" superClass="com.arc.cdt.toolchain.arc.archiver"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id="sample_threadx.com.arc.cdt.toolchain.arc.av2em.exeProject.666673635" name="Executable" projectType="com.arc.cdt.toolchain.arc.av2em.exeProject"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||
<storageModule moduleId="refreshScope" versionNumber="2">
|
||||
<configuration configurationName="Debug">
|
||||
<resource resourceType="PROJECT" workspacePath="/sample_threadx"/>
|
||||
</configuration>
|
||||
<configuration configurationName="Release">
|
||||
<resource resourceType="PROJECT" workspacePath="/sample_threadx"/>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224;com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224.;arc.cdt.toolchain.av2em.exeCompilerRelease.93257878;com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.1040370238">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224;com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224.;arc.cdt.toolchain.av2em.exeCompilerRelease.93257878;com.arc.cdt.toolchain.arc.inputTypeCL.1090960130">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695;com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695.;av2em.exe.debug.exeCompilerDebug.670850607;com.arc.cdt.toolchain.arc.ccac.inputTypeC.1127761944">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695;com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695.;av2em.exe.debug.exeCompilerDebug.670850607;com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.603646508">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224;com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224.;arc.cdt.toolchain.av2em.exeCompilerRelease.93257878;com.arc.cdt.toolchain.arc.ccac.inputTypeC.1016915037">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695;com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695.;av2em.exe.debug.exeCompilerDebug.670850607;com.arc.cdt.toolchain.arc.inputTypeCL.66701363">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
</storageModule>
|
||||
</cproject>
|
||||
@@ -1,26 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>sample_threadx_validation</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@@ -1,373 +0,0 @@
|
||||
/* This is a small demo of the high-performance ThreadX kernel. It includes examples of eight
|
||||
threads of different priorities, using a message queue, semaphore, mutex, event flags group,
|
||||
byte pool, and block pool. */
|
||||
|
||||
#include "tx_api.h"
|
||||
|
||||
#define TX_TEST_STACK_SIZE (1024 * 2)
|
||||
#define TX_TEST_QUEUE_SIZE (16)
|
||||
#define TX_TEST_BYTE_POOL_SIZE (1024 * 4)
|
||||
#define TX_TEST_BLOCK_POOL_SIZE (1024 * 4)
|
||||
|
||||
|
||||
/* Define the ThreadX object control blocks... */
|
||||
|
||||
TX_THREAD tx_test_thread_0;
|
||||
TX_THREAD tx_test_thread_1;
|
||||
TX_THREAD tx_test_thread_2;
|
||||
TX_QUEUE tx_test_queue_0;
|
||||
TX_SEMAPHORE tx_test_semaphore_0;
|
||||
TX_MUTEX tx_test_mutex_0;
|
||||
TX_EVENT_FLAGS_GROUP tx_test_event_flags_0;
|
||||
TX_BYTE_POOL tx_test_byte_pool_0;
|
||||
TX_BLOCK_POOL tx_test_block_pool_0;
|
||||
|
||||
|
||||
/* Define the counters used in the demo application... */
|
||||
|
||||
ULONG tx_test_thread_0_counter;
|
||||
ULONG tx_test_thread_1_counter;
|
||||
ULONG tx_test_thread_2_counter;
|
||||
|
||||
|
||||
/* Define thread prototypes. */
|
||||
|
||||
void tx_test_thread_0_entry(ULONG thread_input);
|
||||
void tx_test_thread_1_entry(ULONG thread_input);
|
||||
void tx_test_thread_2_entry(ULONG thread_input);
|
||||
|
||||
|
||||
/* Define the thread stacks. */
|
||||
|
||||
ULONG tx_test_thread_0_stack[TX_TEST_STACK_SIZE / sizeof(ULONG)];
|
||||
ULONG tx_test_thread_1_stack[TX_TEST_STACK_SIZE / sizeof(ULONG)];
|
||||
ULONG tx_test_thread_2_stack[TX_TEST_STACK_SIZE / sizeof(ULONG)];
|
||||
|
||||
|
||||
/* Define other buffers used by the test code. */
|
||||
|
||||
ULONG tx_test_queue_0_buffer[TX_TEST_QUEUE_SIZE];
|
||||
ULONG tx_test_byte_pool_0_buffer[TX_TEST_BYTE_POOL_SIZE / sizeof(ULONG)];
|
||||
ULONG tx_test_block_pool_0_buffer[TX_TEST_BLOCK_POOL_SIZE / sizeof(ULONG)];
|
||||
|
||||
|
||||
/* Define test function prototypes. */
|
||||
|
||||
void tx_test_sleep();
|
||||
void tx_test_busy_loop();
|
||||
|
||||
int tx_test_sum_many_params(
|
||||
void (*f)(),
|
||||
int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8,
|
||||
int p9, int p10, int p11, int p12, int p13, int p14, int p15, int p16,
|
||||
int p17, int p18, int p19, int p20, int p21, int p22, int p23, int p24,
|
||||
int p25, int p26, int p27, int p28, int p29, int p30, int p31, int p32,
|
||||
int p33, int p34, int p35, int p36, int p37, int p38, int p39, int p40,
|
||||
int p41, int p42, int p43, int p44, int p45, int p46, int p47, int p48,
|
||||
int p49, int p50, int p51, int p52, int p53, int p54, int p55, int p56,
|
||||
int p57, int p58, int p59, int p60, int p61, int p62, int p63, int p64,
|
||||
int p65, int p66, int p67, int p68, int p69, int p70, int p71, int p72);
|
||||
|
||||
int tx_test_multiply_many_params(
|
||||
void (*f)(),
|
||||
int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8,
|
||||
int p9, int p10, int p11, int p12, int p13, int p14, int p15, int p16,
|
||||
int p17, int p18, int p19, int p20, int p21, int p22, int p23, int p24,
|
||||
int p25, int p26, int p27, int p28, int p29, int p30, int p31, int p32,
|
||||
int p33, int p34, int p35, int p36, int p37, int p38, int p39, int p40,
|
||||
int p41, int p42, int p43, int p44, int p45, int p46, int p47, int p48,
|
||||
int p49, int p50, int p51, int p52, int p53, int p54, int p55, int p56,
|
||||
int p57, int p58, int p59, int p60, int p61, int p62, int p63, int p64,
|
||||
int p65, int p66, int p67, int p68, int p69, int p70, int p71, int p72);
|
||||
|
||||
|
||||
/**/
|
||||
|
||||
void tx_test_error_handler()
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
/* Stay here forever */
|
||||
}
|
||||
}
|
||||
|
||||
/* Define main entry point. */
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
/* Enter the ThreadX kernel. */
|
||||
tx_kernel_enter();
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
||||
/* Define what the initial system looks like. */
|
||||
|
||||
void tx_application_define(void *first_unused_memory)
|
||||
{
|
||||
|
||||
UINT status = TX_SUCCESS;
|
||||
|
||||
|
||||
/* Create the ThreadX test thread 0. */
|
||||
status = tx_thread_create(
|
||||
&tx_test_thread_0, "ThreadX test thread 0",
|
||||
tx_test_thread_0_entry, 0,
|
||||
tx_test_thread_0_stack,
|
||||
TX_TEST_STACK_SIZE,
|
||||
5, 5,
|
||||
TX_NO_TIME_SLICE,
|
||||
TX_AUTO_START);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Create the ThreadX test thread 1. */
|
||||
status = tx_thread_create(
|
||||
&tx_test_thread_1, "ThreadX test thread 1",
|
||||
tx_test_thread_1_entry, 1,
|
||||
tx_test_thread_1_stack,
|
||||
TX_TEST_STACK_SIZE,
|
||||
7, 7,
|
||||
3, /* time slice */
|
||||
TX_AUTO_START);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Create the ThreadX test thread 2. */
|
||||
status = tx_thread_create(
|
||||
&tx_test_thread_2, "ThreadX test thread 2",
|
||||
tx_test_thread_2_entry, 2,
|
||||
tx_test_thread_2_stack,
|
||||
TX_TEST_STACK_SIZE,
|
||||
5, 7,
|
||||
4, /* time slice */
|
||||
TX_AUTO_START);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Create the message queue shared by threads 1 and 2. */
|
||||
status = tx_queue_create(&tx_test_queue_0, "ThreadX test queue 0", TX_1_ULONG, tx_test_queue_0_buffer, TX_TEST_QUEUE_SIZE*sizeof(ULONG));
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Create the semaphore used for testing. */
|
||||
status = tx_semaphore_create(&tx_test_semaphore_0, "ThreadX test semaphore 0", 1);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Create the event flags group used by threads 1 and 5. */
|
||||
status = tx_event_flags_create(&tx_test_event_flags_0, "ThreadX test event flags 0");
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Create the mutex used for testing without priority inheritance. */
|
||||
status = tx_mutex_create(&tx_test_mutex_0, "ThreadX test mutex 0", TX_NO_INHERIT);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Create a byte memory pool for testing. */
|
||||
status = tx_byte_pool_create(&tx_test_byte_pool_0, "ThreadX test byte pool 0", tx_test_byte_pool_0_buffer, TX_TEST_BYTE_POOL_SIZE);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Quick test of the byte pool during initialization. */
|
||||
{
|
||||
CHAR *pointer = TX_NULL;
|
||||
|
||||
/* Allocate a block and release the block memory. */
|
||||
status = tx_byte_allocate(&tx_test_byte_pool_0, (VOID **) &pointer, 123, TX_NO_WAIT);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Release the block back to the pool. */
|
||||
status = tx_block_release(pointer);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
}
|
||||
|
||||
/* Create a block memory pool to allocate a message buffer from. */
|
||||
status = tx_block_pool_create(&tx_test_block_pool_0, "block pool 0", sizeof(ULONG), tx_test_block_pool_0_buffer, TX_TEST_BLOCK_POOL_SIZE);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Quick test of the block pool during initialization. */
|
||||
{
|
||||
CHAR *pointer = TX_NULL;
|
||||
|
||||
/* Allocate a block and release the block memory. */
|
||||
status = tx_block_allocate(&tx_test_block_pool_0, (VOID **) &pointer, TX_NO_WAIT);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Release the block back to the pool. */
|
||||
status = tx_block_release(pointer);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Define the test threads. */
|
||||
|
||||
void tx_test_thread_0_entry(ULONG thread_input)
|
||||
{
|
||||
|
||||
UINT status;
|
||||
|
||||
|
||||
/* This thread simply sits in while-forever-sleep loop. */
|
||||
while(1)
|
||||
{
|
||||
|
||||
/* Increment the thread counter. */
|
||||
tx_test_thread_0_counter++;
|
||||
|
||||
/* Sleep for 10 ticks. */
|
||||
tx_thread_sleep(10);
|
||||
|
||||
/* Set event flag 0 to wakeup thread 5. */
|
||||
status = tx_event_flags_set(&tx_test_event_flags_0, 0x1, TX_OR);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void tx_test_thread_1_entry(ULONG thread_input)
|
||||
{
|
||||
|
||||
UINT status;
|
||||
|
||||
|
||||
/* This thread simply sends messages to a queue shared by thread 2. */
|
||||
while(1)
|
||||
{
|
||||
|
||||
/* Increment the thread counter. */
|
||||
tx_test_thread_1_counter++;
|
||||
|
||||
/* Send message to queue 0. */
|
||||
status = tx_queue_send(&tx_test_queue_0, &tx_test_thread_1_counter, TX_WAIT_FOREVER);
|
||||
|
||||
/* Check completion status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void tx_test_thread_2_entry(ULONG thread_input)
|
||||
{
|
||||
|
||||
ULONG received_message;
|
||||
UINT status;
|
||||
|
||||
/* This thread retrieves messages placed on the queue by thread 1. */
|
||||
while(1)
|
||||
{
|
||||
|
||||
/* Increment the thread counter. */
|
||||
tx_test_thread_2_counter++;
|
||||
|
||||
/* Retrieve a message from the queue. */
|
||||
status = tx_queue_receive(&tx_test_queue_0, &received_message, TX_WAIT_FOREVER);
|
||||
|
||||
/* Check completion status and make sure the message is what we
|
||||
expected. */
|
||||
if ((status != TX_SUCCESS) || (received_message != tx_test_thread_1_counter))
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void thread_3_and_4_entry(ULONG thread_input)
|
||||
{
|
||||
|
||||
UINT status;
|
||||
|
||||
|
||||
/* This function is executed from thread 3 and thread 4. As the loop
|
||||
below shows, these function compete for ownership of semaphore_0. */
|
||||
while(1)
|
||||
{
|
||||
|
||||
/* Get the semaphore with suspension. */
|
||||
status = tx_semaphore_get(&tx_test_semaphore_0, TX_WAIT_FOREVER);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
|
||||
/* Sleep for 2 ticks to hold the semaphore. */
|
||||
tx_thread_sleep(2);
|
||||
|
||||
/* Release the semaphore. */
|
||||
status = tx_semaphore_put(&tx_test_semaphore_0);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void thread_5_entry(ULONG thread_input)
|
||||
{
|
||||
|
||||
UINT status;
|
||||
ULONG actual_flags;
|
||||
|
||||
|
||||
/* This thread simply waits for an event in a forever loop. */
|
||||
while(1)
|
||||
{
|
||||
|
||||
/* Wait for event flag 0. */
|
||||
status = tx_event_flags_get(&tx_test_event_flags_0, 0x1, TX_OR_CLEAR,
|
||||
&actual_flags, TX_WAIT_FOREVER);
|
||||
|
||||
/* Check status. */
|
||||
if ((status != TX_SUCCESS) || (actual_flags != 0x1))
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void thread_6_and_7_entry(ULONG thread_input)
|
||||
{
|
||||
|
||||
UINT status;
|
||||
|
||||
|
||||
/* This function is executed from thread 6 and thread 7. As the loop
|
||||
below shows, these function compete for ownership of mutex_0. */
|
||||
while(1)
|
||||
{
|
||||
|
||||
/* Get the mutex with suspension. */
|
||||
status = tx_mutex_get(&tx_test_mutex_0, TX_WAIT_FOREVER);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
|
||||
/* Get the mutex again with suspension. This shows
|
||||
that an owning thread may retrieve the mutex it
|
||||
owns multiple times. */
|
||||
status = tx_mutex_get(&tx_test_mutex_0, TX_WAIT_FOREVER);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
|
||||
/* Sleep for 2 ticks to hold the mutex. */
|
||||
tx_thread_sleep(2);
|
||||
|
||||
/* Release the mutex. */
|
||||
status = tx_mutex_put(&tx_test_mutex_0);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
|
||||
/* Release the mutex again. This will actually
|
||||
release ownership since it was obtained twice. */
|
||||
status = tx_mutex_put(&tx_test_mutex_0);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
//
|
||||
// This is the linker script example (SRV3-style).
|
||||
// (c) Synopsys, 2013
|
||||
//
|
||||
//
|
||||
|
||||
//number of exceptions and interrupts
|
||||
NUMBER_OF_EXCEPTIONS = 16;//it is fixed (16)
|
||||
NUMBER_OF_INTERRUPTS = 5;//depends on HW configuration
|
||||
|
||||
//define Interrupt Vector Table size
|
||||
IVT_SIZE_ITEMS = (NUMBER_OF_EXCEPTIONS + NUMBER_OF_INTERRUPTS);//the total IVT size (in "items")
|
||||
IVT_SIZE_BYTES = IVT_SIZE_ITEMS * 4;//in bytes
|
||||
|
||||
//define ICCM and DCCM locations
|
||||
MEMORY {
|
||||
ICCM: ORIGIN = 0x00000000, LENGTH = 128K
|
||||
DCCM: ORIGIN = 0x80000000, LENGTH = 128K
|
||||
}
|
||||
|
||||
//define sections and groups
|
||||
SECTIONS {
|
||||
GROUP: {
|
||||
.ivt (TEXT) : # Interrupt table
|
||||
{
|
||||
___ivt1 = .;
|
||||
* (.ivt)
|
||||
___ivt2 = .;
|
||||
// Make the IVT at least IVT_SIZE_BYTES
|
||||
. += (___ivt2 - ___ivt1 < IVT_SIZE_BYTES) ? (IVT_SIZE_BYTES - (___ivt2 - ___ivt1)) : 0;
|
||||
}
|
||||
.ivh (TEXT) : // Interrupt handlers
|
||||
|
||||
//TEXT sections
|
||||
.text? : { *('.text$crt*') }
|
||||
* (TEXT): {}
|
||||
//Literals
|
||||
* (LIT): {}
|
||||
} > ICCM
|
||||
|
||||
GROUP: {
|
||||
//data sections
|
||||
.sdata?: {}
|
||||
.sbss?: {}
|
||||
*(DATA): {}
|
||||
*(BSS): {}
|
||||
//stack
|
||||
.stack_top: {}
|
||||
.stack ALIGN(4) SIZE(DEFINED _STACKSIZE?_STACKSIZE:4096): {}
|
||||
.stack_base: {}
|
||||
//heap (empty)
|
||||
.heap? ALIGN(4) SIZE(DEFINED _HEAPSIZE?_HEAPSIZE:0): {}
|
||||
.free_memory: {}
|
||||
} > DCCM
|
||||
}
|
||||
@@ -1,360 +0,0 @@
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* Copyright (c) Microsoft Corporation. All rights reserved. */
|
||||
;/* */
|
||||
;/* This software is licensed under the Microsoft Software License */
|
||||
;/* Terms for Microsoft Azure RTOS. Full text of the license can be */
|
||||
;/* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */
|
||||
;/* and in the root directory of this software. */
|
||||
;/* */
|
||||
;/**************************************************************************/
|
||||
|
||||
;/**************************************************************************/
|
||||
;/**************************************************************************/
|
||||
;/** */
|
||||
;/** ThreadX Component */
|
||||
;/** */
|
||||
;/** Initialize */
|
||||
;/** */
|
||||
;/**************************************************************************/
|
||||
;/**************************************************************************/
|
||||
|
||||
.equ IRQ_SELECT, 0x40B
|
||||
.equ KSTACK_TOP, 0x264
|
||||
.equ KSTACK_BASE, 0x265
|
||||
.equ STATUS32_SC, 0x4000
|
||||
|
||||
;
|
||||
; /* Define section for placement after all linker allocated RAM memory. This
|
||||
; is used to calculate the first free address that is passed to
|
||||
; tx_appication_define, soley for the ThreadX application's use. */
|
||||
;
|
||||
.section ".free_memory","aw"
|
||||
.align 4
|
||||
.global _tx_first_free_address
|
||||
_tx_first_free_address:
|
||||
.space 4
|
||||
;
|
||||
; /* Define section for placement before the main stack area for setting
|
||||
; up the STACK_TOP address for hardware stack checking. */
|
||||
;
|
||||
.section ".stack_top","aw"
|
||||
.align 4
|
||||
.global _tx_system_stack_top_address
|
||||
_tx_system_stack_top_address:
|
||||
.space 4
|
||||
;
|
||||
; /* Define section for placement after the main stack area for setting
|
||||
; up the STACK_BASE address for hardware stack checking. */
|
||||
;
|
||||
.section ".stack_base","aw"
|
||||
.align 4
|
||||
.global _tx_system_stack_base_address
|
||||
_tx_system_stack_base_address:
|
||||
.space 4
|
||||
;
|
||||
;
|
||||
.text
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* FUNCTION RELEASE */
|
||||
;/* */
|
||||
;/* _tx_initialize_low_level ARCv2_EM/MetaWare */
|
||||
;/* 6.x */
|
||||
;/* AUTHOR */
|
||||
;/* */
|
||||
;/* William E. Lamie, Microsoft Corporation */
|
||||
;/* */
|
||||
;/* DESCRIPTION */
|
||||
;/* */
|
||||
;/* This function is responsible for any low-level processor */
|
||||
;/* initialization, including setting up interrupt vectors, setting */
|
||||
;/* up a periodic timer interrupt source, saving the system stack */
|
||||
;/* pointer for use in ISR processing later, and finding the first */
|
||||
;/* available RAM memory address for tx_application_define. */
|
||||
;/* */
|
||||
;/* INPUT */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* OUTPUT */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* CALLS */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* CALLED BY */
|
||||
;/* */
|
||||
;/* _tx_initialize_kernel_enter ThreadX entry function */
|
||||
;/* */
|
||||
;/* RELEASE HISTORY */
|
||||
;/* */
|
||||
;/* DATE NAME DESCRIPTION */
|
||||
;/* */
|
||||
;/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
||||
;/* */
|
||||
;/**************************************************************************/
|
||||
;VOID _tx_initialize_low_level(VOID)
|
||||
;{
|
||||
.global _tx_initialize_low_level
|
||||
.type _tx_initialize_low_level, @function
|
||||
_tx_initialize_low_level:
|
||||
|
||||
.ifdef TX_ENABLE_HW_STACK_CHECKING
|
||||
mov r0, _tx_system_stack_top_address ; Pickup top of system stack (lowest memory address)
|
||||
sr r0, [KSTACK_TOP] ; Setup KSTACK_TOP
|
||||
mov r0, _tx_system_stack_base_address ; Pickup base of system stack (highest memory address)
|
||||
sr r0, [KSTACK_BASE] ; Setup KSTACK_BASE
|
||||
lr r0, [status32] ; Pickup current STATUS32
|
||||
or r0, r0, STATUS32_SC ; Or in hardware stack checking enable bit (SC)
|
||||
kflag r0 ; Enable hardware stack checking
|
||||
.endif
|
||||
;
|
||||
; /* Save the system stack pointer. */
|
||||
; _tx_thread_system_stack_ptr = (VOID_PTR) (sp);
|
||||
;
|
||||
mov r0, _estack ; Pickup the end of stack address
|
||||
st r0, [gp, _tx_thread_system_stack_ptr@sda] ; Save system stack pointer
|
||||
;
|
||||
;
|
||||
; /* Pickup the first available memory address. */
|
||||
;
|
||||
mov r0, _tx_first_free_address ; Pickup first free memory address
|
||||
;
|
||||
; /* Save the first available memory address. */
|
||||
; _tx_initialize_unused_memory = (VOID_PTR) _end;
|
||||
;
|
||||
st r0, [gp, _tx_initialize_unused_memory@sda]
|
||||
;
|
||||
;
|
||||
; /* Setup Timer 0 for periodic interrupts at interrupt vector 16. */
|
||||
;
|
||||
mov r0, 0 ; Disable additional ISR reg saving/restoring
|
||||
sr r0, [AUX_IRQ_CTRL] ;
|
||||
|
||||
mov r0, 16 ; Select timer 0
|
||||
sr r0, [IRQ_SELECT] ;
|
||||
mov r0, 15 ; Set timer 0 to priority 15
|
||||
sr r0, [IRQ_PRIORITY] ;
|
||||
mov r0, 1 ; Enable this interrupt
|
||||
sr r0, [IRQ_ENABLE] ;
|
||||
mov r0, 0x10000 ; Setup timer period
|
||||
sr r0, [LIMIT0] ;
|
||||
mov r0, 0 ; Clear timer 0 current count
|
||||
sr r0, [COUNT0] ;
|
||||
mov r0, 3 ; Enable timer 0
|
||||
sr r0, [CONTROL0] ;
|
||||
|
||||
.ifdef TX_TIMER_1_SETUP
|
||||
mov r0, 17 ; Select timer 1
|
||||
sr r0, [IRQ_SELECT] ;
|
||||
mov r0, 2 ; Set timer 1 to priority 14
|
||||
sr r0, [IRQ_PRIORITY] ;
|
||||
mov r0, 1 ; Enable this interrupt
|
||||
sr r0, [IRQ_ENABLE] ;
|
||||
mov r0, 0x10020 ; Setup timer period
|
||||
sr r0, [LIMIT1] ;
|
||||
mov r0, 0 ; Clear timer 0 current count
|
||||
sr r0, [COUNT1] ;
|
||||
mov r0, 3 ; Enable timer 0
|
||||
sr r0, [CONTROL1] ;
|
||||
.endif
|
||||
;
|
||||
; /* Done, return to caller. */
|
||||
;
|
||||
j_s.d [blink] ; Return to caller
|
||||
nop
|
||||
;}
|
||||
;
|
||||
;
|
||||
; /* Define default vector table entries. */
|
||||
;
|
||||
.global _tx_memory_error
|
||||
_tx_memory_error:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_memory_error
|
||||
|
||||
.global _tx_instruction_error
|
||||
_tx_instruction_error:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_instruction_error
|
||||
|
||||
.global _tx_ev_machine_check
|
||||
_tx_ev_machine_check:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_machine_check
|
||||
|
||||
.global _tx_ev_tblmiss_inst
|
||||
_tx_ev_tblmiss_inst:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_tblmiss_inst
|
||||
|
||||
.global _tx_ev_tblmiss_data
|
||||
_tx_ev_tblmiss_data:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_tblmiss_data
|
||||
|
||||
.global _tx_ev_protection_viol
|
||||
_tx_ev_protection_viol:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_protection_viol
|
||||
|
||||
.global _tx_ev_privilege_viol
|
||||
_tx_ev_privilege_viol:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_privilege_viol
|
||||
|
||||
.global _tx_ev_software_int
|
||||
_tx_ev_software_int:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_software_int
|
||||
|
||||
.global _tx_ev_trap
|
||||
_tx_ev_trap:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_trap
|
||||
|
||||
.global _tx_ev_extension
|
||||
_tx_ev_extension:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_extension
|
||||
|
||||
.global _tx_ev_divide_by_zero
|
||||
_tx_ev_divide_by_zero:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_divide_by_zero
|
||||
|
||||
.global _tx_ev_dc_error
|
||||
_tx_ev_dc_error:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_dc_error
|
||||
|
||||
.global _tx_ev_maligned
|
||||
_tx_ev_maligned:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_maligned
|
||||
|
||||
.global _tx_unsued_0
|
||||
_tx_unsued_0:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_unsued_0
|
||||
|
||||
.global _tx_unused_1
|
||||
_tx_unused_1:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_unused_1
|
||||
|
||||
.global _tx_timer_0
|
||||
_tx_timer_0:
|
||||
;
|
||||
; /* By default, setup Timer 0 as the ThreadX timer interrupt. */
|
||||
;
|
||||
sub sp, sp, 160 ; Allocate an interrupt stack frame
|
||||
st r0, [sp, 0] ; Save r0
|
||||
st r1, [sp, 4] ; Save r1
|
||||
st r2, [sp, 8] ; Save r2
|
||||
mov r0, 3
|
||||
sr r0, [CONTROL0]
|
||||
|
||||
b _tx_timer_interrupt ; Jump to generic ThreadX timer interrupt
|
||||
; handler
|
||||
; flag 1
|
||||
; nop
|
||||
; nop
|
||||
; nop
|
||||
; b _tx_timer_0
|
||||
|
||||
.global _tx_timer_1
|
||||
_tx_timer_1:
|
||||
sub sp, sp, 160 ; Allocate an interrupt stack frame
|
||||
st blink, [sp, 16] ; Save blink
|
||||
bl _tx_thread_context_save ; Call context save
|
||||
;
|
||||
; /* ISR processing goes here. If the applications wishes to re-enable
|
||||
; interrupts, the SETI instruction can be used here. Also note that
|
||||
; register usage in assembly code must be confined to the compiler
|
||||
; scratch registers. */
|
||||
;
|
||||
mov r0, 3
|
||||
sr r0, [CONTROL1]
|
||||
;
|
||||
b _tx_thread_context_restore ; Call context restore
|
||||
|
||||
; flag 1
|
||||
; nop
|
||||
; nop
|
||||
; nop
|
||||
; b _tx_timer_1
|
||||
|
||||
.global _tx_undefined_0
|
||||
_tx_undefined_0:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_undefined_0
|
||||
|
||||
.global _tx_undefined_1
|
||||
_tx_undefined_1:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_undefined_1
|
||||
|
||||
.global _tx_undefined_2
|
||||
_tx_undefined_2:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_undefined_2
|
||||
|
||||
.end
|
||||
@@ -1,29 +0,0 @@
|
||||
|
||||
.file "vectors.s"
|
||||
.section .ivt,text
|
||||
;; This directive forces this section to stay resident even if stripped out by the -zpurgetext linker option
|
||||
.sectflag .ivt,include
|
||||
|
||||
;// handler's name type number name offset in IVT (hex/dec)
|
||||
.long _start ; exception 0 program entry point offset 0x0 0
|
||||
.long _tx_memory_error ; exception 1 memory_error offset 0x4 4
|
||||
.long _tx_instruction_error ; exception 2 instruction_error offset 0x8 8
|
||||
.long _tx_ev_machine_check ; exception 3 EV_MachineCheck offset 0xC 12
|
||||
.long _tx_ev_tblmiss_inst ; exception 4 EV_TLBMissI offset 0x10 16
|
||||
.long _tx_ev_tblmiss_data ; exception 5 EV_TLBMissD offset 0x14 20
|
||||
.long _tx_ev_protection_viol ; exception 6 EV_ProtV offset 0x18 24
|
||||
.long _tx_ev_privilege_viol ; exception 7 EV_PrivilegeV offset 0x1C 28
|
||||
.long _tx_ev_software_int ; exception 8 EV_SWI offset 0x20 32
|
||||
.long _tx_ev_trap ; exception 9 EV_Trap offset 0x24 36
|
||||
.long _tx_ev_extension ; exception 10 EV_Extension offset 0x28 40
|
||||
.long _tx_ev_divide_by_zero ; exception 11 EV_DivZero offset 0x2C 44
|
||||
.long _tx_ev_dc_error ; exception 12 EV_DCError offset 0x30 48
|
||||
.long _tx_ev_maligned ; exception 13 EV_Maligned offset 0x34 52
|
||||
.long _tx_unsued_0 ; exception 14 unused offset 0x38 56
|
||||
.long _tx_unused_1 ; exception 15 unused offset 0x3C 60
|
||||
.long _tx_timer_0 ; IRQ 16 Timer 0 offset 0x40 64
|
||||
.long _tx_timer_1 ; IRQ 17 Timer 1 offset 0x44 68
|
||||
.long _tx_undefined_0 ; IRQ 18 offset 0x48 72
|
||||
.long _tx_undefined_1 ; IRQ 19 offset 0x4C 76
|
||||
.long _tx_undefined_2 ; IRQ 20 offset 0x50 80
|
||||
|
||||
@@ -1,137 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
<cconfiguration id="com.arc.cdt.toolchain.av2em.libDebugConfig.732975342">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arc.cdt.toolchain.av2em.libDebugConfig.732975342" moduleId="org.eclipse.cdt.core.settings" name="Debug">
|
||||
<externalSettings>
|
||||
<externalSetting>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/tx"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/tx/Debug"/>
|
||||
<entry flags="RESOLVED" kind="libraryFile" name="tx" srcPrefixMapping="" srcRootPath=""/>
|
||||
</externalSetting>
|
||||
</externalSettings>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCAssemblerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" errorParsers="com.arc.cdt.toolchain.ARCCompilerErrorParser;com.arc.cdt.toolchain.ARCLinkerErrorParser;com.arc.cdt.toolchain.ARCAssemblerErrorParser;org.eclipse.cdt.core.MakeErrorParser" id="com.arc.cdt.toolchain.av2em.libDebugConfig.732975342" name="Debug" parent="com.arc.cdt.toolchain.av2em.libDebugConfig">
|
||||
<folderInfo id="com.arc.cdt.toolchain.av2em.libDebugConfig.732975342." name="/" resourcePath="">
|
||||
<toolChain id="com.arc.cdt.toolchain.av2em.libDebugToolChain.1845103261" superClass="com.arc.cdt.toolchain.av2em.libDebugToolChain">
|
||||
<targetPlatform id="hcTargetPlatform.380373127" isAbstract="false" name="Generic platform" superClass="hcTargetPlatform"/>
|
||||
<builder buildPath="${workspace_loc:/tx}/Debug" id="makeBuilder.1508352290" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="makeBuilder"/>
|
||||
<tool id="av2em.lib.debug.libCompiler.557728458" superClass="av2em.lib.debug.libCompiler">
|
||||
<option id="arc.compiler.options.target.version.968426022" name="ARC Core Version" superClass="arc.compiler.options.target.version" value="arc.compiler.options.target.arcv2em" valueType="enumerated"/>
|
||||
<option id="arc.compiler.options.arcv2emcore.1960993463" name="ARC EM Core" superClass="arc.compiler.options.arcv2emcore" useByScannerDiscovery="true" value="arc.compiler.options.arcv2emcore.core1" valueType="enumerated"/>
|
||||
<option id="arc.compiler.options.stack_check.1862689574" name="Hardware Stack Checking(-Xstack_check)" superClass="arc.compiler.options.stack_check" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||
<option id="arc.compiler.options.include_dirs.1896471677" isActive="false" isDefinedList="false" name="Include Directories (one per line)" superClass="arc.compiler.options.include_dirs" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/inc_generic}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/inc_port}""/>
|
||||
</option>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.1954753370" name="MetaWare C++ Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeC.1689674215" name="MetaWare C Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeC"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.inputTypeCL.242171198" name="MetaWare OpenCL" superClass="com.arc.cdt.toolchain.arc.inputTypeCL"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.libDebugAsm.1772833895" superClass="com.arc.cdt.toolchain.av2em.libDebugAsm">
|
||||
<option id="arc.compiler.options.target.asm.version.1731127945" name="ARC Core Version" superClass="arc.compiler.options.target.asm.version" value="arc.compiler.options.target.arcv2em" valueType="enumerated"/>
|
||||
<option id="arc.asm.options.stack_check.155109415" name="Hardware Stack Checking(-Xstack_check)" superClass="arc.asm.options.stack_check" value="true" valueType="boolean"/>
|
||||
<option id="com.arc.cdt.toolchain.asm.option.defines.645804646" name="Preprocessor Defines (one per line)" superClass="com.arc.cdt.toolchain.asm.option.defines" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="TX_ENABLE_HW_STACK_CHECKING"/>
|
||||
</option>
|
||||
<inputType id="com.arc.cdt.toolchain.asminput.1568134071" name="Assembler Inputs" superClass="com.arc.cdt.toolchain.asminput"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.arc.Linker.1782192981" superClass="com.arc.cdt.toolchain.arc.Linker">
|
||||
<option id="arc.linker.options.target.version.1043501439" name="Target Runtime Libraries" superClass="arc.linker.options.target.version" value="arc.compiler.options.target.arcv2em" valueType="enumerated"/>
|
||||
<option id="arc.linker.options.stack_check.98320731" name="Hardware Stack Checking(-Xstack_check)" superClass="arc.linker.options.stack_check" value="true" valueType="boolean"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.ArDebug.448807496" superClass="com.arc.cdt.toolchain.av2em.ArDebug"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053" moduleId="org.eclipse.cdt.core.settings" name="Release">
|
||||
<externalSettings>
|
||||
<externalSetting>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/tx"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/tx/Release"/>
|
||||
<entry flags="RESOLVED" kind="libraryFile" name="tx" srcPrefixMapping="" srcRootPath=""/>
|
||||
</externalSetting>
|
||||
</externalSettings>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCAssemblerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" errorParsers="com.arc.cdt.toolchain.ARCCompilerErrorParser;com.arc.cdt.toolchain.ARCLinkerErrorParser;com.arc.cdt.toolchain.ARCAssemblerErrorParser;org.eclipse.cdt.core.MakeErrorParser" id="com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053" name="Release" parent="com.arc.cdt.toolchain.av2em.libReleaseConfig">
|
||||
<folderInfo id="com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053." name="/" resourcePath="">
|
||||
<toolChain id="com.arc.cdt.toolchain.av2em.libReleaseToolChain.637077717" superClass="com.arc.cdt.toolchain.av2em.libReleaseToolChain">
|
||||
<targetPlatform id="hcTargetPlatform.1427038966" isAbstract="false" name="Generic platform" superClass="hcTargetPlatform"/>
|
||||
<builder buildPath="${workspace_loc:/tx}/Release" id="makeBuilder.1122480484" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="makeBuilder"/>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.libCompilerRelease.267590455" superClass="com.arc.cdt.toolchain.av2em.libCompilerRelease">
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.1437940047" name="MetaWare C++ Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeC.385033901" name="MetaWare C Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeC"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.inputTypeCL.1070557333" name="MetaWare OpenCL" superClass="com.arc.cdt.toolchain.arc.inputTypeCL"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.libReleaseAsm.1659783437" superClass="com.arc.cdt.toolchain.av2em.libReleaseAsm">
|
||||
<inputType id="com.arc.cdt.toolchain.asminput.612218762" name="Assembler Inputs" superClass="com.arc.cdt.toolchain.asminput"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.arc.Linker.1430136995" superClass="com.arc.cdt.toolchain.arc.Linker"/>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.ArRelease.50929117" superClass="com.arc.cdt.toolchain.av2em.ArRelease"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id="tx.com.arc.cdt.toolchain.arc.av2em.libProject.1936758151" name="Static Library" projectType="com.arc.cdt.toolchain.arc.av2em.libProject"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||
<storageModule moduleId="refreshScope" versionNumber="2">
|
||||
<configuration configurationName="Debug">
|
||||
<resource resourceType="PROJECT" workspacePath="/tx"/>
|
||||
</configuration>
|
||||
<configuration configurationName="Release">
|
||||
<resource resourceType="PROJECT" workspacePath="/tx"/>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053;com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053.;com.arc.cdt.toolchain.av2em.libCompilerRelease.267590455;com.arc.cdt.toolchain.arc.inputTypeCL.1070557333">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.libDebugConfig.732975342;com.arc.cdt.toolchain.av2em.libDebugConfig.732975342.;av2em.lib.debug.libCompiler.557728458;com.arc.cdt.toolchain.arc.inputTypeCL.242171198">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.libDebugConfig.732975342;com.arc.cdt.toolchain.av2em.libDebugConfig.732975342.;av2em.lib.debug.libCompiler.557728458;com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.1954753370">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053;com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053.;com.arc.cdt.toolchain.av2em.libCompilerRelease.267590455;com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.1437940047">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.libDebugConfig.732975342;com.arc.cdt.toolchain.av2em.libDebugConfig.732975342.;av2em.lib.debug.libCompiler.557728458;com.arc.cdt.toolchain.arc.ccac.inputTypeC.1689674215">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053;com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053.;com.arc.cdt.toolchain.av2em.libCompilerRelease.267590455;com.arc.cdt.toolchain.arc.ccac.inputTypeC.385033901">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
</storageModule>
|
||||
</cproject>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>tx</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
</natures>
|
||||
<linkedResources>
|
||||
<link>
|
||||
<name>inc_generic</name>
|
||||
<type>2</type>
|
||||
<locationURI>$%7BPARENT-5-PROJECT_LOC%7D/common/inc</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>inc_port</name>
|
||||
<type>2</type>
|
||||
<locationURI>$%7BPARENT-2-PROJECT_LOC%7D/inc</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src_generic</name>
|
||||
<type>2</type>
|
||||
<locationURI>$%7BPARENT-5-PROJECT_LOC%7D/common/src</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src_port</name>
|
||||
<type>2</type>
|
||||
<locationURI>$%7BPARENT-2-PROJECT_LOC%7D/src</locationURI>
|
||||
</link>
|
||||
</linkedResources>
|
||||
</projectDescription>
|
||||
@@ -1,145 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
<cconfiguration id="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695" moduleId="org.eclipse.cdt.core.settings" name="Debug">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCAssemblerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" errorParsers="com.arc.cdt.toolchain.ARCCompilerErrorParser;com.arc.cdt.toolchain.ARCLinkerErrorParser;com.arc.cdt.toolchain.ARCAssemblerErrorParser;org.eclipse.cdt.core.MakeErrorParser" id="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695" name="Debug" parent="com.arc.cdt.toolchain.av2em.exeDebugConfig">
|
||||
<folderInfo id="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695." name="/" resourcePath="">
|
||||
<toolChain id="com.arc.cdt.toolchain.av2em.exeToolChainDebug.687487123" superClass="com.arc.cdt.toolchain.av2em.exeToolChainDebug">
|
||||
<targetPlatform id="hcTargetPlatform.1489412971" isAbstract="false" name="Generic platform" superClass="hcTargetPlatform"/>
|
||||
<builder buildPath="${workspace_loc:/sample_threadx}/Debug" id="makeBuilder.172080285" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="makeBuilder"/>
|
||||
<tool id="av2em.exe.debug.exeCompilerDebug.670850607" superClass="av2em.exe.debug.exeCompilerDebug">
|
||||
<option id="arc.compiler.options.target.version.713469122" name="ARC Core Version" superClass="arc.compiler.options.target.version" value="arc.compiler.options.target.arcv2em" valueType="enumerated"/>
|
||||
<option id="arc.compiler.options.include_dirs.502094459" isActive="false" isDefinedList="false" name="Include Directories (one per line)" superClass="arc.compiler.options.include_dirs" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/tx/inc_generic}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/tx/inc_port}""/>
|
||||
</option>
|
||||
<option id="arc.compiler.options.timers.timer0.514952339" name="Use Timer 0 (-Xtimer0)" superClass="arc.compiler.options.timers.timer0" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||
<option id="arc.compiler.options.timers.timer1.2077131365" name="Use timer 1 (-Xtimer1)" superClass="arc.compiler.options.timers.timer1" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||
<option id="arc.compiler.options.arcv2emcore.1571321769" name="ARC EM Core" superClass="arc.compiler.options.arcv2emcore" useByScannerDiscovery="true" value="arc.compiler.options.arcv2emcore.core1" valueType="enumerated"/>
|
||||
<option id="arc.compiler.options.stack_check.852036512" name="Hardware Stack Checking(-Xstack_check)" superClass="arc.compiler.options.stack_check" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.603646508" name="MetaWare C++ Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeC.1127761944" name="MetaWare C Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeC"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.inputTypeCL.66701363" name="MetaWare OpenCL" superClass="com.arc.cdt.toolchain.arc.inputTypeCL"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.asmDebugExe.502330268" superClass="com.arc.cdt.toolchain.av2em.asmDebugExe">
|
||||
<option id="arc.compiler.options.target.asm.version.1322795579" name="ARC Core Version" superClass="arc.compiler.options.target.asm.version" value="arc.compiler.options.target.arcv2em" valueType="enumerated"/>
|
||||
<option id="arc.asm.options.timers.timer0.700216762" name="Use Timer 0 (-Xtimer0)" superClass="arc.asm.options.timers.timer0" value="true" valueType="boolean"/>
|
||||
<option id="arc.asm.options.timers.timer1.1921573159" name="Use timer 1 (-Xtimer1)" superClass="arc.asm.options.timers.timer1" value="true" valueType="boolean"/>
|
||||
<option id="arc.asm.options.stack_check.624314645" name="Hardware Stack Checking(-Xstack_check)" superClass="arc.asm.options.stack_check" value="true" valueType="boolean"/>
|
||||
<option id="com.arc.cdt.toolchain.asm.option.defines.229067703" name="Preprocessor Defines (one per line)" superClass="com.arc.cdt.toolchain.asm.option.defines" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="TX_ENABLE_HW_STACK_CHECKING"/>
|
||||
</option>
|
||||
<inputType id="com.arc.cdt.toolchain.asminput.362750288" name="Assembler Inputs" superClass="com.arc.cdt.toolchain.asminput"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.exeLinkerDebug.994503969" superClass="com.arc.cdt.toolchain.av2em.exeLinkerDebug">
|
||||
<option id="arc.linker.options.target.version.266280641" name="Target Runtime Libraries" superClass="arc.linker.options.target.version" value="arc.compiler.options.target.arcv2em" valueType="enumerated"/>
|
||||
<option id="com.arc.cdt.toolchain.option.linker.svr3.2027621986" isActive="false" isDefinedList="false" name="SVR3-style command files" superClass="com.arc.cdt.toolchain.option.linker.svr3" valueType="userObjs">
|
||||
<listOptionValue builtIn="false" value="../sample_threadx_validation.cmd"/>
|
||||
</option>
|
||||
<option id="arc.link.ld.user_objs.772443345" isDefinedList="false" name="Additional Object Files && Libraries" superClass="arc.link.ld.user_objs" valueType="userObjs">
|
||||
<listOptionValue builtIn="false" value=""..\..\tx\Debug\tx.a""/>
|
||||
</option>
|
||||
<option id="arc.linker.options.stack_check.1129063065" name="Hardware Stack Checking(-Xstack_check)" superClass="arc.linker.options.stack_check" value="true" valueType="boolean"/>
|
||||
<option id="com.arc.cdt.toolchain.linker.option.map.460013866" name="Generate listing file (=.map)" superClass="com.arc.cdt.toolchain.linker.option.map" value="true" valueType="boolean"/>
|
||||
<inputType id="com.arc.cdt.toolchain.linker.input.425165876" name="Linker Input" superClass="com.arc.cdt.toolchain.linker.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
</inputType>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.arc.archiver.887646463" superClass="com.arc.cdt.toolchain.arc.archiver"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224" moduleId="org.eclipse.cdt.core.settings" name="Release">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCAssemblerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" errorParsers="com.arc.cdt.toolchain.ARCCompilerErrorParser;com.arc.cdt.toolchain.ARCLinkerErrorParser;com.arc.cdt.toolchain.ARCAssemblerErrorParser;org.eclipse.cdt.core.MakeErrorParser" id="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224" name="Release" parent="com.arc.cdt.toolchain.av2em.exeReleaseConfig">
|
||||
<folderInfo id="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224." name="/" resourcePath="">
|
||||
<toolChain id="com.arc.cdt.toolchain.av2em.exeReleaseToolChain.1354693166" superClass="com.arc.cdt.toolchain.av2em.exeReleaseToolChain">
|
||||
<targetPlatform id="hcTargetPlatform.1484344501" isAbstract="false" name="Generic platform" superClass="hcTargetPlatform"/>
|
||||
<builder buildPath="${workspace_loc:/sample_threadx}/Release" id="makeBuilder.1056470287" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="makeBuilder"/>
|
||||
<tool id="arc.cdt.toolchain.av2em.exeCompilerRelease.93257878" superClass="arc.cdt.toolchain.av2em.exeCompilerRelease">
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.1040370238" name="MetaWare C++ Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeC.1016915037" name="MetaWare C Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeC"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.inputTypeCL.1090960130" name="MetaWare OpenCL" superClass="com.arc.cdt.toolchain.arc.inputTypeCL"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.asmReleaseExe.714380962" superClass="com.arc.cdt.toolchain.av2em.asmReleaseExe">
|
||||
<inputType id="com.arc.cdt.toolchain.asminput.1121766557" name="Assembler Inputs" superClass="com.arc.cdt.toolchain.asminput"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.exelinkerRelease.1145338994" superClass="com.arc.cdt.toolchain.av2em.exelinkerRelease">
|
||||
<inputType id="com.arc.cdt.toolchain.linker.input.773394203" name="Linker Input" superClass="com.arc.cdt.toolchain.linker.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
</inputType>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.arc.archiver.1360196687" superClass="com.arc.cdt.toolchain.arc.archiver"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id="sample_threadx.com.arc.cdt.toolchain.arc.av2em.exeProject.666673635" name="Executable" projectType="com.arc.cdt.toolchain.arc.av2em.exeProject"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||
<storageModule moduleId="refreshScope" versionNumber="2">
|
||||
<configuration configurationName="Debug">
|
||||
<resource resourceType="PROJECT" workspacePath="/sample_threadx"/>
|
||||
</configuration>
|
||||
<configuration configurationName="Release">
|
||||
<resource resourceType="PROJECT" workspacePath="/sample_threadx"/>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224;com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224.;arc.cdt.toolchain.av2em.exeCompilerRelease.93257878;com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.1040370238">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224;com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224.;arc.cdt.toolchain.av2em.exeCompilerRelease.93257878;com.arc.cdt.toolchain.arc.inputTypeCL.1090960130">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695;com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695.;av2em.exe.debug.exeCompilerDebug.670850607;com.arc.cdt.toolchain.arc.ccac.inputTypeC.1127761944">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695;com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695.;av2em.exe.debug.exeCompilerDebug.670850607;com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.603646508">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224;com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224.;arc.cdt.toolchain.av2em.exeCompilerRelease.93257878;com.arc.cdt.toolchain.arc.ccac.inputTypeC.1016915037">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695;com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695.;av2em.exe.debug.exeCompilerDebug.670850607;com.arc.cdt.toolchain.arc.inputTypeCL.66701363">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
</storageModule>
|
||||
</cproject>
|
||||
@@ -1,26 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>sample_threadx_validation</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@@ -1,654 +0,0 @@
|
||||
/* This is a small demo of the high-performance ThreadX kernel. It includes examples of eight
|
||||
threads of different priorities, using a message queue, semaphore, mutex, event flags group,
|
||||
byte pool, and block pool. */
|
||||
|
||||
#include "tx_api.h"
|
||||
|
||||
#define TX_TEST_STACK_SIZE (1024 * 2)
|
||||
#define TX_TEST_QUEUE_SIZE (16)
|
||||
#define TX_TEST_BYTE_POOL_SIZE (1024 * 4)
|
||||
#define TX_TEST_BLOCK_POOL_SIZE (1024 * 4)
|
||||
|
||||
|
||||
/* Define the ThreadX object control blocks... */
|
||||
|
||||
TX_THREAD tx_test_thread_0;
|
||||
TX_THREAD tx_test_thread_1;
|
||||
TX_THREAD tx_test_thread_2;
|
||||
TX_THREAD tx_test_thread_3;
|
||||
TX_THREAD tx_test_thread_4;
|
||||
TX_THREAD tx_test_thread_5;
|
||||
TX_THREAD tx_test_thread_6;
|
||||
TX_THREAD tx_test_thread_7;
|
||||
TX_QUEUE tx_test_queue_0;
|
||||
TX_SEMAPHORE tx_test_semaphore_0;
|
||||
TX_MUTEX tx_test_mutex_0;
|
||||
TX_EVENT_FLAGS_GROUP tx_test_event_flags_0;
|
||||
TX_BYTE_POOL tx_test_byte_pool_0;
|
||||
TX_BLOCK_POOL tx_test_block_pool_0;
|
||||
|
||||
|
||||
/* Define the counters used in the demo application... */
|
||||
|
||||
ULONG tx_test_error_counter;
|
||||
ULONG tx_test_thread_0_counter;
|
||||
ULONG tx_test_thread_1_counter;
|
||||
ULONG tx_test_thread_2_counter;
|
||||
|
||||
|
||||
/* Define thread prototypes. */
|
||||
|
||||
void tx_test_thread_0_entry(ULONG thread_input);
|
||||
void tx_test_thread_1_entry(ULONG thread_input);
|
||||
void tx_test_thread_2_entry(ULONG thread_input);
|
||||
void tx_test_thread_3_and_4_entry(ULONG thread_input);
|
||||
void tx_test_thread_5_entry(ULONG thread_input);
|
||||
void tx_test_thread_6_and_7_entry(ULONG thread_input);
|
||||
|
||||
|
||||
/* Define the thread stacks. */
|
||||
|
||||
ULONG tx_test_thread_0_stack[TX_TEST_STACK_SIZE / sizeof(ULONG)];
|
||||
ULONG tx_test_thread_1_stack[TX_TEST_STACK_SIZE / sizeof(ULONG)];
|
||||
ULONG tx_test_thread_2_stack[TX_TEST_STACK_SIZE / sizeof(ULONG)];
|
||||
ULONG tx_test_thread_3_stack[TX_TEST_STACK_SIZE / sizeof(ULONG)];
|
||||
ULONG tx_test_thread_4_stack[TX_TEST_STACK_SIZE / sizeof(ULONG)];
|
||||
ULONG tx_test_thread_5_stack[TX_TEST_STACK_SIZE / sizeof(ULONG)];
|
||||
ULONG tx_test_thread_6_stack[TX_TEST_STACK_SIZE / sizeof(ULONG)];
|
||||
ULONG tx_test_thread_7_stack[TX_TEST_STACK_SIZE / sizeof(ULONG)];
|
||||
|
||||
|
||||
/* Define other buffers used by the test code. */
|
||||
|
||||
ULONG tx_test_queue_0_buffer[TX_TEST_QUEUE_SIZE];
|
||||
ULONG tx_test_byte_pool_0_buffer[TX_TEST_BYTE_POOL_SIZE / sizeof(ULONG)];
|
||||
ULONG tx_test_block_pool_0_buffer[TX_TEST_BLOCK_POOL_SIZE / sizeof(ULONG)];
|
||||
|
||||
|
||||
/* Define test function prototypes. */
|
||||
|
||||
void tx_test_sleep();
|
||||
void tx_test_busy_loop();
|
||||
void tx_test_byte_alloc_and_free();
|
||||
|
||||
int tx_test_sum_many_params(
|
||||
void (*f)(),
|
||||
int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8,
|
||||
int p9, int p10, int p11, int p12, int p13, int p14, int p15, int p16,
|
||||
int p17, int p18, int p19, int p20, int p21, int p22, int p23, int p24,
|
||||
int p25, int p26, int p27, int p28, int p29, int p30, int p31, int p32,
|
||||
int p33, int p34, int p35, int p36, int p37, int p38, int p39, int p40,
|
||||
int p41, int p42, int p43, int p44, int p45, int p46, int p47, int p48,
|
||||
int p49, int p50, int p51, int p52, int p53, int p54, int p55, int p56,
|
||||
int p57, int p58, int p59, int p60, int p61, int p62, int p63, int p64,
|
||||
int p65, int p66, int p67, int p68, int p69, int p70, int p71, int p72);
|
||||
|
||||
int tx_test_xor_many_params(
|
||||
void (*f)(),
|
||||
int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8,
|
||||
int p9, int p10, int p11, int p12, int p13, int p14, int p15, int p16,
|
||||
int p17, int p18, int p19, int p20, int p21, int p22, int p23, int p24,
|
||||
int p25, int p26, int p27, int p28, int p29, int p30, int p31, int p32,
|
||||
int p33, int p34, int p35, int p36, int p37, int p38, int p39, int p40,
|
||||
int p41, int p42, int p43, int p44, int p45, int p46, int p47, int p48,
|
||||
int p49, int p50, int p51, int p52, int p53, int p54, int p55, int p56,
|
||||
int p57, int p58, int p59, int p60, int p61, int p62, int p63, int p64,
|
||||
int p65, int p66, int p67, int p68, int p69, int p70, int p71, int p72);
|
||||
|
||||
|
||||
/* Define the error handler. */
|
||||
|
||||
void tx_test_error_handler()
|
||||
{
|
||||
tx_test_error_counter++;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
/* Stay here forever */
|
||||
}
|
||||
}
|
||||
|
||||
/* Define main entry point. */
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
/* Enter the ThreadX kernel. */
|
||||
tx_kernel_enter();
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
||||
/* Define what the initial system looks like. */
|
||||
|
||||
void tx_application_define(void *first_unused_memory)
|
||||
{
|
||||
|
||||
UINT status = TX_SUCCESS;
|
||||
|
||||
|
||||
/* Create the ThreadX test thread 0. */
|
||||
status = tx_thread_create(
|
||||
&tx_test_thread_0, "ThreadX test thread 0",
|
||||
tx_test_thread_0_entry, 0,
|
||||
tx_test_thread_0_stack,
|
||||
TX_TEST_STACK_SIZE,
|
||||
5, 5,
|
||||
TX_NO_TIME_SLICE,
|
||||
TX_AUTO_START);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Create the ThreadX test thread 1. */
|
||||
status = tx_thread_create(
|
||||
&tx_test_thread_1, "ThreadX test thread 1",
|
||||
tx_test_thread_1_entry, 1,
|
||||
tx_test_thread_1_stack,
|
||||
TX_TEST_STACK_SIZE,
|
||||
7, 7,
|
||||
3, /* time slice */
|
||||
TX_AUTO_START);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Create the ThreadX test thread 2. */
|
||||
status = tx_thread_create(
|
||||
&tx_test_thread_2, "ThreadX test thread 2",
|
||||
tx_test_thread_2_entry, 2,
|
||||
tx_test_thread_2_stack,
|
||||
TX_TEST_STACK_SIZE,
|
||||
7, 5,
|
||||
4, /* time slice */
|
||||
TX_AUTO_START);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Create the ThreadX test thread 3. */
|
||||
status = tx_thread_create(
|
||||
&tx_test_thread_3, "ThreadX test thread 3",
|
||||
tx_test_thread_3_and_4_entry, 3,
|
||||
tx_test_thread_3_stack,
|
||||
TX_TEST_STACK_SIZE,
|
||||
7, 5,
|
||||
4, /* time slice */
|
||||
TX_AUTO_START);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Create the ThreadX test thread 4. */
|
||||
status = tx_thread_create(
|
||||
&tx_test_thread_4, "ThreadX test thread 4",
|
||||
tx_test_thread_3_and_4_entry, 4,
|
||||
tx_test_thread_4_stack,
|
||||
TX_TEST_STACK_SIZE,
|
||||
7, 7,
|
||||
4, /* time slice */
|
||||
TX_AUTO_START);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Create the ThreadX test thread 5. */
|
||||
status = tx_thread_create(
|
||||
&tx_test_thread_5, "ThreadX test thread 5",
|
||||
tx_test_thread_5_entry, 5,
|
||||
tx_test_thread_5_stack,
|
||||
TX_TEST_STACK_SIZE,
|
||||
7, 7,
|
||||
4, /* time slice */
|
||||
TX_AUTO_START);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Create the ThreadX test thread 6. */
|
||||
status = tx_thread_create(
|
||||
&tx_test_thread_6, "ThreadX test thread 6",
|
||||
tx_test_thread_6_and_7_entry, 6,
|
||||
tx_test_thread_6_stack,
|
||||
TX_TEST_STACK_SIZE,
|
||||
7, 7,
|
||||
4, /* time slice */
|
||||
TX_AUTO_START);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Create the ThreadX test thread 2. */
|
||||
status = tx_thread_create(
|
||||
&tx_test_thread_7, "ThreadX test thread 7",
|
||||
tx_test_thread_6_and_7_entry, 7,
|
||||
tx_test_thread_7_stack,
|
||||
TX_TEST_STACK_SIZE,
|
||||
7, 7,
|
||||
4, /* time slice */
|
||||
TX_AUTO_START);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
|
||||
/* Create the message queue shared by threads 1 and 2. */
|
||||
status = tx_queue_create(&tx_test_queue_0, "ThreadX test queue 0", TX_1_ULONG, tx_test_queue_0_buffer, TX_TEST_QUEUE_SIZE*sizeof(ULONG));
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Create the semaphore used for testing. */
|
||||
status = tx_semaphore_create(&tx_test_semaphore_0, "ThreadX test semaphore 0", 1);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Create the event flags group used by threads 1 and 5. */
|
||||
status = tx_event_flags_create(&tx_test_event_flags_0, "ThreadX test event flags 0");
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Create the mutex used for testing without priority inheritance. */
|
||||
status = tx_mutex_create(&tx_test_mutex_0, "ThreadX test mutex 0", TX_NO_INHERIT);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Create a byte memory pool for testing. */
|
||||
status = tx_byte_pool_create(&tx_test_byte_pool_0, "ThreadX test byte pool 0", tx_test_byte_pool_0_buffer, TX_TEST_BYTE_POOL_SIZE);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Quick test of the byte pool during initialization. */
|
||||
{
|
||||
CHAR *pointer = TX_NULL;
|
||||
|
||||
/* Allocate a block and release the block memory. */
|
||||
status = tx_byte_allocate(&tx_test_byte_pool_0, (VOID **) &pointer, 123, TX_NO_WAIT);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Release the block back to the pool. */
|
||||
status = tx_byte_release(pointer);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
}
|
||||
|
||||
/* Create a block memory pool to allocate a message buffer from. */
|
||||
status = tx_block_pool_create(&tx_test_block_pool_0, "ThreadX test block pool 0", 128, tx_test_block_pool_0_buffer, TX_TEST_BLOCK_POOL_SIZE);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Quick test of the block pool during initialization. */
|
||||
{
|
||||
CHAR *pointer = TX_NULL;
|
||||
|
||||
/* Allocate a block and release the block memory. */
|
||||
status = tx_block_allocate(&tx_test_block_pool_0, (VOID **) &pointer, TX_NO_WAIT);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Release the block back to the pool. */
|
||||
status = tx_block_release(pointer);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Define the test functions. */
|
||||
|
||||
void tx_test_sleep()
|
||||
{
|
||||
tx_thread_sleep(10);
|
||||
}
|
||||
|
||||
void tx_test_busy_loop()
|
||||
{
|
||||
unsigned i;
|
||||
static volatile unsigned x = 0;
|
||||
for (i = 0; i < (1024 * 4); ++i)
|
||||
{
|
||||
x++;
|
||||
}
|
||||
}
|
||||
|
||||
void tx_test_byte_alloc_and_free()
|
||||
{
|
||||
UINT status;
|
||||
|
||||
/* Quick test of the byte pool during initialization. */
|
||||
{
|
||||
CHAR *pointer = TX_NULL;
|
||||
|
||||
/* Allocate a block and release the block memory. */
|
||||
status = tx_byte_allocate(&tx_test_byte_pool_0, (VOID **) &pointer, 123, TX_NO_WAIT);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
|
||||
/* Release the block back to the pool. */
|
||||
status = tx_byte_release(pointer);
|
||||
if (status != TX_SUCCESS) tx_test_error_handler();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int tx_test_sum_many_params(
|
||||
void (*f)(),
|
||||
int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8,
|
||||
int p9, int p10, int p11, int p12, int p13, int p14, int p15, int p16,
|
||||
int p17, int p18, int p19, int p20, int p21, int p22, int p23, int p24,
|
||||
int p25, int p26, int p27, int p28, int p29, int p30, int p31, int p32,
|
||||
int p33, int p34, int p35, int p36, int p37, int p38, int p39, int p40,
|
||||
int p41, int p42, int p43, int p44, int p45, int p46, int p47, int p48,
|
||||
int p49, int p50, int p51, int p52, int p53, int p54, int p55, int p56,
|
||||
int p57, int p58, int p59, int p60, int p61, int p62, int p63, int p64,
|
||||
int p65, int p66, int p67, int p68, int p69, int p70, int p71, int p72)
|
||||
{
|
||||
volatile int a,b;
|
||||
|
||||
a =
|
||||
p1 + p2 + p3 + p4 + p5 + p6 + p7 + p8 +
|
||||
p9 + p10 + p11 + p12 + p13 + p14 + p15 + p16 +
|
||||
p17 + p18 + p19 + p20 + p21 + p22 + p23 + p24 +
|
||||
p25 + p26 + p27 + p28 + p29 + p30 + p31 + p32 +
|
||||
p33 + p34 + p35 + p36 + p37 + p38 + p39 + p40 +
|
||||
p41 + p42 + p43 + p44 + p45 + p46 + p47 + p48 +
|
||||
p49 + p50 + p51 + p52 + p53 + p54 + p55 + p56 +
|
||||
p57 + p58 + p59 + p60 + p61 + p62 + p63 + p64 +
|
||||
p65 + p66 + p67 + p68 + p69 + p70 + p71 + p72;
|
||||
|
||||
f();
|
||||
|
||||
b =
|
||||
p1 + p2 + p3 + p4 + p5 + p6 + p7 + p8 +
|
||||
p9 + p10 + p11 + p12 + p13 + p14 + p15 + p16 +
|
||||
p17 + p18 + p19 + p20 + p21 + p22 + p23 + p24 +
|
||||
p25 + p26 + p27 + p28 + p29 + p30 + p31 + p32 +
|
||||
p33 + p34 + p35 + p36 + p37 + p38 + p39 + p40 +
|
||||
p41 + p42 + p43 + p44 + p45 + p46 + p47 + p48 +
|
||||
p49 + p50 + p51 + p52 + p53 + p54 + p55 + p56 +
|
||||
p57 + p58 + p59 + p60 + p61 + p62 + p63 + p64 +
|
||||
p65 + p66 + p67 + p68 + p69 + p70 + p71 + p72;
|
||||
|
||||
if (a != b)
|
||||
{
|
||||
tx_test_error_handler();
|
||||
}
|
||||
|
||||
return a;
|
||||
}
|
||||
|
||||
int tx_test_xor_many_params(
|
||||
void (*f)(),
|
||||
int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8,
|
||||
int p9, int p10, int p11, int p12, int p13, int p14, int p15, int p16,
|
||||
int p17, int p18, int p19, int p20, int p21, int p22, int p23, int p24,
|
||||
int p25, int p26, int p27, int p28, int p29, int p30, int p31, int p32,
|
||||
int p33, int p34, int p35, int p36, int p37, int p38, int p39, int p40,
|
||||
int p41, int p42, int p43, int p44, int p45, int p46, int p47, int p48,
|
||||
int p49, int p50, int p51, int p52, int p53, int p54, int p55, int p56,
|
||||
int p57, int p58, int p59, int p60, int p61, int p62, int p63, int p64,
|
||||
int p65, int p66, int p67, int p68, int p69, int p70, int p71, int p72)
|
||||
{
|
||||
volatile int a,b;
|
||||
|
||||
a =
|
||||
p1 ^ p2 ^ p3 ^ p4 ^ p5 ^ p6 ^ p7 ^ p8 ^
|
||||
p9 ^ p10 ^ p11 ^ p12 ^ p13 ^ p14 ^ p15 ^ p16 ^
|
||||
p17 ^ p18 ^ p19 ^ p20 ^ p21 ^ p22 ^ p23 ^ p24 ^
|
||||
p25 ^ p26 ^ p27 ^ p28 ^ p29 ^ p30 ^ p31 ^ p32 ^
|
||||
p33 ^ p34 ^ p35 ^ p36 ^ p37 ^ p38 ^ p39 ^ p40 ^
|
||||
p41 ^ p42 ^ p43 ^ p44 ^ p45 ^ p46 ^ p47 ^ p48 ^
|
||||
p49 ^ p50 ^ p51 ^ p52 ^ p53 ^ p54 ^ p55 ^ p56 ^
|
||||
p57 ^ p58 ^ p59 ^ p60 ^ p61 ^ p62 ^ p63 ^ p64 ^
|
||||
p65 ^ p66 ^ p67 ^ p68 ^ p69 ^ p70 ^ p71 ^ p72;
|
||||
|
||||
f();
|
||||
|
||||
b =
|
||||
p1 ^ p2 ^ p3 ^ p4 ^ p5 ^ p6 ^ p7 ^ p8 ^
|
||||
p9 ^ p10 ^ p11 ^ p12 ^ p13 ^ p14 ^ p15 ^ p16 ^
|
||||
p17 ^ p18 ^ p19 ^ p20 ^ p21 ^ p22 ^ p23 ^ p24 ^
|
||||
p25 ^ p26 ^ p27 ^ p28 ^ p29 ^ p30 ^ p31 ^ p32 ^
|
||||
p33 ^ p34 ^ p35 ^ p36 ^ p37 ^ p38 ^ p39 ^ p40 ^
|
||||
p41 ^ p42 ^ p43 ^ p44 ^ p45 ^ p46 ^ p47 ^ p48 ^
|
||||
p49 ^ p50 ^ p51 ^ p52 ^ p53 ^ p54 ^ p55 ^ p56 ^
|
||||
p57 ^ p58 ^ p59 ^ p60 ^ p61 ^ p62 ^ p63 ^ p64 ^
|
||||
p65 ^ p66 ^ p67 ^ p68 ^ p69 ^ p70 ^ p71 ^ p72;
|
||||
|
||||
if (a != b)
|
||||
{
|
||||
tx_test_error_handler();
|
||||
}
|
||||
|
||||
return a;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Define the test threads. */
|
||||
|
||||
void tx_test_thread_0_entry(ULONG thread_input)
|
||||
{
|
||||
|
||||
UINT status;
|
||||
|
||||
|
||||
/* This thread simply sits in while-forever-sleep loop. */
|
||||
while(1)
|
||||
{
|
||||
volatile int a, b, c, d;
|
||||
|
||||
int p1; int p2; int p3; int p4; int p5; int p6; int p7; int p8;
|
||||
int p9; int p10; int p11; int p12; int p13; int p14; int p15; int p16;
|
||||
int p17; int p18; int p19; int p20; int p21; int p22; int p23; int p24;
|
||||
int p25; int p26; int p27; int p28; int p29; int p30; int p31; int p32;
|
||||
int p33; int p34; int p35; int p36; int p37; int p38; int p39; int p40;
|
||||
int p41; int p42; int p43; int p44; int p45; int p46; int p47; int p48;
|
||||
int p49; int p50; int p51; int p52; int p53; int p54; int p55; int p56;
|
||||
int p57; int p58; int p59; int p60; int p61; int p62; int p63; int p64;
|
||||
int p65; int p66; int p67; int p68; int p69; int p70; int p71; int p72;
|
||||
|
||||
p1 = 1; p2 = 2; p3 = 3; p4 = 4; p5 = 5; p6 = 6; p7 = 7; p8 = 8;
|
||||
p9 = 9; p10 = 10; p11 = 11; p12 = 12; p13 = 13; p14 = 14; p15 = 15; p16 = 16;
|
||||
p17 = 17; p18 = 18; p19 = 19; p20 = 20; p21 = 21; p22 = 22; p23 = 23; p24 = 24;
|
||||
p25 = 25; p26 = 26; p27 = 27; p28 = 28; p29 = 29; p30 = 30; p31 = 31; p32 = 32;
|
||||
p33 = 33; p34 = 34; p35 = 35; p36 = 36; p37 = 37; p38 = 38; p39 = 39; p40 = 40;
|
||||
p41 = 41; p42 = 42; p43 = 43; p44 = 44; p45 = 45; p46 = 46; p47 = 47; p48 = 48;
|
||||
p49 = 49; p50 = 50; p51 = 51; p52 = 52; p53 = 53; p54 = 54; p55 = 55; p56 = 56;
|
||||
p57 = 57; p58 = 58; p59 = 59; p60 = 60; p61 = 61; p62 = 62; p63 = 63; p64 = 64;
|
||||
p65 = 65; p66 = 66; p67 = 67; p68 = 68; p69 = 69; p70 = 70; p71 = 71; p72 = 72;
|
||||
|
||||
a = tx_test_sum_many_params(
|
||||
tx_test_sleep,
|
||||
1, 2, 3, 4, 5, 6, 7, 8,
|
||||
9, 10, 11, 12, 13, 14, 15, 16,
|
||||
17, 18, 19, 20, 21, 22, 23, 24,
|
||||
25, 26, 27, 28, 29, 30, 31, 32,
|
||||
33, 34, 35, 36, 37, 38, 39, 40,
|
||||
41, 42, 43, 44, 45, 46, 47, 48,
|
||||
49, 50, 51, 52, 53, 54, 55, 56,
|
||||
57, 58, 59, 60, 61, 62, 63, 64,
|
||||
65, 66, 67, 68, 69, 70, 71, 72);
|
||||
|
||||
b = tx_test_xor_many_params(
|
||||
tx_test_sleep,
|
||||
1, 2, 3, 4, 5, 6, 7, 8,
|
||||
9, 10, 11, 12, 13, 14, 15, 16,
|
||||
17, 18, 19, 20, 21, 22, 23, 24,
|
||||
25, 26, 27, 28, 29, 30, 31, 32,
|
||||
33, 34, 35, 36, 37, 38, 39, 40,
|
||||
41, 42, 43, 44, 45, 46, 47, 48,
|
||||
49, 50, 51, 52, 53, 54, 55, 56,
|
||||
57, 58, 59, 60, 61, 62, 63, 64,
|
||||
65, 66, 67, 68, 69, 70, 71, 72);
|
||||
|
||||
/* Increment the thread counter. */
|
||||
tx_test_thread_0_counter++;
|
||||
|
||||
/* Sleep for 10 ticks. */
|
||||
tx_thread_sleep(10);
|
||||
|
||||
c = tx_test_sum_many_params(
|
||||
tx_test_sleep,
|
||||
p1, p2, p3, p4, p5, p6, p7, p8,
|
||||
p9, p10, p11, p12, p13, p14, p15, p16,
|
||||
p17, p18, p19, p20, p21, p22, p23, p24,
|
||||
p25, p26, p27, p28, p29, p30, p31, p32,
|
||||
p33, p34, p35, p36, p37, p38, p39, p40,
|
||||
p41, p42, p43, p44, p45, p46, p47, p48,
|
||||
p49, p50, p51, p52, p53, p54, p55, p56,
|
||||
p57, p58, p59, p60, p61, p62, p63, p64,
|
||||
p65, p66, p67, p68, p69, p70, p71, p72);
|
||||
|
||||
d = tx_test_xor_many_params(
|
||||
tx_test_sleep,
|
||||
p1, p2, p3, p4, p5, p6, p7, p8,
|
||||
p9, p10, p11, p12, p13, p14, p15, p16,
|
||||
p17, p18, p19, p20, p21, p22, p23, p24,
|
||||
p25, p26, p27, p28, p29, p30, p31, p32,
|
||||
p33, p34, p35, p36, p37, p38, p39, p40,
|
||||
p41, p42, p43, p44, p45, p46, p47, p48,
|
||||
p49, p50, p51, p52, p53, p54, p55, p56,
|
||||
p57, p58, p59, p60, p61, p62, p63, p64,
|
||||
p65, p66, p67, p68, p69, p70, p71, p72);
|
||||
|
||||
if (a != c)
|
||||
{
|
||||
tx_test_error_handler();
|
||||
}
|
||||
|
||||
if (b != d)
|
||||
{
|
||||
tx_test_error_handler();
|
||||
}
|
||||
|
||||
/* Set event flag 0 to wakeup thread 5. */
|
||||
status = tx_event_flags_set(&tx_test_event_flags_0, 0x1, TX_OR);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void tx_test_thread_1_entry(ULONG thread_input)
|
||||
{
|
||||
|
||||
UINT status;
|
||||
|
||||
|
||||
/* This thread simply sends messages to a queue shared by thread 2. */
|
||||
while(1)
|
||||
{
|
||||
|
||||
/* Increment the thread counter. */
|
||||
tx_test_thread_1_counter++;
|
||||
|
||||
/* Send message to queue 0. */
|
||||
status = tx_queue_send(&tx_test_queue_0, &tx_test_thread_1_counter, TX_WAIT_FOREVER);
|
||||
|
||||
/* Check completion status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void tx_test_thread_2_entry(ULONG thread_input)
|
||||
{
|
||||
|
||||
ULONG received_message;
|
||||
UINT status;
|
||||
|
||||
/* This thread retrieves messages placed on the queue by thread 1. */
|
||||
while(1)
|
||||
{
|
||||
|
||||
/* Increment the thread counter. */
|
||||
tx_test_thread_2_counter++;
|
||||
|
||||
/* Retrieve a message from the queue. */
|
||||
status = tx_queue_receive(&tx_test_queue_0, &received_message, TX_WAIT_FOREVER);
|
||||
|
||||
/* Check completion status and make sure the message is what we
|
||||
expected. */
|
||||
if ((status != TX_SUCCESS) || (received_message != tx_test_thread_1_counter))
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void tx_test_thread_3_and_4_entry(ULONG thread_input)
|
||||
{
|
||||
|
||||
UINT status;
|
||||
|
||||
|
||||
/* This function is executed from thread 3 and thread 4. As the loop
|
||||
below shows, these function compete for ownership of semaphore_0. */
|
||||
while(1)
|
||||
{
|
||||
|
||||
/* Get the semaphore with suspension. */
|
||||
status = tx_semaphore_get(&tx_test_semaphore_0, TX_WAIT_FOREVER);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
|
||||
/* Sleep for 2 ticks to hold the semaphore. */
|
||||
tx_thread_sleep(2);
|
||||
|
||||
/* Release the semaphore. */
|
||||
status = tx_semaphore_put(&tx_test_semaphore_0);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void tx_test_thread_5_entry(ULONG thread_input)
|
||||
{
|
||||
|
||||
UINT status;
|
||||
ULONG actual_flags;
|
||||
|
||||
|
||||
/* This thread simply waits for an event in a forever loop. */
|
||||
while(1)
|
||||
{
|
||||
|
||||
/* Wait for event flag 0. */
|
||||
status = tx_event_flags_get(&tx_test_event_flags_0, 0x1, TX_OR_CLEAR,
|
||||
&actual_flags, TX_WAIT_FOREVER);
|
||||
|
||||
/* Check status. */
|
||||
if ((status != TX_SUCCESS) || (actual_flags != 0x1))
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void tx_test_thread_6_and_7_entry(ULONG thread_input)
|
||||
{
|
||||
|
||||
UINT status;
|
||||
|
||||
|
||||
/* This function is executed from thread 6 and thread 7. As the loop
|
||||
below shows, these function compete for ownership of mutex_0. */
|
||||
while(1)
|
||||
{
|
||||
|
||||
/* Get the mutex with suspension. */
|
||||
status = tx_mutex_get(&tx_test_mutex_0, TX_WAIT_FOREVER);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
|
||||
/* Get the mutex again with suspension. This shows
|
||||
that an owning thread may retrieve the mutex it
|
||||
owns multiple times. */
|
||||
status = tx_mutex_get(&tx_test_mutex_0, TX_WAIT_FOREVER);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
|
||||
/* Sleep for 2 ticks to hold the mutex. */
|
||||
tx_thread_sleep(2);
|
||||
|
||||
/* Release the mutex. */
|
||||
status = tx_mutex_put(&tx_test_mutex_0);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
|
||||
/* Release the mutex again. This will actually
|
||||
release ownership since it was obtained twice. */
|
||||
status = tx_mutex_put(&tx_test_mutex_0);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
//
|
||||
// This is the linker script example (SRV3-style).
|
||||
// (c) Synopsys, 2013
|
||||
//
|
||||
//
|
||||
|
||||
//number of exceptions and interrupts
|
||||
NUMBER_OF_EXCEPTIONS = 16;//it is fixed (16)
|
||||
NUMBER_OF_INTERRUPTS = 5;//depends on HW configuration
|
||||
|
||||
//define Interrupt Vector Table size
|
||||
IVT_SIZE_ITEMS = (NUMBER_OF_EXCEPTIONS + NUMBER_OF_INTERRUPTS);//the total IVT size (in "items")
|
||||
IVT_SIZE_BYTES = IVT_SIZE_ITEMS * 4;//in bytes
|
||||
|
||||
//define ICCM and DCCM locations
|
||||
MEMORY {
|
||||
ICCM: ORIGIN = 0x00000000, LENGTH = 128K
|
||||
DCCM: ORIGIN = 0x80000000, LENGTH = 128K
|
||||
}
|
||||
|
||||
//define sections and groups
|
||||
SECTIONS {
|
||||
GROUP: {
|
||||
.ivt (TEXT) : # Interrupt table
|
||||
{
|
||||
___ivt1 = .;
|
||||
* (.ivt)
|
||||
___ivt2 = .;
|
||||
// Make the IVT at least IVT_SIZE_BYTES
|
||||
. += (___ivt2 - ___ivt1 < IVT_SIZE_BYTES) ? (IVT_SIZE_BYTES - (___ivt2 - ___ivt1)) : 0;
|
||||
}
|
||||
.ivh (TEXT) : // Interrupt handlers
|
||||
|
||||
//TEXT sections
|
||||
.text? : { *('.text$crt*') }
|
||||
* (TEXT): {}
|
||||
//Literals
|
||||
* (LIT): {}
|
||||
} > ICCM
|
||||
|
||||
GROUP: {
|
||||
//data sections
|
||||
.sdata?: {}
|
||||
.sbss?: {}
|
||||
*(DATA): {}
|
||||
*(BSS): {}
|
||||
//stack
|
||||
.stack_top: {}
|
||||
.stack ALIGN(4) SIZE(DEFINED _STACKSIZE?_STACKSIZE:4096): {}
|
||||
.stack_base: {}
|
||||
//heap (empty)
|
||||
.heap? ALIGN(4) SIZE(DEFINED _HEAPSIZE?_HEAPSIZE:0): {}
|
||||
.free_memory: {}
|
||||
} > DCCM
|
||||
}
|
||||
@@ -1,360 +0,0 @@
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* Copyright (c) Microsoft Corporation. All rights reserved. */
|
||||
;/* */
|
||||
;/* This software is licensed under the Microsoft Software License */
|
||||
;/* Terms for Microsoft Azure RTOS. Full text of the license can be */
|
||||
;/* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */
|
||||
;/* and in the root directory of this software. */
|
||||
;/* */
|
||||
;/**************************************************************************/
|
||||
|
||||
;/**************************************************************************/
|
||||
;/**************************************************************************/
|
||||
;/** */
|
||||
;/** ThreadX Component */
|
||||
;/** */
|
||||
;/** Initialize */
|
||||
;/** */
|
||||
;/**************************************************************************/
|
||||
;/**************************************************************************/
|
||||
|
||||
.equ IRQ_SELECT, 0x40B
|
||||
.equ KSTACK_TOP, 0x264
|
||||
.equ KSTACK_BASE, 0x265
|
||||
.equ STATUS32_SC, 0x4000
|
||||
|
||||
;
|
||||
; /* Define section for placement after all linker allocated RAM memory. This
|
||||
; is used to calculate the first free address that is passed to
|
||||
; tx_appication_define, soley for the ThreadX application's use. */
|
||||
;
|
||||
.section ".free_memory","aw"
|
||||
.align 4
|
||||
.global _tx_first_free_address
|
||||
_tx_first_free_address:
|
||||
.space 4
|
||||
;
|
||||
; /* Define section for placement before the main stack area for setting
|
||||
; up the STACK_TOP address for hardware stack checking. */
|
||||
;
|
||||
.section ".stack_top","aw"
|
||||
.align 4
|
||||
.global _tx_system_stack_top_address
|
||||
_tx_system_stack_top_address:
|
||||
.space 4
|
||||
;
|
||||
; /* Define section for placement after the main stack area for setting
|
||||
; up the STACK_BASE address for hardware stack checking. */
|
||||
;
|
||||
.section ".stack_base","aw"
|
||||
.align 4
|
||||
.global _tx_system_stack_base_address
|
||||
_tx_system_stack_base_address:
|
||||
.space 4
|
||||
;
|
||||
;
|
||||
.text
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* FUNCTION RELEASE */
|
||||
;/* */
|
||||
;/* _tx_initialize_low_level ARCv2_EM/MetaWare */
|
||||
;/* 6.x */
|
||||
;/* AUTHOR */
|
||||
;/* */
|
||||
;/* William E. Lamie, Microsoft Corporation */
|
||||
;/* */
|
||||
;/* DESCRIPTION */
|
||||
;/* */
|
||||
;/* This function is responsible for any low-level processor */
|
||||
;/* initialization, including setting up interrupt vectors, setting */
|
||||
;/* up a periodic timer interrupt source, saving the system stack */
|
||||
;/* pointer for use in ISR processing later, and finding the first */
|
||||
;/* available RAM memory address for tx_application_define. */
|
||||
;/* */
|
||||
;/* INPUT */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* OUTPUT */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* CALLS */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* CALLED BY */
|
||||
;/* */
|
||||
;/* _tx_initialize_kernel_enter ThreadX entry function */
|
||||
;/* */
|
||||
;/* RELEASE HISTORY */
|
||||
;/* */
|
||||
;/* DATE NAME DESCRIPTION */
|
||||
;/* */
|
||||
;/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
||||
;/* */
|
||||
;/**************************************************************************/
|
||||
;VOID _tx_initialize_low_level(VOID)
|
||||
;{
|
||||
.global _tx_initialize_low_level
|
||||
.type _tx_initialize_low_level, @function
|
||||
_tx_initialize_low_level:
|
||||
|
||||
.ifdef TX_ENABLE_HW_STACK_CHECKING
|
||||
mov r0, _tx_system_stack_top_address ; Pickup top of system stack (lowest memory address)
|
||||
sr r0, [KSTACK_TOP] ; Setup KSTACK_TOP
|
||||
mov r0, _tx_system_stack_base_address ; Pickup base of system stack (highest memory address)
|
||||
sr r0, [KSTACK_BASE] ; Setup KSTACK_BASE
|
||||
lr r0, [status32] ; Pickup current STATUS32
|
||||
or r0, r0, STATUS32_SC ; Or in hardware stack checking enable bit (SC)
|
||||
kflag r0 ; Enable hardware stack checking
|
||||
.endif
|
||||
;
|
||||
; /* Save the system stack pointer. */
|
||||
; _tx_thread_system_stack_ptr = (VOID_PTR) (sp);
|
||||
;
|
||||
mov r0, _estack ; Pickup the end of stack address
|
||||
st r0, [gp, _tx_thread_system_stack_ptr@sda] ; Save system stack pointer
|
||||
;
|
||||
;
|
||||
; /* Pickup the first available memory address. */
|
||||
;
|
||||
mov r0, _tx_first_free_address ; Pickup first free memory address
|
||||
;
|
||||
; /* Save the first available memory address. */
|
||||
; _tx_initialize_unused_memory = (VOID_PTR) _end;
|
||||
;
|
||||
st r0, [gp, _tx_initialize_unused_memory@sda]
|
||||
;
|
||||
;
|
||||
; /* Setup Timer 0 for periodic interrupts at interrupt vector 16. */
|
||||
;
|
||||
mov r0, 0 ; Disable additional ISR reg saving/restoring
|
||||
sr r0, [AUX_IRQ_CTRL] ;
|
||||
|
||||
mov r0, 16 ; Select timer 0
|
||||
sr r0, [IRQ_SELECT] ;
|
||||
mov r0, 15 ; Set timer 0 to priority 15
|
||||
sr r0, [IRQ_PRIORITY] ;
|
||||
mov r0, 1 ; Enable this interrupt
|
||||
sr r0, [IRQ_ENABLE] ;
|
||||
mov r0, 0x10000 ; Setup timer period
|
||||
sr r0, [LIMIT0] ;
|
||||
mov r0, 0 ; Clear timer 0 current count
|
||||
sr r0, [COUNT0] ;
|
||||
mov r0, 3 ; Enable timer 0
|
||||
sr r0, [CONTROL0] ;
|
||||
|
||||
.ifdef TX_TIMER_1_SETUP
|
||||
mov r0, 17 ; Select timer 1
|
||||
sr r0, [IRQ_SELECT] ;
|
||||
mov r0, 2 ; Set timer 1 to priority 14
|
||||
sr r0, [IRQ_PRIORITY] ;
|
||||
mov r0, 1 ; Enable this interrupt
|
||||
sr r0, [IRQ_ENABLE] ;
|
||||
mov r0, 0x10020 ; Setup timer period
|
||||
sr r0, [LIMIT1] ;
|
||||
mov r0, 0 ; Clear timer 0 current count
|
||||
sr r0, [COUNT1] ;
|
||||
mov r0, 3 ; Enable timer 0
|
||||
sr r0, [CONTROL1] ;
|
||||
.endif
|
||||
;
|
||||
; /* Done, return to caller. */
|
||||
;
|
||||
j_s.d [blink] ; Return to caller
|
||||
nop
|
||||
;}
|
||||
;
|
||||
;
|
||||
; /* Define default vector table entries. */
|
||||
;
|
||||
.global _tx_memory_error
|
||||
_tx_memory_error:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_memory_error
|
||||
|
||||
.global _tx_instruction_error
|
||||
_tx_instruction_error:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_instruction_error
|
||||
|
||||
.global _tx_ev_machine_check
|
||||
_tx_ev_machine_check:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_machine_check
|
||||
|
||||
.global _tx_ev_tblmiss_inst
|
||||
_tx_ev_tblmiss_inst:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_tblmiss_inst
|
||||
|
||||
.global _tx_ev_tblmiss_data
|
||||
_tx_ev_tblmiss_data:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_tblmiss_data
|
||||
|
||||
.global _tx_ev_protection_viol
|
||||
_tx_ev_protection_viol:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_protection_viol
|
||||
|
||||
.global _tx_ev_privilege_viol
|
||||
_tx_ev_privilege_viol:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_privilege_viol
|
||||
|
||||
.global _tx_ev_software_int
|
||||
_tx_ev_software_int:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_software_int
|
||||
|
||||
.global _tx_ev_trap
|
||||
_tx_ev_trap:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_trap
|
||||
|
||||
.global _tx_ev_extension
|
||||
_tx_ev_extension:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_extension
|
||||
|
||||
.global _tx_ev_divide_by_zero
|
||||
_tx_ev_divide_by_zero:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_divide_by_zero
|
||||
|
||||
.global _tx_ev_dc_error
|
||||
_tx_ev_dc_error:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_dc_error
|
||||
|
||||
.global _tx_ev_maligned
|
||||
_tx_ev_maligned:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_ev_maligned
|
||||
|
||||
.global _tx_unsued_0
|
||||
_tx_unsued_0:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_unsued_0
|
||||
|
||||
.global _tx_unused_1
|
||||
_tx_unused_1:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_unused_1
|
||||
|
||||
.global _tx_timer_0
|
||||
_tx_timer_0:
|
||||
;
|
||||
; /* By default, setup Timer 0 as the ThreadX timer interrupt. */
|
||||
;
|
||||
sub sp, sp, 160 ; Allocate an interrupt stack frame
|
||||
st r0, [sp, 0] ; Save r0
|
||||
st r1, [sp, 4] ; Save r1
|
||||
st r2, [sp, 8] ; Save r2
|
||||
mov r0, 3
|
||||
sr r0, [CONTROL0]
|
||||
|
||||
b _tx_timer_interrupt ; Jump to generic ThreadX timer interrupt
|
||||
; handler
|
||||
; flag 1
|
||||
; nop
|
||||
; nop
|
||||
; nop
|
||||
; b _tx_timer_0
|
||||
|
||||
.global _tx_timer_1
|
||||
_tx_timer_1:
|
||||
sub sp, sp, 160 ; Allocate an interrupt stack frame
|
||||
st blink, [sp, 16] ; Save blink
|
||||
bl _tx_thread_context_save ; Call context save
|
||||
;
|
||||
; /* ISR processing goes here. If the applications wishes to re-enable
|
||||
; interrupts, the SETI instruction can be used here. Also note that
|
||||
; register usage in assembly code must be confined to the compiler
|
||||
; scratch registers. */
|
||||
;
|
||||
mov r0, 3
|
||||
sr r0, [CONTROL1]
|
||||
;
|
||||
b _tx_thread_context_restore ; Call context restore
|
||||
|
||||
; flag 1
|
||||
; nop
|
||||
; nop
|
||||
; nop
|
||||
; b _tx_timer_1
|
||||
|
||||
.global _tx_undefined_0
|
||||
_tx_undefined_0:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_undefined_0
|
||||
|
||||
.global _tx_undefined_1
|
||||
_tx_undefined_1:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_undefined_1
|
||||
|
||||
.global _tx_undefined_2
|
||||
_tx_undefined_2:
|
||||
flag 1
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
b _tx_undefined_2
|
||||
|
||||
.end
|
||||
@@ -1,29 +0,0 @@
|
||||
|
||||
.file "vectors.s"
|
||||
.section .ivt,text
|
||||
;; This directive forces this section to stay resident even if stripped out by the -zpurgetext linker option
|
||||
.sectflag .ivt,include
|
||||
|
||||
;// handler's name type number name offset in IVT (hex/dec)
|
||||
.long _start ; exception 0 program entry point offset 0x0 0
|
||||
.long _tx_memory_error ; exception 1 memory_error offset 0x4 4
|
||||
.long _tx_instruction_error ; exception 2 instruction_error offset 0x8 8
|
||||
.long _tx_ev_machine_check ; exception 3 EV_MachineCheck offset 0xC 12
|
||||
.long _tx_ev_tblmiss_inst ; exception 4 EV_TLBMissI offset 0x10 16
|
||||
.long _tx_ev_tblmiss_data ; exception 5 EV_TLBMissD offset 0x14 20
|
||||
.long _tx_ev_protection_viol ; exception 6 EV_ProtV offset 0x18 24
|
||||
.long _tx_ev_privilege_viol ; exception 7 EV_PrivilegeV offset 0x1C 28
|
||||
.long _tx_ev_software_int ; exception 8 EV_SWI offset 0x20 32
|
||||
.long _tx_ev_trap ; exception 9 EV_Trap offset 0x24 36
|
||||
.long _tx_ev_extension ; exception 10 EV_Extension offset 0x28 40
|
||||
.long _tx_ev_divide_by_zero ; exception 11 EV_DivZero offset 0x2C 44
|
||||
.long _tx_ev_dc_error ; exception 12 EV_DCError offset 0x30 48
|
||||
.long _tx_ev_maligned ; exception 13 EV_Maligned offset 0x34 52
|
||||
.long _tx_unsued_0 ; exception 14 unused offset 0x38 56
|
||||
.long _tx_unused_1 ; exception 15 unused offset 0x3C 60
|
||||
.long _tx_timer_0 ; IRQ 16 Timer 0 offset 0x40 64
|
||||
.long _tx_timer_1 ; IRQ 17 Timer 1 offset 0x44 68
|
||||
.long _tx_undefined_0 ; IRQ 18 offset 0x48 72
|
||||
.long _tx_undefined_1 ; IRQ 19 offset 0x4C 76
|
||||
.long _tx_undefined_2 ; IRQ 20 offset 0x50 80
|
||||
|
||||
@@ -1,137 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
<cconfiguration id="com.arc.cdt.toolchain.av2em.libDebugConfig.732975342">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arc.cdt.toolchain.av2em.libDebugConfig.732975342" moduleId="org.eclipse.cdt.core.settings" name="Debug">
|
||||
<externalSettings>
|
||||
<externalSetting>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/tx"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/tx/Debug"/>
|
||||
<entry flags="RESOLVED" kind="libraryFile" name="tx" srcPrefixMapping="" srcRootPath=""/>
|
||||
</externalSetting>
|
||||
</externalSettings>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCAssemblerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" errorParsers="com.arc.cdt.toolchain.ARCCompilerErrorParser;com.arc.cdt.toolchain.ARCLinkerErrorParser;com.arc.cdt.toolchain.ARCAssemblerErrorParser;org.eclipse.cdt.core.MakeErrorParser" id="com.arc.cdt.toolchain.av2em.libDebugConfig.732975342" name="Debug" parent="com.arc.cdt.toolchain.av2em.libDebugConfig">
|
||||
<folderInfo id="com.arc.cdt.toolchain.av2em.libDebugConfig.732975342." name="/" resourcePath="">
|
||||
<toolChain id="com.arc.cdt.toolchain.av2em.libDebugToolChain.1845103261" superClass="com.arc.cdt.toolchain.av2em.libDebugToolChain">
|
||||
<targetPlatform id="hcTargetPlatform.380373127" isAbstract="false" name="Generic platform" superClass="hcTargetPlatform"/>
|
||||
<builder buildPath="${workspace_loc:/tx}/Debug" id="makeBuilder.1508352290" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="makeBuilder"/>
|
||||
<tool id="av2em.lib.debug.libCompiler.557728458" superClass="av2em.lib.debug.libCompiler">
|
||||
<option id="arc.compiler.options.target.version.968426022" name="ARC Core Version" superClass="arc.compiler.options.target.version" value="arc.compiler.options.target.arcv2em" valueType="enumerated"/>
|
||||
<option id="arc.compiler.options.arcv2emcore.1960993463" name="ARC EM Core" superClass="arc.compiler.options.arcv2emcore" useByScannerDiscovery="true" value="arc.compiler.options.arcv2emcore.core1" valueType="enumerated"/>
|
||||
<option id="arc.compiler.options.stack_check.1862689574" name="Hardware Stack Checking(-Xstack_check)" superClass="arc.compiler.options.stack_check" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||
<option id="arc.compiler.options.include_dirs.1896471677" isActive="false" isDefinedList="false" name="Include Directories (one per line)" superClass="arc.compiler.options.include_dirs" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/inc_generic}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/inc_port}""/>
|
||||
</option>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.1954753370" name="MetaWare C++ Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeC.1689674215" name="MetaWare C Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeC"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.inputTypeCL.242171198" name="MetaWare OpenCL" superClass="com.arc.cdt.toolchain.arc.inputTypeCL"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.libDebugAsm.1772833895" superClass="com.arc.cdt.toolchain.av2em.libDebugAsm">
|
||||
<option id="arc.compiler.options.target.asm.version.1731127945" name="ARC Core Version" superClass="arc.compiler.options.target.asm.version" value="arc.compiler.options.target.arcv2em" valueType="enumerated"/>
|
||||
<option id="arc.asm.options.stack_check.155109415" name="Hardware Stack Checking(-Xstack_check)" superClass="arc.asm.options.stack_check" value="true" valueType="boolean"/>
|
||||
<option id="com.arc.cdt.toolchain.asm.option.defines.645804646" name="Preprocessor Defines (one per line)" superClass="com.arc.cdt.toolchain.asm.option.defines" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="TX_ENABLE_HW_STACK_CHECKING"/>
|
||||
</option>
|
||||
<inputType id="com.arc.cdt.toolchain.asminput.1568134071" name="Assembler Inputs" superClass="com.arc.cdt.toolchain.asminput"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.arc.Linker.1782192981" superClass="com.arc.cdt.toolchain.arc.Linker">
|
||||
<option id="arc.linker.options.target.version.1043501439" name="Target Runtime Libraries" superClass="arc.linker.options.target.version" value="arc.compiler.options.target.arcv2em" valueType="enumerated"/>
|
||||
<option id="arc.linker.options.stack_check.98320731" name="Hardware Stack Checking(-Xstack_check)" superClass="arc.linker.options.stack_check" value="true" valueType="boolean"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.ArDebug.448807496" superClass="com.arc.cdt.toolchain.av2em.ArDebug"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053" moduleId="org.eclipse.cdt.core.settings" name="Release">
|
||||
<externalSettings>
|
||||
<externalSetting>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/tx"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/tx/Release"/>
|
||||
<entry flags="RESOLVED" kind="libraryFile" name="tx" srcPrefixMapping="" srcRootPath=""/>
|
||||
</externalSetting>
|
||||
</externalSettings>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.arc.cdt.toolchain.ARCAssemblerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" errorParsers="com.arc.cdt.toolchain.ARCCompilerErrorParser;com.arc.cdt.toolchain.ARCLinkerErrorParser;com.arc.cdt.toolchain.ARCAssemblerErrorParser;org.eclipse.cdt.core.MakeErrorParser" id="com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053" name="Release" parent="com.arc.cdt.toolchain.av2em.libReleaseConfig">
|
||||
<folderInfo id="com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053." name="/" resourcePath="">
|
||||
<toolChain id="com.arc.cdt.toolchain.av2em.libReleaseToolChain.637077717" superClass="com.arc.cdt.toolchain.av2em.libReleaseToolChain">
|
||||
<targetPlatform id="hcTargetPlatform.1427038966" isAbstract="false" name="Generic platform" superClass="hcTargetPlatform"/>
|
||||
<builder buildPath="${workspace_loc:/tx}/Release" id="makeBuilder.1122480484" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="makeBuilder"/>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.libCompilerRelease.267590455" superClass="com.arc.cdt.toolchain.av2em.libCompilerRelease">
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.1437940047" name="MetaWare C++ Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeCPP"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.ccac.inputTypeC.385033901" name="MetaWare C Input" superClass="com.arc.cdt.toolchain.arc.ccac.inputTypeC"/>
|
||||
<inputType id="com.arc.cdt.toolchain.arc.inputTypeCL.1070557333" name="MetaWare OpenCL" superClass="com.arc.cdt.toolchain.arc.inputTypeCL"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.libReleaseAsm.1659783437" superClass="com.arc.cdt.toolchain.av2em.libReleaseAsm">
|
||||
<inputType id="com.arc.cdt.toolchain.asminput.612218762" name="Assembler Inputs" superClass="com.arc.cdt.toolchain.asminput"/>
|
||||
</tool>
|
||||
<tool id="com.arc.cdt.toolchain.arc.Linker.1430136995" superClass="com.arc.cdt.toolchain.arc.Linker"/>
|
||||
<tool id="com.arc.cdt.toolchain.av2em.ArRelease.50929117" superClass="com.arc.cdt.toolchain.av2em.ArRelease"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id="tx.com.arc.cdt.toolchain.arc.av2em.libProject.1936758151" name="Static Library" projectType="com.arc.cdt.toolchain.arc.av2em.libProject"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||
<storageModule moduleId="refreshScope" versionNumber="2">
|
||||
<configuration configurationName="Debug">
|
||||
<resource resourceType="PROJECT" workspacePath="/tx"/>
|
||||
</configuration>
|
||||
<configuration configurationName="Release">
|
||||
<resource resourceType="PROJECT" workspacePath="/tx"/>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053;com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053.;com.arc.cdt.toolchain.av2em.libCompilerRelease.267590455;com.arc.cdt.toolchain.arc.inputTypeCL.1070557333">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.libDebugConfig.732975342;com.arc.cdt.toolchain.av2em.libDebugConfig.732975342.;av2em.lib.debug.libCompiler.557728458;com.arc.cdt.toolchain.arc.inputTypeCL.242171198">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.libDebugConfig.732975342;com.arc.cdt.toolchain.av2em.libDebugConfig.732975342.;av2em.lib.debug.libCompiler.557728458;com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.1954753370">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053;com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053.;com.arc.cdt.toolchain.av2em.libCompilerRelease.267590455;com.arc.cdt.toolchain.arc.ccac.inputTypeCPP.1437940047">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.libDebugConfig.732975342;com.arc.cdt.toolchain.av2em.libDebugConfig.732975342.;av2em.lib.debug.libCompiler.557728458;com.arc.cdt.toolchain.arc.ccac.inputTypeC.1689674215">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053;com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053.;com.arc.cdt.toolchain.av2em.libCompilerRelease.267590455;com.arc.cdt.toolchain.arc.ccac.inputTypeC.385033901">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
</storageModule>
|
||||
</cproject>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>tx</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
</natures>
|
||||
<linkedResources>
|
||||
<link>
|
||||
<name>inc_generic</name>
|
||||
<type>2</type>
|
||||
<locationURI>$%7BPARENT-5-PROJECT_LOC%7D/common/inc</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>inc_port</name>
|
||||
<type>2</type>
|
||||
<locationURI>$%7BPARENT-2-PROJECT_LOC%7D/inc</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src_generic</name>
|
||||
<type>2</type>
|
||||
<locationURI>$%7BPARENT-5-PROJECT_LOC%7D/common/src</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src_port</name>
|
||||
<type>2</type>
|
||||
<locationURI>$%7BPARENT-2-PROJECT_LOC%7D/src</locationURI>
|
||||
</link>
|
||||
</linkedResources>
|
||||
</projectDescription>
|
||||
Reference in New Issue
Block a user