Microchip® Advanced Software Framework

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Matrix (MATRIX)

Purpose

The Bus Matrix implements a multi-layer AHB that enables parallel access paths between multiple AHB masters and slaves in a system, which increases the overall bandwidth.

Macros

#define MATRIX   MATRIX0
 
#define MATRIX   MATRIX0
 
#define MATRIX   MATRIX0
 
#define MATRIX_WPMR_WPKEY_PASSWD   MATRIX_WPMR_WPKEY(0x4D4154U)
 

Functions

burst_type_t matrix_get_master_burst_type (uint32_t ul_id)
 Get undefined length burst type of the specified master. More...
 
uint32_t matrix_get_master_remap (void)
 Get bus matrix master remap. More...
 
uint32_t matrix_get_nandflash_cs (void)
 Get NAND Flash Chip Select configuration register. More...
 
arbitration_type_t matrix_get_slave_arbitration_type (uint32_t ul_id)
 Get slave arbitration type of the specified slave. More...
 
defaut_master_t matrix_get_slave_default_master_type (uint32_t ul_id)
 Get default master type of the specified slave. More...
 
uint32_t matrix_get_slave_fixed_default_master (uint32_t ul_id)
 Get fixed default master of the specified slave. More...
 
uint32_t matrix_get_slave_priority (uint32_t ul_id)
 Get priority for the specified slave access. More...
 
uint32_t matrix_get_slave_priority_b (uint32_t ul_id)
 Get priority for the specified slave access. More...
 
uint32_t matrix_get_slave_slot_cycle (uint32_t ul_id)
 Get slot cycle of the specified slave. More...
 
uint32_t matrix_get_system_io (void)
 Get system IO. More...
 
uint32_t matrix_get_writeprotect_status (void)
 Get write protect status. More...
 
void matrix_set_can0_addr (uint32_t base_addr)
 Set CAN0 DMA base address. More...
 
void matrix_set_can1_addr (uint32_t base_addr)
 Set CAN1 DMA base address. More...
 
void matrix_set_master_burst_type (uint32_t ul_id, burst_type_t burst_type)
 Set undefined length burst type of the specified master. More...
 
void matrix_set_master_remap (uint32_t ul_remap)
 Set bus matrix master remap. More...
 
void matrix_set_nandflash_cs (uint32_t ul_cs)
 Set NAND Flash Chip Select configuration register. More...
 
void matrix_set_slave_arbitration_type (uint32_t ul_id, arbitration_type_t type)
 Set slave arbitration type of the specified slave. More...
 
void matrix_set_slave_default_master_type (uint32_t ul_id, defaut_master_t type)
 Set default master type of the specified slave. More...
 
void matrix_set_slave_fixed_default_master (uint32_t ul_id, uint32_t ul_fixed_id)
 Set fixed default master of the specified slave. More...
 
void matrix_set_slave_priority (uint32_t ul_id, uint32_t ul_prio)
 Set priority for the specified slave access. More...
 
void matrix_set_slave_priority_b (uint32_t ul_id, uint32_t ul_prio_b)
 Set priority for the specified slave access. More...
 
void matrix_set_slave_slot_cycle (uint32_t ul_id, uint32_t ul_slot_cycle)
 Set slot cycle of the specified slave. More...
 
void matrix_set_system_io (uint32_t ul_io)
 Set system IO. More...
 
void matrix_set_usb_device (void)
 Set USB device mode. More...
 
void matrix_set_usb_host (void)
 Set USB device mode. More...
 
void matrix_set_writeprotect (uint32_t ul_enable)
 Enable or disable write protect of MATRIX registers. More...
 

#define MATRIX   MATRIX0
#define MATRIX   MATRIX0
#define MATRIX_WPMR_WPKEY_PASSWD   MATRIX_WPMR_WPKEY(0x4D4154U)

Referenced by matrix_set_writeprotect().

burst_type_t matrix_get_master_burst_type ( uint32_t  ul_id)

Get undefined length burst type of the specified master.

Parameters
ul_idMaster index.
Returns
Undefined length burst type.

References MATRIX.

uint32_t matrix_get_master_remap ( void  )

Get bus matrix master remap.

Returns
Bitmask OR of RCBx: 0 for disable, 1 for enable.

References MATRIX.

uint32_t matrix_get_nandflash_cs ( void  )

Get NAND Flash Chip Select configuration register.

Returns
Bitmask OR of SMC_NFCSx.

References MATRIX.

arbitration_type_t matrix_get_slave_arbitration_type ( uint32_t  ul_id)

Get slave arbitration type of the specified slave.

Parameters
ul_idSlave index.
Returns
Arbitration type.

References MATRIX.

defaut_master_t matrix_get_slave_default_master_type ( uint32_t  ul_id)

Get default master type of the specified slave.

Parameters
ul_idSlave index.
Returns
Default master type.

References MATRIX.

uint32_t matrix_get_slave_fixed_default_master ( uint32_t  ul_id)

Get fixed default master of the specified slave.

Parameters
ul_idSlave index.
Returns
Fixed default master index.

References MATRIX.

uint32_t matrix_get_slave_priority ( uint32_t  ul_id)

Get priority for the specified slave access.

Parameters
ul_idSlave index.
Returns
Bitmask OR of priorities of master x.

References MATRIX.

uint32_t matrix_get_slave_priority_b ( uint32_t  ul_id)

Get priority for the specified slave access.

Parameters
ul_idSlave index.
Returns
Bitmask OR of priorities of master x.

References MATRIX.

uint32_t matrix_get_slave_slot_cycle ( uint32_t  ul_id)

Get slot cycle of the specified slave.

Parameters
ul_idSlave index.
Returns
Number of slot cycle.

References MATRIX.

uint32_t matrix_get_system_io ( void  )

Get system IO.

Returns
Bitmask OR of SYSIOx.

References MATRIX.

Referenced by main().

uint32_t matrix_get_writeprotect_status ( void  )

Get write protect status.

Returns
Write protect status.

References MATRIX.

void matrix_set_can0_addr ( uint32_t  base_addr)

Set CAN0 DMA base address.

Parameters
base_addrthe 16-bit MSB of the CAN0 DMA base address.

References MATRIX.

void matrix_set_can1_addr ( uint32_t  base_addr)

Set CAN1 DMA base address.

Parameters
base_addrthe 16-bit MSB of the CAN1 DMA base address.

References MATRIX.

void matrix_set_master_burst_type ( uint32_t  ul_id,
burst_type_t  burst_type 
)

Set undefined length burst type of the specified master.

Parameters
ul_idMaster index.
burst_typeUndefined length burst type.

References MATRIX.

void matrix_set_master_remap ( uint32_t  ul_remap)

Set bus matrix master remap.

Parameters
ul_remapBitmask OR of RCBx: 0 for disable, 1 for enable.

References MATRIX.

void matrix_set_nandflash_cs ( uint32_t  ul_cs)

Set NAND Flash Chip Select configuration register.

Parameters
ul_csBitmask OR of SMC_NFCSx: 0 if NCSx is not assigned, 1 if NCSx is assigned.

References MATRIX.

void matrix_set_slave_arbitration_type ( uint32_t  ul_id,
arbitration_type_t  type 
)

Set slave arbitration type of the specified slave.

Parameters
ul_idSlave index.
typeArbitration type.

References MATRIX.

void matrix_set_slave_default_master_type ( uint32_t  ul_id,
defaut_master_t  type 
)

Set default master type of the specified slave.

Parameters
ul_idSlave index.
typeDefault master type.

References MATRIX.

void matrix_set_slave_fixed_default_master ( uint32_t  ul_id,
uint32_t  ul_fixed_id 
)

Set fixed default master of the specified slave.

Parameters
ul_idSlave index.
ul_fixed_idFixed default master index.

References MATRIX.

void matrix_set_slave_priority ( uint32_t  ul_id,
uint32_t  ul_prio 
)

Set priority for the specified slave access.

Parameters
ul_idSlave index.
ul_prioBitmask OR of priorities of master x.

References MATRIX.

void matrix_set_slave_priority_b ( uint32_t  ul_id,
uint32_t  ul_prio_b 
)

Set priority for the specified slave access.

Parameters
ul_idSlave index.
ul_prio_bBitmask OR of priorities of master x.

References MATRIX.

void matrix_set_slave_slot_cycle ( uint32_t  ul_id,
uint32_t  ul_slot_cycle 
)

Set slot cycle of the specified slave.

Parameters
ul_idSlave index.
ul_slot_cycleNumber of slot cycle.

References MATRIX.

void matrix_set_system_io ( uint32_t  ul_io)

Set system IO.

Parameters
ul_ioBitmask OR of SYSIOx.

References MATRIX.

Referenced by main().

void matrix_set_usb_device ( void  )

Set USB device mode.

References MATRIX.

void matrix_set_usb_host ( void  )

Set USB device mode.

References MATRIX.

void matrix_set_writeprotect ( uint32_t  ul_enable)

Enable or disable write protect of MATRIX registers.

Parameters
ul_enable1 to enable, 0 to disable.

References MATRIX, and MATRIX_WPMR_WPKEY_PASSWD.