Compare commits
269 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ad1a5d25ac | |||
| 2424f31806 | |||
| d70b64a1f9 | |||
| ed59a6502c | |||
| 9b2ab7809f | |||
| 5557f73416 | |||
| 6ba1b1c347 | |||
| e972859c1a | |||
| 597514a1cc | |||
| 9e278ac83a | |||
| 8df9c5d3dc | |||
| 66e09591b4 | |||
| 404d8d8d9d | |||
| 884b38b4a9 | |||
| 5a7604cad0 | |||
| 06be551603 | |||
| 5d1aab1a17 | |||
| 7a88c4ea94 | |||
| 071ee6d057 | |||
| 7a3c746547 | |||
| 8e21db3440 | |||
| 21be0d0286 | |||
| 8fdf51afea | |||
| ab98ad66a9 | |||
| 14319151b3 | |||
| 898478b485 | |||
| 5923833fa1 | |||
| fd1d10b8e1 | |||
| b718cbfca3 | |||
| a891741e98 | |||
| 1c14375948 | |||
| c1cedcb9c2 | |||
| 271a80766b | |||
| efb7df7c33 | |||
| 0471fa43dc | |||
| aa0c14c588 | |||
| 2543fd1238 | |||
| c01d6a3899 | |||
| 79e5a480ec | |||
| e3bb56f38b | |||
| 77cc277ba9 | |||
| 0bb8d7788d | |||
| fcb35d7b91 | |||
| 970d2adf73 | |||
| 3d1779ad81 | |||
| 05bbb46400 | |||
| b1dae861fc | |||
| b9a0acffea | |||
| 765326df98 | |||
| 394b959ae5 | |||
| 09ab588e06 | |||
| ad4898e0f0 | |||
| 535f2a2f7d | |||
| a2235da1fd | |||
| f9e281ea4a | |||
| 8a64684247 | |||
| 290af2a77c | |||
| 99ceee42f6 | |||
| 6bc11ba56a | |||
| 704253a9e8 | |||
| efe3678d55 | |||
| 3347d31297 | |||
| d84d8666c5 | |||
| b9e839ff41 | |||
| 24634276aa | |||
| 8e691ba69e | |||
| 30aa17dd0e | |||
| f0fbe52296 | |||
| 48f61c564f | |||
| 1e67263010 | |||
| 9cf1e8f268 | |||
| ceb15a9af1 | |||
| fe0c6093d5 | |||
| a231b33ef8 | |||
| ccacc34bd0 | |||
| 111d593567 | |||
| 65eb3ab488 | |||
| ad65de63fe | |||
| 135c7aaac4 | |||
| 881e0ced01 | |||
| e79a73588f | |||
| 2c03a95d28 | |||
| 17177af681 | |||
| bda081de95 | |||
| 638c2fe671 | |||
| 3d1de663a8 | |||
| d1b1daeed7 | |||
| 3c22eda2dc | |||
| 5deae80baa | |||
| 0ce0e65d40 | |||
| cacc86099e | |||
| 9b0d2a7fce | |||
| 71387262fc | |||
| e9fbbc2aa1 | |||
| ead9ef68ce | |||
| b3f57d19b1 | |||
| 3b6cc46136 | |||
| 11e1e8a26c | |||
| a6ce89f73f | |||
| aceb1d2f05 | |||
| 24c476d919 | |||
| 28332daea7 | |||
| 0439d8d97d | |||
| 3baec88cce | |||
| a3a69d24fd | |||
| 7ae75451bc | |||
| 6937b6a54f | |||
| fdbe554eda | |||
| dac9aa3444 | |||
| b9f8f07bbc | |||
| 3815fc66b4 | |||
| 77dbf2f5c9 | |||
| e6c157688a | |||
| 4c72d92ebe | |||
| 919dfbc31b | |||
| cc6f06dc3e | |||
| 0d97b06c57 | |||
| feffc91f96 | |||
| fdb2c85ce3 | |||
| 94e0286059 | |||
| 97b1aac278 | |||
| ac7f145da5 | |||
| 43f89eee78 | |||
| 9ab356af36 | |||
| c9f7007368 | |||
| 4ebdb5cfa1 | |||
| cd25c99600 | |||
| adf44acec1 | |||
| 61ba6905d3 | |||
| 9991c818a4 | |||
| 0e5f136c22 | |||
| 9cd9680805 | |||
| 6faafc39e4 | |||
| 27896cd970 | |||
| 761a2c1653 | |||
| fd59b5a6ea | |||
| fec1fd439e | |||
| f0bc9575b9 | |||
| 7a87809974 | |||
| 83befad0b1 | |||
| 1eb6b386e5 | |||
| 4d51474c65 | |||
| 3cb8a846b6 | |||
| bb0e524314 | |||
| f4a49e95f8 | |||
| d1dcc60965 | |||
| bacb67a75e | |||
| b9aaaf441e | |||
| d7684cb6b8 | |||
| bd527afe41 | |||
| 996e73f2c8 | |||
| 9fdf1b535d | |||
| c9bb309c29 | |||
| 9939a92809 | |||
| d5f1068b78 | |||
| 5fdc676460 | |||
| d826e90919 | |||
| 3bb8a11aff | |||
| 7c00fd31c6 | |||
| a77f800a1d | |||
| 799a7434dc | |||
| 320c960370 | |||
| 68673ef071 | |||
| 114b7d1776 | |||
| 9e6a71f7f8 | |||
| ad566ac363 | |||
| 0516a58ec6 | |||
| 143f733077 | |||
| a774a98ea4 | |||
| 22350a3555 | |||
| bd3ab34263 | |||
| 1f3ef4c84a | |||
| 2add4a55ef | |||
| 8788cf21c4 | |||
| 2ddc9eb927 | |||
| a4f8684bef | |||
| 10c6cf52b1 | |||
| f12064e029 | |||
| 985cf9f977 | |||
| 1b54fcae86 | |||
| f1b2e5a530 | |||
| 2464c99999 | |||
| 17fd5ace9b | |||
| e266de61bf | |||
| e8ba02eb7a | |||
| 40edc8677f | |||
| 82d9be071b | |||
| 81760c35c9 | |||
| 9a361e6e97 | |||
| 67a276dbb6 | |||
| be1276785c | |||
| 2f8b646a4f | |||
| 1ff7bc8746 | |||
| 1dbf5c1b6b | |||
| 5ba1f22de8 | |||
| e04a49b6a0 | |||
| 5b2529ad71 | |||
| e0a193c671 | |||
| 99023db231 | |||
| 2c5c92e578 | |||
| 22594e36c0 | |||
| 9018c98a68 | |||
| 62ed077791 | |||
| 68b32a5a15 | |||
| a24aebf4ac | |||
| 95a7926f36 | |||
| 76d5537b7a | |||
| 75f1fcc663 | |||
| ab803c7a54 | |||
| 0431f8f1be | |||
| 4f1884a468 | |||
| 1789fd82a0 | |||
| 9602b5e7fb | |||
| 08e9cc715f | |||
| 578b483c68 | |||
| fc2bd6b187 | |||
| e7180b56ee | |||
| 020703e07d | |||
| c1e8443ceb | |||
| 7cda4c4dec | |||
| 4194730f9c | |||
| a3fabf7eb6 | |||
| 33b17782cf | |||
| 0307d7ba2a | |||
| 00c431dfd0 | |||
| 317b34a8c0 | |||
| 09060b0b6f | |||
| 4cdda6dacb | |||
| 54193ffae7 | |||
| af5cd3dcf2 | |||
| c9985a3c67 | |||
| 1d7aa1b0ad | |||
| bb4561bd4e | |||
| 9077420de8 | |||
| 26e5f36783 | |||
| 4d5b7b3033 | |||
| ed73d2fdae | |||
| a00aec83ff | |||
| 6b611ff248 | |||
| e2af8153ed | |||
| 5724a22c9d | |||
| ee8e207004 | |||
| a2c93167ce | |||
| e94fd65e8f | |||
| ddf2f9e8f5 | |||
| 923e6408e7 | |||
| 96e6a441b9 | |||
| fbb8a4cbf6 | |||
| 2c84a79ebb | |||
| 7bd2381dca | |||
| a922b0cc40 | |||
| 3c0cf37074 | |||
| f9412ed0ea | |||
| da6647391c | |||
| a2c6c0298e | |||
| aa6c58df79 | |||
| 71d43c26be | |||
| e9dea14165 | |||
| 3b076f0faa | |||
| 2f4c6ce787 | |||
| 6425ffd91c | |||
| cbbe0a7387 | |||
| ad0c8e6bd6 | |||
| 68085d5ea5 | |||
| bfba8a23e1 | |||
| 2cd847b57b | |||
| 11928ccbb8 | |||
| 7bc70b5a72 | |||
| e10eeb48dd |
+2
-1
@@ -6,4 +6,5 @@ ccsv8/
|
||||
simplelink/ble_sdk_2_02_02_25/examples/cc2650em/simple_peripheral/ccs/app/.config/
|
||||
|
||||
# CSS build files
|
||||
FlashROM/
|
||||
FlashROM/
|
||||
/Elite_test.txt
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
MAC 18:04:ED:37:C6:6A .
|
||||
. coeff offset
|
||||
ADC_C1 311760871.760443 -50619.5024488329
|
||||
ADC_C2 0.065484773376246 -1061.19682828209
|
||||
ADC_C3 0.003142283837061 -50.9228211021286
|
||||
DAC -1.05569320115838 -0.000624379961454
|
||||
ADC_V1 56126.9201379636 10.1198174952741
|
||||
Executable
+39
@@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
|
||||
#path=$(pwd)
|
||||
#folder=$($path | awk -F"/" '{$NF}')
|
||||
folder=$(basename "$(pwd)")
|
||||
|
||||
if [ "$folder" == "bioprocc2650" ]; then
|
||||
year=$(date +%-y)
|
||||
month=$(date +%-m)
|
||||
day=$(date +%-d)
|
||||
hour=$(date +%-H)
|
||||
minute=$(date +%-M)
|
||||
|
||||
hash=$(git rev-parse HEAD)
|
||||
branch=$(git rev-parse --abbrev-ref HEAD)
|
||||
|
||||
sed -i "5c #define VERSION_DATE_YEAR ${year}"\
|
||||
./simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/headstage_version.h
|
||||
|
||||
sed -i "6c #define VERSION_DATE_MONTH ${month}"\
|
||||
./simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/headstage_version.h
|
||||
|
||||
sed -i "7c #define VERSION_DATE_DAY ${day}"\
|
||||
./simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/headstage_version.h
|
||||
|
||||
sed -i "8c #define VERSION_DATE_HOUR ${hour}"\
|
||||
./simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/headstage_version.h
|
||||
|
||||
sed -i "9c #define VERSION_DATE_MINUTE ${minute}"\
|
||||
./simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/headstage_version.h
|
||||
|
||||
sed -i "13c #define VERSION_HASH ${hash}"\
|
||||
./simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/headstage_version.h
|
||||
|
||||
sed -i "14c #define VERSION_GIT_BRANCH ${branch}"\
|
||||
./simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/headstage_version.h
|
||||
|
||||
#cat ./simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/headstage_version.h
|
||||
fi
|
||||
+1
-1
@@ -12,7 +12,7 @@
|
||||
<stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_TARGET_CONFIG" value="${target_config_active_default:simple_peripheral_cc2650em_app}"/>
|
||||
<stringAttribute key="com.ti.ccstudio.debug.debugModel.MRU_PROGRAM.C:\ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650em\simple_peripheral\ccs\app\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\app\FlashROM\simple_peripheral_cc2650em_app.out"/>
|
||||
<stringAttribute key="com.ti.ccstudio.debug.debugModel.MRU_PROGRAM.C:\ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650em\simple_peripheral\ccs\app\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\app\FlashROM\simple_peripheral_cc2650em_app.out"/>
|
||||
<stringAttribute key="com.ti.ccstudio.debug.debugModel.MRU_PROGRAM.C:\ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650em\simple_peripheral\ccs\app\targetConfigs\CC2650F128.ccxml.Texas Instruments XDS110 USB Debug Probe_0/Cortex_M3_0" value="C:/ti\ccsv8\ccs_base\emulation\gel\images\cc26xx\cc26x0_rtos_rom_syms.out"/>
|
||||
<stringAttribute key="com.ti.ccstudio.debug.debugModel.MRU_PROGRAM.C:\ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650em\simple_peripheral\ccs\app\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\app\FlashROM\simple_peripheral_cc2650em_app.out"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/simple_peripheral_cc2650em_app"/>
|
||||
</listAttribute>
|
||||
|
||||
+5
@@ -17,6 +17,11 @@
|
||||
<property Type="choicelist" Value="1" id="XDS110 Aux Port"/>
|
||||
</choice>
|
||||
</property>
|
||||
<property Type="choicelist" Value="1" id="Debug Probe Selection">
|
||||
<choice Name="Select by serial number" value="0">
|
||||
<property Type="stringfield" Value="L1000537" id="-- Enter the serial number"/>
|
||||
</choice>
|
||||
</property>
|
||||
<platform XML_version="1.2" id="platform_0">
|
||||
<instance XML_version="1.2" desc="CC2650F128_0" href="devices/cc2650f128.xml" id="CC2650F128_0" xml="cc2650f128.xml" xmlpath="devices"/>
|
||||
</platform>
|
||||
|
||||
+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>
|
||||
|
||||
+236
-120
@@ -14,130 +14,246 @@
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1209999684" name="FlashROM" parent="com.ti.ccstudio.buildDefinitions.TMS470.Default" postannouncebuildStep="" postbuildStep="${CG_TOOL_HEX} -order MS --memwidth=8 --romwidth=8 --intel -o ${ProjName}.hex ${ProjName}.out;${TOOLS_BLE}/frontier/frontier.exe ccs ${PROJECT_LOC}/${ConfigName}/${ProjName}_linkInfo.xml ${ORG_PROJ_DIR}/../../ccs/config/ccs_compiler_defines.bcfg ${ORG_PROJ_DIR}/../../ccs/config/ccs_linker_defines.cmd" preannouncebuildStep="" prebuildStep=""${TOOLS_BLE}/lib_search/lib_search.exe" ${ORG_PROJ_DIR}/build_config.opt "${TOOLS_BLE}/lib_search/params_split_cc2640.xml" ${SRC_BLE_CORE}/../blelib "${ORG_PROJ_DIR}/../../ccs/config/lib_linker.cmd"">
|
||||
<folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1209999684." name="/" resourcePath="">
|
||||
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain.929750171" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.1008890994">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1479696404" 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="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
|
||||
<listOptionValue builtIn="false" value="CCS_MBS_VERSION=5.5.0"/>
|
||||
<listOptionValue builtIn="false" value="LINK_ORDER=TOOLS/ccs_linker_defines.cmd;TOOLS/cc26xx_ble_stack.cmd;"/>
|
||||
<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE="/>
|
||||
<listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.201372544" 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.1951196199" 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.20903631" 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.1176131016" 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.647279085" 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.1443871767" 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.227818129" 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.784155377" 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.494285153" 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.581550859" 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.1288777730" 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="${SRC_EX}/examples/simple_peripheral/cc26xx/stack"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/common/cc26xx"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/hal/src/target/_common"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/hal/src/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/nv/cc26xx"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/services/src/nv"/>
|
||||
<folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1209999684." name="/"
|
||||
resourcePath="">
|
||||
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain.832046861"
|
||||
name="TI Build Tools"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain"
|
||||
targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.1662665503">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.361513614"
|
||||
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="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
|
||||
<listOptionValue builtIn="false" value="CCS_MBS_VERSION=5.5.0"/>
|
||||
<listOptionValue builtIn="false"
|
||||
value="LINK_ORDER=TOOLS/ccs_linker_defines.cmd;TOOLS/cc26xx_ble_stack.cmd;"/>
|
||||
<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE="/>
|
||||
<listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.1409784186"
|
||||
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.1097216259"
|
||||
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.988453068"
|
||||
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.772298983"
|
||||
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.1310942383"
|
||||
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.746618886"
|
||||
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.1515548706"
|
||||
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.607163911"
|
||||
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.318297824"
|
||||
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.631719280"
|
||||
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.1577402438"
|
||||
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_peripheral/cc26xx/stack"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/common/cc26xx"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/hal/src/target/_common"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/hal/src/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/nv/cc26xx"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/services/src/nv"/>
|
||||
<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="${SRC_BLE_CORE}/controller/cc26xx/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/services/src/aes/cc26xx"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/npi/src"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/common/cc26xx/npi/stack"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/icall/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/profiles/roles"/>
|
||||
<listOptionValue builtIn="false" value="${CC26XXWARE}"/>
|
||||
</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="CC26XXWARE"/>
|
||||
<listOptionValue builtIn="false" value="DATA="/>
|
||||
<listOptionValue builtIn="false" value="EXT_HAL_ASSERT"/>
|
||||
<listOptionValue builtIn="false" value="FLASH_ROM_BUILD"/>
|
||||
<listOptionValue builtIn="false" value="INCLUDE_AES_DECRYPT"/>
|
||||
<listOptionValue builtIn="false" value="NEAR_FUNC="/>
|
||||
<listOptionValue builtIn="false" value="${SRC_BLE_CORE}/rom"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_BLE_CORE}/controller/cc26xx/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/services/src/aes/cc26xx"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/npi/src"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/common/cc26xx/npi/stack"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/icall/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/profiles/roles"/>
|
||||
<listOptionValue builtIn="false" value="${CC26XXWARE}"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE.257493390"
|
||||
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="CC26XXWARE"/>
|
||||
<listOptionValue builtIn="false" value="DATA="/>
|
||||
<listOptionValue builtIn="false" value="EXT_HAL_ASSERT"/>
|
||||
<listOptionValue builtIn="false" value="FLASH_ROM_BUILD"/>
|
||||
<listOptionValue builtIn="false" value="INCLUDE_AES_DECRYPT"/>
|
||||
<listOptionValue builtIn="false" value="NEAR_FUNC="/>
|
||||
<listOptionValue builtIn="false" value="OSAL_CBTIMER_NUM_TASKS=1"/>
|
||||
<listOptionValue builtIn="false" value="OSAL_SNV=1"/>
|
||||
<listOptionValue builtIn="false" value="USE_ICALL"/>
|
||||
<listOptionValue builtIn="false" value="xDEBUG"/>
|
||||
<listOptionValue builtIn="false" value="xDEBUG_ENC"/>
|
||||
<listOptionValue builtIn="false" value="xDEBUG_GPIO"/>
|
||||
<listOptionValue builtIn="false" value="xDEBUG_SW_TRACE"/>
|
||||
<listOptionValue builtIn="false" value="xPM_DISABLE_PWRDOWN"/>
|
||||
<listOptionValue builtIn="false" value="xTESTMODES"/>
|
||||
<listOptionValue builtIn="false" value="xTEST_BLEBOARD"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.372638078" 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.DIAG_SUPPRESS.201347726" 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"/>
|
||||
<listOptionValue builtIn="false" value="16004"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING.73314177" 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.1126279750" 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.1492280006" 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.CMD_FILE.538453952" 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"/>
|
||||
</option>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__C_SRCS.313905687" 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.1129729173" 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.156783227" 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.538375181" 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.1008890994" 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.1873600405" 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.1359172875" 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.1355177509" 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.829303802" 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.1078356909" 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="${ORG_PROJ_DIR}/../../ccs/config/lib_linker.cmd"/>
|
||||
<listOptionValue builtIn="false" value="${ROM}/ble_rom_releases/04242014/ble_rom_patch.symbols"/>
|
||||
<listOptionValue builtIn="false" value="${CC26XXWARE}/driverlib/bin/ccs/driverlib.lib"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH.1707930214" 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.59164041" name="Suppress diagnostic <id> (--diag_suppress)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="16002-D"/>
|
||||
<listOptionValue builtIn="false" value="10247-D"/>
|
||||
<listOptionValue builtIn="false" value="10325-D"/>
|
||||
<listOptionValue builtIn="false" value="10229-D"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.11567165" 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.1727810233" 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.1385277262" 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.ENTRY_POINT.1153340314" name="Specify program entry point for the output module (--entry_point, -e)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.ENTRY_POINT" value="startup_entry" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.450995330" 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.1827942626" 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.1279238428" 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.526125450" 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.581803256" 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.947560992" name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH.1295209583" 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.110293046" 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.1122561921" 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>
|
||||
</toolChain>
|
||||
<listOptionValue builtIn="false" value="OSAL_SNV=1"/>
|
||||
<listOptionValue builtIn="false" value="USE_ICALL"/>
|
||||
<listOptionValue builtIn="false" value="xDEBUG"/>
|
||||
<listOptionValue builtIn="false" value="xDEBUG_ENC"/>
|
||||
<listOptionValue builtIn="false" value="xDEBUG_GPIO"/>
|
||||
<listOptionValue builtIn="false" value="xDEBUG_SW_TRACE"/>
|
||||
<listOptionValue builtIn="false" value="xPM_DISABLE_PWRDOWN"/>
|
||||
<listOptionValue builtIn="false" value="xTESTMODES"/>
|
||||
<listOptionValue builtIn="false" value="xTEST_BLEBOARD"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.174341808"
|
||||
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.DIAG_SUPPRESS.368319864"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS"
|
||||
valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="48"/>
|
||||
<listOptionValue builtIn="false" value="16004"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING.1796876384"
|
||||
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.1202072403"
|
||||
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.746142779"
|
||||
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.CMD_FILE.2057721302"
|
||||
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"/>
|
||||
</option>
|
||||
<inputType
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__C_SRCS.193620484"
|
||||
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.1071304751"
|
||||
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.1900538416"
|
||||
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.1395617758"
|
||||
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.1662665503"
|
||||
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.1043297041"
|
||||
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.30321841"
|
||||
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.1098985537"
|
||||
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.207849780"
|
||||
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.1730405570"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.LIBRARY"
|
||||
valueType="libs">
|
||||
<listOptionValue builtIn="false" value="libc.a"/>
|
||||
<listOptionValue builtIn="false"
|
||||
value="${ORG_PROJ_DIR}/../../ccs/config/lib_linker.cmd"/>
|
||||
<listOptionValue builtIn="false"
|
||||
value="${ROM}/ble_rom_releases/04242014/ble_rom_patch.symbols"/>
|
||||
<listOptionValue builtIn="false"
|
||||
value="${CC26XXWARE}/driverlib/bin/ccs/driverlib.lib"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH.1642862213"
|
||||
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.931842322"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS"
|
||||
valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="16002-D"/>
|
||||
<listOptionValue builtIn="false" value="10247-D"/>
|
||||
<listOptionValue builtIn="false" value="10325-D"/>
|
||||
<listOptionValue builtIn="false" value="10229-D"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.628793954"
|
||||
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.1795637117"
|
||||
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.1568690558"
|
||||
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.ENTRY_POINT.790669318"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.ENTRY_POINT"
|
||||
value="startup_entry" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.636942967"
|
||||
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.1245052655"
|
||||
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.1776037702"
|
||||
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.2125995458"
|
||||
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.1674943097"
|
||||
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.1597342378"
|
||||
name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH.1896669298"
|
||||
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.2112595558"
|
||||
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.1916629122"
|
||||
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>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry excluding="cc26x0f128.cmd" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
|
||||
|
||||
+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>
|
||||
|
||||
+20
-14
@@ -1,19 +1,25 @@
|
||||
<?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>
|
||||
<property Type="choicelist" Value="1" id="Debug Probe Selection">
|
||||
<choice Name="Select by serial number" value="0">
|
||||
<property Type="stringfield" Value="L1000537" id="-- Enter the serial number"/>
|
||||
</choice>
|
||||
</property>
|
||||
<platform XML_version="1.2" id="platform_0">
|
||||
|
||||
@@ -51,6 +51,7 @@ extern "C" {
|
||||
#include <ti/drivers/PIN.h>
|
||||
#include <driverlib/ioc.h>
|
||||
|
||||
#define HEADSTAGE_UNI_2_0
|
||||
#ifdef HEADSTAGE_UNI_2_0
|
||||
#include "neu/headstage_pin.h"
|
||||
#else
|
||||
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
#!/bin/bash
|
||||
|
||||
input="./Elite_test.txt"
|
||||
|
||||
declare -i col_index=0
|
||||
declare -i row_index=0
|
||||
declare -i channel=0
|
||||
declare -i gain=0
|
||||
declare -i current_line=2
|
||||
declare -a value
|
||||
|
||||
MAC="MAC"
|
||||
|
||||
while read -r line; do
|
||||
for word in $line; do
|
||||
# get device MAC
|
||||
if [ $row_index -eq 1 ] && [ $col_index -eq 0 ];then
|
||||
MAC=$word
|
||||
sed -i "${current_line} i \\\n#elif defined(BOARD_${MAC}){" ./test.txt
|
||||
sed -i 's/:/_/g' ./test.txt
|
||||
current_line=$current_line+2
|
||||
|
||||
# if [ $row_index -gt 0 ];then
|
||||
# # row 1~8 is the least gain clai data
|
||||
# channel=`expr $row_index - 1`
|
||||
# channel=`expr $channel % 8`
|
||||
#
|
||||
# gain=`expr $row_index - 1`
|
||||
# gain=`expr $gain / 8`
|
||||
#
|
||||
# if [ $col_index -eq 4 ];then
|
||||
# sed -i "${current_line} i \\\t.Ch[${channel}].Gain[${gain}] = $word," ./test.txt
|
||||
# current_line=$current_line+1
|
||||
# elif [ $col_index -eq 6 ];then
|
||||
# sed -i "${current_line} i \\\t.Ch[${channel}].Offset[${gain}] = $word," ./test.txt
|
||||
# current_line=$current_line+1
|
||||
# fi
|
||||
fi
|
||||
|
||||
#update index
|
||||
if [ $col_index -lt 5 ];then
|
||||
col_index=$col_index+1
|
||||
else
|
||||
col_index=0
|
||||
row_index=$row_index+1
|
||||
fi
|
||||
done
|
||||
done < $input
|
||||
|
||||
#sed -i "${current_line} i }" ./test.txt
|
||||
|
||||
+11
-2
@@ -193,6 +193,8 @@ extern ICall_Semaphore semaphore;
|
||||
#define CIS_NOP 0x00
|
||||
#define CIS_VOLT 0x10
|
||||
#define CIS_LED 0x20
|
||||
#define CIS_CALI 0x30
|
||||
#define CIS_VERSION 0x40
|
||||
|
||||
// CIS return status code
|
||||
#define CDR_SUCCESS 0x0
|
||||
@@ -316,7 +318,7 @@ typedef struct {
|
||||
==== device implement implement header ====
|
||||
=========================================*/
|
||||
|
||||
#include "headstage_uni.h"
|
||||
#include "headstage_neu.h"
|
||||
|
||||
/*!
|
||||
* main function
|
||||
@@ -378,7 +380,14 @@ static void headstage_update_instruction(uint8_t *instruction) {
|
||||
break;
|
||||
}
|
||||
case INS_TYPE_CIS: {
|
||||
headstage_update_cis_instruction(ins_oper);
|
||||
if(ins_oper == CIS_CALI){
|
||||
// CIS has only 20 byte now
|
||||
// need ins[2] to choose return gain or offset
|
||||
SendCaliValue(instruction[2]);
|
||||
}
|
||||
else{
|
||||
headstage_update_cis_instruction(ins_oper);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
|
||||
#ifndef BIT_COUNT
|
||||
#define BIT_COUNT
|
||||
|
||||
static uint8_t BitCount(uint8_t u8_value){
|
||||
uint8_t ret = 0;
|
||||
for(int i=0 ; i<8 ; i++){
|
||||
if(u8_value & (1 << i)){
|
||||
ret ++;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
+23
-1
@@ -12,9 +12,31 @@ static uint8_t headstage_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;
|
||||
internal_battery_percent = internal_batt_sense & 0xFF;
|
||||
if (internal_battery_percent < battery_percent) battery_percent = internal_battery_percent;
|
||||
return battery_percent;
|
||||
}
|
||||
|
||||
|
||||
static uint8_t battery_volt = 256;
|
||||
static uint8_t headstage_battery_volt1() {
|
||||
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;
|
||||
battery_volt = internal_battery_percent;
|
||||
return battery_volt;
|
||||
}
|
||||
|
||||
static uint8_t headstage_battery_volt2() {
|
||||
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 >> 8) & 0xFF;
|
||||
battery_volt = internal_battery_percent;
|
||||
return battery_volt;
|
||||
}
|
||||
|
||||
#endif // HEADSTAGE_BATT_H
|
||||
|
||||
+106
@@ -0,0 +1,106 @@
|
||||
|
||||
#ifndef HEAD_BLAST_DATA
|
||||
#define HEAD_BLAST_DATA
|
||||
|
||||
// L2CAP Header(2) + L2CAP CID(2) + ATT Opcode(1) + ATT handle(2)
|
||||
#define TOTAL_PACKET_OVERHEAD 7
|
||||
|
||||
static void SimpleBLEPeripheral_performPeriodicTask();
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
* @fn SimpleBLEPeripheral_blastData
|
||||
*
|
||||
* @brief Sends ATT notifications in a tight while loop to demo
|
||||
* throughput
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*/
|
||||
static void SimpleBLEPeripheral_blastData() {
|
||||
// Subtract the total packet overhead of ATT and L2CAP layer from notification payload
|
||||
uint16_t len = MAX_PDU_SIZE - TOTAL_PACKET_OVERHEAD;
|
||||
attHandleValueNoti_t noti;
|
||||
bStatus_t status;
|
||||
noti.handle = 0x27;
|
||||
noti.len = len;
|
||||
|
||||
uint32_t not_time_stamp;
|
||||
|
||||
// Store hte connection handle for future reference
|
||||
uint16_t connectionHandle;
|
||||
GAPRole_GetParameter(GAPROLE_CONNHANDLE, &connectionHandle);
|
||||
|
||||
// If RTOS queue is not empty, process app message.
|
||||
// We need to process the app message here in the case of a keypress
|
||||
while (!Queue_empty(appMsgQueue)) {
|
||||
sbpEvt_t *pMsg = (sbpEvt_t *)Util_dequeueMsg(appMsgQueue);
|
||||
if (pMsg) {
|
||||
// Process message.
|
||||
SimpleBLEPeripheral_processAppMsg(pMsg);
|
||||
|
||||
// Free the space from the message.
|
||||
ICall_free(pMsg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
not_time_stamp = Timestamp_get32() / 2;
|
||||
noti.pValue = (uint8 *)GATT_bm_alloc(connectionHandle, ATT_HANDLE_VALUE_NOTI, GATT_MAX_MTU, &len);
|
||||
|
||||
if (noti.pValue != NULL) // if allocated
|
||||
{
|
||||
// Place index
|
||||
noti.pValue[2] = not_time_stamp & 0xFF;
|
||||
noti.pValue[3] = (not_time_stamp >> 8) & 0xFF;
|
||||
noti.pValue[4] = (not_time_stamp >> 16) & 0xFF;
|
||||
noti.pValue[5] = (not_time_stamp >> 24) & 0xFF;
|
||||
noti.pValue[6] = 100;
|
||||
noti.pValue[7] = 0;
|
||||
|
||||
|
||||
// Attempt to send the notification
|
||||
status = GATT_Notification(connectionHandle, ¬i, GATT_NO_AUTHENTICATION);
|
||||
if (status != SUCCESS) // if noti not sent
|
||||
{
|
||||
// PIN_setOutputValue(hSbpPins, Board_LED1, Board_LED_ON);
|
||||
GATT_bm_free((gattMsg_t *)¬i, ATT_HANDLE_VALUE_NOTI);
|
||||
} else {
|
||||
// Notification is successfully sent, increment counters
|
||||
// Display_print0(dispHandle, 4, 0, "success");
|
||||
// PIN_setOutputValue(hSbpPins, Board_LED2, Board_LED_ON);
|
||||
msg_counter++;
|
||||
}
|
||||
} else {
|
||||
// bleNoResources was returned
|
||||
asm(" NOP ");
|
||||
}
|
||||
|
||||
// Reset debug pins
|
||||
// PIN_setOutputValue(hSbpPins, Board_LED1, Board_LED_OFF);
|
||||
// PIN_setOutputValue(hSbpPins, Board_LED2, Board_LED_OFF);
|
||||
}
|
||||
|
||||
static void SimpleBLEPeripheral_performPeriodicTask(){
|
||||
SimpleBLEPeripheral_blastData();
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
* @fn SimpleBLEPeripheral_clockHandler
|
||||
*
|
||||
* @brief Handler function for clock timeouts.
|
||||
*
|
||||
* @param arg - event type
|
||||
*
|
||||
* @return None.
|
||||
*/
|
||||
static void SimpleBLEPeripheral_clockHandler(UArg arg) {
|
||||
// Store the event.
|
||||
events |= arg;
|
||||
|
||||
// Wake up the application.
|
||||
Semaphore_post(sem);
|
||||
}
|
||||
|
||||
#endif
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
|
||||
#ifndef NEU_CALI_FXN
|
||||
#define NEU_CALI_FXN
|
||||
|
||||
#include "headstage_cali_table.h"
|
||||
|
||||
static void CaliTable2u8(uint8_t* cali){
|
||||
for(int i=0 ; i<12 ; i++){
|
||||
for(int j=0 ; j<3 ; j++){
|
||||
*(cali + 12*i + 2*j) = (uint8_t) (CaliTable.Ch[i].Gain[j] | 0xFF00) >> 8;
|
||||
*(cali + 12*i + 2*j+1) = (uint8_t) (CaliTable.Ch[i].Gain[j] | 0x00FF);
|
||||
*(cali + 12*i + 2*j+6) = (uint8_t) (CaliTable.Ch[i].Offset[j] | 0xFF00) >> 8;
|
||||
*(cali + 12*i + 2*j+7) = (uint8_t) (CaliTable.Ch[i].Offset[j] | 0x00FF);
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
* SendCaliValue
|
||||
* CaliNumber : 0~23
|
||||
* - 0: ch1 gain value
|
||||
* - 1: ch1 offset value
|
||||
* - 2: ch2 gain
|
||||
* - .......
|
||||
*/
|
||||
static void SendCaliValue(uint8_t CaliNumber){
|
||||
uint8_t ch, gain_offset;
|
||||
uint8_t cdr_buf[10];
|
||||
|
||||
ch = 2 * (CaliNumber % 4);
|
||||
uint8_t gain_level = CaliNumber / 4; // 0:gain, 1:offset
|
||||
|
||||
cdr_buf[0] = CHIP_ID;
|
||||
|
||||
cdr_buf[1] = (uint8_t) (CaliTable.Ch[ch].Gain[gain_level] >> 8) & 0xFF;
|
||||
cdr_buf[2] = (uint8_t) CaliTable.Ch[ch].Gain[gain_level] & 0x00FF;
|
||||
cdr_buf[3] = (uint8_t) (CaliTable.Ch[ch].Offset[gain_level] >> 8) & 0xFF;
|
||||
cdr_buf[4] = (uint8_t) CaliTable.Ch[ch].Offset[gain_level] & 0x00FF;
|
||||
cdr_buf[5] = (uint8_t) (CaliTable.Ch[ch+1].Gain[gain_level] >> 8) & 0xFF;
|
||||
cdr_buf[6] = (uint8_t) CaliTable.Ch[ch+1].Gain[gain_level] & 0x00FF;
|
||||
cdr_buf[7] = (uint8_t) (CaliTable.Ch[ch+1].Offset[gain_level] >> 8) & 0xFF;
|
||||
cdr_buf[8] = (uint8_t) CaliTable.Ch[ch+1].Offset[gain_level] & 0x00FF;
|
||||
|
||||
cdr_buf[9] = 0; // don't care
|
||||
|
||||
SimpleProfile_SetParameter(BLE_CDR_BUFF_CHAR, BLE_CDR_BUFF_SIZE, cdr_buf);
|
||||
}
|
||||
|
||||
#endif
|
||||
+971
@@ -0,0 +1,971 @@
|
||||
|
||||
#ifndef NEU_CALI_TABLE
|
||||
#define NEU_CALI_TABLE
|
||||
|
||||
#define BOARD_TEST
|
||||
|
||||
typedef struct _SingleChannelCali{
|
||||
uint16_t Gain[4];
|
||||
int16_t Offset[4];
|
||||
}SingleChannelCali;
|
||||
|
||||
struct _CaliTable{
|
||||
SingleChannelCali Ch[8];
|
||||
}CaliTable =
|
||||
|
||||
#ifdef BOARD_TEST
|
||||
{
|
||||
.Ch[0].Gain[0] = 1,
|
||||
.Ch[0].Offset[0] = 0,
|
||||
.Ch[1].Gain[0] = 1,
|
||||
.Ch[1].Offset[0] = 0,
|
||||
.Ch[2].Gain[0] = 1,
|
||||
.Ch[2].Offset[0] = 0,
|
||||
.Ch[3].Gain[0] = 1,
|
||||
.Ch[3].Offset[0] = 0,
|
||||
.Ch[4].Gain[0] = 1,
|
||||
.Ch[4].Offset[0] = 0,
|
||||
.Ch[5].Gain[0] = 1,
|
||||
.Ch[5].Offset[0] = 0,
|
||||
.Ch[6].Gain[0] = 1,
|
||||
.Ch[6].Offset[0] = 0,
|
||||
.Ch[7].Gain[0] = 1,
|
||||
.Ch[7].Offset[0] = 0,
|
||||
.Ch[0].Gain[1] = 1,
|
||||
.Ch[0].Offset[1] = 0,
|
||||
.Ch[1].Gain[1] = 1,
|
||||
.Ch[1].Offset[1] = 0,
|
||||
.Ch[2].Gain[1] = 1,
|
||||
.Ch[2].Offset[1] = 0,
|
||||
.Ch[3].Gain[1] = 1,
|
||||
.Ch[3].Offset[1] = 0,
|
||||
.Ch[4].Gain[1] = 1,
|
||||
.Ch[4].Offset[1] = 0,
|
||||
.Ch[5].Gain[1] = 1,
|
||||
.Ch[5].Offset[1] = 0,
|
||||
.Ch[6].Gain[1] = 1,
|
||||
.Ch[6].Offset[1] = 0,
|
||||
.Ch[7].Gain[1] = 1,
|
||||
.Ch[7].Offset[1] = 0,
|
||||
.Ch[0].Gain[2] = 1,
|
||||
.Ch[0].Offset[2] = 0,
|
||||
.Ch[1].Gain[2] = 1,
|
||||
.Ch[1].Offset[2] = 0,
|
||||
.Ch[2].Gain[2] = 1,
|
||||
.Ch[2].Offset[2] = 0,
|
||||
.Ch[3].Gain[2] = 1,
|
||||
.Ch[3].Offset[2] = 0,
|
||||
.Ch[4].Gain[2] = 1,
|
||||
.Ch[4].Offset[2] = 0,
|
||||
.Ch[5].Gain[2] = 1,
|
||||
.Ch[5].Offset[2] = 0,
|
||||
.Ch[6].Gain[2] = 1,
|
||||
.Ch[6].Offset[2] = 0,
|
||||
.Ch[7].Gain[2] = 1,
|
||||
.Ch[7].Offset[2] = 0,
|
||||
.Ch[0].Gain[3] = 1,
|
||||
.Ch[0].Offset[3] = 0,
|
||||
.Ch[1].Gain[3] = 1,
|
||||
.Ch[1].Offset[3] = 0,
|
||||
.Ch[2].Gain[3] = 1,
|
||||
.Ch[2].Offset[3] = 0,
|
||||
.Ch[3].Gain[3] = 1,
|
||||
.Ch[3].Offset[3] = 0,
|
||||
.Ch[4].Gain[3] = 1,
|
||||
.Ch[4].Offset[3] = 0,
|
||||
.Ch[5].Gain[3] = 1,
|
||||
.Ch[5].Offset[3] = 0,
|
||||
.Ch[6].Gain[3] = 1,
|
||||
.Ch[6].Offset[3] = 0,
|
||||
.Ch[7].Gain[3] = 1,
|
||||
.Ch[7].Offset[3] = 0
|
||||
};
|
||||
|
||||
#elif defined(BOARD_18_04_ED_37_C7_38)
|
||||
{
|
||||
.Ch[0].Gain[0] = 48,
|
||||
.Ch[0].Offset[0] = 49,
|
||||
.Ch[1].Gain[0] = 49,
|
||||
.Ch[1].Offset[0] = 36,
|
||||
.Ch[2].Gain[0] = 48,
|
||||
.Ch[2].Offset[0] = 55,
|
||||
.Ch[3].Gain[0] = 48,
|
||||
.Ch[3].Offset[0] = 50,
|
||||
.Ch[4].Gain[0] = 48,
|
||||
.Ch[4].Offset[0] = 51,
|
||||
.Ch[5].Gain[0] = 48,
|
||||
.Ch[5].Offset[0] = 76,
|
||||
.Ch[6].Gain[0] = 47,
|
||||
.Ch[6].Offset[0] = 44,
|
||||
.Ch[7].Gain[0] = 47,
|
||||
.Ch[7].Offset[0] = 49,
|
||||
.Ch[0].Gain[1] = 359,
|
||||
.Ch[0].Offset[1] = 44,
|
||||
.Ch[1].Gain[1] = 359,
|
||||
.Ch[1].Offset[1] = -56,
|
||||
.Ch[2].Gain[1] = 359,
|
||||
.Ch[2].Offset[1] = 82,
|
||||
.Ch[3].Gain[1] = 361,
|
||||
.Ch[3].Offset[1] = 49,
|
||||
.Ch[4].Gain[1] = 360,
|
||||
.Ch[4].Offset[1] = 56,
|
||||
.Ch[5].Gain[1] = 358,
|
||||
.Ch[5].Offset[1] = 239,
|
||||
.Ch[6].Gain[1] = 347,
|
||||
.Ch[6].Offset[1] = 5,
|
||||
.Ch[7].Gain[1] = 346,
|
||||
.Ch[7].Offset[1] = 40,
|
||||
.Ch[0].Gain[2] = 1494,
|
||||
.Ch[0].Offset[2] = 14,
|
||||
.Ch[1].Gain[2] = 1486,
|
||||
.Ch[1].Offset[2] = -394,
|
||||
.Ch[2].Gain[2] = 1473,
|
||||
.Ch[2].Offset[2] = 185,
|
||||
.Ch[3].Gain[2] = 1480,
|
||||
.Ch[3].Offset[2] = 54,
|
||||
.Ch[4].Gain[2] = 1478,
|
||||
.Ch[4].Offset[2] = 75,
|
||||
.Ch[5].Gain[2] = 1445,
|
||||
.Ch[5].Offset[2] = 824,
|
||||
.Ch[6].Gain[2] = 1437,
|
||||
.Ch[6].Offset[2] = -138,
|
||||
.Ch[7].Gain[2] = 1439,
|
||||
.Ch[7].Offset[2] = 5,
|
||||
.Ch[0].Gain[3] = 3027,
|
||||
.Ch[0].Offset[3] = -36,
|
||||
.Ch[1].Gain[3] = 2810,
|
||||
.Ch[1].Offset[3] = -823,
|
||||
.Ch[2].Gain[3] = 2945,
|
||||
.Ch[2].Offset[3] = 319,
|
||||
.Ch[3].Gain[3] = 2949,
|
||||
.Ch[3].Offset[3] = 59,
|
||||
.Ch[4].Gain[3] = 2947,
|
||||
.Ch[4].Offset[3] = 102,
|
||||
.Ch[5].Gain[3] = 1860,
|
||||
.Ch[5].Offset[3] = 1443,
|
||||
.Ch[6].Gain[3] = 2862,
|
||||
.Ch[6].Offset[3] = -328,
|
||||
.Ch[7].Gain[3] = 2890,
|
||||
.Ch[7].Offset[3] = -41
|
||||
};
|
||||
|
||||
#elif defined(BOARD_18_04_ED_37_C5_ED)
|
||||
{
|
||||
.Ch[0].Gain[0] = 95,
|
||||
.Ch[0].Offset[0] = 2013,
|
||||
.Ch[1].Gain[0] = 48,
|
||||
.Ch[1].Offset[0] = -10,
|
||||
.Ch[2].Gain[0] = 48,
|
||||
.Ch[2].Offset[0] = -15,
|
||||
.Ch[3].Gain[0] = 48,
|
||||
.Ch[3].Offset[0] = -26,
|
||||
.Ch[4].Gain[0] = 48,
|
||||
.Ch[4].Offset[0] = -18,
|
||||
.Ch[5].Gain[0] = 48,
|
||||
.Ch[5].Offset[0] = -23,
|
||||
.Ch[6].Gain[0] = 45,
|
||||
.Ch[6].Offset[0] = -23,
|
||||
.Ch[7].Gain[0] = 45,
|
||||
.Ch[7].Offset[0] = -35,
|
||||
.Ch[0].Gain[1] = 355,
|
||||
.Ch[0].Offset[1] = 9,
|
||||
.Ch[1].Gain[1] = 356,
|
||||
.Ch[1].Offset[1] = 57,
|
||||
.Ch[2].Gain[1] = 355,
|
||||
.Ch[2].Offset[1] = 25,
|
||||
.Ch[3].Gain[1] = 357,
|
||||
.Ch[3].Offset[1] = -70,
|
||||
.Ch[4].Gain[1] = 356,
|
||||
.Ch[4].Offset[1] = -1,
|
||||
.Ch[5].Gain[1] = 354,
|
||||
.Ch[5].Offset[1] = -39,
|
||||
.Ch[6].Gain[1] = 345,
|
||||
.Ch[6].Offset[1] = -37,
|
||||
.Ch[7].Gain[1] = 334,
|
||||
.Ch[7].Offset[1] = -130,
|
||||
.Ch[0].Gain[2] = 1540,
|
||||
.Ch[0].Offset[2] = 60,
|
||||
.Ch[1].Gain[2] = 1542,
|
||||
.Ch[1].Offset[2] = 314,
|
||||
.Ch[2].Gain[2] = 1529,
|
||||
.Ch[2].Offset[2] = 174,
|
||||
.Ch[3].Gain[2] = 1539,
|
||||
.Ch[3].Offset[2] = -199,
|
||||
.Ch[4].Gain[2] = 1541,
|
||||
.Ch[4].Offset[2] = 50,
|
||||
.Ch[5].Gain[2] = 1521,
|
||||
.Ch[5].Offset[2] = -97,
|
||||
.Ch[6].Gain[2] = 1480,
|
||||
.Ch[6].Offset[2] = -92,
|
||||
.Ch[7].Gain[2] = 1485,
|
||||
.Ch[7].Offset[2] = -497,
|
||||
.Ch[0].Gain[3] = 3310,
|
||||
.Ch[0].Offset[3] = 222,
|
||||
.Ch[1].Gain[3] = 3164,
|
||||
.Ch[1].Offset[3] = 690,
|
||||
.Ch[2].Gain[3] = 3220,
|
||||
.Ch[2].Offset[3] = 467,
|
||||
.Ch[3].Gain[3] = 3255,
|
||||
.Ch[3].Offset[3] = -401,
|
||||
.Ch[4].Gain[3] = 3311,
|
||||
.Ch[4].Offset[3] = 160,
|
||||
.Ch[5].Gain[3] = 3232,
|
||||
.Ch[5].Offset[3] = 78,
|
||||
.Ch[6].Gain[3] = 3253,
|
||||
.Ch[6].Offset[3] = -178,
|
||||
.Ch[7].Gain[3] = 2667,
|
||||
.Ch[7].Offset[3] = -985
|
||||
};
|
||||
|
||||
#elif defined(BOARD_00_81_F9_E4_9B_EF)
|
||||
{
|
||||
.Ch[0].Gain[0] = 48,
|
||||
.Ch[0].Offset[0] = 98,
|
||||
.Ch[1].Gain[0] = 47,
|
||||
.Ch[1].Offset[0] = 85,
|
||||
.Ch[2].Gain[0] = 47,
|
||||
.Ch[2].Offset[0] = 76,
|
||||
.Ch[3].Gain[0] = 47,
|
||||
.Ch[3].Offset[0] = 95,
|
||||
.Ch[4].Gain[0] = 47,
|
||||
.Ch[4].Offset[0] = 81,
|
||||
.Ch[5].Gain[0] = 47,
|
||||
.Ch[5].Offset[0] = 64,
|
||||
.Ch[6].Gain[0] = 45,
|
||||
.Ch[6].Offset[0] = 65,
|
||||
.Ch[7].Gain[0] = 1,
|
||||
.Ch[7].Offset[0] = 79,
|
||||
.Ch[0].Gain[1] = 353,
|
||||
.Ch[0].Offset[1] = 206,
|
||||
.Ch[1].Gain[1] = 353,
|
||||
.Ch[1].Offset[1] = 106,
|
||||
.Ch[2].Gain[1] = 353,
|
||||
.Ch[2].Offset[1] = 31,
|
||||
.Ch[3].Gain[1] = 354,
|
||||
.Ch[3].Offset[1] = 176,
|
||||
.Ch[4].Gain[1] = 355,
|
||||
.Ch[4].Offset[1] = 73,
|
||||
.Ch[5].Gain[1] = 351,
|
||||
.Ch[5].Offset[1] = -50,
|
||||
.Ch[6].Gain[1] = 343,
|
||||
.Ch[6].Offset[1] = -45,
|
||||
.Ch[7].Gain[1] = 222,
|
||||
.Ch[7].Offset[1] = -44,
|
||||
.Ch[0].Gain[2] = 1467,
|
||||
.Ch[0].Offset[2] = 573,
|
||||
.Ch[1].Gain[2] = 1469,
|
||||
.Ch[1].Offset[2] = 160,
|
||||
.Ch[2].Gain[2] = 1448,
|
||||
.Ch[2].Offset[2] = -130,
|
||||
.Ch[3].Gain[2] = 1468,
|
||||
.Ch[3].Offset[2] = 495,
|
||||
.Ch[4].Gain[2] = 1480,
|
||||
.Ch[4].Offset[2] = 40,
|
||||
.Ch[5].Gain[2] = 1444,
|
||||
.Ch[5].Offset[2] = -444,
|
||||
.Ch[6].Gain[2] = 1407,
|
||||
.Ch[6].Offset[2] = -442,
|
||||
.Ch[7].Gain[2] = 5736,
|
||||
.Ch[7].Offset[2] = -592,
|
||||
.Ch[0].Gain[3] = 2698,
|
||||
.Ch[0].Offset[3] = 1047,
|
||||
.Ch[1].Gain[3] = 3016,
|
||||
.Ch[1].Offset[3] = 251,
|
||||
.Ch[2].Gain[3] = 2915,
|
||||
.Ch[2].Offset[3] = -327,
|
||||
.Ch[3].Gain[3] = 2852,
|
||||
.Ch[3].Offset[3] = 868,
|
||||
.Ch[4].Gain[3] = 3035,
|
||||
.Ch[4].Offset[3] = -19,
|
||||
.Ch[5].Gain[3] = 2518,
|
||||
.Ch[5].Offset[3] = -938,
|
||||
.Ch[6].Gain[3] = 2387,
|
||||
.Ch[6].Offset[3] = -936,
|
||||
.Ch[7].Gain[3] = 11166,
|
||||
.Ch[7].Offset[3] = -656
|
||||
};
|
||||
|
||||
#elif defined(BOARD_00_81_F9_E4_9B_97)
|
||||
{
|
||||
.Ch[0].Gain[0] = 48,
|
||||
.Ch[0].Offset[0] = 34,
|
||||
.Ch[1].Gain[0] = 48,
|
||||
.Ch[1].Offset[0] = 25,
|
||||
.Ch[2].Gain[0] = 48,
|
||||
.Ch[2].Offset[0] = 31,
|
||||
.Ch[3].Gain[0] = 47,
|
||||
.Ch[3].Offset[0] = 44,
|
||||
.Ch[4].Gain[0] = 48,
|
||||
.Ch[4].Offset[0] = 29,
|
||||
.Ch[5].Gain[0] = 47,
|
||||
.Ch[5].Offset[0] = 40,
|
||||
.Ch[6].Gain[0] = 45,
|
||||
.Ch[6].Offset[0] = 10,
|
||||
.Ch[7].Gain[0] = 45,
|
||||
.Ch[7].Offset[0] = 12,
|
||||
.Ch[0].Gain[1] = 349,
|
||||
.Ch[0].Offset[1] = 67,
|
||||
.Ch[1].Gain[1] = 349,
|
||||
.Ch[1].Offset[1] = -7,
|
||||
.Ch[2].Gain[1] = 350,
|
||||
.Ch[2].Offset[1] = 37,
|
||||
.Ch[3].Gain[1] = 350,
|
||||
.Ch[3].Offset[1] = 133,
|
||||
.Ch[4].Gain[1] = 351,
|
||||
.Ch[4].Offset[1] = 30,
|
||||
.Ch[5].Gain[1] = 350,
|
||||
.Ch[5].Offset[1] = 102,
|
||||
.Ch[6].Gain[1] = 331,
|
||||
.Ch[6].Offset[1] = -114,
|
||||
.Ch[7].Gain[1] = 339,
|
||||
.Ch[7].Offset[1] = -100,
|
||||
.Ch[0].Gain[2] = 1443,
|
||||
.Ch[0].Offset[2] = 181,
|
||||
.Ch[1].Gain[2] = 1439,
|
||||
.Ch[1].Offset[2] = -140,
|
||||
.Ch[2].Gain[2] = 1445,
|
||||
.Ch[2].Offset[2] = 54,
|
||||
.Ch[3].Gain[2] = 1417,
|
||||
.Ch[3].Offset[2] = 457,
|
||||
.Ch[4].Gain[2] = 1442,
|
||||
.Ch[4].Offset[2] = 38,
|
||||
.Ch[5].Gain[2] = 1443,
|
||||
.Ch[5].Offset[2] = 338,
|
||||
.Ch[6].Gain[2] = 1377,
|
||||
.Ch[6].Offset[2] = -558,
|
||||
.Ch[7].Gain[2] = 1364,
|
||||
.Ch[7].Offset[2] = -514,
|
||||
.Ch[0].Gain[3] = 2914,
|
||||
.Ch[0].Offset[3] = 323,
|
||||
.Ch[1].Gain[3] = 2877,
|
||||
.Ch[1].Offset[3] = -320,
|
||||
.Ch[2].Gain[3] = 2910,
|
||||
.Ch[2].Offset[3] = 73,
|
||||
.Ch[3].Gain[3] = 2655,
|
||||
.Ch[3].Offset[3] = 865,
|
||||
.Ch[4].Gain[3] = 2884,
|
||||
.Ch[4].Offset[3] = 44,
|
||||
.Ch[5].Gain[3] = 2863,
|
||||
.Ch[5].Offset[3] = 659,
|
||||
.Ch[6].Gain[3] = 2282,
|
||||
.Ch[6].Offset[3] = -1079,
|
||||
.Ch[7].Gain[3] = 2420,
|
||||
.Ch[7].Offset[3] = -1034
|
||||
};
|
||||
|
||||
#elif defined(BOARD_00_81_F9_E4_8B_50)
|
||||
{
|
||||
.Ch[0].Gain[0] = 50,
|
||||
.Ch[0].Offset[0] = 0,
|
||||
.Ch[1].Gain[0] = 50,
|
||||
.Ch[1].Offset[0] = 6,
|
||||
.Ch[2].Gain[0] = 50,
|
||||
.Ch[2].Offset[0] = 18,
|
||||
.Ch[3].Gain[0] = 50,
|
||||
.Ch[3].Offset[0] = 25,
|
||||
.Ch[4].Gain[0] = 50,
|
||||
.Ch[4].Offset[0] = 0,
|
||||
.Ch[5].Gain[0] = 50,
|
||||
.Ch[5].Offset[0] = 20,
|
||||
.Ch[6].Gain[0] = 48,
|
||||
.Ch[6].Offset[0] = 3,
|
||||
.Ch[7].Gain[0] = 48,
|
||||
.Ch[7].Offset[0] = -3,
|
||||
.Ch[0].Gain[1] = 362,
|
||||
.Ch[0].Offset[1] = -58,
|
||||
.Ch[1].Gain[1] = 362,
|
||||
.Ch[1].Offset[1] = -12,
|
||||
.Ch[2].Gain[1] = 363,
|
||||
.Ch[2].Offset[1] = 78,
|
||||
.Ch[3].Gain[1] = 363,
|
||||
.Ch[3].Offset[1] = 125,
|
||||
.Ch[4].Gain[1] = 364,
|
||||
.Ch[4].Offset[1] = -60,
|
||||
.Ch[5].Gain[1] = 361,
|
||||
.Ch[5].Offset[1] = 91,
|
||||
.Ch[6].Gain[1] = 341,
|
||||
.Ch[6].Offset[1] = -32,
|
||||
.Ch[7].Gain[1] = 352,
|
||||
.Ch[7].Offset[1] = -83,
|
||||
.Ch[0].Gain[2] = 1484,
|
||||
.Ch[0].Offset[2] = -271,
|
||||
.Ch[1].Gain[2] = 1482,
|
||||
.Ch[1].Offset[2] = -88,
|
||||
.Ch[2].Gain[2] = 1460,
|
||||
.Ch[2].Offset[2] = 288,
|
||||
.Ch[3].Gain[2] = 1471,
|
||||
.Ch[3].Offset[2] = 487,
|
||||
.Ch[4].Gain[2] = 1474,
|
||||
.Ch[4].Offset[2] = -270,
|
||||
.Ch[5].Gain[2] = 1463,
|
||||
.Ch[5].Offset[2] = 340,
|
||||
.Ch[6].Gain[2] = 1426,
|
||||
.Ch[6].Offset[2] = -158,
|
||||
.Ch[7].Gain[2] = 1424,
|
||||
.Ch[7].Offset[2] = -363,
|
||||
.Ch[0].Gain[3] = 2918,
|
||||
.Ch[0].Offset[3] = -530,
|
||||
.Ch[1].Gain[3] = 2937,
|
||||
.Ch[1].Offset[3] = -177,
|
||||
.Ch[2].Gain[3] = 2839,
|
||||
.Ch[2].Offset[3] = 549,
|
||||
.Ch[3].Gain[3] = 2713,
|
||||
.Ch[3].Offset[3] = 926,
|
||||
.Ch[4].Gain[3] = 2888,
|
||||
.Ch[4].Offset[3] = -549,
|
||||
.Ch[5].Gain[3] = 2823,
|
||||
.Ch[5].Offset[3] = 665,
|
||||
.Ch[6].Gain[3] = 2814,
|
||||
.Ch[6].Offset[3] = -319,
|
||||
.Ch[7].Gain[3] = 2817,
|
||||
.Ch[7].Offset[3] = -744
|
||||
};
|
||||
|
||||
#elif defined(BOARD_18_04_ED_37_C6_52)
|
||||
{
|
||||
.Ch[0].Gain[0] = 48,
|
||||
.Ch[0].Offset[0] = 21,
|
||||
.Ch[1].Gain[0] = 48,
|
||||
.Ch[1].Offset[0] = 31,
|
||||
.Ch[2].Gain[0] = 48,
|
||||
.Ch[2].Offset[0] = 4,
|
||||
.Ch[3].Gain[0] = 48,
|
||||
.Ch[3].Offset[0] = 37,
|
||||
.Ch[4].Gain[0] = 48,
|
||||
.Ch[4].Offset[0] = 11,
|
||||
.Ch[5].Gain[0] = 48,
|
||||
.Ch[5].Offset[0] = 26,
|
||||
.Ch[6].Gain[0] = 12,
|
||||
.Ch[6].Offset[0] = 14,
|
||||
.Ch[7].Gain[0] = 47,
|
||||
.Ch[7].Offset[0] = -23,
|
||||
.Ch[0].Gain[1] = 359,
|
||||
.Ch[0].Offset[1] = -20,
|
||||
.Ch[1].Gain[1] = 360,
|
||||
.Ch[1].Offset[1] = 57,
|
||||
.Ch[2].Gain[1] = 360,
|
||||
.Ch[2].Offset[1] = -151,
|
||||
.Ch[3].Gain[1] = 361,
|
||||
.Ch[3].Offset[1] = 100,
|
||||
.Ch[4].Gain[1] = 361,
|
||||
.Ch[4].Offset[1] = -90,
|
||||
.Ch[5].Gain[1] = 358,
|
||||
.Ch[5].Offset[1] = 20,
|
||||
.Ch[6].Gain[1] = 89,
|
||||
.Ch[6].Offset[1] = -73,
|
||||
.Ch[7].Gain[1] = 348,
|
||||
.Ch[7].Offset[1] = -352,
|
||||
.Ch[0].Gain[2] = 1562,
|
||||
.Ch[0].Offset[2] = -170,
|
||||
.Ch[1].Gain[2] = 1556,
|
||||
.Ch[1].Offset[2] = 150,
|
||||
.Ch[2].Gain[2] = 1506,
|
||||
.Ch[2].Offset[2] = -725,
|
||||
.Ch[3].Gain[2] = 1551,
|
||||
.Ch[3].Offset[2] = 341,
|
||||
.Ch[4].Gain[2] = 1539,
|
||||
.Ch[4].Offset[2] = -476,
|
||||
.Ch[5].Gain[2] = 1541,
|
||||
.Ch[5].Offset[2] = -19,
|
||||
.Ch[6].Gain[2] = 399,
|
||||
.Ch[6].Offset[2] = -403,
|
||||
.Ch[7].Gain[2] = 897,
|
||||
.Ch[7].Offset[2] = -1430,
|
||||
.Ch[0].Gain[3] = 3345,
|
||||
.Ch[0].Offset[3] = -412,
|
||||
.Ch[1].Gain[3] = 3352,
|
||||
.Ch[1].Offset[3] = 296,
|
||||
.Ch[2].Gain[3] = 1885,
|
||||
.Ch[2].Offset[3] = -1344,
|
||||
.Ch[3].Gain[3] = 3184,
|
||||
.Ch[3].Offset[3] = 695,
|
||||
.Ch[4].Gain[3] = 2760,
|
||||
.Ch[4].Offset[3] = -994,
|
||||
.Ch[5].Gain[3] = 3301,
|
||||
.Ch[5].Offset[3] = -74,
|
||||
.Ch[6].Gain[3] = 815,
|
||||
.Ch[6].Offset[3] = -906,
|
||||
.Ch[7].Gain[3] = 311,
|
||||
.Ch[7].Offset[3] = -1815
|
||||
};
|
||||
|
||||
#elif defined(BOARD_18_04_ED_37_C6_94)
|
||||
{
|
||||
.Ch[0].Gain[0] = 50,
|
||||
.Ch[0].Offset[0] = 72,
|
||||
.Ch[1].Gain[0] = 50,
|
||||
.Ch[1].Offset[0] = 66,
|
||||
.Ch[2].Gain[0] = 50,
|
||||
.Ch[2].Offset[0] = 53,
|
||||
.Ch[3].Gain[0] = 51,
|
||||
.Ch[3].Offset[0] = 54,
|
||||
.Ch[4].Gain[0] = 51,
|
||||
.Ch[4].Offset[0] = 43,
|
||||
.Ch[5].Gain[0] = 50,
|
||||
.Ch[5].Offset[0] = 65,
|
||||
.Ch[6].Gain[0] = 48,
|
||||
.Ch[6].Offset[0] = 56,
|
||||
.Ch[7].Gain[0] = 47,
|
||||
.Ch[7].Offset[0] = 52,
|
||||
.Ch[0].Gain[1] = 376,
|
||||
.Ch[0].Offset[1] = 218,
|
||||
.Ch[1].Gain[1] = 376,
|
||||
.Ch[1].Offset[1] = 156,
|
||||
.Ch[2].Gain[1] = 377,
|
||||
.Ch[2].Offset[1] = 65,
|
||||
.Ch[3].Gain[1] = 377,
|
||||
.Ch[3].Offset[1] = 69,
|
||||
.Ch[4].Gain[1] = 378,
|
||||
.Ch[4].Offset[1] = -10,
|
||||
.Ch[5].Gain[1] = 376,
|
||||
.Ch[5].Offset[1] = 145,
|
||||
.Ch[6].Gain[1] = 347,
|
||||
.Ch[6].Offset[1] = 86,
|
||||
.Ch[7].Gain[1] = 351,
|
||||
.Ch[7].Offset[1] = 42,
|
||||
.Ch[0].Gain[2] = 1561,
|
||||
.Ch[0].Offset[2] = 711,
|
||||
.Ch[1].Gain[2] = 1560,
|
||||
.Ch[1].Offset[2] = 496,
|
||||
.Ch[2].Gain[2] = 1569,
|
||||
.Ch[2].Offset[2] = 146,
|
||||
.Ch[3].Gain[2] = 1554,
|
||||
.Ch[3].Offset[2] = 131,
|
||||
.Ch[4].Gain[2] = 1563,
|
||||
.Ch[4].Offset[2] = -198,
|
||||
.Ch[5].Gain[2] = 1564,
|
||||
.Ch[5].Offset[2] = 452,
|
||||
.Ch[6].Gain[2] = 1482,
|
||||
.Ch[6].Offset[2] = 196,
|
||||
.Ch[7].Gain[2] = 1510,
|
||||
.Ch[7].Offset[2] = 6,
|
||||
.Ch[0].Gain[3] = 2287,
|
||||
.Ch[0].Offset[3] = 1323,
|
||||
.Ch[1].Gain[3] = 2956,
|
||||
.Ch[1].Offset[3] = 944,
|
||||
.Ch[2].Gain[3] = 3169,
|
||||
.Ch[2].Offset[3] = 268,
|
||||
.Ch[3].Gain[3] = 3119,
|
||||
.Ch[3].Offset[3] = 205,
|
||||
.Ch[4].Gain[3] = 3124,
|
||||
.Ch[4].Offset[3] = -449,
|
||||
.Ch[5].Gain[3] = 3036,
|
||||
.Ch[5].Offset[3] = 864,
|
||||
.Ch[6].Gain[3] = 2983,
|
||||
.Ch[6].Offset[3] = 273,
|
||||
.Ch[7].Gain[3] = 3126,
|
||||
.Ch[7].Offset[3] = -38
|
||||
};
|
||||
|
||||
#elif defined(BOARD_18_04_ED_37_C6_BE)
|
||||
{
|
||||
.Ch[0].Gain[0] = 48,
|
||||
.Ch[0].Offset[0] = 21,
|
||||
.Ch[1].Gain[0] = 48,
|
||||
.Ch[1].Offset[0] = 11,
|
||||
.Ch[2].Gain[0] = 48,
|
||||
.Ch[2].Offset[0] = 25,
|
||||
.Ch[3].Gain[0] = 48,
|
||||
.Ch[3].Offset[0] = 24,
|
||||
.Ch[4].Gain[0] = 48,
|
||||
.Ch[4].Offset[0] = 8,
|
||||
.Ch[5].Gain[0] = 48,
|
||||
.Ch[5].Offset[0] = 20,
|
||||
.Ch[6].Gain[0] = 46,
|
||||
.Ch[6].Offset[0] = 10,
|
||||
.Ch[7].Gain[0] = 46,
|
||||
.Ch[7].Offset[0] = 37,
|
||||
.Ch[0].Gain[1] = 356,
|
||||
.Ch[0].Offset[1] = -11,
|
||||
.Ch[1].Gain[1] = 357,
|
||||
.Ch[1].Offset[1] = -88,
|
||||
.Ch[2].Gain[1] = 357,
|
||||
.Ch[2].Offset[1] = 8,
|
||||
.Ch[3].Gain[1] = 357,
|
||||
.Ch[3].Offset[1] = 5,
|
||||
.Ch[4].Gain[1] = 358,
|
||||
.Ch[4].Offset[1] = -112,
|
||||
.Ch[5].Gain[1] = 356,
|
||||
.Ch[5].Offset[1] = -17,
|
||||
.Ch[6].Gain[1] = 342,
|
||||
.Ch[6].Offset[1] = -94,
|
||||
.Ch[7].Gain[1] = 345,
|
||||
.Ch[7].Offset[1] = 106,
|
||||
.Ch[0].Gain[2] = 1518,
|
||||
.Ch[0].Offset[2] = -146,
|
||||
.Ch[1].Gain[2] = 1507,
|
||||
.Ch[1].Offset[2] = -454,
|
||||
.Ch[2].Gain[2] = 1504,
|
||||
.Ch[2].Offset[2] = -50,
|
||||
.Ch[3].Gain[2] = 1515,
|
||||
.Ch[3].Offset[2] = -55,
|
||||
.Ch[4].Gain[2] = 1500,
|
||||
.Ch[4].Offset[2] = -575,
|
||||
.Ch[5].Gain[2] = 1517,
|
||||
.Ch[5].Offset[2] = -165,
|
||||
.Ch[6].Gain[2] = 1431,
|
||||
.Ch[6].Offset[2] = -480,
|
||||
.Ch[7].Gain[2] = 1479,
|
||||
.Ch[7].Offset[2] = 376,
|
||||
.Ch[0].Gain[3] = 3186,
|
||||
.Ch[0].Offset[3] = -338,
|
||||
.Ch[1].Gain[3] = 2732,
|
||||
.Ch[1].Offset[3] = -941,
|
||||
.Ch[2].Gain[3] = 3115,
|
||||
.Ch[2].Offset[3] = -125,
|
||||
.Ch[3].Gain[3] = 3140,
|
||||
.Ch[3].Offset[3] = -150,
|
||||
.Ch[4].Gain[3] = 2359,
|
||||
.Ch[4].Offset[3] = -1136,
|
||||
.Ch[5].Gain[3] = 3175,
|
||||
.Ch[5].Offset[3] = -397,
|
||||
.Ch[6].Gain[3] = 2533,
|
||||
.Ch[6].Offset[3] = -979,
|
||||
.Ch[7].Gain[3] = 2889,
|
||||
.Ch[7].Offset[3] = 741
|
||||
};
|
||||
|
||||
#elif defined(BOARD_18_04_ED_37_C6_DF)
|
||||
{
|
||||
.Ch[0].Gain[0] = 50,
|
||||
.Ch[0].Offset[0] = 17,
|
||||
.Ch[1].Gain[0] = 50,
|
||||
.Ch[1].Offset[0] = 24,
|
||||
.Ch[2].Gain[0] = 49,
|
||||
.Ch[2].Offset[0] = 47,
|
||||
.Ch[3].Gain[0] = 50,
|
||||
.Ch[3].Offset[0] = 33,
|
||||
.Ch[4].Gain[0] = 50,
|
||||
.Ch[4].Offset[0] = 27,
|
||||
.Ch[5].Gain[0] = 12,
|
||||
.Ch[5].Offset[0] = 48,
|
||||
.Ch[6].Gain[0] = 48,
|
||||
.Ch[6].Offset[0] = 21,
|
||||
.Ch[7].Gain[0] = 48,
|
||||
.Ch[7].Offset[0] = 28,
|
||||
.Ch[0].Gain[1] = 371,
|
||||
.Ch[0].Offset[1] = -70,
|
||||
.Ch[1].Gain[1] = 371,
|
||||
.Ch[1].Offset[1] = -24,
|
||||
.Ch[2].Gain[1] = 370,
|
||||
.Ch[2].Offset[1] = 143,
|
||||
.Ch[3].Gain[1] = 372,
|
||||
.Ch[3].Offset[1] = 37,
|
||||
.Ch[4].Gain[1] = 374,
|
||||
.Ch[4].Offset[1] = 2,
|
||||
.Ch[5].Gain[1] = 90,
|
||||
.Ch[5].Offset[1] = 150,
|
||||
.Ch[6].Gain[1] = 355,
|
||||
.Ch[6].Offset[1] = -41,
|
||||
.Ch[7].Gain[1] = 353,
|
||||
.Ch[7].Offset[1] = 4,
|
||||
.Ch[0].Gain[2] = 3167,
|
||||
.Ch[0].Offset[2] = 1231,
|
||||
.Ch[1].Gain[2] = 1585,
|
||||
.Ch[1].Offset[2] = -210,
|
||||
.Ch[2].Gain[2] = 1566,
|
||||
.Ch[2].Offset[2] = 520,
|
||||
.Ch[3].Gain[2] = 1589,
|
||||
.Ch[3].Offset[2] = 51,
|
||||
.Ch[4].Gain[2] = 1592,
|
||||
.Ch[4].Offset[2] = -96,
|
||||
.Ch[5].Gain[2] = 391,
|
||||
.Ch[5].Offset[2] = 552,
|
||||
.Ch[6].Gain[2] = 1512,
|
||||
.Ch[6].Offset[2] = -281,
|
||||
.Ch[7].Gain[2] = 1544,
|
||||
.Ch[7].Offset[2] = -80,
|
||||
.Ch[0].Gain[3] = 3062,
|
||||
.Ch[0].Offset[3] = -884,
|
||||
.Ch[1].Gain[3] = 3340,
|
||||
.Ch[1].Offset[3] = -474,
|
||||
.Ch[2].Gain[3] = 2885,
|
||||
.Ch[2].Offset[3] = 1009,
|
||||
.Ch[3].Gain[3] = 3336,
|
||||
.Ch[3].Offset[3] = 78,
|
||||
.Ch[4].Gain[3] = 3372,
|
||||
.Ch[4].Offset[3] = -229,
|
||||
.Ch[5].Gain[3] = 745,
|
||||
.Ch[5].Offset[3] = 1118,
|
||||
.Ch[6].Gain[3] = 3103,
|
||||
.Ch[6].Offset[3] = -634,
|
||||
.Ch[7].Gain[3] = 3195,
|
||||
.Ch[7].Offset[3] = -205
|
||||
};
|
||||
|
||||
#elif defined(BOARD_18_04_ED_37_C7_6F)
|
||||
{
|
||||
.Ch[0].Gain[0] = 49,
|
||||
.Ch[0].Offset[0] = -15,
|
||||
.Ch[1].Gain[0] = 48,
|
||||
.Ch[1].Offset[0] = -38,
|
||||
.Ch[2].Gain[0] = 49,
|
||||
.Ch[2].Offset[0] = -13,
|
||||
.Ch[3].Gain[0] = 49,
|
||||
.Ch[3].Offset[0] = -5,
|
||||
.Ch[4].Gain[0] = 48,
|
||||
.Ch[4].Offset[0] = -24,
|
||||
.Ch[5].Gain[0] = 48,
|
||||
.Ch[5].Offset[0] = -27,
|
||||
.Ch[6].Gain[0] = 46,
|
||||
.Ch[6].Offset[0] = -32,
|
||||
.Ch[7].Gain[0] = 0,
|
||||
.Ch[7].Offset[0] = -44,
|
||||
.Ch[0].Gain[1] = 358,
|
||||
.Ch[0].Offset[1] = -31,
|
||||
.Ch[1].Gain[1] = 357,
|
||||
.Ch[1].Offset[1] = -74,
|
||||
.Ch[2].Gain[1] = 359,
|
||||
.Ch[2].Offset[1] = 29,
|
||||
.Ch[3].Gain[1] = 359,
|
||||
.Ch[3].Offset[1] = 96,
|
||||
.Ch[4].Gain[1] = 358,
|
||||
.Ch[4].Offset[1] = -49,
|
||||
.Ch[5].Gain[1] = 357,
|
||||
.Ch[5].Offset[1] = -80,
|
||||
.Ch[6].Gain[1] = 346,
|
||||
.Ch[6].Offset[1] = -119,
|
||||
.Ch[7].Gain[1] = 341,
|
||||
.Ch[7].Offset[1] = -118,
|
||||
.Ch[0].Gain[2] = 1517,
|
||||
.Ch[0].Offset[2] = -73,
|
||||
.Ch[1].Gain[2] = 1496,
|
||||
.Ch[1].Offset[2] = -255,
|
||||
.Ch[2].Gain[2] = 1500,
|
||||
.Ch[2].Offset[2] = 177,
|
||||
.Ch[3].Gain[2] = 1497,
|
||||
.Ch[3].Offset[2] = 459,
|
||||
.Ch[4].Gain[2] = 1496,
|
||||
.Ch[4].Offset[2] = -151,
|
||||
.Ch[5].Gain[2] = 1495,
|
||||
.Ch[5].Offset[2] = -283,
|
||||
.Ch[6].Gain[2] = 1438,
|
||||
.Ch[6].Offset[2] = -436,
|
||||
.Ch[7].Gain[2] = 0,
|
||||
.Ch[7].Offset[2] = -24,
|
||||
.Ch[0].Gain[3] = 3171,
|
||||
.Ch[0].Offset[3] = -127,
|
||||
.Ch[1].Gain[3] = 3054,
|
||||
.Ch[1].Offset[3] = -501,
|
||||
.Ch[2].Gain[3] = 3061,
|
||||
.Ch[2].Offset[3] = 387,
|
||||
.Ch[3].Gain[3] = 2702,
|
||||
.Ch[3].Offset[3] = 920,
|
||||
.Ch[4].Gain[3] = 3046,
|
||||
.Ch[4].Offset[3] = -303,
|
||||
.Ch[5].Gain[3] = 3035,
|
||||
.Ch[5].Offset[3] = -551,
|
||||
.Ch[6].Gain[3] = 2782,
|
||||
.Ch[6].Offset[3] = -879,
|
||||
.Ch[7].Gain[3] = 0,
|
||||
.Ch[7].Offset[3] = -23
|
||||
};
|
||||
|
||||
#elif defined(BOARD_00_81_F9_E4_8C_D0)
|
||||
{
|
||||
.Ch[0].Gain[0] = 49,
|
||||
.Ch[0].Offset[0] = -52,
|
||||
.Ch[1].Gain[0] = 49,
|
||||
.Ch[1].Offset[0] = -40,
|
||||
.Ch[2].Gain[0] = 49,
|
||||
.Ch[2].Offset[0] = -23,
|
||||
.Ch[3].Gain[0] = 49,
|
||||
.Ch[3].Offset[0] = -32,
|
||||
.Ch[4].Gain[0] = 13,
|
||||
.Ch[4].Offset[0] = -21,
|
||||
.Ch[5].Gain[0] = 49,
|
||||
.Ch[5].Offset[0] = -14,
|
||||
.Ch[6].Gain[0] = 47,
|
||||
.Ch[6].Offset[0] = -45,
|
||||
.Ch[7].Gain[0] = 47,
|
||||
.Ch[7].Offset[0] = -47,
|
||||
.Ch[0].Gain[1] = 363,
|
||||
.Ch[0].Offset[1] = -174,
|
||||
.Ch[1].Gain[1] = 363,
|
||||
.Ch[1].Offset[1] = -90,
|
||||
.Ch[2].Gain[1] = 363,
|
||||
.Ch[2].Offset[1] = 43,
|
||||
.Ch[3].Gain[1] = 364,
|
||||
.Ch[3].Offset[1] = -39,
|
||||
.Ch[4].Gain[1] = 95,
|
||||
.Ch[4].Offset[1] = 61,
|
||||
.Ch[5].Gain[1] = 363,
|
||||
.Ch[5].Offset[1] = 109,
|
||||
.Ch[6].Gain[1] = 349,
|
||||
.Ch[6].Offset[1] = -122,
|
||||
.Ch[7].Gain[1] = 352,
|
||||
.Ch[7].Offset[1] = -132,
|
||||
.Ch[0].Gain[2] = 1512,
|
||||
.Ch[0].Offset[2] = -644,
|
||||
.Ch[1].Gain[2] = 1519,
|
||||
.Ch[1].Offset[2] = -412,
|
||||
.Ch[2].Gain[2] = 1530,
|
||||
.Ch[2].Offset[2] = 292,
|
||||
.Ch[3].Gain[2] = 1520,
|
||||
.Ch[3].Offset[2] = -58,
|
||||
.Ch[4].Gain[2] = 399,
|
||||
.Ch[4].Offset[2] = 367,
|
||||
.Ch[5].Gain[2] = 1498,
|
||||
.Ch[5].Offset[2] = 559,
|
||||
.Ch[6].Gain[2] = 1491,
|
||||
.Ch[6].Offset[2] = -403,
|
||||
.Ch[7].Gain[2] = 1457,
|
||||
.Ch[7].Offset[2] = -451,
|
||||
.Ch[0].Gain[3] = 2194,
|
||||
.Ch[0].Offset[3] = -1174,
|
||||
.Ch[1].Gain[3] = 3091,
|
||||
.Ch[1].Offset[3] = -536,
|
||||
.Ch[2].Gain[3] = 3000,
|
||||
.Ch[2].Offset[3] = 614,
|
||||
.Ch[3].Gain[3] = 3130,
|
||||
.Ch[3].Offset[3] = -90,
|
||||
.Ch[4].Gain[3] = 784,
|
||||
.Ch[4].Offset[3] = 791,
|
||||
.Ch[5].Gain[3] = 2205,
|
||||
.Ch[5].Offset[3] = 1071,
|
||||
.Ch[6].Gain[3] = 2802,
|
||||
.Ch[6].Offset[3] = -766,
|
||||
.Ch[7].Gain[3] = 2731,
|
||||
.Ch[7].Offset[3] = -856
|
||||
};
|
||||
|
||||
#elif defined(BOARD_18_04_ED_37_C6_C7)
|
||||
{
|
||||
.Ch[0].Gain[0] = 48,
|
||||
.Ch[0].Offset[0] = -21,
|
||||
.Ch[1].Gain[0] = 48,
|
||||
.Ch[1].Offset[0] = -21,
|
||||
.Ch[2].Gain[0] = 48,
|
||||
.Ch[2].Offset[0] = -20,
|
||||
.Ch[3].Gain[0] = 48,
|
||||
.Ch[3].Offset[0] = -40,
|
||||
.Ch[4].Gain[0] = 48,
|
||||
.Ch[4].Offset[0] = -37,
|
||||
.Ch[5].Gain[0] = 48,
|
||||
.Ch[5].Offset[0] = -45,
|
||||
.Ch[6].Gain[0] = 46,
|
||||
.Ch[6].Offset[0] = -62,
|
||||
.Ch[7].Gain[0] = 46,
|
||||
.Ch[7].Offset[0] = -37,
|
||||
.Ch[0].Gain[1] = 360,
|
||||
.Ch[0].Offset[1] = 41,
|
||||
.Ch[1].Gain[1] = 360,
|
||||
.Ch[1].Offset[1] = 45,
|
||||
.Ch[2].Gain[1] = 361,
|
||||
.Ch[2].Offset[1] = 55,
|
||||
.Ch[3].Gain[1] = 361,
|
||||
.Ch[3].Offset[1] = -99,
|
||||
.Ch[4].Gain[1] = 362,
|
||||
.Ch[4].Offset[1] = -64,
|
||||
.Ch[5].Gain[1] = 358,
|
||||
.Ch[5].Offset[1] = -144,
|
||||
.Ch[6].Gain[1] = 346,
|
||||
.Ch[6].Offset[1] = -261,
|
||||
.Ch[7].Gain[1] = 341,
|
||||
.Ch[7].Offset[1] = -81,
|
||||
.Ch[0].Gain[2] = 1536,
|
||||
.Ch[0].Offset[2] = 359,
|
||||
.Ch[1].Gain[2] = 1535,
|
||||
.Ch[1].Offset[2] = 293,
|
||||
.Ch[2].Gain[2] = 1535,
|
||||
.Ch[2].Offset[2] = 387,
|
||||
.Ch[3].Gain[2] = 1539,
|
||||
.Ch[3].Offset[2] = -317,
|
||||
.Ch[4].Gain[2] = 1545,
|
||||
.Ch[4].Offset[2] = -151,
|
||||
.Ch[5].Gain[2] = 1512,
|
||||
.Ch[5].Offset[2] = -515,
|
||||
.Ch[6].Gain[2] = 1349,
|
||||
.Ch[6].Offset[2] = -994,
|
||||
.Ch[7].Gain[2] = 1457,
|
||||
.Ch[7].Offset[2] = -245,
|
||||
.Ch[0].Gain[3] = 3027,
|
||||
.Ch[0].Offset[3] = 729,
|
||||
.Ch[1].Gain[3] = 3125,
|
||||
.Ch[1].Offset[3] = 650,
|
||||
.Ch[2].Gain[3] = 3006,
|
||||
.Ch[2].Offset[3] = 794,
|
||||
.Ch[3].Gain[3] = 3159,
|
||||
.Ch[3].Offset[3] = -621,
|
||||
.Ch[4].Gain[3] = 3237,
|
||||
.Ch[4].Offset[3] = -314,
|
||||
.Ch[5].Gain[3] = 2751,
|
||||
.Ch[5].Offset[3] = -993,
|
||||
.Ch[6].Gain[3] = 992,
|
||||
.Ch[6].Offset[3] = -1615,
|
||||
.Ch[7].Gain[3] = 3141,
|
||||
.Ch[7].Offset[3] = -490
|
||||
};
|
||||
|
||||
// gain=1, offset = 0, if any channel has no calibration data
|
||||
#else
|
||||
{
|
||||
.Ch[0].Gain[0] = 1,
|
||||
.Ch[0].Offset[0] = 0,
|
||||
.Ch[1].Gain[0] = 1,
|
||||
.Ch[1].Offset[0] = 0,
|
||||
.Ch[2].Gain[0] = 1,
|
||||
.Ch[2].Offset[0] = 0,
|
||||
.Ch[3].Gain[0] = 1,
|
||||
.Ch[3].Offset[0] = 0,
|
||||
.Ch[4].Gain[0] = 1,
|
||||
.Ch[4].Offset[0] = 0,
|
||||
.Ch[5].Gain[0] = 1,
|
||||
.Ch[5].Offset[0] = 0,
|
||||
.Ch[6].Gain[0] = 1,
|
||||
.Ch[6].Offset[0] = 0,
|
||||
.Ch[7].Gain[0] = 1,
|
||||
.Ch[7].Offset[0] = 0,
|
||||
.Ch[0].Gain[1] = 1,
|
||||
.Ch[0].Offset[1] = 0,
|
||||
.Ch[1].Gain[1] = 1,
|
||||
.Ch[1].Offset[1] = 0,
|
||||
.Ch[2].Gain[1] = 1,
|
||||
.Ch[2].Offset[1] = 0,
|
||||
.Ch[3].Gain[1] = 1,
|
||||
.Ch[3].Offset[1] = 0,
|
||||
.Ch[4].Gain[1] = 1,
|
||||
.Ch[4].Offset[1] = 0,
|
||||
.Ch[5].Gain[1] = 1,
|
||||
.Ch[5].Offset[1] = 0,
|
||||
.Ch[6].Gain[1] = 1,
|
||||
.Ch[6].Offset[1] = 0,
|
||||
.Ch[7].Gain[1] = 1,
|
||||
.Ch[7].Offset[1] = 0,
|
||||
.Ch[0].Gain[2] = 1,
|
||||
.Ch[0].Offset[2] = 0,
|
||||
.Ch[1].Gain[2] = 1,
|
||||
.Ch[1].Offset[2] = 0,
|
||||
.Ch[2].Gain[2] = 1,
|
||||
.Ch[2].Offset[2] = 0,
|
||||
.Ch[3].Gain[2] = 1,
|
||||
.Ch[3].Offset[2] = 0,
|
||||
.Ch[4].Gain[2] = 1,
|
||||
.Ch[4].Offset[2] = 0,
|
||||
.Ch[5].Gain[2] = 1,
|
||||
.Ch[5].Offset[2] = 0,
|
||||
.Ch[6].Gain[2] = 1,
|
||||
.Ch[6].Offset[2] = 0,
|
||||
.Ch[7].Gain[2] = 1,
|
||||
.Ch[7].Offset[2] = 0,
|
||||
.Ch[0].Gain[3] = 1,
|
||||
.Ch[0].Offset[3] = 0,
|
||||
.Ch[1].Gain[3] = 1,
|
||||
.Ch[1].Offset[3] = 0,
|
||||
.Ch[2].Gain[3] = 1,
|
||||
.Ch[2].Offset[3] = 0,
|
||||
.Ch[3].Gain[3] = 1,
|
||||
.Ch[3].Offset[3] = 0,
|
||||
.Ch[4].Gain[3] = 1,
|
||||
.Ch[4].Offset[3] = 0,
|
||||
.Ch[5].Gain[3] = 1,
|
||||
.Ch[5].Offset[3] = 0,
|
||||
.Ch[6].Gain[3] = 1,
|
||||
.Ch[6].Offset[3] = 0,
|
||||
.Ch[7].Gain[3] = 1,
|
||||
.Ch[7].Offset[3] = 0
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
|
||||
#ifndef NEU_CHECK_INSTRUCTION
|
||||
#define NEU_CHECK_INSTRUCTION
|
||||
#include "headstage_instruction.h"
|
||||
#include "neu/headstage_spi.h"
|
||||
#include "neu/headstage_reset.h"
|
||||
|
||||
static uint8_t check_ins(uint16_t trans_ins){
|
||||
uint16_t recv_ins;
|
||||
recv_ins = spi_rxbuf[1] << 8 | spi_rxbuf[2];
|
||||
|
||||
return (trans_ins == recv_ins);
|
||||
}
|
||||
|
||||
static void check_register(uint8_t register_to_check, uint16_t instruction_to_fit, uint8_t next_state){
|
||||
if(spi_state_counter < 6){
|
||||
SPICallBack = CONTINUOUS_TRANS;
|
||||
spi_txbuf[0] = register_to_check;
|
||||
spi_txbuf[1] = register_to_check;
|
||||
spi_txbuf[2] = register_to_check;
|
||||
|
||||
spi_state_counter ++;
|
||||
headstage_spi_transaction(3);
|
||||
}
|
||||
else{
|
||||
spi_state_counter = 0;
|
||||
if(check_ins(instruction_to_fit)){
|
||||
NEULIVE_STATE.state = next_state;
|
||||
SPICallBack = ONE_SHOT_SPI;
|
||||
}
|
||||
else{
|
||||
// resend instruction
|
||||
SPI_close(headstage_spi_handle);
|
||||
DBSReset();
|
||||
// NEULIVE_STATE.state = NEU_WRITE_INSTRUCTION;
|
||||
// NEULIVE_STATE.config_type = NEU_SET_STI_CUR;
|
||||
// if(STI){
|
||||
// INSTRUCTION.ins_opcode = T_ZE;
|
||||
// }
|
||||
// else{
|
||||
// INSTRUCTION.ins_opcode = BIAS_ONE;
|
||||
// }
|
||||
|
||||
NEULIVE_STATE.state = NEU_DATA_RATE_TEST;
|
||||
SPICallBack = ONE_SHOT_SPI;
|
||||
ReopenSPI();
|
||||
}
|
||||
headstage_spi_transaction(3);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
+96
@@ -0,0 +1,96 @@
|
||||
|
||||
#ifndef NEU_INSTRUCTION
|
||||
#define NEU_INSTRUCTION
|
||||
|
||||
/** amounts of channel */
|
||||
#define NEU_STI_CHANNEL_COUNTS 9 // channel 0~7 is current sti; channel 8 = voltage sti
|
||||
#define NEU_REC_CHANNEL_COUNTS 16 /**< recording channel counts */
|
||||
|
||||
struct HEADSTAGE_PARAMETER_TABLE {
|
||||
uint8_t current_sti_cycle[NEU_STI_CHANNEL_COUNTS]; /** stimulation times will be executed. */
|
||||
|
||||
// sti_tx[0~7] is current stimulate
|
||||
// sti_tx[8] assign to voltage mode channel. */
|
||||
uint16_t sti_t1[NEU_STI_CHANNEL_COUNTS]; /**< first stimulation pulse duration, it can't be 0. */
|
||||
uint16_t sti_t2[NEU_STI_CHANNEL_COUNTS]; /**< interval between biphasic pulses. */
|
||||
uint16_t sti_t3[NEU_STI_CHANNEL_COUNTS]; /**< second stimulation pulse duration. */
|
||||
uint32_t sti_t4[NEU_STI_CHANNEL_COUNTS]; /**< discharge time per stimulation. */
|
||||
uint16_t sti_t5[NEU_STI_CHANNEL_COUNTS]; /**< discharge time after final stimulation. */
|
||||
bool sti_mode; /**< if true: continuous mode, else limited mode. */
|
||||
bool sti_h_bridge; /**< if true: enable h bridge, else single ended. */
|
||||
bool sti_ref; /**< if true: reference cell body to gnd, else single ended is used. */
|
||||
|
||||
uint16_t current_sti_polarity; /**<
|
||||
* default : low side.
|
||||
* define which channel is high side or low side.
|
||||
*/
|
||||
uint8_t voltage_sti_channel; /**<
|
||||
* voltage_channel[7:4] represent pmos channel,
|
||||
* voltage_channel[3:0] represent nmos channel
|
||||
*/
|
||||
|
||||
uint8_t amplifier_gain; /**<
|
||||
* parameter table to represent actual amplifier gain
|
||||
* ----------
|
||||
* | bit |mean|
|
||||
* ----------
|
||||
* |0b00 | 100|
|
||||
* ----------
|
||||
* |0b01 | 400|
|
||||
* ----------
|
||||
* |0b10 | 800|
|
||||
* -----------
|
||||
* |0b11 | 25 |
|
||||
* -----------
|
||||
*/
|
||||
/**< these parameter define the bias voltage of amplifier. */
|
||||
uint8_t vgrp;
|
||||
uint8_t vgrn;
|
||||
uint8_t vgr_int_old;
|
||||
uint8_t vgr_intp;
|
||||
uint8_t vgr_intn;
|
||||
|
||||
uint8_t ins_opcode; /**< check instruction opcode which is transmitted to DBS. */
|
||||
|
||||
uint8_t voltage_sti_amplitude; /**< voltage mode stimulation amplitude control. */
|
||||
|
||||
uint16_t arbitrary_index; /**< this index to keep address of arbitrary data we have already stored. */
|
||||
|
||||
uint16_t arbitrary_en; /**< if true: enable arbitrary mode stimulation. */
|
||||
uint16_t recording_channel; /**< recording_channel[17] represent enabling channel 17. */
|
||||
|
||||
uint16_t sti_amplitude_h; /**< positive side amplitude. */
|
||||
uint16_t sti_amplitude_l; /**< negative side amplitude. */
|
||||
|
||||
uint16_t sys_clk_ratio; /**< frequency divider ratio for digital core clock. */
|
||||
uint16_t adc_clock_ratio; /**< frequency divider ratio for adc clock. */
|
||||
uint16_t sti_clock_ratio; /**< frequency divider ratio for stimulation clock. */
|
||||
uint16_t chopper_ratio; /**< freqeuncy divider for chopper. */
|
||||
|
||||
uint16_t sti_channel; /**<
|
||||
* if stimulation[7] == true, stimulation channel 7 is enabled .
|
||||
* if stimulation[4] == true. stimulation channel 4 is enabled .
|
||||
*/
|
||||
|
||||
uint8_t sti_ch_config_done; // number of stimulate channel which is config done
|
||||
|
||||
} INSTRUCTION = {0};
|
||||
|
||||
/**
|
||||
* @brief:
|
||||
* manage which operation to be conducted
|
||||
*/
|
||||
struct HEADSTAGE_STATE {
|
||||
uint8_t state;
|
||||
|
||||
uint8_t config_type;
|
||||
|
||||
uint8_t index;
|
||||
} NEULIVE_STATE = {0};
|
||||
|
||||
static bool STI = false;
|
||||
static uint8_t spi_state_counter = 0;
|
||||
static bool ConnectState = false;
|
||||
static bool IsFirstData = true;
|
||||
|
||||
#endif
|
||||
+6
-2
@@ -82,6 +82,7 @@ static uint16_t headstage_led_set_buffer(uint16_t *ins_buf, uint8_t repeat, LEDP
|
||||
#define COLOR_BLUE 5
|
||||
#define COLOR_CYAN 6
|
||||
#define COLOR_MAGENTA 7
|
||||
#define COLOR_PURPLE 8
|
||||
#define COLOR_WHITE 9
|
||||
// clang-format on
|
||||
|
||||
@@ -93,7 +94,7 @@ static uint8_t headstage_led_set_color(uint16_t *ins_buf, uint8_t repeat, uint8_
|
||||
parameter = (LEDParameter){.luminance = 0xE1, .red = 0xFF, .green = 0x00, .blue = 0x00};
|
||||
break;
|
||||
case COLOR_ORANGE:
|
||||
parameter = (LEDParameter){.luminance = 0xE1, .red = 0xFF, .green = 0x03, .blue = 0x00};
|
||||
parameter = (LEDParameter){.luminance = 0xE1, .red = 0xFF, .green = 0x98, .blue = 0x00};
|
||||
break;
|
||||
case COLOR_YELLOW:
|
||||
parameter = (LEDParameter){.luminance = 0xE1, .red = 0x0F, .green = 0x0F, .blue = 0x00};
|
||||
@@ -113,6 +114,9 @@ static uint8_t headstage_led_set_color(uint16_t *ins_buf, uint8_t repeat, uint8_
|
||||
case COLOR_WHITE:
|
||||
parameter = (LEDParameter){.luminance = 0xE1, .red = 0x0F, .green = 0x7F, .blue = 0x1F};
|
||||
break;
|
||||
case COLOR_PURPLE:
|
||||
parameter = (LEDParameter){.luminance = 0xE1, .red = 0x98, .green = 0x33, .blue = 0xFA};
|
||||
break;
|
||||
default:
|
||||
case COLOR_BLACK:
|
||||
parameter = (LEDParameter){.luminance = 0x00, .red = 0x00, .green = 0x00, .blue = 0x00};
|
||||
@@ -192,7 +196,7 @@ static void headstage_led_color(uint8_t color) {
|
||||
==== LED implement (GPIO) ====
|
||||
============================*/
|
||||
|
||||
#if defined (HEADSTAGE_UNI_H) || defined(HEADSTAGE_TEST_DATA_H)
|
||||
#ifdef HEADSTAGE_UNI_H
|
||||
#define HEADSTAGE_LED_USE_GPIO
|
||||
#endif
|
||||
|
||||
|
||||
+684
-387
File diff suppressed because it is too large
Load Diff
+53
-23
@@ -44,31 +44,61 @@ static uint8_t headstage_notify_buffer[BLE_NOT_BUFF_SIZE] = {0};
|
||||
*
|
||||
*/
|
||||
static void headstage_notify_send() {
|
||||
#ifdef HEADSTAGE_NOTIFY_USE_ATT
|
||||
uint16_t buffer_size = BLE_NOT_BUFF_SIZE;
|
||||
uint8_t *value = (uint8 *)GATT_bm_alloc(CONNECT_HANDLE, ATT_HANDLE_VALUE_NOTI, GATT_MAX_MTU, &buffer_size);
|
||||
|
||||
if (value != NULL) {
|
||||
memcpy(value, headstage_notify_buffer, buffer_size);
|
||||
|
||||
attHandleValueNoti_t notify = {
|
||||
// clang-format off
|
||||
.handle = 0x1E,
|
||||
.len = buffer_size,
|
||||
.pValue = value
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
if (GATT_Notification(CONNECT_HANDLE, ¬ify, 0) != SUCCESS) {
|
||||
// notify not send
|
||||
GATT_bm_free((gattMsg_t *)¬ify, ATT_HANDLE_VALUE_NOTI);
|
||||
}
|
||||
}
|
||||
|
||||
#else
|
||||
//#ifdef HEADSTAGE_NOTIFY_USE_ATT
|
||||
// uint16_t buffer_size = BLE_NOT_BUFF_SIZE;
|
||||
// uint8_t *value = (uint8 *)GATT_bm_alloc(CONNECT_HANDLE, ATT_HANDLE_VALUE_NOTI, GATT_MAX_MTU, &buffer_size);
|
||||
//
|
||||
// if (value != NULL) {
|
||||
// memcpy(value, headstage_notify_buffer, buffer_size);
|
||||
//
|
||||
// attHandleValueNoti_t notify = {
|
||||
// // clang-format off
|
||||
// .handle = 0x1E,
|
||||
// .len = buffer_size,
|
||||
// .pValue = value
|
||||
// // clang-format on
|
||||
// };
|
||||
//
|
||||
// if (GATT_Notification(CONNECT_HANDLE, ¬ify, 0) != SUCCESS) {
|
||||
// // notify not send
|
||||
// GATT_bm_free((gattMsg_t *)¬ify, ATT_HANDLE_VALUE_NOTI);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//#else
|
||||
SimpleProfile_SetParameter(BLE_NOT_BUFF_CHAR, BLE_NOT_BUFF_SIZE, headstage_notify_buffer);
|
||||
|
||||
#endif
|
||||
//#endif
|
||||
}
|
||||
|
||||
/*
|
||||
// | | 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
|
||||
// -----------------------------------------------------------------
|
||||
// | header | length = N |
|
||||
// | timestamp |
|
||||
// | time delta |
|
||||
// | data [0] | data[1] |
|
||||
// | ............................ | data[15] |
|
||||
*/
|
||||
static void FlushNotify(){
|
||||
// headstage_notify_buffer[0] = INSTRUCTION.chip_id;
|
||||
headstage_notify_buffer[0] = CHIP_ID;
|
||||
headstage_notify_buffer[1] = 1; // data length = 1 when flushing notify
|
||||
|
||||
for (int i = 2; i < BLE_NOT_BUFF_SIZE ; i++) {
|
||||
headstage_notify_buffer[i] = 0;
|
||||
}
|
||||
|
||||
// 1 Timestamp = 32 usec; 31 Timestamp ~= 1 msec
|
||||
uint32_t flush_time_stamp = 0; // msec
|
||||
|
||||
headstage_notify_buffer[2] = flush_time_stamp & 0xFF;
|
||||
headstage_notify_buffer[3] = (flush_time_stamp >> 8) & 0xFF;
|
||||
headstage_notify_buffer[4] = (flush_time_stamp >> 16) & 0xFF;
|
||||
headstage_notify_buffer[5] = (flush_time_stamp >> 24) & 0xFF;
|
||||
|
||||
SimpleProfile_SetParameter(BLE_NOT_BUFF_CHAR, BLE_NOT_BUFF_SIZE, headstage_notify_buffer);
|
||||
}
|
||||
|
||||
#endif // HEADSTAGE_NOTIFY_H
|
||||
|
||||
+1
-1
@@ -4,6 +4,6 @@
|
||||
#include <ti/drivers/Power.h>
|
||||
#include <ti/drivers/power/PowerCC26XX.h>
|
||||
|
||||
#define headstage_power_shutdown() Power_shutdown(0, 0)
|
||||
#define headstage_power_shutdown() Power_shutdown(NULL, 0)
|
||||
|
||||
#endif // HEADSTAGE_POWER_H
|
||||
|
||||
+19
@@ -123,6 +123,9 @@
|
||||
#include "uni/headstage_spi.h"
|
||||
#include "uni/headstage_pwm.h"
|
||||
#include "uni/uni1.3_parameter.h"
|
||||
#include "neulive13_CalibrationTable.h"
|
||||
#include "headstage_calibration_CIS.h"
|
||||
#include "headstage_version.h"
|
||||
|
||||
/************************************
|
||||
* instruction building macro
|
||||
@@ -852,6 +855,17 @@ static void headstage_update_cis_instruction(uint8_t cis_oper) {
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
case CIS_VERSION:{
|
||||
cdr_buf[0] = VERSION_DATE_YEAR;
|
||||
cdr_buf[1] = VERSION_DATE_MONTH;
|
||||
cdr_buf[2] = VERSION_DATE_DAY;
|
||||
cdr_buf[3] = VERSION_DATE_HOUR;
|
||||
cdr_buf[4] = VERSION_DATE_MINUTE;
|
||||
|
||||
SimpleProfile_SetParameter(BLE_CDR_BUFF_CHAR, BLE_CDR_BUFF_SIZE, cdr_buf);
|
||||
break;
|
||||
}
|
||||
|
||||
default: {
|
||||
cdr_buf[0] = _B_4b4b(cis_oper, CHIP_ID);
|
||||
cdr_buf[1] = _B_4b4b(CDR_FAILURE, 0);
|
||||
@@ -884,9 +898,14 @@ static void headstage_uni_umc_data_append_notify_buffer(uint8_t* dat_buf) {
|
||||
headstage_uni_delay();
|
||||
} else {
|
||||
if ((dat_buf[1] & 0x28) == 0x28) {
|
||||
// headstage_led_spi_color(COLOR_YELLOW);
|
||||
dat_buf[0] = (dat_buf[0] << 1) | ((dat_buf[1] >> 7) & 0x01);
|
||||
dat_buf[1] = (dat_buf[1] << 1) | ((dat_buf[2] >> 7) & 0x01);
|
||||
dat_buf[2] = (dat_buf[2] << 1) | ((dat_buf[3] >> 7) & 0x01);
|
||||
|
||||
// dat_buf[0] = (dat_buf[0] << 1) | ((dat_buf[1] >> 7) & 0x01);
|
||||
// dat_buf[2] = ((dat_buf[1] & 0b00000111) << 2) | (dat_buf[2] & 0b11100000);
|
||||
// dat_buf[1] = (dat_buf[1] >> 3) & 0b00001111;
|
||||
}
|
||||
|
||||
uint8_t channel;
|
||||
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
|
||||
#ifndef VERSION_DATE
|
||||
#define VERSION_DATE
|
||||
|
||||
#define VERSION_DATE_YEAR 20
|
||||
#define VERSION_DATE_MONTH 4
|
||||
#define VERSION_DATE_DAY 24
|
||||
#define VERSION_DATE_HOUR 11
|
||||
#define VERSION_DATE_MINUTE 53
|
||||
|
||||
// this is NOT the version hash !!
|
||||
// it's the last version hash
|
||||
#define VERSION_HASH 404d8d8d9d0b04eb9ed6fcc656ba52180d13d8c8
|
||||
#define VERSION_GIT_BRANCH neulive20_blastData
|
||||
|
||||
#endif
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
|
||||
#ifndef CHECK_MOSI
|
||||
#define CHECK_MOSI
|
||||
|
||||
#include "headstage_led.h"
|
||||
/*
|
||||
* MOSI channel meet with INSTRUCTION.recording_channel ?
|
||||
*/
|
||||
static uint8_t CheckMOSI(uint8_t* MOSI){
|
||||
uint8_t ch = MOSI[0];
|
||||
uint16_t selectCh = 0x0001 << ch;
|
||||
|
||||
if(selectCh & INSTRUCTION.recording_channel){
|
||||
return 1;
|
||||
}
|
||||
else{
|
||||
// headstage_led_color(COLOR_RED);
|
||||
// headstage_led_color(COLOR_GREEN);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
+17
-8
@@ -10,20 +10,27 @@
|
||||
|
||||
#define NOT_BUF_OFFSET_INIT 8
|
||||
|
||||
static uint32_t not_buf_offset = NOT_BUF_OFFSET_INIT;
|
||||
static uint8_t not_buf_offset = NOT_BUF_OFFSET_INIT;
|
||||
static uint32_t not_time_stamp = 0;
|
||||
static uint32_t data_counter = 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;
|
||||
// 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;
|
||||
|
||||
headstage_notify_buffer[5] = data_counter & 0xFF;
|
||||
headstage_notify_buffer[4] = (data_counter >> 8) & 0xFF;
|
||||
headstage_notify_buffer[3] = (data_counter >> 16) & 0xFF;
|
||||
headstage_notify_buffer[2] = (data_counter >> 24) & 0xFF;
|
||||
data_counter ++;
|
||||
}
|
||||
|
||||
static void headstage_notify_flip_buffer() {
|
||||
uint8_t data_count = (not_buf_offset - NOT_BUF_OFFSET_INIT) / 2;
|
||||
uint8_t data_count = (not_buf_offset - NOT_BUF_OFFSET_INIT) / 3;
|
||||
|
||||
headstage_notify_buffer[0] = CHIP_ID;
|
||||
headstage_notify_buffer[1] = data_count;
|
||||
@@ -39,13 +46,15 @@ static uint8_t headstage_notify_append_data(uint8_t *data_value) {
|
||||
|
||||
if (data_value == NULL) {
|
||||
headstage_notify_buffer[not_buf_offset++] = 0x00;
|
||||
headstage_notify_buffer[not_buf_offset++] = 0x03;
|
||||
headstage_notify_buffer[not_buf_offset++] = 0x00;
|
||||
headstage_notify_buffer[not_buf_offset++] = 0x00;
|
||||
} else {
|
||||
headstage_notify_buffer[not_buf_offset++] = data_value[0];
|
||||
headstage_notify_buffer[not_buf_offset++] = data_value[1];
|
||||
headstage_notify_buffer[not_buf_offset++] = data_value[2];
|
||||
}
|
||||
|
||||
if (not_buf_offset == BLE_NOT_BUFF_SIZE) {
|
||||
if (not_buf_offset >= BLE_NOT_BUFF_SIZE - 1) {
|
||||
uint32_t current = headstage_time_stamp_us();
|
||||
uint32_t time_delta = ((current - not_time_stamp)) & 0xFFFF;
|
||||
|
||||
|
||||
+14
-13
@@ -25,19 +25,19 @@
|
||||
|
||||
// clang-format off
|
||||
|
||||
#define PIN_RESET IOID_0 // SPI1 to receive LSK
|
||||
#define PIN_EN_ADC_SPI_CLK IOID_1 // SPI1 clock
|
||||
#define PIN_LED_SDI IOID_0 // SPI1 to receive LSK
|
||||
#define PIN_LED_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 //
|
||||
#define PIN_EN_ADC_SPI_CLK IOID_3 //
|
||||
#define PIN_BATT_HALF IOID_4 //
|
||||
#define PIN_SPI_MISO IOID_7 //
|
||||
#define PIN_SPI_MOSI IOID_8 //
|
||||
#define PIN_SPI_CS IOID_9 //
|
||||
#define PIN_SPI_CLK IOID_10 //
|
||||
#define PIN_SYS_CLK IOID_11 //
|
||||
#define PIN_RESET IOID_12 //
|
||||
#define PIN_AMP_VCK IOID_13 //
|
||||
#define PIN_STI_CLK IOID_14 //
|
||||
|
||||
// clang-format on
|
||||
#endif
|
||||
@@ -47,7 +47,8 @@
|
||||
#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
|
||||
//#define Board_SPI0_CSN PIN_SPI_CS
|
||||
#define Board_SPI0_CSN PIN_UNASSIGNED
|
||||
|
||||
/*
|
||||
* SPI1 interface work with LED
|
||||
|
||||
+110
@@ -0,0 +1,110 @@
|
||||
|
||||
#ifndef NEU_2_RST
|
||||
#define NEU_2_RST
|
||||
|
||||
#include "headstage_instruction.h"
|
||||
#include "neu/headstage_spi.h"
|
||||
|
||||
static void ResetINSTRUCTION();
|
||||
|
||||
static void MCUReset(){
|
||||
// Reset INSTRUCTION & NEULIVE_STATE
|
||||
ResetINSTRUCTION();
|
||||
|
||||
// global variable reset
|
||||
IsFirstData = true;
|
||||
STI = false;
|
||||
|
||||
// SPI reset
|
||||
SPI_close(headstage_spi_handle);
|
||||
spi_state_counter = 0;
|
||||
for(int i=0 ; i<SPI_BUFFER_SIZE ; i++ ){
|
||||
spi_txbuf[i] = 0;
|
||||
spi_rxbuf[i] = 0;
|
||||
}
|
||||
SPICallBack = ONE_SHOT_SPI;
|
||||
ReopenSPI();
|
||||
|
||||
for(int i=0 ; i<SPI_LED_BUFF_SIZE ; i++){
|
||||
headstage_spi_led_txbuf[i] = 0;
|
||||
}
|
||||
|
||||
// CIS buffer reset
|
||||
for(int i=0 ; i<BLE_CDR_BUFF_SIZE ; i++){
|
||||
cdr_buf[i] = 0;
|
||||
}
|
||||
|
||||
// Notify Buffer reset
|
||||
for(int i=0 ; i<BLE_NOT_BUFF_SIZE ; i++){
|
||||
headstage_notify_buffer[i] = 0;
|
||||
}
|
||||
not_buf_offset = NOT_BUF_OFFSET_INIT;
|
||||
not_time_stamp = 0;
|
||||
|
||||
|
||||
if(ConnectState){
|
||||
headstage_led_color(COLOR_CYAN);
|
||||
}
|
||||
else{
|
||||
headstage_led_color(COLOR_GREEN); // color green
|
||||
}
|
||||
|
||||
// this flag is set by SimpleBLEPeripheral_processStateChangeEvt() in simple_peripheral.c
|
||||
// ConnectState = false;
|
||||
}
|
||||
|
||||
static void DBSReset(){
|
||||
headstage_pin_output(PIN_RESET, 0);
|
||||
headstage_cpu_delay_ms(10);
|
||||
headstage_pin_output(PIN_DC_DC, 1);
|
||||
headstage_pin_output(PIN_EN_ADC_SPI_CLK, 1);
|
||||
headstage_pin_output(PIN_RESET, 1);
|
||||
}
|
||||
|
||||
static void Neu2Reset(){
|
||||
DBSReset();
|
||||
MCUReset();
|
||||
}
|
||||
|
||||
static void ResetINSTRUCTION(){
|
||||
INSTRUCTION.vgrp = 16;
|
||||
INSTRUCTION.vgrn = 16;
|
||||
INSTRUCTION.vgr_intp = 16;
|
||||
INSTRUCTION.vgr_intn = 16;
|
||||
INSTRUCTION.vgr_int_old = 16;
|
||||
INSTRUCTION.recording_channel = 0b0000000000000000;
|
||||
INSTRUCTION.adc_clock_ratio = 100;
|
||||
INSTRUCTION.sys_clk_ratio = 10;
|
||||
INSTRUCTION.sti_clock_ratio = 10;
|
||||
INSTRUCTION.amplifier_gain = 0;
|
||||
INSTRUCTION.chopper_ratio = 2;
|
||||
INSTRUCTION.sti_t1[1] = 1;
|
||||
INSTRUCTION.sti_t2[1] = 0;
|
||||
INSTRUCTION.sti_t3[1] = 0;
|
||||
INSTRUCTION.sti_t4[1] = 0;
|
||||
INSTRUCTION.sti_t5[1] = 0;
|
||||
INSTRUCTION.sti_channel = 2;
|
||||
INSTRUCTION.arbitrary_en = 0;
|
||||
INSTRUCTION.arbitrary_index = 0;
|
||||
INSTRUCTION.sti_h_bridge = 0;
|
||||
INSTRUCTION.sti_mode = 0;
|
||||
INSTRUCTION.sti_ref = 0;
|
||||
INSTRUCTION.current_sti_polarity = 2;
|
||||
INSTRUCTION.sti_amplitude_h = 0;
|
||||
INSTRUCTION.sti_amplitude_l = 0;
|
||||
INSTRUCTION.ins_opcode = BIAS_ONE;
|
||||
INSTRUCTION.sti_ch_config_done = 0;
|
||||
|
||||
uint8_t voltage_sti_channel = 0;
|
||||
uint8_t voltage_sti_amplitude = 0;
|
||||
|
||||
for(int i=0 ; i<NEU_STI_CHANNEL_COUNTS ; i++){
|
||||
INSTRUCTION.current_sti_cycle[i] = 0;
|
||||
}
|
||||
|
||||
NEULIVE_STATE.state = NEU_IDLE;
|
||||
NEULIVE_STATE.config_type = 0;
|
||||
NEULIVE_STATE.index = 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
+61
-10
@@ -12,7 +12,7 @@
|
||||
#include <ti/drivers/dma/UDMACC26XX.h>
|
||||
#include <ti/drivers/spi/SPICC26XXDMA.h>
|
||||
|
||||
#define SPI_BUFFER_SIZE 20
|
||||
#define SPI_BUFFER_SIZE 3
|
||||
|
||||
static uint8_t spi_txbuf[SPI_BUFFER_SIZE] = {0};
|
||||
static uint8_t spi_rxbuf[SPI_BUFFER_SIZE] = {0};
|
||||
@@ -22,6 +22,7 @@ static SPI_Handle headstage_spi_handle = NULL;
|
||||
static SPI_Transaction headstage_spi_transaction;
|
||||
|
||||
static void headstage_spi_callback(SPI_Handle handle, SPI_Transaction* transaction);
|
||||
static bool OpenSPI = false;
|
||||
|
||||
// SPI parameters initialize
|
||||
#define headstage_spi_open() \
|
||||
@@ -38,14 +39,14 @@ static void headstage_spi_callback(SPI_Handle handle, SPI_Transaction* transacti
|
||||
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(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) \
|
||||
({ \
|
||||
@@ -70,4 +71,54 @@ static void headstage_spi_callback(SPI_Handle handle, SPI_Transaction* transacti
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#endif
|
||||
static void ReopenSPI(){
|
||||
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);
|
||||
}
|
||||
|
||||
//static void WriteSPI(uint8_t length){
|
||||
// if(OpenSPI){
|
||||
// ReopenSPI();
|
||||
// }
|
||||
//
|
||||
// for(int i=length ; i<SPI_BUFFER_SIZE ; i++){
|
||||
// spi_rxbuf[i] = 0x00;
|
||||
// }
|
||||
//
|
||||
// SPICallBack = FLUSH_BUFFER;
|
||||
// headstage_spi_transaction.count = 3;
|
||||
// headstage_spi_transaction.txBuf = spi_txbuf;
|
||||
// headstage_spi_transaction.rxBuf = spi_rxbuf;
|
||||
//
|
||||
// SPI_transfer(headstage_spi_handle, &headstage_spi_transaction);
|
||||
//}
|
||||
|
||||
//static void ReadSPI(){
|
||||
// if(OpenSPI){
|
||||
// ReopenSPI();
|
||||
// }
|
||||
//
|
||||
// SPICallBack = READ_REG;
|
||||
// headstage_spi_transaction.count = 3;
|
||||
// headstage_spi_transaction.txBuf = spi_txbuf;
|
||||
// headstage_spi_transaction.rxBuf = spi_rxbuf;
|
||||
//
|
||||
// SPI_transfer(headstage_spi_handle, &headstage_spi_transaction);
|
||||
//}
|
||||
|
||||
static void AppendSPITX(uint8_t index, uint32_t value){
|
||||
tx_put_u24(index, value);
|
||||
for(int i=3 ; i<SPI_BUFFER_SIZE ; i++){
|
||||
spi_txbuf[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@
|
||||
|
||||
#define NOT_BUF_OFFSET_INIT 8
|
||||
|
||||
static uint32_t not_buf_offset = NOT_BUF_OFFSET_INIT;
|
||||
static uint8_t not_buf_offset = NOT_BUF_OFFSET_INIT;
|
||||
static uint32_t not_time_stamp = 0;
|
||||
|
||||
static void headstage_notify_set_timestamp() {
|
||||
|
||||
+9
-9
@@ -76,14 +76,14 @@
|
||||
|
||||
#endif
|
||||
|
||||
static PIN_Config headstage_pin_configuration[] = { //
|
||||
PIN_STI_SEL | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
PIN_RESET | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
PIN_VGRP | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
PIN_FASTSET | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
PIN_LED_CLK | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
PIN_LED_OUT | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
//
|
||||
PIN_TERMINATE};
|
||||
//static PIN_Config headstage_pin_configuration[] = { //
|
||||
// PIN_STI_SEL | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
// PIN_RESET | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
// PIN_VGRP | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
// PIN_FASTSET | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
// PIN_LED_CLK | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
// PIN_LED_OUT | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
// //
|
||||
// PIN_TERMINATE};
|
||||
|
||||
#endif // HEADSTAGE_PIN_UNI_H
|
||||
|
||||
+76
-10
@@ -114,21 +114,30 @@
|
||||
#ifndef FEATURE_OAD
|
||||
// Minimum connection interval (units of 1.25ms, 80=100ms) if automatic
|
||||
// parameter update request is enabled
|
||||
//#define DEFAULT_DESIRED_MIN_CONN_INTERVAL 6
|
||||
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL 6
|
||||
|
||||
// Maximum connection interval (units of 1.25ms, 800=1000ms) if automatic
|
||||
// parameter update request is enabled
|
||||
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL 6
|
||||
//#define DEFAULT_DESIRED_MAX_CONN_INTERVAL 6
|
||||
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL 320
|
||||
|
||||
#else //! FEATURE_OAD
|
||||
// Minimum connection interval (units of 1.25ms, 8=10ms) if automatic
|
||||
// parameter update request is enabled
|
||||
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL 80
|
||||
//#define DEFAULT_DESIRED_MIN_CONN_INTERVAL 80
|
||||
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL 8
|
||||
|
||||
// Maximum connection interval (units of 1.25ms, 8=10ms) if automatic
|
||||
// parameter update request is enabled
|
||||
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL 80
|
||||
//#define DEFAULT_DESIRED_MAX_CONN_INTERVAL 80
|
||||
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL 16
|
||||
|
||||
#endif // FEATURE_OAD
|
||||
|
||||
//#define SBP_PERIODIC_EVT_PERIOD DEFAULT_DESIRED_MIN_CONN_INTERVAL*1.25 + 2
|
||||
#define SBP_PERIODIC_EVT_PERIOD 8
|
||||
|
||||
// Slave latency to use if automatic parameter update request is enabled
|
||||
#define DEFAULT_DESIRED_SLAVE_LATENCY 0
|
||||
|
||||
@@ -160,6 +169,7 @@
|
||||
#define SBP_STATE_CHANGE_EVT 0x0001
|
||||
#define SBP_CHAR_CHANGE_EVT 0x0002
|
||||
#define SBP_CONN_EVT_END_EVT 0x0004
|
||||
#define SBP_PERIODIC_EVT 0x0008
|
||||
// clang-format on
|
||||
|
||||
/*********************************************************************
|
||||
@@ -179,12 +189,16 @@ typedef struct {
|
||||
* LOCAL VARIABLES
|
||||
*/
|
||||
|
||||
|
||||
// Entity ID globally used to check for source and/or destination of messages
|
||||
static ICall_EntityID self;
|
||||
|
||||
// Semaphore globally used to post events to the application thread
|
||||
ICall_Semaphore semaphore;
|
||||
|
||||
// Clock instances for internal periodic events.
|
||||
static Clock_Struct periodicClock;
|
||||
|
||||
// Queue object used for app messages
|
||||
static Queue_Struct application_message;
|
||||
static Queue_Handle application_message_queue;
|
||||
@@ -195,6 +209,9 @@ static Queue_Struct oad_queue;
|
||||
static Queue_Handle oad_queue_handle;
|
||||
#endif // FEATURE_OAD
|
||||
|
||||
// events flag for internal application events.
|
||||
static uint16_t events;
|
||||
|
||||
// Task configuration
|
||||
Task_Struct sbpTask;
|
||||
Char sbpTaskStack[SBP_TASK_STACK_SIZE];
|
||||
@@ -221,6 +238,10 @@ static void SimpleBLEPeripheral_freeAttRsp(uint8_t status);
|
||||
static void SimpleBLEPeripheral_stateChangeCB(gaprole_States_t newState);
|
||||
static void SimpleBLEPeripheral_enqueueMsg(uint8_t event, uint8_t state);
|
||||
|
||||
static void SimpleBLEPeripheral_performPeriodicTask(void);
|
||||
static void SimpleBLEPeripheral_clockHandler(UArg arg);
|
||||
|
||||
|
||||
#ifndef FEATURE_OAD_ONCHIP
|
||||
static void SimpleBLEPeripheral_charValueChangeCB(uint8_t paramID);
|
||||
#endif //! FEATURE_OAD_ONCHIP
|
||||
@@ -315,6 +336,9 @@ static void SimpleBLEPeripheral_init(void) {
|
||||
// Create an RTOS queue for message from profile to be sent to app.
|
||||
application_message_queue = Util_constructQueue(&application_message);
|
||||
|
||||
// Util_constructClock(&periodicClock, SimpleBLEPeripheral_clockHandler, SBP_PERIODIC_EVT_PERIOD, 0, false, SBP_PERIODIC_EVT);
|
||||
// Util_constructClock(&periodicClock, SimpleBLEPeripheral_clockHandler, 100, 0, false, SBP_PERIODIC_EVT);
|
||||
|
||||
// Setup the GAP
|
||||
GAP_SetParamValue(TGAP_CONN_PAUSE_PERIPHERAL, DEFAULT_CONN_PAUSE_PERIPHERAL);
|
||||
|
||||
@@ -407,7 +431,9 @@ static void SimpleBLEPeripheral_init(void) {
|
||||
// Register for GATT local events and ATT Responses pending for transmission
|
||||
GATT_RegisterForMsgs(self);
|
||||
|
||||
headstage_led_spi_color(COLOR_GREEN);
|
||||
HCI_LE_WriteSuggestedDefaultDataLenCmd(251, 2120); // this is used for data length extension
|
||||
//
|
||||
HCI_LE_ReadMaxDataLenCmd();
|
||||
|
||||
}
|
||||
|
||||
@@ -507,7 +533,7 @@ static void headstage_init_device_info() {
|
||||
for (unsigned int i = 0; i < sizeof(DEVICE_NAME) - 1; i++) {
|
||||
*p++ = DEVICE_NAME[i];
|
||||
}
|
||||
*p++ = 15;
|
||||
*p++ = 16;
|
||||
*p++ = GAP_ADTYPE_MANUFACTURER_SPECIFIC;
|
||||
// unsafe_memcpy(p, "BPHS", 4);
|
||||
*p++ = 'B';
|
||||
@@ -523,7 +549,9 @@ static void headstage_init_device_info() {
|
||||
*p++ = 'B';
|
||||
*p++ = 'A';
|
||||
*p++ = 'T';
|
||||
*p++ = headstage_battery_percent();
|
||||
*p++ = headstage_battery_volt1();
|
||||
*p++ = headstage_battery_volt2();
|
||||
|
||||
|
||||
|
||||
GGS_SetParameter(GGS_DEVICE_NAME_ATT, sizeof(DEVICE_NAME), DEVICE_NAME);
|
||||
@@ -599,6 +627,15 @@ static void SimpleBLEPeripheral_taskFxn(UArg a0, UArg a1) {
|
||||
headstage_event_handle();
|
||||
}
|
||||
|
||||
// if (events & SBP_PERIODIC_EVT) {
|
||||
// events &= ~SBP_PERIODIC_EVT;
|
||||
//
|
||||
// Util_startClock(&periodicClock);
|
||||
//
|
||||
// // Perform periodic application task
|
||||
// SimpleBLEPeripheral_performPeriodicTask();
|
||||
// }
|
||||
|
||||
#ifdef FEATURE_OAD
|
||||
while (!Queue_empty(oad_queue_handle)) {
|
||||
oadTargetWrite_t *oadWriteEvt = Queue_get(oad_queue_handle);
|
||||
@@ -677,6 +714,7 @@ static uint8_t SimpleBLEPeripheral_processGATTMsg(gattMsgEvent_t *message) {
|
||||
|
||||
} else if (message->method == ATT_MTU_UPDATED_EVENT) {
|
||||
// MTU size updated
|
||||
|
||||
} else if (message->method == ATT_HANDLE_VALUE_CFM) {
|
||||
// quick pass
|
||||
}
|
||||
@@ -763,6 +801,7 @@ static void SimpleBLEPeripheral_processAppMsg(sbpEvt_t *message) {
|
||||
break;
|
||||
|
||||
case SBP_CHAR_CHANGE_EVT:
|
||||
// Util_startClock(&periodicClock);
|
||||
headstage_characteristic_updated(message->hdr.state);
|
||||
break;
|
||||
}
|
||||
@@ -823,12 +862,15 @@ static void SimpleBLEPeripheral_processStateChangeEvt(gaprole_States_t newState)
|
||||
numActive = linkDB_NumActive();
|
||||
|
||||
uint16_t cxnHandle;
|
||||
|
||||
// requestedPDUSize = LL payload = L2CAP_header + ATT header + BLE_NOT_BUFF_SIZE = 7 + BLE_NOT_BUFF_SIZE
|
||||
uint16_t requestedPDUSize = 251;
|
||||
uint16_t requestTxTime = 2120;
|
||||
uint16_t requestTxTime = 2120; // (LL payload + 14) * 8
|
||||
GAPRole_GetParameter(GAPROLE_CONNHANDLE, &cxnHandle);
|
||||
|
||||
if (SUCCESS == HCI_LE_SetDataLenCmd(cxnHandle, requestedPDUSize, requestTxTime)) {
|
||||
headstage_led_spi_color(COLOR_CYAN);
|
||||
ConnectState = true;
|
||||
// headstage_led_color(COLOR_CYAN);
|
||||
}
|
||||
// Use numActive to determine the connection handle of the last
|
||||
// connection
|
||||
@@ -843,18 +885,20 @@ static void SimpleBLEPeripheral_processStateChangeEvt(gaprole_States_t newState)
|
||||
case GAPROLE_WAITING:
|
||||
// Device is started but not advertising, is in waiting period before advertising again
|
||||
SimpleBLEPeripheral_freeAttRsp(bleNotConnected);
|
||||
ConnectState = false;
|
||||
headstage_led_color(COLOR_GREEN);
|
||||
break;
|
||||
|
||||
case GAPROLE_WAITING_AFTER_TIMEOUT:
|
||||
// Device just timed out from a connection but is not yet advertising, is in waiting period before advertising again
|
||||
// disconnected
|
||||
SimpleBLEPeripheral_freeAttRsp(bleNotConnected);
|
||||
headstage_led_spi_color(COLOR_RED); /** for neulive1.3 call headstage_led_spi_color ; for neulive2.0 call headstage_led_color */
|
||||
headstage_led_color(COLOR_RED);
|
||||
CONNECT_HANDLE = 0xFFFF;
|
||||
flag_notify(EVT_DISCONNECTED);
|
||||
break;
|
||||
case GAPROLE_ERROR: // Error occurred - invalid state
|
||||
headstage_led_spi_color(COLOR_RED);
|
||||
headstage_led_color(COLOR_RED);
|
||||
break;
|
||||
case GAPROLE_INIT: // Waiting to be started
|
||||
case GAPROLE_ADVERTISING: // Currently Advertising
|
||||
@@ -936,3 +980,25 @@ static void SimpleBLEPeripheral_enqueueMsg(uint8_t event, uint8_t state) {
|
||||
Util_enqueueMsg(application_message_queue, semaphore, (uint8 *)message);
|
||||
}
|
||||
}
|
||||
|
||||
static void SimpleBLEPeripheral_performPeriodicTask(){
|
||||
SimpleBLEPeripheral_blastData();
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
* @fn SimpleBLEPeripheral_clockHandler
|
||||
*
|
||||
* @brief Handler function for clock timeouts.
|
||||
*
|
||||
* @param arg - event type
|
||||
*
|
||||
* @return None.
|
||||
*/
|
||||
static void SimpleBLEPeripheral_clockHandler(UArg arg) {
|
||||
// Store the event.
|
||||
events |= arg;
|
||||
|
||||
// Wake up the application.
|
||||
Semaphore_post(semaphore);
|
||||
}
|
||||
|
||||
|
||||
+289
@@ -0,0 +1,289 @@
|
||||
/******************************************************************************
|
||||
|
||||
@file main.c
|
||||
|
||||
@brief main entry of the BLE stack sample application.
|
||||
|
||||
Group: WCS, BTS
|
||||
Target Device: CC2650, CC2640
|
||||
|
||||
******************************************************************************
|
||||
|
||||
Copyright (c) 2013-2018, Texas Instruments Incorporated
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name of Texas Instruments Incorporated nor the names of
|
||||
its contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
||||
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
******************************************************************************
|
||||
Release Name: ble_sdk_2_02_02_25
|
||||
Release Date: 2018-04-02 18:03:35
|
||||
*****************************************************************************/
|
||||
|
||||
/*******************************************************************************
|
||||
* INCLUDES
|
||||
*/
|
||||
|
||||
#include <xdc/runtime/Error.h>
|
||||
|
||||
#include <ti/drivers/Power.h>
|
||||
#include <ti/drivers/power/PowerCC26XX.h>
|
||||
#include <ti/sysbios/BIOS.h>
|
||||
|
||||
#include "icall.h"
|
||||
#include "hal_assert.h"
|
||||
#include "central.h"
|
||||
#include "simple_central.h"
|
||||
|
||||
/* Header files required to enable instruction fetch cache */
|
||||
#include <inc/hw_memmap.h>
|
||||
#include <driverlib/vims.h>
|
||||
|
||||
#ifndef USE_DEFAULT_USER_CFG
|
||||
|
||||
#include "ble_user_config.h"
|
||||
|
||||
// BLE user defined configuration
|
||||
bleUserCfg_t user0Cfg = BLE_USER_CFG;
|
||||
|
||||
#endif // USE_DEFAULT_USER_CFG
|
||||
|
||||
#include <ti/mw/display/Display.h>
|
||||
|
||||
#ifdef USE_FPGA
|
||||
#include <inc/hw_prcm.h>
|
||||
#endif // USE_FPGA
|
||||
|
||||
/*******************************************************************************
|
||||
* MACROS
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* CONSTANTS
|
||||
*/
|
||||
|
||||
#if defined( USE_FPGA )
|
||||
#define RFC_MODE_BLE PRCM_RFCMODESEL_CURR_MODE1
|
||||
#define RFC_MODE_ANT PRCM_RFCMODESEL_CURR_MODE4
|
||||
#define RFC_MODE_EVERYTHING_BUT_ANT PRCM_RFCMODESEL_CURR_MODE5
|
||||
#define RFC_MODE_EVERYTHING PRCM_RFCMODESEL_CURR_MODE6
|
||||
//
|
||||
#define SET_RFC_BLE_MODE(mode) HWREG( PRCM_BASE + PRCM_O_RFCMODESEL ) = (mode)
|
||||
#endif // USE_FPGA
|
||||
|
||||
/*******************************************************************************
|
||||
* TYPEDEFS
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* LOCAL VARIABLES
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* GLOBAL VARIABLES
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* EXTERNS
|
||||
*/
|
||||
|
||||
extern void AssertHandler(uint8 assertCause, uint8 assertSubcause);
|
||||
|
||||
extern Display_Handle dispHandle;
|
||||
|
||||
/*******************************************************************************
|
||||
* @fn Main
|
||||
*
|
||||
* @brief Application Main
|
||||
*
|
||||
* input parameters
|
||||
*
|
||||
* @param None.
|
||||
*
|
||||
* output parameters
|
||||
*
|
||||
* @param None.
|
||||
*
|
||||
* @return None.
|
||||
*/
|
||||
int main()
|
||||
{
|
||||
#if defined( USE_FPGA )
|
||||
HWREG(PRCM_BASE + PRCM_O_PDCTL0) &= ~PRCM_PDCTL0_RFC_ON;
|
||||
HWREG(PRCM_BASE + PRCM_O_PDCTL1) &= ~PRCM_PDCTL1_RFC_ON;
|
||||
#endif // USE_FPGA
|
||||
|
||||
/* Register Application callback to trap asserts raised in the Stack */
|
||||
RegisterAssertCback(AssertHandler);
|
||||
|
||||
PIN_init(BoardGpioInitTable);
|
||||
|
||||
#if defined( USE_FPGA )
|
||||
// set RFC mode to support BLE
|
||||
// Note: This must be done before the RF Core is released from reset!
|
||||
SET_RFC_BLE_MODE(RFC_MODE_BLE);
|
||||
#endif // USE_FPGA
|
||||
|
||||
// Enable iCache prefetching
|
||||
VIMSConfigure(VIMS_BASE, TRUE, TRUE);
|
||||
|
||||
// Enable cache
|
||||
VIMSModeSet(VIMS_BASE, VIMS_MODE_ENABLED);
|
||||
|
||||
#if !defined( POWER_SAVING ) || defined( USE_FPGA )
|
||||
/* Set constraints for Standby, powerdown and idle mode */
|
||||
// PowerCC26XX_SB_DISALLOW may be redundant
|
||||
Power_setConstraint(PowerCC26XX_SB_DISALLOW);
|
||||
Power_setConstraint(PowerCC26XX_IDLE_PD_DISALLOW);
|
||||
#endif // POWER_SAVING | USE_FPGA
|
||||
|
||||
/* Initialize ICall module */
|
||||
ICall_init();
|
||||
|
||||
/* Start tasks of external images - Priority 5 */
|
||||
ICall_createRemoteTasks();
|
||||
|
||||
/* Kick off profile - Priority 3 */
|
||||
GAPCentralRole_createTask();
|
||||
|
||||
/* Kick off application - Priority 1 */
|
||||
SimpleBLECentral_createTask();
|
||||
|
||||
/* enable interrupts and start SYS/BIOS */
|
||||
BIOS_start();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* @fn AssertHandler
|
||||
*
|
||||
* @brief This is the Application's callback handler for asserts raised
|
||||
* in the stack. When EXT_HAL_ASSERT is defined in the Stack
|
||||
* project this function will be called when an assert is raised,
|
||||
* and can be used to observe or trap a violation from expected
|
||||
* behavior.
|
||||
*
|
||||
* As an example, for Heap allocation failures the Stack will raise
|
||||
* HAL_ASSERT_CAUSE_OUT_OF_MEMORY as the assertCause and
|
||||
* HAL_ASSERT_SUBCAUSE_NONE as the assertSubcause. An application
|
||||
* developer could trap any malloc failure on the stack by calling
|
||||
* HAL_ASSERT_SPINLOCK under the matching case.
|
||||
*
|
||||
* An application developer is encouraged to extend this function
|
||||
* for use by their own application. To do this, add hal_assert.c
|
||||
* to your project workspace, the path to hal_assert.h (this can
|
||||
* be found on the stack side). Asserts are raised by including
|
||||
* hal_assert.h and using macro HAL_ASSERT(cause) to raise an
|
||||
* assert with argument assertCause. the assertSubcause may be
|
||||
* optionally set by macro HAL_ASSERT_SET_SUBCAUSE(subCause) prior
|
||||
* to asserting the cause it describes. More information is
|
||||
* available in hal_assert.h.
|
||||
*
|
||||
* input parameters
|
||||
*
|
||||
* @param assertCause - Assert cause as defined in hal_assert.h.
|
||||
* @param assertSubcause - Optional assert subcause (see hal_assert.h).
|
||||
*
|
||||
* output parameters
|
||||
*
|
||||
* @param None.
|
||||
*
|
||||
* @return None.
|
||||
*/
|
||||
void AssertHandler(uint8 assertCause, uint8 assertSubcause)
|
||||
{
|
||||
// Open the display if the app has not already done so
|
||||
if ( !dispHandle )
|
||||
{
|
||||
dispHandle = Display_open(Display_Type_LCD, NULL);
|
||||
}
|
||||
|
||||
Display_print0(dispHandle, 0, 0, ">>>STACK ASSERT");
|
||||
|
||||
// check the assert cause
|
||||
switch (assertCause)
|
||||
{
|
||||
case HAL_ASSERT_CAUSE_OUT_OF_MEMORY:
|
||||
Display_print0(dispHandle, 0, 0, "***ERROR***");
|
||||
Display_print0(dispHandle, 2, 0, ">> OUT OF MEMORY!");
|
||||
break;
|
||||
|
||||
case HAL_ASSERT_CAUSE_INTERNAL_ERROR:
|
||||
// check the subcause
|
||||
if (assertSubcause == HAL_ASSERT_SUBCAUSE_FW_INERNAL_ERROR)
|
||||
{
|
||||
Display_print0(dispHandle, 0, 0, "***ERROR***");
|
||||
Display_print0(dispHandle, 2, 0, ">> INTERNAL FW ERROR!");
|
||||
}
|
||||
else
|
||||
{
|
||||
Display_print0(dispHandle, 0, 0, "***ERROR***");
|
||||
Display_print0(dispHandle, 2, 0, ">> INTERNAL ERROR!");
|
||||
}
|
||||
break;
|
||||
|
||||
case HAL_ASSERT_CAUSE_ICALL_ABORT:
|
||||
Display_print0(dispHandle, 0, 0, "***ERROR***");
|
||||
Display_print0(dispHandle, 2, 0, ">> ICALL ABORT!");
|
||||
HAL_ASSERT_SPINLOCK;
|
||||
break;
|
||||
|
||||
default:
|
||||
Display_print0(dispHandle, 0, 0, "***ERROR***");
|
||||
Display_print0(dispHandle, 2, 0, ">> DEFAULT SPINLOCK!");
|
||||
HAL_ASSERT_SPINLOCK;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* @fn smallErrorHook
|
||||
*
|
||||
* @brief Error handler to be hooked into TI-RTOS.
|
||||
*
|
||||
* input parameters
|
||||
*
|
||||
* @param eb - Pointer to Error Block.
|
||||
*
|
||||
* output parameters
|
||||
*
|
||||
* @param None.
|
||||
*
|
||||
* @return None.
|
||||
*/
|
||||
void smallErrorHook(Error_Block *eb)
|
||||
{
|
||||
for (;;);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*/
|
||||
+120
@@ -0,0 +1,120 @@
|
||||
/******************************************************************************
|
||||
|
||||
@file main.c
|
||||
|
||||
@brief main entry of the BLE stack sample application.
|
||||
|
||||
Group: WCS, BTS
|
||||
Target Device: CC2650, CC2640
|
||||
|
||||
******************************************************************************
|
||||
|
||||
Copyright (c) 2013-2018, Texas Instruments Incorporated
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name of Texas Instruments Incorporated nor the names of
|
||||
its contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
||||
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
******************************************************************************
|
||||
Release Name: ble_sdk_2_02_02_25
|
||||
Release Date: 2018-04-02 18:03:35
|
||||
*****************************************************************************/
|
||||
|
||||
/*================
|
||||
==== include ====
|
||||
===============*/
|
||||
|
||||
// clang-format off
|
||||
#include <xdc/runtime/Error.h>
|
||||
|
||||
#include <ti/drivers/PIN.h>
|
||||
#include <ti/drivers/Power.h>
|
||||
#include <ti/drivers/power/PowerCC26XX.h>
|
||||
#include <ti/sysbios/BIOS.h>
|
||||
|
||||
#include "icall.h"
|
||||
#include "bcomdef.h"
|
||||
#include "peripheral.h"
|
||||
|
||||
#include "simple_peripheral.h"
|
||||
|
||||
/* Header files required to enable instruction fetch cache */
|
||||
#include <inc/hw_memmap.h>
|
||||
#include <driverlib/vims.h>
|
||||
// clang-format on
|
||||
|
||||
#ifndef USE_DEFAULT_USER_CFG
|
||||
|
||||
#include "ble_user_config.h"
|
||||
|
||||
// BLE user defined configuration
|
||||
bleUserCfg_t user0Cfg = BLE_USER_CFG;
|
||||
|
||||
#endif // USE_DEFAULT_USER_CFG
|
||||
|
||||
extern const PIN_Config BoardGpioInitTable[];
|
||||
|
||||
/**
|
||||
* @fn Main
|
||||
*
|
||||
* @brief Application Main
|
||||
*
|
||||
* input parameters
|
||||
*
|
||||
* @param None.
|
||||
*
|
||||
* output parameters
|
||||
*
|
||||
* @param None.
|
||||
*
|
||||
* @return None.
|
||||
*/
|
||||
int main() {
|
||||
PIN_init(BoardGpioInitTable);
|
||||
|
||||
// Enable iCache prefetching
|
||||
VIMSConfigure(VIMS_BASE, TRUE, TRUE);
|
||||
|
||||
// Enable cache
|
||||
VIMSModeSet(VIMS_BASE, VIMS_MODE_ENABLED);
|
||||
|
||||
/* Initialize ICall module */
|
||||
ICall_init();
|
||||
|
||||
/* Start tasks of external images - Priority 5 */
|
||||
ICall_createRemoteTasks();
|
||||
|
||||
/* Kick off profile - Priority 3 */
|
||||
GAPRole_createTask();
|
||||
|
||||
SimpleBLEPeripheral_createTask();
|
||||
|
||||
/* enable interrupts and start SYS/BIOS */
|
||||
BIOS_start();
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -85,6 +85,7 @@ extern "C" {
|
||||
#define SIMPLEPROFILE_CHAR2_LEN 10
|
||||
#define SIMPLEPROFILE_CHAR3_LEN 20
|
||||
#define SIMPLEPROFILE_CHAR4_LEN 200
|
||||
//#define SIMPLEPROFILE_CHAR4_LEN 20
|
||||
#define SIMPLEPROFILE_CHAR5_LEN 20
|
||||
|
||||
/*********************************************************************
|
||||
|
||||
Reference in New Issue
Block a user