AM275 FreeRTOS SDK  11.01.00

Introduction

This module contains APIs to program and use the HYPERBUS module. The APIs can be used by other drivers to get access to HYPERBUS and also by application to initiate data transfer operation.

Files

file  hyperbus/v0/hyperbus.h
 HYPERBUS Driver API/interface file.
 

Data Structures

struct  HYPERBUS_MemCfg
 Memory Configuration Structure. More...
 
struct  HYPERBUS_fssDataIf
 FSS Data Interface Structure. More...
 
struct  HYPERBUS_fssHandle
 FSS Handle Structure. More...
 
struct  HYPERBUS_MemTiming
 Register structure for the Memory Timing Register. More...
 
struct  HYPERBUS_Attrs
 HYPERBUS instance attributes - used during init time. More...
 
struct  HYPERBUS_Object
 HYPERBUS driver object. More...
 
struct  HYPERBUS_Config
 HYPERBUS driver configuration structure. More...
 

Functions

void HYPERBUS_init (void)
 This function initializes the HYPERBUS module. More...
 
void HYPERBUS_deinit (void)
 This function de-initializes the HYPERBUS module. More...
 
HYPERBUS_Handle HYPERBUS_open (uint32_t index)
 This function opens a given HYPERBUS peripheral. More...
 
void HYPERBUS_close (HYPERBUS_Handle handle)
 Function to close a HYPERBUS peripheral specified by the HYPERBUS handle. More...
 
HYPERBUS_Handle HYPERBUS_getHandle (uint32_t index)
 This function returns the handle of an open HYPERBUS Instance from the instance index. More...
 
uint32_t HYPERBUS_getHyperBusDataBaseAddr (HYPERBUS_Handle handle)
 This function gets the SOC mapped data base address of the HyperRam. More...
 
static uint32_t HYPERBUS_makeMemCfg (HYPERBUS_Handle handle, HYPERBUS_MemCfg *pHyperBusMemCfg)
 This function returns the memory configuration of the HYPERBUS Instance. More...
 
static uint32_t HYPERBUS_makeMemTiming (HYPERBUS_Handle handle, HYPERBUS_MemTiming *pHyperBusMemTiming)
 This function returns the memory Timings of the HYPERBUS Instance. More...
 

Typedefs

typedef void * HYPERBUS_Handle
 A handle that is returned from a HYPERBUS_open() call. More...
 

Enumerations

enum  HYPERBUS_Devicetype { HYPERBUS_DEVICETYPE_HYPERRAM, HYPERBUS_DEVICETYPE_NONE, HYPERBUS_DEVICETYPE_HYPERFLASH }
 Enum for device type. More...
 

Macros

#define HYPERBUS_MEM_OFFSET   0U
 Memory offset for HYPERBUS controller. More...
 
#define HYPERBUS_MCR_CONFIGURABLE_CS_LOW_TIME   0x1U
 Memory Configuration Register defines. More...
 
#define HYPERBUS_MCR_NO_CONFIGURABLE_CS_LOW_TIME   0x0U
 
#define HYPERBUS_MCR_MAXLEN_2_BYTE   0x0U
 Maximum Length defines. More...
 
#define HYPERBUS_MCR_MAXLEN_4_BYTE   0x1U
 
#define HYPERBUS_MCR_MAXLEN_6_BYTE   0x2U
 
#define HYPERBUS_MCR_MAXLEN_1024_BYTE   0x1FFU
 
#define HYPERBUS_MCR_MERGE_WRAP_INCR   0x1U
 Memory Configuration Register defines. More...
 
#define HYPERBUS_MCR_NO_MERGE_WRAP_INCR   0x0U
 
#define HYPERBUS_MCR_ASYMM_CACHE_SUPPORT   0x1U
 Memory Configuration Register defines. More...
 
#define HYPERBUS_MCR_NO_ASYMM_CACHE_SUPPORT   0x0U
 
#define HYPERBUS_MCR_MEM_SPACE   0x0U
 Memory Configuration Register defines. More...
 
#define HYPERBUS_MCR_CR_SPACE   0x1U
 
#define HYPERBUS_MCR_HYPERFLASH   0x0U
 Memory Configuration Register defines. More...
 
#define HYPERBUS_MCR_HYPERRAM   0x1U
 
#define HYPERBUS_MCR_WRAPSIZE_NONE   0x0U
 Memory Configuration Register defines. More...
 
#define HYPERBUS_MCR_WRAPSIZE_64B   0x1U
 
#define HYPERBUS_MCR_WRAPSIZE_16B   0x2U
 
#define HYPERBUS_MCR_WRAPSIZE_32B   0x3U
 

Chip Selects

Chip selects

#define HYPERBUS_CS0   (0U)
 
#define HYPERBUS_CS1   (1U)
 

Macro Definition Documentation

◆ HYPERBUS_MEM_OFFSET

#define HYPERBUS_MEM_OFFSET   0U

Memory offset for HYPERBUS controller.

◆ HYPERBUS_MCR_CONFIGURABLE_CS_LOW_TIME

#define HYPERBUS_MCR_CONFIGURABLE_CS_LOW_TIME   0x1U

Memory Configuration Register defines.

0x1 = configurable CS# low time, 0x0 otherwise

◆ HYPERBUS_MCR_NO_CONFIGURABLE_CS_LOW_TIME

#define HYPERBUS_MCR_NO_CONFIGURABLE_CS_LOW_TIME   0x0U

◆ HYPERBUS_MCR_MAXLEN_2_BYTE

#define HYPERBUS_MCR_MAXLEN_2_BYTE   0x0U

Maximum Length defines.

This bit indicates maximum read/write transaction length to memory. This bit is ignored when MAXEN bit is 0. 000000000: 2 Byte [1 HyperBus CK] 000000001: 4 Byte [2 HyperBus CK] 000000010: 6 Byte [3 HyperBus CK] 111111111: 1024 Byte [512 HyperBus CK]

◆ HYPERBUS_MCR_MAXLEN_4_BYTE

#define HYPERBUS_MCR_MAXLEN_4_BYTE   0x1U

◆ HYPERBUS_MCR_MAXLEN_6_BYTE

#define HYPERBUS_MCR_MAXLEN_6_BYTE   0x2U

◆ HYPERBUS_MCR_MAXLEN_1024_BYTE

#define HYPERBUS_MCR_MAXLEN_1024_BYTE   0x1FFU

◆ HYPERBUS_MCR_MERGE_WRAP_INCR

#define HYPERBUS_MCR_MERGE_WRAP_INCR   0x1U

Memory Configuration Register defines.

0x1 = merge WRAP and INCR, 0x0 otherwise

◆ HYPERBUS_MCR_NO_MERGE_WRAP_INCR

#define HYPERBUS_MCR_NO_MERGE_WRAP_INCR   0x0U

◆ HYPERBUS_MCR_ASYMM_CACHE_SUPPORT

#define HYPERBUS_MCR_ASYMM_CACHE_SUPPORT   0x1U

Memory Configuration Register defines.

0x1 = asymmetry cache support, 0x0 otherwise

◆ HYPERBUS_MCR_NO_ASYMM_CACHE_SUPPORT

#define HYPERBUS_MCR_NO_ASYMM_CACHE_SUPPORT   0x0U

◆ HYPERBUS_MCR_MEM_SPACE

#define HYPERBUS_MCR_MEM_SPACE   0x0U

Memory Configuration Register defines.

0x0 = memory space, 0x1 = CR space

◆ HYPERBUS_MCR_CR_SPACE

#define HYPERBUS_MCR_CR_SPACE   0x1U

◆ HYPERBUS_MCR_HYPERFLASH

#define HYPERBUS_MCR_HYPERFLASH   0x0U

Memory Configuration Register defines.

0x0 = HyperFlash, 0x1 = HyperRAM

◆ HYPERBUS_MCR_HYPERRAM

#define HYPERBUS_MCR_HYPERRAM   0x1U

◆ HYPERBUS_MCR_WRAPSIZE_NONE

#define HYPERBUS_MCR_WRAPSIZE_NONE   0x0U

Memory Configuration Register defines.

0x0 = wrap size none, 0x1 = 64B, 0x2 = 16B, 0x3 = 32B

◆ HYPERBUS_MCR_WRAPSIZE_64B

#define HYPERBUS_MCR_WRAPSIZE_64B   0x1U

◆ HYPERBUS_MCR_WRAPSIZE_16B

#define HYPERBUS_MCR_WRAPSIZE_16B   0x2U

◆ HYPERBUS_MCR_WRAPSIZE_32B

#define HYPERBUS_MCR_WRAPSIZE_32B   0x3U

◆ HYPERBUS_CS0

#define HYPERBUS_CS0   (0U)

◆ HYPERBUS_CS1

#define HYPERBUS_CS1   (1U)

Typedef Documentation

◆ HYPERBUS_Handle

typedef void* HYPERBUS_Handle

A handle that is returned from a HYPERBUS_open() call.

Enumeration Type Documentation

◆ HYPERBUS_Devicetype

Enum for device type.

Enumerator
HYPERBUS_DEVICETYPE_HYPERRAM 
HYPERBUS_DEVICETYPE_NONE 
HYPERBUS_DEVICETYPE_HYPERFLASH 

Function Documentation

◆ HYPERBUS_init()

void HYPERBUS_init ( void  )

This function initializes the HYPERBUS module.

◆ HYPERBUS_deinit()

void HYPERBUS_deinit ( void  )

This function de-initializes the HYPERBUS module.

◆ HYPERBUS_open()

HYPERBUS_Handle HYPERBUS_open ( uint32_t  index)

This function opens a given HYPERBUS peripheral.

Precondition
HYPERBUS controller has been initialized using HYPERBUS_init()
Parameters
indexIndex of config to use in the HYPERBUS_Config array
Returns
A HYPERBUS_Handle on success or a NULL on an error or if it has been opened already
See also
HYPERBUS_init()
HYPERBUS_close()

◆ HYPERBUS_close()

void HYPERBUS_close ( HYPERBUS_Handle  handle)

Function to close a HYPERBUS peripheral specified by the HYPERBUS handle.

Precondition
HYPERBUS_open() has to be called first
Parameters
handleHYPERBUS_Handle returned from HYPERBUS_open()
See also
HYPERBUS_open()

◆ HYPERBUS_getHandle()

HYPERBUS_Handle HYPERBUS_getHandle ( uint32_t  index)

This function returns the handle of an open HYPERBUS Instance from the instance index.

Precondition
HYPERBUS controller has been opened using HYPERBUS_open()
Parameters
indexIndex of config to use in the HYPERBUS_Config array
Returns
An HYPERBUS_Handle if it has been opened already or NULL otherwise
See also
HYPERBUS_init()
HYPERBUS_open()

◆ HYPERBUS_getHyperBusDataBaseAddr()

uint32_t HYPERBUS_getHyperBusDataBaseAddr ( HYPERBUS_Handle  handle)

This function gets the SOC mapped data base address of the HyperRam.

Precondition
HYPERBUS controller has been opened using HYPERBUS_open()
Parameters
handleAn HYPERBUS_Handle returned from an HYPERBUS_open()
Returns
Data BaseAddress of the HyperRam

◆ HYPERBUS_makeMemCfg()

static uint32_t HYPERBUS_makeMemCfg ( HYPERBUS_Handle  handle,
HYPERBUS_MemCfg pHyperBusMemCfg 
)
static

This function returns the memory configuration of the HYPERBUS Instance.

Precondition
HYPERBUS controller has been opened using HYPERBUS_open()
Parameters
handleAn HYPERBUS_Handle returned from an HYPERBUS_open()
pHyperBusMemCfgAn HYPERBUS_MemCfg to be filled
Returns
memory configuration of the HYPERBUS Instance

◆ HYPERBUS_makeMemTiming()

static uint32_t HYPERBUS_makeMemTiming ( HYPERBUS_Handle  handle,
HYPERBUS_MemTiming pHyperBusMemTiming 
)
static

This function returns the memory Timings of the HYPERBUS Instance.

Precondition
HYPERBUS controller has been opened using HYPERBUS_open()
Parameters
handleAn HYPERBUS_Handle returned from an HYPERBUS_open()
pHyperBusMemTimingAn HYPERBUS_MemTiming to be filled
Returns
memory Timings of the HYPERBUS Instance

Variable Documentation

◆ gHyperBusConfig

HYPERBUS_Config gHyperBusConfig[]
extern

Externally defined driver configuration array.

◆ gHyperBusConfigNum

uint32_t gHyperBusConfigNum
extern

Externally defined driver configuration array size.