TI BLE-Stack for Bluetooth 4.2 API Documentation  3.01.00.07
Data Structures | Macros | Typedefs | Functions
TRNGCC26XX.h File Reference

Detailed Description

TRNG driver implementation for a CC26XX device.

============================================================================

Driver Include

The TRNG header file should be included in an application as follows:

#include <ti/drivers/trng/TRNGCC26XX.h>

Overview

The TRNGCC26XX driver provides reentrant access to the TRNG module within the CC26XX. Reentrant access is controlled by creating a global critical section when requesting a random number. This critical section disables all Hwi's from running.

General Behavior

Initialing the TRNGCC26XX Driver

Opening the TRNGCC26XX Driver

// Open the driver
TRNGCC26XX_open(Board_TRNG);

Initializing client parameters

TRNGCC26XX_Params trngParams;
// Initialize parameters.
// Optionally modify trngParams
...

Validating client parameters

TRNGCC26XX_Params trngParams;
// Initialize parameters.
// Set client parameters.
trngParams.minSamplesPerCycle = 256;
trngParams.maxSamplesPerCycle = 256;
trngParams.clocksPerSample = 1;
// Validate parameters.
{
// Parameters are valid.
}

Generating a random number

TRNGCC26XX_Params trngParams;
uint8_t trngStatusFlag;
uint32_t trngNum1;
uint32_t trngNum2;
// Init driver.
// Open TRNG peripheral.
TRNGCC26XX_open(Board_TRNG);
// Initialize parameters.
// Generate a random number. Use optional status flag.
trngNum1 = TRNGCC26XX_getNumber(&trngParams, &trngStatusFlag);
// Check if status was okay
if (trngStatusFlag == TRNGCC26XX_STATUS_SUCCESS)
{
// Random number was generated successfully
}
// Generate a second random number using the default values and no
// status flag.
trngNum2 = TRNGCC26XX_getNumber(NULL, NULL);

Supported transaction modes

Error handling

If an error occurs during a call to TRNGCC26XX_getNumber, the error status will be set into the status flag and the returned random number shall be 0. passing the status flag is optional.

Supported Functions

API function Description
TRNGCC26XX_open() Open driver (stub)
TRNGCC26XX_close() Close driver (stub)
TRNGCC26XX_Params_init() Initialize parameters for random number generation
TRNGCC26XX_init() Generates a random number
TRNGCC26XX_isParamValid Validate client configuration parameters

Go to the source code of this file.

Data Structures

struct  TRNGCC26XX_Config
 TRNGCC26XX Global Configuration. More...
 
struct  TRNGCC26XX_HWAttrs
 TRNGCC26XX Hardware Attributes. More...
 
struct  TRNGCC26XX_Object
 TRNGCC26XX Object. More...
 
struct  TRNGCC26XX_Params
 TRNGCC26XX Parameters. More...
 

Macros

#define TRNGCC26XX_CLOCKS_PER_SAMPLES_MAX   15
 
#define TRNGCC26XX_ILLEGAL_PARAM_RETURN_VALUE   0
 
#define TRNGCC26XX_MAX_SAMPLES_MAX   16777216
 
#define TRNGCC26XX_MAX_SAMPLES_MIN   256
 
#define TRNGCC26XX_MIN_SAMPLES_MAX   16384
 
#define TRNGCC26XX_MIN_SAMPLES_MIN   64
 
#define TRNGCC26XX_STATUS_ILLEGAL_PARAM   -1
 
#define TRNGCC26XX_STATUS_SUCCESS   0
 

Typedefs

typedef struct TRNGCC26XX_Config TRNGCC26XX_Config
 TRNGCC26XX Global Configuration.
 
typedef struct TRNGCC26XX_ConfigTRNGCC26XX_Handle
 A handle that is returned from a TRNGCC26XX_open() call.
 
typedef struct TRNGCC26XX_HWAttrs TRNGCC26XX_HWAttrs
 TRNGCC26XX Hardware Attributes. More...
 
typedef struct TRNGCC26XX_Object TRNGCC26XX_Object
 TRNGCC26XX Object. More...
 
typedef struct TRNGCC26XX_Params TRNGCC26XX_Params
 TRNGCC26XX Parameters. More...
 

Functions

void TRNGCC26XX_close (TRNGCC26XX_Handle handle)
 Close the TRNG driver. More...
 
uint32_t TRNGCC26XX_getNumber (TRNGCC26XX_Handle handle, TRNGCC26XX_Params *params, int8_t *status)
 This routine returns a 32 bit TRNG number. More...
 
void TRNGCC26XX_init (void)
 TRNG Driver initialization. More...
 
int8_t TRNGCC26XX_isParamValid (TRNGCC26XX_Params *params)
 Check that the parameters used are valid configurations. More...
 
TRNGCC26XX_Handle TRNGCC26XX_open (uint8_t index)
 Open the TRNGCC26XX peripheral specified by the index value. This peripheral will be configured as specified by pParams. Alternatively, if pParams is NULL, default values will be used. More...
 
int8_t TRNGCC26XX_Params_init (TRNGCC26XX_Params *params)
 Initialize TRNG configuration parameters to their defaults. More...
 
Copyright 2017, Texas Instruments Incorporated