Compare commits

...

217 Commits

Author SHA1 Message Date
Roy 51e447db3b test 1 to 8 2021-11-01 09:54:00 +08:00
Roy 80ea8a6772 r/w twice 2021-10-25 10:33:27 +08:00
Roy 08c2de8c43 debug 1 to 8 2021-10-05 16:17:48 +08:00
Roy db47c14537 set limit of writing Ram 5 times 2021-10-01 10:09:29 +08:00
Roy fc811cef35 read and write Ram twice 2021-09-27 19:12:20 +08:00
Roy eda0943fd3 spi speed 8M 2021-09-27 17:17:02 +08:00
Roy ee203f45fd use check buf 2021-09-27 14:22:45 +08:00
Roy de4ede4187 use check buf 2021-09-24 17:59:35 +08:00
Roy b5baead500 delay 10us after change mem_select 2021-09-23 11:34:12 +08:00
Roy f9c7d04647 send data and read data(spi) 2021-09-23 10:33:59 +08:00
Roy e430cd41fc send data and read data(spi) 2021-09-23 10:31:42 +08:00
Roy 8f3f44bc40 test memory board 2021-09-14 14:32:05 +08:00
Roy 3142f007b1 test memory board 2021-09-14 12:24:02 +08:00
Roy a1eb286365 look Ram data(spi) 2021-08-25 14:45:07 +08:00
Roy 7369ea8430 test 2021-08-19 17:14:09 +08:00
Roy 1540745ce5 test pin 2021-08-19 12:47:38 +08:00
Roy 9fd06428c3 check ram data 2021-08-17 13:40:32 +08:00
Roy 24b0889532 check ram data 2021-08-13 13:10:37 +08:00
Roy 853151a83a check ram data 2021-08-13 10:30:13 +08:00
Roy e51def4f9f check ram data 2021-08-12 14:33:25 +08:00
Roy e21067e610 take away notify_counter 2021-08-02 09:18:24 +08:00
Roy 3386ca9456 notify data clear 2021-07-29 15:35:01 +08:00
Roy b0aee65916 use two buffer to save spi data 2021-07-28 09:46:20 +08:00
Roy 2d851c2f7c fix CIS return date (insert data length) 2021-07-20 17:43:46 +08:00
Roy 00bf501980 fix CIS return date 2021-07-20 16:37:17 +08:00
Roy 0a5b58c9be fix master_switch_memory 2021-06-24 17:15:12 +08:00
Roy b974e72570 improve ram_sw 2021-06-24 11:52:15 +08:00
Roy 5aad69f236 take away Board_GLED 2021-06-22 16:53:13 +08:00
Roy 1210b674b1 attempt to improve MEM_REQ 2021-06-21 16:15:42 +08:00
weiting2 a0c7fac713 attempt to improve MEM_REQ 2021-06-21 14:58:17 +08:00
alan576 aae3a9bdb2 attempt to improve MEM_REQ 2021-06-18 16:05:37 +08:00
Roy 9aba294e78 [update] fix timestamp big jump (ram could switch when notify finish) 2021-06-10 17:23:26 +08:00
Roy d9de0a8021 [update] fix timestamp big jump (ram could switch when notify finish) 2021-06-10 11:22:37 +08:00
Roy 94ff9ef4f2 [update] MEM_SWITCH_THRESHOLD 2K modify to 7K bytes 2021-06-04 18:05:27 +08:00
Roy 77a9fdb8c9 [update] lost data fixed 2021-06-04 15:51:58 +08:00
Roy 776e5544b3 don't care 2021-06-04 15:38:31 +08:00
Roy 1012c76e8a use UART_read callback 2021-05-23 14:07:59 +08:00
Roy c9e7f63579 use UART_read callback 2021-05-23 14:02:35 +08:00
Roy 8731dc1437 irq pin is unavailable 2021-05-13 09:05:28 +08:00
Roy 650580657d irq pin is unavailable 2021-05-12 18:13:14 +08:00
Roy e9661c4fde uart is ok 2021-05-12 13:48:20 +08:00
weiting2 663efc35ab trace uart routine.h 2021-05-12 11:36:44 +08:00
weiting2 c8ef957ba8 update three stage stiCali data 2021-05-12 11:35:20 +08:00
weiting2 c93f9e8f1b improve scan 2021-05-11 17:46:14 +08:00
Roy 0783981abd test pin 2021-05-11 09:31:55 +08:00
Roy edf7afa30f after take away irq(), scan & conneect & write is right 2021-05-10 11:46:26 +08:00
Roy 20614206db after take away irq(), scan & conneect & write is right 2021-05-06 16:47:15 +08:00
Roy 1eb77672bd after take away irq(), scan & conneect & write is right 2021-05-03 17:41:12 +08:00
Roy 86fdd30adb uart_en debug(not ok) 2021-04-29 19:09:20 +08:00
Roy 87930d1328 central debug 2021-04-29 12:08:56 +08:00
Roy 03a137d178 someting wrong 2021-04-07 16:29:05 +08:00
Roy 3b7f61a75e Merge branch 'simple_central_ma_pin' of C:\ti with conflicts. 2021-04-07 16:28:19 +08:00
Roy 97186f2ea7 central spi done 2021-04-01 17:14:42 +08:00
Roy d8ae2d0d39 don't care 2021-03-26 18:05:55 +08:00
Roy d565fd85a7 read characteristic success 2021-03-25 18:44:30 +08:00
Roy 7afa702d03 write characteristic success 2021-03-24 17:47:52 +08:00
Roy fa3cc0ebcf no no 2021-03-24 17:22:57 +08:00
Roy 78abae1610 don't care 2021-03-24 15:11:28 +08:00
Roy d06fc84c20 connect successfully 2021-03-24 10:39:23 +08:00
Roy 7ec5700276 test 2021-03-23 10:26:42 +08:00
Roy b174a4efdb scan response and compare "BPHS" 2021-03-22 18:10:49 +08:00
Roy dd8f1101a3 scan response 2021-03-22 16:27:27 +08:00
Roy d5f8ecb099 scan response 2021-03-19 14:48:12 +08:00
Roy ce32f268b1 don't care 2021-03-19 10:50:56 +08:00
Roy 609e04bcae don't care 2021-03-18 12:08:09 +08:00
weiting2 d24d5749e8 sync with linux version 2021-03-16 16:11:44 +08:00
weiting2 884799f748 Merge remote-tracking branch 'origin/simple_central_ma_pin' into simple_central_ma_pin 2020-10-06 11:01:46 +08:00
weiting2 40fa05e4b6 return addrType in scan response 2020-10-06 11:01:17 +08:00
weiting2 a901441804 error fix 2020-09-17 17:31:17 +08:00
weiting2 de67725af2 update central 2020-09-17 13:38:50 +08:00
weiting2 2b572b198f send ack if recv idle instruction 2020-08-27 11:59:28 +08:00
weiting2 b18a3cc719 connect done will send another ack 2020-08-25 15:48:49 +08:00
weiting2 22f5ace914 send ack if recv "connect" instruction 2020-08-25 15:08:44 +08:00
weiting2 8e18a5a8d2 seems no bug now 2020-08-24 14:19:23 +08:00
weiting2 3c74887df0 we should trace the "don't work" start point; 2020-08-24 12:10:37 +08:00
weiting2 4562eb595b we should trace the "don't work" start point; 2020-08-24 11:46:54 +08:00
weiting2 4dd4aea9e1 we should trace the "don't work" start point; 2020-08-24 11:09:38 +08:00
weiting2 c3484ba321 we should trace the "don't work" start point; 2020-08-24 10:49:16 +08:00
weiting2 c9a6f3f55e we should trace the "don't work" start point; 2020-08-24 10:10:45 +08:00
weiting2 157011609f we should trace the "don't work" start point; 2020-08-21 19:32:37 +08:00
weiting2 2a22d5125e using a while(1) to check if ins can interrupt notify 2020-08-21 19:07:00 +08:00
weiting2 b30e9e81ca central board maybe no problem 2020-08-21 18:15:05 +08:00
weiting2 c11ee081f2 do not send spi; see if the bug still exist 2020-08-21 18:11:52 +08:00
weiting2 21aa6a501d do not send spi; see if the bug still exist 2020-08-21 17:49:34 +08:00
weiting2 1b63858864 send err_ack if write characteristic fail 2020-08-21 17:08:09 +08:00
weiting2 f091128283 attempt to use notify event to avoid send-ins & notify handle conflict 2020-08-20 17:04:15 +08:00
yichin 6692a2b98e error fix 2020-08-20 15:19:22 +08:00
yichin 751040a613 error fix 2020-08-20 15:18:20 +08:00
yichin 7ea6b9e88b error fix 2020-08-20 15:17:14 +08:00
weiting2 05a59ffd5e attempt to use notify event to avoid send-ins & notify handle conflict 2020-08-20 15:15:55 +08:00
weiting2 327f45985b attempt to make write-charac & notify handle co-work correctly 2020-08-20 14:40:37 +08:00
weiting2 0155ce6488 attempt to make write-charac & notify handle co-work correctly 2020-08-20 14:25:41 +08:00
weiting2 4877e4cd1f attempt to make write-charac & notify handle co-work correctly 2020-08-20 14:12:53 +08:00
weiting2 1db6cc161e notify handle still can not work sometime; enable ack again 2020-08-19 16:28:46 +08:00
weiting2 f99608fb13 do not use ack, it will conflict with notify handle 2020-08-18 15:13:00 +08:00
yichin 893b6543c5 error fix 2020-08-17 18:10:25 +08:00
weiting2 7cfb735cae ack can be 10 bytes, and it's better to decode 2020-08-17 18:09:55 +08:00
weiting2 a8c17a1689 ack length should equal to normal cis length (16 bytes) 2020-08-17 16:40:18 +08:00
weiting2 3c9e48c5fb ack length should equal to normal cis length (16 bytes) 2020-08-17 16:04:07 +08:00
weiting2 20634a3265 notify event is a bad idea 2020-08-14 18:00:25 +08:00
weiting2 fd6601f699 Merge remote-tracking branch 'origin/simple_central_ma_pin' into simple_central_ma_pin 2020-08-14 17:44:23 +08:00
weiting2 96208a8cfa attempt to handle notify by event-handle 2020-08-14 17:44:06 +08:00
yichin 971e6232ec error fix 2020-08-14 13:36:54 +08:00
weiting2 3743de4000 CIS should add length at the first bytes 2020-08-14 13:31:24 +08:00
weiting2 5dc89b9cf3 why handle notify does not execute sometime? add error msg to figure out 2020-08-14 10:43:31 +08:00
weiting2 75a96aeb6c Merge remote-tracking branch 'origin/simple_central_ma_pin' into simple_central_ma_pin 2020-08-14 10:30:28 +08:00
weiting2 7d5e804c43 why handle notify does not execute sometime? add error msg to figure out 2020-08-14 10:29:07 +08:00
yichin 6fb6aca6c0 error fix 2020-08-13 16:52:37 +08:00
weiting2 529bbe31a6 why handle notify does not execute sometime? add error msg to figure out 2020-08-13 11:56:43 +08:00
weiting2 b59b55f160 why handle notify does not execute sometime? add error msg to figure out 2020-08-13 11:34:09 +08:00
weiting2 0308969200 using prefix and suffix to sync on every uart transmit 2020-08-12 10:47:33 +08:00
weiting2 0b5c5d9550 CIS should read arbitrary length 2020-08-11 11:19:08 +08:00
weiting2 8c0dcee65e REQ-SEL process might have a bug 2020-08-10 17:48:18 +08:00
weiting2 9748ed008b REQ-SEL process might have a bug 2020-08-10 17:44:39 +08:00
weiting2 e3276135eb REQ-SEL process might have a bug 2020-08-10 17:00:42 +08:00
weiting2 ee8452282d REQ-SEL process might have a bug 2020-08-10 15:50:25 +08:00
yichin 29fc314708 error fix 2020-08-10 10:25:27 +08:00
yichin 08073baaaf error fix 2020-08-07 10:33:48 +08:00
weiting2 841b14efd5 disconnect function 2020-08-06 18:02:07 +08:00
weiting2 bdcca93f88 disconnect function 2020-08-06 11:39:28 +08:00
weiting2 9986c4df39 disconnect function 2020-08-05 17:06:51 +08:00
weiting2 14009bf590 attempt to read CIS 2020-08-05 11:49:12 +08:00
yichin 40b0ff79ea error fix 2020-08-05 10:19:51 +08:00
weiting2 535af75e5b attempt to read CIS 2020-08-05 10:09:17 +08:00
weiting2 649c1855fa attempt to read CIS 2020-08-04 18:04:23 +08:00
weiting2 2dbc33f12f attempt to read CIS 2020-08-04 17:54:09 +08:00
weiting2 8b43e81c11 attempt to read CIS 2020-08-04 17:49:17 +08:00
weiting2 31a2fb2975 attempt to read CIS 2020-08-04 17:43:42 +08:00
weiting2 07d0a63311 attempt to read CIS 2020-08-04 17:37:50 +08:00
weiting2 4ac36ea8ec attempt to read CIS 2020-08-04 17:09:21 +08:00
weiting2 9921d4396a attempt to read CIS 2020-08-04 17:05:23 +08:00
weiting2 523c94cc16 attempt to read CIS 2020-08-04 17:04:58 +08:00
weiting2 bbe60e1ae3 attempt to read CIS 2020-08-04 16:46:18 +08:00
weiting2 d5be911c2e GATT_WriteCharValue can work fine with len(ins) <=19 2020-08-04 16:04:19 +08:00
weiting2 4a5bb758e9 GATT_WriteCharValue can work fine with len(ins) <=19 2020-08-04 14:25:42 +08:00
weiting2 30ede4dbe9 GATT_WriteCharValue can work fine with len(ins) <=19 2020-08-04 13:58:26 +08:00
weiting2 6c1b164fcd GATT_WriteCharValue can work fine with len(ins) <=19 2020-08-04 13:41:42 +08:00
weiting2 ecfb3130af GATT_WriteCharValue can work fine with len(ins) <=19 2020-08-04 11:56:46 +08:00
weiting2 8b8fe18749 GATT_WriteCharValue can work fine with len(ins) <=19 2020-08-03 17:26:05 +08:00
weiting2 798cefb3ac GATT_WriteCharValue can work fine with len(ins) <=19 2020-08-03 17:18:03 +08:00
weiting2 986ebe21f5 GATT_WriteCharValue can work fine with len(ins) <=19 2020-08-03 16:48:48 +08:00
weiting2 0b3e8847bc GATT_WriteCharValue can work fine with len(ins) <=19 2020-08-03 15:12:04 +08:00
weiting2 0a78a5fc85 attempt to support all function 2020-08-03 14:59:31 +08:00
yichin f53de36019 work fine with GATT_WriteCharValue() 2020-08-03 14:57:22 +08:00
yichin 21b3e72677 work fine with GATT_WriteCharValue() 2020-08-03 14:50:06 +08:00
weiting2 9e4cb2be2e attempt to support all function 2020-08-03 14:17:53 +08:00
weiting2 416b2b0ae9 attempt to support all function 2020-08-03 13:48:04 +08:00
weiting2 3dd3b24aa9 attempt to support all function 2020-08-03 13:40:10 +08:00
weiting2 7debccc79a attempt to support all function 2020-08-03 13:34:09 +08:00
weiting2 2fa7be7675 attempt to support all function 2020-08-03 13:31:13 +08:00
weiting2 9310f36f54 attempt to support all function 2020-08-03 12:42:18 +08:00
weiting2 f4485773c2 attempt to support all function 2020-08-03 12:17:07 +08:00
weiting2 388184dafd attempt to support all function 2020-08-03 12:13:58 +08:00
weiting2 5232f3acf6 attempt to support all function 2020-08-03 11:47:30 +08:00
weiting2 3abc4718e4 attempt to support all function 2020-08-03 11:38:18 +08:00
weiting2 446c2ec987 attempt to support all function 2020-08-03 11:13:26 +08:00
weiting2 d567558078 attempt to support all function 2020-08-03 11:07:24 +08:00
weiting2 93a1cb8c4c attempt to support all function 2020-07-31 18:17:43 +08:00
weiting2 1d80249bb7 attempt to support all function 2020-07-31 18:07:47 +08:00
weiting2 84fd1059e8 attempt to support all function 2020-07-31 17:52:09 +08:00
weiting2 f89e6fa45f attempt to support all function 2020-07-31 17:42:44 +08:00
weiting2 35dc9a1868 attempt to support all function 2020-07-31 17:36:33 +08:00
weiting2 f7cf75d526 attempt to support all function 2020-07-31 17:12:47 +08:00
weiting2 b818a0d4f4 attempt to support all function 2020-07-31 16:56:30 +08:00
weiting2 debc10a1fa attempt to support all function 2020-07-31 16:17:38 +08:00
weiting2 4a3cdfb476 attempt to support all function 2020-07-31 16:07:41 +08:00
weiting2 aa96edc91a attempt to support all function 2020-07-31 15:02:50 +08:00
weiting2 4c1cb92da6 attempt to support all function 2020-07-31 14:44:56 +08:00
weiting2 413573c976 attempt to support all function 2020-07-31 11:22:06 +08:00
yichin 8438accbb7 error fix 2020-07-31 11:11:19 +08:00
weiting2 9220da8103 attempt to support all function 2020-07-31 11:08:39 +08:00
weiting2 ffb1d8c13b attempt to support all function 2020-07-31 10:47:48 +08:00
weiting2 2880f11465 attempt to support all function 2020-07-31 10:05:55 +08:00
weiting2 fea888bd31 attempt to support all function 2020-07-30 18:25:52 +08:00
weiting2 04e9d78bad attempt to support all function 2020-07-30 18:22:45 +08:00
weiting2 5d6046f056 attempt to support all function 2020-07-30 14:53:21 +08:00
yichin 7edeb12c7f error fix 2020-07-30 11:18:45 +08:00
weiting2 ea433bd540 attempt to use 6M spi debugging 2020-07-30 10:22:13 +08:00
weiting2 1a60067548 attempt to use 6M spi debugging 2020-07-30 09:59:20 +08:00
weiting2 77b754574f attempt to use 6M spi debugging 2020-07-29 19:18:21 +08:00
weiting2 1004461ae3 attempt to use 6M spi debugging 2020-07-29 18:37:26 +08:00
weiting2 daabaa9bde attempt to implement SPI & write notify to RAM 2020-07-28 17:42:42 +08:00
yichin 01dd0ab5e7 error fix 2020-07-28 17:40:08 +08:00
yichin 8db31dea72 Merge remote-tracking branch 'origin/simple_central_ma_pin' into simple_central_ma_pin 2020-07-28 17:37:18 +08:00
yichin 541c181371 error fix 2020-07-28 17:37:09 +08:00
weiting2 26f0758a7b attempt to implement SPI & write notify to RAM 2020-07-28 17:29:35 +08:00
weiting2 ca8d5718cd attempt to implement SPI & write notify to RAM 2020-07-28 17:27:47 +08:00
weiting2 fc3e525324 attempt to implement SPI & write notify to RAM 2020-07-28 15:38:20 +08:00
weiting2 1cb897b73f attempt to implement SPI & write notify to RAM 2020-07-28 11:36:07 +08:00
yichin f9af0a4ff3 error fix 2020-07-27 16:18:34 +08:00
yichin 2cdf4360bf Merge remote-tracking branch 'origin/simple_central_ma_pin' into simple_central_ma_pin 2020-07-27 15:57:56 +08:00
yichin 791b737ae2 error fix 2020-07-27 15:57:20 +08:00
weiting2 3b78d48412 attempt to implement SPI & write notify to RAM 2020-07-27 15:56:37 +08:00
weiting2 d245dd1823 attempt to implement SPI & write notify to RAM 2020-07-27 12:31:11 +08:00
weiting2 75ad1d5c2d attempt to implement SPI & write notify to RAM 2020-07-24 17:19:21 +08:00
weiting2 619bd78ddb attempt to implement SPI & write notify to RAM 2020-07-24 17:14:38 +08:00
weiting2 1a78d4aa44 attempt to implement SPI & write notify to RAM 2020-07-24 17:07:49 +08:00
weiting2 d2e49595c8 attempt to implement SPI & write notify to RAM 2020-07-24 16:51:32 +08:00
weiting2 a4d4382c3e attempt to implement SPI & write notify to RAM 2020-07-24 15:35:32 +08:00
yichin 854a9b84a8 error fix 2020-07-23 16:45:46 +08:00
weiting2 aedead5c3d attempt to implement SPI & write notify to RAM 2020-07-23 16:42:27 +08:00
weiting2 bdea359584 attempt to implement SPI & write notify to RAM 2020-07-23 16:32:10 +08:00
yichin f2936e3c85 error fix 2020-07-23 12:06:55 +08:00
weiting2 e24d53d688 attempt to implement PINSetin/out 2020-07-23 12:02:33 +08:00
weiting2 0f7efb9846 TODO: "connecting is timed out" should be catch 2020-07-22 18:36:51 +08:00
yichin c206216ca5 We can use DLE now 2020-07-21 15:05:04 +08:00
yichin 42b2e14d83 We can use DLE now 2020-07-20 15:20:18 +08:00
yichin 9c05c9e2c1 I am not sure what happen 2020-07-14 16:32:36 +08:00
yichin 9d5e3cbb81 attempt to use BoosterPad debug 2020-07-13 14:57:45 +08:00
yichin da9597b630 attempt to use BoosterPad debug 2020-07-13 14:03:58 +08:00
weiting2 7680c2b10f attempt to use MODA BoosterPack for debug 2020-07-13 12:45:16 +08:00
weiting2 6fdfa00916 attempt to use MODA BoosterPack for debug 2020-07-13 12:37:44 +08:00
weiting2 e628b709df attempt to use MODA BoosterPack for debug 2020-07-13 12:37:40 +08:00
weiting2 ea7f08d88e attempt to use MODA BoosterPack for debug 2020-07-13 12:01:19 +08:00
yichin b8d52c8add still no DLE QQQQQ 2020-07-10 19:00:29 +08:00
yichin 63cabefd3b error fix 2020-07-10 18:41:40 +08:00
weiting2 185d6b7f18 enable DLE 2020-07-10 18:36:10 +08:00
39 changed files with 1911 additions and 1489 deletions
+13
View File
@@ -4,6 +4,19 @@
xdctools_*/
ccsv8/
simplelink/ble_sdk_2_02_02_25/examples/cc2650em/simple_peripheral/ccs/app/.config/
simplelink/ble_sdk_2_02_02_25/examples/cc2650em/simple_peripheral/ccs/app/.ccsproject
simplelink/ble_sdk_2_02_02_25/examples/cc2650em/simple_peripheral/ccs/app/.cproject
simplelink/ble_sdk_2_02_02_25/examples/cc2650em/simple_central/ccs/app/.launches/
simplelink/ble_sdk_2_02_02_25/examples/cc2650em/simple_central/ccs/app/.settings/
simplelink/ble_sdk_2_02_02_25/examples/cc2650em/simple_central/ccs/config/lib_linker.cmd
simplelink/ble_sdk_2_02_02_25/examples/cc2650em/simple_central/ccs/config/src/
simplelink/ble_sdk_2_02_02_25/examples/cc2650em/simple_central/ccs/stack/.launches/
simplelink/ble_sdk_2_02_02_25/examples/cc2650em/simple_central/ccs/stack/.settings/
simplelink/ble_sdk_2_02_02_25/examples/cc2650em/simple_central/ccs/stack/targetConfigs/
.vscode/
ccs/
# CSS build files
FlashROM/
-7
View File
@@ -1,7 +0,0 @@
<component name="CopyrightManager">
<copyright>
<option name="keyword" value="Copyright .*" />
<option name="notice" value="Copyright (c) &amp;#36;today.year. BioPro. Scientific." />
<option name="myName" value="BioProSci" />
</copyright>
</component>
-7
View File
@@ -1,7 +0,0 @@
<component name="CopyrightManager">
<settings default="BioProSci">
<module2copyright>
<element module="SimplePeripheral" copyright="BioProSci" />
</module2copyright>
</settings>
</component>
-3
View File
@@ -1,3 +0,0 @@
<component name="DependencyValidationManager">
<scope name="HostTest" pattern="file[BioProCC2650]:simplelink/ble_sdk_2_02_02_25/src/examples/host_test/cc26xx/app/master//*" />
</component>
-3
View File
@@ -1,3 +0,0 @@
<component name="DependencyValidationManager">
<scope name="SimplePeripheral" pattern="file[BioProCC2650]:simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage//*" />
</component>
Binary file not shown.
@@ -9,6 +9,6 @@
<linkerCommandFile value="cc26x0f128.cmd"/>
<rts value="libc.a"/>
<createSlaveProjects value=""/>
<connection value="common/targetdb/connections/TIXDS110_Connection.xml"/>
<connection value="common/targetdb/connections/TIXDS100v3_Dot7_Connection.xml"/>
<isTargetManual value="true"/>
</projectOptions>
@@ -1,298 +1,153 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?>
<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
<storageModule configRelations="2" moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1291753115">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider"
id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1291753115"
moduleId="org.eclipse.cdt.core.settings" name="FlashROM">
<externalSettings/>
<extensions>
<extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="com.ti.ccstudio.errorparser.CoffErrorParser"
point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.ti.ccstudio.errorparser.LinkErrorParser"
point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.ti.ccstudio.errorparser.AsmErrorParser"
point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.ti.rtsc.XDCtools.parsers.ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.rtsc.xdctools.parsers.ErrorParser"
point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
<storageModule configRelations="2" moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1291753115">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1291753115" moduleId="org.eclipse.cdt.core.settings" name="FlashROM">
<externalSettings/>
<extensions>
<extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.ti.rtsc.XDCtools.parsers.ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.rtsc.xdctools.parsers.ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties=""
cleanCommand="${CG_CLEAN_CMD}" description=""
errorParsers="org.eclipse.rtsc.xdctools.parsers.ErrorParser;com.ti.rtsc.XDCtools.parsers.ErrorParser;com.ti.ccstudio.errorparser.CoffErrorParser;com.ti.ccstudio.errorparser.LinkErrorParser;com.ti.ccstudio.errorparser.AsmErrorParser;org.eclipse.cdt.core.GmakeErrorParser"
id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1291753115" name="FlashROM"
parent="com.ti.ccstudio.buildDefinitions.TMS470.Default"
postbuildStep="${CG_TOOL_HEX} -order MS --memwidth=8 --romwidth=8 --intel -o ${ProjName}.hex ${ProjName}.out"
prebuildStep="">
<folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1291753115." name="/"
resourcePath="">
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain.90548603"
name="TI Build Tools"
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain"
targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.127833680">
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1141243279"
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="XDC_VERSION=3.32.0.06_core"/>
<listOptionValue builtIn="false" value="INACTIVE_REPOS="/>
<listOptionValue builtIn="false" value="EXPANDED_REPOS="/>
<listOptionValue builtIn="false"
value="RTSC_PRODUCTS=com.ti.rtsc.TIRTOSCC13XX_CC26XX:2.21.01.08;"/>
<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE=cc26x0f128.cmd"/>
<listOptionValue builtIn="false" value="OUTPUT_TYPE=rtscApplication:executable"/>
<listOptionValue builtIn="false" value="CCS_MBS_VERSION=5.5.0"/>
<listOptionValue builtIn="false"
value="LINK_ORDER=TOOLS/ccs_linker_defines.cmd;TOOLS/cc26xx_app.cmd;"/>
<listOptionValue builtIn="false" value="RTSC_MBS_VERSION=2.2.0"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.53192790"
superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION"
value="18.1.3.LTS" valueType="string"/>
<targetPlatform
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug.981271364"
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.1515577923"
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.1226180244"
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.764538773"
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.191529096"
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.1644537417"
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.1478792296"
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.272762008"
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.187204647"
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.326502048"
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.INCLUDE_PATH"
valueType="includePath">
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
<listOptionValue builtIn="false"
value="C:\ti\simplelink\ble_sdk_2_02_02_25\src\examples\simple_central\cc26xx\app"/>
<listOptionValue builtIn="false"
value="${SRC_EX}/examples/simple_central/cc26xx/app"/>
<listOptionValue builtIn="false" value="${SRC_EX}/inc"/>
<listOptionValue builtIn="false" value="${SRC_EX}/icall/inc"/>
<listOptionValue builtIn="false" value="${SRC_EX}/profiles/roles/cc26xx"/>
<listOptionValue builtIn="false" value="${SRC_EX}/profiles/roles"/>
<listOptionValue builtIn="false" value="${SRC_EX}/profiles/simple_profile"/>
<listOptionValue builtIn="false" value="${SRC_EX}/common/cc26xx"/>
<listOptionValue builtIn="false" value="${SRC_COMMON}/heapmgr"/>
<listOptionValue builtIn="false" value="${SRC_BLE_CORE}/controller/cc26xx/inc"/>
<listOptionValue builtIn="false" value="${SRC_COMMON}/hal/src/target/_common"/>
<listOptionValue builtIn="false" value="${SRC_EX}/target"/>
<listOptionValue builtIn="false"
value="${SRC_COMMON}/hal/src/target/_common/cc26xx"/>
<listOptionValue builtIn="false" value="${SRC_COMMON}/hal/src/inc"/>
<listOptionValue builtIn="false" value="${SRC_COMMON}/osal/src/inc"/>
<listOptionValue builtIn="false" value="${SRC_COMMON}/services/src/sdata"/>
<listOptionValue builtIn="false" value="${SRC_COMMON}/services/src/saddr"/>
<listOptionValue builtIn="false" value="${SRC_COMMON}/icall/src/inc"/>
<listOptionValue builtIn="false" value="${SRC_BLE_CORE}/inc"/>
<listOptionValue builtIn="false" value="${SRC_BLE_CORE}/rom"/>
<listOptionValue builtIn="false" value="${CC26XXWARE}"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE.132516632"
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE"
valueType="definedSymbols">
<listOptionValue builtIn="false" value="BOARD_DISPLAY_EXCLUDE_UART"/>
<listOptionValue builtIn="false" value="BOOSTXL_CC2650MA"/>
<listOptionValue builtIn="false" value="CC26XX"/>
<listOptionValue builtIn="false" value="GAPCENTRALROLE_NUM_RSSI_LINKS=1"/>
<listOptionValue builtIn="false" value="HEAPMGR_SIZE=0"/>
<listOptionValue builtIn="false" value="ICALL_MAX_NUM_ENTITIES=6"/>
<listOptionValue builtIn="false" value="ICALL_MAX_NUM_TASKS=3"/>
<listOptionValue builtIn="false" value="POWER_SAVING"/>
<listOptionValue builtIn="false" value="USE_ICALL"/>
<listOptionValue builtIn="false" value="xBOARD_DISPLAY_EXCLUDE_LCD"/>
<listOptionValue builtIn="false" value="xDisplay_DISABLE_ALL"/>
<listOptionValue builtIn="false" value="xdc_runtime_Assert_DISABLE_ALL"/>
<listOptionValue builtIn="false" value="xdc_runtime_Log_DISABLE_ALL"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.271105421"
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.1676506410"
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS"
valueType="stringList">
<listOptionValue builtIn="false" value="48"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING.1852409718"
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.485779053"
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.604693448"
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DISPLAY_ERROR_NUMBER"
value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS.537107817"
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS"
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS.on"
valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CMD_FILE.57801683"
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CMD_FILE"
valueType="stringList">
<listOptionValue builtIn="false" value="${SRC_EX}/config/build_components.opt"/>
<listOptionValue builtIn="false" value="${ORG_PROJ_DIR}/build_config.opt"/>
<listOptionValue builtIn="false"
value="${ORG_PROJ_DIR}/../../ccs/config/ccs_compiler_defines.bcfg"/>
</option>
<inputType
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__C_SRCS.96232959"
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.612394026"
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.1356779933"
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.1894933490"
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.127833680"
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.1295340161"
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.949391723"
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.2131620137"
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE"
value="&quot;${ProjName}.map&quot;" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE.1878180876"
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.1202279242"
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.LIBRARY"
valueType="libs">
<listOptionValue builtIn="false" value="libc.a"/>
<listOptionValue builtIn="false"
value="${CC26XXWARE}/driverlib/bin/ccs/driverlib.lib"/>
<listOptionValue builtIn="false"
value="${ROM}/common_rom_releases/03282014/common_rom.symbols"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH.1943632760"
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.110954249"
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS"
valueType="stringList">
<listOptionValue builtIn="false" value="10247-D"/>
<listOptionValue builtIn="false" value="16002-D"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.760348156"
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.446304895"
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.747703366"
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO"
value="&quot;${ProjName}_linkInfo.xml&quot;" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.152167448"
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.897369442"
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.307907459"
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.426371568"
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.408588306"
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.572634387" name="ARM Hex Utility"
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex">
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH.460795282"
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.1431277061"
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.483858360"
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT"
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT.INTEL"
valueType="enumerated"/>
</tool>
<tool id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.399027987" name="XDCtools"
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH.1328106516"
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH"
valueType="stringList">
<listOptionValue builtIn="false" value="${COM_TI_RTSC_TIRTOSCC13XX_CC26XX_REPOS}"/>
<listOptionValue builtIn="false" value="${TARGET_CONTENT_BASE}"/>
</option>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET.1914007615"
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET"
value="ti.targets.arm.elf.M3" valueType="string"/>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM.1632829067"
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM"
value="ti.platforms.simplelink:CC2650F128" valueType="string"/>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW.372566051"
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW"
value="ti.platforms.simplelink:CC2650F128" valueType="string"/>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE.1941001418"
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE"
value="release" valueType="string"/>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR.1112727226"
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR"
value="${CG_TOOL_ROOT}" valueType="string"/>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS.2009586915"
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS"
value="&quot;${COMPILER_FLAGS}&quot;" valueType="string"/>
</tool>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" errorParsers="org.eclipse.rtsc.xdctools.parsers.ErrorParser;com.ti.rtsc.XDCtools.parsers.ErrorParser;com.ti.ccstudio.errorparser.CoffErrorParser;com.ti.ccstudio.errorparser.LinkErrorParser;com.ti.ccstudio.errorparser.AsmErrorParser;org.eclipse.cdt.core.GmakeErrorParser" id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1291753115" name="FlashROM" parent="com.ti.ccstudio.buildDefinitions.TMS470.Default" postbuildStep="${CG_TOOL_HEX} -order MS --memwidth=8 --romwidth=8 --intel -o ${ProjName}.hex ${ProjName}.out" prebuildStep="">
<folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1291753115." name="/" resourcePath="">
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain.576520359" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.436431825">
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.633535552" 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="XDC_VERSION=3.32.2.25_core"/>
<listOptionValue builtIn="false" value="INACTIVE_REPOS="/>
<listOptionValue builtIn="false" value="EXPANDED_REPOS="/>
<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE=cc26x0f128.cmd"/>
<listOptionValue builtIn="false" value="OUTPUT_TYPE=rtscApplication:executable"/>
<listOptionValue builtIn="false" value="CCS_MBS_VERSION=5.5.0"/>
<listOptionValue builtIn="false" value="LINK_ORDER=TOOLS/ccs_linker_defines.cmd;TOOLS/cc26xx_app.cmd;"/>
<listOptionValue builtIn="false" value="RTSC_MBS_VERSION=2.2.0"/>
<listOptionValue builtIn="false" value="PRODUCTS=com.ti.rtsc.TIRTOSCC13XX_CC26XX:2.21.1.08;"/>
<listOptionValue builtIn="false" value="PRODUCT_MACRO_IMPORTS={}"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.1880967367" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="18.1.3.LTS" valueType="string"/>
<targetPlatform id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug.41559233" 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.1846214930" 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.1893671440" 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.1085621098" 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.1977755763" 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.1142049032" 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.22245829" 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.158868909" 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.1782412253" 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 IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.INCLUDE_PATH.1146753870" 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_central/cc26xx/app"/>
<listOptionValue builtIn="false" value="${SRC_EX}/inc"/>
<listOptionValue builtIn="false" value="${SRC_EX}/icall/inc"/>
<listOptionValue builtIn="false" value="${SRC_EX}/profiles/roles/cc26xx"/>
<listOptionValue builtIn="false" value="${SRC_EX}/profiles/roles"/>
<listOptionValue builtIn="false" value="${SRC_EX}/profiles/simple_profile"/>
<listOptionValue builtIn="false" value="${SRC_EX}/common/cc26xx"/>
<listOptionValue builtIn="false" value="${SRC_COMMON}/heapmgr"/>
<listOptionValue builtIn="false" value="${SRC_BLE_CORE}/controller/cc26xx/inc"/>
<listOptionValue builtIn="false" value="${SRC_COMMON}/hal/src/target/_common"/>
<listOptionValue builtIn="false" value="${SRC_EX}/target"/>
<listOptionValue builtIn="false" value="${SRC_COMMON}/hal/src/target/_common/cc26xx"/>
<listOptionValue builtIn="false" value="${SRC_COMMON}/hal/src/inc"/>
<listOptionValue builtIn="false" value="${SRC_COMMON}/osal/src/inc"/>
<listOptionValue builtIn="false" value="${SRC_COMMON}/services/src/sdata"/>
<listOptionValue builtIn="false" value="${SRC_COMMON}/services/src/saddr"/>
<listOptionValue builtIn="false" value="${SRC_COMMON}/icall/src/inc"/>
<listOptionValue builtIn="false" value="${SRC_BLE_CORE}/inc"/>
<listOptionValue builtIn="false" value="${SRC_BLE_CORE}/rom"/>
<listOptionValue builtIn="false" value="${CC26XXWARE}"/>
</option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE.667496043" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE" valueType="definedSymbols">
<listOptionValue builtIn="false" value="BOARD_DISPLAY_EXCLUDE_UART"/>
<listOptionValue builtIn="false" value="MODA_MEMORY_BOARD"/>
<listOptionValue builtIn="false" value="BOOSTXL_CC2650MA"/>
<listOptionValue builtIn="false" value="CC26XX"/>
<listOptionValue builtIn="false" value="GAPCENTRALROLE_NUM_RSSI_LINKS=1"/>
<listOptionValue builtIn="false" value="HEAPMGR_SIZE=0"/>
<listOptionValue builtIn="false" value="ICALL_MAX_NUM_ENTITIES=6"/>
<listOptionValue builtIn="false" value="ICALL_MAX_NUM_TASKS=3"/>
<listOptionValue builtIn="false" value="POWER_SAVING"/>
<listOptionValue builtIn="false" value="USE_ICALL"/>
<listOptionValue builtIn="false" value="xBOARD_DISPLAY_EXCLUDE_LCD"/>
<listOptionValue builtIn="false" value="xDisplay_DISABLE_ALL"/>
<listOptionValue builtIn="false" value="xdc_runtime_Assert_DISABLE_ALL"/>
<listOptionValue builtIn="false" value="xdc_runtime_Log_DISABLE_ALL"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.736801588" 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 IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS.1123228537" name="Suppress diagnostic &lt;id&gt; (--diag_suppress, -pds)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS" valueType="stringList">
<listOptionValue builtIn="false" value="48"/>
</option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING.1665010090" name="Treat diagnostic &lt;id&gt; 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.203653389" 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.630994301" name="Emit diagnostic identifier numbers (--display_error_number, -pden)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS.1257520161" name="Place each function in a separate subsection (--gen_func_subsections, -ms)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS.on" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CMD_FILE.1421890218" name="Read options from specified file (--cmd_file, -@)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CMD_FILE" valueType="stringList">
<listOptionValue builtIn="false" value="${SRC_EX}/config/build_components.opt"/>
<listOptionValue builtIn="false" value="${ORG_PROJ_DIR}/build_config.opt"/>
<listOptionValue builtIn="false" value="${ORG_PROJ_DIR}/../../ccs/config/ccs_compiler_defines.bcfg"/>
</option>
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__C_SRCS.542699534" 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.1449395063" 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.646916746" 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.171398647" 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.436431825" 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.699911295" 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.2112847717" 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.1409849586" name="Link information (map) listed into &lt;file&gt; (--map_file, -m)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE" value="&quot;${ProjName}.map&quot;" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE.2140048531" 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 IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.LIBRARY.367490210" name="Include library file or command file as input (--library, -l)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.LIBRARY" valueType="libs">
<listOptionValue builtIn="false" value="libc.a"/>
<listOptionValue builtIn="false" value="${CC26XXWARE}/driverlib/bin/ccs/driverlib.lib"/>
<listOptionValue builtIn="false" value="${ROM}/common_rom_releases/03282014/common_rom.symbols"/>
</option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH.1780759134" name="Add &lt;dir&gt; 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 IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS.1979731574" name="Suppress diagnostic &lt;id&gt; (--diag_suppress)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS" valueType="stringList">
<listOptionValue builtIn="false" value="10247-D"/>
<listOptionValue builtIn="false" value="16002-D"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.354734275" 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.247118236" 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.240019697" name="Detailed link information data-base into &lt;file&gt; (--xml_link_info, -xml_link_info)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO" value="&quot;${ProjName}_linkInfo.xml&quot;" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.2041629903" 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.2063612992" 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.880448580" 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.411314174" 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.487223306" 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.1252521545" name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex">
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH.1844703656" 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.659519706" 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.1118587417" name="Output format" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT.INTEL" valueType="enumerated"/>
</tool>
<tool id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.290281007" name="XDCtools" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH.1450848120" name="XDCpath package repositories (--xdcpath)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH" valueType="stringList">
<listOptionValue builtIn="false" value="${COM_TI_RTSC_TIRTOSCC13XX_CC26XX_REPOS}"/>
<listOptionValue builtIn="false" value="${TARGET_CONTENT_BASE}"/>
<listOptionValue builtIn="false" value="C:\ti\ccs\ccs_base"/>
</option>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET.653491273" name="Target (-t)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET" value="ti.targets.arm.elf.M3" valueType="string"/>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM.870080666" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM" value="ti.platforms.simplelink:CC2650F128" valueType="string"/>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW.1631957435" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW" value="ti.platforms.simplelink:CC2650F128" valueType="string"/>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE.295250289" name="Build-profile (-r)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE" value="release" valueType="string"/>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR.1337126905" name="Compiler tools directory (-c)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR" value="${CG_TOOL_ROOT}" valueType="string"/>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS.434618420" name="Additional compiler options (--compileOptions)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS" value="&quot;${COMPILER_FLAGS}&quot;" valueType="string"/>
</tool>
</toolChain>
</folderInfo>
<sourceEntries>
@@ -304,24 +159,18 @@
</cconfiguration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="SimpleBLECentral.com.ti.ccstudio.buildDefinitions.TMS470.ProjectType.293217533" name="ARM"
projectType="com.ti.ccstudio.buildDefinitions.TMS470.ProjectType"/>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="SimpleBLECentral.com.ti.ccstudio.buildDefinitions.TMS470.ProjectType.293217533" name="ARM" projectType="com.ti.ccstudio.buildDefinitions.TMS470.ProjectType"/>
</storageModule>
<storageModule moduleId="scannerConfiguration"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping">
<project-mappings>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.asmSource"
language="com.ti.ccstudio.core.TIASMLanguage"/>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cHeader"
language="com.ti.ccstudio.core.TIGCCLanguage"/>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cSource"
language="com.ti.ccstudio.core.TIGCCLanguage"/>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxHeader"
language="com.ti.ccstudio.core.TIGPPLanguage"/>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxSource"
language="com.ti.ccstudio.core.TIGPPLanguage"/>
</project-mappings>
<project-mappings>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.asmSource" language="com.ti.ccstudio.core.TIASMLanguage"/>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cHeader" language="com.ti.ccstudio.core.TIGCCLanguage"/>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cSource" language="com.ti.ccstudio.core.TIGCCLanguage"/>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxHeader" language="com.ti.ccstudio.core.TIGPPLanguage"/>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxSource" language="com.ti.ccstudio.core.TIGPPLanguage"/>
</project-mappings>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
</cproject>
@@ -1,419 +1,419 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml version='1.0' encoding='UTF-8'?>
<projectDescription>
<name>simple_central_cc2650em_app</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
<triggers>full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.rtsc.xdctools.buildDefinitions.XDC.xdcNature</nature>
<nature>com.ti.ccstudio.core.ccsNature</nature>
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.eclipse.cdt.core.ccnature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
</natures>
<linkedResources>
<link>
<name>Application</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Drivers</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>ICall</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>ICallBLE</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Include</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>PROFILES</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Startup</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>TOOLS</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Application/board_key.c</name>
<type>1</type>
<locationURI>SRC_EX/common/cc26xx/board_key.c</locationURI>
</link>
<link>
<name>Application/board_key.h</name>
<type>1</type>
<locationURI>SRC_EX/common/cc26xx/board_key.h</locationURI>
</link>
<link>
<name>Application/simple_central.c</name>
<type>1</type>
<locationURI>SRC_EX/examples/simple_central/cc26xx/app/simple_central.c</locationURI>
</link>
<link>
<name>Application/simple_central.h</name>
<type>1</type>
<locationURI>SRC_EX/examples/simple_central/cc26xx/app/simple_central.h</locationURI>
</link>
<link>
<name>Application/util.c</name>
<type>1</type>
<locationURI>SRC_EX/common/cc26xx/util.c</locationURI>
</link>
<link>
<name>Application/util.h</name>
<type>1</type>
<locationURI>SRC_EX/common/cc26xx/util.h</locationURI>
</link>
<link>
<name>Drivers/Display</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Drivers/ECC</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Drivers/PIN</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Drivers/RF</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Drivers/SPI</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Drivers/TRNG</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Drivers/UART</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Drivers/UDMA</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>ICall/heapmgr.h</name>
<type>1</type>
<locationURI>SRC_COMMON/heapmgr/heapmgr.h</locationURI>
</link>
<link>
<name>ICall/icall.c</name>
<type>1</type>
<locationURI>SRC_COMMON/icall/src/icall.c</locationURI>
</link>
<link>
<name>ICall/icall.h</name>
<type>1</type>
<locationURI>SRC_COMMON/icall/src/inc/icall.h</locationURI>
</link>
<link>
<name>ICall/icall_addrs.h</name>
<type>1</type>
<locationURI>SRC_EX/icall/inc/icall_addrs.h</locationURI>
</link>
<link>
<name>ICall/icall_cc2650.c</name>
<type>1</type>
<locationURI>SRC_COMMON/icall/src/icall_cc2650.c</locationURI>
</link>
<link>
<name>ICall/icall_platform.h</name>
<type>1</type>
<locationURI>SRC_COMMON/icall/src/icall_platform.h</locationURI>
</link>
<link>
<name>ICallBLE/ble_user_config.c</name>
<type>1</type>
<locationURI>SRC_EX/icall/app/ble_user_config.c</locationURI>
</link>
<link>
<name>ICallBLE/ble_user_config.h</name>
<type>1</type>
<locationURI>SRC_EX/icall/inc/ble_user_config.h</locationURI>
</link>
<link>
<name>ICallBLE/icall_api.c</name>
<type>1</type>
<locationURI>SRC_EX/icall/app/icall_api.c</locationURI>
</link>
<link>
<name>ICallBLE/icall_apimsg.h</name>
<type>1</type>
<locationURI>SRC_EX/icall/inc/icall_apimsg.h</locationURI>
</link>
<link>
<name>Include/gap.h</name>
<type>1</type>
<locationURI>SRC_BLE_CORE/inc/gap.h</locationURI>
</link>
<link>
<name>Include/gapbondmgr.h</name>
<type>1</type>
<locationURI>SRC_EX/profiles/roles/gapbondmgr.h</locationURI>
</link>
<link>
<name>Include/gapgattserver.h</name>
<type>1</type>
<locationURI>SRC_EX/inc/gapgattserver.h</locationURI>
</link>
<link>
<name>Include/gatt.h</name>
<type>1</type>
<locationURI>SRC_BLE_CORE/inc/gatt.h</locationURI>
</link>
<link>
<name>Include/hci.h</name>
<type>1</type>
<locationURI>SRC_BLE_CORE/inc/hci.h</locationURI>
</link>
<link>
<name>Include/osal_snv.h</name>
<type>1</type>
<locationURI>SRC_COMMON/osal/src/inc/osal_snv.h</locationURI>
</link>
<link>
<name>PROFILES/central.c</name>
<type>1</type>
<locationURI>SRC_EX/profiles/roles/cc26xx/central.c</locationURI>
</link>
<link>
<name>PROFILES/central.h</name>
<type>1</type>
<locationURI>SRC_EX/profiles/roles/cc26xx/central.h</locationURI>
</link>
<link>
<name>Startup/board.c</name>
<type>1</type>
<locationURI>SRC_EX/target/board.c</locationURI>
</link>
<link>
<name>Startup/ccfg_app_ble.c</name>
<type>1</type>
<locationURI>PARENT-1-ORG_PROJ_DIR/config/ccfg_app_ble.c</locationURI>
</link>
<link>
<name>Startup/main.c</name>
<type>1</type>
<locationURI>SRC_EX/examples/simple_central/cc26xx/app/main.c</locationURI>
</link>
<link>
<name>TOOLS/app_ble.cfg</name>
<type>1</type>
<locationURI>PARENT-2-ORG_PROJ_DIR/ccs/config/app_ble.cfg</locationURI>
</link>
<link>
<name>TOOLS/cc26xx_app.cmd</name>
<type>1</type>
<locationURI>SRC_EX/common/cc26xx/ccs/cc26xx_app.cmd</locationURI>
</link>
<link>
<name>TOOLS/ccs_compiler_defines.bcfg</name>
<type>1</type>
<locationURI>PARENT-2-ORG_PROJ_DIR/ccs/config/ccs_compiler_defines.bcfg</locationURI>
</link>
<link>
<name>TOOLS/ccs_linker_defines.cmd</name>
<type>1</type>
<locationURI>PARENT-2-ORG_PROJ_DIR/ccs/config/ccs_linker_defines.cmd</locationURI>
</link>
<link>
<name>Drivers/Display/Display.h</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/mw/display/Display.h</locationURI>
</link>
<link>
<name>Drivers/Display/DisplayDogm1286.c</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/mw/display/DisplayDogm1286.c</locationURI>
</link>
<link>
<name>Drivers/Display/DisplayDogm1286.h</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/mw/display/DisplayDogm1286.h</locationURI>
</link>
<link>
<name>Drivers/Display/DisplayUART.c</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/mw/display/DisplayUART.c</locationURI>
</link>
<link>
<name>Drivers/Display/DisplayUART.h</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/mw/display/DisplayUART.h</locationURI>
</link>
<link>
<name>Drivers/ECC/ECCROMCC26XX.c</name>
<type>1</type>
<locationURI>SRC_EX/common/cc26xx/ecc/ECCROMCC26XX.c</locationURI>
</link>
<link>
<name>Drivers/ECC/ECCROMCC26XX.h</name>
<type>1</type>
<locationURI>SRC_EX/common/cc26xx/ecc/ECCROMCC26XX.h</locationURI>
</link>
<link>
<name>Drivers/PIN/PIN.h</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/PIN.h</locationURI>
</link>
<link>
<name>Drivers/PIN/PINCC26XX.c</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/pin/PINCC26XX.c</locationURI>
</link>
<link>
<name>Drivers/PIN/PINCC26XX.h</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/pin/PINCC26XX.h</locationURI>
</link>
<link>
<name>Drivers/RF/RF.h</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/rf/RF.h</locationURI>
</link>
<link>
<name>Drivers/RF/RFCC26XX_singleMode.c</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/rf/RFCC26XX_singleMode.c</locationURI>
</link>
<link>
<name>Drivers/SPI/SPI.c</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/SPI.c</locationURI>
</link>
<link>
<name>Drivers/SPI/SPI.h</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/SPI.h</locationURI>
</link>
<link>
<name>Drivers/SPI/SPICC26XXDMA.c</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/spi/SPICC26XXDMA.c</locationURI>
</link>
<link>
<name>Drivers/SPI/SPICC26XXDMA.h</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/spi/SPICC26XXDMA.h</locationURI>
</link>
<link>
<name>Drivers/TRNG/TRNGCC26XX.c</name>
<type>1</type>
<locationURI>SRC_COMMON/hal/src/target/_common/TRNGCC26XX.c</locationURI>
</link>
<link>
<name>Drivers/TRNG/TRNGCC26XX.h</name>
<type>1</type>
<locationURI>SRC_COMMON/hal/src/target/_common/TRNGCC26XX.h</locationURI>
</link>
<link>
<name>Drivers/UART/UART.c</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/UART.c</locationURI>
</link>
<link>
<name>Drivers/UART/UART.h</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/UART.h</locationURI>
</link>
<link>
<name>Drivers/UART/UARTCC26XX.c</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/uart/UARTCC26XX.c</locationURI>
</link>
<link>
<name>Drivers/UART/UARTCC26XX.h</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/uart/UARTCC26XX.h</locationURI>
</link>
<link>
<name>Drivers/UDMA/UDMACC26XX.c</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/dma/UDMACC26XX.c</locationURI>
</link>
<link>
<name>Drivers/UDMA/UDMACC26XX.h</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/dma/UDMACC26XX.h</locationURI>
</link>
</linkedResources>
<variableList>
<variable>
<name>CC26XXWARE</name>
<value>file:/C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/cc26xxware_2_24_03_17272</value>
</variable>
<variable>
<name>ORG_PROJ_DIR</name>
<value>$%7BPARENT-2-PROJECT_LOC%7D/iar/stack</value>
</variable>
<variable>
<name>ROM</name>
<value>$%7BPARENT-5-ORG_PROJ_DIR%7D/src/rom</value>
</variable>
<variable>
<name>SRC_BLE_CORE</name>
<value>$%7BPARENT-5-ORG_PROJ_DIR%7D/src</value>
</variable>
<variable>
<name>SRC_COMMON</name>
<value>$%7BPARENT-5-ORG_PROJ_DIR%7D/src/components</value>
</variable>
<variable>
<name>SRC_EX</name>
<value>$%7BPARENT-5-ORG_PROJ_DIR%7D/src</value>
</variable>
<variable>
<name>TI_RTOS_DRIVERS_BASE</name>
<value>file:/C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/tidrivers_cc13xx_cc26xx_2_21_01_01/packages</value>
</variable>
<variable>
<name>TOOLS_BLE</name>
<value>$%7BPARENT-5-ORG_PROJ_DIR%7D/tools</value>
</variable>
</variableList>
<name>simple_central_cc2650em_app</name>
<comment/>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
<triggers>full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.rtsc.xdctools.buildDefinitions.XDC.xdcNature</nature>
<nature>com.ti.ccstudio.core.ccsNature</nature>
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.eclipse.cdt.core.ccnature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
</natures>
<linkedResources>
<link>
<name>Application</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Drivers</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Drivers/ECC</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Drivers/ECC/ECCROMCC26XX.c</name>
<type>1</type>
<locationURI>SRC_EX/common/cc26xx/ecc/ECCROMCC26XX.c</locationURI>
</link>
<link>
<name>Drivers/ECC/ECCROMCC26XX.h</name>
<type>1</type>
<locationURI>SRC_EX/common/cc26xx/ecc/ECCROMCC26XX.h</locationURI>
</link>
<link>
<name>ICall</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>ICallBLE</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Include</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>PROFILES</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Startup</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>TOOLS</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Application/board_key.c</name>
<type>1</type>
<locationURI>SRC_EX/common/cc26xx/board_key.c</locationURI>
</link>
<link>
<name>Application/board_key.h</name>
<type>1</type>
<locationURI>SRC_EX/common/cc26xx/board_key.h</locationURI>
</link>
<link>
<name>Application/simple_central.c</name>
<type>1</type>
<locationURI>SRC_EX/examples/simple_central/cc26xx/app/simple_central.c</locationURI>
</link>
<link>
<name>Application/simple_central.h</name>
<type>1</type>
<locationURI>SRC_EX/examples/simple_central/cc26xx/app/simple_central.h</locationURI>
</link>
<link>
<name>Application/util.c</name>
<type>1</type>
<locationURI>SRC_EX/common/cc26xx/util.c</locationURI>
</link>
<link>
<name>Application/util.h</name>
<type>1</type>
<locationURI>SRC_EX/common/cc26xx/util.h</locationURI>
</link>
<link>
<name>Drivers/Display</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Drivers/PIN</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Drivers/RF</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Drivers/SPI</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Drivers/TRNG</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Drivers/UART</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>Drivers/UDMA</name>
<type>2</type>
<locationURI>virtual:/virtual</locationURI>
</link>
<link>
<name>ICall/heapmgr.h</name>
<type>1</type>
<locationURI>SRC_COMMON/heapmgr/heapmgr.h</locationURI>
</link>
<link>
<name>ICall/icall.c</name>
<type>1</type>
<locationURI>SRC_COMMON/icall/src/icall.c</locationURI>
</link>
<link>
<name>ICall/icall.h</name>
<type>1</type>
<locationURI>SRC_COMMON/icall/src/inc/icall.h</locationURI>
</link>
<link>
<name>ICall/icall_addrs.h</name>
<type>1</type>
<locationURI>SRC_EX/icall/inc/icall_addrs.h</locationURI>
</link>
<link>
<name>ICall/icall_cc2650.c</name>
<type>1</type>
<locationURI>SRC_COMMON/icall/src/icall_cc2650.c</locationURI>
</link>
<link>
<name>ICall/icall_platform.h</name>
<type>1</type>
<locationURI>SRC_COMMON/icall/src/icall_platform.h</locationURI>
</link>
<link>
<name>ICallBLE/ble_user_config.c</name>
<type>1</type>
<locationURI>SRC_EX/icall/app/ble_user_config.c</locationURI>
</link>
<link>
<name>ICallBLE/ble_user_config.h</name>
<type>1</type>
<locationURI>SRC_EX/icall/inc/ble_user_config.h</locationURI>
</link>
<link>
<name>ICallBLE/icall_api.c</name>
<type>1</type>
<locationURI>SRC_EX/icall/app/icall_api.c</locationURI>
</link>
<link>
<name>ICallBLE/icall_apimsg.h</name>
<type>1</type>
<locationURI>SRC_EX/icall/inc/icall_apimsg.h</locationURI>
</link>
<link>
<name>Include/gap.h</name>
<type>1</type>
<locationURI>SRC_BLE_CORE/inc/gap.h</locationURI>
</link>
<link>
<name>Include/gapbondmgr.h</name>
<type>1</type>
<locationURI>SRC_EX/profiles/roles/gapbondmgr.h</locationURI>
</link>
<link>
<name>Include/gapgattserver.h</name>
<type>1</type>
<locationURI>SRC_EX/inc/gapgattserver.h</locationURI>
</link>
<link>
<name>Include/gatt.h</name>
<type>1</type>
<locationURI>SRC_BLE_CORE/inc/gatt.h</locationURI>
</link>
<link>
<name>Include/hci.h</name>
<type>1</type>
<locationURI>SRC_BLE_CORE/inc/hci.h</locationURI>
</link>
<link>
<name>Include/osal_snv.h</name>
<type>1</type>
<locationURI>SRC_COMMON/osal/src/inc/osal_snv.h</locationURI>
</link>
<link>
<name>PROFILES/central.c</name>
<type>1</type>
<locationURI>SRC_EX/profiles/roles/cc26xx/central.c</locationURI>
</link>
<link>
<name>PROFILES/central.h</name>
<type>1</type>
<locationURI>SRC_EX/profiles/roles/cc26xx/central.h</locationURI>
</link>
<link>
<name>Startup/board.c</name>
<type>1</type>
<locationURI>SRC_EX/target/board.c</locationURI>
</link>
<link>
<name>Startup/ccfg_app_ble.c</name>
<type>1</type>
<locationURI>PARENT-1-ORG_PROJ_DIR/config/ccfg_app_ble.c</locationURI>
</link>
<link>
<name>Startup/main.c</name>
<type>1</type>
<locationURI>SRC_EX/examples/simple_central/cc26xx/app/main.c</locationURI>
</link>
<link>
<name>TOOLS/app_ble.cfg</name>
<type>1</type>
<locationURI>PARENT-2-ORG_PROJ_DIR/ccs/config/app_ble.cfg</locationURI>
</link>
<link>
<name>TOOLS/cc26xx_app.cmd</name>
<type>1</type>
<locationURI>SRC_EX/common/cc26xx/ccs/cc26xx_app.cmd</locationURI>
</link>
<link>
<name>TOOLS/ccs_compiler_defines.bcfg</name>
<type>1</type>
<locationURI>PARENT-2-ORG_PROJ_DIR/ccs/config/ccs_compiler_defines.bcfg</locationURI>
</link>
<link>
<name>TOOLS/ccs_linker_defines.cmd</name>
<type>1</type>
<locationURI>PARENT-2-ORG_PROJ_DIR/ccs/config/ccs_linker_defines.cmd</locationURI>
</link>
<link>
<name>Drivers/Display/Display.h</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/mw/display/Display.h</locationURI>
</link>
<link>
<name>Drivers/Display/DisplayDogm1286.c</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/mw/display/DisplayDogm1286.c</locationURI>
</link>
<link>
<name>Drivers/Display/DisplayDogm1286.h</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/mw/display/DisplayDogm1286.h</locationURI>
</link>
<link>
<name>Drivers/Display/DisplayUART.c</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/mw/display/DisplayUART.c</locationURI>
</link>
<link>
<name>Drivers/Display/DisplayUART.h</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/mw/display/DisplayUART.h</locationURI>
</link>
<link>
<name>Drivers/PIN/PIN.h</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/PIN.h</locationURI>
</link>
<link>
<name>Drivers/PIN/PINCC26XX.c</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/pin/PINCC26XX.c</locationURI>
</link>
<link>
<name>Drivers/PIN/PINCC26XX.h</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/pin/PINCC26XX.h</locationURI>
</link>
<link>
<name>Drivers/RF/RFCC26XX_singleMode.c</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/rf/RFCC26XX_singleMode.c</locationURI>
</link>
<link>
<name>Drivers/RF/RF.h</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/rf/RF.h</locationURI>
</link>
<link>
<name>Drivers/SPI/SPI.c</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/SPI.c</locationURI>
</link>
<link>
<name>Drivers/SPI/SPI.h</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/SPI.h</locationURI>
</link>
<link>
<name>Drivers/SPI/SPICC26XXDMA.c</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/spi/SPICC26XXDMA.c</locationURI>
</link>
<link>
<name>Drivers/SPI/SPICC26XXDMA.h</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/spi/SPICC26XXDMA.h</locationURI>
</link>
<link>
<name>Drivers/TRNG/TRNGCC26XX.c</name>
<type>1</type>
<locationURI>SRC_COMMON/hal/src/target/_common/TRNGCC26XX.c</locationURI>
</link>
<link>
<name>Drivers/TRNG/TRNGCC26XX.h</name>
<type>1</type>
<locationURI>SRC_COMMON/hal/src/target/_common/TRNGCC26XX.h</locationURI>
</link>
<link>
<name>Drivers/UART/UART.c</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/UART.c</locationURI>
</link>
<link>
<name>Drivers/UART/UART.h</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/UART.h</locationURI>
</link>
<link>
<name>Drivers/UART/UARTCC26XX.c</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/uart/UARTCC26XX.c</locationURI>
</link>
<link>
<name>Drivers/UART/UARTCC26XX.h</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/uart/UARTCC26XX.h</locationURI>
</link>
<link>
<name>Drivers/UDMA/UDMACC26XX.c</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/dma/UDMACC26XX.c</locationURI>
</link>
<link>
<name>Drivers/UDMA/UDMACC26XX.h</name>
<type>1</type>
<locationURI>TI_RTOS_DRIVERS_BASE/ti/drivers/dma/UDMACC26XX.h</locationURI>
</link>
</linkedResources>
<variableList>
<variable>
<name>CC26XXWARE</name>
<value>file:/C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/cc26xxware_2_24_03_17272</value>
</variable>
<variable>
<name>ORG_PROJ_DIR</name>
<value>${PARENT-2-PROJECT_LOC}/iar/stack</value>
</variable>
<variable>
<name>ROM</name>
<value>${PARENT-5-ORG_PROJ_DIR}/src/rom</value>
</variable>
<variable>
<name>SRC_BLE_CORE</name>
<value>${PARENT-5-ORG_PROJ_DIR}/src</value>
</variable>
<variable>
<name>SRC_COMMON</name>
<value>${PARENT-5-ORG_PROJ_DIR}/src/components</value>
</variable>
<variable>
<name>SRC_EX</name>
<value>${PARENT-5-ORG_PROJ_DIR}/src</value>
</variable>
<variable>
<name>TI_RTOS_DRIVERS_BASE</name>
<value>file:/C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/tidrivers_cc13xx_cc26xx_2_21_01_01/packages</value>
</variable>
<variable>
<name>TOOLS_BLE</name>
<value>${PARENT-5-ORG_PROJ_DIR}/tools</value>
</variable>
</variableList>
</projectDescription>
@@ -1,10 +1,10 @@
/*
** Stack Frontier Generator 1.1.0 (2020-03-24 12:13:18.236000)
** Stack Frontier Generator 1.1.0 (2020-07-21 15:03:52.801000)
**
** WARNING - Auto-generated file. Modifications could be lost!
*/
--define=ICALL_STACK0_ADDR=0xd001
--define=ICALL_STACK0_START=0xd000
--define=ICALL_RAM0_START=0x20004318
--define=ICALL_STACK0_ADDR=0xb001
--define=ICALL_STACK0_START=0xb000
--define=ICALL_RAM0_START=0x200041b0
@@ -1,10 +1,10 @@
/*
** Stack Frontier Generator 1.1.0 (2020-03-24 12:13:18.236000)
** Stack Frontier Generator 1.1.0 (2020-07-21 15:03:52.801000)
**
** WARNING - Auto-generated file. Modifications could be lost!
*/
--define=ICALL_RAM0_START=0x20004318
--define=ICALL_STACK0_START=0xd000
--define=ICALL_STACK0_ADDR=0xd001
--define=ICALL_RAM0_START=0x200041b0
--define=ICALL_STACK0_START=0xb000
--define=ICALL_STACK0_ADDR=0xb001
@@ -2,237 +2,162 @@
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
<storageModule configRelations="2" moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1709271573">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider"
id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1709271573"
moduleId="org.eclipse.cdt.core.settings" name="FlashROM">
<externalSettings/>
<extensions>
<extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="com.ti.ccstudio.errorparser.CoffErrorParser"
point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.ti.ccstudio.errorparser.LinkErrorParser"
point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.ti.ccstudio.errorparser.AsmErrorParser"
point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties=""
cleanCommand="${CG_CLEAN_CMD}" description=""
id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1709271573" name="FlashROM"
parent="com.ti.ccstudio.buildDefinitions.TMS470.Default"
postbuildStep="${CG_TOOL_HEX} -order MS --memwidth=8 --romwidth=8 --intel -o ${ProjName}.hex ${ProjName}.out;${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 "
prebuildStep="&quot;${TOOLS_BLE}/lib_search/lib_search.exe&quot; ${ORG_PROJ_DIR}/build_config.opt &quot;${TOOLS_BLE}/lib_search/params_split_cc2640.xml&quot; ${SRC_BLE_CORE}/../blelib &quot;${ORG_PROJ_DIR}/../../ccs/config/lib_linker.cmd&quot;">
<folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1709271573." name="/"
resourcePath="">
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain.754492692"
name="TI Build Tools"
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain"
targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.316212377">
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.573832810"
superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=Cortex M.CC2650F128"/>
<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
<listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>
<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE=cc26x0f128.cmd"/>
<listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
<listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
<listOptionValue builtIn="false" value="CCS_MBS_VERSION=6.1.3"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.1787331942"
name="Compiler version"
superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION"
value="18.1.5.LTS" valueType="string"/>
<targetPlatform
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug.1180016593"
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.1430324320"
keepEnvironmentInBuildfile="false" name="GNU Make"
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.builderDebug"/>
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.compilerDebug.2024278362"
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.1986369828"
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.1564870595"
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.1103809475"
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.1234312230"
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.DEFINE.1871703403"
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="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="POWER_SAVING"/>
<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="xTESTMODES"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.INCLUDE_PATH.1636716969"
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/host_test/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/saddr"/>
<listOptionValue builtIn="false" value="${SRC_COMMON}/services/src/aes/cc26xx"/>
<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}/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}/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.DEBUGGING_MODEL.1333175277"
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL"
useByScannerDiscovery="false"
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF"
valueType="enumerated"/>
<inputType
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__C_SRCS.40113939"
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.1787641780"
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.167116165"
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.1476317030"
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.316212377"
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.1755927849"
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.1087660955"
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.LIBRARY.925475687"
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"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE.1133249457"
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.XML_LINK_INFO.294034050"
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO"
useByScannerDiscovery="false" value="${ProjName}_linkInfo.xml"
valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH.1025189323"
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>
<inputType
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD_SRCS.1298514881"
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.777996081"
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.1296917534"
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.1119881763"
name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex">
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH.1632580918"
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.1354800395"
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.1037204851"
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>
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1709271573" moduleId="org.eclipse.cdt.core.settings" name="FlashROM">
<externalSettings/>
<extensions>
<extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1709271573" name="FlashROM" parent="com.ti.ccstudio.buildDefinitions.TMS470.Default" postbuildStep="${CG_TOOL_HEX} -order MS --memwidth=8 --romwidth=8 --intel -o ${ProjName}.hex ${ProjName}.out;${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 " prebuildStep="&quot;${TOOLS_BLE}/lib_search/lib_search.exe&quot; ${ORG_PROJ_DIR}/build_config.opt &quot;${TOOLS_BLE}/lib_search/params_split_cc2640.xml&quot; ${SRC_BLE_CORE}/../blelib &quot;${ORG_PROJ_DIR}/../../ccs/config/lib_linker.cmd&quot;">
<folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1709271573." name="/" resourcePath="">
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain.2101141939" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.757474560">
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1022448493" 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=cc26x0f128.cmd"/>
<listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.233783149" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="18.1.3.LTS" valueType="string"/>
<targetPlatform id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug.1653649141" 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.114442794" 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.1131322232" 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.201345556" 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.990825332" 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.1216504615" 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.227661349" 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.209454752" 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.2082170542" 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.1921222011" 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_central/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/saddr"/>
<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}/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.1831159228" 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="CC26XXWARE"/>
<listOptionValue builtIn="false" value="DATA="/>
<listOptionValue builtIn="false" value="DEBUG"/>
<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="POWER_SAVING"/>
<listOptionValue builtIn="false" value="USE_ICALL"/>
<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.454935706" 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.1868501127" name="Suppress diagnostic &lt;id&gt; (--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.1168966240" name="Treat diagnostic &lt;id&gt; 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.56993573" 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.833077694" 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.736116872" 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.194233292" 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.553986459" 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.569622583" 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.1925570706" 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.757474560" 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.614978978" 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.1158778338" 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.1258018087" name="Link information (map) listed into &lt;file&gt; (--map_file, -m)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE" value="&quot;${ProjName}.map&quot;" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE.487635786" 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.1035770223" 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.1185128413" name="Add &lt;dir&gt; 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.721477531" name="Suppress diagnostic &lt;id&gt; (--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="10325-D"/>
<listOptionValue builtIn="false" value="10247-D"/>
<listOptionValue builtIn="false" value="10229-D"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.661483044" 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.570253762" 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.1972767293" name="Detailed link information data-base into &lt;file&gt; (--xml_link_info, -xml_link_info)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO" value="&quot;${ProjName}_linkInfo.xml&quot;" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.ENTRY_POINT.715464829" 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.2143403107" 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.1548347381" 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.1945298834" 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.1783686962" 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.259433801" 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.730679225" name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex">
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH.720182861" 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.1158692092" 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.1537971912" 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>
</folderInfo>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
</sourceEntries>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
</sourceEntries>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="SimpleBLECentralStack.com.ti.ccstudio.buildDefinitions.TMS470.ProjectType.1030168588" name="ARM"
projectType="com.ti.ccstudio.buildDefinitions.TMS470.ProjectType"/>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="SimpleBLECentralStack.com.ti.ccstudio.buildDefinitions.TMS470.ProjectType.1030168588" name="ARM" projectType="com.ti.ccstudio.buildDefinitions.TMS470.ProjectType"/>
</storageModule>
<storageModule moduleId="scannerConfiguration"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping">
<project-mappings>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.asmSource"
language="com.ti.ccstudio.core.TIASMLanguage"/>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cHeader"
language="com.ti.ccstudio.core.TIGCCLanguage"/>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cSource"
language="com.ti.ccstudio.core.TIGCCLanguage"/>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxHeader"
language="com.ti.ccstudio.core.TIGPPLanguage"/>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxSource"
language="com.ti.ccstudio.core.TIGPPLanguage"/>
</project-mappings>
<project-mappings>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.asmSource" language="com.ti.ccstudio.core.TIASMLanguage"/>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cHeader" language="com.ti.ccstudio.core.TIGCCLanguage"/>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cSource" language="com.ti.ccstudio.core.TIGCCLanguage"/>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxHeader" language="com.ti.ccstudio.core.TIGPPLanguage"/>
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxSource" language="com.ti.ccstudio.core.TIGPPLanguage"/>
</project-mappings>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
</cproject>
@@ -330,6 +330,11 @@
<type>1</type>
<locationURI>SRC_COMMON/hal/src/common/hal_assert.c</locationURI>
</link>
<link>
<name>HAL/Include/hal_UART.h</name>
<type>1</type>
<locationURI>SRC_COMMON/hal/src/inc/hal_UART.h</locationURI>
</link>
<link>
<name>HAL/Include/hal_adc.h</name>
<type>1</type>
@@ -375,11 +380,6 @@
<type>1</type>
<locationURI>SRC_COMMON/hal/src/inc/hal_timer.h</locationURI>
</link>
<link>
<name>HAL/Include/hal_UART.h</name>
<type>1</type>
<locationURI>SRC_COMMON/hal/src/inc/hal_UART.h</locationURI>
</link>
<link>
<name>HAL/Target/CC2650</name>
<type>2</type>
@@ -447,23 +447,23 @@
</variable>
<variable>
<name>ORG_PROJ_DIR</name>
<value>${PARENT-2-PROJECT_LOC}/iar/stack</value>
<value>$%7BPARENT-2-PROJECT_LOC%7D/iar/stack</value>
</variable>
<variable>
<name>ROM</name>
<value>${PARENT-5-ORG_PROJ_DIR}/src/rom</value>
<value>$%7BPARENT-5-ORG_PROJ_DIR%7D/src/rom</value>
</variable>
<variable>
<name>SRC_BLE_CORE</name>
<value>${PARENT-5-ORG_PROJ_DIR}/src</value>
<value>$%7BPARENT-5-ORG_PROJ_DIR%7D/src</value>
</variable>
<variable>
<name>SRC_COMMON</name>
<value>${PARENT-5-ORG_PROJ_DIR}/src/components</value>
<value>$%7BPARENT-5-ORG_PROJ_DIR%7D/src/components</value>
</variable>
<variable>
<name>SRC_EX</name>
<value>${PARENT-5-ORG_PROJ_DIR}/src</value>
<value>$%7BPARENT-5-ORG_PROJ_DIR%7D/src</value>
</variable>
<variable>
<name>TI_RTOS_DRIVERS_BASE</name>
@@ -471,7 +471,7 @@
</variable>
<variable>
<name>TOOLS_BLE</name>
<value>${PARENT-5-ORG_PROJ_DIR}/tools</value>
<value>$%7BPARENT-5-ORG_PROJ_DIR%7D/tools</value>
</variable>
</variableList>
</projectDescription>
@@ -9,7 +9,7 @@
******************************************************************************
Copyright (c) 2014-2018, Texas Instruments Incorporated
Copyright (c) 2014-2019, Texas Instruments Incorporated
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -40,8 +40,8 @@
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
Release Name: ble_sdk_2_02_02_08
Release Date: 2019-08-02 10:17:35
*****************************************************************************/
//
@@ -1,10 +1,10 @@
/*
** Stack Frontier Generator 1.1.0 (2018-04-02 17:57:28.984000)
** Stack Frontier Generator 1.1.0 (2019-08-02 10:08:59.168000)
**
** WARNING - Auto-generated file. Modifications could be lost!
*/
-D ICALL_STACK0_ADDR=0x0000da51
-D ICALL_STACK0_START=0x0000da50
-D ICALL_RAM0_START=0x20004318
-D ICALL_STACK0_ADDR=0x0000d991
-D ICALL_STACK0_START=0x0000d990
-D ICALL_RAM0_START=0x20004310
@@ -1,10 +1,10 @@
/*
** Stack Frontier Generator 1.1.0 (2018-04-02 17:57:28.984000)
** Stack Frontier Generator 1.1.0 (2019-08-02 10:08:59.168000)
**
** WARNING - Auto-generated file. Modifications could be lost!
*/
--config_def ICALL_RAM0_START=0x20004318
--config_def ICALL_STACK0_START=0x0000da50
--config_def ICALL_STACK0_ADDR=0x0000da51
--config_def ICALL_RAM0_START=0x20004310
--config_def ICALL_STACK0_START=0x0000d990
--config_def ICALL_STACK0_ADDR=0x0000d991
@@ -9,7 +9,7 @@
******************************************************************************
Copyright (c) 2011-2018, Texas Instruments Incorporated
Copyright (c) 2011-2019, Texas Instruments Incorporated
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -40,8 +40,8 @@
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
Release Name: ble_sdk_2_02_02_08
Release Date: 2019-08-02 10:17:35
*****************************************************************************/
/*
@@ -132,10 +132,10 @@
/* -DBLE_V42_FEATURES=SECURE_CONNS_CFG+PRIVACY_1_2_CFG+EXT_DATA_LEN_CFG */
/* -DBLE_V42_FEATURES=SECURE_CONNS_CFG+PRIVACY_1_2_CFG */
/* -DBLE_V42_FEATURES=PRIVACY_1_2_CFG+EXT_DATA_LEN_CFG */
/* -DBLE_V42_FEATURES=SECURE_CONNS_CFG+EXT_DATA_LEN_CFG */
-DBLE_V42_FEATURES=SECURE_CONNS_CFG+EXT_DATA_LEN_CFG
/* -DBLE_V42_FEATURES=SECURE_CONNS_CFG */
/* -DBLE_V42_FEATURES=PRIVACY_1_2_CFG */
/* -DBLE_V42_FEATURES=EXT_DATA_LEN_CFG */
/* -DBLE_V42_FEATURES=EXT_DATA_LEN_CFG */
/* Include Transport Layer (Full or PTM) */
-DHCI_TL_NONE
@@ -19,7 +19,7 @@
</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"/>
<property Type="stringfield" Value="L1000269" id="-- Enter the serial number"/>
</choice>
</property>
<platform XML_version="1.2" id="platform_0">
@@ -263,7 +263,7 @@ const SPICC26XXDMA_HWAttrsV1 spiCC26XXDMAHWAttrs[BOOSTXL_CC2650MA_SPICOUNT] = {
.mosiPin = Board_SPI0_MOSI,
.misoPin = Board_SPI0_MISO,
.clkPin = Board_SPI0_CLK,
.csnPin = Board_SPI0_CS
.csnPin = PIN_UNASSIGNED
//
},
#ifdef HEADSTAGE_MA_USE_SPI2
@@ -136,21 +136,18 @@ extern const PIN_Config BoardGpioInitTable[];
/* Mapping of application specific functionality of the BoosterPack to BoosterPack Pins (application dependent)
*/
/* On-board LEDs */
#define Board_GLED PIN_UNASSIGNED /* Green LED */
#define Board_RLED PIN_UNASSIGNED /* Red LED */
/* UART Board */
#define Board_UART_TX DIO1 /* RXD */
#define Board_UART_RX DIO0 /* TXD */
///*
// * interface with control box
// */
/*
* interface with control box
*/
#if defined(MODA_MEMORY_BOARD)
#define Board_SPI0_MISO DIO12
#define Board_SPI0_MOSI DIO11
#define Board_SPI0_CLK DIO10
#define Board_SPI0_CS DIO9
#define Board_SPI_CS DIO9
#define PIN_MEM_INS DIO4
#define PIN_MEM_SEL DIO8
@@ -158,6 +155,29 @@ extern const PIN_Config BoardGpioInitTable[];
#define PIN_MEM_REQ DIO14
#define PIN_MEM_TEST DIO7
/* On-board LEDs */
#define Board_GLED PIN_UNASSIGNED /* Green LED */
#define Board_RLED PIN_UNASSIGNED /* Red LED */
#elif defined(MODA_BOOSTER_PACK)
#define Board_SPI0_MISO DIO7
#define Board_SPI0_MOSI DIO8
#define Board_SPI0_CLK DIO9
#define Board_SPI_CS DIO10
#define PIN_MEM_INS DIO1
#define PIN_MEM_SEL DIO2
#define PIN_MEM_BZY DIO12
#define PIN_MEM_REQ DIO0
#define PIN_MEM_TEST DIO4
/* On-board LEDs */
#define Board_GLED DIO2 /* Green LED */
#define Board_RLED DIO4 /* Red LED */
#else
#error "please define BOOSTXL_CC2650MA on BoosterPack or MemoryBoard"
#endif
//#define PIN_MEM_INS PIN_UNASSIGNED
//#define PIN_MEM_BZY PIN_UNASSIGNED
//#define PIN_MEM_REQ PIN_UNASSIGNED
@@ -78,13 +78,12 @@ static void Board_keyCallback(PIN_Handle hPin, PIN_Id pinId);
/*******************************************************************************
* EXTERNAL VARIABLES
*/
extern bool procedureInProgress;
/*********************************************************************
* LOCAL VARIABLES
*/
PIN_State keyPins;
PIN_Handle hKeyPins;
static uint8_t mem_sel = 0;
// Value of keys Pressed
uint8_t keysPressed;
@@ -117,13 +116,40 @@ PIN_Config keyPinsCfg[] =
PIN_MEM_REQ | PIN_GPIO_OUTPUT_DIS | PIN_INPUT_EN | PIN_PULLUP,
PIN_MEM_BZY | PIN_GPIO_OUTPUT_DIS | PIN_INPUT_EN | PIN_PULLUP,
PIN_MEM_SEL | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
Board_SPI_CS | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL,
PIN_MEM_TEST | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL,
#if defined(MODA_BOOSTER_PACK)
Board_GLED | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
Board_RLED | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
#endif
#endif
PIN_TERMINATE
};
extern uint16_t EventMask;
extern void ext_call_sem();
/** event */
#define EVT_ALL 0xFFFF
#define EVT_MEM_LED 0x0001 /**< set led event */
#define EVT_MEM_LED_OFF 0x0002
#define EVT_MEM_DECODE_INS 0x0004
#define EVT_PIN_REQST 0x0008
#define EVT_MEM_RETURN_DATA 0x0010
#define EVT_MEM_CONN_TIMEOUT 0x0020
#define EVT_MEM_NOTIFY_HANDLE 0x0040
#define EVT_MEM_UART_ROUTINE 0x0080
/**
* fire a event with [flag].
*/
#define flag_notify(flag) \
do { \
uint8 __key = Hwi_disable(); \
EventMask |= (uint16_t)(flag); \
Hwi_restore(__key); \
ext_call_sem(); \
} while (0)
/*********************************************************************
* PUBLIC FUNCTIONS
@@ -144,7 +170,7 @@ void Board_initKeys(keysPressedCB_t appKeyCB)
PIN_registerIntCb(hKeyPins, Board_keyCallback);
#if defined (BOOSTXL_CC2650MA)
PIN_setConfig(hKeyPins, PIN_BM_IRQ, PIN_MEM_INS | PIN_IRQ_NEGEDGE);
// PIN_setConfig(hKeyPins, PIN_BM_IRQ, PIN_MEM_INS | PIN_IRQ_NEGEDGE);
PIN_setConfig(hKeyPins, PIN_BM_IRQ, PIN_MEM_REQ | PIN_IRQ_NEGEDGE);
#elif defined (CC2650_LAUNCHXL) || defined (CC1350_LAUNCHXL)
PIN_setConfig(hKeyPins, PIN_BM_IRQ, Board_BTN1 | PIN_IRQ_NEGEDGE);
@@ -176,23 +202,23 @@ void Board_initKeys(keysPressedCB_t appKeyCB)
static void Board_keyCallback(PIN_Handle hPin, PIN_Id pinId)
{
keysPressed = 0;
// static uint8_t test_pin_state = 0;
// PIN_setOutputValue(hKeyPins, PIN_MEM_TEST, test_pin_state);
// test_pin_state = ~test_pin_state;
#if defined (BOOSTXL_CC2650MA)
if ( PIN_getInputValue(PIN_MEM_INS) == 0 )
{
if(KEY_INSTEAD_UART == 1)
{
keysPressed |= KEY_RIGHT;
}
else{
keysPressed |= KEY_UART_EN;
}
}
if ( PIN_getInputValue(PIN_MEM_REQ) == 0 )
extern uint8 ram_sw;
extern uint8 notify_handle_done;
extern void master_switch_memory();
if ( PIN_getInputValue(PIN_MEM_REQ) == 0 &&
!procedureInProgress)
{
mem_sel ++;
PIN_setOutputValue(hKeyPins, PIN_ID(PIN_MEM_SEL), mem_sel & 0x01);
// keysPressed |= KEY_REQ;
flag_notify(EVT_PIN_REQST);
// if (ram_sw && notify_handle_done) master_switch_memory();
// else ram_sw = true;
}
#elif defined (CC2650_LAUNCHXL) || defined (CC1350_LAUNCHXL)
@@ -68,6 +68,7 @@ extern uint8_t KEY_INSTEAD_UART;
#define KEY_LEFT 0x0008
#define KEY_RIGHT 0x0010
#define KEY_UART_EN 0x0020
#define KEY_REQ 0x0040
// Debounce timeout in milliseconds
#define KEY_DEBOUNCE_TIMEOUT 0
@@ -180,6 +180,8 @@ struct void master_switch_memory() {
master_mem_select((mem_sel++) & 0x01);
master_pin_output(PIN_LED_RED, mem_sel & 0x10);
}
#endif // CC2650_MASTER_H
@@ -12,18 +12,40 @@
#include <ti/sysbios/knl/Clock.h>
#include "mem_central_pin.h"
#include "mem_uart.h"
#include "mem_event.h"
#include "mem_central_handle_notify.h"
#include "mem_uart_routine.h"
//#include "uart_printf.h"
//#include <xdc/runtime/System.h>
#define BLE_CDR_SAMLL_SIZE 10
#define BLE_CHAR2_HANDLE 0x0021 // read CIS return data
#define BLE_CHAR3_HANDLE 0x0024 // send instruction
#define BLE_CHAR4_CONFIG_HANDLE 0x0028 // notify enable: 0100=enable; 0000=disable
#define RET_INFO_BUF_SIZE 52
#define CIS_BUFF_PREFIX 3
#define CIS_BUFF_SUFFIX 2
#define CIS_DATA_LEN 50
static uint16_t CIS_length = 10;
static char CIS_data[CIS_DATA_LEN];
static void mem_central_event();
static void mem_recv_ins();
static void mem_connect_device();
static void mem_write_ins();
static void mem_connect_device(uint8_t addrType, uint8_t *peerAddr);
static void mem_send_ins(uint16_t hadnle, uint8_t *value);
static void mem_read_data_and_return();
static void mem_central_get_cis(uint8_t handle);
static void mem_connection_timeout();
static void MemBoard_init(void){
mem_UART_init();
master_spi_open();
central_mem_init();
central_reset();
flag_enable(EVT_MEM_UART_ROUTINE);
// uint8_t txBuf[] = "Simple Central memory board MA\n\r"; // Transmit buffer
// UART_txBuf = txBuf;
@@ -62,91 +84,95 @@ typedef enum{
UART_RECEIVED_DATA
} UART_DATA_Status;
typedef enum{
INS_IDLE,
INS_RESET,
INS_KEY,
INS_SCAN,
INS_SCAN_RESPONSE,
INS_CONNECT,
INS_WRITE,
INS_READ,
INS_DISCONNECT
} Control_Ins;
static LED_Status GLEDStatus = LED_OFF;
static UART_DATA_Status UARTStatus = UART_NO_DATA;
//static void mem_pin_callback(PIN_Handle handle, PIN_Id pin){
// switch(pin):{
// case PIN_MEM_INS: {
// break;
// }
// case PIN_MEM_REQ: {
// break;
// }
// default:{
// break;
// }
// }
//}
static void mem_central_event() {
if (flag_mask(EVT_MEM_LED)) {
flag_disable(EVT_MEM_LED);
GLEDStatus = LED_ON;
// SetMemOutputPIN(Board_GLED, 1);
if(flag_mask(EVT_MEM_NOTIFY_HANDLE)){
flag_disable(EVT_MEM_NOTIFY_HANDLE);
notify_handle_done = false;
central_handle_notify();
}
if(flag_mask(EVT_MEM_LED_OFF)){
flag_disable(EVT_MEM_LED_OFF);
GLEDStatus = LED_OFF;
// SetMemOutputPIN(Board_GLED, 0);
if (flag_mask(EVT_PIN_REQST)){
flag_disable(EVT_PIN_REQST);
// spi idle
if (notify_handle_done){
master_switch_memory();
}
// spi busy
else{
ram_sw = true;
}
}
if(flag_mask(EVT_MEM_UART)){
flag_disable(EVT_MEM_UART);
UARTStatus = UART_RECEIVED_DATA;
mem_recv_uart();
if(flag_mask(EVT_MEM_UART_ROUTINE)){
flag_disable(EVT_MEM_UART_ROUTINE);
mem_uart_routine();
}
if(flag_mask(EVT_MEM_UART_SEND)){
flag_disable(EVT_MEM_UART_SEND);
UARTStatus = UART_NO_DATA;
mem_send_recv_uart();
// if (flag_mask(EVT_MEM_LED)) {
// flag_disable(EVT_MEM_LED);
// GLEDStatus = LED_ON;
//// SetMemOutputPIN(Board_GLED, 1);
// }
//
// if(flag_mask(EVT_MEM_LED_OFF)){
// flag_disable(EVT_MEM_LED_OFF);
// GLEDStatus = LED_OFF;
//// SetMemOutputPIN(Board_GLED, 0);
// }
if(flag_mask(EVT_MEM_INS_SCAN)){
flag_disable(EVT_MEM_INS_SCAN);
SimpleBLECentral_discoverDevices();
}
if(flag_mask(EVT_MEM_SCAN_DEVICE)){
flag_disable(EVT_MEM_SCAN_DEVICE);
SimpleBLECentral_discoverDevices();
if(flag_mask(EVT_MEM_INS_CONNECT)){
flag_disable(EVT_MEM_INS_CONNECT);
mem_connect_device(store_rxBuf[2], store_rxBuf+3);
}
if(flag_mask(EVT_MEM_DECODE_INS)){
flag_disable(EVT_MEM_DECODE_INS);
mem_recv_ins();
if(flag_mask(EVT_MEM_INS_WRITE)){
flag_disable(EVT_MEM_INS_WRITE);
if(state == BLE_STATE_CONNECTED){
// selectedMenuItem should be MENU_ITEM_READ_WRITE
// This is done by SimpleBLECentral_processRoleEvent() in the case "GAP_LINK_ESTABLISHED_EVENT"
mem_send_ins(store_rxBuf[2], store_rxBuf+3);
}
}
if(flag_mask(EVT_MEM_CONNECT)){
flag_disable(EVT_MEM_CONNECT);
mem_connect_device();
if(flag_mask(EVT_MEM_INS_READ)){
flag_disable(EVT_MEM_INS_READ);
if(state == BLE_STATE_CONNECTED){
mem_central_get_cis(store_rxBuf[2]);
}
}
if(flag_mask(EVT_MEM_INS_DISCONNECT)){
flag_disable(EVT_MEM_INS_DISCONNECT);
GAPCentralRole_TerminateLink(connHandle);
state = BLE_STATE_DISCONNECTING;
}
if(flag_mask(EVT_MEM_RETURN_DATA)){
flag_disable(EVT_MEM_RETURN_DATA);
mem_read_data_and_return();
}
if(flag_mask(EVT_MEM_CONN_TIMEOUT)){
flag_disable(EVT_MEM_CONN_TIMEOUT);
mem_connection_timeout();
}
}
static Control_Ins ins = INS_IDLE;
static void mem_recv_ins(){
extern uint8_t keysPressed;
extern Clock_Struct keyChangeClock;
// if(state == BLE_STATE_CONNECTED){
// UART_read(uart_handle, UART_rxBuf, UART_BUFF_SIZE);
// }
// else{
UART_read(uart_handle, UART_rxBuf, 3);
// }
static bool prepare_to_connect = false;
switch(UART_rxBuf[0]){
case INS_IDLE:{
@@ -161,11 +187,11 @@ static void mem_recv_ins(){
}
case INS_KEY:{
if(UART_rxBuf[1] == 1){
if(UART_rxBuf[2] == 1){
keysPressed = KEY_LEFT;
Util_startClock(&keyChangeClock);
}
else if(UART_rxBuf[1] == 2){
else if(UART_rxBuf[2] == 2){
keysPressed = KEY_RIGHT;
Util_startClock(&keyChangeClock);
}
@@ -173,249 +199,230 @@ static void mem_recv_ins(){
}
case INS_SCAN:{
// flag_notify(EVT_MEM_SCAN_DEVICE);
SimpleBLECentral_discoverDevices();
break;
}
// instruction format:
// ins[0]: INS_SCAN_RESPONSE = 0x04
// ins[1]: scan_response (device number)=0, a certain device = device_id
// ins[2]: attr_length=0, e.g. len(addr)=6, len(company_code)=4
// ins[2]: attr_length=0, e.g. len(addr)=6, len(company_code)=4, len(localName)=20
// addr=1, localName=2, company_code=3, version_info=4, battery_info=5
case INS_SCAN_RESPONSE:{
uint8_t device_number;
uint8_t attr_length[5] = {sizeof(devList[device_number].addr),
sizeof(devList[device_number].localName),
LEN_COMPANY_CODE,
LEN_VERSION_INFO,
LEN_BATTERY_INFO};
// report scan device number
if(UART_rxBuf[1] == 0){
uint8_t scan_result[10] = {0xFF, scanRes,0,0,0,0,0,0,0,0};
UART_write(uart_handle, scan_result, 10);
}
// report a certain device information
else{
device_number = UART_rxBuf[1] - 1;
if(device_number >= scanRes){
char illegal_id[20] = "illegal device id";
UART_write(uart_handle, illegal_id, 20);
}
if(UART_rxBuf[2] == 0){
UART_write(uart_handle, attr_length, 5);
}
else if(UART_rxBuf[2] == 1){
// uint8_t scan_addr[20] = Util_convertBdAddr2Str(devList[device_number].addr);
UART_write(uart_handle, Util_convertBdAddr2Str(devList[device_number].addr), attr_length[0]*2+2);
}
else if(UART_rxBuf[2] == 2){
// uint8_t scan_name[20] = "test_device_name";
// UART_write(uart_handle, scan_name, 20);
UART_write(uart_handle, devList[device_number].localName, attr_length[1]);
}
else if(UART_rxBuf[2] == 3){
UART_write(uart_handle, devList[device_number].company_code, attr_length[2]);
}
else if(UART_rxBuf[2] == 4){
UART_write(uart_handle, devList[device_number].version_info, attr_length[3]);
}
else if(UART_rxBuf[2] == 5){
UART_write(uart_handle, devList[device_number].battery_info, attr_length[4]);
}
else if(UART_rxBuf[2] == 6){
// TODO: send all device_info
// UART_write(uart_handle, devList[device_number].battery_info, attr_length[4]);
}
state = BLE_STATE_BROWSING;
}
break;
}
case INS_CONNECT:{
if(state == BLE_STATE_BROWSING){
scanIdx = UART_rxBuf[1];
mem_connect_device();
}
mem_connect_device(UART_rxBuf[2], UART_rxBuf+3);
break;
}
case INS_WRITE:{
if(state == BLE_STATE_CONNECTED){
// selectedMenuItem = MENU_ITEM_READ_WRITE;
// KEY_INSTEAD_UART = 1;
mem_write_ins();
// selectedMenuItem should be MENU_ITEM_READ_WRITE
// This is done by SimpleBLECentral_processRoleEvent() in the case "GAP_LINK_ESTABLISHED_EVENT"
mem_send_ins(UART_rxBuf[2], UART_rxBuf+3);
}
break;
}
case INS_READ:{
if(state == BLE_STATE_CONNECTED){
mem_central_get_cis(UART_rxBuf[2]);
}
break;
}
case INS_DISCONNECT:{
selectedMenuItem = MENU_ITEM_DISCONNECT;
// clear scan result
GAPCentralRole_TerminateLink(connHandle);
state = BLE_STATE_DISCONNECTING;
// scanRes = 0;
// memset(devList, NULL, sizeof(devList[0])*DEFAULT_MAX_SCAN_RES);
//
// state = BLE_STATE_IDLE;
// connHandle = GAP_CONNHANDLE_INIT;
// discState = BLE_DISC_STATE_IDLE;
// charHdl = 0;
// procedureInProgress = FALSE;
// SimpleBLECentral_CancelRssi(pEvent->linkTerminate.connectionHandle);
// selectedMenuItem = MENU_ITEM_CONN_PARAM_UPDATE;
break;
}
default:{
uint8_t error_msg[10] = "wrong ins";
UART_write(uart_handle, error_msg, 10);
uint8_t error_msg[35] = "error";
error_msg[6] = state;
error_msg[7] = 0xFF;
for(int i = 0 ; i < UART_BUFF_SIZE ; i++){
error_msg[8+i] = UART_rxBuf[i];
}
UART_write(uart_handle, error_msg, 35);
break;
}
}
}
static void mem_connect_device() {
uint8_t addrType;
uint8_t *peerAddr;
static void mem_connect_device(uint8_t addrType, uint8_t *peerAddr) {
if (scanRes > 0 && state == BLE_STATE_BROWSING)
uint8_t Addr[B_ADDR_LEN];
for(int i=0 ; i<B_ADDR_LEN ; i++){
Addr[5-i] = *(peerAddr+i);
}
// UART_write(uart_handle, Addr, 6);
state = BLE_STATE_CONNECTING;
Util_startClock(&connectingClock);
GAPCentralRole_EstablishLink(DEFAULT_LINK_HIGH_DUTY_CYCLE,
DEFAULT_LINK_WHITE_LIST,
addrType, Addr);
}
static void mem_send_ins(uint16_t handle, uint8_t *value){
if (state == BLE_STATE_CONNECTED &&
charHdl != 0 &&
procedureInProgress == FALSE)
{
// connect to current device in scan result
peerAddr = devList[scanIdx-1].addr;
addrType = devList[scanIdx-1].addrType;
uint8_t ACK[15] = {0}; //ack success
ACK[1] = handle;
ACK[2] = value[0];
ACK[3] = value[1];
UART_write(uart_handle, ACK, 4);
uint8_t status;
state = BLE_STATE_CONNECTING;
// Do a read or write as long as no other read or write is in progress
// Do a write
attWriteReq_t req;
Util_startClock(&connectingClock);
// enable notify
req.handle = handle;
req.len = 19;
if(handle == BLE_CHAR3_HANDLE){
// RIS, VIS, CIS instruction
req.len = 19;
}
else if(handle == BLE_CHAR4_CONFIG_HANDLE){
// notify enable
req.len = 2;
}
else{
uint8_t error_handle[13] = "error handle";
UART_write(uart_handle, error_handle, 13);
status = bleMemAllocError;
return;
}
GAPCentralRole_EstablishLink(DEFAULT_LINK_HIGH_DUTY_CYCLE,
DEFAULT_LINK_WHITE_LIST,
addrType, peerAddr);
req.pValue = GATT_bm_alloc(connHandle, ATT_WRITE_REQ, req.len, NULL);
if ( req.pValue != NULL )
{
// send instruction
for(int i=0 ; i < req.len ; i++){
req.pValue[i] = *(value+i);
}
req.sig = 0;
req.cmd = 0;
status = GATT_WriteCharValue(connHandle, &req, selfEntity);
// uncomment GATT_WriteLongCharValue if we need a long instruction;
// However, there are some error to fix when using GATT_WriteLongCharValue
// status = GATT_WriteLongCharValue(connHandle, &req, selfEntity);
if ( status != SUCCESS )
{
GATT_bm_free((gattMsg_t *)&req, ATT_WRITE_REQ);
}
}
else
{
uint8_t error_msg[10] = "err";
error_msg[3] = req.handle;
error_msg[4] = *value;
error_msg[5] = *(value+1);
error_msg[6] = *(value+2);
error_msg[7] = *(value+3);
error_msg[8] = *(value+4);
error_msg[9] = *(value+5);
UART_write(uart_handle, error_msg, 10);
status = bleMemAllocError;
}
if (status == SUCCESS)
{
procedureInProgress = TRUE;
}
}
}
static void mem_write_ins(){
uint8_t ack[4] = {0,0,0,0};
static void mem_central_get_cis(uint8_t handle){
// get the actual CIS data from simple_central.c > SimpleBLECentral_processGATTMsg()
if (state == BLE_STATE_CONNECTED &&
charHdl != 0 &&
procedureInProgress == FALSE)
{
uint8_t status;
// Do a read or write as long as no other read or write is in progress
if (WWR == 0)
{
// Do a write
attWriteReq_t req;
req.pValue = GATT_bm_alloc(connHandle, ATT_WRITE_REQ, 2, NULL);
if ( req.pValue != NULL )
{
// enable notify
req.handle = 0x0028;
req.len = 2;
req.pValue[0] = 0x01;
req.pValue[1] = 0x00;
req.sig = 0;
req.cmd = 0;
status = GATT_WriteCharValue(connHandle, &req, selfEntity);
if ( status != SUCCESS )
{
GATT_bm_free((gattMsg_t *)&req, ATT_WRITE_REQ);
}
else{
ack[0] = WWR;
ack[1] = WWR;
ack[2] = WWR;
ack[3] = WWR;
UART_write(uart_handle, ack, 4);
}
}
else
{
status = bleMemAllocError;
}
WWR ++;
}
else if(WWR == 1){
attWriteReq_t req2;
req2.pValue = GATT_bm_alloc(connHandle, ATT_WRITE_REQ, 3, NULL);
// send instruction
req2.handle = 0x0024;
req2.len = 3;
req2.pValue[0] = 0x30;
req2.pValue[1] = 0x00;
req2.pValue[2] = 0x60;
req2.sig = 0;
req2.cmd = 0;
status = GATT_WriteCharValue(connHandle, &req2, selfEntity);
if ( status != SUCCESS )
{
GATT_bm_free((gattMsg_t *)&req2, ATT_WRITE_REQ);
}
else{
ack[0] = WWR;
ack[1] = WWR;
ack[2] = WWR;
ack[3] = WWR;
UART_write(uart_handle, ack, 4);
}
WWR ++;
}
else if(WWR == 2){
attWriteReq_t req3;
req3.pValue = GATT_bm_alloc(connHandle, ATT_WRITE_REQ, 2, NULL);
// start device
req3.handle = 0x0024;
req3.len = 2;
req3.pValue[0] = 0xC0;
req3.pValue[1] = 0xC0;
req3.sig = 0;
req3.cmd = 0;
status = GATT_WriteCharValue(connHandle, &req3, selfEntity);
if ( status != SUCCESS )
{
GATT_bm_free((gattMsg_t *)&req3, ATT_WRITE_REQ);
}
else{
ack[0] = WWR;
ack[1] = WWR;
ack[2] = WWR;
ack[3] = WWR;
UART_write(uart_handle, ack, 4);
}
WWR = 2;
}
// else
// {
// attWriteReq_t req4;
// req4.pValue = GATT_bm_alloc(connHandle, ATT_WRITE_REQ, 2, NULL);
//
// // stop device
// req4.handle = 0x0024;
// req4.len = 2;
// req4.pValue[0] = 0xC0;
// req4.pValue[1] = 0x60;
// req4.sig = 0;
// req4.cmd = 0;
//
// status = GATT_WriteCharValue(connHandle, &req4, selfEntity);
// if ( status != SUCCESS )
// {
// GATT_bm_free((gattMsg_t *)&req4, ATT_WRITE_REQ);
// }
// WWR =2;
// }
// send read command
attReadReq_t read_cis_req;
read_cis_req.handle = handle;
status = GATT_ReadCharValue(connHandle, &read_cis_req, selfEntity);
if (status == SUCCESS)
{
procedureInProgress = TRUE;
doWrite = !doWrite;
}
}
}
static void mem_read_data_and_return(){
/*
* CIS data formate:
* Elite send to central:
* +------------+------------------+
* | Header(1B) | Payload(nB) |
* +------------+------------------+
* |d0(recv_len)| d1, d2, d3, ... |
* +------------+------------------+
* ex: | 0x03 | 0x10,0xC0,0x01 | <--- barrery data
* +------------+------------------+
*
* central send to controller:
* +--------------------+------------------+
* | Header(3B) | Payload |
* +---+---+------------+------------------+
* | 4 | 0 | ret_length | d1, d2, d3, ... |
* +---+---+------------+------------------+
* ex: | 4 | 0 | 0x14 | 0x10,0xC0,0x01 | <--- barrery data
* +---+---+------------+------------------+
*
*/
// add prefix and suffix to sync communication
uint16_t ret_length;
if (CIS_length < 22) {
ret_length = 20;
} else {
ret_length = CIS_length - CIS_BUFF_PREFIX;
}
CIS_data[0] = 4;
CIS_data[1] = 0;
CIS_data[2] = ret_length;
CIS_data[CIS_length++] = 0;
CIS_data[CIS_length++] = 0;
UART_write(uart_handle, CIS_data, ret_length + CIS_BUFF_PREFIX);
memset(CIS_data, 0, CIS_DATA_LEN);
}
static void mem_connection_timeout(){
}
#endif
@@ -2,53 +2,266 @@
#ifndef CENTRAL_NOTIFY
#define CENTRAL_NOTIFY
#include "mem_event.h"
#include "mem_uart.h"
#include "mem_central_pin.h"
#include "mem_central_spi.h"
#include "mem_board_central.h"
static uint16_t data_counter = 0;
/*========================
==== notify variable ====
=======================*/
static void central_handle_notify(uint16_t length, uint8_t *value){
// uint8_t ret_len = 200;
// uint8_t ret[200];
#define MEM_BUFFER_SIZE SPI_TX_BUFFER_SIZE
#define MEM_SWITCH_THRESHOLD 0xBB8 //max:3K bytes
#define MSM_REG_WRITE 0x01
#define MEM_INS_WRITE 0x02
#define MEM_INS_READ 0x03
#define MEM_REG_READ 0x05
#define MEM_META_LENGTH 4
static uint8 mem_sel = 0;
static uint16_t not_counter = 0; // writing counter, increase when notify
static uint16_t not_offset = 0; // writing pointer, current not writing index
uint8 ram_sw = true;
uint8 notify_handle_done = true;
static uint16_t notify_length = 0;
static uint8_t notify_value[250] = {0};
#define unsafe_memcpy(p, src, len) \
do { \
memcpy(p, src, len); \
p += len; \
} while (0)
#define central_mem_init() \
do { \
master_tx_buffer[0] = MSM_REG_WRITE; \
master_tx_buffer[1] = 0b01000011; \
central_mem_select(1); \
central_spi_send(master_tx_buffer, 2); \
central_mem_select(0); \
central_spi_send(master_tx_buffer, 2); \
} while (0)
static void central_reset(){
not_counter = 0;
not_offset = MEM_META_LENGTH;
mem_sel = 0;
central_mem_select(mem_sel);
// scanRes = 0;
// memset(devList, NULL, sizeof(devList[0])*DEFAULT_MAX_SCAN_RES);
//
// for(int i=0 ; i<ret_len ; i++){
// ret[i] = value[i];
// }
// ret[ret_len] = '\0';
// state = BLE_STATE_IDLE;
// connHandle = GAP_CONNHANDLE_INIT;
// discState = BLE_DISC_STATE_IDLE;
// charHdl = 0;
// procedureInProgress = FALSE;
//
//// SimpleBLECentral_CancelRssi(pEvent->linkTerminate.connectionHandle);
// selectedMenuItem = MENU_ITEM_CONN_PARAM_UPDATE;
}
uint8_t recv_noti[10];
recv_noti[0] = value[0];
recv_noti[1] = value[1];
recv_noti[2] = value[2];
recv_noti[3] = value[3];
recv_noti[4] = value[4];
recv_noti[5] = value[5];
recv_noti[6] = 0xFF;
recv_noti[7] = 0xFF;
recv_noti[8] = (data_counter >> 8) & 0xFF;
recv_noti[9] = data_counter & 0xFF;
void master_switch_memory();
if(data_counter++ % 50 == 0){
#ifndef BOOSTXL_CC2650MA
mem_UART_display_u8(recv_noti, 9);
mem_UART_display(" ");
mem_UART_display("Notify data counter: ");
mem_UART_display_u16(data_counter);
mem_UART_newline();
#else
UART_write(uart_handle, recv_noti, 10);
#endif
//static void central_handle_notify(uint8_t notify_length, uint8_t *notify_value){
uint8_t spi_buffer0[256];
uint8_t spi_buffer1[256];
uint8_t recv_ins[26] = {0};
static uint8_t green_wrong = 0;
static uint8_t green_retry_cnt = 0;
static void central_handle_notify(){
static uint8_t check_buffer[29] = {0};
static uint8_t spi_buffer_index = 0;
static uint8_t wrong = 0;
static uint8_t retry_cnt = 0;
int i;
bool wrong_flag = false;
bool write_again = false;
uint8_t write_limit = 0;
uint8_t *p;
uint8_t counter;
// localize current buffer
if(spi_buffer_index){
spi_buffer_index = ~spi_buffer_index;
p = spi_buffer0;
}
else{
spi_buffer_index = ~spi_buffer_index;
p = spi_buffer1;
}
// if(length == 200){
// }
counter = not_counter;
not_counter = not_counter + 1;
// mem_UART_display("Notify data: ");
// mem_UART_display_u8(value, length);
// mem_UART_newline();
// update offset
uint32_t cnt_offset = not_offset;
not_offset = cnt_offset + 3 + notify_length;
p[0] = MEM_INS_WRITE; // instruction
p[1] = (uint8_t)((cnt_offset >> 8) & 0xFF); // address
p[2] = (uint8_t)(cnt_offset & 0xFF); // address
p[3] = 0xFF; // data header
p[4] = counter; // data counter
p[5] = notify_length; // data content length
memcpy(p + 6, notify_value, notify_length); // data content
central_spi_send(p, notify_length + 6);
// read RAM
recv_ins[0] = 0x03; //read RAM
recv_ins[1] = (uint8_t)((cnt_offset >> 8) & 0xFF); // address
recv_ins[2] = (uint8_t)(cnt_offset & 0xFF); // address
central_spi_recv(recv_ins, check_buffer);
while (1) {
// compare data
for (i=3; i<26; i++) {
if (p[i]!=check_buffer[i]) {
write_again = true;
break;
}
}
if (write_again) {
write_again = false;
retry_cnt++;
write_limit++;
//write RAM
central_spi_send(p, notify_length + 6);
// read RAM
recv_ins[0] = 0x03; //read RAM
recv_ins[1] = (uint8_t)((cnt_offset >> 8) & 0xFF); // address
recv_ins[2] = (uint8_t)(cnt_offset & 0xFF); // address
central_spi_recv(recv_ins, check_buffer);
} else {
break;
}
if (write_limit >= 1) {
break;
}
}
for (i=3; i<26; i++) {
if (p[i]!=check_buffer[i]) {
wrong_flag = true;
break;
}
}
if (wrong_flag) {
wrong++;
}
memset(p,0,notify_length + 6);
notify_handle_done = true;
if (ram_sw){
master_switch_memory();
ram_sw = false;
}
else if (central_pi3_not_busy() && (not_offset >= MEM_SWITCH_THRESHOLD)) {
master_switch_memory();
ram_sw = false;
}
}
void master_switch_memory() {
uint16_t cnt_offset = not_offset;
not_offset = MEM_META_LENGTH;
static uint8_t check_green_buffer[10] = {0};
int i;
bool wrong_flag = false;
bool write_again = false;
uint8_t write_limit = 0;
// localize current buffer
uint8_t *p = master_tx_buffer;
p[0] = MEM_INS_WRITE; // instruction
p[1] = 0; // address
p[2] = 0; // address
p[3] = (uint8_t)((cnt_offset >> 8) & 0xFF); // data: notify data length
p[4] = (uint8_t)(cnt_offset & 0xFF); // data: notify data length
p[5] = 0;
p[6] = 0;
central_spi_send(p, 7);
// read RAM
recv_ins[0] = 0x03; //read RAM
recv_ins[1] = p[1]; // address
recv_ins[2] = p[2]; // address
central_spi_recv(recv_ins, check_green_buffer);
while (1) {
// compare data
for (i=3; i<7; i++) {
if (p[i]!=check_green_buffer[i]) {
write_again = true;
break;
}
}
if (write_again) {
write_again = false;
green_retry_cnt++;
write_limit++;
//write RAM
central_spi_send(p, 7);
// read RAM
recv_ins[0] = 0x03; //read RAM
recv_ins[1] = p[1]; // address
recv_ins[2] = p[2]; // address
central_spi_recv(recv_ins, check_green_buffer);
} else {
break;
}
if (write_limit >= 1) {
break;
}
}
for (i=3; i<7; i++) {
if (p[i]!=check_green_buffer[i]) {
wrong_flag = true;
break;
}
}
if (wrong_flag) {
green_wrong++;
}
memset(p,0,7);
// switch memory
mem_sel++;
central_mem_select(mem_sel & 0x01);
CPUdelay(10 * 16); // 10us
// mem_UART_display("Notify length: ");
// mem_UART_display_u16(length);
// mem_UART_newline();
}
#endif
@@ -20,16 +20,25 @@
// Board_RLED | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
// PIN_TERMINATE
//};
static void mem_pin_callback(PIN_Handle handle, PIN_Id pin);
#define mem_pin_open() \
do { \
mem_pins_handle = PIN_open(&mem_pins_state, BoardGpioInitTable); \
PIN_registerIntCb(mem_pins_handle, mem_pin_callback); \
PIN_setInterrupt(mem_pins_handle, PIN_MEM_INS | PIN_IRQ_NEGEDGE); \
PIN_setInterrupt(mem_pins_handle, PIN_MEM_REQ | PIN_IRQ_NEGEDGE); \
} while (0)
//static void mem_pin_callback(PIN_Handle handle, PIN_Id pin);
//
//#define mem_pin_open() \
// do { \
// mem_pins_handle = PIN_open(&mem_pins_state, BoardGpioInitTable); \
// PIN_registerIntCb(mem_pins_handle, mem_pin_callback); \
// PIN_setInterrupt(mem_pins_handle, PIN_MEM_INS | PIN_IRQ_NEGEDGE); \
// PIN_setInterrupt(mem_pins_handle, PIN_MEM_REQ | PIN_IRQ_NEGEDGE); \
// } while (0)
//#define SetMemOutputPIN(PIN, value) PIN_setOutputValue(hKeyPins, PIN, value)
extern PIN_State keyPins;
extern PIN_Handle hKeyPins;
#define central_pin_output(pin, value) PIN_setOutputValue(hKeyPins, PIN_ID(pin), (value))
#define central_pin_input(pin) PIN_getInputValue(PIN_ID(pin))
#define central_pi3_not_busy() central_pin_input(PIN_MEM_BZY)
#define central_mem_select(value) central_pin_output(PIN_MEM_SEL, (value) ? 1 : 0)
#endif
@@ -0,0 +1,67 @@
#ifndef CENTRAL_SPI_H
#define CENTRAL_SPI_H
// clang-format off
#include <ti/drivers/SPI.h>
#include <ti/drivers/dma/UDMACC26XX.h>
#include <ti/drivers/spi/SPICC26XXDMA.h>
// clang-format on
#include "mem_central_pin.h"
#define SPI_TX_BUFFER_SIZE 250
static uint8_t master_tx_buffer[SPI_TX_BUFFER_SIZE] = {0};
static SPI_Handle central_spi_handle;
static SPI_Transaction central_spi_transaction;
#define master_spi_open() \
do { \
SPI_init(); \
SPI_Params spi_parameter; \
SPI_Params_init(&spi_parameter); \
spi_parameter.transferMode = SPI_MODE_BLOCKING; \
spi_parameter.mode = SPI_MASTER; \
spi_parameter.bitRate = 12000000; \
spi_parameter.transferTimeout = 1000; \
spi_parameter.dataSize = 8; \
spi_parameter.frameFormat = SPI_POL0_PHA0; \
central_spi_handle = SPI_open(Board_SPI0, &spi_parameter); \
} while (0)
#define SPI_close() SPI_close(central_spi_handle)
static void SPI_reopen(){
SPI_init();
SPI_Params spi_parameter;
SPI_Params_init(&spi_parameter);
spi_parameter.transferMode = SPI_MODE_BLOCKING;
spi_parameter.mode = SPI_MASTER;
spi_parameter.bitRate = 8000000;
spi_parameter.transferTimeout = 1000;
spi_parameter.dataSize = 8;
spi_parameter.frameFormat = SPI_POL0_PHA0;
central_spi_handle = SPI_open(Board_SPI0, &spi_parameter);
}
#define central_spi_send(data, len) \
do { \
central_spi_transaction.txBuf = data; \
central_spi_transaction.rxBuf = NULL; \
central_spi_transaction.count = (len); \
central_pin_output(Board_SPI_CS, 0); \
SPI_transfer(central_spi_handle, &central_spi_transaction); \
central_pin_output(Board_SPI_CS, 1); \
} while (0)
#define central_spi_recv(ins, data) \
do { \
central_spi_transaction.txBuf = ins; \
central_spi_transaction.rxBuf = data; \
central_pin_output(Board_SPI_CS, 0); \
SPI_transfer(central_spi_handle, &central_spi_transaction); \
central_pin_output(Board_SPI_CS, 1); \
} while (0)
#endif // CENTRAL_SPI_H
@@ -42,12 +42,12 @@
#define EVT_ALL 0xFFFF
#define EVT_MEM_LED 0x0001 /**< set led event */
#define EVT_MEM_LED_OFF 0x0002
#define EVT_MEM_UART 0x0004 /**< UART transaction event */
#define EVT_MEM_UART_SEND 0x0008
#define EVT_MEM_DECODE_INS 0x0010
#define EVT_MEM_SCAN_DEVICE 0x0020
#define EVT_MEM_CONNECT 0x0040
#define EVT_MEM_DISCONNECT 0x0080
#define EVT_MEM_DECODE_INS 0x0004
#define EVT_PIN_REQST 0x0008
#define EVT_MEM_RETURN_DATA 0x0010
#define EVT_MEM_CONN_TIMEOUT 0x0020
#define EVT_MEM_NOTIFY_HANDLE 0x0040
#define EVT_MEM_UART_ROUTINE 0x0080
uint16_t EventMask = 0;
@@ -10,8 +10,9 @@
#include <ti/drivers/UART.h>
#include <ti/drivers/uart/UARTCC26XX.h>
#include "mem_event.h"
#define UART_BUFF_SIZE 20
#define UART_BUFF_SIZE 25
static UART_Handle uart_handle;
static UART_Params params;
@@ -19,8 +20,120 @@ static UART_Params params;
static uint8_t UART_txBuf[UART_BUFF_SIZE];
static uint8_t UART_rxBuf[UART_BUFF_SIZE];
static uint8_t store_rxBuf[UART_BUFF_SIZE];
typedef enum{
INS_IDLE,
INS_RESET,
INS_KEY,
INS_SCAN,
INS_SCAN_RESPONSE,
INS_CONNECT,
INS_WRITE,
INS_READ,
INS_DISCONNECT,
INS_PREPARE_CONNECT,
} Control_Ins;
/** event */
#define EVT_ALL 0xFFFF
#define EVT_MEM_LED 0x0001 /**< set led event */
#define EVT_MEM_LED_OFF 0x0002
#define EVT_MEM_DECODE_INS 0x0004
#define EVT_PIN_REQST 0x0008
#define EVT_MEM_RETURN_DATA 0x0010
#define EVT_MEM_CONN_TIMEOUT 0x0020
#define EVT_MEM_NOTIFY_HANDLE 0x0040
#define EVT_MEM_UART_ROUTINE 0x0080
#define EVT_MEM_INS_SCAN 0x0100
#define EVT_MEM_INS_CONNECT 0x0200
#define EVT_MEM_INS_WRITE 0x0400
#define EVT_MEM_INS_READ 0x0800
#define EVT_MEM_INS_DISCONNECT 0x1000
#define IS_EVT_MEM_DECODE_INS(_b) ((_b)[0] == INS_SCAN || \
(_b)[0] == INS_CONNECT || \
(_b)[0] == INS_WRITE || \
(_b)[0] == INS_READ || \
(_b)[0] == INS_DISCONNECT)
#define IS_FINAL_RX_BYTE(_i, _l) (((_i) == (_l) + 1) && (store_rxBuf[(_l) + 1] == 0xF1))
static void mem_recv_uart();
// Callback function
static void readCallback(UART_Handle handle, void *rxBuf, size_t size)
{
// static uint8_t test_pin_state = 0;
// PIN_setOutputValue(hKeyPins, PIN_MEM_TEST, test_pin_state);
// test_pin_state = ~test_pin_state;
uint8_t *uart_rxBuf = (uint8_t *)rxBuf;
static int index = 0;
static int length = 0;
static bool rx_fi = false;
if (rx_fi) {
memset(store_rxBuf, 0, UART_BUFF_SIZE);
rx_fi = false;
}
if (IS_EVT_MEM_DECODE_INS(uart_rxBuf) && index == 0) {
store_rxBuf[0] = uart_rxBuf[0];
index++;
} else if (IS_EVT_MEM_DECODE_INS(store_rxBuf) && index == 1) {
store_rxBuf[1] = uart_rxBuf[0];
length = uart_rxBuf[0];
index++;
} else if (IS_EVT_MEM_DECODE_INS(store_rxBuf) && index > 1) {
store_rxBuf[index] = uart_rxBuf[0];
if (index >= length + 2) { //num = 0 when over length
store_rxBuf[index] = 0;
}
index++;
}
//0xF1 = 241
if(index > 1 && store_rxBuf[0] == INS_SCAN && store_rxBuf[length + 1] == 0xF1 ) {
index = 0;
length = 0;
flag_notify(EVT_MEM_INS_SCAN);
flag_notify(EVT_MEM_UART_ROUTINE);
rx_fi = true;
return;
} else if (index > 1 && store_rxBuf[0] == INS_CONNECT && store_rxBuf[length + 1] == 0xF1) {
index = 0;
length = 0;
flag_notify(EVT_MEM_INS_CONNECT);
flag_notify(EVT_MEM_UART_ROUTINE);
rx_fi = true;
return;
} else if (index > 1 && store_rxBuf[0] == INS_WRITE && store_rxBuf[length + 1] == 0xF1) {
index = 0;
length = 0;
flag_notify(EVT_MEM_INS_WRITE);
flag_notify(EVT_MEM_UART_ROUTINE);
rx_fi = true;
return;
} else if (index > 1 && store_rxBuf[0] == INS_READ && store_rxBuf[length + 1] == 0xF1) {
index = 0;
length = 0;
flag_notify(EVT_MEM_INS_READ);
flag_notify(EVT_MEM_UART_ROUTINE);
rx_fi = true;
return;
} else if (index > 1 && store_rxBuf[0] == INS_DISCONNECT && store_rxBuf[length + 1] == 0xF1) {
flag_notify(EVT_MEM_INS_DISCONNECT);
index = 0;
length = 0;
flag_notify(EVT_MEM_UART_ROUTINE);
rx_fi = true;
return;
}
flag_notify(EVT_MEM_UART_ROUTINE);
}
static void mem_UART_init(){
uint32_t timeoutUs = 5000; // 5ms timeout, default timeout is no timeout (BIOS_WAIT_FOREVER)
@@ -29,11 +142,11 @@ static void mem_UART_init(){
UART_Params_init(&params);
params.baudRate = 115200;
params.writeDataMode = UART_DATA_BINARY;
// params.readMode = UART_MODE_CALLBACK;
// params.readDataMode = UART_DATA_BINARY;
// params.readCallback = readCallback;
params.readMode = UART_MODE_CALLBACK;
params.readDataMode = UART_DATA_BINARY;
params.readCallback = readCallback;
// params.readTimeout = timeoutUs / Clock_tickPeriod; // Default tick period is 10us
params.readTimeout = ti_sysbios_BIOS_WAIT_FOREVER;
// params.readTimeout = ti_sysbios_BIOS_WAIT_FOREVER;
// Open the UART and do the read
uart_handle = UART_open(Board_UART, &params);
@@ -0,0 +1,17 @@
#ifndef MEM_UART_ROUTINE_H
#define MEM_UART_ROUTINE_H
#include "mem_uart.h"
#include "mem_event.h"
static void mem_uart_routine(){
if (uartProcedureInProgress == FALSE) {
// uartProcedureInProgress = TRUE;
int rxBytes = UART_read(uart_handle, UART_rxBuf, 1);
} else {
flag_notify(EVT_MEM_UART_ROUTINE);
}
}
#endif
@@ -268,19 +268,32 @@ typedef struct
/**
* Type of device discovery (Scan) to perform.
*/
#define LEN_COMPANY_CODE 4
#define LEN_VERSION_INFO 6
#define LEN_BATTERY_INFO 5
typedef struct
{
char localName[20]; //!< Device's Name
uint8_t addrType; //!< Address Type: @ref ADDRTYPE_DEFINES
uint8_t addr[B_ADDR_LEN]; //!< Device's Address
uint8_t nameLength; //!< Device name length
char company_code[LEN_COMPANY_CODE];
uint8_t version_info[LEN_VERSION_INFO];
uint8_t battery_info[LEN_BATTERY_INFO];
} devRecInfo_t;
#define LEN_COMPANY_CODE 4
#define LEN_VERSION_INFO 6
#define LEN_BATTERY_INFO 5
#define LEN_LOCAL_NAME 20
#define DEV_INFO_LEN (B_ADDR_LEN + LEN_COMPANY_CODE + \
LEN_VERSION_INFO + LEN_BATTERY_INFO + \
LEN_LOCAL_NAME + 1)
struct devRecInfo_t {
/* KEEP the 5 item at the head!! */
uint8_t addr[B_ADDR_LEN]; //!< Device's Address
char company_code[LEN_COMPANY_CODE]; //!< Company Code
uint8_t version_info[LEN_VERSION_INFO]; //!< Version Infomation
uint8_t battery_info[LEN_BATTERY_INFO]; //!< Battery Infomation
char localName[LEN_LOCAL_NAME]; //!< Device's Name
uint8_t addrType; //!< Address Type: @ref ADDRTYPE_DEFINES
uint8_t nameLength; //!< Device name length
};
struct scan_packet_hdr_t {
uint8_t scan_res_hdr;
uint8_t scan_res_cnt;
uint8_t pyld_len;
};
#define SCAN_RES_HDR_LEN sizeof(struct scan_packet_hdr_t)
#define COMPANY_CODE_BPHS 0x53485042 //'BPHS' => 'S', 'H', 'P', 'B'
/*********************************************************************
* GLOBAL VARIABLES
@@ -328,7 +341,7 @@ static uint8_t scanRes;
static uint8_t scanIdx;
// Scan result list
static devRecInfo_t devList[DEFAULT_MAX_SCAN_RES];
static struct devRecInfo_t devList[DEFAULT_MAX_SCAN_RES];
// Scanning state
static bool scanningStarted = FALSE;
@@ -360,10 +373,10 @@ static uint8_t charVal = 0;
// Value read/write toggle
static bool doWrite = FALSE;
static uint8_t WWR = 0;
// GATT read/write procedure state
static bool procedureInProgress = FALSE;
bool procedureInProgress = FALSE;
bool uartProcedureInProgress = FALSE;
// Maximum PDU size (default = 27 octets)
static uint16_t maxPduSize;
@@ -390,11 +403,13 @@ static bool SimpleBLECentral_findSvcUuid(uint16_t uuid, uint8_t *pData,
uint8_t dataLen);
static void SimpleBLECentral_discoverDevices(void);
void SimpleBLECentral_timeoutConnecting(UArg arg0);
static bool SimpleBLECentral_checkBPSDeviceInfo(uint8_t *pEvtData, uint8_t dataLen);
static void SimpleBLECentral_addDeviceInfo(uint8_t *pAddr, uint8_t addrType);
static bool SimpleBLECentral_findLocalName(uint8_t *pEvtData, uint8_t dataLen);
static void SimpleBLECentral_addDeviceName(uint8_t i, uint8_t *pEvtData,
uint8_t dataLen);
static void SimepleBLECentral_getDeviceinfo(uint8_t i, uint8_t *pEvtData, uint8_t dataLen);
static void SimepleBLECentral_respDeviceinfo(uint8_t i, uint8_t *pEvtData, uint8_t dataLen);
static void SimpleBLECentral_processPairState(uint8_t pairState, uint8_t status);
static void SimpleBLECentral_processPasscode(uint16_t connectionHandle,
@@ -597,6 +612,11 @@ static void SimpleBLECentral_taskFxn(UArg a0, UArg a1)
// PIN_setPortOutputEnable(&mem_pins_state, 1);
// PIN_setOutputValue(hKeyPins, PIN_ID(PIN_MEM_TEST), 1);
MemBoard_init();
central_pin_output(PIN_MEM_TEST, 1);
#if defined(MODA_BOOSTER_PACK)
// PIN_setOutputValue(hKeyPins, Board_GLED, 1);
#endif
// System_printf("Hello, universe!\r\n");
@@ -816,37 +836,38 @@ static void SimpleBLECentral_processRoleEvent(gapCentralRoleEvent_t *pEvent)
break;
case GAP_DEVICE_INFO_EVENT:
{
{
//Find peer device address by UUID
if ( (DEFAULT_DEV_DISC_BY_SVC_UUID == FALSE) ||
SimpleBLECentral_findSvcUuid(SIMPLEPROFILE_SERV_UUID,
pEvent->deviceInfo.pEvtData,
pEvent->deviceInfo.dataLen))
{
SimpleBLECentral_addDeviceInfo(pEvent->deviceInfo.addr,
pEvent->deviceInfo.addrType);
}
if (SimpleBLECentral_findLocalName(pEvent->deviceInfo.pEvtData,
pEvent->deviceInfo.dataLen)){
if(SimpleBLECentral_checkBPSDeviceInfo(pEvent->deviceInfo.pEvtData,
pEvent->deviceInfo.dataLen)){
SimpleBLECentral_addDeviceInfo(pEvent->deviceInfo.addr,
pEvent->deviceInfo.addrType);
//Update deviceInfo entry with the name
SimpleBLECentral_addDeviceName(0, pEvent->deviceInfo.pEvtData,
pEvent->deviceInfo.dataLen);
// Check if the discovered device is already in scan results
uint8_t i;
for (i = 0; i < scanRes; i++)
{
if (memcmp(pEvent->deviceInfo.addr, devList[i].addr , B_ADDR_LEN) == 0)
{
//Check if pEventData contains a device name
if (SimpleBLECentral_findLocalName(pEvent->deviceInfo.pEvtData,
pEvent->deviceInfo.dataLen))
{
//Update deviceInfo entry with the name
SimpleBLECentral_addDeviceName(i, pEvent->deviceInfo.pEvtData,
pEvent->deviceInfo.dataLen);
// get company code, version, battery
SimepleBLECentral_getDeviceinfo(i, pEvent->deviceInfo.pEvtData,
// get company code, version, battery
SimepleBLECentral_getDeviceinfo(0, pEvent->deviceInfo.pEvtData,
pEvent->deviceInfo.dataLen);
}
}
}
// response company code, version, battery
SimepleBLECentral_respDeviceinfo(0, pEvent->deviceInfo.pEvtData,
pEvent->deviceInfo.dataLen);
// Increment scan result count
scanRes = 1;
// if(scanRes == DEFAULT_MAX_SCAN_RES){
GAPCentralRole_CancelDiscovery();
// }
}
}
}
}
break;
@@ -930,18 +951,18 @@ static void SimpleBLECentral_processRoleEvent(gapCentralRoleEvent_t *pEvent)
Util_startClock(&startDiscClock);
}
#ifndef BOOSTXL_CC2650MA
//Find device name in devList struct
uint8_t i;
for (i = 0; i < scanRes; i++)
{
if (memcmp(pEvent->linkCmpl.devAddr, devList[i].addr, B_ADDR_LEN) == NULL)
{
break;
}
}
// uint8_t i;
// for (i = 0; i < scanRes; i++)
// {
// if (memcmp(pEvent->linkCmpl.devAddr, devList[i].addr, B_ADDR_LEN) == NULL)
// {
// break;
// }
// }
// Display_clearLines(dispHandle, ROW_ONE, ROW_SEVEN);
// Display_print1(dispHandle, ROW_ONE, 0, "%s", devList[i].localName);
#ifndef BOOSTXL_CC2650MA
mem_UART_clear_screen();
mem_UART_display(devList[i].localName);
mem_UART_newline();
@@ -957,13 +978,11 @@ static void SimpleBLECentral_processRoleEvent(gapCentralRoleEvent_t *pEvent)
mem_UART_display("Connected");
mem_UART_newline();
#else
// send MAC if device is connected
// UART_write(uart_handle, Util_convertBdAddr2Str(pEvent->linkCmpl.devAddr), 14);
#endif
// Display_print0(dispHandle, ROW_THREE, 0, "Connected");
selectedMenuItem = MENU_ITEM_CONN_PARAM_UPDATE;
selectedMenuItem = MENU_ITEM_READ_WRITE;
KEY_INSTEAD_UART = 1;
// Display_print0(dispHandle, ROW_SEVEN, 0, ">Param upd req");
}
else
@@ -971,6 +990,8 @@ static void SimpleBLECentral_processRoleEvent(gapCentralRoleEvent_t *pEvent)
state = BLE_STATE_IDLE;
connHandle = GAP_CONNHANDLE_INIT;
discState = BLE_DISC_STATE_IDLE;
// char ACK4[10] = {5, 5};
// UART_write(uart_handle, ACK4, 5);
// Display_clearLine(dispHandle, ROW_FOUR);
// Display_print0(dispHandle, ROW_TWO, 0, "Connect Failed");
@@ -1039,24 +1060,39 @@ static void SimpleBLECentral_handleKeys(uint8_t shift, uint8_t keys)
switch (state)
{
case BLE_STATE_IDLE:
{
if(keys & KEY_REQ){
flag_notify(EVT_PIN_REQST);
}
if(keys & KEY_UART_EN)
{
flag_notify(EVT_MEM_DECODE_INS);
}
#ifndef BOOSTXL_CC2650MA
if (keys & KEY_RIGHT)
{
// Discover devices
SimpleBLECentral_discoverDevices();
}
//If LEFT is pressed, nothing happens.
#endif
break;
}
case BLE_STATE_DISCOVERED:
if(keys & KEY_UART_EN){
flag_notify(EVT_MEM_DECODE_INS);
{
if(keys & KEY_REQ){
flag_notify(EVT_PIN_REQST);
}
if(keys & KEY_UART_EN)
{
flag_notify(EVT_MEM_DECODE_INS);
}
#ifndef BOOSTXL_CC2650MA
if (keys & KEY_LEFT)
{
//Display Discovery Results
@@ -1110,13 +1146,21 @@ static void SimpleBLECentral_handleKeys(uint8_t shift, uint8_t keys)
//Start scanning
SimpleBLECentral_discoverDevices();
}
#endif
break;
}
case BLE_STATE_BROWSING:
{
if(keys & KEY_REQ){
flag_notify(EVT_PIN_REQST);
}
if(keys & KEY_UART_EN){
flag_notify(EVT_MEM_DECODE_INS);
}
#ifndef BOOSTXL_CC2650MA
if (keys & KEY_LEFT)
{
//Navigate through discovery results
@@ -1206,24 +1250,33 @@ static void SimpleBLECentral_handleKeys(uint8_t shift, uint8_t keys)
}
}
}
#endif
break;
}
case BLE_STATE_CONNECTING:
//Nothing happens if buttons are pressed while the device is connecting.
break;
case BLE_STATE_CONNECTED:
{
if(keys & KEY_REQ){
flag_notify(EVT_PIN_REQST);
}
if(keys & KEY_UART_EN)
{
flag_notify(EVT_MEM_DECODE_INS);
}
#ifndef BOOSTXL_CC2650MA
if (keys & KEY_LEFT) //Navigate though menu.
{
//Iterate through rows
switch (selectedMenuItem)
{
case MENU_ITEM_CONN_PARAM_UPDATE:
{
selectedMenuItem = MENU_ITEM_RSSI;
if (SimpleBLECentral_RssiFind(connHandle) == NULL)
{
@@ -1242,8 +1295,9 @@ static void SimpleBLECentral_handleKeys(uint8_t shift, uint8_t keys)
#endif
}
break;
}
case MENU_ITEM_RSSI:
{
selectedMenuItem = MENU_ITEM_READ_WRITE;
// Display_print0(dispHandle, ROW_SEVEN, 0, ">Read/write req");
#ifndef BOOSTXL_CC2650MA
@@ -1251,8 +1305,10 @@ static void SimpleBLECentral_handleKeys(uint8_t shift, uint8_t keys)
mem_UART_newline();
#endif
break;
}
case MENU_ITEM_READ_WRITE:
{
selectedMenuItem = MENU_ITEM_DISCONNECT;
// Display_print0(dispHandle, ROW_SEVEN, 0, ">Disconnect");
#ifndef BOOSTXL_CC2650MA
@@ -1260,8 +1316,10 @@ static void SimpleBLECentral_handleKeys(uint8_t shift, uint8_t keys)
mem_UART_newline();
#endif
break;
}
case MENU_ITEM_DISCONNECT:
{
selectedMenuItem = MENU_ITEM_CONN_PARAM_UPDATE;
// Display_print0(dispHandle, ROW_SEVEN, 0, ">Param upd req");
#ifndef BOOSTXL_CC2650MA
@@ -1269,6 +1327,7 @@ static void SimpleBLECentral_handleKeys(uint8_t shift, uint8_t keys)
mem_UART_newline();
#endif
break;
}
}
}
if (keys & KEY_RIGHT)
@@ -1276,6 +1335,7 @@ static void SimpleBLECentral_handleKeys(uint8_t shift, uint8_t keys)
switch (selectedMenuItem)
{
case MENU_ITEM_CONN_PARAM_UPDATE:
{
//Connection Parameter Update
// Display_print0(dispHandle, ROW_FOUR, 0, "Param upd req");
switch (currentConnectionParameter)
@@ -1298,8 +1358,10 @@ static void SimpleBLECentral_handleKeys(uint8_t shift, uint8_t keys)
break;
}
break;
}
case MENU_ITEM_RSSI:
{
// Start or cancel RSSI polling
if (SimpleBLECentral_RssiFind(connHandle) == NULL)
{
@@ -1329,13 +1391,15 @@ static void SimpleBLECentral_handleKeys(uint8_t shift, uint8_t keys)
}
}
break;
}
case MENU_ITEM_READ_WRITE:
{
if (state == BLE_STATE_CONNECTED &&
charHdl != 0 &&
procedureInProgress == FALSE)
{
uint8_t status;
uint8_t status, WWR=0;
uint8_t ack[4] = {0,0,0,0};
static uint8_t enable_notify = 1;
// Do a read or write as long as no other read or write is in progress
@@ -1474,23 +1538,33 @@ static void SimpleBLECentral_handleKeys(uint8_t shift, uint8_t keys)
}
}
break;
}
case MENU_ITEM_DISCONNECT:
{
GAPCentralRole_TerminateLink(connHandle);
state = BLE_STATE_DISCONNECTING;
// Display_clearLines(dispHandle, ROW_ONE, ROW_SEVEN);
// Display_print0(dispHandle, ROW_ONE, 0, "Disconnecting");
break;
}
}
}
#endif
break;
}
// case BLE_RECV_UART:{
// SetMemOutputPIN(Board_GLED, 1);
// int rxBytes = UART_read(uart_handle, UART_rxBuf, 10);
// UART_write(uart_handle, UART_rxBuf, 10);
// break;
// }
default:{
if(keys & KEY_REQ){
flag_notify(EVT_PIN_REQST);
}
if(keys & KEY_UART_EN)
{
flag_notify(EVT_MEM_DECODE_INS);
}
break;
}
}
return;
}
@@ -1531,23 +1605,29 @@ static void SimpleBLECentral_processGATTMsg(gattMsgEvent_t *pMsg)
mem_UART_newline();
#endif
// mem_UART_display_u8((uint8_t *) pMsg->msg.errorRsp.errCode);
UART_write(uart_handle, "e1", 3);
}
else
{
// After a successful read, display the read value
// Display_print1(dispHandle, ROW_SIX, 0, "Read rsp: %d", pMsg->msg.readRsp.pValue[0]);
char ret[7];
// CIS_length = CIS_BUFF_PREFIX + pMsg->msg.readRsp.len;
uint8_t recv_len = pMsg->msg.readRsp.pValue[0];
CIS_length = CIS_BUFF_PREFIX + recv_len;
memcpy(CIS_data + CIS_BUFF_PREFIX, &pMsg->msg.readRsp.pValue[1] , recv_len);
flag_notify(EVT_MEM_RETURN_DATA);
#ifndef BOOSTXL_CC2650MA
ret[0] = pMsg->msg.readRsp.pValue[0] + '0';
ret[1] = pMsg->msg.readRsp.pValue[1] + '0';
ret[2] = pMsg->msg.readRsp.pValue[2] + '0';
ret[3] = pMsg->msg.readRsp.pValue[3] + '0';
ret[4] = pMsg->msg.readRsp.pValue[4] + '0';
ret[5] = pMsg->msg.readRsp.len;
ret[6] = '\0';
mem_UART_display("Read rsp: ");
mem_UART_display_u16(ret[5]);
mem_UART_newline();
// char ret[7];
// ret[0] = pMsg->msg.readRsp.pValue[0] + '0';
// ret[1] = pMsg->msg.readRsp.pValue[1] + '0';
// ret[2] = pMsg->msg.readRsp.pValue[2] + '0';
// ret[3] = pMsg->msg.readRsp.pValue[3] + '0';
// ret[4] = pMsg->msg.readRsp.pValue[4] + '0';
// ret[5] = pMsg->msg.readRsp.len;
// ret[6] = '\0';
// mem_UART_display("Read rsp: ");
// mem_UART_display_u16(ret[5]);
// mem_UART_newline();
#endif
}
@@ -1561,6 +1641,7 @@ static void SimpleBLECentral_processGATTMsg(gattMsgEvent_t *pMsg)
{
// Display_print1(dispHandle, ROW_SIX, 0, "Write Error %d", pMsg->msg.errorRsp.errCode);
// mem_UART_display_u8((uint8_t *) pMsg->msg.errorRsp.errCode);
#ifndef BOOSTXL_CC2650MA
mem_UART_display("Write Error: ");
mem_UART_newline();
@@ -1572,8 +1653,9 @@ static void SimpleBLECentral_processGATTMsg(gattMsgEvent_t *pMsg)
// increment value
// Display_print1(dispHandle, ROW_SIX, 0, "Write sent: %d", charVal++);
// mem_UART_display("write success\n\r");
char ACK[15] = {4,0,1,3}; //ack success
UART_write(uart_handle, ACK, 4);
}
procedureInProgress = FALSE;
}
else if (pMsg->method == ATT_FLOW_CTRL_VIOLATED_EVENT)
@@ -1598,20 +1680,28 @@ static void SimpleBLECentral_processGATTMsg(gattMsgEvent_t *pMsg)
mem_UART_newline();
#else
// MTU size
uint8_t connect_done[4] = {"M", "T", "U", pMsg->msg.mtuEvt.MTU};
UART_write(uart_handle, connect_done, 4);
#endif
// uint8_t connect_done[4] = {"M", "T", "U", pMsg->msg.mtuEvt.MTU};
// UART_write(uart_handle, connect_done, 4);
#endif
}
else if (pMsg->method == ATT_HANDLE_VALUE_NOTI){
attHandleValueNoti_t *att_notify = (attHandleValueNoti_t *)(&pMsg->msg);
central_handle_notify(att_notify->len, att_notify->pValue);
if((procedureInProgress == FALSE) && (!flag_mask(EVT_MEM_NOTIFY_HANDLE))){
attHandleValueNoti_t *att_notify = (attHandleValueNoti_t *)(&pMsg->msg);
// central_handle_notify(att_notify->len, att_notify->pValue);
notify_length = att_notify->len;
for(int i=0 ; i<notify_length ; i++){
notify_value[i] = att_notify->pValue[i];
}
flag_notify(EVT_MEM_NOTIFY_HANDLE);
}
}
else if (discState != BLE_DISC_STATE_IDLE)
{
// mem_UART_display("BLE_DISC_STATE_IDLE \n\r");
// err_ack[7] = 1;
// UART_write(uart_handle, err_ack, 10);
SimpleBLECentral_processGATTDiscEvent(pMsg);
}
} // else - in case a GATT message came after a connection has dropped, ignore it.
@@ -1928,7 +2018,6 @@ static void SimpleBLECentral_processGATTDiscEvent(gattMsgEvent_t *pMsg)
mem_UART_newline();
#endif
discState = BLE_DISC_STATE_SVC;
// Discovery simple BLE service
VOID GATT_DiscPrimaryServiceByUUID(connHandle, uuid, ATT_BT_UUID_SIZE,
selfEntity);
@@ -1998,10 +2087,11 @@ static void SimpleBLECentral_processGATTDiscEvent(gattMsgEvent_t *pMsg)
mem_UART_newline();
#else
// connect done
uint8_t connect_done[4] = {42, 95, 5, 23};
UART_write(uart_handle, connect_done, 4);
selectedMenuItem = MENU_ITEM_READ_WRITE;
char ACK[10] = {4, scanRes, 4, 46, 80, 48, 4};
UART_write(uart_handle, ACK, 10);
#endif
procedureInProgress = FALSE;
procedureInProgress = FALSE;
}
discState = BLE_DISC_STATE_IDLE;
}
@@ -2121,6 +2211,52 @@ Void SimpleBLECentral_timeoutConnecting(UArg arg0)
}
}
static bool SimpleBLECentral_checkBPSDeviceInfo(uint8_t *pEvtData, uint8_t dataLen){
uint8_t adLen;
uint8_t adType;
uint8_t *pEnd;
uint8_t *p = pEvtData;
pEnd = p + dataLen - 1;
// While end of data not reached
while (p < pEnd)
{
// Get length of next data item
adLen = *p++;
if (adLen > 0)
{
adType = *p;
// If AD type is MANUFACTURER_SPECIFIC
if(adType == GAP_ADTYPE_MANUFACTURER_SPECIFIC)
{
p++;
adLen--;
if((*p == 'B') &&
(*(p+1) == 'P') &&
(*(p+2) == 'H') &&
(*(p+3) == 'S')){
return TRUE;
}
// Handle possible erroneous extra byte in advertisement data
if (adLen == 1)
{
p++;
}
}
else
{
// Go to next item
p += adLen;
}
}
}
// No name found
return FALSE;
}
/*********************************************************************
* @fn SimpleBLECentral_addDeviceInfo
*
@@ -2147,9 +2283,6 @@ static void SimpleBLECentral_addDeviceInfo(uint8_t *pAddr, uint8_t addrType)
// Add addr to scan result list
memcpy(devList[scanRes].addr, pAddr, B_ADDR_LEN);
devList[scanRes].addrType = addrType;
// Increment scan result count
scanRes++;
}
}
@@ -2215,11 +2348,17 @@ static bool SimpleBLECentral_findLocalName(uint8_t *pEvtData, uint8_t dataLen)
*/
static void SimpleBLECentral_addDeviceName(uint8_t i, uint8_t *pEvtData, uint8_t dataLen)
{
uint8_t scanRspLen;
uint8_t scanRspLen, scanRsp_realLen;
uint8_t scanRspType;
uint8_t *pEnd;
uint8_t j = 0;
pEnd = pEvtData + dataLen - 1;
scanRsp_realLen = *pEvtData;
pEnd = pEvtData + scanRsp_realLen;
// pEnd = pEvtData + dataLen - 1;
//Set name length in the device struct.
devList[i].nameLength = scanRsp_realLen - 1;
// While end of data not reached
while (pEvtData < pEnd)
@@ -2234,18 +2373,14 @@ static void SimpleBLECentral_addDeviceName(uint8_t i, uint8_t *pEvtData, uint8_t
if ((scanRspType == GAP_ADTYPE_LOCAL_NAME_SHORT) ||
(scanRspType == GAP_ADTYPE_LOCAL_NAME_COMPLETE))
{
//Set name length in the device struct.
devList[i].nameLength = scanRspLen - 1;
pEvtData++;
uint8_t j = 0;
//Copy device name from the scan response data
while ((pEvtData < pEnd) &&
(j < scanRspLen - 1))
while ((pEvtData <= pEnd) && (j < devList[i].nameLength))
{
devList[i].localName[j] = *pEvtData;
pEvtData++;
j++;
devList[i].localName[j++] = *pEvtData++;
// j++;
// LocalName[i][j] = *pEvtData;
}
}
}
@@ -2258,11 +2393,17 @@ static void SimpleBLECentral_addDeviceName(uint8_t i, uint8_t *pEvtData, uint8_t
}
static void SimepleBLECentral_getDeviceinfo(uint8_t i, uint8_t *pEvtData, uint8_t dataLen){
uint8_t scanRspLen;
uint8_t scanRspLen, scanRsp_realLen, scan_deviceName_len;
uint8_t scanRspType;
uint8_t *pEnd;
pEnd = pEvtData + dataLen - 1;
scan_deviceName_len = *pEvtData;
pEvtData = pEvtData + scan_deviceName_len + 1;
scanRsp_realLen = *pEvtData;
pEnd = pEvtData + scanRsp_realLen;
// pEnd = pEvtData + dataLen - 1;
// While end of data not reached
while (pEvtData < pEnd)
@@ -2282,7 +2423,7 @@ static void SimepleBLECentral_getDeviceinfo(uint8_t i, uint8_t *pEvtData, uint8_
LEN_BATTERY_INFO};
//Copy device name from the scan response data
while ((pEvtData < pEnd) && (j < scanRspLen - 1))
while ((pEvtData <= pEnd) && (j < scanRsp_realLen - 1))
{
if( j < len[0] ){
devList[i].company_code[k++] = *pEvtData++;
@@ -2305,7 +2446,23 @@ static void SimepleBLECentral_getDeviceinfo(uint8_t i, uint8_t *pEvtData, uint8_
}
}
static void SimepleBLECentral_respDeviceinfo(uint8_t i, uint8_t *pEvtData, uint8_t dataLen){
uint8_t ret_info_buf[RET_INFO_BUF_SIZE]={0};
struct scan_packet_hdr_t scan_packet_hdr;
uint8_t index = 0;
scan_packet_hdr.scan_res_hdr = 4;
scan_packet_hdr.scan_res_cnt = scanRes;
scan_packet_hdr.pyld_len = DEV_INFO_LEN;
memcpy(&ret_info_buf[index], &scan_packet_hdr, SCAN_RES_HDR_LEN);
index += SCAN_RES_HDR_LEN;
memcpy(&ret_info_buf[index], &devList[i], DEV_INFO_LEN); //name 20byte, number0 kill
UART_write(uart_handle, ret_info_buf, RET_INFO_BUF_SIZE);
}
/*********************************************************************
* @fn SimpleBLECentral_eventCB
@@ -2448,3 +2605,7 @@ static uint8_t SimpleBLECentral_enqueueMsg(uint8_t event, uint8_t status,
}
return FALSE;
}
void ext_call_sem(){
Semaphore_post(sem);
}
@@ -3,14 +3,14 @@
#define VERSION_DATE
#define VERSION_DATE_YEAR 20
#define VERSION_DATE_MONTH 7
#define VERSION_DATE_DAY 10
#define VERSION_DATE_HOUR 18
#define VERSION_DATE_MINUTE 32
#define VERSION_DATE_MONTH 10
#define VERSION_DATE_DAY 6
#define VERSION_DATE_HOUR 11
#define VERSION_DATE_MINUTE 0
// this is NOT the version hash !!
// it's the last version hash
#define VERSION_HASH 93deaea1f3ee21a1ff52d9cd2cfd7e4ea97d26d9
#define VERSION_HASH 2b572b198f523815948cadc01f47c1eb24bed414
#define VERSION_GIT_BRANCH simple_central_ma_pin
#endif
@@ -381,7 +381,6 @@ typedef struct ADCBuf_FxnTable {
*
* @sa ADCBuf_init()
*/
typedef struct ADCBuf_Config {
/*! Pointer to a table of driver-specific implementations of ADC APIs */
const ADCBuf_FxnTable *fxnTablePtr;
@@ -270,7 +270,7 @@ PIN_Status PIN_init(const PIN_Config aPinCfg[]) {
continue;
}
// Check that pin exists and is available
if (PIN_ID(aPinCfg[i])>=PIN_NumPins || (bmReservedPins & (1<<( PIN_ID(aPinCfg[i]) )) )) {
if (PIN_ID(aPinCfg[i])>=PIN_NumPins || bmReservedPins&(1<<PIN_ID(aPinCfg[i]))) {
return PIN_NO_ACCESS;
}
// Mark pin as being in aPinConfig
@@ -146,7 +146,6 @@
extern "C" {
#endif
// clang-format off
#include <xdc/std.h>
#include <stdint.h>
#include <stdbool.h>
@@ -159,13 +158,14 @@ extern "C" {
#include <driverlib/ioc.h>
#include <driverlib/timer.h>
#include <inc/hw_gpt.h>
// clang-format on
/*!
* @brief
* Definitions for specifying the GPTimer configuration (width)
*/
typedef enum GPTimerCC26XX_Width {
typedef enum GPTimerCC26XX_Width
{
GPT_CONFIG_32BIT = GPT_CFG_CFG_32BIT_TIMER,
GPT_CONFIG_16BIT = GPT_CFG_CFG_16BIT_TIMER,
} GPTimerCC26XX_Width;
@@ -178,22 +178,26 @@ typedef enum GPTimerCC26XX_Width {
* also updating driver.
*
*/
typedef enum GPTimerCC26XX_Mode {
typedef enum GPTimerCC26XX_Mode
{
/* One shot mode counting upwards */
GPT_MODE_ONESHOT_UP = GPT_TAMR_TAMR_ONE_SHOT | GPT_TAMR_TACDIR_UP | GPT_TAMR_TAMIE,
/* One shot mode counting downwards */
GPT_MODE_ONESHOT_DOWN = GPT_TAMR_TAMR_ONE_SHOT | GPT_TAMR_TACDIR_DOWN | GPT_TAMR_TAMIE,
GPT_MODE_ONESHOT_UP = GPT_TAMR_TAMR_ONE_SHOT | GPT_TAMR_TACDIR_UP | \
GPT_TAMR_TAMIE,
/* Periodic mode counting upwards */
GPT_MODE_PERIODIC_UP = GPT_TAMR_TAMR_PERIODIC | GPT_TAMR_TACDIR_UP | GPT_TAMR_TAMIE,
/* Periodic mode counting downwards */
GPT_MODE_PERIODIC_DOWN = GPT_TAMR_TAMR_PERIODIC | GPT_TAMR_TACDIR_DOWN | GPT_TAMR_TAMIE,
GPT_MODE_PERIODIC_UP = GPT_TAMR_TAMR_PERIODIC | GPT_TAMR_TACDIR_UP | \
GPT_TAMR_TAMIE,
/* Edge count mode counting upwards */
GPT_MODE_EDGE_COUNT_UP = GPT_TAMR_TAMR_CAPTURE | GPT_TAMR_TACDIR_UP | GPT_TAMR_TACM_EDGCNT,
GPT_MODE_EDGE_COUNT_UP = GPT_TAMR_TAMR_CAPTURE | GPT_TAMR_TACDIR_UP | \
GPT_TAMR_TACM_EDGCNT,
/* Edge count mode counting upwards */
GPT_MODE_EDGE_TIME_UP = GPT_TAMR_TAMR_CAPTURE | GPT_TAMR_TACDIR_UP | GPT_TAMR_TACM_EDGTIME,
GPT_MODE_EDGE_TIME_UP = GPT_TAMR_TAMR_CAPTURE | GPT_TAMR_TACDIR_UP | \
GPT_TAMR_TACM_EDGTIME,
/* PWM mode counting downwards. This specific configuration is used by the
PWM2TimerCC26XX driver */
GPT_MODE_PWM = GPT_TAMR_TAMR_PERIODIC | GPT_TAMR_TACDIR_UP | GPT_TAMR_TAAMS_PWM | GPT_TAMR_TACM_EDGCNT | GPT_TAMR_TAPLO_CCP_ON_TO | GPT_TAMR_TAPWMIE_EN | GPT_TAMR_TAMRSU_CYCLEUPDATE,
GPT_MODE_PWM = GPT_TAMR_TAMR_PERIODIC | GPT_TAMR_TACDIR_UP | \
GPT_TAMR_TAAMS_PWM | GPT_TAMR_TACM_EDGCNT | \
GPT_TAMR_TAPLO_CCP_ON_TO | GPT_TAMR_TAPWMIE_EN | \
GPT_TAMR_TAMRSU_CYCLEUPDATE,
} GPTimerCC26XX_Mode;
/*!
@@ -202,15 +206,16 @@ typedef enum GPTimerCC26XX_Mode {
* arguments should be a bit vector containing these definitions.
* See description in Technical Reference
*/
typedef enum GPTimerCC26XX_Interrupt {
GPT_INT_TIMEOUT = 1 << 0,
GPT_INT_CAPTURE_MATCH = 1 << 1,
GPT_INT_CAPTURE = 1 << 2,
GPT_INT_MATCH = 1 << 3,
typedef enum GPTimerCC26XX_Interrupt
{
GPT_INT_TIMEOUT = 1 << 0,
GPT_INT_CAPTURE_MATCH = 1 << 1,
GPT_INT_CAPTURE = 1 << 2,
GPT_INT_MATCH = 1 << 3,
} GPTimerCC26XX_Interrupt;
/* Number of entries in GPTimerCC26XX_Interrupt */
#define GPT_NUM_INTS 4
#define GPT_NUM_INTS 4
/*!
* @brief
@@ -218,7 +223,8 @@ typedef enum GPTimerCC26XX_Interrupt {
* Used in GPTimer configuration structure GPTimerCC26XX_config to
* configure the corresponding timer unit.
*/
typedef enum GPTimerCC26XX_Part {
typedef enum GPTimerCC26XX_Part
{
GPT_A = 0,
GPT_B,
GPT_PARTS_COUNT,
@@ -232,7 +238,8 @@ typedef enum GPTimerCC26XX_Part {
* @sa PINCC26XX_setMux
* @sa GPTimerCC26XX_getPinMux
*/
typedef enum GPTimerCC26XX_PinMux {
typedef enum GPTimerCC26XX_PinMux
{
GPT_PIN_0A = IOC_PORT_MCU_PORT_EVENT0,
GPT_PIN_0B = IOC_PORT_MCU_PORT_EVENT1,
GPT_PIN_1A = IOC_PORT_MCU_PORT_EVENT2,
@@ -247,7 +254,8 @@ typedef enum GPTimerCC26XX_PinMux {
* @brief
* Definitions for controlling timer debug stall mode
*/
typedef enum GPTimerCC26XX_DebugMode {
typedef enum GPTimerCC26XX_DebugMode
{
GPTimerCC26XX_DEBUG_STALL_OFF = 0,
GPTimerCC26XX_DEBUG_STALL_ON,
} GPTimerCC26XX_DebugMode;
@@ -257,26 +265,28 @@ typedef enum GPTimerCC26XX_DebugMode {
* Definitions for controlling edges used for timer capture.
* Used in GPTimer edge-time and edge-count modes.
*/
typedef enum GPTimerCC26XX_Edge {
typedef enum GPTimerCC26XX_Edge
{
GPTimerCC26XX_POS_EDGE = GPT_CTL_TAEVENT_POS,
GPTimerCC26XX_NEG_EDGE = GPT_CTL_TAEVENT_NEG,
GPTimerCC26XX_BOTH_EDGES = GPT_CTL_TAEVENT_BOTH,
} GPTimerCC26XX_Edge;
/* Forward declaration of GPTimer configuration */
typedef const struct GPTimerCC26XX_Config GPTimerCC26XX_Config;
typedef const struct GPTimerCC26XX_Config GPTimerCC26XX_Config;
/* GPTimer handle is pointer to configuration structure */
typedef GPTimerCC26XX_Config *GPTimerCC26XX_Handle;
typedef GPTimerCC26XX_Config * GPTimerCC26XX_Handle;
/* Interrupt bit vector. See GPTimerCC26XX_Interrupt for available interrupts */
typedef uint16_t GPTimerCC26XX_IntMask;
typedef uint16_t GPTimerCC26XX_IntMask;
/* Timer value */
typedef uint32_t GPTimerCC26XX_Value;
typedef uint32_t GPTimerCC26XX_Value;
/* Function prototype for interrupt callbacks */
typedef void (*GPTimerCC26XX_HwiFxn)(GPTimerCC26XX_Handle handle, GPTimerCC26XX_IntMask interruptMask);
typedef void (*GPTimerCC26XX_HwiFxn) (GPTimerCC26XX_Handle handle, GPTimerCC26XX_IntMask interruptMask);
/*!
* @brief GPTimer26XX Hardware attributes
@@ -298,11 +308,12 @@ typedef void (*GPTimerCC26XX_HwiFxn)(GPTimerCC26XX_Handle handle, GPTimerCC26XX_
* };
* @endcode
*/
typedef struct GPTimerCC26XX_HWAttrs {
typedef struct GPTimerCC26XX_HWAttrs
{
/*!< GPTimer peripheral base address */
uint32_t baseAddr;
/*! GPTimer peripheral interrupt vector */
uint8_t intNum;
uint8_t intNum;
/*! GPTimer peripheral's interrupt priority.
The CC26xx uses three of the priority bits,
meaning ~0 has the same effect as (7 << 5).
@@ -312,11 +323,11 @@ typedef struct GPTimerCC26XX_HWAttrs {
HWI's with priority 0 ignore the HWI dispatcher to support zero-latency
interrupts, thus invalidating the critical sections in this driver.
*/
uint8_t intPriority;
uint8_t intPriority;
/*!< GPTimer peripheral's power manager ID */
uint8_t powerMngrId;
uint8_t powerMngrId;
/*! GPTimer half timer unit */
GPTimerCC26XX_Part timer;
GPTimerCC26XX_Part timer;
/*! PIN driver MUX */
GPTimerCC26XX_PinMux pinMux;
} GPTimerCC26XX_HWAttrs;
@@ -335,7 +346,8 @@ typedef struct GPTimerCC26XX_HWAttrs {
* GPTimerCC26XX_Object gptimerCC26XXObjects[CC2650_GPTIMERCOUNT];
* @endcode
*/
typedef struct GPTimerCC26XX_Object {
typedef struct GPTimerCC26XX_Object
{
GPTimerCC26XX_Width width; /*!< Timer width configuration (16/32bit)*/
bool isOpen[GPT_PARTS_COUNT]; /*!< Object is opened flag */
Hwi_Struct hwi[GPT_PARTS_COUNT]; /*!< Hardware interrupt struct */
@@ -343,6 +355,7 @@ typedef struct GPTimerCC26XX_Object {
volatile bool powerConstraint[GPT_PARTS_COUNT]; /*!< Standby power constraint flag */
} GPTimerCC26XX_Object;
/*!
* @brief GPTimer Global configuration
*
@@ -363,10 +376,11 @@ typedef struct GPTimerCC26XX_Object {
* };
* @endcode
*/
struct GPTimerCC26XX_Config {
GPTimerCC26XX_Object * object;
struct GPTimerCC26XX_Config
{
GPTimerCC26XX_Object *object;
const GPTimerCC26XX_HWAttrs *hwAttrs;
GPTimerCC26XX_Part timerPart;
GPTimerCC26XX_Part timerPart;
};
/*!
@@ -377,12 +391,14 @@ struct GPTimerCC26XX_Config {
*
* @sa GPTimerCC26XX_Params_init()
*/
typedef struct GPTimerCC26XX_Params {
typedef struct GPTimerCC26XX_Params
{
GPTimerCC26XX_Width width; /*!< Timer configuration (32/16-bit) */
GPTimerCC26XX_Mode mode; /*!< Timer mode */
GPTimerCC26XX_DebugMode debugStallMode; /*!< Timer debug stall mode */
} GPTimerCC26XX_Params;
/*!
* @brief Function to initialize the GPTimerCC26XX_Params struct to
* its default values
@@ -480,6 +496,7 @@ extern void GPTimerCC26XX_setLoadValue(GPTimerCC26XX_Handle handle, GPTimerCC26X
*/
extern void GPTimerCC26XX_setMatchValue(GPTimerCC26XX_Handle handle, GPTimerCC26XX_Value matchValue);
/*!
* @brief Function to set which input edge the GPTimer capture should
* use. Applies to edge-count and edge-time modes
@@ -526,6 +543,7 @@ extern GPTimerCC26XX_Value GPTimerCC26XX_getFreeRunValue(GPTimerCC26XX_Handle ha
*/
extern GPTimerCC26XX_Value GPTimerCC26XX_getValue(GPTimerCC26XX_Handle handle);
/*!
* @brief Function to register a CPU interrupt for a given timer handle and
* enable a set of timer interrupt sources. The interrupt to the CPU
@@ -627,10 +645,12 @@ extern void GPTimerCC26XX_configureDebugStall(GPTimerCC26XX_Handle handle, GPTim
*
* @sa GPTimerCC26XX_open
*/
static inline GPTimerCC26XX_PinMux GPTimerCC26XX_getPinMux(GPTimerCC26XX_Handle handle) {
static inline GPTimerCC26XX_PinMux GPTimerCC26XX_getPinMux(GPTimerCC26XX_Handle handle)
{
return handle->hwAttrs->pinMux;
}
#ifdef __cplusplus
}
#endif
@@ -1,4 +1,4 @@
Log started 11/13/2018 at 14:56:00
Log started 07/20/2020 at 13:18:23
Preferred installation mode : win32
Trying to init installer in mode win32
Mode win32 successfully initialized
@@ -30875,4 +30875,4 @@ Creating uninstaller 50%
Creating uninstaller 75%
Creating uninstaller 100%
Installation completed
Log finished 11/13/2018 at 15:08:10
Log finished 07/20/2020 at 13:24:10
Binary file not shown.
Binary file not shown.