Microchip® Advanced Software Framework

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
HSB BUS Matrix (HMATRIX)

Purpose

The HSB Bus Matrix implements a multi-layer bus structure that enables parallel access paths between multiple High Speed Bus (HSB) masters and slaves in a system, which increases the overall bandwidth.

Modules

 

Functions

void hmatrix_disable (void)
 Disables the HMatrix. More...
 
void hmatrix_enable (void)
 Enables the HMatrix. More...
 
void hmatrix_get_slave_priority (enum hmatrix_slave_id slave_id, hmatrix_prs *p_prio)
 Get priority for the specified slave access. More...
 
void hmatrix_init (void)
 Initializes the HMatrix. More...
 
void hmatrix_master_ch_set_config (const enum hmatrix_master_id master_id, struct hmatrix_master_ch_conf *const config)
 Writes an HMatrix Master channel configuration to the hardware module. More...
 
void hmatrix_set_slave_priority (enum hmatrix_slave_id slave_id, hmatrix_prs *p_prio)
 Set priority for the specified slave access. More...
 
void hmatrix_slave_ch_set_config (const enum hmatrix_slave_id slave_id, struct hmatrix_slave_ch_conf *const config)
 Writes an HMatrix Slave channel configuration to the hardware module. More...
 

void hmatrix_disable ( void  )

Disables the HMatrix.

Stop the clock mask for the hMatrix.

References SLEEPMGR_SLEEP_1, sleepmgr_unlock_mode(), and sysclk_disable_peripheral_clock().

Referenced by run_hmatrix_test_arbitration(), run_hmatrix_test_master(), and run_hmatrix_test_slave().

void hmatrix_enable ( void  )

Enables the HMatrix.

Setup the clock mask for the hMatrix.

References sleepmgr_lock_mode(), SLEEPMGR_SLEEP_1, and sysclk_enable_peripheral_clock().

Referenced by main(), run_hmatrix_test_arbitration(), run_hmatrix_test_master(), and run_hmatrix_test_slave().

void hmatrix_get_slave_priority ( enum hmatrix_slave_id  slave_id,
hmatrix_prs p_prio 
)

Get priority for the specified slave access.

Parameters
[in]slave_idSlave index.
[in]p_prioPointer to the priority register sets.
void hmatrix_init ( void  )

Initializes the HMatrix.

Initializes the HMatrix ready for use. This setup the clock mask for the hMatrix.

References sysclk_enable_peripheral_clock().

void hmatrix_master_ch_set_config ( const enum hmatrix_master_id  master_id,
struct hmatrix_master_ch_conf *const  config 
)

Writes an HMatrix Master channel configuration to the hardware module.

Writes out a given configuration of a HMatrix Master channel configuration to the hardware module.

Parameters
[in]master_idHMatrix Master channel to configure
[in]configConfiguration settings for the HMatrix Master

References hmatrix_master_ch_conf::burst_type.

Referenced by run_hmatrix_test_arbitration(), run_hmatrix_test_master(), and run_hmatrix_test_slave().

void hmatrix_set_slave_priority ( enum hmatrix_slave_id  slave_id,
hmatrix_prs p_prio 
)

Set priority for the specified slave access.

Parameters
[in]slave_idSlave index.
[in]p_prioPointer to the priority register sets.

Referenced by run_hmatrix_test_arbitration().

void hmatrix_slave_ch_set_config ( const enum hmatrix_slave_id  slave_id,
struct hmatrix_slave_ch_conf *const  config 
)

Writes an HMatrix Slave channel configuration to the hardware module.

Writes out a given configuration of a HMatrix Slave channel configuration to the hardware module.

Parameters
[in]slave_idHMatrix Slave channel to configure
[in]configConfiguration settings for the HMatrix Slave

References hmatrix_slave_ch_conf::arbitration_type, hmatrix_slave_ch_conf::def_master_type, hmatrix_slave_ch_conf::fixed_def_master_number, and hmatrix_slave_ch_conf::slot_cycle.

Referenced by main(), run_hmatrix_test_arbitration(), run_hmatrix_test_master(), and run_hmatrix_test_slave().