Compare commits
66 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f5018b5c37 | |||
| 2a17781fde | |||
| 67d52bcd75 | |||
| b96505d79c | |||
| 7083101d79 | |||
| ee70b207ca | |||
| 314bb70489 | |||
| 459f4850ef | |||
| dbc2e3a568 | |||
| 1f4cee9279 | |||
| f18f05cd1d | |||
| 93816a8d36 | |||
| 18a8fde7de | |||
| 7742ab0c9c | |||
| 1d1e08771d | |||
| 916e27ba33 | |||
| 598c3e2629 | |||
| ca39a15e60 | |||
| 2c992d8526 | |||
| 127742b194 | |||
| dff979cbe6 | |||
| 3b13a0ff90 | |||
| 1e061f2511 | |||
| cc2648585c | |||
| b965f81fc4 | |||
| b5ddf300b9 | |||
| 22175f379f | |||
| 6ff966df58 | |||
| 65f159fad2 | |||
| 515fc57307 | |||
| b84fbb6044 | |||
| d1cdaf7041 | |||
| d824b1fbd9 | |||
| 0df352d6ff | |||
| c27b6a0ac7 | |||
| e1152f6713 | |||
| e6ab11b004 | |||
| e3e40d25e9 | |||
| 495d4deb91 | |||
| aa662f4a7b | |||
| 21f17ab7a3 | |||
| 6000816833 | |||
| 95116252c8 | |||
| 28e8a66221 | |||
| 3249e7e1e2 | |||
| d5d97db086 | |||
| c806a7e09f | |||
| 95e563e04f | |||
| 747ebf5f8b | |||
| fb942c8e40 | |||
| fdc2f05d46 | |||
| 3c2823cc13 | |||
| 9ba9131a51 | |||
| bd64c60b40 | |||
| bb7e609665 | |||
| 9c4794c868 | |||
| 019c32faf5 | |||
| 96b6e4d1b9 | |||
| 105d01e636 | |||
| 71fcc98862 | |||
| c63656ac97 | |||
| 47a24ccef3 | |||
| 2ee3abf193 | |||
| d9039070ad | |||
| f69fd4a40f | |||
| a6287ad7e3 |
+4
-2
@@ -3,7 +3,9 @@
|
||||
# CSS package
|
||||
xdctools_*/
|
||||
ccsv8/
|
||||
simplelink/ble_sdk_2_02_02_25/examples/cc2650em/simple_peripheral/ccs/app/.config/
|
||||
|
||||
# CSS build files
|
||||
FlashROM/
|
||||
FlashROM/
|
||||
|
||||
# python cache
|
||||
__pycache__/
|
||||
Generated
+3
@@ -0,0 +1,3 @@
|
||||
<component name="DependencyValidationManager">
|
||||
<scope name="Driver" pattern="file[BioProCC2650]:simplelink/ble_sdk_2_02_02_25/src/boards/BOOSTXL_CC2650MA/*||file[BioProCC2650]:simplelink/ble_sdk_2_02_02_25/src/boards/CC2650_LAUNCHXL/*||file[BioProCC2650]:tirtos_cc13xx_cc26xx_2_21_01_08/products/tidrivers_cc13xx_cc26xx_2_21_01_01/packages/ti/drivers//*" />
|
||||
</component>
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -13,33 +13,44 @@ BioPro Device
|
||||
`simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/main.c`
|
||||
|
||||
|
||||
### Current project
|
||||
### Current project and state
|
||||
|
||||
1. Elite
|
||||
|
||||
`simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/headstage_tni.h`
|
||||
|
||||
**branch**
|
||||
|
||||
2. Neulive 1.2
|
||||
|
||||
`simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/headstage_uni.h`
|
||||
|
||||
**branch**
|
||||
|
||||
`neulive1.2/*`
|
||||
|
||||
3. Neulive 1.3
|
||||
|
||||
`simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/headstage_neulive.h`
|
||||
[docs](simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx\app/headstage/uni/Neulive13.md)
|
||||
|
||||
**branch**
|
||||
|
||||
4. EliteZM
|
||||
|
||||
`simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/headstage_zm.h`
|
||||
|
||||
**branch**
|
||||
|
||||
`elite_zm/*`
|
||||
|
||||
5. NeuliveSTI
|
||||
|
||||
`simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/headstage_sti.h`
|
||||
|
||||
6. Neulive 2.0
|
||||
|
||||
`simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/headstage_neu.h`
|
||||
|
||||
**branch**
|
||||
|
||||
`neuliveSTI/*`
|
||||
|
||||
### Notable source code
|
||||
|
||||
* gpio table
|
||||
@@ -63,6 +74,194 @@ major source code path:
|
||||
|
||||
`simplelink/ble_sdk_2_02_02_25/src/examples/host_test/cc26xx/app/main.c`
|
||||
|
||||
**branch**
|
||||
|
||||
`host_test/master`
|
||||
|
||||
`release/host_test-*`
|
||||
|
||||
-----------------------------------------------
|
||||
|
||||
How to install this project in your PC
|
||||
--------------------------------------
|
||||
|
||||
|
||||
### install CCStudio
|
||||
|
||||
#### Prerequisite:
|
||||
|
||||
anti-virus software might cause some problems, disable it while installing is recommended.
|
||||
|
||||
#### Install CCS (Online install)
|
||||
|
||||
1. [code composer studio](http://processors.wiki.ti.com/index.php/Download_CCS) :
|
||||
choose the latest version (we use 8.2.0.00007, Online Installer, as example) of Code Composer Studio.
|
||||
|
||||
2. run installer
|
||||
|
||||
3. accept the license
|
||||
|
||||
4. install at folder `c:/ti`
|
||||
|
||||
5. select all Processor Support
|
||||
|
||||
6. select all Debug Probes.
|
||||
|
||||
7. Finish. Allow the network access if the firewall jumps a warning dialog.
|
||||
Wait for the install process......
|
||||
|
||||
|
||||
#### Offline install
|
||||
|
||||
1. [code composer studio](http://processors.wiki.ti.com/index.php/Download_CCS) :
|
||||
choose the latest version (we use 8.2.0.00007, Offline Installer) of Code Composer Studio.
|
||||
|
||||
2. Unzip it
|
||||
|
||||
3. Open the folder `CCS8.2.0.00007_win32` -> Open sub-folder `CCS8.2.0.00007_win32`
|
||||
|
||||
4. run installer *ccs_setup_8.2.0.00007*
|
||||
|
||||
5. accept the license
|
||||
|
||||
6. install at folder `c:/ti`
|
||||
|
||||
7. select all Processor Support
|
||||
|
||||
8. select all Debug Probes
|
||||
|
||||
9. Finish. Wait for the install process......
|
||||
|
||||
10. accept `Blackhawk Control` dialog popped out during the process
|
||||
(we will not use this directly)
|
||||
|
||||
11. select options to create desktop shortcut and launch CCStudio
|
||||
|
||||
#### After install, update the CCStudio
|
||||
|
||||
1. at the first launch, CCStudio will ask you to select a directory as workspace. Use the default. -> Launch
|
||||
|
||||
2. help -> check for updates -> select all available updates -> next
|
||||
|
||||
3. accept the licenses -> finish -> wait for the installation...... -> Restart Now
|
||||
|
||||
|
||||
|
||||
### install BLE STACK
|
||||
|
||||
1. [BLE STACK](http://www.ti.com/tool/BLE-STACK):
|
||||
choose `BLE-STACK-2-2-2` Free version.
|
||||
(a TI account is required)
|
||||
|
||||
1. at the *U.S. Government export approval* page,
|
||||
check all your information and submit then start to download.
|
||||
|
||||
2. run *ble_sdk_2_02_02_25_setup*
|
||||
|
||||
3. accept the license agreement
|
||||
|
||||
4. use the default installation directory `C:\ti\simplelink` -> wait for the install process......
|
||||
|
||||
5. **TI-RTOS for CC13xx and CC26xx Wireless MCUs Setup Wizard** will jump out -> next
|
||||
at the same time, *ble_sdk_2_02_02_25_setup* will still be running, don't close the window
|
||||
|
||||
6. accept the license agreement
|
||||
|
||||
7. use the default installation directory `C:/ti` -> wait for the install process......
|
||||
|
||||
|
||||
8. after **TI-RTOS for CC13xx and CC26xx Wireless MCUs Setup Wizard** has been install.
|
||||
keep waiting for *ble_sdk_2_02_02_25_setup* to process
|
||||
|
||||
9. finish
|
||||
|
||||
|
||||
### First run CCStudio and setting
|
||||
|
||||
1. start CCStudio
|
||||
|
||||
2. File -> import -> C/C++ -> CCS Projects -> next
|
||||
|
||||
3. Select search-directory `C:/ti/ble_sdk_2_02_02_25/examples/cc2650lp/simple_peripheral/ccs` -> OK
|
||||
|
||||
4. select all discovered projects -> finish
|
||||
|
||||
5. right click `simple_peripheral_cc2650lp_app` -> Properties -> Products -> **XDCtools version: 3.32.2.25_core**
|
||||
|
||||
6. remember to select **TI-RTOS for CC13xx and CC26xx: 2.21.1.08** and **Other Repositories: C:/to/ccsv8/ccs_base**
|
||||
|
||||
7. Project -> Tool-chain: **Compiler version: TI v18.1.3.LTS**
|
||||
|
||||
8. apply amd close
|
||||
|
||||
9. right click *simple_peripheral_cc2650lp_stack* -> Properties -> Products -> select all
|
||||
|
||||
10. Project -> Tool-chain: **compiler version: TI v18.1.3.LTS**
|
||||
|
||||
11. Click *build* and it's done
|
||||
|
||||
### clone this project
|
||||
|
||||
#### with Command line interface (git-bash)
|
||||
|
||||
1. `cd c:`
|
||||
|
||||
2. rename ti directory
|
||||
|
||||
`mv ti ti_backup`
|
||||
|
||||
3. clone our project.
|
||||
|
||||
`git clone URL ti`, where URL is our project url on gitlab.
|
||||
|
||||
4. move CCStudio back to ti directory
|
||||
|
||||
`mv -t ti ti_backup/ccsv8 ti_backup/xdctools-*`
|
||||
|
||||
5. open CCStudio and rebuild your project, check it work as normal.
|
||||
|
||||
### Optional
|
||||
|
||||
#### install git if you don't install it
|
||||
|
||||
* https://git-scm.com/download/win
|
||||
|
||||
* choose corresponding version for your computer from 'Git for Windows Setup'
|
||||
|
||||
|
||||
#### doxygen: tool to help documenting code
|
||||
|
||||
* download from main page http://www.doxygen.nl/download.html
|
||||
|
||||
* according to different OS, download corresponding version.
|
||||
|
||||
* press keyboard 'ctrl' + 'shift' + 'a' to search external tool, select 'external tools-setting'
|
||||
|
||||
* add external tool by pressing '+'
|
||||
|
||||
* name this external tool in the column 'name'
|
||||
|
||||
* set the path of doxygen execute file in the column 'program'
|
||||
|
||||
* set the repository we want to generate document automatically in the column 'working directory'
|
||||
|
||||
* set hotkey of doxygen to run : 'File' -> 'Setting' -> 'Keymap' -> 'external tools'
|
||||
|
||||
* press the hotkey to run doxygen
|
||||
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
* jump a dialog with **MSVC components failed to install.
|
||||
Please install executables manually from c:/ti/ccsv8/installers before using CCS**
|
||||
|
||||
ignore it.
|
||||
|
||||
* jumps a warning dialog of Windows Defender
|
||||
Allow the network access.
|
||||
|
||||
|
||||
|
||||
-----------------------------------------------
|
||||
|
||||
Copyright (c) 2019. BioPro. Scientific.
|
||||
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
int main(void) {
|
||||
return 0;
|
||||
}
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
int main(void) {
|
||||
return 0;
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
from devlib.util import print_instruction
|
||||
|
||||
STI_INSTRUCTION = {
|
||||
'GLOBAL': '3b001#header#;1b0;12bCURRENT',
|
||||
'LOCAL': '3b010#header;1b0;4b>CHANNEL;3b>STI_MODE;1b>PRECISION;12b>STI_FREQ;10b>STI_PW;10b>STI_PW_IPI;10b>STI_NUM'
|
||||
}
|
||||
|
||||
STI_PARAMETER = {
|
||||
'CURRENT': 10,
|
||||
'CHANNEL': 0,
|
||||
'STI_MODE': 3,
|
||||
'PRECISION': 0,
|
||||
'STI_FREQ': 10,
|
||||
'STI_PW': 10,
|
||||
'STI_PW_IPI': 10,
|
||||
'STI_NUM': 10,
|
||||
}
|
||||
|
||||
NEULIVE_INSTRUCTION = {
|
||||
'RIS': '3b101#header#;2b0;3b>LB;2b0;1bCH;1bFS;3b>WF;5b>TV;4b>PM;4b>NM;4b>SR',
|
||||
'UMC': '3b001#umc_parameter;3b>AG;4b>PW;6b>TT;2b>SB;6b>TF;1bCA;1bCB;1bCC;1bCD;4b>CHA;4b>CHB;4b>CHC;4b>CHD'
|
||||
}
|
||||
|
||||
NEULIVE_PARAMETER = {
|
||||
'LB': 0, # LOW BAND FREQEUNCY
|
||||
'CH': 1, # CHOPPER
|
||||
'FS': 0, # FAST SETTLE
|
||||
'WF': 1, # WAVEFORM : POS, NEG, P2N...etc.
|
||||
'TV': 0, # STIMULATION VOLTAGE
|
||||
'PM': 0, # P CHANNEL SELECT
|
||||
'NM': 0, # N CHANNEL SELECT
|
||||
'SR': 0, # ADC SAMPLING RATE
|
||||
'AG': 5, # AMP GAIN
|
||||
'PW': 0, # PULSE WIDTH
|
||||
'TT': 9, # STIMULATION TIMES
|
||||
'SB': 2, # STIMULATION BEHAVIOR
|
||||
'TF': 1, # STIMULATION FREQUENCY
|
||||
'CA': 1, # AMP CHANNEL A ENABLE
|
||||
'CB': 1, # AMP CHANNEL B ENABLE
|
||||
'CC': 1, # AMP CHANNEL C ENABLE
|
||||
'CD': 1, # AMP CHANNEL D ENABLE
|
||||
'CHA': 9, # AMP CHANNEL A
|
||||
'CHB': 1, # AMP CHANNEL B
|
||||
'CHC': 2, # AMP CHANNEL C
|
||||
'CHD': 3, # AMP CHANNEL D
|
||||
}
|
||||
|
||||
|
||||
print_instruction(NEULIVE_INSTRUCTION['RIS'],NEULIVE_PARAMETER)
|
||||
print_instruction(NEULIVE_INSTRUCTION['UMC'],NEULIVE_PARAMETER)
|
||||
@@ -121,6 +121,75 @@ def append_buffer(buffer: List[int], shift: int, width: int, value: int, little_
|
||||
return (shift + width) % 8
|
||||
|
||||
|
||||
class DeviceInstruction:
|
||||
"""
|
||||
**Instruction Send**
|
||||
|
||||
raw byte data format. ::
|
||||
|
||||
| 0 | 1 | 2 | 3 |
|
||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
|
||||
-----------------------------------------------------------------
|
||||
| RIS | ID | | LEN | ............................. real instruction send
|
||||
| VIS | ID | OPER | LEN | ............................. virtual instruction send
|
||||
| CIS | ID | OPER | LEN | ............................. command instruction send
|
||||
|
||||
ID
|
||||
chip ID
|
||||
|
||||
RIS
|
||||
header for real instruction type. (header=3)
|
||||
|
||||
VIS
|
||||
header for virtual instruction type. (header=C)
|
||||
|
||||
CIS
|
||||
header for command instruction type. (header=7)
|
||||
|
||||
OPER
|
||||
operator/command
|
||||
|
||||
LEN, length
|
||||
command/data length in bytes
|
||||
"""
|
||||
|
||||
TYP_RIS = 0x30
|
||||
"""header for real instruction type.
|
||||
It is real instruction send to the chip which contain the chip configuration parameter.
|
||||
"""
|
||||
|
||||
TYP_VIS = 0xC0
|
||||
"""header for virtual instruction type.
|
||||
It is virtual instruction send to the controller chip to control the chip.
|
||||
"""
|
||||
|
||||
TYP_CIS = 0x70
|
||||
"""header for command instruction type.
|
||||
It is command send to the controller chip for the special purpose.
|
||||
"""
|
||||
|
||||
VIS_RST = 0xF0
|
||||
"""reset virtual instruction"""
|
||||
|
||||
VIS_ASK = 0x30
|
||||
"""ask in virtual instruction"""
|
||||
|
||||
VIS_STI = 0xC0
|
||||
"""stimulation on virtual instruction"""
|
||||
|
||||
VIS_FUH = 0x90
|
||||
"""flush virtual instruction"""
|
||||
|
||||
VIS_INT = 0x60
|
||||
"""interrupt virtual instruction"""
|
||||
|
||||
VIS_CAL = 0xA0
|
||||
"""device calling"""
|
||||
|
||||
CIS_VOLT = 0x10
|
||||
"""get device battery voltage level"""
|
||||
|
||||
|
||||
class InstructionContentWidth:
|
||||
"""instruction width.
|
||||
|
||||
@@ -558,25 +627,48 @@ def parse_instruction(expr: str) -> InstructionContent:
|
||||
return ins_type(width, expr, **ins_argv, comment=comment)
|
||||
|
||||
|
||||
def eval_instruction(expr: str, context: Dict[str, Any], buffer: Optional[List[int]] = None) -> List[int]:
|
||||
ins = parse_instruction(expr)
|
||||
|
||||
def eval_instruction(expr: Union[str, int], context: Dict[str, Any], buffer: Optional[List[int]] = None) -> List[int]:
|
||||
if buffer is None:
|
||||
buffer = []
|
||||
|
||||
ins.build_instruction(context, buffer, 0)
|
||||
if isinstance(expr, str):
|
||||
ins = parse_instruction(expr)
|
||||
|
||||
ins.build_instruction(context, buffer, 0)
|
||||
|
||||
elif isinstance(expr, int):
|
||||
if expr in (DeviceInstruction.VIS_RST,
|
||||
DeviceInstruction.VIS_ASK,
|
||||
DeviceInstruction.VIS_STI,
|
||||
DeviceInstruction.VIS_FUH,
|
||||
DeviceInstruction.VIS_INT,
|
||||
DeviceInstruction.VIS_CAL):
|
||||
buffer.extend([DeviceInstruction.TYP_VIS, expr])
|
||||
|
||||
else:
|
||||
raise RuntimeError('unknown expr code : ' + str(expr))
|
||||
|
||||
else:
|
||||
raise RuntimeError('illegal expr type : ' + str(expr))
|
||||
|
||||
return buffer
|
||||
|
||||
|
||||
def print_instruction(expr: str, context: Dict[str, Any], append_ris_type: bool = True):
|
||||
def print_instruction(expr: Union[str, int],
|
||||
context: Dict[str, Any],
|
||||
append_ris_type: bool = True,
|
||||
c_style_uint8_array: Optional[str] = None):
|
||||
buffer = []
|
||||
|
||||
eval_instruction(expr, context, buffer)
|
||||
|
||||
if append_ris_type:
|
||||
if append_ris_type and isinstance(expr, str):
|
||||
length = len(buffer)
|
||||
buffer.insert(0, 0x30)
|
||||
buffer.insert(1, length)
|
||||
|
||||
print(hex_line(buffer))
|
||||
if c_style_uint8_array is None:
|
||||
print(hex_line(buffer))
|
||||
else:
|
||||
for i, v in enumerate(buffer):
|
||||
print(c_style_uint8_array, '[%d]' % i, ' = ', '0x%02X' % v, ';', sep='')
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
CPU_FREQUENCY = 48e6
|
||||
|
||||
|
||||
def headstage_gptimer_get_frequency_load_value(frequency: float) -> int:
|
||||
load = int(CPU_FREQUENCY / frequency) - 1
|
||||
|
||||
if load < 0xFFFF:
|
||||
return load
|
||||
else:
|
||||
return 0xFA0000 | int(load / 250) - 1
|
||||
|
||||
|
||||
def headstage_gptimer_get_timeout_load_value(timeout_us: int) -> int:
|
||||
load = int(timeout_us * CPU_FREQUENCY / 1e6) - 1
|
||||
|
||||
if load < 0xFFFF:
|
||||
return load
|
||||
else:
|
||||
return 0xFA0000 | int(load / 250) - 1
|
||||
|
||||
|
||||
print('0x%06X' % headstage_gptimer_get_frequency_load_value(0.8))
|
||||
@@ -0,0 +1,115 @@
|
||||
from typing import Dict, Any
|
||||
|
||||
from devlib.util import print_instruction, DeviceInstruction
|
||||
|
||||
CHANNEL_STI_0 = 0
|
||||
CHANNEL_STI_1 = 1
|
||||
|
||||
STI_WAVEFORM_POS = 0x00
|
||||
STI_WAVEFORM_NEG = 0x01
|
||||
STI_WAVEFORM_P2N = 0x02
|
||||
STI_WAVEFORM_N2P = 0x03
|
||||
|
||||
STI_PRECISION_10 = 0
|
||||
STI_PRECISION_01 = 1
|
||||
|
||||
STI_INSTRUCTION = {
|
||||
'GLOBAL': '5b11111;2b0#GV;12bCURRENT',
|
||||
'LOCAL': '5b11111;2b01#LV;3b>CHANNEL;1b>PRECISION;3b>STI_MODE;12b>STI_FREQ;10b>STI_PW;10b>STI_PW_IPI;10b>STI_NUM',
|
||||
'CHANNEL': '5b11111;2b10#CE;ba0;ba1;ba2;ba3;ba4;ba5;ba6;ba7;ba8;ba9;baa;bab;bac;bad;bae;baf'
|
||||
}
|
||||
|
||||
DEFAULT_PARAMETER = {
|
||||
'CURRENT': 10, # uA
|
||||
'CHANNEL': CHANNEL_STI_0,
|
||||
'STI_MODE': STI_WAVEFORM_POS,
|
||||
'PRECISION': STI_PRECISION_10,
|
||||
'STI_FREQ': 1000, # Hz
|
||||
'STI_PW': 100, # us
|
||||
'STI_PW_IPI': 50, # us
|
||||
'STI_NUM': 900,
|
||||
}
|
||||
|
||||
|
||||
def validate_frequency_parameter(parameter: Dict[str, Any]) -> bool:
|
||||
p = int(parameter['PRECISION'])
|
||||
f = int(parameter['STI_FREQ'])
|
||||
w = int(parameter['STI_PW'])
|
||||
i = int(parameter['STI_PW_IPI'])
|
||||
return 1e6 * (1 if p == 0 else 10) / f >= 2 * w + i
|
||||
|
||||
|
||||
def get_channel_enable_parameter(*channel: int):
|
||||
return {
|
||||
'a0': 1 if 0 in channel else 0,
|
||||
'a1': 1 if 1 in channel else 0,
|
||||
'a2': 1 if 2 in channel else 0,
|
||||
'a3': 1 if 3 in channel else 0,
|
||||
'a4': 1 if 4 in channel else 0,
|
||||
'a5': 1 if 5 in channel else 0,
|
||||
'a6': 1 if 6 in channel else 0,
|
||||
'a7': 1 if 7 in channel else 0,
|
||||
'a8': 1 if 8 in channel else 0,
|
||||
'a9': 1 if 9 in channel else 0,
|
||||
'aa': 1 if 10 in channel else 0,
|
||||
'ab': 1 if 11 in channel else 0,
|
||||
'ac': 1 if 12 in channel else 0,
|
||||
'ad': 1 if 13 in channel else 0,
|
||||
'ae': 1 if 14 in channel else 0,
|
||||
'af': 1 if 15 in channel else 0,
|
||||
}
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------------------------- #
|
||||
|
||||
STI_PARAMETER_0 = {
|
||||
'CURRENT': 10, # uA
|
||||
'CHANNEL': CHANNEL_STI_0,
|
||||
'STI_MODE': STI_WAVEFORM_POS,
|
||||
'PRECISION': STI_PRECISION_10,
|
||||
'STI_FREQ': 10, # Hz
|
||||
'STI_PW': 10, # us
|
||||
'STI_PW_IPI': 10, # us
|
||||
'STI_NUM': 900,
|
||||
}
|
||||
|
||||
STI_PARAMETER_1 = {
|
||||
'CURRENT': 10, # uA
|
||||
'CHANNEL': CHANNEL_STI_1,
|
||||
'STI_MODE': STI_WAVEFORM_NEG,
|
||||
'PRECISION': STI_PRECISION_10,
|
||||
'STI_FREQ': 10, # Hz
|
||||
'STI_PW': 10, # us
|
||||
'STI_PW_IPI': 10, # us
|
||||
'STI_NUM': 900,
|
||||
}
|
||||
|
||||
print_instruction(STI_INSTRUCTION['GLOBAL'], STI_PARAMETER_0, append_ris_type=False)
|
||||
|
||||
valid_channel_0 = validate_frequency_parameter(STI_PARAMETER_0)
|
||||
valid_channel_1 = validate_frequency_parameter(STI_PARAMETER_1)
|
||||
enable_channel = []
|
||||
|
||||
if not valid_channel_0:
|
||||
print('invalidate parameter')
|
||||
else:
|
||||
print('----')
|
||||
print_instruction(STI_INSTRUCTION['LOCAL'], STI_PARAMETER_0, append_ris_type=False)
|
||||
enable_channel.append(0)
|
||||
|
||||
if not valid_channel_1:
|
||||
print('invalidate parameter')
|
||||
else:
|
||||
print('----')
|
||||
print_instruction(STI_INSTRUCTION['LOCAL'], STI_PARAMETER_1, append_ris_type=False)
|
||||
enable_channel.append(1)
|
||||
|
||||
if valid_channel_0 or valid_channel_1:
|
||||
print('----')
|
||||
print_instruction(STI_INSTRUCTION['CHANNEL'], get_channel_enable_parameter(*enable_channel), append_ris_type=False)
|
||||
|
||||
print('--sti--')
|
||||
print_instruction(DeviceInstruction.VIS_STI, {})
|
||||
|
||||
print('--int--')
|
||||
print_instruction(DeviceInstruction.VIS_INT, {})
|
||||
@@ -0,0 +1,133 @@
|
||||
from typing import Dict, Any
|
||||
|
||||
from devlib.util import print_instruction, DeviceInstruction
|
||||
|
||||
CHANNEL_STI_0 = 0
|
||||
CHANNEL_STI_1 = 1
|
||||
|
||||
STI_WAVEFORM_POS = 0x00
|
||||
STI_WAVEFORM_NEG = 0x01
|
||||
STI_WAVEFORM_P2N = 0x02
|
||||
STI_WAVEFORM_N2P = 0x03
|
||||
|
||||
STI_PRECISION_10 = 0
|
||||
STI_PRECISION_01 = 1
|
||||
|
||||
STI_NUM_INFINITE = 1000
|
||||
|
||||
STI_INSTRUCTION = {
|
||||
'GLOBAL': '3b001#header#;1b0;12bCURRENT',
|
||||
'LOCAL': '3b010#header;1b0;4b>CHANNEL;3b>STI_MODE;1b>PRECISION;12b>STI_FREQ;10b>STI_PW;10b>STI_PW_IPI;10b>STI_NUM'
|
||||
}
|
||||
|
||||
DEFAULT_PARAMETER = {
|
||||
'CURRENT': 10, # uA
|
||||
'CHANNEL': CHANNEL_STI_0,
|
||||
'STI_MODE': STI_WAVEFORM_POS,
|
||||
'PRECISION': STI_PRECISION_10,
|
||||
'STI_FREQ': 1000, # Hz
|
||||
'STI_PW': 100, # us
|
||||
'STI_PW_IPI': 50, # us
|
||||
'STI_NUM': STI_NUM_INFINITE,
|
||||
}
|
||||
|
||||
|
||||
def validate_frequency_parameter(parameter: Dict[str, Any]) -> bool:
|
||||
p = int(parameter['PRECISION'])
|
||||
f = int(parameter['STI_FREQ'])
|
||||
w = int(parameter['STI_PW'])
|
||||
i = int(parameter['STI_PW_IPI'])
|
||||
return 1e6 * (1 if p == 0 else 10) / f >= 2 * w + i
|
||||
|
||||
|
||||
SPIN_TIMEOUT = [
|
||||
(10, 53),
|
||||
(20, 106),
|
||||
(30, 160),
|
||||
(40, 214),
|
||||
(50, 265),
|
||||
(60, 319),
|
||||
(70, 374),
|
||||
(80, 427),
|
||||
(100, 533),
|
||||
(150, 800),
|
||||
(200, 1066),
|
||||
(300, 1600),
|
||||
(400, 2133),
|
||||
(500, 2666),
|
||||
(1000, 5332),
|
||||
]
|
||||
|
||||
|
||||
def get_spin_timeout_value(timeout_us: int) -> int:
|
||||
if timeout_us == 0:
|
||||
return 0
|
||||
|
||||
elif timeout_us <= SPIN_TIMEOUT[0][0]:
|
||||
return SPIN_TIMEOUT[0][1]
|
||||
|
||||
elif timeout_us >= SPIN_TIMEOUT[-1][0]:
|
||||
return SPIN_TIMEOUT[-1][1]
|
||||
|
||||
else:
|
||||
for i in range(len(SPIN_TIMEOUT)):
|
||||
t0 = SPIN_TIMEOUT[i][0]
|
||||
v0 = SPIN_TIMEOUT[i][1]
|
||||
|
||||
if timeout_us == t0:
|
||||
return v0
|
||||
|
||||
t1 = SPIN_TIMEOUT[i + 1][0]
|
||||
v1 = SPIN_TIMEOUT[i + 1][1]
|
||||
|
||||
if t0 < timeout_us < t1:
|
||||
dt = t1 - t0
|
||||
return int((t1 - timeout_us) * v0 / dt + (timeout_us - t0) * v1 / dt)
|
||||
|
||||
raise RuntimeError()
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------------------------- #
|
||||
|
||||
|
||||
STI_PARAMETER_0 = {
|
||||
'CURRENT': 10, # uA
|
||||
'CHANNEL': CHANNEL_STI_0,
|
||||
'STI_MODE': STI_WAVEFORM_POS,
|
||||
'PRECISION': STI_PRECISION_10,
|
||||
'STI_FREQ': 10, # Hz
|
||||
'STI_PW': 10, # us
|
||||
'STI_PW_IPI': 10, # us
|
||||
'STI_NUM': STI_NUM_INFINITE,
|
||||
}
|
||||
|
||||
STI_PARAMETER_1 = {
|
||||
'CURRENT': 10, # uA
|
||||
'CHANNEL': CHANNEL_STI_1,
|
||||
'STI_MODE': STI_WAVEFORM_NEG,
|
||||
'PRECISION': STI_PRECISION_10,
|
||||
'STI_FREQ': 10, # Hz
|
||||
'STI_PW': 10, # us
|
||||
'STI_PW_IPI': 10, # us
|
||||
'STI_NUM': STI_NUM_INFINITE,
|
||||
}
|
||||
|
||||
print_instruction(STI_INSTRUCTION['GLOBAL'], STI_PARAMETER_0, append_ris_type=False)
|
||||
|
||||
if not validate_frequency_parameter(STI_PARAMETER_0):
|
||||
print('invalidate parameter')
|
||||
else:
|
||||
print('----')
|
||||
print_instruction(STI_INSTRUCTION['LOCAL'], STI_PARAMETER_0, append_ris_type=False)
|
||||
|
||||
if not validate_frequency_parameter(STI_PARAMETER_1):
|
||||
print('invalidate parameter')
|
||||
else:
|
||||
print('----')
|
||||
print_instruction(STI_INSTRUCTION['LOCAL'], STI_PARAMETER_1, append_ris_type=False)
|
||||
|
||||
print('--sti--')
|
||||
print_instruction(DeviceInstruction.VIS_STI, {})
|
||||
|
||||
print('--int--')
|
||||
print_instruction(DeviceInstruction.VIS_INT, {})
|
||||
@@ -1 +0,0 @@
|
||||
*.txt
|
||||
@@ -1,534 +1,7 @@
|
||||
"""
|
||||
purpose:
|
||||
|
||||
in order to analyze the data loss of bluetooth, a small code is needed.
|
||||
Guess that there are three type of data loss. In order to prove this idea,
|
||||
several tests are needed
|
||||
|
||||
types of data loss:
|
||||
|
||||
1. packet loss:
|
||||
bluetooth notification does not need any negotiation.
|
||||
if there is any packet loss during the connection,
|
||||
it will not be lost forever
|
||||
|
||||
2. program delay causes loss in client(headstage):
|
||||
too many effort on data packaging, it would cause
|
||||
data delay
|
||||
|
||||
3. program delay causes loss in host(controller):
|
||||
...todo and need to define
|
||||
|
||||
Assume that we have lost several bytes data. We want to analyze the type of data lost.
|
||||
method:
|
||||
compare ramp data with time stamp, there are several conditions
|
||||
if data_delta * 1 / sampling_rate == time_delta:
|
||||
this should be packet loss
|
||||
else
|
||||
this should be program delay
|
||||
|
||||
method to coped with the corresponding problem:
|
||||
1. try 'Indication' to check data loss is reduced or not.
|
||||
2. modified the procedure of data packaging
|
||||
3. after the upper two problems are excluded, this problem should be left over
|
||||
|
||||
"""
|
||||
import os.path
|
||||
import sys
|
||||
from collections import Counter
|
||||
from typing import List, Optional, Dict, Set, Any
|
||||
|
||||
|
||||
class Options:
|
||||
def __init__(self):
|
||||
self.skip = False
|
||||
self.round = 2
|
||||
self.overflow_pow: Optional[int] = None
|
||||
|
||||
# print options
|
||||
self.quiet = False
|
||||
|
||||
# graph options
|
||||
self.graph: Optional[str] = None
|
||||
self.graph_log_scale = False
|
||||
self.graph_save_path: Optional[str] = None
|
||||
|
||||
# fft graph options
|
||||
self.fft_x_log = False
|
||||
self.fft_y_norm = False
|
||||
self.fft_channel = 0
|
||||
|
||||
@staticmethod
|
||||
def print_help():
|
||||
prg = sys.argv[0]
|
||||
|
||||
print(prg, '[OPTIONS]', 'FILE', '...')
|
||||
print()
|
||||
print('OPTIONS:')
|
||||
print(' -h, --help : print help')
|
||||
print(' --skip : skip if FILE not found')
|
||||
print(' --round VALUE : floating number round')
|
||||
print(' --overflow VALUE : overflow number. 2^VALUE')
|
||||
print()
|
||||
print('OPTIONS (print):')
|
||||
print(' -q : do not print table')
|
||||
print()
|
||||
print('OPTIONS (graph):')
|
||||
print(' --graph TYPE : use matplotlib to generate graph. could be:')
|
||||
print(' ramp : ramp data, calculate value miss')
|
||||
print(' fft : sin wave data, calculate fft')
|
||||
print(' --graph-log-scale :')
|
||||
print(' --graph-save PATH : save graph file path')
|
||||
print()
|
||||
print('OPTIONS (graph=fft):')
|
||||
print(' --fft-channel CH : filter channel')
|
||||
print(' --fft-log : log x-axis')
|
||||
print(' --fft-norm : log x-axis normalize')
|
||||
print(' --fft [opt,...] : above')
|
||||
print()
|
||||
print('ARGUMENTS:')
|
||||
print(' FILE : txt data file')
|
||||
print()
|
||||
|
||||
|
||||
class Result:
|
||||
def __init__(self, data_file: str, options: Options):
|
||||
# data file information
|
||||
self.data_file = data_file
|
||||
self.date_time: Optional[str] = None
|
||||
self.device_name: Optional[str] = None
|
||||
self.device_address: Optional[str] = None
|
||||
self.parameter: Dict[str, str] = {}
|
||||
self.channel: Set[int] = set()
|
||||
self.total_duration: float = 0.0
|
||||
|
||||
# analysis data
|
||||
self.data_count = 0
|
||||
self.time_delta_counter = Counter()
|
||||
self.value_delta_counter = Counter()
|
||||
|
||||
# analysis options
|
||||
self.round = options.round
|
||||
|
||||
self.overflow: Optional[int] = None
|
||||
if options.overflow_pow is not None:
|
||||
self.overflow = 2 ** options.overflow_pow
|
||||
|
||||
# temp data
|
||||
self._prev_time: Optional[float] = None
|
||||
self._prev_value: Optional[int] = None
|
||||
self._close = False
|
||||
|
||||
@property
|
||||
def sample_rate(self) -> int:
|
||||
try:
|
||||
sample_rate = self.parameter['SAMPLE_RATE']
|
||||
except KeyError as e:
|
||||
raise RuntimeError('data file do not contain SAMPLE_RATE') from e
|
||||
|
||||
try:
|
||||
return int(sample_rate)
|
||||
except ValueError as e:
|
||||
raise RuntimeError('data file SAMPLE_RATE value not a value : ' + str(sample_rate)) from e
|
||||
|
||||
def update(self, time: float, channel: int, value: int):
|
||||
if self._close:
|
||||
raise RuntimeError('closed')
|
||||
|
||||
self.data_count += 1
|
||||
|
||||
if self._prev_time is not None:
|
||||
delta = round(time - self._prev_time, self.round)
|
||||
self.time_delta_counter[delta] += 1
|
||||
|
||||
if self._prev_value is not None:
|
||||
delta = value - self._prev_value
|
||||
self.value_delta_counter[delta] += 1
|
||||
|
||||
self._prev_time = time
|
||||
self.channel.add(channel)
|
||||
self._prev_value = value
|
||||
self.total_duration = time
|
||||
|
||||
def close(self):
|
||||
self._close = True
|
||||
|
||||
if self.overflow is not None:
|
||||
|
||||
self.value_delta_counter[1] += self.value_delta_counter[1 - self.overflow]
|
||||
del self.value_delta_counter[1 - self.overflow]
|
||||
i = 2
|
||||
|
||||
while i - self.overflow in self.value_delta_counter:
|
||||
self.value_delta_counter[i] += self.value_delta_counter[i - self.overflow]
|
||||
del self.value_delta_counter[i - self.overflow]
|
||||
i += 1
|
||||
|
||||
|
||||
def calculate(txt_file: str, options: Options) -> Result:
|
||||
if not os.path.exists(txt_file):
|
||||
raise FileNotFoundError(txt_file)
|
||||
|
||||
result = Result(txt_file, options)
|
||||
|
||||
parsing_state = 0
|
||||
|
||||
with open(txt_file) as _file:
|
||||
for line, content in enumerate(_file): # type: int, str
|
||||
content = content.strip()
|
||||
|
||||
if len(content) == 0:
|
||||
continue
|
||||
|
||||
if parsing_state == 0:
|
||||
if content.startswith('#'):
|
||||
if result.date_time is None:
|
||||
result.date_time = content[1:].strip()
|
||||
|
||||
elif content.startswith('# device_name'):
|
||||
result.device_name = content[len('# device_name'):].strip()
|
||||
|
||||
elif content.startswith('# mac_address'):
|
||||
result.device_address = content[len('# mac_address'):].strip()
|
||||
|
||||
elif content.startswith('# parameter'):
|
||||
parsing_state = 1
|
||||
|
||||
elif parsing_state == 1:
|
||||
if content.startswith('#'):
|
||||
if content.startswith('# time_stamp'):
|
||||
parsing_state = 2
|
||||
|
||||
else:
|
||||
part = content[2:].split(' ', maxsplit=2)
|
||||
|
||||
result.parameter[part[0]] = part[1]
|
||||
|
||||
elif parsing_state == 2:
|
||||
if content.startswith('#'):
|
||||
continue
|
||||
|
||||
part = content.split(' ', maxsplit=3)
|
||||
|
||||
try:
|
||||
time = part[0]
|
||||
channel = part[1]
|
||||
value = part[2]
|
||||
except IndexError:
|
||||
print('@%d' % (line + 1), 'incomplete data', ':', content)
|
||||
continue
|
||||
|
||||
check_pass = True
|
||||
|
||||
try:
|
||||
time = float(time)
|
||||
except ValueError:
|
||||
print('@%d' % (line + 1), 'incomplete time', ':', time)
|
||||
check_pass = False
|
||||
|
||||
try:
|
||||
channel = int(channel)
|
||||
except ValueError:
|
||||
print('@%d' % (line + 1), 'incomplete channel', ':', channel)
|
||||
check_pass = False
|
||||
|
||||
try:
|
||||
value = int(value)
|
||||
except ValueError:
|
||||
print('@%d' % (line + 1), 'incomplete value', ':', value)
|
||||
check_pass = False
|
||||
|
||||
if check_pass:
|
||||
result.update(time, channel, value)
|
||||
|
||||
result.close()
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def print_result(result: Result, options: Options):
|
||||
def print_table(counter: Dict[Any, Any], key_format='%10d', value_format='%d'):
|
||||
f = ' %s : %s' % (key_format, value_format)
|
||||
for k in sorted(counter.keys()):
|
||||
print(f % (k, counter[k]))
|
||||
|
||||
if not options.quiet:
|
||||
print(result.data_file)
|
||||
print('data_count', result.data_count)
|
||||
print('channel', ' '.join(list(map(str, sorted(result.channel)))))
|
||||
print()
|
||||
inv_map = {v: k for k, v in result.time_delta_counter.items()}
|
||||
print('data loss rate', 1 - max(inv_map.keys()) * inv_map[max(inv_map.keys())] / result.total_duration)
|
||||
try:
|
||||
sample_rate = result.sample_rate
|
||||
print('sample_rate [1/s]', sample_rate)
|
||||
print('1/sample_rate [ms]', 1000 / sample_rate)
|
||||
except RuntimeError:
|
||||
print('sample_rate', '(E)')
|
||||
|
||||
print('time_delta')
|
||||
print_table(result.time_delta_counter, '%10.2f')
|
||||
print()
|
||||
|
||||
print('value_delta')
|
||||
print_table(result.value_delta_counter)
|
||||
print()
|
||||
|
||||
# packet miss rate
|
||||
|
||||
#
|
||||
if options.graph == 'ramp':
|
||||
delta_value = list(filter(lambda it: it > 0, result.value_delta_counter))
|
||||
total = sum(map(lambda it: it * result.value_delta_counter[it], delta_value))
|
||||
miss = sum(map(lambda it: (it - 1) * result.value_delta_counter[it], delta_value))
|
||||
print('value_miss (ramp)', '%d/%d' % (miss, total), '%.2f%%' % (100 * miss / total))
|
||||
valid_time = list(filter(lambda it: it < 50, result.time_delta_counter))
|
||||
total_valid_t = sum(map(lambda it: it * result.time_delta_counter[it], valid_time))
|
||||
print('time_waste (ramp)', '%d/%d' % (total_valid_t, result.total_duration), '%.2f%%' % ( 100 * total_valid_t / result.total_duration))
|
||||
timesofwaste = list(filter(lambda it: it > 50, result.time_delta_counter))
|
||||
timesintotal = sum(map(lambda it: result.time_delta_counter[it], timesofwaste))
|
||||
print('waste time occur times (ramp)', '%d' % timesintotal)
|
||||
print()
|
||||
|
||||
paint_ramp_result(result, options)
|
||||
|
||||
elif options.graph == 'fft':
|
||||
paint_fft_result(result, options)
|
||||
|
||||
|
||||
def calculate_(result: Result):
|
||||
print(max(result))
|
||||
|
||||
|
||||
def paint_fft_result(result: Result, options: Options):
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
from scipy import signal
|
||||
from scipy.interpolate import interp1d
|
||||
from scipy.fftpack import fft
|
||||
|
||||
time_seq = []
|
||||
value_seq = []
|
||||
time_offset = None
|
||||
total_duration = 0.0
|
||||
|
||||
with open(result.data_file) as _file:
|
||||
for line in _file:
|
||||
line = line.strip()
|
||||
|
||||
if len(line) == 0 or line.startswith('#'):
|
||||
continue
|
||||
|
||||
else:
|
||||
part = line.split(' ', maxsplit=3)
|
||||
channel = int(part[1])
|
||||
|
||||
if channel == options.fft_channel:
|
||||
time = float(part[0])
|
||||
|
||||
if time_offset is None:
|
||||
time_seq.append(0.0)
|
||||
time_offset = time
|
||||
else:
|
||||
total_duration = time - time_offset
|
||||
time_seq.append(time - time_offset)
|
||||
|
||||
value_seq.append(int(part[2]))
|
||||
|
||||
if len(time_seq) == 0:
|
||||
raise RuntimeError('empty channel data : ' + str(options.fft_channel))
|
||||
|
||||
plt.figure(1)
|
||||
f1, pxx_den = signal.periodogram(value_seq, 1e3)
|
||||
plt.semilogy(f1, pxx_den)
|
||||
plt.ylim([1e-7, 1e7])
|
||||
plt.xlabel('frequency [hz]')
|
||||
plt.ylabel('PSD[v**2/Hz')
|
||||
|
||||
plt.figure(2)
|
||||
sample_rate = result.sample_rate
|
||||
time_delta = 1 / sample_rate
|
||||
total_time_step = int(total_duration / (time_delta * 1000))
|
||||
|
||||
f = interp1d(time_seq, value_seq, copy=False)
|
||||
|
||||
t = np.linspace(0, total_duration, total_time_step)
|
||||
|
||||
fft_result = fft(f(t))
|
||||
fft_result = fft_result[:len(fft_result) // 2]
|
||||
fft_x = np.linspace(0, 1.0/(2.0*time_delta), len(fft_result)//2)
|
||||
|
||||
if options.fft_x_log:
|
||||
fft_x = np.log10(fft_x)
|
||||
|
||||
if options.fft_y_norm:
|
||||
fft_result /= sum(fft_result)
|
||||
|
||||
plt.plot(fft_x, 2.0 / len(fft_result) * np.abs(fft_result[0:len(fft_result)//2]))
|
||||
|
||||
|
||||
if options.graph_save_path is not None:
|
||||
plt.savefig(options.graph_save_path, dpi=600)
|
||||
else:
|
||||
plt.show()
|
||||
|
||||
|
||||
def paint_ramp_result(result: Result, options: Options):
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
fig, (at, av) = plt.subplots(2, 1)
|
||||
|
||||
time_delta_data = list(result.time_delta_counter)
|
||||
expect_time_delta = 1000 / result.sample_rate
|
||||
time_delta_bins = int((max(time_delta_data) - min(time_delta_data)) / expect_time_delta)
|
||||
time_delta_weight = [result.time_delta_counter[k] for k in time_delta_data]
|
||||
at.hist(time_delta_data,
|
||||
bins=time_delta_bins,
|
||||
weights=time_delta_weight,
|
||||
log=options.graph_log_scale,
|
||||
align='left')
|
||||
|
||||
value_delta_data = list(result.value_delta_counter)
|
||||
value_delta_bins = max(value_delta_data) - min(value_delta_data)
|
||||
value_delta_weight = [result.value_delta_counter[k] for k in value_delta_data]
|
||||
av.hist(value_delta_data,
|
||||
bins=value_delta_bins,
|
||||
weights=value_delta_weight,
|
||||
log=options.graph_log_scale,
|
||||
align='left')
|
||||
|
||||
fig.tight_layout()
|
||||
|
||||
if options.graph_save_path is not None:
|
||||
plt.savefig(options.graph_save_path, dpi=600)
|
||||
else:
|
||||
plt.show()
|
||||
|
||||
|
||||
|
||||
|
||||
def main(argv: List[str]):
|
||||
"""
|
||||
|
||||
:param argv:
|
||||
:return:
|
||||
"""
|
||||
|
||||
# df = pd.read_csv("C:/Users/yichin/Downloads/last-2019-07-18-16-30-15-7.csv", sep=",", skiprows=12, header=None)
|
||||
# sel_df = pd.DataFrame(df)
|
||||
# column, row = sel_df.shape
|
||||
# sel_df = sel_df.fillna(value=0)
|
||||
# delta_df = sel_df.diff(periods=1)
|
||||
# delta_df = delta_df.fillna(value=0)
|
||||
# delta_df = delta_df.drop(column - 1)
|
||||
# delta_df.set_axis(['time_delta', 'data_delta'], axis='columns', inplace=True)
|
||||
|
||||
o = Options()
|
||||
|
||||
i = 0
|
||||
while i < len(argv):
|
||||
arg = argv[i]
|
||||
|
||||
if arg in ('-h', '--help'):
|
||||
o.print_help()
|
||||
return
|
||||
|
||||
elif arg == '--skip':
|
||||
o.skip = True
|
||||
i += 1
|
||||
|
||||
elif arg == '--round':
|
||||
o.round = int(argv[i + 1])
|
||||
i += 2
|
||||
|
||||
elif arg.startswith('--round='):
|
||||
o.round = int(arg[len('--round='):])
|
||||
i += 1
|
||||
|
||||
elif arg == '--overflow':
|
||||
o.overflow_pow = int(argv[i + 1])
|
||||
i += 2
|
||||
|
||||
elif arg.startswith('--overflow='):
|
||||
o.overflow_pow = int(arg[len('--overflow='):])
|
||||
i += 1
|
||||
|
||||
elif arg == '-q':
|
||||
o.quiet = True
|
||||
i += 1
|
||||
|
||||
elif arg == '--graph':
|
||||
o.graph = argv[i + 1]
|
||||
i += 2
|
||||
|
||||
elif arg.startswith('--graph='):
|
||||
o.graph = arg[len('--graph='):]
|
||||
i += 1
|
||||
|
||||
elif arg == '--graph-log-scale':
|
||||
o.graph_log_scale = True
|
||||
i += 1
|
||||
|
||||
elif arg == '--graph-save':
|
||||
o.graph_save_path = argv[i + 1]
|
||||
i += 2
|
||||
|
||||
elif arg.startswith('--graph-save='):
|
||||
o.graph = arg[len('--graph-save='):]
|
||||
i += 1
|
||||
|
||||
elif arg == '--fft-channel':
|
||||
o.fft_channel = int(argv[i + 1])
|
||||
i += 2
|
||||
|
||||
elif arg.startswith('--fft-channel='):
|
||||
o.fft_channel = int(arg[len('--fft-channel='):])
|
||||
i += 1
|
||||
|
||||
elif arg == '--fft-log':
|
||||
o.fft_x_log = True
|
||||
i += 1
|
||||
|
||||
elif arg == '--fft-norm':
|
||||
o.fft_y_norm = True
|
||||
i += 1
|
||||
|
||||
elif arg.startswith('--fft'):
|
||||
if arg == '--fft':
|
||||
c = argv[i + 1]
|
||||
i += 2
|
||||
elif arg.startswith('--fft='):
|
||||
c = arg[len('--fft='):]
|
||||
i += 1
|
||||
else:
|
||||
raise ValueError('unknown options : ' + arg)
|
||||
|
||||
for a in c.split(','):
|
||||
if a == 'log':
|
||||
o.fft_x_log = True
|
||||
elif a == 'norm':
|
||||
o.fft_y_norm = True
|
||||
elif a.startswith('channel='):
|
||||
o.fft_channel = int(a[len('channel='):])
|
||||
else:
|
||||
raise ValueError('unknown options : --fft-' + a)
|
||||
|
||||
elif arg.startswith('-'):
|
||||
raise ValueError('unknown options : ' + arg)
|
||||
|
||||
else:
|
||||
i += 1
|
||||
try:
|
||||
result = calculate(arg, o)
|
||||
except FileNotFoundError:
|
||||
if o.skip:
|
||||
continue
|
||||
else:
|
||||
raise
|
||||
|
||||
else:
|
||||
print_result(result, o)
|
||||
def main():
|
||||
with open('C:/ti/python_test_code/uni/att_notify.psd', 'r') as file:
|
||||
print(file.read())
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main(sys.argv[1:])
|
||||
main()
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
from devlib.util import print_instruction
|
||||
|
||||
NEULIVE_INSTRUCTION = {
|
||||
'RIS': '3b101#header#;2b0;3b>LB;4b0;1bCH;1bFS;3b>WF;5b>TV;4b>PM;4b>NM;4b>SR',
|
||||
'UMC': '3b001#umc_parameter;3b>AG;4b>PW;6b>TT;2b>SB;6b>TF;1bCA;1bCB;1bCC;1bCD;4b>CHA;4b>CHB;4b>CHC;4b>CHD'
|
||||
}
|
||||
|
||||
NEULIVE_PARAMETER = {
|
||||
'LB': 0,
|
||||
'CH': 0,
|
||||
'FS': 0,
|
||||
'WF': 0,
|
||||
'TV': 0,
|
||||
'PM': 15,
|
||||
'NM': 0,
|
||||
'SR': 0,
|
||||
'AG': 5,
|
||||
'PW': 0,
|
||||
'TT': 0,
|
||||
'SB': 1,
|
||||
'TF': 3,
|
||||
'CA': 1,
|
||||
'CB': 0,
|
||||
'CC': 0,
|
||||
'CD': 0,
|
||||
'CHA': 0,
|
||||
'CHB': 1,
|
||||
'CHC': 2,
|
||||
'CHD': 3,
|
||||
}
|
||||
|
||||
print_instruction(NEULIVE_INSTRUCTION['RIS'], NEULIVE_PARAMETER)
|
||||
print_instruction(NEULIVE_INSTRUCTION['UMC'], NEULIVE_PARAMETER)
|
||||
@@ -1,15 +1,47 @@
|
||||
import unittest
|
||||
from random import randint
|
||||
from typing import List, Optional
|
||||
from typing import List, Optional, Tuple, Iterable
|
||||
|
||||
REC_CHANNEL_COUNT = 16
|
||||
REC_CHANNEL_COUNT = 12
|
||||
|
||||
CHANNEL_INS2MUX = (10, 0, 1, 2, 3, 8, 7, 6, 5, 4, 9, 8)
|
||||
'''index:ins -> value:mux'''
|
||||
|
||||
CHANNEL_MUX2INS = (1, 2, 3, 4, 9, 8, 7, 6, 5, 10, 0, 11)
|
||||
'''index:mux -> value:ins'''
|
||||
|
||||
|
||||
def to_channel_table(*channel: int) -> List[bool]:
|
||||
return [i in channel for i in range(REC_CHANNEL_COUNT)]
|
||||
|
||||
|
||||
def rearrange_channel_mux_table(channel_table: List[bool]) -> Optional[List[int]]:
|
||||
def to_mux_channel(channel: Iterable[int], sort=False) -> List[int]:
|
||||
ret = [CHANNEL_INS2MUX[ch] for ch in channel]
|
||||
|
||||
if sort:
|
||||
ret.sort()
|
||||
|
||||
return ret
|
||||
|
||||
|
||||
def to_ins_channel(channel: Iterable[int], sort=False) -> List[int]:
|
||||
ret = [CHANNEL_MUX2INS[ch] for ch in channel]
|
||||
|
||||
if sort:
|
||||
ret.sort()
|
||||
|
||||
return ret
|
||||
|
||||
|
||||
def to_mux_channel_table(*channel: int) -> List[bool]:
|
||||
return [CHANNEL_MUX2INS[i] in channel for i in range(REC_CHANNEL_COUNT)]
|
||||
|
||||
|
||||
def to_ins_channel_table(*channel: int) -> List[bool]:
|
||||
return [CHANNEL_INS2MUX[i] in channel for i in range(REC_CHANNEL_COUNT)]
|
||||
|
||||
|
||||
def rearrange_channel_mux_table(channel_table: List[bool]) -> Tuple[int, Optional[List[int]]]:
|
||||
enable_channel_number = 0
|
||||
last_enable_channel = 0
|
||||
|
||||
@@ -19,14 +51,14 @@ def rearrange_channel_mux_table(channel_table: List[bool]) -> Optional[List[int]
|
||||
enable_channel_number += 1
|
||||
|
||||
if enable_channel_number == 0:
|
||||
return None
|
||||
return 0, None
|
||||
|
||||
channel_mux = [0 for _ in range(REC_CHANNEL_COUNT)]
|
||||
|
||||
if enable_channel_number == 1:
|
||||
channel_mux[0] = last_enable_channel
|
||||
|
||||
return channel_mux
|
||||
return 1, channel_mux
|
||||
|
||||
next_enable_channel = last_enable_channel
|
||||
channel_mux_index = last_enable_channel
|
||||
@@ -57,131 +89,102 @@ def rearrange_channel_mux_table(channel_table: List[bool]) -> Optional[List[int]
|
||||
channel_mux[channel_mux_index] = channel_mux[channel_mux_index + offset]
|
||||
channel_mux_index -= 1
|
||||
|
||||
return channel_mux
|
||||
return last_enable_channel + 1, channel_mux
|
||||
|
||||
|
||||
def channel_used_count(channel_mux: List[int]):
|
||||
def count_used_channel(channel_mux: List[int]):
|
||||
ret = [0] * REC_CHANNEL_COUNT
|
||||
|
||||
channel_uc = [0] * 16
|
||||
channel_sel = [0] * 16
|
||||
for i in range(15):
|
||||
for j in range(16):
|
||||
if channel_mux[i] == j:
|
||||
if channel_mux[i] != channel_mux[i+1]:
|
||||
channel_uc[j] += 1
|
||||
channel_sel[j] = j
|
||||
for ch in channel_mux:
|
||||
ret[ch] += 1
|
||||
|
||||
return channel_uc, channel_sel
|
||||
return ret
|
||||
|
||||
|
||||
def channel_table_transfer(channel_mux: List[bool]) -> Optional[List[bool]]:
|
||||
channel_look_up_table = [1, 2, 3, 4, 9, 8, 7, 6, 5, 10, 0, 11]
|
||||
true_channel = [False] * 16
|
||||
for i in range(16):
|
||||
if channel_mux[i]:
|
||||
true_channel[channel_look_up_table[i]] = True
|
||||
|
||||
return true_channel
|
||||
def expect_channel_count(*channel: int) -> List[int]:
|
||||
channel_mux = to_mux_channel_table(*channel)
|
||||
used, mux_arrange = rearrange_channel_mux_table(channel_mux)
|
||||
if used == 0:
|
||||
ins_arrange = to_ins_channel([])
|
||||
else:
|
||||
ins_arrange = to_ins_channel(mux_arrange[:used], sort=False)
|
||||
return count_used_channel(ins_arrange)
|
||||
|
||||
|
||||
def channel_table_tran(channel_mux: List[bool]):
|
||||
channel_look_up_table = [2, 3, 4, 5, 10, 9, 8, 7, 6, 11, 1, 12]
|
||||
channel_sel = [0] * 16
|
||||
channel_index = 0
|
||||
for i in range(16):
|
||||
if channel_mux[i]:
|
||||
channel_sel[channel_index] = channel_look_up_table[i]
|
||||
channel_index += 1
|
||||
channel_sel.sort(reverse=True)
|
||||
return channel_sel, channel_index
|
||||
def loop_repeat(col: List[int]) -> Iterable[int]:
|
||||
while True:
|
||||
yield from iter(col)
|
||||
|
||||
|
||||
def channel_use_count(channel_sel: List[int], channel_index: int) -> Optional[List[int]]:
|
||||
repeat_times = int(channel_sel[0] / channel_index)
|
||||
remain_value = int(channel_sel[0] % channel_index)
|
||||
ch_use_cnt = [0] * 16
|
||||
for i in range(channel_index):
|
||||
if i < remain_value:
|
||||
ch_use_cnt[i] = remain_value + repeat_times
|
||||
else:
|
||||
ch_use_cnt[i] = repeat_times
|
||||
return ch_use_cnt
|
||||
def channel_count(*channel: int) -> List[int]:
|
||||
if len(channel) == 0:
|
||||
return [0] * REC_CHANNEL_COUNT
|
||||
|
||||
elif len(channel) == 1:
|
||||
channel = channel[0]
|
||||
return [1 if ch == channel else 0 for ch in range(REC_CHANNEL_COUNT)]
|
||||
|
||||
def count_channel_without_re(channel_mux: List[bool]) -> Optional[List[int]]:
|
||||
channel_sel, channel_index = channel_table_tran(channel_mux)
|
||||
ch_use_cnt = channel_use_count(channel_sel, channel_index)
|
||||
for i in range(channel_index):
|
||||
channel_sel[i] -= 1
|
||||
print(channel_sel)
|
||||
print(ch_use_cnt)
|
||||
return ch_use_cnt
|
||||
else:
|
||||
channel_mux = to_mux_channel(channel, sort=True)
|
||||
ret = [0] * REC_CHANNEL_COUNT
|
||||
i = max(channel_mux) + 1
|
||||
|
||||
for ch in loop_repeat(channel_mux[::-1]):
|
||||
ret[CHANNEL_MUX2INS[ch]] += 1
|
||||
i -= 1
|
||||
if i == 0:
|
||||
break
|
||||
|
||||
def reverse_channel_table(original_ch: List[int]) -> Optional[List[int]]:
|
||||
reverse_look_up_table = [10, 0, 1, 2, 3, 8, 7, 6, 5, 4, 9, 8]
|
||||
reverse_ch = [0] * 16
|
||||
for i in range(16):
|
||||
if original_ch[i] != 0:
|
||||
reverse_ch[reverse_look_up_table[i]] = original_ch[i]
|
||||
return reverse_ch
|
||||
|
||||
|
||||
def count_channel(channel_mux: List[bool]) -> Optional[List[int]]:
|
||||
real_ch = channel_table_transfer(channel_mux)
|
||||
ch_mux = rearrange_channel_mux_table(real_ch)
|
||||
ch_count, ch_sel = channel_used_count(ch_mux)
|
||||
reverse_ch = reverse_channel_table(ch_count)
|
||||
reverse_ch.sort(reverse=True)
|
||||
ch_sel.sort(reverse=True)
|
||||
print(ch_sel)
|
||||
print(reverse_ch)
|
||||
return reverse_ch
|
||||
return ret
|
||||
|
||||
|
||||
class UniRearrangeMuxChannelTest(unittest.TestCase):
|
||||
def test_empty_channel(self):
|
||||
self.assertIsNone(rearrange_channel_mux_table(to_channel_table()))
|
||||
i, a = rearrange_channel_mux_table(to_channel_table())
|
||||
self.assertEqual(0, i)
|
||||
self.assertIsNone(a)
|
||||
|
||||
def test_single_channel(self):
|
||||
for _ in range(3):
|
||||
c = randint(0, REC_CHANNEL_COUNT - 1)
|
||||
|
||||
expect = [c if i == 0 else 0 for i in range(REC_CHANNEL_COUNT)]
|
||||
print(expect)
|
||||
self.assertEqual(expect, rearrange_channel_mux_table(to_channel_table(c)))
|
||||
self.assertTupleEqual((1, expect), rearrange_channel_mux_table(to_channel_table(c)))
|
||||
|
||||
def test_two_channel(self):
|
||||
self.assertEqual([1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
rearrange_channel_mux_table(to_channel_table(7, 1)))
|
||||
self.assertEqual([2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
rearrange_channel_mux_table(to_channel_table(2, 1)))
|
||||
self.assertEqual([3, 7, 2, 3, 7, 2, 3, 7, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
rearrange_channel_mux_table(to_channel_table(7, 3, 2)))
|
||||
self.assertTupleEqual((8, [1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0]),
|
||||
rearrange_channel_mux_table(to_channel_table(7, 1)))
|
||||
self.assertTupleEqual((3, [2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
|
||||
rearrange_channel_mux_table(to_channel_table(2, 1)))
|
||||
self.assertTupleEqual((8, [3, 7, 2, 3, 7, 2, 3, 7, 0, 0, 0, 0]),
|
||||
rearrange_channel_mux_table(to_channel_table(7, 3, 2)))
|
||||
|
||||
def test_many_channel(self):
|
||||
self.assertEqual([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ],
|
||||
rearrange_channel_mux_table(to_channel_table(1, 0)))
|
||||
self.assertTupleEqual((2, [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
|
||||
rearrange_channel_mux_table(to_channel_table(1, 0)))
|
||||
|
||||
self.assertEqual([2, 5, 2, 5, 2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ],
|
||||
rearrange_channel_mux_table(to_channel_table(2, 5)))
|
||||
self.assertTupleEqual((6, [2, 5, 2, 5, 2, 5, 0, 0, 0, 0, 0, 0]),
|
||||
rearrange_channel_mux_table(to_channel_table(2, 5)))
|
||||
|
||||
self.assertEqual([1, 3, 5, 1, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ],
|
||||
rearrange_channel_mux_table(to_channel_table(1, 3, 5)))
|
||||
self.assertTupleEqual((6, [1, 3, 5, 1, 3, 5, 0, 0, 0, 0, 0, 0]),
|
||||
rearrange_channel_mux_table(to_channel_table(1, 3, 5)))
|
||||
|
||||
self.assertEqual([4, 5, 1, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ],
|
||||
rearrange_channel_mux_table(to_channel_table(4, 1, 3, 5)))
|
||||
self.assertTupleEqual((6, [4, 5, 1, 3, 4, 5, 0, 0, 0, 0, 0, 0]),
|
||||
rearrange_channel_mux_table(to_channel_table(4, 1, 3, 5)))
|
||||
|
||||
self.assertEqual([5, 1, 2, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ],
|
||||
rearrange_channel_mux_table(to_channel_table(4, 1, 2, 3, 5)))
|
||||
|
||||
self.assertEqual([6, 7, 8, 3, 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, 0, 0, ],
|
||||
rearrange_channel_mux_table(to_channel_table(3, 4, 5, 6, 7, 8)))
|
||||
self.assertTupleEqual((6, [5, 1, 2, 3, 4, 5, 0, 0, 0, 0, 0, 0]),
|
||||
rearrange_channel_mux_table(to_channel_table(4, 1, 2, 3, 5)))
|
||||
|
||||
self.assertTupleEqual((9, [6, 7, 8, 3, 4, 5, 6, 7, 8, 0, 0, 0]),
|
||||
rearrange_channel_mux_table(to_channel_table(3, 4, 5, 6, 7, 8)))
|
||||
|
||||
def test_count_channel(self):
|
||||
self.assertEqual(count_channel(to_channel_table(7, 3, 2)), count_channel_without_re(to_channel_table(7, 3, 2)))
|
||||
self.assertEqual(count_channel(to_channel_table(0, 10, 2)), count_channel_without_re(to_channel_table(0, 10, 2)))
|
||||
self.assertEqual(expect_channel_count(), channel_count())
|
||||
self.assertEqual(expect_channel_count(0), channel_count(0))
|
||||
self.assertEqual(expect_channel_count(4), channel_count(4))
|
||||
self.assertEqual(expect_channel_count(2, 4), channel_count(4, 2))
|
||||
self.assertEqual(expect_channel_count(7, 3, 2), channel_count(7, 3, 2))
|
||||
self.assertEqual(expect_channel_count(0, 1, 2), channel_count(0, 1, 2))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
eclipse.preferences.version=1
|
||||
inEditor=false
|
||||
onBuild=false
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.cdt.debug.core.toggleBreakpointModel=com.ti.ccstudio.debug.CCSBreakpointMarker
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<configurations XML_version="1.2" id="configurations_0">
|
||||
<configuration XML_version="1.2" id="configuration_0">
|
||||
<instance XML_version="1.2" desc="Texas Instruments XDS100v3 USB Debug Probe" href="connections/TIXDS100v3_Dot7_Connection.xml" id="Texas Instruments XDS100v3 USB Debug Probe" xml="TIXDS100v3_Dot7_Connection.xml" xmlpath="connections"/>
|
||||
<connection XML_version="1.2" id="Texas Instruments XDS100v3 USB Debug Probe">
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2icepick_c.xml" id="drivers" xml="tixds100v2icepick_c.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2cs_dap.xml" id="drivers" xml="tixds100v2cs_dap.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2cortexM.xml" id="drivers" xml="tixds100v2cortexM.xml" xmlpath="drivers"/>
|
||||
<property Type="choicelist" Value="2" id="The Converter Usage">
|
||||
<choice Name="Generate 1149.7 2-pin advanced modes" value="enable">
|
||||
<property Type="choicelist" Value="1" id="The Converter 1149.7 Frequency">
|
||||
<choice Name="Overclock with user specified value" value="unused">
|
||||
<property Type="choicelist" Value="5" id="-- Choose a value from 1.0MHz to 50.0MHz"/>
|
||||
</choice>
|
||||
</property>
|
||||
<property Type="choicelist" Value="5" id="The Target Scan Format"/>
|
||||
</choice>
|
||||
</property>
|
||||
<platform XML_version="1.2" id="platform_0">
|
||||
<instance XML_version="1.2" desc="CC2640F128" href="devices/cc2640f128.xml" id="CC2640F128" xml="cc2640f128.xml" xmlpath="devices"/>
|
||||
</platform>
|
||||
</connection>
|
||||
</configuration>
|
||||
</configurations>
|
||||
-9
@@ -1,9 +0,0 @@
|
||||
The 'targetConfigs' folder contains target-configuration (.ccxml) files, automatically generated based
|
||||
on the device and connection settings specified in your project on the Properties > General page.
|
||||
|
||||
Please note that in automatic target-configuration management, changes to the project's device and/or
|
||||
connection settings will either modify an existing or generate a new target-configuration file. Thus,
|
||||
if you manually edit these auto-generated files, you may need to re-apply your changes. Alternatively,
|
||||
you may create your own target-configuration file for this project and manage it manually. You can
|
||||
always switch back to automatic target-configuration management by checking the "Manage the project's
|
||||
target-configuration automatically" checkbox on the project's Properties > General page.
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
eclipse.preferences.version=1
|
||||
inEditor=false
|
||||
onBuild=false
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.cdt.debug.core.toggleBreakpointModel=com.ti.ccstudio.debug.CCSBreakpointMarker
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<configurations XML_version="1.2" id="configurations_0">
|
||||
<configuration XML_version="1.2" id="configuration_0">
|
||||
<instance XML_version="1.2" desc="Texas Instruments XDS100v3 USB Debug Probe" href="connections/TIXDS100v3_Dot7_Connection.xml" id="Texas Instruments XDS100v3 USB Debug Probe" xml="TIXDS100v3_Dot7_Connection.xml" xmlpath="connections"/>
|
||||
<connection XML_version="1.2" id="Texas Instruments XDS100v3 USB Debug Probe">
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2icepick_c.xml" id="drivers" xml="tixds100v2icepick_c.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2cs_dap.xml" id="drivers" xml="tixds100v2cs_dap.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2cortexM.xml" id="drivers" xml="tixds100v2cortexM.xml" xmlpath="drivers"/>
|
||||
<property Type="choicelist" Value="2" id="The Converter Usage">
|
||||
<choice Name="Generate 1149.7 2-pin advanced modes" value="enable">
|
||||
<property Type="choicelist" Value="1" id="The Converter 1149.7 Frequency">
|
||||
<choice Name="Overclock with user specified value" value="unused">
|
||||
<property Type="choicelist" Value="5" id="-- Choose a value from 1.0MHz to 50.0MHz"/>
|
||||
</choice>
|
||||
</property>
|
||||
<property Type="choicelist" Value="5" id="The Target Scan Format"/>
|
||||
</choice>
|
||||
</property>
|
||||
<platform XML_version="1.2" id="platform_0">
|
||||
<instance XML_version="1.2" desc="CC2640F128" href="devices/cc2640f128.xml" id="CC2640F128" xml="cc2640f128.xml" xmlpath="devices"/>
|
||||
</platform>
|
||||
</connection>
|
||||
</configuration>
|
||||
</configurations>
|
||||
-9
@@ -1,9 +0,0 @@
|
||||
The 'targetConfigs' folder contains target-configuration (.ccxml) files, automatically generated based
|
||||
on the device and connection settings specified in your project on the Properties > General page.
|
||||
|
||||
Please note that in automatic target-configuration management, changes to the project's device and/or
|
||||
connection settings will either modify an existing or generate a new target-configuration file. Thus,
|
||||
if you manually edit these auto-generated files, you may need to re-apply your changes. Alternatively,
|
||||
you may create your own target-configuration file for this project and manage it manually. You can
|
||||
always switch back to automatic target-configuration management by checking the "Manage the project's
|
||||
target-configuration automatically" checkbox on the project's Properties > General page.
|
||||
+164
-322
@@ -1,325 +1,167 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?fileVersion 4.0.0?>
|
||||
<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule configRelations="2" moduleId="org.eclipse.cdt.core.settings">
|
||||
<cconfiguration id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1291753115">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider"
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1291753115"
|
||||
moduleId="org.eclipse.cdt.core.settings" name="FlashROM">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="com.ti.ccstudio.errorparser.CoffErrorParser"
|
||||
point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.ti.ccstudio.errorparser.LinkErrorParser"
|
||||
point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.ti.ccstudio.errorparser.AsmErrorParser"
|
||||
point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.ti.rtsc.XDCtools.parsers.ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.rtsc.xdctools.parsers.ErrorParser"
|
||||
point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties=""
|
||||
cleanCommand="${CG_CLEAN_CMD}" description=""
|
||||
errorParsers="org.eclipse.rtsc.xdctools.parsers.ErrorParser;com.ti.rtsc.XDCtools.parsers.ErrorParser;com.ti.ccstudio.errorparser.CoffErrorParser;com.ti.ccstudio.errorparser.LinkErrorParser;com.ti.ccstudio.errorparser.AsmErrorParser;org.eclipse.cdt.core.GmakeErrorParser"
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1291753115" name="FlashROM"
|
||||
parent="com.ti.ccstudio.buildDefinitions.TMS470.Default"
|
||||
postbuildStep="${CG_TOOL_HEX} -order MS --memwidth=8 --romwidth=8 --intel -o ${ProjName}.hex ${ProjName}.out"
|
||||
prebuildStep="">
|
||||
<folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1291753115." name="/"
|
||||
resourcePath="">
|
||||
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain.1547228068"
|
||||
name="TI Build Tools"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain"
|
||||
targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.823790760">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1311981229"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=Cortex M.CC2650F128"/>
|
||||
<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
|
||||
<listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>
|
||||
<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE=cc26x0f128.cmd"/>
|
||||
<listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
|
||||
<listOptionValue builtIn="false" value="XDC_VERSION=3.32.0.06_core"/>
|
||||
<listOptionValue builtIn="false" value="INACTIVE_REPOS="/>
|
||||
<listOptionValue builtIn="false" value="EXPANDED_REPOS="/>
|
||||
<listOptionValue builtIn="false"
|
||||
value="RTSC_PRODUCTS=com.ti.rtsc.TIRTOSCC13XX_CC26XX:2.21.01.08;"/>
|
||||
<listOptionValue builtIn="false" value="OUTPUT_TYPE=rtscApplication:executable"/>
|
||||
<listOptionValue builtIn="false" value="CCS_MBS_VERSION=5.5.0"/>
|
||||
<listOptionValue builtIn="false"
|
||||
value="LINK_ORDER=TOOLS/ccs_linker_defines.cmd;TOOLS/cc26xx_app.cmd;"/>
|
||||
<listOptionValue builtIn="false" value="RTSC_MBS_VERSION=2.2.0"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.1278535507"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION"
|
||||
value="18.1.3.LTS" valueType="string"/>
|
||||
<targetPlatform
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug.1286316488"
|
||||
name="Platform"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug"/>
|
||||
<builder buildPath="${BuildDirectory}"
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.builderDebug.446247774"
|
||||
name="GNU Make.FlashROM" parallelBuildOn="true" parallelizationNumber="optimal"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.builderDebug"/>
|
||||
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.compilerDebug.1912820484"
|
||||
name="ARM Compiler"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.compilerDebug">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.SILICON_VERSION.147395442"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.SILICON_VERSION"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.SILICON_VERSION.7M3"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CODE_STATE.1631152097"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CODE_STATE"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CODE_STATE.16"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.ABI.1810396348"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.ABI"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.ABI.eabi"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.LITTLE_ENDIAN.1849265676"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.LITTLE_ENDIAN"
|
||||
value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_LEVEL.1940421475"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_LEVEL"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_LEVEL.4"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_FOR_SPEED.1367001075"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_FOR_SPEED"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_FOR_SPEED.0"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.INCLUDE_PATH.286581495"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.INCLUDE_PATH"
|
||||
valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
|
||||
<listOptionValue builtIn="false"
|
||||
value="${SRC_EX}/examples/simple_central/cc26xx/app"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/icall/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/profiles/roles/cc26xx"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/profiles/roles"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/profiles/simple_profile"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/common/cc26xx"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/heapmgr"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_BLE_CORE}/controller/cc26xx/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/hal/src/target/_common"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/target"/>
|
||||
<listOptionValue builtIn="false"
|
||||
value="${SRC_COMMON}/hal/src/target/_common/cc26xx"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/hal/src/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/osal/src/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/services/src/sdata"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/services/src/saddr"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/icall/src/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_BLE_CORE}/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_BLE_CORE}/rom"/>
|
||||
<listOptionValue builtIn="false" value="${CC26XXWARE}"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.25198801"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.C99"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE.1378439661"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE"
|
||||
valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="BOARD_DISPLAY_EXCLUDE_UART"/>
|
||||
<listOptionValue builtIn="false" value="CC2650DK_7ID"/>
|
||||
<listOptionValue builtIn="false" value="CC26XX"/>
|
||||
<listOptionValue builtIn="false" value="GAPCENTRALROLE_NUM_RSSI_LINKS=1"/>
|
||||
<listOptionValue builtIn="false" value="HEAPMGR_SIZE=0"/>
|
||||
<listOptionValue builtIn="false" value="ICALL_MAX_NUM_ENTITIES=6"/>
|
||||
<listOptionValue builtIn="false" value="ICALL_MAX_NUM_TASKS=3"/>
|
||||
<listOptionValue builtIn="false" value="POWER_SAVING"/>
|
||||
<listOptionValue builtIn="false" value="USE_ICALL"/>
|
||||
<listOptionValue builtIn="false" value="xBOARD_DISPLAY_EXCLUDE_LCD"/>
|
||||
<listOptionValue builtIn="false" value="xDisplay_DISABLE_ALL"/>
|
||||
<listOptionValue builtIn="false" value="xdc_runtime_Assert_DISABLE_ALL"/>
|
||||
<listOptionValue builtIn="false" value="xdc_runtime_Log_DISABLE_ALL"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING.233710223"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING"
|
||||
valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="225"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS.20229844"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS"
|
||||
valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="48"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WRAP.515276425"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WRAP"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WRAP.off"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DISPLAY_ERROR_NUMBER.472353918"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DISPLAY_ERROR_NUMBER"
|
||||
value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS.603203403"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS.on"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CMD_FILE.1076262962"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CMD_FILE"
|
||||
valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/config/build_components.opt"/>
|
||||
<listOptionValue builtIn="false" value="${ORG_PROJ_DIR}/build_config.opt"/>
|
||||
<listOptionValue builtIn="false"
|
||||
value="${ORG_PROJ_DIR}/../../ccs/config/ccs_compiler_defines.bcfg"/>
|
||||
</option>
|
||||
<inputType
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__C_SRCS.20122028"
|
||||
name="C Sources"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__C_SRCS"/>
|
||||
<inputType
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__CPP_SRCS.1937961346"
|
||||
name="C++ Sources"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__CPP_SRCS"/>
|
||||
<inputType
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM_SRCS.1529081332"
|
||||
name="Assembly Sources"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM_SRCS"/>
|
||||
<inputType
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM2_SRCS.1787052493"
|
||||
name="Assembly Sources"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM2_SRCS"/>
|
||||
</tool>
|
||||
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.823790760"
|
||||
name="ARM Linker"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.STACK_SIZE.654839495"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.STACK_SIZE"
|
||||
value="256" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.HEAP_SIZE.1634394199"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.HEAP_SIZE"
|
||||
value="0" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE.81069661"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE"
|
||||
value=""${ProjName}.map"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE.460762728"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE"
|
||||
value="${ProjName}.out" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.LIBRARY.1440650831"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.LIBRARY"
|
||||
valueType="libs">
|
||||
<listOptionValue builtIn="false" value="libc.a"/>
|
||||
<listOptionValue builtIn="false"
|
||||
value="${CC26XXWARE}/driverlib/bin/ccs/driverlib.lib"/>
|
||||
<listOptionValue builtIn="false"
|
||||
value="${ROM}/common_rom_releases/03282014/common_rom.symbols"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH.1917305202"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH"
|
||||
valueType="libPaths">
|
||||
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/lib"/>
|
||||
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.87877887"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.off"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DISPLAY_ERROR_NUMBER.607092195"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DISPLAY_ERROR_NUMBER"
|
||||
value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS.898739186"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS"
|
||||
valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="10247-D"/>
|
||||
<listOptionValue builtIn="false" value="16002-D"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO.456484788"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO"
|
||||
value=""${ProjName}_linkInfo.xml"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION.1278856259"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION.on"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.1963895384"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.on"
|
||||
valueType="enumerated"/>
|
||||
<inputType
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD_SRCS.219058338"
|
||||
name="Linker Command Files"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD_SRCS"/>
|
||||
<inputType
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD2_SRCS.992399023"
|
||||
name="Linker Command Files"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD2_SRCS"/>
|
||||
<inputType
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__GEN_CMDS.1599766614"
|
||||
name="Generated Linker Command Files"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__GEN_CMDS"/>
|
||||
</tool>
|
||||
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.2046318121"
|
||||
name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH.966050821"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH" value="8"
|
||||
valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.MEMWIDTH.1884095023"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.MEMWIDTH" value="8"
|
||||
valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT.1998683028"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT.INTEL"
|
||||
valueType="enumerated"/>
|
||||
</tool>
|
||||
<tool id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.405695666" name="XDCtools"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH.605667670"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH"
|
||||
valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="${COM_TI_RTSC_TIRTOSCC13XX_CC26XX_REPOS}"/>
|
||||
<listOptionValue builtIn="false" value="${TARGET_CONTENT_BASE}"/>
|
||||
</option>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET.133637234"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET"
|
||||
value="ti.targets.arm.elf.M3" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM.2039910934"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM"
|
||||
value="ti.platforms.simplelink:CC2650F128" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW.1480791815"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW"
|
||||
value="ti.platforms.simplelink:CC2650F128" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE.214895402"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE"
|
||||
value="release" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR.1983684756"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR"
|
||||
value="${CG_TOOL_ROOT}" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS.224609618"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS"
|
||||
value=""${COMPILER_FLAGS}"" valueType="string"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id="SimpleBLECentral.com.ti.ccstudio.buildDefinitions.TMS470.ProjectType.293217533" name="ARM"
|
||||
projectType="com.ti.ccstudio.buildDefinitions.TMS470.ProjectType"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="scannerConfiguration"/>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.language.mapping">
|
||||
<project-mappings>
|
||||
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.asmSource"
|
||||
language="com.ti.ccstudio.core.TIASMLanguage"/>
|
||||
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cHeader"
|
||||
language="com.ti.ccstudio.core.TIGCCLanguage"/>
|
||||
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cSource"
|
||||
language="com.ti.ccstudio.core.TIGCCLanguage"/>
|
||||
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxHeader"
|
||||
language="com.ti.ccstudio.core.TIGPPLanguage"/>
|
||||
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxSource"
|
||||
language="com.ti.ccstudio.core.TIGPPLanguage"/>
|
||||
</project-mappings>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
|
||||
<storageModule configRelations="2" moduleId="org.eclipse.cdt.core.settings">
|
||||
<cconfiguration id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1291753115">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1291753115" moduleId="org.eclipse.cdt.core.settings" name="FlashROM">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.ti.rtsc.XDCtools.parsers.ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.rtsc.xdctools.parsers.ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" errorParsers="org.eclipse.rtsc.xdctools.parsers.ErrorParser;com.ti.rtsc.XDCtools.parsers.ErrorParser;com.ti.ccstudio.errorparser.CoffErrorParser;com.ti.ccstudio.errorparser.LinkErrorParser;com.ti.ccstudio.errorparser.AsmErrorParser" id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1291753115" name="FlashROM" parent="com.ti.ccstudio.buildDefinitions.TMS470.Default" postbuildStep="${CG_TOOL_HEX} -order MS --memwidth=8 --romwidth=8 --intel -o ${ProjName}.hex ${ProjName}.out" prebuildStep="">
|
||||
<folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1291753115." name="/" resourcePath="">
|
||||
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.exe.DebugToolchain.1418073980" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_5.2.exe.linkerDebug.1380025885">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1582688306" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=Cortex M.CC2640F128"/>
|
||||
<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
|
||||
<listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>
|
||||
<listOptionValue builtIn="false" value="CCS_MBS_VERSION=5.5.0"/>
|
||||
<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE="/>
|
||||
<listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY="libc.a""/>
|
||||
<listOptionValue builtIn="false" value="RTSC_MBS_VERSION=2.2.0"/>
|
||||
<listOptionValue builtIn="false" value="XDC_VERSION=3.32.0.06_core"/>
|
||||
<listOptionValue builtIn="false" value="RTSC_PRODUCTS=com.ti.rtsc.TIRTOSCC13XX_CC26XX:2.21.01.08;"/>
|
||||
<listOptionValue builtIn="false" value="INACTIVE_REPOS="/>
|
||||
<listOptionValue builtIn="false" value="EXPANDED_REPOS="/>
|
||||
<listOptionValue builtIn="false" value="LINK_ORDER=TOOLS/ccs_linker_defines.cmd;TOOLS/cc26xx_app.cmd;"/>
|
||||
<listOptionValue builtIn="false" value="OUTPUT_TYPE=rtscApplication:executable"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.739662419" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="16.9.4.LTS" valueType="string"/>
|
||||
<targetPlatform id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.exe.targetPlatformDebug.634338313" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.exe.targetPlatformDebug"/>
|
||||
<builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.exe.builderDebug.1783170872" name="GNU Make.FlashROM" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.exe.builderDebug"/>
|
||||
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.exe.compilerDebug.853360855" name="ARM Compiler" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.exe.compilerDebug">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.SILICON_VERSION.205081197" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.SILICON_VERSION" value="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.SILICON_VERSION.7M3" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.CODE_STATE.1562370453" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.CODE_STATE" value="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.CODE_STATE.16" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.ABI.54100387" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.ABI.eabi" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.LITTLE_ENDIAN.776513622" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.LITTLE_ENDIAN" value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.OPT_LEVEL.1445673478" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.OPT_LEVEL" value="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.OPT_LEVEL.4" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.OPT_FOR_SPEED.484926802" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.OPT_FOR_SPEED" value="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.OPT_FOR_SPEED.0" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.INCLUDE_PATH.1112813014" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.INCLUDE_PATH" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/examples/simple_central/cc26xx/app"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/icall/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/profiles/roles/cc26xx"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/profiles/roles"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/profiles/simple_profile"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/common/cc26xx"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/heapmgr"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_BLE_CORE}/controller/cc26xx/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/hal/src/target/_common"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/target"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/hal/src/target/_common/cc26xx"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/hal/src/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/osal/src/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/services/src/sdata"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/services/src/saddr"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/icall/src/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_BLE_CORE}/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_BLE_CORE}/rom"/>
|
||||
<listOptionValue builtIn="false" value="${CC26XXWARE}"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.C_DIALECT.863938432" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.C_DIALECT" value="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.C_DIALECT.C99" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.DEFINE.1446784470" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.DEFINE" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="BOARD_DISPLAY_EXCLUDE_UART"/>
|
||||
<listOptionValue builtIn="false" value="CC2650DK_7ID"/>
|
||||
<listOptionValue builtIn="false" value="CC26XX"/>
|
||||
<listOptionValue builtIn="false" value="GAPCENTRALROLE_NUM_RSSI_LINKS=1"/>
|
||||
<listOptionValue builtIn="false" value="HEAPMGR_SIZE=0"/>
|
||||
<listOptionValue builtIn="false" value="ICALL_MAX_NUM_ENTITIES=6"/>
|
||||
<listOptionValue builtIn="false" value="ICALL_MAX_NUM_TASKS=3"/>
|
||||
<listOptionValue builtIn="false" value="POWER_SAVING"/>
|
||||
<listOptionValue builtIn="false" value="USE_ICALL"/>
|
||||
<listOptionValue builtIn="false" value="xBOARD_DISPLAY_EXCLUDE_LCD"/>
|
||||
<listOptionValue builtIn="false" value="xDisplay_DISABLE_ALL"/>
|
||||
<listOptionValue builtIn="false" value="xdc_runtime_Assert_DISABLE_ALL"/>
|
||||
<listOptionValue builtIn="false" value="xdc_runtime_Log_DISABLE_ALL"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.DIAG_WARNING.1982088211" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.DIAG_WARNING" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="225"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.DISPLAY_ERROR_NUMBER.1446305355" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.DIAG_SUPPRESS.1394384102" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.DIAG_SUPPRESS" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="48"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.DIAG_WRAP.850367854" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.GEN_FUNC_SUBSECTIONS.1893776167" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.GEN_FUNC_SUBSECTIONS" value="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.GEN_FUNC_SUBSECTIONS.on" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.CMD_FILE.2006401530" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.CMD_FILE" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/config/build_components.opt"/>
|
||||
<listOptionValue builtIn="false" value="${ORG_PROJ_DIR}/build_config.opt"/>
|
||||
<listOptionValue builtIn="false" value="${ORG_PROJ_DIR}/../../ccs/config/ccs_compiler_defines.bcfg"/>
|
||||
</option>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compiler.inputType__C_SRCS.339372296" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compiler.inputType__C_SRCS"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compiler.inputType__CPP_SRCS.1684283158" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compiler.inputType__CPP_SRCS"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compiler.inputType__ASM_SRCS.876227203" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compiler.inputType__ASM_SRCS"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compiler.inputType__ASM2_SRCS.1353139879" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compiler.inputType__ASM2_SRCS"/>
|
||||
</tool>
|
||||
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.exe.linkerDebug.1380025885" name="ARM Linker" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.exe.linkerDebug">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.STACK_SIZE.266547265" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.STACK_SIZE" value="256" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.HEAP_SIZE.1467179876" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.HEAP_SIZE" value="0" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.MAP_FILE.1547400525" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.MAP_FILE" value=""${ProjName}.map"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.OUTPUT_FILE.2000240221" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.OUTPUT_FILE" value=""${ProjName}.out"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.LIBRARY.1982802675" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.LIBRARY" valueType="libs">
|
||||
<listOptionValue builtIn="false" value=""libc.a""/>
|
||||
<listOptionValue builtIn="false" value="${CC26XXWARE}/driverlib/bin/ccs/driverlib.lib"/>
|
||||
<listOptionValue builtIn="false" value="${ROM}/common_rom_releases/03282014/common_rom.symbols"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.SEARCH_PATH.1904712364" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.SEARCH_PATH" valueType="libPaths">
|
||||
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/lib"/>
|
||||
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.DIAG_WRAP.2092354689" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.DIAG_WRAP.off" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.DIAG_SUPPRESS.747202646" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.DIAG_SUPPRESS" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="10247-D"/>
|
||||
<listOptionValue builtIn="false" value="16002-D"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.DISPLAY_ERROR_NUMBER.1660885810" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.XML_LINK_INFO.1420411176" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.XML_LINK_INFO" value=""${ProjName}_linkInfo.xml"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.UNUSED_SECTION_ELIMINATION.1346463382" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.UNUSED_SECTION_ELIMINATION" value="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.UNUSED_SECTION_ELIMINATION.on" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.COMPRESS_DWARF.770157989" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.COMPRESS_DWARF" value="com.ti.ccstudio.buildDefinitions.TMS470_5.2.linkerID.COMPRESS_DWARF.on" valueType="enumerated"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.exeLinker.inputType__CMD_SRCS.421661570" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.exeLinker.inputType__CMD_SRCS"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.exeLinker.inputType__CMD2_SRCS.1231976535" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.exeLinker.inputType__CMD2_SRCS"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.exeLinker.inputType__GEN_CMDS.604048880" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.exeLinker.inputType__GEN_CMDS"/>
|
||||
</tool>
|
||||
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.hex.2015157039" name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.hex"/>
|
||||
<tool id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.1717747287" name="XDCtools" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH.1962556839" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="${COM_TI_RTSC_TIRTOSCC13XX_CC26XX_REPOS}"/>
|
||||
<listOptionValue builtIn="false" value="${TARGET_CONTENT_BASE}"/>
|
||||
</option>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET.807920375" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET" value="ti.targets.arm.elf.M3" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM.1248595667" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM" value="ti.platforms.simplelink:CC2650F128" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW.444999592" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW" value="ti.platforms.simplelink:CC2650F128" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE.1186365171" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE" value="release" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR.430694521" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR" value=""${CG_TOOL_ROOT}"" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS.136330490" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS" value=""${COMPILER_FLAGS}"" valueType="string"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry excluding="cc26x0f128.cmd" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id="SimpleBLECentral.com.ti.ccstudio.buildDefinitions.TMS470.ProjectType.293217533" name="ARM" projectType="com.ti.ccstudio.buildDefinitions.TMS470.ProjectType"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="scannerConfiguration"/>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.language.mapping">
|
||||
<project-mappings>
|
||||
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.asmSource" language="com.ti.ccstudio.core.TIASMLanguage"/>
|
||||
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cHeader" language="com.ti.ccstudio.core.TIGCCLanguage"/>
|
||||
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cSource" language="com.ti.ccstudio.core.TIGCCLanguage"/>
|
||||
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxHeader" language="com.ti.ccstudio.core.TIGPPLanguage"/>
|
||||
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxSource" language="com.ti.ccstudio.core.TIGPPLanguage"/>
|
||||
</project-mappings>
|
||||
</storageModule>
|
||||
</cproject>
|
||||
|
||||
@@ -1,419 +1,419 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<projectDescription>
|
||||
<name>simple_central_cc2650em_app</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.rtsc.xdctools.buildDefinitions.XDC.xdcNature</nature>
|
||||
<nature>com.ti.ccstudio.core.ccsNature</nature>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.core.ccnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
</natures>
|
||||
<linkedResources>
|
||||
<link>
|
||||
<name>Application</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICall</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICallBLE</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Include</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>PROFILES</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Startup</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>TOOLS</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Application/board_key.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/common/cc26xx/board_key.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Application/board_key.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/common/cc26xx/board_key.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Application/simple_central.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/examples/simple_central/cc26xx/app/simple_central.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Application/simple_central.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/examples/simple_central/cc26xx/app/simple_central.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Application/util.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/common/cc26xx/util.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Application/util.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/common/cc26xx/util.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/Display</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/ECC</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/PIN</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/RF</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/SPI</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/TRNG</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/UART</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/UDMA</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICall/heapmgr.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_COMMON/heapmgr/heapmgr.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICall/icall.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_COMMON/icall/src/icall.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICall/icall.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_COMMON/icall/src/inc/icall.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICall/icall_addrs.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/icall/inc/icall_addrs.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICall/icall_cc2650.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_COMMON/icall/src/icall_cc2650.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICall/icall_platform.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_COMMON/icall/src/icall_platform.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICallBLE/ble_user_config.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/icall/app/ble_user_config.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICallBLE/ble_user_config.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/icall/inc/ble_user_config.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICallBLE/icall_api.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/icall/app/icall_api.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICallBLE/icall_apimsg.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/icall/inc/icall_apimsg.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Include/gap.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_BLE_CORE/inc/gap.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Include/gapbondmgr.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/profiles/roles/gapbondmgr.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Include/gapgattserver.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/inc/gapgattserver.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Include/gatt.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_BLE_CORE/inc/gatt.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Include/hci.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_BLE_CORE/inc/hci.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Include/osal_snv.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_COMMON/osal/src/inc/osal_snv.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>PROFILES/central.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/profiles/roles/cc26xx/central.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>PROFILES/central.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/profiles/roles/cc26xx/central.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Startup/board.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/target/board.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Startup/ccfg_app_ble.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-1-ORG_PROJ_DIR/config/ccfg_app_ble.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Startup/main.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/examples/simple_central/cc26xx/app/main.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>TOOLS/app_ble.cfg</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-ORG_PROJ_DIR/ccs/config/app_ble.cfg</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>TOOLS/cc26xx_app.cmd</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/common/cc26xx/ccs/cc26xx_app.cmd</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>TOOLS/ccs_compiler_defines.bcfg</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-ORG_PROJ_DIR/ccs/config/ccs_compiler_defines.bcfg</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>TOOLS/ccs_linker_defines.cmd</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-ORG_PROJ_DIR/ccs/config/ccs_linker_defines.cmd</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/Display/Display.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/mw/display/Display.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/Display/DisplayDogm1286.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/mw/display/DisplayDogm1286.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/Display/DisplayDogm1286.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/mw/display/DisplayDogm1286.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/Display/DisplayUART.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/mw/display/DisplayUART.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/Display/DisplayUART.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/mw/display/DisplayUART.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/ECC/ECCROMCC26XX.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/common/cc26xx/ecc/ECCROMCC26XX.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/ECC/ECCROMCC26XX.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/common/cc26xx/ecc/ECCROMCC26XX.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/PIN/PIN.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/PIN.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/PIN/PINCC26XX.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/pin/PINCC26XX.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/PIN/PINCC26XX.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/pin/PINCC26XX.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/RF/RF.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/rf/RF.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/RF/RFCC26XX_singleMode.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/rf/RFCC26XX_singleMode.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/SPI/SPI.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/SPI.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/SPI/SPI.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/SPI.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/SPI/SPICC26XXDMA.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/spi/SPICC26XXDMA.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/SPI/SPICC26XXDMA.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/spi/SPICC26XXDMA.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/TRNG/TRNGCC26XX.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_COMMON/hal/src/target/_common/TRNGCC26XX.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/TRNG/TRNGCC26XX.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_COMMON/hal/src/target/_common/TRNGCC26XX.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/UART/UART.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/UART.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/UART/UART.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/UART.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/UART/UARTCC26XX.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/uart/UARTCC26XX.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/UART/UARTCC26XX.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/uart/UARTCC26XX.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/UDMA/UDMACC26XX.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/dma/UDMACC26XX.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/UDMA/UDMACC26XX.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/dma/UDMACC26XX.h</locationURI>
|
||||
</link>
|
||||
</linkedResources>
|
||||
<variableList>
|
||||
<variable>
|
||||
<name>CC26XXWARE</name>
|
||||
<value>file:/C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/cc26xxware_2_24_03_17272</value>
|
||||
</variable>
|
||||
<variable>
|
||||
<name>ORG_PROJ_DIR</name>
|
||||
<value>$%7BPARENT-2-PROJECT_LOC%7D/iar/stack</value>
|
||||
</variable>
|
||||
<variable>
|
||||
<name>ROM</name>
|
||||
<value>$%7BPARENT-5-ORG_PROJ_DIR%7D/src/rom</value>
|
||||
</variable>
|
||||
<variable>
|
||||
<name>SRC_BLE_CORE</name>
|
||||
<value>$%7BPARENT-5-ORG_PROJ_DIR%7D/src</value>
|
||||
</variable>
|
||||
<variable>
|
||||
<name>SRC_COMMON</name>
|
||||
<value>$%7BPARENT-5-ORG_PROJ_DIR%7D/src/components</value>
|
||||
</variable>
|
||||
<variable>
|
||||
<name>SRC_EX</name>
|
||||
<value>$%7BPARENT-5-ORG_PROJ_DIR%7D/src</value>
|
||||
</variable>
|
||||
<variable>
|
||||
<name>TI_RTOS_DRIVERS_BASE</name>
|
||||
<value>file:/C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/tidrivers_cc13xx_cc26xx_2_21_01_01/packages</value>
|
||||
</variable>
|
||||
<variable>
|
||||
<name>TOOLS_BLE</name>
|
||||
<value>$%7BPARENT-5-ORG_PROJ_DIR%7D/tools</value>
|
||||
</variable>
|
||||
</variableList>
|
||||
<name>simple_central_cc2650em_app</name>
|
||||
<comment/>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.rtsc.xdctools.buildDefinitions.XDC.xdcNature</nature>
|
||||
<nature>com.ti.ccstudio.core.ccsNature</nature>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.core.ccnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
</natures>
|
||||
<linkedResources>
|
||||
<link>
|
||||
<name>Application</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/ECC</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/ECC/ECCROMCC26XX.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/common/cc26xx/ecc/ECCROMCC26XX.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/ECC/ECCROMCC26XX.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/common/cc26xx/ecc/ECCROMCC26XX.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICall</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICallBLE</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Include</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>PROFILES</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Startup</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>TOOLS</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Application/board_key.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/common/cc26xx/board_key.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Application/board_key.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/common/cc26xx/board_key.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Application/simple_central.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/examples/simple_central/cc26xx/app/simple_central.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Application/simple_central.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/examples/simple_central/cc26xx/app/simple_central.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Application/util.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/common/cc26xx/util.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Application/util.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/common/cc26xx/util.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/Display</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/PIN</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/RF</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/SPI</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/TRNG</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/UART</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/UDMA</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICall/heapmgr.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_COMMON/heapmgr/heapmgr.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICall/icall.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_COMMON/icall/src/icall.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICall/icall.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_COMMON/icall/src/inc/icall.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICall/icall_addrs.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/icall/inc/icall_addrs.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICall/icall_cc2650.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_COMMON/icall/src/icall_cc2650.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICall/icall_platform.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_COMMON/icall/src/icall_platform.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICallBLE/ble_user_config.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/icall/app/ble_user_config.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICallBLE/ble_user_config.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/icall/inc/ble_user_config.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICallBLE/icall_api.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/icall/app/icall_api.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>ICallBLE/icall_apimsg.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/icall/inc/icall_apimsg.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Include/gap.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_BLE_CORE/inc/gap.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Include/gapbondmgr.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/profiles/roles/gapbondmgr.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Include/gapgattserver.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/inc/gapgattserver.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Include/gatt.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_BLE_CORE/inc/gatt.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Include/hci.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_BLE_CORE/inc/hci.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Include/osal_snv.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_COMMON/osal/src/inc/osal_snv.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>PROFILES/central.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/profiles/roles/cc26xx/central.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>PROFILES/central.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/profiles/roles/cc26xx/central.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Startup/board.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/target/board.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Startup/ccfg_app_ble.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-1-ORG_PROJ_DIR/config/ccfg_app_ble.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Startup/main.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/examples/simple_central/cc26xx/app/main.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>TOOLS/app_ble.cfg</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-ORG_PROJ_DIR/ccs/config/app_ble.cfg</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>TOOLS/cc26xx_app.cmd</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_EX/common/cc26xx/ccs/cc26xx_app.cmd</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>TOOLS/ccs_compiler_defines.bcfg</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-ORG_PROJ_DIR/ccs/config/ccs_compiler_defines.bcfg</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>TOOLS/ccs_linker_defines.cmd</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-ORG_PROJ_DIR/ccs/config/ccs_linker_defines.cmd</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/Display/Display.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/mw/display/Display.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/Display/DisplayDogm1286.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/mw/display/DisplayDogm1286.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/Display/DisplayDogm1286.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/mw/display/DisplayDogm1286.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/Display/DisplayUART.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/mw/display/DisplayUART.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/Display/DisplayUART.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/mw/display/DisplayUART.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/PIN/PIN.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/PIN.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/PIN/PINCC26XX.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/pin/PINCC26XX.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/PIN/PINCC26XX.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/pin/PINCC26XX.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/RF/RFCC26XX_singleMode.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/rf/RFCC26XX_singleMode.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/RF/RF.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/rf/RF.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/SPI/SPI.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/SPI.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/SPI/SPI.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/SPI.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/SPI/SPICC26XXDMA.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/spi/SPICC26XXDMA.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/SPI/SPICC26XXDMA.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/spi/SPICC26XXDMA.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/TRNG/TRNGCC26XX.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_COMMON/hal/src/target/_common/TRNGCC26XX.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/TRNG/TRNGCC26XX.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>SRC_COMMON/hal/src/target/_common/TRNGCC26XX.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/UART/UART.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/UART.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/UART/UART.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/UART.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/UART/UARTCC26XX.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/uart/UARTCC26XX.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/UART/UARTCC26XX.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/uart/UARTCC26XX.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/UDMA/UDMACC26XX.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/dma/UDMACC26XX.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>Drivers/UDMA/UDMACC26XX.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/dma/UDMACC26XX.h</locationURI>
|
||||
</link>
|
||||
</linkedResources>
|
||||
<variableList>
|
||||
<variable>
|
||||
<name>CC26XXWARE</name>
|
||||
<value>file:/C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/cc26xxware_2_24_03_17272</value>
|
||||
</variable>
|
||||
<variable>
|
||||
<name>ORG_PROJ_DIR</name>
|
||||
<value>${PARENT-2-PROJECT_LOC}/iar/stack</value>
|
||||
</variable>
|
||||
<variable>
|
||||
<name>ROM</name>
|
||||
<value>${PARENT-5-ORG_PROJ_DIR}/src/rom</value>
|
||||
</variable>
|
||||
<variable>
|
||||
<name>SRC_BLE_CORE</name>
|
||||
<value>${PARENT-5-ORG_PROJ_DIR}/src</value>
|
||||
</variable>
|
||||
<variable>
|
||||
<name>SRC_COMMON</name>
|
||||
<value>${PARENT-5-ORG_PROJ_DIR}/src/components</value>
|
||||
</variable>
|
||||
<variable>
|
||||
<name>SRC_EX</name>
|
||||
<value>${PARENT-5-ORG_PROJ_DIR}/src</value>
|
||||
</variable>
|
||||
<variable>
|
||||
<name>TI_RTOS_DRIVERS_BASE</name>
|
||||
<value>file:/C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/tidrivers_cc13xx_cc26xx_2_21_01_01/packages</value>
|
||||
</variable>
|
||||
<variable>
|
||||
<name>TOOLS_BLE</name>
|
||||
<value>${PARENT-5-ORG_PROJ_DIR}/tools</value>
|
||||
</variable>
|
||||
</variableList>
|
||||
</projectDescription>
|
||||
|
||||
+2
-2
@@ -9,6 +9,6 @@
|
||||
<linkerCommandFile value="cc26x0f128.cmd"/>
|
||||
<rts value="libc.a"/>
|
||||
<createSlaveProjects value=""/>
|
||||
<connection value="common/targetdb/connections/TIXDS110_Connection.xml"/>
|
||||
<isTargetManual value="true"/>
|
||||
<connection value="common/targetdb/connections/TIXDS100v3_Dot7_Connection.xml"/>
|
||||
<isTargetManual value="false"/>
|
||||
</projectOptions>
|
||||
|
||||
+1
-1
@@ -9,6 +9,6 @@
|
||||
<linkerCommandFile value="cc26x0f128.cmd"/>
|
||||
<rts value="libc.a"/>
|
||||
<createSlaveProjects value=""/>
|
||||
<connection value="common/targetdb/connections/TIXDS100v3_Dot7_Connection.xml"/>
|
||||
<connection value="common/targetdb/connections/TIXDS110_Connection.xml"/>
|
||||
<isTargetManual value="false"/>
|
||||
</projectOptions>
|
||||
|
||||
+55
-230
@@ -18,12 +18,8 @@
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" errorParsers="org.eclipse.rtsc.xdctools.parsers.ErrorParser;com.ti.rtsc.XDCtools.parsers.ErrorParser;com.ti.ccstudio.errorparser.CoffErrorParser;com.ti.ccstudio.errorparser.LinkErrorParser;com.ti.ccstudio.errorparser.AsmErrorParser;org.eclipse.cdt.core.GmakeErrorParser" id="com.ti.ccstudio.buildDefinitions.TMS470.Default.67178137" name="FlashROM" parent="com.ti.ccstudio.buildDefinitions.TMS470.Default" postbuildStep="${CG_TOOL_HEX} -order MS --memwidth=8 --romwidth=8 --intel -o ${ProjName}.hex ${ProjName}.out" prebuildStep="">
|
||||
<folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Default.67178137." name="/" resourcePath="">
|
||||
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain.1870396971"
|
||||
name="TI Build Tools"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain"
|
||||
targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.1042851466">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1148563193"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
|
||||
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain.630386091" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.79296890">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.548534114" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=Cortex M.CC2650F128"/>
|
||||
<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
|
||||
<listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>
|
||||
@@ -38,55 +34,17 @@
|
||||
<listOptionValue builtIn="false" value="LINK_ORDER=TOOLS/ccs_linker_defines.cmd;TOOLS/cc26xx_app.cmd;"/>
|
||||
<listOptionValue builtIn="false" value="RTSC_MBS_VERSION=2.2.0"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.1477629759"
|
||||
name="Compiler version"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION"
|
||||
value="18.1.5.LTS" valueType="string"/>
|
||||
<targetPlatform
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug.1964203011"
|
||||
name="Platform"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug"/>
|
||||
<builder buildPath="${BuildDirectory}"
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.builderDebug.1215278602"
|
||||
keepEnvironmentInBuildfile="false" name="GNU Make" parallelBuildOn="true"
|
||||
parallelizationNumber="optimal"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.builderDebug"/>
|
||||
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.compilerDebug.844266887"
|
||||
name="ARM Compiler"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.compilerDebug">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.SILICON_VERSION.1339014530"
|
||||
name="Target processor version (--silicon_version, -mv)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.SILICON_VERSION"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.SILICON_VERSION.7M3"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CODE_STATE.309125063"
|
||||
name="Designate code state, 16-bit (thumb) or 32-bit (--code_state)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CODE_STATE"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CODE_STATE.16"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.ABI.256396971"
|
||||
name="Application binary interface. (--abi)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.ABI"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.ABI.eabi"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.LITTLE_ENDIAN.224447533"
|
||||
name="Little endian code [See 'General' page to edit] (--little_endian, -me)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.LITTLE_ENDIAN"
|
||||
value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_LEVEL.838358175"
|
||||
name="Optimization level (--opt_level, -O)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_LEVEL"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_LEVEL.4"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_FOR_SPEED.1758979029"
|
||||
name="Speed vs. size trade-offs (--opt_for_speed, -mf)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_FOR_SPEED"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_FOR_SPEED.0"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.INCLUDE_PATH.1992834918"
|
||||
name="Add dir to #include search path (--include_path, -I)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.INCLUDE_PATH"
|
||||
valueType="includePath">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.47584557" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="18.1.4.LTS" valueType="string"/>
|
||||
<targetPlatform id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug.1062983983" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug"/>
|
||||
<builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.builderDebug.1700118337" keepEnvironmentInBuildfile="false" name="GNU Make" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.builderDebug"/>
|
||||
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.compilerDebug.2136445879" name="ARM Compiler" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.compilerDebug">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.SILICON_VERSION.1442029135" name="Target processor version (--silicon_version, -mv)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.SILICON_VERSION" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.SILICON_VERSION.7M3" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CODE_STATE.1227543067" name="Designate code state, 16-bit (thumb) or 32-bit (--code_state)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CODE_STATE" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CODE_STATE.16" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.ABI.983343098" name="Application binary interface. (--abi)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.ABI.eabi" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.LITTLE_ENDIAN.915765448" name="Little endian code [See 'General' page to edit] (--little_endian, -me)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.LITTLE_ENDIAN" value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_LEVEL.2028717074" name="Optimization level (--opt_level, -O)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_LEVEL" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_LEVEL.4" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_FOR_SPEED.1765791493" name="Speed vs. size trade-offs (--opt_for_speed, -mf)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_FOR_SPEED" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_FOR_SPEED.0" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.INCLUDE_PATH.355253920" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.INCLUDE_PATH" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
|
||||
<listOptionValue builtIn="false" value="C:\ti\simplelink\ble_sdk_2_02_02_25\src\examples\simple_peripheral\cc26xx\app\headstage"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/examples/simple_peripheral/cc26xx/app"/>
|
||||
@@ -112,15 +70,8 @@
|
||||
<listOptionValue builtIn="false" value="${SRC_BLE_CORE}/rom"/>
|
||||
<listOptionValue builtIn="false" value="${CC26XXWARE}"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE.584710211"
|
||||
name="Pre-define NAME (--define, -D)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE"
|
||||
valueType="definedSymbols">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE.45713043" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="BOARD_DISPLAY_EXCLUDE_UART"/>
|
||||
<listOptionValue builtIn="false" value="HEADSTAGE_NOTIFY_USE_ATT"/>
|
||||
<listOptionValue builtIn="false" value="HEADSTAGE_MA_USE_ADC"/>
|
||||
<listOptionValue builtIn="false" value="HEADSTAGE_RECORD_BATTERY"/>
|
||||
<listOptionValue builtIn="false" value="HEADSTAGE_CIS_VOLT_H"/>
|
||||
<listOptionValue builtIn="false" value="POWER_SAVING"/>
|
||||
<listOptionValue builtIn="false" value="BOOSTXL_CC2650MA"/>
|
||||
<listOptionValue builtIn="false" value="HEADSTAGE_MA_USE_SPI2"/>
|
||||
@@ -135,197 +86,71 @@
|
||||
<listOptionValue builtIn="false" value="xdc_runtime_Assert_DISABLE_ALL"/>
|
||||
<listOptionValue builtIn="false" value="xdc_runtime_Log_DISABLE_ALL"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL.366333795"
|
||||
name="Debugging model"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.396634009"
|
||||
name="C Dialect"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.C99"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GCC.5036346"
|
||||
name="Enable support for GCC extensions (DEPRECATED) (--gcc)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GCC"
|
||||
value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS.2023161003"
|
||||
name="Suppress diagnostic <id> (--diag_suppress, -pds)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS"
|
||||
valueType="stringList">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL.188887433" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.709859007" name="C Dialect" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.C99" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GCC.1303283836" name="Enable support for GCC extensions (DEPRECATED) (--gcc)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GCC" value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS.880614544" name="Suppress diagnostic <id> (--diag_suppress, -pds)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="48"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING.1284580016"
|
||||
name="Treat diagnostic <id> as warning (--diag_warning, -pdsw)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING"
|
||||
valueType="stringList">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING.787930495" name="Treat diagnostic <id> as warning (--diag_warning, -pdsw)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="225"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WRAP.249332571"
|
||||
name="Wrap diagnostic messages (--diag_wrap)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WRAP"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WRAP.off"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DISPLAY_ERROR_NUMBER.278396112"
|
||||
name="Emit diagnostic identifier numbers (--display_error_number, -pden)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DISPLAY_ERROR_NUMBER"
|
||||
value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS.2092732559"
|
||||
name="Place each function in a separate subsection (--gen_func_subsections, -ms)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS.on"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CMD_FILE.1551195628"
|
||||
name="Read options from specified file (--cmd_file, -@)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CMD_FILE"
|
||||
valueType="stringList">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WRAP.2110497797" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DISPLAY_ERROR_NUMBER.1508735855" name="Emit diagnostic identifier numbers (--display_error_number, -pden)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS.1406670754" name="Place each function in a separate subsection (--gen_func_subsections, -ms)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS.on" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CMD_FILE.1230809079" name="Read options from specified file (--cmd_file, -@)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CMD_FILE" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/config/build_components.opt"/>
|
||||
<listOptionValue builtIn="false" value="${ORG_PROJ_DIR}/build_config.opt"/>
|
||||
<listOptionValue builtIn="false" value="${ORG_PROJ_DIR}/../../ccs/config/ccs_compiler_defines.bcfg"/>
|
||||
</option>
|
||||
<inputType
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__C_SRCS.1694661736"
|
||||
name="C Sources"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__C_SRCS"/>
|
||||
<inputType
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__CPP_SRCS.1687796135"
|
||||
name="C++ Sources"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__CPP_SRCS"/>
|
||||
<inputType
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM_SRCS.1118337260"
|
||||
name="Assembly Sources"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM_SRCS"/>
|
||||
<inputType
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM2_SRCS.1159637661"
|
||||
name="Assembly Sources"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM2_SRCS"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__C_SRCS.497243650" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__C_SRCS"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__CPP_SRCS.1364217553" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__CPP_SRCS"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM_SRCS.39449259" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM_SRCS"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM2_SRCS.1178170160" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM2_SRCS"/>
|
||||
</tool>
|
||||
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.1042851466"
|
||||
name="ARM Linker"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.STACK_SIZE.872774008"
|
||||
name="Set C system stack size (--stack_size, -stack)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.STACK_SIZE"
|
||||
value="256" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.HEAP_SIZE.2009961004"
|
||||
name="Heap size for C/C++ dynamic memory allocation (--heap_size, -heap)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.HEAP_SIZE"
|
||||
value="0" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE.2041929472"
|
||||
name="Link information (map) listed into <file> (--map_file, -m)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE"
|
||||
value=""${ProjName}.map"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE.1329270549"
|
||||
name="Specify output file name (--output_file, -o)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE"
|
||||
value="${ProjName}.out" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.LIBRARY.1665414523"
|
||||
name="Include library file or command file as input (--library, -l)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.LIBRARY"
|
||||
valueType="libs">
|
||||
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.79296890" name="ARM Linker" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.STACK_SIZE.891763345" name="Set C system stack size (--stack_size, -stack)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.STACK_SIZE" value="256" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.HEAP_SIZE.314304138" name="Heap size for C/C++ dynamic memory allocation (--heap_size, -heap)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.HEAP_SIZE" value="0" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE.338495855" name="Link information (map) listed into <file> (--map_file, -m)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE" value=""${ProjName}.map"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE.1060277100" name="Specify output file name (--output_file, -o)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE" value="${ProjName}.out" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.LIBRARY.875035059" name="Include library file or command file as input (--library, -l)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.LIBRARY" valueType="libs">
|
||||
<listOptionValue builtIn="false" value="libc.a"/>
|
||||
<listOptionValue builtIn="false" value="${CC26XXWARE}/driverlib/bin/ccs/driverlib.lib"/>
|
||||
<listOptionValue builtIn="false" value="${ROM}/common_rom_releases/03282014/common_rom.symbols"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH.653944079"
|
||||
name="Add <dir> to library search path (--search_path, -i)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH"
|
||||
valueType="libPaths">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH.1276978340" name="Add <dir> to library search path (--search_path, -i)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH" valueType="libPaths">
|
||||
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/lib"/>
|
||||
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS.1571098441"
|
||||
name="Suppress diagnostic <id> (--diag_suppress)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS"
|
||||
valueType="stringList">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS.336823753" name="Suppress diagnostic <id> (--diag_suppress)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="10247-D"/>
|
||||
<listOptionValue builtIn="false" value="16002-D"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.2089339392"
|
||||
name="Wrap diagnostic messages (--diag_wrap)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.off"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DISPLAY_ERROR_NUMBER.1585150190"
|
||||
name="Emit diagnostic identifier numbers (--display_error_number)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DISPLAY_ERROR_NUMBER"
|
||||
value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO.1879557100"
|
||||
name="Detailed link information data-base into <file> (--xml_link_info, -xml_link_info)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO"
|
||||
value=""${ProjName}_linkInfo.xml"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.870807907"
|
||||
name="Aggressively reduce size of the DWARF information (--compress_dwarf)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.on"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION.1443935039"
|
||||
name="Eliminate sections not needed in the executable (--unused_section_elimination)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION.on"
|
||||
valueType="enumerated"/>
|
||||
<inputType
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD_SRCS.1144532052"
|
||||
name="Linker Command Files"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD_SRCS"/>
|
||||
<inputType
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD2_SRCS.527665495"
|
||||
name="Linker Command Files"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD2_SRCS"/>
|
||||
<inputType
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__GEN_CMDS.342557325"
|
||||
name="Generated Linker Command Files"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__GEN_CMDS"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.1219370365" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.off" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DISPLAY_ERROR_NUMBER.703721803" name="Emit diagnostic identifier numbers (--display_error_number)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO.1258348097" name="Detailed link information data-base into <file> (--xml_link_info, -xml_link_info)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO" value=""${ProjName}_linkInfo.xml"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.1063255995" name="Aggressively reduce size of the DWARF information (--compress_dwarf)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.on" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION.1912195294" name="Eliminate sections not needed in the executable (--unused_section_elimination)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION.on" valueType="enumerated"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD_SRCS.464172264" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD_SRCS"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD2_SRCS.1422737841" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD2_SRCS"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__GEN_CMDS.194007756" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__GEN_CMDS"/>
|
||||
</tool>
|
||||
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.1134045744"
|
||||
name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH.361823987"
|
||||
name="Specify rom width (--romwidth, -romwidth=width)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH" value="8"
|
||||
valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.MEMWIDTH.2004720746"
|
||||
name="Specify memory width (--memwidth, -memwidth=width)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.MEMWIDTH" value="8"
|
||||
valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT.358755565"
|
||||
name="Output format"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT.INTEL"
|
||||
valueType="enumerated"/>
|
||||
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.148133664" name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH.1747210980" name="Specify rom width (--romwidth, -romwidth=width)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH" value="8" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.MEMWIDTH.2120609162" name="Specify memory width (--memwidth, -memwidth=width)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.MEMWIDTH" value="8" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT.147492991" name="Output format" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT.INTEL" valueType="enumerated"/>
|
||||
</tool>
|
||||
<tool id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.861960875" name="XDCtools"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH.1920608743"
|
||||
name="Package repositories (--xdcpath)"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH"
|
||||
valueType="stringList">
|
||||
<tool id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.2115491595" name="XDCtools" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH.1165924088" name="Package repositories (--xdcpath)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="${COM_TI_RTSC_TIRTOSCC13XX_CC26XX_REPOS}"/>
|
||||
<listOptionValue builtIn="false" value="${TARGET_CONTENT_BASE}"/>
|
||||
</option>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET.363159983"
|
||||
name="Target (-t)"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET"
|
||||
value="ti.targets.arm.elf.M3" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM.1189355321"
|
||||
name="Platform (-p)"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM"
|
||||
value="ti.platforms.simplelink:CC2640F128" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW.1865073937"
|
||||
name="Platform (-p)"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW"
|
||||
value="ti.platforms.simplelink:CC2640F128" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE.1732364012"
|
||||
name="Build-profile (-r)"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE"
|
||||
value="release" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR.433819693"
|
||||
name="Compiler tools directory (-c)"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR"
|
||||
value="${CG_TOOL_ROOT}" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS.417898510"
|
||||
name="Additional compiler options (--compileOptions)"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS"
|
||||
value=""${COMPILER_FLAGS}"" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET.231881756" name="Target (-t)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET" value="ti.targets.arm.elf.M3" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM.819491801" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM" value="ti.platforms.simplelink:CC2640F128" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW.2074274477" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW" value="ti.platforms.simplelink:CC2640F128" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE.235985274" name="Build-profile (-r)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE" value="release" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR.173132565" name="Compiler tools directory (-c)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR" value="${CG_TOOL_ROOT}" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS.582390411" name="Additional compiler options (--compileOptions)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS" value=""${COMPILER_FLAGS}"" valueType="string"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
/FlashROM__opt_for_speed__0/
|
||||
/FlashROM__opt_for_speed__1/
|
||||
/FlashROM__opt_for_speed__2/
|
||||
/FlashROM__opt_for_speed__3/
|
||||
/FlashROM__opt_for_speed__4/
|
||||
/FlashROM__opt_for_speed__5/
|
||||
-186
@@ -29,190 +29,4 @@ encoding//FlashROM/TOOLS/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/TOOLS/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/makefile=UTF-8
|
||||
encoding//FlashROM/objects.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/Application/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/Application/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/Drivers/Display/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/Drivers/Display/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/Drivers/ECC/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/Drivers/ECC/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/Drivers/PIN/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/Drivers/PIN/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/Drivers/RF/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/Drivers/RF/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/Drivers/SPI/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/Drivers/SPI/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/Drivers/TRNG/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/Drivers/TRNG/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/Drivers/UART/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/Drivers/UART/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/Drivers/UDMA/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/Drivers/UDMA/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/ICall/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/ICall/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/ICallBLE/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/ICallBLE/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/PROFILES/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/PROFILES/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/Startup/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/Startup/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/TOOLS/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/TOOLS/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/makefile=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/objects.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__0/sources.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/Application/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/Application/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/Drivers/Display/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/Drivers/Display/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/Drivers/ECC/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/Drivers/ECC/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/Drivers/PIN/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/Drivers/PIN/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/Drivers/RF/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/Drivers/RF/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/Drivers/SPI/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/Drivers/SPI/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/Drivers/TRNG/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/Drivers/TRNG/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/Drivers/UART/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/Drivers/UART/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/Drivers/UDMA/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/Drivers/UDMA/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/ICall/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/ICall/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/ICallBLE/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/ICallBLE/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/PROFILES/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/PROFILES/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/Startup/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/Startup/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/TOOLS/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/TOOLS/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/makefile=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/objects.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__1/sources.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/Application/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/Application/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/Drivers/Display/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/Drivers/Display/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/Drivers/ECC/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/Drivers/ECC/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/Drivers/PIN/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/Drivers/PIN/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/Drivers/RF/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/Drivers/RF/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/Drivers/SPI/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/Drivers/SPI/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/Drivers/TRNG/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/Drivers/TRNG/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/Drivers/UART/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/Drivers/UART/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/Drivers/UDMA/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/Drivers/UDMA/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/ICall/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/ICall/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/ICallBLE/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/ICallBLE/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/PROFILES/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/PROFILES/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/Startup/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/Startup/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/TOOLS/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/TOOLS/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/makefile=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/objects.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__2/sources.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/Application/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/Application/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/Drivers/Display/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/Drivers/Display/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/Drivers/ECC/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/Drivers/ECC/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/Drivers/PIN/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/Drivers/PIN/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/Drivers/RF/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/Drivers/RF/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/Drivers/SPI/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/Drivers/SPI/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/Drivers/TRNG/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/Drivers/TRNG/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/Drivers/UART/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/Drivers/UART/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/Drivers/UDMA/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/Drivers/UDMA/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/ICall/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/ICall/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/ICallBLE/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/ICallBLE/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/PROFILES/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/PROFILES/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/Startup/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/Startup/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/TOOLS/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/TOOLS/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/makefile=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/objects.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__3/sources.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/Application/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/Application/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/Drivers/Display/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/Drivers/Display/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/Drivers/ECC/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/Drivers/ECC/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/Drivers/PIN/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/Drivers/PIN/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/Drivers/RF/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/Drivers/RF/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/Drivers/SPI/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/Drivers/SPI/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/Drivers/TRNG/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/Drivers/TRNG/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/Drivers/UART/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/Drivers/UART/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/Drivers/UDMA/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/Drivers/UDMA/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/ICall/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/ICall/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/ICallBLE/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/ICallBLE/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/PROFILES/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/PROFILES/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/Startup/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/Startup/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/TOOLS/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/TOOLS/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/makefile=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/objects.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__4/sources.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/Application/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/Application/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/Drivers/Display/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/Drivers/Display/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/Drivers/ECC/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/Drivers/ECC/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/Drivers/PIN/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/Drivers/PIN/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/Drivers/RF/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/Drivers/RF/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/Drivers/SPI/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/Drivers/SPI/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/Drivers/TRNG/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/Drivers/TRNG/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/Drivers/UART/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/Drivers/UART/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/Drivers/UDMA/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/Drivers/UDMA/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/ICall/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/ICall/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/ICallBLE/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/ICallBLE/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/PROFILES/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/PROFILES/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/Startup/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/Startup/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/TOOLS/subdir_rules.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/TOOLS/subdir_vars.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/makefile=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/objects.mk=UTF-8
|
||||
encoding//FlashROM/optimizerAssistant/opt_for_speed__5/sources.mk=UTF-8
|
||||
encoding//FlashROM/sources.mk=UTF-8
|
||||
|
||||
+15
-14
@@ -1,19 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<configurations XML_version="1.2" id="configurations_0">
|
||||
<configuration XML_version="1.2" id="Texas Instruments XDS100v3 USB Debug Probe_0">
|
||||
<instance XML_version="1.2" desc="Texas Instruments XDS100v3 USB Debug Probe_0" href="connections/TIXDS100v3_Dot7_Connection.xml" id="Texas Instruments XDS100v3 USB Debug Probe_0" xml="TIXDS100v3_Dot7_Connection.xml" xmlpath="connections"/>
|
||||
<connection XML_version="1.2" id="Texas Instruments XDS100v3 USB Debug Probe_0">
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2icepick_c.xml" id="drivers" xml="tixds100v2icepick_c.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2cs_dap.xml" id="drivers" xml="tixds100v2cs_dap.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2cortexM.xml" id="drivers" xml="tixds100v2cortexM.xml" xmlpath="drivers"/>
|
||||
<property Type="choicelist" Value="2" id="The Converter Usage">
|
||||
<choice Name="Generate 1149.7 2-pin advanced modes" value="enable">
|
||||
<property Type="choicelist" Value="1" id="The Converter 1149.7 Frequency">
|
||||
<choice Name="Overclock with user specified value" value="unused">
|
||||
<property Type="choicelist" Value="5" id="-- Choose a value from 1.0MHz to 50.0MHz"/>
|
||||
</choice>
|
||||
</property>
|
||||
<property Type="choicelist" Value="5" id="The Target Scan Format"/>
|
||||
<configuration XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
|
||||
<instance XML_version="1.2" desc="Texas Instruments XDS110 USB Debug Probe_0" href="connections/TIXDS110_Connection.xml" id="Texas Instruments XDS110 USB Debug Probe_0" xml="TIXDS110_Connection.xml" xmlpath="connections"/>
|
||||
<connection XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
|
||||
<instance XML_version="1.2" href="drivers/tixds510icepick_c.xml" id="drivers" xml="tixds510icepick_c.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds510cs_dap.xml" id="drivers" xml="tixds510cs_dap.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds510cortexM.xml" id="drivers" xml="tixds510cortexM.xml" xmlpath="drivers"/>
|
||||
<property Type="choicelist" Value="1" id="Power Selection">
|
||||
<choice Name="Probe supplied power" value="1">
|
||||
<property Type="stringfield" Value="3.3" id="Voltage Level"/>
|
||||
</choice>
|
||||
</property>
|
||||
<property Type="choicelist" Value="0" id="JTAG Signal Isolation"/>
|
||||
<property Type="choicelist" Value="4" id="SWD Mode Settings">
|
||||
<choice Name="cJTAG (1149.7) 2-pin advanced modes" value="enable">
|
||||
<property Type="choicelist" Value="1" id="XDS110 Aux Port"/>
|
||||
</choice>
|
||||
</property>
|
||||
<platform XML_version="1.2" id="platform_0">
|
||||
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
+4
-4
@@ -16,11 +16,11 @@ BIOS_INC = -I"C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/pa
|
||||
|
||||
TARGET_INC = -I"C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/packages/"
|
||||
|
||||
INCS = $(BIOS_INC) $(TARGET_INC) --include_path="C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.5.LTS/include" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/icall/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/roles/cc26xx" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/roles" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/dev_info" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/simple_profile/cc26xx" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/simple_profile" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/common/cc26xx" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/heapmgr" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/controller/cc26xx/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/hal/src/target/_common" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/target" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/hal/src/target/_common/cc26xx" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/hal/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/osal/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/services/src/sdata" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/services/src/saddr" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/icall/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/rom" --include_path="C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/cc26xxware_2_24_03_17272" -IC:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/packages/
|
||||
INCS = $(BIOS_INC) $(TARGET_INC) --include_path="C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/include" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/icall/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/roles/cc26xx" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/roles" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/dev_info" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/simple_profile/cc26xx" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/simple_profile" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/common/cc26xx" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/heapmgr" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/controller/cc26xx/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/hal/src/target/_common" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/target" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/hal/src/target/_common/cc26xx" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/hal/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/osal/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/services/src/sdata" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/services/src/saddr" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/icall/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/rom" --include_path="C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/cc26xxware_2_24_03_17272" -IC:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/packages/
|
||||
|
||||
CC = C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.5.LTS/bin/armcl -c $(CCOPTS) -I C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.5.LTS/include
|
||||
ASM = C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.5.LTS/bin/armcl -c $(CCOPTS) -I C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.5.LTS/include
|
||||
AR = C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.5.LTS/bin/armar rq
|
||||
CC = C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/bin/armcl -c $(CCOPTS) -I C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/include
|
||||
ASM = C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/bin/armcl -c $(CCOPTS) -I C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/include
|
||||
AR = C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/bin/armar rq
|
||||
|
||||
DEL = C:/ti/xdctools_3_32_02_25_core/packages/../bin/rm -f
|
||||
CP = C:/ti/xdctools_3_32_02_25_core/packages/../bin/cp -f
|
||||
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
+1
-1
@@ -9,6 +9,6 @@
|
||||
<linkerCommandFile value="cc26x0f128.cmd"/>
|
||||
<rts value="libc.a"/>
|
||||
<createSlaveProjects value=""/>
|
||||
<connection value="common/targetdb/connections/TIXDS100v3_Dot7_Connection.xml"/>
|
||||
<connection value="common/targetdb/connections/TIXDS110_Connection.xml"/>
|
||||
<isTargetManual value="false"/>
|
||||
</projectOptions>
|
||||
|
||||
+1
-1
@@ -62,9 +62,9 @@
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE.986125825" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="CC26XX"/>
|
||||
<listOptionValue builtIn="false" value="POWER_SAVING"/>
|
||||
<listOptionValue builtIn="false" value="GATT_NO_CLIENT"/>
|
||||
<listOptionValue builtIn="false" value="HEADSTAGE_NOTIFY_USE_ATT"/>
|
||||
<listOptionValue builtIn="false" value="POWER_SAVING"/>
|
||||
<listOptionValue builtIn="false" value="CC26XXWARE"/>
|
||||
<listOptionValue builtIn="false" value="DATA="/>
|
||||
<listOptionValue builtIn="false" value="EXT_HAL_ASSERT"/>
|
||||
|
||||
+1
@@ -12,6 +12,7 @@
|
||||
<stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_TARGET_CONFIG" value="${target_config_active_default:simple_peripheral_cc2650em_stack}"/>
|
||||
<stringAttribute key="com.ti.ccstudio.debug.debugModel.MRU_PROGRAM.C:\ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650em\simple_peripheral\ccs\stack\targetConfigs\CC2650F128.ccxml.Texas Instruments XDS100v3 USB Debug Probe_0/Cortex_M3_0" value="C:/ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650em\simple_peripheral\ccs\stack\FlashROM\simple_peripheral_cc2650em_stack.out"/>
|
||||
<stringAttribute key="com.ti.ccstudio.debug.debugModel.MRU_PROGRAM.C:\ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650em\simple_peripheral\ccs\stack\targetConfigs\CC2650F128.ccxml.Texas Instruments XDS110 USB Debug Probe/Cortex_M3_0" value="C:/ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650em\simple_peripheral\ccs\stack\FlashROM\simple_peripheral_cc2650em_stack.out"/>
|
||||
<stringAttribute key="com.ti.ccstudio.debug.debugModel.MRU_PROGRAM.C:\ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650em\simple_peripheral\ccs\stack\targetConfigs\CC2650F128.ccxml.Texas Instruments XDS110 USB Debug Probe_0/Cortex_M3_0" value="C:/ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650em\simple_peripheral\ccs\stack\FlashROM\simple_peripheral_cc2650em_stack.out"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/simple_peripheral_cc2650em_stack"/>
|
||||
</listAttribute>
|
||||
|
||||
+15
-14
@@ -1,19 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<configurations XML_version="1.2" id="configurations_0">
|
||||
<configuration XML_version="1.2" id="Texas Instruments XDS100v3 USB Debug Probe_0">
|
||||
<instance XML_version="1.2" desc="Texas Instruments XDS100v3 USB Debug Probe_0" href="connections/TIXDS100v3_Dot7_Connection.xml" id="Texas Instruments XDS100v3 USB Debug Probe_0" xml="TIXDS100v3_Dot7_Connection.xml" xmlpath="connections"/>
|
||||
<connection XML_version="1.2" id="Texas Instruments XDS100v3 USB Debug Probe_0">
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2icepick_c.xml" id="drivers" xml="tixds100v2icepick_c.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2cs_dap.xml" id="drivers" xml="tixds100v2cs_dap.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2cortexM.xml" id="drivers" xml="tixds100v2cortexM.xml" xmlpath="drivers"/>
|
||||
<property Type="choicelist" Value="2" id="The Converter Usage">
|
||||
<choice Name="Generate 1149.7 2-pin advanced modes" value="enable">
|
||||
<property Type="choicelist" Value="1" id="The Converter 1149.7 Frequency">
|
||||
<choice Name="Overclock with user specified value" value="unused">
|
||||
<property Type="choicelist" Value="5" id="-- Choose a value from 1.0MHz to 50.0MHz"/>
|
||||
</choice>
|
||||
</property>
|
||||
<property Type="choicelist" Value="5" id="The Target Scan Format"/>
|
||||
<configuration XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
|
||||
<instance XML_version="1.2" desc="Texas Instruments XDS110 USB Debug Probe_0" href="connections/TIXDS110_Connection.xml" id="Texas Instruments XDS110 USB Debug Probe_0" xml="TIXDS110_Connection.xml" xmlpath="connections"/>
|
||||
<connection XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
|
||||
<instance XML_version="1.2" href="drivers/tixds510icepick_c.xml" id="drivers" xml="tixds510icepick_c.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds510cs_dap.xml" id="drivers" xml="tixds510cs_dap.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds510cortexM.xml" id="drivers" xml="tixds510cortexM.xml" xmlpath="drivers"/>
|
||||
<property Type="choicelist" Value="1" id="Power Selection">
|
||||
<choice Name="Probe supplied power" value="1">
|
||||
<property Type="stringfield" Value="3.3" id="Voltage Level"/>
|
||||
</choice>
|
||||
</property>
|
||||
<property Type="choicelist" Value="0" id="JTAG Signal Isolation"/>
|
||||
<property Type="choicelist" Value="4" id="SWD Mode Settings">
|
||||
<choice Name="cJTAG (1149.7) 2-pin advanced modes" value="enable">
|
||||
<property Type="choicelist" Value="1" id="XDS110 Aux Port"/>
|
||||
</choice>
|
||||
</property>
|
||||
<platform XML_version="1.2" id="platform_0">
|
||||
|
||||
@@ -233,7 +233,7 @@ const SPICC26XXDMA_HWAttrsV1 spiCC26XXDMAHWAttrs[BOOSTXL_CC2650MA_SPICOUNT] = {
|
||||
.mosiPin = Board_SPI0_MOSI,
|
||||
.misoPin = Board_SPI0_MISO,
|
||||
.clkPin = Board_SPI0_CLK,
|
||||
.csnPin = Board_SPI0_CSN
|
||||
.csnPin = Board_SPI0_CS
|
||||
//
|
||||
},
|
||||
#ifdef HEADSTAGE_MA_USE_SPI2
|
||||
@@ -250,7 +250,7 @@ const SPICC26XXDMA_HWAttrsV1 spiCC26XXDMAHWAttrs[BOOSTXL_CC2650MA_SPICOUNT] = {
|
||||
.mosiPin = Board_SPI1_MOSI,
|
||||
.misoPin = Board_SPI1_MISO,
|
||||
.clkPin = Board_SPI1_CLK,
|
||||
.csnPin = Board_SPI1_CSN //
|
||||
.csnPin = Board_SPI1_CS //
|
||||
},
|
||||
#endif
|
||||
};
|
||||
@@ -513,6 +513,158 @@ const PWM_Config PWM_config[BOOSTXL_CC2650MA_PWMCOUNT + 1] = {
|
||||
* ============================= PWM end ======================================
|
||||
*/
|
||||
|
||||
/*
|
||||
* ============================= ADC begin ======================================
|
||||
*/
|
||||
|
||||
#ifdef HEADSTAGE_MA_USE_ADC
|
||||
|
||||
#include <ti/drivers/ADC.h>
|
||||
#include <ti/drivers/adc/ADCCC26XX.h>
|
||||
|
||||
#if defined(__TI_COMPILER_VERSION__)
|
||||
#pragma DATA_SECTION(ADC_config, ".const:ADC_config")
|
||||
#pragma DATA_SECTION(adcCC26xxHWAttrs, ".const:adcCC26xxHWAttrs")
|
||||
#endif
|
||||
|
||||
ADCCC26XX_Object adcCC26xxObjects[BOOSTXL_CC2650MA_ADCCOUNT];
|
||||
|
||||
const ADCCC26XX_HWAttrs adcCC26xxHWAttrs[BOOSTXL_CC2650MA_ADCCOUNT] = {
|
||||
//
|
||||
{
|
||||
//
|
||||
.adcDIO = DIO7,
|
||||
.adcCompBInput = ADC_COMPB_IN_AUXIO7,
|
||||
.refSource = ADCCC26XX_FIXED_REFERENCE,
|
||||
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
|
||||
.inputScalingEnabled = true,
|
||||
.triggerSource = ADCCC26XX_TRIGGER_MANUAL
|
||||
//
|
||||
},
|
||||
{
|
||||
//
|
||||
.adcDIO = DIO8,
|
||||
.adcCompBInput = ADC_COMPB_IN_AUXIO6,
|
||||
.refSource = ADCCC26XX_FIXED_REFERENCE,
|
||||
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
|
||||
.inputScalingEnabled = true,
|
||||
.triggerSource = ADCCC26XX_TRIGGER_MANUAL
|
||||
//
|
||||
},
|
||||
{
|
||||
//
|
||||
.adcDIO = DIO9,
|
||||
.adcCompBInput = ADC_COMPB_IN_AUXIO5,
|
||||
.refSource = ADCCC26XX_FIXED_REFERENCE,
|
||||
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
|
||||
.inputScalingEnabled = true,
|
||||
.triggerSource = ADCCC26XX_TRIGGER_MANUAL
|
||||
//
|
||||
},
|
||||
{
|
||||
//
|
||||
.adcDIO = PIN_UNASSIGNED,
|
||||
.adcCompBInput = ADC_COMPB_IN_AUXIO4,
|
||||
.refSource = ADCCC26XX_FIXED_REFERENCE,
|
||||
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
|
||||
.inputScalingEnabled = true,
|
||||
.triggerSource = ADCCC26XX_TRIGGER_MANUAL
|
||||
//
|
||||
},
|
||||
{
|
||||
//
|
||||
.adcDIO = PIN_UNASSIGNED,
|
||||
.adcCompBInput = ADC_COMPB_IN_AUXIO3,
|
||||
.refSource = ADCCC26XX_FIXED_REFERENCE,
|
||||
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
|
||||
.inputScalingEnabled = true,
|
||||
.triggerSource = ADCCC26XX_TRIGGER_MANUAL
|
||||
//
|
||||
},
|
||||
{
|
||||
//
|
||||
.adcDIO = PIN_UNASSIGNED,
|
||||
.adcCompBInput = ADC_COMPB_IN_AUXIO2,
|
||||
.refSource = ADCCC26XX_FIXED_REFERENCE,
|
||||
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
|
||||
.inputScalingEnabled = true,
|
||||
.triggerSource = ADCCC26XX_TRIGGER_MANUAL
|
||||
//
|
||||
},
|
||||
{
|
||||
//
|
||||
.adcDIO = PIN_UNASSIGNED,
|
||||
.adcCompBInput = ADC_COMPB_IN_AUXIO1,
|
||||
.refSource = ADCCC26XX_FIXED_REFERENCE,
|
||||
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
|
||||
.inputScalingEnabled = true,
|
||||
.triggerSource = ADCCC26XX_TRIGGER_MANUAL
|
||||
//
|
||||
},
|
||||
{
|
||||
//
|
||||
.adcDIO = PIN_UNASSIGNED,
|
||||
.adcCompBInput = ADC_COMPB_IN_AUXIO0,
|
||||
.refSource = ADCCC26XX_FIXED_REFERENCE,
|
||||
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_10P9_MS,
|
||||
.inputScalingEnabled = true,
|
||||
.triggerSource = ADCCC26XX_TRIGGER_MANUAL
|
||||
//
|
||||
},
|
||||
{
|
||||
//
|
||||
.adcDIO = PIN_UNASSIGNED,
|
||||
.adcCompBInput = ADC_COMPB_IN_DCOUPL,
|
||||
.refSource = ADCCC26XX_FIXED_REFERENCE,
|
||||
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
|
||||
.inputScalingEnabled = true,
|
||||
.triggerSource = ADCCC26XX_TRIGGER_MANUAL
|
||||
//
|
||||
},
|
||||
{
|
||||
//
|
||||
.adcDIO = PIN_UNASSIGNED,
|
||||
.adcCompBInput = ADC_COMPB_IN_VSS,
|
||||
.refSource = ADCCC26XX_FIXED_REFERENCE,
|
||||
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
|
||||
.inputScalingEnabled = true,
|
||||
.triggerSource = ADCCC26XX_TRIGGER_MANUAL
|
||||
//
|
||||
},
|
||||
{
|
||||
//
|
||||
.adcDIO = PIN_UNASSIGNED,
|
||||
.adcCompBInput = ADC_COMPB_IN_VDDS,
|
||||
.refSource = ADCCC26XX_FIXED_REFERENCE,
|
||||
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
|
||||
.inputScalingEnabled = true,
|
||||
.triggerSource = ADCCC26XX_TRIGGER_MANUAL
|
||||
//
|
||||
}
|
||||
//
|
||||
};
|
||||
|
||||
const ADC_Config ADC_config[] = {
|
||||
//
|
||||
{&ADCCC26XX_fxnTable, &adcCC26xxObjects[0], &adcCC26xxHWAttrs[0]},
|
||||
{&ADCCC26XX_fxnTable, &adcCC26xxObjects[1], &adcCC26xxHWAttrs[1]},
|
||||
{&ADCCC26XX_fxnTable, &adcCC26xxObjects[2], &adcCC26xxHWAttrs[2]},
|
||||
{&ADCCC26XX_fxnTable, &adcCC26xxObjects[3], &adcCC26xxHWAttrs[3]},
|
||||
{&ADCCC26XX_fxnTable, &adcCC26xxObjects[4], &adcCC26xxHWAttrs[4]},
|
||||
{&ADCCC26XX_fxnTable, &adcCC26xxObjects[5], &adcCC26xxHWAttrs[5]},
|
||||
{&ADCCC26XX_fxnTable, &adcCC26xxObjects[6], &adcCC26xxHWAttrs[6]},
|
||||
{&ADCCC26XX_fxnTable, &adcCC26xxObjects[7], &adcCC26xxHWAttrs[7]},
|
||||
{&ADCCC26XX_fxnTable, &adcCC26xxObjects[8], &adcCC26xxHWAttrs[8]},
|
||||
{&ADCCC26XX_fxnTable, &adcCC26xxObjects[9], &adcCC26xxHWAttrs[9]},
|
||||
{&ADCCC26XX_fxnTable, &adcCC26xxObjects[10], &adcCC26xxHWAttrs[10]},
|
||||
{NULL, NULL, NULL},
|
||||
};
|
||||
|
||||
#endif // HEADSTAGE_MA_USE_ADC
|
||||
|
||||
/*
|
||||
* ============================= ADC end ======================================
|
||||
*/
|
||||
/*
|
||||
* ============================= I2C Begin=====================================
|
||||
*/
|
||||
@@ -594,131 +746,3 @@ const I2C_Config I2C_config[] = {
|
||||
/*
|
||||
* ============================= Watchdog end =====================================
|
||||
*/
|
||||
|
||||
/*
|
||||
* ================================ ADC begin ======================================
|
||||
*/
|
||||
#ifdef HEADSTAGE_RECORD_BATTERY
|
||||
|
||||
/* Place into subsections to allow the TI linker to remove items properly */
|
||||
#if defined(__TI_COMPILER_VERSION__)
|
||||
#pragma DATA_SECTION(ADC_config, ".const:ADC_config")
|
||||
#pragma DATA_SECTION(adcCC26xxHWAttrs, ".const:adcCC26xxHWAttrs")
|
||||
#endif
|
||||
|
||||
#include <ti/drivers/ADC.h>
|
||||
#include <ti/drivers/adc/ADCCC26XX.h>
|
||||
|
||||
/* ADC objects */
|
||||
ADCCC26XX_Object adcCC26xxObjects[BOOSTXL_CC2650MA_ADCCOUNT];
|
||||
|
||||
const ADCCC26XX_HWAttrs adcCC26xxHWAttrs[BOOSTXL_CC2650MA_ADCCOUNT] = {
|
||||
{
|
||||
.adcDIO = Board_DIO0_ANALOG,
|
||||
.adcCompBInput = ADC_COMPB_IN_AUXIO7,
|
||||
.refSource = ADCCC26XX_FIXED_REFERENCE,
|
||||
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
|
||||
.inputScalingEnabled = true,
|
||||
.triggerSource = ADCCC26XX_TRIGGER_MANUAL
|
||||
},
|
||||
{
|
||||
.adcDIO = Board_DIO1_ANALOG,
|
||||
.adcCompBInput = ADC_COMPB_IN_AUXIO6,
|
||||
.refSource = ADCCC26XX_FIXED_REFERENCE,
|
||||
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
|
||||
.inputScalingEnabled = true,
|
||||
.triggerSource = ADCCC26XX_TRIGGER_MANUAL
|
||||
},
|
||||
{
|
||||
.adcDIO = Board_DIO2_ANALOG,
|
||||
.adcCompBInput = ADC_COMPB_IN_AUXIO5,
|
||||
.refSource = ADCCC26XX_FIXED_REFERENCE,
|
||||
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
|
||||
.inputScalingEnabled = true,
|
||||
.triggerSource = ADCCC26XX_TRIGGER_MANUAL
|
||||
},
|
||||
{
|
||||
.adcDIO = Board_DIO3_ANALOG,
|
||||
.adcCompBInput = ADC_COMPB_IN_AUXIO4,
|
||||
.refSource = ADCCC26XX_FIXED_REFERENCE,
|
||||
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
|
||||
.inputScalingEnabled = true,
|
||||
.triggerSource = ADCCC26XX_TRIGGER_MANUAL
|
||||
},
|
||||
{
|
||||
.adcDIO = Board_DIO4_ANALOG,
|
||||
.adcCompBInput = ADC_COMPB_IN_AUXIO3,
|
||||
.refSource = ADCCC26XX_FIXED_REFERENCE,
|
||||
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
|
||||
.inputScalingEnabled = true,
|
||||
.triggerSource = ADCCC26XX_TRIGGER_MANUAL
|
||||
},
|
||||
{
|
||||
.adcDIO = Board_DIO5_ANALOG,
|
||||
.adcCompBInput = ADC_COMPB_IN_AUXIO2,
|
||||
.refSource = ADCCC26XX_FIXED_REFERENCE,
|
||||
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
|
||||
.inputScalingEnabled = true,
|
||||
.triggerSource = ADCCC26XX_TRIGGER_MANUAL
|
||||
},
|
||||
{
|
||||
.adcDIO = Board_DIO6_ANALOG,
|
||||
.adcCompBInput = ADC_COMPB_IN_AUXIO1,
|
||||
.refSource = ADCCC26XX_FIXED_REFERENCE,
|
||||
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
|
||||
.inputScalingEnabled = true,
|
||||
.triggerSource = ADCCC26XX_TRIGGER_MANUAL
|
||||
},
|
||||
{
|
||||
.adcDIO = Board_DIO7_ANALOG,
|
||||
.adcCompBInput = ADC_COMPB_IN_AUXIO0,
|
||||
.refSource = ADCCC26XX_FIXED_REFERENCE,
|
||||
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_10P9_MS,
|
||||
.inputScalingEnabled = true,
|
||||
.triggerSource = ADCCC26XX_TRIGGER_MANUAL
|
||||
},
|
||||
{
|
||||
.adcDIO = PIN_UNASSIGNED,
|
||||
.adcCompBInput = ADC_COMPB_IN_DCOUPL,
|
||||
.refSource = ADCCC26XX_FIXED_REFERENCE,
|
||||
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
|
||||
.inputScalingEnabled = true,
|
||||
.triggerSource = ADCCC26XX_TRIGGER_MANUAL
|
||||
},
|
||||
{
|
||||
.adcDIO = PIN_UNASSIGNED,
|
||||
.adcCompBInput = ADC_COMPB_IN_VSS,
|
||||
.refSource = ADCCC26XX_FIXED_REFERENCE,
|
||||
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
|
||||
.inputScalingEnabled = true,
|
||||
.triggerSource = ADCCC26XX_TRIGGER_MANUAL
|
||||
},
|
||||
{
|
||||
.adcDIO = PIN_UNASSIGNED,
|
||||
.adcCompBInput = ADC_COMPB_IN_VDDS,
|
||||
.refSource = ADCCC26XX_FIXED_REFERENCE,
|
||||
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
|
||||
.inputScalingEnabled = true,
|
||||
.triggerSource = ADCCC26XX_TRIGGER_MANUAL
|
||||
}
|
||||
};
|
||||
|
||||
const ADC_Config ADC_config[] = {
|
||||
{&ADCCC26XX_fxnTable, &adcCC26xxObjects[0], &adcCC26xxHWAttrs[0]},
|
||||
{&ADCCC26XX_fxnTable, &adcCC26xxObjects[1], &adcCC26xxHWAttrs[1]},
|
||||
{&ADCCC26XX_fxnTable, &adcCC26xxObjects[2], &adcCC26xxHWAttrs[2]},
|
||||
{&ADCCC26XX_fxnTable, &adcCC26xxObjects[3], &adcCC26xxHWAttrs[3]},
|
||||
{&ADCCC26XX_fxnTable, &adcCC26xxObjects[4], &adcCC26xxHWAttrs[4]},
|
||||
{&ADCCC26XX_fxnTable, &adcCC26xxObjects[5], &adcCC26xxHWAttrs[5]},
|
||||
{&ADCCC26XX_fxnTable, &adcCC26xxObjects[6], &adcCC26xxHWAttrs[6]},
|
||||
{&ADCCC26XX_fxnTable, &adcCC26xxObjects[7], &adcCC26xxHWAttrs[7]},
|
||||
{&ADCCC26XX_fxnTable, &adcCC26xxObjects[8], &adcCC26xxHWAttrs[8]},
|
||||
{&ADCCC26XX_fxnTable, &adcCC26xxObjects[9], &adcCC26xxHWAttrs[9]},
|
||||
{&ADCCC26XX_fxnTable, &adcCC26xxObjects[10], &adcCC26xxHWAttrs[10]},
|
||||
{NULL, NULL, NULL},
|
||||
};
|
||||
|
||||
/*
|
||||
* ================================ ADC end ========================================
|
||||
*/
|
||||
#endif
|
||||
|
||||
@@ -51,11 +51,6 @@ extern "C" {
|
||||
#include <ti/drivers/PIN.h>
|
||||
#include <driverlib/ioc.h>
|
||||
|
||||
#ifdef HEADSTAGE_UNI_2_0
|
||||
#include "neu/headstage_pin.h"
|
||||
#else
|
||||
#include "uni/headstage_pin.h"
|
||||
#endif
|
||||
/** ============================================================================
|
||||
* Externs
|
||||
* ==========================================================================*/
|
||||
@@ -149,36 +144,36 @@ extern const PIN_Config BoardGpioInitTable[];
|
||||
#define Board_UART_TX Board_BP_UART_Rx /* RXD */
|
||||
#define Board_UART_RX Board_BP_UART_Tx /* TXD */
|
||||
|
||||
///*
|
||||
// * SPI0 interface with DBS chip 2.0
|
||||
// */
|
||||
//#define Board_SPI0_MISO PIN_UNASSIGNED
|
||||
//#define Board_SPI0_MOSI PIN_UNASSIGNED
|
||||
//#define Board_SPI0_CLK PIN_UNASSIGNED
|
||||
//#define Board_SPI0_CS PIN_UNASSIGNED
|
||||
//
|
||||
///*
|
||||
// * SPI1 interface work with LED
|
||||
// */
|
||||
//
|
||||
//#define Board_SPI1_MISO PIN_UNASSIGNED
|
||||
//#define Board_SPI1_MOSI PIN_UNASSIGNED
|
||||
//#define Board_SPI1_CLK PIN_UNASSIGNED
|
||||
//#define Board_SPI1_CS PIN_UNASSIGNED
|
||||
//
|
||||
///* Power Management Board */
|
||||
//#define Board_SRDY Board_BP_Pin_J2_19
|
||||
//#define Board_MRDY Board_BP_Pin_J1_2
|
||||
//
|
||||
///* PWM outputs */
|
||||
//#define Board_PWMPIN0 PIN_UNASSIGNED
|
||||
//#define Board_PWMPIN1 PIN_UNASSIGNED
|
||||
//#define Board_PWMPIN2 PIN_UNASSIGNED
|
||||
//#define Board_PWMPIN3 PIN_UNASSIGNED
|
||||
//#define Board_PWMPIN4 PIN_UNASSIGNED
|
||||
//#define Board_PWMPIN5 PIN_UNASSIGNED
|
||||
//#define Board_PWMPIN6 PIN_UNASSIGNED
|
||||
//#define Board_PWMPIN7 PIN_UNASSIGNED
|
||||
/*
|
||||
* SPI0 is LSK interface
|
||||
*/
|
||||
#define Board_SPI0_MISO PIN_UNASSIGNED
|
||||
#define Board_SPI0_MOSI IOID_0
|
||||
#define Board_SPI0_CLK IOID_1
|
||||
#define Board_SPI0_CS IOID_3
|
||||
|
||||
/*
|
||||
* SPI1 is ASK interface
|
||||
*/
|
||||
|
||||
#define Board_SPI1_MISO PIN_UNASSIGNED
|
||||
#define Board_SPI1_MOSI IOID_13
|
||||
#define Board_SPI1_CLK PIN_UNASSIGNED
|
||||
#define Board_SPI1_CS IOID_4
|
||||
|
||||
/* Power Management Board */
|
||||
#define Board_SRDY Board_BP_Pin_J2_19
|
||||
#define Board_MRDY Board_BP_Pin_J1_2
|
||||
|
||||
/* PWM outputs */
|
||||
#define Board_PWMPIN0 IOID_6
|
||||
#define Board_PWMPIN1 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN2 IOID_8
|
||||
#define Board_PWMPIN3 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN4 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN5 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN6 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN7 PIN_UNASSIGNED
|
||||
|
||||
|
||||
/** ============================================================================
|
||||
@@ -208,16 +203,6 @@ extern const PIN_Config BoardGpioInitTable[];
|
||||
#define Board_GPTIMER3A BOOSTXL_CC2650MA_GPTIMER3A
|
||||
#define Board_GPTIMER3B BOOSTXL_CC2650MA_GPTIMER3B
|
||||
|
||||
/* Generic ADC instance identifiers */
|
||||
#define Board_DIO0_ANALOG IOID_9
|
||||
#define Board_DIO1_ANALOG PIN_UNASSIGNED
|
||||
#define Board_DIO2_ANALOG PIN_UNASSIGNED
|
||||
#define Board_DIO3_ANALOG PIN_UNASSIGNED
|
||||
#define Board_DIO4_ANALOG PIN_UNASSIGNED
|
||||
#define Board_DIO5_ANALOG PIN_UNASSIGNED
|
||||
#define Board_DIO6_ANALOG PIN_UNASSIGNED
|
||||
#define Board_DIO7_ANALOG PIN_UNASSIGNED
|
||||
|
||||
/* Generic PWM instance identifiers */
|
||||
#define Board_PWM0 BOOSTXL_CC2650MA_PWM0
|
||||
#define Board_PWM1 BOOSTXL_CC2650MA_PWM1
|
||||
|
||||
@@ -51,8 +51,6 @@ extern "C" {
|
||||
#include <ti/drivers/PIN.h>
|
||||
#include <driverlib/ioc.h>
|
||||
|
||||
//#include "neu/headstage_pin.h"
|
||||
|
||||
/** ============================================================================
|
||||
* Externs
|
||||
* ==========================================================================*/
|
||||
@@ -80,20 +78,20 @@ extern const PIN_Config BoardGpioInitTable[];
|
||||
#define Board_BTN2 IOID_14
|
||||
|
||||
/* UART Board */
|
||||
#define Board_UART_RX IOID_2 /* RXD */
|
||||
#define Board_UART_TX IOID_3 /* TXD */
|
||||
#define Board_UART_CTS IOID_19 /* CTS */
|
||||
#define Board_UART_RTS IOID_18 /* RTS */
|
||||
#define Board_UART_RX IOID_1 /* RXD */
|
||||
#define Board_UART_TX IOID_2 /* TXD */
|
||||
#define Board_UART_CTS PIN_UNASSIGNED /* CTS */
|
||||
#define Board_UART_RTS PIN_UNASSIGNED /* RTS */
|
||||
|
||||
/* SPI Board */
|
||||
#define Board_SPI0_MISO IOID_8 /* RF1.20 */
|
||||
#define Board_SPI0_MOSI IOID_9 /* RF1.18 */
|
||||
#define Board_SPI0_CLK IOID_10 /* RF1.16 */
|
||||
#define Board_SPI0_CSN IOID_11
|
||||
#define Board_SPI0_MISO PIN_UNASSIGNED /* RF1.20 */
|
||||
#define Board_SPI0_MOSI IOID_12 /* RF1.18 */
|
||||
#define Board_SPI0_CLK PIN_UNASSIGNED /* RF1.16 */
|
||||
#define Board_SPI0_CSN IOID_4
|
||||
#define Board_SPI1_MISO PIN_UNASSIGNED
|
||||
#define Board_SPI1_MOSI PIN_UNASSIGNED
|
||||
#define Board_SPI1_CLK PIN_UNASSIGNED
|
||||
#define Board_SPI1_CSN PIN_UNASSIGNED
|
||||
#define Board_SPI1_MOSI IOID_10
|
||||
#define Board_SPI1_CLK IOID_9
|
||||
#define Board_SPI1_CSN IOID_3
|
||||
|
||||
/* I2C */
|
||||
#define Board_I2C0_SCL0 IOID_4
|
||||
@@ -125,21 +123,21 @@ extern const PIN_Config BoardGpioInitTable[];
|
||||
|
||||
/* Booster pack LCD (430BOOST - Sharp96 Rev 1.1) */
|
||||
#define Board_LCD_CS IOID_24 // SPI chip select
|
||||
#define Board_LCD_EXTCOMIN PIN_UNASSIGNED // External COM inversion
|
||||
#define Board_LCD_EXTCOMIN IOID_12 // External COM inversion
|
||||
#define Board_LCD_ENABLE IOID_22 // LCD enable
|
||||
#define Board_LCD_POWER IOID_23 // LCD power control
|
||||
#define Board_LCD_CS_ON 1
|
||||
#define Board_LCD_CS_OFF 0
|
||||
|
||||
/* PWM outputs */
|
||||
#define Board_PWMPIN0 IOID_12
|
||||
#define Board_PWMPIN1 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN2 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN3 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN0 Board_RLED
|
||||
#define Board_PWMPIN1 Board_GLED
|
||||
#define Board_PWMPIN2 IOID_5
|
||||
#define Board_PWMPIN3 IOID_11
|
||||
#define Board_PWMPIN4 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN5 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN6 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN7 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN7 IOID_11
|
||||
|
||||
/** ============================================================================
|
||||
* Instance identifiers
|
||||
|
||||
@@ -100,7 +100,6 @@ if (typeof NO_ROM == 'undefined' || (typeof NO_ROM != 'undefined' && NO_ROM == 0
|
||||
|
||||
/* ================ Clock configuration ================ */
|
||||
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
|
||||
var Timestamp = xdc.useModule('xdc.runtime.Timestamp');
|
||||
/*
|
||||
* When using Power and calibrateRCOSC is set to true, this should be set to 10.
|
||||
* The timer used by the Clock module supports TickMode_DYNAMIC. This enables us
|
||||
@@ -113,7 +112,6 @@ var Timestamp = xdc.useModule('xdc.runtime.Timestamp');
|
||||
Clock.tickPeriod = 10;
|
||||
Clock.swiPriority = 5;
|
||||
|
||||
Timestamp.SupportProxy = xdc.useModule('ti.sysbios.family.arm.cc26xx.TimestampProvider');
|
||||
|
||||
/* ================ Types configuration ================ */
|
||||
var Types = xdc.useModule('xdc.runtime.Types');
|
||||
@@ -205,7 +203,6 @@ Error.maxDepth = 2;
|
||||
/* ================ Hwi configuration ================ */
|
||||
var halHwi = xdc.useModule('ti.sysbios.hal.Hwi');
|
||||
var m3Hwi = xdc.useModule('ti.sysbios.family.arm.m3.Hwi');
|
||||
|
||||
/*
|
||||
* Checks for Hwi (system) stack overruns while in the Idle loop.
|
||||
*
|
||||
@@ -219,7 +216,6 @@ var m3Hwi = xdc.useModule('ti.sysbios.family.arm.m3.Hwi');
|
||||
*/
|
||||
//halHwi.checkStackFlag = true;
|
||||
halHwi.checkStackFlag = false;
|
||||
//C:\ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650em\simple_peripheral\ccs\app\.config\xconfig_app_ble
|
||||
|
||||
/*
|
||||
* The following options alter the system's behavior when a hardware exception
|
||||
|
||||
@@ -368,9 +368,6 @@ static void HostTestApp_processAttEvent(gattMsgEvent_t *message) {
|
||||
} else if (method == ATT_HANDLE_VALUE_NOTI) {
|
||||
attHandleValueNoti_t *att_notify = (attHandleValueNoti_t *)(&message->msg);
|
||||
master_handle_notify(att_notify->len, att_notify->pValue);
|
||||
} else if (method == ATT_HANDLE_VALUE_IND) {
|
||||
attHandleValueInd_t *att_indicate = (attHandleValueInd_t *)(&message->msg);
|
||||
master_handle_notify(att_indicate->len, att_indicate->pValue);
|
||||
}
|
||||
|
||||
// Free message. Needed only for ATT Protocol messages
|
||||
|
||||
-2567
File diff suppressed because it is too large
Load Diff
-28
@@ -1,28 +0,0 @@
|
||||
@startuml
|
||||
|
||||
|
||||
start
|
||||
|
||||
while (negedge chip select)
|
||||
if (rxbuf is wrong) then (yes)
|
||||
:modify data until it is correct;
|
||||
else
|
||||
:pass;
|
||||
endif
|
||||
partition headstage_notify_append_data {
|
||||
if (buf offset == INIT) then (yes)
|
||||
:reset timestamp;
|
||||
endif
|
||||
if (buf offset == BUFF_SIZE)
|
||||
:set time delta;
|
||||
endif
|
||||
:append data & return index;
|
||||
}
|
||||
if (buf offset == BUFF_SIZE)
|
||||
:headstage_notify_send(0.676ms);
|
||||
endif
|
||||
:headstage_spi_lsk_transaction (0.528ms);
|
||||
endwhile
|
||||
stop
|
||||
|
||||
@enduml
|
||||
+53
-22
@@ -23,7 +23,7 @@ Instruction Specification
|
||||
|
||||
file defined:
|
||||
|
||||
Bio_Pro_Sci / �� / Pi3/DataServer / CC2650 / CC2650���誘銵�
|
||||
Bio_Pro_Sci / 研發 / Pi3/DataServer / CC2650 / CC2650通用指令表
|
||||
|
||||
```
|
||||
struct instruction {
|
||||
@@ -206,7 +206,7 @@ extern ICall_Semaphore semaphore;
|
||||
==== utility macro ====
|
||||
=====================*/
|
||||
|
||||
#define _B_4b4b(a, b) (((a & 0x0f) << 4) | (b & 0x0f))
|
||||
#define _B_4b4b(a, b) ((((a) << 4) & 0xF0) | ((b)&0x0F))
|
||||
|
||||
#define _B_flip2(a) \
|
||||
({ \
|
||||
@@ -242,12 +242,13 @@ extern ICall_Semaphore semaphore;
|
||||
* make task sleep in certain [ms].
|
||||
* count with cpu tick.
|
||||
*/
|
||||
#define headstage_cpu_delay_ms(ms) CPUdelay(ms * 16000)
|
||||
#define headstage_cpu_delay_ms(ms) CPUdelay((ms) * 16000)
|
||||
|
||||
/**
|
||||
* make task sleep in certain [us].
|
||||
* count with cpu tick.
|
||||
*/
|
||||
#define headstage_cpu_delay_us(us) CPUdelay(us * 16)
|
||||
#define headstage_cpu_delay_us(us) CPUdelay((us) * 16)
|
||||
|
||||
/*======================================
|
||||
==== abstract function declaration ====
|
||||
@@ -282,15 +283,12 @@ static void headstage_update_vis_instruction(uint8_t vis_oper);
|
||||
*/
|
||||
static uint8_t CHIP_ID = 0;
|
||||
|
||||
#define CONNECT_HANDLE_UNCONNECTED 0xFFFF
|
||||
|
||||
/**
|
||||
* connection handle. updated by system.
|
||||
*/
|
||||
static uint16_t CONNECT_HANDLE = 0;
|
||||
|
||||
/**
|
||||
* command instruction buffer
|
||||
*/
|
||||
static uint8_t cdr_buf[BLE_CDR_BUFF_SIZE] = {0};
|
||||
static uint16_t CONNECT_HANDLE = CONNECT_HANDLE_UNCONNECTED;
|
||||
|
||||
/*====================
|
||||
==== event table ====
|
||||
@@ -318,9 +316,9 @@ typedef struct {
|
||||
|
||||
#include "headstage_uni.h"
|
||||
|
||||
/*!
|
||||
* main function
|
||||
*/
|
||||
/*======================
|
||||
==== main function ====
|
||||
======================*/
|
||||
|
||||
static EventTableEntry EVENT_TABLE[] = { //
|
||||
#ifdef HEADSTAGE_TNI_H
|
||||
@@ -334,12 +332,6 @@ static EventTableEntry EVENT_TABLE[] = { //
|
||||
#endif
|
||||
#ifdef HEADSTAGE_STI_H
|
||||
{EVT_ALL, &headstage_sti_event},
|
||||
#endif
|
||||
#ifdef HEADSTAGE_NEU_H
|
||||
{EVT_ALL, &headstage_neu_event},
|
||||
#endif
|
||||
#ifdef HEADSTAGE_TEST_DATA_H
|
||||
{EVT_ALL, &headstage_test_event},
|
||||
#endif
|
||||
// terminated
|
||||
{0, NULL}};
|
||||
@@ -348,7 +340,7 @@ static EventTableEntry EVENT_TABLE[] = { //
|
||||
* system event handle. It go through [EVENT_TABLE] and invoke event callback
|
||||
* if event_mask bits set.
|
||||
*/
|
||||
void headstage_event_handle() {
|
||||
static void headstage_event_handle() {
|
||||
for (EventTableEntry *entry = EVENT_TABLE; EVENT_MASK && entry->event_mask; entry++) {
|
||||
if (entry->event_callback && flag_mask(entry->event_mask)) {
|
||||
entry->event_callback();
|
||||
@@ -363,6 +355,8 @@ void headstage_event_handle() {
|
||||
* system handle for instruction input.
|
||||
*/
|
||||
static void headstage_update_instruction(uint8_t *instruction) {
|
||||
static uint8_t cdr_buf[BLE_CDR_BUFF_SIZE] = {0};
|
||||
|
||||
uint8_t ins_type = instruction[0] & 0xF0;
|
||||
CHIP_ID = instruction[0] & 0x0F;
|
||||
uint8_t ins_oper = instruction[1] & 0xF0;
|
||||
@@ -378,8 +372,45 @@ static void headstage_update_instruction(uint8_t *instruction) {
|
||||
break;
|
||||
}
|
||||
case INS_TYPE_CIS: {
|
||||
headstage_update_cis_instruction(ins_oper);
|
||||
break;
|
||||
switch (ins_oper) {
|
||||
case CIS_NOP: {
|
||||
// nothing
|
||||
cdr_buf[0] = _B_4b4b(CIS_NOP, CHIP_ID);
|
||||
cdr_buf[1] = _B_4b4b(CDR_SUCCESS, 0);
|
||||
|
||||
SimpleProfile_SetParameter(BLE_CDR_BUFF_CHAR, 2, cdr_buf);
|
||||
break;
|
||||
}
|
||||
#ifdef HEADSTAGE_CIS_VOLT_H
|
||||
case CIS_VOLT: {
|
||||
uint8_t status = headstage_update_vis_volt(ins_len, instruction + 2, cdr_buf + 2);
|
||||
|
||||
cdr_buf[0] = _B_4b4b(CIS_VOLT, CHIP_ID);
|
||||
cdr_buf[1] = status;
|
||||
|
||||
SimpleProfile_SetParameter(BLE_CDR_BUFF_CHAR, BLE_CDR_BUFF_SIZE, cdr_buf);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef HEADSTAGE_CIS_LED_H
|
||||
case CIS_LED: {
|
||||
uint8_t status = headstage_update_vis_led(ins_len, instruction + 2, cdr_buf + 2);
|
||||
|
||||
cdr_buf[0] = _B_4b4b(CIS_LED, CHIP_ID);
|
||||
cdr_buf[1] = status;
|
||||
|
||||
SimpleProfile_SetParameter(BLE_CDR_BUFF_CHAR, BLE_CDR_BUFF_SIZE, cdr_buf);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
default: {
|
||||
cdr_buf[0] = _B_4b4b(ins_oper, CHIP_ID);
|
||||
cdr_buf[1] = _B_4b4b(CDR_FAILURE, 0);
|
||||
|
||||
SimpleProfile_SetParameter(BLE_CDR_BUFF_CHAR, BLE_CDR_BUFF_SIZE, cdr_buf);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -3,9 +3,9 @@
|
||||
#ifndef HEADSTAGE_ARM_H
|
||||
#define HEADSTAGE_ARM_H
|
||||
|
||||
static uint16_t headstage_ramp_data_counter = 0;
|
||||
|
||||
static void headstage_arm_append_ramp_data(uint8_t *buff) {
|
||||
static uint16_t headstage_ramp_data_counter = 0;
|
||||
|
||||
uint16_t v = headstage_ramp_data_counter++;
|
||||
|
||||
@@ -13,4 +13,5 @@ static void headstage_arm_append_ramp_data(uint8_t *buff) {
|
||||
buff[1] = (uint8_t)(v << 2);
|
||||
}
|
||||
|
||||
|
||||
#endif // HEADSTAGE_ARM_H
|
||||
|
||||
-20
@@ -1,20 +0,0 @@
|
||||
/* Copyright (c) 2019. BioPro. Scientific.
|
||||
*/
|
||||
#ifndef HEADSTAGE_BATT_H
|
||||
#define HEADSTAGE_BATT_H
|
||||
|
||||
#include <driverlib/aon_batmon.h>
|
||||
#define MAX_BATTERY_CAPACITY 4200
|
||||
static uint8_t battery_percent = 100;
|
||||
|
||||
static uint8_t headstage_battery_percent() {
|
||||
uint8_t internal_battery_percent;
|
||||
uint32_t internal_batt_sense = AONBatMonBatteryVoltageGet();
|
||||
internal_batt_sense = (internal_batt_sense * 125) >> 5;
|
||||
internal_batt_sense = (internal_batt_sense * 100) / MAX_BATTERY_CAPACITY;
|
||||
internal_battery_percent = internal_batt_sense & 0xff;
|
||||
if (internal_battery_percent < battery_percent) battery_percent = internal_battery_percent;
|
||||
return battery_percent;
|
||||
}
|
||||
|
||||
#endif // HEADSTAGE_BATT_H
|
||||
+4
-5
@@ -1,12 +1,11 @@
|
||||
/* Copyright (c) 2019. BioPro. Scientific.
|
||||
*/
|
||||
#ifndef HEADSTAGE_LED_H
|
||||
#error "headstage_led.h not included"
|
||||
#endif
|
||||
|
||||
#ifndef HEADSTAGE_CIS_LED_H
|
||||
#define HEADSTAGE_CIS_LED_H
|
||||
|
||||
#include "headstage_led.h"
|
||||
|
||||
// clang-format off
|
||||
#define CIS_LED_DISABLE 0x00
|
||||
#define CIS_LED_ENABLE 0x01
|
||||
@@ -25,8 +24,8 @@ static void headstage_cis_led_enable(uint8_t enable);
|
||||
static uint8_t headstage_cis_led_set_pattern(uint8_t pattern);
|
||||
|
||||
/**
|
||||
* @param pattern: pattern number
|
||||
* @param parameter: led parameter, NULL to unset
|
||||
* @para pattern: pattern number
|
||||
* @para parameter: led parameter, NULL to unset
|
||||
* @return: CDR_SUCCESS
|
||||
*/
|
||||
static uint8_t headstage_cis_led_set_value(uint8_t pattern, //
|
||||
|
||||
+9
-7
@@ -30,13 +30,15 @@ static void headstage_clock_callback(UArg arg) {
|
||||
|
||||
// XXX function not tested
|
||||
// period in mini second
|
||||
#define headstage_clock_open(_period) \
|
||||
do { \
|
||||
Clock_Params param; \
|
||||
Clock_Params_init(¶m); \
|
||||
param.period = 48000*(_period); \
|
||||
param.startFlag = false; \
|
||||
clock_handle = Clock_create(headstage_clock_callback, 1, ¶m, NULL); \
|
||||
#define headstage_clock_open(p) \
|
||||
do { \
|
||||
Clock_Params param; \
|
||||
Clock_Params_init(¶m); \
|
||||
param.period = 0; \
|
||||
param.startFlag = false; \
|
||||
clock_handle = Clock_create(headstage_clock_callback, 0, ¶m, NULL); \
|
||||
uint32_t _period = (p)*1000 / Clock_tickPeriod; \
|
||||
Clock_setPeriod(clock_handle, _period); \
|
||||
} while (0)
|
||||
|
||||
#define headstage_clock_set_frequency(frequency) \
|
||||
|
||||
+2
-2
@@ -27,7 +27,7 @@ static void headstage_gptimer_callback(GPTimerCC26XX_Handle handle, GPTimerCC26X
|
||||
params.width = GPT_CONFIG_16BIT; \
|
||||
params.mode = GPT_MODE_PERIODIC_DOWN; \
|
||||
params.debugStallMode = GPTimerCC26XX_DEBUG_STALL_OFF; \
|
||||
gptimer_handle = GPTimerCC26XX_open(Board_GPTIMER3A, ¶ms); \
|
||||
gptimer_handle = GPTimerCC26XX_open(Board_GPTIMER0A, ¶ms); \
|
||||
GPTimerCC26XX_setLoadValue(gptimer_handle, 0xFFFFFF); \
|
||||
GPTimerCC26XX_registerInterrupt(gptimer_handle, headstage_gptimer_callback, GPT_INT_TIMEOUT); \
|
||||
} while (0)
|
||||
@@ -42,4 +42,4 @@ static void headstage_gptimer_callback(GPTimerCC26XX_Handle handle, GPTimerCC26X
|
||||
GPTimerCC26XX_setLoadValue(gptimer_handle, _load); \
|
||||
} while (0)
|
||||
|
||||
#endif // HEADSTAGE_GPTIMER_H
|
||||
#endif // HEADSTAGE_GPTIMER_H
|
||||
-84
@@ -1,84 +0,0 @@
|
||||
/* Copyright (c) 2019. BioPro. Scientific.
|
||||
*/
|
||||
|
||||
/*
|
||||
|
||||
Headstage indicate utility
|
||||
==========================
|
||||
|
||||
reference code :
|
||||
root:
|
||||
glucose.c
|
||||
glucserive.c
|
||||
|
||||
code need modifying:
|
||||
headstage_indicate.h
|
||||
simple_gatt_profile.c : WriteAtterCB -> add case "indication" to support indicate
|
||||
|
||||
sipmle_peripheral.c : find another service callback
|
||||
|
||||
use this website to construct software structure : http://plantuml.com/zh/
|
||||
|
||||
reference document:
|
||||
bluetooth Core5.1 Vol 3, Part F, Section 3.4.6
|
||||
The Prepare Write Request is used to request the server to prepare to write the
|
||||
value of an attribute. The server will respond to this request with a Prepare Write
|
||||
Response, so that the client can verify that the value was received correctly.
|
||||
|
||||
host-test can ask simple-peripheral to prepare the queue to write attribute
|
||||
|
||||
5.3.4.3 Queued Writes
|
||||
Prepare Write commands allows a GATT server to send more payload data by queuing up multiple write
|
||||
requests. The default queue size is 5. With a default MTU of 23 and payload of 18 bytes, up to 90 bytes of
|
||||
payload can be sent. Refer to Core_v4.2 specification (Vol 3, Part F, Section 3.4.6) for more information
|
||||
on queued writes.
|
||||
Adjust the Prepare Write queue with GATTServApp_SetParameter with parameter
|
||||
GATT_PARAM_NUM_PREPARE_WRITES. There is no specified limit, but it is bounded by the available
|
||||
HEAPMGR space. Refer to the API definition in gattservapp.h.
|
||||
|
||||
GATT_PARAM_NUM_PREPARE_WRITES
|
||||
|
||||
*/
|
||||
|
||||
#ifndef HEADSTAGE_INDICATE_H
|
||||
#define HEADSTAGE_INDICATE_H
|
||||
|
||||
#include <xdc/runtime/Timestamp.h>
|
||||
|
||||
#define headstage_time_stamp() Timestamp_get32()
|
||||
|
||||
/*==========================
|
||||
==== indicate function ====
|
||||
=========================*/
|
||||
|
||||
/*
|
||||
* send indicate
|
||||
* connHandle -> where to assign this parameter
|
||||
*/
|
||||
|
||||
static bStatus_t headstage_indicate() {
|
||||
uint16_t buffer_size = BLE_NOT_BUFF_SIZE;
|
||||
uint8_t *value = (uint8_t *)GATT_bm_alloc(CONNECT_HANDLE, ATT_HANDLE_VALUE_IND, GATT_MAX_MTU,&buffer_size);
|
||||
|
||||
if (value != NULL) {
|
||||
memcpy(value, headstage_notify_buffer, buffer_size);
|
||||
}
|
||||
|
||||
attHandleValueInd_t indicate = {
|
||||
// clang-format off
|
||||
.handle = 0x1E,
|
||||
.len = buffer_size,
|
||||
.pValue = value
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
if (GATT_Indication(CONNECT_HANDLE, &indicate, 0, ICall_getEntityId()) != SUCCESS) {
|
||||
GATT_bm_free((gattMsg_t *)&indicate, ATT_HANDLE_VALUE_IND);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
+29
-15
@@ -125,7 +125,6 @@ static uint8_t headstage_led_set_color(uint16_t *ins_buf, uint8_t repeat, uint8_
|
||||
/*============================
|
||||
==== LED implement (SPI) ====
|
||||
===========================*/
|
||||
#define HEADSTAGE_LED_USE_SPI
|
||||
|
||||
#ifdef HEADSTAGE_LED_USE_SPI
|
||||
|
||||
@@ -192,33 +191,48 @@ static void headstage_led_color(uint8_t color) {
|
||||
==== LED implement (GPIO) ====
|
||||
============================*/
|
||||
|
||||
#if defined (HEADSTAGE_UNI_H) || defined(HEADSTAGE_TEST_DATA_H)
|
||||
#define HEADSTAGE_LED_USE_GPIO
|
||||
#endif
|
||||
|
||||
#ifdef HEADSTAGE_LED_USE_GPIO
|
||||
#include "headstage_pin.h"
|
||||
/*
|
||||
every 400us to transmit spi data
|
||||
*/
|
||||
|
||||
#define SPI_LED_BUFF_SIZE 20
|
||||
#define SPI_LED_REPEAT 2
|
||||
|
||||
static uint16_t headstage_spi_led_txbuf[SPI_LED_BUFF_SIZE];
|
||||
|
||||
#define LED_GPIO_DELAY 16 * 400 // 2500hz
|
||||
|
||||
/**
|
||||
* every 400us to transmit spi data
|
||||
*/
|
||||
static void headstage_led_spi_transmit() {
|
||||
for (int8_t i = 0; i < 8; i++) {
|
||||
uint16_t d = headstage_spi_led_txbuf[i];
|
||||
for (int8_t j = 15; j >= 0; j--) {
|
||||
int16_t v = (d & (1 << j)); // why check > 0 or not
|
||||
bool SET_LED = (v > 0) ? 1 : 0;
|
||||
headstage_pin_output(PIN_LED_CLK, 0);
|
||||
CPUdelay(16 * 400); // 2500hz
|
||||
headstage_pin_output(PIN_LED_OUT, SET_LED);
|
||||
bool high = ((d & (1 << j)) > 0) ? 1 : 0;
|
||||
|
||||
headstage_pin_output(PIN_LED_CLK, 1);
|
||||
CPUdelay(16 * 400); // 2500hz
|
||||
CPUdelay(LED_GPIO_DELAY); // 2500hz
|
||||
|
||||
headstage_pin_output(PIN_LED_OUT, high);
|
||||
headstage_pin_output(PIN_LED_CLK, 0);
|
||||
CPUdelay(LED_GPIO_DELAY); // 2500hz
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void headstage_led_spi_color(uint8_t color) {
|
||||
static void headstage_led_open() {}
|
||||
|
||||
static void headstage_led_close() {}
|
||||
|
||||
static void headstage_led_send(LEDParameter *led) {
|
||||
headstage_led_set_buffer(headstage_spi_led_txbuf, SPI_LED_REPEAT, led);
|
||||
|
||||
headstage_led_spi_transmit();
|
||||
}
|
||||
|
||||
static void headstage_led_color(uint8_t color) {
|
||||
headstage_led_set_color(headstage_spi_led_txbuf, SPI_LED_REPEAT, color);
|
||||
|
||||
headstage_led_spi_transmit();
|
||||
}
|
||||
|
||||
|
||||
-1003
File diff suppressed because it is too large
Load Diff
+18
-2
@@ -31,7 +31,8 @@ optional implement
|
||||
|
||||
#include <xdc/runtime/Timestamp.h>
|
||||
|
||||
#define headstage_time_stamp_us() (Timestamp_get32() / 2)
|
||||
#define headstage_time_stamp() Timestamp_get32()
|
||||
#define headstage_time_stamp_ms() (Timestamp_get32() / 32)
|
||||
|
||||
/*========================
|
||||
==== notify function ====
|
||||
@@ -51,7 +52,7 @@ static void headstage_notify_send() {
|
||||
if (value != NULL) {
|
||||
memcpy(value, headstage_notify_buffer, buffer_size);
|
||||
|
||||
attHandleValueNoti_t notify = {
|
||||
attHandleValueNoti_t notify =
|
||||
// clang-format off
|
||||
.handle = 0x1E,
|
||||
.len = buffer_size,
|
||||
@@ -66,9 +67,24 @@ static void headstage_notify_send() {
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
SimpleProfile_SetParameter(BLE_NOT_BUFF_CHAR, BLE_NOT_BUFF_SIZE, headstage_notify_buffer);
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(HEADSTAGE_TNI_H)
|
||||
#include "tni/headstage_notify.h"
|
||||
#elif defined(HEADSTAGE_UNI_H)
|
||||
#include "tni/headstage_notify.h"
|
||||
#elif defined(HEADSTAGE_ZM_H)
|
||||
#include "zm/headstage_notify.h"
|
||||
#elif defined(HEADSTAGE_STI_H)
|
||||
#include "sti/headstage_notify.h"
|
||||
#else
|
||||
|
||||
#error "headstage_notify"
|
||||
|
||||
#endif
|
||||
|
||||
#endif // HEADSTAGE_NOTIFY_H
|
||||
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
/* Copyright (c) 2019. BioPro. Scientific.
|
||||
*/
|
||||
|
||||
#ifndef HEADSTAGE_NOTIFY_GENERAL_H
|
||||
#define HEADSTAGE_NOTIFY_GENERAL_H
|
||||
|
||||
#ifndef HEADSTAGE_NOTIFY_H
|
||||
#error "headstage/headstage_notify.h not included"
|
||||
#endif
|
||||
|
||||
static uint32_t not_buf_offset = 0;
|
||||
static uint32_t not_time_stamp = 0;
|
||||
|
||||
static void headstage_notify_set_timestamp() {
|
||||
not_time_stamp = headstage_time_stamp();
|
||||
|
||||
headstage_notify_buffer[2] = not_time_stamp & 0xFF;
|
||||
headstage_notify_buffer[3] = (not_time_stamp >> 8) & 0xFF;
|
||||
headstage_notify_buffer[4] = (not_time_stamp >> 16) & 0xFF;
|
||||
headstage_notify_buffer[5] = (not_time_stamp >> 24) & 0xFF;
|
||||
}
|
||||
|
||||
static void _headstage_notify_flip_buffer(uint8_t data_length) {
|
||||
headstage_notify_buffer[0] = CHIP_ID;
|
||||
headstage_notify_buffer[1] = data_length;
|
||||
|
||||
not_buf_offset = 0;
|
||||
}
|
||||
|
||||
#endif // HEADSTAGE_NOTIFY_GENERAL_H
|
||||
-4
@@ -14,10 +14,6 @@
|
||||
#include "zm/headstage_pin.h"
|
||||
#elif defined(HEADSTAGE_STI_H)
|
||||
#include "sti/headstage_pin.h"
|
||||
#elif defined(HEADSTAGE_NEU_H)
|
||||
#include "neu/headstage_pin.h"
|
||||
#elif defined(HEADSTAGE_TEST_DATA_H)
|
||||
#include "uni/headstage_pin.h"
|
||||
#else
|
||||
|
||||
#error "headstage_pin headstage_pin_configuration not defined"
|
||||
|
||||
+1
-12
@@ -11,9 +11,6 @@
|
||||
/*
|
||||
* SPI parameter and function declaration
|
||||
*/
|
||||
|
||||
static uint8_t spi_rxbuf[120] = {0};
|
||||
|
||||
static SPI_Handle spi_handle = NULL;
|
||||
static SPI_Transaction spi_transaction;
|
||||
|
||||
@@ -31,7 +28,7 @@ static SPI_Transaction spi_transaction;
|
||||
spi_parameter.bitRate = 12000000; \
|
||||
spi_parameter.transferTimeout = 1000; \
|
||||
spi_parameter.dataSize = 8; \
|
||||
spi_parameter.frameFormat = SPI_POL0_PHA1; \
|
||||
spi_parameter.frameFormat = SPI_POL0_PHA0; \
|
||||
spi_handle = SPI_open(Board_SPI0, &spi_parameter); \
|
||||
} while (0)
|
||||
|
||||
@@ -43,12 +40,4 @@ static SPI_Transaction spi_transaction;
|
||||
SPI_transfer(spi_handle, &spi_transaction); \
|
||||
})
|
||||
|
||||
#define headstage_spi_test_transaction(len) \
|
||||
({ \
|
||||
spi_transaction.txBuf = NULL; \
|
||||
spi_transaction.rxBuf = (spi_rxbuf); \
|
||||
spi_transaction.count = (len); \
|
||||
SPI_transfer(spi_handle, &spi_transaction); \
|
||||
})
|
||||
|
||||
#endif // HEADSTAGE_SPI_H
|
||||
|
||||
+931
-151
File diff suppressed because it is too large
Load Diff
-30
@@ -1,30 +0,0 @@
|
||||
/* Copyright (c) 2019. BioPro. Scientific.
|
||||
*/
|
||||
|
||||
/**
|
||||
\file headstage_swi.h
|
||||
In order to enable interrupt, hookset function need declaring.
|
||||
reference:ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/docs/Bios_User_Guide.pdf
|
||||
*/
|
||||
|
||||
#ifndef HEADSTAGE_SWI_H
|
||||
#define HEADSTAGE_SWI_H
|
||||
|
||||
#include <ti/sysbios/knl/Swi.h>
|
||||
#include <xdc/runtime/Error.h>
|
||||
|
||||
/*
|
||||
software interrupt
|
||||
*/
|
||||
Swi_Handle headstage_swi;
|
||||
|
||||
typedef void (*headstage_swiFxn)(UArg arg0, UArg arg1);
|
||||
|
||||
void headstage_swi_init(headstage_swiFxn callback) {
|
||||
Error_Block eb;
|
||||
Error_init(&eb);
|
||||
headstage_swiFxn my_swi = callback;
|
||||
headstage_swi = Swi_create(my_swi, NULL, &eb);
|
||||
}
|
||||
|
||||
#endif
|
||||
-119
@@ -1,119 +0,0 @@
|
||||
#ifndef HEADSTAGE_H
|
||||
#error "headstage_test_data.h not include"
|
||||
#endif
|
||||
|
||||
#ifndef HEADSTAGE_TEST_DATA_H
|
||||
#define HEADSTAGE_TEST_DATA_H
|
||||
|
||||
/**
|
||||
* @file headstage_test_data.h
|
||||
*
|
||||
* Copyright (c) 2019. BioPro. Scientific
|
||||
*
|
||||
* NEULIVE test structure:
|
||||
*
|
||||
* headstage_init()
|
||||
* headstage_test_event()
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#define DEVICE_NAME "Neulive-v1.3"
|
||||
#define MAJOR_PRODUCT_NUMBER 1
|
||||
#define MINOR_PRODUCT_NUMBER 1
|
||||
#define MAJOR_VERSION_NUMBER 1
|
||||
#define MINOR_VERSION_NUMBER 3
|
||||
|
||||
|
||||
#include "time.h"
|
||||
#include "headstage_pin.h"
|
||||
#include "headstage_led.h"
|
||||
#include "headstage_notify.h"
|
||||
#include "headstage_batt.h"
|
||||
#include "headstage_gptimer.h"
|
||||
#include "headstage_spi.h"
|
||||
#include "tni/headstage_notify.h"
|
||||
|
||||
static void headstage_test_periodic();
|
||||
|
||||
static void headstage_init() {
|
||||
headstage_pin_open();
|
||||
headstage_spi_open();
|
||||
headstage_gptimer_open();
|
||||
headstage_gptimer_set_frequency(1000);
|
||||
}
|
||||
|
||||
static void headstage_update_ris_instruction(uint8_t ins_len, uint8_t* instruction) {
|
||||
}
|
||||
|
||||
static void headstage_update_vis_instruction(uint8_t ins_oper) {
|
||||
switch (ins_oper) {
|
||||
case VIS_STI:
|
||||
headstage_gptimer_start();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void headstage_update_cis_instruction(uint8_t ins_oper) {
|
||||
}
|
||||
|
||||
static void headstage_test_event() {
|
||||
if (flag_mask(EVT_PERIODIC_GPTIMER)) {
|
||||
flag_disable(EVT_PERIODIC_GPTIMER);
|
||||
headstage_test_periodic();
|
||||
}
|
||||
|
||||
if (EVENT_MASK == 0) {
|
||||
// fast return
|
||||
}
|
||||
|
||||
if (flag_mask(EVT_DISCONNECTED)) {
|
||||
headstage_update_vis_instruction(VIS_INT);
|
||||
}
|
||||
}
|
||||
|
||||
static void headstage_append_data( uint8_t* dat_buf) {
|
||||
for (uint8_t i = 0; i < 1 ; i++) {
|
||||
dat_buf[3*i] = ( 0x0f << 4 ) | ( dat_buf[3*i+1] );
|
||||
dat_buf[3*i+1] = dat_buf[3*i+2] ;
|
||||
}
|
||||
}
|
||||
|
||||
static uint8_t headstage_append_notify_data(uint8_t* data_value) {
|
||||
if ( not_buf_offset <= NOT_BUF_OFFSET_INIT) {
|
||||
headstage_notify_set_timestamp();
|
||||
not_buf_offset = NOT_BUF_OFFSET_INIT;
|
||||
}
|
||||
for (uint8_t i = 0; i < 1 ; i++) {
|
||||
headstage_notify_buffer[2*i + not_buf_offset] = data_value[3*i];
|
||||
headstage_notify_buffer[2*i + 1 + not_buf_offset] = data_value[3*i + 1];
|
||||
}
|
||||
not_buf_offset = not_buf_offset + 2;
|
||||
if (not_buf_offset == 200) {
|
||||
uint32_t current = headstage_time_stamp_us();
|
||||
uint32_t time_delta = ((current - not_time_stamp)) & 0xFFFF;
|
||||
|
||||
headstage_notify_buffer[6] = time_delta & 0xFF;
|
||||
headstage_notify_buffer[7] = (time_delta >> 8) & 0xFF;
|
||||
}
|
||||
return not_buf_offset;
|
||||
}
|
||||
|
||||
/**
|
||||
* @fn headstage_test_periodic
|
||||
* description : every 100us sample adc data
|
||||
*/
|
||||
|
||||
static void headstage_test_periodic() {
|
||||
headstage_spi_test_transaction(3);
|
||||
headstage_append_data(spi_rxbuf);
|
||||
uint8_t index = headstage_append_notify_data(spi_rxbuf);
|
||||
if ( index >= 200 ) {
|
||||
headstage_notify_flip_buffer();
|
||||
headstage_notify_send();
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
-1
@@ -36,7 +36,6 @@ Real instruction format
|
||||
#include "headstage_gptimer.h"
|
||||
#include "headstage_notify.h"
|
||||
#include "headstage_pin.h"
|
||||
#include "tni/headstage_notify.h"
|
||||
#include "tni/headstage_spi.h"
|
||||
|
||||
/*=================================
|
||||
|
||||
+392
-459
File diff suppressed because it is too large
Load Diff
-5
@@ -1,5 +0,0 @@
|
||||
/* Copyright (c) 2019. BioPro. Scientific.
|
||||
*/
|
||||
#ifndef HEADSTAGE_ADC_H
|
||||
#define HEADSTAGE_ADC_H
|
||||
#endif
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
/* Copyright (c) 2019. BioPro. Scientific.
|
||||
*/
|
||||
#ifndef NEULIVE_2P0
|
||||
#define NEULIVE_2P0
|
||||
|
||||
/*============================
|
||||
==== product information ====
|
||||
===========================*/
|
||||
|
||||
#define DEVICE_NAME "Neulive-v2.0"
|
||||
#define MAJOR_PRODUCT_NUMBER 1
|
||||
#define MINOR_PRODUCT_NUMBER 1
|
||||
#define MAJOR_VERSION_NUMBER 2
|
||||
#define MINOR_VERSION_NUMBER 0
|
||||
|
||||
#endif
|
||||
-61
@@ -1,61 +0,0 @@
|
||||
/* Copyright (c) 2019. BioPro. Scientific.
|
||||
*/
|
||||
|
||||
#ifndef HEADSTAGE_NOTIFY_TDC4VC_H
|
||||
#define HEADSTAGE_NOTIFY_TDC4VC_H
|
||||
|
||||
#ifndef HEADSTAGE_NOTIFY_H
|
||||
#error "headstage/headstage_notify.h not included"
|
||||
#endif
|
||||
|
||||
#define NOT_BUF_OFFSET_INIT 8
|
||||
|
||||
static uint32_t not_buf_offset = NOT_BUF_OFFSET_INIT;
|
||||
static uint32_t not_time_stamp = 0;
|
||||
|
||||
static void headstage_notify_set_timestamp() {
|
||||
not_time_stamp = headstage_time_stamp_us();
|
||||
|
||||
headstage_notify_buffer[2] = not_time_stamp & 0xFF;
|
||||
headstage_notify_buffer[3] = (not_time_stamp >> 8) & 0xFF;
|
||||
headstage_notify_buffer[4] = (not_time_stamp >> 16) & 0xFF;
|
||||
headstage_notify_buffer[5] = (not_time_stamp >> 24) & 0xFF;
|
||||
}
|
||||
|
||||
static void headstage_notify_flip_buffer() {
|
||||
uint8_t data_count = (not_buf_offset - NOT_BUF_OFFSET_INIT) / 2;
|
||||
|
||||
headstage_notify_buffer[0] = CHIP_ID;
|
||||
headstage_notify_buffer[1] = data_count;
|
||||
|
||||
not_buf_offset = NOT_BUF_OFFSET_INIT;
|
||||
}
|
||||
|
||||
static uint8_t headstage_notify_append_data(uint8_t *data_value) {
|
||||
if (not_buf_offset <= NOT_BUF_OFFSET_INIT) {
|
||||
headstage_notify_set_timestamp();
|
||||
not_buf_offset = NOT_BUF_OFFSET_INIT;
|
||||
}
|
||||
|
||||
if (data_value == NULL) {
|
||||
headstage_notify_buffer[not_buf_offset++] = 0x00;
|
||||
headstage_notify_buffer[not_buf_offset++] = 0x03;
|
||||
} else {
|
||||
headstage_notify_buffer[not_buf_offset++] = data_value[0];
|
||||
headstage_notify_buffer[not_buf_offset++] = data_value[1];
|
||||
}
|
||||
|
||||
if (not_buf_offset == BLE_NOT_BUFF_SIZE) {
|
||||
uint32_t current = headstage_time_stamp_us();
|
||||
uint32_t time_delta = ((current - not_time_stamp)) & 0xFFFF;
|
||||
|
||||
headstage_notify_buffer[6] = time_delta & 0xFF;
|
||||
headstage_notify_buffer[7] = (time_delta >> 8) & 0xFF;
|
||||
}
|
||||
|
||||
uint8_t ret = not_buf_offset;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif // HEADSTAGE_NOTIFY_TDC4VAF2_H
|
||||
-84
@@ -1,84 +0,0 @@
|
||||
/* Copyright (c) 2019. BioPro. Scientific.
|
||||
*/
|
||||
#ifndef HEADSTAGE_PIN_NEU_H
|
||||
#define HEADSTAGE_PIN_NEU_H
|
||||
|
||||
#if defined(CC2650_LAUNCHXL)
|
||||
|
||||
// clang-format off
|
||||
#define PIN_RESET IOID_0 // SPI1 to receive LSK
|
||||
#define PIN_EN_ADC_SPI_CLK IOID_1 // SPI1 clock
|
||||
#define PIN_DC_DC IOID_2 // STI select need
|
||||
#define PIN_BATT_HALF IOID_3 //
|
||||
#define PIN_AMP_VCK IOID_4 //
|
||||
#define PIN_LED_SDI IOID_7 //
|
||||
#define PIN_LED_CLK IOID_8 //
|
||||
#define PIN_STI_CLK IOID_9 //
|
||||
#define PIN_SPI_MISO IOID_10 //
|
||||
#define PIN_SPI_MOSI IOID_11 //
|
||||
#define PIN_SPI_CS IOID_12 //
|
||||
#define PIN_SPI_CLK IOID_13 //
|
||||
#define PIN_SYS_CLK IOID_14 //
|
||||
// clang-format on
|
||||
|
||||
#elif defined(BOOSTXL_CC2650MA)
|
||||
|
||||
// clang-format off
|
||||
|
||||
#define PIN_RESET IOID_0 // SPI1 to receive LSK
|
||||
#define PIN_EN_ADC_SPI_CLK IOID_1 // SPI1 clock
|
||||
#define PIN_DC_DC IOID_2 // STI select need
|
||||
#define PIN_BATT_HALF IOID_3 //
|
||||
#define PIN_AMP_VCK IOID_4 //
|
||||
#define PIN_LED_SDI IOID_7 //
|
||||
#define PIN_LED_CLK IOID_8 //
|
||||
#define PIN_STI_CLK IOID_9 //
|
||||
#define PIN_SPI_MISO IOID_10 //
|
||||
#define PIN_SPI_MOSI IOID_11 //
|
||||
#define PIN_SPI_CS IOID_12 //
|
||||
#define PIN_SPI_CLK IOID_13 //
|
||||
#define PIN_SYS_CLK IOID_14 //
|
||||
|
||||
// clang-format on
|
||||
#endif
|
||||
/*
|
||||
* SPI0 interface with DBS chip 2.0
|
||||
*/
|
||||
#define Board_SPI0_MISO PIN_SPI_MISO
|
||||
#define Board_SPI0_MOSI PIN_SPI_MOSI
|
||||
#define Board_SPI0_CLK PIN_SPI_CLK
|
||||
#define Board_SPI0_CSN PIN_SPI_CS
|
||||
|
||||
/*
|
||||
* SPI1 interface work with LED
|
||||
*/
|
||||
|
||||
#define Board_SPI1_MISO PIN_UNASSIGNED
|
||||
#define Board_SPI1_MOSI PIN_LED_SDI
|
||||
#define Board_SPI1_CLK PIN_LED_CLK
|
||||
#define Board_SPI1_CSN PIN_UNASSIGNED
|
||||
|
||||
/* Power Management Board */
|
||||
#define Board_SRDY Board_BP_Pin_J2_19
|
||||
#define Board_MRDY Board_BP_Pin_J1_2
|
||||
|
||||
/* PWM outputs */
|
||||
#define Board_PWMPIN0 PIN_AMP_VCK
|
||||
#define Board_PWMPIN1 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN2 PIN_SYS_CLK
|
||||
#define Board_PWMPIN3 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN4 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN5 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN6 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN7 PIN_UNASSIGNED
|
||||
|
||||
static PIN_Config headstage_pin_configuration[] = { //
|
||||
PIN_RESET | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
PIN_EN_ADC_SPI_CLK | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
PIN_DC_DC | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
PIN_BATT_HALF | PIN_INPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
PIN_STI_CLK | PIN_INPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
//
|
||||
PIN_TERMINATE};
|
||||
|
||||
#endif // HEADSTAGE_PIN_UNI_H
|
||||
-37
@@ -1,37 +0,0 @@
|
||||
/* Copyright (c) 2019. BioPro. Scientific.
|
||||
*/
|
||||
#ifndef HEADSTAGE_PWM_H
|
||||
#define HEADSTAGE_PWM_H
|
||||
|
||||
#include <Board.h>
|
||||
#include <ti/drivers/PWM.h>
|
||||
|
||||
static PWM_Handle headstage_system_pwm_handle = NULL;
|
||||
static PWM_Handle headstage_poly_r_pwm_handle = NULL; // poly-R adjustment clock
|
||||
|
||||
#define headstage_pwm_open() \
|
||||
do { \
|
||||
PWM_init(); \
|
||||
PWM_Params headstage_system_pwm_params; \
|
||||
PWM_Params_init(&headstage_system_pwm_params); \
|
||||
headstage_system_pwm_params.idleLevel = PWM_IDLE_LOW; \
|
||||
headstage_system_pwm_params.periodUnits = PWM_PERIOD_HZ; \
|
||||
headstage_system_pwm_params.periodValue = NEU_SYS_CLK; \
|
||||
headstage_system_pwm_params.dutyUnits = PWM_DUTY_FRACTION; \
|
||||
headstage_system_pwm_params.dutyValue = PWM_DUTY_FRACTION_MAX / 2; \
|
||||
headstage_system_pwm_handle = PWM_open(Board_PWM2, &headstage_system_pwm_params); \
|
||||
PWM_Params headstage_poly_r_pwm_params; \
|
||||
PWM_Params_init(&headstage_poly_r_pwm_params); \
|
||||
headstage_poly_r_pwm_params.idleLevel = PWM_IDLE_LOW; \
|
||||
headstage_poly_r_pwm_params.periodUnits = PWM_PERIOD_HZ; \
|
||||
headstage_poly_r_pwm_params.periodValue = NEU_POLY_R_CLK; \
|
||||
headstage_poly_r_pwm_params.dutyUnits = PWM_DUTY_FRACTION; \
|
||||
headstage_poly_r_pwm_params.dutyValue = PWM_DUTY_FRACTION_MAX / 2; \
|
||||
headstage_poly_r_pwm_handle = PWM_open(Board_PWM0, &headstage_poly_r_pwm_params); \
|
||||
} while (0)
|
||||
|
||||
#define headstage_pwm_start(handle) PWM_start(handle)
|
||||
#define headstage_pwm_stop(handle) PWM_stop(handle)
|
||||
#define headstage_pwm_close(handle) PWM_close(handle)
|
||||
|
||||
#endif // HEADSTAGE_PWM_H
|
||||
-73
@@ -1,73 +0,0 @@
|
||||
/* Copyright (c) 2019. BioPro. Scientific.
|
||||
*/
|
||||
#ifndef HEADSTAGE_SPI_H
|
||||
#define HEADSTAGE_SPI_H
|
||||
|
||||
#if defined(BOOSTXL_CC2650MA) && !defined(HEADSTAGE_MA_USE_SPI2)
|
||||
#error "put HEADSTAGE_MA_USE_SPI2 in predefined"
|
||||
#endif
|
||||
|
||||
#include <Board.h>
|
||||
#include <ti/drivers/SPI.h>
|
||||
#include <ti/drivers/dma/UDMACC26XX.h>
|
||||
#include <ti/drivers/spi/SPICC26XXDMA.h>
|
||||
|
||||
#define SPI_BUFFER_SIZE 20
|
||||
|
||||
static uint8_t spi_txbuf[SPI_BUFFER_SIZE] = {0};
|
||||
static uint8_t spi_rxbuf[SPI_BUFFER_SIZE] = {0};
|
||||
|
||||
static SPI_Handle headstage_spi_handle = NULL;
|
||||
|
||||
static SPI_Transaction headstage_spi_transaction;
|
||||
|
||||
static void headstage_spi_callback(SPI_Handle handle, SPI_Transaction* transaction);
|
||||
|
||||
// SPI parameters initialize
|
||||
#define headstage_spi_open() \
|
||||
do { \
|
||||
SPI_init(); \
|
||||
SPI_Params spi_parameter; \
|
||||
SPI_Params_init(&spi_parameter); \
|
||||
spi_parameter.transferMode = SPI_MODE_CALLBACK; \
|
||||
spi_parameter.mode = SPI_SLAVE; \
|
||||
spi_parameter.bitRate = NEU_SPI_FREQ; \
|
||||
spi_parameter.dataSize = 8; \
|
||||
spi_parameter.frameFormat = SPI_POL0_PHA1; \
|
||||
spi_parameter.transferCallbackFxn = headstage_spi_callback; \
|
||||
headstage_spi_handle = SPI_open(Board_SPI0, &spi_parameter); \
|
||||
} while (0)
|
||||
|
||||
#define headstage_spi_transaction(handle, length, tx, rx) \
|
||||
({ \
|
||||
SPI_Transaction transaction = headstage_spi_transaction ; \
|
||||
transaction.count = (length); \
|
||||
transaction.txBuf = (tx); \
|
||||
transaction.rxBuf = (rx); \
|
||||
SPI_transfer(handle, &transaction); \
|
||||
})
|
||||
|
||||
#define headstage_spi_transaction(length) \
|
||||
({ \
|
||||
headstage_spi_transaction.count = (length); \
|
||||
headstage_spi_transaction.txBuf = (spi_txbuf); \
|
||||
headstage_spi_transaction.rxBuf = (spi_rxbuf); \
|
||||
SPI_transfer(headstage_spi_handle, &headstage_spi_transaction); \
|
||||
})
|
||||
|
||||
#define headstage_spi_close(spi_handle) \
|
||||
do { \
|
||||
if (spi_handle != NULL) { \
|
||||
SPI_close(spi_handle); \
|
||||
spi_handle = NULL; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define headstage_spi_transaction_cancel(spi_handle) \
|
||||
do { \
|
||||
if (spi_handle != NULL) { \
|
||||
SPI_transferCancel(spi_handle); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#endif
|
||||
-305
@@ -1,305 +0,0 @@
|
||||
{
|
||||
"name": "Neulive",
|
||||
"version": "2.0",
|
||||
"match_rule": {
|
||||
"local_name_pattern": "Neulive.*",
|
||||
"major_product_number": 1,
|
||||
"minor_product_number": 1,
|
||||
"major_version_number": 2,
|
||||
"minor_version_number": 0
|
||||
},
|
||||
"constant": {
|
||||
"REC_CHANNEL_COUNT": 16,
|
||||
"STI_VOLT_CHANNEL_COUNT": 16,
|
||||
"STI_AMP_CHANNEL_COUNT": 8
|
||||
},
|
||||
"parameters": {
|
||||
"CHANNEL": {
|
||||
"description": "record channels",
|
||||
"record_meta": true,
|
||||
"domain": {
|
||||
"set": [
|
||||
"REC_CHANNEL_COUNT"
|
||||
]
|
||||
}
|
||||
},
|
||||
"STI_VOLT_PCHANNEL": {
|
||||
"description": "stimulation voltage mode channels",
|
||||
"record_meta": true,
|
||||
"domain": {
|
||||
"set": [
|
||||
"STI_VOLT_CHANNEL_COUNT"
|
||||
]
|
||||
},
|
||||
"guard": "STI_VOLT_PCHANNEL != STI_VOLT_NCHANNEL"
|
||||
},
|
||||
"STI_VOLT_NCHANNEL": {
|
||||
"description": "stimulation voltage mode channels",
|
||||
"record_meta": true,
|
||||
"domain": {
|
||||
"set": [
|
||||
"STI_VOLT_CHANNEL_COUNT"
|
||||
]
|
||||
},
|
||||
"guard": "STI_VOLT_PCHANNEL != STI_VOLT_NCHANNEL"
|
||||
},
|
||||
"STI_AMP_PCHANNEL": {
|
||||
"description": "stimulation ampere mode p channel",
|
||||
"record_meta": true,
|
||||
"domain": {
|
||||
"set": [
|
||||
"STI_AMP_CHANNEL_COUNT"
|
||||
]
|
||||
},
|
||||
"guard": "STI_AMP_PCHANNEL != STI_AMP_NCHANNEL"
|
||||
},
|
||||
"STI_AMP_NCHANNEL": {
|
||||
"description": "stimulation ampere mode n channel",
|
||||
"record_meta": true,
|
||||
"domain": {
|
||||
"set": [
|
||||
"STI_AMP_CHANNEL_COUNT"
|
||||
]
|
||||
},
|
||||
"guard": "STI_AMP_PCHANNEL != STI_AMP_NCHANNEL"
|
||||
},
|
||||
"STI_TIME_DURATION_ONE": {
|
||||
"description": "stimulation pattern",
|
||||
"record_meta": false,
|
||||
"domain": [
|
||||
1024
|
||||
],
|
||||
"guard": "STI_TIME_DURATION_ONE < 1"
|
||||
},
|
||||
"STI_TIME_DURATION_TWO": {
|
||||
"description": "stimulation pattern",
|
||||
"record_meta": false,
|
||||
"domain": [
|
||||
1024
|
||||
]
|
||||
},
|
||||
"STI_TIME_DURATION_THREE": {
|
||||
"description": "stimulation pattern",
|
||||
"record_meta": false,
|
||||
"domain": [
|
||||
1024
|
||||
]
|
||||
},
|
||||
"STI_TIME_DURATION_FOUR": {
|
||||
"description": "stimulation pattern",
|
||||
"record_meta": false,
|
||||
"domain": [
|
||||
65536
|
||||
]
|
||||
},
|
||||
"STI_TIME_DURATION_FIVE": {
|
||||
"description": "stimulation pattern",
|
||||
"record_meta": false,
|
||||
"domain": [
|
||||
2048
|
||||
]
|
||||
},
|
||||
"AMP_GAIN": {
|
||||
"description": "amplifier gain setting",
|
||||
"record_meta": true,
|
||||
"value": [
|
||||
25,
|
||||
100,
|
||||
400,
|
||||
800
|
||||
]
|
||||
},
|
||||
"STI_MODE": {
|
||||
"description": "how to execute stimulus",
|
||||
"value": [
|
||||
"DISABLE",
|
||||
"LIMITED",
|
||||
"CONTINUOUS"
|
||||
]
|
||||
},
|
||||
"STI_AMPERE_HIGH_SIDE": {
|
||||
"description": "stimulation ampere for pmos, unit: uA ",
|
||||
"type": "int",
|
||||
"domain": [
|
||||
1024
|
||||
],
|
||||
"value": "VALUE * 4"
|
||||
},
|
||||
"STI_AMPERE_LOW_SIDE": {
|
||||
"description": "stimulation ampere for nmos, unit: uA",
|
||||
"type": "int",
|
||||
"domain": [
|
||||
1024
|
||||
],
|
||||
"value": "VALUE * 4"
|
||||
},
|
||||
"STI_VOLTAGE_AMPLITUDE": {
|
||||
"description": "stimulation voltage mode, unit: Volt ",
|
||||
"type": "float",
|
||||
"domain": [
|
||||
32
|
||||
],
|
||||
"value": " 2 + VALUE / 31"
|
||||
},
|
||||
"STI_TIMES": {
|
||||
"description": "how many times will be executed",
|
||||
"domain": [
|
||||
256
|
||||
]
|
||||
},
|
||||
"SYSTEM_CLOCK_RATIO": {
|
||||
"description": "frequency of system clock, unit: khz",
|
||||
"type": "float",
|
||||
"domain": [
|
||||
65536
|
||||
],
|
||||
"value": " 8000 / VALUE",
|
||||
"guard": "SYSTEM_CLOCK_RATIO < 2"
|
||||
},
|
||||
"ADC_CLOCK_RATIO": {
|
||||
"description": "adc sampling rate, unit: khz",
|
||||
"type": "float",
|
||||
"domain": [
|
||||
65536
|
||||
],
|
||||
"value": " SYSTEM_CLOCK_RATIO / VALUE ",
|
||||
"guard": "ADC_CLOCK_RATIO < 28"
|
||||
},
|
||||
"STI_CLOCK_RATIO": {
|
||||
"description": "stimulation rate",
|
||||
"type": "float",
|
||||
"domain": [
|
||||
65536
|
||||
],
|
||||
"value": "SYSTEM_CLOCK_RATIO / VALUE",
|
||||
"guard": "STI_CLOCK_RATIO < 2"
|
||||
},
|
||||
"ARBITRARY_EN": {
|
||||
"description": "arbitrary stimulation enable",
|
||||
"domain": "bool"
|
||||
},
|
||||
"ARBITRARY_CH": {
|
||||
"description": "arbitrary stimulation enable channels",
|
||||
"domain": "int",
|
||||
"value": " ( 1 << STI_AMP_PCHANNEL ) if (ARBITRARY_EN) else 0 "
|
||||
},
|
||||
"ARBITRARY_INDEX": {
|
||||
"description": "define the last point of arbitrary data, from zero to arbitrary_index. ",
|
||||
"domain": "INT",
|
||||
"guard": "VALUE > 499"
|
||||
},
|
||||
"H_BRIDGE": {
|
||||
"description": "whether to contruct a h bridge execute a stimulation",
|
||||
"domain": "bool"
|
||||
},
|
||||
"STI_REF": {
|
||||
"description": "bipolar or monopolar",
|
||||
"domain": "bool"
|
||||
},
|
||||
"FAST_SETTLE": {
|
||||
"description": "protect amplifier input when stimulation is executed",
|
||||
"domain": "bool"
|
||||
},
|
||||
"UMC_TEST": {
|
||||
"description": "start umc test mode",
|
||||
"domain": "action",
|
||||
"on_change": "umc_default"
|
||||
},
|
||||
"UMC_RESET": {
|
||||
"description": "reset headstage to perform another setting",
|
||||
"domain": "action",
|
||||
"on_change": "reset"
|
||||
},
|
||||
"UMC_TRIGGER": {
|
||||
"description": "trigger stimulation when device is in trigger mode",
|
||||
"domain": "action",
|
||||
"on_change": "STIMULUS"
|
||||
}
|
||||
},
|
||||
"instruction": {
|
||||
"start": [
|
||||
{
|
||||
"expression": "len(CHANNEL) > 0",
|
||||
"raise": "no recording channel"
|
||||
},
|
||||
"data_format",
|
||||
"_notify(True)",
|
||||
"start_recording",
|
||||
"umc_parameter",
|
||||
"_sync(True)",
|
||||
"VIS_STI"
|
||||
],
|
||||
"trigger stimulation": [
|
||||
"umc_sti_trigger0"
|
||||
],
|
||||
"umc_reset": [
|
||||
"VIS_RST"
|
||||
],
|
||||
"data_format": [
|
||||
"_data_format('TDC4VAF2')"
|
||||
],
|
||||
"start_recording": {
|
||||
"type": "RIS",
|
||||
"data": [
|
||||
"3b101#direct header;2b0#don't care;3b>LOW_FREQ_BAND",
|
||||
"2b0#don't care;1bCHOPPER;1bFAST_SETTLE;3b>STI_WAVEFORM",
|
||||
"5b>STI_AMPERE;4b>STI_PMOS",
|
||||
"4b>STI_NMOS;4b>SAMPLE_RATE"
|
||||
]
|
||||
},
|
||||
"umc_parameter": {
|
||||
"type": "RIS",
|
||||
"foreach-parameter": {
|
||||
"parameter": "CHANNEL",
|
||||
"variable": [
|
||||
"a",
|
||||
"b",
|
||||
"c",
|
||||
"d"
|
||||
]
|
||||
},
|
||||
"data": [
|
||||
"3b001#umc parameter header;3b>AMP_GAIN",
|
||||
"4b>PULSE_WIDTH;6b>STI_TIMES",
|
||||
"2b>STI_MODE;6b>STI_FREQ",
|
||||
"1ba?;1bb?;1bc?;1bd?",
|
||||
"4b>a?:0;4b>b?:0",
|
||||
"4b>c?:0;4b>d?:0"
|
||||
]
|
||||
},
|
||||
"umc_default": [
|
||||
"_set('CHANNEL', 0)",
|
||||
"_set('SAMPLE_RATE', 0)",
|
||||
"_set('AMP_GAIN', 5)",
|
||||
"_set('STI_WAVEFORM', 1)",
|
||||
"_set('STI_MODE', 1)",
|
||||
"_set('STI_NMOS', 0)",
|
||||
"_set('STI_PMOS', 1)",
|
||||
"_set('STI_AMPERE', 0)",
|
||||
"_set('STI_FREQ', 0)",
|
||||
"_set('STI_TIMES', 0)",
|
||||
"_set('PULSE_WIDTH', 0)",
|
||||
"_set('FAST_SETTLE', 1)",
|
||||
"_set('CHOPPER', 0)",
|
||||
"data_format",
|
||||
"_notify(True)",
|
||||
"umc_default0",
|
||||
"_sync(True)",
|
||||
"VIS_STI"
|
||||
],
|
||||
"umc_default0": {
|
||||
"type": "RIS",
|
||||
"data": [
|
||||
"1B0#load umc default parameter into uni"
|
||||
]
|
||||
},
|
||||
"umc_sti_trigger0": {
|
||||
"type": "RIS",
|
||||
"description": "this function is perform only in trigger mode",
|
||||
"data": [
|
||||
"1BC0# trigger stimulation when recording is performed"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
-19
@@ -1,19 +0,0 @@
|
||||
@startuml
|
||||
start
|
||||
:stimulation select;
|
||||
if (continuous) then (yes)
|
||||
if(current mode / voltage mode) then (current mode)
|
||||
:sti parameter setup;
|
||||
else (voltage mode)
|
||||
:sti parameter setup;
|
||||
endif
|
||||
else if (limited)
|
||||
if(current mode / voltage mode) then (current mode)
|
||||
:sti parameter setup;
|
||||
else (voltage mode)
|
||||
:sti parameter setup;
|
||||
endif
|
||||
else (disable)
|
||||
endif
|
||||
stop
|
||||
@enduml
|
||||
+11
-7
@@ -1,7 +1,7 @@
|
||||
/* Copyright (c) 2019. BioPro. Scientific.
|
||||
*/
|
||||
#ifndef HEADSTAGE_STI_ADC_H
|
||||
#define HEADSTAGE_STI_ADC_H
|
||||
#ifndef HEADSTAGE_ADC_H
|
||||
#define HEADSTAGE_ADC_H
|
||||
|
||||
#if defined(BOOSTXL_CC2650MA) && !defined(HEADSTAGE_MA_USE_ADC)
|
||||
#error "put HEADSTAGE_MA_USE_ADC in predefined"
|
||||
@@ -11,13 +11,17 @@
|
||||
#include <ti/drivers/ADC.h>
|
||||
|
||||
#if defined(CC2650_LAUNCHXL)
|
||||
|
||||
#define CC2650_ADC0 CC2650_LAUNCHXL_ADC0
|
||||
#define CC2650_ADC1 CC2650_LAUNCHXL_ADC1
|
||||
#define CC2650_ADC2 CC2650_LAUNCHXL_ADC2
|
||||
|
||||
#elif defined(BOOSTXL_CC2650MA)
|
||||
#define CC2650_ADC0 BOOSTXL_CC2650MA_ADC0
|
||||
#define CC2650_ADC1 BOOSTXL_CC2650MA_ADC1
|
||||
#define CC2650_ADC2 BOOSTXL_CC2650MA_ADC2
|
||||
|
||||
#define CC2650_ADC0 BOOSTXL_CC2650MA_ADC0 // DIO7
|
||||
#define CC2650_ADC1 BOOSTXL_CC2650MA_ADC1 // DIO8
|
||||
#define CC2650_ADC2 BOOSTXL_CC2650MA_ADC2 // DIO9
|
||||
|
||||
#endif
|
||||
|
||||
static ADC_Handle headstage_adc_handle_0;
|
||||
@@ -31,10 +35,10 @@ static ADC_Handle headstage_adc_handle_2;
|
||||
do { \
|
||||
ADC_init(); \
|
||||
ADC_Params param; \
|
||||
ADC_Params_init(¶ms); \
|
||||
ADC_Params_init(¶m); \
|
||||
headstage_adc_handle_0 = ADC_open(CC2650_ADC0, ¶m); \
|
||||
headstage_adc_handle_1 = ADC_open(CC2650_ADC1, ¶m); \
|
||||
headstage_adc_handle_2 = ADC_open(CC2650_ADC2, ¶m); \
|
||||
} while (0)
|
||||
|
||||
#endif // HEADSTAGE_STI_ADC_H
|
||||
#endif // HEADSTAGE_ADC_H
|
||||
|
||||
+17
-16
@@ -13,17 +13,14 @@ static GPTimerCC26XX_Handle gptimer_handle_p1;
|
||||
static GPTimerCC26XX_Handle gptimer_handle_s0;
|
||||
static GPTimerCC26XX_Handle gptimer_handle_s1;
|
||||
|
||||
static void headstage_gptimer_perd_callback(GPTimerCC26XX_Handle handle, GPTimerCC26XX_IntMask interruptMask);
|
||||
static void headstage_gptimer_step_callback(GPTimerCC26XX_Handle handle, GPTimerCC26XX_IntMask interruptMask);
|
||||
static void headstage_sti_gptimer_main_callback(GPTimerCC26XX_Handle handle, GPTimerCC26XX_IntMask interruptMask);
|
||||
static void headstage_sti_gptimer_step_callback(GPTimerCC26XX_Handle handle, GPTimerCC26XX_IntMask interruptMask);
|
||||
|
||||
#define headstage_gptimer_start(gptimer_handle) GPTimerCC26XX_start(gptimer_handle)
|
||||
#define headstage_gptimer_stop(gptimer_handle) GPTimerCC26XX_stop(gptimer_handle)
|
||||
#define headstage_gptimer_close(gptimer_handle) GPTimerCC26XX_close(gptimer_handle)
|
||||
|
||||
static void headstage_gptimer_open() {
|
||||
// improve timer accuracy
|
||||
// Power_setDependency(XOSC_HF);
|
||||
|
||||
GPTimerCC26XX_Params params;
|
||||
GPTimerCC26XX_Params_init(¶ms);
|
||||
|
||||
@@ -32,19 +29,21 @@ static void headstage_gptimer_open() {
|
||||
params.debugStallMode = GPTimerCC26XX_DEBUG_STALL_OFF;
|
||||
|
||||
gptimer_handle_p0 = GPTimerCC26XX_open(Board_GPTIMER0A, ¶ms);
|
||||
gptimer_handle_s0 = GPTimerCC26XX_open(Board_GPTIMER0B, ¶ms);
|
||||
gptimer_handle_p1 = GPTimerCC26XX_open(Board_GPTIMER1A, ¶ms);
|
||||
gptimer_handle_p1 = GPTimerCC26XX_open(Board_GPTIMER0B, ¶ms);
|
||||
|
||||
GPTimerCC26XX_Params_init(¶ms);
|
||||
|
||||
params.width = GPT_CONFIG_16BIT;
|
||||
params.mode = GPT_MODE_ONESHOT_DOWN;
|
||||
params.debugStallMode = GPTimerCC26XX_DEBUG_STALL_OFF;
|
||||
|
||||
gptimer_handle_s0 = GPTimerCC26XX_open(Board_GPTIMER1A, ¶ms);
|
||||
gptimer_handle_s1 = GPTimerCC26XX_open(Board_GPTIMER1B, ¶ms);
|
||||
|
||||
GPTimerCC26XX_setLoadValue(gptimer_handle_p0, 0xFFFFFF);
|
||||
GPTimerCC26XX_setLoadValue(gptimer_handle_p1, 0xFFFFFF);
|
||||
GPTimerCC26XX_setLoadValue(gptimer_handle_s0, 0xFFFFFF);
|
||||
GPTimerCC26XX_setLoadValue(gptimer_handle_s1, 0xFFFFFF);
|
||||
|
||||
GPTimerCC26XX_registerInterrupt(gptimer_handle_p0, headstage_gptimer_perd_callback, GPT_INT_TIMEOUT);
|
||||
GPTimerCC26XX_registerInterrupt(gptimer_handle_p1, headstage_gptimer_perd_callback, GPT_INT_TIMEOUT);
|
||||
GPTimerCC26XX_registerInterrupt(gptimer_handle_s0, headstage_gptimer_step_callback, GPT_INT_TIMEOUT);
|
||||
GPTimerCC26XX_registerInterrupt(gptimer_handle_s1, headstage_gptimer_step_callback, GPT_INT_TIMEOUT);
|
||||
GPTimerCC26XX_registerInterrupt(gptimer_handle_p0, headstage_sti_gptimer_main_callback, GPT_INT_TIMEOUT);
|
||||
GPTimerCC26XX_registerInterrupt(gptimer_handle_p1, headstage_sti_gptimer_main_callback, GPT_INT_TIMEOUT);
|
||||
GPTimerCC26XX_registerInterrupt(gptimer_handle_s0, headstage_sti_gptimer_step_callback, GPT_INT_TIMEOUT);
|
||||
GPTimerCC26XX_registerInterrupt(gptimer_handle_s1, headstage_sti_gptimer_step_callback, GPT_INT_TIMEOUT);
|
||||
}
|
||||
|
||||
#define headstage_gptimer_set_load_value(gptimer_handle, load_value) GPTimerCC26XX_setLoadValue(gptimer_handle, load_value)
|
||||
@@ -68,4 +67,6 @@ static void headstage_gptimer_open() {
|
||||
GPTimerCC26XX_setLoadValue(gptimer_handle, _load); \
|
||||
} while (0)
|
||||
|
||||
#define headstage_gptimer_set_callback(handle, callback) GPTimerCC26XX_registerInterrupt(handle, callback, GPT_INT_TIMEOUT);
|
||||
|
||||
#endif // HEADSTAGE_GPTIMER_H
|
||||
|
||||
+47
-28
@@ -1,37 +1,49 @@
|
||||
/* Copyright (c) 2019. BioPro. Scientific.
|
||||
*/
|
||||
|
||||
#ifndef HEADSTAGE_NOTIFY_TDC4VC3_H
|
||||
#define HEADSTAGE_NOTIFY_TDC4VC3_H
|
||||
/*
|
||||
|
||||
notify data format
|
||||
==================
|
||||
|
||||
struct {
|
||||
u8 device_id;
|
||||
u8 data_length;
|
||||
|
||||
u32 cpu_timestamp;
|
||||
|
||||
u4 _;
|
||||
u12 battery_voltage;
|
||||
|
||||
u4 sti_channel;
|
||||
u12 sti_channel_voltage;
|
||||
|
||||
u16 sti_remind_times;
|
||||
|
||||
u4 sti_channel;
|
||||
u12 sti_channel_voltage;
|
||||
|
||||
u16 sti_remind_times;
|
||||
|
||||
// total 16 bytes
|
||||
}
|
||||
|
||||
*/
|
||||
#ifndef HEADSTAGE_NOTIFY_STI_H
|
||||
#define HEADSTAGE_NOTIFY_STI_H
|
||||
|
||||
#ifndef HEADSTAGE_NOTIFY_H
|
||||
#error "headstage/headstage_notify.h not included"
|
||||
#endif
|
||||
|
||||
#define NOT_BUF_OFFSET_INIT 6
|
||||
#include "../headstage_notify_general.h"
|
||||
|
||||
static uint32_t not_buf_offset = NOT_BUF_OFFSET_INIT;
|
||||
static uint32_t not_time_stamp = 0;
|
||||
#define NOT_BUF_OFFSET_INIT 8
|
||||
#define NOT_BUF_ALMOST_FULL 15
|
||||
|
||||
static void headstage_notify_set_timestamp() {
|
||||
not_time_stamp = headstage_time_stamp_us();
|
||||
#define headstage_notify_flip_buffer() _headstage_notify_flip_buffer(not_buf_offset);
|
||||
|
||||
headstage_notify_buffer[2] = not_time_stamp & 0xFF;
|
||||
headstage_notify_buffer[3] = (not_time_stamp >> 8) & 0xFF;
|
||||
headstage_notify_buffer[4] = (not_time_stamp >> 16) & 0xFF;
|
||||
headstage_notify_buffer[5] = (not_time_stamp >> 24) & 0xFF;
|
||||
}
|
||||
|
||||
static void headstage_notify_flip_buffer() {
|
||||
uint8_t data_count = not_buf_offset;
|
||||
|
||||
headstage_notify_buffer[0] = CHIP_ID;
|
||||
headstage_notify_buffer[1] = data_count;
|
||||
|
||||
not_buf_offset = NOT_BUF_OFFSET_INIT;
|
||||
}
|
||||
|
||||
static uint8_t headstage_notify_append_data(uint8_t channel, uint16_t data_value) {
|
||||
static uint8_t headstage_notify_append_data(uint8_t channel, uint16_t data_value, uint16_t times_remind) {
|
||||
if (not_buf_offset <= NOT_BUF_OFFSET_INIT) {
|
||||
headstage_notify_set_timestamp();
|
||||
|
||||
@@ -42,17 +54,24 @@ static uint8_t headstage_notify_append_data(uint8_t channel, uint16_t data_value
|
||||
return not_buf_offset;
|
||||
}
|
||||
|
||||
headstage_notify_buffer[not_buf_offset++] = ((channel & 0x0F) << 4) | ((data_value >> 8) & 0x0F);
|
||||
headstage_notify_buffer[not_buf_offset++] = (data_value & 0xFF);
|
||||
if (channel == CHANNEL_BATTERY) {
|
||||
headstage_notify_buffer[6] = ((data_value >> 8) & 0x0F);
|
||||
headstage_notify_buffer[7] = (data_value & 0xFF);
|
||||
|
||||
} else {
|
||||
headstage_notify_buffer[not_buf_offset++] = ((channel & 0x0F) << 4) | ((data_value >> 8) & 0x0F);
|
||||
headstage_notify_buffer[not_buf_offset++] = (data_value & 0xFF);
|
||||
headstage_notify_buffer[not_buf_offset++] = ((times_remind >> 8) & 0xFF);
|
||||
headstage_notify_buffer[not_buf_offset++] = (times_remind & 0xFF);
|
||||
}
|
||||
|
||||
uint8_t ret = not_buf_offset;
|
||||
|
||||
if (not_buf_offset >= BLE_NOT_BUFF_SIZE) {
|
||||
if (not_buf_offset >= NOT_BUF_ALMOST_FULL) {
|
||||
headstage_notify_flip_buffer();
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
#endif // HEADSTAGE_NOTIFY_TDC4VC3_H
|
||||
#endif // HEADSTAGE_NOTIFY_STI_H
|
||||
|
||||
+22
-15
@@ -7,20 +7,8 @@
|
||||
#if defined(CC2650_LAUNCHXL)
|
||||
|
||||
// clang-format off
|
||||
#define PIN_PON1 IOID_5
|
||||
#define PIN_POL1 IOID_6
|
||||
#define PIN_POL0 IOID_10
|
||||
#define PIN_PON0 IOID_11
|
||||
#define PIN_TPS IOID_3
|
||||
#define PIN_CUR IOID_4
|
||||
#define PIN_VBAT IOID_7
|
||||
#define PIN_SEN0 IOID_8
|
||||
#define PIN_SEN1 IOID_9
|
||||
// clang-format on
|
||||
|
||||
#elif defined(BOOSTXL_CC2650MA)
|
||||
|
||||
// clang-format off
|
||||
#define PIN_LED_R IOID_6
|
||||
#define PIN_LED_G IOID_7
|
||||
#define PIN_PON1 IOID_9
|
||||
#define PIN_POL1 IOID_14
|
||||
#define PIN_POL0 IOID_13
|
||||
@@ -32,6 +20,22 @@
|
||||
#define PIN_SEN1 IOID_30
|
||||
// clang-format on
|
||||
|
||||
#elif defined(BOOSTXL_CC2650MA)
|
||||
|
||||
// clang-format off
|
||||
#define PIN_LED_R PIN_UNASSIGNED
|
||||
#define PIN_LED_G PIN_UNASSIGNED
|
||||
#define PIN_PON1 IOID_5
|
||||
#define PIN_POL1 IOID_6
|
||||
#define PIN_POL0 IOID_10
|
||||
#define PIN_PON0 IOID_11
|
||||
#define PIN_TPS IOID_3
|
||||
#define PIN_CUR IOID_4
|
||||
#define PIN_VBAT IOID_71
|
||||
#define PIN_SEN0 IOID_8
|
||||
#define PIN_SEN1 IOID_9
|
||||
// clang-format on
|
||||
|
||||
#endif
|
||||
|
||||
static PIN_Config headstage_pin_configuration[] = { //
|
||||
@@ -41,7 +45,10 @@ static PIN_Config headstage_pin_configuration[] = { //
|
||||
PIN_PON0 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
PIN_TPS | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
|
||||
PIN_LED_R | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
|
||||
PIN_LED_G | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
|
||||
|
||||
//
|
||||
PIN_TERMINATE};
|
||||
|
||||
#endif // HEADSTAGE_PIN_STI_H
|
||||
#endif // HEADSTAGE_PIN_STI_H
|
||||
|
||||
+21
-32
@@ -8,55 +8,44 @@
|
||||
#error "headstage/headstage_notify.h not included"
|
||||
#endif
|
||||
|
||||
#include "../headstage_notify_general.h"
|
||||
|
||||
#define NOT_BUF_OFFSET_INIT 8
|
||||
|
||||
static uint32_t not_buf_offset = NOT_BUF_OFFSET_INIT;
|
||||
static uint32_t not_time_stamp = 0;
|
||||
#define headstage_notify_flip_buffer() _headstage_notify_flip_buffer((not_buf_offset - NOT_BUF_OFFSET_INIT) / 2);
|
||||
|
||||
static void headstage_notify_set_timestamp() {
|
||||
not_time_stamp = headstage_time_stamp_us();
|
||||
|
||||
headstage_notify_buffer[2] = not_time_stamp & 0xFF;
|
||||
headstage_notify_buffer[3] = (not_time_stamp >> 8) & 0xFF;
|
||||
headstage_notify_buffer[4] = (not_time_stamp >> 16) & 0xFF;
|
||||
headstage_notify_buffer[5] = (not_time_stamp >> 24) & 0xFF;
|
||||
}
|
||||
|
||||
static void headstage_notify_flip_buffer() {
|
||||
uint8_t data_count = (not_buf_offset - NOT_BUF_OFFSET_INIT) / 2;
|
||||
|
||||
headstage_notify_buffer[0] = CHIP_ID;
|
||||
headstage_notify_buffer[1] = data_count;
|
||||
|
||||
not_buf_offset = NOT_BUF_OFFSET_INIT;
|
||||
}
|
||||
|
||||
static uint8_t headstage_notify_append_data(uint8_t channel, uint8_t *data_value) {
|
||||
static uint8_t headstage_notify_append_data(uint8_t channel, uint16_t *data_value) {
|
||||
if (not_buf_offset <= NOT_BUF_OFFSET_INIT) {
|
||||
headstage_notify_set_timestamp();
|
||||
|
||||
not_buf_offset = NOT_BUF_OFFSET_INIT;
|
||||
}
|
||||
|
||||
if (not_buf_offset >= BLE_NOT_BUFF_SIZE) {
|
||||
return not_buf_offset;
|
||||
}
|
||||
|
||||
if (data_value == NULL) {
|
||||
headstage_notify_buffer[not_buf_offset++] = ((channel & 0x0F) << 4);
|
||||
headstage_notify_buffer[not_buf_offset++] = 0x03;
|
||||
} else {
|
||||
headstage_notify_buffer[not_buf_offset++] = ((channel & 0x0f) << 4) | (data_value[1] & 0x0f);
|
||||
headstage_notify_buffer[not_buf_offset++] = data_value[2] & 0xFC;
|
||||
}
|
||||
|
||||
if (not_buf_offset == BLE_NOT_BUFF_SIZE) {
|
||||
uint32_t current = headstage_time_stamp_us();
|
||||
uint32_t time_delta = ((current - not_time_stamp)) & 0xFFFF;
|
||||
|
||||
headstage_notify_buffer[6] = time_delta & 0xFF;
|
||||
headstage_notify_buffer[7] = (time_delta >> 8) & 0xFF;
|
||||
headstage_notify_buffer[not_buf_offset++] = ((channel & 0x0F) << 4) | ((*data_value >> 6) & 0x0F);
|
||||
headstage_notify_buffer[not_buf_offset++] = ((*data_value << 2) & 0xFC);
|
||||
}
|
||||
|
||||
uint8_t ret = not_buf_offset;
|
||||
|
||||
if (not_buf_offset >= BLE_NOT_BUFF_SIZE) {
|
||||
uint32_t current = headstage_time_stamp();
|
||||
uint32_t time_delta = (current - not_time_stamp) & 0xFFFF;
|
||||
|
||||
headstage_notify_buffer[6] = time_delta & 0xFF;
|
||||
headstage_notify_buffer[7] = (time_delta >> 8) & 0xFF;
|
||||
|
||||
headstage_notify_flip_buffer();
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
#endif // HEADSTAGE_NOTIFY_TDC4VAF2_H
|
||||
|
||||
-118
@@ -1,118 +0,0 @@
|
||||
#Neulive 1.3
|
||||
|
||||
|
||||
##include files
|
||||
|
||||
|
||||
######time.h
|
||||
This part is used for getting the time information.
|
||||
Such as year and month.
|
||||
|
||||
For example:
|
||||
|
||||
static void headstage_init_device_info() {
|
||||
uint8_t year = 10 * (date[9] - '0') + (date[10] - '0');
|
||||
uint8_t month = 0;
|
||||
|
||||
switch (date[0]) {
|
||||
case 'J':
|
||||
// Jan, January
|
||||
// Jun, June
|
||||
// Jul, July
|
||||
if (date[1] == 'a') {
|
||||
month = 1;
|
||||
} else if (date[2] == 'n') {
|
||||
month = 6;
|
||||
} else {
|
||||
month = 7;
|
||||
}
|
||||
break;
|
||||
case 'F':
|
||||
// Feb, February
|
||||
month = 2;
|
||||
break;
|
||||
case 'M':
|
||||
// Mar, March
|
||||
// May, May
|
||||
if (date[2] == 'r') {
|
||||
month = 3;
|
||||
} else {
|
||||
month = 5;
|
||||
}
|
||||
break;
|
||||
case 'A':
|
||||
// Apr, April
|
||||
// Ang, August
|
||||
if (date[1] == 'p') {
|
||||
month = 4;
|
||||
} else {
|
||||
month = 8;
|
||||
}
|
||||
break;
|
||||
case 'S':
|
||||
// Sep, September
|
||||
month = 9;
|
||||
break;
|
||||
case 'O':
|
||||
// Oct, October
|
||||
month = 10;
|
||||
break;
|
||||
case 'N':
|
||||
// Nov, November
|
||||
month = 11;
|
||||
break;
|
||||
case 'D':
|
||||
// Dec, December
|
||||
month = 12;
|
||||
break;
|
||||
}
|
||||
......
|
||||
|
||||
*p++ = year;
|
||||
*p++ = month;
|
||||
|
||||
......
|
||||
}
|
||||
|
||||
|
||||
######population.h
|
||||
This is used for checking each digit of data is 1 or 0.
|
||||
|
||||
It will return how many 1 are included in the value.
|
||||
|
||||
static uint32_t pop_count(uint32_t value) {
|
||||
value -= ((value >> 1) & 0x55555555);
|
||||
value = (((value >> 2) & 0x33333333) + (value & 0x33333333));
|
||||
value = (((value >> 4) + value) & 0x0f0f0f0f);
|
||||
value += (value >> 8);
|
||||
value += (value >> 16);
|
||||
return (value & 0x0000003f);
|
||||
}
|
||||
|
||||
######headstage_arm.h
|
||||
This part is used for generating arbitrary data to test data rate.
|
||||
|
||||
######headstage_debug.h
|
||||
|
||||
######headstage_pin.h
|
||||
|
||||
######headstage_led.h
|
||||
|
||||
######headstage_watchdog.h
|
||||
|
||||
######headstage_notify.h
|
||||
|
||||
######headstage_indicate.h
|
||||
|
||||
######headstage_batt.h
|
||||
|
||||
######tni/headstage_notify.h
|
||||
|
||||
######uni/headstage_spi.h
|
||||
|
||||
######uni/headstage_pwm.h
|
||||
|
||||
######uni/uni1.3_parameter.h
|
||||
|
||||
-------------
|
||||
|
||||
+3
-24
@@ -1,26 +1,5 @@
|
||||
/* Copyright (c) 2019. BioPro. Scientific.
|
||||
*/
|
||||
#ifndef HEADSTAGE_UNI_ADC_H
|
||||
#define HEADSTAGE_UNI_ADC_H
|
||||
|
||||
#include <Board.h>
|
||||
#include <ti/drivers/ADC.h>
|
||||
|
||||
static ADC_Handle headstage_adc;
|
||||
|
||||
#define headstage_adc_open() \
|
||||
do { \
|
||||
ADC_init(); \
|
||||
ADC_Params headstage_adc_params; \
|
||||
ADC_Params_init(&headstage_adc_params); \
|
||||
headstage_adc = ADC_open(BOOSTXL_CC2650MA_ADC0, &headstage_adc_params); \
|
||||
} while (0)
|
||||
|
||||
#define headstage_adc_convert() \
|
||||
({ \
|
||||
uint16_t adc_value; \
|
||||
ADC_convert(headstage_adc, &adc_value); \
|
||||
ADC_convertRawToMicroVolts(headstage_adc , adc_value); \
|
||||
})
|
||||
|
||||
#endif // HEADSTAGE_UNI_ADC_H
|
||||
#ifndef HEADSTAGE_ADC_H
|
||||
#define HEADSTAGE_ADC_H
|
||||
#endif // HEADSTAGE_ADC_H
|
||||
|
||||
-417
@@ -1,417 +0,0 @@
|
||||
|
||||
|
||||
/*
|
||||
* this header file need to be modified, to control
|
||||
*/
|
||||
|
||||
#include "Python.h"
|
||||
#include "structmember.h"
|
||||
|
||||
#ifdef _RASPBERRY_PI3_
|
||||
#include <wiringPi.h>
|
||||
#else
|
||||
#include "wiringPi.h"
|
||||
#endif
|
||||
|
||||
#define SPI_SPEED_US 100
|
||||
|
||||
// class Bpsspi
|
||||
|
||||
typedef struct {
|
||||
PyObject_HEAD;
|
||||
|
||||
unsigned int cpol;
|
||||
unsigned int cpha;
|
||||
|
||||
unsigned int clk;
|
||||
unsigned int mosi;
|
||||
int miso;
|
||||
unsigned int cs_sz;
|
||||
unsigned int *cs;
|
||||
|
||||
} Bpsspi;
|
||||
|
||||
// Bpsspi __init__
|
||||
static PyObject *Bpsspi_new(PyTypeObject *type, PyObject *args, PyObject *keywords);
|
||||
static int Bpsspi_init(Bpsspi *self, PyObject *args, PyObject *kwargs);
|
||||
static void Bpsspi_dealloc(Bpsspi *self);
|
||||
|
||||
// member
|
||||
static PyMemberDef BpsspiMembers[] = { //
|
||||
{"cpol", T_UINT, offsetof(Bpsspi, cpol), READONLY, "polarity"},
|
||||
{"cpha", T_UINT, offsetof(Bpsspi, cpha), READONLY, "phase"},
|
||||
{"clk", T_UINT, offsetof(Bpsspi, clk), READONLY, "clock pin"},
|
||||
{"mosi", T_UINT, offsetof(Bpsspi, mosi), READONLY, "mosi pin"},
|
||||
{"miso", T_INT, offsetof(Bpsspi, miso), READONLY, "miso pin"},
|
||||
{"cs_sz", T_UINT, offsetof(Bpsspi, cs_sz), READONLY, "chip selection pins number"},
|
||||
{NULL}};
|
||||
|
||||
// methods
|
||||
|
||||
static PyObject *Bpsspi_reset(Bpsspi *self);
|
||||
static PyObject *Bpsspi_set_cs(Bpsspi *self, PyObject *args, PyObject *kwargs);
|
||||
static PyObject *Bpsspi_send_byte_transmit(Bpsspi *self, PyObject *args, PyObject *kwargs);
|
||||
static PyObject *Bpsspi_send_byte_exchange(Bpsspi *self, PyObject *args, PyObject *kwargs);
|
||||
|
||||
static PyMethodDef BpsspiMethods[] = { //
|
||||
{"reset", (PyCFunction)Bpsspi_reset, METH_NOARGS, "Bpsspi.reset"},
|
||||
|
||||
// set_cs(self, cs:int, output:bool)
|
||||
{"set_cs", (PyCFunction)Bpsspi_set_cs, METH_VARARGS | METH_KEYWORDS, "Bpsspi.set_cs"},
|
||||
|
||||
// send_byte_transmit(self, data:bytes)
|
||||
{"send_byte_transmit", (PyCFunction)Bpsspi_send_byte_transmit, METH_VARARGS | METH_KEYWORDS, "Bpsspi.send_byte_transmit"},
|
||||
|
||||
// send_byte_exchange(self, data:bytes) -> List[int]
|
||||
{"send_byte_exchange", (PyCFunction)Bpsspi_send_byte_exchange, METH_VARARGS | METH_KEYWORDS, "Bpsspi.send_byte_exchange"},
|
||||
{NULL}};
|
||||
|
||||
static PyTypeObject BpsspiType = {
|
||||
PyVarObject_HEAD_INIT(NULL, 0) //,
|
||||
.tp_name = "Bpsspi",
|
||||
.tp_doc = "BPS spi",
|
||||
.tp_basicsize = sizeof(Bpsspi),
|
||||
.tp_itemsize = 0,
|
||||
.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
|
||||
.tp_new = Bpsspi_new,
|
||||
.tp_init = (initproc)Bpsspi_init,
|
||||
.tp_dealloc = (destructor)Bpsspi_dealloc,
|
||||
.tp_members = BpsspiMembers,
|
||||
.tp_methods = BpsspiMethods,
|
||||
};
|
||||
|
||||
// function implement
|
||||
static PyObject *Bpsspi_new(PyTypeObject *type, PyObject *args, PyObject *keywords) {
|
||||
Bpsspi *self = (Bpsspi *)type->tp_alloc(type, 0);
|
||||
|
||||
if (self != NULL) {
|
||||
self->cpol = 0;
|
||||
self->cpha = 0;
|
||||
self->clk = 0;
|
||||
self->mosi = 0;
|
||||
self->miso = -1;
|
||||
self->cs_sz = 0;
|
||||
self->cs = NULL;
|
||||
}
|
||||
|
||||
return (PyObject *)self;
|
||||
}
|
||||
|
||||
static int Bpsspi_init_cs(Bpsspi *self) {
|
||||
if (self->cs != NULL) {
|
||||
PyMem_Free(self->cs);
|
||||
self->cs = NULL;
|
||||
}
|
||||
|
||||
self->cs = (unsigned int *)PyMem_Malloc(self->cs_sz * sizeof(unsigned int));
|
||||
if (self->cs == NULL) {
|
||||
PyErr_SetString(PyExc_RuntimeError, "PyMem_Malloc cs fail");
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int Bpsspi_init(Bpsspi *self, PyObject *args, PyObject *kwargs) {
|
||||
static char *keywords[] = {"clk", "mosi", "miso", "cs", "cpol", "cpha", NULL};
|
||||
|
||||
unsigned int clk;
|
||||
unsigned int mosi;
|
||||
PyObject * miso = NULL;
|
||||
PyObject * cs = NULL;
|
||||
int cpol = 0;
|
||||
int cpha = 0;
|
||||
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "II|OOpp", keywords, &clk, &mosi, &miso, &cs, &cpol, &cpha)) return -1;
|
||||
|
||||
self->clk = clk;
|
||||
self->mosi = mosi;
|
||||
self->cpol = cpol > 0;
|
||||
self->cpha = cpha > 0;
|
||||
|
||||
// miso
|
||||
if (miso == NULL || miso == Py_None) {
|
||||
self->miso = -1;
|
||||
|
||||
} else if (PyLong_Check(miso)) {
|
||||
int miso_val = (int)PyLong_AsLong(miso);
|
||||
|
||||
if (miso_val < 0) {
|
||||
PyErr_Format(PyExc_ValueError, "negative miso pin %d", miso_val);
|
||||
return -1;
|
||||
}
|
||||
|
||||
self->miso = miso_val;
|
||||
|
||||
} else {
|
||||
PyErr_SetString(PyExc_ValueError, "illegal miso type");
|
||||
return -1;
|
||||
}
|
||||
|
||||
// cs
|
||||
if (cs == NULL || cs == Py_None) {
|
||||
self->cs_sz = 0;
|
||||
self->cs = NULL;
|
||||
|
||||
} else if (PyLong_Check(cs)) {
|
||||
self->cs_sz = 1;
|
||||
Bpsspi_init_cs(self);
|
||||
|
||||
int cs_val = (int)PyLong_AsLong(cs);
|
||||
|
||||
if (cs_val < 0) {
|
||||
PyErr_Format(PyExc_ValueError, "negative cs pin %d", cs_val);
|
||||
return -1;
|
||||
}
|
||||
|
||||
*self->cs = cs_val;
|
||||
|
||||
} else if (PyTuple_Check(cs)) {
|
||||
self->cs_sz = PyTuple_GET_SIZE(cs);
|
||||
Bpsspi_init_cs(self);
|
||||
|
||||
for (unsigned int i = 0; i < self->cs_sz; i++) {
|
||||
PyObject *cs_ref = PyTuple_GetItem(cs, i);
|
||||
|
||||
if (cs_ref == NULL) return -1;
|
||||
|
||||
int cs_val = (int)PyLong_AsLong(cs_ref);
|
||||
|
||||
if (cs_val == -1 && PyErr_Occurred()) return -1;
|
||||
|
||||
if (cs_val < 0) {
|
||||
PyErr_Format(PyExc_ValueError, "negative cs pin %d", cs_val);
|
||||
return -1;
|
||||
}
|
||||
|
||||
*(self->cs + i) = cs_val;
|
||||
}
|
||||
|
||||
} else {
|
||||
PyErr_SetString(PyExc_ValueError, "illegal cs type");
|
||||
return -1;
|
||||
}
|
||||
|
||||
// reset
|
||||
Bpsspi_reset(self);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void Bpsspi_dealloc(Bpsspi *self) {
|
||||
if (self->cs != NULL) {
|
||||
PyMem_Free(self->cs);
|
||||
self->cs = NULL;
|
||||
}
|
||||
|
||||
Py_TYPE(self)->tp_free((PyObject *)self);
|
||||
}
|
||||
|
||||
static PyObject *Bpsspi_reset(Bpsspi *self) {
|
||||
pinMode(self->clk, OUTPUT);
|
||||
digitalWrite(self->clk, (self->cpol) ? HIGH : LOW);
|
||||
|
||||
pinMode(self->mosi, OUTPUT);
|
||||
digitalWrite(self->mosi, LOW);
|
||||
|
||||
if (self->miso >= 0) {
|
||||
pinMode(self->miso, INPUT);
|
||||
pullUpDnControl(self->miso, LOW);
|
||||
}
|
||||
if (self->cs_sz > 0) {
|
||||
for (unsigned int i = 0; i < self->cs_sz; i++) {
|
||||
pinMode(*(self->cs + i), OUTPUT);
|
||||
digitalWrite(*(self->cs + i), HIGH);
|
||||
}
|
||||
}
|
||||
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
static int Bpsspi_set_cs0(Bpsspi *self, unsigned int cs, int output) {
|
||||
if (self->cs_sz == 0) return 0;
|
||||
|
||||
for (unsigned int i = 0; i < self->cs_sz; i++) {
|
||||
if (cs == *(self->cs + i)) {
|
||||
digitalWrite(*(self->cs + i), output);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static PyObject *Bpsspi_set_cs(Bpsspi *self, PyObject *args, PyObject *kwargs) {
|
||||
static char *keywords[] = {"cs", "output", NULL};
|
||||
|
||||
unsigned int cs;
|
||||
int hl = 0;
|
||||
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ip", keywords, &cs, &hl)) return NULL;
|
||||
|
||||
if (self->cs_sz == 0) {
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
Bpsspi_set_cs0(self, cs, hl ? HIGH : LOW);
|
||||
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
static PyObject *Bpsspi_send_byte_transmit(Bpsspi *self, PyObject *args, PyObject *kwargs) {
|
||||
static char *keywords[] = {"data", NULL};
|
||||
|
||||
PyObject *data_ref;
|
||||
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O", keywords, &data_ref)) return NULL;
|
||||
|
||||
if (!PyBytes_Check(data_ref)) {
|
||||
PyErr_SetString(PyExc_ValueError, "data not bytes");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Py_ssize_t data_sz = PyBytes_GET_SIZE(data_ref);
|
||||
char * data = PyBytes_AS_STRING(data_ref);
|
||||
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
|
||||
int clk_0 = (self->cpol) ? HIGH : LOW;
|
||||
int clk_1 = (self->cpol) ? LOW : HIGH;
|
||||
|
||||
digitalWrite(self->clk, clk_0);
|
||||
|
||||
for (unsigned int i = 0; i < data_sz; i++) {
|
||||
char d = data[i];
|
||||
|
||||
for (int j = 7; j >= 0; j--) {
|
||||
int v = (d & (1 << j)) > 0;
|
||||
|
||||
if (self->cpha) {
|
||||
digitalWrite(self->clk, clk_1);
|
||||
delayMicroseconds(SPI_SPEED_US);
|
||||
|
||||
digitalWrite(self->mosi, (v) ? HIGH : LOW);
|
||||
digitalWrite(self->clk, clk_0);
|
||||
} else {
|
||||
digitalWrite(self->mosi, (v) ? HIGH : LOW);
|
||||
digitalWrite(self->clk, clk_1);
|
||||
delayMicroseconds(SPI_SPEED_US);
|
||||
|
||||
digitalWrite(self->clk, clk_0);
|
||||
}
|
||||
|
||||
delayMicroseconds(SPI_SPEED_US);
|
||||
}
|
||||
}
|
||||
|
||||
digitalWrite(self->clk, clk_0);
|
||||
|
||||
Py_END_ALLOW_THREADS
|
||||
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
// XXX not tested
|
||||
static PyObject *Bpsspi_send_byte_exchange(Bpsspi *self, PyObject *args, PyObject *kwargs) {
|
||||
if (self->miso < 0) {
|
||||
PyErr_SetString(PyExc_RuntimeError, "miso pin not set");
|
||||
}
|
||||
|
||||
static char *keywords[] = {"data", NULL};
|
||||
|
||||
PyObject *data_ref;
|
||||
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O", keywords, &data_ref)) return NULL;
|
||||
|
||||
if (!PyBytes_Check(data_ref)) {
|
||||
PyErr_SetString(PyExc_ValueError, "data not bytes");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Py_ssize_t data_sz = PyBytes_GET_SIZE(data_ref);
|
||||
char * data = PyBytes_AS_STRING(data_ref);
|
||||
|
||||
PyObject *ret = PyList_New(data_sz);
|
||||
if (ret == NULL) return NULL;
|
||||
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
|
||||
int clk_0 = (self->cpol) ? HIGH : LOW;
|
||||
int clk_1 = (self->cpol) ? LOW : HIGH;
|
||||
|
||||
digitalWrite(self->clk, clk_0);
|
||||
|
||||
for (unsigned int i = 0; i < data_sz; i++) {
|
||||
char d = data[i];
|
||||
int r = 0;
|
||||
|
||||
for (int j = 7; j >= 0; j--) {
|
||||
int v = (d & (1 << j)) > 0;
|
||||
|
||||
if (self->cpha) {
|
||||
digitalWrite(self->clk, clk_1);
|
||||
delayMicroseconds(SPI_SPEED_US);
|
||||
|
||||
digitalWrite(self->mosi, (v) ? HIGH : LOW);
|
||||
digitalWrite(self->clk, clk_0);
|
||||
delayMicroseconds(SPI_SPEED_US);
|
||||
|
||||
if (digitalRead(self->miso)) {
|
||||
r |= (1 << j);
|
||||
}
|
||||
|
||||
} else {
|
||||
digitalWrite(self->mosi, (v) ? HIGH : LOW);
|
||||
digitalWrite(self->clk, clk_1);
|
||||
delayMicroseconds(SPI_SPEED_US);
|
||||
|
||||
if (digitalRead(self->miso)) {
|
||||
r |= (1 << j);
|
||||
}
|
||||
|
||||
digitalWrite(self->clk, clk_0);
|
||||
delayMicroseconds(SPI_SPEED_US);
|
||||
}
|
||||
}
|
||||
|
||||
PyList_SET_ITEM(ret, i, PyLong_FromLong(r));
|
||||
}
|
||||
|
||||
digitalWrite(self->clk, clk_0);
|
||||
|
||||
Py_END_ALLOW_THREADS
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
// module init
|
||||
|
||||
static PyMethodDef moduleMethods[] = { //
|
||||
{NULL, NULL, 0, NULL}};
|
||||
|
||||
static struct PyModuleDef BpsspiModule = { //
|
||||
PyModuleDef_HEAD_INIT,
|
||||
// module name
|
||||
"bpsspi",
|
||||
// module doc
|
||||
NULL,
|
||||
-1,
|
||||
moduleMethods};
|
||||
|
||||
// module export
|
||||
|
||||
PyMODINIT_FUNC PyInit_bpsspi(void) {
|
||||
wiringPiSetupPhys();
|
||||
|
||||
PyObject *module;
|
||||
|
||||
module = PyModule_Create(&BpsspiModule);
|
||||
if (module == NULL) return NULL;
|
||||
|
||||
if (PyType_Ready(&BpsspiType) < 0) return NULL;
|
||||
|
||||
Py_INCREF(&BpsspiType);
|
||||
PyModule_AddObject(module, "Bpsspi", (PyObject *)&BpsspiType);
|
||||
|
||||
return module;
|
||||
}
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
/* Copyright (c) 2019. BioPro. Scientific.
|
||||
*/
|
||||
|
||||
#ifndef HEADSTAGE_NOTIFY_TDC4VAF2_H
|
||||
#define HEADSTAGE_NOTIFY_TDC4VAF2_H
|
||||
|
||||
#ifndef HEADSTAGE_NOTIFY_H
|
||||
#error "headstage/headstage_notify.h not included"
|
||||
#endif
|
||||
|
||||
#include "../headstage_notify_general.h"
|
||||
|
||||
#define NOT_BUF_OFFSET_INIT 8
|
||||
|
||||
#define headstage_notify_flip_buffer() _headstage_notify_flip_buffer((not_buf_offset - NOT_BUF_OFFSET_INIT) / 2);
|
||||
|
||||
static uint8_t headstage_notify_append_data(uint8_t channel, uint8_t *data_value) {
|
||||
if (not_buf_offset <= NOT_BUF_OFFSET_INIT) {
|
||||
headstage_notify_set_timestamp();
|
||||
|
||||
not_buf_offset = NOT_BUF_OFFSET_INIT;
|
||||
}
|
||||
|
||||
if (not_buf_offset == NOT_BUF_OFFSET_INIT + 2) {
|
||||
uint32_t current = headstage_time_stamp();
|
||||
uint32_t time_delta = ((current - not_time_stamp) >> 1) & 0xFFFF;
|
||||
|
||||
headstage_notify_buffer[6] = time_delta & 0xFF;
|
||||
headstage_notify_buffer[7] = (time_delta >> 8) & 0xFF;
|
||||
}
|
||||
|
||||
if (not_buf_offset >= BLE_NOT_BUFF_SIZE) {
|
||||
return not_buf_offset;
|
||||
}
|
||||
|
||||
if (data_value == NULL) {
|
||||
headstage_notify_buffer[not_buf_offset++] = ((channel & 0x0F) << 4);
|
||||
headstage_notify_buffer[not_buf_offset++] = 0x03;
|
||||
} else {
|
||||
headstage_notify_buffer[not_buf_offset++] = ((channel & 0x0f) << 4) | (data_value[1] & 0x0f);
|
||||
headstage_notify_buffer[not_buf_offset++] = data_value[2] & 0xFC;
|
||||
}
|
||||
|
||||
uint8_t ret = not_buf_offset;
|
||||
|
||||
if (not_buf_offset >= BLE_NOT_BUFF_SIZE) {
|
||||
headstage_notify_flip_buffer();
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif // HEADSTAGE_NOTIFY_TDC4VAF2_H
|
||||
-32
@@ -42,38 +42,6 @@
|
||||
|
||||
// clang-format on
|
||||
|
||||
/*
|
||||
* SPI0 interface with DBS chip 2.0
|
||||
*/
|
||||
#define Board_SPI0_MISO PIN_UNASSIGNED
|
||||
#define Board_SPI0_MOSI PIN_LSK_MOSI
|
||||
#define Board_SPI0_CLK PIN_LSK_CLK
|
||||
#define Board_SPI0_CSN PIN_LSK_CS
|
||||
|
||||
/*
|
||||
* SPI1 interface work with LED
|
||||
*/
|
||||
|
||||
#define Board_SPI1_MISO PIN_UNASSIGNED
|
||||
#define Board_SPI1_MOSI PIN_ASK_MOSI
|
||||
#define Board_SPI1_CLK PIN_UNASSIGNED
|
||||
#define Board_SPI1_CSN PIN_ASK_CS
|
||||
|
||||
/* Power Management Board */
|
||||
#define Board_SRDY Board_BP_Pin_J2_19
|
||||
#define Board_MRDY Board_BP_Pin_J1_2
|
||||
|
||||
/* PWM outputs */
|
||||
#define Board_PWMPIN0 PIN_AMP_VCK
|
||||
#define Board_PWMPIN1 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN2 PIN_CLOCK_8M
|
||||
#define Board_PWMPIN3 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN4 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN5 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN6 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN7 PIN_UNASSIGNED
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
static PIN_Config headstage_pin_configuration[] = { //
|
||||
|
||||
+86
-109
@@ -1,64 +1,64 @@
|
||||
{
|
||||
"name": "Neulive",
|
||||
"version": "1.3",
|
||||
"version": "0.2",
|
||||
"match_rule": {
|
||||
"local_name_pattern": "Neulive.*",
|
||||
"major_product_number": 1,
|
||||
"minor_product_number": 1,
|
||||
"major_version_number": 1,
|
||||
"minor_version_number": 3
|
||||
"major_version_number": 0,
|
||||
"minor_version_number": 2
|
||||
},
|
||||
"constant": {
|
||||
"REC_CHANNEL_COUNT": 12,
|
||||
"REC_CHANNEL_COUNT": 13,
|
||||
"STI_CHANNEL_COUNT": 4,
|
||||
"ADC_SAMPLE_RATE_LIST": [
|
||||
1000,
|
||||
1900,
|
||||
3800,
|
||||
7600,
|
||||
15200
|
||||
10000,
|
||||
19000,
|
||||
38000,
|
||||
76000,
|
||||
152000
|
||||
],
|
||||
"STI_FREQ_LIST": [
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
15,
|
||||
16,
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20,
|
||||
30,
|
||||
40,
|
||||
50,
|
||||
60,
|
||||
70,
|
||||
80,
|
||||
90,
|
||||
100,
|
||||
110,
|
||||
120,
|
||||
130,
|
||||
140,
|
||||
150,
|
||||
160,
|
||||
170,
|
||||
180,
|
||||
190,
|
||||
200,
|
||||
300,
|
||||
400,
|
||||
500,
|
||||
600,
|
||||
700,
|
||||
800,
|
||||
900,
|
||||
1000
|
||||
1000,
|
||||
2000,
|
||||
3000,
|
||||
4000,
|
||||
5000,
|
||||
6000,
|
||||
7000,
|
||||
8000,
|
||||
9000,
|
||||
10000
|
||||
],
|
||||
"STI_PULSE_WIDTH": [
|
||||
400,
|
||||
900,
|
||||
1400,
|
||||
1900,
|
||||
2400,
|
||||
2900,
|
||||
3400,
|
||||
3900,
|
||||
4400,
|
||||
4900
|
||||
40,
|
||||
90,
|
||||
140,
|
||||
190,
|
||||
240,
|
||||
290,
|
||||
340,
|
||||
390,
|
||||
440,
|
||||
490
|
||||
]
|
||||
},
|
||||
"parameters": {
|
||||
@@ -84,19 +84,22 @@
|
||||
"description": "amp gain",
|
||||
"record_meta": true,
|
||||
"value": [
|
||||
60,
|
||||
280,
|
||||
540
|
||||
2,
|
||||
5,
|
||||
10,
|
||||
200,
|
||||
500,
|
||||
1000
|
||||
]
|
||||
},
|
||||
"LOW_FREQ_BAND": {
|
||||
"description": "low pass filter",
|
||||
"description": "",
|
||||
"record_meta": true,
|
||||
"domain": [
|
||||
8
|
||||
]
|
||||
},
|
||||
"STI_MODE": {
|
||||
"STI_BEHAVIOR": {
|
||||
"description": "how to execute stimulus",
|
||||
"value": [
|
||||
"DISABLE",
|
||||
@@ -105,8 +108,8 @@
|
||||
"CONTINUOUS"
|
||||
]
|
||||
},
|
||||
"STI_WAVEFORM": {
|
||||
"description": "describe the waveform of stimulation",
|
||||
"STI_MODE": {
|
||||
"description": "stimulation mode",
|
||||
"value": [
|
||||
"Positive Pulse",
|
||||
"Negative Pulse",
|
||||
@@ -115,13 +118,13 @@
|
||||
"Arbitrary Waveform"
|
||||
]
|
||||
},
|
||||
"STI_AMPERE": {
|
||||
"description": "stimulation ampere, unit: uA ",
|
||||
"STI_VOLT": {
|
||||
"description": "stimulation voltage",
|
||||
"type": "float",
|
||||
"domain": [
|
||||
32
|
||||
],
|
||||
"value": " 31 * VALUE "
|
||||
"value": "2 + 3 * VALUE / 31"
|
||||
},
|
||||
"STI_TIMES": {
|
||||
"description": "how many times will be executed",
|
||||
@@ -159,44 +162,31 @@
|
||||
"value": "STI_PULSE_WIDTH[VALUE]"
|
||||
},
|
||||
"CHOPPER": {
|
||||
"description": "default_disable",
|
||||
"description": "",
|
||||
"domain": "bool"
|
||||
},
|
||||
"FAST_SETTLE": {
|
||||
"description": "protect amplifier input when stimulation is executed",
|
||||
"description": "",
|
||||
"domain": "bool"
|
||||
},
|
||||
"UMC_TEST": {
|
||||
"description": "start umc test mode",
|
||||
"domain": "action",
|
||||
"on_change": "umc_default"
|
||||
},
|
||||
"UMC_RESET": {
|
||||
"description": "reset headstage to perform another setting",
|
||||
"domain": "action",
|
||||
"on_change": "reset"
|
||||
},
|
||||
"UMC_TRIGGER": {
|
||||
"description": "trigger stimulation when device is in trigger mode",
|
||||
"domain": "action",
|
||||
"on_change": "STIMULUS"
|
||||
}
|
||||
},
|
||||
"instruction": {
|
||||
"start": [
|
||||
"data_format",
|
||||
{
|
||||
"expression": "len(CHANNEL) > 0",
|
||||
"raise": "no recording channel"
|
||||
},
|
||||
"_notify(True)",
|
||||
"start_recording",
|
||||
"umc_parameter",
|
||||
"_sync(True)",
|
||||
"VIS_STI"
|
||||
],
|
||||
"trigger stimulation": [
|
||||
"umc_sti_trigger0"
|
||||
],
|
||||
"umc_reset": [
|
||||
"VIS_RST"
|
||||
],
|
||||
"data_format": [
|
||||
"_data_format('TDC4VAF2')"
|
||||
],
|
||||
@@ -204,45 +194,40 @@
|
||||
"type": "RIS",
|
||||
"data": [
|
||||
"3b101#direct header;2b0#don't care;3b>LOW_FREQ_BAND",
|
||||
"2b0#don't care;1bCHOPPER;1bFAST_SETTLE;3b>STI_WAVEFORM",
|
||||
"5b>STI_AMPERE;4b>STI_PMOS",
|
||||
"4b0#don't care;1bCHOPPER;1bFAST_SETTLE",
|
||||
"5b>STI_VOLT;4b>STI_PMOS",
|
||||
"4b>STI_NMOS;4b>SAMPLE_RATE"
|
||||
]
|
||||
},
|
||||
"umc_parameter": {
|
||||
"type": "RIS",
|
||||
"foreach-parameter": {
|
||||
"parameter": "CHANNEL",
|
||||
"variable": [
|
||||
"a",
|
||||
"b",
|
||||
"c",
|
||||
"d"
|
||||
]
|
||||
},
|
||||
"data": [
|
||||
"3b001#umc parameter header;3b>AMP_GAIN",
|
||||
"4b>PULSE_WIDTH;6b>STI_TIMES",
|
||||
"2b>STI_MODE;6b>STI_FREQ",
|
||||
"1ba?;1bb?;1bc?;1bd?",
|
||||
"4b>a?:0;4b>b?:0",
|
||||
"4b>c?:0;4b>d?:0"
|
||||
"3b001#umc parameter header",
|
||||
"3b>AMP_GAIN;4b>PULSE_WIDTH",
|
||||
"6b>STI_TIMES;2b>STI_BEHAVIOR",
|
||||
"6b>STI_FREQ"
|
||||
]
|
||||
},
|
||||
"umc_default": [
|
||||
"_set('CHANNEL', 0)",
|
||||
"_set('SAMPLE_RATE', 0)",
|
||||
"_set('AMP_GAIN', 5)",
|
||||
"_set('STI_WAVEFORM', 1)",
|
||||
"_set('STI_MODE', 1)",
|
||||
"_set('STI_NMOS', 0)",
|
||||
"_set('STI_PMOS', 1)",
|
||||
"_set('STI_AMPERE', 0)",
|
||||
"_set('CHANNEL', 3)",
|
||||
"_set('CHANNEL', 4)",
|
||||
"_set('CHANNEL', 5)",
|
||||
"_set('CHANNEL', 6)",
|
||||
"_set('CHANNEL', 7)",
|
||||
"_set('CHANNEL', 8)",
|
||||
"_set('SAMPLE_RATE', 9)",
|
||||
"_set('AMP_GAIN', 3)",
|
||||
"_set('STI_BEHAVIOR', 1)",
|
||||
"_set('STI_MODE', 0)",
|
||||
"_set('STI_NMOS', STI_PMOS + 1)",
|
||||
"_set('STI_PMOS', 0)",
|
||||
"_set('STI_NMOS', 1)",
|
||||
"_set('STI_VOLT', 0)",
|
||||
"_set('STI_FREQ', 0)",
|
||||
"_set('STI_TIMES', 0)",
|
||||
"_set('PULSE_WIDTH', 0)",
|
||||
"_set('FAST_SETTLE', 1)",
|
||||
"_set('CHOPPER', 0)",
|
||||
"_set('FAST_SETTLE', 0)",
|
||||
"_set('CHOPPER', 1)",
|
||||
"data_format",
|
||||
"_notify(True)",
|
||||
"umc_default0",
|
||||
@@ -254,14 +239,6 @@
|
||||
"data": [
|
||||
"1B0#load umc default parameter into uni"
|
||||
]
|
||||
},
|
||||
"umc_sti_trigger0": {
|
||||
"type": "RIS",
|
||||
"description": "this function is perform only in trigger mode",
|
||||
"data": [
|
||||
"1BC0# trigger stimulation when recording is performed"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user