mirror of
https://github.com/azure-rtos/threadx
synced 2025-01-16 07:42:57 +08:00
updated to 6.0.1 and added additional processors/toolchains
This commit is contained in:
parent
f8e91d4762
commit
2c35570dc9
@ -26,7 +26,7 @@
|
||||
/* APPLICATION INTERFACE DEFINITION RELEASE */
|
||||
/* */
|
||||
/* tx_api.h PORTABLE C */
|
||||
/* 6.0 */
|
||||
/* 6.0.1 */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* William E. Lamie, Microsoft Corporation */
|
||||
@ -44,6 +44,9 @@
|
||||
/* DATE NAME DESCRIPTION */
|
||||
/* */
|
||||
/* 05-19-2020 William E. Lamie Initial Version 6.0 */
|
||||
/* 06-30-2020 William E. Lamie Modified comment(s), and */
|
||||
/* updated product constants, */
|
||||
/* resulting in version 6.0.1 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
|
||||
@ -73,10 +76,13 @@ extern "C" {
|
||||
/* Define the major/minor version information that can be used by the application
|
||||
and the ThreadX source as well. */
|
||||
|
||||
#define EL_PRODUCT_THREADX
|
||||
#define AZURE_RTOS_THREADX
|
||||
#define THREADX_MAJOR_VERSION 6
|
||||
#define THREADX_MINOR_VERSION 0
|
||||
#define THREADX_PATCH_VERSION 1
|
||||
|
||||
/* Define the following symbol for backward compatibility */
|
||||
#define EL_PRODUCT_THREADX
|
||||
|
||||
/* API input parameters and general constants. */
|
||||
|
||||
|
0
ports/arc_em/metaware/example_build/.metadata/.lock
Normal file
0
ports/arc_em/metaware/example_build/.metadata/.lock
Normal file
937
ports/arc_em/metaware/example_build/.metadata/.log
Normal file
937
ports/arc_em/metaware/example_build/.metadata/.log
Normal file
@ -0,0 +1,937 @@
|
||||
!SESSION 2016-01-19 10:53:52.024 -----------------------------------------------
|
||||
eclipse.buildId=unknown
|
||||
java.version=1.8.0_25
|
||||
java.vendor=Oracle Corporation
|
||||
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
|
||||
Command-line arguments: -os win32 -ws win32 -arch x86
|
||||
|
||||
!ENTRY org.eclipse.cdt.core 1 0 2016-01-19 10:55:02.458
|
||||
!MESSAGE Indexed 'tx' (0 sources, 0 headers) in 0 sec: 0 declarations; 0 references; 0 unresolved inclusions; 0 syntax errors; 0 unresolved names (0%)
|
||||
|
||||
!ENTRY org.eclipse.cdt.core 1 0 2016-01-19 10:58:16.298
|
||||
!MESSAGE Indexed 'sample_threadx' (0 sources, 0 headers) in 0 sec: 0 declarations; 0 references; 0 unresolved inclusions; 0 syntax errors; 0 unresolved names (0%)
|
||||
|
||||
!ENTRY org.eclipse.e4.ui.workbench.swt 4 2 2016-01-19 10:59:20.668
|
||||
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.e4.ui.workbench.swt".
|
||||
!STACK 0
|
||||
org.eclipse.e4.core.di.InjectionException: org.eclipse.swt.SWTException: Widget is disposed
|
||||
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:62)
|
||||
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:888)
|
||||
at org.eclipse.e4.core.internal.di.InjectorImpl.disposed(InjectorImpl.java:390)
|
||||
at org.eclipse.e4.core.internal.di.Requestor.disposed(Requestor.java:143)
|
||||
at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier$ContextInjectionListener.update(ContextObjectSupplier.java:76)
|
||||
at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:107)
|
||||
at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.handleInvalid(TrackableComputationExt.java:70)
|
||||
at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:175)
|
||||
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.clearContext(PartRenderingEngine.java:974)
|
||||
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:954)
|
||||
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$3(PartRenderingEngine.java:862)
|
||||
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$8.run(PartRenderingEngine.java:857)
|
||||
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
|
||||
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:841)
|
||||
at org.eclipse.ui.internal.WorkbenchWindow.hardClose(WorkbenchWindow.java:1937)
|
||||
at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:1560)
|
||||
at org.eclipse.ui.internal.WorkbenchWindow.access$15(WorkbenchWindow.java:1527)
|
||||
at org.eclipse.ui.internal.WorkbenchWindow$10.run(WorkbenchWindow.java:1592)
|
||||
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
|
||||
at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:1589)
|
||||
at org.eclipse.ui.internal.Workbench$14.run(Workbench.java:1155)
|
||||
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
|
||||
at org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:1137)
|
||||
at org.eclipse.ui.internal.Workbench.access$21(Workbench.java:1079)
|
||||
at org.eclipse.ui.internal.Workbench$19.run(Workbench.java:1410)
|
||||
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
|
||||
at org.eclipse.ui.internal.Workbench.close(Workbench.java:1407)
|
||||
at org.eclipse.ui.internal.Workbench.restart(Workbench.java:2677)
|
||||
at org.eclipse.ui.internal.ide.actions.OpenWorkspaceAction.restart(OpenWorkspaceAction.java:282)
|
||||
at org.eclipse.ui.internal.ide.actions.OpenWorkspaceAction.access$0(OpenWorkspaceAction.java:274)
|
||||
at org.eclipse.ui.internal.ide.actions.OpenWorkspaceAction$WorkspaceMRUAction.run(OpenWorkspaceAction.java:103)
|
||||
at org.eclipse.jface.action.Action.runWithEvent(Action.java:519)
|
||||
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:595)
|
||||
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:511)
|
||||
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:420)
|
||||
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
|
||||
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
|
||||
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
|
||||
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1085)
|
||||
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1070)
|
||||
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:782)
|
||||
at org.eclipse.jface.action.ActionContributionItem$9.handleEvent(ActionContributionItem.java:1293)
|
||||
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
|
||||
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
|
||||
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
|
||||
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)
|
||||
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
|
||||
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
|
||||
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
|
||||
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
|
||||
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
|
||||
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
|
||||
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
|
||||
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
|
||||
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
|
||||
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
|
||||
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
|
||||
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
|
||||
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
|
||||
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
|
||||
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:483)
|
||||
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
|
||||
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
|
||||
at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
|
||||
Caused by: org.eclipse.swt.SWTException: Widget is disposed
|
||||
at org.eclipse.swt.SWT.error(SWT.java:4441)
|
||||
at org.eclipse.swt.SWT.error(SWT.java:4356)
|
||||
at org.eclipse.swt.SWT.error(SWT.java:4327)
|
||||
at org.eclipse.swt.widgets.Widget.error(Widget.java:476)
|
||||
at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:348)
|
||||
at org.eclipse.swt.widgets.Shell.getSize(Shell.java:1092)
|
||||
at org.eclipse.ui.internal.quickaccess.SearchField.storeDialog(SearchField.java:580)
|
||||
at org.eclipse.ui.internal.quickaccess.SearchField.dispose(SearchField.java:557)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:483)
|
||||
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
|
||||
... 67 more
|
||||
|
||||
!ENTRY org.eclipse.e4.ui.workbench 4 0 2016-01-19 10:59:20.678
|
||||
!MESSAGE Exception occurred while unrendering: org.eclipse.e4.ui.model.application.ui.basic.impl.TrimmedWindowImpl@4d7f76 (elementId: IDEWindow, tags: [topLevel], contributorURI: platform:/plugin/org.eclipse.ui.workbench) (widget: null, renderer: null, toBeRendered: true, onTop: false, visible: true, containerData: null, accessibilityPhrase: null) (label: %trimmedwindow.label.eclipseSDK, iconURI: null, tooltip: null, context: null, variables: [], x: 250, y: 250, width: 1024, height: 768)
|
||||
!STACK 0
|
||||
org.eclipse.e4.core.di.InjectionException: org.eclipse.swt.SWTException: Widget is disposed
|
||||
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:62)
|
||||
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:888)
|
||||
at org.eclipse.e4.core.internal.di.InjectorImpl.disposed(InjectorImpl.java:390)
|
||||
at org.eclipse.e4.core.internal.di.Requestor.disposed(Requestor.java:143)
|
||||
at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier$ContextInjectionListener.update(ContextObjectSupplier.java:76)
|
||||
at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:107)
|
||||
at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.handleInvalid(TrackableComputationExt.java:70)
|
||||
at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:175)
|
||||
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.clearContext(PartRenderingEngine.java:974)
|
||||
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:954)
|
||||
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$3(PartRenderingEngine.java:862)
|
||||
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$8.run(PartRenderingEngine.java:857)
|
||||
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
|
||||
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:841)
|
||||
at org.eclipse.ui.internal.WorkbenchWindow.hardClose(WorkbenchWindow.java:1937)
|
||||
at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:1560)
|
||||
at org.eclipse.ui.internal.WorkbenchWindow.access$15(WorkbenchWindow.java:1527)
|
||||
at org.eclipse.ui.internal.WorkbenchWindow$10.run(WorkbenchWindow.java:1592)
|
||||
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
|
||||
at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:1589)
|
||||
at org.eclipse.ui.internal.Workbench$14.run(Workbench.java:1155)
|
||||
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
|
||||
at org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:1137)
|
||||
at org.eclipse.ui.internal.Workbench.access$21(Workbench.java:1079)
|
||||
at org.eclipse.ui.internal.Workbench$19.run(Workbench.java:1410)
|
||||
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
|
||||
at org.eclipse.ui.internal.Workbench.close(Workbench.java:1407)
|
||||
at org.eclipse.ui.internal.Workbench.restart(Workbench.java:2677)
|
||||
at org.eclipse.ui.internal.ide.actions.OpenWorkspaceAction.restart(OpenWorkspaceAction.java:282)
|
||||
at org.eclipse.ui.internal.ide.actions.OpenWorkspaceAction.access$0(OpenWorkspaceAction.java:274)
|
||||
at org.eclipse.ui.internal.ide.actions.OpenWorkspaceAction$WorkspaceMRUAction.run(OpenWorkspaceAction.java:103)
|
||||
at org.eclipse.jface.action.Action.runWithEvent(Action.java:519)
|
||||
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:595)
|
||||
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:511)
|
||||
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:420)
|
||||
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
|
||||
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
|
||||
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
|
||||
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1085)
|
||||
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1070)
|
||||
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:782)
|
||||
at org.eclipse.jface.action.ActionContributionItem$9.handleEvent(ActionContributionItem.java:1293)
|
||||
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
|
||||
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
|
||||
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
|
||||
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)
|
||||
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
|
||||
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
|
||||
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
|
||||
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
|
||||
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
|
||||
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
|
||||
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
|
||||
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
|
||||
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
|
||||
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
|
||||
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
|
||||
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
|
||||
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
|
||||
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
|
||||
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:483)
|
||||
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
|
||||
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
|
||||
at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
|
||||
Caused by: org.eclipse.swt.SWTException: Widget is disposed
|
||||
at org.eclipse.swt.SWT.error(SWT.java:4441)
|
||||
at org.eclipse.swt.SWT.error(SWT.java:4356)
|
||||
at org.eclipse.swt.SWT.error(SWT.java:4327)
|
||||
at org.eclipse.swt.widgets.Widget.error(Widget.java:476)
|
||||
at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:348)
|
||||
at org.eclipse.swt.widgets.Shell.getSize(Shell.java:1092)
|
||||
at org.eclipse.ui.internal.quickaccess.SearchField.storeDialog(SearchField.java:580)
|
||||
at org.eclipse.ui.internal.quickaccess.SearchField.dispose(SearchField.java:557)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:483)
|
||||
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
|
||||
... 67 more
|
||||
!SESSION 2020-06-17 14:55:11.959 -----------------------------------------------
|
||||
eclipse.buildId=unknown
|
||||
java.fullversion=1.8.0_212-b03
|
||||
JRE 1.8.0 Windows 8 amd64-64-Bit Compressed References 20190417_339 (JIT enabled, AOT enabled)
|
||||
OpenJ9 - bad1d4d06
|
||||
OMR - 4a4278e6
|
||||
JCL - 5590c4f818 based on jdk8u212-b03
|
||||
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
|
||||
Command-line arguments: -os win32 -ws win32 -arch x86_64
|
||||
|
||||
!ENTRY org.eclipse.e4.ui.workbench 2 0 2020-06-17 14:55:28.047
|
||||
!MESSAGE Could not run processor
|
||||
!STACK 0
|
||||
org.eclipse.e4.core.di.InjectionException: java.lang.NullPointerException
|
||||
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:65)
|
||||
at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:282)
|
||||
at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:259)
|
||||
at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:107)
|
||||
at org.eclipse.e4.ui.internal.workbench.ModelAssembler.runProcessor(ModelAssembler.java:335)
|
||||
at org.eclipse.e4.ui.internal.workbench.ModelAssembler.runProcessors(ModelAssembler.java:297)
|
||||
at org.eclipse.e4.ui.internal.workbench.ModelAssembler.processModel(ModelAssembler.java:98)
|
||||
at org.eclipse.e4.ui.internal.workbench.ResourceHandler.loadMostRecentModel(ResourceHandler.java:197)
|
||||
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.loadApplicationModel(E4Application.java:377)
|
||||
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:252)
|
||||
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:632)
|
||||
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
|
||||
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:610)
|
||||
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
|
||||
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:138)
|
||||
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
|
||||
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
|
||||
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
|
||||
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
|
||||
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
|
||||
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
|
||||
at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
|
||||
Caused by: java.lang.NullPointerException
|
||||
at org.eclipse.cdt.launchbar.ui.internal.LaunchBarInjector.injectLaunchBar(LaunchBarInjector.java:109)
|
||||
at org.eclipse.cdt.launchbar.ui.internal.LaunchBarInjector.injectIntoAll(LaunchBarInjector.java:84)
|
||||
at org.eclipse.cdt.launchbar.ui.internal.LaunchBarInjector.execute(LaunchBarInjector.java:46)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
|
||||
... 26 more
|
||||
|
||||
!ENTRY org.eclipse.osgi 4 0 2020-06-17 14:55:34.531
|
||||
!MESSAGE An error occurred while automatically activating bundle com.synopsys.cdt.cnn.tools.ui (25).
|
||||
!STACK 0
|
||||
org.osgi.framework.BundleException: Exception in com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start() of bundle com.synopsys.cdt.cnn.tools.ui.
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:795)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:724)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:932)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309)
|
||||
at org.eclipse.osgi.container.Module.doStart(Module.java:581)
|
||||
at org.eclipse.osgi.container.Module.start(Module.java:449)
|
||||
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:470)
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
|
||||
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:529)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:325)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:345)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:423)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
|
||||
at java.lang.ClassLoader.loadClass(ClassLoader.java:874)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:564)
|
||||
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
|
||||
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:291)
|
||||
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:52)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:286)
|
||||
at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:53)
|
||||
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
|
||||
at org.eclipse.ui.internal.Workbench$55.run(Workbench.java:2835)
|
||||
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
|
||||
Caused by: java.lang.NullPointerException
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:228)
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:186)
|
||||
at com.synopsys.cdt.cnn.tools.ui.Netron.registerExt(Netron.java:12)
|
||||
at com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start(CNNToolsUIPlugin.java:52)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:774)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
|
||||
at java.security.AccessController.doPrivileged(AccessController.java:703)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:767)
|
||||
... 27 more
|
||||
Root exception:
|
||||
java.lang.NullPointerException
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:228)
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:186)
|
||||
at com.synopsys.cdt.cnn.tools.ui.Netron.registerExt(Netron.java:12)
|
||||
at com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start(CNNToolsUIPlugin.java:52)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:774)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
|
||||
at java.security.AccessController.doPrivileged(AccessController.java:703)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:767)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:724)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:932)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309)
|
||||
at org.eclipse.osgi.container.Module.doStart(Module.java:581)
|
||||
at org.eclipse.osgi.container.Module.start(Module.java:449)
|
||||
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:470)
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
|
||||
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:529)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:325)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:345)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:423)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
|
||||
at java.lang.ClassLoader.loadClass(ClassLoader.java:874)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:564)
|
||||
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
|
||||
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:291)
|
||||
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:52)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:286)
|
||||
at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:53)
|
||||
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
|
||||
at org.eclipse.ui.internal.Workbench$55.run(Workbench.java:2835)
|
||||
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
|
||||
|
||||
!ENTRY org.eclipse.ui.workbench 4 2 2020-06-17 14:55:34.556
|
||||
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.ui.workbench".
|
||||
!STACK 1
|
||||
org.eclipse.core.runtime.CoreException: Plug-in com.synopsys.cdt.cnn.tools.ui was unable to load class com.synopsys.cdt.cnn.tools.ui.LoadedAtStartup.
|
||||
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.throwException(RegistryStrategyOSGI.java:194)
|
||||
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:176)
|
||||
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:291)
|
||||
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:52)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:286)
|
||||
at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:53)
|
||||
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
|
||||
at org.eclipse.ui.internal.Workbench$55.run(Workbench.java:2835)
|
||||
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
|
||||
Caused by: java.lang.ClassNotFoundException: An error occurred while automatically activating bundle com.synopsys.cdt.cnn.tools.ui (25).
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:116)
|
||||
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:529)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:325)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:345)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:423)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
|
||||
at java.lang.ClassLoader.loadClass(ClassLoader.java:874)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:564)
|
||||
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
|
||||
... 10 more
|
||||
Caused by: org.osgi.framework.BundleException: Exception in com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start() of bundle com.synopsys.cdt.cnn.tools.ui.
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:795)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:724)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:932)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309)
|
||||
at org.eclipse.osgi.container.Module.doStart(Module.java:581)
|
||||
at org.eclipse.osgi.container.Module.start(Module.java:449)
|
||||
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:470)
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
|
||||
... 20 more
|
||||
Caused by: java.lang.NullPointerException
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:228)
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:186)
|
||||
at com.synopsys.cdt.cnn.tools.ui.Netron.registerExt(Netron.java:12)
|
||||
at com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start(CNNToolsUIPlugin.java:52)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:774)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
|
||||
at java.security.AccessController.doPrivileged(AccessController.java:703)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:767)
|
||||
... 27 more
|
||||
!SUBENTRY 1 org.eclipse.equinox.registry 4 1 2020-06-17 14:55:34.558
|
||||
!MESSAGE Plug-in com.synopsys.cdt.cnn.tools.ui was unable to load class com.synopsys.cdt.cnn.tools.ui.LoadedAtStartup.
|
||||
!STACK 0
|
||||
java.lang.ClassNotFoundException: An error occurred while automatically activating bundle com.synopsys.cdt.cnn.tools.ui (25).
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:116)
|
||||
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:529)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:325)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:345)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:423)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
|
||||
at java.lang.ClassLoader.loadClass(ClassLoader.java:874)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:564)
|
||||
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
|
||||
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:291)
|
||||
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:52)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:286)
|
||||
at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:53)
|
||||
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
|
||||
at org.eclipse.ui.internal.Workbench$55.run(Workbench.java:2835)
|
||||
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
|
||||
Caused by: org.osgi.framework.BundleException: Exception in com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start() of bundle com.synopsys.cdt.cnn.tools.ui.
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:795)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:724)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:932)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309)
|
||||
at org.eclipse.osgi.container.Module.doStart(Module.java:581)
|
||||
at org.eclipse.osgi.container.Module.start(Module.java:449)
|
||||
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:470)
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
|
||||
... 20 more
|
||||
Caused by: java.lang.NullPointerException
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:228)
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:186)
|
||||
at com.synopsys.cdt.cnn.tools.ui.Netron.registerExt(Netron.java:12)
|
||||
at com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start(CNNToolsUIPlugin.java:52)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:774)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
|
||||
at java.security.AccessController.doPrivileged(AccessController.java:703)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:767)
|
||||
... 27 more
|
||||
!SUBENTRY 1 org.eclipse.equinox.registry 4 1 2020-06-17 14:55:34.558
|
||||
!MESSAGE Plug-in com.synopsys.cdt.cnn.tools.ui was unable to load class com.synopsys.cdt.cnn.tools.ui.LoadedAtStartup.
|
||||
!STACK 0
|
||||
java.lang.ClassNotFoundException: An error occurred while automatically activating bundle com.synopsys.cdt.cnn.tools.ui (25).
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:116)
|
||||
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:529)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:325)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:345)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:423)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
|
||||
at java.lang.ClassLoader.loadClass(ClassLoader.java:874)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:564)
|
||||
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
|
||||
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:291)
|
||||
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:52)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:286)
|
||||
at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:53)
|
||||
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
|
||||
at org.eclipse.ui.internal.Workbench$55.run(Workbench.java:2835)
|
||||
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
|
||||
Caused by: org.osgi.framework.BundleException: Exception in com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start() of bundle com.synopsys.cdt.cnn.tools.ui.
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:795)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:724)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:932)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309)
|
||||
at org.eclipse.osgi.container.Module.doStart(Module.java:581)
|
||||
at org.eclipse.osgi.container.Module.start(Module.java:449)
|
||||
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:470)
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
|
||||
... 20 more
|
||||
Caused by: java.lang.NullPointerException
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:228)
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:186)
|
||||
at com.synopsys.cdt.cnn.tools.ui.Netron.registerExt(Netron.java:12)
|
||||
at com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start(CNNToolsUIPlugin.java:52)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:774)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
|
||||
at java.security.AccessController.doPrivileged(AccessController.java:703)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:767)
|
||||
... 27 more
|
||||
|
||||
!ENTRY org.eclipse.ui 4 0 2020-06-17 14:55:34.575
|
||||
!MESSAGE Unable to execute early startup code for the org.eclipse.ui.IStartup extension contributed by the 'com.synopsys.cdt.cnn.tools.ui' plug-in.
|
||||
!STACK 1
|
||||
org.eclipse.core.runtime.CoreException: Plug-in com.synopsys.cdt.cnn.tools.ui was unable to load class com.synopsys.cdt.cnn.tools.ui.LoadedAtStartup.
|
||||
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.throwException(RegistryStrategyOSGI.java:194)
|
||||
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:176)
|
||||
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:291)
|
||||
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:52)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:286)
|
||||
at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:53)
|
||||
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
|
||||
at org.eclipse.ui.internal.Workbench$55.run(Workbench.java:2835)
|
||||
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
|
||||
Caused by: java.lang.ClassNotFoundException: An error occurred while automatically activating bundle com.synopsys.cdt.cnn.tools.ui (25).
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:116)
|
||||
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:529)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:325)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:345)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:423)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
|
||||
at java.lang.ClassLoader.loadClass(ClassLoader.java:874)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:564)
|
||||
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
|
||||
... 10 more
|
||||
Caused by: org.osgi.framework.BundleException: Exception in com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start() of bundle com.synopsys.cdt.cnn.tools.ui.
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:795)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:724)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:932)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309)
|
||||
at org.eclipse.osgi.container.Module.doStart(Module.java:581)
|
||||
at org.eclipse.osgi.container.Module.start(Module.java:449)
|
||||
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:470)
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
|
||||
... 20 more
|
||||
Caused by: java.lang.NullPointerException
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:228)
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:186)
|
||||
at com.synopsys.cdt.cnn.tools.ui.Netron.registerExt(Netron.java:12)
|
||||
at com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start(CNNToolsUIPlugin.java:52)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:774)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
|
||||
at java.security.AccessController.doPrivileged(AccessController.java:703)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:767)
|
||||
... 27 more
|
||||
!SUBENTRY 1 org.eclipse.equinox.registry 4 1 2020-06-17 14:55:34.576
|
||||
!MESSAGE Plug-in com.synopsys.cdt.cnn.tools.ui was unable to load class com.synopsys.cdt.cnn.tools.ui.LoadedAtStartup.
|
||||
!STACK 0
|
||||
java.lang.ClassNotFoundException: An error occurred while automatically activating bundle com.synopsys.cdt.cnn.tools.ui (25).
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:116)
|
||||
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:529)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:325)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:345)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:423)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
|
||||
at java.lang.ClassLoader.loadClass(ClassLoader.java:874)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:564)
|
||||
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
|
||||
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:291)
|
||||
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:52)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:286)
|
||||
at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:53)
|
||||
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
|
||||
at org.eclipse.ui.internal.Workbench$55.run(Workbench.java:2835)
|
||||
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
|
||||
Caused by: org.osgi.framework.BundleException: Exception in com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start() of bundle com.synopsys.cdt.cnn.tools.ui.
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:795)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:724)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:932)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309)
|
||||
at org.eclipse.osgi.container.Module.doStart(Module.java:581)
|
||||
at org.eclipse.osgi.container.Module.start(Module.java:449)
|
||||
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:470)
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
|
||||
... 20 more
|
||||
Caused by: java.lang.NullPointerException
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:228)
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:186)
|
||||
at com.synopsys.cdt.cnn.tools.ui.Netron.registerExt(Netron.java:12)
|
||||
at com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start(CNNToolsUIPlugin.java:52)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:774)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
|
||||
at java.security.AccessController.doPrivileged(AccessController.java:703)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:767)
|
||||
... 27 more
|
||||
|
||||
!ENTRY org.eclipse.e4.ui.workbench 2 0 2020-06-17 14:55:34.888
|
||||
!MESSAGE Removing part descriptor with the 'org.eclipse.cdt.debug.ui.DisassemblyView' id and the 'Disassembly' description. Points to the invalid 'bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView' class.
|
||||
!SESSION 2020-06-17 14:57:04.375 -----------------------------------------------
|
||||
eclipse.buildId=unknown
|
||||
java.fullversion=1.8.0_212-b03
|
||||
JRE 1.8.0 Windows 8 amd64-64-Bit Compressed References 20190417_339 (JIT enabled, AOT enabled)
|
||||
OpenJ9 - bad1d4d06
|
||||
OMR - 4a4278e6
|
||||
JCL - 5590c4f818 based on jdk8u212-b03
|
||||
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
|
||||
Command-line arguments: -os win32 -ws win32 -arch x86_64
|
||||
|
||||
!ENTRY org.eclipse.core.resources 4 567 2020-06-17 14:57:08.841
|
||||
!MESSAGE Workspace restored, but some problems occurred.
|
||||
!SUBENTRY 1 org.eclipse.core.resources 4 567 2020-06-17 14:57:08.841
|
||||
!MESSAGE Could not read metadata for 'demo_threadx'.
|
||||
!STACK 1
|
||||
org.eclipse.core.internal.resources.ResourceException: The project description file (.project) for 'demo_threadx' is missing. This file contains important information about the project. The project will not function properly until this file is restored.
|
||||
at org.eclipse.core.internal.localstore.FileSystemResourceManager.read(FileSystemResourceManager.java:907)
|
||||
at org.eclipse.core.internal.resources.SaveManager.restoreMetaInfo(SaveManager.java:904)
|
||||
at org.eclipse.core.internal.resources.SaveManager.restoreMetaInfo(SaveManager.java:884)
|
||||
at org.eclipse.core.internal.resources.SaveManager.restore(SaveManager.java:735)
|
||||
at org.eclipse.core.internal.resources.SaveManager.startup(SaveManager.java:1587)
|
||||
at org.eclipse.core.internal.resources.Workspace.startup(Workspace.java:2399)
|
||||
at org.eclipse.core.internal.resources.Workspace.open(Workspace.java:2156)
|
||||
at org.eclipse.core.resources.ResourcesPlugin.start(ResourcesPlugin.java:464)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:774)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
|
||||
at java.security.AccessController.doPrivileged(AccessController.java:703)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:767)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:724)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:932)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309)
|
||||
at org.eclipse.osgi.container.Module.doStart(Module.java:581)
|
||||
at org.eclipse.osgi.container.Module.start(Module.java:449)
|
||||
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:470)
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
|
||||
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:529)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:325)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:345)
|
||||
at org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:36)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:419)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
|
||||
at java.lang.ClassLoader.loadClass(ClassLoader.java:874)
|
||||
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:139)
|
||||
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
|
||||
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
|
||||
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
|
||||
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
|
||||
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
|
||||
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
|
||||
at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
|
||||
!SUBENTRY 2 org.eclipse.core.resources 4 567 2020-06-17 14:57:08.842
|
||||
!MESSAGE The project description file (.project) for 'demo_threadx' is missing. This file contains important information about the project. The project will not function properly until this file is restored.
|
||||
|
||||
!ENTRY org.eclipse.osgi 4 0 2020-06-17 14:57:12.158
|
||||
!MESSAGE An error occurred while automatically activating bundle com.synopsys.cdt.cnn.tools.ui (25).
|
||||
!STACK 0
|
||||
org.osgi.framework.BundleException: Exception in com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start() of bundle com.synopsys.cdt.cnn.tools.ui.
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:795)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:724)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:932)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309)
|
||||
at org.eclipse.osgi.container.Module.doStart(Module.java:581)
|
||||
at org.eclipse.osgi.container.Module.start(Module.java:449)
|
||||
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:470)
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
|
||||
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:529)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:325)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:345)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:423)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
|
||||
at java.lang.ClassLoader.loadClass(ClassLoader.java:874)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:564)
|
||||
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
|
||||
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:291)
|
||||
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:52)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:286)
|
||||
at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:53)
|
||||
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
|
||||
at org.eclipse.ui.internal.Workbench$55.run(Workbench.java:2835)
|
||||
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
|
||||
Caused by: java.lang.NullPointerException
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:228)
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:186)
|
||||
at com.synopsys.cdt.cnn.tools.ui.Netron.registerExt(Netron.java:12)
|
||||
at com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start(CNNToolsUIPlugin.java:52)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:774)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
|
||||
at java.security.AccessController.doPrivileged(AccessController.java:703)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:767)
|
||||
... 27 more
|
||||
Root exception:
|
||||
java.lang.NullPointerException
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:228)
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:186)
|
||||
at com.synopsys.cdt.cnn.tools.ui.Netron.registerExt(Netron.java:12)
|
||||
at com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start(CNNToolsUIPlugin.java:52)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:774)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
|
||||
at java.security.AccessController.doPrivileged(AccessController.java:703)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:767)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:724)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:932)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309)
|
||||
at org.eclipse.osgi.container.Module.doStart(Module.java:581)
|
||||
at org.eclipse.osgi.container.Module.start(Module.java:449)
|
||||
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:470)
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
|
||||
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:529)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:325)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:345)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:423)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
|
||||
at java.lang.ClassLoader.loadClass(ClassLoader.java:874)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:564)
|
||||
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
|
||||
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:291)
|
||||
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:52)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:286)
|
||||
at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:53)
|
||||
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
|
||||
at org.eclipse.ui.internal.Workbench$55.run(Workbench.java:2835)
|
||||
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
|
||||
|
||||
!ENTRY org.eclipse.ui.workbench 4 2 2020-06-17 14:57:12.190
|
||||
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.ui.workbench".
|
||||
!STACK 1
|
||||
org.eclipse.core.runtime.CoreException: Plug-in com.synopsys.cdt.cnn.tools.ui was unable to load class com.synopsys.cdt.cnn.tools.ui.LoadedAtStartup.
|
||||
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.throwException(RegistryStrategyOSGI.java:194)
|
||||
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:176)
|
||||
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:291)
|
||||
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:52)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:286)
|
||||
at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:53)
|
||||
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
|
||||
at org.eclipse.ui.internal.Workbench$55.run(Workbench.java:2835)
|
||||
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
|
||||
Caused by: java.lang.ClassNotFoundException: An error occurred while automatically activating bundle com.synopsys.cdt.cnn.tools.ui (25).
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:116)
|
||||
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:529)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:325)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:345)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:423)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
|
||||
at java.lang.ClassLoader.loadClass(ClassLoader.java:874)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:564)
|
||||
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
|
||||
... 10 more
|
||||
Caused by: org.osgi.framework.BundleException: Exception in com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start() of bundle com.synopsys.cdt.cnn.tools.ui.
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:795)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:724)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:932)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309)
|
||||
at org.eclipse.osgi.container.Module.doStart(Module.java:581)
|
||||
at org.eclipse.osgi.container.Module.start(Module.java:449)
|
||||
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:470)
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
|
||||
... 20 more
|
||||
Caused by: java.lang.NullPointerException
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:228)
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:186)
|
||||
at com.synopsys.cdt.cnn.tools.ui.Netron.registerExt(Netron.java:12)
|
||||
at com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start(CNNToolsUIPlugin.java:52)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:774)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
|
||||
at java.security.AccessController.doPrivileged(AccessController.java:703)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:767)
|
||||
... 27 more
|
||||
!SUBENTRY 1 org.eclipse.equinox.registry 4 1 2020-06-17 14:57:12.191
|
||||
!MESSAGE Plug-in com.synopsys.cdt.cnn.tools.ui was unable to load class com.synopsys.cdt.cnn.tools.ui.LoadedAtStartup.
|
||||
!STACK 0
|
||||
java.lang.ClassNotFoundException: An error occurred while automatically activating bundle com.synopsys.cdt.cnn.tools.ui (25).
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:116)
|
||||
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:529)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:325)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:345)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:423)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
|
||||
at java.lang.ClassLoader.loadClass(ClassLoader.java:874)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:564)
|
||||
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
|
||||
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:291)
|
||||
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:52)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:286)
|
||||
at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:53)
|
||||
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
|
||||
at org.eclipse.ui.internal.Workbench$55.run(Workbench.java:2835)
|
||||
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
|
||||
Caused by: org.osgi.framework.BundleException: Exception in com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start() of bundle com.synopsys.cdt.cnn.tools.ui.
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:795)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:724)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:932)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309)
|
||||
at org.eclipse.osgi.container.Module.doStart(Module.java:581)
|
||||
at org.eclipse.osgi.container.Module.start(Module.java:449)
|
||||
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:470)
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
|
||||
... 20 more
|
||||
Caused by: java.lang.NullPointerException
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:228)
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:186)
|
||||
at com.synopsys.cdt.cnn.tools.ui.Netron.registerExt(Netron.java:12)
|
||||
at com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start(CNNToolsUIPlugin.java:52)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:774)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
|
||||
at java.security.AccessController.doPrivileged(AccessController.java:703)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:767)
|
||||
... 27 more
|
||||
!SUBENTRY 1 org.eclipse.equinox.registry 4 1 2020-06-17 14:57:12.191
|
||||
!MESSAGE Plug-in com.synopsys.cdt.cnn.tools.ui was unable to load class com.synopsys.cdt.cnn.tools.ui.LoadedAtStartup.
|
||||
!STACK 0
|
||||
java.lang.ClassNotFoundException: An error occurred while automatically activating bundle com.synopsys.cdt.cnn.tools.ui (25).
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:116)
|
||||
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:529)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:325)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:345)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:423)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
|
||||
at java.lang.ClassLoader.loadClass(ClassLoader.java:874)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:564)
|
||||
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
|
||||
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:291)
|
||||
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:52)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:286)
|
||||
at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:53)
|
||||
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
|
||||
at org.eclipse.ui.internal.Workbench$55.run(Workbench.java:2835)
|
||||
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
|
||||
Caused by: org.osgi.framework.BundleException: Exception in com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start() of bundle com.synopsys.cdt.cnn.tools.ui.
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:795)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:724)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:932)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309)
|
||||
at org.eclipse.osgi.container.Module.doStart(Module.java:581)
|
||||
at org.eclipse.osgi.container.Module.start(Module.java:449)
|
||||
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:470)
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
|
||||
... 20 more
|
||||
Caused by: java.lang.NullPointerException
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:228)
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:186)
|
||||
at com.synopsys.cdt.cnn.tools.ui.Netron.registerExt(Netron.java:12)
|
||||
at com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start(CNNToolsUIPlugin.java:52)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:774)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
|
||||
at java.security.AccessController.doPrivileged(AccessController.java:703)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:767)
|
||||
... 27 more
|
||||
|
||||
!ENTRY org.eclipse.ui 4 0 2020-06-17 14:57:12.213
|
||||
!MESSAGE Unable to execute early startup code for the org.eclipse.ui.IStartup extension contributed by the 'com.synopsys.cdt.cnn.tools.ui' plug-in.
|
||||
!STACK 1
|
||||
org.eclipse.core.runtime.CoreException: Plug-in com.synopsys.cdt.cnn.tools.ui was unable to load class com.synopsys.cdt.cnn.tools.ui.LoadedAtStartup.
|
||||
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.throwException(RegistryStrategyOSGI.java:194)
|
||||
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:176)
|
||||
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:291)
|
||||
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:52)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:286)
|
||||
at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:53)
|
||||
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
|
||||
at org.eclipse.ui.internal.Workbench$55.run(Workbench.java:2835)
|
||||
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
|
||||
Caused by: java.lang.ClassNotFoundException: An error occurred while automatically activating bundle com.synopsys.cdt.cnn.tools.ui (25).
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:116)
|
||||
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:529)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:325)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:345)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:423)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
|
||||
at java.lang.ClassLoader.loadClass(ClassLoader.java:874)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:564)
|
||||
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
|
||||
... 10 more
|
||||
Caused by: org.osgi.framework.BundleException: Exception in com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start() of bundle com.synopsys.cdt.cnn.tools.ui.
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:795)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:724)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:932)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309)
|
||||
at org.eclipse.osgi.container.Module.doStart(Module.java:581)
|
||||
at org.eclipse.osgi.container.Module.start(Module.java:449)
|
||||
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:470)
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
|
||||
... 20 more
|
||||
Caused by: java.lang.NullPointerException
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:228)
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:186)
|
||||
at com.synopsys.cdt.cnn.tools.ui.Netron.registerExt(Netron.java:12)
|
||||
at com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start(CNNToolsUIPlugin.java:52)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:774)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
|
||||
at java.security.AccessController.doPrivileged(AccessController.java:703)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:767)
|
||||
... 27 more
|
||||
!SUBENTRY 1 org.eclipse.equinox.registry 4 1 2020-06-17 14:57:12.214
|
||||
!MESSAGE Plug-in com.synopsys.cdt.cnn.tools.ui was unable to load class com.synopsys.cdt.cnn.tools.ui.LoadedAtStartup.
|
||||
!STACK 0
|
||||
java.lang.ClassNotFoundException: An error occurred while automatically activating bundle com.synopsys.cdt.cnn.tools.ui (25).
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:116)
|
||||
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:529)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:325)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:345)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:423)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
|
||||
at java.lang.ClassLoader.loadClass(ClassLoader.java:874)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:564)
|
||||
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
|
||||
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
|
||||
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:291)
|
||||
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:52)
|
||||
at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:286)
|
||||
at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:53)
|
||||
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
|
||||
at org.eclipse.ui.internal.Workbench$55.run(Workbench.java:2835)
|
||||
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
|
||||
Caused by: org.osgi.framework.BundleException: Exception in com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start() of bundle com.synopsys.cdt.cnn.tools.ui.
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:795)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:724)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:932)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309)
|
||||
at org.eclipse.osgi.container.Module.doStart(Module.java:581)
|
||||
at org.eclipse.osgi.container.Module.start(Module.java:449)
|
||||
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:470)
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
|
||||
... 20 more
|
||||
Caused by: java.lang.NullPointerException
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:228)
|
||||
at org.eclipse.core.runtime.Path.<init>(Path.java:186)
|
||||
at com.synopsys.cdt.cnn.tools.ui.Netron.registerExt(Netron.java:12)
|
||||
at com.synopsys.cdt.cnn.tools.ui.CNNToolsUIPlugin.start(CNNToolsUIPlugin.java:52)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:774)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
|
||||
at java.security.AccessController.doPrivileged(AccessController.java:703)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:767)
|
||||
... 27 more
|
||||
|
||||
!ENTRY org.eclipse.e4.ui.workbench 2 0 2020-06-17 14:57:12.604
|
||||
!MESSAGE Removing part descriptor with the 'org.eclipse.cdt.debug.ui.DisassemblyView' id and the 'Disassembly' description. Points to the invalid 'bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView' class.
|
||||
|
||||
!ENTRY org.eclipse.cdt.core 1 0 2020-06-17 14:57:35.283
|
||||
!MESSAGE Indexed 'sample_threadx' (1 sources, 0 headers) in 0.24 sec: 60 declarations; 165 references; 1 unresolved inclusions; 0 syntax errors; 105 unresolved names (32%)
|
@ -0,0 +1,5 @@
|
||||
*** SESSION Jan 19, 2016 10:54:21.49 -------------------------------------------
|
||||
*** SESSION Jan 19, 2016 11:01:03.18 -------------------------------------------
|
||||
*** SESSION Feb 12, 2016 17:04:55.37 -------------------------------------------
|
||||
*** SESSION Jun 17, 2020 14:55:32.91 -------------------------------------------
|
||||
*** SESSION Jun 17, 2020 14:57:11.20 -------------------------------------------
|
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><SharedRoot><SharedProperty id="" value=""/></SharedRoot>
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -0,0 +1 @@
|
||||
|
@ -0,0 +1 @@
|
||||
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="org.eclipse.cdt.ui.text.hover.CMacroExpansionExploration">
|
||||
</section>
|
||||
<section name="completion_proposal_size">
|
||||
</section>
|
||||
</section>
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@
|
||||
|
Binary file not shown.
@ -0,0 +1 @@
|
||||
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
indexer/preferenceScope=0
|
@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
indexer/preferenceScope=0
|
@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.cdt.debug.core.cDebug.default_source_containers=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<sourceLookupDirector>\r\n<sourceContainers duplicates\="false">\r\n<container memento\="AbsolutePath" typeId\="org.eclipse.cdt.debug.core.containerType.absolutePath"/>\r\n<container memento\="programRelativePath" typeId\="org.eclipse.cdt.debug.core.containerType.programRelativePath"/>\r\n<container memento\="<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>&\#13;&\#10;<project referencedProjects\="true"/>&\#13;&\#10;" typeId\="org.eclipse.cdt.debug.core.containerType.project"/>\r\n</sourceContainers>\r\n</sourceLookupDirector>\r\n
|
@ -0,0 +1,5 @@
|
||||
activeConfigDesc=sample_threadx Debug.org.eclipse.cdt.launchbar.core.descriptor.default
|
||||
configDescList=[sample_threadx Debug.org.eclipse.cdt.launchbar.core.descriptor.default]
|
||||
sample_threadx\ Debug.org.eclipse.cdt.launchbar.core.descriptor.default/activeLaunchMode=debug
|
||||
sample_threadx\ Debug.org.eclipse.cdt.launchbar.core.descriptor.default/activeLaunchTarget=org.eclipse.cdt.launchbar.core.target.local
|
||||
eclipse.preferences.version=1
|
@ -0,0 +1,5 @@
|
||||
eclipse.preferences.version=1
|
||||
properties/sample_threadx.com.arc.cdt.toolchain.arc.av2em.exeProject.666673635/com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695=com.arc.cdt.toolchain.arc.archiver.887646463\=rebuildState\\\=false\\r\\n\r\ncom.arc.cdt.toolchain.av2em.asmDebugExe.502330268\=rebuildState\\\=false\\r\\n\r\ncom.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695\=rcState\\\=0\\r\\nrebuildState\\\=false\\r\\n\r\ncom.arc.cdt.toolchain.av2em.exeLinkerDebug.994503969\=rebuildState\\\=false\\r\\n\r\ncom.arc.cdt.toolchain.av2em.exeToolChainDebug.687487123\=rebuildState\\\=false\\r\\n\r\nav2em.exe.debug.exeCompilerDebug.670850607\=rebuildState\\\=false\\r\\n\r\n
|
||||
properties/sample_threadx.com.arc.cdt.toolchain.arc.av2em.exeProject.666673635/com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224=com.arc.cdt.toolchain.av2em.asmReleaseExe.714380962\=rebuildState\\\=true\\r\\n\r\ncom.arc.cdt.toolchain.arc.archiver.1360196687\=rebuildState\\\=true\\r\\n\r\ncom.arc.cdt.toolchain.av2em.exelinkerRelease.1145338994\=rebuildState\\\=true\\r\\n\r\narc.cdt.toolchain.av2em.exeCompilerRelease.93257878\=rebuildState\\\=true\\r\\n\r\ncom.arc.cdt.toolchain.av2em.exeReleaseToolChain.1354693166\=rebuildState\\\=true\\r\\n\r\n
|
||||
properties/tx.com.arc.cdt.toolchain.arc.av2em.libProject.1936758151/com.arc.cdt.toolchain.av2em.libDebugConfig.732975342=av2em.lib.debug.libCompiler.557728458\=rebuildState\\\=false\\r\\n\r\ncom.arc.cdt.toolchain.av2em.libDebugConfig.732975342\=rcState\\\=0\\r\\nrebuildState\\\=false\\r\\n\r\ncom.arc.cdt.toolchain.arc.Linker.1782192981\=rebuildState\\\=false\\r\\n\r\ncom.arc.cdt.toolchain.av2em.libDebugToolChain.1845103261\=rebuildState\\\=false\\r\\n\r\ncom.arc.cdt.toolchain.av2em.ArDebug.448807496\=rebuildState\\\=false\\r\\n\r\ncom.arc.cdt.toolchain.av2em.libDebugAsm.1772833895\=rebuildState\\\=false\\r\\n\r\n
|
||||
properties/tx.com.arc.cdt.toolchain.arc.av2em.libProject.1936758151/com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053=com.arc.cdt.toolchain.av2em.libReleaseToolChain.637077717\=rebuildState\\\=true\\r\\n\r\ncom.arc.cdt.toolchain.av2em.ArRelease.50929117\=rebuildState\\\=true\\r\\n\r\ncom.arc.cdt.toolchain.av2em.libReleaseAsm.1659783437\=rebuildState\\\=true\\r\\n\r\ncom.arc.cdt.toolchain.arc.Linker.1430136995\=rebuildState\\\=true\\r\\n\r\ncom.arc.cdt.toolchain.av2em.libCompilerRelease.267590455\=rebuildState\\\=true\\r\\n\r\n
|
@ -0,0 +1,4 @@
|
||||
eclipse.preferences.version=1
|
||||
spelling_locale_initialized=true
|
||||
useAnnotationsPrefPage=true
|
||||
useQuickDiffPrefPage=true
|
@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
version=1
|
@ -0,0 +1,5 @@
|
||||
//org.eclipse.debug.core.PREFERRED_DELEGATES/org.eclipse.cdt.launch.attachLaunchType=org.eclipse.cdt.dsf.gdb.launch.attachCLaunch,debug,;
|
||||
//org.eclipse.debug.core.PREFERRED_DELEGATES/org.eclipse.cdt.launch.localCLaunch=org.eclipse.cdt.cdi.launch.localCLaunch,run,;
|
||||
//org.eclipse.debug.core.PREFERRED_DELEGATES/org.eclipse.cdt.launch.postmortemLaunchType=org.eclipse.cdt.dsf.gdb.launch.coreCLaunch,debug,;
|
||||
eclipse.preferences.version=1
|
||||
prefWatchExpressions=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<watchExpressions>\r\n<expression enabled\="true" text\="thread_0_counter"/>\r\n<expression enabled\="true" text\="thread_1_counter"/>\r\n<expression enabled\="true" text\="thread_2_counter"/>\r\n<expression enabled\="true" text\="thread_3_counter"/>\r\n<expression enabled\="true" text\="thread_4_counter"/>\r\n<expression enabled\="true" text\="thread_5_counter"/>\r\n<expression enabled\="true" text\="thread_6_counter"/>\r\n<expression enabled\="true" text\="thread_7_counter"/>\r\n</watchExpressions>\r\n
|
@ -0,0 +1,8 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.debug.ui.PREF_LAUNCH_PERSPECTIVES=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<launchPerspectives/>\r\n
|
||||
org.eclipse.debug.ui.user_view_bindings=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<viewBindings>\r\n<view id\="org.eclipse.cdt.debug.ui.RegisterView">\r\n<perspective id\="org.eclipse.debug.ui.DebugPerspective" userAction\="opened"/>\r\n</view>\r\n<view id\="org.eclipse.debug.ui.ModuleView">\r\n<perspective id\="org.eclipse.debug.ui.DebugPerspective" userAction\="opened"/>\r\n</view>\r\n<view id\="org.eclipse.debug.ui.VariableView">\r\n<perspective id\="org.eclipse.debug.ui.DebugPerspective" userAction\="closed"/>\r\n</view>\r\n<view id\="org.eclipse.debug.ui.DebugView">\r\n<perspective id\="org.eclipse.debug.ui.DebugPerspective" userAction\="closed"/>\r\n</view>\r\n<view id\="org.eclipse.debug.ui.BreakpointView">\r\n<perspective id\="org.eclipse.debug.ui.DebugPerspective" userAction\="opened"/>\r\n</view>\r\n<view id\="org.eclipse.ui.console.ConsoleView">\r\n<perspective id\="org.eclipse.debug.ui.DebugPerspective" userAction\="closed"/>\r\n</view>\r\n</viewBindings>\r\n
|
||||
pref_state_memento.org.eclipse.debug.ui.DebugVieworg.eclipse.debug.ui.DebugView=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<DebugViewMemento org.eclipse.debug.ui.BREADCRUMB_DROPDOWN_AUTO_EXPAND\="false"/>
|
||||
pref_state_memento.org.eclipse.debug.ui.ExpressionView=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<VariablesViewMemento org.eclipse.debug.ui.SASH_DETAILS_PART\="315" org.eclipse.debug.ui.SASH_VIEW_PART\="684">\r\n<COLUMN_SIZES IMemento.internal.id\="org.eclipse.debug.ui.VARIALBE_COLUMN_PRESENTATION.COL_VAR_VALUE" SIZE\="953"/>\r\n<COLUMN_SIZES IMemento.internal.id\="org.eclipse.debug.ui.VARIALBE_COLUMN_PRESENTATION.COL_VAR_NAME" SIZE\="228"/>\r\n<PRESENTATION_CONTEXT_PROPERTIES IMemento.internal.id\="org.eclipse.debug.ui.ExpressionView"/>\r\n</VariablesViewMemento>
|
||||
pref_state_memento.org.eclipse.debug.ui.VariableView=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<VariablesViewMemento org.eclipse.debug.ui.SASH_DETAILS_PART\="315" org.eclipse.debug.ui.SASH_VIEW_PART\="684">\r\n<PRESENTATION_CONTEXT_PROPERTIES IMemento.internal.id\="org.eclipse.debug.ui.VariableView"/>\r\n</VariablesViewMemento>
|
||||
preferredDetailPanes=DefaultDetailPane\:DefaultDetailPane|
|
||||
preferredTargets=org.eclipse.cdt.debug.ui.toggleCBreakpointTarget,org.eclipse.cdt.debug.ui.toggleCDynamicPrintfTarget\:org.eclipse.cdt.debug.ui.toggleCBreakpointTarget|
|
@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
overviewRuler_migration=migrated_3.1
|
@ -0,0 +1,5 @@
|
||||
PROBLEMS_FILTERS_MIGRATE=true
|
||||
eclipse.preferences.version=1
|
||||
platformState=1590536495337
|
||||
quickStart=true
|
||||
tipsAndTricks=true
|
@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
showIntro=false
|
@ -0,0 +1,4 @@
|
||||
//org.eclipse.ui.commands/state/org.eclipse.ui.navigator.resources.nested.changeProjectPresentation/org.eclipse.ui.commands.radioState=false
|
||||
UIActivities.com.arc.cdt.debug.seecode.ui.activity1=true
|
||||
UIActivities.org.eclipse.cdt.debug.cdigdbActivity=true
|
||||
eclipse.preferences.version=1
|
@ -0,0 +1,441 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="org.eclipse.cdt.launch.localCLaunch">
|
||||
<stringAttribute key="com.arc.cdt.debug.seecode.core.CPU" value="ac"/>
|
||||
<mapAttribute key="com.arc.cdt.debug.seecode.core.GUIHILI_PROPS">
|
||||
<mapEntry key="$cache_feature_id" value="2"/>
|
||||
<mapEntry key="$enable_triggers_encountered$" value="1"/>
|
||||
<mapEntry key="A6_dpfp" value="false"/>
|
||||
<mapEntry key="A6_dpfpfast" value="false"/>
|
||||
<mapEntry key="A6_mpu" value="false"/>
|
||||
<mapEntry key="A6_spfp" value="false"/>
|
||||
<mapEntry key="A6_spfpfast" value="false"/>
|
||||
<mapEntry key="A7_ATB" value="false"/>
|
||||
<mapEntry key="A7_MX" value="false"/>
|
||||
<mapEntry key="A7_MX2" value="false"/>
|
||||
<mapEntry key="A7_MX_audio" value="false"/>
|
||||
<mapEntry key="A7_MX_video" value="false"/>
|
||||
<mapEntry key="A7_SCQ" value="false"/>
|
||||
<mapEntry key="A7_evec_init" value="1"/>
|
||||
<mapEntry key="A7_exceptions" value="false"/>
|
||||
<mapEntry key="A7_memsplit" value="false"/>
|
||||
<mapEntry key="A7_recur" value="1"/>
|
||||
<mapEntry key="A7_user_brk" value="1"/>
|
||||
<mapEntry key="A7_vree" value="false"/>
|
||||
<mapEntry key="A7_vrme" value="false"/>
|
||||
<mapEntry key="AC600_dcache" value="false"/>
|
||||
<mapEntry key="AC600_dcache_line_size" value="16"/>
|
||||
<mapEntry key="AC600_dcache_repalg" value="Round_robin"/>
|
||||
<mapEntry key="AC600_dcache_size" value="2048"/>
|
||||
<mapEntry key="AC600_dcache_ways" value="1"/>
|
||||
<mapEntry key="AC600_icache" value="false"/>
|
||||
<mapEntry key="AC600_icache_line_size" value="8"/>
|
||||
<mapEntry key="AC600_icache_repalg" value="Round_robin"/>
|
||||
<mapEntry key="AC600_icache_size" value="2048"/>
|
||||
<mapEntry key="AC600_icache_ways" value="1"/>
|
||||
<mapEntry key="ACTION" value="{"-c \"sysprop command_processor include_local_symbols=1\"" }"/>
|
||||
<mapEntry key="AC_chipinit" value="false"/>
|
||||
<mapEntry key="AC_dcache" value="false"/>
|
||||
<mapEntry key="AC_dcache_line_size" value="16"/>
|
||||
<mapEntry key="AC_dcache_repalg" value="Round_robin"/>
|
||||
<mapEntry key="AC_dcache_size" value="512"/>
|
||||
<mapEntry key="AC_dcache_ways" value="1"/>
|
||||
<mapEntry key="AC_icache" value="false"/>
|
||||
<mapEntry key="AC_icache_line_size" value="8"/>
|
||||
<mapEntry key="AC_icache_repalg" value="Round_robin"/>
|
||||
<mapEntry key="AC_icache_size" value="512"/>
|
||||
<mapEntry key="AC_icache_ways" value="1"/>
|
||||
<mapEntry key="ARC4_CAS_DLL" value="casseia.dll"/>
|
||||
<mapEntry key="ARC5_Core_Version" value="3"/>
|
||||
<mapEntry key="ARC600_CAS_DLL" value="arc600cas.dll"/>
|
||||
<mapEntry key="ARC600_CAS_DLL_systemc" value="arc600cas.dll"/>
|
||||
<mapEntry key="ARC600_XY_banks" value="1"/>
|
||||
<mapEntry key="ARC600_XY_size" value="512"/>
|
||||
<mapEntry key="ARC600_config" value="config"/>
|
||||
<mapEntry key="ARC600_config_already" value="config"/>
|
||||
<mapEntry key="ARC600_crc" value="false"/>
|
||||
<mapEntry key="ARC600_ea" value="false"/>
|
||||
<mapEntry key="ARC600_fast_loads" value="false"/>
|
||||
<mapEntry key="ARC600_fast_xmac_wb" value="false"/>
|
||||
<mapEntry key="ARC600_mem_bus_width" value="32"/>
|
||||
<mapEntry key="ARC600_mult32" value="false"/>
|
||||
<mapEntry key="ARC600_norm" value="false"/>
|
||||
<mapEntry key="ARC600_reg4" value="false"/>
|
||||
<mapEntry key="ARC600_timer0" value="false"/>
|
||||
<mapEntry key="ARC600_timer1" value="false"/>
|
||||
<mapEntry key="ARC600_xmac_24" value="false"/>
|
||||
<mapEntry key="ARC600_xmac_32x16d16" value="false"/>
|
||||
<mapEntry key="ARC600_xmac_acc_shortcut" value="false"/>
|
||||
<mapEntry key="ARC600_xmac_d16" value="false"/>
|
||||
<mapEntry key="ARC600_xy" value="false"/>
|
||||
<mapEntry key="ARC600_xy_modulo_addr" value="false"/>
|
||||
<mapEntry key="ARC6_Core_Version" value="1"/>
|
||||
<mapEntry key="ARC700_CAS_DLL" value="arc700cas.dll"/>
|
||||
<mapEntry key="ARC700_XY_banks" value="1"/>
|
||||
<mapEntry key="ARC700_XY_size" value="4096"/>
|
||||
<mapEntry key="ARC700_config" value="config"/>
|
||||
<mapEntry key="ARC700_crc" value="false"/>
|
||||
<mapEntry key="ARC700_dvbf" value="false"/>
|
||||
<mapEntry key="ARC700_logfile" value="cas_trace.txt"/>
|
||||
<mapEntry key="ARC700_mem_bus_width" value="32"/>
|
||||
<mapEntry key="ARC700_mul32x16" value="false"/>
|
||||
<mapEntry key="ARC700_xmac_24" value="false"/>
|
||||
<mapEntry key="ARC700_xmac_d16" value="false"/>
|
||||
<mapEntry key="ARC700_xy" value="false"/>
|
||||
<mapEntry key="ARC700_xy_modulo_addr" value="false"/>
|
||||
<mapEntry key="ARC7_Core_Version" value="2"/>
|
||||
<mapEntry key="ARC_DSP_memory" value="ARC_nodsp"/>
|
||||
<mapEntry key="ARC_MMU" value="MMU_none"/>
|
||||
<mapEntry key="ARC_MX2_SCM_size" value="5120"/>
|
||||
<mapEntry key="ARC_MX2_SCQ_size" value="256"/>
|
||||
<mapEntry key="ARC_MX2_VRF_size" value="24"/>
|
||||
<mapEntry key="ARC_MX_SCM_size" value="5120"/>
|
||||
<mapEntry key="ARC_MX_SCQ_size" value="256"/>
|
||||
<mapEntry key="ARC_MX_SDM_size" value="32768"/>
|
||||
<mapEntry key="ARC_MX_VRF_size" value="24"/>
|
||||
<mapEntry key="ARC_Timeout" value="100"/>
|
||||
<mapEntry key="ARC_XY_banks" value="1"/>
|
||||
<mapEntry key="ARC_XY_ports" value="2"/>
|
||||
<mapEntry key="ARC_XY_size" value="512"/>
|
||||
<mapEntry key="ARC_addr_size" value="32"/>
|
||||
<mapEntry key="ARC_agu" value="-Xagu_small"/>
|
||||
<mapEntry key="ARC_agu_accord" value="false"/>
|
||||
<mapEntry key="ARC_agu_write" value="2"/>
|
||||
<mapEntry key="ARC_atomic" value="0"/>
|
||||
<mapEntry key="ARC_bad_instr_intr" value="false"/>
|
||||
<mapEntry key="ARC_bad_instr_intr7" value="false"/>
|
||||
<mapEntry key="ARC_bad_instr_intr_NSIM" value="1"/>
|
||||
<mapEntry key="ARC_bad_instr_intr_NSIM7" value="1"/>
|
||||
<mapEntry key="ARC_barrel_shifter" value="0"/>
|
||||
<mapEntry key="ARC_bitstream" value="false"/>
|
||||
<mapEntry key="ARC_blast_spec" value="false"/>
|
||||
<mapEntry key="ARC_cache_rams" value="false"/>
|
||||
<mapEntry key="ARC_code_density" value="0"/>
|
||||
<mapEntry key="ARC_code_protect" value="0000"/>
|
||||
<mapEntry key="ARC_crc" value="false"/>
|
||||
<mapEntry key="ARC_cycle_spec" value="1"/>
|
||||
<mapEntry key="ARC_cycles" value="false"/>
|
||||
<mapEntry key="ARC_dcache_feature" value="2"/>
|
||||
<mapEntry key="ARC_deadbeef" value="1"/>
|
||||
<mapEntry key="ARC_default_ext_interrupts" value="true"/>
|
||||
<mapEntry key="ARC_default_interrupts" value="1"/>
|
||||
<mapEntry key="ARC_dma" value="false"/>
|
||||
<mapEntry key="ARC_dmac_channels" value="1"/>
|
||||
<mapEntry key="ARC_dmac_fifo_depth" value="1"/>
|
||||
<mapEntry key="ARC_dmac_int_config" value="none"/>
|
||||
<mapEntry key="ARC_dmulpf" value="false"/>
|
||||
<mapEntry key="ARC_dsp" value="false"/>
|
||||
<mapEntry key="ARC_dsp2" value="false"/>
|
||||
<mapEntry key="ARC_dsp_accshift" value="full"/>
|
||||
<mapEntry key="ARC_dsp_complex" value="false"/>
|
||||
<mapEntry key="ARC_dsp_divsqrt" value="radix2"/>
|
||||
<mapEntry key="ARC_dsp_itu" value="false"/>
|
||||
<mapEntry key="ARC_dvbf" value="false"/>
|
||||
<mapEntry key="ARC_ea" value="false"/>
|
||||
<mapEntry key="ARC_ext_interrupt_num" value="0"/>
|
||||
<mapEntry key="ARC_fast_interrupt" value="false"/>
|
||||
<mapEntry key="ARC_fpuda" value="false"/>
|
||||
<mapEntry key="ARC_fsfpus_div" value="Slow"/>
|
||||
<mapEntry key="ARC_fsfpus_mpy" value="Fast"/>
|
||||
<mapEntry key="ARC_fujitsu_if" value="false"/>
|
||||
<mapEntry key="ARC_hardware_selection" value="ARC_raw"/>
|
||||
<mapEntry key="ARC_icache_feature" value="2"/>
|
||||
<mapEntry key="ARC_interrupt_baseaddr" value="0"/>
|
||||
<mapEntry key="ARC_interrupt_num" value="16"/>
|
||||
<mapEntry key="ARC_interrupt_priorities" value="1"/>
|
||||
<mapEntry key="ARC_interrupt_vector_count" value="(default)"/>
|
||||
<mapEntry key="ARC_isa_counters" value="false"/>
|
||||
<mapEntry key="ARC_ldst_ram_base" value="(none)"/>
|
||||
<mapEntry key="ARC_ldst_ram_size" value="(none)"/>
|
||||
<mapEntry key="ARC_ll64" value="0"/>
|
||||
<mapEntry key="ARC_lpc_width" value="32"/>
|
||||
<mapEntry key="ARC_mac" value="0"/>
|
||||
<mapEntry key="ARC_macd" value="0"/>
|
||||
<mapEntry key="ARC_mcip" value="false"/>
|
||||
<mapEntry key="ARC_mcip_bsu" value="false"/>
|
||||
<mapEntry key="ARC_mcip_cirqnum" value="8"/>
|
||||
<mapEntry key="ARC_mcip_dvfs" value="false"/>
|
||||
<mapEntry key="ARC_mcip_grtc" value="false"/>
|
||||
<mapEntry key="ARC_mcip_ici" value="false"/>
|
||||
<mapEntry key="ARC_mcip_ics" value="false"/>
|
||||
<mapEntry key="ARC_mcip_idu" value="false"/>
|
||||
<mapEntry key="ARC_mcip_llm" value="false"/>
|
||||
<mapEntry key="ARC_mcip_llm_base" value="0"/>
|
||||
<mapEntry key="ARC_mcip_llm_size" value="128K"/>
|
||||
<mapEntry key="ARC_mcip_mcd" value="false"/>
|
||||
<mapEntry key="ARC_mcip_mps" value="false"/>
|
||||
<mapEntry key="ARC_mcip_numsemas" value="16"/>
|
||||
<mapEntry key="ARC_mcip_pmu" value="false"/>
|
||||
<mapEntry key="ARC_mcip_sram_size" value="512"/>
|
||||
<mapEntry key="ARC_mcip_version" value="3"/>
|
||||
<mapEntry key="ARC_mem_bus_width" value="32"/>
|
||||
<mapEntry key="ARC_mem_exc_intr" value="false"/>
|
||||
<mapEntry key="ARC_mem_exc_intr7" value="false"/>
|
||||
<mapEntry key="ARC_mem_exc_intr_NSIM" value="1"/>
|
||||
<mapEntry key="ARC_mem_exc_intr_NSIM7" value="1"/>
|
||||
<mapEntry key="ARC_memsize" value="(none)"/>
|
||||
<mapEntry key="ARC_mmu_jtlb_ways" value="2"/>
|
||||
<mapEntry key="ARC_mmu_ntlb_entries" value="256"/>
|
||||
<mapEntry key="ARC_mmu_pae40_enabled" value="false"/>
|
||||
<mapEntry key="ARC_mmu_page_size" value="8192"/>
|
||||
<mapEntry key="ARC_mmu_stlb_entries" value="16"/>
|
||||
<mapEntry key="ARC_mmu_super_page_size" value="4M"/>
|
||||
<mapEntry key="ARC_mpu_region" value="Default"/>
|
||||
<mapEntry key="ARC_mpy" value="0"/>
|
||||
<mapEntry key="ARC_mpy16" value="0"/>
|
||||
<mapEntry key="ARC_mul32x16" value="false"/>
|
||||
<mapEntry key="ARC_mult32" value="0"/>
|
||||
<mapEntry key="ARC_norm" value="0"/>
|
||||
<mapEntry key="ARC_opellaXD_DLL" value="c:/AshlingOpellaXDforARC/opxdarc"/>
|
||||
<mapEntry key="ARC_opella_DLL" value="c:/AshlingOpellaforARC/opellarc"/>
|
||||
<mapEntry key="ARC_parallel_port_address" value="0x378"/>
|
||||
<mapEntry key="ARC_pc_width" value="32"/>
|
||||
<mapEntry key="ARC_pct_counters" value="2"/>
|
||||
<mapEntry key="ARC_pct_interrupt" value="false"/>
|
||||
<mapEntry key="ARC_pct_size" value="48"/>
|
||||
<mapEntry key="ARC_pmu" value="false"/>
|
||||
<mapEntry key="ARC_qmpyh" value="0"/>
|
||||
<mapEntry key="ARC_replay_file" value="replay.bin"/>
|
||||
<mapEntry key="ARC_reset_on_restart" value="false"/>
|
||||
<mapEntry key="ARC_rgf_num_wr_ports" value="2"/>
|
||||
<mapEntry key="ARC_shift_assist" value="0"/>
|
||||
<mapEntry key="ARC_sliding_pointers" value="false"/>
|
||||
<mapEntry key="ARC_swap" value="0"/>
|
||||
<mapEntry key="ARC_target" value="ARCSIM"/>
|
||||
<mapEntry key="ARC_timer0" value="1"/>
|
||||
<mapEntry key="ARC_timer1" value="1"/>
|
||||
<mapEntry key="ARC_uart_0" value="false"/>
|
||||
<mapEntry key="ARC_uart_1" value="false"/>
|
||||
<mapEntry key="ARC_uart_2" value="false"/>
|
||||
<mapEntry key="ARC_ultraXD_DLL" value="C:/AshlingUltra-XDforARC/uxdarc.dll"/>
|
||||
<mapEntry key="ARC_unaligned" value="0"/>
|
||||
<mapEntry key="ARC_vmac_0" value="false"/>
|
||||
<mapEntry key="ARC_vmac_1" value="false"/>
|
||||
<mapEntry key="ARC_vmac_2" value="false"/>
|
||||
<mapEntry key="ARC_xlib" value="0"/>
|
||||
<mapEntry key="ARC_xmac_24" value="false"/>
|
||||
<mapEntry key="ARC_xmac_d16" value="false"/>
|
||||
<mapEntry key="ARC_xy" value="false"/>
|
||||
<mapEntry key="ARC_xy_config" value="dccm"/>
|
||||
<mapEntry key="ARC_xy_interleave" value="false"/>
|
||||
<mapEntry key="ARC_xy_size" value="4K"/>
|
||||
<mapEntry key="ARG_ACTION" value="{"-targs=AC" "-toggle=include_local_symbols=1" "-profile" "-nsim" "-toggle=deadbeef=1" }"/>
|
||||
<mapEntry key="Dont_download" value="false"/>
|
||||
<mapEntry key="EIA_path" value="path_to_eia/lib"/>
|
||||
<mapEntry key="IDE_ARC_DSP_memory" value="ARC_nodsp"/>
|
||||
<mapEntry key="IDE_ARC_crc" value="0"/>
|
||||
<mapEntry key="IDE_ARC_dmulpf" value="0"/>
|
||||
<mapEntry key="IDE_ARC_dvbf" value="0"/>
|
||||
<mapEntry key="IDE_ARC_ea" value="0"/>
|
||||
<mapEntry key="IDE_ARC_mul32x16" value="0"/>
|
||||
<mapEntry key="IDE_ARC_timer0" value="1"/>
|
||||
<mapEntry key="IDE_ARC_timer1" value="1"/>
|
||||
<mapEntry key="IDE_ARC_xmac_24" value="0"/>
|
||||
<mapEntry key="IDE_ARC_xmac_d16" value="0"/>
|
||||
<mapEntry key="Local_symbols" value="1"/>
|
||||
<mapEntry key="MX_ARC_speed" value="1"/>
|
||||
<mapEntry key="MX_DMA_speed" value="1"/>
|
||||
<mapEntry key="MX_SIMD_speed" value="1"/>
|
||||
<mapEntry key="MX_perfres" value="10000"/>
|
||||
<mapEntry key="MX_system_speed" value="1"/>
|
||||
<mapEntry key="PROJECT" value="sample_threadx Debug"/>
|
||||
<mapEntry key="RASCAL_ENV" value="rascal.env"/>
|
||||
<mapEntry key="RTOS" value="(none)"/>
|
||||
<mapEntry key="ReadingXML" value="false"/>
|
||||
<mapEntry key="SCIT_port" value="10875"/>
|
||||
<mapEntry key="SCIT_tcpip" value="localhost"/>
|
||||
<mapEntry key="SCXISS_ACSI" value="0"/>
|
||||
<mapEntry key="SCXISS_CONNECTION" value="TCPIP"/>
|
||||
<mapEntry key="SCXISS_DELAY" value="12"/>
|
||||
<mapEntry key="SCXISS_IPADDR" value="127.0.0.1"/>
|
||||
<mapEntry key="SCXISS_IPPORT" value="8123"/>
|
||||
<mapEntry key="SCXISS_LAUNCH" value="false"/>
|
||||
<mapEntry key="SCXISS_WD" value=""/>
|
||||
<mapEntry key="UART_COUNT" value="0"/>
|
||||
<mapEntry key="UART_PBASE" value="0xC0FC0000"/>
|
||||
<mapEntry key="UART_pbase_default" value="1"/>
|
||||
<mapEntry key="XD_adaptive" value="(none)"/>
|
||||
<mapEntry key="XD_gclk" value="crystal"/>
|
||||
<mapEntry key="XD_gclk1" value="crystal"/>
|
||||
<mapEntry key="XD_gclk2" value="crystal"/>
|
||||
<mapEntry key="XD_reset" value="50"/>
|
||||
<mapEntry key="XD_roboSS" value="0x1234"/>
|
||||
<mapEntry key="XD_roboSSEXP" value="0x1234"/>
|
||||
<mapEntry key="XD_robosd" value="0x1234"/>
|
||||
<mapEntry key="XISS_bridge_0_length" value="0x2000"/>
|
||||
<mapEntry key="XISS_bridge_0_start" value="0x0"/>
|
||||
<mapEntry key="XISS_bridge_0_target" value="<Choose Core>"/>
|
||||
<mapEntry key="XISS_bridge_0_target_address" value="0x0"/>
|
||||
<mapEntry key="XISS_bridge_1_length" value="0x2000"/>
|
||||
<mapEntry key="XISS_bridge_1_start" value="0x0"/>
|
||||
<mapEntry key="XISS_bridge_1_target" value="<Choose Core>"/>
|
||||
<mapEntry key="XISS_bridge_1_target_address" value="0x0"/>
|
||||
<mapEntry key="XISS_bridge_2_length" value="0x2000"/>
|
||||
<mapEntry key="XISS_bridge_2_start" value="0x0"/>
|
||||
<mapEntry key="XISS_bridge_2_target" value="<Choose Core>"/>
|
||||
<mapEntry key="XISS_bridge_2_target_address" value="0x0"/>
|
||||
<mapEntry key="XISS_bridge_3_length" value="0x2000"/>
|
||||
<mapEntry key="XISS_bridge_3_start" value="0x0"/>
|
||||
<mapEntry key="XISS_bridge_3_target" value="<Choose Core>"/>
|
||||
<mapEntry key="XISS_bridge_3_target_address" value="0x0"/>
|
||||
<mapEntry key="XISS_bridge_4_length" value="0x2000"/>
|
||||
<mapEntry key="XISS_bridge_4_start" value="0x0"/>
|
||||
<mapEntry key="XISS_bridge_4_target" value="<Choose Core>"/>
|
||||
<mapEntry key="XISS_bridge_4_target_address" value="0x0"/>
|
||||
<mapEntry key="XISS_bridge_5_length" value="0x2000"/>
|
||||
<mapEntry key="XISS_bridge_5_start" value="0x0"/>
|
||||
<mapEntry key="XISS_bridge_5_target" value="<Choose Core>"/>
|
||||
<mapEntry key="XISS_bridge_5_target_address" value="0x0"/>
|
||||
<mapEntry key="XISS_bridge_6_length" value="0x2000"/>
|
||||
<mapEntry key="XISS_bridge_6_start" value="0x0"/>
|
||||
<mapEntry key="XISS_bridge_6_target" value="<Choose Core>"/>
|
||||
<mapEntry key="XISS_bridge_6_target_address" value="0x0"/>
|
||||
<mapEntry key="XISS_bridge_7_length" value="0x2000"/>
|
||||
<mapEntry key="XISS_bridge_7_start" value="0x0"/>
|
||||
<mapEntry key="XISS_bridge_7_target" value="<Choose Core>"/>
|
||||
<mapEntry key="XISS_bridge_7_target_address" value="0x0"/>
|
||||
<mapEntry key="XISS_bridge_8_length" value="0x2000"/>
|
||||
<mapEntry key="XISS_bridge_8_start" value="0x0"/>
|
||||
<mapEntry key="XISS_bridge_8_target" value="<Choose Core>"/>
|
||||
<mapEntry key="XISS_bridge_8_target_address" value="0x0"/>
|
||||
<mapEntry key="arcsim_jit" value="0"/>
|
||||
<mapEntry key="arcsim_jit_threads" value="1"/>
|
||||
<mapEntry key="arcsim_systemc" value="0"/>
|
||||
<mapEntry key="backdoor_mem" value="1"/>
|
||||
<mapEntry key="cache_target_mem" value="1"/>
|
||||
<mapEntry key="cas600_coderam_size" value="512k"/>
|
||||
<mapEntry key="cas600_ldstram_size" value="512k"/>
|
||||
<mapEntry key="cas600_profiling" value="1"/>
|
||||
<mapEntry key="cas700_profiling" value="1"/>
|
||||
<mapEntry key="cas_shmem6" value="123"/>
|
||||
<mapEntry key="cas_shmem7" value="123"/>
|
||||
<mapEntry key="comm_baud" value="9600"/>
|
||||
<mapEntry key="comm_flowcontrol" value="D"/>
|
||||
<mapEntry key="comm_parity" value="N"/>
|
||||
<mapEntry key="comm_rxqsize" value="1024"/>
|
||||
<mapEntry key="comm_stopbits" value="1"/>
|
||||
<mapEntry key="comm_txqsize" value="1024"/>
|
||||
<mapEntry key="comm_wordlength" value="8"/>
|
||||
<mapEntry key="command_logging" value="false"/>
|
||||
<mapEntry key="commtermsim" value="none"/>
|
||||
<mapEntry key="connect_only" value="LE"/>
|
||||
<mapEntry key="connect_only_selection" value="false"/>
|
||||
<mapEntry key="dcache7" value="none"/>
|
||||
<mapEntry key="dccm7" value="none"/>
|
||||
<mapEntry key="dccm_base" value="0x10000"/>
|
||||
<mapEntry key="dccm_size" value="none"/>
|
||||
<mapEntry key="dump_file" value="(none)"/>
|
||||
<mapEntry key="dump_range" value="(default)"/>
|
||||
<mapEntry key="fpu_mac" value="false"/>
|
||||
<mapEntry key="fpud" value="false"/>
|
||||
<mapEntry key="fpud_div" value="false"/>
|
||||
<mapEntry key="fpus" value="false"/>
|
||||
<mapEntry key="fpus_div" value="false"/>
|
||||
<mapEntry key="gclk1_XD" value="false"/>
|
||||
<mapEntry key="gclk2_XD" value="false"/>
|
||||
<mapEntry key="gclk_XD" value="false"/>
|
||||
<mapEntry key="hw_stack_checking" value="false"/>
|
||||
<mapEntry key="icache7" value="none"/>
|
||||
<mapEntry key="iccm0_base" value="0"/>
|
||||
<mapEntry key="iccm0_size" value="none"/>
|
||||
<mapEntry key="iccm1_base" value="0"/>
|
||||
<mapEntry key="iccm1_size" value="none"/>
|
||||
<mapEntry key="iccm7" value="none"/>
|
||||
<mapEntry key="iccm_base" value="0"/>
|
||||
<mapEntry key="iccm_size" value="none"/>
|
||||
<mapEntry key="iss_av2_override" value="0"/>
|
||||
<mapEntry key="log_filename" value="logfile"/>
|
||||
<mapEntry key="opella106_jtag_frequency" value="2Mhz"/>
|
||||
<mapEntry key="opella108_jtag_frequency" value="2Mhz"/>
|
||||
<mapEntry key="opellaXD_blast_frequency" value="6Mhz"/>
|
||||
<mapEntry key="opellaXD_jtag_frequency" value="8MHz"/>
|
||||
<mapEntry key="optimize_XD" value="false"/>
|
||||
<mapEntry key="parallel_jtag" value="1"/>
|
||||
<mapEntry key="prefer_sw_bp" value="1"/>
|
||||
<mapEntry key="profiling_window" value="1"/>
|
||||
<mapEntry key="quicksim6" value="false"/>
|
||||
<mapEntry key="read_ro_from_exe" value="false"/>
|
||||
<mapEntry key="realtime_counter" value="false"/>
|
||||
<mapEntry key="roboSSEXP_XD" value="false"/>
|
||||
<mapEntry key="roboSS_XD" value="false"/>
|
||||
<mapEntry key="robosd_XD" value="false"/>
|
||||
<mapEntry key="show_string" value="1"/>
|
||||
<mapEntry key="sim_unhalt_arc" value="false"/>
|
||||
<mapEntry key="simextDLLKind" value="EIA"/>
|
||||
<mapEntry key="stop_sim_when_arc_halts" value="1"/>
|
||||
<mapEntry key="term_base" value="0xfc1000"/>
|
||||
<mapEntry key="term_default_receive" value="1"/>
|
||||
<mapEntry key="term_default_send" value="1"/>
|
||||
<mapEntry key="term_default_vector" value="1"/>
|
||||
<mapEntry key="term_external" value="0"/>
|
||||
<mapEntry key="term_int_vector" value="2"/>
|
||||
<mapEntry key="term_log_only" value="false"/>
|
||||
<mapEntry key="term_port" value="1"/>
|
||||
<mapEntry key="term_tcp_port" value="+0"/>
|
||||
<mapEntry key="term_use_input" value="false"/>
|
||||
<mapEntry key="term_use_log" value="0"/>
|
||||
<mapEntry key="title" value="Target reset"/>
|
||||
<mapEntry key="trace_history" value="true"/>
|
||||
<mapEntry key="trace_history_vlz" value="false"/>
|
||||
<mapEntry key="trace_size" value="500000"/>
|
||||
<mapEntry key="use_rascal_perfmon" value="1"/>
|
||||
<mapEntry key="v2em_core_register_per_bank" value="4"/>
|
||||
<mapEntry key="v2em_core_version" value="1"/>
|
||||
<mapEntry key="v2em_regis_bank" value="1"/>
|
||||
<mapEntry key="v2hs_core_version" value="1"/>
|
||||
<mapEntry key="verify_download" value="false"/>
|
||||
<mapEntry key="which6cas" value="c6I"/>
|
||||
<mapEntry key="which7cas" value="c7I"/>
|
||||
<mapEntry key="whichOptions" value="machine"/>
|
||||
<mapEntry key="which_arc" value="ARCV2EM"/>
|
||||
<mapEntry key="which_arc_name" value="ARC EM"/>
|
||||
<mapEntry key="which_opella_version" value="v106"/>
|
||||
<mapEntry key="wires" value="4-wire (standard)"/>
|
||||
<mapEntry key="x600_dcache_pipe_depth" value="2"/>
|
||||
<mapEntry key="x600_trace_level" value="off"/>
|
||||
<mapEntry key="x700_logging" value="1"/>
|
||||
<mapEntry key="x700log_start" value="none"/>
|
||||
<mapEntry key="x700log_stop" value="none"/>
|
||||
<mapEntry key="x_mem_map" value="(none)"/>
|
||||
<mapEntry key="y_mem_map" value="(none)"/>
|
||||
</mapAttribute>
|
||||
<listAttribute key="com.arc.cdt.debug.seecode.core.SWAHILI_ARGS">
|
||||
<listEntry value="-targs=AC"/>
|
||||
<listEntry value="-toggle=include_local_symbols=1"/>
|
||||
<listEntry value="-profile"/>
|
||||
<listEntry value="-nsim"/>
|
||||
<listEntry value="-toggle=deadbeef=1"/>
|
||||
<listEntry value="-av2em"/>
|
||||
<listEntry value="-Xtimer0"/>
|
||||
<listEntry value="-Xtimer1"/>
|
||||
<listEntry value="-core1"/>
|
||||
</listAttribute>
|
||||
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="com.arc.cdt.debug.seecode.core.SeeCodeDebugger"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
|
||||
<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_RESUME_AT_START" value="true"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.launch.DISABLE_STOPATMAIN_RESUME" value="true"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_REGISTER_BOOKKEEPING" value="false"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_VARIABLE_BOOKKEEPING" value="false"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.FORMAT" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?><contentList/>"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.GLOBAL_VARIABLES" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <globalVariableList/> "/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <memoryBlockExpressionList/> "/>
|
||||
<booleanAttribute key="org.eclipse.cdt.launch.NOPROJECT" value="false"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug\sample_threadx.elf"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="sample_threadx"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.disassemblyViewID" value="com.arc.cdt.debug.seecode.ui.views.disasm"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.launch.ui.ApplicationCDebuggerTab.DEFAULTS_SET" value="true"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.launch.use_terminal" value="true"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/sample_threadx"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="4"/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="process_factory_id" value="com.arc.cdt.debug.seecode.processFactory"/>
|
||||
</launchConfiguration>
|
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="org.eclipse.debug.ui.LAUNCH_CONFIGURATIONS_DIALOG_SECTION">
|
||||
<item value="1087" key="DIALOG_WIDTH"/>
|
||||
<item value="1|Segoe UI|9.0|0|WINDOWS|1|-12|0|0|0|400|0|0|0|1|0|0|0|0|Segoe UI" key="DIALOG_FONT_NAME"/>
|
||||
<item value=", org.eclipse.cdt.launch.localCLaunch, " key="org.eclipse.debug.ui.EXPANDED_NODES"/>
|
||||
<item value="570" key="org.eclipse.debug.ui.DIALOG_SASH_WEIGHTS_2"/>
|
||||
<item value="702" key="DIALOG_HEIGHT"/>
|
||||
<item value="429" key="org.eclipse.debug.ui.DIALOG_SASH_WEIGHTS_1"/>
|
||||
</section>
|
||||
</section>
|
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchHistory>
|
||||
<launchGroup id="org.eclipse.debug.ui.launchGroup.debug">
|
||||
<mruHistory>
|
||||
<launch memento="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration local="true" path="sample_threadx Debug"/> "/>
|
||||
</mruHistory>
|
||||
<favorites/>
|
||||
</launchGroup>
|
||||
<launchGroup id="org.eclipse.debug.ui.launchGroup.profile">
|
||||
<mruHistory/>
|
||||
<favorites/>
|
||||
</launchGroup>
|
||||
<launchGroup id="org.eclipse.ui.externaltools.launchGroup">
|
||||
<mruHistory/>
|
||||
<favorites/>
|
||||
</launchGroup>
|
||||
<launchGroup id="org.eclipse.debug.ui.launchGroup.run">
|
||||
<mruHistory>
|
||||
<launch memento="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration local="true" path="sample_threadx Debug"/> "/>
|
||||
</mruHistory>
|
||||
<favorites/>
|
||||
</launchGroup>
|
||||
</launchHistory>
|
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="ShowViewDialog">
|
||||
<item value="311" key="DIALOG_WIDTH"/>
|
||||
<item value="1|Segoe UI|9.0|0|WINDOWS|1|-12|0|0|0|400|0|0|0|1|0|0|0|0|Segoe UI" key="DIALOG_FONT_NAME"/>
|
||||
<item value="org.eclipse.debug.ui.ExpressionView" key="ShowViewDialog.STORE_SELECTED_VIEW_ID"/>
|
||||
<item value="439" key="DIALOG_HEIGHT"/>
|
||||
<item value="1133" key="DIALOG_X_ORIGIN"/>
|
||||
<item value="416" key="DIALOG_Y_ORIGIN"/>
|
||||
<list key="ShowViewDialog.STORE_EXPANDED_CATEGORIES_ID">
|
||||
<item value="General"/>
|
||||
<item value="Debug"/>
|
||||
</list>
|
||||
</section>
|
||||
</section>
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<session version="1.0">
|
||||
<refactoring comment="Delete resource 'demo_threadx'" deleteContents="false" description="Delete resource 'demo_threadx'" element1="/demo_threadx" flags="7" id="org.eclipse.ltk.core.refactoring.delete.resources" resources="1" stamp="1592431039575"/>
|
||||
</session>
|
@ -0,0 +1 @@
|
||||
1592431039575 Delete resource 'demo_threadx'
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="RefactoringWizard.preview">
|
||||
<item value="600" key="width"/>
|
||||
<item value="400" key="height"/>
|
||||
</section>
|
||||
</section>
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="quick_assist_proposal_size">
|
||||
</section>
|
||||
</section>
|
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="ExternalProjectImportWizard">
|
||||
<item value="false" key="WizardProjectsImportPage.STORE_NESTED_PROJECTS"/>
|
||||
<item value="false" key="WizardProjectsImportPage.STORE_COPY_PROJECT_ID"/>
|
||||
<item value="false" key="WizardProjectsImportPage.STORE_ARCHIVE_SELECTED"/>
|
||||
<list key="WizardProjectsImportPage.STORE_DIRECTORIES">
|
||||
<item value="C:\Users\nisohack\Documents\work\x-ware_libs\threadx_github\ports\arc_em\metaware\example_build\sample_threadx"/>
|
||||
</list>
|
||||
<list key="WizardProjectsImportPage.STORE_ARCHIVES">
|
||||
<item value=""/>
|
||||
</list>
|
||||
</section>
|
||||
</section>
|
@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="org.eclipse.ui.internal.QuickAccess">
|
||||
<item value="760" key="dialogHeight"/>
|
||||
<item value="1440" key="dialogWidth"/>
|
||||
<list key="textEntries">
|
||||
</list>
|
||||
<list key="orderedElements">
|
||||
</list>
|
||||
<list key="orderedProviders">
|
||||
</list>
|
||||
<list key="textArray">
|
||||
</list>
|
||||
</section>
|
||||
<section name="ImportExportAction">
|
||||
<item value="org.eclipse.ui.wizards.import.ExternalProject" key="ImportExportPage.STORE_SELECTED_IMPORT_WIZARD_ID"/>
|
||||
<list key="ImportExportPage.STORE_EXPANDED_IMPORT_CATEGORIES">
|
||||
<item value="org.eclipse.ui.Basic"/>
|
||||
</list>
|
||||
</section>
|
||||
<section name="FileSystemImportWizard">
|
||||
<item value="false" key="WizardFileSystemResourceImportPage1.STORE_CREATE_CONTAINER_STRUCTURE_ID"/>
|
||||
<item value="false" key="WizardFileSystemResourceImportPage1.STORE_OVERWRITE_EXISTING_RESOURCES_ID"/>
|
||||
<list key="WizardFileSystemResourceImportPage1.STORE_SOURCE_NAMES_ID">
|
||||
<item value="C:\temp1663\demo"/>
|
||||
<item value="C:\temp1663\tx_source"/>
|
||||
</list>
|
||||
</section>
|
||||
</section>
|
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<workingSetManager>
|
||||
<workingSet aggregate="true" factoryID="org.eclipse.ui.internal.WorkingSetFactory" id="1453230065286_0" label="Window Working Set" name="Aggregate for window 1453230065286"/>
|
||||
</workingSetManager>
|
@ -0,0 +1,3 @@
|
||||
#Wed Jun 17 14:57:08 PDT 2020
|
||||
org.eclipse.core.runtime=2
|
||||
org.eclipse.platform=4.6.3.v20170301-0400
|
145
ports/arc_em/metaware/example_build/sample_threadx/.cproject
Normal file
145
ports/arc_em/metaware/example_build/sample_threadx/.cproject
Normal file
@ -0,0 +1,145 @@
|
||||
<?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" name="SVR3-style command files" superClass="com.arc.cdt.toolchain.option.linker.svr3" valueType="userObjs">
|
||||
<listOptionValue builtIn="false" value="../sample_threadx.cmd"/>
|
||||
</option>
|
||||
<option id="arc.link.ld.user_objs.772443345" 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>
|
26
ports/arc_em/metaware/example_build/sample_threadx/.project
Normal file
26
ports/arc_em/metaware/example_build/sample_threadx/.project
Normal file
@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>sample_threadx</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>
|
@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<project>
|
||||
<configuration id="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695" name="Debug">
|
||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider copy-of="extension" id="com.arc.cdt.toolchain.arc.language.settings.providers.MccBuildCommandParser"/>
|
||||
<provider class="com.arc.cdt.toolchain.arc.language.settings.providers.MccBuiltinSpecsDetector" console="false" env-hash="1759269485362208296" id="com.arc.cdt.toolchain.arc.language.settings.providers.MccBuiltinSpecsDetector" keep-relative-paths="false" name="MetaWare MCC Built-in Compiler Settings" parameter="mcc ${FLAGS} -Hbatchnotmp -Hnoobj "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
<provider class="com.arc.cdt.toolchain.arc.language.settings.providers.ClangBuildCommandParser" id="com.arc.cdt.toolchain.arc.language.settings.providers.ClangBuildCommandParser" keep-relative-paths="false" name="MetaWare CCAC Build Output Parser" parameter="ccac" prefer-non-shared="true"/>
|
||||
<provider class="com.arc.cdt.toolchain.arc.language.settings.providers.ClangBuiltinSpecsDetector" console="false" env-hash="1787380308889999976" id="com.arc.cdt.toolchain.arc.language.settings.providers.ClangBuiltinSpecsDetector" keep-relative-paths="false" name="MetaWare CCAC Built-in Compiler Settings" parameter="ccac ${FLAGS} -v -dM -E "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
</extension>
|
||||
</configuration>
|
||||
<configuration id="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224" name="Release">
|
||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider copy-of="extension" id="com.arc.cdt.toolchain.arc.language.settings.providers.MccBuildCommandParser"/>
|
||||
<provider class="com.arc.cdt.toolchain.arc.language.settings.providers.MccBuiltinSpecsDetector" console="false" env-hash="1762254812507760552" id="com.arc.cdt.toolchain.arc.language.settings.providers.MccBuiltinSpecsDetector" keep-relative-paths="false" name="MetaWare MCC Built-in Compiler Settings" parameter="mcc ${FLAGS} -Hbatchnotmp -Hnoobj "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
<provider copy-of="extension" id="com.arc.cdt.toolchain.arc.language.settings.providers.ClangBuildCommandParser"/>
|
||||
<provider class="com.arc.cdt.toolchain.arc.language.settings.providers.ClangBuiltinSpecsDetector" console="false" env-hash="1749146334280612392" id="com.arc.cdt.toolchain.arc.language.settings.providers.ClangBuiltinSpecsDetector" keep-relative-paths="false" name="MetaWare CCAC Built-in Compiler Settings" parameter="ccac ${FLAGS} -v -dM -E "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
</extension>
|
||||
</configuration>
|
||||
</project>
|
@ -0,0 +1,368 @@
|
||||
/* 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 DEMO_STACK_SIZE 1024
|
||||
#define DEMO_BYTE_POOL_SIZE 9120
|
||||
#define DEMO_BLOCK_POOL_SIZE 100
|
||||
#define DEMO_QUEUE_SIZE 100
|
||||
|
||||
|
||||
/* Define the ThreadX object control blocks... */
|
||||
|
||||
TX_THREAD thread_0;
|
||||
TX_THREAD thread_1;
|
||||
TX_THREAD thread_2;
|
||||
TX_THREAD thread_3;
|
||||
TX_THREAD thread_4;
|
||||
TX_THREAD thread_5;
|
||||
TX_THREAD thread_6;
|
||||
TX_THREAD thread_7;
|
||||
TX_QUEUE queue_0;
|
||||
TX_SEMAPHORE semaphore_0;
|
||||
TX_MUTEX mutex_0;
|
||||
TX_EVENT_FLAGS_GROUP event_flags_0;
|
||||
TX_BYTE_POOL byte_pool_0;
|
||||
TX_BLOCK_POOL block_pool_0;
|
||||
|
||||
|
||||
/* Define the counters used in the demo application... */
|
||||
|
||||
ULONG thread_0_counter;
|
||||
ULONG thread_1_counter;
|
||||
ULONG thread_1_messages_sent;
|
||||
ULONG thread_2_counter;
|
||||
ULONG thread_2_messages_received;
|
||||
ULONG thread_3_counter;
|
||||
ULONG thread_4_counter;
|
||||
ULONG thread_5_counter;
|
||||
ULONG thread_6_counter;
|
||||
ULONG thread_7_counter;
|
||||
|
||||
|
||||
/* Define thread prototypes. */
|
||||
|
||||
void thread_0_entry(ULONG thread_input);
|
||||
void thread_1_entry(ULONG thread_input);
|
||||
void thread_2_entry(ULONG thread_input);
|
||||
void thread_3_and_4_entry(ULONG thread_input);
|
||||
void thread_5_entry(ULONG thread_input);
|
||||
void thread_6_and_7_entry(ULONG thread_input);
|
||||
|
||||
/* 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)
|
||||
{
|
||||
|
||||
CHAR *pointer = TX_NULL;
|
||||
|
||||
|
||||
/* Create a byte memory pool from which to allocate the thread stacks. */
|
||||
tx_byte_pool_create(&byte_pool_0, "byte pool 0", first_unused_memory, DEMO_BYTE_POOL_SIZE);
|
||||
|
||||
/* Put system definition stuff in here, e.g. thread creates and other assorted
|
||||
create information. */
|
||||
|
||||
/* Allocate the stack for thread 0. */
|
||||
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
|
||||
|
||||
/* Create the main thread. */
|
||||
tx_thread_create(&thread_0, "thread 0", thread_0_entry, 0,
|
||||
pointer, DEMO_STACK_SIZE,
|
||||
1, 1, TX_NO_TIME_SLICE, TX_AUTO_START);
|
||||
|
||||
/* Allocate the stack for thread 1. */
|
||||
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
|
||||
|
||||
/* Create threads 1 and 2. These threads pass information through a ThreadX
|
||||
message queue. It is also interesting to note that these threads have a time
|
||||
slice. */
|
||||
tx_thread_create(&thread_1, "thread 1", thread_1_entry, 1,
|
||||
pointer, DEMO_STACK_SIZE,
|
||||
16, 16, 4, TX_AUTO_START);
|
||||
|
||||
/* Allocate the stack for thread 2. */
|
||||
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
|
||||
|
||||
tx_thread_create(&thread_2, "thread 2", thread_2_entry, 2,
|
||||
pointer, DEMO_STACK_SIZE,
|
||||
16, 16, 4, TX_AUTO_START);
|
||||
|
||||
/* Allocate the stack for thread 3. */
|
||||
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
|
||||
|
||||
/* Create threads 3 and 4. These threads compete for a ThreadX counting semaphore.
|
||||
An interesting thing here is that both threads share the same instruction area. */
|
||||
tx_thread_create(&thread_3, "thread 3", thread_3_and_4_entry, 3,
|
||||
pointer, DEMO_STACK_SIZE,
|
||||
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
|
||||
|
||||
/* Allocate the stack for thread 4. */
|
||||
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
|
||||
|
||||
tx_thread_create(&thread_4, "thread 4", thread_3_and_4_entry, 4,
|
||||
pointer, DEMO_STACK_SIZE,
|
||||
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
|
||||
|
||||
/* Allocate the stack for thread 5. */
|
||||
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
|
||||
|
||||
/* Create thread 5. This thread simply pends on an event flag which will be set
|
||||
by thread_0. */
|
||||
tx_thread_create(&thread_5, "thread 5", thread_5_entry, 5,
|
||||
pointer, DEMO_STACK_SIZE,
|
||||
4, 4, TX_NO_TIME_SLICE, TX_AUTO_START);
|
||||
|
||||
/* Allocate the stack for thread 6. */
|
||||
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
|
||||
|
||||
/* Create threads 6 and 7. These threads compete for a ThreadX mutex. */
|
||||
tx_thread_create(&thread_6, "thread 6", thread_6_and_7_entry, 6,
|
||||
pointer, DEMO_STACK_SIZE,
|
||||
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
|
||||
|
||||
/* Allocate the stack for thread 7. */
|
||||
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
|
||||
|
||||
tx_thread_create(&thread_7, "thread 7", thread_6_and_7_entry, 7,
|
||||
pointer, DEMO_STACK_SIZE,
|
||||
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
|
||||
|
||||
/* Allocate the message queue. */
|
||||
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_QUEUE_SIZE*sizeof(ULONG), TX_NO_WAIT);
|
||||
|
||||
/* Create the message queue shared by threads 1 and 2. */
|
||||
tx_queue_create(&queue_0, "queue 0", TX_1_ULONG, pointer, DEMO_QUEUE_SIZE*sizeof(ULONG));
|
||||
|
||||
/* Create the semaphore used by threads 3 and 4. */
|
||||
tx_semaphore_create(&semaphore_0, "semaphore 0", 1);
|
||||
|
||||
/* Create the event flags group used by threads 1 and 5. */
|
||||
tx_event_flags_create(&event_flags_0, "event flags 0");
|
||||
|
||||
/* Create the mutex used by thread 6 and 7 without priority inheritance. */
|
||||
tx_mutex_create(&mutex_0, "mutex 0", TX_NO_INHERIT);
|
||||
|
||||
/* Allocate the memory for a small block pool. */
|
||||
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_BLOCK_POOL_SIZE, TX_NO_WAIT);
|
||||
|
||||
/* Create a block memory pool to allocate a message buffer from. */
|
||||
tx_block_pool_create(&block_pool_0, "block pool 0", sizeof(ULONG), pointer, DEMO_BLOCK_POOL_SIZE);
|
||||
|
||||
/* Allocate a block and release the block memory. */
|
||||
tx_block_allocate(&block_pool_0, (VOID **) &pointer, TX_NO_WAIT);
|
||||
|
||||
/* Release the block back to the pool. */
|
||||
tx_block_release(pointer);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Define the test threads. */
|
||||
|
||||
void thread_0_entry(ULONG thread_input)
|
||||
{
|
||||
|
||||
UINT status;
|
||||
|
||||
/* This thread simply sits in while-forever-sleep loop. */
|
||||
while(1)
|
||||
{
|
||||
|
||||
/* Increment the thread counter. */
|
||||
thread_0_counter++;
|
||||
|
||||
/* Sleep for 10 ticks. */
|
||||
tx_thread_sleep(10);
|
||||
|
||||
/* Set event flag 0 to wakeup thread 5. */
|
||||
status = tx_event_flags_set(&event_flags_0, 0x1, TX_OR);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void 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. */
|
||||
thread_1_counter++;
|
||||
|
||||
/* Send message to queue 0. */
|
||||
status = tx_queue_send(&queue_0, &thread_1_messages_sent, TX_WAIT_FOREVER);
|
||||
|
||||
/* Check completion status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
|
||||
/* Increment the message sent. */
|
||||
thread_1_messages_sent++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void 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. */
|
||||
thread_2_counter++;
|
||||
|
||||
/* Retrieve a message from the queue. */
|
||||
status = tx_queue_receive(&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 != thread_2_messages_received))
|
||||
break;
|
||||
|
||||
/* Otherwise, all is okay. Increment the received message count. */
|
||||
thread_2_messages_received++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
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)
|
||||
{
|
||||
|
||||
/* Increment the thread counter. */
|
||||
if (thread_input == 3)
|
||||
thread_3_counter++;
|
||||
else
|
||||
thread_4_counter++;
|
||||
|
||||
/* Get the semaphore with suspension. */
|
||||
status = tx_semaphore_get(&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(&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)
|
||||
{
|
||||
|
||||
/* Increment the thread counter. */
|
||||
thread_5_counter++;
|
||||
|
||||
/* Wait for event flag 0. */
|
||||
status = tx_event_flags_get(&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)
|
||||
{
|
||||
|
||||
/* Increment the thread counter. */
|
||||
if (thread_input == 6)
|
||||
thread_6_counter++;
|
||||
else
|
||||
thread_7_counter++;
|
||||
|
||||
/* Get the mutex with suspension. */
|
||||
status = tx_mutex_get(&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(&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(&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(&mutex_0);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
}
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
//
|
||||
// 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
|
||||
}
|
@ -0,0 +1,360 @@
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* 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.0.1 */
|
||||
;/* 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 */
|
||||
;/* */
|
||||
;/* 06-30-2020 William E. Lamie Initial Version 6.0.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);
|
||||
;
|
||||
st sp, [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
|
29
ports/arc_em/metaware/example_build/sample_threadx/vectors.s
Normal file
29
ports/arc_em/metaware/example_build/sample_threadx/vectors.s
Normal file
@ -0,0 +1,29 @@
|
||||
|
||||
.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
|
||||
|
137
ports/arc_em/metaware/example_build/tx/.cproject
Normal file
137
ports/arc_em/metaware/example_build/tx/.cproject
Normal file
@ -0,0 +1,137 @@
|
||||
<?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>
|
48
ports/arc_em/metaware/example_build/tx/.project
Normal file
48
ports/arc_em/metaware/example_build/tx/.project
Normal file
@ -0,0 +1,48 @@
|
||||
<?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>
|
@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<project>
|
||||
<configuration id="com.arc.cdt.toolchain.av2em.libDebugConfig.732975342" name="Debug">
|
||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider copy-of="extension" id="com.arc.cdt.toolchain.arc.language.settings.providers.MccBuildCommandParser"/>
|
||||
<provider class="com.arc.cdt.toolchain.arc.language.settings.providers.MccBuiltinSpecsDetector" console="false" env-hash="1736241007515056712" id="com.arc.cdt.toolchain.arc.language.settings.providers.MccBuiltinSpecsDetector" keep-relative-paths="false" name="MetaWare MCC Built-in Compiler Settings" parameter="mcc ${FLAGS} -Hbatchnotmp -Hnoobj "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
<provider class="com.arc.cdt.toolchain.arc.language.settings.providers.ClangBuildCommandParser" id="com.arc.cdt.toolchain.arc.language.settings.providers.ClangBuildCommandParser" keep-relative-paths="false" name="MetaWare CCAC Build Output Parser" parameter="ccac" prefer-non-shared="true"/>
|
||||
<provider class="com.arc.cdt.toolchain.arc.language.settings.providers.ClangBuiltinSpecsDetector" console="false" env-hash="1722564879158465096" id="com.arc.cdt.toolchain.arc.language.settings.providers.ClangBuiltinSpecsDetector" keep-relative-paths="false" name="MetaWare CCAC Built-in Compiler Settings" parameter="ccac ${FLAGS} -v -dM -E "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
</extension>
|
||||
</configuration>
|
||||
<configuration id="com.arc.cdt.toolchain.av2em.libReleaseConfig.1738957053" name="Release">
|
||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider copy-of="extension" id="com.arc.cdt.toolchain.arc.language.settings.providers.MccBuildCommandParser"/>
|
||||
<provider class="com.arc.cdt.toolchain.arc.language.settings.providers.MccBuiltinSpecsDetector" console="false" env-hash="1762254812507760552" id="com.arc.cdt.toolchain.arc.language.settings.providers.MccBuiltinSpecsDetector" keep-relative-paths="false" name="MetaWare MCC Built-in Compiler Settings" parameter="mcc ${FLAGS} -Hbatchnotmp -Hnoobj "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
<provider copy-of="extension" id="com.arc.cdt.toolchain.arc.language.settings.providers.ClangBuildCommandParser"/>
|
||||
<provider class="com.arc.cdt.toolchain.arc.language.settings.providers.ClangBuiltinSpecsDetector" console="false" env-hash="1749146334280612392" id="com.arc.cdt.toolchain.arc.language.settings.providers.ClangBuiltinSpecsDetector" keep-relative-paths="false" name="MetaWare CCAC Built-in Compiler Settings" parameter="ccac ${FLAGS} -v -dM -E "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
</extension>
|
||||
</configuration>
|
||||
</project>
|
325
ports/arc_em/metaware/inc/tx_port.h
Normal file
325
ports/arc_em/metaware/inc/tx_port.h
Normal file
@ -0,0 +1,325 @@
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* 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 */
|
||||
/** */
|
||||
/** Port Specific */
|
||||
/** */
|
||||
/**************************************************************************/
|
||||
/**************************************************************************/
|
||||
|
||||
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* PORT SPECIFIC C INFORMATION RELEASE */
|
||||
/* */
|
||||
/* tx_port.h ARCv2_EM/MetaWare */
|
||||
/* 6.0.1 */
|
||||
/* */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* William E. Lamie, Microsoft Corporation */
|
||||
/* */
|
||||
/* DESCRIPTION */
|
||||
/* */
|
||||
/* This file contains data type definitions that make the ThreadX */
|
||||
/* real-time kernel function identically on a variety of different */
|
||||
/* processor architectures. For example, the size or number of bits */
|
||||
/* in an "int" data type vary between microprocessor architectures and */
|
||||
/* even C compilers for the same microprocessor. ThreadX does not */
|
||||
/* directly use native C data types. Instead, ThreadX creates its */
|
||||
/* own special types that can be mapped to actual data types by this */
|
||||
/* file to guarantee consistency in the interface and functionality. */
|
||||
/* */
|
||||
/* RELEASE HISTORY */
|
||||
/* */
|
||||
/* DATE NAME DESCRIPTION */
|
||||
/* */
|
||||
/* 06-30-2020 William E. Lamie Initial Version 6.0.1 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
|
||||
#ifndef TX_PORT_H
|
||||
#define TX_PORT_H
|
||||
|
||||
|
||||
/* Remove volatile for ThreadX source on the ARC. This is because the ARC
|
||||
compiler generates different non-cache r/w access when using volatile
|
||||
that is different from the assembly language access of the same
|
||||
global variables in ThreadX. */
|
||||
|
||||
#ifdef TX_SOURCE_CODE
|
||||
#define volatile
|
||||
#else
|
||||
#ifdef NX_SOURCE_CODE
|
||||
#define volatile
|
||||
#else
|
||||
#ifdef FX_SOURCE_CODE
|
||||
#define volatile
|
||||
#else
|
||||
#ifdef UX_SOURCE_CODE
|
||||
#define volatile
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
/* Determine if the optional ThreadX user define file should be used. */
|
||||
|
||||
#ifdef TX_INCLUDE_USER_DEFINE_FILE
|
||||
|
||||
|
||||
/* Yes, include the user defines in tx_user.h. The defines in this file may
|
||||
alternately be defined on the command line. */
|
||||
|
||||
#include "tx_user.h"
|
||||
#endif
|
||||
|
||||
|
||||
/* Define compiler library include files. */
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
/* Define ThreadX basic types for this port. */
|
||||
|
||||
#define VOID void
|
||||
typedef char CHAR;
|
||||
typedef unsigned char UCHAR;
|
||||
typedef int INT;
|
||||
typedef unsigned int UINT;
|
||||
typedef long LONG;
|
||||
typedef unsigned long ULONG;
|
||||
typedef short SHORT;
|
||||
typedef unsigned short USHORT;
|
||||
|
||||
|
||||
/* Define the priority levels for ThreadX. Legal values range
|
||||
from 32 to 1024 and MUST be evenly divisible by 32. */
|
||||
|
||||
#ifndef TX_MAX_PRIORITIES
|
||||
#define TX_MAX_PRIORITIES 32
|
||||
#endif
|
||||
|
||||
|
||||
/* Define the minimum stack for a ThreadX thread on this processor. If the size supplied during
|
||||
thread creation is less than this value, the thread create call will return an error. */
|
||||
|
||||
#ifndef TX_MINIMUM_STACK
|
||||
#define TX_MINIMUM_STACK 800 /* Minimum stack size for this port */
|
||||
#endif
|
||||
|
||||
|
||||
/* Define the system timer thread's default stack size and priority. These are only applicable
|
||||
if TX_TIMER_PROCESS_IN_ISR is not defined. */
|
||||
|
||||
#ifndef TX_TIMER_THREAD_STACK_SIZE
|
||||
#define TX_TIMER_THREAD_STACK_SIZE 2048 /* Default timer thread stack size */
|
||||
#endif
|
||||
|
||||
#ifndef TX_TIMER_THREAD_PRIORITY
|
||||
#define TX_TIMER_THREAD_PRIORITY 0 /* Default timer thread priority */
|
||||
#endif
|
||||
|
||||
|
||||
/* Define various constants for the ThreadX ARCv2 EM port. */
|
||||
|
||||
#define TX_INT_ENABLE 0x0000001F /* Enable all interrupts */
|
||||
#define TX_INT_DISABLE_MASK 0x00000000 /* Disable all interrupts */
|
||||
|
||||
|
||||
/* Define the clock source for trace event entry time stamp. The following two item are port specific.
|
||||
For example, if the time source is at the address 0x0a800024 and is 16-bits in size, the clock
|
||||
source constants would be:
|
||||
|
||||
#define TX_TRACE_TIME_SOURCE *((ULONG *) 0x0a800024)
|
||||
#define TX_TRACE_TIME_MASK 0x0000FFFFUL
|
||||
|
||||
*/
|
||||
|
||||
#ifndef TX_MISRA_ENABLE
|
||||
#ifndef TX_TRACE_TIME_SOURCE
|
||||
#define TX_TRACE_TIME_SOURCE ++_tx_trace_simulated_time
|
||||
#endif
|
||||
#else
|
||||
ULONG _tx_misra_time_stamp_get(VOID);
|
||||
#define TX_TRACE_TIME_SOURCE _tx_misra_time_stamp_get()
|
||||
#endif
|
||||
|
||||
#ifndef TX_TRACE_TIME_MASK
|
||||
#define TX_TRACE_TIME_MASK 0xFFFFFFFFUL
|
||||
#endif
|
||||
|
||||
|
||||
/* Define the port specific options for the _tx_build_options variable. This variable indicates
|
||||
how the ThreadX library was built. */
|
||||
|
||||
#define TX_PORT_SPECIFIC_BUILD_OPTIONS (0)
|
||||
|
||||
|
||||
/* Define the in-line initialization constant so that modules with in-line
|
||||
initialization capabilities can prevent their initialization from being
|
||||
a function call. */
|
||||
|
||||
#ifdef TX_MISRA_ENABLE
|
||||
#define TX_DISABLE_INLINE
|
||||
#else
|
||||
#define TX_INLINE_INITIALIZATION
|
||||
#endif
|
||||
|
||||
|
||||
/* 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. */
|
||||
|
||||
#ifndef TX_MISRA_ENABLE
|
||||
#ifdef TX_ENABLE_STACK_CHECKING
|
||||
#undef TX_DISABLE_STACK_FILLING
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
/* Define the TX_THREAD control block extensions for this port. The main reason
|
||||
for the multiple macros is so that backward compatibility can be maintained with
|
||||
existing ThreadX kernel awareness modules. */
|
||||
|
||||
#define TX_THREAD_EXTENSION_0 VOID *__mw_threadx_tls; \
|
||||
int __mw_errnum; \
|
||||
VOID (*__mw_thread_exit)(struct TX_THREAD_STRUCT *);
|
||||
#define TX_THREAD_EXTENSION_1
|
||||
#define TX_THREAD_EXTENSION_2
|
||||
#define TX_THREAD_EXTENSION_3
|
||||
|
||||
|
||||
/* Define the port extensions of the remaining ThreadX objects. */
|
||||
|
||||
#define TX_BLOCK_POOL_EXTENSION
|
||||
#define TX_BYTE_POOL_EXTENSION
|
||||
#define TX_EVENT_FLAGS_GROUP_EXTENSION
|
||||
#define TX_MUTEX_EXTENSION
|
||||
#define TX_QUEUE_EXTENSION
|
||||
#define TX_SEMAPHORE_EXTENSION
|
||||
#define TX_TIMER_EXTENSION
|
||||
|
||||
|
||||
/* Define the user extension field of the thread control block. Nothing
|
||||
additional is needed for this port so it is defined as white space. */
|
||||
|
||||
#ifndef TX_THREAD_USER_EXTENSION
|
||||
#define TX_THREAD_USER_EXTENSION
|
||||
#endif
|
||||
|
||||
|
||||
/* Define the macros for processing extensions in tx_thread_create, tx_thread_delete,
|
||||
tx_thread_shell_entry, and tx_thread_terminate. */
|
||||
|
||||
#if __HIGHC__
|
||||
|
||||
/* The MetaWare thread safe C/C++ runtime library needs space to
|
||||
store thread specific information. In addition, a function pointer
|
||||
is also supplied so that certain thread-specific resources may be
|
||||
released upon thread termination and/or thread completion. */
|
||||
|
||||
#define TX_THREAD_CREATE_EXTENSION(thread_ptr) \
|
||||
thread_ptr -> __mw_threadx_tls = 0; \
|
||||
thread_ptr -> __mw_errnum = 0; \
|
||||
thread_ptr -> __mw_thread_exit = TX_NULL;
|
||||
#define TX_THREAD_DELETE_EXTENSION(thread_ptr)
|
||||
#define TX_THREAD_COMPLETED_EXTENSION(thread_ptr) \
|
||||
if (thread_ptr -> __mw_thread_exit) \
|
||||
(thread_ptr -> __mw_thread_exit) (thread_ptr);
|
||||
#define TX_THREAD_TERMINATED_EXTENSION(thread_ptr) \
|
||||
if (thread_ptr -> __mw_thread_exit) \
|
||||
(thread_ptr -> __mw_thread_exit) (thread_ptr);
|
||||
|
||||
#else
|
||||
|
||||
#define TX_THREAD_CREATE_EXTENSION(thread_ptr)
|
||||
#define TX_THREAD_DELETE_EXTENSION(thread_ptr)
|
||||
#define TX_THREAD_COMPLETED_EXTENSION(thread_ptr)
|
||||
#define TX_THREAD_TERMINATED_EXTENSION(thread_ptr)
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/* Define the ThreadX object creation extensions for the remaining objects. */
|
||||
|
||||
#define TX_BLOCK_POOL_CREATE_EXTENSION(pool_ptr)
|
||||
#define TX_BYTE_POOL_CREATE_EXTENSION(pool_ptr)
|
||||
#define TX_EVENT_FLAGS_GROUP_CREATE_EXTENSION(group_ptr)
|
||||
#define TX_MUTEX_CREATE_EXTENSION(mutex_ptr)
|
||||
#define TX_QUEUE_CREATE_EXTENSION(queue_ptr)
|
||||
#define TX_SEMAPHORE_CREATE_EXTENSION(semaphore_ptr)
|
||||
#define TX_TIMER_CREATE_EXTENSION(timer_ptr)
|
||||
|
||||
|
||||
/* Define the ThreadX object deletion extensions for the remaining objects. */
|
||||
|
||||
#define TX_BLOCK_POOL_DELETE_EXTENSION(pool_ptr)
|
||||
#define TX_BYTE_POOL_DELETE_EXTENSION(pool_ptr)
|
||||
#define TX_EVENT_FLAGS_GROUP_DELETE_EXTENSION(group_ptr)
|
||||
#define TX_MUTEX_DELETE_EXTENSION(mutex_ptr)
|
||||
#define TX_QUEUE_DELETE_EXTENSION(queue_ptr)
|
||||
#define TX_SEMAPHORE_DELETE_EXTENSION(semaphore_ptr)
|
||||
#define TX_TIMER_DELETE_EXTENSION(timer_ptr)
|
||||
|
||||
|
||||
/* Define ThreadX interrupt lockout and restore macros for protection on
|
||||
access of critical kernel information. The restore interrupt macro must
|
||||
restore the interrupt posture of the running thread prior to the value
|
||||
present prior to the disable macro. In most cases, the save area macro
|
||||
is used to define a local function save area for the disable and restore
|
||||
macros. */
|
||||
|
||||
|
||||
#define TX_INTERRUPT_SAVE_AREA register unsigned int interrupt_save;
|
||||
|
||||
#define TX_DISABLE interrupt_save = _clri();
|
||||
#define TX_RESTORE _seti(interrupt_save);
|
||||
|
||||
|
||||
/* Define the interrupt lockout macros for each ThreadX object. */
|
||||
|
||||
#define TX_BLOCK_POOL_DISABLE TX_DISABLE
|
||||
#define TX_BYTE_POOL_DISABLE TX_DISABLE
|
||||
#define TX_EVENT_FLAGS_GROUP_DISABLE TX_DISABLE
|
||||
#define TX_MUTEX_DISABLE TX_DISABLE
|
||||
#define TX_QUEUE_DISABLE TX_DISABLE
|
||||
#define TX_SEMAPHORE_DISABLE TX_DISABLE
|
||||
|
||||
|
||||
/* Define the version ID of ThreadX. This may be utilized by the application. */
|
||||
|
||||
#ifdef TX_THREAD_INIT
|
||||
CHAR _tx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARCv2_EM/MetaWare Version 6.0 *";
|
||||
#else
|
||||
#ifdef TX_MISRA_ENABLE
|
||||
extern CHAR _tx_version_id[100];
|
||||
#else
|
||||
extern CHAR _tx_version_id[];
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
219
ports/arc_em/metaware/readme_threadx.txt
Normal file
219
ports/arc_em/metaware/readme_threadx.txt
Normal file
@ -0,0 +1,219 @@
|
||||
Microsoft's Azure RTOS ThreadX for ARC EM
|
||||
|
||||
Using the MetaWare Tools
|
||||
|
||||
1. Open the Azure RTOS Workspace
|
||||
|
||||
In order to build the ThreadX library and the ThreadX demonstration first load
|
||||
the Azure RTOS Workspace, which is located inside the "example_build" directory.
|
||||
|
||||
|
||||
2. Building the ThreadX run-time Library
|
||||
|
||||
Building the ThreadX library is easy; simply select the ThreadX library project
|
||||
file "tx" and then select the build button. You should now observe the compilation
|
||||
and assembly of the ThreadX library. This project build produces the ThreadX
|
||||
library file tx.a.
|
||||
|
||||
|
||||
3. Demonstration System
|
||||
|
||||
The ThreadX demonstration is designed to execute under the MetaWare ARCv2 EM
|
||||
simulation. The instructions that follow describe how to get the ThreadX
|
||||
demonstration running.
|
||||
|
||||
Building the demonstration is easy; simply select the demonstration project file
|
||||
"sample_threadx." At this point, select the build button and observe the
|
||||
compilation, assembly, and linkage of the ThreadX demonstration application.
|
||||
|
||||
After the demonstration is built, click on the "Debug" button and it will
|
||||
automatically launch a pre-configured connection to the ARCv2 EM simulator.
|
||||
|
||||
You are now ready to execute the ThreadX demonstration system. Select
|
||||
breakpoints and data watches to observe the execution of the sample_threadx.c
|
||||
application.
|
||||
|
||||
|
||||
4. System Initialization
|
||||
|
||||
The system entry point using the MetaWare tools is at the label _start.
|
||||
This is defined within the crt1.s file supplied by MetaWare. In addition,
|
||||
this is where all static and global preset C variable initialization
|
||||
processing is called from.
|
||||
|
||||
After the MetaWare startup function completes, ThreadX initialization is
|
||||
called. The main initialization function is _tx_initialize_low_level and
|
||||
is located in the file tx_initialize_low_level.s. This function is
|
||||
responsible for setting up various system data structures, and interrupt
|
||||
vectors.
|
||||
|
||||
By default free memory is assumed to start at the section .free_memory
|
||||
which is referenced in tx_initialize_low_level.s and located in the
|
||||
linker control file after all the linker defined RAM addresses. This is
|
||||
the address passed to the application definition function, tx_application_define.
|
||||
|
||||
|
||||
5. Register Usage and Stack Frames
|
||||
|
||||
The ARC compiler assumes that registers r0-r12 are scratch registers for
|
||||
each function. All other registers used by a C function must be preserved
|
||||
by the function. ThreadX takes advantage of this in situations where a
|
||||
context switch happens as a result of making a ThreadX service call (which
|
||||
is itself a C function). In such cases, the saved context of a thread is
|
||||
only the non-scratch registers.
|
||||
|
||||
The following defines the saved context stack frames for context switches
|
||||
that occur as a result of interrupt handling or from thread-level API calls.
|
||||
All suspended threads have one of these two types of stack frames. The top
|
||||
of the suspended thread's stack is pointed to by tx_thread_stack_ptr in the
|
||||
associated thread control block TX_THREAD.
|
||||
|
||||
|
||||
|
||||
Offset Interrupted Stack Frame Non-Interrupt Stack Frame
|
||||
|
||||
0x00 1 0
|
||||
0x04 LP_START blink
|
||||
0x08 LP_END fp
|
||||
0x0C LP_COUNT r26
|
||||
0x10 blink r25
|
||||
0x14 ilink r24
|
||||
0x18 fp r23
|
||||
0x1C r26 r22
|
||||
0x20 r25 r21
|
||||
0x24 r24 r20
|
||||
0x28 r23 r19
|
||||
0x2C r22 r18
|
||||
0x30 r21 r17
|
||||
0x34 r20 r16
|
||||
0x38 r19 r15
|
||||
0x3C r18 r14
|
||||
0x40 r17 r13
|
||||
0x44 r16 STATUS32
|
||||
0x48 r15 r30
|
||||
0x4C r14
|
||||
0x50 r13
|
||||
0x54 r12
|
||||
0x58 r11
|
||||
0x5C r10
|
||||
0x60 r9
|
||||
0x64 r8
|
||||
0x68 r7
|
||||
0x6C r6
|
||||
0x70 r5
|
||||
0x74 r4
|
||||
0x78 r3
|
||||
0x7C r2
|
||||
0x80 r1
|
||||
0x84 r0
|
||||
0x88 r30
|
||||
0x8C r58 (if TX_ENABLE_ACC defined)
|
||||
0x90 r59 (if TX_ENABLE_ACC defined)
|
||||
0x94 reserved
|
||||
0x98 reserved
|
||||
0x9C bta
|
||||
0xA0 point of interrupt
|
||||
0xA4 STATUS32
|
||||
|
||||
|
||||
|
||||
6. Improving Performance
|
||||
|
||||
The distribution version of ThreadX is built without any compiler
|
||||
optimizations. This makes it easy to debug because you can trace or set
|
||||
breakpoints inside of ThreadX itself. Of course, this costs some
|
||||
performance. To make it run faster, you can change the build_threadx.bat
|
||||
file to remove the -g option and enable all compiler optimizations.
|
||||
|
||||
In addition, you can eliminate the ThreadX basic API error checking by
|
||||
compiling your application code with the symbol TX_DISABLE_ERROR_CHECKING
|
||||
defined.
|
||||
|
||||
|
||||
7. Interrupt Handling
|
||||
|
||||
ThreadX provides complete and high-performance interrupt handling for the
|
||||
ARCv2 EM processor. The following template should be used for interrupts
|
||||
managed by ThreadX:
|
||||
|
||||
.global _tx_interrupt_x
|
||||
_tx_interrupt_x:
|
||||
sub sp, sp, 160 ; Allocate an interrupt stack frame
|
||||
st blink, [sp, 16] ; Save blink (blink must be saved before _tx_thread_context_save)
|
||||
bl _tx_thread_context_save ; Save interrupt context
|
||||
;
|
||||
; /* Application ISR processing goes here! Your ISR can be written in
|
||||
; assembly language or in C. If it is written in C, you must allocate
|
||||
; 16 bytes of stack space before it is called. This must also be
|
||||
; recovered once your C ISR return. An example of this is shown below.
|
||||
;
|
||||
; If the ISR is written in assembly language, only the compiler scratch
|
||||
; registers are available for use without saving/restoring (r0-r12).
|
||||
; If use of additional registers are required they must be saved and
|
||||
; restored. */
|
||||
;
|
||||
bl.d your_ISR_written_in_C ; Call an ISR written in C
|
||||
sub sp, sp, 16 ; Allocate stack space (delay slot)
|
||||
add sp, sp, 16 ; Recover stack space
|
||||
|
||||
;
|
||||
b _tx_thread_context_restore ; Restore interrupt context
|
||||
|
||||
|
||||
The application handle interrupts directly, which necessitates all register
|
||||
preservation by the application's ISR. ISRs that do not use the ThreadX
|
||||
_tx_thread_context_save and _tx_thread_context_restore routines are not
|
||||
allowed access to the ThreadX API. In addition, custom application ISRs
|
||||
should be higher priority than all ThreadX-managed ISRs.
|
||||
|
||||
|
||||
8. ThreadX Timer Interrupt
|
||||
|
||||
ThreadX requires a periodic interrupt source to manage all time-slicing,
|
||||
thread sleeps, timeouts, and application timers. Without such a timer
|
||||
interrupt source, these services are not functional but the remainder of
|
||||
ThreadX will still run.
|
||||
|
||||
By default, the ThreadX timer interrupt is mapped to the ARCv2 EM auxiliary
|
||||
timer 0, which generates low priority interrupts on interrupt vector 16.
|
||||
It is easy to change the timer interrupt source and priority by changing the
|
||||
setup code in tx_initialize_low_level.s.
|
||||
|
||||
|
||||
9. Hardware Stack Checking
|
||||
|
||||
ThreadX optionally supports the ARCv2 EM hardware stack checking feature. When enabled,
|
||||
the KSTACK_TOP and KSTACK_BASE registers are loaded with the stack top/bottom before
|
||||
each thread's execution. In addition, the SC bit of STATUS32 is set to enable the stack
|
||||
checking feature. During initialization, idle, or interrupt processing, the hardware
|
||||
stack checking on the system stack is performed, when enabled.
|
||||
|
||||
To enable ThreadX support for hardware stack checking, simply build the ThreadX library
|
||||
and application assembly code with TX_ENABLE_HW_STACK_CHECKING defined. This will enable
|
||||
the stack checking logic in ThreadX.
|
||||
|
||||
For the system stack checking to function properly, there are two sections that must
|
||||
be located around the .stack section, which defines the system stack location and size.
|
||||
The new sections are .stack_top and .stack_base. The .stack_top section should be placed
|
||||
immediately BEFORE the .stack section and .stack_base should be placed immediately AFTER
|
||||
the .stack section. Please see the sample_threadx.cmd linker control file for an example.
|
||||
|
||||
When/if a stack exception occurs, the hardware will fetch the _tx_ev_protection_viol
|
||||
exception defined in tx_initialize_low_level.s. Processing for this exception is
|
||||
application specific.
|
||||
|
||||
|
||||
10. Revision History
|
||||
|
||||
For generic code revision information, please refer to the readme_threadx_generic.txt
|
||||
file, which is included in your distribution. The following details the revision
|
||||
information associated with this specific port of ThreadX:
|
||||
|
||||
06/30/2020 Initial ThreadX 6.0.1 for ARCv2 EM using MetaWare tools.
|
||||
|
||||
|
||||
Copyright(c) 1996-2020 Microsoft Corporation
|
||||
|
||||
|
||||
https://azure.com/rtos
|
||||
|
360
ports/arc_em/metaware/src/tx_initialize_low_level.s
Normal file
360
ports/arc_em/metaware/src/tx_initialize_low_level.s
Normal file
@ -0,0 +1,360 @@
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* 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.0.1 */
|
||||
;/* 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 */
|
||||
;/* */
|
||||
;/* 06-30-2020 William E. Lamie Initial Version 6.0.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);
|
||||
;
|
||||
st sp, [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
|
302
ports/arc_em/metaware/src/tx_thread_context_restore.s
Normal file
302
ports/arc_em/metaware/src/tx_thread_context_restore.s
Normal file
@ -0,0 +1,302 @@
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* 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 */
|
||||
;/** */
|
||||
;/** Thread */
|
||||
;/** */
|
||||
;/**************************************************************************/
|
||||
;/**************************************************************************/
|
||||
;
|
||||
;
|
||||
;#define TX_SOURCE_CODE
|
||||
;
|
||||
.equ BTA, 0x412
|
||||
.equ KSTACK_TOP, 0x264
|
||||
.equ KSTACK_BASE, 0x265
|
||||
.equ STATUS32_SC, 0x4000
|
||||
;
|
||||
;/* Include necessary system files. */
|
||||
;
|
||||
;#include "tx_api.h"
|
||||
;#include "tx_thread.h"
|
||||
;#include "tx_timer.h"
|
||||
;
|
||||
;
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* FUNCTION RELEASE */
|
||||
;/* */
|
||||
;/* _tx_thread_context_restore ARCv2_EM/MetaWare */
|
||||
;/* 6.0.1 */
|
||||
;/* AUTHOR */
|
||||
;/* */
|
||||
;/* William E. Lamie, Microsoft Corporation */
|
||||
;/* */
|
||||
;/* DESCRIPTION */
|
||||
;/* */
|
||||
;/* This function restores the interrupt context if it is processing a */
|
||||
;/* nested interrupt. If not, it returns to the interrupt thread if no */
|
||||
;/* preemption is necessary. Otherwise, if preemption is necessary or */
|
||||
;/* if no thread was running, the function returns to the scheduler. */
|
||||
;/* */
|
||||
;/* INPUT */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* OUTPUT */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* CALLS */
|
||||
;/* */
|
||||
;/* _tx_thread_schedule Thread scheduling routine */
|
||||
;/* */
|
||||
;/* CALLED BY */
|
||||
;/* */
|
||||
;/* ISRs Interrupt Service Routines */
|
||||
;/* */
|
||||
;/* RELEASE HISTORY */
|
||||
;/* */
|
||||
;/* DATE NAME DESCRIPTION */
|
||||
;/* */
|
||||
;/* 06-30-2020 William E. Lamie Initial Version 6.0.1 */
|
||||
;/* */
|
||||
;/**************************************************************************/
|
||||
;VOID _tx_thread_context_restore(VOID)
|
||||
;{
|
||||
.global _tx_thread_context_restore
|
||||
.type _tx_thread_context_restore, @function
|
||||
_tx_thread_context_restore:
|
||||
;
|
||||
; /* Note: it is assumed that the stack pointer is in the same position now as
|
||||
; it was after the last context save call. */
|
||||
;
|
||||
; /* Lockout interrupts. */
|
||||
;
|
||||
clri ; Disable interrupts
|
||||
nop ; Delay for interrupts to really be disabled
|
||||
|
||||
.ifdef TX_ENABLE_EXECUTION_CHANGE_NOTIFY
|
||||
;
|
||||
; /* Call the ISR exit function to indicate an ISR is complete. */
|
||||
;
|
||||
bl.d _tx_execution_isr_exit ; Call the ISR exit function
|
||||
sub sp, sp, 16 ; ..allocating some space on the stack
|
||||
add sp, sp, 16 ; Recover the stack space
|
||||
.endif
|
||||
;
|
||||
; /* Determine if interrupts are nested. */
|
||||
; if (--_tx_thread_system_state)
|
||||
; {
|
||||
;
|
||||
ld r0, [gp, _tx_thread_system_state@sda] ; Pickup system state contents
|
||||
sub r0, r0, 1 ; Decrement the system state
|
||||
st r0, [gp, _tx_thread_system_state@sda] ; Store the new system state
|
||||
breq r0, 0, __tx_thread_not_nested_restore ; If zero, not a nested interrupt
|
||||
;
|
||||
; /* Interrupts are nested. */
|
||||
;
|
||||
; /* Just recover the saved registers and return to the point of
|
||||
; interrupt. */
|
||||
;
|
||||
|
||||
__tx_thread_nested_restore:
|
||||
|
||||
ld r0, [sp, 4] ; Recover LP_START
|
||||
sr r0, [LP_START] ; Restore LP_START
|
||||
ld r1, [sp, 8] ; Recover LP_END
|
||||
sr r1, [LP_END] ; Restore LP_END
|
||||
ld r2, [sp, 12] ; Recover LP_COUNT
|
||||
mov LP_COUNT, r2
|
||||
ld r2, [sp, 156] ; Pickup BTA
|
||||
sr r2, [BTA] ; Recover BTA
|
||||
.ifdef TX_ENABLE_ACC
|
||||
ld r58, [sp, 140] ; Recover r58
|
||||
ld r59, [sp, 144] ; Recover r59
|
||||
.endif
|
||||
ld blink, [sp, 16] ; Recover blink
|
||||
ld r12, [sp, 84] ; Recover r12
|
||||
ld r11, [sp, 88] ; Recover r11
|
||||
ld r10, [sp, 92] ; Recover r10
|
||||
ld r9, [sp, 96] ; Recover r9
|
||||
ld r8, [sp, 100] ; Recover r8
|
||||
ld r7, [sp, 104] ; Recover r7
|
||||
ld r6, [sp, 108] ; Recover r6
|
||||
ld r5, [sp, 112] ; Recover r5
|
||||
ld r4, [sp, 116] ; Recover r4
|
||||
ld r3, [sp, 120] ; Recover r3
|
||||
ld r2, [sp, 124] ; Recover r2
|
||||
ld r1, [sp, 128] ; Recover r1
|
||||
ld r0, [sp, 132] ; Recover r0
|
||||
add sp, sp, 160 ; Recover interrupt stack frame
|
||||
rtie ; Return from interrupt
|
||||
;
|
||||
;
|
||||
; }
|
||||
__tx_thread_not_nested_restore:
|
||||
;
|
||||
; /* Determine if a thread was interrupted and no preemption is required. */
|
||||
; else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr)
|
||||
; || (_tx_thread_preempt_disable))
|
||||
; {
|
||||
;
|
||||
ld r0, [gp, _tx_thread_current_ptr@sda] ; Pickup current thread pointer
|
||||
ld r2, [gp, _tx_thread_preempt_disable@sda] ; Pickup preempt disable flag
|
||||
sub.f 0, r0, 0 ; Set condition codes
|
||||
beq.d __tx_thread_idle_system_restore ; If NULL, idle system was interrupted
|
||||
lr r4, [AUX_IRQ_ACT] ; Pickup the interrupt active register
|
||||
neg r5, r4 ; Negate
|
||||
and r5, r4, r5 ; See if there are any other interrupts present
|
||||
brne.d r4, r5, __tx_thread_no_preempt_restore ; If more interrupts, just return to the point of interrupt
|
||||
ld r4, [gp, _tx_thread_execute_ptr@sda] ; Pickup next thread to execute
|
||||
brne r2, 0, __tx_thread_no_preempt_restore ; If set, don't preempt executing thread
|
||||
brne r0, r4, __tx_thread_preempt_restore ; Not equal, preempt executing thread
|
||||
;
|
||||
;
|
||||
__tx_thread_no_preempt_restore:
|
||||
;
|
||||
; /* Restore interrupted thread or ISR. */
|
||||
;
|
||||
; /* Pickup the saved stack pointer. */
|
||||
; sp = _tx_thread_current_ptr -> tx_thread_stack_ptr;
|
||||
;
|
||||
|
||||
; /* Recover the saved context and return to the point of interrupt. */
|
||||
;
|
||||
|
||||
.ifdef TX_ENABLE_HW_STACK_CHECKING
|
||||
lr r2, [status32] ; Pickup current STATUS32
|
||||
and r2, r2, ~STATUS32_SC ; Clear the hardware stack checking enable bit (SC)
|
||||
kflag r2 ; Disable hardware stack checking
|
||||
ld r3, [r0, 12] ; Pickup the top of the thread's stack (lowest address)
|
||||
sr r3, [KSTACK_TOP] ; Setup KSTACK_TOP
|
||||
ld r3, [r0, 16] ; Pickup the base of the thread's stack (highest address)
|
||||
sr r3, [KSTACK_BASE] ; Setup KSTACK_BASE
|
||||
.endif
|
||||
|
||||
ld sp, [r0, 8] ; Switch back to thread's stack
|
||||
|
||||
.ifdef TX_ENABLE_HW_STACK_CHECKING
|
||||
or r2, r2, STATUS32_SC ; Or in hardware stack checking enable bit (SC)
|
||||
kflag r2 ; Enable hardware stack checking
|
||||
.endif
|
||||
|
||||
ld r0, [sp, 4] ; Recover LP_START
|
||||
sr r0, [LP_START] ; Restore LP_START
|
||||
ld r1, [sp, 8] ; Recover LP_END
|
||||
sr r1, [LP_END] ; Restore LP_END
|
||||
ld r2, [sp, 12] ; Recover LP_COUNT
|
||||
mov LP_COUNT, r2
|
||||
ld r2, [sp, 156] ; Pickup BTA
|
||||
sr r2, [BTA] ; Recover BTA
|
||||
.ifdef TX_ENABLE_ACC
|
||||
ld r58, [sp, 140] ; Recover r58
|
||||
ld r59, [sp, 144] ; Recover r59
|
||||
.endif
|
||||
ld blink, [sp, 16] ; Recover blink
|
||||
ld r12, [sp, 84] ; Recover r12
|
||||
ld r11, [sp, 88] ; Recover r11
|
||||
ld r10, [sp, 92] ; Recover r10
|
||||
ld r9, [sp, 96] ; Recover r9
|
||||
ld r8, [sp, 100] ; Recover r8
|
||||
ld r7, [sp, 104] ; Recover r7
|
||||
ld r6, [sp, 108] ; Recover r6
|
||||
ld r5, [sp, 112] ; Recover r5
|
||||
ld r4, [sp, 116] ; Recover r4
|
||||
ld r3, [sp, 120] ; Recover r3
|
||||
ld r2, [sp, 124] ; Recover r2
|
||||
ld r1, [sp, 128] ; Recover r1
|
||||
ld r0, [sp, 132] ; Recover r0
|
||||
add sp, sp, 160 ; Recover interrupt stack frame
|
||||
rtie ; Return from interrupt
|
||||
;
|
||||
; }
|
||||
; else
|
||||
; {
|
||||
__tx_thread_preempt_restore:
|
||||
;
|
||||
ld r7, [r0, 8] ; Pickup stack pointer
|
||||
mov r6, 1 ; Build interrupt stack type
|
||||
st r6, [r7, 0] ; Setup interrupt stack type
|
||||
st fp, [r7, 24] ; Save fp
|
||||
st gp, [r7, 28] ; Save gp
|
||||
st r25, [r7, 32] ; Save r25
|
||||
st r24, [r7, 36] ; Save r24
|
||||
st r23, [r7, 40] ; Save r23
|
||||
st r22, [r7, 44] ; Save r22
|
||||
st r21, [r7, 48] ; Save r21
|
||||
st r20, [r7, 52] ; Save r20
|
||||
st r19, [r7, 56] ; Save r19
|
||||
st r18, [r7, 60] ; Save r18
|
||||
st r17, [r7, 64] ; Save r17
|
||||
st r16, [r7, 68] ; Save r16
|
||||
st r15, [r7, 72] ; Save r15
|
||||
st r14, [r7, 76] ; Save r14
|
||||
st r13, [r7, 80] ; Save r13
|
||||
st r30, [r7, 136] ; Save r30
|
||||
;
|
||||
; /* Save the remaining time-slice and disable it. */
|
||||
; if (_tx_timer_time_slice)
|
||||
; {
|
||||
;
|
||||
ld r2, [gp, _tx_timer_time_slice@sda] ; Pickup time-slice contents
|
||||
mov r7, 0 ; Build clear/NULL value
|
||||
breq r2, 0, __tx_thread_dont_save_ts ; No time-slice, don't need to save it
|
||||
;
|
||||
; _tx_thread_current_ptr -> tx_thread_time_slice = _tx_timer_time_slice;
|
||||
; _tx_timer_time_slice = 0;
|
||||
;
|
||||
st r2, [r0, 24] ; If set, save remaining time-slice
|
||||
st r7, [gp, _tx_timer_time_slice@sda] ; If set, clear time slice
|
||||
;
|
||||
; }
|
||||
__tx_thread_dont_save_ts:
|
||||
;
|
||||
;
|
||||
; /* Clear the current thread pointer. */
|
||||
; _tx_thread_current_ptr = TX_NULL;
|
||||
;
|
||||
st r7, [gp, _tx_thread_current_ptr@sda] ; Set current thread ptr to NULL
|
||||
|
||||
sub sp, sp, 8 ; Allocate a small stack frame on the system stack
|
||||
lr r0, [STATUS32] ; Pickup STATUS32
|
||||
st r0, [sp, 4] ; Place on stack
|
||||
mov r0, _tx_thread_schedule ; Build address of scheduler
|
||||
st r0, [sp, 0] ; Write over the point of interrupt
|
||||
rtie ; Return from interrupt to scheduler
|
||||
;
|
||||
; }
|
||||
;
|
||||
; /* Return to the scheduler. */
|
||||
; _tx_thread_schedule();
|
||||
;
|
||||
__tx_thread_idle_system_restore:
|
||||
|
||||
lr r4, [AUX_IRQ_ACT] ; Pickup the interrupt active register
|
||||
neg r5, r4 ; Negate
|
||||
and r5, r4, r5 ; See if there are any other interrupts present
|
||||
sub.f 0, r4, r5 ; Set condition codes
|
||||
bne __tx_thread_nested_restore ; If more interrupts, just return to the point of interrupt
|
||||
|
||||
lr r0, [STATUS32] ; Pickup STATUS32
|
||||
st r0, [sp, 4] ; Place on stack
|
||||
mov r0, _tx_thread_schedule ; Build address of scheduler
|
||||
st r0, [sp, 0] ; Write over the point of interrupt
|
||||
rtie ; Return from interrupt to scheduler
|
||||
;
|
||||
;}
|
||||
.end
|
||||
|
260
ports/arc_em/metaware/src/tx_thread_context_save.s
Normal file
260
ports/arc_em/metaware/src/tx_thread_context_save.s
Normal file
@ -0,0 +1,260 @@
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* 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 */
|
||||
;/** */
|
||||
;/** Thread */
|
||||
;/** */
|
||||
;/**************************************************************************/
|
||||
;/**************************************************************************/
|
||||
;
|
||||
;
|
||||
;#define TX_SOURCE_CODE
|
||||
;
|
||||
.equ BTA, 0x412
|
||||
.equ KSTACK_TOP, 0x264
|
||||
.equ KSTACK_BASE, 0x265
|
||||
.equ STATUS32_SC, 0x4000
|
||||
;
|
||||
;/* Include necessary system files. */
|
||||
;
|
||||
;#include "tx_api.h"
|
||||
;#include "tx_thread.h"
|
||||
;#include "tx_timer.h"
|
||||
;
|
||||
;
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* FUNCTION RELEASE */
|
||||
;/* */
|
||||
;/* _tx_thread_context_save ARCv2_EM/MetaWare */
|
||||
;/* 6.0.1 */
|
||||
;/* AUTHOR */
|
||||
;/* */
|
||||
;/* William E. Lamie, Microsoft Corporation */
|
||||
;/* */
|
||||
;/* DESCRIPTION */
|
||||
;/* */
|
||||
;/* This function saves the context of an executing thread in the */
|
||||
;/* beginning of interrupt processing. The function also ensures that */
|
||||
;/* the system stack is used upon return to the calling ISR. */
|
||||
;/* */
|
||||
;/* INPUT */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* OUTPUT */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* CALLS */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* CALLED BY */
|
||||
;/* */
|
||||
;/* ISRs */
|
||||
;/* */
|
||||
;/* RELEASE HISTORY */
|
||||
;/* */
|
||||
;/* DATE NAME DESCRIPTION */
|
||||
;/* */
|
||||
;/* 06-30-2020 William E. Lamie Initial Version 6.0.1 */
|
||||
;/* */
|
||||
;/**************************************************************************/
|
||||
;VOID _tx_thread_context_save(VOID)
|
||||
;{
|
||||
.global _tx_thread_context_save
|
||||
.type _tx_thread_context_save, @function
|
||||
_tx_thread_context_save:
|
||||
;
|
||||
; /* Upon entry to this routine, it is assumed that an interrupt stack frame
|
||||
; has already been allocated, and the interrupted blink register is already saved. */
|
||||
;
|
||||
clri ; Disable interrupts
|
||||
st r1, [sp, 128] ; Save r1
|
||||
st r0, [sp, 132] ; Save r0
|
||||
;
|
||||
; /* Check for a nested interrupt condition. */
|
||||
; if (_tx_thread_system_state++)
|
||||
; {
|
||||
;
|
||||
ld r0, [gp, _tx_thread_system_state@sda] ; Pickup system state
|
||||
st r3, [sp, 120] ; Save r3
|
||||
st r2, [sp, 124] ; Save r2
|
||||
breq r0, 0, __tx_thread_not_nested_save ; If 0, we are not in a nested
|
||||
; condition
|
||||
;
|
||||
; /* Nested interrupt condition. */
|
||||
;
|
||||
add r0, r0, 1 ; Increment the nested interrupt count
|
||||
st r0, [gp, _tx_thread_system_state@sda] ; Update system state
|
||||
;
|
||||
; /* Save the rest of the scratch registers on the stack and return to the
|
||||
; calling ISR. */
|
||||
;
|
||||
__tx_thread_nested_save: ; Label is for special nested interrupt case from idle system save below
|
||||
st r12, [sp, 84] ; Save r12
|
||||
st r11, [sp, 88] ; Save r11
|
||||
st r10, [sp, 92] ; Save r10
|
||||
st r9, [sp, 96] ; Save r9
|
||||
st r8, [sp, 100] ; Save r8
|
||||
st r7, [sp, 104] ; Save r7
|
||||
st r6, [sp, 108] ; Save r6
|
||||
st r5, [sp, 112] ; Save r5
|
||||
st r4, [sp, 116] ; Save r6
|
||||
lr r10, [LP_START] ; Pickup LP_START
|
||||
lr r9, [LP_END] ; Pickup LP_END
|
||||
st LP_COUNT, [sp, 12] ; Save LP_COUNT
|
||||
st r10, [sp, 4] ; Save LP_START
|
||||
st r9, [sp, 8] ; Save LP_END
|
||||
.ifdef TX_ENABLE_ACC
|
||||
st r58, [sp, 140] ; Save r58
|
||||
st r59, [sp, 144] ; Save r59
|
||||
.endif
|
||||
lr r0, [BTA] ; Pickup BTA
|
||||
st r0, [sp, 156] ; Save BTA
|
||||
|
||||
;
|
||||
; /* Return to the ISR. */
|
||||
;
|
||||
.ifdef TX_ENABLE_EXECUTION_CHANGE_NOTIFY
|
||||
;
|
||||
; /* Call the ISR enter function to indicate an ISR is executing. */
|
||||
;
|
||||
sub sp, sp, 32 ; Allocating some space on the stack
|
||||
st blink, [sp, 16] ; Save blink
|
||||
bl.d _tx_execution_isr_enter ; Call the ISR enter function
|
||||
nop ; Delay slot
|
||||
ld blink, [sp, 16] ; Recover blink
|
||||
add sp, sp, 32 ; Recover the stack space
|
||||
.endif
|
||||
;
|
||||
|
||||
j.d [blink] ; Return to Level 1 ISR
|
||||
st ilink, [sp, 20] ; Save ilink
|
||||
;
|
||||
__tx_thread_not_nested_save:
|
||||
; }
|
||||
;
|
||||
; /* Otherwise, not nested, check to see if a thread was running. */
|
||||
; else if (_tx_thread_current_ptr)
|
||||
; {
|
||||
;
|
||||
add r0, r0, 1 ; Increment the nested interrupt count
|
||||
st r0, [gp, _tx_thread_system_state@sda] ; Update system state
|
||||
ld r1, [gp, _tx_thread_current_ptr@sda] ; Pickup current thread pointer
|
||||
st r12, [sp, 84] ; Save r12
|
||||
st r11, [sp, 88] ; Save r11
|
||||
breq r1, 0, __tx_thread_idle_system_save ; If no thread is running, idle system was
|
||||
; interrupted.
|
||||
;
|
||||
; /* Save minimal context of interrupted thread. */
|
||||
;
|
||||
st r10, [sp, 92] ; Save r10
|
||||
st r9, [sp, 96] ; Save r9
|
||||
st r8, [sp, 100] ; Save r8
|
||||
st r7, [sp, 104] ; Save r7
|
||||
st r6, [sp, 108] ; Save r6
|
||||
st r5, [sp, 112] ; Save r5
|
||||
st r4, [sp, 116] ; Save r4
|
||||
lr r10, [LP_START] ; Pickup LP_START
|
||||
lr r9, [LP_END] ; Pickup LP_END
|
||||
st LP_COUNT, [sp, 12] ; Save LP_COUNT
|
||||
st r10, [sp, 4] ; Save LP_START
|
||||
st r9, [sp, 8] ; Save LP_END
|
||||
st ilink, [sp, 20] ; Save ilink
|
||||
.ifdef TX_ENABLE_ACC
|
||||
st r58, [sp, 140] ; Save r58
|
||||
st r59, [sp, 144] ; Save r59
|
||||
.endif
|
||||
lr r0, [BTA] ; Pickup BTA
|
||||
st r0, [sp, 156] ; Save BTA
|
||||
;
|
||||
; /* Save the current stack pointer in the thread's control block. */
|
||||
; _tx_thread_current_ptr -> tx_thread_stack_ptr = sp;
|
||||
;
|
||||
st sp, [r1, 8] ; Save thread's stack pointer
|
||||
|
||||
.ifdef TX_ENABLE_EXECUTION_CHANGE_NOTIFY
|
||||
;
|
||||
; /* Call the ISR enter function to indicate an ISR is executing. */
|
||||
;
|
||||
sub sp, sp, 32 ; Allocating some space on the stack
|
||||
st blink, [sp, 16] ; Save blink
|
||||
bl.d _tx_execution_isr_enter ; Call the ISR enter function
|
||||
nop ; Delay slot
|
||||
ld blink, [sp, 16] ; Recover blink
|
||||
add sp, sp, 32 ; Recover the stack space
|
||||
.endif
|
||||
|
||||
.ifdef TX_ENABLE_HW_STACK_CHECKING
|
||||
lr r2, [status32] ; Pickup current STATUS32
|
||||
and r2, r2, ~STATUS32_SC ; Clear the hardware stack checking enable bit (SC)
|
||||
kflag r2 ; Disable hardware stack checking
|
||||
mov r1, _tx_system_stack_top_address ; Pickup top of system stack (lowest memory address)
|
||||
sr r1, [KSTACK_TOP] ; Setup KSTACK_TOP
|
||||
mov r1, _tx_system_stack_base_address ; Pickup base of system stack (highest memory address)
|
||||
sr r1, [KSTACK_BASE] ; Setup KSTACK_BASE
|
||||
ld sp, [gp, _tx_thread_system_stack_ptr@sda] ; Switch to system stack
|
||||
or r2, r2, STATUS32_SC ; Or in hardware stack checking enable bit (SC)
|
||||
j_s.d [blink] ; Return to calling ISR
|
||||
kflag r2 ; Enable hardware stack checking
|
||||
.else
|
||||
;
|
||||
; /* Switch to the system stack. */
|
||||
; sp = _tx_thread_system_stack_ptr;
|
||||
;
|
||||
j_s.d [blink] ; Return to calling ISR
|
||||
ld sp, [gp, _tx_thread_system_stack_ptr@sda] ; Switch to system stack
|
||||
.endif
|
||||
;
|
||||
; }
|
||||
; else
|
||||
; {
|
||||
;
|
||||
__tx_thread_idle_system_save:
|
||||
;
|
||||
; /* Interrupt occurred in the scheduling loop. */
|
||||
;
|
||||
.ifdef TX_ENABLE_EXECUTION_CHANGE_NOTIFY
|
||||
;
|
||||
; /* Call the ISR enter function to indicate an ISR is executing. */
|
||||
;
|
||||
sub sp, sp, 32 ; Allocating some space on the stack
|
||||
st blink, [sp, 16] ; Save blink
|
||||
bl.d _tx_execution_isr_enter ; Call the ISR enter function
|
||||
nop ; Delay slot
|
||||
ld blink, [sp, 16] ; Recover blink
|
||||
add sp, sp, 32 ; Recover the stack space
|
||||
.endif
|
||||
;
|
||||
; /* See if we have a special nesting condition. This happens when the higher priority
|
||||
; interrupt occurs before the nested interrupt logic is valid. */
|
||||
;
|
||||
lr r0, [AUX_IRQ_ACT] ; Pickup the interrupt active register
|
||||
neg r1, r0 ; Negate
|
||||
and r1, r0, r1 ; See if there are any other interrupts present
|
||||
brne r0, r1, __tx_thread_nested_save ; If more interrupts, go into the nested interrupt save logic
|
||||
;
|
||||
; /* Not much to do here, just adjust the stack pointer, and return to
|
||||
; ISR processing. */
|
||||
;
|
||||
j_s.d [blink] ; Return to ISR
|
||||
add sp, sp, 160 ; Recover stack space
|
||||
;
|
||||
; }
|
||||
;}
|
||||
.end
|
87
ports/arc_em/metaware/src/tx_thread_interrupt_control.s
Normal file
87
ports/arc_em/metaware/src/tx_thread_interrupt_control.s
Normal file
@ -0,0 +1,87 @@
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* 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 */
|
||||
;/** */
|
||||
;/** Thread */
|
||||
;/** */
|
||||
;/**************************************************************************/
|
||||
;/**************************************************************************/
|
||||
;
|
||||
;#define TX_SOURCE_CODE
|
||||
;
|
||||
;
|
||||
;/* Include necessary system files. */
|
||||
;
|
||||
;#include "tx_api.h"
|
||||
;#include "tx_thread.h"
|
||||
;
|
||||
;
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* FUNCTION RELEASE */
|
||||
;/* */
|
||||
;/* _tx_thread_interrupt_control ARCv2_EM/MetaWare */
|
||||
;/* 6.0.1 */
|
||||
;/* AUTHOR */
|
||||
;/* */
|
||||
;/* William E. Lamie, Microsoft Corporation */
|
||||
;/* */
|
||||
;/* DESCRIPTION */
|
||||
;/* */
|
||||
;/* This function is responsible for changing the interrupt lockout */
|
||||
;/* posture of the system. */
|
||||
;/* */
|
||||
;/* INPUT */
|
||||
;/* */
|
||||
;/* new_posture New interrupt lockout posture */
|
||||
;/* */
|
||||
;/* OUTPUT */
|
||||
;/* */
|
||||
;/* old_posture Old interrupt lockout posture */
|
||||
;/* */
|
||||
;/* CALLS */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* CALLED BY */
|
||||
;/* */
|
||||
;/* Application Code */
|
||||
;/* */
|
||||
;/* RELEASE HISTORY */
|
||||
;/* */
|
||||
;/* DATE NAME DESCRIPTION */
|
||||
;/* */
|
||||
;/* 06-30-2020 William E. Lamie Initial Version 6.0.1 */
|
||||
;/* */
|
||||
;/**************************************************************************/
|
||||
;UINT _tx_thread_interrupt_control(UINT new_posture)
|
||||
;{
|
||||
.global _tx_thread_interrupt_control
|
||||
.type _tx_thread_interrupt_control, @function
|
||||
_tx_thread_interrupt_control:
|
||||
;
|
||||
; /* Pickup current interrupt lockout posture. */
|
||||
;
|
||||
clri r1 ; Get current interrupt state
|
||||
;
|
||||
; /* Apply the new interrupt posture. */
|
||||
;
|
||||
seti r0 ; Set desired interrupt state
|
||||
j_s.d [blink] ; Return to caller with delay slot
|
||||
mov r0, r1 ; Return previous mask value. Return value is TX_INT_DISABLE or TX_INT_ENABLE.
|
||||
;
|
||||
;}
|
||||
.end
|
238
ports/arc_em/metaware/src/tx_thread_schedule.s
Normal file
238
ports/arc_em/metaware/src/tx_thread_schedule.s
Normal file
@ -0,0 +1,238 @@
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* 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 */
|
||||
;/** */
|
||||
;/** Thread */
|
||||
;/** */
|
||||
;/**************************************************************************/
|
||||
;/**************************************************************************/
|
||||
;
|
||||
;
|
||||
;#define TX_SOURCE_CODE
|
||||
;
|
||||
;
|
||||
.equ BTA, 0x412
|
||||
.equ KSTACK_TOP, 0x264
|
||||
.equ KSTACK_BASE, 0x265
|
||||
.equ STATUS32_SC, 0x4000
|
||||
;
|
||||
;/* Include necessary system files. */
|
||||
;
|
||||
;#include "tx_api.h"
|
||||
;#include "tx_thread.h"
|
||||
;#include "tx_timer.h"
|
||||
;
|
||||
;
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* FUNCTION RELEASE */
|
||||
;/* */
|
||||
;/* _tx_thread_schedule ARCv2_EM/MetaWare */
|
||||
;/* 6.0.1 */
|
||||
;/* AUTHOR */
|
||||
;/* */
|
||||
;/* William E. Lamie, Microsoft Corporation */
|
||||
;/* */
|
||||
;/* DESCRIPTION */
|
||||
;/* */
|
||||
;/* This function waits for a thread control block pointer to appear in */
|
||||
;/* the _tx_thread_execute_ptr variable. Once a thread pointer appears */
|
||||
;/* in the variable, the corresponding thread is resumed. */
|
||||
;/* */
|
||||
;/* INPUT */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* OUTPUT */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* CALLS */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* CALLED BY */
|
||||
;/* */
|
||||
;/* _tx_initialize_kernel_enter ThreadX entry function */
|
||||
;/* _tx_thread_system_return Return to system from thread */
|
||||
;/* _tx_thread_context_restore Restore thread's context */
|
||||
;/* */
|
||||
;/* RELEASE HISTORY */
|
||||
;/* */
|
||||
;/* DATE NAME DESCRIPTION */
|
||||
;/* */
|
||||
;/* 06-30-2020 William E. Lamie Initial Version 6.0.1 */
|
||||
;/* */
|
||||
;/**************************************************************************/
|
||||
;VOID _tx_thread_schedule(VOID)
|
||||
;{
|
||||
.global _tx_thread_schedule
|
||||
.type _tx_thread_schedule, @function
|
||||
_tx_thread_schedule:
|
||||
;
|
||||
; /* Enable interrupts. */
|
||||
;
|
||||
mov r0, 0x1F ; Build enable interrupt value
|
||||
seti r0 ; Enable interrupts
|
||||
;
|
||||
; /* Wait for a thread to execute. */
|
||||
; do
|
||||
; {
|
||||
;
|
||||
__tx_thread_schedule_loop:
|
||||
;
|
||||
ld r0, [gp, _tx_thread_execute_ptr@sda] ; Pickup next thread to execute
|
||||
breq r0, 0, __tx_thread_schedule_loop ; If NULL, keep looking
|
||||
;
|
||||
; }
|
||||
; while(_tx_thread_execute_ptr == TX_NULL);
|
||||
;
|
||||
; /* Yes! We have a thread to execute. Lockout interrupts and
|
||||
; transfer control to it. */
|
||||
;
|
||||
clri ; Lockout interrupts
|
||||
nop ; Delay for interrupts to really be disabled
|
||||
;
|
||||
; /* Setup the current thread pointer. */
|
||||
; _tx_thread_current_ptr = _tx_thread_execute_ptr;
|
||||
;
|
||||
st r0, [gp, _tx_thread_current_ptr@sda] ; Setup current thread pointer
|
||||
;
|
||||
; /* Increment the run count for this thread. */
|
||||
; _tx_thread_current_ptr -> tx_thread_run_count++;
|
||||
;
|
||||
ld r3, [r0, 4] ; Pickup run counter
|
||||
ld r4, [r0, 24] ; Pickup time-slice for this thread
|
||||
add r3, r3, 1 ; Increment run counter
|
||||
st r3, [r0, 4] ; Store the new run counter
|
||||
|
||||
.ifdef TX_ENABLE_HW_STACK_CHECKING
|
||||
lr r2, [status32] ; Pickup current STATUS32
|
||||
and r2, r2, ~STATUS32_SC ; Clear the hardware stack checking enable bit (SC)
|
||||
kflag r2 ; Disable hardware stack checking
|
||||
ld r3, [r0, 12] ; Pickup the top of the thread's stack (lowest address)
|
||||
sr r3, [KSTACK_TOP] ; Setup KSTACK_TOP
|
||||
ld r3, [r0, 16] ; Pickup the base of the thread's stack (highest address)
|
||||
sr r3, [KSTACK_BASE] ; Setup KSTACK_BASE
|
||||
.endif
|
||||
;
|
||||
; /* Setup time-slice, if present. */
|
||||
; _tx_timer_time_slice = _tx_thread_current_ptr -> tx_thread_time_slice;
|
||||
;
|
||||
ld sp, [r0, 8] ; Switch to thread's stack
|
||||
|
||||
.ifdef TX_ENABLE_HW_STACK_CHECKING
|
||||
or r2, r2, STATUS32_SC ; Or in hardware stack checking enable bit (SC)
|
||||
kflag r2 ; Enable hardware stack checking
|
||||
.endif
|
||||
|
||||
st r4, [gp, _tx_timer_time_slice@sda] ; Setup time-slice
|
||||
;
|
||||
; /* Switch to the thread's stack. */
|
||||
; sp = _tx_thread_execute_ptr -> tx_thread_stack_ptr;
|
||||
;
|
||||
.ifdef TX_ENABLE_EXECUTION_CHANGE_NOTIFY
|
||||
;
|
||||
; /* Call the thread entry function to indicate the thread is executing. */
|
||||
;
|
||||
bl.d _tx_execution_thread_enter ; Call the thread execution enter function
|
||||
sub sp, sp, 16 ; ..allocating some space on the stack
|
||||
add sp, sp, 16 ; Recover the stack space
|
||||
.endif
|
||||
;
|
||||
; /* Determine if an interrupt frame or a synchronous task suspension frame
|
||||
; is present. */
|
||||
;
|
||||
ld r1, [sp, 0] ; Pickup the stack type
|
||||
brne r1, 0, __tx_thread_schedule_int_ret ; Compare to solicited stack type. If not, thread was interrupted
|
||||
ld blink, [sp, 4] ; Recover blink
|
||||
ld fp, [sp, 8] ; Recover fp
|
||||
ld gp, [sp, 12] ; Recover gp
|
||||
ld r25, [sp, 16] ; Recover r25
|
||||
ld r24, [sp, 20] ; Recover r24
|
||||
ld r23, [sp, 24] ; Recover r23
|
||||
ld r22, [sp, 28] ; Recover r22
|
||||
ld r21, [sp, 32] ; Recover r21
|
||||
ld r20, [sp, 36] ; Recover r20
|
||||
ld r19, [sp, 40] ; Recover r19
|
||||
ld r18, [sp, 44] ; Recover r18
|
||||
ld r17, [sp, 48] ; Recover r17
|
||||
ld r16, [sp, 52] ; Recover r16
|
||||
ld r15, [sp, 56] ; Recover r15
|
||||
ld r14, [sp, 60] ; Recover r14
|
||||
ld r13, [sp, 64] ; Recover r13
|
||||
ld r1, [sp, 68] ; Pickup status32
|
||||
ld r30, [sp, 72] ; Recover r30
|
||||
add sp, sp, 76 ; Recover solicited stack frame
|
||||
j_s.d [blink] ; Return to thread and restore flags
|
||||
seti r1 ; Recover STATUS32
|
||||
;
|
||||
__tx_thread_schedule_int_ret:
|
||||
;
|
||||
mov r0, 0x2 ; Pretend level 1 interrupt is returning
|
||||
sr r0, [AUX_IRQ_ACT] ;
|
||||
|
||||
ld r0, [sp, 4] ; Recover LP_START
|
||||
sr r0, [LP_START] ; Restore LP_START
|
||||
ld r1, [sp, 8] ; Recover LP_END
|
||||
sr r1, [LP_END] ; Restore LP_END
|
||||
ld r2, [sp, 12] ; Recover LP_COUNT
|
||||
mov LP_COUNT, r2
|
||||
ld r0, [sp, 156] ; Pickup saved BTA
|
||||
sr r0, [BTA] ; Recover BTA
|
||||
ld blink, [sp, 16] ; Recover blink
|
||||
ld ilink, [sp, 20] ; Recover ilink
|
||||
ld fp, [sp, 24] ; Recover fp
|
||||
ld gp, [sp, 28] ; Recover gp
|
||||
ld r25, [sp, 32] ; Recover r25
|
||||
ld r24, [sp, 36] ; Recover r24
|
||||
ld r23, [sp, 40] ; Recover r23
|
||||
ld r22, [sp, 44] ; Recover r22
|
||||
ld r21, [sp, 48] ; Recover r21
|
||||
ld r20, [sp, 52] ; Recover r20
|
||||
ld r19, [sp, 56] ; Recover r19
|
||||
ld r18, [sp, 60] ; Recover r18
|
||||
ld r17, [sp, 64] ; Recover r17
|
||||
ld r16, [sp, 68] ; Recover r16
|
||||
ld r15, [sp, 72] ; Recover r15
|
||||
ld r14, [sp, 76] ; Recover r14
|
||||
ld r13, [sp, 80] ; Recover r13
|
||||
ld r12, [sp, 84] ; Recover r12
|
||||
ld r11, [sp, 88] ; Recover r11
|
||||
ld r10, [sp, 92] ; Recover r10
|
||||
ld r9, [sp, 96] ; Recover r9
|
||||
ld r8, [sp, 100] ; Recover r8
|
||||
ld r7, [sp, 104] ; Recover r7
|
||||
ld r6, [sp, 108] ; Recover r6
|
||||
ld r5, [sp, 112] ; Recover r5
|
||||
ld r4, [sp, 116] ; Recover r4
|
||||
ld r3, [sp, 120] ; Recover r3
|
||||
ld r2, [sp, 124] ; Recover r2
|
||||
ld r1, [sp, 128] ; Recover r1
|
||||
ld r0, [sp, 132] ; Recover r0
|
||||
ld r30, [sp, 136] ; Recover r30
|
||||
.ifdef TX_ENABLE_ACC
|
||||
ld r58, [sp, 140] ; Recover r58
|
||||
ld r59, [sp, 144] ; Recover r59
|
||||
.endif
|
||||
add sp, sp, 160 ; Recover interrupt stack frame
|
||||
rtie ; Return to point of interrupt
|
||||
|
||||
;
|
||||
;}
|
||||
;
|
||||
.end
|
||||
|
205
ports/arc_em/metaware/src/tx_thread_stack_build.s
Normal file
205
ports/arc_em/metaware/src/tx_thread_stack_build.s
Normal file
@ -0,0 +1,205 @@
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* 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 */
|
||||
;/** */
|
||||
;/** Thread */
|
||||
;/** */
|
||||
;/**************************************************************************/
|
||||
;/**************************************************************************/
|
||||
;
|
||||
;
|
||||
;#define TX_SOURCE_CODE
|
||||
;
|
||||
;
|
||||
;/* Include necessary system files. */
|
||||
;
|
||||
;#include "tx_api.h"
|
||||
;#include "tx_thread.h"
|
||||
;
|
||||
;
|
||||
.equ LONG_ALIGN_MASK, 0xFFFFFFFC
|
||||
.equ INT_ENABLE_BITS, 0x8000001E
|
||||
;
|
||||
;
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* FUNCTION RELEASE */
|
||||
;/* */
|
||||
;/* _tx_thread_stack_build ARCv2_EM/MetaWare */
|
||||
;/* 6.0.1 */
|
||||
;/* AUTHOR */
|
||||
;/* */
|
||||
;/* William E. Lamie, Microsoft Corporation */
|
||||
;/* */
|
||||
;/* DESCRIPTION */
|
||||
;/* */
|
||||
;/* This function builds a stack frame on the supplied thread's stack. */
|
||||
;/* The stack frame results in a fake interrupt return to the supplied */
|
||||
;/* function pointer. */
|
||||
;/* */
|
||||
;/* INPUT */
|
||||
;/* */
|
||||
;/* thread_ptr Pointer to thread control blk */
|
||||
;/* function_ptr Pointer to return function */
|
||||
;/* */
|
||||
;/* OUTPUT */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* CALLS */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* CALLED BY */
|
||||
;/* */
|
||||
;/* _tx_thread_create Create thread service */
|
||||
;/* */
|
||||
;/* RELEASE HISTORY */
|
||||
;/* */
|
||||
;/* DATE NAME DESCRIPTION */
|
||||
;/* */
|
||||
;/* 06-30-2020 William E. Lamie Initial Version 6.0.1 */
|
||||
;/* */
|
||||
;/**************************************************************************/
|
||||
;VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID))
|
||||
;{
|
||||
.global _tx_thread_stack_build
|
||||
.type _tx_thread_stack_build, @function
|
||||
_tx_thread_stack_build:
|
||||
;
|
||||
;
|
||||
; /* Build a fake interrupt frame. The form of the fake interrupt stack
|
||||
; on the ARCv2 EM should look like the following after it is built.
|
||||
; Note that the extension registers are always assigned space here.
|
||||
;
|
||||
; Stack Top: 1 Interrupt stack frame type
|
||||
; LP_START Initial loop start
|
||||
; LP_END Initial loop end
|
||||
; LP_COUNT Initial loop count
|
||||
; blink Initial blink value
|
||||
; ilink Initial ilink (point of interrupt)
|
||||
; fp (r27) Initial fp (0)
|
||||
; gp Initial gp
|
||||
; r25 Initial r25
|
||||
; r24 Initial r24
|
||||
; r23 Initial r23
|
||||
; r22 Initial r22
|
||||
; r21 Initial r21
|
||||
; r20 Initial r20
|
||||
; r19 Initial r19
|
||||
; r18 Initial r18
|
||||
; r17 Initial r17
|
||||
; r16 Initial r16
|
||||
; r15 Initial r15
|
||||
; r14 Initial r14
|
||||
; r13 Initial r13
|
||||
; r12 Initial r12
|
||||
; r11 Initial r11
|
||||
; r10 Initial r10
|
||||
; r9 Initial r9
|
||||
; r8 Initial r8
|
||||
; r7 Initial r7
|
||||
; r6 Initial r6
|
||||
; r5 Initial r5
|
||||
; r4 Initial r4
|
||||
; r3 Initial r3
|
||||
; r2 Initial r2
|
||||
; r1 Initial r1
|
||||
; r0 Initial r0
|
||||
; r30 Initial r30
|
||||
; r58 Initial r58
|
||||
; r59 Initial r59
|
||||
; 0 Reserved
|
||||
; 0 Reserved
|
||||
; 0 Initial BTA
|
||||
; 0 Point of Interrupt (thread entry point)
|
||||
; 0 Initial STATUS32
|
||||
; 0 Backtrace
|
||||
; 0 Backtrace
|
||||
; 0 Backtrace
|
||||
; 0 Backtrace
|
||||
;
|
||||
; *: these registers will only be saved and restored if flag -Xxmac_d16 is passed to hcac
|
||||
;
|
||||
; Stack Bottom: (higher memory address) */
|
||||
;
|
||||
ld r3, [r0, 16] ; Pickup end of stack area
|
||||
and r3, r3, LONG_ALIGN_MASK ; Ensure long-word alignment
|
||||
sub r3, r3, 196 ; Allocate an interrupt stack frame (ARCv2 EM)
|
||||
;
|
||||
; /* Actually build the stack frame. */
|
||||
;
|
||||
st 1, [r3, 0] ; Store interrupt stack type on the
|
||||
; top of the stack
|
||||
mov r5, 0 ; Build initial clear value
|
||||
st r5, [r3, 4] ; Store initial LP_START
|
||||
st r5, [r3, 8] ; Store initial LP_END
|
||||
st r5, [r3, 12] ; Store initial LP_COUNT
|
||||
st r5, [r3, 16] ; Store initial blink
|
||||
st r1, [r3, 20] ; Store initial ilink
|
||||
st r5, [r3, 24] ; Store initial fp (0 for backtrace)
|
||||
st gp, [r3, 28] ; Store current gp
|
||||
st r5, [r3, 32] ; Store initial r25
|
||||
st r5, [r3, 36] ; Store initial r24
|
||||
st r5, [r3, 40] ; Store initial r23
|
||||
st r5, [r3, 44] ; Store initial r22
|
||||
st r5, [r3, 48] ; Store initial r21
|
||||
st r5, [r3, 52] ; Store initial r20
|
||||
st r5, [r3, 56] ; Store initial r19
|
||||
st r5, [r3, 60] ; Store initial r18
|
||||
st r5, [r3, 64] ; Store initial r17
|
||||
st r5, [r3, 68] ; Store initial r16
|
||||
st r5, [r3, 72] ; Store initial r15
|
||||
st r5, [r3, 76] ; Store initial r14
|
||||
st r5, [r3, 80] ; Store initial r13
|
||||
st r5, [r3, 84] ; Store initial r12
|
||||
st r5, [r3, 88] ; Store initial r11
|
||||
st r5, [r3, 92] ; Store initial r10
|
||||
st r5, [r3, 96] ; Store initial r9
|
||||
st r5, [r3, 100] ; Store initial r8
|
||||
st r5, [r3, 104] ; Store initial r7
|
||||
st r5, [r3, 108] ; Store initial r6
|
||||
st r5, [r3, 112] ; Store initial r5
|
||||
st r5, [r3, 116] ; Store initial r4
|
||||
st r5, [r3, 120] ; Store initial r3
|
||||
st r5, [r3, 124] ; Store initial r2
|
||||
st r5, [r3, 128] ; Store initial r1
|
||||
st r5, [r3, 132] ; Store initial r0
|
||||
st r5, [r3, 136] ; Store initial r30
|
||||
st r5, [r3, 140] ; Store initial r58
|
||||
st r5, [r3, 144] ; Store initial r59
|
||||
st r5, [r3, 148] ; Reserved
|
||||
st r5, [r3, 152] ; Reserved
|
||||
st r5, [r3, 156] ; Store initial BTA
|
||||
st r1, [r3, 160] ; Store initial point of entry
|
||||
lr r6, [status32] ; Pickup STATUS32
|
||||
or r6, r6, INT_ENABLE_BITS ; Make sure interrupts are enabled
|
||||
st r6, [r3, 164] ; Store initial STATUS32
|
||||
st r5, [r3, 168] ; Backtrace 0
|
||||
st r5, [r3, 172] ; Backtrace 0
|
||||
st r5, [r3, 176] ; Backtrace 0
|
||||
st r5, [r3, 180] ; Backtrace 0
|
||||
;
|
||||
; /* Setup stack pointer. */
|
||||
; thread_ptr -> tx_thread_stack_ptr = r3;
|
||||
;
|
||||
j_s.d [blink] ; Return to caller
|
||||
st r3, [r0, 8] ; Save stack pointer in thread's
|
||||
; control block
|
||||
;}
|
||||
.end
|
||||
|
||||
|
169
ports/arc_em/metaware/src/tx_thread_system_return.s
Normal file
169
ports/arc_em/metaware/src/tx_thread_system_return.s
Normal file
@ -0,0 +1,169 @@
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* 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 */
|
||||
;/** */
|
||||
;/** Thread */
|
||||
;/** */
|
||||
;/**************************************************************************/
|
||||
;/**************************************************************************/
|
||||
;
|
||||
;#define TX_SOURCE_CODE
|
||||
;
|
||||
.equ KSTACK_TOP, 0x264
|
||||
.equ KSTACK_BASE, 0x265
|
||||
.equ STATUS32_SC, 0x4000
|
||||
;
|
||||
;/* Include necessary system files. */
|
||||
;
|
||||
;#include "tx_api.h"
|
||||
;#include "tx_thread.h"
|
||||
;#include "tx_timer.h"
|
||||
;
|
||||
;
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* FUNCTION RELEASE */
|
||||
;/* */
|
||||
;/* _tx_thread_system_return ARCv2_EM/MetaWare */
|
||||
;/* 6.0.1 */
|
||||
;/* AUTHOR */
|
||||
;/* */
|
||||
;/* William E. Lamie, Microsoft Corporation */
|
||||
;/* */
|
||||
;/* DESCRIPTION */
|
||||
;/* */
|
||||
;/* This function is target processor specific. It is used to transfer */
|
||||
;/* control from a thread back to the ThreadX system. Only a */
|
||||
;/* minimal context is saved since the compiler assumes temp registers */
|
||||
;/* are going to get slicked by a function call anyway. */
|
||||
;/* */
|
||||
;/* INPUT */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* OUTPUT */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* CALLS */
|
||||
;/* */
|
||||
;/* _tx_thread_schedule Thread scheduling loop */
|
||||
;/* */
|
||||
;/* CALLED BY */
|
||||
;/* */
|
||||
;/* ThreadX components */
|
||||
;/* */
|
||||
;/* RELEASE HISTORY */
|
||||
;/* */
|
||||
;/* DATE NAME DESCRIPTION */
|
||||
;/* */
|
||||
;/* 06-30-2020 William E. Lamie Initial Version 6.0.1 */
|
||||
;/* */
|
||||
;/**************************************************************************/
|
||||
;VOID _tx_thread_system_return(VOID)
|
||||
;{
|
||||
.global _tx_thread_system_return
|
||||
.type _tx_thread_system_return, @function
|
||||
_tx_thread_system_return:
|
||||
;
|
||||
; /* Save minimal context on the stack. */
|
||||
;
|
||||
; /* Lockout interrupts. */
|
||||
;
|
||||
clri r2 ; Disable interrupts
|
||||
sub sp, sp, 76 ; Allocate a solicited stack frame
|
||||
mov r3, 0 ; Build a solicited stack type
|
||||
st r3, [sp, 0] ; Store stack type on the top
|
||||
st blink, [sp, 4] ; Save return address and flags
|
||||
st fp, [sp, 8] ; Save fp
|
||||
st r26, [sp, 12] ; Save r26
|
||||
st r25, [sp, 16] ; Save r25
|
||||
st r24, [sp, 20] ; Save r24
|
||||
st r23, [sp, 24] ; Save r23
|
||||
st r22, [sp, 28] ; Save r22
|
||||
st r21, [sp, 32] ; Save r21
|
||||
st r20, [sp, 36] ; Save r20
|
||||
st r19, [sp, 40] ; Save r19
|
||||
st r18, [sp, 44] ; Save r18
|
||||
st r17, [sp, 48] ; Save r17
|
||||
st r16, [sp, 52] ; Save r16
|
||||
st r15, [sp, 56] ; Save r15
|
||||
st r14, [sp, 60] ; Save r14
|
||||
st r13, [sp, 64] ; Save r13
|
||||
st r2, [sp, 68] ; Save status32
|
||||
st r30, [sp, 72] ; Save r30
|
||||
;
|
||||
.ifdef TX_ENABLE_EXECUTION_CHANGE_NOTIFY
|
||||
;
|
||||
; /* Call the thread exit function to indicate the thread is no longer executing. */
|
||||
;
|
||||
bl.d _tx_execution_thread_exit ; Call the thread exit function
|
||||
sub sp, sp, 16 ; ..allocating some space on the stack
|
||||
add sp, sp, 16 ; Recover the stack space
|
||||
mov r3, 0 ; Build clear value
|
||||
.endif
|
||||
;
|
||||
; /* Save current stack and switch to system stack. */
|
||||
; _tx_thread_current_ptr -> tx_thread_stack_ptr = sp;
|
||||
; sp = _tx_thread_system_stack_ptr;
|
||||
;
|
||||
ld r0, [gp, _tx_thread_current_ptr@sda] ; Pickup current thread ptr
|
||||
st sp, [r0, 8] ; Save thread's stack pointer
|
||||
ld r5, [gp, _tx_timer_time_slice@sda] ; Pickup current time-slice
|
||||
|
||||
.ifdef TX_ENABLE_HW_STACK_CHECKING
|
||||
lr r2, [status32] ; Pickup current STATUS32
|
||||
and r2, r2, ~STATUS32_SC ; Clear the hardware stack checking enable bit (SC)
|
||||
kflag r2 ; Disable hardware stack checking
|
||||
mov r1, _tx_system_stack_top_address ; Pickup top of system stack (lowest memory address)
|
||||
sr r1, [KSTACK_TOP] ; Setup KSTACK_TOP
|
||||
mov r1, _tx_system_stack_base_address ; Pickup base of system stack (highest memory address)
|
||||
sr r1, [KSTACK_BASE] ; Setup KSTACK_BASE
|
||||
.endif
|
||||
|
||||
ld sp, [gp, _tx_thread_system_stack_ptr@sda] ; Switch to system stack
|
||||
|
||||
.ifdef TX_ENABLE_HW_STACK_CHECKING
|
||||
or r2, r2, STATUS32_SC ; Or in hardware stack checking enable bit (SC)
|
||||
kflag r2 ; Enable hardware stack checking
|
||||
.endif
|
||||
;
|
||||
; /* Determine if the time-slice is active. */
|
||||
; if (_tx_timer_time_slice)
|
||||
; {
|
||||
;
|
||||
breq r5, 0, __tx_thread_dont_save_ts ; If not, skip save processing
|
||||
;
|
||||
; /* Save time-slice for the thread and clear the current time-slice. */
|
||||
; _tx_thread_current_ptr -> tx_thread_time_slice = _tx_timer_time_slice;
|
||||
; _tx_timer_time_slice = 0;
|
||||
;
|
||||
st r3, [gp, _tx_timer_time_slice@sda] ; Clear time-slice variable
|
||||
st r5, [r0, 24] ; Save current time-slice
|
||||
;
|
||||
; }
|
||||
__tx_thread_dont_save_ts:
|
||||
;
|
||||
; /* Clear the current thread pointer. */
|
||||
; _tx_thread_current_ptr = TX_NULL;
|
||||
;
|
||||
b.d _tx_thread_schedule ; Return to scheduler..
|
||||
st r3, [gp, _tx_thread_current_ptr@sda] ; ..clearing current thread pointer
|
||||
;
|
||||
;}
|
||||
.end
|
||||
|
||||
|
238
ports/arc_em/metaware/src/tx_timer_interrupt.s
Normal file
238
ports/arc_em/metaware/src/tx_timer_interrupt.s
Normal file
@ -0,0 +1,238 @@
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* 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 */
|
||||
;/** */
|
||||
;/** Timer */
|
||||
;/** */
|
||||
;/**************************************************************************/
|
||||
;/**************************************************************************/
|
||||
;
|
||||
;#define TX_SOURCE_CODE
|
||||
;
|
||||
;
|
||||
;/* Include necessary system files. */
|
||||
;
|
||||
;#include "tx_api.h"
|
||||
;#include "tx_timer.h"
|
||||
;#include "tx_thread.h"
|
||||
;
|
||||
;
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* FUNCTION RELEASE */
|
||||
;/* */
|
||||
;/* _tx_timer_interrupt ARCv2_EM/MetaWare */
|
||||
;/* 6.0.1 */
|
||||
;/* AUTHOR */
|
||||
;/* */
|
||||
;/* William E. Lamie, Microsoft Corporation */
|
||||
;/* */
|
||||
;/* DESCRIPTION */
|
||||
;/* */
|
||||
;/* This function processes the hardware timer interrupt. This */
|
||||
;/* processing includes incrementing the system clock and checking for */
|
||||
;/* time slice and/or timer expiration. If either is found, the */
|
||||
;/* interrupt context save/restore functions are called along with the */
|
||||
;/* expiration functions. */
|
||||
;/* */
|
||||
;/* INPUT */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* OUTPUT */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* CALLS */
|
||||
;/* */
|
||||
;/* _tx_timer_expiration_process Process timer expiration */
|
||||
;/* _tx_thread_time_slice Time slice interrupted thread */
|
||||
;/* _tx_thread_context_save Save interrupt context */
|
||||
;/* _tx_thread_context_restore Restore interrupt context */
|
||||
;/* */
|
||||
;/* CALLED BY */
|
||||
;/* */
|
||||
;/* interrupt vector */
|
||||
;/* */
|
||||
;/* RELEASE HISTORY */
|
||||
;/* */
|
||||
;/* DATE NAME DESCRIPTION */
|
||||
;/* */
|
||||
;/* 06-30-2020 William E. Lamie Initial Version 6.0.1 */
|
||||
;/* */
|
||||
;/**************************************************************************/
|
||||
;VOID _tx_timer_interrupt(VOID)
|
||||
;{
|
||||
.global _tx_timer_interrupt
|
||||
.type _tx_timer_interrupt, @function
|
||||
_tx_timer_interrupt:
|
||||
;
|
||||
; /* Upon entry to this routine, it is assumed the interrupt stack frame has
|
||||
; already been allocated and registers r0, r1, and r2 have already been saved
|
||||
; at offsets 0, 4, and 8 respectively. */
|
||||
;
|
||||
; /* Increment the system clock. */
|
||||
; _tx_timer_system_clock++;
|
||||
;
|
||||
clri ; Lockout interrupts
|
||||
ld r0, [gp,_tx_timer_system_clock@sda] ; Pickup current system clock
|
||||
ld r2, [gp, _tx_timer_time_slice@sda] ; Pickup current time-slice
|
||||
add r0, r0, 1 ; Increment the system clock
|
||||
st r0, [gp,_tx_timer_system_clock@sda] ; Store system clock back in memory
|
||||
|
||||
; /* Test for time-slice expiration. */
|
||||
; if (_tx_timer_time_slice)
|
||||
; {
|
||||
;
|
||||
mov r1, 0 ; Clear expiration flag
|
||||
breq r2, 0, __tx_timer_no_time_slice ; If zero, no time-slice is active
|
||||
;
|
||||
; /* Decrement the time_slice. */
|
||||
; _tx_timer_time_slice--;
|
||||
;
|
||||
sub r2, r2, 1 ; Decrement time-slice
|
||||
st r2, [gp, _tx_timer_time_slice@sda] ; Store new time-slice value
|
||||
;
|
||||
; /* Check for expiration. */
|
||||
; if (__tx_timer_time_slice == 0)
|
||||
;
|
||||
brne r2, 0, __tx_timer_no_time_slice ; If non-zero, skip over expiration
|
||||
;
|
||||
; /* Set the time-slice expired flag. */
|
||||
; _tx_timer_expired_time_slice = TX_TRUE;
|
||||
;
|
||||
mov r1, 1 ; Set register flag
|
||||
st r1, [gp, _tx_timer_expired_time_slice@sda] ; Set the time-slice expired flag
|
||||
|
||||
;
|
||||
; }
|
||||
;
|
||||
__tx_timer_no_time_slice:
|
||||
;
|
||||
; /* Test for timer expiration. */
|
||||
; if (*_tx_timer_current_ptr)
|
||||
; {
|
||||
;
|
||||
ld r0, [gp, _tx_timer_current_ptr@sda] ; Pickup current timer pointer
|
||||
ld r2, [r0, 0] ; Pickup examine actual list entry
|
||||
breq r2, 0, __tx_timer_no_timer ;
|
||||
; If NULL, no timer has expired, just move to the next entry
|
||||
;
|
||||
; /* Set expiration flag. */
|
||||
; _tx_timer_expired = TX_TRUE;
|
||||
;
|
||||
mov r1, 1 ; Build expiration value
|
||||
b.d __tx_timer_done ; Skip moving the timer pointer
|
||||
st r1, [gp, _tx_timer_expired@sda] ; Set the expired value
|
||||
;
|
||||
; }
|
||||
; else
|
||||
; {
|
||||
__tx_timer_no_timer:
|
||||
;
|
||||
; /* No timer expired, increment the timer pointer. */
|
||||
; _tx_timer_current_ptr++;
|
||||
;
|
||||
ld r2, [gp, _tx_timer_list_end@sda] ; Pickup end of list
|
||||
add r0, r0, 4 ; Move to next timer entry
|
||||
;
|
||||
; /* Check for wrap-around. */
|
||||
; if (_tx_timer_current_ptr == _tx_timer_list_end)
|
||||
;
|
||||
st r0, [gp, _tx_timer_current_ptr@sda] ; Store the current timer
|
||||
brne r0, r2, __tx_timer_skip_wrap ; If not equal, don't wrap the list
|
||||
;
|
||||
; /* Wrap to beginning of list. */
|
||||
; _tx_timer_current_ptr = _tx_timer_list_start;
|
||||
;
|
||||
ld r2, [gp, _tx_timer_list_start@sda] ; Pickup start of timer list
|
||||
st r2, [gp, _tx_timer_current_ptr@sda] ; Set current timer to the start
|
||||
;
|
||||
__tx_timer_skip_wrap:
|
||||
;
|
||||
; }
|
||||
;
|
||||
__tx_timer_done:
|
||||
;
|
||||
;
|
||||
; /* See if anything has expired. */
|
||||
; if ((_tx_timer_expired_time_slice) || (_tx_timer_expired))
|
||||
; {
|
||||
;
|
||||
breq r1, 0, __tx_timer_nothing_expired ; If 0, nothing has expired
|
||||
;
|
||||
__tx_something_expired:
|
||||
;
|
||||
ld r0, [sp, 0] ; Recover r0
|
||||
ld r1, [sp, 4] ; Recover r1
|
||||
ld r2, [sp, 8] ; Recover r2
|
||||
st blink, [sp, 16] ; Save blink
|
||||
bl _tx_thread_context_save ; Save interrupted context
|
||||
;
|
||||
; /* Did a timer expire? */
|
||||
; if (_tx_timer_expired)
|
||||
; {
|
||||
;
|
||||
ld r2, [gp, _tx_timer_expired@sda] ; Pickup timer expired flag
|
||||
ld r4, [gp, _tx_thread_preempt_disable@sda] ; Pickup preempt disable
|
||||
breq r2, 0, __tx_timer_dont_activate ; If not set, skip expiration processing
|
||||
;
|
||||
; /* Process the timer expiration. */
|
||||
; /* _tx_timer_expiration_process(); */
|
||||
bl.d _tx_timer_expiration_process ; Call the timer expiration handling routine
|
||||
sub sp, sp, 16 ; ..allocating some space on the stack
|
||||
add sp, sp, 16 ; Recover the stack space
|
||||
;
|
||||
; }
|
||||
__tx_timer_dont_activate:
|
||||
;
|
||||
; /* Did time slice expire? */
|
||||
; if (_tx_timer_expired_time_slice)
|
||||
; {
|
||||
;
|
||||
ld r2, [gp, _tx_timer_expired_time_slice@sda] ; Pickup expired time-slice flag
|
||||
breq r2, 0, __tx_timer_not_ts_expiration ; If not set, skip time-slice
|
||||
;
|
||||
; /* Time slice interrupted thread. */
|
||||
; /* _tx_thread_time_slice(); */
|
||||
|
||||
bl.d _tx_thread_time_slice ; Call time-slice processing
|
||||
sub sp, sp, 16 ; ..allocating some stack space
|
||||
add sp, sp, 16 ; Recover stack space
|
||||
;
|
||||
; }
|
||||
;
|
||||
__tx_timer_not_ts_expiration:
|
||||
;
|
||||
st 0, [gp, _tx_timer_expired_time_slice@sda]
|
||||
b _tx_thread_context_restore ; Go restore interrupt context..
|
||||
; ..clearing time-slice expired flag
|
||||
; Note that we don't return from
|
||||
; this function.
|
||||
;
|
||||
; }
|
||||
;
|
||||
__tx_timer_nothing_expired:
|
||||
;
|
||||
ld r0, [sp, 0] ; Recover r0
|
||||
ld r1, [sp, 4] ; Recover r1
|
||||
ld r2, [sp, 8] ; Recover r2
|
||||
add sp, sp, 160 ; Recover interrupt stack frame
|
||||
rtie ; Return to point of interrupt
|
||||
;
|
||||
;}
|
||||
.end
|
||||
|
0
ports/arc_hs/metaware/example_build/.metadata/.lock
Normal file
0
ports/arc_hs/metaware/example_build/.metadata/.lock
Normal file
2291
ports/arc_hs/metaware/example_build/.metadata/.log
Normal file
2291
ports/arc_hs/metaware/example_build/.metadata/.log
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,16 @@
|
||||
*** SESSION Sep 28, 2015 16:00:26.42 -------------------------------------------
|
||||
*** SESSION Sep 28, 2015 16:24:47.48 -------------------------------------------
|
||||
*** SESSION Sep 28, 2015 16:43:36.06 -------------------------------------------
|
||||
*** SESSION Oct 01, 2015 14:52:43.41 -------------------------------------------
|
||||
*** SESSION Oct 01, 2015 16:50:35.31 -------------------------------------------
|
||||
*** SESSION Oct 02, 2015 16:30:04.53 -------------------------------------------
|
||||
*** SESSION Oct 05, 2015 13:04:34.94 -------------------------------------------
|
||||
*** SESSION Oct 05, 2015 17:02:39.29 -------------------------------------------
|
||||
*** SESSION Oct 06, 2015 09:33:29.71 -------------------------------------------
|
||||
*** SESSION Oct 08, 2015 14:32:58.71 -------------------------------------------
|
||||
*** SESSION Oct 09, 2015 15:42:00.42 -------------------------------------------
|
||||
*** SESSION Oct 12, 2015 11:13:19.78 -------------------------------------------
|
||||
*** SESSION Oct 12, 2015 13:34:17.27 -------------------------------------------
|
||||
*** SESSION Oct 12, 2015 13:59:21.03 -------------------------------------------
|
||||
*** SESSION Jun 17, 2020 17:46:46.45 -------------------------------------------
|
||||
*** SESSION Jun 17, 2020 17:47:32.95 -------------------------------------------
|
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><SharedRoot><SharedProperty id="" value=""/></SharedRoot>
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -0,0 +1 @@
|
||||
|
@ -0,0 +1 @@
|
||||
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="org.eclipse.cdt.ui.text.hover.CMacroExpansionExploration">
|
||||
</section>
|
||||
<section name="completion_proposal_size">
|
||||
</section>
|
||||
</section>
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@
|
||||
|
Binary file not shown.
@ -0,0 +1 @@
|
||||
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
indexer/preferenceScope=0
|
@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
indexer/preferenceScope=0
|
@ -0,0 +1,3 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.cdt.debug.core.cDebug.default_source_containers=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<sourceLookupDirector>\r\n<sourceContainers duplicates\="false">\r\n<container memento\="AbsolutePath" typeId\="org.eclipse.cdt.debug.core.containerType.absolutePath"/>\r\n<container memento\="programRelativePath" typeId\="org.eclipse.cdt.debug.core.containerType.programRelativePath"/>\r\n<container memento\="<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>&\#13;&\#10;<project referencedProjects\="true"/>&\#13;&\#10;" typeId\="org.eclipse.cdt.debug.core.containerType.project"/>\r\n</sourceContainers>\r\n</sourceLookupDirector>\r\n
|
||||
org.eclipse.cdt.debug.corecDebug.Disassembly.instructionStepOn=true
|
@ -0,0 +1,7 @@
|
||||
columnOrderKeyEXE=0,1,2,3,4,5
|
||||
columnOrderKeySF=0,1,2,3,4,5
|
||||
columnSortDirectionKeyEXE=128
|
||||
columnSortDirectionKeySF=128
|
||||
eclipse.preferences.version=1
|
||||
visibleColumnsKeyEXE=1,1,1,0,0,0
|
||||
visibleColumnsKeySF=1,1,0,0,0,0
|
@ -0,0 +1,5 @@
|
||||
activeConfigDesc=sample_threadx Debug.org.eclipse.cdt.launchbar.core.descriptor.default
|
||||
configDescList=[sample_threadx Debug.org.eclipse.cdt.launchbar.core.descriptor.default]
|
||||
sample_threadx\ Debug.org.eclipse.cdt.launchbar.core.descriptor.default/activeLaunchMode=debug
|
||||
sample_threadx\ Debug.org.eclipse.cdt.launchbar.core.descriptor.default/activeLaunchTarget=org.eclipse.cdt.launchbar.core.target.local
|
||||
eclipse.preferences.version=1
|
@ -0,0 +1,5 @@
|
||||
eclipse.preferences.version=1
|
||||
properties/sample_threadx.com.arc.cdt.toolchain.arc.av2hs.exeProject.1700533761/com.arc.cdt.toolchain.av2hs.exeDebugConfig.585788724=av2hs.exe.debug.exeCompilerDebug.1743110770\=rebuildState\\\=false\\r\\n\r\ncom.arc.cdt.toolchain.av2hs.exeDebugConfig.585788724\=rcState\\\=0\\r\\nrebuildState\\\=false\\r\\n\r\ncom.arc.cdt.toolchain.av2hs.asmDebugExe.1483523628\=rebuildState\\\=false\\r\\n\r\ncom.arc.cdt.toolchain.av2hs.exeToolChainDebug.1358823635\=rebuildState\\\=false\\r\\n\r\ncom.arc.cdt.toolchain.arc.archiver.886382681\=rebuildState\\\=false\\r\\n\r\ncom.arc.cdt.toolchain.av2hs.exeLinkerDebug.672502322\=rebuildState\\\=false\\r\\n\r\n
|
||||
properties/sample_threadx.com.arc.cdt.toolchain.arc.av2hs.exeProject.1700533761/com.arc.cdt.toolchain.av2hs.exeReleaseConfig.2024992869=com.arc.cdt.toolchain.av2hs.exelinkerRelease.934772409\=rebuildState\\\=true\\r\\n\r\ncom.arc.cdt.toolchain.av2hs.asmReleaseExe.813382130\=rebuildState\\\=true\\r\\n\r\ncom.arc.cdt.toolchain.av2hs.exeReleaseToolChain.202924782\=rebuildState\\\=true\\r\\n\r\ncom.arc.cdt.toolchain.arc.archiver.990750758\=rebuildState\\\=true\\r\\n\r\narc.cdt.toolchain.av2hs.exeCompilerRelease.1463268267\=rebuildState\\\=true\\r\\n\r\n
|
||||
properties/tx.com.arc.cdt.toolchain.arc.av2hs.libProject.1128858457/com.arc.cdt.toolchain.av2hs.libDebugConfig.2063275274=com.arc.cdt.toolchain.av2hs.ArDebug.1591578035\=rebuildState\\\=false\\r\\n\r\ncom.arc.cdt.toolchain.arc.Linker.41800372\=rebuildState\\\=false\\r\\n\r\ncom.arc.cdt.toolchain.av2hs.libDebugAsm.1626881776\=rebuildState\\\=false\\r\\n\r\nav2hs.lib.debug.libCompiler.2145942775\=rebuildState\\\=false\\r\\n\r\ncom.arc.cdt.toolchain.av2hs.libDebugConfig.2063275274\=rcState\\\=0\\r\\nrebuildState\\\=false\\r\\n\r\ncom.arc.cdt.toolchain.av2hs.libDebugToolChain.1385404397\=rebuildState\\\=false\\r\\n\r\n
|
||||
properties/tx.com.arc.cdt.toolchain.arc.av2hs.libProject.1128858457/com.arc.cdt.toolchain.av2hs.libReleaseConfig.1202427021=com.arc.cdt.toolchain.av2hs.libCompilerRelease.1920721386\=rebuildState\\\=true\\r\\n\r\ncom.arc.cdt.toolchain.av2hs.libReleaseAsm.1207600374\=rebuildState\\\=true\\r\\n\r\ncom.arc.cdt.toolchain.av2hs.ArRelease.217147730\=rebuildState\\\=true\\r\\n\r\ncom.arc.cdt.toolchain.av2hs.libReleaseToolChain.1456119623\=rebuildState\\\=true\\r\\n\r\ncom.arc.cdt.toolchain.arc.Linker.1382145468\=rebuildState\\\=true\\r\\n\r\n
|
@ -0,0 +1,4 @@
|
||||
eclipse.preferences.version=1
|
||||
spelling_locale_initialized=true
|
||||
useAnnotationsPrefPage=true
|
||||
useQuickDiffPrefPage=true
|
@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
version=1
|
@ -0,0 +1,5 @@
|
||||
//org.eclipse.debug.core.PREFERRED_DELEGATES/org.eclipse.cdt.launch.attachLaunchType=org.eclipse.cdt.dsf.gdb.launch.attachCLaunch,debug,;
|
||||
//org.eclipse.debug.core.PREFERRED_DELEGATES/org.eclipse.cdt.launch.localCLaunch=org.eclipse.cdt.cdi.launch.localCLaunch,run,;
|
||||
//org.eclipse.debug.core.PREFERRED_DELEGATES/org.eclipse.cdt.launch.postmortemLaunchType=org.eclipse.cdt.dsf.gdb.launch.coreCLaunch,debug,;
|
||||
eclipse.preferences.version=1
|
||||
prefWatchExpressions=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<watchExpressions>\r\n<expression enabled\="true" text\="thread_0_counter"/>\r\n<expression enabled\="true" text\="thread_1_counter"/>\r\n<expression enabled\="true" text\="thread_2_counter"/>\r\n<expression enabled\="true" text\="thread_3_counter"/>\r\n<expression enabled\="true" text\="thread_4_counter"/>\r\n<expression enabled\="true" text\="thread_5_counter"/>\r\n<expression enabled\="true" text\="thread_6_counter"/>\r\n<expression enabled\="true" text\="thread_7_counter"/>\r\n</watchExpressions>\r\n
|
@ -0,0 +1,10 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.debug.ui.PREF_LAUNCH_PERSPECTIVES=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<launchPerspectives/>\r\n
|
||||
org.eclipse.debug.ui.user_view_bindings=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<viewBindings>\r\n<view id\="org.eclipse.cdt.debug.ui.RegisterView">\r\n<perspective id\="org.eclipse.debug.ui.DebugPerspective" userAction\="closed"/>\r\n</view>\r\n<view id\="org.eclipse.debug.ui.ModuleView">\r\n<perspective id\="org.eclipse.debug.ui.DebugPerspective" userAction\="opened"/>\r\n</view>\r\n<view id\="org.eclipse.debug.ui.VariableView">\r\n<perspective id\="org.eclipse.debug.ui.DebugPerspective" userAction\="opened"/>\r\n</view>\r\n<view id\="org.eclipse.debug.ui.DebugView">\r\n<perspective id\="org.eclipse.debug.ui.DebugPerspective" userAction\="closed"/>\r\n</view>\r\n<view id\="org.eclipse.debug.ui.BreakpointView">\r\n<perspective id\="org.eclipse.debug.ui.DebugPerspective" userAction\="opened"/>\r\n</view>\r\n<view id\="org.eclipse.ui.console.ConsoleView">\r\n<perspective id\="org.eclipse.debug.ui.DebugPerspective" userAction\="closed"/>\r\n</view>\r\n</viewBindings>\r\n
|
||||
pref_state_memento.org.eclipse.debug.ui.BreakpointView=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<VariablesViewMemento org.eclipse.debug.ui.SASH_DETAILS_PART\="315" org.eclipse.debug.ui.SASH_VIEW_PART\="684">\r\n<PRESENTATION_CONTEXT_PROPERTIES IMemento.internal.id\="org.eclipse.debug.ui.BreakpointView">\r\n<BOOLEAN BOOLEAN\="true" IMemento.internal.id\="org.eclipse.debug.ui.check"/>\r\n</PRESENTATION_CONTEXT_PROPERTIES>\r\n</VariablesViewMemento>
|
||||
pref_state_memento.org.eclipse.debug.ui.DebugVieworg.eclipse.debug.ui.DebugView=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<DebugViewMemento org.eclipse.debug.ui.BREADCRUMB_DROPDOWN_AUTO_EXPAND\="false"/>
|
||||
pref_state_memento.org.eclipse.debug.ui.ExpressionView=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<VariablesViewMemento org.eclipse.debug.ui.SASH_DETAILS_PART\="315" org.eclipse.debug.ui.SASH_VIEW_PART\="684">\r\n<COLUMN_SIZES IMemento.internal.id\="org.eclipse.debug.ui.VARIALBE_COLUMN_PRESENTATION.COL_VAR_VALUE" SIZE\="99"/>\r\n<COLUMN_SIZES IMemento.internal.id\="org.eclipse.debug.ui.VARIALBE_COLUMN_PRESENTATION.COL_VAR_NAME" SIZE\="186"/>\r\n<PRESENTATION_CONTEXT_PROPERTIES IMemento.internal.id\="org.eclipse.debug.ui.ExpressionView"/>\r\n</VariablesViewMemento>
|
||||
pref_state_memento.org.eclipse.debug.ui.ModuleView=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<VariablesViewMemento org.eclipse.debug.ui.SASH_DETAILS_PART\="315" org.eclipse.debug.ui.SASH_VIEW_PART\="684"/>
|
||||
pref_state_memento.org.eclipse.debug.ui.VariableView=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<VariablesViewMemento org.eclipse.debug.ui.SASH_DETAILS_PART\="315" org.eclipse.debug.ui.SASH_VIEW_PART\="684"/>
|
||||
preferredDetailPanes=DefaultDetailPane\:DefaultDetailPane|
|
||||
preferredTargets=org.eclipse.cdt.debug.ui.toggleCBreakpointTarget\:org.eclipse.cdt.debug.ui.toggleCBreakpointTarget|org.eclipse.cdt.debug.ui.toggleCBreakpointTarget,org.eclipse.cdt.debug.ui.toggleCDynamicPrintfTarget\:org.eclipse.cdt.debug.ui.toggleCBreakpointTarget|
|
@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
overviewRuler_migration=migrated_3.1
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user