Please note as of Wednesday, August 15th, 2018 this wiki has been set to read only. If you are a TI Employee and require Edit ability please contact x0211426 from the company directory.

RemoTI CC253x to CC26xx

From Texas Instruments Wiki
Jump to: navigation, search

This page discuss the most important differences between RemoTI on CC253x versus RemoTI on CC26xx. It is intended for readers that already are familiar with RemoTI-1.4.0 and older. The recommended way to learn the new implementation is to follow this guide.

Architecture

There are significant differences in the implementation of RemoTI between CC253x and CC26xx. However, both implementations follow the architecture given in figure [1].



<= RemoTI-1.4.1 >= RemoTI-2.0.0
Direct function calls. Each function must be implemented. Indirect calls, via ICall. Only those functions used must be implemented. Readers familiar with Network Processor implementations will recognize this architecture.

Heap

<= RemoTI-1.4.1 >= RemoTI-2.0.0
OSAL HeapManager RTOS Heap accessed via ICall
osal_mem_alloc() ICall_malloc()
osal_mem_free() ICall_free()
It is possible to implement a separate heap for the application. Refer TI-RTOS User Guide for details.

API

RemoTI-2.0.0 introduces a new way to call the stack APIs. APIs <= RemoTI-1.4.x have separate arguments for each parameter. The equivalent APIs in RemoTI-2.0.0 use structures. The following table shows three different APIs, which cover all cases:

  • no parameters
  • single parameter
  • multiple parameters
<= RemoTI-1.4.1 >= RemoTI-2.0.0
RTI_InitReq() RTI_InitReq()
No parameters
RTI_BindReq( uint8 bindingType ) RTI_BindReq(rtiBindReq_t *pBindReq)
uint8 bindingType
struct {
    uint8_t bindingType
} rtiBindReq_t;
RTI_SendDataReq( uint8 dstIndex, uint8 profileId, uint16 vendorId,
uint8 txOptions, uint8 len, uint8 *pData )
RTI_SendDataReq(rtiSendDataReq_t *pSendDataReq)
uint8 dstIndex
uint8 profileId
uint16 vendorId
uint8 txOptions
uint8 len
uint8 *pData
struct {
    uint8_t pairRef
    uint8_t profileId
    uint16_t vendorId
    uint8_t txOptions
    uint8_t txOptionsExtended
    uint8_t *internal // internal data structure. Do not use.
    uint8_t *nsdu
} rcnNldeDataReq_t;
typedef rcnNldeDataReq_t rtiSendDataReq_t;