Compare commits
363 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 06a6010cf3 | |||
| f006ef75d5 | |||
| c5f06cd076 | |||
| e2f2b88e80 | |||
| 7cbe888f39 | |||
| 7121a12737 | |||
| 68e395a86c | |||
| 48eb5f0196 | |||
| 5fdd0a1e07 | |||
| 157676b29d | |||
| 53ba84d5d3 | |||
| 50da5a1876 | |||
| 5e42dc0056 | |||
| 5e53b7d651 | |||
| b129f2b7d4 | |||
| 5502099315 | |||
| a3670d0e9a | |||
| 6f8479770d | |||
| d89744b1c7 | |||
| 224475f342 | |||
| 7164b5f6c3 | |||
| 0406cdea67 | |||
| 91787a5bb4 | |||
| 1c074fd180 | |||
| a5051dd42b | |||
| d1583ba5e1 | |||
| cc48dab88b | |||
| 82383bbfcf | |||
| 99a45314ae | |||
| 17c501b855 | |||
| 1933ccbfe7 | |||
| 092b848c4d | |||
| 8597e29a8a | |||
| f3b8d74f82 | |||
| 4d3dee1c40 | |||
| ca70cba3bf | |||
| 5ec4104255 | |||
| bb1ec23e02 | |||
| 1615914ce4 | |||
| 7b33bb5916 | |||
| 0c22389b52 | |||
| 067281c449 | |||
| 74273f1469 | |||
| 07d606f5a9 | |||
| aac9d26052 | |||
| 58c398e73f | |||
| b81c5eb6ce | |||
| e91089016e | |||
| 68f1cbf030 | |||
| d73dccbefe | |||
| 75f62f2a3e | |||
| a28b9ffd35 | |||
| bd6f745033 | |||
| 54c6d2a217 | |||
| 06bdc3aee4 | |||
| 4c387980c8 | |||
| 00ee10a94a | |||
| 7a7aaf62a7 | |||
| 62e24a2323 | |||
| eb17de7490 | |||
| aa336be8df | |||
| a06d1a1849 | |||
| d153d91e71 | |||
| 8cb6594197 | |||
| e44e6f511d | |||
| f440f56b3c | |||
| 8968967ad1 | |||
| 6abab9fe6b | |||
| cf481d482a | |||
| 91b11fe3d9 | |||
| 96a44ad200 | |||
| b6fd48f9d9 | |||
| 3d9c3f4e1e | |||
| 05561a9959 | |||
| fcd350c0d4 | |||
| d07f8636dd | |||
| 91315be16f | |||
| 898bd81599 | |||
| 8a92a1ba8b | |||
| 7c83a01731 | |||
| c05a76bd6d | |||
| 425414dd2d | |||
| 65c85aca40 | |||
| 1664a2cabd | |||
| c207965207 | |||
| 7680879264 | |||
| 031600d62a | |||
| 0ce86bb4dd | |||
| b848182595 | |||
| 54b48ef57d | |||
| 03cbcdce49 | |||
| 52d51de3fd | |||
| f65817e18c | |||
| 6f6fffa84a | |||
| fdb667ce8c | |||
| 808c042c5a | |||
| 09c1b3193d | |||
| c39b3d83f7 | |||
| 1b72ead038 | |||
| 68645bab82 | |||
| 21e366b601 | |||
| e129608ad0 | |||
| 4aadcbdefe | |||
| bcf3442aa5 | |||
| 8b34a9b39f | |||
| ce70363247 | |||
| 0143d16b48 | |||
| b8c00d825e | |||
| d0ecad7862 | |||
| d16038974c | |||
| dd9198c548 | |||
| 371c6b1f83 | |||
| 877642fe15 | |||
| c7d5dc7330 | |||
| 40a0025ffc | |||
| 528649f909 | |||
| 83c19f1e93 | |||
| 57ec1ad0c6 | |||
| 555bd907fb | |||
| 695cac4cf0 | |||
| cf4f4627c9 | |||
| b74451a18a | |||
| 61be6c01fc | |||
| c1f8e263d4 | |||
| fe19490b23 | |||
| e49efd8798 | |||
| d1c70811b4 | |||
| 03667cb36c | |||
| c1a2b184f6 | |||
| 3f831ff84c | |||
| d8c61db417 | |||
| dacf0d1055 | |||
| cfc68885c8 | |||
| b841454957 | |||
| 882b5efbd0 | |||
| 5c33c0130a | |||
| 46d0c4b09e | |||
| 48924b400b | |||
| 1b6aeb1f70 | |||
| 3fc364134a | |||
| fa522254f3 | |||
| 8c41b0a976 | |||
| cf7d0616ad | |||
| 25d7722d93 | |||
| 336b325f03 | |||
| 246f871ba7 | |||
| 96b61d364e | |||
| eba70d4af7 | |||
| b24a275019 | |||
| 7621490d13 | |||
| eb17cda0dc | |||
| cd1bc37e62 | |||
| c151eb1fab | |||
| 4782c604c5 | |||
| de908817c4 | |||
| e853241537 | |||
| 097c475e5f | |||
| 3e64d122de | |||
| 466a6627ef | |||
| c08ea10397 | |||
| 500b9b00fd | |||
| b06bba4333 | |||
| 0eeb973e15 | |||
| 46f797f083 | |||
| d24cde42b5 | |||
| 19bc7d23db | |||
| 3849a25e7f | |||
| 4c760ac644 | |||
| ba990ce65f | |||
| 0ef19c37dc | |||
| 469c06390a | |||
| f09e440b45 | |||
| 4e82451108 | |||
| d21613cee8 | |||
| b8308303fc | |||
| 80f9d63a09 | |||
| 81945184d1 | |||
| 955c3a2e7c | |||
| 664b6e56b9 | |||
| f94e4375f3 | |||
| 1cf1c01163 | |||
| 0cd2fe0528 | |||
| fb34754e1f | |||
| 20d5804a87 | |||
| 5851dc9707 | |||
| 7cc337c0fd | |||
| 09685951c3 | |||
| 720f6d3548 | |||
| 1393d568a0 | |||
| 92b6a3a4f2 | |||
| becdca9dc7 | |||
| dc3cce9990 | |||
| f8d7296f76 | |||
| 615eba69bd | |||
| aab6d49812 | |||
| 9bfef795e7 | |||
| 428808715a | |||
| 7dfc856318 | |||
| c87fb49656 | |||
| df21b2021a | |||
| 6cb386e578 | |||
| bd7c73f2a5 | |||
| ea21075a1d | |||
| 71a5d93a21 | |||
| c461f71cf2 | |||
| 9ce8ea1400 | |||
| b181d9273b | |||
| 069881f5c4 | |||
| ce61501d43 | |||
| 386f2940ad | |||
| 1965f6e182 | |||
| f699ecdae9 | |||
| 6655e7dd20 | |||
| 1101798a28 | |||
| e7836141d1 | |||
| b824867264 | |||
| a115b00822 | |||
| e34a0e9d5b | |||
| 2dee13b495 | |||
| cdd208fc7b | |||
| 86df7e4735 | |||
| 0cb04a5fdb | |||
| b05a3db6f0 | |||
| c0f9a6216c | |||
| 5f21e2bae6 | |||
| 69e2327b41 | |||
| 80d23a4dad | |||
| 6dc12400c5 | |||
| 68fcbd56f6 | |||
| 2ff06e2142 | |||
| 4ed89630f7 | |||
| cb512647b3 | |||
| 284725f420 | |||
| d9e2aad988 | |||
| 3f0aeb68ea | |||
| 285500cd86 | |||
| c7dfaff662 | |||
| be85ccb830 | |||
| f1f7b519e5 | |||
| 694395f997 | |||
| e88fb5c895 | |||
| bbdc1cb56f | |||
| 9d94be8dd6 | |||
| 2b70c8b1d1 | |||
| 56dafa2198 | |||
| 47a9e50a2e | |||
| bffc1e89c4 | |||
| 2ad8bf988a | |||
| ef4eb1f30b | |||
| f2d1faeec4 | |||
| bbb0481774 | |||
| 67fa04b8ed | |||
| aac42015f8 | |||
| debc9b061f | |||
| 43da6cc840 | |||
| 170eb132a4 | |||
| 875f5c2d9d | |||
| fba9d4cf67 | |||
| 72ecd7e39f | |||
| 00e35e4042 | |||
| 1d3d8e0836 | |||
| db61e6b3ad | |||
| b5d76a99b2 | |||
| 2d566a420d | |||
| 857ea23420 | |||
| d5d6768622 | |||
| e275676295 | |||
| 9c9a8e635b | |||
| 0d8f2fe522 | |||
| 2e011084ed | |||
| cfe57b152f | |||
| 8ed2bc6ae3 | |||
| 7647186154 | |||
| 9e608408be | |||
| e5de63e427 | |||
| b988c113d2 | |||
| c70122fb36 | |||
| ee4326c2a2 | |||
| 29c4a58451 | |||
| c93b2a4018 | |||
| ef394d494f | |||
| 3bab66d5df | |||
| 79c7d01eb9 | |||
| b36c4ffa56 | |||
| 387798f8e6 | |||
| 3c767b1d6d | |||
| d950315aa3 | |||
| 182a9e257c | |||
| d97de5d15b | |||
| f62d4461fa | |||
| 2607db7ed5 | |||
| 72149bb230 | |||
| 01593c7a8c | |||
| 455a13deca | |||
| 940d546f47 | |||
| 0b7cf68e5d | |||
| 9ca208d93b | |||
| 39da1a900c | |||
| 71a5e874f7 | |||
| ed2e740b62 | |||
| 23a5a3ecbf | |||
| d1b9101759 | |||
| c8812cbddd | |||
| dc266290cc | |||
| 36aa36bcf2 | |||
| b64867048e | |||
| 266dd0c8e3 | |||
| c1c91a384e | |||
| 4ea34c3c9f | |||
| 154cd7d5f0 | |||
| 727c9f818b | |||
| 3ed3ab3d3a | |||
| 7e2a74e5b6 | |||
| 8238a1b694 | |||
| ee2d9499d6 | |||
| ecd941fe81 | |||
| 4db1663ece | |||
| 8096a37852 | |||
| 017ce4449c | |||
| 5103ad1d5c | |||
| 627b1a4675 | |||
| 34a7aa4551 | |||
| c685b50960 | |||
| 2d5733190e | |||
| 551546ab56 | |||
| d6a9017b5e | |||
| 7edccc31bc | |||
| df182c9ab7 | |||
| 2d6a7fd731 | |||
| ba2fb3eb1e | |||
| 93ed8f0d8a | |||
| ae120e6e33 | |||
| d45bfd0de7 | |||
| 9ee8c0b07b | |||
| 9bc065905c | |||
| 60dcd75bf1 | |||
| 78d00fdd0d | |||
| 4a8199ae8d | |||
| 84e110383f | |||
| 71169d5a6d | |||
| 7797c51579 | |||
| 7f1fbacf1e | |||
| 31428e35b3 | |||
| 40dfe19285 | |||
| 0983888cd9 | |||
| 50fa842b6f | |||
| d0cbab98e5 | |||
| f990de5498 | |||
| b133a4f8ae | |||
| f9d1fa88f9 | |||
| 26452b3362 | |||
| 63ca1cdd8e | |||
| 8b569c64e8 | |||
| 317be48f98 | |||
| 67e4fb1cdf | |||
| 8f1fdfabfa | |||
| aaadc5afc3 | |||
| fadf41c59a | |||
| a2bbbe3c98 | |||
| bbad2ee6eb | |||
| 24158d1f0f | |||
| a6f7159189 | |||
| 2c5d034e05 |
@@ -3,6 +3,7 @@
|
||||
# CSS package
|
||||
xdctools_*/
|
||||
ccsv8/
|
||||
simplelink/ble_sdk_2_02_02_25/examples/cc2650em/simple_peripheral/ccs/app/.config/
|
||||
|
||||
# CSS build files
|
||||
FlashROM/
|
||||
Binary file not shown.
@@ -0,0 +1,50 @@
|
||||
from devlib.util import print_instruction
|
||||
|
||||
STI_INSTRUCTION = {
|
||||
'GLOBAL': '3b001#header#;1b0;12bCURRENT',
|
||||
'LOCAL': '3b010#header;1b0;4b>CHANNEL;3b>STI_MODE;1b>PRECISION;12b>STI_FREQ;10b>STI_PW;10b>STI_PW_IPI;10b>STI_NUM'
|
||||
}
|
||||
|
||||
STI_PARAMETER = {
|
||||
'CURRENT': 10,
|
||||
'CHANNEL': 0,
|
||||
'STI_MODE': 3,
|
||||
'PRECISION': 0,
|
||||
'STI_FREQ': 10,
|
||||
'STI_PW': 10,
|
||||
'STI_PW_IPI': 10,
|
||||
'STI_NUM': 10,
|
||||
}
|
||||
|
||||
NEULIVE_INSTRUCTION = {
|
||||
'RIS': '3b101#header#;2b0;3b>LB;2b0;1bCH;1bFS;3b>WF;5b>TV;4b>PM;4b>NM;4b>SR',
|
||||
'UMC': '3b001#umc_parameter;3b>AG;4b>PW;6b>TT;2b>SB;6b>TF;1bCA;1bCB;1bCC;1bCD;4b>CHA;4b>CHB;4b>CHC;4b>CHD'
|
||||
}
|
||||
|
||||
NEULIVE_PARAMETER = {
|
||||
'LB': 0, # LOW BAND FREQEUNCY
|
||||
'CH': 0, # CHOPPER
|
||||
'FS': 0, # FAST SETTLE
|
||||
'WF': 1, # WAVEFORM : POS, NEG, P2N...etc.
|
||||
'TV': 0, # STIMULATION VOLTAGE
|
||||
'PM': 0, # P CHANNEL SELECT
|
||||
'NM': 0, # N CHANNEL SELECT
|
||||
'SR': 0, # ADC SAMPLING RATE
|
||||
'AG': 5, # AMP GAIN
|
||||
'PW': 0, # PULSE WIDTH
|
||||
'TT': 9, # STIMULATION TIMES
|
||||
'SB': 2, # STIMULATION BEHAVIOR
|
||||
'TF': 1, # STIMULATION FREQUENCY
|
||||
'CA': 1, # AMP CHANNEL A ENABLE
|
||||
'CB': 0, # AMP CHANNEL B ENABLE
|
||||
'CC': 0, # AMP CHANNEL C ENABLE
|
||||
'CD': 0, # AMP CHANNEL D ENABLE
|
||||
'CHA': 0, # AMP CHANNEL A
|
||||
'CHB': 1, # AMP CHANNEL B
|
||||
'CHC': 2, # AMP CHANNEL C
|
||||
'CHD': 3, # AMP CHANNEL D
|
||||
}
|
||||
|
||||
|
||||
print_instruction(NEULIVE_INSTRUCTION['RIS'],NEULIVE_PARAMETER)
|
||||
print_instruction(NEULIVE_INSTRUCTION['UMC'],NEULIVE_PARAMETER)
|
||||
@@ -0,0 +1,582 @@
|
||||
import re
|
||||
from typing import *
|
||||
|
||||
T = TypeVar('T')
|
||||
|
||||
|
||||
@overload
|
||||
def part_prefix(line: str, char: str, from_right=False) -> Tuple[Optional[str], str]:
|
||||
pass
|
||||
|
||||
|
||||
@overload
|
||||
def part_prefix(line: str, char: str, missing: T, from_right=False) -> Tuple[Union[str, T], str]:
|
||||
pass
|
||||
|
||||
|
||||
def part_prefix(line: str, char: str, missing: Optional[T] = None, from_right=False) -> Tuple[Union[None, str, T], str]:
|
||||
try:
|
||||
if from_right:
|
||||
i = line.rindex(char)
|
||||
else:
|
||||
i = line.index(char)
|
||||
return line[:i], line[i + len(char):]
|
||||
except ValueError:
|
||||
return missing, line
|
||||
|
||||
|
||||
@overload
|
||||
def part_suffix(line: str, char: str, from_right=False) -> Tuple[str, Optional[str]]:
|
||||
pass
|
||||
|
||||
|
||||
@overload
|
||||
def part_suffix(line: str, char: str, missing: T, from_right=False) -> Tuple[str, Union[str, T]]:
|
||||
pass
|
||||
|
||||
|
||||
def part_suffix(line: str, char: str, missing: Optional[T] = None, from_right=False) -> Tuple[str, Union[None, str, T]]:
|
||||
try:
|
||||
if from_right:
|
||||
i = line.rindex(char)
|
||||
else:
|
||||
i = line.index(char)
|
||||
return line[:i], line[i + len(char):]
|
||||
except ValueError:
|
||||
return line, missing
|
||||
|
||||
|
||||
def hex_line(data: Union[bytes, Sequence[int]], split=' ', truncate=False) -> str:
|
||||
""" bytes value to str
|
||||
|
||||
return example ::
|
||||
|
||||
# input
|
||||
b'\x00ABC\x00'
|
||||
|
||||
# output
|
||||
0x00 0x65 0x66 0x67 0x00
|
||||
|
||||
# output truncate version
|
||||
0x00 0x65 (skip 0x02) 0x00
|
||||
|
||||
:param data: bytes value
|
||||
:param split: char join between byte value
|
||||
:param truncate: truncate output if too long
|
||||
:return: byte value
|
||||
"""
|
||||
if truncate and len(data) > 16:
|
||||
line = list(map(lambda v: '%02X' % v, data[0:8]))
|
||||
line.append('(skip 0x%02X)' % (len(data) - 12))
|
||||
line.extend(map(lambda v: '%02X' % v, data[-4:]))
|
||||
return split.join(line)
|
||||
else:
|
||||
return split.join(map(lambda v: '%02X' % v, data))
|
||||
|
||||
|
||||
def endian_switch(value: int, bit: int) -> int:
|
||||
ret = 0
|
||||
|
||||
for _ in range(bit):
|
||||
ret = (ret << 1) | (value & 1)
|
||||
|
||||
value >>= 1
|
||||
|
||||
return ret
|
||||
|
||||
|
||||
def append_buffer(buffer: List[int], shift: int, width: int, value: int, little_endian=False) -> int:
|
||||
if width == 0:
|
||||
return shift % 8
|
||||
|
||||
if len(buffer) == 0:
|
||||
buffer.append(0)
|
||||
|
||||
if little_endian:
|
||||
value = endian_switch(value, width)
|
||||
|
||||
while shift >= 8:
|
||||
buffer.append(0)
|
||||
shift -= 8
|
||||
|
||||
while shift + width >= 8:
|
||||
# high
|
||||
offset = 8 - shift
|
||||
mask = (1 << offset) - 1
|
||||
buffer[-1] |= (value >> (width - offset)) & mask
|
||||
|
||||
if shift + width == 8:
|
||||
return 8
|
||||
|
||||
# low
|
||||
buffer.append(0)
|
||||
shift = 0
|
||||
width -= offset
|
||||
value &= (1 << width) - 1
|
||||
|
||||
offset = 8 - (shift + width)
|
||||
mask = (1 << width) - 1
|
||||
buffer[-1] |= (value & mask) << offset
|
||||
|
||||
return (shift + width) % 8
|
||||
|
||||
|
||||
class InstructionContentWidth:
|
||||
"""instruction width.
|
||||
|
||||
**format**
|
||||
|
||||
::
|
||||
|
||||
InstructionContentWidth :str
|
||||
= SIZE TYPE? ENDIAN? SIGN?
|
||||
|
||||
base = BASE ")"
|
||||
|
||||
SIGN = "+"
|
||||
|
||||
**SIZE**
|
||||
|
||||
bit width or byte length, default 1
|
||||
'*' for array
|
||||
|
||||
**TYPE**
|
||||
|
||||
==== ==================================
|
||||
TYPE description
|
||||
==== ==================================
|
||||
b bits
|
||||
B bytes 2-base value
|
||||
o, O bytes 8-base value
|
||||
d, D bytes 10-base value
|
||||
x, X bytes 16-base value
|
||||
==== ==================================
|
||||
|
||||
**ENDIAN**
|
||||
|
||||
====== ==================================
|
||||
ENDIAN description
|
||||
====== ==================================
|
||||
> big endian (default)
|
||||
< little endian
|
||||
====== ==================================
|
||||
|
||||
**BASE**
|
||||
|
||||
value base, 2 for bit default, 16 for byte default.
|
||||
|
||||
"""
|
||||
|
||||
__slots__ = ('_size', '_bytes_type', '_signed', '_little_endian')
|
||||
|
||||
BASE = {
|
||||
'b': 2,
|
||||
'B': 2,
|
||||
'o': 8,
|
||||
'O': 8,
|
||||
'd': 10,
|
||||
'D': 10,
|
||||
'x': 16,
|
||||
'X': 16,
|
||||
}
|
||||
|
||||
def __init__(self,
|
||||
size: Optional[int],
|
||||
bytes_type: str,
|
||||
signed_value=False,
|
||||
little_endian=False):
|
||||
self._size = size
|
||||
self._bytes_type = bytes_type
|
||||
self._signed = signed_value
|
||||
self._little_endian = little_endian
|
||||
|
||||
@property
|
||||
def size(self) -> Optional[int]:
|
||||
return self._size
|
||||
|
||||
@property
|
||||
def little_endian(self) -> bool:
|
||||
return self._little_endian
|
||||
|
||||
@property
|
||||
def signed(self) -> bool:
|
||||
# XXX InstructionContentWidth.signed not used
|
||||
return self._signed
|
||||
|
||||
@property
|
||||
def bytes_unit(self) -> bool:
|
||||
return self._bytes_type in 'BODX'
|
||||
|
||||
@property
|
||||
def is_array(self) -> bool:
|
||||
# XXX InstructionContentWidth.is_array not used
|
||||
return self._size is None
|
||||
|
||||
@property
|
||||
def width(self) -> int:
|
||||
if self._bytes_type in 'bB':
|
||||
return self._size
|
||||
else:
|
||||
return self._size * 8
|
||||
|
||||
@property
|
||||
def value_base(self) -> int:
|
||||
return self.BASE[self._bytes_type]
|
||||
|
||||
def __str__(self):
|
||||
return '%s%s%s%s' % (str(self._size) if self._size is not None else '*',
|
||||
self._bytes_type,
|
||||
'<' if self._little_endian else '>',
|
||||
'+' if self._signed else '')
|
||||
|
||||
PATTERN = re.compile(
|
||||
r'(?P<SIZE>(\*|\d+))?(?P<TYPE>[XxDdOoBb])(?P<ENDIAN>[<>])?(?P<SIGN>\+)?(?P<EXPR>.+)')
|
||||
|
||||
@classmethod
|
||||
def parse(cls, expr: str) -> Tuple['InstructionContentWidth', str]:
|
||||
m = cls.PATTERN.match(expr)
|
||||
|
||||
if m is None:
|
||||
raise RuntimeError('illegal instruction content width : ' + expr)
|
||||
|
||||
z = m.group('SIZE')
|
||||
t = m.group('TYPE')
|
||||
e = m.group('ENDIAN')
|
||||
s = m.group('SIGN')
|
||||
x = m.group('EXPR')
|
||||
|
||||
if z is None:
|
||||
z = 1
|
||||
elif z == '*':
|
||||
z = None
|
||||
else:
|
||||
z = int(z)
|
||||
|
||||
return InstructionContentWidth(z, t, signed_value=s is not None, little_endian=e == '<'), x
|
||||
|
||||
|
||||
class InstructionContent:
|
||||
"""
|
||||
**format**
|
||||
|
||||
::
|
||||
|
||||
InstructionContent
|
||||
= "#" ... # comment
|
||||
| InstructionContent "#" ... # instruction with comment
|
||||
| InstructionDataContent
|
||||
| InstructionConditionContent
|
||||
| CompactInstructionContent
|
||||
"""
|
||||
|
||||
__slots__ = ('_comment',)
|
||||
|
||||
def __init__(self, comment: Optional[str] = None):
|
||||
self._comment: Optional[str] = comment
|
||||
|
||||
@property
|
||||
def width(self) -> int:
|
||||
return 0
|
||||
|
||||
def build_instruction(self, context: Dict[str, Any], buffer: List[int], shift: int) -> int:
|
||||
"""
|
||||
|
||||
:param context: general case root
|
||||
:param buffer: instruction buffer
|
||||
:param shift: data offset
|
||||
:return: next data offset
|
||||
"""
|
||||
|
||||
return shift
|
||||
|
||||
def __str__(self):
|
||||
if self._comment is None:
|
||||
return '#'
|
||||
else:
|
||||
return '#' + self._comment
|
||||
|
||||
|
||||
class InstructionDataContent(InstructionContent):
|
||||
"""
|
||||
**format**
|
||||
|
||||
::
|
||||
|
||||
InstructionDataContent
|
||||
= InstructionContentWidth instruction_content
|
||||
|
||||
instruction_content
|
||||
= int # binary number
|
||||
| parameter_name :str
|
||||
| parameter_name[index:int] # array parameter access
|
||||
|
||||
|
||||
|
||||
|
||||
"""
|
||||
|
||||
__slots__ = ('_width', '_value', '_index')
|
||||
|
||||
def __init__(self,
|
||||
width: InstructionContentWidth,
|
||||
value: Union[int, str],
|
||||
comment: Optional[str] = None):
|
||||
super().__init__(comment)
|
||||
self._width: InstructionContentWidth = width
|
||||
|
||||
if isinstance(value, str) and '[' in value and value.endswith(']'):
|
||||
value, index = part_suffix(value[:-1], '[')
|
||||
|
||||
self._value: Union[int, str] = value
|
||||
self._index: str = index
|
||||
else:
|
||||
|
||||
self._value: Union[int, str] = value
|
||||
self._index: str = None
|
||||
|
||||
@property
|
||||
def width(self) -> int:
|
||||
return self._width.width
|
||||
|
||||
def value(self, context: Dict[str, Any]) -> Union[int, List[int]]:
|
||||
value = self._value
|
||||
|
||||
if isinstance(value, int):
|
||||
return value
|
||||
|
||||
try:
|
||||
return int(value, self._width.value_base)
|
||||
|
||||
except ValueError:
|
||||
ret = context[value]
|
||||
|
||||
index = self._index
|
||||
if index is None:
|
||||
return ret
|
||||
|
||||
else:
|
||||
try:
|
||||
index = int(index)
|
||||
except ValueError:
|
||||
index = int(context[index])
|
||||
|
||||
return ret[index]
|
||||
|
||||
def build_instruction(self, context: Dict[str, Any], buffer: List[int], shift: int) -> int:
|
||||
if self._width.is_array:
|
||||
raise NotImplemented()
|
||||
|
||||
else:
|
||||
value = int(self.value(context))
|
||||
|
||||
if self._width.bytes_unit:
|
||||
if self._width.size == 1:
|
||||
buffer.append(value)
|
||||
|
||||
else:
|
||||
tmp = []
|
||||
for _ in range(self._width.size):
|
||||
tmp.append(value & 0xFF)
|
||||
value >>= 8
|
||||
|
||||
if self._width.little_endian:
|
||||
buffer.extend(tmp)
|
||||
else:
|
||||
buffer.extend(tmp[::-1])
|
||||
|
||||
return 8
|
||||
|
||||
else:
|
||||
width = self._width.width
|
||||
return append_buffer(buffer, shift, width, value,
|
||||
little_endian=self._width.little_endian)
|
||||
|
||||
def __str__(self):
|
||||
if isinstance(self._value, int):
|
||||
value = bin(self._value)[2:]
|
||||
else:
|
||||
if self._index is not None:
|
||||
value = '%s[%s]' % (self._value, str(self._index))
|
||||
else:
|
||||
value = self._value
|
||||
|
||||
if self._comment is None:
|
||||
return '%s%s' % (self._width, value)
|
||||
else:
|
||||
return '%s%s#%s' % (self._width, value, self._comment)
|
||||
|
||||
|
||||
class InstructionConditionContent(InstructionDataContent):
|
||||
"""
|
||||
**json format**
|
||||
|
||||
::
|
||||
|
||||
InstructionConditionContent
|
||||
= InstructionContentWidth parameter_name "?"
|
||||
| InstructionContentWidth parameter_name "?:" if_false
|
||||
| InstructionContentWidth parameter_name "?" if_true ":" if_false
|
||||
|
||||
if_true, if_false
|
||||
= int
|
||||
| parameter_name :str
|
||||
"""
|
||||
|
||||
__slots__ = ('_true', '_false')
|
||||
|
||||
def __init__(self,
|
||||
width: InstructionContentWidth,
|
||||
value: str,
|
||||
if_true: Union[None, int, str] = None,
|
||||
if_false: Union[None, int, str] = None,
|
||||
comment: Optional[str] = None):
|
||||
|
||||
if if_true is not None and if_false is None:
|
||||
raise RuntimeError('lost if_true')
|
||||
|
||||
super().__init__(width, value, comment)
|
||||
|
||||
self._true = if_true
|
||||
self._false = if_false
|
||||
|
||||
def value(self, context: Dict[str, Any]) -> Union[int, List[int]]:
|
||||
value = context[self._value]
|
||||
test = value is not None
|
||||
|
||||
if self._true is None and self._false is None:
|
||||
return 1 if test else 0
|
||||
|
||||
elif self._true is None:
|
||||
assert self._false is not None
|
||||
|
||||
if test:
|
||||
return value
|
||||
else:
|
||||
branch = self._false
|
||||
|
||||
else:
|
||||
assert self._true is not None
|
||||
assert self._false is not None
|
||||
|
||||
branch = self._true if test else self._false
|
||||
|
||||
if isinstance(branch, int):
|
||||
return branch
|
||||
|
||||
try:
|
||||
return int(branch, self._width.value_base)
|
||||
|
||||
except ValueError:
|
||||
return context[branch]
|
||||
|
||||
def __str__(self):
|
||||
if self._comment is None:
|
||||
c = ''
|
||||
else:
|
||||
c = '#' + self._comment
|
||||
|
||||
if self._true is None and self._false is None:
|
||||
return "%s%s?%s" % (self._width, self._value, c)
|
||||
elif self._true is None:
|
||||
return "%s%s?:%s%s" % (self._width, self._value, self._false, c)
|
||||
else:
|
||||
return "%s%s?%s:%s%s" % (self._width, self._value, self._true, self._false, c)
|
||||
|
||||
|
||||
class CompactInstructionContent(InstructionContent):
|
||||
"""
|
||||
**json format**
|
||||
|
||||
::
|
||||
|
||||
CompactInstructionContent
|
||||
= InstructionContent ";" InstructionContent ...
|
||||
|
||||
"""
|
||||
|
||||
__slots__ = ('_instruction',)
|
||||
|
||||
def __init__(self, instruction: List[InstructionContent]):
|
||||
super().__init__()
|
||||
self._instruction = instruction
|
||||
|
||||
@property
|
||||
def width(self) -> int:
|
||||
return sum(map(lambda i: i.width, self._instruction))
|
||||
|
||||
def build_instruction(self, context: Dict[str, Any], buffer: List[int], shift: int) -> int:
|
||||
for instruction in self._instruction:
|
||||
shift = instruction.build_instruction(context, buffer, shift)
|
||||
|
||||
return shift
|
||||
|
||||
def __str__(self) -> str:
|
||||
return ';'.join(map(str, self._instruction))
|
||||
|
||||
|
||||
def parse_instruction(expr: str) -> InstructionContent:
|
||||
origin_expr = expr
|
||||
|
||||
if expr == '#':
|
||||
return InstructionContent()
|
||||
|
||||
elif expr.startswith('#'):
|
||||
return InstructionContent(comment=expr[1:])
|
||||
|
||||
elif ';' in expr:
|
||||
return CompactInstructionContent([parse_instruction(v) for v in expr.split(';')])
|
||||
|
||||
else:
|
||||
ins_argv = {}
|
||||
expr, comment = part_suffix(expr, '#')
|
||||
expr, condition = part_suffix(expr, '?')
|
||||
|
||||
if condition is not None:
|
||||
ins_type = InstructionConditionContent
|
||||
|
||||
if len(condition) == 0:
|
||||
ins_argv['if_true'] = None
|
||||
ins_argv['if_false'] = None
|
||||
|
||||
else:
|
||||
t, f = part_prefix(condition, ':')
|
||||
|
||||
if t is None:
|
||||
raise RuntimeError('illegal condition instruction : ' + origin_expr)
|
||||
|
||||
elif len(t) == 0:
|
||||
t = None
|
||||
|
||||
ins_argv['if_true'] = t
|
||||
ins_argv['if_false'] = f
|
||||
|
||||
else:
|
||||
ins_type = InstructionDataContent
|
||||
|
||||
width, expr = InstructionContentWidth.parse(expr)
|
||||
|
||||
return ins_type(width, expr, **ins_argv, comment=comment)
|
||||
|
||||
|
||||
def eval_instruction(expr: str, context: Dict[str, Any], buffer: Optional[List[int]] = None) -> List[int]:
|
||||
ins = parse_instruction(expr)
|
||||
|
||||
if buffer is None:
|
||||
buffer = []
|
||||
|
||||
ins.build_instruction(context, buffer, 0)
|
||||
|
||||
return buffer
|
||||
|
||||
|
||||
def print_instruction(expr: str, context: Dict[str, Any], append_ris_type: bool = True):
|
||||
buffer = []
|
||||
|
||||
eval_instruction(expr, context, buffer)
|
||||
|
||||
if append_ris_type:
|
||||
length = len(buffer)
|
||||
buffer.insert(0, 0x30)
|
||||
buffer.insert(1, length)
|
||||
|
||||
print(hex_line(buffer))
|
||||
@@ -0,0 +1 @@
|
||||
*.txt
|
||||
Binary file not shown.
@@ -0,0 +1,528 @@
|
||||
"""
|
||||
purpose:
|
||||
|
||||
in order to analyze the data loss of bluetooth, a small code is needed.
|
||||
Guess that there are three type of data loss. In order to prove this idea,
|
||||
several tests are needed
|
||||
|
||||
types of data loss:
|
||||
|
||||
1. packet loss:
|
||||
bluetooth notification does not need any negotiation.
|
||||
if there is any packet loss during the connection,
|
||||
it will not be lost forever
|
||||
|
||||
2. program delay causes loss in client(headstage):
|
||||
too many effort on data packaging, it would cause
|
||||
data delay
|
||||
|
||||
3. program delay causes loss in host(controller):
|
||||
...todo and need to define
|
||||
|
||||
Assume that we have lost several bytes data. We want to analyze the type of data lost.
|
||||
method:
|
||||
compare ramp data with time stamp, there are several conditions
|
||||
if data_delta * 1 / sampling_rate == time_delta:
|
||||
this should be packet loss
|
||||
else
|
||||
this should be program delay
|
||||
|
||||
method to coped with the corresponding problem:
|
||||
1. try 'Indication' to check data loss is reduced or not.
|
||||
2. modified the procedure of data packaging
|
||||
3. after the upper two problems are excluded, this problem should be left over
|
||||
|
||||
"""
|
||||
import os.path
|
||||
import sys
|
||||
from collections import Counter
|
||||
from typing import List, Optional, Dict, Set, Any
|
||||
|
||||
|
||||
class Options:
|
||||
def __init__(self):
|
||||
self.skip = False
|
||||
self.round = 2
|
||||
self.overflow_pow: Optional[int] = None
|
||||
|
||||
# print options
|
||||
self.quiet = False
|
||||
|
||||
# graph options
|
||||
self.graph: Optional[str] = None
|
||||
self.graph_log_scale = False
|
||||
self.graph_save_path: Optional[str] = None
|
||||
|
||||
# fft graph options
|
||||
self.fft_x_log = False
|
||||
self.fft_y_norm = False
|
||||
self.fft_channel = 0
|
||||
|
||||
@staticmethod
|
||||
def print_help():
|
||||
prg = sys.argv[0]
|
||||
|
||||
print(prg, '[OPTIONS]', 'FILE', '...')
|
||||
print()
|
||||
print('OPTIONS:')
|
||||
print(' -h, --help : print help')
|
||||
print(' --skip : skip if FILE not found')
|
||||
print(' --round VALUE : floating number round')
|
||||
print(' --overflow VALUE : overflow number. 2^VALUE')
|
||||
print()
|
||||
print('OPTIONS (print):')
|
||||
print(' -q : do not print table')
|
||||
print()
|
||||
print('OPTIONS (graph):')
|
||||
print(' --graph TYPE : use matplotlib to generate graph. could be:')
|
||||
print(' ramp : ramp data, calculate value miss')
|
||||
print(' fft : sin wave data, calculate fft')
|
||||
print(' --graph-log-scale :')
|
||||
print(' --graph-save PATH : save graph file path')
|
||||
print()
|
||||
print('OPTIONS (graph=fft):')
|
||||
print(' --fft-channel CH : filter channel')
|
||||
print(' --fft-log : log x-axis')
|
||||
print(' --fft-norm : log x-axis normalize')
|
||||
print(' --fft [opt,...] : above')
|
||||
print()
|
||||
print('ARGUMENTS:')
|
||||
print(' FILE : txt data file')
|
||||
print()
|
||||
|
||||
|
||||
class Result:
|
||||
def __init__(self, data_file: str, options: Options):
|
||||
# data file information
|
||||
self.data_file = data_file
|
||||
self.date_time: Optional[str] = None
|
||||
self.device_name: Optional[str] = None
|
||||
self.device_address: Optional[str] = None
|
||||
self.parameter: Dict[str, str] = {}
|
||||
self.channel: Set[int] = set()
|
||||
self.total_duration: float = 0.0
|
||||
|
||||
# analysis data
|
||||
self.data_count = 0
|
||||
self.time_delta_counter = Counter()
|
||||
self.value_delta_counter = Counter()
|
||||
|
||||
# analysis options
|
||||
self.round = options.round
|
||||
|
||||
self.overflow: Optional[int] = None
|
||||
if options.overflow_pow is not None:
|
||||
self.overflow = 2 ** options.overflow_pow
|
||||
|
||||
# temp data
|
||||
self._prev_time: Optional[float] = None
|
||||
self._prev_value: Optional[int] = None
|
||||
self._close = False
|
||||
|
||||
@property
|
||||
def sample_rate(self) -> int:
|
||||
try:
|
||||
sample_rate = self.parameter['SAMPLE_RATE']
|
||||
except KeyError as e:
|
||||
raise RuntimeError('data file do not contain SAMPLE_RATE') from e
|
||||
|
||||
try:
|
||||
return int(sample_rate)
|
||||
except ValueError as e:
|
||||
raise RuntimeError('data file SAMPLE_RATE value not a value : ' + str(sample_rate)) from e
|
||||
|
||||
def update(self, time: float, channel: int, value: int):
|
||||
if self._close:
|
||||
raise RuntimeError('closed')
|
||||
|
||||
self.data_count += 1
|
||||
|
||||
if self._prev_time is not None:
|
||||
delta = round(time - self._prev_time, self.round)
|
||||
self.time_delta_counter[delta] += 1
|
||||
|
||||
if self._prev_value is not None:
|
||||
delta = value - self._prev_value
|
||||
self.value_delta_counter[delta] += 1
|
||||
|
||||
self._prev_time = time
|
||||
self.channel.add(channel)
|
||||
self._prev_value = value
|
||||
self.total_duration = time
|
||||
|
||||
def close(self):
|
||||
self._close = True
|
||||
|
||||
if self.overflow is not None:
|
||||
|
||||
self.value_delta_counter[1] += self.value_delta_counter[1 - self.overflow]
|
||||
del self.value_delta_counter[1 - self.overflow]
|
||||
i = 2
|
||||
|
||||
while i - self.overflow in self.value_delta_counter:
|
||||
self.value_delta_counter[i] += self.value_delta_counter[i - self.overflow]
|
||||
del self.value_delta_counter[i - self.overflow]
|
||||
i += 1
|
||||
|
||||
|
||||
def calculate(txt_file: str, options: Options) -> Result:
|
||||
if not os.path.exists(txt_file):
|
||||
raise FileNotFoundError(txt_file)
|
||||
|
||||
result = Result(txt_file, options)
|
||||
|
||||
parsing_state = 0
|
||||
|
||||
with open(txt_file) as _file:
|
||||
for line, content in enumerate(_file): # type: int, str
|
||||
content = content.strip()
|
||||
|
||||
if len(content) == 0:
|
||||
continue
|
||||
|
||||
if parsing_state == 0:
|
||||
if content.startswith('#'):
|
||||
if result.date_time is None:
|
||||
result.date_time = content[1:].strip()
|
||||
|
||||
elif content.startswith('# device_name'):
|
||||
result.device_name = content[len('# device_name'):].strip()
|
||||
|
||||
elif content.startswith('# mac_address'):
|
||||
result.device_address = content[len('# mac_address'):].strip()
|
||||
|
||||
elif content.startswith('# parameter'):
|
||||
parsing_state = 1
|
||||
|
||||
elif parsing_state == 1:
|
||||
if content.startswith('#'):
|
||||
if content.startswith('# time_stamp'):
|
||||
parsing_state = 2
|
||||
|
||||
else:
|
||||
part = content[2:].split(' ', maxsplit=2)
|
||||
|
||||
result.parameter[part[0]] = part[1]
|
||||
|
||||
elif parsing_state == 2:
|
||||
if content.startswith('#'):
|
||||
continue
|
||||
|
||||
part = content.split(' ', maxsplit=3)
|
||||
|
||||
try:
|
||||
time = part[0]
|
||||
channel = part[1]
|
||||
value = part[2]
|
||||
except IndexError:
|
||||
print('@%d' % (line + 1), 'incomplete data', ':', content)
|
||||
continue
|
||||
|
||||
check_pass = True
|
||||
|
||||
try:
|
||||
time = float(time)
|
||||
except ValueError:
|
||||
print('@%d' % (line + 1), 'incomplete time', ':', time)
|
||||
check_pass = False
|
||||
|
||||
try:
|
||||
channel = int(channel)
|
||||
except ValueError:
|
||||
print('@%d' % (line + 1), 'incomplete channel', ':', channel)
|
||||
check_pass = False
|
||||
|
||||
try:
|
||||
value = int(value)
|
||||
except ValueError:
|
||||
print('@%d' % (line + 1), 'incomplete value', ':', value)
|
||||
check_pass = False
|
||||
|
||||
if check_pass:
|
||||
result.update(time, channel, value)
|
||||
|
||||
result.close()
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def print_result(result: Result, options: Options):
|
||||
def print_table(counter: Dict[Any, Any], key_format='%10d', value_format='%d'):
|
||||
f = ' %s : %s' % (key_format, value_format)
|
||||
for k in sorted(counter.keys()):
|
||||
print(f % (k, counter[k]))
|
||||
|
||||
if not options.quiet:
|
||||
print(result.data_file)
|
||||
print('data_count', result.data_count)
|
||||
print('channel', ' '.join(list(map(str, sorted(result.channel)))))
|
||||
|
||||
try:
|
||||
sample_rate = result.sample_rate
|
||||
print('sample_rate [1/s]', sample_rate)
|
||||
print('1/sample_rate [ms]', 1000 / sample_rate)
|
||||
except RuntimeError:
|
||||
print('sample_rate', '(E)')
|
||||
|
||||
print('time_delta')
|
||||
print_table(result.time_delta_counter, '%10.2f')
|
||||
print()
|
||||
|
||||
print('value_delta')
|
||||
print_table(result.value_delta_counter)
|
||||
print()
|
||||
|
||||
# packet miss rate
|
||||
|
||||
#
|
||||
if options.graph == 'ramp':
|
||||
delta_value = list(filter(lambda it: it > 0, result.value_delta_counter))
|
||||
total = sum(map(lambda it: it * result.value_delta_counter[it], delta_value))
|
||||
miss = sum(map(lambda it: (it - 1) * result.value_delta_counter[it], delta_value))
|
||||
print('value_miss (ramp)', '%d/%d' % (miss, total), '%.2f%%' % (100 * miss / total))
|
||||
valid_time = list(filter(lambda it: it < 50, result.time_delta_counter))
|
||||
total_valid_t = sum(map(lambda it: it * result.time_delta_counter[it], valid_time))
|
||||
print('time_waste (ramp)', '%d/%d' % (total_valid_t, result.total_duration), '%.2f%%' % ( 100 * total_valid_t / result.total_duration))
|
||||
timesofwaste = list(filter(lambda it: it > 50, result.time_delta_counter))
|
||||
timesintotal = sum(map(lambda it: result.time_delta_counter[it], timesofwaste))
|
||||
print('waste time occur times (ramp)', '%d' % timesintotal)
|
||||
print()
|
||||
|
||||
paint_ramp_result(result, options)
|
||||
|
||||
elif options.graph == 'fft':
|
||||
paint_fft_result(result, options)
|
||||
|
||||
|
||||
def paint_fft_result(result: Result, options: Options):
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
from scipy import signal
|
||||
from scipy.interpolate import interp1d
|
||||
from scipy.fftpack import fft
|
||||
|
||||
time_seq = []
|
||||
value_seq = []
|
||||
time_offset = None
|
||||
total_duration = 0.0
|
||||
|
||||
with open(result.data_file) as _file:
|
||||
for line in _file:
|
||||
line = line.strip()
|
||||
|
||||
if len(line) == 0 or line.startswith('#'):
|
||||
continue
|
||||
|
||||
else:
|
||||
part = line.split(' ', maxsplit=3)
|
||||
channel = int(part[1])
|
||||
|
||||
if channel == options.fft_channel:
|
||||
time = float(part[0])
|
||||
|
||||
if time_offset is None:
|
||||
time_seq.append(0.0)
|
||||
time_offset = time
|
||||
else:
|
||||
total_duration = time - time_offset
|
||||
time_seq.append(time - time_offset)
|
||||
|
||||
value_seq.append(int(part[2]))
|
||||
|
||||
if len(time_seq) == 0:
|
||||
raise RuntimeError('empty channel data : ' + str(options.fft_channel))
|
||||
|
||||
plt.figure(1)
|
||||
f1, pxx_den = signal.periodogram(value_seq, 1e3)
|
||||
plt.semilogy(f1, pxx_den)
|
||||
plt.ylim([1e-7, 1e7])
|
||||
plt.xlabel('frequency [hz]')
|
||||
plt.ylabel('PSD[v**2/Hz')
|
||||
|
||||
plt.figure(2)
|
||||
sample_rate = result.sample_rate
|
||||
time_delta = 1 / sample_rate
|
||||
total_time_step = int(total_duration / (time_delta * 1000))
|
||||
|
||||
f = interp1d(time_seq, value_seq, copy=False)
|
||||
|
||||
t = np.linspace(0, total_duration, total_time_step)
|
||||
|
||||
fft_result = fft(f(t))
|
||||
fft_result = fft_result[:len(fft_result) // 2]
|
||||
fft_x = np.linspace(0, 1.0/(2.0*time_delta), len(fft_result)//2)
|
||||
|
||||
if options.fft_x_log:
|
||||
fft_x = np.log10(fft_x)
|
||||
|
||||
if options.fft_y_norm:
|
||||
fft_result /= sum(fft_result)
|
||||
|
||||
plt.plot(fft_x, 2.0 / len(fft_result) * np.abs(fft_result[0:len(fft_result)//2]))
|
||||
|
||||
|
||||
if options.graph_save_path is not None:
|
||||
plt.savefig(options.graph_save_path, dpi=600)
|
||||
else:
|
||||
plt.show()
|
||||
|
||||
|
||||
def paint_ramp_result(result: Result, options: Options):
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
fig, (at, av) = plt.subplots(2, 1)
|
||||
|
||||
time_delta_data = list(result.time_delta_counter)
|
||||
expect_time_delta = 1000 / result.sample_rate
|
||||
time_delta_bins = int((max(time_delta_data) - min(time_delta_data)) / expect_time_delta)
|
||||
time_delta_weight = [result.time_delta_counter[k] for k in time_delta_data]
|
||||
at.hist(time_delta_data,
|
||||
bins=time_delta_bins,
|
||||
weights=time_delta_weight,
|
||||
log=options.graph_log_scale,
|
||||
align='left')
|
||||
|
||||
value_delta_data = list(result.value_delta_counter)
|
||||
value_delta_bins = max(value_delta_data) - min(value_delta_data)
|
||||
value_delta_weight = [result.value_delta_counter[k] for k in value_delta_data]
|
||||
av.hist(value_delta_data,
|
||||
bins=value_delta_bins,
|
||||
weights=value_delta_weight,
|
||||
log=options.graph_log_scale,
|
||||
align='left')
|
||||
|
||||
fig.tight_layout()
|
||||
|
||||
if options.graph_save_path is not None:
|
||||
plt.savefig(options.graph_save_path, dpi=600)
|
||||
else:
|
||||
plt.show()
|
||||
|
||||
|
||||
|
||||
|
||||
def main(argv: List[str]):
|
||||
"""
|
||||
|
||||
:param argv:
|
||||
:return:
|
||||
"""
|
||||
|
||||
# df = pd.read_csv("C:/Users/yichin/Downloads/last-2019-07-18-16-30-15-7.csv", sep=",", skiprows=12, header=None)
|
||||
# sel_df = pd.DataFrame(df)
|
||||
# column, row = sel_df.shape
|
||||
# sel_df = sel_df.fillna(value=0)
|
||||
# delta_df = sel_df.diff(periods=1)
|
||||
# delta_df = delta_df.fillna(value=0)
|
||||
# delta_df = delta_df.drop(column - 1)
|
||||
# delta_df.set_axis(['time_delta', 'data_delta'], axis='columns', inplace=True)
|
||||
|
||||
o = Options()
|
||||
|
||||
i = 0
|
||||
while i < len(argv):
|
||||
arg = argv[i]
|
||||
|
||||
if arg in ('-h', '--help'):
|
||||
o.print_help()
|
||||
return
|
||||
|
||||
elif arg == '--skip':
|
||||
o.skip = True
|
||||
i += 1
|
||||
|
||||
elif arg == '--round':
|
||||
o.round = int(argv[i + 1])
|
||||
i += 2
|
||||
|
||||
elif arg.startswith('--round='):
|
||||
o.round = int(arg[len('--round='):])
|
||||
i += 1
|
||||
|
||||
elif arg == '--overflow':
|
||||
o.overflow_pow = int(argv[i + 1])
|
||||
i += 2
|
||||
|
||||
elif arg.startswith('--overflow='):
|
||||
o.overflow_pow = int(arg[len('--overflow='):])
|
||||
i += 1
|
||||
|
||||
elif arg == '-q':
|
||||
o.quiet = True
|
||||
i += 1
|
||||
|
||||
elif arg == '--graph':
|
||||
o.graph = argv[i + 1]
|
||||
i += 2
|
||||
|
||||
elif arg.startswith('--graph='):
|
||||
o.graph = arg[len('--graph='):]
|
||||
i += 1
|
||||
|
||||
elif arg == '--graph-log-scale':
|
||||
o.graph_log_scale = True
|
||||
i += 1
|
||||
|
||||
elif arg == '--graph-save':
|
||||
o.graph_save_path = argv[i + 1]
|
||||
i += 2
|
||||
|
||||
elif arg.startswith('--graph-save='):
|
||||
o.graph = arg[len('--graph-save='):]
|
||||
i += 1
|
||||
|
||||
elif arg == '--fft-channel':
|
||||
o.fft_channel = int(argv[i + 1])
|
||||
i += 2
|
||||
|
||||
elif arg.startswith('--fft-channel='):
|
||||
o.fft_channel = int(arg[len('--fft-channel='):])
|
||||
i += 1
|
||||
|
||||
elif arg == '--fft-log':
|
||||
o.fft_x_log = True
|
||||
i += 1
|
||||
|
||||
elif arg == '--fft-norm':
|
||||
o.fft_y_norm = True
|
||||
i += 1
|
||||
|
||||
elif arg.startswith('--fft'):
|
||||
if arg == '--fft':
|
||||
c = argv[i + 1]
|
||||
i += 2
|
||||
elif arg.startswith('--fft='):
|
||||
c = arg[len('--fft='):]
|
||||
i += 1
|
||||
else:
|
||||
raise ValueError('unknown options : ' + arg)
|
||||
|
||||
for a in c.split(','):
|
||||
if a == 'log':
|
||||
o.fft_x_log = True
|
||||
elif a == 'norm':
|
||||
o.fft_y_norm = True
|
||||
elif a.startswith('channel='):
|
||||
o.fft_channel = int(a[len('channel='):])
|
||||
else:
|
||||
raise ValueError('unknown options : --fft-' + a)
|
||||
|
||||
elif arg.startswith('-'):
|
||||
raise ValueError('unknown options : ' + arg)
|
||||
|
||||
else:
|
||||
i += 1
|
||||
try:
|
||||
result = calculate(arg, o)
|
||||
except FileNotFoundError:
|
||||
if o.skip:
|
||||
continue
|
||||
else:
|
||||
raise
|
||||
|
||||
else:
|
||||
print_result(result, o)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main(sys.argv[1:])
|
||||
@@ -0,0 +1,72 @@
|
||||
import unittest
|
||||
from random import randint
|
||||
|
||||
|
||||
def pop_count(value: int) -> int:
|
||||
value -= ((value >> 1) & 0x55555555)
|
||||
value = (((value >> 2) & 0x33333333) + (value & 0x33333333))
|
||||
value = (((value >> 4) + value) & 0x0f0f0f0f)
|
||||
value += (value >> 8)
|
||||
value += (value >> 16)
|
||||
return value & 0x0000003f
|
||||
|
||||
|
||||
def bit_reverse(value: int) -> int:
|
||||
value = (((value & 0xaaaaaaaa) >> 1) | ((value & 0x55555555) << 1))
|
||||
value = (((value & 0xcccccccc) >> 2) | ((value & 0x33333333) << 2))
|
||||
value = (((value & 0xf0f0f0f0) >> 4) | ((value & 0x0f0f0f0f) << 4))
|
||||
value = (((value & 0xff00ff00) >> 8) | ((value & 0x00ff00ff) << 8))
|
||||
return (value >> 16) | (value << 16)
|
||||
|
||||
|
||||
def umc_pass_check(v1: int, v2: int) -> bool:
|
||||
return pop_count(v1) + pop_count(v2) == 4
|
||||
|
||||
|
||||
class PopCountTest(unittest.TestCase):
|
||||
def test_zero(self):
|
||||
self.assertEqual(0, pop_count(0))
|
||||
|
||||
def test_one(self):
|
||||
self.assertEqual(1, pop_count(1))
|
||||
|
||||
def test_two(self):
|
||||
for _ in range(4):
|
||||
a = randint(0, 8)
|
||||
b = randint(0, 8)
|
||||
|
||||
while a == b:
|
||||
b = randint(0, 8)
|
||||
|
||||
a = 1 << a
|
||||
b = 1 << b
|
||||
v = a | b
|
||||
self.assertEqual(2, pop_count(v))
|
||||
|
||||
|
||||
class BitReverseTest(unittest.TestCase):
|
||||
def test_zero(self):
|
||||
self.assertEqual(0, bit_reverse(0))
|
||||
|
||||
def test_one(self):
|
||||
self.assertEqual(0x8000_0000, bit_reverse(1))
|
||||
|
||||
def test_random_one(self):
|
||||
for _ in range(4):
|
||||
a = randint(0, 15)
|
||||
b = 31 - a
|
||||
|
||||
va = 1 << a
|
||||
vb = 1 << b
|
||||
|
||||
self.assertEqual(vb, bit_reverse(va), f"a = {a}, b = {b}")
|
||||
|
||||
|
||||
class UmcPassCheckTest(unittest.TestCase):
|
||||
def test_validate(self):
|
||||
self.assertFalse(umc_pass_check(0b0101_0001_0100_0000_0000_0000_0000_0000,
|
||||
0b0101_0000_0000_1100_0000_0000_0000_0000))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
@@ -1,6 +1,6 @@
|
||||
import unittest
|
||||
from typing import List, Optional
|
||||
from random import randint
|
||||
from typing import List, Optional
|
||||
|
||||
REC_CHANNEL_COUNT = 16
|
||||
|
||||
@@ -60,6 +60,85 @@ def rearrange_channel_mux_table(channel_table: List[bool]) -> Optional[List[int]
|
||||
return channel_mux
|
||||
|
||||
|
||||
def channel_used_count(channel_mux: List[int]):
|
||||
|
||||
channel_uc = [0] * 16
|
||||
channel_sel = [0] * 16
|
||||
for i in range(15):
|
||||
for j in range(16):
|
||||
if channel_mux[i] == j:
|
||||
if channel_mux[i] != channel_mux[i+1]:
|
||||
channel_uc[j] += 1
|
||||
channel_sel[j] = j
|
||||
|
||||
return channel_uc, channel_sel
|
||||
|
||||
|
||||
def channel_table_transfer(channel_mux: List[bool]) -> Optional[List[bool]]:
|
||||
channel_look_up_table = [1, 2, 3, 4, 9, 8, 7, 6, 5, 10, 0, 11]
|
||||
true_channel = [False] * 16
|
||||
for i in range(16):
|
||||
if channel_mux[i]:
|
||||
true_channel[channel_look_up_table[i]] = True
|
||||
|
||||
return true_channel
|
||||
|
||||
|
||||
def channel_table_tran(channel_mux: List[bool]):
|
||||
channel_look_up_table = [2, 3, 4, 5, 10, 9, 8, 7, 6, 11, 1, 12]
|
||||
channel_sel = [0] * 16
|
||||
channel_index = 0
|
||||
for i in range(16):
|
||||
if channel_mux[i]:
|
||||
channel_sel[channel_index] = channel_look_up_table[i]
|
||||
channel_index += 1
|
||||
channel_sel.sort(reverse=True)
|
||||
return channel_sel, channel_index
|
||||
|
||||
|
||||
def channel_use_count(channel_sel: List[int], channel_index: int) -> Optional[List[int]]:
|
||||
repeat_times = int(channel_sel[0] / channel_index)
|
||||
remain_value = int(channel_sel[0] % channel_index)
|
||||
ch_use_cnt = [0] * 16
|
||||
for i in range(channel_index):
|
||||
if i < remain_value:
|
||||
ch_use_cnt[i] = remain_value + repeat_times
|
||||
else:
|
||||
ch_use_cnt[i] = repeat_times
|
||||
return ch_use_cnt
|
||||
|
||||
|
||||
def count_channel_without_re(channel_mux: List[bool]) -> Optional[List[int]]:
|
||||
channel_sel, channel_index = channel_table_tran(channel_mux)
|
||||
ch_use_cnt = channel_use_count(channel_sel, channel_index)
|
||||
for i in range(channel_index):
|
||||
channel_sel[i] -= 1
|
||||
print(channel_sel)
|
||||
print(ch_use_cnt)
|
||||
return ch_use_cnt
|
||||
|
||||
|
||||
def reverse_channel_table(original_ch: List[int]) -> Optional[List[int]]:
|
||||
reverse_look_up_table = [10, 0, 1, 2, 3, 8, 7, 6, 5, 4, 9, 8]
|
||||
reverse_ch = [0] * 16
|
||||
for i in range(16):
|
||||
if original_ch[i] != 0:
|
||||
reverse_ch[reverse_look_up_table[i]] = original_ch[i]
|
||||
return reverse_ch
|
||||
|
||||
|
||||
def count_channel(channel_mux: List[bool]) -> Optional[List[int]]:
|
||||
real_ch = channel_table_transfer(channel_mux)
|
||||
ch_mux = rearrange_channel_mux_table(real_ch)
|
||||
ch_count, ch_sel = channel_used_count(ch_mux)
|
||||
reverse_ch = reverse_channel_table(ch_count)
|
||||
reverse_ch.sort(reverse=True)
|
||||
ch_sel.sort(reverse=True)
|
||||
print(ch_sel)
|
||||
print(reverse_ch)
|
||||
return reverse_ch
|
||||
|
||||
|
||||
class UniRearrangeMuxChannelTest(unittest.TestCase):
|
||||
def test_empty_channel(self):
|
||||
self.assertIsNone(rearrange_channel_mux_table(to_channel_table()))
|
||||
@@ -73,10 +152,36 @@ class UniRearrangeMuxChannelTest(unittest.TestCase):
|
||||
self.assertEqual(expect, rearrange_channel_mux_table(to_channel_table(c)))
|
||||
|
||||
def test_two_channel(self):
|
||||
self.assertEqual([2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
rearrange_channel_mux_table(to_channel_table(1, 2)))
|
||||
self.assertEqual([1, 7, 1, 7, 1, 7, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
rearrange_channel_mux_table(to_channel_table(7, 1)))
|
||||
self.assertEqual([2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
rearrange_channel_mux_table(to_channel_table(2, 1)))
|
||||
self.assertEqual([3, 7, 2, 3, 7, 2, 3, 7, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
rearrange_channel_mux_table(to_channel_table(7, 3, 2)))
|
||||
|
||||
def test_many_channel(self):
|
||||
self.assertEqual([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ],
|
||||
rearrange_channel_mux_table(to_channel_table(1, 0)))
|
||||
|
||||
self.assertEqual([2, 5, 2, 5, 2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ],
|
||||
rearrange_channel_mux_table(to_channel_table(2, 5)))
|
||||
|
||||
self.assertEqual([1, 3, 5, 1, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ],
|
||||
rearrange_channel_mux_table(to_channel_table(1, 3, 5)))
|
||||
|
||||
self.assertEqual([4, 5, 1, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ],
|
||||
rearrange_channel_mux_table(to_channel_table(4, 1, 3, 5)))
|
||||
|
||||
self.assertEqual([5, 1, 2, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ],
|
||||
rearrange_channel_mux_table(to_channel_table(4, 1, 2, 3, 5)))
|
||||
|
||||
self.assertEqual([6, 7, 8, 3, 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, 0, 0, ],
|
||||
rearrange_channel_mux_table(to_channel_table(3, 4, 5, 6, 7, 8)))
|
||||
|
||||
|
||||
def test_count_channel(self):
|
||||
self.assertEqual(count_channel(to_channel_table(7, 3, 2)), count_channel_without_re(to_channel_table(7, 3, 2)))
|
||||
self.assertEqual(count_channel(to_channel_table(0, 10, 2)), count_channel_without_re(to_channel_table(0, 10, 2)))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
eclipse.preferences.version=1
|
||||
inEditor=false
|
||||
onBuild=false
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.cdt.debug.core.toggleBreakpointModel=com.ti.ccstudio.debug.CCSBreakpointMarker
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<configurations XML_version="1.2" id="configurations_0">
|
||||
<configuration XML_version="1.2" id="configuration_0">
|
||||
<instance XML_version="1.2" desc="Texas Instruments XDS100v3 USB Debug Probe" href="connections/TIXDS100v3_Dot7_Connection.xml" id="Texas Instruments XDS100v3 USB Debug Probe" xml="TIXDS100v3_Dot7_Connection.xml" xmlpath="connections"/>
|
||||
<connection XML_version="1.2" id="Texas Instruments XDS100v3 USB Debug Probe">
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2icepick_c.xml" id="drivers" xml="tixds100v2icepick_c.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2cs_dap.xml" id="drivers" xml="tixds100v2cs_dap.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2cortexM.xml" id="drivers" xml="tixds100v2cortexM.xml" xmlpath="drivers"/>
|
||||
<property Type="choicelist" Value="2" id="The Converter Usage">
|
||||
<choice Name="Generate 1149.7 2-pin advanced modes" value="enable">
|
||||
<property Type="choicelist" Value="1" id="The Converter 1149.7 Frequency">
|
||||
<choice Name="Overclock with user specified value" value="unused">
|
||||
<property Type="choicelist" Value="5" id="-- Choose a value from 1.0MHz to 50.0MHz"/>
|
||||
</choice>
|
||||
</property>
|
||||
<property Type="choicelist" Value="5" id="The Target Scan Format"/>
|
||||
</choice>
|
||||
</property>
|
||||
<platform XML_version="1.2" id="platform_0">
|
||||
<instance XML_version="1.2" desc="CC2640F128" href="devices/cc2640f128.xml" id="CC2640F128" xml="cc2640f128.xml" xmlpath="devices"/>
|
||||
</platform>
|
||||
</connection>
|
||||
</configuration>
|
||||
</configurations>
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
The 'targetConfigs' folder contains target-configuration (.ccxml) files, automatically generated based
|
||||
on the device and connection settings specified in your project on the Properties > General page.
|
||||
|
||||
Please note that in automatic target-configuration management, changes to the project's device and/or
|
||||
connection settings will either modify an existing or generate a new target-configuration file. Thus,
|
||||
if you manually edit these auto-generated files, you may need to re-apply your changes. Alternatively,
|
||||
you may create your own target-configuration file for this project and manage it manually. You can
|
||||
always switch back to automatic target-configuration management by checking the "Manage the project's
|
||||
target-configuration automatically" checkbox on the project's Properties > General page.
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
eclipse.preferences.version=1
|
||||
inEditor=false
|
||||
onBuild=false
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.cdt.debug.core.toggleBreakpointModel=com.ti.ccstudio.debug.CCSBreakpointMarker
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<configurations XML_version="1.2" id="configurations_0">
|
||||
<configuration XML_version="1.2" id="configuration_0">
|
||||
<instance XML_version="1.2" desc="Texas Instruments XDS100v3 USB Debug Probe" href="connections/TIXDS100v3_Dot7_Connection.xml" id="Texas Instruments XDS100v3 USB Debug Probe" xml="TIXDS100v3_Dot7_Connection.xml" xmlpath="connections"/>
|
||||
<connection XML_version="1.2" id="Texas Instruments XDS100v3 USB Debug Probe">
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2icepick_c.xml" id="drivers" xml="tixds100v2icepick_c.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2cs_dap.xml" id="drivers" xml="tixds100v2cs_dap.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2cortexM.xml" id="drivers" xml="tixds100v2cortexM.xml" xmlpath="drivers"/>
|
||||
<property Type="choicelist" Value="2" id="The Converter Usage">
|
||||
<choice Name="Generate 1149.7 2-pin advanced modes" value="enable">
|
||||
<property Type="choicelist" Value="1" id="The Converter 1149.7 Frequency">
|
||||
<choice Name="Overclock with user specified value" value="unused">
|
||||
<property Type="choicelist" Value="5" id="-- Choose a value from 1.0MHz to 50.0MHz"/>
|
||||
</choice>
|
||||
</property>
|
||||
<property Type="choicelist" Value="5" id="The Target Scan Format"/>
|
||||
</choice>
|
||||
</property>
|
||||
<platform XML_version="1.2" id="platform_0">
|
||||
<instance XML_version="1.2" desc="CC2640F128" href="devices/cc2640f128.xml" id="CC2640F128" xml="cc2640f128.xml" xmlpath="devices"/>
|
||||
</platform>
|
||||
</connection>
|
||||
</configuration>
|
||||
</configurations>
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
The 'targetConfigs' folder contains target-configuration (.ccxml) files, automatically generated based
|
||||
on the device and connection settings specified in your project on the Properties > General page.
|
||||
|
||||
Please note that in automatic target-configuration management, changes to the project's device and/or
|
||||
connection settings will either modify an existing or generate a new target-configuration file. Thus,
|
||||
if you manually edit these auto-generated files, you may need to re-apply your changes. Alternatively,
|
||||
you may create your own target-configuration file for this project and manage it manually. You can
|
||||
always switch back to automatic target-configuration management by checking the "Manage the project's
|
||||
target-configuration automatically" checkbox on the project's Properties > General page.
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
/*
|
||||
** Stack Frontier Generator 1.1.0 (2019-04-28 18:23:23.057000)
|
||||
** Stack Frontier Generator 1.1.0 (2019-06-17 18:27:00.233000)
|
||||
**
|
||||
** WARNING - Auto-generated file. Modifications could be lost!
|
||||
*/
|
||||
|
||||
--define=ICALL_STACK0_ADDR=0x8001
|
||||
--define=ICALL_STACK0_START=0x8000
|
||||
--define=ICALL_RAM0_START=0x20004340
|
||||
--define=ICALL_RAM0_START=0x20004310
|
||||
|
||||
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
/*
|
||||
** Stack Frontier Generator 1.1.0 (2019-04-28 18:23:23.057000)
|
||||
** Stack Frontier Generator 1.1.0 (2019-06-17 18:27:00.233000)
|
||||
**
|
||||
** WARNING - Auto-generated file. Modifications could be lost!
|
||||
*/
|
||||
|
||||
--define=ICALL_RAM0_START=0x20004340
|
||||
--define=ICALL_RAM0_START=0x20004310
|
||||
--define=ICALL_STACK0_START=0x8000
|
||||
--define=ICALL_STACK0_ADDR=0x8001
|
||||
|
||||
|
||||
@@ -4,5 +4,5 @@
|
||||
*/
|
||||
|
||||
"C:\ti\simplelink\ble_sdk_2_02_02_25\blelib\host\host_pcxx.a"
|
||||
"C:\ti\simplelink\ble_sdk_2_02_02_25\blelib\ctrl\cc2640\cc2640_ctrl_pcxx_41c.a"
|
||||
"C:\ti\simplelink\ble_sdk_2_02_02_25\blelib\hci_tl\cc26xx\cc26xx_hci_tl_full_v41.a"
|
||||
"C:\ti\simplelink\ble_sdk_2_02_02_25\blelib\ctrl\cc2640\cc2640_ctrl_pcxx_41c_ext.a"
|
||||
"C:\ti\simplelink\ble_sdk_2_02_02_25\blelib\hci_tl\cc26xx\cc26xx_hci_tl_full_v41_v42.a"
|
||||
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
+9
-9
@@ -1,12 +1,12 @@
|
||||
|
||||
XOPTS = -I"C:/ti/xdctools_3_32_02_25_core/packages/" -Dxdc_target_types__=C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/packages/ti/targets/arm/elf/std.h -Dxdc_target_name__=M3
|
||||
XOPTS = -I"C:/ti/xdctools_3_32_00_06_core/packages/" -Dxdc_target_types__=C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/packages/ti/targets/arm/elf/std.h -Dxdc_target_name__=M3
|
||||
|
||||
vpath % C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/packages/ti/sysbios/
|
||||
vpath %.c C:/ti/xdctools_3_32_02_25_core/packages/
|
||||
vpath %.c C:/ti/xdctools_3_32_00_06_core/packages/
|
||||
|
||||
CCOPTS = --endian=little -mv7M3 --abi=eabi -q -ms --opt_for_speed=0 --program_level_compile -o3 -g --optimize_with_debug -Dti_sysbios_knl_Task_minimizeLatency__D=FALSE -Dti_sysbios_family_arm_cc26xx_Boot_driverlibVersion=2 -Dti_sysbios_knl_Clock_stopCheckNext__D=TRUE -Dti_sysbios_family_arm_m3_Hwi_enableException__D=TRUE -Dti_sysbios_family_arm_m3_Hwi_disablePriority__D=32U -Dti_sysbios_family_arm_m3_Hwi_numSparseInterrupts__D=0U
|
||||
|
||||
XDC_ROOT = C:/ti/xdctools_3_32_02_25_core/packages/
|
||||
XDC_ROOT = C:/ti/xdctools_3_32_00_06_core/packages/
|
||||
|
||||
BIOS_ROOT = C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/packages/ti/sysbios/
|
||||
|
||||
@@ -16,14 +16,14 @@ BIOS_INC = -I"C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/pa
|
||||
|
||||
TARGET_INC = -I"C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/packages/"
|
||||
|
||||
INCS = $(BIOS_INC) $(TARGET_INC) --include_path="C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/include" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/examples/host_test/cc26xx/app/cc2650" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/examples/host_test/cc26xx/app" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/icall/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/roles/cc26xx" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/roles" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/common/cc26xx" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/npi/src" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/heapmgr" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/controller/cc26xx/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/hal/src/target/_common" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/target" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/hal/src/target/_common/cc26xx" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/hal/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/osal/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/services/src/sdata" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/services/src/saddr" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/icall/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/rom" --include_path="C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/cc26xxware_2_24_03_17272" -IC:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/packages/
|
||||
INCS = $(BIOS_INC) $(TARGET_INC) --include_path="C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.5.LTS/include" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/examples/host_test/cc26xx/app/cc2650" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/examples/host_test/cc26xx/app" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/icall/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/roles/cc26xx" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/roles" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/common/cc26xx" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/npi/src" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/heapmgr" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/controller/cc26xx/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/hal/src/target/_common" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/target" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/hal/src/target/_common/cc26xx" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/hal/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/osal/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/services/src/sdata" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/services/src/saddr" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/icall/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/rom" --include_path="C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/cc26xxware_2_24_03_17272" -IC:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/packages/
|
||||
|
||||
CC = C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/bin/armcl -c $(CCOPTS) -I C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/include
|
||||
ASM = C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/bin/armcl -c $(CCOPTS) -I C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/include
|
||||
AR = C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/bin/armar rq
|
||||
CC = C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.5.LTS/bin/armcl -c $(CCOPTS) -I C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.5.LTS/include
|
||||
ASM = C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.5.LTS/bin/armcl -c $(CCOPTS) -I C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.5.LTS/include
|
||||
AR = C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.5.LTS/bin/armar rq
|
||||
|
||||
DEL = C:/ti/xdctools_3_32_02_25_core/packages/../bin/rm -f
|
||||
CP = C:/ti/xdctools_3_32_02_25_core/packages/../bin/cp -f
|
||||
DEL = C:/ti/xdctools_3_32_00_06_core/packages/../bin/rm -f
|
||||
CP = C:/ti/xdctools_3_32_00_06_core/packages/../bin/cp -f
|
||||
|
||||
define RM
|
||||
$(if $(wildcard $1),$(DEL) $1,:)
|
||||
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -9,6 +9,6 @@
|
||||
<linkerCommandFile value="cc26x0f128.cmd"/>
|
||||
<rts value="libc.a"/>
|
||||
<createSlaveProjects value=""/>
|
||||
<connection value="common/targetdb/connections/TIXDS100v3_Dot7_Connection.xml"/>
|
||||
<connection value="common/targetdb/connections/TIXDS110_Connection.xml"/>
|
||||
<isTargetManual value="false"/>
|
||||
</projectOptions>
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
<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.893345658" 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=""${TOOLS_BLE}/lib_search/lib_search.exe" ${ORG_PROJ_DIR}/build_config.opt "${TOOLS_BLE}/lib_search/params_split_cc2640.xml" ${SRC_BLE_CORE}/../blelib "${ORG_PROJ_DIR}/../../ccs/config/lib_linker.cmd"">
|
||||
<folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Default.893345658." name="/" resourcePath="">
|
||||
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain.862906140" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.1373763881">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.749555863" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
|
||||
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain.662064348" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.1240982460">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.2060206926" 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"/>
|
||||
@@ -26,17 +26,17 @@
|
||||
<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE="/>
|
||||
<listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.1226924946" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="18.1.4.LTS" valueType="string"/>
|
||||
<targetPlatform id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug.666439040" 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.1487778905" 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.352371900" 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.1312023808" 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.342082829" 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.348530318" 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.1738096723" 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.1803929349" 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.327756378" 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.84498721" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.INCLUDE_PATH" valueType="includePath">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.174730814" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="18.1.4.LTS" valueType="string"/>
|
||||
<targetPlatform id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug.112402563" 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.226107095" 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.1308855802" 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.1162032918" 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.327276671" 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.538784571" 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.1838411336" 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.1508380156" 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.1819166130" 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.1213955566" 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"/>
|
||||
@@ -60,7 +60,7 @@
|
||||
<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.449036407" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE" valueType="definedSymbols">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE.181394656" 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="/>
|
||||
@@ -78,60 +78,60 @@
|
||||
<listOptionValue builtIn="false" value="xDEBUG_SW_TRACE"/>
|
||||
<listOptionValue builtIn="false" value="xTESTMODES"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.242123959" 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.601259316" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS" valueType="stringList">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.1587878318" 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.436507674" 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.911375671" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING" valueType="stringList">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING.1596660667" 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.897642261" 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.916023731" 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.1852873766" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CMD_FILE" valueType="stringList">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WRAP.1544258811" 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.669232242" 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.1890382832" 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.977794136" 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.980317392" 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.1333878599" 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.289210215" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM2_SRCS"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__C_SRCS.201033562" 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.1401380308" 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.57022734" 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.886514967" 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.1373763881" 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.1720562086" 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.1630117678" 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.1302394488" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE" value=""${ProjName}.map"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE.1128043424" 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.137622820" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.LIBRARY" valueType="libs">
|
||||
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.1240982460" 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.763630639" 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.786301819" 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.579888348" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE" value=""${ProjName}.map"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE.596794278" 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.61098608" 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.790272373" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH" valueType="libPaths">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH.1071463698" 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.1324992868" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS" valueType="stringList">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS.1861978448" 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.216507169" 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.1382163767" 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.1890909858" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO" value=""${ProjName}_linkInfo.xml"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.ENTRY_POINT.830512447" 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.1081803857" 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.249638271" 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.407917293" 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.2031489241" 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.1616606673" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__GEN_CMDS"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.1661331023" 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.109768763" 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.1945184042" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO" value=""${ProjName}_linkInfo.xml"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.ENTRY_POINT.1718643446" 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.676678693" 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.1014139784" 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.289607365" 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.1770270937" 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.1886191839" 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.1647667237" name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH.1600156533" 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.360730399" 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.1462981440" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT.INTEL" valueType="enumerated"/>
|
||||
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.1275037570" name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH.606988871" 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.2061369399" 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.460353249" 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>
|
||||
@@ -157,4 +157,5 @@
|
||||
<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>
|
||||
|
||||
+4
-1
File diff suppressed because one or more lines are too long
+15
-14
@@ -1,19 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<configurations XML_version="1.2" id="configurations_0">
|
||||
<configuration XML_version="1.2" id="Texas Instruments XDS100v3 USB Debug Probe_0">
|
||||
<instance XML_version="1.2" desc="Texas Instruments XDS100v3 USB Debug Probe_0" href="connections/TIXDS100v3_Dot7_Connection.xml" id="Texas Instruments XDS100v3 USB Debug Probe_0" xml="TIXDS100v3_Dot7_Connection.xml" xmlpath="connections"/>
|
||||
<connection XML_version="1.2" id="Texas Instruments XDS100v3 USB Debug Probe_0">
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2icepick_c.xml" id="drivers" xml="tixds100v2icepick_c.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2cs_dap.xml" id="drivers" xml="tixds100v2cs_dap.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2cortexM.xml" id="drivers" xml="tixds100v2cortexM.xml" xmlpath="drivers"/>
|
||||
<property Type="choicelist" Value="2" id="The Converter Usage">
|
||||
<choice Name="Generate 1149.7 2-pin advanced modes" value="enable">
|
||||
<property Type="choicelist" Value="1" id="The Converter 1149.7 Frequency">
|
||||
<choice Name="Overclock with user specified value" value="unused">
|
||||
<property Type="choicelist" Value="5" id="-- Choose a value from 1.0MHz to 50.0MHz"/>
|
||||
</choice>
|
||||
</property>
|
||||
<property Type="choicelist" Value="5" id="The Target Scan Format"/>
|
||||
<configuration XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
|
||||
<instance XML_version="1.2" desc="Texas Instruments XDS110 USB Debug Probe_0" href="connections/TIXDS110_Connection.xml" id="Texas Instruments XDS110 USB Debug Probe_0" xml="TIXDS110_Connection.xml" xmlpath="connections"/>
|
||||
<connection XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
|
||||
<instance XML_version="1.2" href="drivers/tixds510icepick_c.xml" id="drivers" xml="tixds510icepick_c.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds510cs_dap.xml" id="drivers" xml="tixds510cs_dap.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds510cortexM.xml" id="drivers" xml="tixds510cortexM.xml" xmlpath="drivers"/>
|
||||
<property Type="choicelist" Value="1" id="Power Selection">
|
||||
<choice Name="Probe supplied power" value="1">
|
||||
<property Type="stringfield" Value="3.3" id="Voltage Level"/>
|
||||
</choice>
|
||||
</property>
|
||||
<property Type="choicelist" Value="0" id="JTAG Signal Isolation"/>
|
||||
<property Type="choicelist" Value="4" id="SWD Mode Settings">
|
||||
<choice Name="cJTAG (1149.7) 2-pin advanced modes" value="enable">
|
||||
<property Type="choicelist" Value="1" id="XDS110 Aux Port"/>
|
||||
</choice>
|
||||
</property>
|
||||
<platform XML_version="1.2" id="platform_0">
|
||||
|
||||
+1
-1
@@ -132,7 +132,7 @@
|
||||
/* -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 */
|
||||
|
||||
@@ -9,6 +9,6 @@
|
||||
<linkerCommandFile value="cc26x0f128.cmd"/>
|
||||
<rts value="libc.a"/>
|
||||
<createSlaveProjects value=""/>
|
||||
<connection value="common/targetdb/connections/TIXDS100v3_Dot7_Connection.xml"/>
|
||||
<isTargetManual value="false"/>
|
||||
<connection value="common/targetdb/connections/TIXDS110_Connection.xml"/>
|
||||
<isTargetManual value="true"/>
|
||||
</projectOptions>
|
||||
|
||||
+2
-2
@@ -9,6 +9,6 @@
|
||||
<linkerCommandFile value="cc26x0f128.cmd"/>
|
||||
<rts value="libc.a"/>
|
||||
<createSlaveProjects value=""/>
|
||||
<connection value="common/targetdb/connections/TIXDS100v3_Dot7_Connection.xml"/>
|
||||
<isTargetManual value="false"/>
|
||||
<connection value="common/targetdb/connections/TIXDS110_Connection.xml"/>
|
||||
<isTargetManual value="true"/>
|
||||
</projectOptions>
|
||||
|
||||
+1
-1
@@ -9,6 +9,6 @@
|
||||
<linkerCommandFile value="cc26x0f128.cmd"/>
|
||||
<rts value="libc.a"/>
|
||||
<createSlaveProjects value=""/>
|
||||
<connection value="common/targetdb/connections/TIXDS100v3_Dot7_Connection.xml"/>
|
||||
<connection value="common/targetdb/connections/TIXDS110_Connection.xml"/>
|
||||
<isTargetManual value="false"/>
|
||||
</projectOptions>
|
||||
|
||||
+268
-130
@@ -18,141 +18,279 @@
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" errorParsers="org.eclipse.rtsc.xdctools.parsers.ErrorParser;com.ti.rtsc.XDCtools.parsers.ErrorParser;com.ti.ccstudio.errorparser.CoffErrorParser;com.ti.ccstudio.errorparser.LinkErrorParser;com.ti.ccstudio.errorparser.AsmErrorParser;org.eclipse.cdt.core.GmakeErrorParser" id="com.ti.ccstudio.buildDefinitions.TMS470.Default.67178137" name="FlashROM" parent="com.ti.ccstudio.buildDefinitions.TMS470.Default" postbuildStep="${CG_TOOL_HEX} -order MS --memwidth=8 --romwidth=8 --intel -o ${ProjName}.hex ${ProjName}.out" prebuildStep="">
|
||||
<folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Default.67178137." name="/" resourcePath="">
|
||||
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain.444422184" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.1330732365">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1540699960" 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="RTSC_PRODUCTS=com.ti.rtsc.TIRTOSCC13XX_CC26XX:2.21.01.08;"/>
|
||||
<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE="/>
|
||||
<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.1414041701" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="18.1.4.LTS" valueType="string"/>
|
||||
<targetPlatform id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug.129069465" 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.896834824" 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.125712613" 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.1372243856" 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.2122837792" 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.1195332370" 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.618174488" 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.1755393337" 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.371697957" 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.686399483" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.INCLUDE_PATH" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
|
||||
<listOptionValue builtIn="false" value="C:\ti\simplelink\ble_sdk_2_02_02_25\src\examples\simple_peripheral\cc26xx\app\headstage"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/examples/simple_peripheral/cc26xx/app"/>
|
||||
<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/dev_info"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/profiles/simple_profile/cc26xx"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/profiles/simple_profile"/>
|
||||
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain.960161747"
|
||||
name="TI Build Tools"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain"
|
||||
targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.795316214">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.773509801"
|
||||
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="RTSC_PRODUCTS=com.ti.rtsc.TIRTOSCC13XX_CC26XX:2.21.01.08;"/>
|
||||
<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE="/>
|
||||
<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.1355878258"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION"
|
||||
value="18.1.4.LTS" valueType="string"/>
|
||||
<targetPlatform
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug.115857743"
|
||||
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.777666998"
|
||||
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.548851344"
|
||||
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.2079251582"
|
||||
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.1296542541"
|
||||
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.830681449"
|
||||
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.4295324"
|
||||
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.966262121"
|
||||
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.595578058"
|
||||
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.1931842022"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.INCLUDE_PATH"
|
||||
valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
|
||||
<listOptionValue builtIn="false"
|
||||
value="C:\ti\simplelink\ble_sdk_2_02_02_25\src\examples\simple_peripheral\cc26xx\app\headstage"/>
|
||||
<listOptionValue builtIn="false"
|
||||
value="${SRC_EX}/examples/simple_peripheral/cc26xx/app"/>
|
||||
<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/dev_info"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/profiles/simple_profile/cc26xx"/>
|
||||
<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.784417628" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="BOARD_DISPLAY_EXCLUDE_UART"/>
|
||||
<listOptionValue builtIn="false" value="HEADSTAGE_UNI_H"/>
|
||||
<listOptionValue builtIn="false" value="HEADSTAGE_MA_USE_SPI2"/>
|
||||
<listOptionValue builtIn="false" value="POWER_SAVING"/>
|
||||
<listOptionValue builtIn="false" value="BOOSTXL_CC2650MA"/>
|
||||
<listOptionValue builtIn="false" value="CC26XX"/>
|
||||
<listOptionValue builtIn="false" value="GAPROLE_TASK_STACK_SIZE=540"/>
|
||||
<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="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.DEBUGGING_MODEL.571279713" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.281544410" name="C Dialect" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.C99" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GCC.250251326" name="Enable support for GCC extensions (DEPRECATED) (--gcc)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GCC" value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS.2060899973" name="Suppress diagnostic <id> (--diag_suppress, -pds)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="48"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING.1942076915" name="Treat diagnostic <id> as warning (--diag_warning, -pdsw)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="225"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WRAP.834573500" 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.195059603" 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.2020372146" name="Place each function in a separate subsection (--gen_func_subsections, -ms)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS.on" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CMD_FILE.999239773" 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.715176094" 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.1144773376" 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.1482099620" 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.1464468386" 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.1330732365" 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.505117678" 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.1666572203" 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.735813737" name="Link information (map) listed into <file> (--map_file, -m)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE" value=""${ProjName}.map"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE.1831786229" 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.1415642475" name="Include library file or command file as input (--library, -l)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.LIBRARY" valueType="libs">
|
||||
<listOptionValue builtIn="false" value="libc.a"/>
|
||||
<listOptionValue builtIn="false" value="${CC26XXWARE}/driverlib/bin/ccs/driverlib.lib"/>
|
||||
<listOptionValue builtIn="false" value="${ROM}/common_rom_releases/03282014/common_rom.symbols"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH.1551539095" name="Add <dir> to library search path (--search_path, -i)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH" valueType="libPaths">
|
||||
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/lib"/>
|
||||
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS.1633469628" name="Suppress diagnostic <id> (--diag_suppress)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="10247-D"/>
|
||||
<listOptionValue builtIn="false" value="16002-D"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.1043837738" 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.744951807" 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.1083456720" name="Detailed link information data-base into <file> (--xml_link_info, -xml_link_info)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO" value=""${ProjName}_linkInfo.xml"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.1378440824" 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.937801301" 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.1610224531" 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.449429516" 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.693413847" 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.430022974" name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH.1461218441" 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.385381392" 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.1950693056" 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.74242513" name="XDCtools" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH.2041877412" name="Package repositories (--xdcpath)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="${COM_TI_RTSC_TIRTOSCC13XX_CC26XX_REPOS}"/>
|
||||
<listOptionValue builtIn="false" value="${TARGET_CONTENT_BASE}"/>
|
||||
</option>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET.215751123" 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.1966943903" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM" value="ti.platforms.simplelink:CC2640F128" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW.2050291678" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW" value="ti.platforms.simplelink:CC2640F128" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE.1120380121" 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.972212328" 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.1732037300" name="Additional compiler options (--compileOptions)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS" value=""${COMPILER_FLAGS}"" valueType="string"/>
|
||||
</tool>
|
||||
<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.919051850"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE"
|
||||
valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="BOARD_DISPLAY_EXCLUDE_UART"/>
|
||||
<listOptionValue builtIn="false" value="HEADSTAGE_UNI_2_0"/>
|
||||
<listOptionValue builtIn="false" value="POWER_SAVING"/>
|
||||
<listOptionValue builtIn="false" value="BOOSTXL_CC2650MA"/>
|
||||
<listOptionValue builtIn="false" value="HEADSTAGE_MA_USE_SPI2"/>
|
||||
<listOptionValue builtIn="false" value="CC26XX"/>
|
||||
<listOptionValue builtIn="false" value="GAPROLE_TASK_STACK_SIZE=540"/>
|
||||
<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="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.DEBUGGING_MODEL.435242422"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.1041287954"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.C99"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GCC.762496694"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GCC"
|
||||
value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS.150403703"
|
||||
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.94153709"
|
||||
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.1489730615"
|
||||
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.1620048666"
|
||||
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.1485773521"
|
||||
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.1081719363"
|
||||
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.520101889"
|
||||
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.1070105812"
|
||||
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.738826337"
|
||||
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.1232640856"
|
||||
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.795316214"
|
||||
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.761443666"
|
||||
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.1912770343"
|
||||
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.1725177715"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE"
|
||||
value=""${ProjName}.map"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE.390113473"
|
||||
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.1148769301"
|
||||
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.120359588"
|
||||
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.945233756"
|
||||
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.910404897"
|
||||
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.513420139"
|
||||
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.741712094"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO"
|
||||
value=""${ProjName}_linkInfo.xml"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.891380419"
|
||||
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.613666775"
|
||||
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.277965674"
|
||||
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.1067547555"
|
||||
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.599189161"
|
||||
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.1127603084"
|
||||
name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH.222076978"
|
||||
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.1912546049"
|
||||
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.1935998185"
|
||||
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.1402268573" name="XDCtools"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH.1506218018"
|
||||
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.1860209354"
|
||||
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.617935002"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM"
|
||||
value="ti.platforms.simplelink:CC2640F128" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW.298557207"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW"
|
||||
value="ti.platforms.simplelink:CC2640F128" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE.1856522446"
|
||||
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.1053483030"
|
||||
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.1740094026"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS"
|
||||
value=""${COMPILER_FLAGS}"" valueType="string"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
|
||||
+531
-531
File diff suppressed because it is too large
Load Diff
+15
-14
@@ -1,19 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<configurations XML_version="1.2" id="configurations_0">
|
||||
<configuration XML_version="1.2" id="Texas Instruments XDS100v3 USB Debug Probe_0">
|
||||
<instance XML_version="1.2" desc="Texas Instruments XDS100v3 USB Debug Probe_0" href="connections/TIXDS100v3_Dot7_Connection.xml" id="Texas Instruments XDS100v3 USB Debug Probe_0" xml="TIXDS100v3_Dot7_Connection.xml" xmlpath="connections"/>
|
||||
<connection XML_version="1.2" id="Texas Instruments XDS100v3 USB Debug Probe_0">
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2icepick_c.xml" id="drivers" xml="tixds100v2icepick_c.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2cs_dap.xml" id="drivers" xml="tixds100v2cs_dap.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2cortexM.xml" id="drivers" xml="tixds100v2cortexM.xml" xmlpath="drivers"/>
|
||||
<property Type="choicelist" Value="2" id="The Converter Usage">
|
||||
<choice Name="Generate 1149.7 2-pin advanced modes" value="enable">
|
||||
<property Type="choicelist" Value="1" id="The Converter 1149.7 Frequency">
|
||||
<choice Name="Overclock with user specified value" value="unused">
|
||||
<property Type="choicelist" Value="5" id="-- Choose a value from 1.0MHz to 50.0MHz"/>
|
||||
</choice>
|
||||
</property>
|
||||
<property Type="choicelist" Value="5" id="The Target Scan Format"/>
|
||||
<configuration XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
|
||||
<instance XML_version="1.2" desc="Texas Instruments XDS110 USB Debug Probe_0" href="connections/TIXDS110_Connection.xml" id="Texas Instruments XDS110 USB Debug Probe_0" xml="TIXDS110_Connection.xml" xmlpath="connections"/>
|
||||
<connection XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
|
||||
<instance XML_version="1.2" href="drivers/tixds510icepick_c.xml" id="drivers" xml="tixds510icepick_c.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds510cs_dap.xml" id="drivers" xml="tixds510cs_dap.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds510cortexM.xml" id="drivers" xml="tixds510cortexM.xml" xmlpath="drivers"/>
|
||||
<property Type="choicelist" Value="1" id="Power Selection">
|
||||
<choice Name="Probe supplied power" value="1">
|
||||
<property Type="stringfield" Value="3.3" id="Voltage Level"/>
|
||||
</choice>
|
||||
</property>
|
||||
<property Type="choicelist" Value="0" id="JTAG Signal Isolation"/>
|
||||
<property Type="choicelist" Value="4" id="SWD Mode Settings">
|
||||
<choice Name="cJTAG (1149.7) 2-pin advanced modes" value="enable">
|
||||
<property Type="choicelist" Value="1" id="XDS110 Aux Port"/>
|
||||
</choice>
|
||||
</property>
|
||||
<platform XML_version="1.2" id="platform_0">
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
** Stack Frontier Generator 1.1.0 (2019-03-07 15:50:46.148000)
|
||||
** Stack Frontier Generator 1.1.0 (2019-06-18 12:42:35.415000)
|
||||
**
|
||||
** WARNING - Auto-generated file. Modifications could be lost!
|
||||
*/
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
** Stack Frontier Generator 1.1.0 (2019-03-07 15:50:46.148000)
|
||||
** Stack Frontier Generator 1.1.0 (2019-06-18 12:42:35.415000)
|
||||
**
|
||||
** WARNING - Auto-generated file. Modifications could be lost!
|
||||
*/
|
||||
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
+4
-4
@@ -16,11 +16,11 @@ BIOS_INC = -I"C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/pa
|
||||
|
||||
TARGET_INC = -I"C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/packages/"
|
||||
|
||||
INCS = $(BIOS_INC) $(TARGET_INC) --include_path="C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/include" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/icall/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/roles/cc26xx" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/roles" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/dev_info" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/simple_profile/cc26xx" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/simple_profile" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/common/cc26xx" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/heapmgr" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/controller/cc26xx/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/hal/src/target/_common" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/target" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/hal/src/target/_common/cc26xx" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/hal/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/osal/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/services/src/sdata" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/services/src/saddr" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/icall/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/rom" --include_path="C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/cc26xxware_2_24_03_17272" -IC:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/packages/
|
||||
INCS = $(BIOS_INC) $(TARGET_INC) --include_path="C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.5.LTS/include" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/icall/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/roles/cc26xx" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/roles" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/dev_info" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/simple_profile/cc26xx" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/profiles/simple_profile" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/common/cc26xx" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/heapmgr" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/controller/cc26xx/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/hal/src/target/_common" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/target" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/hal/src/target/_common/cc26xx" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/hal/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/osal/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/services/src/sdata" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/services/src/saddr" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/components/icall/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/inc" --include_path="C:/ti/simplelink/ble_sdk_2_02_02_25/src/rom" --include_path="C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/cc26xxware_2_24_03_17272" -IC:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/packages/
|
||||
|
||||
CC = C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/bin/armcl -c $(CCOPTS) -I C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/include
|
||||
ASM = C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/bin/armcl -c $(CCOPTS) -I C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/include
|
||||
AR = C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/bin/armar rq
|
||||
CC = C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.5.LTS/bin/armcl -c $(CCOPTS) -I C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.5.LTS/include
|
||||
ASM = C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.5.LTS/bin/armcl -c $(CCOPTS) -I C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.5.LTS/include
|
||||
AR = C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.5.LTS/bin/armar rq
|
||||
|
||||
DEL = C:/ti/xdctools_3_32_02_25_core/packages/../bin/rm -f
|
||||
CP = C:/ti/xdctools_3_32_02_25_core/packages/../bin/cp -f
|
||||
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
+1
-1
@@ -9,6 +9,6 @@
|
||||
<linkerCommandFile value="cc26x0f128.cmd"/>
|
||||
<rts value="libc.a"/>
|
||||
<createSlaveProjects value=""/>
|
||||
<connection value="common/targetdb/connections/TIXDS100v3_Dot7_Connection.xml"/>
|
||||
<connection value="common/targetdb/connections/TIXDS110_Connection.xml"/>
|
||||
<isTargetManual value="false"/>
|
||||
</projectOptions>
|
||||
|
||||
+236
-119
@@ -14,129 +14,246 @@
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1209999684" name="FlashROM" parent="com.ti.ccstudio.buildDefinitions.TMS470.Default" postannouncebuildStep="" postbuildStep="${CG_TOOL_HEX} -order MS --memwidth=8 --romwidth=8 --intel -o ${ProjName}.hex ${ProjName}.out;${TOOLS_BLE}/frontier/frontier.exe ccs ${PROJECT_LOC}/${ConfigName}/${ProjName}_linkInfo.xml ${ORG_PROJ_DIR}/../../ccs/config/ccs_compiler_defines.bcfg ${ORG_PROJ_DIR}/../../ccs/config/ccs_linker_defines.cmd" preannouncebuildStep="" prebuildStep=""${TOOLS_BLE}/lib_search/lib_search.exe" ${ORG_PROJ_DIR}/build_config.opt "${TOOLS_BLE}/lib_search/params_split_cc2640.xml" ${SRC_BLE_CORE}/../blelib "${ORG_PROJ_DIR}/../../ccs/config/lib_linker.cmd"">
|
||||
<folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1209999684." name="/" resourcePath="">
|
||||
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain.929750171" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.1008890994">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1479696404" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=Cortex M.CC2650F128"/>
|
||||
<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
|
||||
<listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>
|
||||
<listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
|
||||
<listOptionValue builtIn="false" value="CCS_MBS_VERSION=5.5.0"/>
|
||||
<listOptionValue builtIn="false" value="LINK_ORDER=TOOLS/ccs_linker_defines.cmd;TOOLS/cc26xx_ble_stack.cmd;"/>
|
||||
<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE="/>
|
||||
<listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.201372544" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="18.1.4.LTS" valueType="string"/>
|
||||
<targetPlatform id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug.1951196199" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug"/>
|
||||
<builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.builderDebug.20903631" 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.1176131016" name="ARM Compiler" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.compilerDebug">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.SILICON_VERSION.647279085" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.SILICON_VERSION" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.SILICON_VERSION.7M3" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CODE_STATE.1443871767" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CODE_STATE" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CODE_STATE.16" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.ABI.227818129" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.ABI.eabi" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.LITTLE_ENDIAN.784155377" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.LITTLE_ENDIAN" value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_LEVEL.494285153" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_LEVEL" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_LEVEL.4" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_FOR_SPEED.581550859" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_FOR_SPEED" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_FOR_SPEED.0" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.INCLUDE_PATH.1288777730" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.INCLUDE_PATH" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/examples/simple_peripheral/cc26xx/stack"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/common/cc26xx"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/hal/src/target/_common"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/hal/src/target"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/hal/src/target/_common/cc26xx"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/hal/src/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/osal/src/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/services/src/nv/cc26xx"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/services/src/nv"/>
|
||||
<folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1209999684." name="/"
|
||||
resourcePath="">
|
||||
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain.202004189"
|
||||
name="TI Build Tools"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain"
|
||||
targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.1000474609">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.384721047"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=Cortex M.CC2650F128"/>
|
||||
<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
|
||||
<listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>
|
||||
<listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
|
||||
<listOptionValue builtIn="false" value="CCS_MBS_VERSION=5.5.0"/>
|
||||
<listOptionValue builtIn="false"
|
||||
value="LINK_ORDER=TOOLS/ccs_linker_defines.cmd;TOOLS/cc26xx_ble_stack.cmd;"/>
|
||||
<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE="/>
|
||||
<listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.1036745756"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION"
|
||||
value="18.1.4.LTS" valueType="string"/>
|
||||
<targetPlatform
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug.236081606"
|
||||
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.1371891035"
|
||||
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.1719137531"
|
||||
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.677403831"
|
||||
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.1103252039"
|
||||
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.1530385187"
|
||||
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.986411830"
|
||||
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.1600021398"
|
||||
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.610602206"
|
||||
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.2056105474"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.INCLUDE_PATH"
|
||||
valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
|
||||
<listOptionValue builtIn="false"
|
||||
value="${SRC_EX}/examples/simple_peripheral/cc26xx/stack"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/common/cc26xx"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/hal/src/target/_common"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/hal/src/target"/>
|
||||
<listOptionValue builtIn="false"
|
||||
value="${SRC_COMMON}/hal/src/target/_common/cc26xx"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/hal/src/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/osal/src/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/services/src/nv/cc26xx"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/services/src/nv"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/services/src/saddr"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/icall/src/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_BLE_CORE}/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_BLE_CORE}/rom"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_BLE_CORE}/controller/cc26xx/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/services/src/aes/cc26xx"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/npi/src"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/common/cc26xx/npi/stack"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/icall/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/profiles/roles"/>
|
||||
<listOptionValue builtIn="false" value="${CC26XXWARE}"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE.986125825" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="CC26XX"/>
|
||||
<listOptionValue builtIn="false" value="POWER_SAVING"/>
|
||||
<listOptionValue builtIn="false" value="CC26XXWARE"/>
|
||||
<listOptionValue builtIn="false" value="DATA="/>
|
||||
<listOptionValue builtIn="false" value="EXT_HAL_ASSERT"/>
|
||||
<listOptionValue builtIn="false" value="FLASH_ROM_BUILD"/>
|
||||
<listOptionValue builtIn="false" value="GATT_NO_CLIENT"/>
|
||||
<listOptionValue builtIn="false" value="INCLUDE_AES_DECRYPT"/>
|
||||
<listOptionValue builtIn="false" value="NEAR_FUNC="/>
|
||||
<listOptionValue builtIn="false" value="${SRC_BLE_CORE}/rom"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_BLE_CORE}/controller/cc26xx/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/services/src/aes/cc26xx"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_COMMON}/npi/src"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/common/cc26xx/npi/stack"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/icall/inc"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/profiles/roles"/>
|
||||
<listOptionValue builtIn="false" value="${CC26XXWARE}"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE.697027420"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE"
|
||||
valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="CC26XX"/>
|
||||
<listOptionValue builtIn="false" value="GATT_NO_CLIENT"/>
|
||||
<listOptionValue builtIn="false" value="HEADSTAGE_NOTIFY_USE_ATT"/>
|
||||
<listOptionValue builtIn="false" value="POWER_SAVING"/>
|
||||
<listOptionValue builtIn="false" value="CC26XXWARE"/>
|
||||
<listOptionValue builtIn="false" value="DATA="/>
|
||||
<listOptionValue builtIn="false" value="EXT_HAL_ASSERT"/>
|
||||
<listOptionValue builtIn="false" value="FLASH_ROM_BUILD"/>
|
||||
<listOptionValue builtIn="false" value="INCLUDE_AES_DECRYPT"/>
|
||||
<listOptionValue builtIn="false" value="NEAR_FUNC="/>
|
||||
<listOptionValue builtIn="false" value="OSAL_CBTIMER_NUM_TASKS=1"/>
|
||||
<listOptionValue builtIn="false" value="OSAL_SNV=1"/>
|
||||
<listOptionValue builtIn="false" value="USE_ICALL"/>
|
||||
<listOptionValue builtIn="false" value="xDEBUG"/>
|
||||
<listOptionValue builtIn="false" value="xDEBUG_ENC"/>
|
||||
<listOptionValue builtIn="false" value="xDEBUG_GPIO"/>
|
||||
<listOptionValue builtIn="false" value="xDEBUG_SW_TRACE"/>
|
||||
<listOptionValue builtIn="false" value="xPM_DISABLE_PWRDOWN"/>
|
||||
<listOptionValue builtIn="false" value="xTESTMODES"/>
|
||||
<listOptionValue builtIn="false" value="xTEST_BLEBOARD"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.372638078" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.C99" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS.201347726" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="48"/>
|
||||
<listOptionValue builtIn="false" value="16004"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING.73314177" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="225"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WRAP.1126279750" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DISPLAY_ERROR_NUMBER.1492280006" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CMD_FILE.538453952" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CMD_FILE" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/config/build_components.opt"/>
|
||||
<listOptionValue builtIn="false" value="${ORG_PROJ_DIR}/build_config.opt"/>
|
||||
</option>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__C_SRCS.313905687" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__C_SRCS"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__CPP_SRCS.1129729173" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__CPP_SRCS"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM_SRCS.156783227" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM_SRCS"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM2_SRCS.538375181" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM2_SRCS"/>
|
||||
</tool>
|
||||
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.1008890994" name="ARM Linker" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.STACK_SIZE.1873600405" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.STACK_SIZE" value="256" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.HEAP_SIZE.1359172875" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.HEAP_SIZE" value="0" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE.1355177509" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE" value=""${ProjName}.map"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE.829303802" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE" value="${ProjName}.out" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.LIBRARY.1078356909" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.LIBRARY" valueType="libs">
|
||||
<listOptionValue builtIn="false" value="libc.a"/>
|
||||
<listOptionValue builtIn="false" value="${ORG_PROJ_DIR}/../../ccs/config/lib_linker.cmd"/>
|
||||
<listOptionValue builtIn="false" value="${ROM}/ble_rom_releases/04242014/ble_rom_patch.symbols"/>
|
||||
<listOptionValue builtIn="false" value="${CC26XXWARE}/driverlib/bin/ccs/driverlib.lib"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH.1707930214" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH" valueType="libPaths">
|
||||
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/lib"/>
|
||||
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS.59164041" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="16002-D"/>
|
||||
<listOptionValue builtIn="false" value="10247-D"/>
|
||||
<listOptionValue builtIn="false" value="10325-D"/>
|
||||
<listOptionValue builtIn="false" value="10229-D"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.11567165" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.off" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DISPLAY_ERROR_NUMBER.1727810233" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO.1385277262" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO" value=""${ProjName}_linkInfo.xml"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.ENTRY_POINT.1153340314" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.ENTRY_POINT" value="startup_entry" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.450995330" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.on" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION.1827942626" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION.on" valueType="enumerated"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD_SRCS.1279238428" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD_SRCS"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD2_SRCS.526125450" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD2_SRCS"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__GEN_CMDS.581803256" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__GEN_CMDS"/>
|
||||
</tool>
|
||||
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.947560992" name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH.1295209583" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH" value="8" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.MEMWIDTH.110293046" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.MEMWIDTH" value="8" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT.1122561921" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT.INTEL" valueType="enumerated"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
<listOptionValue builtIn="false" value="OSAL_SNV=1"/>
|
||||
<listOptionValue builtIn="false" value="USE_ICALL"/>
|
||||
<listOptionValue builtIn="false" value="xDEBUG"/>
|
||||
<listOptionValue builtIn="false" value="xDEBUG_ENC"/>
|
||||
<listOptionValue builtIn="false" value="xDEBUG_GPIO"/>
|
||||
<listOptionValue builtIn="false" value="xDEBUG_SW_TRACE"/>
|
||||
<listOptionValue builtIn="false" value="xPM_DISABLE_PWRDOWN"/>
|
||||
<listOptionValue builtIn="false" value="xTESTMODES"/>
|
||||
<listOptionValue builtIn="false" value="xTEST_BLEBOARD"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.2049018539"
|
||||
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.133900437"
|
||||
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.181358488"
|
||||
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.718298036"
|
||||
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.973122860"
|
||||
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.1320388168"
|
||||
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.1951926405"
|
||||
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.375018960"
|
||||
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.1850764340"
|
||||
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.1730763582"
|
||||
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.1000474609"
|
||||
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.788149472"
|
||||
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.1048132209"
|
||||
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.807659049"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE"
|
||||
value=""${ProjName}.map"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE.925427965"
|
||||
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.1310161066"
|
||||
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.1308202839"
|
||||
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.166746284"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS"
|
||||
valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="16002-D"/>
|
||||
<listOptionValue builtIn="false" value="10247-D"/>
|
||||
<listOptionValue builtIn="false" value="10325-D"/>
|
||||
<listOptionValue builtIn="false" value="10229-D"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.567907781"
|
||||
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.1017913720"
|
||||
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.792466464"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO"
|
||||
value=""${ProjName}_linkInfo.xml"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.ENTRY_POINT.685791588"
|
||||
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.471478777"
|
||||
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.340204852"
|
||||
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.601587839"
|
||||
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.2113293581"
|
||||
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.1732089675"
|
||||
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.1445067749"
|
||||
name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH.1310825565"
|
||||
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.1858409467"
|
||||
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.1953800232"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT.INTEL"
|
||||
valueType="enumerated"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry excluding="cc26x0f128.cmd" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
|
||||
|
||||
+1
@@ -12,6 +12,7 @@
|
||||
<stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_TARGET_CONFIG" value="${target_config_active_default:simple_peripheral_cc2650em_stack}"/>
|
||||
<stringAttribute key="com.ti.ccstudio.debug.debugModel.MRU_PROGRAM.C:\ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650em\simple_peripheral\ccs\stack\targetConfigs\CC2650F128.ccxml.Texas Instruments XDS100v3 USB Debug Probe_0/Cortex_M3_0" value="C:/ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650em\simple_peripheral\ccs\stack\FlashROM\simple_peripheral_cc2650em_stack.out"/>
|
||||
<stringAttribute key="com.ti.ccstudio.debug.debugModel.MRU_PROGRAM.C:\ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650em\simple_peripheral\ccs\stack\targetConfigs\CC2650F128.ccxml.Texas Instruments XDS110 USB Debug Probe/Cortex_M3_0" value="C:/ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650em\simple_peripheral\ccs\stack\FlashROM\simple_peripheral_cc2650em_stack.out"/>
|
||||
<stringAttribute key="com.ti.ccstudio.debug.debugModel.MRU_PROGRAM.C:\ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650em\simple_peripheral\ccs\stack\targetConfigs\CC2650F128.ccxml.Texas Instruments XDS110 USB Debug Probe_0/Cortex_M3_0" value="C:/ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650em\simple_peripheral\ccs\stack\FlashROM\simple_peripheral_cc2650em_stack.out"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/simple_peripheral_cc2650em_stack"/>
|
||||
</listAttribute>
|
||||
|
||||
+15
-14
@@ -1,19 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<configurations XML_version="1.2" id="configurations_0">
|
||||
<configuration XML_version="1.2" id="Texas Instruments XDS100v3 USB Debug Probe_0">
|
||||
<instance XML_version="1.2" desc="Texas Instruments XDS100v3 USB Debug Probe_0" href="connections/TIXDS100v3_Dot7_Connection.xml" id="Texas Instruments XDS100v3 USB Debug Probe_0" xml="TIXDS100v3_Dot7_Connection.xml" xmlpath="connections"/>
|
||||
<connection XML_version="1.2" id="Texas Instruments XDS100v3 USB Debug Probe_0">
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2icepick_c.xml" id="drivers" xml="tixds100v2icepick_c.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2cs_dap.xml" id="drivers" xml="tixds100v2cs_dap.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds100v2cortexM.xml" id="drivers" xml="tixds100v2cortexM.xml" xmlpath="drivers"/>
|
||||
<property Type="choicelist" Value="2" id="The Converter Usage">
|
||||
<choice Name="Generate 1149.7 2-pin advanced modes" value="enable">
|
||||
<property Type="choicelist" Value="1" id="The Converter 1149.7 Frequency">
|
||||
<choice Name="Overclock with user specified value" value="unused">
|
||||
<property Type="choicelist" Value="5" id="-- Choose a value from 1.0MHz to 50.0MHz"/>
|
||||
</choice>
|
||||
</property>
|
||||
<property Type="choicelist" Value="5" id="The Target Scan Format"/>
|
||||
<configuration XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
|
||||
<instance XML_version="1.2" desc="Texas Instruments XDS110 USB Debug Probe_0" href="connections/TIXDS110_Connection.xml" id="Texas Instruments XDS110 USB Debug Probe_0" xml="TIXDS110_Connection.xml" xmlpath="connections"/>
|
||||
<connection XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
|
||||
<instance XML_version="1.2" href="drivers/tixds510icepick_c.xml" id="drivers" xml="tixds510icepick_c.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds510cs_dap.xml" id="drivers" xml="tixds510cs_dap.xml" xmlpath="drivers"/>
|
||||
<instance XML_version="1.2" href="drivers/tixds510cortexM.xml" id="drivers" xml="tixds510cortexM.xml" xmlpath="drivers"/>
|
||||
<property Type="choicelist" Value="1" id="Power Selection">
|
||||
<choice Name="Probe supplied power" value="1">
|
||||
<property Type="stringfield" Value="3.3" id="Voltage Level"/>
|
||||
</choice>
|
||||
</property>
|
||||
<property Type="choicelist" Value="0" id="JTAG Signal Isolation"/>
|
||||
<property Type="choicelist" Value="4" id="SWD Mode Settings">
|
||||
<choice Name="cJTAG (1149.7) 2-pin advanced modes" value="enable">
|
||||
<property Type="choicelist" Value="1" id="XDS110 Aux Port"/>
|
||||
</choice>
|
||||
</property>
|
||||
<platform XML_version="1.2" id="platform_0">
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
<stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_TARGET_CONFIG" value="${target_config_active_default:host_test_cc2650lp_app}"/>
|
||||
<stringAttribute key="com.ti.ccstudio.debug.debugModel.MRU_PROGRAM.C:\ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650lp\host_test\ccs\app\targetConfigs\CC2640F128.ccxml.Texas Instruments XDS110 USB Debug Probe/Cortex_M3_0" value="C:/ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650lp\host_test\ccs\app\FlashROM\host_test_cc2650lp_app.out"/>
|
||||
<stringAttribute key="com.ti.ccstudio.debug.debugModel.MRU_PROGRAM.C:\ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650lp\host_test\ccs\app\targetConfigs\CC2650F128.ccxml.Texas Instruments XDS100v3 USB Debug Probe_0/Cortex_M3_0" value="C:/ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650lp\host_test\ccs\app\FlashROM\host_test_cc2650lp_app.out"/>
|
||||
<stringAttribute key="com.ti.ccstudio.debug.debugModel.MRU_PROGRAM.C:\ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650lp\host_test\ccs\app\targetConfigs\CC2650F128.ccxml.Texas Instruments XDS110 USB Debug Probe_0/Cortex_M3_0" value="C:/ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650lp\host_test\ccs\app\FlashROM\host_test_cc2650lp_app.out"/>
|
||||
<stringAttribute key="com.ti.ccstudio.debug.debugModel.MRU_PROGRAM.C:\ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650lp\host_test\ccs\app\targetConfigs\CC2650F128.ccxml.Texas Instruments XDS110 USB Debug Probe_0/Cortex_M3_0" value="C:/ti\ccsv8\ccs_base\emulation\gel\images\cc26xx\cc26x0_rtos_rom_syms.out"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/host_test_cc2650lp_app"/>
|
||||
</listAttribute>
|
||||
|
||||
BIN
Binary file not shown.
+5
-5
@@ -1,12 +1,12 @@
|
||||
|
||||
XOPTS = -I"C:/ti/xdctools_3_32_00_06_core/packages/" -Dxdc_target_types__=C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/packages/ti/targets/arm/elf/std.h -Dxdc_target_name__=M3
|
||||
XOPTS = -I"C:/ti/xdctools_3_32_02_25_core/packages/" -Dxdc_target_types__=C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/packages/ti/targets/arm/elf/std.h -Dxdc_target_name__=M3
|
||||
|
||||
vpath % C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/packages/ti/sysbios/
|
||||
vpath %.c C:/ti/xdctools_3_32_00_06_core/packages/
|
||||
vpath %.c C:/ti/xdctools_3_32_02_25_core/packages/
|
||||
|
||||
CCOPTS = --endian=little -mv7M3 --abi=eabi -q -ms --opt_for_speed=0 --program_level_compile -o3 -g --optimize_with_debug -Dti_sysbios_knl_Task_minimizeLatency__D=FALSE -Dti_sysbios_family_arm_cc26xx_Boot_driverlibVersion=2 -Dti_sysbios_knl_Clock_stopCheckNext__D=TRUE -Dti_sysbios_family_arm_m3_Hwi_enableException__D=TRUE -Dti_sysbios_family_arm_m3_Hwi_disablePriority__D=32U -Dti_sysbios_family_arm_m3_Hwi_numSparseInterrupts__D=0U
|
||||
|
||||
XDC_ROOT = C:/ti/xdctools_3_32_00_06_core/packages/
|
||||
XDC_ROOT = C:/ti/xdctools_3_32_02_25_core/packages/
|
||||
|
||||
BIOS_ROOT = C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/packages/ti/sysbios/
|
||||
|
||||
@@ -22,8 +22,8 @@ CC = C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/bin/armcl -c $(CCOPTS) -I
|
||||
ASM = C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/bin/armcl -c $(CCOPTS) -I C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/include
|
||||
AR = C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/bin/armar rq
|
||||
|
||||
DEL = C:/ti/xdctools_3_32_00_06_core/packages/../bin/rm -f
|
||||
CP = C:/ti/xdctools_3_32_00_06_core/packages/../bin/cp -f
|
||||
DEL = C:/ti/xdctools_3_32_02_25_core/packages/../bin/rm -f
|
||||
CP = C:/ti/xdctools_3_32_02_25_core/packages/../bin/cp -f
|
||||
|
||||
define RM
|
||||
$(if $(wildcard $1),$(DEL) $1,:)
|
||||
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
+209
-66
@@ -16,35 +16,75 @@
|
||||
</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.67178137.1867331134" 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="">
|
||||
<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties=""
|
||||
cleanCommand="${CG_CLEAN_CMD}" description=""
|
||||
errorParsers="org.eclipse.rtsc.xdctools.parsers.ErrorParser;com.ti.rtsc.XDCtools.parsers.ErrorParser;com.ti.ccstudio.errorparser.CoffErrorParser;com.ti.ccstudio.errorparser.LinkErrorParser;com.ti.ccstudio.errorparser.AsmErrorParser;org.eclipse.cdt.core.GmakeErrorParser"
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470.Default.67178137.1867331134" name="FlashROM"
|
||||
parent="com.ti.ccstudio.buildDefinitions.TMS470.Default"
|
||||
postbuildStep="${CG_TOOL_HEX} -order MS --memwidth=8 --romwidth=8 --intel -o ${ProjName}.hex ${ProjName}.out"
|
||||
prebuildStep="">
|
||||
<folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Default.67178137.1867331134." name="/" resourcePath="">
|
||||
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain.260390339" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.1981462200">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.23520031" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
|
||||
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain.260390339"
|
||||
name="TI Build Tools"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain"
|
||||
targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.1981462200">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.23520031"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=Cortex M.CC2640F128"/>
|
||||
<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
|
||||
<listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>
|
||||
<listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY="libc.a""/>
|
||||
<listOptionValue builtIn="false" value="XDC_VERSION=3.32.2.25_core"/>
|
||||
<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="RTSC_PRODUCTS=com.ti.rtsc.TIRTOSCC13XX_CC26XX:2.21.01.08;"/>
|
||||
<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE="/>
|
||||
<listOptionValue builtIn="false" value="OUTPUT_TYPE=rtscApplication:executable"/>
|
||||
<listOptionValue builtIn="false" value="CCS_MBS_VERSION=5.5.0"/>
|
||||
<listOptionValue builtIn="false"
|
||||
value="RTSC_PRODUCTS=com.ti.rtsc.TIRTOSCC13XX_CC26XX:2.21.01.08;"/>
|
||||
<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE="/>
|
||||
<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="RTSC_MBS_VERSION=2.2.0"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.831968044" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="18.1.4.LTS" valueType="string"/>
|
||||
<targetPlatform id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug.1267545934" 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.750370594" 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.2015951802" 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.1110843462" 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.818133919" 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.1512178724" 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.403801048" 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.1265261063" 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.2140366031" 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.2021662899" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.INCLUDE_PATH" valueType="includePath">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.831968044"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION"
|
||||
value="18.1.4.LTS" valueType="string"/>
|
||||
<targetPlatform
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug.1267545934"
|
||||
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.750370594"
|
||||
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.2015951802"
|
||||
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.1110843462"
|
||||
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.818133919"
|
||||
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.1512178724"
|
||||
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.403801048"
|
||||
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.1265261063"
|
||||
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.2140366031"
|
||||
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.2021662899"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.INCLUDE_PATH"
|
||||
valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
|
||||
<listOptionValue builtIn="false" value="C:\ti\simplelink\ble_sdk_2_02_02_25\src\examples\simple_peripheral\cc26xx\app\headstage"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/examples/simple_peripheral/cc26xx/app"/>
|
||||
@@ -70,10 +110,20 @@
|
||||
<listOptionValue builtIn="false" value="${SRC_BLE_CORE}/rom"/>
|
||||
<listOptionValue builtIn="false" value="${CC26XXWARE}"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL.1320751896" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.1333288757" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.C99" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GCC.1518806086" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GCC" value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE.142068852" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE" valueType="definedSymbols">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL.1320751896"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.1333288757"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.C99"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GCC.1518806086"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GCC"
|
||||
value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE.142068852"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE"
|
||||
valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="BOARD_DISPLAY_EXCLUDE_LCD"/>
|
||||
<listOptionValue builtIn="false" value="BOARD_DISPLAY_EXCLUDE_UART"/>
|
||||
<listOptionValue builtIn="false" value="CC2650_LAUNCHXL"/>
|
||||
@@ -89,68 +139,155 @@
|
||||
<listOptionValue builtIn="false" value="xdc_runtime_Assert_DISABLE_ALL"/>
|
||||
<listOptionValue builtIn="false" value="xdc_runtime_Log_DISABLE_ALL"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING.918239795" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING" valueType="stringList">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING.918239795"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING"
|
||||
valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="225"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS.999454079" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS" valueType="stringList">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS.999454079"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS"
|
||||
valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="48"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WRAP.2100604413" 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.1575039329" 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.832421721" 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.636768539" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CMD_FILE" valueType="stringList">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WRAP.2100604413"
|
||||
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.1575039329"
|
||||
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.832421721"
|
||||
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.636768539"
|
||||
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.227087947" 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.39034037" 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.866335595" 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.1329381206" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM2_SRCS"/>
|
||||
<inputType
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__C_SRCS.227087947"
|
||||
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.39034037"
|
||||
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.866335595"
|
||||
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.1329381206"
|
||||
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.1981462200" 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.57445792" 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.636200649" 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.552585024" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE" value=""${ProjName}.map"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE.1019171703" 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.1966015673" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.LIBRARY" valueType="libs">
|
||||
<listOptionValue builtIn="false" value="libc.a"/>
|
||||
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.1981462200"
|
||||
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.57445792"
|
||||
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.636200649"
|
||||
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.552585024"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE"
|
||||
value=""${ProjName}.map"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE.1019171703"
|
||||
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.1966015673"
|
||||
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.1109423160" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH" valueType="libPaths">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH.1109423160"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH"
|
||||
valueType="libPaths">
|
||||
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/lib"/>
|
||||
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.1289256461" 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.1055939214" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS.1474045154" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS" valueType="stringList">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.1289256461"
|
||||
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.1055939214"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DISPLAY_ERROR_NUMBER"
|
||||
value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS.1474045154"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS"
|
||||
valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="10247-D"/>
|
||||
<listOptionValue builtIn="false" value="16002-D"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO.834418659" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO" value=""${ProjName}_linkInfo.xml"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION.1787080463" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION.on" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.1975085474" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.on" valueType="enumerated"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD_SRCS.1644580451" 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.872014788" 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.1023837449" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__GEN_CMDS"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO.834418659"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO"
|
||||
value=""${ProjName}_linkInfo.xml"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION.1787080463"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION.on"
|
||||
valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.1975085474"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF"
|
||||
value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.on"
|
||||
valueType="enumerated"/>
|
||||
<inputType
|
||||
id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD_SRCS.1644580451"
|
||||
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.872014788"
|
||||
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.1023837449"
|
||||
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.1158315651" name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH.485049417" 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.97427136" 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.614513055" 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.1429090237" name="XDCtools" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH.1017190303" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH" valueType="stringList">
|
||||
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.1158315651"
|
||||
name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH.485049417"
|
||||
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.97427136"
|
||||
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.614513055"
|
||||
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.1429090237" name="XDCtools"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH.1017190303"
|
||||
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.1689982900" 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.1214214406" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM" value="ti.platforms.simplelink:CC2640F128" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW.402329212" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW" value="ti.platforms.simplelink:CC2640F128" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE.35098461" 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.2036910366" 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.53221425" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS" value=""${COMPILER_FLAGS}"" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET.1689982900"
|
||||
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.1214214406"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM"
|
||||
value="ti.platforms.simplelink:CC2640F128" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW.402329212"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW"
|
||||
value="ti.platforms.simplelink:CC2640F128" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE.35098461"
|
||||
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.2036910366"
|
||||
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.53221425"
|
||||
superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS"
|
||||
value=""${COMPILER_FLAGS}"" valueType="string"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
@@ -296,8 +433,14 @@
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.exeLinker.inputType__GEN_CMDS.1583605295" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.exeLinker.inputType__GEN_CMDS"/>
|
||||
</tool>
|
||||
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.hex.1106108574" name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.hex">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.hex.ROMWIDTH.1273210432" name="Specify rom width (--romwidth, -romwidth=width)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.hex.ROMWIDTH" value="8" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.hex.MEMWIDTH.1804106884" name="Specify memory width (--memwidth, -memwidth=width)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.hex.MEMWIDTH" value="8" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.hex.ROMWIDTH.1273210432"
|
||||
name="Specify rom width (--romwidth, -romwidth=width)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.hex.ROMWIDTH" value="8"
|
||||
valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.hex.MEMWIDTH.1804106884"
|
||||
name="Specify memory width (--memwidth, -memwidth=width)"
|
||||
superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.hex.MEMWIDTH" value="8"
|
||||
valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.hex.OUTPUT_FORMAT.1229261984" name="Output format" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.hex.OUTPUT_FORMAT" value="com.ti.ccstudio.buildDefinitions.TMS470_5.2.hex.OUTPUT_FORMAT.INTEL" valueType="enumerated"/>
|
||||
</tool>
|
||||
<tool id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.802347647" name="XDCtools" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">
|
||||
|
||||
@@ -116,46 +116,46 @@ const PowerCC26XX_Config PowerCC26XX_config = {
|
||||
* ============================= UART begin ===================================
|
||||
*/
|
||||
/* Place into subsections to allow the TI linker to remove items properly */
|
||||
#if defined(__TI_COMPILER_VERSION__)
|
||||
#pragma DATA_SECTION(UART_config, ".const:UART_config")
|
||||
#pragma DATA_SECTION(uartCC26XXHWAttrs, ".const:uartCC26XXHWAttrs")
|
||||
#endif
|
||||
|
||||
/* Include drivers */
|
||||
#include <ti/drivers/UART.h>
|
||||
#include <ti/drivers/uart/UARTCC26XX.h>
|
||||
|
||||
/* UART objects */
|
||||
UARTCC26XX_Object uartCC26XXObjects[BOOSTXL_CC2650MA_UARTCOUNT];
|
||||
|
||||
/* UART hardware parameter structure, also used to assign UART pins */
|
||||
const UARTCC26XX_HWAttrsV2 uartCC26XXHWAttrs[BOOSTXL_CC2650MA_UARTCOUNT] = {
|
||||
//
|
||||
{
|
||||
.baseAddr = UART0_BASE,
|
||||
.powerMngrId = PowerCC26XX_PERIPH_UART0,
|
||||
.intNum = INT_UART0_COMB,
|
||||
.intPriority = ~0,
|
||||
.swiPriority = 0,
|
||||
.txPin = Board_UART_TX,
|
||||
.rxPin = Board_UART_RX,
|
||||
.ctsPin = PIN_UNASSIGNED,
|
||||
.rtsPin = PIN_UNASSIGNED
|
||||
//
|
||||
}
|
||||
//
|
||||
};
|
||||
|
||||
/* UART configuration structure */
|
||||
const UART_Config UART_config[] = { //
|
||||
{
|
||||
//
|
||||
.fxnTablePtr = &UARTCC26XX_fxnTable,
|
||||
.object = &uartCC26XXObjects[0],
|
||||
.hwAttrs = &uartCC26XXHWAttrs[0]
|
||||
//
|
||||
},
|
||||
{NULL, NULL, NULL}};
|
||||
//#if defined(__TI_COMPILER_VERSION__)
|
||||
//#pragma DATA_SECTION(UART_config, ".const:UART_config")
|
||||
//#pragma DATA_SECTION(uartCC26XXHWAttrs, ".const:uartCC26XXHWAttrs")
|
||||
//#endif
|
||||
//
|
||||
///* Include drivers */
|
||||
//#include <ti/drivers/UART.h>
|
||||
//#include <ti/drivers/uart/UARTCC26XX.h>
|
||||
//
|
||||
///* UART objects */
|
||||
//UARTCC26XX_Object uartCC26XXObjects[BOOSTXL_CC2650MA_UARTCOUNT];
|
||||
//
|
||||
///* UART hardware parameter structure, also used to assign UART pins */
|
||||
//const UARTCC26XX_HWAttrsV2 uartCC26XXHWAttrs[BOOSTXL_CC2650MA_UARTCOUNT] = {
|
||||
// //
|
||||
// {
|
||||
// .baseAddr = UART0_BASE,
|
||||
// .powerMngrId = PowerCC26XX_PERIPH_UART0,
|
||||
// .intNum = INT_UART0_COMB,
|
||||
// .intPriority = ~0,
|
||||
// .swiPriority = 0,
|
||||
// .txPin = Board_UART_TX,
|
||||
// .rxPin = Board_UART_RX,
|
||||
// .ctsPin = PIN_UNASSIGNED,
|
||||
// .rtsPin = PIN_UNASSIGNED
|
||||
// //
|
||||
// }
|
||||
// //
|
||||
//};
|
||||
//
|
||||
///* UART configuration structure */
|
||||
//const UART_Config UART_config[] = { //
|
||||
// {
|
||||
// //
|
||||
// .fxnTablePtr = &UARTCC26XX_fxnTable,
|
||||
// .object = &uartCC26XXObjects[0],
|
||||
// .hwAttrs = &uartCC26XXHWAttrs[0]
|
||||
// //
|
||||
// },
|
||||
// {NULL, NULL, NULL}};
|
||||
/*
|
||||
* ============================= UART end =====================================
|
||||
*/
|
||||
@@ -233,7 +233,7 @@ const SPICC26XXDMA_HWAttrsV1 spiCC26XXDMAHWAttrs[BOOSTXL_CC2650MA_SPICOUNT] = {
|
||||
.mosiPin = Board_SPI0_MOSI,
|
||||
.misoPin = Board_SPI0_MISO,
|
||||
.clkPin = Board_SPI0_CLK,
|
||||
.csnPin = Board_SPI0_CS
|
||||
.csnPin = Board_SPI0_CSN
|
||||
//
|
||||
},
|
||||
#ifdef HEADSTAGE_MA_USE_SPI2
|
||||
@@ -250,7 +250,7 @@ const SPICC26XXDMA_HWAttrsV1 spiCC26XXDMAHWAttrs[BOOSTXL_CC2650MA_SPICOUNT] = {
|
||||
.mosiPin = Board_SPI1_MOSI,
|
||||
.misoPin = Board_SPI1_MISO,
|
||||
.clkPin = Board_SPI1_CLK,
|
||||
.csnPin = Board_SPI1_CS //
|
||||
.csnPin = Board_SPI1_CSN //
|
||||
},
|
||||
#endif
|
||||
};
|
||||
@@ -264,6 +264,7 @@ const SPI_Config SPI_config[] = { //
|
||||
.hwAttrs = &spiCC26XXDMAHWAttrs[0]
|
||||
//
|
||||
},
|
||||
#ifdef HEADSTAGE_MA_USE_SPI2
|
||||
{
|
||||
//
|
||||
.fxnTablePtr = &SPICC26XXDMA_fxnTable,
|
||||
@@ -271,6 +272,7 @@ const SPI_Config SPI_config[] = { //
|
||||
.hwAttrs = &spiCC26XXDMAHWAttrs[1]
|
||||
//
|
||||
},
|
||||
#endif
|
||||
{NULL, NULL, NULL}};
|
||||
/*
|
||||
* ========================== SPI DMA end =====================================
|
||||
@@ -510,3 +512,85 @@ const PWM_Config PWM_config[BOOSTXL_CC2650MA_PWMCOUNT + 1] = {
|
||||
/*
|
||||
* ============================= PWM end ======================================
|
||||
*/
|
||||
|
||||
/*
|
||||
* ============================= I2C Begin=====================================
|
||||
*/
|
||||
|
||||
#ifdef HEADSTAGE_LED_USE_I2C
|
||||
|
||||
#define Board_I2C0_SCL0 IOID_10
|
||||
#define Board_I2C0_SDA0 IOID_11
|
||||
|
||||
/* Place into subsections to allow the TI linker to remove items properly */
|
||||
#if defined(__TI_COMPILER_VERSION__)
|
||||
#pragma DATA_SECTION(I2C_config, ".const:I2C_config")
|
||||
#pragma DATA_SECTION(i2cCC26xxHWAttrs, ".const:i2cCC26xxHWAttrs")
|
||||
#endif
|
||||
|
||||
/* Include drivers */
|
||||
#include <ti/drivers/i2c/I2CCC26XX.h>
|
||||
|
||||
/* I2C objects */
|
||||
I2CCC26XX_Object i2cCC26xxObjects[BOOSTXL_CC2650MA_I2CCOUNT];
|
||||
|
||||
/* I2C configuration structure, describing which pins are to be used */
|
||||
const I2CCC26XX_HWAttrsV1 i2cCC26xxHWAttrs[BOOSTXL_CC2650MA_I2CCOUNT] = {
|
||||
{
|
||||
.baseAddr = I2C0_BASE,
|
||||
.powerMngrId = PowerCC26XX_PERIPH_I2C0,
|
||||
.intNum = INT_I2C_IRQ,
|
||||
.intPriority = ~0,
|
||||
.swiPriority = 0,
|
||||
.sdaPin = Board_I2C0_SDA0,
|
||||
.sclPin = Board_I2C0_SCL0,
|
||||
}
|
||||
};
|
||||
|
||||
/* I2C configuration structure */
|
||||
const I2C_Config I2C_config[] = {
|
||||
{
|
||||
.fxnTablePtr = &I2CCC26XX_fxnTable,
|
||||
.object = &i2cCC26xxObjects[0],
|
||||
.hwAttrs = &i2cCC26xxHWAttrs[0]
|
||||
},
|
||||
{NULL, NULL, NULL}
|
||||
};
|
||||
#endif
|
||||
/*
|
||||
* ========================== I2C end =========================================
|
||||
*/
|
||||
|
||||
/*
|
||||
* ============================= Watchdog begin =====================================
|
||||
*/
|
||||
|
||||
/* Place into subsections to allow the TI linker to remove items properly */
|
||||
#if defined(__TI_COMPILER_VERSION__)
|
||||
#pragma DATA_SECTION(Watchdog_config, ".const:Watchdog_config")
|
||||
#pragma DATA_SECTION(wdCC26XXHWAttrs, ".const:wdCC26XXHWAttrs")
|
||||
#endif
|
||||
|
||||
#include <ti/drivers/watchdog/WatchdogCC26XX.h>
|
||||
WatchdogCC26XX_Object wdCC26XXObject[BOOSTXL_CC2650MA_WATCHDOGCOUNT];
|
||||
|
||||
const WatchdogCC26XX_HWAttrs wdCC26XXHWAttrs[] = {
|
||||
{
|
||||
.baseAddr = WDT_BASE,
|
||||
.intNum = INT_WDT_IRQ,
|
||||
.reloadValue = 100
|
||||
}
|
||||
};
|
||||
|
||||
/* I2S configuration structure */
|
||||
const Watchdog_Config Watchdog_config[] = {
|
||||
{
|
||||
.fxnTablePtr = &WatchdogCC26XX_fxnTable,
|
||||
.object = &wdCC26XXObject[0],
|
||||
.hwAttrs = &wdCC26XXHWAttrs[0]
|
||||
},
|
||||
{NULL, NULL, NULL}
|
||||
};
|
||||
/*
|
||||
* ============================= Watchdog end =====================================
|
||||
*/
|
||||
|
||||
@@ -51,6 +51,12 @@ extern "C" {
|
||||
#include <ti/drivers/PIN.h>
|
||||
#include <driverlib/ioc.h>
|
||||
|
||||
#define HEADSTAGE_UNI_2_0
|
||||
#ifdef HEADSTAGE_UNI_2_0
|
||||
#include "neu/headstage_pin.h"
|
||||
#else
|
||||
#include "uni/headstage_pin.h"
|
||||
#endif
|
||||
/** ============================================================================
|
||||
* Externs
|
||||
* ==========================================================================*/
|
||||
@@ -89,25 +95,25 @@ extern const PIN_Config BoardGpioInitTable[];
|
||||
*/
|
||||
|
||||
/* Connector J1 */
|
||||
#define Board_BP_Pin_J1_2 DIO7
|
||||
#define Board_BP_Pin_J1_3 DIO0
|
||||
#define Board_BP_Pin_J1_4 DIO1
|
||||
#define Board_BP_Pin_J1_5 DIO2
|
||||
#define Board_BP_Pin_J1_6 DIO3
|
||||
#define Board_BP_Pin_J1_7 DIO10
|
||||
#define Board_BP_Pin_J1_8 DIO4
|
||||
#define Board_BP_Pin_J1_9 DIO5
|
||||
#define Board_BP_Pin_J1_10 DIO6
|
||||
#define Board_BP_Pin_J1_2 IOID_UNUSED
|
||||
#define Board_BP_Pin_J1_3 IOID_UNUSED
|
||||
#define Board_BP_Pin_J1_4 IOID_UNUSED
|
||||
#define Board_BP_Pin_J1_5 IOID_UNUSED
|
||||
#define Board_BP_Pin_J1_6 IOID_UNUSED
|
||||
#define Board_BP_Pin_J1_7 IOID_UNUSED
|
||||
#define Board_BP_Pin_J1_8 IOID_UNUSED
|
||||
#define Board_BP_Pin_J1_9 IOID_UNUSED
|
||||
#define Board_BP_Pin_J1_10 IOID_UNUSED
|
||||
|
||||
/* Connector J2 */
|
||||
#define Board_BP_Pin_J2_19 DIO8
|
||||
#define Board_BP_Pin_J2_18 DIO9 /* CS */
|
||||
#define Board_BP_Pin_J2_17 IOID_UNUSED /* NC */
|
||||
#define Board_BP_Pin_J2_15 DIO11 /* MOSI */
|
||||
#define Board_BP_Pin_J2_14 DIO12 /* MISO */
|
||||
#define Board_BP_Pin_J2_13 DIO13
|
||||
#define Board_BP_Pin_J2_12 DIO14
|
||||
#define Board_BP_Pin_J2_11 IOID_UNUSED /* NC */
|
||||
#define Board_BP_Pin_J2_19 IOID_UNUSED
|
||||
#define Board_BP_Pin_J2_18 IOID_UNUSED /* CS */
|
||||
#define Board_BP_Pin_J2_17 IOID_UNUSED /* NC */
|
||||
#define Board_BP_Pin_J2_15 IOID_UNUSED /* MOSI */
|
||||
#define Board_BP_Pin_J2_14 IOID_UNUSED /* MISO */
|
||||
#define Board_BP_Pin_J2_13 IOID_UNUSED
|
||||
#define Board_BP_Pin_J2_12 IOID_UNUSED
|
||||
#define Board_BP_Pin_J2_11 IOID_UNUSED /* NC */
|
||||
|
||||
/* Mapping of BoosterPack Connector Pins to BoosterPack Standard Functions (reflecting the BoosterPack Standard)
|
||||
*/
|
||||
@@ -137,42 +143,49 @@ extern const PIN_Config BoardGpioInitTable[];
|
||||
*/
|
||||
|
||||
/* On-board LEDs */
|
||||
#define Board_GLED DIO2 /* Green LED */
|
||||
#define Board_RLED DIO4 /* Red LED */
|
||||
#define Board_GLED PIN_UNASSIGNED /* Green LED */
|
||||
#define Board_RLED PIN_UNASSIGNED /* Red LED */
|
||||
|
||||
/* UART Board */
|
||||
#define Board_UART_TX Board_BP_UART_Rx /* RXD */
|
||||
#define Board_UART_RX Board_BP_UART_Tx /* TXD */
|
||||
|
||||
/* SPI Board */
|
||||
#define Board_SPI0_MISO Board_BP_SPI_MISO
|
||||
#define Board_SPI0_MOSI Board_BP_SPI_MOSI
|
||||
#define Board_SPI0_CLK Board_BP_SPI_CLK
|
||||
#define Board_SPI0_CS Board_BP_SPI_CS_Wireless
|
||||
|
||||
#define Board_SPI1_MISO PIN_UNASSIGNED
|
||||
#define Board_SPI1_MOSI PIN_UNASSIGNED
|
||||
#define Board_SPI1_CLK PIN_UNASSIGNED
|
||||
#define Board_SPI1_CS PIN_UNASSIGNED
|
||||
|
||||
/* Power Management Board */
|
||||
#define Board_SRDY Board_BP_Pin_J2_19
|
||||
#define Board_MRDY Board_BP_Pin_J1_2
|
||||
|
||||
/* PWM outputs */
|
||||
#define Board_PWMPIN0 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN1 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN2 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN3 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN4 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN5 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN6 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN7 PIN_UNASSIGNED
|
||||
///*
|
||||
// * SPI0 interface with DBS chip 2.0
|
||||
// */
|
||||
//#define Board_SPI0_MISO PIN_UNASSIGNED
|
||||
//#define Board_SPI0_MOSI PIN_UNASSIGNED
|
||||
//#define Board_SPI0_CLK PIN_UNASSIGNED
|
||||
//#define Board_SPI0_CS PIN_UNASSIGNED
|
||||
//
|
||||
///*
|
||||
// * SPI1 interface work with LED
|
||||
// */
|
||||
//
|
||||
//#define Board_SPI1_MISO PIN_UNASSIGNED
|
||||
//#define Board_SPI1_MOSI PIN_UNASSIGNED
|
||||
//#define Board_SPI1_CLK PIN_UNASSIGNED
|
||||
//#define Board_SPI1_CS PIN_UNASSIGNED
|
||||
//
|
||||
///* Power Management Board */
|
||||
//#define Board_SRDY Board_BP_Pin_J2_19
|
||||
//#define Board_MRDY Board_BP_Pin_J1_2
|
||||
//
|
||||
///* PWM outputs */
|
||||
//#define Board_PWMPIN0 PIN_UNASSIGNED
|
||||
//#define Board_PWMPIN1 PIN_UNASSIGNED
|
||||
//#define Board_PWMPIN2 PIN_UNASSIGNED
|
||||
//#define Board_PWMPIN3 PIN_UNASSIGNED
|
||||
//#define Board_PWMPIN4 PIN_UNASSIGNED
|
||||
//#define Board_PWMPIN5 PIN_UNASSIGNED
|
||||
//#define Board_PWMPIN6 PIN_UNASSIGNED
|
||||
//#define Board_PWMPIN7 PIN_UNASSIGNED
|
||||
|
||||
|
||||
/** ============================================================================
|
||||
* Instance identifiers
|
||||
* ==========================================================================*/
|
||||
|
||||
/* Generic SPI instance identifiers */
|
||||
#define Board_SPI0 BOOSTXL_CC2650MA_SPI0
|
||||
|
||||
@@ -210,6 +223,16 @@ extern const PIN_Config BoardGpioInitTable[];
|
||||
* Number of peripherals and their names
|
||||
* ==========================================================================*/
|
||||
|
||||
/*
|
||||
* @def BOOSTXL_CC2650MA_I2C
|
||||
* @brief Enum of I2C names on the cc2650 dev board
|
||||
*/
|
||||
typedef enum BOOSTXL_CC2650MA_I2CName{
|
||||
BOOSTXL_CC2650MA_I2C0 = 0,
|
||||
|
||||
BOOSTXL_CC2650MA_I2CCOUNT
|
||||
} BOOSTXL_CC2650MA_I2CName;
|
||||
|
||||
/*!
|
||||
* @def BOOSTXL_CC2650MA_CryptoName
|
||||
* @brief Enum of Crypto names on the CC2650 Booster Pack
|
||||
@@ -311,6 +334,12 @@ typedef enum BOOSTXL_CC2650MA_PWM
|
||||
BOOSTXL_CC2650MA_PWMCOUNT
|
||||
} BOOSTXL_CC2650MA_PWM;
|
||||
|
||||
typedef enum BOOSTXL_CC2650MA_WATCHDOG
|
||||
{
|
||||
BOOSTXL_CC2650MA_WATCHDOG0 = 0,
|
||||
BOOSTXL_CC2650MA_WATCHDOGCOUNT
|
||||
} BOOSTXL_CC2650MA_WATCHDOG;
|
||||
|
||||
#ifdef HEADSTAGE_MA_USE_ADC
|
||||
|
||||
/*!
|
||||
|
||||
@@ -73,17 +73,18 @@
|
||||
#endif
|
||||
|
||||
const PIN_Config BoardGpioInitTable[] = {
|
||||
|
||||
Board_DK_LED3 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX, /* LED initially off */
|
||||
Board_DK_LED4 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX, /* LED initially off */
|
||||
Board_KEY_SELECT | PIN_INPUT_EN | PIN_PULLUP | PIN_HYSTERESIS, /* Button is active low */
|
||||
Board_KEY_UP | PIN_INPUT_EN | PIN_PULLUP | PIN_HYSTERESIS, /* Button is active low */
|
||||
Board_KEY_DOWN | PIN_INPUT_EN | PIN_PULLUP | PIN_HYSTERESIS, /* Button is active low */
|
||||
Board_KEY_LEFT | PIN_INPUT_EN | PIN_PULLUP | PIN_HYSTERESIS, /* Button is active low */
|
||||
Board_KEY_RIGHT | PIN_INPUT_EN | PIN_PULLUP | PIN_HYSTERESIS, /* Button is active low */
|
||||
Board_3V3_EN | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL, /* 3V3 domain off initially */
|
||||
Board_UART_TX | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL, /* UART TX pin at inactive level */
|
||||
PIN_TERMINATE /* Terminate list */
|
||||
S2P_RST | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
|
||||
P2S_RST | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
|
||||
SPI_MOSI | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
|
||||
SPI_MISO | PIN_INPUT_EN | PIN_PULLDOWN,
|
||||
SPI_CLK | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
|
||||
Board_3V3_EN | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
|
||||
Board_UART_TX | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
|
||||
Board_UART_RX | PIN_INPUT_EN | PIN_PULLDOWN,
|
||||
Board_DK_LED3 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
|
||||
Board_DK_LED4 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
|
||||
PIN_TERMINATE
|
||||
/* Terminate list */
|
||||
};
|
||||
|
||||
const PINCC26XX_HWAttrs PINCC26XX_hwAttrs = {
|
||||
@@ -233,7 +234,7 @@ const SPI_Config SPI_config[] = {
|
||||
.object = &spiCC26XXDMAObjects[0],
|
||||
.hwAttrs = &spiCC26XXDMAHWAttrs[0]
|
||||
},
|
||||
{NULL, NULL, NULL}
|
||||
{ NULL, NULL, NULL}
|
||||
};
|
||||
/*
|
||||
* ========================== SPI DMA end =====================================
|
||||
|
||||
@@ -103,8 +103,8 @@ extern const PIN_Config BoardGpioInitTable[];
|
||||
/* Power Board */
|
||||
#define Board_3V3_EN IOID_14 /* P1.15 */
|
||||
/* PWM outputs */
|
||||
#define Board_PWMPIN0 Board_DK_LED3
|
||||
#define Board_PWMPIN1 Board_DK_LED4
|
||||
#define Board_PWMPIN0 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN1 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN2 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN3 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN4 PIN_UNASSIGNED
|
||||
@@ -112,6 +112,12 @@ extern const PIN_Config BoardGpioInitTable[];
|
||||
#define Board_PWMPIN6 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN7 PIN_UNASSIGNED
|
||||
|
||||
#define S2P_RST IOID_9
|
||||
#define P2S_RST IOID_13
|
||||
#define SPI_MOSI Board_SPI0_MOSI
|
||||
#define SPI_MISO Board_SPI0_MISO
|
||||
#define SPI_CLK Board_SPI0_CLK
|
||||
|
||||
/** ============================================================================
|
||||
* Instance identifiers
|
||||
* ==========================================================================*/
|
||||
|
||||
@@ -84,6 +84,9 @@ const PIN_Config BoardGpioInitTable[] = {
|
||||
Board_SPI0_MOSI | PIN_INPUT_EN | PIN_PULLDOWN, /* SPI master out - slave in */
|
||||
Board_SPI0_MISO | PIN_INPUT_EN | PIN_PULLDOWN, /* SPI master in - slave out */
|
||||
Board_SPI0_CLK | PIN_INPUT_EN | PIN_PULLDOWN, /* SPI clock */
|
||||
Board_SPI1_MOSI | PIN_INPUT_EN | PIN_PULLDOWN, /* SPI master out - slave in */
|
||||
Board_SPI1_MISO | PIN_INPUT_EN | PIN_PULLDOWN, /* SPI master in - slave out */
|
||||
Board_SPI1_CLK | PIN_INPUT_EN | PIN_PULLDOWN, /* SPI clock */
|
||||
|
||||
PIN_TERMINATE
|
||||
};
|
||||
|
||||
@@ -51,6 +51,8 @@ extern "C" {
|
||||
#include <ti/drivers/PIN.h>
|
||||
#include <driverlib/ioc.h>
|
||||
|
||||
#include "neu/headstage_pin.h"
|
||||
|
||||
/** ============================================================================
|
||||
* Externs
|
||||
* ==========================================================================*/
|
||||
@@ -68,34 +70,34 @@ extern const PIN_Config BoardGpioInitTable[];
|
||||
*/
|
||||
|
||||
/* Discrete outputs */
|
||||
#define Board_RLED IOID_6
|
||||
#define Board_GLED IOID_7
|
||||
#define Board_RLED PIN_UNASSIGNED
|
||||
#define Board_GLED PIN_UNASSIGNED
|
||||
#define Board_LED_ON 1
|
||||
#define Board_LED_OFF 0
|
||||
|
||||
/* Discrete inputs */
|
||||
#define Board_BTN1 IOID_13
|
||||
#define Board_BTN2 IOID_14
|
||||
#define Board_BTN1 PIN_UNASSIGNED
|
||||
#define Board_BTN2 PIN_UNASSIGNED
|
||||
|
||||
/* UART Board */
|
||||
#define Board_UART_RX IOID_2 /* RXD */
|
||||
#define Board_UART_TX IOID_3 /* TXD */
|
||||
#define Board_UART_CTS IOID_19 /* CTS */
|
||||
#define Board_UART_RTS IOID_18 /* RTS */
|
||||
#define Board_UART_RX PIN_UNASSIGNED /* RXD */
|
||||
#define Board_UART_TX PIN_UNASSIGNED /* TXD */
|
||||
#define Board_UART_CTS PIN_UNASSIGNED /* CTS */
|
||||
#define Board_UART_RTS PIN_UNASSIGNED /* RTS */
|
||||
|
||||
/* SPI Board */
|
||||
#define Board_SPI0_MISO IOID_8 /* RF1.20 */
|
||||
#define Board_SPI0_MOSI IOID_9 /* RF1.18 */
|
||||
#define Board_SPI0_CLK IOID_10 /* RF1.16 */
|
||||
#define Board_SPI0_CSN PIN_UNASSIGNED
|
||||
#define Board_SPI1_MISO PIN_UNASSIGNED
|
||||
#define Board_SPI1_MOSI PIN_UNASSIGNED
|
||||
#define Board_SPI1_CLK PIN_UNASSIGNED
|
||||
#define Board_SPI1_CSN PIN_UNASSIGNED
|
||||
//#define Board_SPI0_MISO PIN_UNASSIGNED /* RF1.20 */
|
||||
//#define Board_SPI0_MOSI PIN_UNASSIGNED /* RF1.18 */
|
||||
//#define Board_SPI0_CLK PIN_UNASSIGNED /* RF1.16 */
|
||||
//#define Board_SPI0_CSN PIN_UNASSIGNED
|
||||
//#define Board_SPI1_MISO PIN_UNASSIGNED
|
||||
//#define Board_SPI1_MOSI PIN_UNASSIGNED
|
||||
//#define Board_SPI1_CLK PIN_UNASSIGNED
|
||||
//#define Board_SPI1_CSN PIN_UNASSIGNED
|
||||
|
||||
/* I2C */
|
||||
#define Board_I2C0_SCL0 IOID_4
|
||||
#define Board_I2C0_SDA0 IOID_5
|
||||
#define Board_I2C0_SCL0 PIN_UNASSIGNED
|
||||
#define Board_I2C0_SDA0 PIN_UNASSIGNED
|
||||
|
||||
/* SPI */
|
||||
#define Board_SPI_FLASH_CS IOID_20
|
||||
@@ -123,21 +125,21 @@ extern const PIN_Config BoardGpioInitTable[];
|
||||
|
||||
/* Booster pack LCD (430BOOST - Sharp96 Rev 1.1) */
|
||||
#define Board_LCD_CS IOID_24 // SPI chip select
|
||||
#define Board_LCD_EXTCOMIN IOID_12 // External COM inversion
|
||||
#define Board_LCD_EXTCOMIN PIN_UNASSIGNED // External COM inversion
|
||||
#define Board_LCD_ENABLE IOID_22 // LCD enable
|
||||
#define Board_LCD_POWER IOID_23 // LCD power control
|
||||
#define Board_LCD_CS_ON 1
|
||||
#define Board_LCD_CS_OFF 0
|
||||
|
||||
/* PWM outputs */
|
||||
#define Board_PWMPIN0 Board_RLED
|
||||
#define Board_PWMPIN1 Board_GLED
|
||||
#define Board_PWMPIN2 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN3 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN4 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN5 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN6 PIN_UNASSIGNED
|
||||
#define Board_PWMPIN7 PIN_UNASSIGNED
|
||||
//#define Board_PWMPIN0 PIN_UNASSIGNED
|
||||
//#define Board_PWMPIN1 PIN_UNASSIGNED
|
||||
//#define Board_PWMPIN2 PIN_UNASSIGNED
|
||||
//#define Board_PWMPIN3 PIN_UNASSIGNED
|
||||
//#define Board_PWMPIN4 PIN_UNASSIGNED
|
||||
//#define Board_PWMPIN5 PIN_UNASSIGNED
|
||||
//#define Board_PWMPIN6 PIN_UNASSIGNED
|
||||
//#define Board_PWMPIN7 PIN_UNASSIGNED
|
||||
|
||||
/** ============================================================================
|
||||
* Instance identifiers
|
||||
|
||||
Executable → Regular
@@ -0,0 +1,157 @@
|
||||
/******************************************************************************
|
||||
|
||||
@file cc26xx_app.cmd
|
||||
|
||||
@brief CC2650F128 linker configuration file for TI-RTOS with Code Composer
|
||||
Studio.
|
||||
|
||||
Group: WCS, BTS
|
||||
Target Device: CC2650, CC2640, CC1350
|
||||
|
||||
******************************************************************************
|
||||
|
||||
Copyright (c) 2013-2016, Texas Instruments Incorporated
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name of Texas Instruments Incorporated nor the names of
|
||||
its contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
||||
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
******************************************************************************
|
||||
Release Name: ble_sdk_2_02_01_18
|
||||
Release Date: 2016-10-26 15:20:04
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/* Retain interrupt vector table variable */
|
||||
--retain=g_pfnVectors
|
||||
/* Override default entry point. */
|
||||
--entry_point ResetISR
|
||||
/* Suppress warnings and errors: */
|
||||
/* - 10063: Warning about entry point not being _c_int00 */
|
||||
/* - 16011, 16012: 8-byte alignment errors. Observed when linking in object */
|
||||
/* files compiled using Keil (ARM compiler) */
|
||||
--diag_suppress=10063,16011,16012
|
||||
|
||||
/* The following command line options are set as part of the CCS project. */
|
||||
/* If you are building using the command line, or for some reason want to */
|
||||
/* define them here, you can uncomment and modify these lines as needed. */
|
||||
/* If you are using CCS for building, it is probably better to make any such */
|
||||
/* modifications in your CCS project and leave this file alone. */
|
||||
/* */
|
||||
/* --heap_size=0 */
|
||||
/* --stack_size=256 */
|
||||
/* --library=rtsv7M3_T_le_eabi.lib */
|
||||
|
||||
/* The starting address of the application. Normally the interrupt vectors */
|
||||
/* must be located at the beginning of the application. Flash is 128KB, with */
|
||||
/* sector length of 4KB */
|
||||
#define FLASH_APP_BASE 0x00000000
|
||||
#define FLASH_LEN 0x20000
|
||||
#define FLASH_PAGE_LEN 0x1000
|
||||
|
||||
/* Last page of Flash is allocated to App: 0x1F000 - 0x1FFFF */
|
||||
#define FLASH_LAST_PAGE_START FLASH_LEN - FLASH_PAGE_LEN
|
||||
|
||||
/* RAM starts at 0x20000000 and is 20KB */
|
||||
#define RAM_APP_BASE 0x20000000
|
||||
#define RAM_LEN 0x5000
|
||||
/* RAM reserved by ROM code starts. */
|
||||
#define RAM_RESERVED_OFFSET 0x4F00
|
||||
|
||||
/* RAM starts at 0x20000000 and is 2KB */
|
||||
#define AUX_RAM_BASE 0x400E0000
|
||||
#define AUX_RAM_LEN 0x800
|
||||
|
||||
/* System memory map */
|
||||
|
||||
MEMORY
|
||||
{
|
||||
/* EDITOR'S NOTE:
|
||||
* the FLASH and SRAM lengths can be changed by defining
|
||||
* ICALL_STACK0_START or ICALL_RAM0_START in
|
||||
* Properties->ARM Linker->Advanced Options->Command File Preprocessing.
|
||||
*/
|
||||
|
||||
/* Application stored in and executes from internal flash */
|
||||
/* Flash Size 128 KB */
|
||||
#ifdef ICALL_STACK0_START
|
||||
FLASH (RX) : origin = FLASH_APP_BASE, length = ICALL_STACK0_START - FLASH_APP_BASE
|
||||
#else // default
|
||||
FLASH (RX) : origin = FLASH_APP_BASE, length = FLASH_LEN - FLASH_PAGE_LEN
|
||||
#endif
|
||||
|
||||
// CCFG Page, contains .ccfg code section and some application code.
|
||||
FLASH_LAST_PAGE (RX) : origin = FLASH_LAST_PAGE_START, length = FLASH_PAGE_LEN
|
||||
|
||||
/* Application uses internal RAM for data */
|
||||
/* RAM Size 16 KB */
|
||||
#ifdef ICALL_RAM0_START
|
||||
SRAM (RWX) : origin = RAM_APP_BASE, length = ICALL_RAM0_START - RAM_APP_BASE
|
||||
#else //default
|
||||
SRAM (RWX) : origin = RAM_APP_BASE, length = RAM_RESERVED_OFFSET
|
||||
#endif
|
||||
|
||||
AUXRAM (RWX) : origin = AUX_RAM_BASE, length = AUX_RAM_LEN
|
||||
}
|
||||
|
||||
/* Section allocation in memory */
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
.intvecs : > FLASH_APP_BASE
|
||||
.text : >> FLASH | FLASH_LAST_PAGE
|
||||
.const : >> FLASH | FLASH_LAST_PAGE
|
||||
.constdata : >> FLASH | FLASH_LAST_PAGE
|
||||
.rodata : >> FLASH | FLASH_LAST_PAGE
|
||||
.cinit : > FLASH | FLASH_LAST_PAGE
|
||||
.pinit : >> FLASH | FLASH_LAST_PAGE
|
||||
.init_array : >> FLASH | FLASH_LAST_PAGE
|
||||
.emb_text : >> FLASH | FLASH_LAST_PAGE
|
||||
.ccfg : > FLASH_LAST_PAGE (HIGH)
|
||||
|
||||
GROUP > SRAM
|
||||
{
|
||||
.data
|
||||
.bss
|
||||
.vtable
|
||||
.vtable_ram
|
||||
vtable_ram
|
||||
.sysmem
|
||||
.nonretenvar
|
||||
} LOAD_END(heapStart)
|
||||
|
||||
.stack : > SRAM (HIGH) LOAD_START(heapEnd)
|
||||
|
||||
.aux_ram : > AUXRAM
|
||||
}
|
||||
|
||||
/* Create global constant that points to top of stack */
|
||||
/* CCS: Change stack size under Project Properties */
|
||||
__STACK_TOP = __stack + __STACK_SIZE;
|
||||
|
||||
/* Allow main() to take args */
|
||||
--args 0x8
|
||||
@@ -0,0 +1,148 @@
|
||||
|
||||
/*
|
||||
* Filename: cc26xx_app_gpram.cmd
|
||||
*
|
||||
* Description: CCS linker file to define GPRAM region
|
||||
*
|
||||
*
|
||||
* Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* Neither the name of Texas Instruments Incorporated nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
/* Retain interrupt vector table variable */
|
||||
--retain=g_pfnVectors
|
||||
/* Override default entry point. */
|
||||
--entry_point ResetISR
|
||||
/* Suppress warnings and errors: */
|
||||
/* - 10063: Warning about entry point not being _c_int00 */
|
||||
/* - 16011, 16012: 8-byte alignment errors. Observed when linking in object */
|
||||
/* files compiled using Keil (ARM compiler) */
|
||||
--diag_suppress=10063,16011,16012
|
||||
|
||||
/* The following command line options are set as part of the CCS project. */
|
||||
/* If you are building using the command line, or for some reason want to */
|
||||
/* define them here, you can uncomment and modify these lines as needed. */
|
||||
/* If you are using CCS for building, it is probably better to make any such */
|
||||
/* modifications in your CCS project and leave this file alone. */
|
||||
/* */
|
||||
/* --heap_size=0 */
|
||||
/* --stack_size=256 */
|
||||
/* --library=rtsv7M3_T_le_eabi.lib */
|
||||
|
||||
/* The starting address of the application. Normally the interrupt vectors */
|
||||
/* must be located at the beginning of the application. Flash is 128KB, with */
|
||||
/* sector length of 4KB */
|
||||
#define FLASH_APP_BASE 0x00000000
|
||||
#define FLASH_LEN 0x20000
|
||||
#define FLASH_PAGE_LEN 0x1000
|
||||
|
||||
/* Last page of Flash is allocated to App: 0x1F000 - 0x1FFFF */
|
||||
#define FLASH_LAST_PAGE_START FLASH_LEN - FLASH_PAGE_LEN
|
||||
|
||||
/* RAM starts at 0x20000000 and is 20KB */
|
||||
#define RAM_APP_BASE 0x20000000
|
||||
#define RAM_LEN 0x5000
|
||||
/* RAM reserved by ROM code starts. */
|
||||
#define RAM_RESERVED_OFFSET 0x4F00
|
||||
|
||||
/* GPRAM starts at 0x11000000 and is 8KB */
|
||||
#define GPRAM_BASE 0x11000000
|
||||
#define GPRAM_SIZE 0x2000
|
||||
|
||||
/* System memory map */
|
||||
|
||||
MEMORY
|
||||
{
|
||||
/* EDITOR'S NOTE:
|
||||
* the FLASH and SRAM lengths can be changed by defining
|
||||
* ICALL_STACK0_START or ICALL_RAM0_START in
|
||||
* Properties->ARM Linker->Advanced Options->Command File Preprocessing.
|
||||
*/
|
||||
|
||||
/* Application stored in and executes from internal flash */
|
||||
/* Flash Size 128 KB */
|
||||
#ifdef ICALL_STACK0_START
|
||||
FLASH (RX) : origin = FLASH_APP_BASE, length = ICALL_STACK0_START - FLASH_APP_BASE
|
||||
#else // default
|
||||
FLASH (RX) : origin = FLASH_APP_BASE, length = FLASH_LEN - FLASH_PAGE_LEN
|
||||
#endif
|
||||
|
||||
// CCFG Page, contains .ccfg code section and some application code.
|
||||
FLASH_LAST_PAGE (RX) : origin = FLASH_LAST_PAGE_START, length = FLASH_PAGE_LEN
|
||||
|
||||
/* Application uses internal RAM for data */
|
||||
/* RAM Size 16 KB */
|
||||
#ifdef ICALL_RAM0_START
|
||||
SRAM (RWX) : origin = RAM_APP_BASE, length = ICALL_RAM0_START - RAM_APP_BASE
|
||||
#else //default
|
||||
SRAM (RWX) : origin = RAM_APP_BASE, length = RAM_RESERVED_OFFSET
|
||||
#endif
|
||||
|
||||
GPRAM (RWX) : origin = GPRAM_BASE, length = GPRAM_SIZE
|
||||
}
|
||||
|
||||
/* Section allocation in memory */
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
.intvecs : > FLASH_APP_BASE
|
||||
.text : >> FLASH | FLASH_LAST_PAGE
|
||||
.const : >> FLASH | FLASH_LAST_PAGE
|
||||
.constdata : >> FLASH | FLASH_LAST_PAGE
|
||||
.rodata : >> FLASH | FLASH_LAST_PAGE
|
||||
.cinit : > FLASH | FLASH_LAST_PAGE
|
||||
.pinit : >> FLASH | FLASH_LAST_PAGE
|
||||
.init_array : >> FLASH | FLASH_LAST_PAGE
|
||||
.emb_text : >> FLASH | FLASH_LAST_PAGE
|
||||
.ccfg : > FLASH_LAST_PAGE (HIGH)
|
||||
.bss : > GPRAM
|
||||
|
||||
|
||||
GROUP > SRAM
|
||||
{
|
||||
.data
|
||||
.vtable
|
||||
.vtable_ram
|
||||
vtable_ram
|
||||
.sysmem
|
||||
.nonretenvar
|
||||
} LOAD_END(heapStart)
|
||||
|
||||
.stack : > SRAM (HIGH) LOAD_START(heapEnd)
|
||||
}
|
||||
|
||||
/* Create global constant that points to top of stack */
|
||||
/* CCS: Change stack size under Project Properties */
|
||||
__STACK_TOP = __stack + __STACK_SIZE;
|
||||
|
||||
/* Allow main() to take args */
|
||||
--args 0x8
|
||||
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
@@ -0,0 +1,170 @@
|
||||
|
||||
/*
|
||||
* Filename: cc26xx_app_gpram.icf
|
||||
*
|
||||
* Description: IAR linker file to define GPRAM region
|
||||
*
|
||||
*
|
||||
* Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* Neither the name of Texas Instruments Incorporated nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Memory Sizes
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
define symbol RAM_SIZE = 0x00005000; // 20K
|
||||
define symbol FLASH_SIZE = 0x00020000; // 128K
|
||||
define symbol ROM_SIZE = 0x0001C000; // 115K
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Memory Definitions
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// RAM
|
||||
//
|
||||
define symbol RAM_START = 0x20000000;
|
||||
define symbol RAM_RESERVED_START = 0x20004F00;
|
||||
|
||||
if ( isdefinedsymbol(ICALL_RAM0_START) )
|
||||
{
|
||||
define symbol RAM_END = (ICALL_RAM0_START-1);
|
||||
}
|
||||
else // default
|
||||
{
|
||||
define symbol RAM_END = RAM_RESERVED_START - 1;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Flash
|
||||
//
|
||||
define symbol FLASH_START = 0x00000000;
|
||||
|
||||
if ( isdefinedsymbol(ICALL_STACK0_START) )
|
||||
{
|
||||
define symbol FLASH_END = (ICALL_STACK0_START-1);
|
||||
}
|
||||
else // default
|
||||
{
|
||||
// Default includes all but last page, which is defined later.
|
||||
define symbol FLASH_END = FLASH_START + FLASH_SIZE - 0x1001;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Stack
|
||||
//
|
||||
|
||||
define symbol STACK_SIZE = 0x400;
|
||||
define symbol STACK_START = RAM_END + 1;
|
||||
define symbol STACK_END = STACK_START - STACK_SIZE;
|
||||
//
|
||||
define symbol STACK_TOP = RAM_END + 1;
|
||||
export symbol STACK_TOP;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// RAM
|
||||
//
|
||||
|
||||
define symbol GPRAM_START = 0x11000000;
|
||||
define symbol GPRAM_SIZE = 8096;
|
||||
define symbol GPRAM_END = GPRAM_START + GPRAM_SIZE;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Flash Interrupt Vector Table
|
||||
//
|
||||
|
||||
define symbol INTVEC_NUM_ENTRIES = 50 + 1; // first entry is stack location
|
||||
define symbol INTVEC_SIZE = INTVEC_NUM_ENTRIES + 4;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Memory Regions
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
define memory mem with size = 4G;
|
||||
|
||||
define region RAM = mem:[from RAM_START to RAM_END];
|
||||
define region FLASH_LAST_PAGE = mem:[from(FLASH_SIZE) - 0x1000 to FLASH_SIZE-1];
|
||||
define region FLASH = mem:[from FLASH_START to FLASH_END] |
|
||||
FLASH_LAST_PAGE;
|
||||
define region GPRAM = mem:[from GPRAM_START to GPRAM_END];
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Memory Placement
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Code and RO Data
|
||||
place in FLASH { readonly };
|
||||
|
||||
// CCFG
|
||||
place at end of FLASH_LAST_PAGE { readonly section .ccfg };
|
||||
keep { section .ccfg };
|
||||
|
||||
// Interrupt Vector Table
|
||||
place at address mem:FLASH_START { readonly section .intvec };
|
||||
keep { readonly section .intvec };
|
||||
|
||||
// RAM Vector Table
|
||||
place at start of RAM { section .vtable_ram };
|
||||
|
||||
// Runtime Stack
|
||||
define block CSTACK with alignment = 8, size = STACK_SIZE { section .stack };
|
||||
place at end of RAM { block CSTACK };
|
||||
|
||||
// RW Data
|
||||
define block RWDATA { rw };
|
||||
place in RAM { block RWDATA };
|
||||
|
||||
// GPRAM
|
||||
define block GPDATA { section .bss };
|
||||
place in GPRAM { block GPDATA };
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Initialization
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
initialize by copy { readwrite };
|
||||
|
||||
do not initialize
|
||||
{
|
||||
section .noinit,
|
||||
section .stack,
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// The USE_TIRTOS_ROM symbol is defined internally in the build flow (using
|
||||
// --config_def USE_TIRTOS_ROM=1) for TI-RTOS applications whose appBLE.cfg file
|
||||
// specifies to use the ROM.
|
||||
//
|
||||
if (isdefinedsymbol(USE_TIRTOS_ROM)) {
|
||||
include "TIRTOS_ROM.icf";
|
||||
}
|
||||
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
+4
@@ -100,6 +100,7 @@ if (typeof NO_ROM == 'undefined' || (typeof NO_ROM != 'undefined' && NO_ROM == 0
|
||||
|
||||
/* ================ Clock configuration ================ */
|
||||
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
|
||||
var Timestamp = xdc.useModule('xdc.runtime.Timestamp');
|
||||
/*
|
||||
* When using Power and calibrateRCOSC is set to true, this should be set to 10.
|
||||
* The timer used by the Clock module supports TickMode_DYNAMIC. This enables us
|
||||
@@ -112,6 +113,7 @@ var Clock = xdc.useModule('ti.sysbios.knl.Clock');
|
||||
Clock.tickPeriod = 10;
|
||||
Clock.swiPriority = 5;
|
||||
|
||||
Timestamp.SupportProxy = xdc.useModule('ti.sysbios.family.arm.cc26xx.TimestampProvider');
|
||||
|
||||
/* ================ Types configuration ================ */
|
||||
var Types = xdc.useModule('xdc.runtime.Types');
|
||||
@@ -203,6 +205,7 @@ Error.maxDepth = 2;
|
||||
/* ================ Hwi configuration ================ */
|
||||
var halHwi = xdc.useModule('ti.sysbios.hal.Hwi');
|
||||
var m3Hwi = xdc.useModule('ti.sysbios.family.arm.m3.Hwi');
|
||||
|
||||
/*
|
||||
* Checks for Hwi (system) stack overruns while in the Idle loop.
|
||||
*
|
||||
@@ -216,6 +219,7 @@ var m3Hwi = xdc.useModule('ti.sysbios.family.arm.m3.Hwi');
|
||||
*/
|
||||
//halHwi.checkStackFlag = true;
|
||||
halHwi.checkStackFlag = false;
|
||||
//C:\ti\simplelink\ble_sdk_2_02_02_25\examples\cc2650em\simple_peripheral\ccs\app\.config\xconfig_app_ble
|
||||
|
||||
/*
|
||||
* The following options alter the system's behavior when a hardware exception
|
||||
|
||||
+480
@@ -0,0 +1,480 @@
|
||||
/*
|
||||
* Copyright (c) 2016, Texas Instruments Incorporated
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* * Neither the name of Texas Instruments Incorporated nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
||||
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Includes
|
||||
* ------------------------------------------------------------------------------
|
||||
*/
|
||||
// TI RTOS drivers
|
||||
#include <ti/sysbios/BIOS.h>
|
||||
#include <ti/sysbios/knl/Task.h>
|
||||
#include <ti/sysbios/knl/Semaphore.h>
|
||||
#include <ti/drivers/PIN.h>
|
||||
#include <ti/drivers/SPI.h>
|
||||
|
||||
#include <xdc/runtime/Log.h>
|
||||
#include <xdc/runtime/System.h>
|
||||
|
||||
#include <ti/mw/grlib/grlib.h>
|
||||
#include <ti/mw/display/Display.h>
|
||||
#include <ti/mw/display/DisplaySharp.h>
|
||||
#include <ti/mw/lcd/SharpGrLib.h>
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Constants and macros
|
||||
* ------------------------------------------------------------------------------
|
||||
*/
|
||||
// Timeout of semaphore that controls exclusive to the LCD (infinite)
|
||||
#define ACCESS_TIMEOUT BIOS_WAIT_FOREVER
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Type definitions
|
||||
* ------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Local variables
|
||||
* ------------------------------------------------------------------------------
|
||||
*/
|
||||
/* Display function table for sharp implementation */
|
||||
const Display_FxnTable DisplaySharp_fxnTable = {
|
||||
DisplaySharp_open,
|
||||
DisplaySharp_clear,
|
||||
DisplaySharp_clearLines,
|
||||
DisplaySharp_put5,
|
||||
DisplaySharp_close,
|
||||
DisplaySharp_control,
|
||||
DisplaySharp_getType,
|
||||
};
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Functions
|
||||
* ------------------------------------------------------------------------------
|
||||
*/
|
||||
/*!
|
||||
* @fn DisplaySharp_open
|
||||
*
|
||||
* @brief Initialize the LCD
|
||||
*
|
||||
* @descr Initializes the pins used by the LCD, creates resource access
|
||||
* protection semaphore, turns on the LCD device, initializes the
|
||||
* frame buffer, initializes to white background/dark foreground,
|
||||
* and finally clears the object->displayColor.
|
||||
*
|
||||
* @param hDisplay - pointer to Display_Config struct
|
||||
* @param params - display parameters
|
||||
*
|
||||
* @return Pointer to Display_Config struct
|
||||
*/
|
||||
Display_Handle DisplaySharp_open(Display_Handle hDisplay,
|
||||
Display_Params *params)
|
||||
{
|
||||
DisplaySharp_HWAttrs *hwAttrs = (DisplaySharp_HWAttrs *)hDisplay->hwAttrs;
|
||||
DisplaySharp_Object *object = (DisplaySharp_Object *)hDisplay->object;
|
||||
|
||||
PIN_Config pinTable[4 + 1];
|
||||
|
||||
object->lineClearMode = params->lineClearMode;
|
||||
|
||||
uint32_t i = 0;
|
||||
if (hwAttrs->csPin != PIN_TERMINATE)
|
||||
{
|
||||
pinTable[i++] = hwAttrs->csPin | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX;
|
||||
}
|
||||
if (hwAttrs->extcominPin != PIN_TERMINATE)
|
||||
{
|
||||
pinTable[i++] = hwAttrs->extcominPin | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX;
|
||||
}
|
||||
if (hwAttrs->powerPin != PIN_TERMINATE)
|
||||
{
|
||||
pinTable[i++] = hwAttrs->powerPin | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MAX;
|
||||
}
|
||||
if (hwAttrs->enablePin != PIN_TERMINATE)
|
||||
{
|
||||
pinTable[i++] = hwAttrs->enablePin | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MAX;
|
||||
}
|
||||
pinTable[i++] = PIN_TERMINATE;
|
||||
|
||||
object->hPins = PIN_open(&object->pinState, pinTable);
|
||||
if (object->hPins == NULL)
|
||||
{
|
||||
Log_error0("Couldn't open pins for Sharp96x96");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
SPI_Params spiParams;
|
||||
SPI_Params_init(&spiParams);
|
||||
spiParams.bitRate = 4000000;
|
||||
|
||||
object->hSpi = SPI_open(hwAttrs->spiIndex, &spiParams);
|
||||
|
||||
if (object->hSpi == NULL)
|
||||
{
|
||||
Log_error0("Couldn't open SPI driver for Sharp96x96");
|
||||
PIN_close(object->hPins);
|
||||
object->hPins = NULL;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Init colors
|
||||
object->displayColor.bg = ClrBlack;
|
||||
object->displayColor.fg = ClrWhite;
|
||||
|
||||
// Exclusive access
|
||||
Semaphore_Params semParams;
|
||||
|
||||
Semaphore_Params_init(&semParams);
|
||||
semParams.mode = Semaphore_Mode_BINARY;
|
||||
Semaphore_construct(&object->semLCD, 1, &semParams);
|
||||
|
||||
// Grab LCD
|
||||
Semaphore_pend((Semaphore_Handle) & object->semLCD, ACCESS_TIMEOUT);
|
||||
|
||||
// Initialize the GrLib back-end transport
|
||||
SharpGrLib_init(object->hSpi, object->hPins, hwAttrs->csPin);
|
||||
|
||||
object->g_sDisplay.lSize = sizeof(tDisplay);
|
||||
object->g_sDisplay.pFxns = &g_sharpFxns;
|
||||
object->g_sDisplay.pvDisplayData = object->displayBuffer;
|
||||
object->g_sDisplay.usHeight = hwAttrs->pixelHeight;
|
||||
object->g_sDisplay.usWidth = hwAttrs->pixelWidth;
|
||||
object->g_sDisplay.pvDisplayData = hwAttrs->displayBuf;
|
||||
|
||||
// Graphics library init
|
||||
GrContextInit(&object->g_sContext, &object->g_sDisplay, &g_sharpFxns);
|
||||
|
||||
// Graphics properties
|
||||
GrContextForegroundSet(&object->g_sContext, object->displayColor.fg);
|
||||
GrContextBackgroundSet(&object->g_sContext, object->displayColor.bg);
|
||||
GrContextFontSet(&object->g_sContext, &g_sFontFixed6x8);
|
||||
|
||||
// Clear display
|
||||
GrClearDisplay(&object->g_sContext);
|
||||
GrFlush(&object->g_sContext);
|
||||
|
||||
// Release LCD
|
||||
Semaphore_post((Semaphore_Handle) & object->semLCD);
|
||||
|
||||
return hDisplay;
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
* @fn DisplaySharp_clear
|
||||
*
|
||||
* @brief Clears the display
|
||||
*
|
||||
* @param hDisplay - pointer to Display_Config struct
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
void DisplaySharp_clear(Display_Handle hDisplay)
|
||||
{
|
||||
DisplaySharp_Object *object = (DisplaySharp_Object *)hDisplay->object;
|
||||
|
||||
if (object->hPins == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Grab LCD
|
||||
if (Semaphore_pend((Semaphore_Handle) & object->semLCD, ACCESS_TIMEOUT))
|
||||
{
|
||||
GrClearDisplay(&object->g_sContext);
|
||||
GrFlush(&object->g_sContext);
|
||||
|
||||
// Release LCD
|
||||
Semaphore_post((Semaphore_Handle) & object->semLCD);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
* @fn DisplaySharp_clearLines
|
||||
*
|
||||
* @brief Clears lines lineFrom-lineTo of the display, inclusive
|
||||
*
|
||||
* @param hDisplay - pointer to Display_Config struct
|
||||
* @param lineFrom - line index (0 .. )
|
||||
* @param lineTo - line index (0 .. )
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
void DisplaySharp_clearLines(Display_Handle hDisplay,
|
||||
uint8_t lineFrom, uint8_t lineTo)
|
||||
{
|
||||
DisplaySharp_Object *object = (DisplaySharp_Object *)hDisplay->object;
|
||||
|
||||
if (lineTo <= lineFrom)
|
||||
{
|
||||
lineTo = lineFrom;
|
||||
}
|
||||
|
||||
tRectangle rect = {
|
||||
.sXMin = 0,
|
||||
.sXMax = object->g_sContext.sClipRegion.sXMax,
|
||||
.sYMin = lineFrom * object->g_sContext.pFont->ucHeight,
|
||||
.sYMax = (lineTo + 1) * object->g_sContext.pFont->ucHeight - 1,
|
||||
};
|
||||
|
||||
GrContextForegroundSet(&object->g_sContext, object->displayColor.bg);
|
||||
GrRectFill(&object->g_sContext, &rect);
|
||||
GrContextForegroundSet(&object->g_sContext, object->displayColor.fg);
|
||||
GrFlush(&object->g_sContext);
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
* @fn DisplaySharp_put5
|
||||
*
|
||||
* @brief Write a text string to a specific line/column of the display
|
||||
*
|
||||
* @param hDisplay - pointer to Display_Config struct
|
||||
* @param line - line index (0..)
|
||||
* @param column - column index (0..)
|
||||
* @param fmt - format string
|
||||
* @param aN - optional format arguments
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
void DisplaySharp_put5(Display_Handle hDisplay, uint8_t line,
|
||||
uint8_t column, uintptr_t fmt, uintptr_t a0,
|
||||
uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4)
|
||||
{
|
||||
DisplaySharp_Object *object = (DisplaySharp_Object *)hDisplay->object;
|
||||
|
||||
uint8_t xp, yp, clearStartX, clearEndX;
|
||||
|
||||
char dispStr[23];
|
||||
|
||||
if (object->hPins == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Grab LCD
|
||||
if (Semaphore_pend((Semaphore_Handle) & object->semLCD, ACCESS_TIMEOUT))
|
||||
{
|
||||
xp = column * object->g_sContext.pFont->ucMaxWidth + 1;
|
||||
yp = line * object->g_sContext.pFont->ucHeight + 0;
|
||||
clearStartX = clearEndX = xp;
|
||||
|
||||
switch (object->lineClearMode)
|
||||
{
|
||||
case DISPLAY_CLEAR_LEFT:
|
||||
clearStartX = 0;
|
||||
break;
|
||||
case DISPLAY_CLEAR_RIGHT:
|
||||
clearEndX = object->g_sContext.sClipRegion.sXMax;
|
||||
break;
|
||||
case DISPLAY_CLEAR_BOTH:
|
||||
clearStartX = 0;
|
||||
clearEndX = object->g_sContext.sClipRegion.sXMax;
|
||||
break;
|
||||
case DISPLAY_CLEAR_NONE:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (clearStartX != clearEndX)
|
||||
{
|
||||
tRectangle rect = {
|
||||
.sXMin = clearStartX,
|
||||
.sXMax = clearEndX,
|
||||
.sYMin = yp,
|
||||
.sYMax = yp + object->g_sContext.pFont->ucHeight - 1,
|
||||
};
|
||||
|
||||
GrContextForegroundSet(&object->g_sContext, object->displayColor.bg);
|
||||
GrRectFill(&object->g_sContext, &rect);
|
||||
GrContextForegroundSet(&object->g_sContext, object->displayColor.fg);
|
||||
}
|
||||
|
||||
System_snprintf(dispStr, sizeof(dispStr), (xdc_CString)fmt, a0, a1, a2, a3, a4);
|
||||
|
||||
// Draw a text on the display
|
||||
GrStringDraw(&object->g_sContext,
|
||||
dispStr,
|
||||
AUTO_STRING_LENGTH,
|
||||
xp,
|
||||
yp,
|
||||
OPAQUE_TEXT);
|
||||
|
||||
GrFlush(&object->g_sContext);
|
||||
|
||||
// Release LCD
|
||||
Semaphore_post((Semaphore_Handle) & object->semLCD);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
* @fn DisplaySharp_close
|
||||
*
|
||||
* @brief Turns of the display and releases the LCD control pins
|
||||
*
|
||||
* @param hDisplay - pointer to Display_Config struct
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
void DisplaySharp_close(Display_Handle hDisplay)
|
||||
{
|
||||
DisplaySharp_HWAttrs *hwAttrs = (DisplaySharp_HWAttrs *)hDisplay->hwAttrs;
|
||||
DisplaySharp_Object *object = (DisplaySharp_Object *)hDisplay->object;
|
||||
|
||||
if (object->hPins == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Grab LCD
|
||||
if (Semaphore_pend((Semaphore_Handle) & object->semLCD, ACCESS_TIMEOUT))
|
||||
{
|
||||
// Turn off the display
|
||||
PIN_setOutputValue(object->hPins, hwAttrs->enablePin, 0);
|
||||
|
||||
// Release resources
|
||||
PIN_close(object->hPins);
|
||||
object->hPins = NULL;
|
||||
|
||||
SPI_close(object->hSpi);
|
||||
object->hSpi = NULL;
|
||||
|
||||
// Deconfigure GrLib back-end
|
||||
SharpGrLib_init(NULL, NULL, PIN_UNASSIGNED);
|
||||
|
||||
// Release LCD
|
||||
Semaphore_post((Semaphore_Handle) & object->semLCD);
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
* @fn DisplaySharp_control
|
||||
*
|
||||
* @brief Function for setting control parameters of the Display driver
|
||||
* after it has been opened.
|
||||
*
|
||||
* @param hDisplay - pointer to Display_Config struct
|
||||
* @param cmd - command to execute, supported commands are:
|
||||
* | Command | Description |
|
||||
* |------------------------------- |-------------------------|
|
||||
* | ::DISPLAY_CMD_TRANSPORT_CLOSE | Close SPI but leave control pins |
|
||||
* | ::DISPLAY_CMD_TRANSPORT_OPEN | Re-open SPI driver |
|
||||
* @param arg - argument to the command
|
||||
*
|
||||
* @return ::DISPLAY_STATUS_SUCCESS if success, or error code if error.
|
||||
*/
|
||||
int DisplaySharp_control(Display_Handle hDisplay, unsigned int cmd, void *arg)
|
||||
{
|
||||
DisplaySharp_HWAttrs *hwAttrs = (DisplaySharp_HWAttrs *)hDisplay->hwAttrs;
|
||||
DisplaySharp_Object *object = (DisplaySharp_Object *)hDisplay->object;
|
||||
|
||||
/* Initialize return value */
|
||||
int ret = DISPLAY_STATUS_ERROR;
|
||||
|
||||
/* Perform command */
|
||||
switch(cmd)
|
||||
{
|
||||
case DISPLAY_CMD_TRANSPORT_CLOSE:
|
||||
// Grab LCD
|
||||
if (Semaphore_pend((Semaphore_Handle) & object->semLCD, ACCESS_TIMEOUT))
|
||||
{
|
||||
if (object->hSpi)
|
||||
{
|
||||
// Close SPI and tell back-end there is no SPI
|
||||
SPI_close(object->hSpi);
|
||||
SharpGrLib_init(NULL, object->hPins, hwAttrs->csPin);
|
||||
object->hSpi = NULL;
|
||||
ret = DISPLAY_STATUS_SUCCESS;
|
||||
}
|
||||
// Release LCD
|
||||
Semaphore_post((Semaphore_Handle) & object->semLCD);
|
||||
}
|
||||
break;
|
||||
|
||||
case DISPLAY_CMD_TRANSPORT_OPEN:
|
||||
// Grab LCD
|
||||
if (Semaphore_pend((Semaphore_Handle) & object->semLCD, ACCESS_TIMEOUT))
|
||||
{
|
||||
if (NULL == object->hSpi)
|
||||
{
|
||||
// Re-open SPI and re-init back-end
|
||||
SPI_Params spiParams;
|
||||
SPI_Params_init(&spiParams);
|
||||
spiParams.bitRate = 4000000;
|
||||
object->hSpi = SPI_open(hwAttrs->spiIndex, &spiParams);
|
||||
SharpGrLib_init(object->hSpi, object->hPins, hwAttrs->csPin);
|
||||
ret = DISPLAY_STATUS_SUCCESS;
|
||||
}
|
||||
// Release LCD
|
||||
Semaphore_post((Semaphore_Handle) & object->semLCD);
|
||||
}
|
||||
break;
|
||||
|
||||
case DISPLAYSHARP_CMD_SET_COLORS:
|
||||
// Grab LCD
|
||||
if (Semaphore_pend((Semaphore_Handle) & object->semLCD, ACCESS_TIMEOUT))
|
||||
{
|
||||
object->displayColor = *(DisplaySharpColor_t *)arg;
|
||||
|
||||
GrContextForegroundSet(&object->g_sContext, object->displayColor.fg);
|
||||
GrContextBackgroundSet(&object->g_sContext, object->displayColor.bg);
|
||||
|
||||
// Release LCD
|
||||
Semaphore_post((Semaphore_Handle) & object->semLCD);
|
||||
|
||||
// Return success
|
||||
ret = DISPLAY_STATUS_SUCCESS;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
/* The command is not defined */
|
||||
ret = SPI_STATUS_UNDEFINEDCMD;
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @fn DisplaySharp_getType
|
||||
*
|
||||
* @brief Returns type of transport
|
||||
*
|
||||
* @return Display type define LCD
|
||||
*/
|
||||
unsigned int DisplaySharp_getType(void)
|
||||
{
|
||||
return Display_Type_LCD | Display_Type_GRLIB;
|
||||
}
|
||||
@@ -0,0 +1,331 @@
|
||||
/*
|
||||
* Copyright (c) 2016, Texas Instruments Incorporated
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* * Neither the name of Texas Instruments Incorporated nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
||||
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Includes
|
||||
* -----------------------------------------------------------------------------
|
||||
*/
|
||||
#include <ti/sysbios/BIOS.h>
|
||||
#include <ti/sysbios/knl/Task.h>
|
||||
#include <ti/sysbios/knl/Semaphore.h>
|
||||
#include <ti/drivers/UART.h>
|
||||
|
||||
#include <xdc/runtime/Log.h>
|
||||
#include <xdc/runtime/Diags.h>
|
||||
#include <xdc/runtime/System.h>
|
||||
|
||||
#include <ti/mw/display/Display.h>
|
||||
#include <ti/mw/display/DisplayUart.h>
|
||||
|
||||
#include <string.h>
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Constants and macros
|
||||
* -----------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef MIN
|
||||
# define MIN(n, m) (((n) > (m)) ? (m) : (n))
|
||||
#endif
|
||||
|
||||
#define DISPLAY_UART_ESC_INITIAL "\x1b\x63" /* Reset terminal */ \
|
||||
"\x1b[2J" /* Clear screen */ \
|
||||
"\x1b[10r" /* Scrolling region from line 10 */ \
|
||||
"\x1b[11;1H" /* Set initial cursor to line 11 */
|
||||
|
||||
#define DISPLAY_UART_ESC_MOVEPOS_FMT "\x1b\x37" /* Save cursor position */ \
|
||||
"\x1b[10r" /* Retransmit scroll */ \
|
||||
"\x1b[%d;%dH" /* Move cursor fmt str */
|
||||
|
||||
#define DISPLAY_UART_ESC_RESTOREPOS "\x1b\x38" /* Restore saved cursor pos */
|
||||
|
||||
#define DISPLAY_UART_ESC_CLEAR_SCREEN "\x1b[2J" /* Clear screen */
|
||||
#define DISPLAY_UART_ESC_CLEAR_CUR_LEFT "\x1b[1K" /* Clear cursor left */
|
||||
#define DISPLAY_UART_ESC_CLEAR_CUR_RIGHT "\x1b[0K" /* Clear cursor right */
|
||||
#define DISPLAY_UART_ESC_CLEAR_BOTH "\x1b[2K" /* Clear line */
|
||||
#define DISPLAY_UART_ESC_CLEARSEQ_LEN 4
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Type definitions
|
||||
* -----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Local variables
|
||||
* -----------------------------------------------------------------------------
|
||||
*/
|
||||
/* Display function table for UART implementation */
|
||||
const Display_FxnTable DisplayUart_fxnTable = {
|
||||
DisplayUart_open,
|
||||
DisplayUart_clear,
|
||||
DisplayUart_clearLines,
|
||||
DisplayUart_put5,
|
||||
DisplayUart_close,
|
||||
DisplayUart_control,
|
||||
DisplayUart_getType,
|
||||
};
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Functions
|
||||
* -----------------------------------------------------------------------------
|
||||
*/
|
||||
/*!
|
||||
* @fn DisplayUart_open
|
||||
*
|
||||
* @brief Initialize the UART transport
|
||||
*
|
||||
* @descr Opens the UART index specified in the HWAttrs, and creates a
|
||||
* mutex semaphore
|
||||
*
|
||||
* @param hDisplay - pointer to Display_Config struct
|
||||
* @param params - display parameters
|
||||
*
|
||||
* @return Pointer to Display_Config struct
|
||||
*/
|
||||
Display_Handle DisplayUart_open(Display_Handle hDisplay,
|
||||
Display_Params *params)
|
||||
{
|
||||
DisplayUart_HWAttrs *hwAttrs = (DisplayUart_HWAttrs *)hDisplay->hwAttrs;
|
||||
DisplayUart_Object *object = (DisplayUart_Object *)hDisplay->object;
|
||||
|
||||
UART_Params uartParams;
|
||||
UART_Params_init(&uartParams);
|
||||
uartParams.baudRate = hwAttrs->baudRate;
|
||||
uartParams.writeMode = UART_MODE_BLOCKING;
|
||||
|
||||
Semaphore_Params semParams;
|
||||
Semaphore_Params_init(&semParams);
|
||||
semParams.mode = Semaphore_Mode_BINARY;
|
||||
Semaphore_construct(&object->mutex, 1, &semParams);
|
||||
|
||||
switch (params->lineClearMode)
|
||||
{
|
||||
case DISPLAY_CLEAR_BOTH: object->lineClearSeq = DISPLAY_UART_ESC_CLEAR_BOTH; break;
|
||||
case DISPLAY_CLEAR_LEFT: object->lineClearSeq = DISPLAY_UART_ESC_CLEAR_CUR_LEFT; break;
|
||||
case DISPLAY_CLEAR_RIGHT: object->lineClearSeq = DISPLAY_UART_ESC_CLEAR_CUR_RIGHT; break;
|
||||
default: /* fall-through */
|
||||
case DISPLAY_CLEAR_NONE: object->lineClearSeq = NULL; break;
|
||||
}
|
||||
|
||||
object->hUart = UART_open(hwAttrs->uartIdx, &uartParams);
|
||||
if (NULL == object->hUart)
|
||||
{
|
||||
Log_print0(Diags_USER1, "DisplayUart.c: Couldn't open UART");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Send VT100 initial config to terminal */
|
||||
UART_write(object->hUart, DISPLAY_UART_ESC_INITIAL, sizeof DISPLAY_UART_ESC_INITIAL - 1);
|
||||
|
||||
return hDisplay;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @fn DisplayUart_clear
|
||||
*
|
||||
* @brief Does nothing, as output is stateless.
|
||||
*
|
||||
* @param hDisplay - pointer to Display_Config struct
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
void DisplayUart_clear(Display_Handle hDisplay)
|
||||
{
|
||||
DisplayUart_Object *object = (DisplayUart_Object *)hDisplay->object;
|
||||
DisplayUart_HWAttrs *hwAttrs = (DisplayUart_HWAttrs *)hDisplay->hwAttrs;
|
||||
|
||||
if (Semaphore_pend((Semaphore_Handle) & object->mutex, hwAttrs->mutexTimeout))
|
||||
{
|
||||
UART_write(object->hUart, DISPLAY_UART_ESC_CLEAR_SCREEN, 4);
|
||||
Semaphore_post((Semaphore_Handle) & object->mutex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
* @fn DisplayUart_clearLines
|
||||
*
|
||||
* @brief Does nothing, as output is stateless.
|
||||
*
|
||||
* @param hDisplay - pointer to Display_Config struct
|
||||
* @param lineFrom - line index (0 .. )
|
||||
* @param lineTo - line index (0 .. )
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
void DisplayUart_clearLines(Display_Handle hDisplay,
|
||||
uint8_t lineFrom, uint8_t lineTo)
|
||||
{
|
||||
DisplayUart_Object *object = (DisplayUart_Object *)hDisplay->object;
|
||||
DisplayUart_HWAttrs *hwAttrs = (DisplayUart_HWAttrs *)hDisplay->hwAttrs;
|
||||
|
||||
uint32_t strSize = 0;
|
||||
uint32_t curLine = 0;
|
||||
const uint8_t uartClearLineMoveDown[] = "\x1b[2K\x1b\x45";
|
||||
|
||||
if (lineTo <= lineFrom)
|
||||
{
|
||||
lineTo = lineFrom;
|
||||
}
|
||||
|
||||
if (Semaphore_pend((Semaphore_Handle) & object->mutex, hwAttrs->mutexTimeout))
|
||||
{
|
||||
strSize += System_snprintf(hwAttrs->strBuf, hwAttrs->strBufLen,
|
||||
DISPLAY_UART_ESC_MOVEPOS_FMT, lineFrom + 1, 0);
|
||||
|
||||
for (curLine = lineFrom + 1;
|
||||
curLine < lineTo + 2 &&
|
||||
hwAttrs->strBufLen - strSize > sizeof DISPLAY_UART_ESC_RESTOREPOS - 1;
|
||||
curLine++)
|
||||
{
|
||||
memcpy(hwAttrs->strBuf + strSize, uartClearLineMoveDown, sizeof uartClearLineMoveDown - 1);
|
||||
strSize += sizeof uartClearLineMoveDown - 1;
|
||||
}
|
||||
|
||||
memcpy(hwAttrs->strBuf + strSize, DISPLAY_UART_ESC_RESTOREPOS, sizeof DISPLAY_UART_ESC_RESTOREPOS - 1);
|
||||
strSize += sizeof DISPLAY_UART_ESC_RESTOREPOS - 1;
|
||||
|
||||
UART_write(object->hUart, hwAttrs->strBuf, strSize);
|
||||
Semaphore_post((Semaphore_Handle) & object->mutex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
* @fn DisplayUart_put5
|
||||
*
|
||||
* @brief Write a text string to UART with return and newline.
|
||||
*
|
||||
* @param hDisplay - pointer to Display_Config struct
|
||||
* @param line - line index (0..)
|
||||
* @param column - column index (0..)
|
||||
* @param fmt - format string
|
||||
* @param aN - optional format arguments
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
void DisplayUart_put5(Display_Handle hDisplay, uint8_t line,
|
||||
uint8_t column, uintptr_t fmt, uintptr_t a0,
|
||||
uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4)
|
||||
{
|
||||
DisplayUart_Object *object = (DisplayUart_Object *)hDisplay->object;
|
||||
DisplayUart_HWAttrs *hwAttrs = (DisplayUart_HWAttrs *)hDisplay->hwAttrs;
|
||||
|
||||
uint32_t strSize = 0;
|
||||
|
||||
char *strBuf = hwAttrs->strBuf;
|
||||
const uint16_t bufLen = hwAttrs->strBufLen;
|
||||
|
||||
if (Semaphore_pend((Semaphore_Handle) & object->mutex, hwAttrs->mutexTimeout))
|
||||
{
|
||||
if (line != DisplayUart_SCROLLING)
|
||||
{
|
||||
/* Add cursor movement escape sequence */
|
||||
strSize += System_snprintf(strBuf + strSize, bufLen - strSize - 2,
|
||||
DISPLAY_UART_ESC_MOVEPOS_FMT, line + 1, column + 1);
|
||||
|
||||
/* Add line clearing escape sequence */
|
||||
if (object->lineClearSeq)
|
||||
{
|
||||
memcpy(strBuf + strSize, object->lineClearSeq, DISPLAY_UART_ESC_CLEARSEQ_LEN);
|
||||
strSize += DISPLAY_UART_ESC_CLEARSEQ_LEN;
|
||||
}
|
||||
}
|
||||
|
||||
strSize += System_snprintf(strBuf + strSize, bufLen - strSize - 2, (xdc_CString)fmt, a0, a1, a2, a3, a4);
|
||||
|
||||
if (line != DisplayUart_SCROLLING)
|
||||
{
|
||||
memcpy(strBuf + strSize, DISPLAY_UART_ESC_RESTOREPOS, sizeof DISPLAY_UART_ESC_RESTOREPOS - 1);
|
||||
strSize += 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
strBuf[strSize++] = '\r';
|
||||
strBuf[strSize++] = '\n';
|
||||
}
|
||||
|
||||
UART_write(object->hUart, strBuf, strSize);
|
||||
Semaphore_post((Semaphore_Handle) & object->mutex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
* @fn DisplayUart_close
|
||||
*
|
||||
* @brief Closes the UART handle
|
||||
*
|
||||
* @param hDisplay - pointer to Display_Config struct
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
void DisplayUart_close(Display_Handle hDisplay)
|
||||
{
|
||||
DisplayUart_Object *object = (DisplayUart_Object *)hDisplay->object;
|
||||
|
||||
// Not sure what happens if someone is writing
|
||||
UART_close(object->hUart);
|
||||
object->hUart = NULL;
|
||||
|
||||
// Not sure what happens if someone is pending
|
||||
Semaphore_destruct(&object->mutex);
|
||||
}
|
||||
|
||||
/*!
|
||||
* @fn DisplayUart_control
|
||||
*
|
||||
* @brief Function for setting control parameters of the Display driver
|
||||
* after it has been opened.
|
||||
*
|
||||
* @param hDisplay - pointer to Display_Config struct
|
||||
* @param cmd - command to execute
|
||||
* @param arg - argument to the command
|
||||
*
|
||||
* @return ::DISPLAY_STATUS_UNDEFINEDCMD because no commands are supported
|
||||
*/
|
||||
int DisplayUart_control(Display_Handle hDisplay, unsigned int cmd, void *arg)
|
||||
{
|
||||
return DISPLAY_STATUS_UNDEFINEDCMD;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @fn DisplayUart_getType
|
||||
*
|
||||
* @brief Returns type of transport
|
||||
*
|
||||
* @return Display type UART
|
||||
*/
|
||||
unsigned int DisplayUart_getType(void)
|
||||
{
|
||||
return Display_Type_UART;
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
/*
|
||||
* Copyright (c) 2016, Texas Instruments Incorporated
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* * Neither the name of Texas Instruments Incorporated nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
||||
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _DISPLAY_UART_H_
|
||||
#define _DISPLAY_UART_H_
|
||||
|
||||
#include <ti/sysbios/knl/Semaphore.h>
|
||||
#include <ti/drivers/UART.h>
|
||||
#include <ti/mw/display/Display.h>
|
||||
#include <stdint.h>
|
||||
|
||||
extern const Display_FxnTable DisplayUart_fxnTable;
|
||||
|
||||
/*
|
||||
* @brief Line number for text to appear in scrolling region
|
||||
*/
|
||||
#define DisplayUart_SCROLLING 0xFF
|
||||
|
||||
|
||||
typedef struct DisplayUart_HWAttrs
|
||||
{
|
||||
unsigned int uartIdx;
|
||||
unsigned int baudRate;
|
||||
unsigned int mutexTimeout;
|
||||
char *strBuf;
|
||||
uint16_t strBufLen;
|
||||
} DisplayUart_HWAttrs;
|
||||
|
||||
|
||||
typedef struct DisplayUart_Object
|
||||
{
|
||||
UART_Handle hUart;
|
||||
Semaphore_Struct mutex;
|
||||
uint8_t *lineClearSeq;
|
||||
} DisplayUart_Object, *DisplayUart_Handle;
|
||||
|
||||
|
||||
Display_Handle DisplayUart_open(Display_Handle,
|
||||
Display_Params * params);
|
||||
void DisplayUart_clear(Display_Handle handle);
|
||||
void DisplayUart_clearLines(Display_Handle handle,
|
||||
uint8_t fromLine,
|
||||
uint8_t toLine);
|
||||
void DisplayUart_put5(Display_Handle handle, uint8_t line,
|
||||
uint8_t column, uintptr_t fmt, uintptr_t a0,
|
||||
uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4);
|
||||
void DisplayUart_close(Display_Handle);
|
||||
int DisplayUart_control(Display_Handle handle, unsigned int cmd, void *arg);
|
||||
unsigned int DisplayUart_getType(void);
|
||||
|
||||
#endif // _DISPLAY_UART_H_
|
||||
@@ -55,7 +55,7 @@ extern "C"
|
||||
// includes
|
||||
// ****************************************************************************
|
||||
#include "hal_types.h"
|
||||
#include "npi/src/inc/npi_config.h"
|
||||
#include "inc/npi_config.h"
|
||||
|
||||
// ****************************************************************************
|
||||
// defines
|
||||
|
||||
@@ -0,0 +1,122 @@
|
||||
/******************************************************************************
|
||||
|
||||
@file npi_config.h
|
||||
|
||||
This file contains the Network Processor Interface (NPI),
|
||||
which abstracts the physical link between the Application
|
||||
Processor (AP) and the Network Processor (NP). The NPI
|
||||
serves as the HAL's client for the SPI and UART drivers, and
|
||||
provides API and callback services for its client.
|
||||
|
||||
Group: WCS, BTS
|
||||
Target Device: CC2650, CC2640, CC1350
|
||||
|
||||
******************************************************************************
|
||||
|
||||
* Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* Neither the name of Texas Instruments Incorporated nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef SDI_CONFIG_H
|
||||
#define SDI_CONFIG_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
// ****************************************************************************
|
||||
// includes
|
||||
// ****************************************************************************
|
||||
|
||||
#include "Board.h"
|
||||
|
||||
// ****************************************************************************
|
||||
// defines
|
||||
// ****************************************************************************
|
||||
|
||||
#if !defined(NPI_SPI_CONFIG)
|
||||
#define NPI_SPI_CONFIG Board_SPI1
|
||||
#endif
|
||||
|
||||
#ifdef POWER_SAVING
|
||||
# if defined(NPI_USE_SPI)
|
||||
# if (NPI_SPI_CONFIG == Board_SPI1)
|
||||
# define MRDY_PIN Board_KEY_UP
|
||||
# define SRDY_PIN Board_KEY_DOWN
|
||||
# else
|
||||
# error "ERROR: You must choose Board_SPI1 SPI module for NPI."
|
||||
# endif
|
||||
# elif defined(SDI_USE_UART)
|
||||
# define MRDY_PIN Board_BUTTON0
|
||||
# define SRDY_PIN Board_BUTTON1
|
||||
# endif
|
||||
# define SRDY_ENABLE() PIN_setOutputValue(hSdiHandshakePins, SRDY_PIN, 0) /* RTS low */
|
||||
# define SRDY_DISABLE() PIN_setOutputValue(hSdiHandshakePins, SRDY_PIN, 1) /* RTS high */
|
||||
#else // ! POWER_SAVING
|
||||
# define SRDY_ENABLE()
|
||||
# define SRDY_DISABLE()
|
||||
#endif
|
||||
|
||||
#define SDI_TL_BUF_SIZE 270
|
||||
#define SDI_SPI_PAYLOAD_SIZE 255
|
||||
#define SDI_SPI_HDR_LEN 4
|
||||
|
||||
#ifdef NPI_USE_SPI
|
||||
# if (NPI_TL_BUF_SIZE - NPI_SPI_HDR_LEN) < NPI_SPI_PAYLOAD_SIZE
|
||||
# define NPI_MAX_FRAG_SIZE (NPI_TL_BUF_SIZE - NPI_SPI_HDR_LEN)
|
||||
# else
|
||||
# define NPI_MAX_FRAG_SIZE NPI_SPI_PAYLOAD_SIZE
|
||||
# endif
|
||||
#elif SDI_USE_UART
|
||||
# define SDI_MAX_FRAG_SIZE SDI_TL_BUF_SIZE
|
||||
#else
|
||||
# error "ERROR: SDI_USE_UART or NPI_USE_SPI must be defined."
|
||||
#endif
|
||||
|
||||
// ****************************************************************************
|
||||
// typedefs
|
||||
// ****************************************************************************
|
||||
|
||||
//*****************************************************************************
|
||||
// globals
|
||||
//*****************************************************************************
|
||||
|
||||
//*****************************************************************************
|
||||
// function prototypes
|
||||
//*****************************************************************************
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* NPI_CONFIG_H */
|
||||
@@ -0,0 +1,109 @@
|
||||
/******************************************************************************
|
||||
|
||||
@file npi_data.h
|
||||
|
||||
SDI Data structures
|
||||
|
||||
Group: WCS, BTS
|
||||
Target Device: CC2650, CC2640, CC1350
|
||||
|
||||
******************************************************************************
|
||||
|
||||
* Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* Neither the name of Texas Instruments Incorporated nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef SDIDATA_H
|
||||
#define SDIDATA_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
// ****************************************************************************
|
||||
// includes
|
||||
// ****************************************************************************
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
// ****************************************************************************
|
||||
// defines
|
||||
// ****************************************************************************
|
||||
|
||||
// External Events for RTOS application
|
||||
#define UART_DATA_EVT 0x0010
|
||||
#define UART_ERROR_EVT 0x0020
|
||||
|
||||
// ****************************************************************************
|
||||
// typedefs
|
||||
// ****************************************************************************
|
||||
|
||||
//! \brief SDI Command IDs.
|
||||
//!
|
||||
typedef enum
|
||||
{
|
||||
SDIMSG_Type_ASYNC = 0x00,
|
||||
SDIMSG_Type_SYNCREQ = 0x01,
|
||||
SDIMSG_Type_SYNCRSP = 0x02
|
||||
} SDIMSG_Type;
|
||||
|
||||
|
||||
//! \brief Structure to send an SDI message to the stack thread.
|
||||
//!
|
||||
typedef struct _npimsg_t
|
||||
{
|
||||
// Msg Type
|
||||
uint_least8_t msgType;
|
||||
|
||||
// message buffer size
|
||||
uint8_t pBufSize;
|
||||
|
||||
// message buffer
|
||||
uint8_t *pBuf;
|
||||
} SDIMSG_msg_t;
|
||||
|
||||
|
||||
//*****************************************************************************
|
||||
// globals
|
||||
//*****************************************************************************
|
||||
|
||||
//*****************************************************************************
|
||||
// function prototypes
|
||||
//*****************************************************************************
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* SDIDATA_H */
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
/******************************************************************************
|
||||
|
||||
@file npi_rxbuf.h
|
||||
|
||||
SDI RX Buffer and utilities
|
||||
|
||||
Group: WCS, BTS
|
||||
Target Device: CC2650, CC2640, CC1350
|
||||
|
||||
******************************************************************************
|
||||
|
||||
* Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* Neither the name of Texas Instruments Incorporated nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
//******************************************************************************
|
||||
#ifndef SDIRXBUF_H
|
||||
#define SDIRXBUF_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
// ****************************************************************************
|
||||
// includes
|
||||
// ****************************************************************************
|
||||
#include "hal_types.h"
|
||||
#include "OSAL.h"
|
||||
#include "sdi_config.h"
|
||||
|
||||
// ****************************************************************************
|
||||
// defines
|
||||
// ****************************************************************************
|
||||
|
||||
// ****************************************************************************
|
||||
// typedefs
|
||||
// ****************************************************************************
|
||||
|
||||
//*****************************************************************************
|
||||
// globals
|
||||
//*****************************************************************************
|
||||
|
||||
//*****************************************************************************
|
||||
// function prototypes
|
||||
//*****************************************************************************
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief SDIRxBuf_Read
|
||||
//!
|
||||
//! \param[in] len -
|
||||
//!
|
||||
//! \return uint16 -
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 SDIRxBuf_Read(uint16);
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief Returns number of bytes that are unparsed in RxBuf
|
||||
//!
|
||||
//! \return uint16 -
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 SDIRxBuf_GetRxBufCount();
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief Returns number of bytes that are available in RxBuf
|
||||
//!
|
||||
//! \return uint16 -
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 SDIRxBuf_GetRxBufAvail();
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief SDIRxBuf_ReadFromRxBuf
|
||||
//!
|
||||
//! \return uint16 -
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 SDIRxBuf_ReadFromRxBuf(uint8_t *buf, uint16 len);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* SDIRXBUF_H */
|
||||
@@ -0,0 +1,131 @@
|
||||
/******************************************************************************
|
||||
|
||||
@file sdi_task.h
|
||||
|
||||
SDI is a TI RTOS Application Thread that provides a
|
||||
common Network Processor Interface framework
|
||||
|
||||
Group: WCS, BTS
|
||||
Target Device: CC2650, CC2640, CC1350
|
||||
|
||||
******************************************************************************
|
||||
|
||||
* Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* Neither the name of Texas Instruments Incorporated nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _SDITask_H
|
||||
#define _SDITask_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
// ****************************************************************************
|
||||
// includes
|
||||
// ****************************************************************************
|
||||
#include "inc/sdi_data.h"
|
||||
#include <ti/sysbios/knl/Semaphore.h>
|
||||
// ****************************************************************************
|
||||
// defines
|
||||
// ****************************************************************************
|
||||
#define DEBUG(x) SDITask_sendToUART(x, strlen((const char*)x));
|
||||
#define DEBUG_NEWLINE() DEBUG("\n\r")
|
||||
// ****************************************************************************
|
||||
// typedefs
|
||||
// ****************************************************************************
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief Typedef for call back function mechanism to reroute incoming SDI
|
||||
//! messages.
|
||||
//! NOTE: Definer MUST copy contents to local buffer. SDI task will
|
||||
//! free this memory.
|
||||
//! NOTE: The contained message buffer does NOT include any "framing"
|
||||
//! bytes, ie. SOF, FCS etc.
|
||||
//! \param[in] pMsg Pointer to "unframed" message buffer.
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
typedef void (*sdiIncomingEventCBack_t)(uint8_t event, uint8_t *pMsg, uint8_t len);
|
||||
|
||||
//*****************************************************************************
|
||||
// globals
|
||||
//*****************************************************************************
|
||||
|
||||
//*****************************************************************************
|
||||
// function prototypes
|
||||
//*****************************************************************************
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief SDI task creation function
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
Void SDITask_createTask(void);
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief Register callback function to reroute incoming (from UART)
|
||||
//! SDI messages.
|
||||
//!
|
||||
//! \param[in] appRxCB Callback fucntion.
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
extern void SDITask_registerIncomingRXEventAppCB(sdiIncomingEventCBack_t appRxCB);
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief API for application task to send a message to the Host.
|
||||
//! NOTE: It's assumed all message traffic to the stack will use
|
||||
//! other (ICALL) APIs/Interfaces.
|
||||
//!
|
||||
//! \param[in] pMsg Pointer to "unframed" message buffer.
|
||||
//! \param[in] length Length of buffer
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
extern void SDITask_sendToUART(uint8_t *pMsg, uint16_t length);
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief API for application task to set packet data size to send over the air.
|
||||
//!
|
||||
//! \param[in] mtuSize GATT MTU size.
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
extern void SDITask_setAppDataSize(uint16_t mtuSize);
|
||||
|
||||
#ifdef __cplusplus
|
||||
{
|
||||
#endif // extern "C"
|
||||
|
||||
#endif // end of _SDITask_H definition
|
||||
@@ -0,0 +1,185 @@
|
||||
/******************************************************************************
|
||||
|
||||
@file sdi_tl.h
|
||||
|
||||
SDI Transport Layer API
|
||||
|
||||
Group: WCS, BTS
|
||||
Target Device: CC2650, CC2640, CC1350
|
||||
|
||||
******************************************************************************
|
||||
|
||||
* Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* Neither the name of Texas Instruments Incorporated nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef SDI_TL_H
|
||||
#define SDI_TL_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
// ****************************************************************************
|
||||
// includes
|
||||
// ****************************************************************************
|
||||
#include "hal_types.h"
|
||||
#include "inc/sdi_config.h"
|
||||
|
||||
// ****************************************************************************
|
||||
// defines
|
||||
// ****************************************************************************
|
||||
|
||||
|
||||
#if defined(SDI_USE_UART)
|
||||
#define transportInit SDITLUART_initializeTransport
|
||||
#define transportRead SDITLUART_readTransport
|
||||
#define transportWrite SDITLUART_writeTransport
|
||||
#define transportStopTransfer SDITLUART_stopTransfer
|
||||
#define transportMrdyEvent SDITLUART_handleMrdyEvent
|
||||
#elif defined(NPI_USE_SPI)
|
||||
#define transportInit NPITLSPI_initializeTransport
|
||||
#define transportRead NPITLSPI_readTransport
|
||||
#define transportWrite NPITLSPI_writeTransport
|
||||
#define transportStopTransfer NPITLSPI_stopTransfer
|
||||
#define transportMrdyEvent NPITLSPI_handleMrdyEvent
|
||||
#endif
|
||||
|
||||
// ****************************************************************************
|
||||
// typedefs
|
||||
// ****************************************************************************
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief Typedef for call back function mechanism to notify SDI Task that
|
||||
//! an SDI transaction has occured
|
||||
//! \param[in] int number of bytes either received or transmitted
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
typedef void (*sdiRtosCB_t)(int size);
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief Typedef for call back function mechanism to notify SDI Task that
|
||||
//! an MRDY edge has occured
|
||||
//! \param[in] void
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
typedef void (*sdiMrdyRtosCB_t)();
|
||||
|
||||
//*****************************************************************************
|
||||
// globals
|
||||
//*****************************************************************************
|
||||
|
||||
//*****************************************************************************
|
||||
// function prototypes
|
||||
//*****************************************************************************
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine initializes the transport layer and opens the port
|
||||
//! of the device. Note that based on project defines, either the
|
||||
//! UART, USB (CDC), or SPI driver can be used.
|
||||
//!
|
||||
//! \param[in] sdiCBTx - Call back function for TX complete event
|
||||
//! \param[in] sdiCBRx - Call back function for RX event
|
||||
//! \param[in] sdiCBMrdy - Call back function for MRDY event
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
void SDITL_initTL(sdiRtosCB_t sdiCBTx, sdiRtosCB_t sdiCBRx, sdiRtosCB_t sdiCBMrdy);
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine reads data from the transport layer based on len,
|
||||
//! and places it into the buffer.
|
||||
//!
|
||||
//! \param[in] buf - Pointer to buffer to place read data.
|
||||
//! \param[in] len - Number of bytes to read.
|
||||
//!
|
||||
//! \return uint16 - the number of bytes read from transport
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 SDITL_readTL(uint8 *buf, uint16 len);
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine writes data from the buffer to the transport layer.
|
||||
//!
|
||||
//! \param[in] buf - Pointer to buffer to write data from.
|
||||
//! \param[in] len - Number of bytes to write.
|
||||
//!
|
||||
//! \return uint16 - the number of bytes written to transport
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 SDITL_writeTL(uint8 *buf, uint16 len);
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine is used to handle an MRDY edge from the application
|
||||
//! context. Certain operations such as UART_read() cannot be
|
||||
//! performed from the actual MRDY hwi handler
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
void SDITL_handleMrdyEvent(void);
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine returns the max size receive buffer.
|
||||
//!
|
||||
//! \return uint16 - max size of the receive buffer
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 SDITL_getMaxRxBufSize(void);
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine returns the max size transmit buffer.
|
||||
//!
|
||||
//! \return uint16 - max size of the transmit buffer
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 SDITL_getMaxTxBufSize(void);
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief Returns number of bytes that are unread in RxBuf
|
||||
//!
|
||||
//! \return uint16 - number of unread bytes
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 SDITL_getRxBufLen(void);
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine returns the state of transmission on SDI
|
||||
//!
|
||||
//! \return bool - state of SDI transmission - 1 - active, 0 - not active
|
||||
// -----------------------------------------------------------------------------
|
||||
bool SDITL_checkSdiBusy(void);
|
||||
|
||||
/*******************************************************************************
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* SDI_TL_H */
|
||||
@@ -0,0 +1,171 @@
|
||||
/******************************************************************************
|
||||
|
||||
@file sdi_tl_uart.h
|
||||
|
||||
SDI Transport Layer Module for UART
|
||||
|
||||
Group: WCS, BTS
|
||||
Target Device: CC2650, CC2640, CC1350
|
||||
|
||||
******************************************************************************
|
||||
|
||||
* Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* Neither the name of Texas Instruments Incorporated nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#ifndef SDI_TL_UART_H
|
||||
#define SDI_TL_UART_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
// ****************************************************************************
|
||||
// includes
|
||||
// ****************************************************************************
|
||||
#include <ti/drivers/UART.h>
|
||||
// ****************************************************************************
|
||||
// defines
|
||||
// ****************************************************************************
|
||||
|
||||
#define SDI_UART_FC_THRESHOLD 48
|
||||
#define SDI_UART_IDLE_TIMEOUT 6
|
||||
#define SDI_UART_INT_ENABLE TRUE
|
||||
|
||||
#if !defined(SDI_UART_BR)
|
||||
#define SDI_UART_BR 115200
|
||||
#endif // !SDI_UART_BR
|
||||
|
||||
// UART ISR Buffer define
|
||||
#define UART_ISR_BUF_SIZE 128
|
||||
#define UART_ISR_BUF_CNT 2
|
||||
|
||||
// ****************************************************************************
|
||||
// typedefs
|
||||
// ****************************************************************************
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief Typedef for call back function mechanism to notify SDI TL that
|
||||
//! an SDI transaction has occured
|
||||
//! \param[in] uint16 number of bytes received
|
||||
//! \param[in] uint16 number of bytes transmitted
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
typedef void (*sdiCB_t)(uint16 Rxlen, uint16 Txlen);
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief Typedef for call back function mechanism to reroute incoming SDI
|
||||
//! messages.
|
||||
//! NOTE: Definer MUST copy contents to local buffer. SDI task will
|
||||
//! free this memory.
|
||||
//! NOTE: The contained message buffer does NOT include any "framing"
|
||||
//! bytes, ie. SOF, FCS etc.
|
||||
//! \param[in] pMsg Pointer to "unframed" message buffer.
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
typedef void (*sdiTLIncomingEventCBack_t)(uint8_t event, uint8_t *pMsg, uint8_t len);
|
||||
|
||||
//*****************************************************************************
|
||||
// globals
|
||||
//*****************************************************************************
|
||||
extern UART_Params paramsUART;
|
||||
//*****************************************************************************
|
||||
// function prototypes
|
||||
//*****************************************************************************
|
||||
|
||||
uint8 SDITLUART_configureUARTParams(UART_Params *initParams);
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine initializes the transport layer and opens the port
|
||||
//! of the device.
|
||||
//!
|
||||
//! \param[in] tRxBuf - pointer to SDI TL Tx Buffer
|
||||
//! \param[in] tTxBuf - pointer to SDI TL Rx Buffer
|
||||
//! \param[in] sdiCBack - SDI TL call back function to be invoked at the end of
|
||||
//! a UART transaction
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
void SDITLUART_initializeTransport(Char *tRxBuf, Char *tTxBuf, sdiCB_t sdiCBack);
|
||||
|
||||
void SDITLUART_closeUART(void);
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief Register callback function to reroute incoming (from UART)
|
||||
//! SDI messages.
|
||||
//!
|
||||
//! \param[in] appRxCB Callback fucntion.
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
extern void SDITLUART_registerIncomingRXErrorStatusAppCB(sdiTLIncomingEventCBack_t appRxErrStatusCB);
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine reads data from the UART
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
void SDITLUART_readTransport(void);
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine writes copies buffer addr to the transport layer.
|
||||
//!
|
||||
//! \param[in] len - Number of bytes to write.
|
||||
//!
|
||||
//! \return uint16 - number of bytes written to transport
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 SDITLUART_writeTransport(uint16);
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine stops any pending reads
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
void SDITLUART_stopTransfer(void);
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine is called from the application context when MRDY is
|
||||
//! de-asserted
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
void SDITLUART_handleMrdyEvent(void);
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* SDI_TL_UART_H */
|
||||
@@ -0,0 +1,148 @@
|
||||
/******************************************************************************
|
||||
|
||||
@file sdi_rxbuf.c
|
||||
|
||||
SDI RX Buffer and utilities
|
||||
|
||||
Group: WCS, BTS
|
||||
Target Device: CC2650, CC2640, CC1350
|
||||
|
||||
******************************************************************************
|
||||
|
||||
* Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* Neither the name of Texas Instruments Incorporated nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
// ****************************************************************************
|
||||
// includes
|
||||
// ****************************************************************************
|
||||
#include <string.h>
|
||||
#include <xdc/std.h>
|
||||
|
||||
#include "Board.h"
|
||||
#include "hal_types.h"
|
||||
#include "inc/sdi_config.h"
|
||||
#include "inc/sdi_tl.h"
|
||||
|
||||
// ****************************************************************************
|
||||
// defines
|
||||
// ****************************************************************************
|
||||
#define SDIRXBUF_RXHEAD_INC(x) RxBufHead += x; \
|
||||
RxBufHead %= SDI_TL_BUF_SIZE;
|
||||
|
||||
#define SDIRXBUF_RXTAIL_INC(x) RxBufTail += x; \
|
||||
RxBufTail %= SDI_TL_BUF_SIZE;
|
||||
|
||||
// ****************************************************************************
|
||||
// typedefs
|
||||
// ****************************************************************************
|
||||
|
||||
//*****************************************************************************
|
||||
// globals
|
||||
//*****************************************************************************
|
||||
|
||||
//Recieve Buffer for all SDI messages
|
||||
static uint8 RxBuf[SDI_TL_BUF_SIZE];
|
||||
static uint16 RxBufHead = 0;
|
||||
static uint16 RxBufTail = 0;
|
||||
|
||||
//*****************************************************************************
|
||||
// function prototypes
|
||||
//*****************************************************************************
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief SDIRxBuf_Read
|
||||
//!
|
||||
//! \param[in] len -
|
||||
//!
|
||||
//! \return uint16 -
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 SDIRxBuf_Read(uint16 len)
|
||||
{
|
||||
uint16 partialLen = 0;
|
||||
|
||||
// Need to make two reads due to wrap around of circular buffer
|
||||
if ((len + RxBufTail) > SDI_TL_BUF_SIZE)
|
||||
{
|
||||
partialLen = SDI_TL_BUF_SIZE - RxBufTail;
|
||||
SDITL_readTL(&RxBuf[RxBufTail],partialLen);
|
||||
len -= partialLen;
|
||||
RxBufTail = 0;
|
||||
}
|
||||
|
||||
// Read remainder of data from Transport Layer
|
||||
SDITL_readTL(&RxBuf[RxBufTail],len);
|
||||
SDIRXBUF_RXTAIL_INC(len);
|
||||
|
||||
// Return len to original size
|
||||
len += partialLen;
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief Returns number of bytes that are unparsed in RxBuf
|
||||
//!
|
||||
//! \return uint16 -
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 SDIRxBuf_GetRxBufCount(void)
|
||||
{
|
||||
return ((RxBufTail - RxBufHead) + SDI_TL_BUF_SIZE) % SDI_TL_BUF_SIZE;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief Returns number of bytes that are available in RxBuf
|
||||
//!
|
||||
//! \return uint16 -
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 SDIRxBuf_GetRxBufAvail(void)
|
||||
{
|
||||
return (SDI_TL_BUF_SIZE - SDIRxBuf_GetRxBufCount());
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief SDIRxBuf_ReadFromRxBuf
|
||||
//!
|
||||
//! \return uint16 -
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 SDIRxBuf_ReadFromRxBuf(uint8_t *buf, uint16 len)
|
||||
{
|
||||
uint16_t idx;
|
||||
for (idx = 0; idx < len; idx++)
|
||||
{
|
||||
*buf++ = RxBuf[RxBufHead];
|
||||
SDIRXBUF_RXHEAD_INC(1)
|
||||
}
|
||||
|
||||
return len;
|
||||
}
|
||||
@@ -0,0 +1,525 @@
|
||||
/******************************************************************************
|
||||
|
||||
* Filename: sdi_task.c
|
||||
|
||||
SDI is a TI RTOS Application Thread that provides a common serial data interface
|
||||
framework
|
||||
|
||||
Group: WCS, BTS
|
||||
Target Device: CC2650, CC2640, CC1350
|
||||
|
||||
******************************************************************************
|
||||
|
||||
* Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* Neither the name of Texas Instruments Incorporated nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
// ****************************************************************************
|
||||
// includes
|
||||
// ****************************************************************************
|
||||
|
||||
#include <xdc/std.h>
|
||||
#include <ti/sysbios/BIOS.h>
|
||||
#include <ti/sysbios/knl/Queue.h>
|
||||
#include <ti/sysbios/knl/Task.h>
|
||||
#include <ti/sysbios/knl/Clock.h>
|
||||
#include <ti/sysbios/knl/Event.h>
|
||||
|
||||
#include <string.h>
|
||||
#include <ti/sysbios/family/arm/m3/Hwi.h>
|
||||
|
||||
#include "inc/sdi_task.h"
|
||||
#include "inc/sdi_data.h"
|
||||
#include "inc/sdi_rxbuf.h"
|
||||
#include "inc/sdi_tl.h"
|
||||
|
||||
// ****************************************************************************
|
||||
// defines
|
||||
// ****************************************************************************
|
||||
|
||||
//! \brief Transport layer RX Event (ie. bytes received, RX ISR etc.)
|
||||
#define SDITASK_TRANSPORT_RX_EVENT Event_Id_00
|
||||
|
||||
//! \brief Transmit Complete Event (likely associated with TX ISR etc.)
|
||||
#define SDITASK_TRANSPORT_TX_DONE_EVENT Event_Id_01
|
||||
|
||||
//! \brief A framed message buffer is ready to be sent to the transport layer.
|
||||
#define SDITASK_TX_READY_EVENT Event_Id_02
|
||||
|
||||
//! \brief MRDY Received Event
|
||||
#define SDITASK_MRDY_EVENT Event_Id_03
|
||||
|
||||
//! \brief Size of stack created for SDI RTOS task
|
||||
#ifndef Display_DISABLE_ALL
|
||||
#ifdef __TI_COMPILER_VERSION__
|
||||
#define SDITASK_STACK_SIZE 752 /* in order to optimize memory, this value should be a multiple of 8 bytes */
|
||||
#else // !__TI_COMPILER_VERSION__
|
||||
#define SDITASK_STACK_SIZE 656 /* in order to optimize memory, this value should be a multiple of 8 bytes */
|
||||
#endif // __TI_COMPILER_VERSION__
|
||||
#else // Display_DISABLE_ALL
|
||||
#ifdef __TI_COMPILER_VERSION__
|
||||
#define SDITASK_STACK_SIZE 752 /* in order to optimize memory, this value should be a multiple of 8 bytes */
|
||||
#else // !__TI_COMPILER_VERSION__
|
||||
#define SDITASK_STACK_SIZE 608 /* in order to optimize memory, this value should be a multiple of 8 bytes */
|
||||
#endif // __TI_COMPILER_VERSION__
|
||||
#endif // Display_DISABLE_ALL
|
||||
|
||||
//! \brief Task priority for SDI RTOS task
|
||||
#define SDITASK_PRIORITY 2
|
||||
|
||||
//! \brief Max bytes received from UART send to App
|
||||
#define DEFAULT_APP_DATA_LENGTH 20
|
||||
|
||||
// ****************************************************************************
|
||||
// typedefs
|
||||
// ****************************************************************************
|
||||
|
||||
//! \brief Queue record structure
|
||||
//!
|
||||
typedef struct SDI_QueueRec_t
|
||||
{
|
||||
Queue_Elem _elem;
|
||||
SDIMSG_msg_t *sdiMsg;
|
||||
} SDI_QueueRec;
|
||||
|
||||
|
||||
//*****************************************************************************
|
||||
// globals
|
||||
//*****************************************************************************
|
||||
//! \brief RTOS task structure for SDI task
|
||||
//!
|
||||
static Task_Struct sdiTaskStruct;
|
||||
|
||||
//! \brief Allocated memory block for SDI task's stack
|
||||
//!
|
||||
#if defined __TI_COMPILER_VERSION__
|
||||
#pragma DATA_ALIGN(sdiTaskStack, 8)
|
||||
#else
|
||||
#pragma data_alignment=8
|
||||
#endif
|
||||
uint8_t sdiTaskStack[SDITASK_STACK_SIZE];
|
||||
|
||||
//! \brief Handle for the ASYNC TX Queue
|
||||
//!
|
||||
static Queue_Handle sdiTxQueue;
|
||||
|
||||
//! \brief Pointer to last tx message. This is free'd once confirmation is
|
||||
//! is received that the buffer has been transmitted
|
||||
//! (ie. SDITASK_TRANSPORT_TX_DONE_EVENT)
|
||||
//!
|
||||
static uint8_t *lastQueuedTxMsg;
|
||||
|
||||
Event_Struct uartEvent;
|
||||
Event_Handle hUartEvent; //!< Event used to control the UART thread
|
||||
|
||||
//! \brief Pointer to Application RX event callback function for optional
|
||||
//! rerouting of messages to application.
|
||||
//!
|
||||
static sdiIncomingEventCBack_t incomingRXEventAppCBFunc = NULL;
|
||||
|
||||
//! \brief Data buffer to send to application
|
||||
//!
|
||||
static uint8 buf[SDI_TL_BUF_SIZE] ={0x00,};
|
||||
static uint16 length;
|
||||
static uint8 lengthRead;
|
||||
|
||||
//! \brief Size of data to send to application
|
||||
//!
|
||||
static uint16 maxAppDataSize = DEFAULT_APP_DATA_LENGTH;
|
||||
|
||||
//*****************************************************************************
|
||||
// function prototypes
|
||||
//*****************************************************************************
|
||||
|
||||
//! \brief SDI main event processing loop.
|
||||
//!
|
||||
static void SDITask_process(void);
|
||||
|
||||
//! \brief Callback function registered with Transport Layer
|
||||
//!
|
||||
static void SDITask_transportRXCallBack(int size);
|
||||
|
||||
//! \brief Callback function registered with Transport Layer
|
||||
//!
|
||||
static void SDITask_transportTxDoneCallBack(int size);
|
||||
|
||||
//! \brief Callback function registered with Transport Layer
|
||||
//!
|
||||
static void SDITask_MRDYEventCB(int size);
|
||||
|
||||
//! \brief ASYNC TX Q Processing function.
|
||||
//!
|
||||
static void SDITask_ProcessTXQ(void);
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief Initialization for the SDI Thread
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
void SDITask_setAppDataSize(uint16 mtuSize)
|
||||
{
|
||||
maxAppDataSize = mtuSize - 3; //subtract GATT Notification overhead: 1 byte opcode, 2 bytes conn. handle
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief Initialization for the SDI Thread
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
static void SDITask_inititializeTask(void)
|
||||
{
|
||||
lastQueuedTxMsg = NULL;
|
||||
|
||||
// create a Tx Queue instance
|
||||
sdiTxQueue = Queue_create(NULL, NULL);
|
||||
|
||||
Event_Params evParams;
|
||||
Event_Params_init(&evParams);
|
||||
|
||||
Event_construct(&uartEvent, &evParams);
|
||||
hUartEvent = Event_handle(&uartEvent);
|
||||
|
||||
// Initialize Network Processor Interface (SDI) and Transport Layer
|
||||
SDITL_initTL( &SDITask_transportTxDoneCallBack,
|
||||
&SDITask_transportRXCallBack,
|
||||
&SDITask_MRDYEventCB );
|
||||
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief SDI main event processing loop.
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
static void SDITask_process(void)
|
||||
{
|
||||
UInt postedEvents;
|
||||
|
||||
/* Forever loop */
|
||||
for (;; )
|
||||
{
|
||||
/* Wait for response message */
|
||||
postedEvents = Event_pend(hUartEvent, Event_Id_NONE, SDITASK_MRDY_EVENT | SDITASK_TX_READY_EVENT | SDITASK_TRANSPORT_RX_EVENT | SDITASK_TRANSPORT_TX_DONE_EVENT, BIOS_WAIT_FOREVER);
|
||||
|
||||
{
|
||||
// Capture the ISR events flags now within this task loop.
|
||||
|
||||
// MRDY event
|
||||
if (postedEvents & SDITASK_MRDY_EVENT)
|
||||
{
|
||||
#ifdef POWER_SAVING
|
||||
SDITL_handleMrdyEvent();
|
||||
#endif //POWER_SAVING
|
||||
|
||||
}
|
||||
|
||||
// An ASYNC message is ready to send to the Host
|
||||
if(postedEvents & SDITASK_TX_READY_EVENT)
|
||||
{
|
||||
|
||||
if ((!Queue_empty(sdiTxQueue)) && !SDITL_checkSdiBusy())
|
||||
{
|
||||
SDITask_ProcessTXQ();
|
||||
}
|
||||
|
||||
if (Queue_empty(sdiTxQueue))
|
||||
{
|
||||
// Q is empty, no action.
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
// Q is not empty, there's more to handle so preserve the
|
||||
// flag and repost to the task event.
|
||||
Event_post(hUartEvent, SDITASK_TX_READY_EVENT);
|
||||
}
|
||||
}
|
||||
|
||||
// The Transport Layer has received some bytes
|
||||
if(postedEvents & SDITASK_TRANSPORT_RX_EVENT)
|
||||
{
|
||||
length = SDIRxBuf_GetRxBufCount();
|
||||
|
||||
if(length > maxAppDataSize)
|
||||
{
|
||||
lengthRead = (maxAppDataSize & 0xFF);
|
||||
}else
|
||||
{
|
||||
lengthRead = (length & 0xFF);
|
||||
}
|
||||
|
||||
//Do custom app processing
|
||||
SDIRxBuf_ReadFromRxBuf(buf, lengthRead);
|
||||
|
||||
//Echo back via UART
|
||||
//SDITask_sendToUART(buf, length);
|
||||
|
||||
if (incomingRXEventAppCBFunc != NULL)
|
||||
{
|
||||
incomingRXEventAppCBFunc( UART_DATA_EVT , buf, lengthRead);
|
||||
}
|
||||
|
||||
if(length > maxAppDataSize)
|
||||
{
|
||||
// Additional bytes to collect, preserve the flag and repost
|
||||
// to the event
|
||||
Event_post(hUartEvent, SDITASK_TRANSPORT_RX_EVENT);
|
||||
}
|
||||
}
|
||||
|
||||
// The last transmission to the host has completed.
|
||||
if(postedEvents & SDITASK_TRANSPORT_TX_DONE_EVENT)
|
||||
{
|
||||
// Current TX is done.
|
||||
|
||||
if (!Queue_empty(sdiTxQueue))
|
||||
{
|
||||
// There are pending ASYNC messages waiting to be sent
|
||||
// to the host. Post to event.
|
||||
|
||||
Event_post(hUartEvent, SDITASK_TX_READY_EVENT);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief SDI Task function called from within SDITask_Fxn
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
void SDITask_task(void)
|
||||
{
|
||||
// Initialize application
|
||||
SDITask_inititializeTask();
|
||||
|
||||
// No return from TestProfile2 process
|
||||
SDITask_process();
|
||||
}
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Exported Functions
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief SDI task entry point.
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
Void SDITask_Fxn(UArg a0, UArg a1)
|
||||
{
|
||||
SDITask_task();
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief Task creation function for SDI
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
void SDITask_createTask(void)
|
||||
{
|
||||
memset(&sdiTaskStack, 0xDD, sizeof(sdiTaskStack));
|
||||
|
||||
// Configure and create the SDI task.
|
||||
Task_Params sdiTaskParams;
|
||||
Task_Params_init(&sdiTaskParams);
|
||||
sdiTaskParams.stack = sdiTaskStack;
|
||||
sdiTaskParams.stackSize = SDITASK_STACK_SIZE;
|
||||
sdiTaskParams.priority = SDITASK_PRIORITY;
|
||||
|
||||
Task_construct(&sdiTaskStruct, SDITask_Fxn, &sdiTaskParams, NULL);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief Register callback function to reroute incoming (from UART)
|
||||
//! SDI messages.
|
||||
//!
|
||||
//! \param[in] appRxCB Callback fucntion.
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
void SDITask_registerIncomingRXEventAppCB(sdiIncomingEventCBack_t appRxCB)
|
||||
{
|
||||
incomingRXEventAppCBFunc = appRxCB;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief API for application task to send a message to the Host.
|
||||
//! NOTE: It's assumed all message traffic to the stack will use
|
||||
//! other (ICALL) APIs/Interfaces.
|
||||
//!
|
||||
//! \param[in] pMsg Pointer to "unframed" message buffer.
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
void SDITask_sendToUART(uint8_t *pMsg, uint16 length)
|
||||
{
|
||||
ICall_CSState key;
|
||||
SDI_QueueRec *recPtr;
|
||||
|
||||
SDIMSG_msg_t *pSDIMsg =(SDIMSG_msg_t *)ICall_malloc( sizeof(SDIMSG_msg_t));
|
||||
|
||||
key = ICall_enterCriticalSection();
|
||||
|
||||
if(pSDIMsg)
|
||||
{
|
||||
pSDIMsg->msgType = SDIMSG_Type_ASYNC;
|
||||
pSDIMsg->pBuf = (uint8 *)ICall_allocMsg(length);
|
||||
pSDIMsg->pBufSize = length;
|
||||
|
||||
if(pSDIMsg->pBuf)
|
||||
{
|
||||
// Payload
|
||||
memcpy(pSDIMsg->pBuf, pMsg, length);
|
||||
}
|
||||
|
||||
recPtr = ICall_malloc(sizeof(SDI_QueueRec));
|
||||
|
||||
recPtr->sdiMsg = pSDIMsg;
|
||||
}
|
||||
|
||||
switch (pSDIMsg->msgType)
|
||||
{
|
||||
case SDIMSG_Type_ASYNC:
|
||||
{
|
||||
Queue_enqueue(sdiTxQueue, &recPtr->_elem);
|
||||
Event_post(hUartEvent, SDITASK_TX_READY_EVENT);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
//error
|
||||
break;
|
||||
}
|
||||
}
|
||||
ICall_leaveCriticalSection(key);
|
||||
}
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief Dequeue next message in the ASYNC TX Queue and send to serial
|
||||
//! interface.
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
static void SDITask_ProcessTXQ(void)
|
||||
{
|
||||
ICall_CSState key;
|
||||
SDI_QueueRec *recPtr = NULL;
|
||||
|
||||
// Processing of any TX Queue should only be done
|
||||
// in a critical section since any application
|
||||
// task can enqueue items freely
|
||||
key = ICall_enterCriticalSection();
|
||||
|
||||
if (!Queue_empty(sdiTxQueue))
|
||||
{
|
||||
recPtr = Queue_dequeue(sdiTxQueue);
|
||||
|
||||
if (recPtr != NULL)
|
||||
{
|
||||
lastQueuedTxMsg = recPtr->sdiMsg->pBuf;
|
||||
|
||||
SDITL_writeTL(recPtr->sdiMsg->pBuf, recPtr->sdiMsg->pBufSize);
|
||||
|
||||
//free the Queue record
|
||||
ICall_free(recPtr->sdiMsg);
|
||||
ICall_free(recPtr);
|
||||
}
|
||||
}
|
||||
|
||||
ICall_leaveCriticalSection(key);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Call Back Functions
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief Call back function for TX Done event from transport layer.
|
||||
//!
|
||||
//! \param[in] size Number of bytes transmitted.
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
static void SDITask_transportTxDoneCallBack(int size)
|
||||
{
|
||||
|
||||
if(lastQueuedTxMsg)
|
||||
{
|
||||
//Deallocate most recent message being transmitted.
|
||||
ICall_freeMsg(lastQueuedTxMsg);
|
||||
|
||||
lastQueuedTxMsg = NULL;
|
||||
}
|
||||
|
||||
// Post the event to the SDI task thread.
|
||||
Event_post(hUartEvent, SDITASK_TRANSPORT_TX_DONE_EVENT);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief RX Callback provided to Transport Layer for RX Event (ie.Bytes
|
||||
//! received).
|
||||
//!
|
||||
//! \param[in] size Number of bytes received.
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
static void SDITask_transportRXCallBack(int size)
|
||||
{
|
||||
if ( size < SDIRxBuf_GetRxBufAvail() )
|
||||
{
|
||||
SDIRxBuf_Read(size);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Trap here for pending buffer overflow. If SDI_FLOW_CTRL is
|
||||
// enabled, increase size of RxBuf to handle larger frames from host.
|
||||
for(;;);
|
||||
}
|
||||
Event_post(hUartEvent, SDITASK_TRANSPORT_RX_EVENT);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief RX Callback provided to Transport Layer for MRDY Event
|
||||
//!
|
||||
//! \param[in] size N/A
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
static void SDITask_MRDYEventCB(int size)
|
||||
{
|
||||
Event_post(hUartEvent, SDITASK_MRDY_EVENT);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,475 @@
|
||||
/******************************************************************************
|
||||
|
||||
@file sdi_tl.c
|
||||
|
||||
SDI Transport Layer API
|
||||
|
||||
Group: WCS, BTS
|
||||
Target Device: CC2650, CC2640, CC1350
|
||||
|
||||
******************************************************************************
|
||||
|
||||
* Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* Neither the name of Texas Instruments Incorporated nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
// ****************************************************************************
|
||||
// includes
|
||||
// ****************************************************************************
|
||||
#include <string.h>
|
||||
#include <xdc/std.h>
|
||||
#include <ti/drivers/Power.h>
|
||||
#include <ti/drivers/power/PowerCC26XX.h>
|
||||
#include <ti/sysbios/family/arm/m3/Hwi.h>
|
||||
#include <ti/drivers/pin/PINCC26XX.h>
|
||||
#include <ti/sysbios/knl/Task.h>
|
||||
#include <ti/sysbios/knl/Swi.h>
|
||||
|
||||
#include "inc/hw_memmap.h"
|
||||
#include "inc/hw_ints.h"
|
||||
#include "Board.h"
|
||||
#include "ICall.h"
|
||||
#include "hal_types.h"
|
||||
#include "inc/sdi_tl.h"
|
||||
#include "inc/sdi_config.h"
|
||||
|
||||
// ****************************************************************************
|
||||
// defines
|
||||
// ****************************************************************************
|
||||
|
||||
#if defined(SDI_USE_SPI)
|
||||
#include "inc/sdi_tl_spi.h"
|
||||
#elif defined(SDI_USE_UART)
|
||||
#include "inc/sdi_tl_uart.h"
|
||||
#else
|
||||
#error Must define an underlying serial bus for SDI
|
||||
#endif
|
||||
|
||||
|
||||
// ****************************************************************************
|
||||
// typedefs
|
||||
// ****************************************************************************
|
||||
|
||||
//*****************************************************************************
|
||||
// globals
|
||||
//*****************************************************************************
|
||||
|
||||
//! \brief Flag for low power mode
|
||||
static volatile bool sdiPMSetConstraint = FALSE;
|
||||
|
||||
//! \brief Flag for ongoing SDI TX
|
||||
static volatile bool sdiTxActive = FALSE;
|
||||
|
||||
//! \brief The packet that was being sent when HWI of MRDY going low was received
|
||||
static volatile uint32 mrdyPktStamp = 0;
|
||||
|
||||
//! \brief Packets transmitted counter
|
||||
static uint32 txPktCount = 0;
|
||||
|
||||
//! \brief SDI Transport Layer receive buffer
|
||||
static Char sdiRxBuf[SDI_TL_BUF_SIZE];
|
||||
|
||||
//! \brief Index to last byte written into SDI Transport Layer receive buffer
|
||||
static uint16_t sdiRxBufTail = 0;
|
||||
|
||||
//! \brief Index to first byte to be read from SDI Transport Layer receive buffer
|
||||
static uint16_t sdiRxBufHead = 0;
|
||||
|
||||
//! \brief SDI Transport Layer transmit buffer
|
||||
static Char sdiTxBuf[SDI_TL_BUF_SIZE];
|
||||
|
||||
//! \brief Number of bytes in SDI Transport Layer transmit buffer
|
||||
static uint16_t sdiTxBufLen = 0;
|
||||
|
||||
//! \brief Call back function in SDI Task for transmit complete
|
||||
static sdiRtosCB_t taskTxCB = NULL;
|
||||
|
||||
//! \brief Call back function in SDI Task for receive complete
|
||||
static sdiRtosCB_t taskRxCB = NULL;
|
||||
|
||||
//! \brief The remainder of any message that is fragmented
|
||||
static uint8 *msgFrag = NULL;
|
||||
|
||||
//! \brief The length of the remaining message fragment
|
||||
static uint16 msgFragLen = 0;
|
||||
|
||||
#ifdef POWER_SAVING
|
||||
//! \brief Call back function in SDI Task for MRDY hardware interrupt
|
||||
static sdiMrdyRtosCB_t taskMrdyCB = NULL;
|
||||
|
||||
//! \brief PIN Config for Mrdy and Srdy signals
|
||||
static PIN_Config sdiHandshakePinsCfg[] =
|
||||
{
|
||||
MRDY_PIN | PIN_GPIO_OUTPUT_DIS | PIN_INPUT_EN | PIN_PULLUP,
|
||||
SRDY_PIN | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MAX,
|
||||
PIN_TERMINATE
|
||||
};
|
||||
|
||||
//! \brief PIN State for Mrdy and Srdy signals
|
||||
static PIN_State sdiHandshakePins;
|
||||
|
||||
//! \brief PIN Handles for Mrdy and Srdy signals
|
||||
static PIN_Handle hSdiHandshakePins;
|
||||
|
||||
//! \brief No way to detect whether positive or negative edge with PIN Driver
|
||||
//! Use a flag to keep track of state
|
||||
static uint8 mrdy_state;
|
||||
#endif
|
||||
|
||||
//*****************************************************************************
|
||||
// function prototypes
|
||||
//*****************************************************************************
|
||||
|
||||
//! \brief Call back function provided to underlying serial interface to be
|
||||
// invoked upon the completion of a transmission
|
||||
static void SDITL_transmissionCallBack(uint16 Rxlen, uint16 Txlen);
|
||||
|
||||
#ifdef POWER_SAVING
|
||||
//! \brief HWI interrupt function for MRDY
|
||||
static void SDITL_MRDYPinHwiFxn(PIN_Handle hPin, PIN_Id pinId);
|
||||
#endif
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine initializes the transport layer and opens the port
|
||||
//! of the device. Note that based on project defines, either the
|
||||
//! UART, or SPI driver can be used.
|
||||
//!
|
||||
//! \param[in] sdiCBTx - Call back function for TX complete event
|
||||
//! \param[in] sdiCBRx - Call back function for RX event
|
||||
//! \param[in] sdiCBMrdy - Call back function for MRDY event
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
void SDITL_initTL(sdiRtosCB_t sdiCBTx, sdiRtosCB_t sdiCBRx, sdiRtosCB_t sdiCBMrdy)
|
||||
{
|
||||
ICall_CSState key;
|
||||
key = ICall_enterCriticalSection();
|
||||
|
||||
taskTxCB = sdiCBTx;
|
||||
taskRxCB = sdiCBRx;
|
||||
#ifdef POWER_SAVING
|
||||
taskMrdyCB = sdiCBMrdy;
|
||||
#endif
|
||||
|
||||
transportInit(sdiRxBuf,sdiTxBuf, SDITL_transmissionCallBack);
|
||||
|
||||
#ifdef POWER_SAVING
|
||||
SRDY_DISABLE();
|
||||
|
||||
// Initialize SRDY/MRDY. Enable int after callback registered
|
||||
hSdiHandshakePins = PIN_open(&sdiHandshakePins, sdiHandshakePinsCfg);
|
||||
PIN_registerIntCb(hSdiHandshakePins, SDITL_MRDYPinHwiFxn);
|
||||
PIN_setConfig(hSdiHandshakePins, PIN_BM_IRQ, MRDY_PIN | PIN_IRQ_BOTHEDGES);
|
||||
|
||||
// Enable wakeup
|
||||
PIN_setConfig(hSdiHandshakePins, PINCC26XX_BM_WAKEUP, MRDY_PIN | PINCC26XX_WAKEUP_NEGEDGE);
|
||||
|
||||
mrdy_state = PIN_getInputValue(MRDY_PIN);
|
||||
#endif // ! POWER_SAVING
|
||||
|
||||
#ifndef POWER_SAVING
|
||||
// This call will start repeated Uart Reads when Power Savings is disabled
|
||||
transportRead();
|
||||
#endif //!POWER_SAVING
|
||||
|
||||
ICall_leaveCriticalSection(key);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine returns the state of transmission on SDI
|
||||
//!
|
||||
//! \return bool - state of SDI transmission - 1 - active, 0 - not active
|
||||
// -----------------------------------------------------------------------------
|
||||
bool SDITL_checkSdiBusy(void)
|
||||
{
|
||||
#ifdef POWER_SAVING
|
||||
|
||||
return !PIN_getOutputValue(SRDY_PIN);
|
||||
#else
|
||||
return sdiTxActive;
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef POWER_SAVING
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine is used to set constraints on power manager
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
static void SDITL_setPM(void)
|
||||
{
|
||||
if( sdiPMSetConstraint )
|
||||
{
|
||||
return;
|
||||
}
|
||||
// set constraints for Standby and idle mode
|
||||
Power_setConstraint(PowerCC26XX_SB_DISALLOW);
|
||||
Power_setConstraint(PowerCC26XX_IDLE_PD_DISALLOW);
|
||||
sdiPMSetConstraint = TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef POWER_SAVING
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine is used to release constraints on power manager
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
static void SDITL_relPM(void)
|
||||
{
|
||||
|
||||
if ( ! sdiPMSetConstraint )
|
||||
{
|
||||
return;
|
||||
}
|
||||
// release constraints for Standby and idle mode
|
||||
Power_releaseConstraint(PowerCC26XX_SB_DISALLOW);
|
||||
Power_releaseConstraint(PowerCC26XX_IDLE_PD_DISALLOW);
|
||||
sdiPMSetConstraint = FALSE;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef POWER_SAVING
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine is used to handle an MRDY transition from a task
|
||||
//! context. Certain operations such as UART_read() cannot be
|
||||
//! performed from a HWI context
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
void SDITL_handleMrdyEvent(void)
|
||||
{
|
||||
ICall_CSState key;
|
||||
key = ICall_enterCriticalSection();
|
||||
|
||||
// Check to make sure this event is not occuring during the next packet
|
||||
// transmission
|
||||
if ( PIN_getInputValue(MRDY_PIN) == 0 ||
|
||||
(sdiTxActive && mrdyPktStamp == txPktCount ) )
|
||||
{
|
||||
transportMrdyEvent();
|
||||
SRDY_ENABLE();
|
||||
}
|
||||
|
||||
ICall_leaveCriticalSection(key);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This is a HWI function handler for the MRDY pin. Some MRDY
|
||||
//! functionality can execute from this HWI context. Others
|
||||
//! must be executed from task context hence the taskMrdyCB()
|
||||
//!
|
||||
//! \param[in] hPin - PIN Handle
|
||||
//! \param[in] pinId - ID of pin that triggered HWI
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
static void SDITL_MRDYPinHwiFxn(PIN_Handle hPin, PIN_Id pinId)
|
||||
{
|
||||
// The pin driver does not currently support returning whether the int
|
||||
// was neg or pos edge so we must use a variable to keep track of state.
|
||||
// If the physical state of the pin was used then a very quick toggle of
|
||||
// of MRDY could be missed.
|
||||
mrdy_state ^= 1;
|
||||
|
||||
if(mrdy_state == 0)
|
||||
{
|
||||
mrdyPktStamp = txPktCount;
|
||||
SDITL_setPM();
|
||||
if ( taskMrdyCB )
|
||||
{
|
||||
|
||||
taskMrdyCB();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
transportStopTransfer();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This callback is invoked on the completion of one transmission
|
||||
//! to/from the host MCU. Any bytes receives will be [0,Rxlen) in
|
||||
//! sdiRxBuf.
|
||||
//! If bytes were receives or transmitted, this function notifies
|
||||
//! the SDI task via registered call backs
|
||||
//!
|
||||
//! \param[in] Rxlen - lenth of the data received
|
||||
//! \param[in] Txlen - length of the data transferred
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
static void SDITL_transmissionCallBack(uint16 Rxlen, uint16 Txlen)
|
||||
{
|
||||
|
||||
sdiRxBufHead = 0;
|
||||
sdiRxBufTail = Rxlen;
|
||||
|
||||
if(Rxlen)
|
||||
{
|
||||
if ( taskRxCB )
|
||||
{
|
||||
taskRxCB(Rxlen);
|
||||
}
|
||||
}
|
||||
if(Txlen)
|
||||
{
|
||||
sdiTxActive = FALSE;
|
||||
// Only perform call back if SDI Task has been registered
|
||||
// and if there is not another fragment to send of this message
|
||||
if ( taskTxCB && !msgFragLen )
|
||||
{
|
||||
taskTxCB(Txlen);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef POWER_SAVING
|
||||
// Reset mrdy state in case of missed HWI
|
||||
mrdy_state = PIN_getInputValue(MRDY_PIN);
|
||||
|
||||
SDITL_relPM();
|
||||
SRDY_DISABLE();
|
||||
#endif
|
||||
|
||||
// If there is another fragment to send, begin write without notifying
|
||||
// higher level tasks
|
||||
if ( msgFragLen )
|
||||
{
|
||||
SDITL_writeTL(msgFrag,msgFragLen);
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine reads data from the transport layer based on len,
|
||||
//! and places it into the buffer.
|
||||
//!
|
||||
//! \param[in] buf - Pointer to buffer to place read data.
|
||||
//! \param[in] len - Number of bytes to read.
|
||||
//!
|
||||
//! \return uint16 - the number of bytes read from transport
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 SDITL_readTL(uint8 *buf, uint16 len)
|
||||
{
|
||||
// Only copy the lowest number between len and bytes remaining in buffer
|
||||
len = (len > SDITL_getRxBufLen()) ? SDITL_getRxBufLen() : len;
|
||||
|
||||
memcpy(buf, &sdiRxBuf[sdiRxBufHead], len);
|
||||
sdiRxBufHead += len;
|
||||
return len;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine writes data from the buffer to the transport layer.
|
||||
//!
|
||||
//! \param[in] buf - Pointer to buffer to write data from.
|
||||
//! \param[in] len - Number of bytes to write.
|
||||
//!
|
||||
//! \return uint16 - the number of bytes written to transport
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 SDITL_writeTL(uint8 *buf, uint16 len)
|
||||
{
|
||||
ICall_CSState key;
|
||||
key = ICall_enterCriticalSection();
|
||||
|
||||
// Writes are atomic at transport layer
|
||||
if ( SDITL_checkSdiBusy() )
|
||||
{
|
||||
ICall_leaveCriticalSection(key);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// If len of message is greater than fragment size
|
||||
// then message must be sent over the span of multiple
|
||||
// fragments
|
||||
if ( len > SDI_MAX_FRAG_SIZE )
|
||||
{
|
||||
msgFrag = buf + SDI_MAX_FRAG_SIZE;
|
||||
msgFragLen = len - SDI_MAX_FRAG_SIZE;
|
||||
len = SDI_MAX_FRAG_SIZE;
|
||||
}
|
||||
else
|
||||
{
|
||||
msgFrag = NULL;
|
||||
msgFragLen = 0;
|
||||
}
|
||||
|
||||
memcpy(sdiTxBuf, buf, len);
|
||||
sdiTxBufLen = len;
|
||||
sdiTxActive = TRUE;
|
||||
txPktCount++;
|
||||
|
||||
len = transportWrite(sdiTxBufLen);
|
||||
|
||||
#ifdef POWER_SAVING
|
||||
SRDY_ENABLE();
|
||||
#endif
|
||||
|
||||
ICall_leaveCriticalSection(key);
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine returns the max size receive buffer.
|
||||
//!
|
||||
//! \return uint16 - max size of the receive buffer
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 SDITL_getMaxRxBufSize(void)
|
||||
{
|
||||
return(SDI_TL_BUF_SIZE);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine returns the max size transmit buffer.
|
||||
//!
|
||||
//! \return uint16 - max size of the transmit buffer
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 SDITL_getMaxTxBufSize(void)
|
||||
{
|
||||
return(SDI_TL_BUF_SIZE);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief Returns number of bytes that are unread in RxBuf
|
||||
//!
|
||||
//! \return uint16 - number of unread bytes
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 SDITL_getRxBufLen(void)
|
||||
{
|
||||
return ((sdiRxBufTail - sdiRxBufHead) + SDI_TL_BUF_SIZE) % SDI_TL_BUF_SIZE;
|
||||
}
|
||||
@@ -0,0 +1,497 @@
|
||||
/******************************************************************************
|
||||
|
||||
@file sdi_tl_uart.c
|
||||
|
||||
SDI Transport Layer Module for UART
|
||||
|
||||
Group: WCS, BTS
|
||||
Target Device: CC2650, CC2640, CC1350
|
||||
|
||||
******************************************************************************
|
||||
|
||||
* Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* Neither the name of Texas Instruments Incorporated nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
// ****************************************************************************
|
||||
// includes
|
||||
// ****************************************************************************
|
||||
#include <string.h>
|
||||
#include <xdc/std.h>
|
||||
#include <ti/sysbios/family/arm/m3/Hwi.h>
|
||||
#include "inc/hw_memmap.h"
|
||||
#include "inc/hw_ints.h"
|
||||
#include "ICall.h"
|
||||
#include "Board.h"
|
||||
#include "hal_types.h"
|
||||
#include "bcomdef.h"
|
||||
|
||||
#include <ti/sysbios/knl/Task.h>
|
||||
#include <ti/sysbios/knl/Swi.h>
|
||||
|
||||
#include "inc/sdi_config.h"
|
||||
#include "inc/sdi_tl_uart.h"
|
||||
#include "inc/sdi_data.h"
|
||||
|
||||
#include <ti/drivers/uart/UARTCC26XX.h>
|
||||
|
||||
// ****************************************************************************
|
||||
// defines
|
||||
// ****************************************************************************
|
||||
|
||||
// ****************************************************************************
|
||||
// typedefs
|
||||
// ****************************************************************************
|
||||
|
||||
//*****************************************************************************
|
||||
// globals
|
||||
//*****************************************************************************
|
||||
//! \brief UART Handle for UART Driver
|
||||
static UART_Handle uartHandle;
|
||||
|
||||
//! \brief UART ISR Rx Buffer
|
||||
static Char isrRxBuf[UART_ISR_BUF_SIZE];
|
||||
|
||||
//! \brief SDI TL call back function for the end of a UART transaction
|
||||
static sdiCB_t sdiTransmitCB = NULL;
|
||||
|
||||
#ifdef POWER_SAVING
|
||||
//! \brief Flag signalling receive in progress
|
||||
static uint8 RxActive = FALSE;
|
||||
|
||||
//! \brief Flag signalling transmit in progress
|
||||
static uint8 TxActive = FALSE;
|
||||
|
||||
//! \brief Value of MRDY SDI TL pin
|
||||
static uint8 mrdy_flag = 1;
|
||||
#endif //POWER_SAVING
|
||||
|
||||
//! \brief Pointer to SDI TL TX Buffer
|
||||
static Char* TransportRxBuf;
|
||||
|
||||
//! \brief Length of bytes received
|
||||
static uint16 TransportRxLen = 0;
|
||||
|
||||
//! \brief Pointer to SDI TL RX Buffer
|
||||
static Char* TransportTxBuf;
|
||||
|
||||
//! \brief Length of bytes to send from SDI TL Tx Buffer
|
||||
static uint16 TransportTxLen = 0;
|
||||
|
||||
//! \brief UART Object. Initialized in board specific files
|
||||
extern UARTCC26XX_Object uartCC26XXObjects[];
|
||||
|
||||
UART_Params paramsUART;
|
||||
|
||||
//! \brief Pointer to Application RX event callback function for optional
|
||||
//! rerouting of messages to application.
|
||||
//!
|
||||
static sdiTLIncomingEventCBack_t incomingRXErrorStatusAppCBFunc = NULL;
|
||||
|
||||
//*****************************************************************************
|
||||
// function prototypes
|
||||
//*****************************************************************************
|
||||
|
||||
//! \brief UART ISR function. Invoked upon specific threshold of UART RX FIFO size
|
||||
static uint16 SDITLUART_readIsrBuf(size_t size);
|
||||
|
||||
//! \brief UART Callback invoked after UART write completion
|
||||
static void SDITLUART_writeCallBack(UART_Handle handle, void *ptr, size_t size);
|
||||
|
||||
//! \brief UART Callback invoked after readsize has been read or timeout
|
||||
static void SDITLUART_readCallBack(UART_Handle handle, void *ptr, size_t size);
|
||||
|
||||
|
||||
void SDITLUART_registerIncomingRXErrorStatusAppCB(sdiTLIncomingEventCBack_t appRxErrStatusCB)
|
||||
{
|
||||
incomingRXErrorStatusAppCBFunc = appRxErrStatusCB;
|
||||
}
|
||||
|
||||
|
||||
void SDITLUART_closeUART(void)
|
||||
{
|
||||
ICall_CSState key;
|
||||
|
||||
key = ICall_enterCriticalSection();
|
||||
|
||||
// Cancel any pending reads
|
||||
UART_readCancel(uartHandle);
|
||||
|
||||
// Close / power off the UART.
|
||||
UART_close(uartHandle);
|
||||
|
||||
ICall_leaveCriticalSection(key);
|
||||
}
|
||||
|
||||
|
||||
uint8 SDITLUART_configureUARTParams(UART_Params *initParams)
|
||||
{
|
||||
uint8 status = SUCCESS;
|
||||
ICall_CSState key;
|
||||
|
||||
SDITLUART_closeUART();
|
||||
|
||||
key = ICall_enterCriticalSection();
|
||||
|
||||
// Open / power on the UART.
|
||||
uartHandle = UART_open(Board_UART, ¶msUART);
|
||||
if(uartHandle != NULL)
|
||||
{
|
||||
//DEBUG("UART_open successful");
|
||||
}else{
|
||||
//DEBUG("ERROR in UART_open");
|
||||
status = FAILURE;
|
||||
}
|
||||
|
||||
//Enable Partial Reads on all subsequent UART_read()
|
||||
status = UART_control(uartHandle, UARTCC26XX_RETURN_PARTIAL_ENABLE, NULL);
|
||||
|
||||
ICall_leaveCriticalSection(key);
|
||||
|
||||
#ifndef POWER_SAVING
|
||||
//Initiate first read to start polling UART
|
||||
SDITLUART_readTransport();
|
||||
#endif //POWER_SAVING
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine initializes the transport layer and opens the port
|
||||
//! of the device.
|
||||
//!
|
||||
//! \param[in] tRxBuf - pointer to SDI TL Tx Buffer
|
||||
//! \param[in] tTxBuf - pointer to SDI TL Rx Buffer
|
||||
//! \param[in] sdiCBack - SDI TL call back function to be invoked at the end of
|
||||
//! a UART transaction
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
void SDITLUART_initializeTransport(Char *tRxBuf, Char *tTxBuf, sdiCB_t sdiCBack)
|
||||
{
|
||||
// Set UART transport callbacks
|
||||
TransportRxBuf = tRxBuf;
|
||||
TransportTxBuf = tTxBuf;
|
||||
sdiTransmitCB = sdiCBack;
|
||||
|
||||
// Configure UART parameters.
|
||||
UART_Params_init(¶msUART);
|
||||
paramsUART.baudRate = SDI_UART_BR;
|
||||
paramsUART.readDataMode = UART_DATA_BINARY;
|
||||
paramsUART.writeDataMode = UART_DATA_BINARY;
|
||||
paramsUART.dataLength = UART_LEN_8;
|
||||
paramsUART.stopBits = UART_STOP_ONE;
|
||||
paramsUART.readMode = UART_MODE_CALLBACK;
|
||||
paramsUART.writeMode = UART_MODE_CALLBACK;
|
||||
paramsUART.readEcho = UART_ECHO_OFF;
|
||||
|
||||
paramsUART.readCallback = SDITLUART_readCallBack;
|
||||
paramsUART.writeCallback = SDITLUART_writeCallBack;
|
||||
|
||||
//paramsUART.readReturnMode = UART_RETURN_FULL;
|
||||
|
||||
// Open / power on the UART.
|
||||
uartHandle = UART_open(Board_UART, ¶msUART);
|
||||
if(uartHandle != NULL)
|
||||
{
|
||||
//DEBUG("ERROR in UART_open");
|
||||
}
|
||||
//Enable Partial Reads on all subsequent UART_read()
|
||||
UART_control(uartHandle, UARTCC26XX_RETURN_PARTIAL_ENABLE, NULL);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef POWER_SAVING
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine stops any pending reads
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
void SDITLUART_stopTransfer(void)
|
||||
{
|
||||
ICall_CSState key;
|
||||
key = ICall_enterCriticalSection();
|
||||
|
||||
mrdy_flag = 1;
|
||||
|
||||
// If we have no bytes in FIFO yet we must assume there was nothing to read
|
||||
// or that the FIFO has already been read for this UART_read()
|
||||
// In either case UART_readCancel will call the read CB function and it will
|
||||
// invoke sdiTransmitCB with the appropriate number of bytes read
|
||||
if (!UARTCharsAvail(((UARTCC26XX_HWAttrsV1 const *)(uartHandle->hwAttrs))->baseAddr))
|
||||
{
|
||||
RxActive = FALSE;
|
||||
UART_readCancel(uartHandle);
|
||||
}
|
||||
|
||||
ICall_leaveCriticalSection(key);
|
||||
return;
|
||||
}
|
||||
#endif //POWER_SAVING
|
||||
|
||||
#ifdef POWER_SAVING
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine is called from the application context when MRDY is
|
||||
//! de-asserted
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
void SDITLUART_handleMrdyEvent(void)
|
||||
{
|
||||
ICall_CSState key;
|
||||
key = ICall_enterCriticalSection();
|
||||
|
||||
mrdy_flag = 0;
|
||||
|
||||
// If we haven't already begun reading, now is the time before Master
|
||||
// potentially starts to send data
|
||||
// The !TxActive condition is because we will call UART_sdiRead() prior to setting
|
||||
// TxActive true. There is the possibility that MRDY gets set high which
|
||||
// clears RxActive prior to us getting to this event. This will cause us to
|
||||
// read twice per transaction which will cause the transaction to never
|
||||
// complete
|
||||
if ( !RxActive && !TxActive )
|
||||
{
|
||||
SDITLUART_readTransport();
|
||||
}
|
||||
|
||||
// If we have something to write, then the Master has signalled it is ready
|
||||
// to receive. Time to write.
|
||||
if ( TxActive )
|
||||
{
|
||||
// Check to see if transport is successful. If not, reset TxLen to allow
|
||||
// another write to be processed
|
||||
if ( UART_write(uartHandle, TransportTxBuf, TransportTxLen) == UART_ERROR )
|
||||
{
|
||||
TxActive = FALSE;
|
||||
TransportTxLen = 0;
|
||||
}
|
||||
}
|
||||
|
||||
ICall_leaveCriticalSection(key);
|
||||
|
||||
return;
|
||||
}
|
||||
#endif //POWER_SAVING
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This callback is invoked on Write completion
|
||||
//!
|
||||
//! \param[in] handle - handle to the UART port
|
||||
//! \param[in] ptr - pointer to data to be transmitted
|
||||
//! \param[in] size - size of the data
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
static void SDITLUART_writeCallBack(UART_Handle handle, void *ptr, size_t size)
|
||||
{
|
||||
ICall_CSState key;
|
||||
key = ICall_enterCriticalSection();
|
||||
uint8 errStatus = 0;
|
||||
|
||||
if (errStatus = ((UARTCC26XX_Handle)handle->object)->status)
|
||||
{
|
||||
//report UART error status to application
|
||||
if(incomingRXErrorStatusAppCBFunc != NULL)
|
||||
incomingRXErrorStatusAppCBFunc(UART_ERROR_EVT, &errStatus, sizeof(errStatus));
|
||||
}
|
||||
|
||||
#ifdef POWER_SAVING
|
||||
if ( !RxActive )
|
||||
{
|
||||
UART_readCancel(uartHandle);
|
||||
if ( sdiTransmitCB )
|
||||
{
|
||||
sdiTransmitCB(TransportRxLen,TransportTxLen);
|
||||
}
|
||||
}
|
||||
|
||||
TxActive = FALSE;
|
||||
|
||||
#else
|
||||
if ( sdiTransmitCB )
|
||||
{
|
||||
sdiTransmitCB(0,TransportTxLen);
|
||||
}
|
||||
#endif //POWER_SAVING
|
||||
|
||||
ICall_leaveCriticalSection(key);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This callback is invoked on Read completion of readSize/receive
|
||||
//! timeout
|
||||
//!
|
||||
//! \param[in] handle - handle to the UART port
|
||||
//! \param[in] ptr - pointer to buffer to read data into
|
||||
//! \param[in] size - size of the data
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
static void SDITLUART_readCallBack(UART_Handle handle, void *ptr, size_t size)
|
||||
{
|
||||
ICall_CSState key;
|
||||
key = ICall_enterCriticalSection();
|
||||
uint8 errStatus = 0;
|
||||
|
||||
if (errStatus = ((UARTCC26XX_Handle)handle->object)->status)
|
||||
{
|
||||
//report UART error status to application
|
||||
if(incomingRXErrorStatusAppCBFunc != NULL)
|
||||
incomingRXErrorStatusAppCBFunc(UART_ERROR_EVT, &errStatus, sizeof(errStatus));
|
||||
}
|
||||
|
||||
if (size)
|
||||
{
|
||||
if (size != SDITLUART_readIsrBuf(size))
|
||||
{
|
||||
// Buffer overflow imminent. Cancel read and pass to higher layers
|
||||
// for handling
|
||||
#ifdef POWER_SAVING
|
||||
RxActive = FALSE;
|
||||
#endif //POWER_SAVING
|
||||
if ( sdiTransmitCB )
|
||||
{
|
||||
sdiTransmitCB(SDI_TL_BUF_SIZE,TransportTxLen);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef POWER_SAVING
|
||||
// Read has been cancelled by transport layer, or bus timeout and no bytes in FIFO
|
||||
// - do not invoke another read
|
||||
if ( !UARTCharsAvail(((UARTCC26XX_HWAttrsV1 const *)(uartHandle->hwAttrs))->baseAddr) &&
|
||||
mrdy_flag )
|
||||
{
|
||||
RxActive = FALSE;
|
||||
|
||||
// If TX has also completed then we are safe to issue call back
|
||||
if ( !TxActive && sdiTransmitCB )
|
||||
{
|
||||
sdiTransmitCB(TransportRxLen,TransportTxLen);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
UART_read(uartHandle, &isrRxBuf[0], UART_ISR_BUF_SIZE);
|
||||
}
|
||||
#else
|
||||
if ( sdiTransmitCB )
|
||||
{
|
||||
sdiTransmitCB(size,0);
|
||||
}
|
||||
TransportRxLen = 0;
|
||||
UART_read(uartHandle, &isrRxBuf[0], UART_ISR_BUF_SIZE);
|
||||
#endif //POWER_SAVING
|
||||
|
||||
ICall_leaveCriticalSection(key);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine reads data from the transport layer based on len,
|
||||
//! and places it into the buffer.
|
||||
//!
|
||||
//! \param[in] size - amount of bytes in UART ISR Rx Buffer
|
||||
//!
|
||||
//! \return uint16 - number of bytes read from transport
|
||||
// -----------------------------------------------------------------------------
|
||||
static uint16 SDITLUART_readIsrBuf(size_t size)
|
||||
{
|
||||
uint8_t i = 0;
|
||||
|
||||
// Copy the UART buffer to the application buffer
|
||||
// Do not allow overflow of buffer. Instead pass up to SDI module and allow
|
||||
// it to handle
|
||||
for (; (i < size) && (TransportRxLen < SDI_TL_BUF_SIZE); i++)
|
||||
{
|
||||
TransportRxBuf[TransportRxLen++] = isrRxBuf[i];
|
||||
isrRxBuf[i] = 0;
|
||||
}
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine reads data from the UART
|
||||
//!
|
||||
//! \return void
|
||||
// -----------------------------------------------------------------------------
|
||||
void SDITLUART_readTransport(void)
|
||||
{
|
||||
ICall_CSState key;
|
||||
key = ICall_enterCriticalSection();
|
||||
|
||||
#ifdef POWER_SAVING
|
||||
RxActive = TRUE;
|
||||
#endif //POWER_SAVING
|
||||
|
||||
TransportRxLen = 0;
|
||||
UART_read(uartHandle, &isrRxBuf[0], UART_ISR_BUF_SIZE);
|
||||
|
||||
ICall_leaveCriticalSection(key);
|
||||
}
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief This routine writes copies buffer addr to the transport layer.
|
||||
//!
|
||||
//! \param[in] len - Number of bytes to write.
|
||||
//!
|
||||
//! \return uint8 - number of bytes written to transport
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 SDITLUART_writeTransport(uint16 len)
|
||||
{
|
||||
ICall_CSState key;
|
||||
key = ICall_enterCriticalSection();
|
||||
|
||||
TransportTxLen = len;
|
||||
|
||||
#ifdef POWER_SAVING
|
||||
TxActive = TRUE;
|
||||
|
||||
// Start reading prior to impending write transaction
|
||||
// We can only call UART_write() once MRDY has been signaled from Master
|
||||
// device
|
||||
SDITLUART_readTransport();
|
||||
#else
|
||||
// Check to see if transport is successful. If not, reset TxLen to allow
|
||||
// another write to be processed
|
||||
if(UART_write(uartHandle, TransportTxBuf, TransportTxLen) == UART_ERROR )
|
||||
{
|
||||
TransportTxLen = 0;
|
||||
}
|
||||
#endif //POWER_SAVING
|
||||
ICall_leaveCriticalSection(key);
|
||||
|
||||
return TransportTxLen;
|
||||
}
|
||||
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user