This commit is contained in:
QL 2019-01-24 20:08:49 -05:00
parent a6105cf3bd
commit 7d7dc7ceac
47 changed files with 3361 additions and 2912 deletions

File diff suppressed because it is too large Load Diff

View File

@ -120,7 +120,7 @@ void QK_onIdle(void) {
* you might need to customize the clock management for your application,
* see the datasheet for your particular MSP430 MCU.
*/
__low_power_mode_1(); /* enter LPM1; also ENABLES interrupts, see NOTE1
__low_power_mode_1(); /* enter LPM1; also ENABLES interrupts, see NOTE1 */
#endif
}

View File

@ -48,7 +48,7 @@
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../..&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../src&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qk/ccs&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qk&quot;"/>
<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL.1334096219" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
@ -149,7 +149,7 @@
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../..&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../src&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qk/ccs&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qk&quot;"/>
<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DIAG_WRAP.1965690727" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
@ -249,7 +249,7 @@
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../..&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../src&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qk/ccs&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qk&quot;"/>
<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL.828601683" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="com.ti.ccstudio.debug.launchType.device.debugging">
<stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_CPUS_WITH_PROJECT" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;cpus_with_project&gt;&#13;&#10;&lt;id id=&quot;TI MSP430 USB1/MSP430&quot; isa=&quot;MSP430&quot;/&gt;&#13;&#10;&lt;/cpus_with_project&gt;"/>
<stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_DEBUGGER_PROPERTIES.TI MSP430 USB1/MSP430" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot; ?&gt;&#10;&lt;PropertyValues&gt;&#10;&#10; &lt;property id=&quot;ConnectOnStartup&quot;&gt;&#10; &lt;curValue&gt;1&lt;/curValue&gt;&#10; &lt;/property&gt;&#10;&#10; &lt;property id=&quot;EnableInstalledBreakpoint&quot;&gt;&#10; &lt;curValue&gt;1&lt;/curValue&gt;&#10; &lt;/property&gt;&#10;&#10;&lt;/PropertyValues&gt;&#10;"/>
<stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_PROGRAM.TI MSP430 USB1/MSP430" value="${build_artifact:blinky-qk_msp-exp430f5529lp}"/>
<stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_PROJECT.TI MSP430 USB1/MSP430" value="blinky-qk_msp-exp430f5529lp"/>
<stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_TARGET_CONFIG" value="${target_config_active_default:blinky-qk_msp-exp430f5529lp}"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/blinky-qk_msp-exp430f5529lp"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="com.ti.ccstudio.debug.sourceLocator"/>
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;sourceLookupDirector&gt;&#13;&#10;&lt;sourceContainers duplicates=&quot;false&quot;&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;default/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.default&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;cpuSpecificContainer cpuName=&amp;quot;TI MSP430 USB1/MSP430&amp;quot;&amp;gt;&amp;#13;&amp;#10;&amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;project name=&amp;amp;quot;blinky-qk_msp-exp430f5529lp&amp;amp;quot; referencedProjects=&amp;amp;quot;true&amp;amp;quot;/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;org.eclipse.debug.core.containerType.project&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;default/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;org.eclipse.debug.core.containerType.default&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;productsSource/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;com.ti.ccstudio.debug.containerType.products.source&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;deviceLibrarySource/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;com.ti.ccstudio.debug.containerType.device.library.source&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;librarySource/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;com.ti.ccstudio.debug.containerType.library.source&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&amp;lt;/cpuSpecificContainer&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;com.ti.ccstudio.debug.containerType.cpu.specific&quot;/&gt;&#13;&#10;&lt;/sourceContainers&gt;&#13;&#10;&lt;/sourceLookupDirector&gt;&#13;&#10;"/>
</launchConfiguration>

View File

@ -43,7 +43,7 @@
<link>
<name>QP_port</name>
<type>2</type>
<locationURI>PARENT-5-PROJECT_LOC/ports/msp430/qk/ccs</locationURI>
<locationURI>PARENT-5-PROJECT_LOC/ports/msp430/qk</locationURI>
</link>
<link>
<name>blinky.c</name>

View File

@ -394,7 +394,7 @@
<state>$PROJ_DIR$\..\..</state>
<state>$PROJ_DIR$\..\..\..\..\..\include</state>
<state>$PROJ_DIR$\..\..\..\..\..\src</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk\iar</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk</state>
</option>
<option>
<name>CCStdIncCheck</name>
@ -1524,7 +1524,7 @@
<state>$PROJ_DIR$\..\..</state>
<state>$PROJ_DIR$\..\..\..\..\..\include</state>
<state>$PROJ_DIR$\..\..\..\..\..\src</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk\iar</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk</state>
</option>
<option>
<name>CCStdIncCheck</name>
@ -2650,7 +2650,7 @@
<state>$PROJ_DIR$\..\..</state>
<state>$PROJ_DIR$\..\..\..\..\..\include</state>
<state>$PROJ_DIR$\..\..\..\..\..\src</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk\iar</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk</state>
</option>
<option>
<name>CCStdIncCheck</name>
@ -3456,16 +3456,16 @@
<group>
<name>QP_port</name>
<file>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk\iar\qep_port.h</name>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk\qep_port.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk\iar\qf_port.h</name>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk\qf_port.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk\iar\qk_port.h</name>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk\qk_port.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk\iar\qs_port.h</name>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk\qs_port.h</name>
</file>
</group>
<group>

View File

@ -47,7 +47,7 @@
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../..&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../src&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qv/ccs&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qv&quot;"/>
<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL.354910356" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
@ -147,7 +147,7 @@
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../..&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../src&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qv/ccs&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qv&quot;"/>
<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DIAG_WRAP.943383725" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
@ -246,7 +246,7 @@
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../..&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../src&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qv/ccs&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qv&quot;"/>
<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL.2059480999" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
@ -270,7 +270,7 @@
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.SEARCH_PATH.546303107" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.SEARCH_PATH" valueType="libPaths">
<listOptionValue builtIn="false" value="${CCS_BASE_ROOT}/msp430/include"/>
<listOptionValue builtIn="false" value="&quot;${CCS_BASE_ROOT}/msp430/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qv/ccs/spy&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qv/spy&quot;"/>
<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/lib&quot;"/>
<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
<listOptionValue builtIn="false" value="${CCS_BASE_ROOT}/msp430/lib/5xx_6xx_FRxx"/>

View File

@ -38,7 +38,7 @@
<link>
<name>QP_port</name>
<type>2</type>
<locationURI>PARENT-5-PROJECT_LOC/ports/msp430/qv/ccs</locationURI>
<locationURI>PARENT-5-PROJECT_LOC/ports/msp430/qv</locationURI>
</link>
<link>
<name>QS</name>

View File

@ -394,7 +394,7 @@
<state>$PROJ_DIR$\..\..</state>
<state>$PROJ_DIR$\..\..\..\..\..\include</state>
<state>$PROJ_DIR$\..\..\..\..\..\src</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv\iar</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv</state>
</option>
<option>
<name>CCStdIncCheck</name>
@ -1520,7 +1520,7 @@
<state>$PROJ_DIR$\..\..</state>
<state>$PROJ_DIR$\..\..\..\..\..\include</state>
<state>$PROJ_DIR$\..\..\..\..\..\src</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv\iar</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv</state>
</option>
<option>
<name>CCStdIncCheck</name>
@ -2646,7 +2646,7 @@
<state>$PROJ_DIR$\..\..</state>
<state>$PROJ_DIR$\..\..\..\..\..\include</state>
<state>$PROJ_DIR$\..\..\..\..\..\src</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv\iar</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv</state>
</option>
<option>
<name>CCStdIncCheck</name>
@ -3449,16 +3449,16 @@
<group>
<name>QP_port</name>
<file>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv\iar\qep_port.h</name>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv\qep_port.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv\iar\qf_port.h</name>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv\qf_port.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv\iar\qs_port.h</name>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv\qs_port.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv\iar\qv_port.h</name>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv\qv_port.h</name>
</file>
</group>
<group>

View File

@ -1,13 +1,13 @@
/*****************************************************************************
* Product: DPP on MSP-EXP430F5529LP, preemptive QK kernel
* Last updated for version 6.3.7
* Last updated on 2018-11-30
* Last updated for version 6.3.8
* Last updated on 2019-01-24
*
* Q u a n t u m L e a P s
* ------------------------
* Modern Embedded Software
*
* Copyright (C) 2005-2018 Quantum Leaps, LLC. All rights reserved.
* Copyright (C) 2005-2019 Quantum Leaps, LLC. All rights reserved.
*
* This program is open source software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published
@ -197,7 +197,7 @@ void QK_onIdle(void) {
* you might need to customize the clock management for your application,
* see the datasheet for your particular MSP430 MCU.
*/
__low_power_mode_1(); /* enter LPM1; also ENABLES interrupts, see NOTE1
__low_power_mode_1(); /* enter LPM1; also ENABLES interrupts, see NOTE1 */
#endif
}
@ -247,11 +247,11 @@ uint8_t QS_onStartup(void const *arg) {
P4SEL |= (RXD | TXD); /* select the UART function for the pins */
UCA1CTL1 |= UCSWRST; /* reset USCI state machine */
UCA1CTL1 |= UCSSEL_2; /* choose the SMCLK clock */
#if 0
UCA0BR0 = 6; /* 1MHz 9600 (see User's Guide) */
UCA0BR1 = 0; /* 1MHz 9600 */
UCA0MCTL = UCBRS_0 | UCBRF_13 | UCOS16; /* modulationUCBRSx=0, UCBRFx=0, oversampling */
#else
#if 1 /* 9600 baud rate */
UCA1BR0 = 6; /* 1MHz 9600 (see User's Guide) */
UCA1BR1 = 0; /* 1MHz 9600 */
UCA1MCTL = UCBRS_0 | UCBRF_13 | UCOS16; /* modulationUCBRSx=0, UCBRFx=0, oversampling */
#else /* 115200 baud rate */
UCA1BR0 = 9; /* 1MHz 115200 (see User's Guide) */
UCA1BR1 = 0; /* 1MHz 115200 */
UCA1MCTL |= UCBRS_1 | UCBRF_0; /* modulation UCBRSx=1, UCBRFx=0 */

View File

@ -47,7 +47,7 @@
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../..&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../src&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qk/ccs&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qk&quot;"/>
<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL.1082810150" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
@ -147,7 +147,7 @@
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../..&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../src&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qk/ccs&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qk&quot;"/>
<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DIAG_WRAP.1482762883" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
@ -246,7 +246,7 @@
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../..&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../src&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qk/ccs&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qk&quot;"/>
<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL.831890234" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
@ -269,7 +269,7 @@
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.SEARCH_PATH.261004950" name="Add &lt;dir&gt; to library search path (--search_path, -i)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.SEARCH_PATH" valueType="libPaths">
<listOptionValue builtIn="false" value="${CCS_BASE_ROOT}/msp430/include"/>
<listOptionValue builtIn="false" value="&quot;${CCS_BASE_ROOT}/msp430/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qk/ccs/spy&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qk/spy&quot;"/>
<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/lib&quot;"/>
<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
<listOptionValue builtIn="false" value="${CCS_BASE_ROOT}/msp430/lib/5xx_6xx_FRxx"/>

View File

@ -38,7 +38,7 @@
<link>
<name>QP_port</name>
<type>2</type>
<locationURI>PARENT-5-PROJECT_LOC/ports/msp430/qk/ccs</locationURI>
<locationURI>PARENT-5-PROJECT_LOC/ports/msp430/qk</locationURI>
</link>
<link>
<name>QS</name>

View File

@ -394,7 +394,7 @@
<state>$PROJ_DIR$\..\..</state>
<state>$PROJ_DIR$\..\..\..\..\..\include</state>
<state>$PROJ_DIR$\..\..\..\..\..\src</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk\iar</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk</state>
</option>
<option>
<name>CCStdIncCheck</name>
@ -1524,7 +1524,7 @@
<state>$PROJ_DIR$\..\..</state>
<state>$PROJ_DIR$\..\..\..\..\..\include</state>
<state>$PROJ_DIR$\..\..\..\..\..\src</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk\iar</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk</state>
</option>
<option>
<name>CCStdIncCheck</name>
@ -2318,7 +2318,7 @@
</option>
<option>
<name>RTLibraryPath</name>
<state>$TOOLKIT_DIR$\lib\dlib\dl430fn.r43</state>
<state>$TOOLKIT_DIR$\lib\dlib\dl430xlsfn.r43</state>
</option>
<option>
<name>Input variant</name>
@ -2361,11 +2361,11 @@
</option>
<option>
<name>GStackSize2</name>
<state>80</state>
<state>160</state>
</option>
<option>
<name>GHeapSize2</name>
<state>80</state>
<state>160</state>
</option>
<option>
<name>RadioDataModelType</name>
@ -2650,7 +2650,7 @@
<state>$PROJ_DIR$\..\..</state>
<state>$PROJ_DIR$\..\..\..\..\..\include</state>
<state>$PROJ_DIR$\..\..\..\..\..\src</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk\iar</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk</state>
</option>
<option>
<name>CCStdIncCheck</name>
@ -3357,7 +3357,11 @@
<debug>1</debug>
<option>
<name>CUTest</name>
<state>###Uninitialized###</state>
<state>-I$TOOLKIT_DIR$\inc</state>
<state>-@$TOOLKIT_DIR$\bin\iar.cmd</state>
<state>-@$PROJ_DIR$\source.txt</state>
<state>-@$PROJ_DIR$\include.txt</state>
<state>--preinclude=$PROJ_DIR$\IAR_ULPAdvisor_Defs.h</state>
</option>
<option>
<name>ULPRules</name>
@ -3370,7 +3374,7 @@
</option>
<option>
<name>OutputFile</name>
<state></state>
<state>$PROJ_FNAME$.ulp</state>
</option>
<option>
<name>ULPStatus</name>
@ -3459,16 +3463,16 @@
<group>
<name>QP_port</name>
<file>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk\iar\qep_port.h</name>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk\qep_port.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk\iar\qf_port.h</name>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk\qf_port.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk\iar\qk_port.h</name>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk\qk_port.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk\iar\qs_port.h</name>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qk\qs_port.h</name>
</file>
</group>
<group>

View File

@ -1,13 +1,13 @@
/*****************************************************************************
* Product: DPP on MSP-EXP430F5529LP, cooperative QV kernel
* Last updated for version 6.3.7
* Last updated on 2018-11-30
* Last updated for version 6.3.8
* Last updated on 2019-01-24
*
* Q u a n t u m L e a P s
* ------------------------
* Modern Embedded Software
*
* Copyright (C) 2005-2018 Quantum Leaps, LLC. All rights reserved.
* Copyright (C) 2005-2019 Quantum Leaps, LLC. All rights reserved.
*
* This program is open source software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published
@ -93,6 +93,7 @@ static uint32_t l_rnd;
QF_TICK_X(0U, (void *)0); /* process all time events at rate 0 */
}
/* BSP functions ===========================================================*/
void BSP_init(void) {
WDTCTL = WDTPW | WDTHOLD; /* stop watchdog timer */
@ -188,11 +189,12 @@ void QV_onIdle(void) { /* NOTE: called with interrutps DISABLED, see NOTE1 */
* you might need to customize the clock management for your application,
* see the datasheet for your particular MSP430 MCU.
*/
__low_power_mode_1(); /* Enter LPM1; also ENABLES interrupts */
__low_power_mode_1(); /* enter LPM1; also ENABLES interrupts */
#else
QF_INT_ENABLE(); /* just enable interrupts */
#endif
}
/*..........................................................................*/
void Q_onAssert(char const *module, int loc) {
/*
@ -238,10 +240,11 @@ uint8_t QS_onStartup(void const *arg) {
P4SEL |= (RXD | TXD); /* select the UART function for the pins */
UCA1CTL1 |= UCSWRST; /* reset USCI state machine */
UCA1CTL1 |= UCSSEL_2; /* choose the SMCLK clock */
#if 0
UCA0BR0 = 6; /* 1MHz 9600 (see User's Guide) */
UCA0BR1 = 0; /* 1MHz 9600 */
UCA0MCTL = UCBRS_0 | UCBRF_13 | UCOS16; /* modulationUCBRSx=0, UCBRFx=0, oversampling */
#if 1
UCA1BR0 = 6; /* 1MHz 9600 (see User's Guide) */
UCA1BR1 = 0; /* 1MHz 9600 */
/* modulation UCBRSx=0, UCBRFx=0, oversampling */
UCA1MCTL = UCBRS_0 | UCBRF_13 | UCOS16;
#else
UCA1BR0 = 9; /* 1MHz 115200 (see User's Guide) */
UCA1BR1 = 0; /* 1MHz 115200 */
@ -320,7 +323,7 @@ void QS_onCommand(uint8_t cmdId,
* NOTE2:
* One of the LEDs is used to visualize the idle loop activity. The brightness
* of the LED is proportional to the frequency of invocations of the idle loop.
* Please note that the LED is toggled with interrupts locked, so no interrupt
* execution time contributes to the brightness of the User LED.
* Please note that the LED is toggled with interrupts disabled, so no
* interrupt execution time contributes to the brightness of the User LED.
*/

View File

@ -47,7 +47,7 @@
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../..&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../src&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qv/ccs&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qv&quot;"/>
<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL.1082810150" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
@ -147,7 +147,7 @@
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../..&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../src&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qv/ccs&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qv&quot;"/>
<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DIAG_WRAP.1482762883" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
@ -246,7 +246,7 @@
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../..&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../src&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qv/ccs&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qv&quot;"/>
<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL.831890234" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
@ -269,7 +269,7 @@
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.SEARCH_PATH.261004950" name="Add &lt;dir&gt; to library search path (--search_path, -i)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.SEARCH_PATH" valueType="libPaths">
<listOptionValue builtIn="false" value="${CCS_BASE_ROOT}/msp430/include"/>
<listOptionValue builtIn="false" value="&quot;${CCS_BASE_ROOT}/msp430/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qv/ccs/spy&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qv/spy&quot;"/>
<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/lib&quot;"/>
<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
<listOptionValue builtIn="false" value="${CCS_BASE_ROOT}/msp430/lib/5xx_6xx_FRxx"/>

View File

@ -38,7 +38,7 @@
<link>
<name>QP_port</name>
<type>2</type>
<locationURI>PARENT-5-PROJECT_LOC/ports/msp430/qv/ccs</locationURI>
<locationURI>PARENT-5-PROJECT_LOC/ports/msp430/qv</locationURI>
</link>
<link>
<name>QS</name>

View File

@ -394,7 +394,7 @@
<state>$PROJ_DIR$\..\..</state>
<state>$PROJ_DIR$\..\..\..\..\..\include</state>
<state>$PROJ_DIR$\..\..\..\..\..\src</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv\iar</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv</state>
</option>
<option>
<name>CCStdIncCheck</name>
@ -1520,7 +1520,7 @@
<state>$PROJ_DIR$\..\..</state>
<state>$PROJ_DIR$\..\..\..\..\..\include</state>
<state>$PROJ_DIR$\..\..\..\..\..\src</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv\iar</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv</state>
</option>
<option>
<name>CCStdIncCheck</name>
@ -2646,7 +2646,7 @@
<state>$PROJ_DIR$\..\..</state>
<state>$PROJ_DIR$\..\..\..\..\..\include</state>
<state>$PROJ_DIR$\..\..\..\..\..\src</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv\iar</state>
<state>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv</state>
</option>
<option>
<name>CCStdIncCheck</name>
@ -3452,16 +3452,16 @@
<group>
<name>QP_port</name>
<file>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv\iar\qep_port.h</name>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv\qep_port.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv\iar\qf_port.h</name>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv\qf_port.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv\iar\qs_port.h</name>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv\qs_port.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv\iar\qv_port.h</name>
<name>$PROJ_DIR$\..\..\..\..\..\ports\msp430\qv\qv_port.h</name>
</file>
</group>
<group>

View File

@ -73,4 +73,4 @@ extern QActive * const AO_Table;
extern QXThread * const XT_Test2;
#endif /* qxk_h */
#endif /* dpp_h */
#endif /* dpp_h */

View File

@ -355,7 +355,8 @@ $declare${AOs::AO_Table}
extern QXThread * const XT_Test2;
#endif /* qxk_h */
#endif /* dpp_h */</text>
#endif /* dpp_h */
</text>
</file>
<file name="philo.c">
<text>#include &quot;qpc.h&quot;

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
<?ccsproject version="1.0"?>
<projectOptions>
<deviceVariant value="MSP430F5529"/>
<deviceFamily value="MSP430"/>
<codegenToolVersion value="4.4.4"/>
<isElfFormat value="true"/>
<connection value="common/targetdb/connections/TIMSP430-USB.xml"/>
<linkerCommandFile value="lnk_msp430f5529.cmd"/>
<rts value="libc.a"/>
<createSlaveProjects value=""/>
<templateProperties value="id=com.ti.common.project.core.emptyProjectWithMainTemplate_msp430,"/>
<isTargetManual value="false"/>
</projectOptions>

View File

@ -0,0 +1,138 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
<storageModule configRelations="2" moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="com.ti.ccstudio.buildDefinitions.MSP430.Debug.26198106.1583450934">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.MSP430.Debug.26198106.1583450934" moduleId="org.eclipse.cdt.core.settings" name="QUTest">
<externalSettings/>
<extensions>
<extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.MSP430.Debug.26198106.1583450934" name="QUTest" parent="com.ti.ccstudio.buildDefinitions.MSP430.Debug" postbuildStep="" prebuildStep="rm &quot;${PROJECT_BUILD_DIR}/QP_include/qstamp.obj&quot;">
<folderInfo id="com.ti.ccstudio.buildDefinitions.MSP430.Debug.26198106.1583450934." name="/" resourcePath="">
<toolChain id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exe.DebugToolchain.20739615" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exe.linkerDebug.2093124014">
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1224925019" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=MSP430F5529"/>
<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
<listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>
<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE=lnk_msp430f5529.cmd"/>
<listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
<listOptionValue builtIn="false" value="CCS_MBS_VERSION=6.1.3"/>
<listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.1607954478" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="16.9.6.LTS" valueType="string"/>
<targetPlatform id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exe.targetPlatformDebug.69972864" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exe.targetPlatformDebug"/>
<builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exe.builderDebug.1329869952" keepEnvironmentInBuildfile="false" name="GNU Make" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exe.builderDebug"/>
<tool id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exe.compilerDebug.398377767" name="MSP430 Compiler" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exe.compilerDebug">
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEFINE.10735315" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEFINE" valueType="definedSymbols">
<listOptionValue builtIn="false" value="Q_SPY"/>
<listOptionValue builtIn="false" value="Q_UTEST"/>
<listOptionValue builtIn="false" value="__MSP430F5529__"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DATA_MODEL.48597005" name="Specify the data memory model. (--data_model)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DATA_MODEL" value="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DATA_MODEL.small" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.USE_HW_MPY.1369100792" name="Inline hardware multiply version of RTS mpy routine (--use_hw_mpy)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.USE_HW_MPY" value="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.USE_HW_MPY.F5" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.SILICON_ERRATA.CPU21.201180314" name="Workaround specified silicon errata (--silicon_errata) [CPU21]" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.SILICON_ERRATA.CPU21" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.SILICON_ERRATA.CPU22.323553141" name="Workaround specified silicon errata (--silicon_errata) [CPU22]" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.SILICON_ERRATA.CPU22" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.SILICON_ERRATA.CPU23.1700004757" name="Workaround specified silicon errata (--silicon_errata) [CPU23]" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.SILICON_ERRATA.CPU23" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.SILICON_ERRATA.CPU40.1593036300" name="Workaround specified silicon errata (--silicon_errata) [CPU40]" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.SILICON_ERRATA.CPU40" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.SILICON_VERSION.906572439" name="Silicon version (--silicon_version, -v)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.SILICON_VERSION" value="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.SILICON_VERSION.mspx" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.PRINTF_SUPPORT.1250468187" name="Level of printf/scanf support required (--printf_support)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.PRINTF_SUPPORT" value="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.PRINTF_SUPPORT.minimal" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.INCLUDE_PATH.1990748021" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.INCLUDE_PATH" valueType="includePath">
<listOptionValue builtIn="false" value="${CCS_BASE_ROOT}/msp430/include"/>
<listOptionValue builtIn="false" value="${PROJECT_LOC}/."/>
<listOptionValue builtIn="false" value="${PROJECT_LOC}/../.."/>
<listOptionValue builtIn="false" value="${PROJECT_LOC}/../../../../include"/>
<listOptionValue builtIn="false" value="${PROJECT_LOC}/../../../../src"/>
<listOptionValue builtIn="false" value="${PROJECT_LOC}/../../../../ports/msp430/qutest"/>
<listOptionValue builtIn="false" value="${PROJECT_LOC}/../src"/>
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL.822236150" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DIAG_WARNING.1088940640" name="Treat diagnostic &lt;id&gt; as warning (--diag_warning, -pdsw)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DIAG_WARNING" valueType="stringList">
<listOptionValue builtIn="false" value="225"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DIAG_WRAP.329648053" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DISPLAY_ERROR_NUMBER.1609583135" name="Emit diagnostic identifier numbers (--display_error_number, -pden)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.ABI.396067356" name="Application binary interface (--abi)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compilerID.ABI.eabi" valueType="enumerated"/>
<inputType id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compiler.inputType__C_SRCS.854510992" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compiler.inputType__C_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compiler.inputType__CPP_SRCS.1047669089" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compiler.inputType__CPP_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compiler.inputType__ASM_SRCS.1151310877" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compiler.inputType__ASM_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compiler.inputType__ASM2_SRCS.1560502730" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compiler.inputType__ASM2_SRCS"/>
</tool>
<tool id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exe.linkerDebug.2093124014" name="MSP430 Linker" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exe.linkerDebug">
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.LIBRARY.1213213130" name="Include library file or command file as input (--library, -l)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.LIBRARY" valueType="libs">
<listOptionValue builtIn="false" value="libc.a"/>
<listOptionValue builtIn="false" value="libmath.a"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.SEARCH_PATH.286706947" name="Add &lt;dir&gt; to library search path (--search_path, -i)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.SEARCH_PATH" valueType="libPaths">
<listOptionValue builtIn="false" value="${CCS_BASE_ROOT}/msp430/include"/>
<listOptionValue builtIn="false" value="&quot;${CCS_BASE_ROOT}/msp430/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../../../ports/msp430/qk/ccs/spy&quot;"/>
<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/lib&quot;"/>
<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
<listOptionValue builtIn="false" value="${CCS_BASE_ROOT}/msp430/lib/5xx_6xx_FRxx"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.USE_HW_MPY.593980859" name="Deprecated: Now a compiler option instead of linker option (--use_hw_mpy)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.USE_HW_MPY" value="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.USE_HW_MPY.F5" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.CINIT_HOLD_WDT.923760026" name="Hold watchdog timer during cinit auto-initialization (--cinit_hold_wdt)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.CINIT_HOLD_WDT" value="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.CINIT_HOLD_WDT.on" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.HEAP_SIZE.166028047" name="Heap size for C/C++ dynamic memory allocation (--heap_size, -heap)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.HEAP_SIZE" value="0" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.STACK_SIZE.979894391" name="Set C system stack size (--stack_size, -stack)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.STACK_SIZE" value="160" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.MAP_FILE.394024046" name="Link information (map) listed into &lt;file&gt; (--map_file, -m)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.MAP_FILE" value="&quot;${ProjName}.map&quot;" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.OUTPUT_FILE.999186292" name="Specify output file name (--output_file, -o)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.OUTPUT_FILE" value="${ProjName}.out" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.DIAG_WRAP.1656256206" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.DIAG_WRAP.off" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.DISPLAY_ERROR_NUMBER.2078239475" name="Emit diagnostic identifier numbers (--display_error_number)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.XML_LINK_INFO.1275658327" name="Detailed link information data-base into &lt;file&gt; (--xml_link_info, -xml_link_info)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.linkerID.XML_LINK_INFO" value="&quot;${ProjName}_linkInfo.xml&quot;" valueType="string"/>
<inputType id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exeLinker.inputType__CMD_SRCS.979321504" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exeLinker.inputType__CMD_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exeLinker.inputType__CMD2_SRCS.1747483560" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exeLinker.inputType__CMD2_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exeLinker.inputType__GEN_CMDS.632306936" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exeLinker.inputType__GEN_CMDS"/>
</tool>
<tool id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.hex.2041198403" name="MSP430 Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.hex">
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.hex.ROMWIDTH.534994488" name="Specify rom width (--romwidth, -romwidth=width)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.hex.ROMWIDTH" value="8" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.hex.MEMWIDTH.2007190572" name="Specify memory width (--memwidth, -memwidth=width)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.hex.MEMWIDTH" value="8" valueType="string"/>
</tool>
</toolChain>
</folderInfo>
<folderInfo id="com.ti.ccstudio.buildDefinitions.MSP430.Debug.26198106.1583450934.2080581034" name="/" resourcePath="QP">
<toolChain id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exe.DebugToolchain.585492880" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exe.DebugToolchain" unusedChildren="">
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1224925019.1905125848" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1224925019"/>
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.1607954478.152337999" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.1607954478"/>
<targetPlatform id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exe.targetPlatformDebug" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exe.targetPlatformDebug"/>
<tool id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exe.compilerDebug.456551220" name="MSP430 Compiler" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exe.compilerDebug.398377767">
<inputType id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compiler.inputType__C_SRCS.234227703" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compiler.inputType__C_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compiler.inputType__CPP_SRCS.177672758" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compiler.inputType__CPP_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compiler.inputType__ASM_SRCS.412905784" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compiler.inputType__ASM_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compiler.inputType__ASM2_SRCS.1487839411" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.compiler.inputType__ASM2_SRCS"/>
</tool>
<tool id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exe.linkerDebug.821334401" name="MSP430 Linker" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.exe.linkerDebug.2093124014"/>
<tool id="com.ti.ccstudio.buildDefinitions.MSP430_16.9.hex.593302484" name="MSP430 Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.MSP430_16.9.hex.2041198403"/>
</toolChain>
</folderInfo>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
</sourceEntries>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="test_dpp.com.ti.ccstudio.buildDefinitions.MSP430.ProjectType.1637111345" name="MSP430" projectType="com.ti.ccstudio.buildDefinitions.MSP430.ProjectType"/>
</storageModule>
<storageModule moduleId="scannerConfiguration"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping">
<project-mappings>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.asmSource" language="com.ti.ccstudio.core.TIASMLanguage"/>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cHeader" language="com.ti.ccstudio.core.TIGCCLanguage"/>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cSource" language="com.ti.ccstudio.core.TIGCCLanguage"/>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxHeader" language="com.ti.ccstudio.core.TIGPPLanguage"/>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxSource" language="com.ti.ccstudio.core.TIGPPLanguage"/>
</project-mappings>
</storageModule>
<storageModule moduleId="null.endianPreference"/>
<storageModule moduleId="cpuFamily"/>
</cproject>

View File

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>test_dpp</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
<triggers>full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.ti.ccstudio.core.ccsNature</nature>
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.eclipse.cdt.core.ccnature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
</natures>
<linkedResources>
<link>
<name>QP</name>
<type>2</type>
<locationURI>PARENT-4-PROJECT_LOC/src/qf</locationURI>
</link>
<link>
<name>QP_include</name>
<type>2</type>
<locationURI>PARENT-4-PROJECT_LOC/include</locationURI>
</link>
<link>
<name>QP_port</name>
<type>2</type>
<locationURI>PARENT-4-PROJECT_LOC/ports/msp430/qutest</locationURI>
</link>
<link>
<name>QS</name>
<type>2</type>
<locationURI>PARENT-4-PROJECT_LOC/src/qs</locationURI>
</link>
<link>
<name>bsp.c</name>
<type>1</type>
<locationURI>PARENT-1-PROJECT_LOC/src/bsp.c</locationURI>
</link>
<link>
<name>bsp.h</name>
<type>1</type>
<locationURI>PARENT-1-PROJECT_LOC/src/bsp.h</locationURI>
</link>
<link>
<name>dpp.h</name>
<type>1</type>
<locationURI>PARENT-1-PROJECT_LOC/src/dpp.h</locationURI>
</link>
<link>
<name>dpp.qm</name>
<type>1</type>
<locationURI>PARENT-1-PROJECT_LOC/src/dpp.qm</locationURI>
</link>
<link>
<name>philo.c</name>
<type>1</type>
<locationURI>PARENT-1-PROJECT_LOC/src/philo.c</locationURI>
</link>
<link>
<name>qk</name>
<type>2</type>
<locationURI>PARENT-5-PROJECT_LOC/src/qk</locationURI>
</link>
<link>
<name>qutest_port.c</name>
<type>1</type>
<locationURI>PARENT-2-PROJECT_LOC/target_exp430f55/qutest_port.c</locationURI>
</link>
<link>
<name>table.c</name>
<type>1</type>
<locationURI>PARENT-1-PROJECT_LOC/src/table.c</locationURI>
</link>
</linkedResources>
</projectDescription>

View File

@ -0,0 +1,141 @@
QUTest Integration Testing of the DPP Application
=================================================
The tests included in the qutest/dpp/test_dpp directory perform integration
testing of the DPP application. The difference from pure unit testing is
that multiple active objects (AOs) are started and the tests exercise
interactions among these active objects.
The Test Fixture
----------------
The QUTest test fixture in this case is built from the same components as
the final application (except that it is linked with the "QUTest stub" of
the QP framework, instead of the fully-functional version).
Specifically, the test fixture in this case uses the same main() function
(the same main.c module, even) as the final DPP application.
The Test Scripts
----------------
The test scripts (*.py files for testing with Python and *.tcl files for
testing with Tcl) demonstrate injecting events and clock ticks to drive
the application.
The Test Targets
================
The makefiles provided with this test support several targets. Each
supported target system requires building a separate QUTest fixture,
but all targets can be tested with the *same* test scripts.
The following sub-sections describe how to build the code and run
the tests.
Host Executable
---------------
The provided Makefile builds the test fixture for the host executable,
which can be Windows, Linux or MacOSX.
Before running the Makefile, the QSPY host utility needs to be stated
from command-prompt/terminal as follows:
qspy -u -t
Next, you need to open another command-prompt/terminal, change to this
directory (qutest/dpp/test_dpp), and run:
make
The provided Makefile both builds the fixture and run the test
scripts. By default, the Python test scripts are used. If you wish
to run Tcl test scripts instead, please type:
make SCRIPT=tcl
Embedded Target: EFM32
----------------------
The provided makefile make_efm32 builds the test fixture for the
EFM32-SLSTK3401A board (ARM Cortex-M4). The makefile works on Windows hosts
only.
Before running make -f make_efm32, the QSPY host utility needs to
be stated from command-prompt/terminal as follows:
qspy -u -c COM2
where you need to adjust the COM port number to the virtual COM port
number assigned to the EFM32-SLSTK3401A board on your system.
Next, you need to open another command-prompt/terminal, change to this
directory (qutest/dpp/test_dpp), and run:
make -f make_efm32
The provided Makefile both builds the fixture and run the test
scripts. By default, the Python test scripts are used. If you wish
to run Tcl test scripts instead, please type:
make -f make_efm32 SCRIPT=tcl
Embedded Target: TM4C123
------------------------
The provided makefile make_tm4c123 builds the test fixture for the
EK-TM4C123GXL board (ARM Cortex-M4). The makefile works on Windows hosts
only.
Before running make -f make_efm32, the QSPY host utility needs to
be stated from command-prompt/terminal as follows:
qspy -u -c COM3
where you need to adjust the COM port number to the virtual COM port
number assigned to the EK-TM4C123GXL TivaC LaunchPad board on your system.
Next, you need to open another command-prompt/terminal, change to this
directory (qutest/dpp/test_dpp), and run:
make -f make_efm32
The provided Makefile both builds the fixture and run the test scripts.
By default, the Python test scripts are used. Alternatively, if you wish
to run Tcl test scripts instead, please type:
make -f make_efm32 SCRIPT=tcl
Embedded Target: MSP430
------------------------
The provided CCS (Code Composer Studio) project files
.project/.csproject/.ccsproject build the test fixture for the
MSP-EXP430F5529LP LauchPad board (MSP430X CPU).
NOTE: Currently testing on the MSP430 target is NOT fully automated,
because it is based on the CCS IDE. This requires building and loading
the test fixture *manually* from CCS, and only then by a separate step
of running the test scripts.
After building the fixture and loading it into the flash memory
of the MSP-EXP430F5529LP LauchPad board, you need to open the QSPY host
utility from command-prompt/terminal as follows:
qspy -u -c COM4 -b9600
where you need to adjust the COM port number to the virtual COM port
number assigned to the MSP-EXP430F5529LP LauchPad board on your system.
Next, you need to open another command-prompt/terminal, change to this
directory (qutest/dpp/test_dpp), and run:
python %QTOOLS%\qspy\py\qutest.py
This will run the test scripts in Python. Alternatively, if you wish
to run Tcl test scripts instead, please type:
tclsh %QTOOLS%\qspy\tcl\qutest.tcl
Contact Information
===================
https://www.state-machine.com
mailto:info@state-machine.com

View File

@ -0,0 +1,251 @@
/* ============================================================================ */
/* Copyright (c) 2017, Texas Instruments Incorporated */
/* All rights reserved. */
/* */
/* Redistribution and use in source and binary forms, with or without */
/* modification, are permitted provided that the following conditions */
/* are met: */
/* */
/* * Redistributions of source code must retain the above copyright */
/* notice, this list of conditions and the following disclaimer. */
/* */
/* * Redistributions in binary form must reproduce the above copyright */
/* notice, this list of conditions and the following disclaimer in the */
/* documentation and/or other materials provided with the distribution. */
/* */
/* * Neither the name of Texas Instruments Incorporated nor the names of */
/* its contributors may be used to endorse or promote products derived */
/* from this software without specific prior written permission. */
/* */
/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" */
/* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, */
/* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */
/* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, */
/* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, */
/* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; */
/* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, */
/* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
/* ============================================================================ */
/******************************************************************************/
/* lnk_msp430f5529.cmd - LINKER COMMAND FILE FOR LINKING MSP430F5529 PROGRAMS */
/* */
/* Usage: lnk430 <obj files...> -o <out file> -m <map file> lnk.cmd */
/* cl430 <src files...> -z -o <out file> -m <map file> lnk.cmd */
/* */
/*----------------------------------------------------------------------------*/
/* These linker options are for command line linking only. For IDE linking, */
/* you should set your linker options in Project Properties */
/* -c LINK USING C CONVENTIONS */
/* -stack 0x0100 SOFTWARE STACK SIZE */
/* -heap 0x0100 HEAP AREA SIZE */
/* */
/*----------------------------------------------------------------------------*/
/* Version: 1.203 */
/*----------------------------------------------------------------------------*/
/****************************************************************************/
/* Specify the system memory map */
/****************************************************************************/
MEMORY
{
SFR : origin = 0x0000, length = 0x0010
PERIPHERALS_8BIT : origin = 0x0010, length = 0x00F0
PERIPHERALS_16BIT : origin = 0x0100, length = 0x0100
RAM : origin = 0x2400, length = 0x2000
USBRAM : origin = 0x1C00, length = 0x0800
INFOA : origin = 0x1980, length = 0x0080
INFOB : origin = 0x1900, length = 0x0080
INFOC : origin = 0x1880, length = 0x0080
INFOD : origin = 0x1800, length = 0x0080
FLASH : origin = 0x4400, length = 0xBB80
FLASH2 : origin = 0x10000,length = 0x14400
INT00 : origin = 0xFF80, length = 0x0002
INT01 : origin = 0xFF82, length = 0x0002
INT02 : origin = 0xFF84, length = 0x0002
INT03 : origin = 0xFF86, length = 0x0002
INT04 : origin = 0xFF88, length = 0x0002
INT05 : origin = 0xFF8A, length = 0x0002
INT06 : origin = 0xFF8C, length = 0x0002
INT07 : origin = 0xFF8E, length = 0x0002
INT08 : origin = 0xFF90, length = 0x0002
INT09 : origin = 0xFF92, length = 0x0002
INT10 : origin = 0xFF94, length = 0x0002
INT11 : origin = 0xFF96, length = 0x0002
INT12 : origin = 0xFF98, length = 0x0002
INT13 : origin = 0xFF9A, length = 0x0002
INT14 : origin = 0xFF9C, length = 0x0002
INT15 : origin = 0xFF9E, length = 0x0002
INT16 : origin = 0xFFA0, length = 0x0002
INT17 : origin = 0xFFA2, length = 0x0002
INT18 : origin = 0xFFA4, length = 0x0002
INT19 : origin = 0xFFA6, length = 0x0002
INT20 : origin = 0xFFA8, length = 0x0002
INT21 : origin = 0xFFAA, length = 0x0002
INT22 : origin = 0xFFAC, length = 0x0002
INT23 : origin = 0xFFAE, length = 0x0002
INT24 : origin = 0xFFB0, length = 0x0002
INT25 : origin = 0xFFB2, length = 0x0002
INT26 : origin = 0xFFB4, length = 0x0002
INT27 : origin = 0xFFB6, length = 0x0002
INT28 : origin = 0xFFB8, length = 0x0002
INT29 : origin = 0xFFBA, length = 0x0002
INT30 : origin = 0xFFBC, length = 0x0002
INT31 : origin = 0xFFBE, length = 0x0002
INT32 : origin = 0xFFC0, length = 0x0002
INT33 : origin = 0xFFC2, length = 0x0002
INT34 : origin = 0xFFC4, length = 0x0002
INT35 : origin = 0xFFC6, length = 0x0002
INT36 : origin = 0xFFC8, length = 0x0002
INT37 : origin = 0xFFCA, length = 0x0002
INT38 : origin = 0xFFCC, length = 0x0002
INT39 : origin = 0xFFCE, length = 0x0002
INT40 : origin = 0xFFD0, length = 0x0002
INT41 : origin = 0xFFD2, length = 0x0002
INT42 : origin = 0xFFD4, length = 0x0002
INT43 : origin = 0xFFD6, length = 0x0002
INT44 : origin = 0xFFD8, length = 0x0002
INT45 : origin = 0xFFDA, length = 0x0002
INT46 : origin = 0xFFDC, length = 0x0002
INT47 : origin = 0xFFDE, length = 0x0002
INT48 : origin = 0xFFE0, length = 0x0002
INT49 : origin = 0xFFE2, length = 0x0002
INT50 : origin = 0xFFE4, length = 0x0002
INT51 : origin = 0xFFE6, length = 0x0002
INT52 : origin = 0xFFE8, length = 0x0002
INT53 : origin = 0xFFEA, length = 0x0002
INT54 : origin = 0xFFEC, length = 0x0002
INT55 : origin = 0xFFEE, length = 0x0002
INT56 : origin = 0xFFF0, length = 0x0002
INT57 : origin = 0xFFF2, length = 0x0002
INT58 : origin = 0xFFF4, length = 0x0002
INT59 : origin = 0xFFF6, length = 0x0002
INT60 : origin = 0xFFF8, length = 0x0002
INT61 : origin = 0xFFFA, length = 0x0002
INT62 : origin = 0xFFFC, length = 0x0002
RESET : origin = 0xFFFE, length = 0x0002
}
/****************************************************************************/
/* Specify the sections allocation into memory */
/****************************************************************************/
SECTIONS
{
.bss : {} > RAM /* Global & static vars */
.data : {} > RAM /* Global & static vars */
.TI.noinit : {} > RAM /* For #pragma noinit */
.sysmem : {} > RAM /* Dynamic memory allocation area */
.stack : {} > RAM (HIGH) /* Software system stack */
#ifndef __LARGE_CODE_MODEL__
.text : {} > FLASH /* Code */
#else
.text : {} >> FLASH2 | FLASH /* Code */
#endif
.text:_isr : {} > FLASH /* ISR Code space */
.cinit : {} > FLASH /* Initialization tables */
#ifndef __LARGE_DATA_MODEL__
.const : {} > FLASH /* Constant data */
#else
.const : {} >> FLASH | FLASH2 /* Constant data */
#endif
.cio : {} > RAM /* C I/O Buffer */
.pinit : {} > FLASH /* C++ Constructor tables */
.binit : {} > FLASH /* Boot-time Initialization tables */
.init_array : {} > FLASH /* C++ Constructor tables */
.mspabi.exidx : {} > FLASH /* C++ Constructor tables */
.mspabi.extab : {} > FLASH /* C++ Constructor tables */
#ifdef __TI_COMPILER_VERSION__
#if __TI_COMPILER_VERSION__ >= 15009000
#ifndef __LARGE_CODE_MODEL__
.TI.ramfunc : {} load=FLASH, run=RAM, table(BINIT)
#else
.TI.ramfunc : {} load=FLASH | FLASH2, run=RAM, table(BINIT)
#endif
#endif
#endif
.infoA : {} > INFOA /* MSP430 INFO FLASH Memory segments */
.infoB : {} > INFOB
.infoC : {} > INFOC
.infoD : {} > INFOD
/* MSP430 Interrupt vectors */
.int00 : {} > INT00
.int01 : {} > INT01
.int02 : {} > INT02
.int03 : {} > INT03
.int04 : {} > INT04
.int05 : {} > INT05
.int06 : {} > INT06
.int07 : {} > INT07
.int08 : {} > INT08
.int09 : {} > INT09
.int10 : {} > INT10
.int11 : {} > INT11
.int12 : {} > INT12
.int13 : {} > INT13
.int14 : {} > INT14
.int15 : {} > INT15
.int16 : {} > INT16
.int17 : {} > INT17
.int18 : {} > INT18
.int19 : {} > INT19
.int20 : {} > INT20
.int21 : {} > INT21
.int22 : {} > INT22
.int23 : {} > INT23
.int24 : {} > INT24
.int25 : {} > INT25
.int26 : {} > INT26
.int27 : {} > INT27
.int28 : {} > INT28
.int29 : {} > INT29
.int30 : {} > INT30
.int31 : {} > INT31
.int32 : {} > INT32
.int33 : {} > INT33
.int34 : {} > INT34
.int35 : {} > INT35
.int36 : {} > INT36
.int37 : {} > INT37
.int38 : {} > INT38
.int39 : {} > INT39
.int40 : {} > INT40
RTC : { * ( .int41 ) } > INT41 type = VECT_INIT
PORT2 : { * ( .int42 ) } > INT42 type = VECT_INIT
TIMER2_A1 : { * ( .int43 ) } > INT43 type = VECT_INIT
TIMER2_A0 : { * ( .int44 ) } > INT44 type = VECT_INIT
USCI_B1 : { * ( .int45 ) } > INT45 type = VECT_INIT
USCI_A1 : { * ( .int46 ) } > INT46 type = VECT_INIT
PORT1 : { * ( .int47 ) } > INT47 type = VECT_INIT
TIMER1_A1 : { * ( .int48 ) } > INT48 type = VECT_INIT
TIMER1_A0 : { * ( .int49 ) } > INT49 type = VECT_INIT
DMA : { * ( .int50 ) } > INT50 type = VECT_INIT
USB_UBM : { * ( .int51 ) } > INT51 type = VECT_INIT
TIMER0_A1 : { * ( .int52 ) } > INT52 type = VECT_INIT
TIMER0_A0 : { * ( .int53 ) } > INT53 type = VECT_INIT
ADC12 : { * ( .int54 ) } > INT54 type = VECT_INIT
USCI_B0 : { * ( .int55 ) } > INT55 type = VECT_INIT
USCI_A0 : { * ( .int56 ) } > INT56 type = VECT_INIT
WDT : { * ( .int57 ) } > INT57 type = VECT_INIT
TIMER0_B1 : { * ( .int58 ) } > INT58 type = VECT_INIT
TIMER0_B0 : { * ( .int59 ) } > INT59 type = VECT_INIT
COMP_B : { * ( .int60 ) } > INT60 type = VECT_INIT
UNMI : { * ( .int61 ) } > INT61 type = VECT_INIT
SYSNMI : { * ( .int62 ) } > INT62 type = VECT_INIT
.reset : {} > RESET /* MSP430 Reset vector */
}
/****************************************************************************/
/* Include peripherals memory map */
/****************************************************************************/
-l msp430f5529.cmd

View File

@ -0,0 +1,157 @@
/*****************************************************************************
* Product: QUTEST port for the MSP-EXP430F5529LP board
* Last updated for version 6.3.8
* Last updated on 2019-01-24
*
* Q u a n t u m L e a P s
* ------------------------
* Modern Embedded Software
*
* Copyright (C) 2005-2019 Quantum Leaps, LLC. All rights reserved.
*
* This program is open source software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alternatively, this program may be distributed and modified under the
* terms of Quantum Leaps commercial licenses, which expressly supersede
* the GNU General Public License and are specifically designed for
* licensees interested in retaining the proprietary status of their code.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Contact information:
* https://www.state-machine.com
* mailto:info@state-machine.com
*****************************************************************************/
#include "qpc.h"
#include <msp430f5529.h> /* MSP430 variant used */
/* add other drivers if necessary... */
//Q_DEFINE_THIS_MODULE("qutest_port")
/* UART1 pins TX:P4.4, RX:P4.5 */
#define TXD (1U << 4)
#define RXD (1U << 5)
/* Local-scope objects -----------------------------------------------------*/
/* 1MHz clock setting, see BSP_init() */
#define BSP_MCK 1000000U
#define BSP_SMCLK 1000000U
#define LED1 (1U << 0)
#define LED2 (1U << 7)
#define BTN_S1 (1U << 1)
/*..........................................................................*/
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
__interrupt void USCI_A1_ISR(void); /* prototype */
#pragma vector=USCI_A1_VECTOR
__interrupt void USCI_A1_ISR(void)
#elif defined(__GNUC__)
__attribute__ ((interrupt(USCI_A1_VECTOR)))
void USCI_A1_ISR(void)
#else
#error MSP430 compiler not supported!
#endif
{
if (UCA1IV == 2) {
uint16_t b = UCA1RXBUF;
QS_RX_PUT(b);
}
}
/* QS callbacks ============================================================*/
uint8_t QS_onStartup(void const *arg) {
static uint8_t qsBuf[256]; /* buffer for QS; RAM is tight! */
static uint8_t qsRxBuf[80]; /* buffer for QS receive channel */
//uint16_t tmp;
WDTCTL = WDTPW | WDTHOLD; /* stop watchdog timer */
/* leave the MCK and SMCLK at default DCO setting */
P1DIR |= LED1; /* set LED1 pin to output */
P4DIR |= LED2; /* set LED2 pin to output */
QS_initBuf(qsBuf, sizeof(qsBuf));
QS_rxInitBuf(qsRxBuf, sizeof(qsRxBuf));
/* USCI setup code... */
P4SEL |= (RXD | TXD); /* select the UART function for the pins */
UCA1CTL1 |= UCSWRST; /* reset USCI state machine */
UCA1CTL1 |= UCSSEL_2; /* choose the SMCLK clock */
#if 1
UCA1BR0 = 6; /* 1MHz 9600 (see User's Guide) */
UCA1BR1 = 0; /* 1MHz 9600 */
/* modulation UCBRSx=0, UCBRFx=0, oversampling */
UCA1MCTL = UCBRS_0 | UCBRF_13 | UCOS16;
#else
UCA1BR0 = 9; /* 1MHz 115200 (see User's Guide) */
UCA1BR1 = 0; /* 1MHz 115200 */
UCA1MCTL |= UCBRS_1 | UCBRF_0; /* modulation UCBRSx=1, UCBRFx=0 */
#endif
UCA1CTL1 &= ~UCSWRST; /* initialize USCI state machine */
UCA1IE |= UCRXIE; /* Enable USCI_A1 RX interrupt */
return (uint8_t)1; /* return success */
}
/*..........................................................................*/
void QS_onCleanup(void) {
}
/*..........................................................................*/
void QS_onFlush(void) {
uint16_t b;
while ((b = QS_getByte()) != QS_EOD) { /* next QS byte available? */
while ((UCA1STAT & UCBUSY) != 0U) { /* TX busy? */
}
UCA1TXBUF = (uint8_t)b; /* stick the byte to the TX BUF */
}
}
/*..........................................................................*/
/*! callback function to reset the target (to be implemented in the BSP) */
void QS_onReset(void) {
/* write invalid password to WDT: cause a password-validation RESET */
WDTCTL = 0xDEAD;
}
/*..........................................................................*/
void QS_onTestLoop() {
__enable_interrupt(); /* IMPORTANT: enable global interrupts */
QS_rxPriv_.inTestLoop = true;
while (QS_rxPriv_.inTestLoop) {
/* toggle the User LED on and then off, see NOTE01 */
P4OUT |= LED2; /* turn LED2 on */
P4OUT &= ~LED2; /* turn LED2 off */
QS_rxParse(); /* parse all the received bytes */
if ((UCA1STAT & UCBUSY) == 0U) { /* TX NOT busy? */
uint16_t b;
QF_INT_DISABLE();
b = QS_getByte();
QF_INT_ENABLE();
if (b != QS_EOD) {
UCA1TXBUF = (uint8_t)b; /* stick the byte to the TX BUF */
}
}
}
/* set inTestLoop to true in case calls to QS_onTestLoop() nest,
* which can happen through the calls to QS_TEST_PAUSE().
*/
QS_rxPriv_.inTestLoop = true;
}

View File

@ -4,12 +4,9 @@ This directory contains the QP/C ports to the MSP430 processor family,
for both "classic" MSP430 and "extended" MSP430X cores. The following
ports are provided:
msp430
|
+-qk - port to the preemptive QK kernel
| +-ccs - port with the CCS-430 toolset
| +-iar - port with the IAR-430 toolset
|
+-qv - port to the cooperative QV kernel
| +-ccs - port with the CCS-430 toolset
| +-iar - port with the IAR-430 toolset
qpc/
+-ports/
| +-msp430/
| | +-qk/ - port to the preemptive QK kernel
| | +-qv/ - port to the cooperative QV kernel
| | +-qutest/ - port to QUTest unit testing harness

View File

@ -1,46 +0,0 @@
About The QP-MSP430 Port
========================
This directory contains the QP/C port to the MSP430 processor family
with the preemptive QK kernel using the TI CCS-430 compiler.
Using the Port in CCS
=====================
To use this QP-MSP430 port in CCS, it is recommended that you build the QP
framework from sources as part of your CCS project.
The recommended procedure, as illustrated in the provided CCS example projects
in the qpc/examples/msp430/ directory, is to create a folder for QP source
and another for QP_port. To do so, right-click on your project and choose
the New->Folder option.
It is important to create the QP and QP_port folders as "Linked folders",
by expanding the "Advanced" folder option and selecting the "Linked to
alternate location (Linked Folder)" radio button.
The QP folder should be linked to qpc/source
The QP_port folder should be linked to qpc/ports/msp430/qk/ccs
Once the folders are added to your project, it is very important to exclude
several source files in the QP folder from the specific build configurations.
Here is the list of QP/C source files that need to be EXCLUDED from the
bulid configurations:
QK kernel, Debug/Release configuration excludes:
qs_*.c
qv.c
QK kernel, Spy configuration excludes:
qv.c
Finally, to build QP framework from sources, the following directories should
be present in the compiler "Include Options":
<qpc>\include
<qpc>\source
<qpc>\ports\msp430\qk\ccs
Where, <qpc> is either relative or absolute path to the QP/C framework folder
on your machine.

View File

@ -1,60 +0,0 @@
/**
* @file
* @brief QK/C port port to MSP430, CCS-430 compiler
* @cond
******************************************************************************
* Last Updated for Version: 5.7.2
* Date of the Last Update: 2016-09-26
*
* Q u a n t u m L e a P s
* ---------------------------
* innovating embedded systems
*
* Copyright (C) Quantum Leaps, LLC. All rights reserved.
*
* This program is open source software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alternatively, this program may be distributed and modified under the
* terms of Quantum Leaps commercial licenses, which expressly supersede
* the GNU General Public License and are specifically designed for
* licensees interested in retaining the proprietary status of their code.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Contact information:
* https://state-machine.com
* mailto:info@state-machine.com
******************************************************************************
* @endcond
*/
#ifndef qk_port_h
#define qk_port_h
/* QK interrupt entry and exit... */
#define QK_ISR_ENTRY() (++QK_attr_.intNest)
#define QK_ISR_EXIT() do { \
--QK_attr_.intNest; \
if (QK_attr_.intNest == (uint_fast8_t)0) { \
if (QK_sched_() != (uint_fast8_t)0) { \
QK_activate_(); \
} \
} \
else { \
Q_ERROR(); \
} \
} while (0)
#include "qk.h" /* QK platform-independent public interface */
#endif /* qk_port_h */

View File

@ -1,62 +0,0 @@
/**
* @file
* @brief QS/C port to a 32-bit CPU and a generic C compiler.
* @ingroup qs
* @cond
******************************************************************************
* Last updated for version 5.6.0
* Last updated on 2015-12-18
*
* Q u a n t u m L e a P s
* ---------------------------
* innovating embedded systems
*
* Copyright (C) Quantum Leaps, LLC. All rights reserved.
*
* This program is open source software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alternatively, this program may be distributed and modified under the
* terms of Quantum Leaps commercial licenses, which expressly supersede
* the GNU General Public License and are specifically designed for
* licensees interested in retaining the proprietary status of their code.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Contact information:
* https://state-machine.com
* mailto:info@state-machine.com
******************************************************************************
* @endcond
*/
#ifndef qs_port_h
#define qs_port_h
/* QS time-stamp size in bytes */
#define QS_TIME_SIZE 4
/* object pointer size in bytes */
#define QS_OBJ_PTR_SIZE 4
/* function pointer size in bytes */
#define QS_FUN_PTR_SIZE 4
/*****************************************************************************
* NOTE: QS might be used with or without other QP components, in which
* case the separate definitions of the macros QF_CRIT_STAT_TYPE,
* QF_CRIT_ENTRY, and QF_CRIT_EXIT are needed. In this port QS is configured
* to be used with the other QP component, by simply including "qf_port.h"
* *before* "qs.h".
*/
#include "qf_port.h" /* use QS with QF */
#include "qs.h" /* QS platform-independent public interface */
#endif /* qs_port_h */

View File

@ -1,4 +0,0 @@
About The QP-MSP430 Port
========================
This directory contains the QP/C port to the MSP430 processor family
with the IAR-430 compiler.

View File

@ -1,76 +0,0 @@
/**
* @file
* @brief QF/C port to MSP430, preemptive QK kernel, IAR-430 compiler
* @cond
******************************************************************************
* Last Updated for Version: 5.4.0
* Date of the Last Update: 2015-04-08
*
* Q u a n t u m L e a P s
* ---------------------------
* innovating embedded systems
*
* Copyright (C) Quantum Leaps, LLC. state-machine.com.
*
* This program is open source software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alternatively, this program may be distributed and modified under the
* terms of Quantum Leaps commercial licenses, which expressly supersede
* the GNU General Public License and are specifically designed for
* licensees interested in retaining the proprietary status of their code.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Contact information:
* Web: www.state-machine.com
* Email: info@state-machine.com
******************************************************************************
* @endcond
*/
#ifndef qf_port_h
#define qf_port_h
/* The maximum number of active objects in the application, see NOTE01 */
#define QF_MAX_ACTIVE 8
#define QF_EVENT_SIZ_SIZE 1
#define QF_EQUEUE_CTR_SIZE 1
#define QF_MPOOL_SIZ_SIZE 1
#define QF_MPOOL_CTR_SIZE 1
#define QF_TIMEEVT_CTR_SIZE 2
/* QF interrupt disable/enable... */
#define QF_INT_DISABLE() __disable_interrupt()
#define QF_INT_ENABLE() __enable_interrupt()
/* QF critical section entry/exit... */
#define QF_CRIT_STAT_TYPE istate_t
#define QF_CRIT_ENTRY(stat_) do { \
(stat_) = __get_interrupt_state(); \
__disable_interrupt(); \
} while (0)
#define QF_CRIT_EXIT(stat_) __set_interrupt_state(stat_)
#include <intrinsics.h> /* IAR intrinsic functions */
#include "qep_port.h" /* QEP port */
#include "qk_port.h" /* QK preemptive kernel port */
#include "qf.h" /* QF platform-independent public interface */
/*****************************************************************************
* NOTE01:
* The maximum number of active objects QF_MAX_ACTIVE can be increased
* up to 63, if necessary. Here it is set to a lower level to save some RAM.
*/
#endif /* qf_port_h */

View File

@ -1,17 +1,17 @@
/**
* @file
* @brief QF/C port to MSP430, preemptive QK kernel, CCS-430 compiler
* @brief QF/C port to MSP430, preemptive QK kernel
* @ingroup ports
* @cond
******************************************************************************
* Last Updated for Version: 5.4.0
* Date of the Last Update: 2015-04-08
* Last Updated for Version: 6.3.8
* Date of the Last Update: 2019-01-23
*
* Q u a n t u m L e a P s
* ---------------------------
* innovating embedded systems
* Q u a n t u m L e a P s
* ------------------------
* Modern Embedded Software
*
* Copyright (C) Quantum Leaps, LLC. state-machine.com.
* Copyright (C) 2005-2019 Quantum Leaps, LLC. All rights reserved.
*
* This program is open source software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published
@ -32,8 +32,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Contact information:
* Web: www.state-machine.com
* Email: info@state-machine.com
* https://www.state-machine.com
* mailto:info@state-machine.com
******************************************************************************
* @endcond
*/
@ -41,28 +41,28 @@
#define qf_port_h
/* The maximum number of active objects in the application, see NOTE01 */
#define QF_MAX_ACTIVE 8
#define QF_MAX_ACTIVE 8
#define QF_EVENT_SIZ_SIZE 1
#define QF_EQUEUE_CTR_SIZE 1
#define QF_MPOOL_SIZ_SIZE 1
#define QF_MPOOL_CTR_SIZE 1
#define QF_TIMEEVT_CTR_SIZE 2
#define QF_EVENT_SIZ_SIZE 1
#define QF_EQUEUE_CTR_SIZE 1
#define QF_MPOOL_SIZ_SIZE 1
#define QF_MPOOL_CTR_SIZE 1
#define QF_TIMEEVT_CTR_SIZE 2
/* QF interrupt disable/enable... */
#define QF_INT_DISABLE() __disable_interrupt()
#define QF_INT_ENABLE() __enable_interrupt()
#define QF_INT_DISABLE() __disable_interrupt()
#define QF_INT_ENABLE() __enable_interrupt()
/* QF critical section entry/exit... */
#define QF_CRIT_STAT_TYPE unsigned short
#define QF_CRIT_STAT_TYPE unsigned short
#define QF_CRIT_ENTRY(stat_) do { \
(stat_) = __get_interrupt_state(); \
__disable_interrupt(); \
} while (0)
#define QF_CRIT_EXIT(stat_) __set_interrupt_state(stat_)
#define QF_CRIT_EXIT(stat_) __set_interrupt_state(stat_)
#include <intrinsics.h> /* CCS intrinsic functions */
#include <intrinsics.h> /* intrinsic functions */
#include "qep_port.h" /* QEP port */
#include "qk_port.h" /* QK preemptive kernel port */
@ -71,7 +71,7 @@
/*****************************************************************************
* NOTE01:
* The maximum number of active objects QF_MAX_ACTIVE can be increased
* up to 63, if necessary. Here it is set to a lower level to save some RAM.
* up to 64, if necessary. Here it is set to a lower level to save some RAM.
*/
#endif /* qf_port_h */
#endif /* qf_port_h */

View File

@ -1,16 +1,16 @@
/**
* @file
* @brief QK/C port port to MSP430, IAR-430 compiler
* @brief QK/C port port to MSP430
* @cond
******************************************************************************
* Last Updated for Version: 5.7.2
* Date of the Last Update: 2016-09-26
* Last Updated for Version: 6.3.8
* Date of the Last Update: 2019-01-23
*
* Q u a n t u m L e a P s
* ---------------------------
* innovating embedded systems
* Q u a n t u m L e a P s
* ------------------------
* Modern Embedded Software
*
* Copyright (C) Quantum Leaps, LLC. All rights reserved.
* Copyright (C) 2005-2019 Quantum Leaps, LLC. All rights reserved.
*
* This program is open source software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published
@ -31,7 +31,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Contact information:
* https://state-machine.com
* https://www.state-machine.com
* mailto:info@state-machine.com
******************************************************************************
* @endcond

View File

@ -1,17 +1,17 @@
/**
* @file
* @brief QS/C port to a 32-bit CPU and a generic C compiler.
* @brief QS/C port to a 16-bit CPU and a generic C compiler.
* @ingroup qs
* @cond
******************************************************************************
* Last updated for version 5.6.0
* Last updated on 2015-12-18
* Last Updated for Version: 6.3.8
* Date of the Last Update: 2019-01-23
*
* Q u a n t u m L e a P s
* ---------------------------
* innovating embedded systems
* Q u a n t u m L e a P s
* ------------------------
* Modern Embedded Software
*
* Copyright (C) Quantum Leaps, LLC. All rights reserved.
* Copyright (C) 2005-2019 Quantum Leaps, LLC. All rights reserved.
*
* This program is open source software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published
@ -32,7 +32,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Contact information:
* https://state-machine.com
* https://www.state-machine.com
* mailto:info@state-machine.com
******************************************************************************
* @endcond
@ -44,7 +44,7 @@
#define QS_TIME_SIZE 4
/* object pointer size in bytes */
#define QS_OBJ_PTR_SIZE 4
#define QS_OBJ_PTR_SIZE 2
/* function pointer size in bytes */
#define QS_FUN_PTR_SIZE 4

View File

@ -11,7 +11,7 @@
* ---------------------------
* innovating embedded systems
*
* Copyright (C) Quantum Leaps, LLC. state-machine.com.
* Copyright (C) 2005-2017 Quantum Leaps, LLC. All rights reserved.
*
* This program is open source software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published
@ -32,8 +32,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Contact information:
* Web: www.state-machine.com
* Email: info@state-machine.com
* https://www.state-machine.com
* mailto:info@state-machine.com
******************************************************************************
* @endcond
*/

View File

@ -0,0 +1,103 @@
/**
* @file
* @brief QF/C port to Cortex-M, QUTEST unit test harness, generic C99 compiler
* @cond
******************************************************************************
* Last Updated for Version: 6.3.8
* Date of the Last Update: 2019-01-23
*
* Q u a n t u m L e a P s
* ------------------------
* Modern Embedded Software
*
* Copyright (C) 2005-2019 Quantum Leaps, LLC. All rights reserved.
*
* This program is open source software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alternatively, this program may be distributed and modified under the
* terms of Quantum Leaps commercial licenses, which expressly supersede
* the GNU General Public License and are specifically designed for
* licensees interested in retaining the proprietary status of their code.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Contact information:
* https://www.state-machine.com
* mailto:info@state-machine.com
******************************************************************************
* @endcond
*/
#ifndef qf_port_h
#define qf_port_h
/* QUTEST event queue and thread types */
#define QF_EQUEUE_TYPE QEQueue
/*#define QF_OS_OBJECT_TYPE */
/*#define QF_THREAD_TYPE */
/* The maximum number of active objects in the application, see NOTE01 */
#define QF_MAX_ACTIVE 8
/* QF interrupt disable/enable */
#define QF_INT_DISABLE() (++QF_intNest)
#define QF_INT_ENABLE() (--QF_intNest)
/* QF critical section */
/* QF_CRIT_STAT_TYPE not defined */
#define QF_CRIT_ENTRY(dummy) QF_INT_DISABLE()
#define QF_CRIT_EXIT(dummy) QF_INT_ENABLE()
/* QF_LOG2 not defined -- use the internal LOG2() implementation */
#include "qep_port.h" /* QEP port */
#include "qequeue.h" /* QUTEST port uses QEQueue event-queue */
#include "qmpool.h" /* QUTEST port uses QMPool memory-pool */
#include "qf.h" /* QF platform-independent public interface */
/* interrupt nesting up-down counter */
extern uint8_t volatile QF_intNest;
/****************************************************************************/
/* interface used only inside QF implementation, but not in applications */
#ifdef QP_IMPL
/* QUTEST scheduler locking (not used) */
#define QF_SCHED_STAT_
#define QF_SCHED_LOCK_(dummy) ((void)0)
#define QF_SCHED_UNLOCK_() ((void)0)
/* native event queue operations */
#define QACTIVE_EQUEUE_WAIT_(me_) \
Q_ASSERT_ID(0, (me_)->eQueue.frontEvt != (QEvt *)0)
#define QACTIVE_EQUEUE_SIGNAL_(me_) \
QPSet_insert(&QS_rxPriv_.readySet, (uint_fast8_t)(me_)->prio)
/* native QF event pool operations */
#define QF_EPOOL_TYPE_ QMPool
#define QF_EPOOL_INIT_(p_, poolSto_, poolSize_, evtSize_) \
QMPool_init(&(p_), (poolSto_), (poolSize_), (evtSize_))
#define QF_EPOOL_EVENT_SIZE_(p_) ((p_).blockSize)
#define QF_EPOOL_GET_(p_, e_, m_) ((e_) = (QEvt *)QMPool_get(&(p_), (m_)))
#define QF_EPOOL_PUT_(p_, e_) (QMPool_put(&(p_), e_))
#include "qf_pkg.h" /* internal QF interface */
#endif /* QP_IMPL */
/*****************************************************************************
* NOTE01:
* The maximum number of active objects QF_MAX_ACTIVE can be increased
* up to 64, if necessary. Here it is set to a lower level to save some RAM.
*/
#endif /* qf_port_h */

View File

@ -1,17 +1,17 @@
/**
* @file
* @brief QS/C port to a 32-bit CPU and a generic C compiler.
* @brief QS/C port to a 16-bit CPU and a generic C compiler.
* @ingroup qs
* @cond
******************************************************************************
* Last updated for version 5.6.0
* Last updated on 2015-12-18
* Last Updated for Version: 6.3.8
* Date of the Last Update: 2019-01-23
*
* Q u a n t u m L e a P s
* ---------------------------
* innovating embedded systems
* Q u a n t u m L e a P s
* ------------------------
* Modern Embedded Software
*
* Copyright (C) Quantum Leaps, LLC. All rights reserved.
* Copyright (C) 2005-2019 Quantum Leaps, LLC. All rights reserved.
*
* This program is open source software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published
@ -32,7 +32,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Contact information:
* https://state-machine.com
* https://www.state-machine.com
* mailto:info@state-machine.com
******************************************************************************
* @endcond
@ -41,14 +41,17 @@
#define qs_port_h
/* QS time-stamp size in bytes */
#define QS_TIME_SIZE 4
#define QS_TIME_SIZE 2
/* object pointer size in bytes */
#define QS_OBJ_PTR_SIZE 4
#define QS_OBJ_PTR_SIZE 2
/* function pointer size in bytes */
#define QS_FUN_PTR_SIZE 4
/* flush the QS output buffer after each QS record */
#define QS_REC_DONE() QS_onFlush()
/*****************************************************************************
* NOTE: QS might be used with or without other QP components, in which
* case the separate definitions of the macros QF_CRIT_STAT_TYPE,

View File

@ -1,47 +0,0 @@
About The QP-MSP430 Port
========================
This directory contains the QP/C port to the MSP430 processor family
with the cooperative QV kernel using the TI CCS-430 compiler.
Using the Port in CCS
=====================
To use this QP-MSP430 port in CCS, it is recommended that you build the QP
framework from sources as part of your CCS project.
The recommended procedure, as illustrated in the provided CCS example projects
in the qpc/examples/msp430/ directory, is to create a folder for QP source
and another for QP_port. To do so, right-click on your project and choose
the New->Folder option.
It is important to create the QP and QP_port folders as "Linked folders",
by expanding the "Advanced" folder option and selecting the "Linked to
alternate location (Linked Folder)" radio button.
The QP folder should be linked to qpc/source
The QP_port folder should be linked to qpc/ports/msp430/qv/ccs
Once the folders are added to your project, it is very important to exclude
several source files in the QP folder from the specific build configurations.
Here is the list of QP/C source files that need to be EXCLUDED from the
bulid configurations:
QV kernel, Debug/Release configuration excludes:
qs_*.c
qk_*.c
QV kernel, Spy configuration excludes:
qk_*.c
Finally, to build QP framework from sources, the following directories should
be present in the compiler "Include Options":
<qpc>\include
<qpc>\source
<qpc>\ports\msp430\qv\ccs
Where, <qpc> is either relative or absolute path to the QP/C framework folder
on your machine.

View File

@ -1,48 +0,0 @@
/**
* @file
* @brief QEP/C port, generic C99 compiler
* @ingroup ports
* @cond
******************************************************************************
* Last Updated for Version: 5.4.0
* Date of the Last Update: 2015-04-08
*
* Q u a n t u m L e a P s
* ---------------------------
* innovating embedded systems
*
* Copyright (C) Quantum Leaps, LLC. state-machine.com.
*
* This program is open source software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alternatively, this program may be distributed and modified under the
* terms of Quantum Leaps commercial licenses, which expressly supersede
* the GNU General Public License and are specifically designed for
* licensees interested in retaining the proprietary status of their code.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Contact information:
* Web: www.state-machine.com
* Email: info@state-machine.com
******************************************************************************
* @endcond
*/
#ifndef qep_port_h
#define qep_port_h
#include <stdint.h> /* Exact-width types. WG14/N843 C99 Standard */
#include <stdbool.h> /* Boolean type. WG14/N843 C99 Standard */
#include "qep.h" /* QEP platform-independent public interface */
#endif /* qep_port_h */

View File

@ -1,76 +0,0 @@
/**
* @file
* @brief QF/C port to MSP430, cooperative QV kernel, CCS-430 compiler
* @cond
******************************************************************************
* Last Updated for Version: 5.4.0
* Date of the Last Update: 2015-04-08
*
* Q u a n t u m L e a P s
* ---------------------------
* innovating embedded systems
*
* Copyright (C) Quantum Leaps, LLC. state-machine.com.
*
* This program is open source software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alternatively, this program may be distributed and modified under the
* terms of Quantum Leaps commercial licenses, which expressly supersede
* the GNU General Public License and are specifically designed for
* licensees interested in retaining the proprietary status of their code.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Contact information:
* Web: www.state-machine.com
* Email: info@state-machine.com
******************************************************************************
* @endcond
*/
#ifndef qf_port_h
#define qf_port_h
/* The maximum number of active objects in the application, see NOTE01 */
#define QF_MAX_ACTIVE 8
#define QF_EVENT_SIZ_SIZE 1
#define QF_EQUEUE_CTR_SIZE 1
#define QF_MPOOL_SIZ_SIZE 1
#define QF_MPOOL_CTR_SIZE 1
#define QF_TIMEEVT_CTR_SIZE 2
/* QF interrupt disable/enable... */
#define QF_INT_DISABLE() __disable_interrupt()
#define QF_INT_ENABLE() __enable_interrupt()
/* QF critical section entry/exit... */
#define QF_CRIT_STAT_TYPE unsigned short
#define QF_CRIT_ENTRY(stat_) do { \
(stat_) = __get_interrupt_state(); \
__disable_interrupt(); \
} while (0)
#define QF_CRIT_EXIT(stat_) __set_interrupt_state(stat_)
#include <intrinsics.h> /* CCS intrinsic functions */
#include "qep_port.h" /* QEP port */
#include "qv_port.h" /* QV cooperative kernel port */
#include "qf.h" /* QF platform-independent public interface */
/*****************************************************************************
* NOTE01:
* The maximum number of active objects QF_MAX_ACTIVE can be increased
* up to 63, if necessary. Here it is set to a lower level to save some RAM.
*/
#endif /* qf_port_h */

View File

@ -1,45 +0,0 @@
/**
* @file
* @brief QV/C port port to MSP430, CCS-430 compiler
* @cond
******************************************************************************
* Last Updated for Version: 5.4.0
* Date of the Last Update: 2015-04-08
*
* Q u a n t u m L e a P s
* ---------------------------
* innovating embedded systems
*
* Copyright (C) Quantum Leaps, LLC. state-machine.com.
*
* This program is open source software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alternatively, this program may be distributed and modified under the
* terms of Quantum Leaps commercial licenses, which expressly supersede
* the GNU General Public License and are specifically designed for
* licensees interested in retaining the proprietary status of their code.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Contact information:
* Web: www.state-machine.com
* Email: info@state-machine.com
******************************************************************************
* @endcond
*/
#ifndef qv_port_h
#define qv_port_h
#include "qv.h" /* QV platform-independent public interface */
#endif /* qv_port_h */

View File

@ -1,4 +0,0 @@
About The QP-MSP430 Port
========================
This directory contains the QP/C port to the MSP430 processor family
with the IAR-430 compiler.

View File

@ -1,16 +1,16 @@
/**
* @file
* @brief QF/C port to MSP430, cooperative QV kernel, IAR-430 compiler
* @brief QF/C port to MSP430, cooperative QV kernel
* @cond
******************************************************************************
* Last Updated for Version: 5.4.0
* Date of the Last Update: 2015-04-08
* Last Updated for Version: 6.3.8
* Date of the Last Update: 2019-01-23
*
* Q u a n t u m L e a P s
* ---------------------------
* innovating embedded systems
* Q u a n t u m L e a P s
* ------------------------
* Modern Embedded Software
*
* Copyright (C) Quantum Leaps, LLC. state-machine.com.
* Copyright (C) 2005-2019 Quantum Leaps, LLC. All rights reserved.
*
* This program is open source software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published
@ -31,8 +31,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Contact information:
* Web: www.state-machine.com
* Email: info@state-machine.com
* https://www.state-machine.com
* mailto:info@state-machine.com
******************************************************************************
* @endcond
*/
@ -40,28 +40,28 @@
#define qf_port_h
/* The maximum number of active objects in the application, see NOTE01 */
#define QF_MAX_ACTIVE 8
#define QF_MAX_ACTIVE 8
#define QF_EVENT_SIZ_SIZE 1
#define QF_EQUEUE_CTR_SIZE 1
#define QF_MPOOL_SIZ_SIZE 1
#define QF_MPOOL_CTR_SIZE 1
#define QF_TIMEEVT_CTR_SIZE 2
#define QF_EVENT_SIZ_SIZE 1
#define QF_EQUEUE_CTR_SIZE 1
#define QF_MPOOL_SIZ_SIZE 1
#define QF_MPOOL_CTR_SIZE 1
#define QF_TIMEEVT_CTR_SIZE 2
/* QF interrupt disable/enable... */
#define QF_INT_DISABLE() __disable_interrupt()
#define QF_INT_ENABLE() __enable_interrupt()
#define QF_INT_DISABLE() __disable_interrupt()
#define QF_INT_ENABLE() __enable_interrupt()
/* QF critical section entry/exit... */
#define QF_CRIT_STAT_TYPE istate_t
#define QF_CRIT_STAT_TYPE unsigned short
#define QF_CRIT_ENTRY(stat_) do { \
(stat_) = __get_interrupt_state(); \
__disable_interrupt(); \
} while (0)
#define QF_CRIT_EXIT(stat_) __set_interrupt_state(stat_)
#define QF_CRIT_EXIT(stat_) __set_interrupt_state(stat_)
#include <intrinsics.h> /* IAR intrinsic functions */
#include <intrinsics.h> /* intrinsic functions */
#include "qep_port.h" /* QEP port */
#include "qv_port.h" /* QV cooperative kernel port */
@ -70,7 +70,7 @@
/*****************************************************************************
* NOTE01:
* The maximum number of active objects QF_MAX_ACTIVE can be increased
* up to 63, if necessary. Here it is set to a lower level to save some RAM.
* up to 64, if necessary. Here it is set to a lower level to save some RAM.
*/
#endif /* qf_port_h */
#endif /* qf_port_h */

View File

@ -1,17 +1,17 @@
/**
* @file
* @brief QS/C port to a 32-bit CPU and a generic C compiler.
* @brief QS/C port to a 16-bit CPU and a generic C compiler.
* @ingroup qs
* @cond
******************************************************************************
* Last updated for version 5.6.0
* Last updated on 2015-12-18
* Last Updated for Version: 6.3.8
* Date of the Last Update: 2019-01-23
*
* Q u a n t u m L e a P s
* ---------------------------
* innovating embedded systems
* Q u a n t u m L e a P s
* ------------------------
* Modern Embedded Software
*
* Copyright (C) Quantum Leaps, LLC. All rights reserved.
* Copyright (C) 2005-2019 Quantum Leaps, LLC. All rights reserved.
*
* This program is open source software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published
@ -32,7 +32,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Contact information:
* https://state-machine.com
* https://www.state-machine.com
* mailto:info@state-machine.com
******************************************************************************
* @endcond
@ -44,7 +44,7 @@
#define QS_TIME_SIZE 4
/* object pointer size in bytes */
#define QS_OBJ_PTR_SIZE 4
#define QS_OBJ_PTR_SIZE 2
/* function pointer size in bytes */
#define QS_FUN_PTR_SIZE 4

View File

@ -1,16 +1,16 @@
/**
* @file
* @brief QV/C port port to MSP430, CCS-430 compiler
* @brief QV/C port port to MSP430
* @cond
******************************************************************************
* Last Updated for Version: 5.4.0
* Date of the Last Update: 2015-04-08
* Last Updated for Version: 6.3.8
* Date of the Last Update: 2019-01-23
*
* Q u a n t u m L e a P s
* ---------------------------
* innovating embedded systems
* Q u a n t u m L e a P s
* ------------------------
* Modern Embedded Software
*
* Copyright (C) Quantum Leaps, LLC. state-machine.com.
* Copyright (C) 2005-2019 Quantum Leaps, LLC. All rights reserved.
*
* This program is open source software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published
@ -31,8 +31,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Contact information:
* Web: www.state-machine.com
* Email: info@state-machine.com
* https://www.state-machine.com
* mailto:info@state-machine.com
******************************************************************************
* @endcond
*/