add libs
This commit is contained in:
17
lib_uart/.gitignore
vendored
Normal file
17
lib_uart/.gitignore
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
**/.build*/*
|
||||
**/bin/*
|
||||
*.o
|
||||
*.xe
|
||||
*.vcd
|
||||
*.s
|
||||
*.xi
|
||||
*.i
|
||||
*.a
|
||||
**/_build/
|
||||
**/run_*.log
|
||||
**/pdf/*
|
||||
**/html/*
|
||||
**/.settings/*
|
||||
*.pyc
|
||||
test_results.csv
|
||||
xscope_out.xmt
|
||||
75
lib_uart/CHANGELOG.rst
Normal file
75
lib_uart/CHANGELOG.rst
Normal file
@@ -0,0 +1,75 @@
|
||||
UART Library Change Log
|
||||
=======================
|
||||
|
||||
3.1.0
|
||||
-----
|
||||
|
||||
* RESOLVED: Correct the documentation for the write() method of
|
||||
uart_tx_buffered_if
|
||||
* RESOLVED: Added calls to ready_to_transmit() to the uart_tx_buffered
|
||||
component
|
||||
* RESOLVED: Improved the uart_tx_buffered so that it can now drive at full
|
||||
data rate without clock drift. Before it was limited to about 0.5% less than
|
||||
the baud rate
|
||||
|
||||
3.0.3
|
||||
-----
|
||||
|
||||
* REMOVED: forward references to app notes
|
||||
|
||||
3.0.2
|
||||
-----
|
||||
|
||||
* CHANGE: Update to source code license and copyright
|
||||
|
||||
3.0.1
|
||||
-----
|
||||
|
||||
* CHANGE: Update fast rx and tx to match API prototypes & fix port directions
|
||||
* RESOLVED: Fixed order of ports in api calls from example program
|
||||
|
||||
3.0.0
|
||||
-----
|
||||
|
||||
* CHANGE: Restructued version
|
||||
|
||||
* Changes to dependencies:
|
||||
|
||||
- lib_gpio: Added dependency 1.0.0
|
||||
|
||||
- lib_logging: Added dependency 2.0.0
|
||||
|
||||
- lib_xassert: Added dependency 2.0.0
|
||||
|
||||
2.3.2
|
||||
-----
|
||||
|
||||
* CHANGE: Increment version for XPD release. Several minor docs bugs fixed.
|
||||
|
||||
2.3.1
|
||||
-----
|
||||
|
||||
* CHANGE: Tidied up uart_fast and targetted demo at L16 sliceKIT
|
||||
|
||||
3.0.0
|
||||
-----
|
||||
|
||||
* CHANGE: Major change to generic UART tx/rx components to use new xC features
|
||||
with different api.
|
||||
|
||||
2.3.0
|
||||
-----
|
||||
|
||||
* ADDED: RS485 component and apps
|
||||
|
||||
2.2.0
|
||||
-----
|
||||
|
||||
* CHANGE: Updated documents for xSOFTip requirements
|
||||
* ADDED: Metainfo and XPD items
|
||||
|
||||
2.1.0
|
||||
-----
|
||||
|
||||
* CHANGE: Documentation Updates
|
||||
|
||||
135
lib_uart/LICENSE.txt
Normal file
135
lib_uart/LICENSE.txt
Normal file
@@ -0,0 +1,135 @@
|
||||
Software Release License Agreement
|
||||
|
||||
Copyright (c) 2014-2018, XMOS, All rights reserved.
|
||||
|
||||
BY ACCESSING, USING, INSTALLING OR DOWNLOADING THE XMOS SOFTWARE, YOU AGREE TO BE BOUND BY THE FOLLOWING TERMS. IF YOU DO NOT AGREE TO THESE, DO NOT ATTEMPT TO DOWNLOAD, ACCESS OR USE THE XMOS Software.
|
||||
|
||||
Parties:
|
||||
|
||||
(1) XMOS Limited, incorporated and registered in England and Wales with company number 5494985 whose registered office is 107 Cheapside, London, EC2V 6DN (XMOS).
|
||||
|
||||
(2) An individual or legal entity exercising permissions granted by this License (Customer).
|
||||
|
||||
If you are entering into this Agreement on behalf of another legal entity such as a company, partnership, university, college etc. (for example, as an employee, student or consultant), you warrant that you have authority to bind that entity.
|
||||
|
||||
1. Definitions
|
||||
|
||||
"License" means this Software License and any schedules or annexes to it.
|
||||
|
||||
"License Fee" means the fee for the XMOS Software as detailed in any schedules or annexes to this Software License
|
||||
|
||||
"Licensee Modifications" means all developments and modifications of the XMOS Software developed independently by the Customer.
|
||||
|
||||
"XMOS Modifications" means all developments and modifications of the XMOS Software developed or co-developed by XMOS.
|
||||
|
||||
"XMOS Hardware" means any XMOS hardware devices supplied by XMOS from time to time and/or the particular XMOS devices detailed in any schedules or annexes to this Software License.
|
||||
|
||||
"XMOS Software" comprises the XMOS owned circuit designs, schematics, source code, object code, reference designs, (including related programmer comments and documentation, if any), error corrections, improvements, modifications (including XMOS Modifications) and updates.
|
||||
|
||||
The headings in this License do not affect its interpretation. Save where the context otherwise requires, references to clauses and schedules are to clauses and schedules of this License.
|
||||
|
||||
Unless the context otherwise requires:
|
||||
|
||||
- references to XMOS and the Customer include their permitted successors and assigns;
|
||||
- references to statutory provisions include those statutory provisions as amended or re-enacted; and
|
||||
- references to any gender include all genders.
|
||||
|
||||
Words in the singular include the plural and in the plural include the singular.
|
||||
|
||||
2. License
|
||||
|
||||
XMOS grants the Customer a non-exclusive license to use, develop, modify and distribute the XMOS Software with, or for the purpose of being used with, XMOS Hardware.
|
||||
|
||||
Open Source Software (OSS) must be used and dealt with in accordance with any license terms under which OSS is distributed.
|
||||
|
||||
3. Consideration
|
||||
|
||||
In consideration of the mutual obligations contained in this License, the parties agree to its terms.
|
||||
|
||||
4. Term
|
||||
|
||||
Subject to clause 12 below, this License shall be perpetual.
|
||||
|
||||
5. Restrictions on Use
|
||||
|
||||
The Customer will adhere to all applicable import and export laws and regulations of the country in which it resides and of the United States and United Kingdom, without limitation. The Customer agrees that it is its responsibility to obtain copies of and to familiarise itself fully with these laws and regulations to avoid violation.
|
||||
|
||||
6. Modifications
|
||||
|
||||
The Customer will own all intellectual property rights in the Licensee Modifications but will undertake to provide XMOS with any fixes made to correct any bugs found in the XMOS Software on a non-exclusive, perpetual and royalty free license basis.
|
||||
|
||||
XMOS will own all intellectual property rights in the XMOS Modifications.
|
||||
The Customer may only use the Licensee Modifications and XMOS Modifications on, or in relation to, XMOS Hardware.
|
||||
|
||||
7. Support
|
||||
|
||||
Support of the XMOS Software may be provided by XMOS pursuant to a separate support agreement.
|
||||
|
||||
8. Warranty and Disclaimer
|
||||
|
||||
The XMOS Software is provided "AS IS" without a warranty of any kind. XMOS and its licensors' entire liability and Customer's exclusive remedy under this warranty to be determined in XMOS's sole and absolute discretion, will be either (a) the corrections of defects in media or replacement of the media, or (b) the refund of the license fee paid (if any).
|
||||
|
||||
Whilst XMOS gives the Customer the ability to load their own software and applications onto XMOS devices, the security of such software and applications when on the XMOS devices is the Customer's own responsibility and any breach of security shall not be deemed a defect or failure of the hardware. XMOS shall have no liability whatsoever in relation to any costs, damages or other losses Customer may incur as a result of any breaches of security in relation to your software or applications.
|
||||
|
||||
XMOS AND ITS LICENSORS DISCLAIM ALL OTHER WARRANTIES, EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY/ SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT EXCEPT TO THE EXTENT THAT THESE DISCLAIMERS ARE HELD TO BE LEGALLY INVALID UNDER APPLICABLE LAW.
|
||||
|
||||
9. High Risk Activities
|
||||
|
||||
The XMOS Software is not designed or intended for use in conjunction with on-line control equipment in hazardous environments requiring fail-safe performance, including without limitation the operation of nuclear facilities, aircraft navigation or communication systems, air traffic control, life support machines, or weapons systems (collectively "High Risk Activities") in which the failure of the XMOS Software could lead directly to death, personal injury, or severe physical or environmental damage. XMOS and its licensors specifically disclaim any express or implied warranties relating to use of the XMOS Software in connection with High Risk Activities.
|
||||
|
||||
10. Liability
|
||||
|
||||
TO THE EXTENT NOT PROHIBITED BY APPLICABLE LAW, NEITHER XMOS NOR ITS LICENSORS SHALL BE LIABLE FOR ANY LOST REVENUE, BUSINESS, PROFIT, CONTRACTS OR DATA, ADMINISTRATIVE OR OVERHEAD EXPENSES, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES HOWEVER CAUSED AND REGARDLESS OF THEORY OF LIABILITY ARISING OUT OF THIS LICENSE, EVEN IF XMOS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. In no event shall XMOS's liability to the Customer whether in contract, tort (including negligence), or otherwise exceed the License Fee.
|
||||
|
||||
Customer agrees to indemnify, hold harmless, and defend XMOS and its licensors from and against any claims or lawsuits, including attorneys' fees and any other liabilities, demands, proceedings, damages, losses, costs, expenses fines and charges which are made or brought against or incurred by XMOS as a result of your use or distribution of the Licensee Modifications or your use or distribution of XMOS Software, or any development of it, other than in accordance with the terms of this License.
|
||||
|
||||
11. Ownership
|
||||
|
||||
The copyrights and all other intellectual and industrial property rights for the protection of information with respect to the XMOS Software (including the methods and techniques on which they are based) are retained by XMOS and/or its licensors. Nothing in this Agreement serves to transfer such rights. Customer may not sell, mortgage, underlet, sublease, sublicense, lend or transfer possession of the XMOS Software in any way whatsoever to any third party who is not bound by this Agreement.
|
||||
|
||||
12. Termination
|
||||
|
||||
Either party may terminate this License at any time on written notice to the other if the other:
|
||||
|
||||
- is in material or persistent breach of any of the terms of this License and either that breach is incapable of remedy, or the other party fails to remedy that breach within 30 days after receiving written notice requiring it to remedy that breach; or
|
||||
|
||||
- is unable to pay its debts (within the meaning of section 123 of the Insolvency Act 1986), or becomes insolvent, or is subject to an order or a resolution for its liquidation, administration, winding-up or dissolution (otherwise than for the purposes of a solvent amalgamation or reconstruction), or has an administrative or other receiver, manager, trustee, liquidator, administrator or similar officer appointed over all or any substantial part of its assets, or enters into or proposes any composition or arrangement with its creditors generally, or is subject to any analogous event or proceeding in any applicable jurisdiction.
|
||||
|
||||
Termination by either party in accordance with the rights contained in clause 12 shall be without prejudice to any other rights or remedies of that party accrued prior to termination.
|
||||
|
||||
On termination for any reason:
|
||||
|
||||
- all rights granted to the Customer under this License shall cease;
|
||||
- the Customer shall cease all activities authorised by this License;
|
||||
- the Customer shall immediately pay any sums due to XMOS under this License; and
|
||||
- the Customer shall immediately destroy or return to the XMOS (at the XMOS's option) all copies of the XMOS Software then in its possession, custody or control and, in the case of destruction, certify to XMOS that it has done so.
|
||||
|
||||
Clauses 5, 8, 9, 10 and 11 shall survive any effective termination of this Agreement.
|
||||
|
||||
13. Third party rights
|
||||
|
||||
No term of this License is intended to confer a benefit on, or to be enforceable by, any person who is not a party to this license.
|
||||
|
||||
14. Confidentiality and publicity
|
||||
|
||||
Each party shall, during the term of this License and thereafter, keep confidential all, and shall not use for its own purposes nor without the prior written consent of the other disclose to any third party any, information of a confidential nature (including, without limitation, trade secrets and information of commercial value) which may become known to such party from the other party and which relates to the other party, unless such information is public knowledge or already known to such party at the time of disclosure, or subsequently becomes public knowledge other than by breach of this license, or subsequently comes lawfully into the possession of such party from a third party.
|
||||
|
||||
The terms of this license are confidential and may not be disclosed by the Customer without the prior written consent of XMOS.
|
||||
The provisions of clause 14 shall remain in full force and effect notwithstanding termination of this license for any reason.
|
||||
|
||||
15. Entire agreement
|
||||
|
||||
This License and the documents annexed as appendices to this License or otherwise referred to herein contain the whole agreement between the parties relating to the subject matter hereof and supersede all prior agreements, arrangements and understandings between the parties relating to that subject matter.
|
||||
|
||||
16. Assignment
|
||||
|
||||
The Customer shall not assign this License or any of the rights granted under it without XMOS's prior written consent.
|
||||
|
||||
17. Governing law and jurisdiction
|
||||
|
||||
This License shall be governed by and construed in accordance with English law and each party hereby submits to the non-exclusive jurisdiction of the English courts.
|
||||
|
||||
This License has been entered into on the date stated at the beginning of it.
|
||||
|
||||
Schedule
|
||||
XMOS UART library software
|
||||
99
lib_uart/README.rst
Normal file
99
lib_uart/README.rst
Normal file
@@ -0,0 +1,99 @@
|
||||
UART library
|
||||
============
|
||||
|
||||
Summary
|
||||
-------
|
||||
|
||||
A software defined, industry-standard, UART (Universal Asynchronous
|
||||
Receiver/Transmitter) library
|
||||
that allows you to control a UART serial connection via the
|
||||
xCORE GPIO ports. This library is controlled
|
||||
via C using the XMOS multicore extensions.
|
||||
|
||||
Features
|
||||
........
|
||||
|
||||
.. sidebysidelist::
|
||||
|
||||
* UART receive and transmit
|
||||
* Supports speeds up to 10MBit/s
|
||||
* Half-duplex mode (applicable to RS485)
|
||||
* Efficient multi-uart mode for implementing multiple connections
|
||||
|
||||
|
||||
Resource Usage
|
||||
..............
|
||||
|
||||
.. resusage::
|
||||
|
||||
|
||||
* - configuration: Standard TX
|
||||
- globals:
|
||||
- locals: output_gpio_if i_gpio_tx; interface uart_tx_if i_tx;
|
||||
- fn: uart_tx(i_tx, null,
|
||||
115200, UART_PARITY_NONE, 8, 1,
|
||||
i_gpio_tx);
|
||||
- pins: 1
|
||||
- ports: 1
|
||||
|
||||
* - configuration: Standard TX (buffered)
|
||||
- globals:
|
||||
- locals: output_gpio_if i_gpio_tx; interface uart_tx_buffered_if i_tx;
|
||||
- fn: uart_tx_buffered(i_tx, null, 5,
|
||||
115200, UART_PARITY_NONE, 8, 1,
|
||||
i_gpio_tx);
|
||||
- pins: 1
|
||||
- ports: 1
|
||||
|
||||
* - configuration: Standard RX
|
||||
- globals:
|
||||
- locals: input_gpio_if i_gpio_rx; interface uart_rx_if i_rx;
|
||||
- fn: uart_rx(i_rx, null, 5,
|
||||
115200, UART_PARITY_NONE, 8, 1,
|
||||
i_gpio_rx);
|
||||
- pins: 1
|
||||
- ports: 1
|
||||
|
||||
* - configuration: Fast/streaming TX
|
||||
- globals: out port p_uart_tx = XS1_PORT_1A;
|
||||
- locals: streaming chan c;
|
||||
- fn: uart_tx_streaming(p_uart_tx, c, 100);
|
||||
- pins: 1
|
||||
- ports: 1
|
||||
|
||||
* - configuration: Fast/streaming RX
|
||||
- globals: in port p_uart_tx = XS1_PORT_1A;
|
||||
- locals: streaming chan c;
|
||||
- fn: uart_rx_streaming(p_uart_tx, c, 100);
|
||||
- pins: 1
|
||||
- ports: 1
|
||||
|
||||
* - configuration: Multi-UART TX (8 UARTs)
|
||||
- globals: out buffered port:8 p_uart_tx = XS1_PORT_8B;
|
||||
- locals: interface multi_uart_tx_if i_tx; chan c_tx;
|
||||
- fn: multi_uart_tx(c_tx, i_tx, p_uart_tx, 8, 1843200, 115200, UART_PARITY_NONE, 8, 1);
|
||||
- pins: 8
|
||||
- ports: 1
|
||||
- cores: 1
|
||||
|
||||
* - configuration: Multi-UART RX (8 UARTs)
|
||||
- globals: in buffered port:32 p_uart_rx = XS1_PORT_8B;
|
||||
- locals: interface multi_uart_rx_if i_rx; streaming chan c_rx;
|
||||
- fn: multi_uart_rx(c_rx, i_rx, p_uart_rx, 8, 1843200, 115200, UART_PARITY_NONE, 8, 1);
|
||||
- pins: 8
|
||||
- ports: 1
|
||||
- cores: 1
|
||||
|
||||
* - configuration: Half Duplex
|
||||
- globals: port p_uart = XS1_PORT_1A;
|
||||
- locals: interface uart_tx_buffered_if i_tx; uart_rx_if i_rx; uart_control_if i_ctl;
|
||||
- fn: uart_half_duplex(i_tx, i_rx, i_ctl, null, 10, 10, 115200, UART_PARITY_NONE, 8, 1, p_uart);
|
||||
- pins: 1
|
||||
- ports: 1
|
||||
- cores: 1
|
||||
|
||||
|
||||
Software version and dependencies
|
||||
.................................
|
||||
|
||||
.. libdeps::
|
||||
968
lib_uart/examples/multi_uart_demo/.cproject
Normal file
968
lib_uart/examples/multi_uart_demo/.cproject
Normal file
@@ -0,0 +1,968 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
<cconfiguration id="com.xmos.cdt.toolchain.1315081879">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.xmos.cdt.toolchain.1315081879" moduleId="org.eclipse.cdt.core.settings" name="Default">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="com.xmos.cdt.core.XdeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="com.xmos.cdt.core.XEBinaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration buildProperties="" description="" id="com.xmos.cdt.toolchain.1315081879" name="Default" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="com.xmos.cdt.toolchain.1315081879.379550814" name="/" resourcePath="">
|
||||
<toolChain id="com.xmos.cdt.toolchain.833673004" name="com.xmos.cdt.toolchain" superClass="com.xmos.cdt.toolchain">
|
||||
<targetPlatform archList="all" binaryParser="com.xmos.cdt.core.XEBinaryParser;org.eclipse.cdt.core.GNU_ELF" id="com.xmos.cdt.core.platform.1056638705" isAbstract="false" osList="linux,win32,macosx" superClass="com.xmos.cdt.core.platform"/>
|
||||
<builder arguments="CONFIG=Default" id="com.xmos.cdt.builder.base.1765616544" keepEnvironmentInBuildfile="false" managedBuildOn="false" superClass="com.xmos.cdt.builder.base">
|
||||
<outputEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="outputPath" name="bin"/>
|
||||
</outputEntries>
|
||||
</builder>
|
||||
<tool id="com.xmos.cdt.xc.compiler.1496726787" name="com.xmos.cdt.xc.compiler" superClass="com.xmos.cdt.xc.compiler">
|
||||
<option id="com.xmos.xc.compiler.option.defined.symbols.683768397" name="com.xmos.xc.compiler.option.defined.symbols" superClass="com.xmos.xc.compiler.option.defined.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="__XC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__llvm__=1"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_RELAXED=0"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_CONSUME=1"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_ACQUIRE=2"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_RELEASE=3"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_ACQ_REL=4"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_SEQ_CST=5"/>
|
||||
<listOptionValue builtIn="false" value="__PRAGMA_REDEFINE_EXTNAME=1"/>
|
||||
<listOptionValue builtIn="false" value="__VERSION__="4.2.1"/>
|
||||
<listOptionValue builtIn="false" value="__CONSTANT_CFSTRINGS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__ORDER_LITTLE_ENDIAN__=1234"/>
|
||||
<listOptionValue builtIn="false" value="__ORDER_BIG_ENDIAN__=4321"/>
|
||||
<listOptionValue builtIn="false" value="__ORDER_PDP_ENDIAN__=3412"/>
|
||||
<listOptionValue builtIn="false" value="__BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__"/>
|
||||
<listOptionValue builtIn="false" value="__LITTLE_ENDIAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="_ILP32=1"/>
|
||||
<listOptionValue builtIn="false" value="__ILP32__=1"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>
|
||||
<listOptionValue builtIn="false" value="__SCHAR_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__SHRT_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__INT_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_MAX__=2147483647L"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_LONG_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_MAX__=255"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_MAX__=4294967295U"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_DOUBLE__=8"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_FLOAT__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_INT__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_LONG__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_LONG_DOUBLE__=8"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_LONG_LONG__=8"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_POINTER__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_SHORT__=2"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_PTRDIFF_T__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_SIZE_T__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_WCHAR_T__=1"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_WINT_T__=4"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_FMTd__="lld""/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_FMTi__="lli""/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_C_SUFFIX__=LL"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_FMTo__="llo""/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_FMTu__="llu""/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_FMTx__="llx""/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_FMTX__="llX""/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_C_SUFFIX__=ULL"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_WIDTH__=64"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_FMTd__="d""/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_FMTi__="i""/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__INTPTR_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__INTPTR_FMTd__="d""/>
|
||||
<listOptionValue builtIn="false" value="__INTPTR_FMTi__="i""/>
|
||||
<listOptionValue builtIn="false" value="__INTPTR_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_FMTo__="o""/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_FMTu__="u""/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_FMTx__="x""/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_FMTX__="X""/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_WIDTH__=8"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__SIG_ATOMIC_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__SIG_ATOMIC_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR16_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR32_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DENORM_MIN__=1.40129846e-45F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DIG__=6"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EPSILON__=1.19209290e-7F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MANT_DIG__=24"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_10_EXP__=38"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_EXP__=128"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX__=3.40282347e+38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_10_EXP__=(-37)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_EXP__=(-125)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN__=1.17549435e-38F"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DENORM_MIN__=4.9406564584124654e-324"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_EPSILON__=2.2204460492503131e-16"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX__=1.7976931348623157e+308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN__=2.2250738585072014e-308"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DENORM_MIN__=4.9406564584124654e-324L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_EPSILON__=2.2204460492503131e-16L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX__=1.7976931348623157e+308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN__=2.2250738585072014e-308L"/>
|
||||
<listOptionValue builtIn="false" value="__POINTER_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__INT8_TYPE__=signed"/>
|
||||
<listOptionValue builtIn="false" value="__INT8_FMTd__="hhd""/>
|
||||
<listOptionValue builtIn="false" value="__INT8_FMTi__="hhi""/>
|
||||
<listOptionValue builtIn="false" value="__INT8_C_SUFFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__INT16_TYPE__=short"/>
|
||||
<listOptionValue builtIn="false" value="__INT16_FMTd__="hd""/>
|
||||
<listOptionValue builtIn="false" value="__INT16_FMTi__="hi""/>
|
||||
<listOptionValue builtIn="false" value="__INT16_C_SUFFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__INT32_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__INT32_FMTd__="d""/>
|
||||
<listOptionValue builtIn="false" value="__INT32_FMTi__="i""/>
|
||||
<listOptionValue builtIn="false" value="__INT32_C_SUFFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__INT64_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__INT64_FMTd__="lld""/>
|
||||
<listOptionValue builtIn="false" value="__INT64_FMTi__="lli""/>
|
||||
<listOptionValue builtIn="false" value="__INT64_C_SUFFIX__=LL"/>
|
||||
<listOptionValue builtIn="false" value="__USER_LABEL_PREFIX__=_"/>
|
||||
<listOptionValue builtIn="false" value="__FINITE_MATH_ONLY__=0"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EVAL_METHOD__=0"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_RADIX__=2"/>
|
||||
<listOptionValue builtIn="false" value="__DECIMAL_DIG__=17"/>
|
||||
<listOptionValue builtIn="false" value="__xcore__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XS1B__=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_HOSTED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_UTF_16__=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_UTF_32__=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_YEAR=14"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MONTH=0"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MAJOR=1400"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MINOR=0"/>
|
||||
<listOptionValue builtIn="false" value="__XCC_HAVE_FLOAT__=1"/>
|
||||
<listOptionValue builtIn="false" value="_XSCOPE_PROBES_INCLUDE_FILE="/tmp/cc09H7mh.h""/>
|
||||
</option>
|
||||
<option id="com.xmos.xc.compiler.option.include.paths.1672476898" name="com.xmos.xc.compiler.option.include.paths" superClass="com.xmos.xc.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/xc""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/clang""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_xassert/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_logging/doc}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_xassert/doc/rst}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_gpio/doc/rst/images}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_gpio/doc/rst}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_logging/doc/rst}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_logging/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_xassert/doc/pdf}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_gpio/api}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/doc/rst}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_gpio/doc}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_gpio/doc/pdf}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_logging}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_gpio/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/api}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_xassert}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_xassert/api}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_gpio}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/doc/rst/images}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/doc}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/doc/pdf}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_xassert/doc}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_logging/api}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_logging/doc/pdf}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart}""/>
|
||||
</option>
|
||||
<inputType id="com.xmos.cdt.xc.compiler.input.210249844" name="XC" superClass="com.xmos.cdt.xc.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="com.xmos.cdt.c.compiler.739047664" name="com.xmos.cdt.c.compiler" superClass="com.xmos.cdt.c.compiler">
|
||||
<option id="com.xmos.c.compiler.option.defined.symbols.592000545" name="com.xmos.c.compiler.option.defined.symbols" superClass="com.xmos.c.compiler.option.defined.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="__llvm__=1"/>
|
||||
<listOptionValue builtIn="false" value="__clang__=1"/>
|
||||
<listOptionValue builtIn="false" value="__clang_major__=3"/>
|
||||
<listOptionValue builtIn="false" value="__clang_minor__=6"/>
|
||||
<listOptionValue builtIn="false" value="__clang_patchlevel__=0"/>
|
||||
<listOptionValue builtIn="false" value="__clang_version__="3.6.0"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_MINOR__=2"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_PATCHLEVEL__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_ABI_VERSION=1002"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_RELAXED=0"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_CONSUME=1"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_ACQUIRE=2"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_RELEASE=3"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_ACQ_REL=4"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_SEQ_CST=5"/>
|
||||
<listOptionValue builtIn="false" value="__PRAGMA_REDEFINE_EXTNAME=1"/>
|
||||
<listOptionValue builtIn="false" value="__VERSION__="4.2.1"/>
|
||||
<listOptionValue builtIn="false" value="__CONSTANT_CFSTRINGS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_RTTI=1"/>
|
||||
<listOptionValue builtIn="false" value="__ORDER_LITTLE_ENDIAN__=1234"/>
|
||||
<listOptionValue builtIn="false" value="__ORDER_BIG_ENDIAN__=4321"/>
|
||||
<listOptionValue builtIn="false" value="__ORDER_PDP_ENDIAN__=3412"/>
|
||||
<listOptionValue builtIn="false" value="__BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__"/>
|
||||
<listOptionValue builtIn="false" value="__LITTLE_ENDIAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="_ILP32=1"/>
|
||||
<listOptionValue builtIn="false" value="__ILP32__=1"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>
|
||||
<listOptionValue builtIn="false" value="__SCHAR_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__SHRT_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__INT_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_MAX__=2147483647L"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_LONG_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_MAX__=255"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_MAX__=4294967295U"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_MAX__=18446744073709551615ULL"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__INTPTR_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__UINTPTR_MAX__=4294967295U"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_DOUBLE__=8"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_FLOAT__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_INT__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_LONG__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_LONG_DOUBLE__=8"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_LONG_LONG__=8"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_POINTER__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_SHORT__=2"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_PTRDIFF_T__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_SIZE_T__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_WCHAR_T__=1"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_WINT_T__=4"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_FMTd__="lld""/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_FMTi__="lli""/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_C_SUFFIX__=LL"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_FMTo__="llo""/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_FMTu__="llu""/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_FMTx__="llx""/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_FMTX__="llX""/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_C_SUFFIX__=ULL"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_WIDTH__=64"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_FMTd__="d""/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_FMTi__="i""/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__INTPTR_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__INTPTR_FMTd__="d""/>
|
||||
<listOptionValue builtIn="false" value="__INTPTR_FMTi__="i""/>
|
||||
<listOptionValue builtIn="false" value="__INTPTR_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_FMTo__="o""/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_FMTu__="u""/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_FMTx__="x""/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_FMTX__="X""/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_WIDTH__=8"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__SIG_ATOMIC_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__SIG_ATOMIC_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR16_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR32_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_WIDTH__=64"/>
|
||||
<listOptionValue builtIn="false" value="__UINTPTR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__UINTPTR_FMTo__="o""/>
|
||||
<listOptionValue builtIn="false" value="__UINTPTR_FMTu__="u""/>
|
||||
<listOptionValue builtIn="false" value="__UINTPTR_FMTx__="x""/>
|
||||
<listOptionValue builtIn="false" value="__UINTPTR_FMTX__="X""/>
|
||||
<listOptionValue builtIn="false" value="__UINTPTR_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DENORM_MIN__=1.40129846e-45F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DIG__=6"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EPSILON__=1.19209290e-7F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MANT_DIG__=24"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_10_EXP__=38"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_EXP__=128"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX__=3.40282347e+38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_10_EXP__=(-37)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_EXP__=(-125)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN__=1.17549435e-38F"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DENORM_MIN__=4.9406564584124654e-324"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_EPSILON__=2.2204460492503131e-16"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX__=1.7976931348623157e+308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN__=2.2250738585072014e-308"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DENORM_MIN__=4.9406564584124654e-324L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_EPSILON__=2.2204460492503131e-16L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX__=1.7976931348623157e+308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN__=2.2250738585072014e-308L"/>
|
||||
<listOptionValue builtIn="false" value="__POINTER_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__INT8_TYPE__=signed"/>
|
||||
<listOptionValue builtIn="false" value="__INT8_FMTd__="hhd""/>
|
||||
<listOptionValue builtIn="false" value="__INT8_FMTi__="hhi""/>
|
||||
<listOptionValue builtIn="false" value="__INT8_C_SUFFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__INT16_TYPE__=short"/>
|
||||
<listOptionValue builtIn="false" value="__INT16_FMTd__="hd""/>
|
||||
<listOptionValue builtIn="false" value="__INT16_FMTi__="hi""/>
|
||||
<listOptionValue builtIn="false" value="__INT16_C_SUFFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__INT32_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__INT32_FMTd__="d""/>
|
||||
<listOptionValue builtIn="false" value="__INT32_FMTi__="i""/>
|
||||
<listOptionValue builtIn="false" value="__INT32_C_SUFFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__INT64_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__INT64_FMTd__="lld""/>
|
||||
<listOptionValue builtIn="false" value="__INT64_FMTi__="lli""/>
|
||||
<listOptionValue builtIn="false" value="__INT64_C_SUFFIX__=LL"/>
|
||||
<listOptionValue builtIn="false" value="__UINT8_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__UINT8_FMTo__="hho""/>
|
||||
<listOptionValue builtIn="false" value="__UINT8_FMTu__="hhu""/>
|
||||
<listOptionValue builtIn="false" value="__UINT8_FMTx__="hhx""/>
|
||||
<listOptionValue builtIn="false" value="__UINT8_FMTX__="hhX""/>
|
||||
<listOptionValue builtIn="false" value="__UINT8_C_SUFFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__UINT8_MAX__=255"/>
|
||||
<listOptionValue builtIn="false" value="__INT8_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__UINT16_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__UINT16_FMTo__="ho""/>
|
||||
<listOptionValue builtIn="false" value="__UINT16_FMTu__="hu""/>
|
||||
<listOptionValue builtIn="false" value="__UINT16_FMTx__="hx""/>
|
||||
<listOptionValue builtIn="false" value="__UINT16_FMTX__="hX""/>
|
||||
<listOptionValue builtIn="false" value="__UINT16_C_SUFFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__UINT16_MAX__=65535"/>
|
||||
<listOptionValue builtIn="false" value="__INT16_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__UINT32_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__UINT32_FMTo__="o""/>
|
||||
<listOptionValue builtIn="false" value="__UINT32_FMTu__="u""/>
|
||||
<listOptionValue builtIn="false" value="__UINT32_FMTx__="x""/>
|
||||
<listOptionValue builtIn="false" value="__UINT32_FMTX__="X""/>
|
||||
<listOptionValue builtIn="false" value="__UINT32_C_SUFFIX__=U"/>
|
||||
<listOptionValue builtIn="false" value="__UINT32_MAX__=4294967295U"/>
|
||||
<listOptionValue builtIn="false" value="__INT32_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__UINT64_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINT64_FMTo__="llo""/>
|
||||
<listOptionValue builtIn="false" value="__UINT64_FMTu__="llu""/>
|
||||
<listOptionValue builtIn="false" value="__UINT64_FMTx__="llx""/>
|
||||
<listOptionValue builtIn="false" value="__UINT64_FMTX__="llX""/>
|
||||
<listOptionValue builtIn="false" value="__UINT64_C_SUFFIX__=ULL"/>
|
||||
<listOptionValue builtIn="false" value="__UINT64_MAX__=18446744073709551615ULL"/>
|
||||
<listOptionValue builtIn="false" value="__INT64_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST8_TYPE__=signed"/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST8_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST8_FMTd__="hhd""/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST8_FMTi__="hhi""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST8_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST8_MAX__=255"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST8_FMTo__="hho""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST8_FMTu__="hhu""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST8_FMTx__="hhx""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST8_FMTX__="hhX""/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST16_TYPE__=short"/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST16_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST16_FMTd__="hd""/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST16_FMTi__="hi""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST16_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST16_MAX__=65535"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST16_FMTo__="ho""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST16_FMTu__="hu""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST16_FMTx__="hx""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST16_FMTX__="hX""/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST32_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST32_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST32_FMTd__="d""/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST32_FMTi__="i""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST32_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST32_MAX__=4294967295U"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST32_FMTo__="o""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST32_FMTu__="u""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST32_FMTx__="x""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST32_FMTX__="X""/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST64_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST64_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST64_FMTd__="lld""/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST64_FMTi__="lli""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST64_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST64_MAX__=18446744073709551615ULL"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST64_FMTo__="llo""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST64_FMTu__="llu""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST64_FMTx__="llx""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST64_FMTX__="llX""/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST8_TYPE__=signed"/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST8_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST8_FMTd__="hhd""/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST8_FMTi__="hhi""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST8_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST8_MAX__=255"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST8_FMTo__="hho""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST8_FMTu__="hhu""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST8_FMTx__="hhx""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST8_FMTX__="hhX""/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST16_TYPE__=short"/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST16_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST16_FMTd__="hd""/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST16_FMTi__="hi""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST16_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST16_MAX__=65535"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST16_FMTo__="ho""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST16_FMTu__="hu""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST16_FMTx__="hx""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST16_FMTX__="hX""/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST32_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST32_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST32_FMTd__="d""/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST32_FMTi__="i""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST32_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST32_MAX__=4294967295U"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST32_FMTo__="o""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST32_FMTu__="u""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST32_FMTx__="x""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST32_FMTX__="X""/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST64_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST64_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST64_FMTd__="lld""/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST64_FMTi__="lli""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST64_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST64_MAX__=18446744073709551615ULL"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST64_FMTo__="llo""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST64_FMTu__="llu""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST64_FMTx__="llx""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST64_FMTX__="llX""/>
|
||||
<listOptionValue builtIn="false" value="__USER_LABEL_PREFIX__=_"/>
|
||||
<listOptionValue builtIn="false" value="__FINITE_MATH_ONLY__=0"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_STDC_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_BOOL_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_CHAR_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_CHAR16_T_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_CHAR32_T_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_WCHAR_T_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_SHORT_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_INT_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_LONG_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_LLONG_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_POINTER_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__NO_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EVAL_METHOD__=0"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_RADIX__=2"/>
|
||||
<listOptionValue builtIn="false" value="__DECIMAL_DIG__=17"/>
|
||||
<listOptionValue builtIn="false" value="__xcore__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XS1B__=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_HOSTED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_VERSION__=199901L"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_UTF_16__=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_UTF_32__=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_YEAR=14"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MONTH=0"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MAJOR=1400"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MINOR=0"/>
|
||||
<listOptionValue builtIn="false" value="__XCC_HAVE_FLOAT__=1"/>
|
||||
<listOptionValue builtIn="false" value="_XSCOPE_PROBES_INCLUDE_FILE="/tmp/cc1xiHKc.h""/>
|
||||
</option>
|
||||
<option id="com.xmos.c.compiler.option.include.paths.2083152142" name="com.xmos.c.compiler.option.include.paths" superClass="com.xmos.c.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/clang""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_xassert/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_logging/doc}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_xassert/doc/rst}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_gpio/doc/rst/images}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_gpio/doc/rst}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_logging/doc/rst}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_logging/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_xassert/doc/pdf}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_gpio/api}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/doc/rst}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_gpio/doc}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_gpio/doc/pdf}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_logging}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_gpio/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/api}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_xassert}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_xassert/api}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_gpio}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/doc/rst/images}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/doc}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/doc/pdf}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_xassert/doc}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_logging/api}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_logging/doc/pdf}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart}""/>
|
||||
</option>
|
||||
<inputType id="com.xmos.cdt.c.compiler.input.c.331876426" name="C" superClass="com.xmos.cdt.c.compiler.input.c"/>
|
||||
</tool>
|
||||
<tool id="com.xmos.cdt.cxx.compiler.1938662832" name="com.xmos.cdt.cxx.compiler" superClass="com.xmos.cdt.cxx.compiler">
|
||||
<option id="com.xmos.cxx.compiler.option.defined.symbols.1092450632" name="com.xmos.cxx.compiler.option.defined.symbols" superClass="com.xmos.cxx.compiler.option.defined.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="__llvm__=1"/>
|
||||
<listOptionValue builtIn="false" value="__clang__=1"/>
|
||||
<listOptionValue builtIn="false" value="__clang_major__=3"/>
|
||||
<listOptionValue builtIn="false" value="__clang_minor__=6"/>
|
||||
<listOptionValue builtIn="false" value="__clang_patchlevel__=0"/>
|
||||
<listOptionValue builtIn="false" value="__clang_version__="3.6.0"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_MINOR__=2"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_PATCHLEVEL__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_ABI_VERSION=1002"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_RELAXED=0"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_CONSUME=1"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_ACQUIRE=2"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_RELEASE=3"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_ACQ_REL=4"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_SEQ_CST=5"/>
|
||||
<listOptionValue builtIn="false" value="__PRAGMA_REDEFINE_EXTNAME=1"/>
|
||||
<listOptionValue builtIn="false" value="__VERSION__="4.2.1"/>
|
||||
<listOptionValue builtIn="false" value="__CONSTANT_CFSTRINGS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_RTTI=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEPRECATED=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUG__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_WEAK__=1"/>
|
||||
<listOptionValue builtIn="false" value="__private_extern__=extern"/>
|
||||
<listOptionValue builtIn="false" value="__ORDER_LITTLE_ENDIAN__=1234"/>
|
||||
<listOptionValue builtIn="false" value="__ORDER_BIG_ENDIAN__=4321"/>
|
||||
<listOptionValue builtIn="false" value="__ORDER_PDP_ENDIAN__=3412"/>
|
||||
<listOptionValue builtIn="false" value="__BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__"/>
|
||||
<listOptionValue builtIn="false" value="__LITTLE_ENDIAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="_ILP32=1"/>
|
||||
<listOptionValue builtIn="false" value="__ILP32__=1"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>
|
||||
<listOptionValue builtIn="false" value="__SCHAR_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__SHRT_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__INT_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_MAX__=2147483647L"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_LONG_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_MAX__=255"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_MAX__=4294967295U"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_MAX__=18446744073709551615ULL"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__INTPTR_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__UINTPTR_MAX__=4294967295U"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_DOUBLE__=8"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_FLOAT__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_INT__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_LONG__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_LONG_DOUBLE__=8"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_LONG_LONG__=8"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_POINTER__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_SHORT__=2"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_PTRDIFF_T__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_SIZE_T__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_WCHAR_T__=1"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_WINT_T__=4"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_FMTd__="lld""/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_FMTi__="lli""/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_C_SUFFIX__=LL"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_FMTo__="llo""/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_FMTu__="llu""/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_FMTx__="llx""/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_FMTX__="llX""/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_C_SUFFIX__=ULL"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_WIDTH__=64"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_FMTd__="d""/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_FMTi__="i""/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__INTPTR_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__INTPTR_FMTd__="d""/>
|
||||
<listOptionValue builtIn="false" value="__INTPTR_FMTi__="i""/>
|
||||
<listOptionValue builtIn="false" value="__INTPTR_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_FMTo__="o""/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_FMTu__="u""/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_FMTx__="x""/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_FMTX__="X""/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_WIDTH__=8"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__SIG_ATOMIC_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__SIG_ATOMIC_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR16_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR32_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_WIDTH__=64"/>
|
||||
<listOptionValue builtIn="false" value="__UINTPTR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__UINTPTR_FMTo__="o""/>
|
||||
<listOptionValue builtIn="false" value="__UINTPTR_FMTu__="u""/>
|
||||
<listOptionValue builtIn="false" value="__UINTPTR_FMTx__="x""/>
|
||||
<listOptionValue builtIn="false" value="__UINTPTR_FMTX__="X""/>
|
||||
<listOptionValue builtIn="false" value="__UINTPTR_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DENORM_MIN__=1.40129846e-45F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DIG__=6"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EPSILON__=1.19209290e-7F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MANT_DIG__=24"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_10_EXP__=38"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_EXP__=128"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX__=3.40282347e+38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_10_EXP__=(-37)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_EXP__=(-125)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN__=1.17549435e-38F"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DENORM_MIN__=4.9406564584124654e-324"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_EPSILON__=2.2204460492503131e-16"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX__=1.7976931348623157e+308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN__=2.2250738585072014e-308"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DENORM_MIN__=4.9406564584124654e-324L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_EPSILON__=2.2204460492503131e-16L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX__=1.7976931348623157e+308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN__=2.2250738585072014e-308L"/>
|
||||
<listOptionValue builtIn="false" value="__POINTER_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__INT8_TYPE__=signed"/>
|
||||
<listOptionValue builtIn="false" value="__INT8_FMTd__="hhd""/>
|
||||
<listOptionValue builtIn="false" value="__INT8_FMTi__="hhi""/>
|
||||
<listOptionValue builtIn="false" value="__INT8_C_SUFFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__INT16_TYPE__=short"/>
|
||||
<listOptionValue builtIn="false" value="__INT16_FMTd__="hd""/>
|
||||
<listOptionValue builtIn="false" value="__INT16_FMTi__="hi""/>
|
||||
<listOptionValue builtIn="false" value="__INT16_C_SUFFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__INT32_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__INT32_FMTd__="d""/>
|
||||
<listOptionValue builtIn="false" value="__INT32_FMTi__="i""/>
|
||||
<listOptionValue builtIn="false" value="__INT32_C_SUFFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__INT64_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__INT64_FMTd__="lld""/>
|
||||
<listOptionValue builtIn="false" value="__INT64_FMTi__="lli""/>
|
||||
<listOptionValue builtIn="false" value="__INT64_C_SUFFIX__=LL"/>
|
||||
<listOptionValue builtIn="false" value="__UINT8_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__UINT8_FMTo__="hho""/>
|
||||
<listOptionValue builtIn="false" value="__UINT8_FMTu__="hhu""/>
|
||||
<listOptionValue builtIn="false" value="__UINT8_FMTx__="hhx""/>
|
||||
<listOptionValue builtIn="false" value="__UINT8_FMTX__="hhX""/>
|
||||
<listOptionValue builtIn="false" value="__UINT8_C_SUFFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__UINT8_MAX__=255"/>
|
||||
<listOptionValue builtIn="false" value="__INT8_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__UINT16_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__UINT16_FMTo__="ho""/>
|
||||
<listOptionValue builtIn="false" value="__UINT16_FMTu__="hu""/>
|
||||
<listOptionValue builtIn="false" value="__UINT16_FMTx__="hx""/>
|
||||
<listOptionValue builtIn="false" value="__UINT16_FMTX__="hX""/>
|
||||
<listOptionValue builtIn="false" value="__UINT16_C_SUFFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__UINT16_MAX__=65535"/>
|
||||
<listOptionValue builtIn="false" value="__INT16_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__UINT32_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__UINT32_FMTo__="o""/>
|
||||
<listOptionValue builtIn="false" value="__UINT32_FMTu__="u""/>
|
||||
<listOptionValue builtIn="false" value="__UINT32_FMTx__="x""/>
|
||||
<listOptionValue builtIn="false" value="__UINT32_FMTX__="X""/>
|
||||
<listOptionValue builtIn="false" value="__UINT32_C_SUFFIX__=U"/>
|
||||
<listOptionValue builtIn="false" value="__UINT32_MAX__=4294967295U"/>
|
||||
<listOptionValue builtIn="false" value="__INT32_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__UINT64_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINT64_FMTo__="llo""/>
|
||||
<listOptionValue builtIn="false" value="__UINT64_FMTu__="llu""/>
|
||||
<listOptionValue builtIn="false" value="__UINT64_FMTx__="llx""/>
|
||||
<listOptionValue builtIn="false" value="__UINT64_FMTX__="llX""/>
|
||||
<listOptionValue builtIn="false" value="__UINT64_C_SUFFIX__=ULL"/>
|
||||
<listOptionValue builtIn="false" value="__UINT64_MAX__=18446744073709551615ULL"/>
|
||||
<listOptionValue builtIn="false" value="__INT64_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST8_TYPE__=signed"/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST8_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST8_FMTd__="hhd""/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST8_FMTi__="hhi""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST8_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST8_MAX__=255"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST8_FMTo__="hho""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST8_FMTu__="hhu""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST8_FMTx__="hhx""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST8_FMTX__="hhX""/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST16_TYPE__=short"/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST16_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST16_FMTd__="hd""/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST16_FMTi__="hi""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST16_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST16_MAX__=65535"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST16_FMTo__="ho""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST16_FMTu__="hu""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST16_FMTx__="hx""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST16_FMTX__="hX""/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST32_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST32_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST32_FMTd__="d""/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST32_FMTi__="i""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST32_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST32_MAX__=4294967295U"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST32_FMTo__="o""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST32_FMTu__="u""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST32_FMTx__="x""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST32_FMTX__="X""/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST64_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST64_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST64_FMTd__="lld""/>
|
||||
<listOptionValue builtIn="false" value="__INT_LEAST64_FMTi__="lli""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST64_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST64_MAX__=18446744073709551615ULL"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST64_FMTo__="llo""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST64_FMTu__="llu""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST64_FMTx__="llx""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_LEAST64_FMTX__="llX""/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST8_TYPE__=signed"/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST8_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST8_FMTd__="hhd""/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST8_FMTi__="hhi""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST8_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST8_MAX__=255"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST8_FMTo__="hho""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST8_FMTu__="hhu""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST8_FMTx__="hhx""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST8_FMTX__="hhX""/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST16_TYPE__=short"/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST16_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST16_FMTd__="hd""/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST16_FMTi__="hi""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST16_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST16_MAX__=65535"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST16_FMTo__="ho""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST16_FMTu__="hu""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST16_FMTx__="hx""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST16_FMTX__="hX""/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST32_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST32_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST32_FMTd__="d""/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST32_FMTi__="i""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST32_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST32_MAX__=4294967295U"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST32_FMTo__="o""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST32_FMTu__="u""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST32_FMTx__="x""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST32_FMTX__="X""/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST64_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST64_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST64_FMTd__="lld""/>
|
||||
<listOptionValue builtIn="false" value="__INT_FAST64_FMTi__="lli""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST64_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST64_MAX__=18446744073709551615ULL"/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST64_FMTo__="llo""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST64_FMTu__="llu""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST64_FMTx__="llx""/>
|
||||
<listOptionValue builtIn="false" value="__UINT_FAST64_FMTX__="llX""/>
|
||||
<listOptionValue builtIn="false" value="__USER_LABEL_PREFIX__=_"/>
|
||||
<listOptionValue builtIn="false" value="__FINITE_MATH_ONLY__=0"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_GNU_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_BOOL_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_CHAR_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_CHAR16_T_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_CHAR32_T_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_WCHAR_T_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_SHORT_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_INT_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_LONG_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_LLONG_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_POINTER_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__NO_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EVAL_METHOD__=0"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_RADIX__=2"/>
|
||||
<listOptionValue builtIn="false" value="__DECIMAL_DIG__=17"/>
|
||||
<listOptionValue builtIn="false" value="__xcore__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XS1B__=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_HOSTED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__cplusplus=199711L"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_UTF_16__=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_UTF_32__=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_YEAR=14"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MONTH=0"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MAJOR=1400"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MINOR=0"/>
|
||||
<listOptionValue builtIn="false" value="__XCC_HAVE_FLOAT__=1"/>
|
||||
<listOptionValue builtIn="false" value="_XSCOPE_PROBES_INCLUDE_FILE="/tmp/ccihdgOk.h""/>
|
||||
</option>
|
||||
<option id="com.xmos.cxx.compiler.option.include.paths.690376777" name="com.xmos.cxx.compiler.option.include.paths" superClass="com.xmos.cxx.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/clang""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/c++/v1""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_xassert/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_logging/doc}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_xassert/doc/rst}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_gpio/doc/rst/images}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_gpio/doc/rst}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_logging/doc/rst}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_logging/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_xassert/doc/pdf}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_gpio/api}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/doc/rst}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_gpio/doc}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_gpio/doc/pdf}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_logging}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_gpio/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/api}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_xassert}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_xassert/api}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_gpio}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/doc/rst/images}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/doc}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/doc/pdf}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_xassert/doc}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_logging/api}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_logging/doc/pdf}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart}""/>
|
||||
</option>
|
||||
<inputType id="com.xmos.cdt.cxx.compiler.input.cpp.1218045674" name="C++" superClass="com.xmos.cdt.cxx.compiler.input.cpp"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry excluding=".build*" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id="app_sk_muart_com_demo.null.1070271190" name="app_sk_muart_com_demo"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="makefileGenerator">
|
||||
<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||
<storageModule moduleId="refreshScope"/>
|
||||
</cproject>
|
||||
90
lib_uart/examples/multi_uart_demo/.project
Normal file
90
lib_uart/examples/multi_uart_demo/.project
Normal file
@@ -0,0 +1,90 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>multi_uart_demo</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>com.xmos.cdt.core.ProjectInfoSyncBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>com.xmos.cdt.core.LegacyProjectCheckerBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>com.xmos.cdt.core.ModulePathBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
<dictionary>
|
||||
<key>?children?</key>
|
||||
<value>?name?=outputEntries\|?children?=?name?=entry\\\\\\\|\\\|\||</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>?name?</key>
|
||||
<value></value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.append_environment</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.buildArguments</key>
|
||||
<value>CONFIG=Debug</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.buildCommand</key>
|
||||
<value>xmake</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
|
||||
<value>clean</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.contents</key>
|
||||
<value>org.eclipse.cdt.make.core.activeConfigSettings</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
|
||||
<value>false</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableFullBuild</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.stopOnError</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
|
||||
<value>false</value>
|
||||
</dictionary>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
<nature>com.xmos.cdt.core.XdeProjectNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
135
lib_uart/examples/multi_uart_demo/LICENSE.txt
Normal file
135
lib_uart/examples/multi_uart_demo/LICENSE.txt
Normal file
@@ -0,0 +1,135 @@
|
||||
Software Release License Agreement
|
||||
|
||||
Copyright (c) 2015-2017, XMOS, All rights reserved.
|
||||
|
||||
BY ACCESSING, USING, INSTALLING OR DOWNLOADING THE XMOS SOFTWARE, YOU AGREE TO BE BOUND BY THE FOLLOWING TERMS. IF YOU DO NOT AGREE TO THESE, DO NOT ATTEMPT TO DOWNLOAD, ACCESS OR USE THE XMOS Software.
|
||||
|
||||
Parties:
|
||||
|
||||
(1) XMOS Limited, incorporated and registered in England and Wales with company number 5494985 whose registered office is 107 Cheapside, London, EC2V 6DN (XMOS).
|
||||
|
||||
(2) An individual or legal entity exercising permissions granted by this License (Customer).
|
||||
|
||||
If you are entering into this Agreement on behalf of another legal entity such as a company, partnership, university, college etc. (for example, as an employee, student or consultant), you warrant that you have authority to bind that entity.
|
||||
|
||||
1. Definitions
|
||||
|
||||
"License" means this Software License and any schedules or annexes to it.
|
||||
|
||||
"License Fee" means the fee for the XMOS Software as detailed in any schedules or annexes to this Software License
|
||||
|
||||
"Licensee Modifications" means all developments and modifications of the XMOS Software developed independently by the Customer.
|
||||
|
||||
"XMOS Modifications" means all developments and modifications of the XMOS Software developed or co-developed by XMOS.
|
||||
|
||||
"XMOS Hardware" means any XMOS hardware devices supplied by XMOS from time to time and/or the particular XMOS devices detailed in any schedules or annexes to this Software License.
|
||||
|
||||
"XMOS Software" comprises the XMOS owned circuit designs, schematics, source code, object code, reference designs, (including related programmer comments and documentation, if any), error corrections, improvements, modifications (including XMOS Modifications) and updates.
|
||||
|
||||
The headings in this License do not affect its interpretation. Save where the context otherwise requires, references to clauses and schedules are to clauses and schedules of this License.
|
||||
|
||||
Unless the context otherwise requires:
|
||||
|
||||
- references to XMOS and the Customer include their permitted successors and assigns;
|
||||
- references to statutory provisions include those statutory provisions as amended or re-enacted; and
|
||||
- references to any gender include all genders.
|
||||
|
||||
Words in the singular include the plural and in the plural include the singular.
|
||||
|
||||
2. License
|
||||
|
||||
XMOS grants the Customer a non-exclusive license to use, develop, modify and distribute the XMOS Software with, or for the purpose of being used with, XMOS Hardware.
|
||||
|
||||
Open Source Software (OSS) must be used and dealt with in accordance with any license terms under which OSS is distributed.
|
||||
|
||||
3. Consideration
|
||||
|
||||
In consideration of the mutual obligations contained in this License, the parties agree to its terms.
|
||||
|
||||
4. Term
|
||||
|
||||
Subject to clause 12 below, this License shall be perpetual.
|
||||
|
||||
5. Restrictions on Use
|
||||
|
||||
The Customer will adhere to all applicable import and export laws and regulations of the country in which it resides and of the United States and United Kingdom, without limitation. The Customer agrees that it is its responsibility to obtain copies of and to familiarise itself fully with these laws and regulations to avoid violation.
|
||||
|
||||
6. Modifications
|
||||
|
||||
The Customer will own all intellectual property rights in the Licensee Modifications but will undertake to provide XMOS with any fixes made to correct any bugs found in the XMOS Software on a non-exclusive, perpetual and royalty free license basis.
|
||||
|
||||
XMOS will own all intellectual property rights in the XMOS Modifications.
|
||||
The Customer may only use the Licensee Modifications and XMOS Modifications on, or in relation to, XMOS Hardware.
|
||||
|
||||
7. Support
|
||||
|
||||
Support of the XMOS Software may be provided by XMOS pursuant to a separate support agreement.
|
||||
|
||||
8. Warranty and Disclaimer
|
||||
|
||||
The XMOS Software is provided "AS IS" without a warranty of any kind. XMOS and its licensors' entire liability and Customer's exclusive remedy under this warranty to be determined in XMOS's sole and absolute discretion, will be either (a) the corrections of defects in media or replacement of the media, or (b) the refund of the license fee paid (if any).
|
||||
|
||||
Whilst XMOS gives the Customer the ability to load their own software and applications onto XMOS devices, the security of such software and applications when on the XMOS devices is the Customer's own responsibility and any breach of security shall not be deemed a defect or failure of the hardware. XMOS shall have no liability whatsoever in relation to any costs, damages or other losses Customer may incur as a result of any breaches of security in relation to your software or applications.
|
||||
|
||||
XMOS AND ITS LICENSORS DISCLAIM ALL OTHER WARRANTIES, EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY/ SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT EXCEPT TO THE EXTENT THAT THESE DISCLAIMERS ARE HELD TO BE LEGALLY INVALID UNDER APPLICABLE LAW.
|
||||
|
||||
9. High Risk Activities
|
||||
|
||||
The XMOS Software is not designed or intended for use in conjunction with on-line control equipment in hazardous environments requiring fail-safe performance, including without limitation the operation of nuclear facilities, aircraft navigation or communication systems, air traffic control, life support machines, or weapons systems (collectively "High Risk Activities") in which the failure of the XMOS Software could lead directly to death, personal injury, or severe physical or environmental damage. XMOS and its licensors specifically disclaim any express or implied warranties relating to use of the XMOS Software in connection with High Risk Activities.
|
||||
|
||||
10. Liability
|
||||
|
||||
TO THE EXTENT NOT PROHIBITED BY APPLICABLE LAW, NEITHER XMOS NOR ITS LICENSORS SHALL BE LIABLE FOR ANY LOST REVENUE, BUSINESS, PROFIT, CONTRACTS OR DATA, ADMINISTRATIVE OR OVERHEAD EXPENSES, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES HOWEVER CAUSED AND REGARDLESS OF THEORY OF LIABILITY ARISING OUT OF THIS LICENSE, EVEN IF XMOS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. In no event shall XMOS's liability to the Customer whether in contract, tort (including negligence), or otherwise exceed the License Fee.
|
||||
|
||||
Customer agrees to indemnify, hold harmless, and defend XMOS and its licensors from and against any claims or lawsuits, including attorneys' fees and any other liabilities, demands, proceedings, damages, losses, costs, expenses fines and charges which are made or brought against or incurred by XMOS as a result of your use or distribution of the Licensee Modifications or your use or distribution of XMOS Software, or any development of it, other than in accordance with the terms of this License.
|
||||
|
||||
11. Ownership
|
||||
|
||||
The copyrights and all other intellectual and industrial property rights for the protection of information with respect to the XMOS Software (including the methods and techniques on which they are based) are retained by XMOS and/or its licensors. Nothing in this Agreement serves to transfer such rights. Customer may not sell, mortgage, underlet, sublease, sublicense, lend or transfer possession of the XMOS Software in any way whatsoever to any third party who is not bound by this Agreement.
|
||||
|
||||
12. Termination
|
||||
|
||||
Either party may terminate this License at any time on written notice to the other if the other:
|
||||
|
||||
- is in material or persistent breach of any of the terms of this License and either that breach is incapable of remedy, or the other party fails to remedy that breach within 30 days after receiving written notice requiring it to remedy that breach; or
|
||||
|
||||
- is unable to pay its debts (within the meaning of section 123 of the Insolvency Act 1986), or becomes insolvent, or is subject to an order or a resolution for its liquidation, administration, winding-up or dissolution (otherwise than for the purposes of a solvent amalgamation or reconstruction), or has an administrative or other receiver, manager, trustee, liquidator, administrator or similar officer appointed over all or any substantial part of its assets, or enters into or proposes any composition or arrangement with its creditors generally, or is subject to any analogous event or proceeding in any applicable jurisdiction.
|
||||
|
||||
Termination by either party in accordance with the rights contained in clause 12 shall be without prejudice to any other rights or remedies of that party accrued prior to termination.
|
||||
|
||||
On termination for any reason:
|
||||
|
||||
- all rights granted to the Customer under this License shall cease;
|
||||
- the Customer shall cease all activities authorised by this License;
|
||||
- the Customer shall immediately pay any sums due to XMOS under this License; and
|
||||
- the Customer shall immediately destroy or return to the XMOS (at the XMOS's option) all copies of the XMOS Software then in its possession, custody or control and, in the case of destruction, certify to XMOS that it has done so.
|
||||
|
||||
Clauses 5, 8, 9, 10 and 11 shall survive any effective termination of this Agreement.
|
||||
|
||||
13. Third party rights
|
||||
|
||||
No term of this License is intended to confer a benefit on, or to be enforceable by, any person who is not a party to this license.
|
||||
|
||||
14. Confidentiality and publicity
|
||||
|
||||
Each party shall, during the term of this License and thereafter, keep confidential all, and shall not use for its own purposes nor without the prior written consent of the other disclose to any third party any, information of a confidential nature (including, without limitation, trade secrets and information of commercial value) which may become known to such party from the other party and which relates to the other party, unless such information is public knowledge or already known to such party at the time of disclosure, or subsequently becomes public knowledge other than by breach of this license, or subsequently comes lawfully into the possession of such party from a third party.
|
||||
|
||||
The terms of this license are confidential and may not be disclosed by the Customer without the prior written consent of XMOS.
|
||||
The provisions of clause 14 shall remain in full force and effect notwithstanding termination of this license for any reason.
|
||||
|
||||
15. Entire agreement
|
||||
|
||||
This License and the documents annexed as appendices to this License or otherwise referred to herein contain the whole agreement between the parties relating to the subject matter hereof and supersede all prior agreements, arrangements and understandings between the parties relating to that subject matter.
|
||||
|
||||
16. Assignment
|
||||
|
||||
The Customer shall not assign this License or any of the rights granted under it without XMOS's prior written consent.
|
||||
|
||||
17. Governing law and jurisdiction
|
||||
|
||||
This License shall be governed by and construed in accordance with English law and each party hereby submits to the non-exclusive jurisdiction of the English courts.
|
||||
|
||||
This License has been entered into on the date stated at the beginning of it.
|
||||
|
||||
Schedule
|
||||
XMOS UART library software
|
||||
31
lib_uart/examples/multi_uart_demo/Makefile
Normal file
31
lib_uart/examples/multi_uart_demo/Makefile
Normal file
@@ -0,0 +1,31 @@
|
||||
# The TARGET variable determines what target system the application is
|
||||
# compiled for. It either refers to an XN file in the source directories
|
||||
# or a valid argument for the --target option when compiling.
|
||||
|
||||
TARGET = SLICEKIT-L16
|
||||
|
||||
# The APP_NAME variable determines the name of the final .xe file. It should
|
||||
# not include the .xe postfix. If left blank the name will default to
|
||||
# the project name
|
||||
|
||||
APP_NAME =
|
||||
|
||||
# The flags passed to xcc when building the application
|
||||
# You can also set the following to override flags for a particular language:
|
||||
#
|
||||
# XCC_XC_FLAGS, XCC_C_FLAGS, XCC_ASM_FLAGS, XCC_CPP_FLAGS
|
||||
#
|
||||
# If the variable XCC_MAP_FLAGS is set it overrides the flags passed to
|
||||
# xcc for the final link (mapping) stage.
|
||||
|
||||
XCC_FLAGS = -g -O3 -save-temps -DMUART_RX_CHAN_COUNT=8 -DMUART_TX_CHAN_COUNT=8
|
||||
|
||||
# The USED_MODULES variable lists other module used by the application.
|
||||
USED_MODULES = lib_logging lib_uart
|
||||
|
||||
#=============================================================================
|
||||
# The following part of the Makefile includes the common build infrastructure
|
||||
# for compiling XMOS applications. You should not need to edit below here.
|
||||
|
||||
XMOS_MAKE_PATH ?= ../..
|
||||
include $(XMOS_MAKE_PATH)/xcommon/module_xcommon/build/Makefile.common
|
||||
65
lib_uart/examples/multi_uart_demo/src/main.xc
Normal file
65
lib_uart/examples/multi_uart_demo/src/main.xc
Normal file
@@ -0,0 +1,65 @@
|
||||
// Copyright (c) 2015-2016, XMOS Ltd, All rights reserved
|
||||
#include <xs1.h>
|
||||
#include <platform.h>
|
||||
#include <uart.h>
|
||||
#include <debug_print.h>
|
||||
|
||||
// These ports are configures assuming the multi-UART slice is
|
||||
// connected to the STAR slot. For other slots the ports will
|
||||
// need to be changed.
|
||||
in buffered port:32 p_uart_rx = XS1_PORT_8A;
|
||||
out buffered port:8 p_uart_tx = XS1_PORT_8B;
|
||||
in port p_uart_clk = XS1_PORT_1F;
|
||||
|
||||
clock clk_uart = XS1_CLKBLK_4;
|
||||
|
||||
void loopback(streaming chanend c_rx, client multi_uart_rx_if i_rx,
|
||||
chanend c_tx, client multi_uart_tx_if i_tx)
|
||||
{
|
||||
size_t slot;
|
||||
|
||||
// Configure each task with a chanend
|
||||
i_rx.init(c_rx);
|
||||
i_tx.init(c_tx);
|
||||
|
||||
while (1) {
|
||||
select {
|
||||
case multi_uart_data_ready(c_rx, slot):
|
||||
uint8_t data;
|
||||
if (i_rx.read(slot, data) == UART_RX_VALID_DATA) {
|
||||
if (i_tx.is_slot_free(slot)) {
|
||||
i_tx.write(slot, data);
|
||||
}
|
||||
else {
|
||||
debug_printf("Warning: TX buffer overflow on channel %d\n",
|
||||
slot);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
interface multi_uart_rx_if i_rx;
|
||||
streaming chan c_rx;
|
||||
chan c_tx;
|
||||
interface multi_uart_tx_if i_tx;
|
||||
|
||||
// Set the rx and tx lines to be clocked off the clk_uart clock block
|
||||
configure_in_port(p_uart_rx, clk_uart);
|
||||
configure_out_port(p_uart_tx, clk_uart, 0);
|
||||
|
||||
// Configure an external clock for the clk_uart clock block
|
||||
configure_clock_src(clk_uart, p_uart_clk);
|
||||
start_clock(clk_uart);
|
||||
|
||||
// Start the rx/tx tasks and the application task
|
||||
par {
|
||||
multi_uart_rx(c_rx, i_rx, p_uart_rx, 8, 1843200, 115200, UART_PARITY_NONE, 8, 1);
|
||||
multi_uart_tx(c_tx, i_tx, p_uart_tx, 8, 1843200, 115200, UART_PARITY_NONE, 8, 1);
|
||||
loopback(c_rx, i_rx, c_tx, i_tx);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
634
lib_uart/examples/uart_demo/.cproject
Normal file
634
lib_uart/examples/uart_demo/.cproject
Normal file
@@ -0,0 +1,634 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
<cconfiguration id="com.xmos.cdt.toolchain.82222979">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.xmos.cdt.toolchain.82222979" moduleId="org.eclipse.cdt.core.settings" name="Default">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="com.xmos.cdt.core.XEBinaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="com.xmos.cdt.core.XdeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
|
||||
<buildTargets>
|
||||
<target name="all" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>xmake</buildCommand>
|
||||
<buildArguments/>
|
||||
<buildTarget>all</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>true</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
<target name="clean" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>xmake</buildCommand>
|
||||
<buildArguments/>
|
||||
<buildTarget>clean</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>true</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
</buildTargets>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration buildProperties="" description="" id="com.xmos.cdt.toolchain.82222979" name="Default" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="com.xmos.cdt.toolchain.82222979.1127281840" name="/" resourcePath="">
|
||||
<toolChain id="com.xmos.cdt.toolchain.8084990" name="com.xmos.cdt.toolchain" superClass="com.xmos.cdt.toolchain">
|
||||
<targetPlatform archList="all" binaryParser="com.xmos.cdt.core.XEBinaryParser" id="com.xmos.cdt.core.platform.76799811" isAbstract="false" osList="linux,win32,macosx" superClass="com.xmos.cdt.core.platform"/>
|
||||
<builder arguments="" id="com.xmos.cdt.builder.base.75041109" keepEnvironmentInBuildfile="false" managedBuildOn="false" superClass="com.xmos.cdt.builder.base">
|
||||
<outputEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="outputPath" name="bin"/>
|
||||
</outputEntries>
|
||||
</builder>
|
||||
<tool id="com.xmos.cdt.xc.compiler.45598532" name="com.xmos.cdt.xc.compiler" superClass="com.xmos.cdt.xc.compiler">
|
||||
<option id="com.xmos.c.compiler.option.defined.symbols.38724832" name="com.xmos.c.compiler.option.defined.symbols" superClass="com.xmos.c.compiler.option.defined.symbols"/>
|
||||
<option id="com.xmos.xc.compiler.option.include.paths.94022327" name="com.xmos.xc.compiler.option.include.paths" superClass="com.xmos.xc.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/gcc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/app_uart_back2back/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/app_uart_back2back}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart_rx/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart_rx}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart_tx/.settings}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart_tx/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart_tx}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_xassert/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_xassert}""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/xc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart/api}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_xassert/doc}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/doc}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/doc/rst/images}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/api}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/doc/rst}""/>
|
||||
</option>
|
||||
<option id="com.xmos.xc.compiler.option.defined.symbols.1920309581" name="com.xmos.xc.compiler.option.defined.symbols" superClass="com.xmos.xc.compiler.option.defined.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="__SHRT_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__SCHAR_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_HOSTED__=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_YEAR=11"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MAJOR=1111"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MINOR=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MONTH=11"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__MCPP=2"/>
|
||||
<listOptionValue builtIn="false" value="__XC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XS1B__=1"/>
|
||||
<listOptionValue builtIn="false" value="__INT_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_MAX__=2147483647L"/>
|
||||
<listOptionValue builtIn="false" value="__STDC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_MINOR__=2"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_PATCHLEVEL__=1"/>
|
||||
<listOptionValue builtIn="false" value="__llvm__=1"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_ABI_VERSION=1002"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_LONG_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_MAX__=255U"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EVAL_METHOD__=0"/>
|
||||
<listOptionValue builtIn="false" value="__DEC_EVAL_METHOD__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_RADIX__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MANT_DIG__=24"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DIG__=6"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_EXP__=(-125)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_10_EXP__=(-37)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_EXP__=128"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_10_EXP__=38"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX__=3.40282347e+38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN__=1.17549435e-38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EPSILON__=1.19209290e-7F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DENORM_MIN__=1.40129846e-45F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX__=1.7976931348623157e+308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN__=2.2250738585072014e-308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_EPSILON__=2.2204460492503131e-16"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DENORM_MIN__=4.9406564584124654e-324"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DECIMAL_DIG__=17"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX__=1.7976931348623157e+308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN__=2.2250738585072014e-308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_EPSILON__=2.2204460492503131e-16L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DENORM_MIN__=4.9406564584124654e-324L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MANT_DIG__=7"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN_EXP__=(-95)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX_EXP__=96"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN__=1E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX__=9.999999E96DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_EPSILON__=1E-6DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_DEN__=0.000001E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MANT_DIG__=16"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN_EXP__=(-383)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX_EXP__=384"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN__=1E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX__=9.999999999999999E384DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_EPSILON__=1E-15DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_DEN__=0.000000000000001E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MANT_DIG__=34"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN_EXP__=(-6143)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX_EXP__=6144"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN__=1E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX__=9.999999999999999999999999999999999E6144DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_EPSILON__=1E-33DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_DEN__=0.000000000000000000000000000000001E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__REGISTER_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__USER_LABEL_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__VERSION__="4.2.1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_GNU_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__BLOCKS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__NO_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FINITE_MATH_ONLY__=0"/>
|
||||
<listOptionValue builtIn="false" value="__ELF__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XCC_HAVE_FLOAT__=1"/>
|
||||
<listOptionValue builtIn="false" value="__cplusplus=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUG__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_WEAK__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEPRECATED=1"/>
|
||||
<listOptionValue builtIn="false" value="__EXCEPTIONS=1"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="_XSCOPE_PROBES_INCLUDE_FILE="/tmp/cckqOKAY.h""/>
|
||||
</option>
|
||||
<inputType id="com.xmos.cdt.xc.compiler.input.26323007" name="XC" superClass="com.xmos.cdt.xc.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="com.xmos.cdt.c.compiler.49880209" name="com.xmos.cdt.c.compiler" superClass="com.xmos.cdt.c.compiler">
|
||||
<option id="com.xmos.c.compiler.option.defined.symbols.73490541" name="com.xmos.c.compiler.option.defined.symbols" superClass="com.xmos.c.compiler.option.defined.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="__STDC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_VERSION__=199901L"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_HOSTED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_MINOR__=2"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_PATCHLEVEL__=1"/>
|
||||
<listOptionValue builtIn="false" value="__llvm__=1"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_ABI_VERSION=1002"/>
|
||||
<listOptionValue builtIn="false" value="__SCHAR_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__SHRT_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__INT_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_MAX__=2147483647L"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_LONG_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_MAX__=255U"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EVAL_METHOD__=0"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_RADIX__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MANT_DIG__=24"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DIG__=6"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_EXP__=(-125)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_10_EXP__=(-37)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_EXP__=128"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_10_EXP__=38"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX__=3.40282347e+38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN__=1.17549435e-38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EPSILON__=1.19209290e-7F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DENORM_MIN__=1.40129846e-45F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX__=1.7976931348623157e+308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN__=2.2250738585072014e-308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_EPSILON__=2.2204460492503131e-16"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DENORM_MIN__=4.9406564584124654e-324"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DECIMAL_DIG__=17"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX__=1.7976931348623157e+308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN__=2.2250738585072014e-308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_EPSILON__=2.2204460492503131e-16L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DENORM_MIN__=4.9406564584124654e-324L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_DEN__=0.000001E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_DEN__=0.000000000000001E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_DEN__=0.000000000000000000000000000000001E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__USER_LABEL_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__VERSION__="4.2.1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_STDC_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__BLOCKS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__NO_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FINITE_MATH_ONLY__=0"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XS1B__=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_YEAR=12"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MONTH=2"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MAJOR=1202"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MINOR=0"/>
|
||||
<listOptionValue builtIn="false" value="__XCC_HAVE_FLOAT__=1"/>
|
||||
<listOptionValue builtIn="false" value="__clang__=1"/>
|
||||
<listOptionValue builtIn="false" value="__clang_major__=3"/>
|
||||
<listOptionValue builtIn="false" value="__clang_minor__=5"/>
|
||||
<listOptionValue builtIn="false" value="__clang_patchlevel__=0"/>
|
||||
<listOptionValue builtIn="false" value="__clang_version__="3.5"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_RELAXED=0"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_CONSUME=1"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_ACQUIRE=2"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_RELEASE=3"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_ACQ_REL=4"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_SEQ_CST=5"/>
|
||||
<listOptionValue builtIn="false" value="__PRAGMA_REDEFINE_EXTNAME=1"/>
|
||||
<listOptionValue builtIn="false" value="__CONSTANT_CFSTRINGS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_RTTI=1"/>
|
||||
<listOptionValue builtIn="false" value="__ORDER_LITTLE_ENDIAN__=1234"/>
|
||||
<listOptionValue builtIn="false" value="__ORDER_BIG_ENDIAN__=4321"/>
|
||||
<listOptionValue builtIn="false" value="__ORDER_PDP_ENDIAN__=3412"/>
|
||||
<listOptionValue builtIn="false" value="__BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__"/>
|
||||
<listOptionValue builtIn="false" value="__LITTLE_ENDIAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_MAX__=4294967295U"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_DOUBLE__=8"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_FLOAT__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_INT__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_LONG__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_LONG_DOUBLE__=8"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_LONG_LONG__=8"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_POINTER__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_SHORT__=2"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_PTRDIFF_T__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_SIZE_T__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_WCHAR_T__=1"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_WINT_T__=4"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_WIDTH__=64"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__INTPTR_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__INTPTR_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_WIDTH__=8"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__SIG_ATOMIC_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR16_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR32_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__ALIGNOF_MAX_ALIGN_T__=4"/>
|
||||
<listOptionValue builtIn="false" value="__POINTER_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__INT8_TYPE__=char"/>
|
||||
<listOptionValue builtIn="false" value="__INT16_TYPE__=short"/>
|
||||
<listOptionValue builtIn="false" value="__INT32_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__INT64_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__INT64_C_SUFFIX__=LL"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_BOOL_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_CHAR_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_CHAR16_T_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_CHAR32_T_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_WCHAR_T_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_SHORT_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_INT_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_LONG_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_LLONG_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_POINTER_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_UTF_16__=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_UTF_32__=1"/>
|
||||
<listOptionValue builtIn="false" value="_XSCOPE_PROBES_INCLUDE_FILE="/tmp/cc5tAFK2.h""/>
|
||||
</option>
|
||||
<option id="com.xmos.c.compiler.option.include.paths.26669186" name="com.xmos.c.compiler.option.include.paths" superClass="com.xmos.c.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/gcc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/app_uart_back2back/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/app_uart_back2back}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart_rx/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart_rx}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart_tx/.settings}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart_tx/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart_tx}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_xassert/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_xassert}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart/api}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_xassert/doc}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/doc}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/doc/rst/images}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/api}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/doc/rst}""/>
|
||||
</option>
|
||||
<inputType id="com.xmos.cdt.c.compiler.input.c.15219087" name="C" superClass="com.xmos.cdt.c.compiler.input.c"/>
|
||||
</tool>
|
||||
<tool id="com.xmos.cdt.cxx.compiler.31898234" name="com.xmos.cdt.cxx.compiler" superClass="com.xmos.cdt.cxx.compiler">
|
||||
<option id="com.xmos.cxx.compiler.option.defined.symbols.81198627" name="com.xmos.cxx.compiler.option.defined.symbols" superClass="com.xmos.cxx.compiler.option.defined.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="__STDC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__cplusplus=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_HOSTED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUG__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_MINOR__=2"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_PATCHLEVEL__=1"/>
|
||||
<listOptionValue builtIn="false" value="__llvm__=1"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_WEAK__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEPRECATED=1"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_ABI_VERSION=1002"/>
|
||||
<listOptionValue builtIn="false" value="__SCHAR_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__SHRT_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__INT_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_MAX__=2147483647L"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_LONG_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_MAX__=255U"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EVAL_METHOD__=0"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_RADIX__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MANT_DIG__=24"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DIG__=6"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_EXP__=(-125)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_10_EXP__=(-37)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_EXP__=128"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_10_EXP__=38"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX__=3.40282347e+38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN__=1.17549435e-38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EPSILON__=1.19209290e-7F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DENORM_MIN__=1.40129846e-45F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX__=1.7976931348623157e+308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN__=2.2250738585072014e-308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_EPSILON__=2.2204460492503131e-16"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DENORM_MIN__=4.9406564584124654e-324"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DECIMAL_DIG__=17"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX__=1.7976931348623157e+308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN__=2.2250738585072014e-308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_EPSILON__=2.2204460492503131e-16L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DENORM_MIN__=4.9406564584124654e-324L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_DEN__=0.000001E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_DEN__=0.000000000000001E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_DEN__=0.000000000000000000000000000000001E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__USER_LABEL_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__VERSION__="4.2.1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_GNU_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__BLOCKS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__NO_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FINITE_MATH_ONLY__=0"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XS1B__=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_YEAR=12"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MONTH=2"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MAJOR=1202"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MINOR=0"/>
|
||||
<listOptionValue builtIn="false" value="__XCC_HAVE_FLOAT__=1"/>
|
||||
<listOptionValue builtIn="false" value="__clang__=1"/>
|
||||
<listOptionValue builtIn="false" value="__clang_major__=3"/>
|
||||
<listOptionValue builtIn="false" value="__clang_minor__=5"/>
|
||||
<listOptionValue builtIn="false" value="__clang_patchlevel__=0"/>
|
||||
<listOptionValue builtIn="false" value="__clang_version__="3.5"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_RELAXED=0"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_CONSUME=1"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_ACQUIRE=2"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_RELEASE=3"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_ACQ_REL=4"/>
|
||||
<listOptionValue builtIn="false" value="__ATOMIC_SEQ_CST=5"/>
|
||||
<listOptionValue builtIn="false" value="__PRAGMA_REDEFINE_EXTNAME=1"/>
|
||||
<listOptionValue builtIn="false" value="__CONSTANT_CFSTRINGS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_RTTI=1"/>
|
||||
<listOptionValue builtIn="false" value="__private_extern__=extern"/>
|
||||
<listOptionValue builtIn="false" value="__ORDER_LITTLE_ENDIAN__=1234"/>
|
||||
<listOptionValue builtIn="false" value="__ORDER_BIG_ENDIAN__=4321"/>
|
||||
<listOptionValue builtIn="false" value="__ORDER_PDP_ENDIAN__=3412"/>
|
||||
<listOptionValue builtIn="false" value="__BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__"/>
|
||||
<listOptionValue builtIn="false" value="__LITTLE_ENDIAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_MAX__=4294967295U"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_DOUBLE__=8"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_FLOAT__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_INT__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_LONG__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_LONG_DOUBLE__=8"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_LONG_LONG__=8"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_POINTER__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_SHORT__=2"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_PTRDIFF_T__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_SIZE_T__=4"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_WCHAR_T__=1"/>
|
||||
<listOptionValue builtIn="false" value="__SIZEOF_WINT_T__=4"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_WIDTH__=64"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__INTPTR_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__INTPTR_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_WIDTH__=8"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__SIG_ATOMIC_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR16_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR32_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__ALIGNOF_MAX_ALIGN_T__=4"/>
|
||||
<listOptionValue builtIn="false" value="__POINTER_WIDTH__=32"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__INT8_TYPE__=char"/>
|
||||
<listOptionValue builtIn="false" value="__INT16_TYPE__=short"/>
|
||||
<listOptionValue builtIn="false" value="__INT32_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__INT64_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__INT64_C_SUFFIX__=LL"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_BOOL_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_CHAR_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_CHAR16_T_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_CHAR32_T_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_WCHAR_T_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_SHORT_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_INT_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_LONG_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_LLONG_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__GCC_ATOMIC_POINTER_LOCK_FREE=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_UTF_16__=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_UTF_32__=1"/>
|
||||
<listOptionValue builtIn="false" value="_XSCOPE_PROBES_INCLUDE_FILE="/tmp/ccATEKMa.h""/>
|
||||
</option>
|
||||
<option id="com.xmos.cxx.compiler.option.include.paths.72701426" name="com.xmos.cxx.compiler.option.include.paths" superClass="com.xmos.cxx.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/gcc""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/c++/4.2.1""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/c++/4.2.1/xcore-xmos-elf""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/app_uart_back2back/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/app_uart_back2back}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart_rx/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart_rx}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart_tx/.settings}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart_tx/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart_tx}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_xassert/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_xassert}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart/api}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_xassert/doc}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/module_uart/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/doc}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/doc/rst/images}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/api}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/lib_uart/doc/rst}""/>
|
||||
</option>
|
||||
<inputType id="com.xmos.cdt.cxx.compiler.input.cpp.99384333" name="C++" superClass="com.xmos.cdt.cxx.compiler.input.cpp"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry excluding=".build_*" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
|
||||
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id="app_uart_back2back.null.85128285" name="app_uart_back2back"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="makefileGenerator">
|
||||
<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||
<storageModule moduleId="refreshScope"/>
|
||||
</cproject>
|
||||
95
lib_uart/examples/uart_demo/.project
Normal file
95
lib_uart/examples/uart_demo/.project
Normal file
@@ -0,0 +1,95 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>uart_demo</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>com.xmos.cdt.core.ModulePathBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>com.xmos.cdt.core.BuildMarkersBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>com.xmos.cdt.core.ProjectCheckerBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>com.xmos.cdt.core.ProjectInfoSyncBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
<dictionary>
|
||||
<key>?children?</key>
|
||||
<value>?name?=outputEntries\|?children?=?name?=entry\\\\|\\|\||</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>?name?</key>
|
||||
<value></value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.append_environment</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.buildArguments</key>
|
||||
<value>CONFIG=Debug</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.buildCommand</key>
|
||||
<value>xmake</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
|
||||
<value>clean</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.contents</key>
|
||||
<value>org.eclipse.cdt.make.core.activeConfigSettings</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
|
||||
<value>false</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableFullBuild</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.stopOnError</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
|
||||
<value>false</value>
|
||||
</dictionary>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
<nature>com.xmos.cdt.core.XdeProjectNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
1
lib_uart/examples/uart_demo/.xproject
Normal file
1
lib_uart/examples/uart_demo/.xproject
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><xproject><repository>sc_uart</repository><partnum>XM-001906-SM</partnum></xproject>
|
||||
135
lib_uart/examples/uart_demo/LICENSE.txt
Normal file
135
lib_uart/examples/uart_demo/LICENSE.txt
Normal file
@@ -0,0 +1,135 @@
|
||||
Software Release License Agreement
|
||||
|
||||
Copyright (c) 2014-2017, XMOS, All rights reserved.
|
||||
|
||||
BY ACCESSING, USING, INSTALLING OR DOWNLOADING THE XMOS SOFTWARE, YOU AGREE TO BE BOUND BY THE FOLLOWING TERMS. IF YOU DO NOT AGREE TO THESE, DO NOT ATTEMPT TO DOWNLOAD, ACCESS OR USE THE XMOS Software.
|
||||
|
||||
Parties:
|
||||
|
||||
(1) XMOS Limited, incorporated and registered in England and Wales with company number 5494985 whose registered office is 107 Cheapside, London, EC2V 6DN (XMOS).
|
||||
|
||||
(2) An individual or legal entity exercising permissions granted by this License (Customer).
|
||||
|
||||
If you are entering into this Agreement on behalf of another legal entity such as a company, partnership, university, college etc. (for example, as an employee, student or consultant), you warrant that you have authority to bind that entity.
|
||||
|
||||
1. Definitions
|
||||
|
||||
"License" means this Software License and any schedules or annexes to it.
|
||||
|
||||
"License Fee" means the fee for the XMOS Software as detailed in any schedules or annexes to this Software License
|
||||
|
||||
"Licensee Modifications" means all developments and modifications of the XMOS Software developed independently by the Customer.
|
||||
|
||||
"XMOS Modifications" means all developments and modifications of the XMOS Software developed or co-developed by XMOS.
|
||||
|
||||
"XMOS Hardware" means any XMOS hardware devices supplied by XMOS from time to time and/or the particular XMOS devices detailed in any schedules or annexes to this Software License.
|
||||
|
||||
"XMOS Software" comprises the XMOS owned circuit designs, schematics, source code, object code, reference designs, (including related programmer comments and documentation, if any), error corrections, improvements, modifications (including XMOS Modifications) and updates.
|
||||
|
||||
The headings in this License do not affect its interpretation. Save where the context otherwise requires, references to clauses and schedules are to clauses and schedules of this License.
|
||||
|
||||
Unless the context otherwise requires:
|
||||
|
||||
- references to XMOS and the Customer include their permitted successors and assigns;
|
||||
- references to statutory provisions include those statutory provisions as amended or re-enacted; and
|
||||
- references to any gender include all genders.
|
||||
|
||||
Words in the singular include the plural and in the plural include the singular.
|
||||
|
||||
2. License
|
||||
|
||||
XMOS grants the Customer a non-exclusive license to use, develop, modify and distribute the XMOS Software with, or for the purpose of being used with, XMOS Hardware.
|
||||
|
||||
Open Source Software (OSS) must be used and dealt with in accordance with any license terms under which OSS is distributed.
|
||||
|
||||
3. Consideration
|
||||
|
||||
In consideration of the mutual obligations contained in this License, the parties agree to its terms.
|
||||
|
||||
4. Term
|
||||
|
||||
Subject to clause 12 below, this License shall be perpetual.
|
||||
|
||||
5. Restrictions on Use
|
||||
|
||||
The Customer will adhere to all applicable import and export laws and regulations of the country in which it resides and of the United States and United Kingdom, without limitation. The Customer agrees that it is its responsibility to obtain copies of and to familiarise itself fully with these laws and regulations to avoid violation.
|
||||
|
||||
6. Modifications
|
||||
|
||||
The Customer will own all intellectual property rights in the Licensee Modifications but will undertake to provide XMOS with any fixes made to correct any bugs found in the XMOS Software on a non-exclusive, perpetual and royalty free license basis.
|
||||
|
||||
XMOS will own all intellectual property rights in the XMOS Modifications.
|
||||
The Customer may only use the Licensee Modifications and XMOS Modifications on, or in relation to, XMOS Hardware.
|
||||
|
||||
7. Support
|
||||
|
||||
Support of the XMOS Software may be provided by XMOS pursuant to a separate support agreement.
|
||||
|
||||
8. Warranty and Disclaimer
|
||||
|
||||
The XMOS Software is provided "AS IS" without a warranty of any kind. XMOS and its licensors' entire liability and Customer's exclusive remedy under this warranty to be determined in XMOS's sole and absolute discretion, will be either (a) the corrections of defects in media or replacement of the media, or (b) the refund of the license fee paid (if any).
|
||||
|
||||
Whilst XMOS gives the Customer the ability to load their own software and applications onto XMOS devices, the security of such software and applications when on the XMOS devices is the Customer's own responsibility and any breach of security shall not be deemed a defect or failure of the hardware. XMOS shall have no liability whatsoever in relation to any costs, damages or other losses Customer may incur as a result of any breaches of security in relation to your software or applications.
|
||||
|
||||
XMOS AND ITS LICENSORS DISCLAIM ALL OTHER WARRANTIES, EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY/ SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT EXCEPT TO THE EXTENT THAT THESE DISCLAIMERS ARE HELD TO BE LEGALLY INVALID UNDER APPLICABLE LAW.
|
||||
|
||||
9. High Risk Activities
|
||||
|
||||
The XMOS Software is not designed or intended for use in conjunction with on-line control equipment in hazardous environments requiring fail-safe performance, including without limitation the operation of nuclear facilities, aircraft navigation or communication systems, air traffic control, life support machines, or weapons systems (collectively "High Risk Activities") in which the failure of the XMOS Software could lead directly to death, personal injury, or severe physical or environmental damage. XMOS and its licensors specifically disclaim any express or implied warranties relating to use of the XMOS Software in connection with High Risk Activities.
|
||||
|
||||
10. Liability
|
||||
|
||||
TO THE EXTENT NOT PROHIBITED BY APPLICABLE LAW, NEITHER XMOS NOR ITS LICENSORS SHALL BE LIABLE FOR ANY LOST REVENUE, BUSINESS, PROFIT, CONTRACTS OR DATA, ADMINISTRATIVE OR OVERHEAD EXPENSES, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES HOWEVER CAUSED AND REGARDLESS OF THEORY OF LIABILITY ARISING OUT OF THIS LICENSE, EVEN IF XMOS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. In no event shall XMOS's liability to the Customer whether in contract, tort (including negligence), or otherwise exceed the License Fee.
|
||||
|
||||
Customer agrees to indemnify, hold harmless, and defend XMOS and its licensors from and against any claims or lawsuits, including attorneys' fees and any other liabilities, demands, proceedings, damages, losses, costs, expenses fines and charges which are made or brought against or incurred by XMOS as a result of your use or distribution of the Licensee Modifications or your use or distribution of XMOS Software, or any development of it, other than in accordance with the terms of this License.
|
||||
|
||||
11. Ownership
|
||||
|
||||
The copyrights and all other intellectual and industrial property rights for the protection of information with respect to the XMOS Software (including the methods and techniques on which they are based) are retained by XMOS and/or its licensors. Nothing in this Agreement serves to transfer such rights. Customer may not sell, mortgage, underlet, sublease, sublicense, lend or transfer possession of the XMOS Software in any way whatsoever to any third party who is not bound by this Agreement.
|
||||
|
||||
12. Termination
|
||||
|
||||
Either party may terminate this License at any time on written notice to the other if the other:
|
||||
|
||||
- is in material or persistent breach of any of the terms of this License and either that breach is incapable of remedy, or the other party fails to remedy that breach within 30 days after receiving written notice requiring it to remedy that breach; or
|
||||
|
||||
- is unable to pay its debts (within the meaning of section 123 of the Insolvency Act 1986), or becomes insolvent, or is subject to an order or a resolution for its liquidation, administration, winding-up or dissolution (otherwise than for the purposes of a solvent amalgamation or reconstruction), or has an administrative or other receiver, manager, trustee, liquidator, administrator or similar officer appointed over all or any substantial part of its assets, or enters into or proposes any composition or arrangement with its creditors generally, or is subject to any analogous event or proceeding in any applicable jurisdiction.
|
||||
|
||||
Termination by either party in accordance with the rights contained in clause 12 shall be without prejudice to any other rights or remedies of that party accrued prior to termination.
|
||||
|
||||
On termination for any reason:
|
||||
|
||||
- all rights granted to the Customer under this License shall cease;
|
||||
- the Customer shall cease all activities authorised by this License;
|
||||
- the Customer shall immediately pay any sums due to XMOS under this License; and
|
||||
- the Customer shall immediately destroy or return to the XMOS (at the XMOS's option) all copies of the XMOS Software then in its possession, custody or control and, in the case of destruction, certify to XMOS that it has done so.
|
||||
|
||||
Clauses 5, 8, 9, 10 and 11 shall survive any effective termination of this Agreement.
|
||||
|
||||
13. Third party rights
|
||||
|
||||
No term of this License is intended to confer a benefit on, or to be enforceable by, any person who is not a party to this license.
|
||||
|
||||
14. Confidentiality and publicity
|
||||
|
||||
Each party shall, during the term of this License and thereafter, keep confidential all, and shall not use for its own purposes nor without the prior written consent of the other disclose to any third party any, information of a confidential nature (including, without limitation, trade secrets and information of commercial value) which may become known to such party from the other party and which relates to the other party, unless such information is public knowledge or already known to such party at the time of disclosure, or subsequently becomes public knowledge other than by breach of this license, or subsequently comes lawfully into the possession of such party from a third party.
|
||||
|
||||
The terms of this license are confidential and may not be disclosed by the Customer without the prior written consent of XMOS.
|
||||
The provisions of clause 14 shall remain in full force and effect notwithstanding termination of this license for any reason.
|
||||
|
||||
15. Entire agreement
|
||||
|
||||
This License and the documents annexed as appendices to this License or otherwise referred to herein contain the whole agreement between the parties relating to the subject matter hereof and supersede all prior agreements, arrangements and understandings between the parties relating to that subject matter.
|
||||
|
||||
16. Assignment
|
||||
|
||||
The Customer shall not assign this License or any of the rights granted under it without XMOS's prior written consent.
|
||||
|
||||
17. Governing law and jurisdiction
|
||||
|
||||
This License shall be governed by and construed in accordance with English law and each party hereby submits to the non-exclusive jurisdiction of the English courts.
|
||||
|
||||
This License has been entered into on the date stated at the beginning of it.
|
||||
|
||||
Schedule
|
||||
XMOS UART library software
|
||||
32
lib_uart/examples/uart_demo/Makefile
Normal file
32
lib_uart/examples/uart_demo/Makefile
Normal file
@@ -0,0 +1,32 @@
|
||||
# The TARGET variable determines what target system the application is
|
||||
# compiled for. It either refers to an XN file in the source directories
|
||||
# or a valid argument for the --target option when compiling.
|
||||
|
||||
TARGET = SLICEKIT-L16
|
||||
|
||||
# The APP_NAME variable determines the name of the final .xe file. It should
|
||||
# not include the .xe postfix. If left blank the name will default to
|
||||
# the project name
|
||||
|
||||
APP_NAME =
|
||||
|
||||
# The flags passed to xcc when building the application
|
||||
# You can also set the following to override flags for a particular language:
|
||||
#
|
||||
# XCC_XC_FLAGS, XCC_C_FLAGS, XCC_ASM_FLAGS, XCC_CPP_FLAGS
|
||||
#
|
||||
# If the variable XCC_MAP_FLAGS is set it overrides the flags passed to
|
||||
# xcc for the final link (mapping) stage.
|
||||
|
||||
XCC_FLAGS = -O2 -g -save-temps
|
||||
|
||||
# The USED_MODULES variable lists other module used by the application.
|
||||
|
||||
USED_MODULES = lib_uart
|
||||
|
||||
#=============================================================================
|
||||
# The following part of the Makefile includes the common build infrastructure
|
||||
# for compiling XMOS applications. You should not need to edit below here.
|
||||
|
||||
XMOS_MAKE_PATH ?= ../..
|
||||
include $(XMOS_MAKE_PATH)/xcommon/module_xcommon/build/Makefile.common
|
||||
11
lib_uart/examples/uart_demo/README.rst
Normal file
11
lib_uart/examples/uart_demo/README.rst
Normal file
@@ -0,0 +1,11 @@
|
||||
Generic Uart Loopback Example
|
||||
=============================
|
||||
|
||||
:scope: Example
|
||||
:description: Application to demonstrate module_uart_rx and module_uart_tx running looped back on a single Slicekti core board.
|
||||
:keywords: UART, demo
|
||||
:boards: XA-SKC-L2
|
||||
|
||||
This application instantiates both the module_uart_rx and module_uart_tx components looped back to one another to demonstrate basic usage. It will be necessary to setup two connections on the 0.1" testpoints on the Slicekti core board prior to running the demo.
|
||||
|
||||
|
||||
56
lib_uart/examples/uart_demo/src/main.xc
Normal file
56
lib_uart/examples/uart_demo/src/main.xc
Normal file
@@ -0,0 +1,56 @@
|
||||
// Copyright (c) 2014-2016, XMOS Ltd, All rights reserved
|
||||
#include <xs1.h>
|
||||
#include <platform.h>
|
||||
#include <print.h>
|
||||
#include <uart.h>
|
||||
#include <stddef.h>
|
||||
|
||||
// Port declarations
|
||||
port p_uart_rx = on tile[0] : XS1_PORT_1A;
|
||||
port p_uart_tx = on tile[0] : XS1_PORT_1B;
|
||||
|
||||
#define BAUD_RATE 115200
|
||||
#define RX_BUFFER_SIZE 64
|
||||
|
||||
/* This function performs the main "application" that outputs and reads
|
||||
some bytes over UART */
|
||||
void app(client uart_tx_if uart_tx, client uart_rx_if uart_rx)
|
||||
{
|
||||
uint8_t byte;
|
||||
printstrln("Test started");
|
||||
byte = 0;
|
||||
for (size_t i = 0; i < 20; i++) {
|
||||
printstr("Echo 10 bytes... ");
|
||||
for(size_t j = 0; j < 10; j++) {
|
||||
uart_tx.write(byte);
|
||||
byte = byte + 1;
|
||||
}
|
||||
for(size_t j = 0; j < 10; j++) {
|
||||
printhex(uart_rx.wait_for_data_and_read());
|
||||
}
|
||||
}
|
||||
printstrln(". Done.");
|
||||
}
|
||||
|
||||
void test() { while (1);}
|
||||
|
||||
/* "main" function that sets up two uarts and the application */
|
||||
int main() {
|
||||
interface uart_rx_if i_rx;
|
||||
interface uart_tx_if i_tx;
|
||||
input_gpio_if i_gpio_rx;
|
||||
output_gpio_if i_gpio_tx[1];
|
||||
par {
|
||||
on tile[0]: test();
|
||||
on tile[0]: output_gpio(i_gpio_tx, 1, p_uart_tx, null);
|
||||
on tile[0]: uart_tx(i_tx, null,
|
||||
BAUD_RATE, UART_PARITY_NONE, 8, 1,
|
||||
i_gpio_tx[0]);
|
||||
on tile[0].core[0] : input_gpio_1bit_with_events(i_gpio_rx, p_uart_rx);
|
||||
on tile[0].core[0] : uart_rx(i_rx, null, RX_BUFFER_SIZE,
|
||||
BAUD_RATE, UART_PARITY_NONE, 8, 1,
|
||||
i_gpio_rx);
|
||||
on tile[0]: app(i_tx, i_rx);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
135
lib_uart/examples/uart_streaming_demo/LICENSE.txt
Normal file
135
lib_uart/examples/uart_streaming_demo/LICENSE.txt
Normal file
@@ -0,0 +1,135 @@
|
||||
Software Release License Agreement
|
||||
|
||||
Copyright (c) 2015-2017, XMOS, All rights reserved.
|
||||
|
||||
BY ACCESSING, USING, INSTALLING OR DOWNLOADING THE XMOS SOFTWARE, YOU AGREE TO BE BOUND BY THE FOLLOWING TERMS. IF YOU DO NOT AGREE TO THESE, DO NOT ATTEMPT TO DOWNLOAD, ACCESS OR USE THE XMOS Software.
|
||||
|
||||
Parties:
|
||||
|
||||
(1) XMOS Limited, incorporated and registered in England and Wales with company number 5494985 whose registered office is 107 Cheapside, London, EC2V 6DN (XMOS).
|
||||
|
||||
(2) An individual or legal entity exercising permissions granted by this License (Customer).
|
||||
|
||||
If you are entering into this Agreement on behalf of another legal entity such as a company, partnership, university, college etc. (for example, as an employee, student or consultant), you warrant that you have authority to bind that entity.
|
||||
|
||||
1. Definitions
|
||||
|
||||
"License" means this Software License and any schedules or annexes to it.
|
||||
|
||||
"License Fee" means the fee for the XMOS Software as detailed in any schedules or annexes to this Software License
|
||||
|
||||
"Licensee Modifications" means all developments and modifications of the XMOS Software developed independently by the Customer.
|
||||
|
||||
"XMOS Modifications" means all developments and modifications of the XMOS Software developed or co-developed by XMOS.
|
||||
|
||||
"XMOS Hardware" means any XMOS hardware devices supplied by XMOS from time to time and/or the particular XMOS devices detailed in any schedules or annexes to this Software License.
|
||||
|
||||
"XMOS Software" comprises the XMOS owned circuit designs, schematics, source code, object code, reference designs, (including related programmer comments and documentation, if any), error corrections, improvements, modifications (including XMOS Modifications) and updates.
|
||||
|
||||
The headings in this License do not affect its interpretation. Save where the context otherwise requires, references to clauses and schedules are to clauses and schedules of this License.
|
||||
|
||||
Unless the context otherwise requires:
|
||||
|
||||
- references to XMOS and the Customer include their permitted successors and assigns;
|
||||
- references to statutory provisions include those statutory provisions as amended or re-enacted; and
|
||||
- references to any gender include all genders.
|
||||
|
||||
Words in the singular include the plural and in the plural include the singular.
|
||||
|
||||
2. License
|
||||
|
||||
XMOS grants the Customer a non-exclusive license to use, develop, modify and distribute the XMOS Software with, or for the purpose of being used with, XMOS Hardware.
|
||||
|
||||
Open Source Software (OSS) must be used and dealt with in accordance with any license terms under which OSS is distributed.
|
||||
|
||||
3. Consideration
|
||||
|
||||
In consideration of the mutual obligations contained in this License, the parties agree to its terms.
|
||||
|
||||
4. Term
|
||||
|
||||
Subject to clause 12 below, this License shall be perpetual.
|
||||
|
||||
5. Restrictions on Use
|
||||
|
||||
The Customer will adhere to all applicable import and export laws and regulations of the country in which it resides and of the United States and United Kingdom, without limitation. The Customer agrees that it is its responsibility to obtain copies of and to familiarise itself fully with these laws and regulations to avoid violation.
|
||||
|
||||
6. Modifications
|
||||
|
||||
The Customer will own all intellectual property rights in the Licensee Modifications but will undertake to provide XMOS with any fixes made to correct any bugs found in the XMOS Software on a non-exclusive, perpetual and royalty free license basis.
|
||||
|
||||
XMOS will own all intellectual property rights in the XMOS Modifications.
|
||||
The Customer may only use the Licensee Modifications and XMOS Modifications on, or in relation to, XMOS Hardware.
|
||||
|
||||
7. Support
|
||||
|
||||
Support of the XMOS Software may be provided by XMOS pursuant to a separate support agreement.
|
||||
|
||||
8. Warranty and Disclaimer
|
||||
|
||||
The XMOS Software is provided "AS IS" without a warranty of any kind. XMOS and its licensors' entire liability and Customer's exclusive remedy under this warranty to be determined in XMOS's sole and absolute discretion, will be either (a) the corrections of defects in media or replacement of the media, or (b) the refund of the license fee paid (if any).
|
||||
|
||||
Whilst XMOS gives the Customer the ability to load their own software and applications onto XMOS devices, the security of such software and applications when on the XMOS devices is the Customer's own responsibility and any breach of security shall not be deemed a defect or failure of the hardware. XMOS shall have no liability whatsoever in relation to any costs, damages or other losses Customer may incur as a result of any breaches of security in relation to your software or applications.
|
||||
|
||||
XMOS AND ITS LICENSORS DISCLAIM ALL OTHER WARRANTIES, EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY/ SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT EXCEPT TO THE EXTENT THAT THESE DISCLAIMERS ARE HELD TO BE LEGALLY INVALID UNDER APPLICABLE LAW.
|
||||
|
||||
9. High Risk Activities
|
||||
|
||||
The XMOS Software is not designed or intended for use in conjunction with on-line control equipment in hazardous environments requiring fail-safe performance, including without limitation the operation of nuclear facilities, aircraft navigation or communication systems, air traffic control, life support machines, or weapons systems (collectively "High Risk Activities") in which the failure of the XMOS Software could lead directly to death, personal injury, or severe physical or environmental damage. XMOS and its licensors specifically disclaim any express or implied warranties relating to use of the XMOS Software in connection with High Risk Activities.
|
||||
|
||||
10. Liability
|
||||
|
||||
TO THE EXTENT NOT PROHIBITED BY APPLICABLE LAW, NEITHER XMOS NOR ITS LICENSORS SHALL BE LIABLE FOR ANY LOST REVENUE, BUSINESS, PROFIT, CONTRACTS OR DATA, ADMINISTRATIVE OR OVERHEAD EXPENSES, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES HOWEVER CAUSED AND REGARDLESS OF THEORY OF LIABILITY ARISING OUT OF THIS LICENSE, EVEN IF XMOS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. In no event shall XMOS's liability to the Customer whether in contract, tort (including negligence), or otherwise exceed the License Fee.
|
||||
|
||||
Customer agrees to indemnify, hold harmless, and defend XMOS and its licensors from and against any claims or lawsuits, including attorneys' fees and any other liabilities, demands, proceedings, damages, losses, costs, expenses fines and charges which are made or brought against or incurred by XMOS as a result of your use or distribution of the Licensee Modifications or your use or distribution of XMOS Software, or any development of it, other than in accordance with the terms of this License.
|
||||
|
||||
11. Ownership
|
||||
|
||||
The copyrights and all other intellectual and industrial property rights for the protection of information with respect to the XMOS Software (including the methods and techniques on which they are based) are retained by XMOS and/or its licensors. Nothing in this Agreement serves to transfer such rights. Customer may not sell, mortgage, underlet, sublease, sublicense, lend or transfer possession of the XMOS Software in any way whatsoever to any third party who is not bound by this Agreement.
|
||||
|
||||
12. Termination
|
||||
|
||||
Either party may terminate this License at any time on written notice to the other if the other:
|
||||
|
||||
- is in material or persistent breach of any of the terms of this License and either that breach is incapable of remedy, or the other party fails to remedy that breach within 30 days after receiving written notice requiring it to remedy that breach; or
|
||||
|
||||
- is unable to pay its debts (within the meaning of section 123 of the Insolvency Act 1986), or becomes insolvent, or is subject to an order or a resolution for its liquidation, administration, winding-up or dissolution (otherwise than for the purposes of a solvent amalgamation or reconstruction), or has an administrative or other receiver, manager, trustee, liquidator, administrator or similar officer appointed over all or any substantial part of its assets, or enters into or proposes any composition or arrangement with its creditors generally, or is subject to any analogous event or proceeding in any applicable jurisdiction.
|
||||
|
||||
Termination by either party in accordance with the rights contained in clause 12 shall be without prejudice to any other rights or remedies of that party accrued prior to termination.
|
||||
|
||||
On termination for any reason:
|
||||
|
||||
- all rights granted to the Customer under this License shall cease;
|
||||
- the Customer shall cease all activities authorised by this License;
|
||||
- the Customer shall immediately pay any sums due to XMOS under this License; and
|
||||
- the Customer shall immediately destroy or return to the XMOS (at the XMOS's option) all copies of the XMOS Software then in its possession, custody or control and, in the case of destruction, certify to XMOS that it has done so.
|
||||
|
||||
Clauses 5, 8, 9, 10 and 11 shall survive any effective termination of this Agreement.
|
||||
|
||||
13. Third party rights
|
||||
|
||||
No term of this License is intended to confer a benefit on, or to be enforceable by, any person who is not a party to this license.
|
||||
|
||||
14. Confidentiality and publicity
|
||||
|
||||
Each party shall, during the term of this License and thereafter, keep confidential all, and shall not use for its own purposes nor without the prior written consent of the other disclose to any third party any, information of a confidential nature (including, without limitation, trade secrets and information of commercial value) which may become known to such party from the other party and which relates to the other party, unless such information is public knowledge or already known to such party at the time of disclosure, or subsequently becomes public knowledge other than by breach of this license, or subsequently comes lawfully into the possession of such party from a third party.
|
||||
|
||||
The terms of this license are confidential and may not be disclosed by the Customer without the prior written consent of XMOS.
|
||||
The provisions of clause 14 shall remain in full force and effect notwithstanding termination of this license for any reason.
|
||||
|
||||
15. Entire agreement
|
||||
|
||||
This License and the documents annexed as appendices to this License or otherwise referred to herein contain the whole agreement between the parties relating to the subject matter hereof and supersede all prior agreements, arrangements and understandings between the parties relating to that subject matter.
|
||||
|
||||
16. Assignment
|
||||
|
||||
The Customer shall not assign this License or any of the rights granted under it without XMOS's prior written consent.
|
||||
|
||||
17. Governing law and jurisdiction
|
||||
|
||||
This License shall be governed by and construed in accordance with English law and each party hereby submits to the non-exclusive jurisdiction of the English courts.
|
||||
|
||||
This License has been entered into on the date stated at the beginning of it.
|
||||
|
||||
Schedule
|
||||
XMOS UART library software
|
||||
32
lib_uart/examples/uart_streaming_demo/Makefile
Normal file
32
lib_uart/examples/uart_streaming_demo/Makefile
Normal file
@@ -0,0 +1,32 @@
|
||||
# The TARGET variable determines what target system the application is
|
||||
# compiled for. It either refers to an XN file in the source directories
|
||||
# or a valid argument for the --target option when compiling.
|
||||
|
||||
TARGET = SLICEKIT-L16
|
||||
|
||||
# The APP_NAME variable determines the name of the final .xe file. It should
|
||||
# not include the .xe postfix. If left blank the name will default to
|
||||
# the project name
|
||||
|
||||
APP_NAME =
|
||||
|
||||
# The flags passed to xcc when building the application
|
||||
# You can also set the following to override flags for a particular language:
|
||||
#
|
||||
# XCC_XC_FLAGS, XCC_C_FLAGS, XCC_ASM_FLAGS, XCC_CPP_FLAGS
|
||||
#
|
||||
# If the variable XCC_MAP_FLAGS is set it overrides the flags passed to
|
||||
# xcc for the final link (mapping) stage.
|
||||
|
||||
XCC_FLAGS = -O2 -g -save-temps
|
||||
|
||||
# The USED_MODULES variable lists other module used by the application.
|
||||
|
||||
USED_MODULES = lib_uart
|
||||
|
||||
#=============================================================================
|
||||
# The following part of the Makefile includes the common build infrastructure
|
||||
# for compiling XMOS applications. You should not need to edit below here.
|
||||
|
||||
XMOS_MAKE_PATH ?= ../..
|
||||
include $(XMOS_MAKE_PATH)/xcommon/module_xcommon/build/Makefile.common
|
||||
46
lib_uart/examples/uart_streaming_demo/src/main.xc
Normal file
46
lib_uart/examples/uart_streaming_demo/src/main.xc
Normal file
@@ -0,0 +1,46 @@
|
||||
// Copyright (c) 2015-2016, XMOS Ltd, All rights reserved
|
||||
#include <xs1.h>
|
||||
#include <platform.h>
|
||||
#include <print.h>
|
||||
#include <uart.h>
|
||||
#include <stddef.h>
|
||||
|
||||
// Port declarations
|
||||
in port p_uart_rx = on tile[0] : XS1_PORT_1A;
|
||||
out port p_uart_tx = on tile[0] : XS1_PORT_1B;
|
||||
|
||||
/* This function performs the main "application" that outputs and reads
|
||||
some bytes over UART */
|
||||
void app(streaming chanend c_tx, streaming chanend c_rx)
|
||||
{
|
||||
uint8_t byte;
|
||||
printstrln("Test started");
|
||||
byte = 0;
|
||||
for (size_t i = 0; i < 20; i++) {
|
||||
printstr("Echo 10 bytes... ");
|
||||
for(size_t j = 0; j < 10; j++) {
|
||||
uart_tx_streaming_write_byte(c_tx, byte);
|
||||
byte = byte + 1;
|
||||
}
|
||||
for(size_t j = 0; j < 10; j++) {
|
||||
uart_rx_streaming_read_byte(c_rx, byte);
|
||||
printhex(byte);
|
||||
}
|
||||
}
|
||||
printstrln(". Done.");
|
||||
}
|
||||
|
||||
|
||||
#define TICKS_PER_BIT 20
|
||||
|
||||
/* "main" function that sets up two uarts and the application */
|
||||
int main() {
|
||||
streaming chan c_rx;
|
||||
streaming chan c_tx;
|
||||
par {
|
||||
on tile[0]: uart_tx_streaming(p_uart_tx, c_tx, TICKS_PER_BIT);
|
||||
on tile[0]: uart_rx_streaming(p_uart_rx, c_rx, TICKS_PER_BIT);
|
||||
on tile[0]: app(c_tx, c_rx);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
1040
lib_uart/lib_uart/.cproject
Normal file
1040
lib_uart/lib_uart/.cproject
Normal file
File diff suppressed because it is too large
Load Diff
8
lib_uart/lib_uart/.makefile
Normal file
8
lib_uart/lib_uart/.makefile
Normal file
@@ -0,0 +1,8 @@
|
||||
all:
|
||||
@echo "** Module only - only builds as part of application **"
|
||||
|
||||
|
||||
clean:
|
||||
@echo "** Module only - only builds as part of application **"
|
||||
|
||||
|
||||
100
lib_uart/lib_uart/.project
Normal file
100
lib_uart/lib_uart/.project
Normal file
@@ -0,0 +1,100 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>lib_uart</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>com.xmos.cdt.core.LegacyProjectCheckerBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>com.xmos.cdt.core.ModulePathBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>com.xmos.cdt.core.ProjectCheckerBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>com.xmos.cdt.core.BuildMarkersBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>com.xmos.cdt.core.ProjectInfoSyncBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
<dictionary>
|
||||
<key>?children?</key>
|
||||
<value>?children?=?name?=entry\\\\\\\|\\\|\|?name?=outputEntries\||</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>?name?</key>
|
||||
<value></value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.append_environment</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.buildArguments</key>
|
||||
<value>-f .makefile</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.buildCommand</key>
|
||||
<value>xmake</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
|
||||
<value>clean</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.contents</key>
|
||||
<value>org.eclipse.cdt.make.core.activeConfigSettings</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
|
||||
<value>false</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableFullBuild</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.stopOnError</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
|
||||
<value>false</value>
|
||||
</dictionary>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
<nature>com.xmos.cdt.core.XdeProjectNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
135
lib_uart/lib_uart/LICENSE.txt
Normal file
135
lib_uart/lib_uart/LICENSE.txt
Normal file
@@ -0,0 +1,135 @@
|
||||
Software Release License Agreement
|
||||
|
||||
Copyright (c) 2014-2018, XMOS, All rights reserved.
|
||||
|
||||
BY ACCESSING, USING, INSTALLING OR DOWNLOADING THE XMOS SOFTWARE, YOU AGREE TO BE BOUND BY THE FOLLOWING TERMS. IF YOU DO NOT AGREE TO THESE, DO NOT ATTEMPT TO DOWNLOAD, ACCESS OR USE THE XMOS Software.
|
||||
|
||||
Parties:
|
||||
|
||||
(1) XMOS Limited, incorporated and registered in England and Wales with company number 5494985 whose registered office is 107 Cheapside, London, EC2V 6DN (XMOS).
|
||||
|
||||
(2) An individual or legal entity exercising permissions granted by this License (Customer).
|
||||
|
||||
If you are entering into this Agreement on behalf of another legal entity such as a company, partnership, university, college etc. (for example, as an employee, student or consultant), you warrant that you have authority to bind that entity.
|
||||
|
||||
1. Definitions
|
||||
|
||||
"License" means this Software License and any schedules or annexes to it.
|
||||
|
||||
"License Fee" means the fee for the XMOS Software as detailed in any schedules or annexes to this Software License
|
||||
|
||||
"Licensee Modifications" means all developments and modifications of the XMOS Software developed independently by the Customer.
|
||||
|
||||
"XMOS Modifications" means all developments and modifications of the XMOS Software developed or co-developed by XMOS.
|
||||
|
||||
"XMOS Hardware" means any XMOS hardware devices supplied by XMOS from time to time and/or the particular XMOS devices detailed in any schedules or annexes to this Software License.
|
||||
|
||||
"XMOS Software" comprises the XMOS owned circuit designs, schematics, source code, object code, reference designs, (including related programmer comments and documentation, if any), error corrections, improvements, modifications (including XMOS Modifications) and updates.
|
||||
|
||||
The headings in this License do not affect its interpretation. Save where the context otherwise requires, references to clauses and schedules are to clauses and schedules of this License.
|
||||
|
||||
Unless the context otherwise requires:
|
||||
|
||||
- references to XMOS and the Customer include their permitted successors and assigns;
|
||||
- references to statutory provisions include those statutory provisions as amended or re-enacted; and
|
||||
- references to any gender include all genders.
|
||||
|
||||
Words in the singular include the plural and in the plural include the singular.
|
||||
|
||||
2. License
|
||||
|
||||
XMOS grants the Customer a non-exclusive license to use, develop, modify and distribute the XMOS Software with, or for the purpose of being used with, XMOS Hardware.
|
||||
|
||||
Open Source Software (OSS) must be used and dealt with in accordance with any license terms under which OSS is distributed.
|
||||
|
||||
3. Consideration
|
||||
|
||||
In consideration of the mutual obligations contained in this License, the parties agree to its terms.
|
||||
|
||||
4. Term
|
||||
|
||||
Subject to clause 12 below, this License shall be perpetual.
|
||||
|
||||
5. Restrictions on Use
|
||||
|
||||
The Customer will adhere to all applicable import and export laws and regulations of the country in which it resides and of the United States and United Kingdom, without limitation. The Customer agrees that it is its responsibility to obtain copies of and to familiarise itself fully with these laws and regulations to avoid violation.
|
||||
|
||||
6. Modifications
|
||||
|
||||
The Customer will own all intellectual property rights in the Licensee Modifications but will undertake to provide XMOS with any fixes made to correct any bugs found in the XMOS Software on a non-exclusive, perpetual and royalty free license basis.
|
||||
|
||||
XMOS will own all intellectual property rights in the XMOS Modifications.
|
||||
The Customer may only use the Licensee Modifications and XMOS Modifications on, or in relation to, XMOS Hardware.
|
||||
|
||||
7. Support
|
||||
|
||||
Support of the XMOS Software may be provided by XMOS pursuant to a separate support agreement.
|
||||
|
||||
8. Warranty and Disclaimer
|
||||
|
||||
The XMOS Software is provided "AS IS" without a warranty of any kind. XMOS and its licensors' entire liability and Customer's exclusive remedy under this warranty to be determined in XMOS's sole and absolute discretion, will be either (a) the corrections of defects in media or replacement of the media, or (b) the refund of the license fee paid (if any).
|
||||
|
||||
Whilst XMOS gives the Customer the ability to load their own software and applications onto XMOS devices, the security of such software and applications when on the XMOS devices is the Customer's own responsibility and any breach of security shall not be deemed a defect or failure of the hardware. XMOS shall have no liability whatsoever in relation to any costs, damages or other losses Customer may incur as a result of any breaches of security in relation to your software or applications.
|
||||
|
||||
XMOS AND ITS LICENSORS DISCLAIM ALL OTHER WARRANTIES, EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY/ SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT EXCEPT TO THE EXTENT THAT THESE DISCLAIMERS ARE HELD TO BE LEGALLY INVALID UNDER APPLICABLE LAW.
|
||||
|
||||
9. High Risk Activities
|
||||
|
||||
The XMOS Software is not designed or intended for use in conjunction with on-line control equipment in hazardous environments requiring fail-safe performance, including without limitation the operation of nuclear facilities, aircraft navigation or communication systems, air traffic control, life support machines, or weapons systems (collectively "High Risk Activities") in which the failure of the XMOS Software could lead directly to death, personal injury, or severe physical or environmental damage. XMOS and its licensors specifically disclaim any express or implied warranties relating to use of the XMOS Software in connection with High Risk Activities.
|
||||
|
||||
10. Liability
|
||||
|
||||
TO THE EXTENT NOT PROHIBITED BY APPLICABLE LAW, NEITHER XMOS NOR ITS LICENSORS SHALL BE LIABLE FOR ANY LOST REVENUE, BUSINESS, PROFIT, CONTRACTS OR DATA, ADMINISTRATIVE OR OVERHEAD EXPENSES, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES HOWEVER CAUSED AND REGARDLESS OF THEORY OF LIABILITY ARISING OUT OF THIS LICENSE, EVEN IF XMOS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. In no event shall XMOS's liability to the Customer whether in contract, tort (including negligence), or otherwise exceed the License Fee.
|
||||
|
||||
Customer agrees to indemnify, hold harmless, and defend XMOS and its licensors from and against any claims or lawsuits, including attorneys' fees and any other liabilities, demands, proceedings, damages, losses, costs, expenses fines and charges which are made or brought against or incurred by XMOS as a result of your use or distribution of the Licensee Modifications or your use or distribution of XMOS Software, or any development of it, other than in accordance with the terms of this License.
|
||||
|
||||
11. Ownership
|
||||
|
||||
The copyrights and all other intellectual and industrial property rights for the protection of information with respect to the XMOS Software (including the methods and techniques on which they are based) are retained by XMOS and/or its licensors. Nothing in this Agreement serves to transfer such rights. Customer may not sell, mortgage, underlet, sublease, sublicense, lend or transfer possession of the XMOS Software in any way whatsoever to any third party who is not bound by this Agreement.
|
||||
|
||||
12. Termination
|
||||
|
||||
Either party may terminate this License at any time on written notice to the other if the other:
|
||||
|
||||
- is in material or persistent breach of any of the terms of this License and either that breach is incapable of remedy, or the other party fails to remedy that breach within 30 days after receiving written notice requiring it to remedy that breach; or
|
||||
|
||||
- is unable to pay its debts (within the meaning of section 123 of the Insolvency Act 1986), or becomes insolvent, or is subject to an order or a resolution for its liquidation, administration, winding-up or dissolution (otherwise than for the purposes of a solvent amalgamation or reconstruction), or has an administrative or other receiver, manager, trustee, liquidator, administrator or similar officer appointed over all or any substantial part of its assets, or enters into or proposes any composition or arrangement with its creditors generally, or is subject to any analogous event or proceeding in any applicable jurisdiction.
|
||||
|
||||
Termination by either party in accordance with the rights contained in clause 12 shall be without prejudice to any other rights or remedies of that party accrued prior to termination.
|
||||
|
||||
On termination for any reason:
|
||||
|
||||
- all rights granted to the Customer under this License shall cease;
|
||||
- the Customer shall cease all activities authorised by this License;
|
||||
- the Customer shall immediately pay any sums due to XMOS under this License; and
|
||||
- the Customer shall immediately destroy or return to the XMOS (at the XMOS's option) all copies of the XMOS Software then in its possession, custody or control and, in the case of destruction, certify to XMOS that it has done so.
|
||||
|
||||
Clauses 5, 8, 9, 10 and 11 shall survive any effective termination of this Agreement.
|
||||
|
||||
13. Third party rights
|
||||
|
||||
No term of this License is intended to confer a benefit on, or to be enforceable by, any person who is not a party to this license.
|
||||
|
||||
14. Confidentiality and publicity
|
||||
|
||||
Each party shall, during the term of this License and thereafter, keep confidential all, and shall not use for its own purposes nor without the prior written consent of the other disclose to any third party any, information of a confidential nature (including, without limitation, trade secrets and information of commercial value) which may become known to such party from the other party and which relates to the other party, unless such information is public knowledge or already known to such party at the time of disclosure, or subsequently becomes public knowledge other than by breach of this license, or subsequently comes lawfully into the possession of such party from a third party.
|
||||
|
||||
The terms of this license are confidential and may not be disclosed by the Customer without the prior written consent of XMOS.
|
||||
The provisions of clause 14 shall remain in full force and effect notwithstanding termination of this license for any reason.
|
||||
|
||||
15. Entire agreement
|
||||
|
||||
This License and the documents annexed as appendices to this License or otherwise referred to herein contain the whole agreement between the parties relating to the subject matter hereof and supersede all prior agreements, arrangements and understandings between the parties relating to that subject matter.
|
||||
|
||||
16. Assignment
|
||||
|
||||
The Customer shall not assign this License or any of the rights granted under it without XMOS's prior written consent.
|
||||
|
||||
17. Governing law and jurisdiction
|
||||
|
||||
This License shall be governed by and construed in accordance with English law and each party hereby submits to the non-exclusive jurisdiction of the English courts.
|
||||
|
||||
This License has been entered into on the date stated at the beginning of it.
|
||||
|
||||
Schedule
|
||||
XMOS UART library software
|
||||
48
lib_uart/lib_uart/api/multi_uart_impl.h
Normal file
48
lib_uart/lib_uart/api/multi_uart_impl.h
Normal file
@@ -0,0 +1,48 @@
|
||||
// Copyright (c) 2014-2016, XMOS Ltd, All rights reserved
|
||||
#ifndef __MULTI_UART_IMPL_H__
|
||||
#define __MULTI_UART_IMPL_H__
|
||||
|
||||
[[distributable]]
|
||||
void multi_uart_rx_buffer(server interface multi_uart_rx_if i,
|
||||
unsigned clock_rate_hz,
|
||||
unsigned baud,
|
||||
enum uart_parity_t parity,
|
||||
unsigned bits_per_byte,
|
||||
unsigned stop_bits);
|
||||
|
||||
void multi_uart_rx_pins(streaming chanend c,
|
||||
in buffered port:32 p,
|
||||
unsigned num_uarts);
|
||||
|
||||
[[distributable]]
|
||||
void multi_uart_tx_buffer(server interface multi_uart_tx_if i_tx,
|
||||
unsigned clock_rate_hz,
|
||||
unsigned baud,
|
||||
enum uart_parity_t parity,
|
||||
unsigned bits_per_byte,
|
||||
unsigned stop_bits);
|
||||
|
||||
void multi_uart_tx_pins(chanend c, out buffered port:8 p, size_t clock_rate);
|
||||
|
||||
#define multi_uart_rx(c, i, p, n, clock_rate, baud, parity, bits, stop_bits) \
|
||||
{par { \
|
||||
[[distribute]] multi_uart_rx_buffer(i, clock_rate, baud, parity, bits, stop_bits); \
|
||||
multi_uart_rx_pins(c, p, n); \
|
||||
} \
|
||||
}
|
||||
|
||||
#define multi_uart_tx(c, i, p, n, clock_rate, baud, parity, bits, stop_bits) \
|
||||
{par { \
|
||||
[[distribute]] multi_uart_tx_buffer(i, clock_rate, baud, parity, bits, stop_bits); \
|
||||
multi_uart_tx_pins(c, p, clock_rate); \
|
||||
} \
|
||||
}
|
||||
|
||||
#pragma select handler
|
||||
inline void multi_uart_data_ready(streaming chanend c_rx, size_t &index) {
|
||||
char x;
|
||||
c_rx :> x;
|
||||
index = x;
|
||||
}
|
||||
|
||||
#endif // __MULTI_UART_IMPL_H__
|
||||
597
lib_uart/lib_uart/api/uart.h
Normal file
597
lib_uart/lib_uart/api/uart.h
Normal file
@@ -0,0 +1,597 @@
|
||||
// Copyright (c) 2014-2018, XMOS Ltd, All rights reserved
|
||||
|
||||
#ifndef _uart_h_
|
||||
#define _uart_h_
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
#include <xs1.h>
|
||||
#include <gpio.h>
|
||||
|
||||
#ifdef __XC__
|
||||
|
||||
/** Type representing the parity of a UART */
|
||||
typedef enum uart_parity_t {
|
||||
UART_PARITY_EVEN = 0, ///< Even parity.
|
||||
UART_PARITY_ODD = 1, ///< Odd parity.
|
||||
UART_PARITY_NONE ///< No parity.
|
||||
} uart_parity_t;
|
||||
|
||||
/** UART configuration interface.
|
||||
*
|
||||
* This interface enables dynamic reconfiguration of a UART. It is used by
|
||||
* several UART components to provide a method of configuration.
|
||||
*/
|
||||
typedef interface uart_config_if {
|
||||
/** Set the baud rate of a UART.
|
||||
*/
|
||||
void set_baud_rate(unsigned baud_rate);
|
||||
|
||||
/** Set the parity of a UART.
|
||||
*/
|
||||
void set_parity(enum uart_parity_t parity);
|
||||
|
||||
/** Set number of stop bits used by a UART.
|
||||
*/
|
||||
void set_stop_bits(unsigned stop_bits);
|
||||
|
||||
/** Set number of bits per byte used by a UART (must be in the range [1-8])
|
||||
*/
|
||||
void set_bits_per_byte(unsigned bits_per_byte);
|
||||
} uart_config_if;
|
||||
|
||||
|
||||
/*---------------------- Receiver API ---------------------------*/
|
||||
|
||||
/** UART RX interface.
|
||||
*
|
||||
* This interface provides clients access to buffer uart receive
|
||||
* functionality.
|
||||
*/
|
||||
typedef interface uart_rx_if {
|
||||
/** Get a byte from the receive buffer.
|
||||
*
|
||||
* This function should be called after receiving a data_ready()
|
||||
* notification. If these is no data in the buffer (for example, this
|
||||
* function is called before receiving a notification) then the return
|
||||
* value is undefined.
|
||||
*/
|
||||
[[clears_notification]] uint8_t read(void);
|
||||
|
||||
/** Notification that data is in the receive buffer.
|
||||
*
|
||||
* This notification function can be selected on by the client and
|
||||
* will event when the is data in the receive buffer. After this
|
||||
* notification the client should call the read() function.
|
||||
*/
|
||||
[[notification]] slave void data_ready(void);
|
||||
|
||||
/** Returns whether there is data in the buffer.
|
||||
*/
|
||||
int has_data();
|
||||
} uart_rx_if;
|
||||
|
||||
extends client interface uart_rx_if : {
|
||||
|
||||
/** Get a byte from the receive buffer.
|
||||
*
|
||||
* This function will wait until there is data in the receive buffer
|
||||
* of the uart and then fetch that data. On getting the data, it
|
||||
* will clear the notification flag on the interface.
|
||||
*/
|
||||
inline uint8_t wait_for_data_and_read(client uart_rx_if i) {
|
||||
if (!i.has_data()) {
|
||||
select {
|
||||
case i.data_ready():
|
||||
break;
|
||||
}
|
||||
}
|
||||
return i.read();
|
||||
}
|
||||
}
|
||||
|
||||
/** UART RX.
|
||||
*
|
||||
* This function runs a uart receiver.
|
||||
* Bytes received by the this task are buffered.
|
||||
* When the buffer is full further incoming bytes of data will be dropped.
|
||||
* The function never returns and will run indefinitely.
|
||||
*
|
||||
* \param i_data the interface connection allowing clients to
|
||||
* receive data
|
||||
* \param i_config the interface connection allowing clients to
|
||||
* reconfigure the UART
|
||||
* \param buffer_size the size of the buffer
|
||||
* \param baud the initial baud rate
|
||||
* \param parity the initial parity setting
|
||||
* \param bits_per_byte the initial number of bits per byte (must be
|
||||
* in the range [1-8])
|
||||
* \param stop_bits the initial number of stop bits
|
||||
* \param p_rxd the gpio interface to input data on
|
||||
*/
|
||||
[[combinable]]
|
||||
void uart_rx(server interface uart_rx_if i_data,
|
||||
server interface uart_config_if ?i_config,
|
||||
const static unsigned buffer_size,
|
||||
unsigned baud,
|
||||
enum uart_parity_t parity,
|
||||
unsigned bits_per_byte,
|
||||
unsigned stop_bits,
|
||||
client input_gpio_if p_rxd);
|
||||
|
||||
/** Fast/Streaming UART RX.
|
||||
*
|
||||
* This function implements a fast UART. The UART configuration is
|
||||
* fixed to a single start bit, 8 bits per byte, and a single stop bit.
|
||||
* On a 62.5 MIPS thread this function should be able to keep up with a 10
|
||||
* MBit UART sustained (provided that the streaming channel can keep up
|
||||
* with it too).
|
||||
*
|
||||
* This function does not return.
|
||||
*
|
||||
* \param p input port, 1 bit port on which data comes in.
|
||||
*
|
||||
* \param c output streaming channel to connect to the application.
|
||||
*
|
||||
* \param ticks_per_bit number of clock ticks between bits.
|
||||
* This number depends on the clock that is
|
||||
* attached to port p. If it is the
|
||||
* 100 Mhz reference clock then this value
|
||||
* should be at least 10.
|
||||
*/
|
||||
void uart_rx_streaming(in port p, streaming chanend c, int ticks_per_bit);
|
||||
|
||||
/** Receive a byte from a streaming UART receiver.
|
||||
*
|
||||
* This function receives a byte from the fast/streaming UART component. It is
|
||||
* "select handler" so can be used within a select e.g.
|
||||
*
|
||||
\verbatim
|
||||
uint8_t byte;
|
||||
size_t index;
|
||||
select {
|
||||
case uart_rx_streaming_receive_byte(c, byte):
|
||||
// use sample and index here...
|
||||
...
|
||||
break;
|
||||
...
|
||||
\endverbatim
|
||||
*
|
||||
* The case in this select will fire when the UART component has data ready.
|
||||
*
|
||||
* \param c chanend connected to the streaming UART receiver component
|
||||
* \param data This reference parameter gets set with the incoming
|
||||
* data
|
||||
*/
|
||||
#pragma select handler
|
||||
void uart_rx_streaming_read_byte(streaming chanend c, uint8_t &data);
|
||||
|
||||
/*---------------------- Transmitter API ---------------------------*/
|
||||
|
||||
/** UART transmit interface.
|
||||
*
|
||||
* This interface provides functions for transmitting data on an
|
||||
* unbuffered UART.
|
||||
*/
|
||||
typedef interface uart_tx_if {
|
||||
|
||||
/** Write a byte to a UART.
|
||||
*
|
||||
* This function writes a byte of data to a UART. It will output
|
||||
* immediately and block until the data is output.
|
||||
*
|
||||
* \param data The data to write.
|
||||
*/
|
||||
void write(uint8_t data);
|
||||
} uart_tx_if;
|
||||
|
||||
|
||||
/** UART transmitter.
|
||||
*
|
||||
* This function implements an unbuffered UART transmitter.
|
||||
*
|
||||
* \param i_data interface enabling client to send data
|
||||
* \param i_config interface enabling client to configure the UART
|
||||
* \param baud the initial baud rate
|
||||
* \param parity the initial parity setting
|
||||
* \param bits_per_byte the initial number of bits per byte (must be in
|
||||
* the range [1-8])
|
||||
* \param stop_bits the initial number of stop bits
|
||||
* \param p_txd the gpio interface to output data on
|
||||
|
||||
*/
|
||||
[[distributable]]
|
||||
void uart_tx(server interface uart_tx_if i_data,
|
||||
server interface uart_config_if ?i_config,
|
||||
unsigned baud,
|
||||
uart_parity_t parity,
|
||||
unsigned bits_per_byte,
|
||||
unsigned stop_bits,
|
||||
client output_gpio_if p_txd);
|
||||
|
||||
/** UART transmit interface (buffered).
|
||||
*
|
||||
* This interface contains functions to write to a buffered UART and
|
||||
* manage the buffering.
|
||||
*
|
||||
*/
|
||||
typedef interface uart_tx_buffered_if {
|
||||
|
||||
/** Write a byte to a UART.
|
||||
*
|
||||
* This function writes a byte of data to a UART. It will place the
|
||||
* data in the output buffer queue to write and then return. If the
|
||||
* buffer is full then the data is discarded.
|
||||
*
|
||||
* \param data The data to write.
|
||||
*
|
||||
* \returns Zero if the write was successful. If the buffer was
|
||||
* full then the function will return 1 and the data is
|
||||
* discarded.
|
||||
*/
|
||||
[[clears_notification]]
|
||||
int write(uint8_t data);
|
||||
|
||||
/** Ready to transmit notification.
|
||||
*
|
||||
* This notification will occur when the UART is ready to transmit (either
|
||||
* intially or after a write() call when there is space in the buffer).
|
||||
*/
|
||||
[[notification]]
|
||||
slave void ready_to_transmit(void);
|
||||
|
||||
/** Get avaiable buffer size.
|
||||
*
|
||||
* This function returns the number of bytes remaining in the buffer that
|
||||
* can be filled by write() calls.
|
||||
*/
|
||||
size_t get_available_buffer_size(void);
|
||||
} uart_tx_buffered_if;
|
||||
|
||||
/** UART transmitter (buffered).
|
||||
*
|
||||
* This function implements a UART transmitter. Data sent to the task will
|
||||
* be placed in a buffer and sent at the rate of the UART.
|
||||
*
|
||||
* \param i_data interface enabling client to send data
|
||||
* \param i_config interface enabling client to configure the UART
|
||||
* \param buffer_size the size of the transmit buffer in bytes
|
||||
* \param baud the initial baud rate
|
||||
* \param parity the initial parity setting
|
||||
* \param bits_per_byte the initial number of bits per byte (must be in
|
||||
* the range [1-8])
|
||||
* \param stop_bits the initial number of stop bits
|
||||
* \param p_txd the gpio interface to output data on
|
||||
*/
|
||||
[[combinable]]
|
||||
void uart_tx_buffered(server interface uart_tx_buffered_if i_data,
|
||||
server interface uart_config_if ?i_config,
|
||||
const static unsigned buffer_size,
|
||||
unsigned baud,
|
||||
uart_parity_t parity,
|
||||
unsigned bits_per_byte,
|
||||
unsigned stop_bits,
|
||||
client output_gpio_if p_txd);
|
||||
|
||||
/** Fast/Streaming UART TX.
|
||||
*
|
||||
* This function implements a fast UART transmitter.
|
||||
* It needs an unbuffered 1-bit
|
||||
* port, a streaming channel end, and a number of port-clocks to wait
|
||||
* between bits. It receives a start bit, 8 bits, and a stop bit, and
|
||||
* transmits the 8 bits over the streaming channel end as a single token.
|
||||
* On a 62.5 MIPS thread this function should be able to keep up with a 10
|
||||
* MBit UART sustained (provided that the streaming channel can keep up
|
||||
* with it too).
|
||||
*
|
||||
* This function does not return.
|
||||
*
|
||||
* \param p input port, 1 bit port on which data comes in.
|
||||
*
|
||||
* \param c output streaming channel to connect to the application.
|
||||
*
|
||||
* \param ticks_per_bit number of clock ticks between bits.
|
||||
* This number depends on the clock that is
|
||||
* attached to port p. If it is the
|
||||
* 100 Mhz reference clock then this value
|
||||
* should be at least 10.
|
||||
*/
|
||||
void uart_tx_streaming(out port p, streaming chanend c, int ticks_per_bit);
|
||||
|
||||
/** Write a byte to a streaming UART transmitter.
|
||||
*
|
||||
* This function writes a
|
||||
* \param c chanend connected to the streaming UART Tx component
|
||||
* \param data The data to send.
|
||||
*/
|
||||
void uart_tx_streaming_write_byte(streaming chanend c, uint8_t data);
|
||||
|
||||
|
||||
/*---------------------- Half Duplex API ---------------------------*/
|
||||
|
||||
/** Type representing the mode (direction) of a uart. */
|
||||
typedef enum uart_half_duplex_mode_t {
|
||||
UART_RX_MODE, ///< Uart is in receive mode.
|
||||
UART_TX_MODE ///< Uart is in transmit mode.
|
||||
} uart_half_duplex_mode_t;
|
||||
|
||||
/** Interface to control the mode of a half-duplex UART */
|
||||
typedef interface uart_control_if {
|
||||
/** Set the mode of the UART.
|
||||
*
|
||||
* This function can be used to control whether the UART is in send or
|
||||
* receive mode.
|
||||
*/
|
||||
void set_mode(uart_half_duplex_mode_t mode);
|
||||
} uart_control_if;
|
||||
|
||||
/** Half duplex UART.
|
||||
*
|
||||
* This function implements a UART that can either transmit or receive on
|
||||
* the same wire. The application explicitly control whether the component
|
||||
* is in transmit or receive mode.
|
||||
*
|
||||
* \param i_tx interface for transmitting data
|
||||
* \param i_rx interface for receiving data
|
||||
* \param i_control interface for controlling the direction of the UART
|
||||
* \param i_config interface for configuring the UART
|
||||
* \param tx_buf_length the size of the transmit buffer (in bytes)
|
||||
* \param rx_buf_length the size of the receive buffer (in bytes)
|
||||
* \param baud baud rate
|
||||
* \param parity the parity of the UART
|
||||
* \param bits_per_byte bits per byte (must be in the range [1-8])
|
||||
* \param stop_bits The number of stop bits
|
||||
* \param p_uart the 1-bit port to send/recieve the UART signals.
|
||||
*/
|
||||
void uart_half_duplex(server interface uart_tx_buffered_if i_tx,
|
||||
server interface uart_rx_if i_rx,
|
||||
server interface uart_control_if i_control,
|
||||
server interface uart_config_if ?i_config,
|
||||
const static unsigned tx_buf_length,
|
||||
const static unsigned rx_buf_length,
|
||||
unsigned baud,
|
||||
uart_parity_t parity,
|
||||
unsigned bits_per_byte,
|
||||
unsigned stop_bits,
|
||||
port p_uart);
|
||||
|
||||
/*---------------------- Multi-UART API ---------------------------*/
|
||||
|
||||
typedef enum multi_uart_read_result_t {
|
||||
UART_RX_VALID_DATA, ///< Data received is valid.
|
||||
UART_RX_INVALID_DATA ///< Data received is not valid.
|
||||
} multi_uart_read_result_t;
|
||||
|
||||
/** Multi-UART receive interface */
|
||||
interface multi_uart_rx_if {
|
||||
|
||||
/** Initialize the multi-UART RX component.
|
||||
*
|
||||
* \param c The chanend connected to the multi-UART RX task
|
||||
*/
|
||||
void init(streaming chanend c);
|
||||
|
||||
/** Read a byte for the next UART with ready data.
|
||||
*
|
||||
* This function will read out a byte from the next UART with data available.
|
||||
* If several UARTS have data available then the data is read out in a
|
||||
* round-robin fashion.
|
||||
*
|
||||
* \param index This index of the UART to read from
|
||||
* \param data The data byte read
|
||||
* \returns An enum type that indicates if the data is valid
|
||||
*/
|
||||
enum multi_uart_read_result_t read(size_t index, uint8_t &data);
|
||||
|
||||
/** Pause the multi-UART RX component for reconfiguration.
|
||||
*
|
||||
* This call will stop the mulit-UART component so that the UARTs can be
|
||||
* reconfigured.
|
||||
*/
|
||||
void pause(void);
|
||||
|
||||
/** Restart the multi-UART RX component after reconfiguration.
|
||||
*
|
||||
* This call will restart the multi-UART component.
|
||||
*/
|
||||
void restart(void);
|
||||
|
||||
/** Set the baud rate of a UART.
|
||||
*
|
||||
* This call will set the baud rate of one of the UARTs.
|
||||
* The rate must be a divisor of the clock rate of the underlying
|
||||
* clock used for the component.
|
||||
*
|
||||
* \param index The index of the UART to configure
|
||||
* \param baud_rate The required baud rate
|
||||
*/
|
||||
void set_baud_rate(size_t index, unsigned baud_rate);
|
||||
|
||||
/** Set parity of a UART.
|
||||
*
|
||||
* This call will set the parity of one of the UARTs.
|
||||
* The rate must be a divisor of the clock rate of the underlying
|
||||
* clock used for the component.
|
||||
*
|
||||
* \param index The index of the UART to configure.
|
||||
* \param parity The required parity
|
||||
*/
|
||||
void set_parity(size_t index, enum uart_parity_t parity);
|
||||
|
||||
/** Set the number of stop bits of a UART.
|
||||
*
|
||||
* This call will set the number of stop bits of one of the UARTs.
|
||||
*
|
||||
* \param index The index of the UART
|
||||
* \param stop_bits The number of stop bits
|
||||
*/
|
||||
void set_stop_bits(size_t index, unsigned stop_bits);
|
||||
|
||||
/** Set the number of bit per byte of a UART.
|
||||
*
|
||||
* This call will set the number of stop bits of one of the UARTs.
|
||||
*
|
||||
* \param index The index of the UART
|
||||
* \param bits_per_byte The number of bits per byte (must be in the
|
||||
* range [1-8])
|
||||
*/
|
||||
void set_bits_per_byte(size_t index, unsigned bits_per_byte);
|
||||
} [[sametile]];
|
||||
|
||||
typedef interface multi_uart_rx_if multi_uart_rx_if;
|
||||
|
||||
#pragma select handler
|
||||
inline void multi_uart_data_ready(streaming chanend c_rx, size_t &index);
|
||||
|
||||
/** Multi-UART receiver.
|
||||
*
|
||||
* This function implements multiple UART receivers on a multi-bit port. The
|
||||
* UARTS all have the same baud rate.
|
||||
* The parity, bits per byte and number of stop bits
|
||||
* is the same for all UARTs and cannot be changed dynamically.
|
||||
*
|
||||
* \param c a chanend used internally for high speed communication
|
||||
* \param i the interface for getting data from the task
|
||||
* \param p the multibit port
|
||||
* \param clk a clock block for the component to use. This needs
|
||||
* to be set to run of the reference clock (the default
|
||||
* state for clock blocks)
|
||||
* \param num_uarts the number of uarts to run (must be less than or
|
||||
* equal to the width of \p p)
|
||||
* \param clock_rate_hz the clock rate in Hz
|
||||
* \param baud baud rate
|
||||
* \param parity the parity of the UART
|
||||
* \param bits_per_byte bits per byte (must be in the range [1-8])
|
||||
* \param stop_bits number of stop bits
|
||||
*/
|
||||
void multi_uart_rx(streaming chanend c,
|
||||
server interface multi_uart_rx_if i,
|
||||
in buffered port:32 p, clock clk,
|
||||
size_t num_uarts,
|
||||
unsigned clock_rate_hz,
|
||||
unsigned baud,
|
||||
enum uart_parity_t parity,
|
||||
unsigned bits_per_byte,
|
||||
unsigned stop_bits);
|
||||
|
||||
/** Multi-UART transmit interface */
|
||||
interface multi_uart_tx_if {
|
||||
|
||||
/** Initialize the multi-UART TX component.
|
||||
*
|
||||
* \param c The chanend connected to the multi-UART TX task
|
||||
*/
|
||||
void init(chanend c);
|
||||
|
||||
/** Check whether transmit slot is free.
|
||||
*
|
||||
* This function checks whether the application can write data to
|
||||
* a specific UART.
|
||||
*
|
||||
* \param index The index of the UART to check
|
||||
* \returns non-zero if the slot is free (i.e. data can be sent)
|
||||
*/
|
||||
int is_slot_free(size_t index);
|
||||
|
||||
/** Write to a UART.
|
||||
*
|
||||
* This function writes a byte of data to a UART. This byte will be buffered
|
||||
* to send. If the transmit buffer for
|
||||
* that UART is not available then the data is ignored (use
|
||||
* is_tx_slot_free() to determine availability).
|
||||
*
|
||||
* \param index The index of the UART to write to
|
||||
* \param data The data to write
|
||||
*/
|
||||
void write(size_t index, uint8_t data);
|
||||
|
||||
/** Pause the multi-UART RX component for reconfiguration.
|
||||
*
|
||||
* This call will stop the mulit-UART component so that the UARTs can be
|
||||
* reconfigured.
|
||||
*/
|
||||
void pause(void);
|
||||
|
||||
/** Restart the multi-UART RX component after reconfiguration.
|
||||
*
|
||||
* This call will restart the multi-UART component.
|
||||
*/
|
||||
void restart(void);
|
||||
|
||||
/** Set the baud rate of a UART.
|
||||
*
|
||||
* This call will set the baud rate of one of the UARTs.
|
||||
* The rate must be a divisor of the clock rate of the underlying
|
||||
* clock used for the component.
|
||||
*
|
||||
* \param index The index of the UART to configure.
|
||||
* \param baud_rate The required baud rate
|
||||
*/
|
||||
void set_baud_rate(size_t index, unsigned baud_rate);
|
||||
|
||||
/** Set parity of a UART.
|
||||
*
|
||||
* This call will set the parity of one of the UARTs.
|
||||
* The rate must be a divisor of the clock rate of the underlying
|
||||
* clock used for the component.
|
||||
*
|
||||
* \param index The index of the UART to configure.
|
||||
* \param parity The required parity
|
||||
*/
|
||||
void set_parity(size_t index, enum uart_parity_t parity);
|
||||
|
||||
/** Set the number of stop bits of a UART.
|
||||
*
|
||||
* This call will set the number of stop bits of one of the UARTs.
|
||||
*
|
||||
* \param index The index of the UART
|
||||
* \param stop_bits The number of stop bits
|
||||
*/
|
||||
void set_stop_bits(size_t index, unsigned stop_bits);
|
||||
|
||||
/** Set the number of bit per byte of a UART.
|
||||
*
|
||||
* This call will set the number of stop bits of one of the UARTs.
|
||||
*
|
||||
* \param index The index of the UART
|
||||
* \param bits_per_byte The number of bits per byte (must be in the
|
||||
* range [1-8])
|
||||
*/
|
||||
void set_bits_per_byte(size_t index, unsigned bits_per_byte);
|
||||
} [[sametile]];
|
||||
|
||||
typedef interface multi_uart_tx_if multi_uart_tx_if;
|
||||
|
||||
/** Multi-UART transmitter.
|
||||
*
|
||||
* This function implements multiple UART transmiiters on a multi-bit port. The
|
||||
* UARTS all have the same baud rate.
|
||||
* The parity, bits per byte and number of stop bits
|
||||
* is the same for all UARTs and cannot be changed dynamically.
|
||||
*
|
||||
* \param c a chanend used internally for high speed communication
|
||||
* \param i the interface for sending data to the task
|
||||
* \param p the multibit port
|
||||
* \param num_uarts the number of uarts to run (must be less than or
|
||||
* equal to the width of \p p)
|
||||
* \param clock_rate_hz the clock rate in Hz
|
||||
* \param baud baud rate
|
||||
* \param parity the parity of the UART
|
||||
* \param bits_per_byte bits per byte (must be in the range [1-8])
|
||||
* \param stop_bits number of stop bits
|
||||
*/
|
||||
void multi_uart_tx(chanend c,
|
||||
server interface multi_uart_tx_if i,
|
||||
out port p,
|
||||
size_t num_uarts,
|
||||
unsigned clock_rate_hz,
|
||||
unsigned baud,
|
||||
uart_parity_t parity,
|
||||
unsigned bits_per_byte,
|
||||
unsigned stop_bits);
|
||||
|
||||
|
||||
#include "multi_uart_impl.h"
|
||||
|
||||
#endif // __XC__
|
||||
|
||||
#endif /* _uart_h_ */
|
||||
22
lib_uart/lib_uart/api/uart_half_duplex.h
Normal file
22
lib_uart/lib_uart/api/uart_half_duplex.h
Normal file
@@ -0,0 +1,22 @@
|
||||
// Copyright (c) 2015-2016, XMOS Ltd, All rights reserved
|
||||
#ifndef __uart_half_duplex_h__
|
||||
#define __uart_half_duplex_h__
|
||||
|
||||
enum uart_tx_state {
|
||||
WAITING_FOR_DATA,
|
||||
OUTPUTTING_DATA_BIT,
|
||||
OUTPUTTING_PARITY_BIT,
|
||||
OUTPUTTING_STOP_BIT,
|
||||
TX_INACTIVE
|
||||
};
|
||||
enum uart_rx_state {
|
||||
WAITING_FOR_INPUT,
|
||||
WAITING_FOR_HIGH,
|
||||
TESTING_START_BIT,
|
||||
INPUTTING_DATA_BIT,
|
||||
INPUTTING_PARITY_BIT,
|
||||
INPUTTING_STOP_BIT,
|
||||
RX_INACTIVE
|
||||
};
|
||||
|
||||
#endif // __uart_half_duplex_h__
|
||||
22
lib_uart/lib_uart/doc/rst/images/Makefile
Normal file
22
lib_uart/lib_uart/doc/rst/images/Makefile
Normal file
@@ -0,0 +1,22 @@
|
||||
ODGS = $(wildcard *.odg)
|
||||
PDFS = $(ODGS:.odg=.pdf)
|
||||
|
||||
all: $(PDFS)
|
||||
@echo PDFs created
|
||||
|
||||
_uncropped:
|
||||
mkdir _uncropped
|
||||
|
||||
_uncropped/%.pdf: %.odg | _uncropped
|
||||
soffice -env:UserInstallation=file:///home/$(USER)/.libreoffice-alt --headless --convert-to pdf $< --outdir _uncropped
|
||||
|
||||
%.pdf: _uncropped/%.pdf
|
||||
pdfcrop $< $@
|
||||
|
||||
wavedrom:
|
||||
WaveDromEditor source data_sequence.js png data_sequence.png
|
||||
|
||||
clean:
|
||||
-rm $(PDFS)
|
||||
-rm _uncropped/*.pdf
|
||||
-rmdir _uncropped
|
||||
BIN
lib_uart/lib_uart/doc/rst/images/connect_fast.odg
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/connect_fast.odg
Normal file
Binary file not shown.
BIN
lib_uart/lib_uart/doc/rst/images/connect_fast.pdf
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/connect_fast.pdf
Normal file
Binary file not shown.
BIN
lib_uart/lib_uart/doc/rst/images/connect_half_duplex.odg
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/connect_half_duplex.odg
Normal file
Binary file not shown.
BIN
lib_uart/lib_uart/doc/rst/images/connect_half_duplex.pdf
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/connect_half_duplex.pdf
Normal file
Binary file not shown.
BIN
lib_uart/lib_uart/doc/rst/images/connect_multi.odg
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/connect_multi.odg
Normal file
Binary file not shown.
BIN
lib_uart/lib_uart/doc/rst/images/connect_multi.pdf
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/connect_multi.pdf
Normal file
Binary file not shown.
BIN
lib_uart/lib_uart/doc/rst/images/connect_rx.odg
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/connect_rx.odg
Normal file
Binary file not shown.
BIN
lib_uart/lib_uart/doc/rst/images/connect_rx.pdf
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/connect_rx.pdf
Normal file
Binary file not shown.
BIN
lib_uart/lib_uart/doc/rst/images/connect_standard.odg
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/connect_standard.odg
Normal file
Binary file not shown.
BIN
lib_uart/lib_uart/doc/rst/images/connect_standard.pdf
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/connect_standard.pdf
Normal file
Binary file not shown.
BIN
lib_uart/lib_uart/doc/rst/images/connect_tx.odg
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/connect_tx.odg
Normal file
Binary file not shown.
BIN
lib_uart/lib_uart/doc/rst/images/connect_tx.pdf
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/connect_tx.pdf
Normal file
Binary file not shown.
9
lib_uart/lib_uart/doc/rst/images/data_sequence.js
Normal file
9
lib_uart/lib_uart/doc/rst/images/data_sequence.js
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
config: { hscale: 1.5 },
|
||||
signal: [
|
||||
{name: 'UART', wave: 'x10=========1x',data:['b0','b1','b2','b3','b4','b5','b6','b7','parity']},
|
||||
{node: '..abcdefghijkl'}
|
||||
],
|
||||
edge:['b<->a tBIT','b<->c tBIT','c<->d tBIT','d<->e tBIT','e<->f tBIT','f<->g tBIT','g<->h tBIT','h<->i tBIT','i<->j tBIT','j<->k tBIT','k<->l tBIT']
|
||||
}
|
||||
|
||||
BIN
lib_uart/lib_uart/doc/rst/images/data_sequence.png
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/data_sequence.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
BIN
lib_uart/lib_uart/doc/rst/images/fast_uart_task_diag.odg
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/fast_uart_task_diag.odg
Normal file
Binary file not shown.
BIN
lib_uart/lib_uart/doc/rst/images/fast_uart_task_diag.pdf
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/fast_uart_task_diag.pdf
Normal file
Binary file not shown.
BIN
lib_uart/lib_uart/doc/rst/images/half_duplex_task_diag.odg
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/half_duplex_task_diag.odg
Normal file
Binary file not shown.
BIN
lib_uart/lib_uart/doc/rst/images/half_duplex_task_diag.pdf
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/half_duplex_task_diag.pdf
Normal file
Binary file not shown.
BIN
lib_uart/lib_uart/doc/rst/images/multi_uart_task_diag.odg
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/multi_uart_task_diag.odg
Normal file
Binary file not shown.
BIN
lib_uart/lib_uart/doc/rst/images/multi_uart_task_diag.pdf
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/multi_uart_task_diag.pdf
Normal file
Binary file not shown.
BIN
lib_uart/lib_uart/doc/rst/images/uart_rx_task_diag.odg
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/uart_rx_task_diag.odg
Normal file
Binary file not shown.
BIN
lib_uart/lib_uart/doc/rst/images/uart_rx_task_diag.pdf
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/uart_rx_task_diag.pdf
Normal file
Binary file not shown.
BIN
lib_uart/lib_uart/doc/rst/images/uart_task_diag.odg
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/uart_task_diag.odg
Normal file
Binary file not shown.
BIN
lib_uart/lib_uart/doc/rst/images/uart_task_diag.pdf
Normal file
BIN
lib_uart/lib_uart/doc/rst/images/uart_task_diag.pdf
Normal file
Binary file not shown.
578
lib_uart/lib_uart/doc/rst/lib_uart.rst
Normal file
578
lib_uart/lib_uart/doc/rst/lib_uart.rst
Normal file
@@ -0,0 +1,578 @@
|
||||
.. include:: ../../../README.rst
|
||||
|
||||
External signal description
|
||||
---------------------------
|
||||
|
||||
The UART signals used by the library are high in their idle state. The
|
||||
transmission of a character start with a *start bit* when the line
|
||||
transitions from high to low. Then the data bits of the character are
|
||||
then transmitted followed by an optional parity bit and a number of
|
||||
stop bits (where the line is driven high). This sequence is shown in
|
||||
:ref:`uart_waveform`. The data is driven least significant bit first.
|
||||
|
||||
.. _uart_waveform:
|
||||
|
||||
.. figure:: images/data_sequence.png
|
||||
:width: 100%
|
||||
|
||||
UART data sequence
|
||||
|
||||
The start bit, data bits, parity bit and stop bits are all the same
|
||||
length (``tBIT`` in :ref:`uart_waveform`). This length is give by the BAUD
|
||||
rate which is the number of bits per second.
|
||||
|
||||
Connecting to the xCORE device
|
||||
..............................
|
||||
|
||||
If you are using the general UART Rx/Tx components then the UART line
|
||||
can be connected to a bit of any port. The other bits of the port can
|
||||
be shared using the GPIO library. Please refer to the GPIO library
|
||||
user guide for restrictions on sharing bits of a port (for example,
|
||||
all bits of a port need to be in the same direction - so UART rx and
|
||||
UART tx cannot be put on the same port).
|
||||
|
||||
.. figure:: images/connect_standard.*
|
||||
|
||||
UART Rx and Tx connections
|
||||
|
||||
The half duplex UART needs to be connected to a 1-bit port.
|
||||
|
||||
.. figure:: images/connect_half_duplex.*
|
||||
|
||||
UART half duplex connection
|
||||
|
||||
|newpage|
|
||||
|
||||
The fast/streaming UART also needs to be connect to a 1-bit port for
|
||||
TX or RX.
|
||||
|
||||
.. figure:: images/connect_fast.*
|
||||
|
||||
Fast/Streaming UART connections
|
||||
|
||||
The multi-UARTs need to be connected to 8-bit ports. If fewer than 8
|
||||
UARTs are required then an 8-bit port must still be used with some of
|
||||
the pins of the port not connected.
|
||||
|
||||
.. figure:: images/connect_multi.*
|
||||
|
||||
Multi UART connections
|
||||
|
||||
For multi-UART receive, an incoming clock is required to acheive
|
||||
standard baud rates. The clock should be a multiple of the maximum
|
||||
BAUD rate required e.g. a 1843200Khz oscillator is a multiple of
|
||||
115200 baud (and lower rates also). The maximum allowable incoming
|
||||
signal is 1843200Khz.
|
||||
|
||||
For multi-UART transmit, an incoming clock can also be used. The same
|
||||
clock signal can be shared between receive and transmit (i.e. only a
|
||||
single 1-bit port need be used).
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
The are four ways to use the UART library detailed in the table below.
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - UART type
|
||||
- Description
|
||||
* - Standard
|
||||
- Standard UARTs provide a flexible, fully configurable UART for
|
||||
speeds up to 115200 baud. The UART connects to ports via the GPIO
|
||||
library so can be used with single bits of
|
||||
multi-bit ports. Transmit can be buffered or unbuffered. The UART
|
||||
components runs on a logical core but are combinable so can be
|
||||
run with other tasks on the same core (though the timing may be affected).
|
||||
* - Fast/streaming
|
||||
- The fast/streaming UART components provide a fixed configuration
|
||||
fast UART that streams data in and out via a streaming channel.
|
||||
* - Half-duplex
|
||||
- The half-duplex component performs receive and transmit on the
|
||||
same data line. The application controls the direction of the
|
||||
UART at runtime. It is particularly useful for RS485 connections (link?)
|
||||
* - Multi-UART
|
||||
- The multi-UART components efficiently run several UARTS on the
|
||||
same core using a multibit port.
|
||||
|
||||
All the UARTs use the XMOS multicore extensions to C (xC) to perform
|
||||
their operations, see the :ref:`XMOS Programming
|
||||
Guide<programming_guide>` for more details.
|
||||
|
||||
|newpage|
|
||||
|
||||
Standard UART usage
|
||||
...................
|
||||
|
||||
UART components are instantiated as parallel tasks that run in a
|
||||
``par`` statement. The application
|
||||
can connect via an interface connection using the ``uart_rx_if`` (for
|
||||
the UART Rx component) or the ``uart_tx_if`` (for the UART Tx
|
||||
component). Both components also have an optional configuration
|
||||
interface that lets the application change the speed and properties of
|
||||
the UART at run time.
|
||||
|
||||
.. figure:: images/uart_task_diag.*
|
||||
|
||||
UART task diagram
|
||||
|
||||
For example, the following code instantiates a UART rx and UART tx
|
||||
component and connects to them::
|
||||
|
||||
// Port declarations
|
||||
port p_uart_rx = on tile[0] : XS1_PORT_1A;
|
||||
port p_uart_tx = on tile[0] : XS1_PORT_1B;
|
||||
|
||||
#define RX_BUFFER_SIZE 20
|
||||
|
||||
int main() {
|
||||
interface uart_rx_if i_rx;
|
||||
interface uart_tx_if i_tx;
|
||||
input_gpio_if i_gpio_rx[1];
|
||||
output_gpio_if i_gpio_tx[1];
|
||||
par {
|
||||
on tile[0]: output_gpio(i_gpio_tx, 1, p_uart_tx, null);
|
||||
on tile[0]: uart_tx(i_tx, null,
|
||||
115200, UART_PARITY_NONE, 8, 1,
|
||||
i_gpio_tx[0]);
|
||||
on tile[0].core[0] : input_gpio_with_events(i_gpio_rx, 1, p_uart_rx, null);
|
||||
on tile[0].core[0] : uart_rx(i_rx, null, RX_BUFFER_SIZE,
|
||||
115200, UART_PARITY_NONE, 8, 1,
|
||||
i_gpio_rx[0]);
|
||||
on tile[0]: app(i_tx, i_rx);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
The ``output_gpio`` task and ``input_gpio_with_events`` tasks are part
|
||||
of the GPIO library for flexible use of multi-bit ports. See the GPIO
|
||||
library user guide for details.
|
||||
|
||||
|newpage|
|
||||
|
||||
The application can use the client end of the interface connection to
|
||||
perform UART operations e.g.::
|
||||
|
||||
void my_application(client uart_tx_if uart_tx,
|
||||
client uart_rx_if uart_rx) {
|
||||
// Write a byte to the UART
|
||||
uart_tx.write(0xff);
|
||||
|
||||
// Wait for a byte to
|
||||
select {
|
||||
case uart_rx.data_ready():
|
||||
uint8_t data = uart_rx.read();
|
||||
printf("Data received %d\n", data);
|
||||
...
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
UART configuration
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The ``uart_config_if`` connection can be optionally connected to
|
||||
either the UART Rx or Tx task e.g.::
|
||||
|
||||
...
|
||||
interface uart_tx_if i_tx;
|
||||
interface uart_cfg_if i_tx_cfg;
|
||||
input_gpio_if i_gpio_rx[1];
|
||||
par {
|
||||
...
|
||||
on tile[0]: uart_tx(i_tx, i_tx_cfg,
|
||||
115200, UART_PARITY_NONE, 8, 1,
|
||||
i_gpio_tx[0]);
|
||||
on tile[0]: app(i_tx, i_rx_cfg);
|
||||
...
|
||||
|
||||
The application can use this interface to dynamically reconfigure the
|
||||
UART e.g.::
|
||||
|
||||
void app(client uart_tx_if uart_tx,
|
||||
client uart_config_if uart_tx_cfg) {
|
||||
// Configure the UART to 9600 BAUD
|
||||
uart_tx_cfg.set_baud_rate(9600);
|
||||
// Write to the UART
|
||||
uart_tx.write(0xff);
|
||||
...
|
||||
|
||||
If runtime configuration is not required then ``null`` can be passed
|
||||
into the task instead of an interface connection.
|
||||
|
||||
Transmit buffering
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
There are two types of standard UART tx task: buffered and
|
||||
un-buffered.
|
||||
|
||||
The buffered UART will buffer characters written to the
|
||||
UART. It requires a separate logical core to feed characters from the
|
||||
buffer to the UART pin. This frees the application to perform other
|
||||
processing. The buffered UART will inform the application that data has been
|
||||
transmitted and that there is more space in the buffer by calling the
|
||||
:c:func:`ready_to_transmit` notification.
|
||||
|
||||
The unbuffered UART does not take its own logical core but calls to
|
||||
``write`` will block until the character has been sent.
|
||||
|
||||
Fast/Streaming UART usage
|
||||
.........................
|
||||
|
||||
The fast/streaming UART components are
|
||||
instantiated as parallel tasks that run in a
|
||||
``par`` statement. The can connect via a streaming channel.
|
||||
|
||||
.. figure:: images/fast_uart_task_diag.*
|
||||
|
||||
Fast/streaming UART task diagram
|
||||
|
||||
For example, the following code instantiates a strreaming UART rx and UART tx
|
||||
component and connects to them::
|
||||
|
||||
// Port declarations
|
||||
in port p_uart_rx = on tile[0] : XS1_PORT_1A;
|
||||
out port p_uart_tx = on tile[0] : XS1_PORT_1B;
|
||||
|
||||
#define TICKS_PER_BIT 20
|
||||
|
||||
int main() {
|
||||
streaming chan c_rx;
|
||||
streaming chan c_tx;
|
||||
par {
|
||||
on tile[0]: uart_tx_streaming(p_uart_tx, c_tx, TICKS_PER_BIT);
|
||||
on tile[0]: uart_rx_streaming(p_uart_rx, c_rx, TICKS_PER_BIT);
|
||||
on tile[0]: app(c_tx, c_rx);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
The streaming channel has a limited amount of buffering
|
||||
(~8 characters) but in general the application must deal with incoming
|
||||
data as soon as it arrives.
|
||||
|
||||
The application can interact with the component using the
|
||||
fast/streaming UART functions (see :ref:`fast_uart_api`) e.g.::
|
||||
|
||||
void app(streaming chanend c_tx, streaming chanend c_rx)
|
||||
{
|
||||
uart_tx_streaming_write_byte(c_tx, 0xff);
|
||||
uint8_t byte;
|
||||
uart_rx_streaming_read_byte(c_rx, byte);
|
||||
printf("Received: %d\n", byte);
|
||||
...
|
||||
|
||||
|newpage|
|
||||
|
||||
Half-duplex UART usage
|
||||
......................
|
||||
|
||||
The half-duplex components are instantiated as parallel tasks that run in a
|
||||
``par`` statement. The application
|
||||
connects via three interface connections: the ``uart_rx_if`` (for
|
||||
receiving data), the ``uart_tx_if`` (for transmitting data) and the
|
||||
``uart_control_if`` (for controlling the current direction of the UART).
|
||||
The component also has an optional configuration
|
||||
interface that lets the application change the speed and properties of
|
||||
the UART at run time.
|
||||
|
||||
.. figure:: images/half_duplex_task_diag.*
|
||||
|
||||
Half-duplex UART task diagram
|
||||
|
||||
For example, the following code instantiates a half-duplex UART
|
||||
component and connects to it::
|
||||
|
||||
#define TX_BUFFER_SIZE 16
|
||||
#define RX_BUFFER_SIZE 16
|
||||
|
||||
port p_uart = on tile[0] : XS1_PORT_1A;
|
||||
|
||||
int main() {
|
||||
interface uart_rx_if i_rx;
|
||||
interface uart_control_if i_control;
|
||||
interface uart_tx_buffered_if i_tx;
|
||||
|
||||
par {
|
||||
on tile[0] : uart_half_duplex(i_tx, i_rx, i_control, null,
|
||||
TX_BUFFER_SIZE, RX_BUFFER_SIZE,
|
||||
115200, UART_PARITY_NONE, 8, 1, p_uart);
|
||||
|
||||
on tile[0] : app(i_rx, i_tx, i_control);
|
||||
}
|
||||
|
||||
The application can use the interfaces in the same manner as a
|
||||
standard UART. The control interface can be used to change direction e.g.::
|
||||
|
||||
void app(client uart_rx_if i_uart_rx,
|
||||
client uart_tx_buffered_if i_uart_tx,
|
||||
client uart_control_if i_control) {
|
||||
uint8_t byte;
|
||||
i_control.set_mode(UART_RX_MODE);
|
||||
byte = i_uart_rx.read();
|
||||
i_control.set_mode(UART_TX_MODE);
|
||||
i_uart_tx.write(byte);
|
||||
...
|
||||
|
||||
|newpage|
|
||||
|
||||
Multi-UART usage
|
||||
................
|
||||
|
||||
Multi-UART components are instantiated as parallel tasks that run in a
|
||||
``par`` statement. The application
|
||||
can connect via a combination of a channel and
|
||||
an interface connection using the ``multi_uart_rx_if``
|
||||
(for the UART Rx component) or the ``multi_uart_tx_if`` (for the UART Tx
|
||||
component). These interfaces handle data for all the UARTS and runtime
|
||||
configuration.
|
||||
|
||||
.. figure:: images/multi_uart_task_diag.*
|
||||
|
||||
Multi-UART task diagram
|
||||
|
||||
For example, the following code instantiates a multi-UART RX and multi-UART TX
|
||||
component and connects to them::
|
||||
|
||||
in buffered port:32 p_uart_rx = XS1_PORT_8A;
|
||||
out buffered port:8 p_uart_tx = XS1_PORT_8B;
|
||||
in port p_uart_clk = XS1_PORT_1F;
|
||||
|
||||
clock clk_uart = XS1_CLKBLK_4;
|
||||
|
||||
int main(void)
|
||||
{
|
||||
interface multi_uart_rx_if i_rx;
|
||||
streaming chan c_rx;
|
||||
chan c_tx;
|
||||
interface multi_uart_tx_if i_tx;
|
||||
|
||||
// Set the rx and tx lines to be clocked off the clk_uart clock block
|
||||
configure_in_port(p_uart_rx, clk_uart);
|
||||
configure_out_port(p_uart_tx, clk_uart, 0);
|
||||
|
||||
// Configure an external clock for the clk_uart clock block
|
||||
configure_clock_src(clk_uart, p_uart_clk);
|
||||
start_clock(clk_uart);
|
||||
|
||||
// Start the rx/tx tasks and the application task
|
||||
par {
|
||||
multi_uart_rx(c_rx, i_rx, p_uart_rx, 8, 1843200, 115200, UART_PARITY_NONE, 8, 1);
|
||||
multi_uart_tx(c_tx, i_tx, p_uart_tx, 8, 1843200, 115200, UART_PARITY_NONE, 8, 1);
|
||||
app(c_rx, i_rx, c_tx, i_tx);
|
||||
}
|
||||
}
|
||||
|
||||
|newpage|
|
||||
The application communicates with all the UARTs via the single
|
||||
multi-UART interfaces e.g.::
|
||||
|
||||
void loopback(streaming chanend c_rx, client multi_uart_rx_if i_rx,
|
||||
chanend c_tx, client multi_uart_tx_if i_tx)
|
||||
{
|
||||
size_t uart_num;
|
||||
|
||||
// Configure each task with a chanend
|
||||
i_rx.init(c_rx);
|
||||
i_tx.init(c_tx);
|
||||
|
||||
while (1) {
|
||||
select {
|
||||
case multi_uart_data_ready(c_rx, uart_num):
|
||||
uint8_t data;
|
||||
if (i_rx.read(uart_num, data) == UART_RX_VALID_DATA) {
|
||||
if (i_tx.is_slot_free(uart_num)) {
|
||||
i_tx.write(uart_num, data);
|
||||
}
|
||||
else {
|
||||
debug_printf("Warning: TX buffer overflow on channel %d\n",
|
||||
uart_num);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Note that the ``init`` function on the interface must be called once
|
||||
before any use of the interface.
|
||||
|
||||
Configuring clocks for multi-UARTs
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The ports used for the multi-UART components need to have their clocks
|
||||
configured. For example, the following code configures the multi-UART
|
||||
RX port to run of a clock that is sourced by an incoming port::
|
||||
|
||||
// Set the rx line to be clocked off the clk_uart clock block
|
||||
configure_in_port(p_uart_rx, clk_uart);
|
||||
|
||||
// Configure an external clock for the clk_uart clock block
|
||||
configure_clock_src(clk_uart, p_uart_clk);
|
||||
start_clock(clk_uart);
|
||||
|
||||
For more information on configuring ports, please refer to the
|
||||
:ref:`XMOS Programming Guide<programming_guide>` for more details.
|
||||
|
||||
The multi-UART components take an argument which is the speed of the
|
||||
underlying clock. This way the component can attain the correct BAUD
|
||||
rate.
|
||||
|
||||
The multi-UART RX component must be clocked of a rate which is a
|
||||
multiple of the BAUD rates required.
|
||||
|
||||
If a port is not explicitly configured, then it will be clocked of the
|
||||
reference 100Mhz clock of the xCORE. The TX component can also work
|
||||
with this clock rate.
|
||||
|
||||
|newpage|
|
||||
|
||||
Runtime configuration of the Multi-UARTs
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The re-configuration of a one of the UARTS in the multi-UART is done
|
||||
via the main ``multi_uart_tx_if`` or ``multi_uart_rx_if``. In both
|
||||
cases, the user must call the ``pause`` function of the interface,
|
||||
then a reconfiguration function and then the ``restart`` function
|
||||
e.g.::
|
||||
|
||||
void app(streaming chanend c_rx, client multi_uart_rx_if i_rx)
|
||||
...
|
||||
i_rx.pause();
|
||||
// Set UART number 2 to baud rate 9600
|
||||
i_rx.set_baud_rate(2, 9600);
|
||||
i_rx.restart();
|
||||
....
|
||||
|
||||
Standard UART API
|
||||
-----------------
|
||||
|
||||
|
||||
UART configuration interface
|
||||
............................
|
||||
|
||||
.. doxygeninterface:: uart_config_if
|
||||
|
||||
|newpage|
|
||||
|
||||
.. doxygenenum:: uart_parity_t
|
||||
|
||||
|newpage|
|
||||
|
||||
UART receiver component
|
||||
.......................
|
||||
|
||||
.. doxygenfunction:: uart_rx
|
||||
|
||||
|newpage|
|
||||
|
||||
UART receive interface
|
||||
......................
|
||||
|
||||
.. doxygeninterface:: uart_rx_if
|
||||
|
||||
|newpage|
|
||||
|
||||
UART transmitter components
|
||||
...........................
|
||||
|
||||
.. doxygenfunction:: uart_tx
|
||||
|
||||
|newpage|
|
||||
|
||||
.. doxygenfunction:: uart_tx_buffered
|
||||
|
||||
|newpage|
|
||||
|
||||
UART transmit interface
|
||||
.......................
|
||||
|
||||
.. doxygeninterface:: uart_tx_if
|
||||
|
||||
|newpage|
|
||||
|
||||
UART transmit interface (buffered)
|
||||
..................................
|
||||
|
||||
.. doxygeninterface:: uart_tx_buffered_if
|
||||
|
||||
|newpage|
|
||||
|
||||
.. _fast_uart_api:
|
||||
|
||||
Fast/Streaming API
|
||||
-----------------------
|
||||
|
||||
Streaming receiver
|
||||
..................
|
||||
|
||||
.. doxygenfunction:: uart_rx_streaming
|
||||
.. doxygenfunction:: uart_rx_streaming_read_byte
|
||||
|
||||
Streaming transmitter
|
||||
.....................
|
||||
|
||||
.. doxygenfunction:: uart_tx_streaming
|
||||
.. doxygenfunction:: uart_tx_streaming_write_byte
|
||||
|
||||
Half-Duplex API
|
||||
---------------
|
||||
|
||||
Half-duplex component
|
||||
.....................
|
||||
|
||||
.. doxygenfunction:: uart_half_duplex
|
||||
|
||||
|newpage|
|
||||
|
||||
Half-duplex control interface
|
||||
.............................
|
||||
|
||||
.. doxygenenum:: uart_half_duplex_mode_t
|
||||
|
||||
.. doxygeninterface:: uart_control_if
|
||||
|
||||
|
||||
Multi-UART API
|
||||
--------------
|
||||
|
||||
Multi-UART receiver
|
||||
...................
|
||||
|
||||
.. doxygenfunction:: multi_uart_rx
|
||||
|
||||
|newpage|
|
||||
|
||||
Multi-UART receive interface
|
||||
............................
|
||||
|
||||
.. doxygenenum:: multi_uart_read_result_t
|
||||
|
||||
.. doxygeninterface:: multi_uart_rx_if
|
||||
|
||||
|newpage|
|
||||
|
||||
Multi-UART transmitter
|
||||
......................
|
||||
|
||||
.. doxygenfunction:: multi_uart_tx
|
||||
|
||||
|newpage|
|
||||
|
||||
Multi-UART transmit interface
|
||||
.............................
|
||||
|
||||
.. doxygeninterface:: multi_uart_tx_if
|
||||
|
||||
|newpage|
|
||||
|
||||
|appendix|
|
||||
|
||||
Known Issues
|
||||
------------
|
||||
|
||||
No known issues.
|
||||
|
||||
.. include:: ../../../CHANGELOG.rst
|
||||
|
||||
2
lib_uart/lib_uart/doc/rst/xdoc.conf
Normal file
2
lib_uart/lib_uart/doc/rst/xdoc.conf
Normal file
@@ -0,0 +1,2 @@
|
||||
XMOSNEWSTYLE = 1
|
||||
DOXYGEN_DIRS=../../api
|
||||
6
lib_uart/lib_uart/lib_build_info.cmake
Normal file
6
lib_uart/lib_uart/lib_build_info.cmake
Normal file
@@ -0,0 +1,6 @@
|
||||
set(LIB_NAME lib_uart)
|
||||
set(LIB_VERSION 3.1.0)
|
||||
set(LIB_INCLUDES api)
|
||||
set(LIB_COMPILER_FLAGS -Os)
|
||||
|
||||
XMOS_REGISTER_MODULE()
|
||||
18
lib_uart/lib_uart/module_build_info
Normal file
18
lib_uart/lib_uart/module_build_info
Normal file
@@ -0,0 +1,18 @@
|
||||
# You can set flags specifically for your module by using the MODULE_XCC_FLAGS
|
||||
# variable. So the following
|
||||
#
|
||||
# MODULE_XCC_FLAGS = $(XCC_FLAGS) -O3
|
||||
#
|
||||
# specifies that everything in the modules should have the application
|
||||
# build flags with -O3 appended (so the files will build at
|
||||
# optimization level -O3).
|
||||
#
|
||||
# You can also set MODULE_XCC_C_FLAGS, MODULE_XCC_XC_FLAGS etc..
|
||||
|
||||
MODULE_XCC_XC_FLAGS = $(XCC_XC_FLAGS) -O3
|
||||
|
||||
VERSION = 3.1.0
|
||||
|
||||
DEPENDENT_MODULES = lib_xassert(>=3.0.0) lib_gpio(>=1.1.0) lib_logging(>=2.1.0)
|
||||
|
||||
OPTIONAL_HEADERS += uart_rx_conf.h
|
||||
296
lib_uart/lib_uart/src/multi_uart_rx.xc
Normal file
296
lib_uart/lib_uart/src/multi_uart_rx.xc
Normal file
@@ -0,0 +1,296 @@
|
||||
// Copyright (c) 2015-2016, XMOS Ltd, All rights reserved
|
||||
#include <uart.h>
|
||||
#include <xclib.h>
|
||||
#include <xs1.h>
|
||||
#include <xassert.h>
|
||||
|
||||
#ifndef MUART_RX_CHAN_COUNT
|
||||
#define MUART_RX_CHAN_COUNT (8)
|
||||
#endif
|
||||
|
||||
#define MULTI_UART_GO 0xFE
|
||||
|
||||
/**
|
||||
* Structure to hold configuration information and data for the UART channel RX side -
|
||||
* this should only be interacted with via the API and not accessed directly.
|
||||
*/
|
||||
typedef struct multi_uart_rx_info_t
|
||||
{
|
||||
int bits_per_byte; /**< length of the UART character */
|
||||
int uart_word_len; /**< number of bits in UART word e.g. Start bit + 8 bit data + parity + 2 stop bits is a 12 bit UART word */
|
||||
int clocks_per_bit; /**< define baud rate in relation to max baud rate */
|
||||
int invert_output; /**< define if output is inverted (set to 1) */
|
||||
int use_sample; /**< sample in bit stream to use */
|
||||
|
||||
int num_stop_bits;
|
||||
uart_parity_t parity;
|
||||
} multi_uart_rx_info_t;
|
||||
|
||||
|
||||
extern inline void multi_uart_data_ready(streaming chanend c_rx, size_t &index);
|
||||
|
||||
static inline int parity32(unsigned x, enum uart_parity_t parity)
|
||||
{
|
||||
// To compute even / odd parity the checksum should be initialised
|
||||
// to 0 / 1 respectively. The values of the uart_parity_t have been
|
||||
// chosen so the parity can be used to initialise the checksum
|
||||
// directly.
|
||||
assert(UART_PARITY_EVEN == 0);
|
||||
assert(UART_PARITY_ODD == 1);
|
||||
crc32(x, parity, 1);
|
||||
return (x & 1);
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
enum multi_uart_read_result_t
|
||||
multi_uart_rx_validate_word(size_t index,
|
||||
unsigned &data,
|
||||
multi_uart_rx_info_t &info)
|
||||
{
|
||||
|
||||
switch (info.num_stop_bits) {
|
||||
case 1:
|
||||
if ((data & 0x1) != 0x1)
|
||||
return UART_RX_INVALID_DATA;
|
||||
data >>= 1;
|
||||
break;
|
||||
case 2:
|
||||
if ((data & 0x3) != 0x3)
|
||||
return UART_RX_INVALID_DATA;
|
||||
data >>= 2;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (info.parity)
|
||||
{
|
||||
case UART_PARITY_ODD:
|
||||
case UART_PARITY_EVEN:
|
||||
unsigned parity = data & 1;
|
||||
data >>= 1;
|
||||
data = (bitrev(data) >> (32 - info.bits_per_byte));
|
||||
if (parity != parity32(data, info.parity))
|
||||
return UART_RX_INVALID_DATA;
|
||||
break;
|
||||
case UART_PARITY_NONE:
|
||||
data = (bitrev(data) >> (32 - info.bits_per_byte));
|
||||
break;
|
||||
}
|
||||
|
||||
return UART_RX_VALID_DATA;
|
||||
}
|
||||
|
||||
static void calc_word_len(multi_uart_rx_info_t &info)
|
||||
{
|
||||
info.uart_word_len = info.bits_per_byte + info.num_stop_bits;
|
||||
if (info.parity != UART_PARITY_NONE)
|
||||
info.uart_word_len += 1;
|
||||
}
|
||||
|
||||
static unsafe void initialize_slot_info(unsigned clock_rate_hz,
|
||||
unsigned baud,
|
||||
enum uart_parity_t parity,
|
||||
unsigned bits_per_byte,
|
||||
unsigned stop_bits,
|
||||
multi_uart_rx_info_t * unsafe rx_slot_info)
|
||||
{
|
||||
for (int i = 0; i < MUART_RX_CHAN_COUNT; i++) {
|
||||
rx_slot_info[i].clocks_per_bit = clock_rate_hz / baud;
|
||||
rx_slot_info[i].use_sample = rx_slot_info[i].clocks_per_bit / 2;
|
||||
rx_slot_info[i].parity = parity;
|
||||
rx_slot_info[i].num_stop_bits = stop_bits;
|
||||
rx_slot_info[i].bits_per_byte = bits_per_byte;
|
||||
calc_word_len(rx_slot_info[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[[distributable]]
|
||||
void multi_uart_rx_buffer(server interface multi_uart_rx_if i,
|
||||
unsigned clock_rate_hz,
|
||||
unsigned baud,
|
||||
enum uart_parity_t parity,
|
||||
unsigned bits_per_byte,
|
||||
unsigned stop_bits)
|
||||
{
|
||||
unsigned * unsafe rx_slots;
|
||||
multi_uart_rx_info_t * unsafe rx_slot_info;
|
||||
unsafe streaming chanend c;
|
||||
while (1) {
|
||||
select {
|
||||
case i.init(streaming chanend c0):
|
||||
unsafe {
|
||||
c = c0;
|
||||
c :> rx_slots;
|
||||
c :> rx_slot_info;
|
||||
initialize_slot_info(clock_rate_hz,
|
||||
baud, parity,
|
||||
bits_per_byte,
|
||||
stop_bits,
|
||||
rx_slot_info);
|
||||
c <: 0;
|
||||
}
|
||||
break;
|
||||
case i.read(size_t index, uint8_t &data) -> enum multi_uart_read_result_t res:
|
||||
unsafe {
|
||||
unsigned x = rx_slots[index];
|
||||
res = multi_uart_rx_validate_word(index, x, rx_slot_info[index]);
|
||||
data = x;
|
||||
}
|
||||
break;
|
||||
case i.pause():
|
||||
unsafe {
|
||||
c <: 0;
|
||||
}
|
||||
break;
|
||||
case i.restart():
|
||||
unsafe {
|
||||
c <: 0;
|
||||
}
|
||||
break;
|
||||
case i.set_baud_rate(size_t index, unsigned baud_rate):
|
||||
unsafe {
|
||||
rx_slot_info[index].clocks_per_bit = clock_rate_hz / baud_rate;
|
||||
rx_slot_info[index].use_sample = rx_slot_info[index].clocks_per_bit/2;
|
||||
}
|
||||
break;
|
||||
case i.set_parity(size_t index, enum uart_parity_t parity):
|
||||
unsafe {
|
||||
rx_slot_info[index].parity = parity;
|
||||
calc_word_len(rx_slot_info[index]);
|
||||
}
|
||||
break;
|
||||
case i.set_stop_bits(size_t index, unsigned stop_bits):
|
||||
unsafe {
|
||||
rx_slot_info[index].num_stop_bits = stop_bits;
|
||||
calc_word_len(rx_slot_info[index]);
|
||||
}
|
||||
break;
|
||||
case i.set_bits_per_byte(size_t index, unsigned bpb):
|
||||
unsafe {
|
||||
rx_slot_info[index].bits_per_byte = bpb;
|
||||
calc_word_len(rx_slot_info[index]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
typedef enum e_uart_rx_chan_state
|
||||
{
|
||||
idle = 0x0,
|
||||
store_idle,
|
||||
data_bits = 0x1,
|
||||
} e_uart_rx_chan_state;
|
||||
|
||||
extern "C" {
|
||||
void uart_rx_loop_8(in buffered port:32 pUart, e_uart_rx_chan_state state[],
|
||||
int tick_count[], int bit_count[], int uart_word[],
|
||||
streaming chanend cUART, unsigned rx_char_slots[],
|
||||
unsigned fourBitConfig[],
|
||||
multi_uart_rx_info_t rx_slot_info[],
|
||||
unsigned startBitLookup[]);
|
||||
}
|
||||
|
||||
void multi_uart_rx_pins(streaming chanend c,
|
||||
in buffered port:32 p,
|
||||
unsigned num_uarts)
|
||||
{
|
||||
e_uart_rx_chan_state state[MUART_RX_CHAN_COUNT];
|
||||
|
||||
int tickcount[MUART_RX_CHAN_COUNT];
|
||||
int bit_count[MUART_RX_CHAN_COUNT];
|
||||
int uart_word[MUART_RX_CHAN_COUNT];
|
||||
|
||||
unsigned fourBitLookup0[16];
|
||||
unsigned fourBitLookup1[16];
|
||||
unsigned fourBitConfig[MUART_RX_CHAN_COUNT];
|
||||
|
||||
unsigned startBitLookupEnabled[16];
|
||||
unsigned startBitLookupDisabled[16];
|
||||
unsigned startBitConfig[MUART_RX_CHAN_COUNT];
|
||||
|
||||
multi_uart_rx_info_t rx_slot_info[MUART_RX_CHAN_COUNT];
|
||||
|
||||
unsigned rx_slots[MUART_RX_CHAN_COUNT];
|
||||
|
||||
/*
|
||||
* Four bit look up table that takes the CRC32 with poly 0xf of the masked off 32 bit word
|
||||
* from an 8 bit port and translates it into the 4 desired bits - huzzah!
|
||||
* bit 4-7 indicates whether there could be a start bit and how many are swallowed
|
||||
*/
|
||||
fourBitLookup0[15] = 0x00;
|
||||
fourBitLookup0[7] = 0x31;
|
||||
fourBitLookup0[13] = 0x02;
|
||||
fourBitLookup0[5] = 0x23;
|
||||
fourBitLookup0[0] = 0x04;
|
||||
fourBitLookup0[8] = 0x05;
|
||||
fourBitLookup0[2] = 0x06;
|
||||
fourBitLookup0[10] = 0x17;
|
||||
fourBitLookup0[11] = 0x08;
|
||||
fourBitLookup0[3] = 0x09;
|
||||
fourBitLookup0[9] = 0x0a;
|
||||
fourBitLookup0[1] = 0x0b;
|
||||
fourBitLookup0[4] = 0x0c;
|
||||
fourBitLookup0[12] = 0x0d;
|
||||
fourBitLookup0[6] = 0x0e;
|
||||
fourBitLookup0[14] = 0x0f;
|
||||
|
||||
fourBitLookup1[15] = 0x00;
|
||||
fourBitLookup1[7] = 0x01;
|
||||
fourBitLookup1[13] = 0x02;
|
||||
fourBitLookup1[5] = 0x03;
|
||||
fourBitLookup1[0] = 0x04;
|
||||
fourBitLookup1[8] = 0x05;
|
||||
fourBitLookup1[2] = 0x06;
|
||||
fourBitLookup1[10] = 0x07;
|
||||
fourBitLookup1[11] = 0x18;
|
||||
fourBitLookup1[3] = 0x09;
|
||||
fourBitLookup1[9] = 0x0a;
|
||||
fourBitLookup1[1] = 0x0b;
|
||||
fourBitLookup1[4] = 0x2c;
|
||||
fourBitLookup1[12] = 0x0d;
|
||||
fourBitLookup1[6] = 0x3e;
|
||||
fourBitLookup1[14] = 0x0f;
|
||||
|
||||
for (int i = 0; i < 16; i++)
|
||||
{
|
||||
startBitLookupEnabled[i] = 0xffffffff;
|
||||
startBitLookupDisabled[i] = 0xffffffff;
|
||||
}
|
||||
|
||||
startBitLookupEnabled[0b0000] = 4;
|
||||
startBitLookupEnabled[0b0001] = 3;
|
||||
startBitLookupEnabled[0b0011] = 2;
|
||||
startBitLookupEnabled[0b0111] = 1;
|
||||
|
||||
unsafe {
|
||||
c <: (void * unsafe) rx_slots;
|
||||
c <: (void * unsafe) rx_slot_info;
|
||||
}
|
||||
while (1) {
|
||||
c :> int;
|
||||
/* initialisation loop */
|
||||
for (int i = 0; i < MUART_RX_CHAN_COUNT; i++) {
|
||||
state[i] = idle;
|
||||
uart_word[i] = 0;
|
||||
bit_count[i] = 0;
|
||||
tickcount[i] = rx_slot_info[i].use_sample;
|
||||
unsafe {
|
||||
if (i < num_uarts) {
|
||||
startBitConfig[i] =
|
||||
(unsigned) (unsigned * unsafe) startBitLookupEnabled;
|
||||
} else {
|
||||
startBitConfig[i] =
|
||||
(unsigned) (unsigned * unsafe) startBitLookupDisabled;
|
||||
}
|
||||
|
||||
fourBitConfig[i] = (unsigned) (unsigned * unsafe) fourBitLookup0;
|
||||
}
|
||||
}
|
||||
|
||||
/* run ASM function - will exit on reconfiguration request over the channel */
|
||||
uart_rx_loop_8(p, state, tickcount, bit_count, uart_word,
|
||||
c, rx_slots, fourBitConfig, rx_slot_info, startBitConfig);
|
||||
}
|
||||
}
|
||||
296
lib_uart/lib_uart/src/multi_uart_tx.xc
Normal file
296
lib_uart/lib_uart/src/multi_uart_tx.xc
Normal file
@@ -0,0 +1,296 @@
|
||||
// Copyright (c) 2015-2016, XMOS Ltd, All rights reserved
|
||||
#include <uart.h>
|
||||
#include <print.h>
|
||||
#include <xassert.h>
|
||||
#include <xs1.h>
|
||||
#include <xclib.h>
|
||||
|
||||
#define MUART_TX_MAX_BAUD (115200)
|
||||
|
||||
#ifndef MUART_TX_CHAN_COUNT
|
||||
#define MUART_TX_CHAN_COUNT (8)
|
||||
#endif
|
||||
|
||||
#ifndef MUART_TX_BUF_SIZE
|
||||
#define MUART_TX_BUF_SIZE (16)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Structure to hold configuration information and data for the
|
||||
* UART TX channels.
|
||||
*/
|
||||
typedef struct multi_uart_tx_info_t {
|
||||
/** Configuration constants */
|
||||
unsigned bits_per_byte; /**< length of the UART char */
|
||||
unsigned uart_word_len; /**< number of bits in UART word e.g. Start bit + 8 bit data + parity + 2 stop bits is 12 bit UART word */
|
||||
unsigned clocks_per_bit; /**< define baud rate in relation to max baud rate */
|
||||
|
||||
/** Mode definition */
|
||||
unsigned num_stop_bits;
|
||||
uart_parity_t parity;
|
||||
|
||||
/** Buffering variables */
|
||||
size_t wr_ptr; /**< Write pointer */
|
||||
size_t rd_ptr; /**< Read pointer */
|
||||
uint32_t buf[MUART_TX_BUF_SIZE]; /**< Buffer array */
|
||||
|
||||
} multi_uart_tx_info_t;
|
||||
|
||||
|
||||
static inline int parity32(unsigned x, enum uart_parity_t parity)
|
||||
{
|
||||
// To compute even / odd parity the checksum should be initialised
|
||||
// to 0 / 1 respectively. The values of the art_tx_parity have been
|
||||
// chosen so the parity can be used to initialise the checksum
|
||||
// directly.
|
||||
assert(UART_PARITY_EVEN == 0);
|
||||
assert(UART_PARITY_ODD == 1);
|
||||
crc32(x, parity, 1);
|
||||
return (x & 1);
|
||||
}
|
||||
|
||||
unsigned int uart_tx_assemble_word(multi_uart_tx_info_t &info,
|
||||
unsigned int uart_char )
|
||||
{
|
||||
unsigned int full_word = 0;
|
||||
int pos = 0;
|
||||
/* format data into the word (msb -> lsb) STOP|PARITY|DATA|START */
|
||||
|
||||
pos += 1;
|
||||
|
||||
/* uart word - mask, reverse char and put into full word */
|
||||
unsigned mask = (1 << info.bits_per_byte) - 1;
|
||||
uart_char = uart_char & mask;
|
||||
full_word |= uart_char << pos;
|
||||
pos += info.bits_per_byte;
|
||||
|
||||
/* parity */
|
||||
if (info.parity != UART_PARITY_NONE)
|
||||
{
|
||||
int parity = parity32(uart_char, info.parity);
|
||||
full_word |= (parity << pos);
|
||||
pos += 1;
|
||||
}
|
||||
|
||||
unsigned stop_bits = (1 << info.num_stop_bits) - 1;
|
||||
|
||||
full_word |= stop_bits << pos;
|
||||
pos += info.num_stop_bits;
|
||||
|
||||
/* do calc XOR'd output */
|
||||
full_word = ((full_word << 1) | 0x1) ^ full_word;
|
||||
|
||||
return full_word;
|
||||
}
|
||||
|
||||
|
||||
[[distributable]]
|
||||
void multi_uart_tx_buffer(server interface multi_uart_tx_if i_tx,
|
||||
unsigned clock_rate_hz,
|
||||
unsigned baud,
|
||||
enum uart_parity_t parity,
|
||||
unsigned bits_per_byte,
|
||||
unsigned stop_bits)
|
||||
{
|
||||
multi_uart_tx_info_t tx_slot_info[MUART_TX_CHAN_COUNT];
|
||||
unsafe chanend c;
|
||||
|
||||
if (clock_rate_hz >= MUART_TX_MAX_BAUD) {
|
||||
// Update to the effective tick rate of the transmitter
|
||||
clock_rate_hz = MUART_TX_MAX_BAUD;
|
||||
}
|
||||
|
||||
/* MUART_TX_BUF_SIZE must be a power of 2 */
|
||||
assert((MUART_TX_BUF_SIZE >> clz(bitrev(MUART_TX_BUF_SIZE))) == 1);
|
||||
assert((bits_per_byte > 0) && (bits_per_byte <= 8) && "Invalid number of bits per byte");
|
||||
|
||||
unsigned initial_clocks_per_bit = clock_rate_hz / baud;
|
||||
|
||||
for (size_t i = 0; i < MUART_TX_CHAN_COUNT; i++) {
|
||||
tx_slot_info[i].clocks_per_bit = initial_clocks_per_bit;
|
||||
tx_slot_info[i].num_stop_bits = stop_bits;
|
||||
tx_slot_info[i].parity = parity;
|
||||
tx_slot_info[i].bits_per_byte = bits_per_byte;
|
||||
tx_slot_info[i].uart_word_len = 1 + bits_per_byte + stop_bits;
|
||||
if (tx_slot_info[i].parity != UART_PARITY_NONE) {
|
||||
tx_slot_info[i].uart_word_len += 1;
|
||||
}
|
||||
tx_slot_info[i].rd_ptr = 0;
|
||||
tx_slot_info[i].wr_ptr = 0;
|
||||
}
|
||||
|
||||
while (1) {
|
||||
select {
|
||||
case i_tx.init(chanend c0):
|
||||
unsafe {
|
||||
c = (unsafe chanend) c0;
|
||||
c <: (multi_uart_tx_info_t * unsafe) tx_slot_info;
|
||||
}
|
||||
break;
|
||||
case i_tx.is_slot_free(size_t index) -> int result:
|
||||
unsigned w = (tx_slot_info[index].wr_ptr + 1) % MUART_TX_BUF_SIZE;
|
||||
result = (w != tx_slot_info[index].rd_ptr);
|
||||
break;
|
||||
case i_tx.write(size_t index, uint8_t byte):
|
||||
unsigned w = (tx_slot_info[index].wr_ptr + 1) % MUART_TX_BUF_SIZE;
|
||||
if (w == tx_slot_info[index].rd_ptr)
|
||||
break;
|
||||
unsigned uart_word = uart_tx_assemble_word(tx_slot_info[index], byte);
|
||||
tx_slot_info[index].buf[tx_slot_info[index].wr_ptr] = uart_word;
|
||||
tx_slot_info[index].wr_ptr = w;
|
||||
break;
|
||||
case i_tx.pause():
|
||||
unsafe {
|
||||
c <: 0;
|
||||
}
|
||||
break;
|
||||
case i_tx.restart():
|
||||
unsafe {
|
||||
c <: 0;
|
||||
}
|
||||
break;
|
||||
case i_tx.set_baud_rate(size_t index, unsigned baud_rate):
|
||||
unsafe {
|
||||
tx_slot_info[index].clocks_per_bit = clock_rate_hz / baud_rate;
|
||||
}
|
||||
break;
|
||||
case i_tx.set_parity(size_t index, enum uart_parity_t parity):
|
||||
unsafe {
|
||||
tx_slot_info[index].parity = parity;
|
||||
}
|
||||
break;
|
||||
case i_tx.set_stop_bits(size_t index, unsigned stop_bits):
|
||||
unsafe {
|
||||
tx_slot_info[index].num_stop_bits = stop_bits;
|
||||
}
|
||||
break;
|
||||
case i_tx.set_bits_per_byte(size_t index, unsigned bits_per_byte):
|
||||
assert((bits_per_byte > 0) && (bits_per_byte <= 8) && "Invalid number of bits per byte");
|
||||
unsafe {
|
||||
tx_slot_info[index].bits_per_byte = bits_per_byte;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma unsafe arrays
|
||||
void multi_uart_tx_pins(chanend c,
|
||||
out buffered port:8 p,
|
||||
unsigned clock_rate_hz)
|
||||
{
|
||||
unsigned port_val;
|
||||
unsigned ts;
|
||||
const unsigned idle_val = 0xFFFFFFFF;
|
||||
|
||||
unsigned current_word[MUART_TX_CHAN_COUNT];
|
||||
unsigned current_word_pos[MUART_TX_CHAN_COUNT];
|
||||
unsigned tick_count[MUART_TX_CHAN_COUNT];
|
||||
unsigned clocks_per_bit[MUART_TX_CHAN_COUNT];
|
||||
|
||||
volatile multi_uart_tx_info_t * unsafe tx_slot_info;
|
||||
unsigned ts_inc = 1;
|
||||
|
||||
if (clock_rate_hz >= MUART_TX_MAX_BAUD) {
|
||||
// Update to the effective tick rate of the transmitter
|
||||
ts_inc = clock_rate_hz / MUART_TX_MAX_BAUD;
|
||||
}
|
||||
else {
|
||||
ts_inc = 1;
|
||||
}
|
||||
|
||||
|
||||
/* wait until release (post config) */
|
||||
unsafe {
|
||||
c :> tx_slot_info;
|
||||
}
|
||||
|
||||
/* initialise data structures */
|
||||
for (int i = 0; i < MUART_TX_CHAN_COUNT; i++)
|
||||
{
|
||||
current_word[i] = 0;
|
||||
current_word_pos[i] = 0; // disable channel
|
||||
tick_count[i] = 0;
|
||||
unsafe {
|
||||
clocks_per_bit[i] = tx_slot_info[i].clocks_per_bit;
|
||||
}
|
||||
}
|
||||
|
||||
port_val = idle_val;
|
||||
/* initialise port */
|
||||
p <: port_val @ ts;
|
||||
// Wait for 20 port ticks for the while(1) to be set up. TODO: This could be
|
||||
// optimised and the number of ticks could be calculated from the BAUD rate.
|
||||
ts += 20 + ts_inc;
|
||||
|
||||
while (1)
|
||||
{
|
||||
/* process the next bit on the ports */
|
||||
#pragma xta endpoint "tx_bit_ep0"
|
||||
p @ ts <: port_val;
|
||||
ts += ts_inc;
|
||||
/* calculate next port_val */
|
||||
#pragma loop unroll
|
||||
for (int i = 0; i < MUART_TX_CHAN_COUNT; i++)
|
||||
{
|
||||
#pragma xta label "update_loop"
|
||||
tick_count[i]--;
|
||||
/* active and counter tells us we need to send a bit */
|
||||
if (tick_count[i] == 0 && current_word_pos[i])
|
||||
{
|
||||
port_val ^= (current_word[i] & 1) << i;
|
||||
current_word[i] >>= 1;
|
||||
current_word_pos[i] -= 1;
|
||||
tick_count[i] = clocks_per_bit[i];
|
||||
}
|
||||
|
||||
unsafe {
|
||||
if ((current_word_pos[i] == 0) &&
|
||||
(tx_slot_info[i].rd_ptr != tx_slot_info[i].wr_ptr)) // rd == wr => empty
|
||||
{
|
||||
int rd_ptr = tx_slot_info[i].rd_ptr;
|
||||
current_word[i] = tx_slot_info[i].buf[rd_ptr];
|
||||
rd_ptr = (rd_ptr + 1) % MUART_TX_BUF_SIZE;
|
||||
tx_slot_info[i].rd_ptr = rd_ptr;
|
||||
|
||||
current_word_pos[i] = tx_slot_info[i].uart_word_len;
|
||||
tick_count[i] = clocks_per_bit[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* check for request to pause for reconfigure */
|
||||
unsafe {
|
||||
select
|
||||
{
|
||||
#pragma xta endpoint "tx_bit_ep1"
|
||||
case c :> int _: // anything here will pause the TX thread
|
||||
|
||||
/* set port to IDLE */
|
||||
port_val = idle_val;
|
||||
p <: port_val @ ts;
|
||||
|
||||
/* allow otherside to hold us while we wait */
|
||||
c :> int _;
|
||||
|
||||
/* initialise data structures */
|
||||
for (int i = 0; i < MUART_TX_CHAN_COUNT; i++)
|
||||
{
|
||||
current_word[i] = 0;
|
||||
current_word_pos[i] = 0; // disable channel
|
||||
tick_count[i] = 0;
|
||||
tx_slot_info[i].wr_ptr = 0;
|
||||
tx_slot_info[i].rd_ptr = 0;
|
||||
clocks_per_bit[i] = tx_slot_info[i].clocks_per_bit;
|
||||
}
|
||||
|
||||
/* initialise port */
|
||||
p <: port_val @ ts;
|
||||
ts += 20;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
9
lib_uart/lib_uart/src/uart.xscope
Normal file
9
lib_uart/lib_uart/src/uart.xscope
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xSCOPEconfig>
|
||||
<Module name="Uart RX" id="UART_RX">
|
||||
<Probe name="value" type="DISCRETE" datatype="UINT" units=""/>
|
||||
</Module>
|
||||
<Module name="Uart TX" id="UART_TX">
|
||||
<Probe name="value" type="DISCRETE" datatype="UINT" units=""/>
|
||||
</Module>
|
||||
</xSCOPEconfig>
|
||||
39
lib_uart/lib_uart/src/uart_fast_rx.xc
Normal file
39
lib_uart/lib_uart/src/uart_fast_rx.xc
Normal file
@@ -0,0 +1,39 @@
|
||||
// Copyright (c) 2014-2016, XMOS Ltd, All rights reserved
|
||||
|
||||
#include <xs1.h>
|
||||
#include <xclib.h>
|
||||
#include <uart.h>
|
||||
|
||||
void uart_rx_fast_init(in port p, const clock clkblk){
|
||||
//set port into clocked mode
|
||||
configure_in_port_no_ready(p, clkblk);
|
||||
//clear the receive buffer
|
||||
clearbuf(p);
|
||||
}
|
||||
|
||||
void uart_rx_streaming_read_byte(streaming chanend c, uint8_t &byte)
|
||||
{
|
||||
c :> byte;
|
||||
}
|
||||
|
||||
void uart_rx_streaming(in port pIn, streaming chanend cOut, int clocks) {
|
||||
int dt2 = (clocks * 3)>>1; //one and a half bit times
|
||||
int dt = clocks;
|
||||
int t;
|
||||
unsigned int data = 0;
|
||||
while (1) {
|
||||
pIn when pinseq(0) :> int _ @ t; //wait until falling edge of start bit
|
||||
t += dt2;
|
||||
#pragma loop unroll(8)
|
||||
for(int i = 0; i < 8; i++) {
|
||||
pIn @ t :> >> data; //sample value when port timer = t
|
||||
//inlcudes post right shift
|
||||
t += dt;
|
||||
}
|
||||
data >>= 24; //shift into MSB
|
||||
cOut <: (unsigned char) data; //send to client
|
||||
pIn @ t :> int _;
|
||||
data = 0;
|
||||
}
|
||||
}
|
||||
|
||||
32
lib_uart/lib_uart/src/uart_fast_tx.xc
Normal file
32
lib_uart/lib_uart/src/uart_fast_tx.xc
Normal file
@@ -0,0 +1,32 @@
|
||||
// Copyright (c) 2014-2016, XMOS Ltd, All rights reserved
|
||||
|
||||
#include <xs1.h>
|
||||
#include <uart.h>
|
||||
|
||||
void uart_tx_fast_init(out port p, const clock clkblk){
|
||||
//set to clocked port, with initial value 1 (idle for UART)
|
||||
configure_out_port_no_ready(p, clkblk, 1);
|
||||
}
|
||||
|
||||
void uart_tx_streaming_write_byte(streaming chanend c, uint8_t byte)
|
||||
{
|
||||
c <: byte;
|
||||
}
|
||||
|
||||
void uart_tx_streaming(out port p, streaming chanend c, int clocks) {
|
||||
int t;
|
||||
unsigned char b;
|
||||
while (1) {
|
||||
c :> b;
|
||||
p <: 0 @ t; //send start bit and timestamp (grab port timer value)
|
||||
t += clocks;
|
||||
#pragma loop unroll(8)
|
||||
for(int i = 0; i < 8; i++) {
|
||||
p @ t <: >> b; //timed output with post right shift
|
||||
t += clocks;
|
||||
}
|
||||
p @ t <: 1; //send stop bit
|
||||
t += clocks;
|
||||
p @ t <: 1; //wait until end of stop bit
|
||||
}
|
||||
}
|
||||
434
lib_uart/lib_uart/src/uart_half_duplex.xc
Normal file
434
lib_uart/lib_uart/src/uart_half_duplex.xc
Normal file
@@ -0,0 +1,434 @@
|
||||
// Copyright (c) 2015-2016, XMOS Ltd, All rights reserved
|
||||
|
||||
// UART API Header
|
||||
#include "uart.h"
|
||||
#include "uart_half_duplex.h"
|
||||
|
||||
#include <xclib.h>
|
||||
#include <xs1.h>
|
||||
#include <xscope.h>
|
||||
|
||||
#include "xassert.h"
|
||||
|
||||
static inline int parity32(unsigned x, uart_parity_t parity)
|
||||
{
|
||||
// To compute even / odd parity the checksum should be initialised to 0 / 1
|
||||
// respectively. The values of the art_tx_parity have been chosen so the
|
||||
// parity can be used to initialise the checksum directly.
|
||||
assert(UART_PARITY_EVEN == 0);
|
||||
assert(UART_PARITY_ODD == 1);
|
||||
crc32(x, parity, 1);
|
||||
return (x & 1);
|
||||
}
|
||||
|
||||
static inline int buffer_full(size_t rdptr, size_t wrptr, int buf_length)
|
||||
{
|
||||
wrptr++;
|
||||
if (wrptr == buf_length)
|
||||
wrptr = 0;
|
||||
return (wrptr == rdptr);
|
||||
}
|
||||
|
||||
static inline void init_transmit(uint8_t buffer[buf_length],
|
||||
unsigned buf_length,
|
||||
unsigned &rdptr, unsigned &wrptr,
|
||||
out port p, enum uart_tx_state &state,
|
||||
unsigned &bit_count, int &t, int bit_time,
|
||||
unsigned &byte)
|
||||
{
|
||||
timer tmr;
|
||||
if (state != WAITING_FOR_DATA || rdptr == wrptr)
|
||||
return;
|
||||
byte = buffer[rdptr];
|
||||
|
||||
// Trace the outgoing data
|
||||
//xscope_char(UART_TX_VALUE, byte);
|
||||
|
||||
rdptr++;
|
||||
if (rdptr == buf_length)
|
||||
rdptr = 0;
|
||||
state = OUTPUTTING_DATA_BIT;
|
||||
|
||||
bit_count = 0;
|
||||
|
||||
// Output start bit
|
||||
tmr :> t;
|
||||
t+=bit_time;
|
||||
tmr when timerafter(t) :> void;
|
||||
|
||||
p <: 0;
|
||||
t += bit_time;
|
||||
}
|
||||
|
||||
|
||||
static inline int add_to_buffer(uint8_t buffer[n], unsigned n,
|
||||
unsigned &rdptr, unsigned &wrptr,
|
||||
uint8_t data)
|
||||
{
|
||||
int new_wrptr = wrptr + 1;
|
||||
|
||||
if (new_wrptr >= n)
|
||||
new_wrptr = 0;
|
||||
|
||||
if (new_wrptr == rdptr) {
|
||||
// buffer full
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Output tracing information of the values entering the buffer
|
||||
// xscope_char(UART_RX_VALUE, data);
|
||||
|
||||
buffer[wrptr] = data;
|
||||
wrptr = new_wrptr;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static inline void wait_when_pins_eq(port pin, int value)
|
||||
{
|
||||
assert(value == 1 || value == 0);
|
||||
char current;
|
||||
do {
|
||||
pin :> current;
|
||||
} while (current != value);
|
||||
}
|
||||
|
||||
|
||||
void uart_half_duplex(server interface uart_tx_buffered_if i_tx,
|
||||
server interface uart_rx_if i_rx,
|
||||
server interface uart_control_if i_control,
|
||||
server interface uart_config_if ?i_config,
|
||||
const static unsigned tx_buf_length,
|
||||
const static unsigned rx_buf_length,
|
||||
unsigned baud,
|
||||
uart_parity_t parity,
|
||||
unsigned bits_per_byte,
|
||||
unsigned stop_bits,
|
||||
port p_uart)
|
||||
{
|
||||
enum uart_tx_state tx_state = WAITING_FOR_DATA;
|
||||
enum uart_rx_state rx_state = RX_INACTIVE;
|
||||
uart_half_duplex_mode_t mode = UART_TX_MODE;
|
||||
// Initialise the server.
|
||||
uint8_t rx_buffer[rx_buf_length], tx_buffer[tx_buf_length];
|
||||
int bit_time = XS1_TIMER_HZ / baud;
|
||||
|
||||
// State machine intitial state.
|
||||
p_uart <: 1; // Idle high
|
||||
|
||||
// Locals
|
||||
int switch_mode = 0;
|
||||
unsigned byte, data = 0, data_bit_count = 0;
|
||||
timer tmr;
|
||||
int t;
|
||||
|
||||
size_t tx_rdptr = 0, tx_wrptr = 0;
|
||||
size_t rx_rdptr = 0, rx_wrptr = 0;
|
||||
unsigned bit_count = 0, stop_bit_count;
|
||||
|
||||
assert((bits_per_byte > 0) && (bits_per_byte <= 8) && "Invalid number of bits per byte");
|
||||
|
||||
// State machine
|
||||
while(1)
|
||||
{
|
||||
switch(mode)
|
||||
{
|
||||
// tx mode
|
||||
case UART_TX_MODE:
|
||||
{
|
||||
select
|
||||
{
|
||||
// If we're not in the waiting state, go through state
|
||||
// machine once per bit time
|
||||
case (tx_state != WAITING_FOR_DATA && tx_state != TX_INACTIVE) => tmr when timerafter(t) :> void:
|
||||
{
|
||||
switch(tx_state)
|
||||
{
|
||||
case OUTPUTTING_DATA_BIT:
|
||||
{
|
||||
p_uart <: (byte >> bit_count) & 0x1;
|
||||
bit_count++;
|
||||
t += bit_time;
|
||||
if (bit_count == bits_per_byte)
|
||||
{
|
||||
bit_count = 0;
|
||||
if (parity != UART_PARITY_NONE)
|
||||
{
|
||||
tx_state = OUTPUTTING_PARITY_BIT;
|
||||
}
|
||||
else
|
||||
{
|
||||
stop_bit_count = stop_bits;
|
||||
tx_state = OUTPUTTING_STOP_BIT;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case OUTPUTTING_PARITY_BIT:
|
||||
{
|
||||
int val = parity32(byte, parity);
|
||||
p_uart <: val;
|
||||
t += bit_time;
|
||||
stop_bit_count = stop_bits;
|
||||
tx_state = OUTPUTTING_STOP_BIT;
|
||||
break;
|
||||
}
|
||||
|
||||
case OUTPUTTING_STOP_BIT:
|
||||
{
|
||||
p_uart <: 1;
|
||||
t += bit_time;
|
||||
stop_bit_count--;
|
||||
|
||||
if (stop_bit_count == 0) {
|
||||
tx_state = WAITING_FOR_DATA;
|
||||
|
||||
// If a mode switch has been requested...
|
||||
if(switch_mode == 1)
|
||||
{
|
||||
mode = UART_RX_MODE;
|
||||
tx_state = TX_INACTIVE;
|
||||
rx_state = WAITING_FOR_INPUT;
|
||||
switch_mode = 0;
|
||||
p_uart :> int _;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
init_transmit(tx_buffer, tx_buf_length,
|
||||
tx_rdptr, tx_wrptr, p_uart, tx_state,
|
||||
bit_count, t, bit_time, byte);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case i_tx.write(uint8_t data) -> int buffer_was_full:
|
||||
{
|
||||
if (buffer_full(tx_rdptr, tx_wrptr, tx_buf_length))
|
||||
{
|
||||
buffer_was_full = 1;
|
||||
return;
|
||||
}
|
||||
buffer_was_full = 0;
|
||||
tx_buffer[tx_wrptr] = data;
|
||||
tx_wrptr++;
|
||||
if (tx_wrptr == tx_buf_length)
|
||||
tx_wrptr = 0;
|
||||
|
||||
init_transmit(tx_buffer, tx_buf_length, tx_rdptr,
|
||||
tx_wrptr, p_uart, tx_state, bit_count, t,
|
||||
bit_time, byte);
|
||||
break;
|
||||
}
|
||||
|
||||
case i_tx.get_available_buffer_size(void) -> size_t available:
|
||||
{
|
||||
int size = tx_rdptr - tx_wrptr;
|
||||
if (size <= 0)
|
||||
size += tx_buf_length - 1;
|
||||
available = size;
|
||||
break;
|
||||
}
|
||||
|
||||
case i_control.set_mode(uart_half_duplex_mode_t n_mode):
|
||||
{
|
||||
// If this is actually a mode change...
|
||||
if(mode != n_mode)
|
||||
{
|
||||
// If we're not in an idle state, set a flag for the
|
||||
// mode the be change after outputting the current
|
||||
// byte
|
||||
if(tx_state != WAITING_FOR_DATA)
|
||||
{
|
||||
switch_mode = 1;
|
||||
}
|
||||
else // Otherwise, just change mode
|
||||
{
|
||||
mode = UART_RX_MODE;
|
||||
tx_state = TX_INACTIVE;
|
||||
rx_state = WAITING_FOR_INPUT;
|
||||
p_uart :> int _;
|
||||
switch_mode = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// rx mode
|
||||
case UART_RX_MODE:
|
||||
{
|
||||
select
|
||||
{
|
||||
case (rx_state == WAITING_FOR_HIGH || rx_state == WAITING_FOR_INPUT) => p_uart when pinseq(0) :> void:
|
||||
{
|
||||
tmr :> t;
|
||||
switch (rx_state) {
|
||||
case WAITING_FOR_HIGH:
|
||||
{
|
||||
p_uart when pinseq(0) :> void;
|
||||
rx_state = WAITING_FOR_INPUT;
|
||||
break;
|
||||
}
|
||||
case WAITING_FOR_INPUT:
|
||||
{
|
||||
t += bit_time/2;
|
||||
rx_state = TESTING_START_BIT;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case (rx_state != WAITING_FOR_INPUT && rx_state != RX_INACTIVE) => tmr when timerafter(t) :> void:
|
||||
{
|
||||
switch (rx_state) {
|
||||
case TESTING_START_BIT:
|
||||
{
|
||||
// We should now be half way through the start
|
||||
// bit. Test it is not a glitch
|
||||
int level_test;
|
||||
p_uart :> level_test;
|
||||
if (level_test == 0)
|
||||
{
|
||||
data_bit_count = 0;
|
||||
t += bit_time;
|
||||
data = 0;
|
||||
rx_state = INPUTTING_DATA_BIT;
|
||||
}
|
||||
else
|
||||
{
|
||||
rx_state = WAITING_FOR_HIGH;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case INPUTTING_DATA_BIT:
|
||||
{
|
||||
int bit;
|
||||
p_uart :> bit;
|
||||
data = data << 1 | bit;
|
||||
data_bit_count++;
|
||||
t += bit_time;
|
||||
if (data_bit_count == bits_per_byte) {
|
||||
data = bitrev(data) >> (CHAR_BIT * sizeof(unsigned) - bits_per_byte);
|
||||
if (parity != UART_PARITY_NONE)
|
||||
{
|
||||
rx_state = INPUTTING_PARITY_BIT;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (add_to_buffer(rx_buffer, rx_buf_length, rx_rdptr, rx_wrptr, data))
|
||||
i_rx.data_ready();
|
||||
if (stop_bits != 0)
|
||||
{
|
||||
stop_bit_count = stop_bits;
|
||||
rx_state = INPUTTING_STOP_BIT;
|
||||
}
|
||||
else
|
||||
{
|
||||
rx_state = WAITING_FOR_INPUT;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case INPUTTING_PARITY_BIT:
|
||||
{
|
||||
int bit;
|
||||
p_uart :> bit;
|
||||
if (bit == parity32(data, parity))
|
||||
{
|
||||
if (add_to_buffer(rx_buffer, rx_buf_length, rx_rdptr, rx_wrptr, data))
|
||||
i_rx.data_ready();
|
||||
if (stop_bits != 0)
|
||||
{
|
||||
stop_bit_count = stop_bits;
|
||||
rx_state = INPUTTING_STOP_BIT;
|
||||
}
|
||||
else
|
||||
{
|
||||
rx_state = WAITING_FOR_INPUT;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
rx_state = WAITING_FOR_HIGH;
|
||||
}
|
||||
t += bit_time;
|
||||
break;
|
||||
}
|
||||
|
||||
case INPUTTING_STOP_BIT:
|
||||
{
|
||||
int level_test;
|
||||
p_uart :> level_test;
|
||||
if (level_test == 0) {
|
||||
rx_state = WAITING_FOR_HIGH;
|
||||
}
|
||||
stop_bit_count--;
|
||||
t += bit_time;
|
||||
if (stop_bit_count == 0) {
|
||||
rx_state = WAITING_FOR_INPUT;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case i_rx.read() -> uint8_t data:
|
||||
{
|
||||
if (rx_rdptr == rx_wrptr)
|
||||
break;
|
||||
data = rx_buffer[rx_rdptr];
|
||||
rx_rdptr++;
|
||||
if (rx_rdptr == rx_buf_length)
|
||||
rx_rdptr = 0;
|
||||
if (rx_rdptr != rx_wrptr)
|
||||
i_rx.data_ready();
|
||||
break;
|
||||
}
|
||||
|
||||
case i_rx.has_data() -> int res:
|
||||
{
|
||||
res = (rx_rdptr != rx_wrptr);
|
||||
break;
|
||||
}
|
||||
|
||||
case i_control.set_mode(uart_half_duplex_mode_t n_mode):
|
||||
{
|
||||
// If this is actually a mode change...
|
||||
if(mode != n_mode)
|
||||
{
|
||||
// If we're not in an idle state, set a flag for the
|
||||
// mode the be change after outputting the current
|
||||
// byte
|
||||
if(rx_state != WAITING_FOR_DATA)
|
||||
{
|
||||
switch_mode = 1;
|
||||
}
|
||||
else // Otherwise, just change mode
|
||||
{
|
||||
mode = UART_TX_MODE;
|
||||
rx_state = RX_INACTIVE;
|
||||
tx_state = WAITING_FOR_INPUT;
|
||||
switch_mode = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
434
lib_uart/lib_uart/src/uart_half_duplex.xc~
Normal file
434
lib_uart/lib_uart/src/uart_half_duplex.xc~
Normal file
@@ -0,0 +1,434 @@
|
||||
// Copyright (c) 2015-2016, XMOS Ltd, All rights reserved
|
||||
|
||||
// UART API Header
|
||||
#include "uart.h"
|
||||
#include "uart_half_duplex.h"
|
||||
|
||||
#include <xclib.h>
|
||||
#include <xs1.h>
|
||||
#include <xscope.h>
|
||||
|
||||
#include "xassert.h"
|
||||
|
||||
static inline int parity32(unsigned x, uart_parity_t parity)
|
||||
{
|
||||
// To compute even / odd parity the checksum should be initialised to 0 / 1
|
||||
// respectively. The values of the art_tx_parity have been chosen so the
|
||||
// parity can be used to initialise the checksum directly.
|
||||
assert(UART_PARITY_EVEN == 0);
|
||||
assert(UART_PARITY_ODD == 1);
|
||||
crc32(x, parity, 1);
|
||||
return (x & 1);
|
||||
}
|
||||
|
||||
static inline int buffer_full(size_t rdptr, size_t wrptr, int buf_length)
|
||||
{
|
||||
wrptr++;
|
||||
if (wrptr == buf_length)
|
||||
wrptr = 0;
|
||||
return (wrptr == rdptr);
|
||||
}
|
||||
|
||||
static inline void init_transmit(uint8_t buffer[buf_length],
|
||||
unsigned buf_length,
|
||||
unsigned &rdptr, unsigned &wrptr,
|
||||
out port p, enum uart_tx_state &state,
|
||||
unsigned &bit_count, int &t, int bit_time,
|
||||
unsigned &byte)
|
||||
{
|
||||
timer tmr;
|
||||
if (state != WAITING_FOR_DATA || rdptr == wrptr)
|
||||
return;
|
||||
byte = buffer[rdptr];
|
||||
|
||||
// Trace the outgoing data
|
||||
xscope_char(UART_TX_VALUE, byte);
|
||||
|
||||
rdptr++;
|
||||
if (rdptr == buf_length)
|
||||
rdptr = 0;
|
||||
state = OUTPUTTING_DATA_BIT;
|
||||
|
||||
bit_count = 0;
|
||||
|
||||
// Output start bit
|
||||
tmr :> t;
|
||||
t+=bit_time;
|
||||
tmr when timerafter(t) :> void;
|
||||
|
||||
p <: 0;
|
||||
t += bit_time;
|
||||
}
|
||||
|
||||
|
||||
static inline int add_to_buffer(uint8_t buffer[n], unsigned n,
|
||||
unsigned &rdptr, unsigned &wrptr,
|
||||
uint8_t data)
|
||||
{
|
||||
int new_wrptr = wrptr + 1;
|
||||
|
||||
if (new_wrptr >= n)
|
||||
new_wrptr = 0;
|
||||
|
||||
if (new_wrptr == rdptr) {
|
||||
// buffer full
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Output tracing information of the values entering the buffer
|
||||
// xscope_char(UART_RX_VALUE, data);
|
||||
|
||||
buffer[wrptr] = data;
|
||||
wrptr = new_wrptr;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static inline void wait_when_pins_eq(port pin, int value)
|
||||
{
|
||||
assert(value == 1 || value == 0);
|
||||
char current;
|
||||
do {
|
||||
pin :> current;
|
||||
} while (current != value);
|
||||
}
|
||||
|
||||
|
||||
void uart_half_duplex(server interface uart_tx_buffered_if i_tx,
|
||||
server interface uart_rx_if i_rx,
|
||||
server interface uart_control_if i_control,
|
||||
server interface uart_config_if ?i_config,
|
||||
const static unsigned tx_buf_length,
|
||||
const static unsigned rx_buf_length,
|
||||
unsigned baud,
|
||||
uart_parity_t parity,
|
||||
unsigned bits_per_byte,
|
||||
unsigned stop_bits,
|
||||
port p_uart)
|
||||
{
|
||||
enum uart_tx_state tx_state = WAITING_FOR_DATA;
|
||||
enum uart_rx_state rx_state = RX_INACTIVE;
|
||||
uart_half_duplex_mode_t mode = UART_TX_MODE;
|
||||
// Initialise the server.
|
||||
uint8_t rx_buffer[rx_buf_length], tx_buffer[tx_buf_length];
|
||||
int bit_time = XS1_TIMER_HZ / baud;
|
||||
|
||||
// State machine intitial state.
|
||||
p_uart <: 1; // Idle high
|
||||
|
||||
// Locals
|
||||
int switch_mode = 0;
|
||||
unsigned byte, data = 0, data_bit_count = 0;
|
||||
timer tmr;
|
||||
int t;
|
||||
|
||||
size_t tx_rdptr = 0, tx_wrptr = 0;
|
||||
size_t rx_rdptr = 0, rx_wrptr = 0;
|
||||
unsigned bit_count = 0, stop_bit_count;
|
||||
|
||||
assert((bits_per_byte > 0) && (bits_per_byte <= 8) && "Invalid number of bits per byte");
|
||||
|
||||
// State machine
|
||||
while(1)
|
||||
{
|
||||
switch(mode)
|
||||
{
|
||||
// tx mode
|
||||
case UART_TX_MODE:
|
||||
{
|
||||
select
|
||||
{
|
||||
// If we're not in the waiting state, go through state
|
||||
// machine once per bit time
|
||||
case (tx_state != WAITING_FOR_DATA && tx_state != TX_INACTIVE) => tmr when timerafter(t) :> void:
|
||||
{
|
||||
switch(tx_state)
|
||||
{
|
||||
case OUTPUTTING_DATA_BIT:
|
||||
{
|
||||
p_uart <: (byte >> bit_count) & 0x1;
|
||||
bit_count++;
|
||||
t += bit_time;
|
||||
if (bit_count == bits_per_byte)
|
||||
{
|
||||
bit_count = 0;
|
||||
if (parity != UART_PARITY_NONE)
|
||||
{
|
||||
tx_state = OUTPUTTING_PARITY_BIT;
|
||||
}
|
||||
else
|
||||
{
|
||||
stop_bit_count = stop_bits;
|
||||
tx_state = OUTPUTTING_STOP_BIT;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case OUTPUTTING_PARITY_BIT:
|
||||
{
|
||||
int val = parity32(byte, parity);
|
||||
p_uart <: val;
|
||||
t += bit_time;
|
||||
stop_bit_count = stop_bits;
|
||||
tx_state = OUTPUTTING_STOP_BIT;
|
||||
break;
|
||||
}
|
||||
|
||||
case OUTPUTTING_STOP_BIT:
|
||||
{
|
||||
p_uart <: 1;
|
||||
t += bit_time;
|
||||
stop_bit_count--;
|
||||
|
||||
if (stop_bit_count == 0) {
|
||||
tx_state = WAITING_FOR_DATA;
|
||||
|
||||
// If a mode switch has been requested...
|
||||
if(switch_mode == 1)
|
||||
{
|
||||
mode = UART_RX_MODE;
|
||||
tx_state = TX_INACTIVE;
|
||||
rx_state = WAITING_FOR_INPUT;
|
||||
switch_mode = 0;
|
||||
p_uart :> int _;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
init_transmit(tx_buffer, tx_buf_length,
|
||||
tx_rdptr, tx_wrptr, p_uart, tx_state,
|
||||
bit_count, t, bit_time, byte);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case i_tx.write(uint8_t data) -> int buffer_was_full:
|
||||
{
|
||||
if (buffer_full(tx_rdptr, tx_wrptr, tx_buf_length))
|
||||
{
|
||||
buffer_was_full = 1;
|
||||
return;
|
||||
}
|
||||
buffer_was_full = 0;
|
||||
tx_buffer[tx_wrptr] = data;
|
||||
tx_wrptr++;
|
||||
if (tx_wrptr == tx_buf_length)
|
||||
tx_wrptr = 0;
|
||||
|
||||
init_transmit(tx_buffer, tx_buf_length, tx_rdptr,
|
||||
tx_wrptr, p_uart, tx_state, bit_count, t,
|
||||
bit_time, byte);
|
||||
break;
|
||||
}
|
||||
|
||||
case i_tx.get_available_buffer_size(void) -> size_t available:
|
||||
{
|
||||
int size = tx_rdptr - tx_wrptr;
|
||||
if (size <= 0)
|
||||
size += tx_buf_length - 1;
|
||||
available = size;
|
||||
break;
|
||||
}
|
||||
|
||||
case i_control.set_mode(uart_half_duplex_mode_t n_mode):
|
||||
{
|
||||
// If this is actually a mode change...
|
||||
if(mode != n_mode)
|
||||
{
|
||||
// If we're not in an idle state, set a flag for the
|
||||
// mode the be change after outputting the current
|
||||
// byte
|
||||
if(tx_state != WAITING_FOR_DATA)
|
||||
{
|
||||
switch_mode = 1;
|
||||
}
|
||||
else // Otherwise, just change mode
|
||||
{
|
||||
mode = UART_RX_MODE;
|
||||
tx_state = TX_INACTIVE;
|
||||
rx_state = WAITING_FOR_INPUT;
|
||||
p_uart :> int _;
|
||||
switch_mode = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// rx mode
|
||||
case UART_RX_MODE:
|
||||
{
|
||||
select
|
||||
{
|
||||
case (rx_state == WAITING_FOR_HIGH || rx_state == WAITING_FOR_INPUT) => p_uart when pinseq(0) :> void:
|
||||
{
|
||||
tmr :> t;
|
||||
switch (rx_state) {
|
||||
case WAITING_FOR_HIGH:
|
||||
{
|
||||
p_uart when pinseq(0) :> void;
|
||||
rx_state = WAITING_FOR_INPUT;
|
||||
break;
|
||||
}
|
||||
case WAITING_FOR_INPUT:
|
||||
{
|
||||
t += bit_time/2;
|
||||
rx_state = TESTING_START_BIT;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case (rx_state != WAITING_FOR_INPUT && rx_state != RX_INACTIVE) => tmr when timerafter(t) :> void:
|
||||
{
|
||||
switch (rx_state) {
|
||||
case TESTING_START_BIT:
|
||||
{
|
||||
// We should now be half way through the start
|
||||
// bit. Test it is not a glitch
|
||||
int level_test;
|
||||
p_uart :> level_test;
|
||||
if (level_test == 0)
|
||||
{
|
||||
data_bit_count = 0;
|
||||
t += bit_time;
|
||||
data = 0;
|
||||
rx_state = INPUTTING_DATA_BIT;
|
||||
}
|
||||
else
|
||||
{
|
||||
rx_state = WAITING_FOR_HIGH;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case INPUTTING_DATA_BIT:
|
||||
{
|
||||
int bit;
|
||||
p_uart :> bit;
|
||||
data = data << 1 | bit;
|
||||
data_bit_count++;
|
||||
t += bit_time;
|
||||
if (data_bit_count == bits_per_byte) {
|
||||
data = bitrev(data) >> (CHAR_BIT * sizeof(unsigned) - bits_per_byte);
|
||||
if (parity != UART_PARITY_NONE)
|
||||
{
|
||||
rx_state = INPUTTING_PARITY_BIT;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (add_to_buffer(rx_buffer, rx_buf_length, rx_rdptr, rx_wrptr, data))
|
||||
i_rx.data_ready();
|
||||
if (stop_bits != 0)
|
||||
{
|
||||
stop_bit_count = stop_bits;
|
||||
rx_state = INPUTTING_STOP_BIT;
|
||||
}
|
||||
else
|
||||
{
|
||||
rx_state = WAITING_FOR_INPUT;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case INPUTTING_PARITY_BIT:
|
||||
{
|
||||
int bit;
|
||||
p_uart :> bit;
|
||||
if (bit == parity32(data, parity))
|
||||
{
|
||||
if (add_to_buffer(rx_buffer, rx_buf_length, rx_rdptr, rx_wrptr, data))
|
||||
i_rx.data_ready();
|
||||
if (stop_bits != 0)
|
||||
{
|
||||
stop_bit_count = stop_bits;
|
||||
rx_state = INPUTTING_STOP_BIT;
|
||||
}
|
||||
else
|
||||
{
|
||||
rx_state = WAITING_FOR_INPUT;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
rx_state = WAITING_FOR_HIGH;
|
||||
}
|
||||
t += bit_time;
|
||||
break;
|
||||
}
|
||||
|
||||
case INPUTTING_STOP_BIT:
|
||||
{
|
||||
int level_test;
|
||||
p_uart :> level_test;
|
||||
if (level_test == 0) {
|
||||
rx_state = WAITING_FOR_HIGH;
|
||||
}
|
||||
stop_bit_count--;
|
||||
t += bit_time;
|
||||
if (stop_bit_count == 0) {
|
||||
rx_state = WAITING_FOR_INPUT;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case i_rx.read() -> uint8_t data:
|
||||
{
|
||||
if (rx_rdptr == rx_wrptr)
|
||||
break;
|
||||
data = rx_buffer[rx_rdptr];
|
||||
rx_rdptr++;
|
||||
if (rx_rdptr == rx_buf_length)
|
||||
rx_rdptr = 0;
|
||||
if (rx_rdptr != rx_wrptr)
|
||||
i_rx.data_ready();
|
||||
break;
|
||||
}
|
||||
|
||||
case i_rx.has_data() -> int res:
|
||||
{
|
||||
res = (rx_rdptr != rx_wrptr);
|
||||
break;
|
||||
}
|
||||
|
||||
case i_control.set_mode(uart_half_duplex_mode_t n_mode):
|
||||
{
|
||||
// If this is actually a mode change...
|
||||
if(mode != n_mode)
|
||||
{
|
||||
// If we're not in an idle state, set a flag for the
|
||||
// mode the be change after outputting the current
|
||||
// byte
|
||||
if(rx_state != WAITING_FOR_DATA)
|
||||
{
|
||||
switch_mode = 1;
|
||||
}
|
||||
else // Otherwise, just change mode
|
||||
{
|
||||
mode = UART_TX_MODE;
|
||||
rx_state = RX_INACTIVE;
|
||||
tx_state = WAITING_FOR_INPUT;
|
||||
switch_mode = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
222
lib_uart/lib_uart/src/uart_rx.xc
Normal file
222
lib_uart/lib_uart/src/uart_rx.xc
Normal file
@@ -0,0 +1,222 @@
|
||||
// Copyright (c) 2014-2018, XMOS Ltd, All rights reserved
|
||||
|
||||
#include "uart.h"
|
||||
#include "xassert.h"
|
||||
#include <xs1.h>
|
||||
#include <stdio.h>
|
||||
#include <print.h>
|
||||
#include <xscope.h>
|
||||
#include <gpio.h>
|
||||
#include <debug_print.h>
|
||||
#include <xclib.h>
|
||||
|
||||
#ifndef UART_RX_DISABLE_DYNAMIC_CONFIG
|
||||
#define UART_RX_DISABLE_DYNAMIC_CONFIG 0
|
||||
#endif
|
||||
|
||||
enum uart_rx_state {
|
||||
WAITING_FOR_INPUT,
|
||||
WAITING_FOR_HIGH,
|
||||
TESTING_START_BIT,
|
||||
INPUTTING_DATA_BIT,
|
||||
INPUTTING_PARITY_BIT,
|
||||
INPUTTING_STOP_BIT,
|
||||
};
|
||||
|
||||
static inline int parity32(unsigned x, enum uart_parity_t parity)
|
||||
{
|
||||
// To compute even / odd parity the checksum should be initialised
|
||||
// to 0 / 1 respectively. The values of the uart_parity_t have been
|
||||
// chosen so the parity can be used to initialise the checksum
|
||||
// directly.
|
||||
assert(UART_PARITY_EVEN == 0);
|
||||
assert(UART_PARITY_ODD == 1);
|
||||
crc32(x, parity, 1);
|
||||
return (x & 1);
|
||||
}
|
||||
|
||||
static inline int add_to_buffer(uint8_t buffer[n], unsigned n,
|
||||
size_t &rdptr, size_t &wrptr,
|
||||
uint8_t data)
|
||||
{
|
||||
int new_wrptr = wrptr + 1;
|
||||
|
||||
if (new_wrptr >= n)
|
||||
new_wrptr = 0;
|
||||
|
||||
if (new_wrptr == rdptr) {
|
||||
// buffer full
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Output tracing information of the values entering the buffer
|
||||
// xscope_char(UART_RX_VALUE, data);
|
||||
|
||||
buffer[wrptr] = data;
|
||||
wrptr = new_wrptr;
|
||||
return 1;
|
||||
}
|
||||
|
||||
[[combinable]]
|
||||
void uart_rx(server interface uart_rx_if c,
|
||||
server interface uart_config_if ?config,
|
||||
const static unsigned n,
|
||||
unsigned baud,
|
||||
enum uart_parity_t parity,
|
||||
unsigned bits_per_byte,
|
||||
unsigned stop_bits,
|
||||
client input_gpio_if p_rxd)
|
||||
{
|
||||
uint8_t buffer[n];
|
||||
unsigned data_bit_count;
|
||||
timer tmr;
|
||||
enum uart_rx_state state = WAITING_FOR_HIGH;
|
||||
int t;
|
||||
unsigned bit_time = (XS1_TIMER_HZ / baud);
|
||||
int stop_bit_count;
|
||||
unsigned data;
|
||||
size_t rdptr = 0, wrptr = 0;
|
||||
p_rxd.event_when_pins_eq(1);
|
||||
|
||||
assert(!UART_RX_DISABLE_DYNAMIC_CONFIG || isnull(config));
|
||||
assert((bits_per_byte > 0) && (bits_per_byte <= 8) && "Invalid number of bits per byte");
|
||||
|
||||
while (1) {
|
||||
select {
|
||||
// The following cases implement the uart state machine
|
||||
case p_rxd.event():
|
||||
tmr :> t;
|
||||
(void) p_rxd.input();
|
||||
switch (state) {
|
||||
case WAITING_FOR_HIGH:
|
||||
p_rxd.event_when_pins_eq(0);
|
||||
state = WAITING_FOR_INPUT;
|
||||
break;
|
||||
case WAITING_FOR_INPUT:
|
||||
t += bit_time/2;
|
||||
state = TESTING_START_BIT;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case (state != WAITING_FOR_INPUT && state != WAITING_FOR_HIGH) =>
|
||||
tmr when timerafter(t) :> void:
|
||||
switch (state) {
|
||||
case TESTING_START_BIT:
|
||||
// We should now be half way through the start bit
|
||||
// Test it is not a glitch
|
||||
int level_test = p_rxd.input();
|
||||
if (level_test == 0) {
|
||||
data_bit_count = 0;
|
||||
t += bit_time;
|
||||
data = 0;
|
||||
state = INPUTTING_DATA_BIT;
|
||||
}
|
||||
else {
|
||||
p_rxd.event_when_pins_eq(1);
|
||||
state = WAITING_FOR_HIGH;
|
||||
}
|
||||
break;
|
||||
case INPUTTING_DATA_BIT:
|
||||
int bit = p_rxd.input();
|
||||
data = data << 1 | bit;
|
||||
data_bit_count++;
|
||||
t += bit_time;
|
||||
if (data_bit_count == bits_per_byte) {
|
||||
data = bitrev(data) >> (CHAR_BIT * sizeof(unsigned) - bits_per_byte);
|
||||
if (parity != UART_PARITY_NONE) {
|
||||
state = INPUTTING_PARITY_BIT;
|
||||
} else {
|
||||
if (add_to_buffer(buffer, n, rdptr, wrptr, data))
|
||||
c.data_ready();
|
||||
if (stop_bits != 0) {
|
||||
stop_bit_count = stop_bits;
|
||||
state = INPUTTING_STOP_BIT;
|
||||
}
|
||||
else {
|
||||
state = WAITING_FOR_INPUT;
|
||||
p_rxd.event_when_pins_eq(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case INPUTTING_PARITY_BIT:
|
||||
int bit = p_rxd.input();
|
||||
if (bit == parity32(data, parity)) {
|
||||
if (add_to_buffer(buffer, n, rdptr, wrptr, data))
|
||||
c.data_ready();
|
||||
if (stop_bits != 0) {
|
||||
stop_bit_count = stop_bits;
|
||||
state = INPUTTING_STOP_BIT;
|
||||
}
|
||||
else {
|
||||
p_rxd.event_when_pins_eq(0);
|
||||
state = WAITING_FOR_INPUT;
|
||||
}
|
||||
}
|
||||
else {
|
||||
p_rxd.event_when_pins_eq(1);
|
||||
state = WAITING_FOR_HIGH;
|
||||
}
|
||||
t += bit_time;
|
||||
break;
|
||||
case INPUTTING_STOP_BIT:
|
||||
int level_test = p_rxd.input();
|
||||
if (level_test == 0) {
|
||||
p_rxd.event_when_pins_eq(1);
|
||||
state = WAITING_FOR_HIGH;
|
||||
} else {
|
||||
stop_bit_count--;
|
||||
t += bit_time;
|
||||
if (stop_bit_count == 0) {
|
||||
p_rxd.event_when_pins_eq(0);
|
||||
state = WAITING_FOR_INPUT;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case c.read() -> uint8_t data:
|
||||
if (rdptr == wrptr)
|
||||
break;
|
||||
data = buffer[rdptr];
|
||||
rdptr++;
|
||||
if (rdptr == n)
|
||||
rdptr = 0;
|
||||
if (rdptr != wrptr)
|
||||
c.data_ready();
|
||||
break;
|
||||
case c.has_data() -> int res:
|
||||
res = (rdptr != wrptr);
|
||||
break;
|
||||
#if !UART_RX_DISABLE_DYNAMIC_CONFIG
|
||||
// Handle client interaction with the component
|
||||
case !isnull(config) => config.set_baud_rate(unsigned baud_rate):
|
||||
bit_time = XS1_TIMER_HZ / baud_rate;
|
||||
p_rxd.event_when_pins_eq(1);
|
||||
state = WAITING_FOR_HIGH;
|
||||
break;
|
||||
case !isnull(config) => config.set_parity(enum uart_parity_t new_parity):
|
||||
parity = new_parity;
|
||||
p_rxd.event_when_pins_eq(1);
|
||||
state = WAITING_FOR_HIGH;
|
||||
break;
|
||||
case !isnull(config) => config.set_stop_bits(unsigned new_stop_bits):
|
||||
stop_bits = new_stop_bits;
|
||||
p_rxd.event_when_pins_eq(1);
|
||||
state = WAITING_FOR_HIGH;
|
||||
break;
|
||||
case !isnull(config) => config.set_bits_per_byte(unsigned bpb):
|
||||
assert((bpb > 0) && (bpb <= 8) && "Invalid number of bits per byte");
|
||||
bits_per_byte = bpb;
|
||||
p_rxd.event_when_pins_eq(1);
|
||||
state = WAITING_FOR_HIGH;
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extends client interface uart_rx_if : {
|
||||
extern inline uint8_t wait_for_data_and_read(client uart_rx_if i);
|
||||
}
|
||||
89
lib_uart/lib_uart/src/uart_tx.xc
Normal file
89
lib_uart/lib_uart/src/uart_tx.xc
Normal file
@@ -0,0 +1,89 @@
|
||||
// Copyright (c) 2014-2016, XMOS Ltd, All rights reserved
|
||||
|
||||
#include "uart.h"
|
||||
#include <xs1.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <xscope.h>
|
||||
#include "xassert.h"
|
||||
|
||||
#ifndef UART_TX_DISABLE_DYNAMIC_CONFIG
|
||||
#define UART_TX_DISABLE_DYNAMIC_CONFIG 0
|
||||
#endif
|
||||
|
||||
static inline int parity32(unsigned x, enum uart_parity_t parity)
|
||||
{
|
||||
// To compute even / odd parity the checksum should be initialised
|
||||
// to 0 / 1 respectively. The values of the art_tx_parity have been
|
||||
// chosen so the parity can be used to initialise the checksum
|
||||
// directly.
|
||||
assert(UART_PARITY_EVEN == 0);
|
||||
assert(UART_PARITY_ODD == 1);
|
||||
crc32(x, parity, 1);
|
||||
return (x & 1);
|
||||
}
|
||||
|
||||
[[distributable]]
|
||||
void uart_tx(server interface uart_tx_if i,
|
||||
server interface uart_config_if ?config,
|
||||
unsigned baud,
|
||||
uart_parity_t parity,
|
||||
unsigned bits_per_byte,
|
||||
unsigned stop_bits,
|
||||
client output_gpio_if p_txd)
|
||||
{
|
||||
int bit_time = XS1_TIMER_HZ / baud;
|
||||
timer tmr;
|
||||
|
||||
assert(!UART_TX_DISABLE_DYNAMIC_CONFIG || isnull(config));
|
||||
assert((bits_per_byte > 0) && (bits_per_byte <= 8) && "Invalid number of bits per byte");
|
||||
|
||||
p_txd.output(1);
|
||||
while (1) {
|
||||
select {
|
||||
case i.write(uint8_t data):
|
||||
// Trace the outgoing data
|
||||
//xscope_char(UART_TX_VALUE, data);
|
||||
int t;
|
||||
// Output start bit
|
||||
p_txd.output(0);
|
||||
tmr :> t;
|
||||
t += bit_time;
|
||||
unsigned byte = data;
|
||||
// Output data bits
|
||||
for (int j = 0; j < bits_per_byte; j++) {
|
||||
tmr when timerafter(t) :> void;
|
||||
p_txd.output(byte & 1);
|
||||
byte >>= 1;
|
||||
t += bit_time;
|
||||
}
|
||||
// Output parity
|
||||
if (parity != UART_PARITY_NONE) {
|
||||
tmr when timerafter(t) :> void;
|
||||
p_txd.output(parity32(data, parity));
|
||||
t += bit_time;
|
||||
}
|
||||
// Output stop bits
|
||||
tmr when timerafter(t) :> void;
|
||||
p_txd.output(1);
|
||||
t += bit_time * stop_bits;
|
||||
tmr when timerafter(t) :> void;
|
||||
break;
|
||||
#if !UART_TX_DISABLE_DYNAMIC_CONFIG
|
||||
case !isnull(config) => config.set_baud_rate(unsigned baud_rate):
|
||||
bit_time = XS1_TIMER_HZ / baud_rate;
|
||||
break;
|
||||
case !isnull(config) => config.set_parity(enum uart_parity_t new_parity):
|
||||
parity = new_parity;
|
||||
break;
|
||||
case !isnull(config) => config.set_stop_bits(unsigned new_stop_bits):
|
||||
stop_bits = new_stop_bits;
|
||||
break;
|
||||
case !isnull(config) => config.set_bits_per_byte(unsigned bpb):
|
||||
assert((bpb > 0) && (bpb <= 8) && "Invalid number of bits per byte");
|
||||
bits_per_byte = bpb;
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
216
lib_uart/lib_uart/src/uart_tx_buffered.xc
Normal file
216
lib_uart/lib_uart/src/uart_tx_buffered.xc
Normal file
@@ -0,0 +1,216 @@
|
||||
// Copyright (c) 2014-2016, XMOS Ltd, All rights reserved
|
||||
|
||||
#include "uart.h"
|
||||
#include <xs1.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <print.h>
|
||||
#include <xscope.h>
|
||||
#include "xassert.h"
|
||||
#include "debug_print.h"
|
||||
|
||||
#ifndef UART_TX_DISABLE_DYNAMIC_CONFIG
|
||||
#define UART_TX_DISABLE_DYNAMIC_CONFIG 0
|
||||
#endif
|
||||
|
||||
enum uart_tx_state {
|
||||
WAITING_FOR_DATA,
|
||||
OUTPUTTING_START_BIT,
|
||||
OUTPUTTING_DATA_BIT,
|
||||
OUTPUTTING_PARITY_BIT,
|
||||
OUTPUTTING_STOP_BIT,
|
||||
STOP_BIT_SENT,
|
||||
};
|
||||
|
||||
|
||||
static inline int parity32(unsigned x, uart_parity_t parity)
|
||||
{
|
||||
// To compute even / odd parity the checksum should be initialised
|
||||
// to 0 / 1 respectively. The values of the uart_parity_t have been
|
||||
// chosen so the parity can be used to initialise the checksum
|
||||
// directly.
|
||||
assert(UART_PARITY_EVEN == 0);
|
||||
assert(UART_PARITY_ODD == 1);
|
||||
crc32(x, parity, 1);
|
||||
return (x & 1);
|
||||
}
|
||||
|
||||
static inline int buffer_full(int rdptr, int wrptr, int buf_length)
|
||||
{
|
||||
wrptr++;
|
||||
if (wrptr == buf_length)
|
||||
wrptr = 0;
|
||||
return (wrptr == rdptr);
|
||||
}
|
||||
|
||||
static inline void init_transmit(size_t &rdptr, size_t &wrptr,
|
||||
enum uart_tx_state &state, int &t,
|
||||
int &clock_sync_required)
|
||||
{
|
||||
if ((state != WAITING_FOR_DATA && state != STOP_BIT_SENT) || rdptr == wrptr){
|
||||
// Already busy transmitting a bit
|
||||
return;
|
||||
}
|
||||
|
||||
if (state == WAITING_FOR_DATA) {
|
||||
// Starting to transmit from the idle - ensure the time is valid so that
|
||||
// the select case will trigger
|
||||
timer tmr;
|
||||
tmr :> t;
|
||||
|
||||
// Indicate to the OUTPUTTING_START_BIT state that the time needs to be
|
||||
// re-synchronised
|
||||
clock_sync_required = 1;
|
||||
}
|
||||
|
||||
state = OUTPUTTING_START_BIT;
|
||||
}
|
||||
|
||||
[[combinable]]
|
||||
void uart_tx_buffered(server interface uart_tx_buffered_if i,
|
||||
server interface uart_config_if ?config,
|
||||
const static unsigned buf_length,
|
||||
unsigned baud,
|
||||
uart_parity_t parity,
|
||||
unsigned bits_per_byte,
|
||||
unsigned stop_bits,
|
||||
client output_gpio_if p_txd)
|
||||
{
|
||||
uint8_t buffer[buf_length];
|
||||
int bit_time = XS1_TIMER_HZ / baud;
|
||||
enum uart_tx_state state = WAITING_FOR_DATA;
|
||||
uint8_t byte;
|
||||
timer tmr;
|
||||
size_t rdptr = 0, wrptr = 0;
|
||||
unsigned bit_count, stop_bit_count;
|
||||
int clock_sync_required = 0;
|
||||
int parity_val;
|
||||
|
||||
assert(!UART_TX_DISABLE_DYNAMIC_CONFIG || isnull(config));
|
||||
assert((bits_per_byte > 0) && (bits_per_byte <= 8) && "Invalid number of bits per byte");
|
||||
|
||||
int t;
|
||||
p_txd.output(1);
|
||||
|
||||
// Inform the client that there is space
|
||||
i.ready_to_transmit();
|
||||
|
||||
while (1) {
|
||||
select {
|
||||
case (state != WAITING_FOR_DATA) => tmr when timerafter(t) :> void:
|
||||
switch (state) {
|
||||
case OUTPUTTING_START_BIT:
|
||||
p_txd.output(0);
|
||||
|
||||
if (clock_sync_required) {
|
||||
// Re-align clock with the start of frame
|
||||
tmr :> t;
|
||||
clock_sync_required = 0;
|
||||
}
|
||||
t += bit_time;
|
||||
state = OUTPUTTING_DATA_BIT;
|
||||
|
||||
byte = buffer[rdptr];
|
||||
rdptr++;
|
||||
if (rdptr == buf_length) {
|
||||
rdptr = 0;
|
||||
}
|
||||
|
||||
// Trace the outgoing data
|
||||
//xscope_char(UART_TX_VALUE, byte);
|
||||
|
||||
bit_count = 0;
|
||||
|
||||
// Inform the client that there is space
|
||||
i.ready_to_transmit();
|
||||
|
||||
break;
|
||||
case OUTPUTTING_DATA_BIT:
|
||||
p_txd.output((byte >> bit_count));
|
||||
t += bit_time;
|
||||
bit_count++;
|
||||
if (bit_count == bits_per_byte) {
|
||||
if (parity != UART_PARITY_NONE) {
|
||||
state = OUTPUTTING_PARITY_BIT;
|
||||
parity_val = parity32(byte, parity);
|
||||
} else if (stop_bits) {
|
||||
stop_bit_count = stop_bits;
|
||||
state = OUTPUTTING_STOP_BIT;
|
||||
} else {
|
||||
state = STOP_BIT_SENT;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case OUTPUTTING_PARITY_BIT:
|
||||
p_txd.output(parity_val);
|
||||
t += bit_time;
|
||||
if (stop_bits) {
|
||||
stop_bit_count = stop_bits;
|
||||
state = OUTPUTTING_STOP_BIT;
|
||||
} else {
|
||||
state = STOP_BIT_SENT;
|
||||
}
|
||||
break;
|
||||
case OUTPUTTING_STOP_BIT:
|
||||
p_txd.output(1);
|
||||
t += bit_time;
|
||||
stop_bit_count--;
|
||||
if (stop_bit_count == 0) {
|
||||
state = STOP_BIT_SENT;
|
||||
init_transmit(rdptr, wrptr, state, t, clock_sync_required);
|
||||
}
|
||||
break;
|
||||
case STOP_BIT_SENT:
|
||||
state = WAITING_FOR_DATA;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
// Handle client interaction with the component
|
||||
case i.write(uint8_t data) -> int buffer_was_full:
|
||||
if (buffer_full(rdptr, wrptr, buf_length)) {
|
||||
buffer_was_full = 1;
|
||||
return;
|
||||
}
|
||||
buffer_was_full = 0;
|
||||
buffer[wrptr] = data;
|
||||
wrptr++;
|
||||
if (wrptr == buf_length) {
|
||||
wrptr = 0;
|
||||
}
|
||||
|
||||
init_transmit(rdptr, wrptr, state, t, clock_sync_required);
|
||||
break;
|
||||
|
||||
case i.get_available_buffer_size(void) -> size_t available:
|
||||
int size = rdptr - wrptr;
|
||||
if (size <= 0)
|
||||
size += buf_length - 1;
|
||||
available = size;
|
||||
break;
|
||||
|
||||
#if !UART_TX_DISABLE_DYNAMIC_CONFIG
|
||||
case !isnull(config) => config.set_baud_rate(unsigned baud_rate):
|
||||
bit_time = XS1_TIMER_HZ / baud_rate;
|
||||
state = WAITING_FOR_DATA;
|
||||
init_transmit(rdptr, wrptr, state, t, clock_sync_required);
|
||||
break;
|
||||
case !isnull(config) => config.set_parity(uart_parity_t new_parity):
|
||||
parity = new_parity;
|
||||
state = WAITING_FOR_DATA;
|
||||
init_transmit(rdptr, wrptr, state, t, clock_sync_required);
|
||||
break;
|
||||
case !isnull(config) => config.set_stop_bits(unsigned new_stop_bits):
|
||||
stop_bits = new_stop_bits;
|
||||
state = WAITING_FOR_DATA;
|
||||
init_transmit(rdptr, wrptr, state, t, clock_sync_required);
|
||||
break;
|
||||
case !isnull(config) => config.set_bits_per_byte(unsigned bpb):
|
||||
assert((bpb > 0) && (bpb <= 8) && "Invalid number of bits per byte");
|
||||
bits_per_byte = bpb;
|
||||
state = WAITING_FOR_DATA;
|
||||
init_transmit(rdptr, wrptr, state, t, clock_sync_required);
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
1
lib_uart/tests/__init__.py
Normal file
1
lib_uart/tests/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
# Here for importy things.
|
||||
524
lib_uart/tests/app_uart_test/.cproject
Normal file
524
lib_uart/tests/app_uart_test/.cproject
Normal file
@@ -0,0 +1,524 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<?fileVersion 4.0.0?>
|
||||
<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
|
||||
<cconfiguration id="com.xmos.cdt.toolchain.70697190">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.xmos.cdt.toolchain.70697190" moduleId="org.eclipse.cdt.core.settings" name="Default">
|
||||
<externalSettings />
|
||||
<extensions>
|
||||
<extension id="com.xmos.cdt.core.XEBinaryParser" point="org.eclipse.cdt.core.BinaryParser" />
|
||||
<extension id="com.xmos.cdt.core.XdeErrorParser" point="org.eclipse.cdt.core.ErrorParser" />
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser" />
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
|
||||
<buildTargets>
|
||||
<target name="all" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>xmake</buildCommand>
|
||||
<buildArguments></buildArguments>
|
||||
<buildTarget>all</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>true</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
<target name="clean" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>xmake</buildCommand>
|
||||
<buildArguments></buildArguments>
|
||||
<buildTarget>clean</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>true</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
</buildTargets>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration buildProperties="" description="" id="com.xmos.cdt.toolchain.70697190" name="Default" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="com.xmos.cdt.toolchain.70697190.1127281840" name="/" resourcePath="">
|
||||
<toolChain id = "com.xmos.cdt.toolchain.82541009" name="com.xmos.cdt.toolchain" superClass="com.xmos.cdt.toolchain">
|
||||
<targetPlatform archList="all" binaryParser="com.xmos.cdt.core.XEBinaryParser" id = "com.xmos.cdt.core.platform.12694723" isAbstract="false" osList="linux,win32,macosx" superClass="com.xmos.cdt.core.platform" />
|
||||
<builder arguments="" id = "com.xmos.cdt.builder.base.23861697" keepEnvironmentInBuildfile="false" managedBuildOn="false" superClass="com.xmos.cdt.builder.base">
|
||||
<outputEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="outputPath" name="bin" />
|
||||
</outputEntries>
|
||||
</builder>
|
||||
<tool id = "com.xmos.cdt.xc.compiler.44109726" name="com.xmos.cdt.xc.compiler" superClass="com.xmos.cdt.xc.compiler">
|
||||
<option id = "com.xmos.c.compiler.option.defined.symbols.63981785" name="com.xmos.c.compiler.option.defined.symbols" superClass="com.xmos.c.compiler.option.defined.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="__SHRT_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__SCHAR_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_HOSTED__=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_YEAR=11"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MAJOR=1111"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MINOR=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MONTH=11"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__MCPP=2"/>
|
||||
<listOptionValue builtIn="false" value="__XC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XS1B__=1"/>
|
||||
<listOptionValue builtIn="false" value="__INT_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_MAX__=2147483647L"/>
|
||||
<listOptionValue builtIn="false" value="__STDC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_MINOR__=2"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_PATCHLEVEL__=1"/>
|
||||
<listOptionValue builtIn="false" value="__llvm__=1"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_ABI_VERSION=1002"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_LONG_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_MAX__=255U"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EVAL_METHOD__=0"/>
|
||||
<listOptionValue builtIn="false" value="__DEC_EVAL_METHOD__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_RADIX__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MANT_DIG__=24"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DIG__=6"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_EXP__=(-125)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_10_EXP__=(-37)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_EXP__=128"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_10_EXP__=38"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX__=3.40282347e+38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN__=1.17549435e-38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EPSILON__=1.19209290e-7F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DENORM_MIN__=1.40129846e-45F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX__=1.7976931348623157e+308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN__=2.2250738585072014e-308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_EPSILON__=2.2204460492503131e-16"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DENORM_MIN__=4.9406564584124654e-324"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DECIMAL_DIG__=17"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX__=1.7976931348623157e+308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN__=2.2250738585072014e-308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_EPSILON__=2.2204460492503131e-16L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DENORM_MIN__=4.9406564584124654e-324L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MANT_DIG__=7"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN_EXP__=(-95)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX_EXP__=96"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN__=1E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX__=9.999999E96DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_EPSILON__=1E-6DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_DEN__=0.000001E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MANT_DIG__=16"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN_EXP__=(-383)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX_EXP__=384"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN__=1E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX__=9.999999999999999E384DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_EPSILON__=1E-15DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_DEN__=0.000000000000001E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MANT_DIG__=34"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN_EXP__=(-6143)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX_EXP__=6144"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN__=1E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX__=9.999999999999999999999999999999999E6144DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_EPSILON__=1E-33DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_DEN__=0.000000000000000000000000000000001E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__REGISTER_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__USER_LABEL_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__VERSION__="4.2.1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_GNU_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__BLOCKS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__NO_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FINITE_MATH_ONLY__=0"/>
|
||||
<listOptionValue builtIn="false" value="__ELF__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XCC_HAVE_FLOAT__=1"/>
|
||||
<listOptionValue builtIn="false" value="__cplusplus=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUG__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_WEAK__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEPRECATED=1"/>
|
||||
<listOptionValue builtIn="false" value="__EXCEPTIONS=1"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_UNSIGNED__=1"/>
|
||||
</option>
|
||||
<option id = "com.xmos.xc.compiler.option.include.paths.6342848" name="com.xmos.xc.compiler.option.include.paths" superClass="com.xmos.xc.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/gcc""/>
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/.settings}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert}"' />
|
||||
|
||||
</option>
|
||||
<inputType id = "com.xmos.cdt.xc.compiler.input.93736532" name="XC" superClass="com.xmos.cdt.xc.compiler.input"/>
|
||||
</tool>
|
||||
<tool id = "com.xmos.cdt.c.compiler.92402808" name="com.xmos.cdt.c.compiler" superClass="com.xmos.cdt.c.compiler">
|
||||
<option id = "com.xmos.c.compiler.option.defined.symbols.79822841" name="com.xmos.c.compiler.option.defined.symbols" superClass="com.xmos.c.compiler.option.defined.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="__STDC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_VERSION__=199901L"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_HOSTED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_MINOR__=2"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_PATCHLEVEL__=1"/>
|
||||
<listOptionValue builtIn="false" value="__llvm__=1"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_ABI_VERSION=1002"/>
|
||||
<listOptionValue builtIn="false" value="__SCHAR_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__SHRT_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__INT_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_MAX__=2147483647L"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_LONG_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_MAX__=255U"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EVAL_METHOD__=0"/>
|
||||
<listOptionValue builtIn="false" value="__DEC_EVAL_METHOD__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_RADIX__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MANT_DIG__=24"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DIG__=6"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_EXP__=(-125)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_10_EXP__=(-37)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_EXP__=128"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_10_EXP__=38"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX__=3.40282347e+38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN__=1.17549435e-38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EPSILON__=1.19209290e-7F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DENORM_MIN__=1.40129846e-45F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX__=1.7976931348623157e+308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN__=2.2250738585072014e-308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_EPSILON__=2.2204460492503131e-16"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DENORM_MIN__=4.9406564584124654e-324"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DECIMAL_DIG__=17"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX__=1.7976931348623157e+308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN__=2.2250738585072014e-308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_EPSILON__=2.2204460492503131e-16L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DENORM_MIN__=4.9406564584124654e-324L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MANT_DIG__=7"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN_EXP__=(-95)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX_EXP__=96"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN__=1E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX__=9.999999E96DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_EPSILON__=1E-6DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_DEN__=0.000001E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MANT_DIG__=16"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN_EXP__=(-383)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX_EXP__=384"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN__=1E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX__=9.999999999999999E384DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_EPSILON__=1E-15DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_DEN__=0.000000000000001E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MANT_DIG__=34"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN_EXP__=(-6143)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX_EXP__=6144"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN__=1E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX__=9.999999999999999999999999999999999E6144DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_EPSILON__=1E-33DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_DEN__=0.000000000000000000000000000000001E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__REGISTER_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__USER_LABEL_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__VERSION__="4.2.1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_STDC_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__BLOCKS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__NO_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FINITE_MATH_ONLY__=0"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XS1B__=1"/>
|
||||
<listOptionValue builtIn="false" value="__ELF__=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_YEAR=12"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MONTH=2"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MAJOR=1202"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MINOR=0"/>
|
||||
<listOptionValue builtIn="false" value="__XCC_HAVE_FLOAT__=1"/>
|
||||
</option>
|
||||
<option id = "com.xmos.c.compiler.option.include.paths.27819059" name="com.xmos.c.compiler.option.include.paths" superClass="com.xmos.c.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/gcc""/>
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/.settings}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert}"' />
|
||||
|
||||
</option>
|
||||
<inputType id = "com.xmos.cdt.c.compiler.input.c.26351538" name="C" superClass="com.xmos.cdt.c.compiler.input.c"/>
|
||||
</tool>
|
||||
<tool id = "com.xmos.cdt.cxx.compiler.83278035" name="com.xmos.cdt.cxx.compiler" superClass="com.xmos.cdt.cxx.compiler">
|
||||
<option id = "com.xmos.cxx.compiler.option.defined.symbols.85664154" name="com.xmos.cxx.compiler.option.defined.symbols" superClass="com.xmos.cxx.compiler.option.defined.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="__STDC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__cplusplus=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_HOSTED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUG__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_MINOR__=2"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_PATCHLEVEL__=1"/>
|
||||
<listOptionValue builtIn="false" value="__llvm__=1"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_WEAK__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEPRECATED=1"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_ABI_VERSION=1002"/>
|
||||
<listOptionValue builtIn="false" value="__SCHAR_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__SHRT_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__INT_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_MAX__=2147483647L"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_LONG_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_MAX__=255U"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EVAL_METHOD__=0"/>
|
||||
<listOptionValue builtIn="false" value="__DEC_EVAL_METHOD__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_RADIX__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MANT_DIG__=24"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DIG__=6"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_EXP__=(-125)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_10_EXP__=(-37)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_EXP__=128"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_10_EXP__=38"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX__=3.40282347e+38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN__=1.17549435e-38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EPSILON__=1.19209290e-7F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DENORM_MIN__=1.40129846e-45F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX__=1.7976931348623157e+308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN__=2.2250738585072014e-308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_EPSILON__=2.2204460492503131e-16"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DENORM_MIN__=4.9406564584124654e-324"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DECIMAL_DIG__=17"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX__=1.7976931348623157e+308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN__=2.2250738585072014e-308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_EPSILON__=2.2204460492503131e-16L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DENORM_MIN__=4.9406564584124654e-324L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MANT_DIG__=7"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN_EXP__=(-95)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX_EXP__=96"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN__=1E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX__=9.999999E96DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_EPSILON__=1E-6DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_DEN__=0.000001E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MANT_DIG__=16"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN_EXP__=(-383)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX_EXP__=384"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN__=1E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX__=9.999999999999999E384DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_EPSILON__=1E-15DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_DEN__=0.000000000000001E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MANT_DIG__=34"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN_EXP__=(-6143)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX_EXP__=6144"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN__=1E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX__=9.999999999999999999999999999999999E6144DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_EPSILON__=1E-33DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_DEN__=0.000000000000000000000000000000001E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__REGISTER_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__USER_LABEL_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__VERSION__="4.2.1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_GNU_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__BLOCKS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__NO_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FINITE_MATH_ONLY__=0"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XS1B__=1"/>
|
||||
<listOptionValue builtIn="false" value="__ELF__=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_YEAR=12"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MONTH=2"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MAJOR=1202"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MINOR=0"/>
|
||||
<listOptionValue builtIn="false" value="__XCC_HAVE_FLOAT__=1"/>
|
||||
</option>
|
||||
<option id = "com.xmos.cxx.compiler.option.include.paths.92184970" name="com.xmos.cxx.compiler.option.include.paths" superClass="com.xmos.cxx.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/gcc""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/c++/4.2.1""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/c++/4.2.1/xcore-xmos-elf""/>
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/.settings}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert}"' />
|
||||
|
||||
</option>
|
||||
<inputType id = "com.xmos.cdt.cxx.compiler.input.cpp.70994893" name="C++" superClass="com.xmos.cdt.cxx.compiler.input.cpp"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry excluding=".build_*" flags="VALUE_WORKSPACE_PATH|RESOLVED"
|
||||
kind="sourcePath" name="" />
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="" />
|
||||
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="makefileGenerator">
|
||||
<runAction arguments="-E -P -v -dD" command="" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments='-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'' command="sh" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments='-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'' command="sh" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments='-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'' command="sh" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings" />
|
||||
<storageModule moduleId="org.eclipse.cdt.core.language.mapping" />
|
||||
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings" />
|
||||
</cconfiguration>
|
||||
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id = "app_uart_test.null.49472330" name="app_uart_test" />
|
||||
</storageModule>
|
||||
</cproject>
|
||||
76
lib_uart/tests/app_uart_test/.project
Normal file
76
lib_uart/tests/app_uart_test/.project
Normal file
@@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>app_uart_test</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
<dictionary>
|
||||
<key>?children?</key>
|
||||
<value>?name?=outputEntries\|?children?=?name?=entry\\\\|\\|\||</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>?name?</key>
|
||||
<value></value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.append_environment</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.buildArguments</key>
|
||||
<value>CONFIG=Debug</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.buildCommand</key>
|
||||
<value>xmake</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
|
||||
<value>clean</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.contents</key>
|
||||
<value>org.eclipse.cdt.make.core.activeConfigSettings</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
|
||||
<value>false</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableFullBuild</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.stopOnError</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
|
||||
<value>false</value>
|
||||
</dictionary>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
<nature>com.xmos.cdt.core.XdeProjectNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
|
||||
1
lib_uart/tests/app_uart_test/.xproject
Normal file
1
lib_uart/tests/app_uart_test/.xproject
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><xproject><repository>sc_uart</repository><partnum>XM-001906-SM</partnum></xproject>
|
||||
135
lib_uart/tests/app_uart_test/LICENSE.txt
Normal file
135
lib_uart/tests/app_uart_test/LICENSE.txt
Normal file
@@ -0,0 +1,135 @@
|
||||
Software Release License Agreement
|
||||
|
||||
Copyright (c) 2014-2017, XMOS, All rights reserved.
|
||||
|
||||
BY ACCESSING, USING, INSTALLING OR DOWNLOADING THE XMOS SOFTWARE, YOU AGREE TO BE BOUND BY THE FOLLOWING TERMS. IF YOU DO NOT AGREE TO THESE, DO NOT ATTEMPT TO DOWNLOAD, ACCESS OR USE THE XMOS Software.
|
||||
|
||||
Parties:
|
||||
|
||||
(1) XMOS Limited, incorporated and registered in England and Wales with company number 5494985 whose registered office is 107 Cheapside, London, EC2V 6DN (XMOS).
|
||||
|
||||
(2) An individual or legal entity exercising permissions granted by this License (Customer).
|
||||
|
||||
If you are entering into this Agreement on behalf of another legal entity such as a company, partnership, university, college etc. (for example, as an employee, student or consultant), you warrant that you have authority to bind that entity.
|
||||
|
||||
1. Definitions
|
||||
|
||||
"License" means this Software License and any schedules or annexes to it.
|
||||
|
||||
"License Fee" means the fee for the XMOS Software as detailed in any schedules or annexes to this Software License
|
||||
|
||||
"Licensee Modifications" means all developments and modifications of the XMOS Software developed independently by the Customer.
|
||||
|
||||
"XMOS Modifications" means all developments and modifications of the XMOS Software developed or co-developed by XMOS.
|
||||
|
||||
"XMOS Hardware" means any XMOS hardware devices supplied by XMOS from time to time and/or the particular XMOS devices detailed in any schedules or annexes to this Software License.
|
||||
|
||||
"XMOS Software" comprises the XMOS owned circuit designs, schematics, source code, object code, reference designs, (including related programmer comments and documentation, if any), error corrections, improvements, modifications (including XMOS Modifications) and updates.
|
||||
|
||||
The headings in this License do not affect its interpretation. Save where the context otherwise requires, references to clauses and schedules are to clauses and schedules of this License.
|
||||
|
||||
Unless the context otherwise requires:
|
||||
|
||||
- references to XMOS and the Customer include their permitted successors and assigns;
|
||||
- references to statutory provisions include those statutory provisions as amended or re-enacted; and
|
||||
- references to any gender include all genders.
|
||||
|
||||
Words in the singular include the plural and in the plural include the singular.
|
||||
|
||||
2. License
|
||||
|
||||
XMOS grants the Customer a non-exclusive license to use, develop, modify and distribute the XMOS Software with, or for the purpose of being used with, XMOS Hardware.
|
||||
|
||||
Open Source Software (OSS) must be used and dealt with in accordance with any license terms under which OSS is distributed.
|
||||
|
||||
3. Consideration
|
||||
|
||||
In consideration of the mutual obligations contained in this License, the parties agree to its terms.
|
||||
|
||||
4. Term
|
||||
|
||||
Subject to clause 12 below, this License shall be perpetual.
|
||||
|
||||
5. Restrictions on Use
|
||||
|
||||
The Customer will adhere to all applicable import and export laws and regulations of the country in which it resides and of the United States and United Kingdom, without limitation. The Customer agrees that it is its responsibility to obtain copies of and to familiarise itself fully with these laws and regulations to avoid violation.
|
||||
|
||||
6. Modifications
|
||||
|
||||
The Customer will own all intellectual property rights in the Licensee Modifications but will undertake to provide XMOS with any fixes made to correct any bugs found in the XMOS Software on a non-exclusive, perpetual and royalty free license basis.
|
||||
|
||||
XMOS will own all intellectual property rights in the XMOS Modifications.
|
||||
The Customer may only use the Licensee Modifications and XMOS Modifications on, or in relation to, XMOS Hardware.
|
||||
|
||||
7. Support
|
||||
|
||||
Support of the XMOS Software may be provided by XMOS pursuant to a separate support agreement.
|
||||
|
||||
8. Warranty and Disclaimer
|
||||
|
||||
The XMOS Software is provided "AS IS" without a warranty of any kind. XMOS and its licensors' entire liability and Customer's exclusive remedy under this warranty to be determined in XMOS's sole and absolute discretion, will be either (a) the corrections of defects in media or replacement of the media, or (b) the refund of the license fee paid (if any).
|
||||
|
||||
Whilst XMOS gives the Customer the ability to load their own software and applications onto XMOS devices, the security of such software and applications when on the XMOS devices is the Customer's own responsibility and any breach of security shall not be deemed a defect or failure of the hardware. XMOS shall have no liability whatsoever in relation to any costs, damages or other losses Customer may incur as a result of any breaches of security in relation to your software or applications.
|
||||
|
||||
XMOS AND ITS LICENSORS DISCLAIM ALL OTHER WARRANTIES, EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY/ SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT EXCEPT TO THE EXTENT THAT THESE DISCLAIMERS ARE HELD TO BE LEGALLY INVALID UNDER APPLICABLE LAW.
|
||||
|
||||
9. High Risk Activities
|
||||
|
||||
The XMOS Software is not designed or intended for use in conjunction with on-line control equipment in hazardous environments requiring fail-safe performance, including without limitation the operation of nuclear facilities, aircraft navigation or communication systems, air traffic control, life support machines, or weapons systems (collectively "High Risk Activities") in which the failure of the XMOS Software could lead directly to death, personal injury, or severe physical or environmental damage. XMOS and its licensors specifically disclaim any express or implied warranties relating to use of the XMOS Software in connection with High Risk Activities.
|
||||
|
||||
10. Liability
|
||||
|
||||
TO THE EXTENT NOT PROHIBITED BY APPLICABLE LAW, NEITHER XMOS NOR ITS LICENSORS SHALL BE LIABLE FOR ANY LOST REVENUE, BUSINESS, PROFIT, CONTRACTS OR DATA, ADMINISTRATIVE OR OVERHEAD EXPENSES, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES HOWEVER CAUSED AND REGARDLESS OF THEORY OF LIABILITY ARISING OUT OF THIS LICENSE, EVEN IF XMOS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. In no event shall XMOS's liability to the Customer whether in contract, tort (including negligence), or otherwise exceed the License Fee.
|
||||
|
||||
Customer agrees to indemnify, hold harmless, and defend XMOS and its licensors from and against any claims or lawsuits, including attorneys' fees and any other liabilities, demands, proceedings, damages, losses, costs, expenses fines and charges which are made or brought against or incurred by XMOS as a result of your use or distribution of the Licensee Modifications or your use or distribution of XMOS Software, or any development of it, other than in accordance with the terms of this License.
|
||||
|
||||
11. Ownership
|
||||
|
||||
The copyrights and all other intellectual and industrial property rights for the protection of information with respect to the XMOS Software (including the methods and techniques on which they are based) are retained by XMOS and/or its licensors. Nothing in this Agreement serves to transfer such rights. Customer may not sell, mortgage, underlet, sublease, sublicense, lend or transfer possession of the XMOS Software in any way whatsoever to any third party who is not bound by this Agreement.
|
||||
|
||||
12. Termination
|
||||
|
||||
Either party may terminate this License at any time on written notice to the other if the other:
|
||||
|
||||
- is in material or persistent breach of any of the terms of this License and either that breach is incapable of remedy, or the other party fails to remedy that breach within 30 days after receiving written notice requiring it to remedy that breach; or
|
||||
|
||||
- is unable to pay its debts (within the meaning of section 123 of the Insolvency Act 1986), or becomes insolvent, or is subject to an order or a resolution for its liquidation, administration, winding-up or dissolution (otherwise than for the purposes of a solvent amalgamation or reconstruction), or has an administrative or other receiver, manager, trustee, liquidator, administrator or similar officer appointed over all or any substantial part of its assets, or enters into or proposes any composition or arrangement with its creditors generally, or is subject to any analogous event or proceeding in any applicable jurisdiction.
|
||||
|
||||
Termination by either party in accordance with the rights contained in clause 12 shall be without prejudice to any other rights or remedies of that party accrued prior to termination.
|
||||
|
||||
On termination for any reason:
|
||||
|
||||
- all rights granted to the Customer under this License shall cease;
|
||||
- the Customer shall cease all activities authorised by this License;
|
||||
- the Customer shall immediately pay any sums due to XMOS under this License; and
|
||||
- the Customer shall immediately destroy or return to the XMOS (at the XMOS's option) all copies of the XMOS Software then in its possession, custody or control and, in the case of destruction, certify to XMOS that it has done so.
|
||||
|
||||
Clauses 5, 8, 9, 10 and 11 shall survive any effective termination of this Agreement.
|
||||
|
||||
13. Third party rights
|
||||
|
||||
No term of this License is intended to confer a benefit on, or to be enforceable by, any person who is not a party to this license.
|
||||
|
||||
14. Confidentiality and publicity
|
||||
|
||||
Each party shall, during the term of this License and thereafter, keep confidential all, and shall not use for its own purposes nor without the prior written consent of the other disclose to any third party any, information of a confidential nature (including, without limitation, trade secrets and information of commercial value) which may become known to such party from the other party and which relates to the other party, unless such information is public knowledge or already known to such party at the time of disclosure, or subsequently becomes public knowledge other than by breach of this license, or subsequently comes lawfully into the possession of such party from a third party.
|
||||
|
||||
The terms of this license are confidential and may not be disclosed by the Customer without the prior written consent of XMOS.
|
||||
The provisions of clause 14 shall remain in full force and effect notwithstanding termination of this license for any reason.
|
||||
|
||||
15. Entire agreement
|
||||
|
||||
This License and the documents annexed as appendices to this License or otherwise referred to herein contain the whole agreement between the parties relating to the subject matter hereof and supersede all prior agreements, arrangements and understandings between the parties relating to that subject matter.
|
||||
|
||||
16. Assignment
|
||||
|
||||
The Customer shall not assign this License or any of the rights granted under it without XMOS's prior written consent.
|
||||
|
||||
17. Governing law and jurisdiction
|
||||
|
||||
This License shall be governed by and construed in accordance with English law and each party hereby submits to the non-exclusive jurisdiction of the English courts.
|
||||
|
||||
This License has been entered into on the date stated at the beginning of it.
|
||||
|
||||
Schedule
|
||||
XMOS UART library software
|
||||
38
lib_uart/tests/app_uart_test/Makefile
Normal file
38
lib_uart/tests/app_uart_test/Makefile
Normal file
@@ -0,0 +1,38 @@
|
||||
# The TARGET variable determines what target system the application is
|
||||
# compiled for. It either refers to an XN file in the source directories
|
||||
# or a valid argument for the --target option when compiling.
|
||||
|
||||
TARGET = SLICEKIT-L16
|
||||
|
||||
# The APP_NAME variable determines the name of the final .xe file. It should
|
||||
# not include the .xe postfix. If left blank the name will default to
|
||||
# the project name
|
||||
|
||||
APP_NAME =
|
||||
|
||||
# The flags passed to xcc when building the application
|
||||
# You can also set the following to override flags for a particular language:
|
||||
#
|
||||
# XCC_XC_FLAGS, XCC_C_FLAGS, XCC_ASM_FLAGS, XCC_CPP_FLAGS
|
||||
#
|
||||
# If the variable XCC_MAP_FLAGS is set it overrides the flags passed to
|
||||
# xcc for the final link (mapping) stage.
|
||||
|
||||
COMMON_FLAGS = -save-temps -O2 -report $(EXTRA_FLAGS)
|
||||
|
||||
XCC_FLAGS_smoke = $(COMMON_FLAGS) -DSMOKE_TEST=1
|
||||
XCC_FLAGS_full = $(COMMON_FLAGS) -DFULL_TEST=1
|
||||
|
||||
# The USED_MODULES variable lists other module used by the application.
|
||||
|
||||
USED_MODULES = lib_uart lib_xassert lib_logging
|
||||
|
||||
test: bin/app_uart_test.xe
|
||||
xsim bin/app_uart_test.xe --xscope "-offline uart_test.xmt" --plugin LoopbackPort.dll '-port tile[0] XS1_PORT_1A 1 0 -port tile[1] XS1_PORT_1B 1 0'
|
||||
|
||||
#=============================================================================
|
||||
# The following part of the Makefile includes the common build infrastructure
|
||||
# for compiling XMOS applications. You should not need to edit below here.
|
||||
|
||||
XMOS_MAKE_PATH ?= ../..
|
||||
include $(XMOS_MAKE_PATH)/xcommon/module_xcommon/build/Makefile.common
|
||||
12
lib_uart/tests/app_uart_test/README.rst
Normal file
12
lib_uart/tests/app_uart_test/README.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
UART rx/tx regression test
|
||||
==========================
|
||||
|
||||
:scope: Example
|
||||
:description: Regression test for uart rx/tx components
|
||||
:keywords: uart, testing
|
||||
|
||||
This application provides a simple regression test harness for the
|
||||
uart rx/tx components. It tests the components in various
|
||||
configurations based on a simulator looping back the pins between the
|
||||
two components.
|
||||
|
||||
4
lib_uart/tests/app_uart_test/config.xscope
Normal file
4
lib_uart/tests/app_uart_test/config.xscope
Normal file
@@ -0,0 +1,4 @@
|
||||
<xSCOPEconfig enabled="true">
|
||||
<Module name="Uart RX" enabled="false"/>
|
||||
<Module name="Uart TX" enabled="false"/>
|
||||
</xSCOPEconfig>
|
||||
5
lib_uart/tests/app_uart_test/src/debug_conf.h
Normal file
5
lib_uart/tests/app_uart_test/src/debug_conf.h
Normal file
@@ -0,0 +1,5 @@
|
||||
// Copyright (c) 2014-2016, XMOS Ltd, All rights reserved
|
||||
#define DEBUG_PRINT_ENABLE 1
|
||||
#define XASSERT_ENABLE_ASSERTIONS 1
|
||||
#define XASSERT_ENABLE_DEBUG 1
|
||||
#define XASSERT_ENABLE_LINE_NUMBERS 1
|
||||
225
lib_uart/tests/app_uart_test/src/uart_test.xc
Normal file
225
lib_uart/tests/app_uart_test/src/uart_test.xc
Normal file
@@ -0,0 +1,225 @@
|
||||
// Copyright (c) 2014-2016, XMOS Ltd, All rights reserved
|
||||
|
||||
#include <xs1.h>
|
||||
#include <platform.h>
|
||||
#include <stdlib.h>
|
||||
#include "debug_print.h"
|
||||
#include "xassert.h"
|
||||
#include "uart.h"
|
||||
|
||||
#define BITTIME(x) (100000000 / (x))
|
||||
|
||||
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
|
||||
|
||||
#define CHECK_EVENTS 1
|
||||
#define CHECK_BUFFERING 1
|
||||
#define CHECK_RUNTIME_PARAMETER_CHANGE 1
|
||||
#define CHECK_PARITY_ERRORS 1
|
||||
|
||||
static void check_no_rx_data(client uart_rx_if i_uart_rx,
|
||||
unsigned timeout,
|
||||
int &result)
|
||||
{
|
||||
timer t;
|
||||
unsigned time;
|
||||
t :> time;
|
||||
select {
|
||||
case t when timerafter(time + timeout) :> void:
|
||||
return;
|
||||
case i_uart_rx.data_ready():
|
||||
printhexln(i_uart_rx.read());
|
||||
result = 0;
|
||||
return;
|
||||
}
|
||||
__builtin_unreachable();
|
||||
}
|
||||
|
||||
static void uart_test(client uart_tx_if i_uart_tx,
|
||||
client uart_config_if i_tx_config,
|
||||
client uart_rx_if i_uart_rx,
|
||||
client uart_config_if i_rx_config,
|
||||
unsigned baud_rate)
|
||||
{
|
||||
unsigned char byte;
|
||||
timer t;
|
||||
unsigned time;
|
||||
|
||||
debug_printf("TEST CONFIG:{'baud rate':%d}\n",baud_rate);
|
||||
|
||||
// Configure RX, TX
|
||||
i_rx_config.set_baud_rate(baud_rate);
|
||||
i_tx_config.set_baud_rate(baud_rate);
|
||||
|
||||
int result = 1;
|
||||
debug_printf("Performing basic loopback test.\n");
|
||||
i_uart_tx.write(0x0);
|
||||
|
||||
byte = i_uart_rx.wait_for_data_and_read();
|
||||
result &= (byte == 0x0);
|
||||
|
||||
i_uart_tx.write(0x2c);
|
||||
byte = i_uart_rx.wait_for_data_and_read();
|
||||
result &= (byte == 0x2c);
|
||||
|
||||
i_uart_tx.write(0x0A);
|
||||
byte = i_uart_rx.wait_for_data_and_read();
|
||||
result &= (byte == 0x0A);
|
||||
|
||||
i_uart_tx.write(0x04);
|
||||
byte = i_uart_rx.wait_for_data_and_read();
|
||||
result &= (byte == 0x04);
|
||||
|
||||
debug_printf("TEST RESULT:basic_loopback:%s\n", result ? "PASS" : "FAIL");
|
||||
|
||||
if (CHECK_EVENTS) {
|
||||
debug_printf("Check we can event on incoming data.\n");
|
||||
result = 1;
|
||||
t :> time;
|
||||
i_uart_tx.write(173);
|
||||
select {
|
||||
case t when timerafter(time + BITTIME(baud_rate) * 20) :> void:
|
||||
// Shouldn't get here.
|
||||
debug_printf("timeout (data not ready)");
|
||||
result = 0;
|
||||
break;
|
||||
case i_uart_rx.data_ready():
|
||||
byte = i_uart_rx.read();
|
||||
result &= (byte == 173);
|
||||
break;
|
||||
}
|
||||
debug_printf("TEST RESULT:rx_notification:%s\n", result ? "PASS" : "FAIL");
|
||||
}
|
||||
|
||||
if (CHECK_BUFFERING) {
|
||||
result = 1;
|
||||
unsigned char data[] = { 0b10111111, 0x55, 0x2c, 0x09};
|
||||
debug_printf("Testing buffering of %d bytes.\n", ARRAY_SIZE(data));
|
||||
for (unsigned i = 0; i < ARRAY_SIZE(data); i++) {
|
||||
i_uart_tx.write(data[i]);
|
||||
}
|
||||
t :> time;
|
||||
t when timerafter(time + BITTIME(baud_rate) * 11 * 4) :> void;
|
||||
for (unsigned i = 0; i < ARRAY_SIZE(data); i++) {
|
||||
byte = i_uart_rx.wait_for_data_and_read();
|
||||
result &= (byte == data[i]);
|
||||
}
|
||||
debug_printf("TEST RESULT:rx_buffer:%s\n", result ? "PASS" : "FAIL");
|
||||
}
|
||||
|
||||
if (CHECK_RUNTIME_PARAMETER_CHANGE) {
|
||||
// Reconfigure
|
||||
debug_printf("Reconfiguring UART.\n");
|
||||
result = 1;
|
||||
i_rx_config.set_baud_rate(baud_rate/2);
|
||||
i_rx_config.set_stop_bits(10);
|
||||
i_rx_config.set_bits_per_byte(7);
|
||||
i_tx_config.set_baud_rate(baud_rate/2);
|
||||
i_tx_config.set_stop_bits(10);
|
||||
i_tx_config.set_bits_per_byte(7);
|
||||
|
||||
i_uart_tx.write(0x12);
|
||||
i_uart_tx.write(0x5a);
|
||||
byte = i_uart_rx.wait_for_data_and_read();
|
||||
result &= (byte == 0x12);
|
||||
byte = i_uart_rx.wait_for_data_and_read();
|
||||
result &= (byte == 0x5a);
|
||||
|
||||
debug_printf("TEST RESULT:reconfiguration:%s\n", result ? "PASS" : "FAIL");
|
||||
|
||||
debug_printf("Reconfiguring parity to odd.\n");
|
||||
result = 1;
|
||||
// Check parity
|
||||
i_rx_config.set_bits_per_byte(8);
|
||||
i_tx_config.set_bits_per_byte(8);
|
||||
i_rx_config.set_parity(UART_PARITY_ODD);
|
||||
i_tx_config.set_parity(UART_PARITY_ODD);
|
||||
i_uart_tx.write(0x12);
|
||||
byte = i_uart_rx.wait_for_data_and_read();
|
||||
result &= (byte == 0x12);
|
||||
i_uart_tx.write(0xa4);
|
||||
byte = i_uart_rx.wait_for_data_and_read();
|
||||
result &= (byte == 0xa4);
|
||||
|
||||
debug_printf("TEST RESULT:reconfigure_parity_odd:%s\n", result ? "PASS" : "FAIL");
|
||||
|
||||
debug_printf("Reconfiguring parity to even.\n");
|
||||
result = 1;
|
||||
// Check parity
|
||||
i_rx_config.set_parity(UART_PARITY_EVEN);
|
||||
i_tx_config.set_parity(UART_PARITY_EVEN);
|
||||
i_uart_tx.write(0x12);
|
||||
byte = i_uart_rx.wait_for_data_and_read();
|
||||
result &= (byte == 0x12);
|
||||
i_uart_tx.write(0xa4);
|
||||
byte = i_uart_rx.wait_for_data_and_read();
|
||||
result &= (byte == 0xa4);
|
||||
|
||||
debug_printf("TEST RESULT:reconfigure_parity_even:%s\n", result ? "PASS" : "FAIL");
|
||||
|
||||
debug_printf("Reconfiguring back ..\n");
|
||||
i_rx_config.set_baud_rate(baud_rate);
|
||||
i_rx_config.set_stop_bits(1);
|
||||
i_rx_config.set_bits_per_byte(8);
|
||||
i_rx_config.set_parity(UART_PARITY_NONE);
|
||||
i_tx_config.set_baud_rate(baud_rate);
|
||||
i_tx_config.set_stop_bits(1);
|
||||
i_tx_config.set_bits_per_byte(8);
|
||||
i_tx_config.set_parity(UART_PARITY_NONE);
|
||||
}
|
||||
|
||||
|
||||
if (CHECK_PARITY_ERRORS) {
|
||||
debug_printf("Checking that invalid parity information is discarded.\n");
|
||||
result = 1;
|
||||
i_rx_config.set_parity(UART_PARITY_ODD);
|
||||
i_tx_config.set_parity(UART_PARITY_EVEN);
|
||||
delay_ticks(1000);
|
||||
i_uart_tx.write(0x55);
|
||||
check_no_rx_data(i_uart_rx, BITTIME(baud_rate) * 200, result);
|
||||
|
||||
i_rx_config.set_parity(UART_PARITY_EVEN);
|
||||
i_tx_config.set_parity(UART_PARITY_ODD);
|
||||
delay_ticks(1000);
|
||||
i_uart_tx.write(0x55);
|
||||
check_no_rx_data(i_uart_rx, BITTIME(baud_rate) * 200, result);
|
||||
debug_printf("TEST RESULT:parity_errors:%s\n", result ? "PASS" : "FAIL");
|
||||
|
||||
}
|
||||
_Exit(0);
|
||||
}
|
||||
|
||||
port p_rx = on tile[0] : XS1_PORT_1A;
|
||||
port p_tx = on tile[1] : XS1_PORT_1B;
|
||||
|
||||
|
||||
#define BUFFER_SIZE 64
|
||||
int main() {
|
||||
uart_rx_if i_rx;
|
||||
uart_tx_if i_tx;
|
||||
uart_config_if i_rx_config, i_tx_config;
|
||||
input_gpio_if i_gpio_rx;
|
||||
output_gpio_if i_gpio_tx[1];
|
||||
par {
|
||||
|
||||
on tile[1] : output_gpio(i_gpio_tx, 1, p_tx, null);
|
||||
on tile[1] : uart_tx(i_tx, i_tx_config,
|
||||
115200, UART_PARITY_NONE, 8, 1, i_gpio_tx[0]);
|
||||
on tile[0].core[0] : input_gpio_1bit_with_events(i_gpio_rx, p_rx);
|
||||
on tile[0].core[0] : uart_rx(i_rx, i_rx_config, BUFFER_SIZE,
|
||||
115200, UART_PARITY_NONE, 8, 1, i_gpio_rx);
|
||||
on tile[0] : {
|
||||
#if SMOKE_TEST
|
||||
unsigned rates[] = {115200};
|
||||
#else
|
||||
unsigned rates[] = {2400, 9600, 19200};
|
||||
#endif
|
||||
for (int i = 0; i < ARRAY_SIZE(rates); i++) {
|
||||
uart_test(i_tx, i_tx_config, i_rx, i_rx_config, rates[i]);
|
||||
}
|
||||
_Exit(0);
|
||||
}
|
||||
par (int i=0;i<6;i++)
|
||||
on tile[0]: while(1);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
524
lib_uart/tests/app_uart_test_bpb/.cproject
Normal file
524
lib_uart/tests/app_uart_test_bpb/.cproject
Normal file
@@ -0,0 +1,524 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<?fileVersion 4.0.0?>
|
||||
<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
|
||||
<cconfiguration id="com.xmos.cdt.toolchain.70697190">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.xmos.cdt.toolchain.70697190" moduleId="org.eclipse.cdt.core.settings" name="Default">
|
||||
<externalSettings />
|
||||
<extensions>
|
||||
<extension id="com.xmos.cdt.core.XEBinaryParser" point="org.eclipse.cdt.core.BinaryParser" />
|
||||
<extension id="com.xmos.cdt.core.XdeErrorParser" point="org.eclipse.cdt.core.ErrorParser" />
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser" />
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
|
||||
<buildTargets>
|
||||
<target name="all" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>xmake</buildCommand>
|
||||
<buildArguments></buildArguments>
|
||||
<buildTarget>all</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>true</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
<target name="clean" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>xmake</buildCommand>
|
||||
<buildArguments></buildArguments>
|
||||
<buildTarget>clean</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>true</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
</buildTargets>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration buildProperties="" description="" id="com.xmos.cdt.toolchain.70697190" name="Default" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="com.xmos.cdt.toolchain.70697190.1127281840" name="/" resourcePath="">
|
||||
<toolChain id = "com.xmos.cdt.toolchain.82541009" name="com.xmos.cdt.toolchain" superClass="com.xmos.cdt.toolchain">
|
||||
<targetPlatform archList="all" binaryParser="com.xmos.cdt.core.XEBinaryParser" id = "com.xmos.cdt.core.platform.12694723" isAbstract="false" osList="linux,win32,macosx" superClass="com.xmos.cdt.core.platform" />
|
||||
<builder arguments="" id = "com.xmos.cdt.builder.base.23861697" keepEnvironmentInBuildfile="false" managedBuildOn="false" superClass="com.xmos.cdt.builder.base">
|
||||
<outputEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="outputPath" name="bin" />
|
||||
</outputEntries>
|
||||
</builder>
|
||||
<tool id = "com.xmos.cdt.xc.compiler.44109726" name="com.xmos.cdt.xc.compiler" superClass="com.xmos.cdt.xc.compiler">
|
||||
<option id = "com.xmos.c.compiler.option.defined.symbols.63981785" name="com.xmos.c.compiler.option.defined.symbols" superClass="com.xmos.c.compiler.option.defined.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="__SHRT_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__SCHAR_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_HOSTED__=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_YEAR=11"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MAJOR=1111"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MINOR=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MONTH=11"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__MCPP=2"/>
|
||||
<listOptionValue builtIn="false" value="__XC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XS1B__=1"/>
|
||||
<listOptionValue builtIn="false" value="__INT_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_MAX__=2147483647L"/>
|
||||
<listOptionValue builtIn="false" value="__STDC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_MINOR__=2"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_PATCHLEVEL__=1"/>
|
||||
<listOptionValue builtIn="false" value="__llvm__=1"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_ABI_VERSION=1002"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_LONG_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_MAX__=255U"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EVAL_METHOD__=0"/>
|
||||
<listOptionValue builtIn="false" value="__DEC_EVAL_METHOD__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_RADIX__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MANT_DIG__=24"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DIG__=6"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_EXP__=(-125)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_10_EXP__=(-37)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_EXP__=128"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_10_EXP__=38"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX__=3.40282347e+38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN__=1.17549435e-38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EPSILON__=1.19209290e-7F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DENORM_MIN__=1.40129846e-45F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX__=1.7976931348623157e+308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN__=2.2250738585072014e-308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_EPSILON__=2.2204460492503131e-16"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DENORM_MIN__=4.9406564584124654e-324"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DECIMAL_DIG__=17"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX__=1.7976931348623157e+308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN__=2.2250738585072014e-308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_EPSILON__=2.2204460492503131e-16L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DENORM_MIN__=4.9406564584124654e-324L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MANT_DIG__=7"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN_EXP__=(-95)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX_EXP__=96"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN__=1E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX__=9.999999E96DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_EPSILON__=1E-6DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_DEN__=0.000001E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MANT_DIG__=16"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN_EXP__=(-383)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX_EXP__=384"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN__=1E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX__=9.999999999999999E384DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_EPSILON__=1E-15DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_DEN__=0.000000000000001E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MANT_DIG__=34"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN_EXP__=(-6143)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX_EXP__=6144"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN__=1E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX__=9.999999999999999999999999999999999E6144DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_EPSILON__=1E-33DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_DEN__=0.000000000000000000000000000000001E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__REGISTER_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__USER_LABEL_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__VERSION__="4.2.1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_GNU_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__BLOCKS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__NO_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FINITE_MATH_ONLY__=0"/>
|
||||
<listOptionValue builtIn="false" value="__ELF__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XCC_HAVE_FLOAT__=1"/>
|
||||
<listOptionValue builtIn="false" value="__cplusplus=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUG__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_WEAK__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEPRECATED=1"/>
|
||||
<listOptionValue builtIn="false" value="__EXCEPTIONS=1"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_UNSIGNED__=1"/>
|
||||
</option>
|
||||
<option id = "com.xmos.xc.compiler.option.include.paths.6342848" name="com.xmos.xc.compiler.option.include.paths" superClass="com.xmos.xc.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/gcc""/>
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/.settings}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert}"' />
|
||||
|
||||
</option>
|
||||
<inputType id = "com.xmos.cdt.xc.compiler.input.93736532" name="XC" superClass="com.xmos.cdt.xc.compiler.input"/>
|
||||
</tool>
|
||||
<tool id = "com.xmos.cdt.c.compiler.92402808" name="com.xmos.cdt.c.compiler" superClass="com.xmos.cdt.c.compiler">
|
||||
<option id = "com.xmos.c.compiler.option.defined.symbols.79822841" name="com.xmos.c.compiler.option.defined.symbols" superClass="com.xmos.c.compiler.option.defined.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="__STDC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_VERSION__=199901L"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_HOSTED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_MINOR__=2"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_PATCHLEVEL__=1"/>
|
||||
<listOptionValue builtIn="false" value="__llvm__=1"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_ABI_VERSION=1002"/>
|
||||
<listOptionValue builtIn="false" value="__SCHAR_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__SHRT_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__INT_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_MAX__=2147483647L"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_LONG_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_MAX__=255U"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EVAL_METHOD__=0"/>
|
||||
<listOptionValue builtIn="false" value="__DEC_EVAL_METHOD__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_RADIX__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MANT_DIG__=24"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DIG__=6"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_EXP__=(-125)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_10_EXP__=(-37)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_EXP__=128"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_10_EXP__=38"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX__=3.40282347e+38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN__=1.17549435e-38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EPSILON__=1.19209290e-7F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DENORM_MIN__=1.40129846e-45F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX__=1.7976931348623157e+308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN__=2.2250738585072014e-308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_EPSILON__=2.2204460492503131e-16"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DENORM_MIN__=4.9406564584124654e-324"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DECIMAL_DIG__=17"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX__=1.7976931348623157e+308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN__=2.2250738585072014e-308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_EPSILON__=2.2204460492503131e-16L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DENORM_MIN__=4.9406564584124654e-324L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MANT_DIG__=7"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN_EXP__=(-95)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX_EXP__=96"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN__=1E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX__=9.999999E96DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_EPSILON__=1E-6DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_DEN__=0.000001E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MANT_DIG__=16"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN_EXP__=(-383)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX_EXP__=384"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN__=1E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX__=9.999999999999999E384DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_EPSILON__=1E-15DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_DEN__=0.000000000000001E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MANT_DIG__=34"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN_EXP__=(-6143)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX_EXP__=6144"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN__=1E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX__=9.999999999999999999999999999999999E6144DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_EPSILON__=1E-33DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_DEN__=0.000000000000000000000000000000001E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__REGISTER_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__USER_LABEL_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__VERSION__="4.2.1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_STDC_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__BLOCKS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__NO_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FINITE_MATH_ONLY__=0"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XS1B__=1"/>
|
||||
<listOptionValue builtIn="false" value="__ELF__=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_YEAR=12"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MONTH=2"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MAJOR=1202"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MINOR=0"/>
|
||||
<listOptionValue builtIn="false" value="__XCC_HAVE_FLOAT__=1"/>
|
||||
</option>
|
||||
<option id = "com.xmos.c.compiler.option.include.paths.27819059" name="com.xmos.c.compiler.option.include.paths" superClass="com.xmos.c.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/gcc""/>
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/.settings}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert}"' />
|
||||
|
||||
</option>
|
||||
<inputType id = "com.xmos.cdt.c.compiler.input.c.26351538" name="C" superClass="com.xmos.cdt.c.compiler.input.c"/>
|
||||
</tool>
|
||||
<tool id = "com.xmos.cdt.cxx.compiler.83278035" name="com.xmos.cdt.cxx.compiler" superClass="com.xmos.cdt.cxx.compiler">
|
||||
<option id = "com.xmos.cxx.compiler.option.defined.symbols.85664154" name="com.xmos.cxx.compiler.option.defined.symbols" superClass="com.xmos.cxx.compiler.option.defined.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="__STDC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__cplusplus=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_HOSTED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUG__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_MINOR__=2"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_PATCHLEVEL__=1"/>
|
||||
<listOptionValue builtIn="false" value="__llvm__=1"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_WEAK__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEPRECATED=1"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_ABI_VERSION=1002"/>
|
||||
<listOptionValue builtIn="false" value="__SCHAR_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__SHRT_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__INT_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_MAX__=2147483647L"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_LONG_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_MAX__=255U"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EVAL_METHOD__=0"/>
|
||||
<listOptionValue builtIn="false" value="__DEC_EVAL_METHOD__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_RADIX__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MANT_DIG__=24"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DIG__=6"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_EXP__=(-125)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_10_EXP__=(-37)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_EXP__=128"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_10_EXP__=38"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX__=3.40282347e+38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN__=1.17549435e-38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EPSILON__=1.19209290e-7F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DENORM_MIN__=1.40129846e-45F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX__=1.7976931348623157e+308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN__=2.2250738585072014e-308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_EPSILON__=2.2204460492503131e-16"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DENORM_MIN__=4.9406564584124654e-324"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DECIMAL_DIG__=17"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX__=1.7976931348623157e+308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN__=2.2250738585072014e-308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_EPSILON__=2.2204460492503131e-16L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DENORM_MIN__=4.9406564584124654e-324L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MANT_DIG__=7"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN_EXP__=(-95)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX_EXP__=96"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN__=1E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX__=9.999999E96DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_EPSILON__=1E-6DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_DEN__=0.000001E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MANT_DIG__=16"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN_EXP__=(-383)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX_EXP__=384"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN__=1E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX__=9.999999999999999E384DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_EPSILON__=1E-15DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_DEN__=0.000000000000001E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MANT_DIG__=34"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN_EXP__=(-6143)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX_EXP__=6144"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN__=1E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX__=9.999999999999999999999999999999999E6144DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_EPSILON__=1E-33DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_DEN__=0.000000000000000000000000000000001E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__REGISTER_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__USER_LABEL_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__VERSION__="4.2.1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_GNU_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__BLOCKS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__NO_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FINITE_MATH_ONLY__=0"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XS1B__=1"/>
|
||||
<listOptionValue builtIn="false" value="__ELF__=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_YEAR=12"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MONTH=2"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MAJOR=1202"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MINOR=0"/>
|
||||
<listOptionValue builtIn="false" value="__XCC_HAVE_FLOAT__=1"/>
|
||||
</option>
|
||||
<option id = "com.xmos.cxx.compiler.option.include.paths.92184970" name="com.xmos.cxx.compiler.option.include.paths" superClass="com.xmos.cxx.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/gcc""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/c++/4.2.1""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/c++/4.2.1/xcore-xmos-elf""/>
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/.settings}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert}"' />
|
||||
|
||||
</option>
|
||||
<inputType id = "com.xmos.cdt.cxx.compiler.input.cpp.70994893" name="C++" superClass="com.xmos.cdt.cxx.compiler.input.cpp"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry excluding=".build_*" flags="VALUE_WORKSPACE_PATH|RESOLVED"
|
||||
kind="sourcePath" name="" />
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="" />
|
||||
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="makefileGenerator">
|
||||
<runAction arguments="-E -P -v -dD" command="" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments='-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'' command="sh" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments='-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'' command="sh" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments='-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'' command="sh" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings" />
|
||||
<storageModule moduleId="org.eclipse.cdt.core.language.mapping" />
|
||||
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings" />
|
||||
</cconfiguration>
|
||||
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id = "app_uart_test.null.49472330" name="app_uart_test" />
|
||||
</storageModule>
|
||||
</cproject>
|
||||
76
lib_uart/tests/app_uart_test_bpb/.project
Normal file
76
lib_uart/tests/app_uart_test_bpb/.project
Normal file
@@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>app_uart_test</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
<dictionary>
|
||||
<key>?children?</key>
|
||||
<value>?name?=outputEntries\|?children?=?name?=entry\\\\|\\|\||</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>?name?</key>
|
||||
<value></value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.append_environment</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.buildArguments</key>
|
||||
<value>CONFIG=Debug</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.buildCommand</key>
|
||||
<value>xmake</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
|
||||
<value>clean</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.contents</key>
|
||||
<value>org.eclipse.cdt.make.core.activeConfigSettings</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
|
||||
<value>false</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableFullBuild</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.stopOnError</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
|
||||
<value>false</value>
|
||||
</dictionary>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
<nature>com.xmos.cdt.core.XdeProjectNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
|
||||
1
lib_uart/tests/app_uart_test_bpb/.xproject
Normal file
1
lib_uart/tests/app_uart_test_bpb/.xproject
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><xproject><repository>sc_uart</repository><partnum>XM-001906-SM</partnum></xproject>
|
||||
135
lib_uart/tests/app_uart_test_bpb/LICENSE.txt
Normal file
135
lib_uart/tests/app_uart_test_bpb/LICENSE.txt
Normal file
@@ -0,0 +1,135 @@
|
||||
Software Release License Agreement
|
||||
|
||||
Copyright (c) 2015-2017, XMOS, All rights reserved.
|
||||
|
||||
BY ACCESSING, USING, INSTALLING OR DOWNLOADING THE XMOS SOFTWARE, YOU AGREE TO BE BOUND BY THE FOLLOWING TERMS. IF YOU DO NOT AGREE TO THESE, DO NOT ATTEMPT TO DOWNLOAD, ACCESS OR USE THE XMOS Software.
|
||||
|
||||
Parties:
|
||||
|
||||
(1) XMOS Limited, incorporated and registered in England and Wales with company number 5494985 whose registered office is 107 Cheapside, London, EC2V 6DN (XMOS).
|
||||
|
||||
(2) An individual or legal entity exercising permissions granted by this License (Customer).
|
||||
|
||||
If you are entering into this Agreement on behalf of another legal entity such as a company, partnership, university, college etc. (for example, as an employee, student or consultant), you warrant that you have authority to bind that entity.
|
||||
|
||||
1. Definitions
|
||||
|
||||
"License" means this Software License and any schedules or annexes to it.
|
||||
|
||||
"License Fee" means the fee for the XMOS Software as detailed in any schedules or annexes to this Software License
|
||||
|
||||
"Licensee Modifications" means all developments and modifications of the XMOS Software developed independently by the Customer.
|
||||
|
||||
"XMOS Modifications" means all developments and modifications of the XMOS Software developed or co-developed by XMOS.
|
||||
|
||||
"XMOS Hardware" means any XMOS hardware devices supplied by XMOS from time to time and/or the particular XMOS devices detailed in any schedules or annexes to this Software License.
|
||||
|
||||
"XMOS Software" comprises the XMOS owned circuit designs, schematics, source code, object code, reference designs, (including related programmer comments and documentation, if any), error corrections, improvements, modifications (including XMOS Modifications) and updates.
|
||||
|
||||
The headings in this License do not affect its interpretation. Save where the context otherwise requires, references to clauses and schedules are to clauses and schedules of this License.
|
||||
|
||||
Unless the context otherwise requires:
|
||||
|
||||
- references to XMOS and the Customer include their permitted successors and assigns;
|
||||
- references to statutory provisions include those statutory provisions as amended or re-enacted; and
|
||||
- references to any gender include all genders.
|
||||
|
||||
Words in the singular include the plural and in the plural include the singular.
|
||||
|
||||
2. License
|
||||
|
||||
XMOS grants the Customer a non-exclusive license to use, develop, modify and distribute the XMOS Software with, or for the purpose of being used with, XMOS Hardware.
|
||||
|
||||
Open Source Software (OSS) must be used and dealt with in accordance with any license terms under which OSS is distributed.
|
||||
|
||||
3. Consideration
|
||||
|
||||
In consideration of the mutual obligations contained in this License, the parties agree to its terms.
|
||||
|
||||
4. Term
|
||||
|
||||
Subject to clause 12 below, this License shall be perpetual.
|
||||
|
||||
5. Restrictions on Use
|
||||
|
||||
The Customer will adhere to all applicable import and export laws and regulations of the country in which it resides and of the United States and United Kingdom, without limitation. The Customer agrees that it is its responsibility to obtain copies of and to familiarise itself fully with these laws and regulations to avoid violation.
|
||||
|
||||
6. Modifications
|
||||
|
||||
The Customer will own all intellectual property rights in the Licensee Modifications but will undertake to provide XMOS with any fixes made to correct any bugs found in the XMOS Software on a non-exclusive, perpetual and royalty free license basis.
|
||||
|
||||
XMOS will own all intellectual property rights in the XMOS Modifications.
|
||||
The Customer may only use the Licensee Modifications and XMOS Modifications on, or in relation to, XMOS Hardware.
|
||||
|
||||
7. Support
|
||||
|
||||
Support of the XMOS Software may be provided by XMOS pursuant to a separate support agreement.
|
||||
|
||||
8. Warranty and Disclaimer
|
||||
|
||||
The XMOS Software is provided "AS IS" without a warranty of any kind. XMOS and its licensors' entire liability and Customer's exclusive remedy under this warranty to be determined in XMOS's sole and absolute discretion, will be either (a) the corrections of defects in media or replacement of the media, or (b) the refund of the license fee paid (if any).
|
||||
|
||||
Whilst XMOS gives the Customer the ability to load their own software and applications onto XMOS devices, the security of such software and applications when on the XMOS devices is the Customer's own responsibility and any breach of security shall not be deemed a defect or failure of the hardware. XMOS shall have no liability whatsoever in relation to any costs, damages or other losses Customer may incur as a result of any breaches of security in relation to your software or applications.
|
||||
|
||||
XMOS AND ITS LICENSORS DISCLAIM ALL OTHER WARRANTIES, EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY/ SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT EXCEPT TO THE EXTENT THAT THESE DISCLAIMERS ARE HELD TO BE LEGALLY INVALID UNDER APPLICABLE LAW.
|
||||
|
||||
9. High Risk Activities
|
||||
|
||||
The XMOS Software is not designed or intended for use in conjunction with on-line control equipment in hazardous environments requiring fail-safe performance, including without limitation the operation of nuclear facilities, aircraft navigation or communication systems, air traffic control, life support machines, or weapons systems (collectively "High Risk Activities") in which the failure of the XMOS Software could lead directly to death, personal injury, or severe physical or environmental damage. XMOS and its licensors specifically disclaim any express or implied warranties relating to use of the XMOS Software in connection with High Risk Activities.
|
||||
|
||||
10. Liability
|
||||
|
||||
TO THE EXTENT NOT PROHIBITED BY APPLICABLE LAW, NEITHER XMOS NOR ITS LICENSORS SHALL BE LIABLE FOR ANY LOST REVENUE, BUSINESS, PROFIT, CONTRACTS OR DATA, ADMINISTRATIVE OR OVERHEAD EXPENSES, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES HOWEVER CAUSED AND REGARDLESS OF THEORY OF LIABILITY ARISING OUT OF THIS LICENSE, EVEN IF XMOS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. In no event shall XMOS's liability to the Customer whether in contract, tort (including negligence), or otherwise exceed the License Fee.
|
||||
|
||||
Customer agrees to indemnify, hold harmless, and defend XMOS and its licensors from and against any claims or lawsuits, including attorneys' fees and any other liabilities, demands, proceedings, damages, losses, costs, expenses fines and charges which are made or brought against or incurred by XMOS as a result of your use or distribution of the Licensee Modifications or your use or distribution of XMOS Software, or any development of it, other than in accordance with the terms of this License.
|
||||
|
||||
11. Ownership
|
||||
|
||||
The copyrights and all other intellectual and industrial property rights for the protection of information with respect to the XMOS Software (including the methods and techniques on which they are based) are retained by XMOS and/or its licensors. Nothing in this Agreement serves to transfer such rights. Customer may not sell, mortgage, underlet, sublease, sublicense, lend or transfer possession of the XMOS Software in any way whatsoever to any third party who is not bound by this Agreement.
|
||||
|
||||
12. Termination
|
||||
|
||||
Either party may terminate this License at any time on written notice to the other if the other:
|
||||
|
||||
- is in material or persistent breach of any of the terms of this License and either that breach is incapable of remedy, or the other party fails to remedy that breach within 30 days after receiving written notice requiring it to remedy that breach; or
|
||||
|
||||
- is unable to pay its debts (within the meaning of section 123 of the Insolvency Act 1986), or becomes insolvent, or is subject to an order or a resolution for its liquidation, administration, winding-up or dissolution (otherwise than for the purposes of a solvent amalgamation or reconstruction), or has an administrative or other receiver, manager, trustee, liquidator, administrator or similar officer appointed over all or any substantial part of its assets, or enters into or proposes any composition or arrangement with its creditors generally, or is subject to any analogous event or proceeding in any applicable jurisdiction.
|
||||
|
||||
Termination by either party in accordance with the rights contained in clause 12 shall be without prejudice to any other rights or remedies of that party accrued prior to termination.
|
||||
|
||||
On termination for any reason:
|
||||
|
||||
- all rights granted to the Customer under this License shall cease;
|
||||
- the Customer shall cease all activities authorised by this License;
|
||||
- the Customer shall immediately pay any sums due to XMOS under this License; and
|
||||
- the Customer shall immediately destroy or return to the XMOS (at the XMOS's option) all copies of the XMOS Software then in its possession, custody or control and, in the case of destruction, certify to XMOS that it has done so.
|
||||
|
||||
Clauses 5, 8, 9, 10 and 11 shall survive any effective termination of this Agreement.
|
||||
|
||||
13. Third party rights
|
||||
|
||||
No term of this License is intended to confer a benefit on, or to be enforceable by, any person who is not a party to this license.
|
||||
|
||||
14. Confidentiality and publicity
|
||||
|
||||
Each party shall, during the term of this License and thereafter, keep confidential all, and shall not use for its own purposes nor without the prior written consent of the other disclose to any third party any, information of a confidential nature (including, without limitation, trade secrets and information of commercial value) which may become known to such party from the other party and which relates to the other party, unless such information is public knowledge or already known to such party at the time of disclosure, or subsequently becomes public knowledge other than by breach of this license, or subsequently comes lawfully into the possession of such party from a third party.
|
||||
|
||||
The terms of this license are confidential and may not be disclosed by the Customer without the prior written consent of XMOS.
|
||||
The provisions of clause 14 shall remain in full force and effect notwithstanding termination of this license for any reason.
|
||||
|
||||
15. Entire agreement
|
||||
|
||||
This License and the documents annexed as appendices to this License or otherwise referred to herein contain the whole agreement between the parties relating to the subject matter hereof and supersede all prior agreements, arrangements and understandings between the parties relating to that subject matter.
|
||||
|
||||
16. Assignment
|
||||
|
||||
The Customer shall not assign this License or any of the rights granted under it without XMOS's prior written consent.
|
||||
|
||||
17. Governing law and jurisdiction
|
||||
|
||||
This License shall be governed by and construed in accordance with English law and each party hereby submits to the non-exclusive jurisdiction of the English courts.
|
||||
|
||||
This License has been entered into on the date stated at the beginning of it.
|
||||
|
||||
Schedule
|
||||
XMOS UART library software
|
||||
43
lib_uart/tests/app_uart_test_bpb/Makefile
Normal file
43
lib_uart/tests/app_uart_test_bpb/Makefile
Normal file
@@ -0,0 +1,43 @@
|
||||
# The TARGET variable determines what target system the application is
|
||||
# compiled for. It either refers to an XN file in the source directories
|
||||
# or a valid argument for the --target option when compiling.
|
||||
|
||||
TARGET = SLICEKIT-L16
|
||||
|
||||
# The APP_NAME variable determines the name of the final .xe file. It should
|
||||
# not include the .xe postfix. If left blank the name will default to
|
||||
# the project name
|
||||
|
||||
APP_NAME =
|
||||
|
||||
# The flags passed to xcc when building the application
|
||||
# You can also set the following to override flags for a particular language:
|
||||
#
|
||||
# XCC_XC_FLAGS, XCC_C_FLAGS, XCC_ASM_FLAGS, XCC_CPP_FLAGS
|
||||
#
|
||||
# If the variable XCC_MAP_FLAGS is set it overrides the flags passed to
|
||||
# xcc for the final link (mapping) stage.
|
||||
|
||||
COMMON_FLAGS = -save-temps -O2 -report $(EXTRA_FLAGS)
|
||||
|
||||
baud ?= 115200
|
||||
parity ?= UART_PARITY_NONE
|
||||
bits_per_byte ?= 8
|
||||
|
||||
XCC_FLAGS_smoke = $(COMMON_FLAGS) -DSMOKE_TEST=1 -DBAUD=$(baud) -DPARITY=$(parity) -DBPB=$(bits_per_byte)
|
||||
XCC_FLAGS_full = $(COMMON_FLAGS) -DFULL_TEST=1 -DBAUD=$(baud) -DPARITY=$(parity) -DBPB=$(bits_per_byte)
|
||||
|
||||
# The USED_MODULES variable lists other module used by the application.
|
||||
|
||||
USED_MODULES = lib_uart lib_xassert lib_logging
|
||||
|
||||
test: bin/app_uart_test.xe
|
||||
$(info Baud: $(baud))
|
||||
xsim bin/app_uart_test.xe --xscope "-offline uart_test.xmt"
|
||||
|
||||
#=============================================================================
|
||||
# The following part of the Makefile includes the common build infrastructure
|
||||
# for compiling XMOS applications. You should not need to edit below here.
|
||||
|
||||
XMOS_MAKE_PATH ?= ../..
|
||||
include $(XMOS_MAKE_PATH)/xcommon/module_xcommon/build/Makefile.common
|
||||
10
lib_uart/tests/app_uart_test_bpb/README.rst
Normal file
10
lib_uart/tests/app_uart_test_bpb/README.rst
Normal file
@@ -0,0 +1,10 @@
|
||||
UART rx/tx regression test
|
||||
==========================
|
||||
|
||||
:scope: Directed Test
|
||||
:description: Regression test for uart rx parity
|
||||
:keywords: uart, testing
|
||||
|
||||
This application tests the uart rx for various parities of data, with correct
|
||||
disposal of packets with incorrect parity.
|
||||
|
||||
4
lib_uart/tests/app_uart_test_bpb/config.xscope
Normal file
4
lib_uart/tests/app_uart_test_bpb/config.xscope
Normal file
@@ -0,0 +1,4 @@
|
||||
<xSCOPEconfig enabled="true">
|
||||
<Module name="Uart RX" enabled="false"/>
|
||||
<Module name="Uart TX" enabled="false"/>
|
||||
</xSCOPEconfig>
|
||||
5
lib_uart/tests/app_uart_test_bpb/src/debug_conf.h
Normal file
5
lib_uart/tests/app_uart_test_bpb/src/debug_conf.h
Normal file
@@ -0,0 +1,5 @@
|
||||
// Copyright (c) 2014-2016, XMOS Ltd, All rights reserved
|
||||
#define DEBUG_PRINT_ENABLE 1
|
||||
#define XASSERT_ENABLE_ASSERTIONS 1
|
||||
#define XASSERT_ENABLE_DEBUG 1
|
||||
#define XASSERT_ENABLE_LINE_NUMBERS 1
|
||||
51
lib_uart/tests/app_uart_test_bpb/src/uart_test.xc
Normal file
51
lib_uart/tests/app_uart_test_bpb/src/uart_test.xc
Normal file
@@ -0,0 +1,51 @@
|
||||
// Copyright (c) 2015-2016, XMOS Ltd, All rights reserved
|
||||
|
||||
#include <xs1.h>
|
||||
#include <platform.h>
|
||||
#include <stdlib.h>
|
||||
#include "debug_print.h"
|
||||
#include "xassert.h"
|
||||
#include "uart.h"
|
||||
|
||||
#define BITTIME(x) (100000000 / (x))
|
||||
|
||||
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
|
||||
|
||||
#define CHECK_EVENTS 1
|
||||
#define CHECK_BUFFERING 1
|
||||
#define CHECK_RUNTIME_PARAMETER_CHANGE 1
|
||||
#define CHECK_PARITY_ERRORS 1
|
||||
|
||||
static void uart_test(client uart_tx_if i_uart_tx,
|
||||
client uart_config_if i_tx_config,
|
||||
unsigned baud_rate)
|
||||
{
|
||||
debug_printf("TEST CONFIG:{'baud rate':%d}\n",baud_rate);
|
||||
debug_printf("Performing tx test.\n");
|
||||
i_uart_tx.write(0x19);
|
||||
i_uart_tx.write(0x12);
|
||||
i_uart_tx.write(0x1A);
|
||||
i_uart_tx.write(0x0F);
|
||||
_Exit(0);
|
||||
|
||||
}
|
||||
|
||||
port p_rx = on tile[0] : XS1_PORT_1A;
|
||||
port p_tx = on tile[0] : XS1_PORT_1B;
|
||||
|
||||
|
||||
#define BUFFER_SIZE 64
|
||||
int main() {
|
||||
uart_tx_if i_tx;
|
||||
uart_config_if i_tx_config;
|
||||
output_gpio_if i_gpio_tx[1];
|
||||
par {
|
||||
|
||||
on tile[0] : output_gpio(i_gpio_tx, 1, p_tx, null);
|
||||
on tile[0] : uart_tx(i_tx, i_tx_config, BAUD, PARITY, BPB, 1, i_gpio_tx[0]);
|
||||
on tile[0] : {
|
||||
uart_test(i_tx, i_tx_config, BAUD);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
524
lib_uart/tests/app_uart_test_fast_tx/.cproject
Normal file
524
lib_uart/tests/app_uart_test_fast_tx/.cproject
Normal file
@@ -0,0 +1,524 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<?fileVersion 4.0.0?>
|
||||
<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
|
||||
<cconfiguration id="com.xmos.cdt.toolchain.70697190">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.xmos.cdt.toolchain.70697190" moduleId="org.eclipse.cdt.core.settings" name="Default">
|
||||
<externalSettings />
|
||||
<extensions>
|
||||
<extension id="com.xmos.cdt.core.XEBinaryParser" point="org.eclipse.cdt.core.BinaryParser" />
|
||||
<extension id="com.xmos.cdt.core.XdeErrorParser" point="org.eclipse.cdt.core.ErrorParser" />
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser" />
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
|
||||
<buildTargets>
|
||||
<target name="all" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>xmake</buildCommand>
|
||||
<buildArguments></buildArguments>
|
||||
<buildTarget>all</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>true</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
<target name="clean" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>xmake</buildCommand>
|
||||
<buildArguments></buildArguments>
|
||||
<buildTarget>clean</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>true</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
</buildTargets>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration buildProperties="" description="" id="com.xmos.cdt.toolchain.70697190" name="Default" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="com.xmos.cdt.toolchain.70697190.1127281840" name="/" resourcePath="">
|
||||
<toolChain id = "com.xmos.cdt.toolchain.82541009" name="com.xmos.cdt.toolchain" superClass="com.xmos.cdt.toolchain">
|
||||
<targetPlatform archList="all" binaryParser="com.xmos.cdt.core.XEBinaryParser" id = "com.xmos.cdt.core.platform.12694723" isAbstract="false" osList="linux,win32,macosx" superClass="com.xmos.cdt.core.platform" />
|
||||
<builder arguments="" id = "com.xmos.cdt.builder.base.23861697" keepEnvironmentInBuildfile="false" managedBuildOn="false" superClass="com.xmos.cdt.builder.base">
|
||||
<outputEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="outputPath" name="bin" />
|
||||
</outputEntries>
|
||||
</builder>
|
||||
<tool id = "com.xmos.cdt.xc.compiler.44109726" name="com.xmos.cdt.xc.compiler" superClass="com.xmos.cdt.xc.compiler">
|
||||
<option id = "com.xmos.c.compiler.option.defined.symbols.63981785" name="com.xmos.c.compiler.option.defined.symbols" superClass="com.xmos.c.compiler.option.defined.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="__SHRT_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__SCHAR_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_HOSTED__=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_YEAR=11"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MAJOR=1111"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MINOR=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MONTH=11"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__MCPP=2"/>
|
||||
<listOptionValue builtIn="false" value="__XC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XS1B__=1"/>
|
||||
<listOptionValue builtIn="false" value="__INT_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_MAX__=2147483647L"/>
|
||||
<listOptionValue builtIn="false" value="__STDC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_MINOR__=2"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_PATCHLEVEL__=1"/>
|
||||
<listOptionValue builtIn="false" value="__llvm__=1"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_ABI_VERSION=1002"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_LONG_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_MAX__=255U"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EVAL_METHOD__=0"/>
|
||||
<listOptionValue builtIn="false" value="__DEC_EVAL_METHOD__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_RADIX__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MANT_DIG__=24"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DIG__=6"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_EXP__=(-125)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_10_EXP__=(-37)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_EXP__=128"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_10_EXP__=38"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX__=3.40282347e+38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN__=1.17549435e-38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EPSILON__=1.19209290e-7F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DENORM_MIN__=1.40129846e-45F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX__=1.7976931348623157e+308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN__=2.2250738585072014e-308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_EPSILON__=2.2204460492503131e-16"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DENORM_MIN__=4.9406564584124654e-324"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DECIMAL_DIG__=17"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX__=1.7976931348623157e+308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN__=2.2250738585072014e-308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_EPSILON__=2.2204460492503131e-16L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DENORM_MIN__=4.9406564584124654e-324L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MANT_DIG__=7"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN_EXP__=(-95)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX_EXP__=96"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN__=1E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX__=9.999999E96DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_EPSILON__=1E-6DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_DEN__=0.000001E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MANT_DIG__=16"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN_EXP__=(-383)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX_EXP__=384"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN__=1E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX__=9.999999999999999E384DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_EPSILON__=1E-15DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_DEN__=0.000000000000001E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MANT_DIG__=34"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN_EXP__=(-6143)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX_EXP__=6144"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN__=1E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX__=9.999999999999999999999999999999999E6144DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_EPSILON__=1E-33DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_DEN__=0.000000000000000000000000000000001E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__REGISTER_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__USER_LABEL_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__VERSION__="4.2.1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_GNU_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__BLOCKS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__NO_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FINITE_MATH_ONLY__=0"/>
|
||||
<listOptionValue builtIn="false" value="__ELF__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XCC_HAVE_FLOAT__=1"/>
|
||||
<listOptionValue builtIn="false" value="__cplusplus=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUG__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_WEAK__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEPRECATED=1"/>
|
||||
<listOptionValue builtIn="false" value="__EXCEPTIONS=1"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_UNSIGNED__=1"/>
|
||||
</option>
|
||||
<option id = "com.xmos.xc.compiler.option.include.paths.6342848" name="com.xmos.xc.compiler.option.include.paths" superClass="com.xmos.xc.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/gcc""/>
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/.settings}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert}"' />
|
||||
|
||||
</option>
|
||||
<inputType id = "com.xmos.cdt.xc.compiler.input.93736532" name="XC" superClass="com.xmos.cdt.xc.compiler.input"/>
|
||||
</tool>
|
||||
<tool id = "com.xmos.cdt.c.compiler.92402808" name="com.xmos.cdt.c.compiler" superClass="com.xmos.cdt.c.compiler">
|
||||
<option id = "com.xmos.c.compiler.option.defined.symbols.79822841" name="com.xmos.c.compiler.option.defined.symbols" superClass="com.xmos.c.compiler.option.defined.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="__STDC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_VERSION__=199901L"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_HOSTED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_MINOR__=2"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_PATCHLEVEL__=1"/>
|
||||
<listOptionValue builtIn="false" value="__llvm__=1"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_ABI_VERSION=1002"/>
|
||||
<listOptionValue builtIn="false" value="__SCHAR_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__SHRT_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__INT_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_MAX__=2147483647L"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_LONG_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_MAX__=255U"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EVAL_METHOD__=0"/>
|
||||
<listOptionValue builtIn="false" value="__DEC_EVAL_METHOD__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_RADIX__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MANT_DIG__=24"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DIG__=6"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_EXP__=(-125)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_10_EXP__=(-37)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_EXP__=128"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_10_EXP__=38"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX__=3.40282347e+38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN__=1.17549435e-38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EPSILON__=1.19209290e-7F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DENORM_MIN__=1.40129846e-45F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX__=1.7976931348623157e+308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN__=2.2250738585072014e-308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_EPSILON__=2.2204460492503131e-16"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DENORM_MIN__=4.9406564584124654e-324"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DECIMAL_DIG__=17"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX__=1.7976931348623157e+308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN__=2.2250738585072014e-308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_EPSILON__=2.2204460492503131e-16L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DENORM_MIN__=4.9406564584124654e-324L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MANT_DIG__=7"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN_EXP__=(-95)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX_EXP__=96"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN__=1E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX__=9.999999E96DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_EPSILON__=1E-6DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_DEN__=0.000001E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MANT_DIG__=16"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN_EXP__=(-383)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX_EXP__=384"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN__=1E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX__=9.999999999999999E384DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_EPSILON__=1E-15DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_DEN__=0.000000000000001E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MANT_DIG__=34"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN_EXP__=(-6143)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX_EXP__=6144"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN__=1E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX__=9.999999999999999999999999999999999E6144DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_EPSILON__=1E-33DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_DEN__=0.000000000000000000000000000000001E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__REGISTER_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__USER_LABEL_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__VERSION__="4.2.1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_STDC_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__BLOCKS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__NO_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FINITE_MATH_ONLY__=0"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XS1B__=1"/>
|
||||
<listOptionValue builtIn="false" value="__ELF__=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_YEAR=12"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MONTH=2"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MAJOR=1202"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MINOR=0"/>
|
||||
<listOptionValue builtIn="false" value="__XCC_HAVE_FLOAT__=1"/>
|
||||
</option>
|
||||
<option id = "com.xmos.c.compiler.option.include.paths.27819059" name="com.xmos.c.compiler.option.include.paths" superClass="com.xmos.c.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/gcc""/>
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/.settings}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert}"' />
|
||||
|
||||
</option>
|
||||
<inputType id = "com.xmos.cdt.c.compiler.input.c.26351538" name="C" superClass="com.xmos.cdt.c.compiler.input.c"/>
|
||||
</tool>
|
||||
<tool id = "com.xmos.cdt.cxx.compiler.83278035" name="com.xmos.cdt.cxx.compiler" superClass="com.xmos.cdt.cxx.compiler">
|
||||
<option id = "com.xmos.cxx.compiler.option.defined.symbols.85664154" name="com.xmos.cxx.compiler.option.defined.symbols" superClass="com.xmos.cxx.compiler.option.defined.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="__STDC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__cplusplus=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_HOSTED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUG__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_MINOR__=2"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_PATCHLEVEL__=1"/>
|
||||
<listOptionValue builtIn="false" value="__llvm__=1"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_WEAK__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEPRECATED=1"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_ABI_VERSION=1002"/>
|
||||
<listOptionValue builtIn="false" value="__SCHAR_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__SHRT_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__INT_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_MAX__=2147483647L"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_LONG_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_MAX__=255U"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EVAL_METHOD__=0"/>
|
||||
<listOptionValue builtIn="false" value="__DEC_EVAL_METHOD__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_RADIX__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MANT_DIG__=24"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DIG__=6"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_EXP__=(-125)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_10_EXP__=(-37)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_EXP__=128"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_10_EXP__=38"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX__=3.40282347e+38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN__=1.17549435e-38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EPSILON__=1.19209290e-7F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DENORM_MIN__=1.40129846e-45F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX__=1.7976931348623157e+308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN__=2.2250738585072014e-308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_EPSILON__=2.2204460492503131e-16"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DENORM_MIN__=4.9406564584124654e-324"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DECIMAL_DIG__=17"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX__=1.7976931348623157e+308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN__=2.2250738585072014e-308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_EPSILON__=2.2204460492503131e-16L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DENORM_MIN__=4.9406564584124654e-324L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MANT_DIG__=7"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN_EXP__=(-95)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX_EXP__=96"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN__=1E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX__=9.999999E96DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_EPSILON__=1E-6DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_DEN__=0.000001E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MANT_DIG__=16"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN_EXP__=(-383)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX_EXP__=384"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN__=1E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX__=9.999999999999999E384DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_EPSILON__=1E-15DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_DEN__=0.000000000000001E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MANT_DIG__=34"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN_EXP__=(-6143)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX_EXP__=6144"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN__=1E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX__=9.999999999999999999999999999999999E6144DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_EPSILON__=1E-33DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_DEN__=0.000000000000000000000000000000001E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__REGISTER_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__USER_LABEL_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__VERSION__="4.2.1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_GNU_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__BLOCKS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__NO_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FINITE_MATH_ONLY__=0"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XS1B__=1"/>
|
||||
<listOptionValue builtIn="false" value="__ELF__=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_YEAR=12"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MONTH=2"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MAJOR=1202"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MINOR=0"/>
|
||||
<listOptionValue builtIn="false" value="__XCC_HAVE_FLOAT__=1"/>
|
||||
</option>
|
||||
<option id = "com.xmos.cxx.compiler.option.include.paths.92184970" name="com.xmos.cxx.compiler.option.include.paths" superClass="com.xmos.cxx.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/gcc""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/c++/4.2.1""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/c++/4.2.1/xcore-xmos-elf""/>
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/.settings}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert}"' />
|
||||
|
||||
</option>
|
||||
<inputType id = "com.xmos.cdt.cxx.compiler.input.cpp.70994893" name="C++" superClass="com.xmos.cdt.cxx.compiler.input.cpp"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry excluding=".build_*" flags="VALUE_WORKSPACE_PATH|RESOLVED"
|
||||
kind="sourcePath" name="" />
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="" />
|
||||
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="makefileGenerator">
|
||||
<runAction arguments="-E -P -v -dD" command="" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments='-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'' command="sh" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments='-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'' command="sh" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments='-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'' command="sh" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings" />
|
||||
<storageModule moduleId="org.eclipse.cdt.core.language.mapping" />
|
||||
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings" />
|
||||
</cconfiguration>
|
||||
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id = "app_uart_test.null.49472330" name="app_uart_test" />
|
||||
</storageModule>
|
||||
</cproject>
|
||||
76
lib_uart/tests/app_uart_test_fast_tx/.project
Normal file
76
lib_uart/tests/app_uart_test_fast_tx/.project
Normal file
@@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>app_uart_test</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
<dictionary>
|
||||
<key>?children?</key>
|
||||
<value>?name?=outputEntries\|?children?=?name?=entry\\\\|\\|\||</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>?name?</key>
|
||||
<value></value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.append_environment</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.buildArguments</key>
|
||||
<value>CONFIG=Debug</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.buildCommand</key>
|
||||
<value>xmake</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
|
||||
<value>clean</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.contents</key>
|
||||
<value>org.eclipse.cdt.make.core.activeConfigSettings</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
|
||||
<value>false</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableFullBuild</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.stopOnError</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
|
||||
<value>false</value>
|
||||
</dictionary>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
<nature>com.xmos.cdt.core.XdeProjectNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
|
||||
1
lib_uart/tests/app_uart_test_fast_tx/.xproject
Normal file
1
lib_uart/tests/app_uart_test_fast_tx/.xproject
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><xproject><repository>sc_uart</repository><partnum>XM-001906-SM</partnum></xproject>
|
||||
135
lib_uart/tests/app_uart_test_fast_tx/LICENSE.txt
Normal file
135
lib_uart/tests/app_uart_test_fast_tx/LICENSE.txt
Normal file
@@ -0,0 +1,135 @@
|
||||
Software Release License Agreement
|
||||
|
||||
Copyright (c) 2015-2017, XMOS, All rights reserved.
|
||||
|
||||
BY ACCESSING, USING, INSTALLING OR DOWNLOADING THE XMOS SOFTWARE, YOU AGREE TO BE BOUND BY THE FOLLOWING TERMS. IF YOU DO NOT AGREE TO THESE, DO NOT ATTEMPT TO DOWNLOAD, ACCESS OR USE THE XMOS Software.
|
||||
|
||||
Parties:
|
||||
|
||||
(1) XMOS Limited, incorporated and registered in England and Wales with company number 5494985 whose registered office is 107 Cheapside, London, EC2V 6DN (XMOS).
|
||||
|
||||
(2) An individual or legal entity exercising permissions granted by this License (Customer).
|
||||
|
||||
If you are entering into this Agreement on behalf of another legal entity such as a company, partnership, university, college etc. (for example, as an employee, student or consultant), you warrant that you have authority to bind that entity.
|
||||
|
||||
1. Definitions
|
||||
|
||||
"License" means this Software License and any schedules or annexes to it.
|
||||
|
||||
"License Fee" means the fee for the XMOS Software as detailed in any schedules or annexes to this Software License
|
||||
|
||||
"Licensee Modifications" means all developments and modifications of the XMOS Software developed independently by the Customer.
|
||||
|
||||
"XMOS Modifications" means all developments and modifications of the XMOS Software developed or co-developed by XMOS.
|
||||
|
||||
"XMOS Hardware" means any XMOS hardware devices supplied by XMOS from time to time and/or the particular XMOS devices detailed in any schedules or annexes to this Software License.
|
||||
|
||||
"XMOS Software" comprises the XMOS owned circuit designs, schematics, source code, object code, reference designs, (including related programmer comments and documentation, if any), error corrections, improvements, modifications (including XMOS Modifications) and updates.
|
||||
|
||||
The headings in this License do not affect its interpretation. Save where the context otherwise requires, references to clauses and schedules are to clauses and schedules of this License.
|
||||
|
||||
Unless the context otherwise requires:
|
||||
|
||||
- references to XMOS and the Customer include their permitted successors and assigns;
|
||||
- references to statutory provisions include those statutory provisions as amended or re-enacted; and
|
||||
- references to any gender include all genders.
|
||||
|
||||
Words in the singular include the plural and in the plural include the singular.
|
||||
|
||||
2. License
|
||||
|
||||
XMOS grants the Customer a non-exclusive license to use, develop, modify and distribute the XMOS Software with, or for the purpose of being used with, XMOS Hardware.
|
||||
|
||||
Open Source Software (OSS) must be used and dealt with in accordance with any license terms under which OSS is distributed.
|
||||
|
||||
3. Consideration
|
||||
|
||||
In consideration of the mutual obligations contained in this License, the parties agree to its terms.
|
||||
|
||||
4. Term
|
||||
|
||||
Subject to clause 12 below, this License shall be perpetual.
|
||||
|
||||
5. Restrictions on Use
|
||||
|
||||
The Customer will adhere to all applicable import and export laws and regulations of the country in which it resides and of the United States and United Kingdom, without limitation. The Customer agrees that it is its responsibility to obtain copies of and to familiarise itself fully with these laws and regulations to avoid violation.
|
||||
|
||||
6. Modifications
|
||||
|
||||
The Customer will own all intellectual property rights in the Licensee Modifications but will undertake to provide XMOS with any fixes made to correct any bugs found in the XMOS Software on a non-exclusive, perpetual and royalty free license basis.
|
||||
|
||||
XMOS will own all intellectual property rights in the XMOS Modifications.
|
||||
The Customer may only use the Licensee Modifications and XMOS Modifications on, or in relation to, XMOS Hardware.
|
||||
|
||||
7. Support
|
||||
|
||||
Support of the XMOS Software may be provided by XMOS pursuant to a separate support agreement.
|
||||
|
||||
8. Warranty and Disclaimer
|
||||
|
||||
The XMOS Software is provided "AS IS" without a warranty of any kind. XMOS and its licensors' entire liability and Customer's exclusive remedy under this warranty to be determined in XMOS's sole and absolute discretion, will be either (a) the corrections of defects in media or replacement of the media, or (b) the refund of the license fee paid (if any).
|
||||
|
||||
Whilst XMOS gives the Customer the ability to load their own software and applications onto XMOS devices, the security of such software and applications when on the XMOS devices is the Customer's own responsibility and any breach of security shall not be deemed a defect or failure of the hardware. XMOS shall have no liability whatsoever in relation to any costs, damages or other losses Customer may incur as a result of any breaches of security in relation to your software or applications.
|
||||
|
||||
XMOS AND ITS LICENSORS DISCLAIM ALL OTHER WARRANTIES, EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY/ SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT EXCEPT TO THE EXTENT THAT THESE DISCLAIMERS ARE HELD TO BE LEGALLY INVALID UNDER APPLICABLE LAW.
|
||||
|
||||
9. High Risk Activities
|
||||
|
||||
The XMOS Software is not designed or intended for use in conjunction with on-line control equipment in hazardous environments requiring fail-safe performance, including without limitation the operation of nuclear facilities, aircraft navigation or communication systems, air traffic control, life support machines, or weapons systems (collectively "High Risk Activities") in which the failure of the XMOS Software could lead directly to death, personal injury, or severe physical or environmental damage. XMOS and its licensors specifically disclaim any express or implied warranties relating to use of the XMOS Software in connection with High Risk Activities.
|
||||
|
||||
10. Liability
|
||||
|
||||
TO THE EXTENT NOT PROHIBITED BY APPLICABLE LAW, NEITHER XMOS NOR ITS LICENSORS SHALL BE LIABLE FOR ANY LOST REVENUE, BUSINESS, PROFIT, CONTRACTS OR DATA, ADMINISTRATIVE OR OVERHEAD EXPENSES, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES HOWEVER CAUSED AND REGARDLESS OF THEORY OF LIABILITY ARISING OUT OF THIS LICENSE, EVEN IF XMOS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. In no event shall XMOS's liability to the Customer whether in contract, tort (including negligence), or otherwise exceed the License Fee.
|
||||
|
||||
Customer agrees to indemnify, hold harmless, and defend XMOS and its licensors from and against any claims or lawsuits, including attorneys' fees and any other liabilities, demands, proceedings, damages, losses, costs, expenses fines and charges which are made or brought against or incurred by XMOS as a result of your use or distribution of the Licensee Modifications or your use or distribution of XMOS Software, or any development of it, other than in accordance with the terms of this License.
|
||||
|
||||
11. Ownership
|
||||
|
||||
The copyrights and all other intellectual and industrial property rights for the protection of information with respect to the XMOS Software (including the methods and techniques on which they are based) are retained by XMOS and/or its licensors. Nothing in this Agreement serves to transfer such rights. Customer may not sell, mortgage, underlet, sublease, sublicense, lend or transfer possession of the XMOS Software in any way whatsoever to any third party who is not bound by this Agreement.
|
||||
|
||||
12. Termination
|
||||
|
||||
Either party may terminate this License at any time on written notice to the other if the other:
|
||||
|
||||
- is in material or persistent breach of any of the terms of this License and either that breach is incapable of remedy, or the other party fails to remedy that breach within 30 days after receiving written notice requiring it to remedy that breach; or
|
||||
|
||||
- is unable to pay its debts (within the meaning of section 123 of the Insolvency Act 1986), or becomes insolvent, or is subject to an order or a resolution for its liquidation, administration, winding-up or dissolution (otherwise than for the purposes of a solvent amalgamation or reconstruction), or has an administrative or other receiver, manager, trustee, liquidator, administrator or similar officer appointed over all or any substantial part of its assets, or enters into or proposes any composition or arrangement with its creditors generally, or is subject to any analogous event or proceeding in any applicable jurisdiction.
|
||||
|
||||
Termination by either party in accordance with the rights contained in clause 12 shall be without prejudice to any other rights or remedies of that party accrued prior to termination.
|
||||
|
||||
On termination for any reason:
|
||||
|
||||
- all rights granted to the Customer under this License shall cease;
|
||||
- the Customer shall cease all activities authorised by this License;
|
||||
- the Customer shall immediately pay any sums due to XMOS under this License; and
|
||||
- the Customer shall immediately destroy or return to the XMOS (at the XMOS's option) all copies of the XMOS Software then in its possession, custody or control and, in the case of destruction, certify to XMOS that it has done so.
|
||||
|
||||
Clauses 5, 8, 9, 10 and 11 shall survive any effective termination of this Agreement.
|
||||
|
||||
13. Third party rights
|
||||
|
||||
No term of this License is intended to confer a benefit on, or to be enforceable by, any person who is not a party to this license.
|
||||
|
||||
14. Confidentiality and publicity
|
||||
|
||||
Each party shall, during the term of this License and thereafter, keep confidential all, and shall not use for its own purposes nor without the prior written consent of the other disclose to any third party any, information of a confidential nature (including, without limitation, trade secrets and information of commercial value) which may become known to such party from the other party and which relates to the other party, unless such information is public knowledge or already known to such party at the time of disclosure, or subsequently becomes public knowledge other than by breach of this license, or subsequently comes lawfully into the possession of such party from a third party.
|
||||
|
||||
The terms of this license are confidential and may not be disclosed by the Customer without the prior written consent of XMOS.
|
||||
The provisions of clause 14 shall remain in full force and effect notwithstanding termination of this license for any reason.
|
||||
|
||||
15. Entire agreement
|
||||
|
||||
This License and the documents annexed as appendices to this License or otherwise referred to herein contain the whole agreement between the parties relating to the subject matter hereof and supersede all prior agreements, arrangements and understandings between the parties relating to that subject matter.
|
||||
|
||||
16. Assignment
|
||||
|
||||
The Customer shall not assign this License or any of the rights granted under it without XMOS's prior written consent.
|
||||
|
||||
17. Governing law and jurisdiction
|
||||
|
||||
This License shall be governed by and construed in accordance with English law and each party hereby submits to the non-exclusive jurisdiction of the English courts.
|
||||
|
||||
This License has been entered into on the date stated at the beginning of it.
|
||||
|
||||
Schedule
|
||||
XMOS UART library software
|
||||
42
lib_uart/tests/app_uart_test_fast_tx/Makefile
Normal file
42
lib_uart/tests/app_uart_test_fast_tx/Makefile
Normal file
@@ -0,0 +1,42 @@
|
||||
# The TARGET variable determines what target system the application is
|
||||
# compiled for. It either refers to an XN file in the source directories
|
||||
# or a valid argument for the --target option when compiling.
|
||||
|
||||
TARGET = SLICEKIT-L16
|
||||
|
||||
# The APP_NAME variable determines the name of the final .xe file. It should
|
||||
# not include the .xe postfix. If left blank the name will default to
|
||||
# the project name
|
||||
|
||||
APP_NAME =
|
||||
|
||||
# The flags passed to xcc when building the application
|
||||
# You can also set the following to override flags for a particular language:
|
||||
#
|
||||
# XCC_XC_FLAGS, XCC_C_FLAGS, XCC_ASM_FLAGS, XCC_CPP_FLAGS
|
||||
#
|
||||
# If the variable XCC_MAP_FLAGS is set it overrides the flags passed to
|
||||
# xcc for the final link (mapping) stage.
|
||||
|
||||
COMMON_FLAGS = -save-temps -O2 -report $(EXTRA_FLAGS)
|
||||
|
||||
baud ?= 115200
|
||||
parity ?= UART_PARITY_NONE
|
||||
|
||||
XCC_FLAGS_smoke = $(COMMON_FLAGS) -DSMOKE_TEST=1 -DBAUD=$(baud)
|
||||
XCC_FLAGS_full = $(COMMON_FLAGS) -DFULL_TEST=1 -DBAUD=$(baud)
|
||||
|
||||
# The USED_MODULES variable lists other module used by the application.
|
||||
|
||||
USED_MODULES = lib_uart lib_xassert lib_logging
|
||||
|
||||
test: bin/app_uart_test.xe
|
||||
$(info Baud: $(baud))
|
||||
xsim bin/app_uart_test.xe --xscope "-offline uart_test.xmt"
|
||||
|
||||
#=============================================================================
|
||||
# The following part of the Makefile includes the common build infrastructure
|
||||
# for compiling XMOS applications. You should not need to edit below here.
|
||||
|
||||
XMOS_MAKE_PATH ?= ../..
|
||||
include $(XMOS_MAKE_PATH)/xcommon/module_xcommon/build/Makefile.common
|
||||
10
lib_uart/tests/app_uart_test_fast_tx/README.rst
Normal file
10
lib_uart/tests/app_uart_test_fast_tx/README.rst
Normal file
@@ -0,0 +1,10 @@
|
||||
UART rx/tx regression test
|
||||
==========================
|
||||
|
||||
:scope: Directed Test
|
||||
:description: Regression test for uart rx parity
|
||||
:keywords: uart, testing
|
||||
|
||||
This application tests the uart rx for various parities of data, with correct
|
||||
disposal of packets with incorrect parity.
|
||||
|
||||
4
lib_uart/tests/app_uart_test_fast_tx/config.xscope
Normal file
4
lib_uart/tests/app_uart_test_fast_tx/config.xscope
Normal file
@@ -0,0 +1,4 @@
|
||||
<xSCOPEconfig enabled="true">
|
||||
<Module name="Uart RX" enabled="false"/>
|
||||
<Module name="Uart TX" enabled="false"/>
|
||||
</xSCOPEconfig>
|
||||
5
lib_uart/tests/app_uart_test_fast_tx/src/debug_conf.h
Normal file
5
lib_uart/tests/app_uart_test_fast_tx/src/debug_conf.h
Normal file
@@ -0,0 +1,5 @@
|
||||
// Copyright (c) 2014-2016, XMOS Ltd, All rights reserved
|
||||
#define DEBUG_PRINT_ENABLE 1
|
||||
#define XASSERT_ENABLE_ASSERTIONS 1
|
||||
#define XASSERT_ENABLE_DEBUG 1
|
||||
#define XASSERT_ENABLE_LINE_NUMBERS 1
|
||||
38
lib_uart/tests/app_uart_test_fast_tx/src/uart_test.xc
Normal file
38
lib_uart/tests/app_uart_test_fast_tx/src/uart_test.xc
Normal file
@@ -0,0 +1,38 @@
|
||||
// Copyright (c) 2015-2016, XMOS Ltd, All rights reserved
|
||||
|
||||
#include <xs1.h>
|
||||
#include <platform.h>
|
||||
#include <stdlib.h>
|
||||
#include "debug_print.h"
|
||||
#include "xassert.h"
|
||||
#include "uart.h"
|
||||
|
||||
#define BITTIME(x) (XS1_TIMER_HZ / (x))
|
||||
|
||||
static void uart_test(streaming chanend stream, unsigned baud_rate)
|
||||
{
|
||||
debug_printf("TEST CONFIG:{'baud rate':%d}\n", baud_rate);
|
||||
debug_printf("Performing tx test.\n");
|
||||
|
||||
for(int i = 0; i < 256; i++)
|
||||
uart_tx_streaming_write_byte(stream, i);
|
||||
_Exit(0);
|
||||
}
|
||||
|
||||
port p_rx = on tile[0] : XS1_PORT_1A;
|
||||
out port p_tx = on tile[0] : XS1_PORT_1B;
|
||||
|
||||
|
||||
#define BUFFER_SIZE 64
|
||||
int main() {
|
||||
streaming chan stream;
|
||||
par {
|
||||
on tile[0] : uart_tx_streaming(p_tx, stream, BITTIME(BAUD));
|
||||
on tile[0] : {
|
||||
uart_test(stream, BAUD);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
524
lib_uart/tests/app_uart_test_half_duplex/.cproject
Normal file
524
lib_uart/tests/app_uart_test_half_duplex/.cproject
Normal file
@@ -0,0 +1,524 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<?fileVersion 4.0.0?>
|
||||
<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
|
||||
<cconfiguration id="com.xmos.cdt.toolchain.70697190">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.xmos.cdt.toolchain.70697190" moduleId="org.eclipse.cdt.core.settings" name="Default">
|
||||
<externalSettings />
|
||||
<extensions>
|
||||
<extension id="com.xmos.cdt.core.XEBinaryParser" point="org.eclipse.cdt.core.BinaryParser" />
|
||||
<extension id="com.xmos.cdt.core.XdeErrorParser" point="org.eclipse.cdt.core.ErrorParser" />
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser" />
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
|
||||
<buildTargets>
|
||||
<target name="all" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>xmake</buildCommand>
|
||||
<buildArguments></buildArguments>
|
||||
<buildTarget>all</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>true</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
<target name="clean" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>xmake</buildCommand>
|
||||
<buildArguments></buildArguments>
|
||||
<buildTarget>clean</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>true</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
</buildTargets>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration buildProperties="" description="" id="com.xmos.cdt.toolchain.70697190" name="Default" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="com.xmos.cdt.toolchain.70697190.1127281840" name="/" resourcePath="">
|
||||
<toolChain id = "com.xmos.cdt.toolchain.82541009" name="com.xmos.cdt.toolchain" superClass="com.xmos.cdt.toolchain">
|
||||
<targetPlatform archList="all" binaryParser="com.xmos.cdt.core.XEBinaryParser" id = "com.xmos.cdt.core.platform.12694723" isAbstract="false" osList="linux,win32,macosx" superClass="com.xmos.cdt.core.platform" />
|
||||
<builder arguments="" id = "com.xmos.cdt.builder.base.23861697" keepEnvironmentInBuildfile="false" managedBuildOn="false" superClass="com.xmos.cdt.builder.base">
|
||||
<outputEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="outputPath" name="bin" />
|
||||
</outputEntries>
|
||||
</builder>
|
||||
<tool id = "com.xmos.cdt.xc.compiler.44109726" name="com.xmos.cdt.xc.compiler" superClass="com.xmos.cdt.xc.compiler">
|
||||
<option id = "com.xmos.c.compiler.option.defined.symbols.63981785" name="com.xmos.c.compiler.option.defined.symbols" superClass="com.xmos.c.compiler.option.defined.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="__SHRT_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__SCHAR_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_HOSTED__=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_YEAR=11"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MAJOR=1111"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MINOR=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MONTH=11"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__MCPP=2"/>
|
||||
<listOptionValue builtIn="false" value="__XC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XS1B__=1"/>
|
||||
<listOptionValue builtIn="false" value="__INT_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_MAX__=2147483647L"/>
|
||||
<listOptionValue builtIn="false" value="__STDC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_MINOR__=2"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_PATCHLEVEL__=1"/>
|
||||
<listOptionValue builtIn="false" value="__llvm__=1"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_ABI_VERSION=1002"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_LONG_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_MAX__=255U"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EVAL_METHOD__=0"/>
|
||||
<listOptionValue builtIn="false" value="__DEC_EVAL_METHOD__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_RADIX__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MANT_DIG__=24"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DIG__=6"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_EXP__=(-125)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_10_EXP__=(-37)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_EXP__=128"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_10_EXP__=38"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX__=3.40282347e+38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN__=1.17549435e-38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EPSILON__=1.19209290e-7F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DENORM_MIN__=1.40129846e-45F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX__=1.7976931348623157e+308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN__=2.2250738585072014e-308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_EPSILON__=2.2204460492503131e-16"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DENORM_MIN__=4.9406564584124654e-324"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DECIMAL_DIG__=17"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX__=1.7976931348623157e+308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN__=2.2250738585072014e-308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_EPSILON__=2.2204460492503131e-16L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DENORM_MIN__=4.9406564584124654e-324L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MANT_DIG__=7"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN_EXP__=(-95)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX_EXP__=96"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN__=1E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX__=9.999999E96DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_EPSILON__=1E-6DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_DEN__=0.000001E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MANT_DIG__=16"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN_EXP__=(-383)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX_EXP__=384"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN__=1E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX__=9.999999999999999E384DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_EPSILON__=1E-15DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_DEN__=0.000000000000001E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MANT_DIG__=34"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN_EXP__=(-6143)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX_EXP__=6144"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN__=1E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX__=9.999999999999999999999999999999999E6144DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_EPSILON__=1E-33DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_DEN__=0.000000000000000000000000000000001E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__REGISTER_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__USER_LABEL_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__VERSION__="4.2.1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_GNU_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__BLOCKS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__NO_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FINITE_MATH_ONLY__=0"/>
|
||||
<listOptionValue builtIn="false" value="__ELF__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XCC_HAVE_FLOAT__=1"/>
|
||||
<listOptionValue builtIn="false" value="__cplusplus=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUG__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_WEAK__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEPRECATED=1"/>
|
||||
<listOptionValue builtIn="false" value="__EXCEPTIONS=1"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_UNSIGNED__=1"/>
|
||||
</option>
|
||||
<option id = "com.xmos.xc.compiler.option.include.paths.6342848" name="com.xmos.xc.compiler.option.include.paths" superClass="com.xmos.xc.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/gcc""/>
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/.settings}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert}"' />
|
||||
|
||||
</option>
|
||||
<inputType id = "com.xmos.cdt.xc.compiler.input.93736532" name="XC" superClass="com.xmos.cdt.xc.compiler.input"/>
|
||||
</tool>
|
||||
<tool id = "com.xmos.cdt.c.compiler.92402808" name="com.xmos.cdt.c.compiler" superClass="com.xmos.cdt.c.compiler">
|
||||
<option id = "com.xmos.c.compiler.option.defined.symbols.79822841" name="com.xmos.c.compiler.option.defined.symbols" superClass="com.xmos.c.compiler.option.defined.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="__STDC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_VERSION__=199901L"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_HOSTED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_MINOR__=2"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_PATCHLEVEL__=1"/>
|
||||
<listOptionValue builtIn="false" value="__llvm__=1"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_ABI_VERSION=1002"/>
|
||||
<listOptionValue builtIn="false" value="__SCHAR_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__SHRT_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__INT_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_MAX__=2147483647L"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_LONG_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_MAX__=255U"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EVAL_METHOD__=0"/>
|
||||
<listOptionValue builtIn="false" value="__DEC_EVAL_METHOD__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_RADIX__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MANT_DIG__=24"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DIG__=6"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_EXP__=(-125)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_10_EXP__=(-37)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_EXP__=128"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_10_EXP__=38"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX__=3.40282347e+38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN__=1.17549435e-38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EPSILON__=1.19209290e-7F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DENORM_MIN__=1.40129846e-45F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX__=1.7976931348623157e+308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN__=2.2250738585072014e-308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_EPSILON__=2.2204460492503131e-16"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DENORM_MIN__=4.9406564584124654e-324"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DECIMAL_DIG__=17"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX__=1.7976931348623157e+308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN__=2.2250738585072014e-308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_EPSILON__=2.2204460492503131e-16L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DENORM_MIN__=4.9406564584124654e-324L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MANT_DIG__=7"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN_EXP__=(-95)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX_EXP__=96"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN__=1E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX__=9.999999E96DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_EPSILON__=1E-6DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_DEN__=0.000001E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MANT_DIG__=16"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN_EXP__=(-383)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX_EXP__=384"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN__=1E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX__=9.999999999999999E384DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_EPSILON__=1E-15DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_DEN__=0.000000000000001E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MANT_DIG__=34"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN_EXP__=(-6143)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX_EXP__=6144"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN__=1E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX__=9.999999999999999999999999999999999E6144DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_EPSILON__=1E-33DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_DEN__=0.000000000000000000000000000000001E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__REGISTER_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__USER_LABEL_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__VERSION__="4.2.1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_STDC_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__BLOCKS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__NO_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FINITE_MATH_ONLY__=0"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XS1B__=1"/>
|
||||
<listOptionValue builtIn="false" value="__ELF__=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_YEAR=12"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MONTH=2"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MAJOR=1202"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MINOR=0"/>
|
||||
<listOptionValue builtIn="false" value="__XCC_HAVE_FLOAT__=1"/>
|
||||
</option>
|
||||
<option id = "com.xmos.c.compiler.option.include.paths.27819059" name="com.xmos.c.compiler.option.include.paths" superClass="com.xmos.c.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/gcc""/>
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/.settings}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert}"' />
|
||||
|
||||
</option>
|
||||
<inputType id = "com.xmos.cdt.c.compiler.input.c.26351538" name="C" superClass="com.xmos.cdt.c.compiler.input.c"/>
|
||||
</tool>
|
||||
<tool id = "com.xmos.cdt.cxx.compiler.83278035" name="com.xmos.cdt.cxx.compiler" superClass="com.xmos.cdt.cxx.compiler">
|
||||
<option id = "com.xmos.cxx.compiler.option.defined.symbols.85664154" name="com.xmos.cxx.compiler.option.defined.symbols" superClass="com.xmos.cxx.compiler.option.defined.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="__STDC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__cplusplus=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_HOSTED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUG__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_MINOR__=2"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_PATCHLEVEL__=1"/>
|
||||
<listOptionValue builtIn="false" value="__llvm__=1"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_WEAK__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEPRECATED=1"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_ABI_VERSION=1002"/>
|
||||
<listOptionValue builtIn="false" value="__SCHAR_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__SHRT_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__INT_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_MAX__=2147483647L"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_LONG_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_MAX__=255U"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EVAL_METHOD__=0"/>
|
||||
<listOptionValue builtIn="false" value="__DEC_EVAL_METHOD__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_RADIX__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MANT_DIG__=24"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DIG__=6"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_EXP__=(-125)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_10_EXP__=(-37)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_EXP__=128"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_10_EXP__=38"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX__=3.40282347e+38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN__=1.17549435e-38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EPSILON__=1.19209290e-7F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DENORM_MIN__=1.40129846e-45F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX__=1.7976931348623157e+308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN__=2.2250738585072014e-308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_EPSILON__=2.2204460492503131e-16"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DENORM_MIN__=4.9406564584124654e-324"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DECIMAL_DIG__=17"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX__=1.7976931348623157e+308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN__=2.2250738585072014e-308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_EPSILON__=2.2204460492503131e-16L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DENORM_MIN__=4.9406564584124654e-324L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MANT_DIG__=7"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN_EXP__=(-95)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX_EXP__=96"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN__=1E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX__=9.999999E96DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_EPSILON__=1E-6DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_DEN__=0.000001E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MANT_DIG__=16"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN_EXP__=(-383)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX_EXP__=384"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN__=1E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX__=9.999999999999999E384DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_EPSILON__=1E-15DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_DEN__=0.000000000000001E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MANT_DIG__=34"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN_EXP__=(-6143)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX_EXP__=6144"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN__=1E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX__=9.999999999999999999999999999999999E6144DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_EPSILON__=1E-33DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_DEN__=0.000000000000000000000000000000001E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__REGISTER_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__USER_LABEL_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__VERSION__="4.2.1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_GNU_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__BLOCKS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__NO_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FINITE_MATH_ONLY__=0"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XS1B__=1"/>
|
||||
<listOptionValue builtIn="false" value="__ELF__=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_YEAR=12"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MONTH=2"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MAJOR=1202"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MINOR=0"/>
|
||||
<listOptionValue builtIn="false" value="__XCC_HAVE_FLOAT__=1"/>
|
||||
</option>
|
||||
<option id = "com.xmos.cxx.compiler.option.include.paths.92184970" name="com.xmos.cxx.compiler.option.include.paths" superClass="com.xmos.cxx.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/gcc""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/c++/4.2.1""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/c++/4.2.1/xcore-xmos-elf""/>
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/app_uart_test}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_logging}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_rx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/.settings}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_uart_tx}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_xassert}"' />
|
||||
|
||||
</option>
|
||||
<inputType id = "com.xmos.cdt.cxx.compiler.input.cpp.70994893" name="C++" superClass="com.xmos.cdt.cxx.compiler.input.cpp"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry excluding=".build_*" flags="VALUE_WORKSPACE_PATH|RESOLVED"
|
||||
kind="sourcePath" name="" />
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="" />
|
||||
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="makefileGenerator">
|
||||
<runAction arguments="-E -P -v -dD" command="" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments='-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'' command="sh" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments='-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'' command="sh" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments='-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'' command="sh" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings" />
|
||||
<storageModule moduleId="org.eclipse.cdt.core.language.mapping" />
|
||||
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings" />
|
||||
</cconfiguration>
|
||||
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id = "app_uart_test.null.49472330" name="app_uart_test" />
|
||||
</storageModule>
|
||||
</cproject>
|
||||
76
lib_uart/tests/app_uart_test_half_duplex/.project
Normal file
76
lib_uart/tests/app_uart_test_half_duplex/.project
Normal file
@@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>app_uart_test</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
<dictionary>
|
||||
<key>?children?</key>
|
||||
<value>?name?=outputEntries\|?children?=?name?=entry\\\\|\\|\||</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>?name?</key>
|
||||
<value></value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.append_environment</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.buildArguments</key>
|
||||
<value>CONFIG=Debug</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.buildCommand</key>
|
||||
<value>xmake</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
|
||||
<value>clean</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.contents</key>
|
||||
<value>org.eclipse.cdt.make.core.activeConfigSettings</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
|
||||
<value>false</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableFullBuild</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.stopOnError</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
|
||||
<value>false</value>
|
||||
</dictionary>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
<nature>com.xmos.cdt.core.XdeProjectNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
|
||||
1
lib_uart/tests/app_uart_test_half_duplex/.xproject
Normal file
1
lib_uart/tests/app_uart_test_half_duplex/.xproject
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><xproject><repository>sc_uart</repository><partnum>XM-001906-SM</partnum></xproject>
|
||||
135
lib_uart/tests/app_uart_test_half_duplex/LICENSE.txt
Normal file
135
lib_uart/tests/app_uart_test_half_duplex/LICENSE.txt
Normal file
@@ -0,0 +1,135 @@
|
||||
Software Release License Agreement
|
||||
|
||||
Copyright (c) 2015-2017, XMOS, All rights reserved.
|
||||
|
||||
BY ACCESSING, USING, INSTALLING OR DOWNLOADING THE XMOS SOFTWARE, YOU AGREE TO BE BOUND BY THE FOLLOWING TERMS. IF YOU DO NOT AGREE TO THESE, DO NOT ATTEMPT TO DOWNLOAD, ACCESS OR USE THE XMOS Software.
|
||||
|
||||
Parties:
|
||||
|
||||
(1) XMOS Limited, incorporated and registered in England and Wales with company number 5494985 whose registered office is 107 Cheapside, London, EC2V 6DN (XMOS).
|
||||
|
||||
(2) An individual or legal entity exercising permissions granted by this License (Customer).
|
||||
|
||||
If you are entering into this Agreement on behalf of another legal entity such as a company, partnership, university, college etc. (for example, as an employee, student or consultant), you warrant that you have authority to bind that entity.
|
||||
|
||||
1. Definitions
|
||||
|
||||
"License" means this Software License and any schedules or annexes to it.
|
||||
|
||||
"License Fee" means the fee for the XMOS Software as detailed in any schedules or annexes to this Software License
|
||||
|
||||
"Licensee Modifications" means all developments and modifications of the XMOS Software developed independently by the Customer.
|
||||
|
||||
"XMOS Modifications" means all developments and modifications of the XMOS Software developed or co-developed by XMOS.
|
||||
|
||||
"XMOS Hardware" means any XMOS hardware devices supplied by XMOS from time to time and/or the particular XMOS devices detailed in any schedules or annexes to this Software License.
|
||||
|
||||
"XMOS Software" comprises the XMOS owned circuit designs, schematics, source code, object code, reference designs, (including related programmer comments and documentation, if any), error corrections, improvements, modifications (including XMOS Modifications) and updates.
|
||||
|
||||
The headings in this License do not affect its interpretation. Save where the context otherwise requires, references to clauses and schedules are to clauses and schedules of this License.
|
||||
|
||||
Unless the context otherwise requires:
|
||||
|
||||
- references to XMOS and the Customer include their permitted successors and assigns;
|
||||
- references to statutory provisions include those statutory provisions as amended or re-enacted; and
|
||||
- references to any gender include all genders.
|
||||
|
||||
Words in the singular include the plural and in the plural include the singular.
|
||||
|
||||
2. License
|
||||
|
||||
XMOS grants the Customer a non-exclusive license to use, develop, modify and distribute the XMOS Software with, or for the purpose of being used with, XMOS Hardware.
|
||||
|
||||
Open Source Software (OSS) must be used and dealt with in accordance with any license terms under which OSS is distributed.
|
||||
|
||||
3. Consideration
|
||||
|
||||
In consideration of the mutual obligations contained in this License, the parties agree to its terms.
|
||||
|
||||
4. Term
|
||||
|
||||
Subject to clause 12 below, this License shall be perpetual.
|
||||
|
||||
5. Restrictions on Use
|
||||
|
||||
The Customer will adhere to all applicable import and export laws and regulations of the country in which it resides and of the United States and United Kingdom, without limitation. The Customer agrees that it is its responsibility to obtain copies of and to familiarise itself fully with these laws and regulations to avoid violation.
|
||||
|
||||
6. Modifications
|
||||
|
||||
The Customer will own all intellectual property rights in the Licensee Modifications but will undertake to provide XMOS with any fixes made to correct any bugs found in the XMOS Software on a non-exclusive, perpetual and royalty free license basis.
|
||||
|
||||
XMOS will own all intellectual property rights in the XMOS Modifications.
|
||||
The Customer may only use the Licensee Modifications and XMOS Modifications on, or in relation to, XMOS Hardware.
|
||||
|
||||
7. Support
|
||||
|
||||
Support of the XMOS Software may be provided by XMOS pursuant to a separate support agreement.
|
||||
|
||||
8. Warranty and Disclaimer
|
||||
|
||||
The XMOS Software is provided "AS IS" without a warranty of any kind. XMOS and its licensors' entire liability and Customer's exclusive remedy under this warranty to be determined in XMOS's sole and absolute discretion, will be either (a) the corrections of defects in media or replacement of the media, or (b) the refund of the license fee paid (if any).
|
||||
|
||||
Whilst XMOS gives the Customer the ability to load their own software and applications onto XMOS devices, the security of such software and applications when on the XMOS devices is the Customer's own responsibility and any breach of security shall not be deemed a defect or failure of the hardware. XMOS shall have no liability whatsoever in relation to any costs, damages or other losses Customer may incur as a result of any breaches of security in relation to your software or applications.
|
||||
|
||||
XMOS AND ITS LICENSORS DISCLAIM ALL OTHER WARRANTIES, EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY/ SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT EXCEPT TO THE EXTENT THAT THESE DISCLAIMERS ARE HELD TO BE LEGALLY INVALID UNDER APPLICABLE LAW.
|
||||
|
||||
9. High Risk Activities
|
||||
|
||||
The XMOS Software is not designed or intended for use in conjunction with on-line control equipment in hazardous environments requiring fail-safe performance, including without limitation the operation of nuclear facilities, aircraft navigation or communication systems, air traffic control, life support machines, or weapons systems (collectively "High Risk Activities") in which the failure of the XMOS Software could lead directly to death, personal injury, or severe physical or environmental damage. XMOS and its licensors specifically disclaim any express or implied warranties relating to use of the XMOS Software in connection with High Risk Activities.
|
||||
|
||||
10. Liability
|
||||
|
||||
TO THE EXTENT NOT PROHIBITED BY APPLICABLE LAW, NEITHER XMOS NOR ITS LICENSORS SHALL BE LIABLE FOR ANY LOST REVENUE, BUSINESS, PROFIT, CONTRACTS OR DATA, ADMINISTRATIVE OR OVERHEAD EXPENSES, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES HOWEVER CAUSED AND REGARDLESS OF THEORY OF LIABILITY ARISING OUT OF THIS LICENSE, EVEN IF XMOS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. In no event shall XMOS's liability to the Customer whether in contract, tort (including negligence), or otherwise exceed the License Fee.
|
||||
|
||||
Customer agrees to indemnify, hold harmless, and defend XMOS and its licensors from and against any claims or lawsuits, including attorneys' fees and any other liabilities, demands, proceedings, damages, losses, costs, expenses fines and charges which are made or brought against or incurred by XMOS as a result of your use or distribution of the Licensee Modifications or your use or distribution of XMOS Software, or any development of it, other than in accordance with the terms of this License.
|
||||
|
||||
11. Ownership
|
||||
|
||||
The copyrights and all other intellectual and industrial property rights for the protection of information with respect to the XMOS Software (including the methods and techniques on which they are based) are retained by XMOS and/or its licensors. Nothing in this Agreement serves to transfer such rights. Customer may not sell, mortgage, underlet, sublease, sublicense, lend or transfer possession of the XMOS Software in any way whatsoever to any third party who is not bound by this Agreement.
|
||||
|
||||
12. Termination
|
||||
|
||||
Either party may terminate this License at any time on written notice to the other if the other:
|
||||
|
||||
- is in material or persistent breach of any of the terms of this License and either that breach is incapable of remedy, or the other party fails to remedy that breach within 30 days after receiving written notice requiring it to remedy that breach; or
|
||||
|
||||
- is unable to pay its debts (within the meaning of section 123 of the Insolvency Act 1986), or becomes insolvent, or is subject to an order or a resolution for its liquidation, administration, winding-up or dissolution (otherwise than for the purposes of a solvent amalgamation or reconstruction), or has an administrative or other receiver, manager, trustee, liquidator, administrator or similar officer appointed over all or any substantial part of its assets, or enters into or proposes any composition or arrangement with its creditors generally, or is subject to any analogous event or proceeding in any applicable jurisdiction.
|
||||
|
||||
Termination by either party in accordance with the rights contained in clause 12 shall be without prejudice to any other rights or remedies of that party accrued prior to termination.
|
||||
|
||||
On termination for any reason:
|
||||
|
||||
- all rights granted to the Customer under this License shall cease;
|
||||
- the Customer shall cease all activities authorised by this License;
|
||||
- the Customer shall immediately pay any sums due to XMOS under this License; and
|
||||
- the Customer shall immediately destroy or return to the XMOS (at the XMOS's option) all copies of the XMOS Software then in its possession, custody or control and, in the case of destruction, certify to XMOS that it has done so.
|
||||
|
||||
Clauses 5, 8, 9, 10 and 11 shall survive any effective termination of this Agreement.
|
||||
|
||||
13. Third party rights
|
||||
|
||||
No term of this License is intended to confer a benefit on, or to be enforceable by, any person who is not a party to this license.
|
||||
|
||||
14. Confidentiality and publicity
|
||||
|
||||
Each party shall, during the term of this License and thereafter, keep confidential all, and shall not use for its own purposes nor without the prior written consent of the other disclose to any third party any, information of a confidential nature (including, without limitation, trade secrets and information of commercial value) which may become known to such party from the other party and which relates to the other party, unless such information is public knowledge or already known to such party at the time of disclosure, or subsequently becomes public knowledge other than by breach of this license, or subsequently comes lawfully into the possession of such party from a third party.
|
||||
|
||||
The terms of this license are confidential and may not be disclosed by the Customer without the prior written consent of XMOS.
|
||||
The provisions of clause 14 shall remain in full force and effect notwithstanding termination of this license for any reason.
|
||||
|
||||
15. Entire agreement
|
||||
|
||||
This License and the documents annexed as appendices to this License or otherwise referred to herein contain the whole agreement between the parties relating to the subject matter hereof and supersede all prior agreements, arrangements and understandings between the parties relating to that subject matter.
|
||||
|
||||
16. Assignment
|
||||
|
||||
The Customer shall not assign this License or any of the rights granted under it without XMOS's prior written consent.
|
||||
|
||||
17. Governing law and jurisdiction
|
||||
|
||||
This License shall be governed by and construed in accordance with English law and each party hereby submits to the non-exclusive jurisdiction of the English courts.
|
||||
|
||||
This License has been entered into on the date stated at the beginning of it.
|
||||
|
||||
Schedule
|
||||
XMOS UART library software
|
||||
42
lib_uart/tests/app_uart_test_half_duplex/Makefile
Normal file
42
lib_uart/tests/app_uart_test_half_duplex/Makefile
Normal file
@@ -0,0 +1,42 @@
|
||||
# The TARGET variable determines what target system the application is
|
||||
# compiled for. It either refers to an XN file in the source directories
|
||||
# or a valid argument for the --target option when compiling.
|
||||
|
||||
TARGET = SLICEKIT-L16
|
||||
|
||||
# The APP_NAME variable determines the name of the final .xe file. It should
|
||||
# not include the .xe postfix. If left blank the name will default to
|
||||
# the project name
|
||||
|
||||
APP_NAME =
|
||||
|
||||
# The flags passed to xcc when building the application
|
||||
# You can also set the following to override flags for a particular language:
|
||||
#
|
||||
# XCC_XC_FLAGS, XCC_C_FLAGS, XCC_ASM_FLAGS, XCC_CPP_FLAGS
|
||||
#
|
||||
# If the variable XCC_MAP_FLAGS is set it overrides the flags passed to
|
||||
# xcc for the final link (mapping) stage.
|
||||
|
||||
COMMON_FLAGS = -save-temps -O2 -report $(EXTRA_FLAGS) -g
|
||||
|
||||
baud ?= 115200
|
||||
parity ?= UART_PARITY_NONE
|
||||
|
||||
XCC_FLAGS_smoke = $(COMMON_FLAGS) -DSMOKE_TEST=1 -DBAUD=$(baud) -DPARITY=$(parity)
|
||||
XCC_FLAGS_full = $(COMMON_FLAGS) -DFULL_TEST=1 -DBAUD=$(baud) -DPARITY=$(parity)
|
||||
|
||||
# The USED_MODULES variable lists other module used by the application.
|
||||
|
||||
USED_MODULES = lib_uart lib_xassert lib_logging
|
||||
|
||||
test: bin/app_uart_test.xe
|
||||
$(info Baud: $(baud))
|
||||
xsim bin/app_uart_test.xe --xscope "-offline uart_test.xmt"
|
||||
|
||||
#=============================================================================
|
||||
# The following part of the Makefile includes the common build infrastructure
|
||||
# for compiling XMOS applications. You should not need to edit below here.
|
||||
|
||||
XMOS_MAKE_PATH ?= ../..
|
||||
include $(XMOS_MAKE_PATH)/xcommon/module_xcommon/build/Makefile.common
|
||||
10
lib_uart/tests/app_uart_test_half_duplex/README.rst
Normal file
10
lib_uart/tests/app_uart_test_half_duplex/README.rst
Normal file
@@ -0,0 +1,10 @@
|
||||
UART rx/tx regression test
|
||||
==========================
|
||||
|
||||
:scope: Directed Test
|
||||
:description: Regression test for uart rx parity
|
||||
:keywords: uart, testing
|
||||
|
||||
This application tests the uart rx for various parities of data, with correct
|
||||
disposal of packets with incorrect parity.
|
||||
|
||||
4
lib_uart/tests/app_uart_test_half_duplex/config.xscope
Normal file
4
lib_uart/tests/app_uart_test_half_duplex/config.xscope
Normal file
@@ -0,0 +1,4 @@
|
||||
<xSCOPEconfig enabled="true">
|
||||
<Module name="Uart RX" enabled="false"/>
|
||||
<Module name="Uart TX" enabled="false"/>
|
||||
</xSCOPEconfig>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user