HPM SDK
HPMicro Software Development Kit
LOBS driver APIs

LOBS driver APIs. More...

Data Structures

struct  lobs_ctrl_config_t
 ctrl config structure More...
 
struct  lobs_two_group_mode_config_t
 two group mode config structure More...
 
struct  lobs_state_config_t
 two group mode config structure More...
 
struct  lobs_trace_data_t
 trace data structure More...
 

Macros

#define LOBS_UNLOCK_KEY   0xc5acce55u
 
#define LOBS_PIN_DO(x)   (x * 3)
 
#define LOBS_PIN_OE(x)   (x * 3 + 1)
 
#define LOBS_PIN_DI(x)   (x * 3 + 2)
 

Enumerations

enum  lobs_signal_group_t {
  lobs_signal_group_PA = 0 , lobs_signal_group_PB , lobs_signal_group_PC , lobs_signal_group_PD ,
  lobs_signal_group_PE , lobs_signal_group_PF , lobs_signal_group_PV , lobs_signal_group_PW ,
  lobs_signal_group_PX , lobs_signal_group_PY , lobs_signal_group_PZ
}
 signal group number More...
 
enum  lobs_group_mode_t { lobs_one_group_128_bits = 0 , lobs_two_group_8_bits }
 group mode selection More...
 
enum  lobs_sample_rate_t { lobs_sample_1_per_5 = 4 , lobs_sample_1_per_6 = 5 , lobs_sample_1_per_7 = 6 }
 sample rate selection More...
 
enum  lobs_burst_t { lobs_burst_4 = 3 , lobs_burst_8 = 5 , lobs_burst_16 = 7 }
 burst selection More...
 
enum  lobs_two_group_sel_t { lobs_two_group_1 = 0 , lobs_two_group_2 }
 two group selection More...
 
enum  lobs_state_sel_t {
  lobs_state_0 = 0 , lobs_state_1 , lobs_state_2 , lobs_state_3 ,
  lobs_state_4
}
 state selection More...
 
enum  lobs_cmp_mode_t { lobs_sig_cmp_mode = 0 , lobs_cnt_cmp_mode }
 compare mode More...
 
enum  lobs_state_chg_condition_t {
  lobs_cnt_matched = 0 , lobs_sig_equal_golden , lobs_sig_greater_golden , lobs_sig_greater_equal_golden ,
  lobs_sig_not_equal_golden , lobs_sig_less_golden , lobs_sig_less_equal_golden
}
 compare condition More...
 
enum  lobs_next_state_t {
  lobs_next_state_finish = 0x00 , lobs_next_state_0 = 0x01 , lobs_next_state_1 = 0x02 , lobs_next_state_2 = 0x04 ,
  lobs_next_state_3 = 0x08 , lobs_next_state_4 = 0x10
}
 next state More...
 

Functions

static void lobs_unlock (LOBS_Type *lobs)
 set lobs unlock More...
 
static void lobs_lock (LOBS_Type *lobs)
 set lobs lock More...
 
static void lobs_set_enable (LOBS_Type *lobs, bool enable)
 set lobs enable or disable More...
 
static void lobs_set_pre_trig_enable (LOBS_Type *lobs, bool enable)
 set lobs pre-trig enable or disable More...
 
static void lobs_set_state_enable (LOBS_Type *lobs, lobs_state_sel_t state, bool enable)
 set lobs state enable or disable More...
 
static uint32_t lobs_get_final_address (LOBS_Type *lobs)
 get lobs final address More...
 
static bool lobs_is_trace_finish (LOBS_Type *lobs)
 check lobs trace finish More...
 
static void lobs_clear_fifo_overflow_flag (LOBS_Type *lobs)
 clear lobs fifo overflow flag More...
 
void lobs_deinit (LOBS_Type *lobs)
 lobs deinit More...
 
void lobs_ctrl_config (LOBS_Type *lobs, lobs_ctrl_config_t *config)
 lobs control config More...
 
void lobs_two_group_mode_config (LOBS_Type *lobs, lobs_two_group_sel_t group, lobs_two_group_mode_config_t *config)
 lobs two group mode config More...
 
void lobs_state_config (LOBS_Type *lobs, lobs_state_sel_t state, lobs_state_config_t *config)
 lobs state config More...
 

Detailed Description

LOBS driver APIs.

Macro Definition Documentation

◆ LOBS_PIN_DI

#define LOBS_PIN_DI (   x)    (x * 3 + 2)

◆ LOBS_PIN_DO

#define LOBS_PIN_DO (   x)    (x * 3)

◆ LOBS_PIN_OE

#define LOBS_PIN_OE (   x)    (x * 3 + 1)

◆ LOBS_UNLOCK_KEY

#define LOBS_UNLOCK_KEY   0xc5acce55u

Enumeration Type Documentation

◆ lobs_burst_t

#include <drivers/inc/hpm_lobs_drv.h>

burst selection

Enumerator
lobs_burst_4 
lobs_burst_8 
lobs_burst_16 

◆ lobs_cmp_mode_t

#include <drivers/inc/hpm_lobs_drv.h>

compare mode

Enumerator
lobs_sig_cmp_mode 
lobs_cnt_cmp_mode 

◆ lobs_group_mode_t

#include <drivers/inc/hpm_lobs_drv.h>

group mode selection

Enumerator
lobs_one_group_128_bits 
lobs_two_group_8_bits 

◆ lobs_next_state_t

#include <drivers/inc/hpm_lobs_drv.h>

next state

Enumerator
lobs_next_state_finish 
lobs_next_state_0 
lobs_next_state_1 
lobs_next_state_2 
lobs_next_state_3 
lobs_next_state_4 

◆ lobs_sample_rate_t

#include <drivers/inc/hpm_lobs_drv.h>

sample rate selection

Enumerator
lobs_sample_1_per_5 
lobs_sample_1_per_6 
lobs_sample_1_per_7 

◆ lobs_signal_group_t

#include <drivers/inc/hpm_lobs_drv.h>

signal group number

Enumerator
lobs_signal_group_PA 
lobs_signal_group_PB 
lobs_signal_group_PC 
lobs_signal_group_PD 
lobs_signal_group_PE 
lobs_signal_group_PF 
lobs_signal_group_PV 
lobs_signal_group_PW 
lobs_signal_group_PX 
lobs_signal_group_PY 
lobs_signal_group_PZ 

◆ lobs_state_chg_condition_t

#include <drivers/inc/hpm_lobs_drv.h>

compare condition

Enumerator
lobs_cnt_matched 
lobs_sig_equal_golden 
lobs_sig_greater_golden 
lobs_sig_greater_equal_golden 
lobs_sig_not_equal_golden 
lobs_sig_less_golden 
lobs_sig_less_equal_golden 

◆ lobs_state_sel_t

#include <drivers/inc/hpm_lobs_drv.h>

state selection

Enumerator
lobs_state_0 
lobs_state_1 
lobs_state_2 
lobs_state_3 
lobs_state_4 

◆ lobs_two_group_sel_t

#include <drivers/inc/hpm_lobs_drv.h>

two group selection

Enumerator
lobs_two_group_1 
lobs_two_group_2 

Function Documentation

◆ lobs_clear_fifo_overflow_flag()

static void lobs_clear_fifo_overflow_flag ( LOBS_Type lobs)
inlinestatic

#include <drivers/inc/hpm_lobs_drv.h>

clear lobs fifo overflow flag

Parameters
[in]lobsLOBS base address

◆ lobs_ctrl_config()

void lobs_ctrl_config ( LOBS_Type lobs,
lobs_ctrl_config_t config 
)

#include <drivers/inc/hpm_lobs_drv.h>

lobs control config

Parameters
[in]lobsLOBS base address
[in]configcontrol config structure pointer

◆ lobs_deinit()

void lobs_deinit ( LOBS_Type lobs)

#include <drivers/inc/hpm_lobs_drv.h>

lobs deinit

Parameters
[in]lobsLOBS base address

◆ lobs_get_final_address()

static uint32_t lobs_get_final_address ( LOBS_Type lobs)
inlinestatic

#include <drivers/inc/hpm_lobs_drv.h>

get lobs final address

Parameters
[in]lobsLOBS base address
Returns
uint32_t trace final address

◆ lobs_is_trace_finish()

static bool lobs_is_trace_finish ( LOBS_Type lobs)
inlinestatic

#include <drivers/inc/hpm_lobs_drv.h>

check lobs trace finish

Parameters
[in]lobsLOBS base address
Returns
bool true - trace finish; false - trace not finish

◆ lobs_lock()

static void lobs_lock ( LOBS_Type lobs)
inlinestatic

#include <drivers/inc/hpm_lobs_drv.h>

set lobs lock

Parameters
[in]lobsLOBS base address

◆ lobs_set_enable()

static void lobs_set_enable ( LOBS_Type lobs,
bool  enable 
)
inlinestatic

#include <drivers/inc/hpm_lobs_drv.h>

set lobs enable or disable

Parameters
[in]lobsLOBS base address
[in]enabletrue - enable; false - disable.

◆ lobs_set_pre_trig_enable()

static void lobs_set_pre_trig_enable ( LOBS_Type lobs,
bool  enable 
)
inlinestatic

#include <drivers/inc/hpm_lobs_drv.h>

set lobs pre-trig enable or disable

Parameters
[in]lobsLOBS base address
[in]enabletrue - enable; false - disable.

◆ lobs_set_state_enable()

static void lobs_set_state_enable ( LOBS_Type lobs,
lobs_state_sel_t  state,
bool  enable 
)
inlinestatic

#include <drivers/inc/hpm_lobs_drv.h>

set lobs state enable or disable

Parameters
[in]lobsLOBS base address
[in]stateone of state, lobs_state_sel_t
[in]enabletrue - enable; false - disable.

◆ lobs_state_config()

void lobs_state_config ( LOBS_Type lobs,
lobs_state_sel_t  state,
lobs_state_config_t config 
)

#include <drivers/inc/hpm_lobs_drv.h>

lobs state config

Parameters
[in]lobsLOBS base address
[in]stateone of state, lobs_state_sel_t
[in]configstate config structure pointer

◆ lobs_two_group_mode_config()

void lobs_two_group_mode_config ( LOBS_Type lobs,
lobs_two_group_sel_t  group,
lobs_two_group_mode_config_t config 
)

#include <drivers/inc/hpm_lobs_drv.h>

lobs two group mode config

Parameters
[in]lobsLOBS base address
[in]groupone of the two group, lobs_two_group_sel_t
[in]configtwo group mode config structure pointer

◆ lobs_unlock()

static void lobs_unlock ( LOBS_Type lobs)
inlinestatic

#include <drivers/inc/hpm_lobs_drv.h>

set lobs unlock

Parameters
[in]lobsLOBS base address