![]() |
MCUXpresso SDK API Reference Manual
Rev 2.16.000
NXP Semiconductors
|
The MCUXpresso SDK provides a peripheral driver for the Smart External DRAM Controller block of MCUXpresso SDK devices.
The SEMC Initialize is to initialize for common configure: gate the SEMC clock, configure IOMUX, and queue weight setting. The SEMC Deinitialize is to ungate the clock and disable SEMC module.
The interrupt and disable operation for SEMC.
This group is mainly provide NAND/NOR memory access API which is through IP bus/ IP command access. Since the AXI access is directly read/write is so easy, so the AXI read/write part is not provided in SEMC.
Data Structures | |
struct | _semc_sdram_config |
SEMC SDRAM configuration structure. More... | |
struct | _semc_nand_timing_config |
SEMC NAND device timing configuration structure. More... | |
struct | _semc_nand_config |
SEMC NAND configuration structure. More... | |
struct | _semc_nor_config |
SEMC NOR configuration structure. More... | |
struct | _semc_sram_config |
SEMC SRAM configuration structure. More... | |
struct | _semc_dbi_config |
SEMC DBI configuration structure. More... | |
struct | _semc_queuea_weight_struct |
SEMC AXI queue a weight setting structure. More... | |
union | _semc_queuea_weight |
SEMC AXI queue a weight setting union. More... | |
struct | _semc_queueb_weight_struct |
SEMC AXI queue b weight setting structure. More... | |
union | _semc_queueb_weight |
SEMC AXI queue b weight setting union. More... | |
struct | _semc_axi_queueweight |
SEMC AXI queue weight setting. More... | |
struct | _semc_config_t |
SEMC configuration structure. More... | |
Driver version | |
#define | FSL_SEMC_DRIVER_VERSION (MAKE_VERSION(2, 7, 0)) |
SEMC driver version. More... | |
SEMC Initialization and De-initialization | |
void | SEMC_GetDefaultConfig (semc_config_t *config) |
Gets the SEMC default basic configuration structure. More... | |
void | SEMC_Init (SEMC_Type *base, semc_config_t *configure) |
Initializes SEMC. More... | |
void | SEMC_Deinit (SEMC_Type *base) |
Deinitializes the SEMC module and gates the clock. More... | |
SEMC Configuration Operation For Each Memory Type | |
status_t | SEMC_ConfigureSDRAM (SEMC_Type *base, semc_sdram_cs_t cs, semc_sdram_config_t *config, uint32_t clkSrc_Hz) |
Configures SDRAM controller in SEMC. More... | |
status_t | SEMC_ConfigureNAND (SEMC_Type *base, semc_nand_config_t *config, uint32_t clkSrc_Hz) |
Configures NAND controller in SEMC. More... | |
status_t | SEMC_ConfigureNOR (SEMC_Type *base, semc_nor_config_t *config, uint32_t clkSrc_Hz) |
Configures NOR controller in SEMC. More... | |
status_t | SEMC_ConfigureSRAMWithChipSelection (SEMC_Type *base, semc_sram_cs_t cs, semc_sram_config_t *config, uint32_t clkSrc_Hz) |
Configures SRAM controller in SEMC. More... | |
status_t | SEMC_ConfigureSRAM (SEMC_Type *base, semc_sram_config_t *config, uint32_t clkSrc_Hz) |
Configures SRAM controller in SEMC. More... | |
status_t | SEMC_ConfigureDBI (SEMC_Type *base, semc_dbi_config_t *config, uint32_t clkSrc_Hz) |
Configures DBI controller in SEMC. More... | |
SEMC Interrupt Operation | |
static void | SEMC_EnableInterrupts (SEMC_Type *base, uint32_t mask) |
Enables the SEMC interrupt. More... | |
static void | SEMC_DisableInterrupts (SEMC_Type *base, uint32_t mask) |
Disables the SEMC interrupt. More... | |
static bool | SEMC_GetStatusFlag (SEMC_Type *base) |
Gets the SEMC status. More... | |
static void | SEMC_ClearStatusFlags (SEMC_Type *base, uint32_t mask) |
Clears the SEMC status flag state. More... | |
SEMC Memory Access Operation | |
static bool | SEMC_IsInIdle (SEMC_Type *base) |
Check if SEMC is in idle. More... | |
status_t | SEMC_SendIPCommand (SEMC_Type *base, semc_mem_type_t memType, uint32_t address, uint32_t command, uint32_t write, uint32_t *read) |
SEMC IP command access. More... | |
static uint16_t | SEMC_BuildNandIPCommand (uint8_t userCommand, semc_ipcmd_nand_addrmode_t addrMode, semc_ipcmd_nand_cmdmode_t cmdMode) |
Build SEMC IP command for NAND. More... | |
static bool | SEMC_IsNandReady (SEMC_Type *base) |
Check if the NAND device is ready. More... | |
status_t | SEMC_IPCommandNandWrite (SEMC_Type *base, uint32_t address, uint8_t *data, uint32_t size_bytes) |
SEMC NAND device memory write through IP command. More... | |
status_t | SEMC_IPCommandNandRead (SEMC_Type *base, uint32_t address, uint8_t *data, uint32_t size_bytes) |
SEMC NAND device memory read through IP command. More... | |
status_t | SEMC_IPCommandNorWrite (SEMC_Type *base, uint32_t address, uint8_t *data, uint32_t size_bytes) |
SEMC NOR device memory write through IP command. More... | |
status_t | SEMC_IPCommandNorRead (SEMC_Type *base, uint32_t address, uint8_t *data, uint32_t size_bytes) |
SEMC NOR device memory read through IP command. More... | |
struct _semc_sdram_config |
Data Fields | |
semc_iomux_pin | csxPinMux |
CS pin mux. More... | |
uint32_t | address |
The base address. More... | |
uint32_t | memsize_kbytes |
The memory size in unit of kbytes. More... | |
smec_port_size_t | portSize |
Port size. More... | |
sem_sdram_burst_len_t | burstLen |
Burst length. More... | |
semc_sdram_column_bit_num_t | columnAddrBitNum |
Column address bit number. More... | |
semc_caslatency_t | casLatency |
CAS latency. More... | |
uint8_t | tPrecharge2Act_Ns |
Precharge to active wait time in unit of nanosecond. More... | |
uint8_t | tAct2ReadWrite_Ns |
Act to read/write wait time in unit of nanosecond. More... | |
uint8_t | tRefreshRecovery_Ns |
Refresh recovery time in unit of nanosecond. More... | |
uint8_t | tWriteRecovery_Ns |
write recovery time in unit of nanosecond. More... | |
uint8_t | tCkeOff_Ns |
CKE off minimum time in unit of nanosecond. More... | |
uint8_t | tAct2Prechage_Ns |
Active to precharge in unit of nanosecond. More... | |
uint8_t | tSelfRefRecovery_Ns |
Self refresh recovery time in unit of nanosecond. More... | |
uint8_t | tRefresh2Refresh_Ns |
Refresh to refresh wait time in unit of nanosecond. More... | |
uint8_t | tAct2Act_Ns |
Active to active wait time in unit of nanosecond. More... | |
uint32_t | tPrescalePeriod_Ns |
Prescaler timer period should not be larger than 256 * 16 * clock cycle. More... | |
uint32_t | tIdleTimeout_Ns |
Idle timeout in unit of prescale time period. More... | |
uint32_t | refreshPeriod_nsPerRow |
Refresh timer period like 64ms * 1000000/8192 . More... | |
uint32_t | refreshUrgThreshold |
Refresh urgent threshold. More... | |
uint8_t | refreshBurstLen |
Refresh burst length. More... | |
uint8_t | delayChain |
Delay chain, which adds delays on DQS clock to compensate timings while DQS is faster than read data. More... | |
uint8_t | autofreshTimes |
Auto Refresh cycles times. More... | |
semc_iomux_pin _semc_sdram_config::csxPinMux |
The kSEMC_MUXA8 is not valid in sdram pin mux setting.
uint32_t _semc_sdram_config::address |
uint32_t _semc_sdram_config::memsize_kbytes |
smec_port_size_t _semc_sdram_config::portSize |
sem_sdram_burst_len_t _semc_sdram_config::burstLen |
semc_sdram_column_bit_num_t _semc_sdram_config::columnAddrBitNum |
semc_caslatency_t _semc_sdram_config::casLatency |
uint8_t _semc_sdram_config::tPrecharge2Act_Ns |
uint8_t _semc_sdram_config::tAct2ReadWrite_Ns |
uint8_t _semc_sdram_config::tRefreshRecovery_Ns |
uint8_t _semc_sdram_config::tWriteRecovery_Ns |
uint8_t _semc_sdram_config::tCkeOff_Ns |
uint8_t _semc_sdram_config::tAct2Prechage_Ns |
uint8_t _semc_sdram_config::tSelfRefRecovery_Ns |
uint8_t _semc_sdram_config::tRefresh2Refresh_Ns |
uint8_t _semc_sdram_config::tAct2Act_Ns |
uint32_t _semc_sdram_config::tPrescalePeriod_Ns |
uint32_t _semc_sdram_config::tIdleTimeout_Ns |
uint32_t _semc_sdram_config::refreshPeriod_nsPerRow |
uint32_t _semc_sdram_config::refreshUrgThreshold |
uint8_t _semc_sdram_config::refreshBurstLen |
uint8_t _semc_sdram_config::delayChain |
uint8_t _semc_sdram_config::autofreshTimes |
struct _semc_nand_timing_config |
Data Fields | |
uint8_t | tCeSetup_Ns |
CE setup time: tCS. More... | |
uint8_t | tCeHold_Ns |
CE hold time: tCH. More... | |
uint8_t | tCeInterval_Ns |
CE interval time:tCEITV. More... | |
uint8_t | tWeLow_Ns |
WE low time: tWP. More... | |
uint8_t | tWeHigh_Ns |
WE high time: tWH. More... | |
uint8_t | tReLow_Ns |
RE low time: tRP. More... | |
uint8_t | tReHigh_Ns |
RE high time: tREH. More... | |
uint8_t | tTurnAround_Ns |
Turnaround time for async mode: tTA. More... | |
uint8_t | tWehigh2Relow_Ns |
WE# high to RE# wait time: tWHR. More... | |
uint8_t | tRehigh2Welow_Ns |
RE# high to WE# low wait time: tRHW. More... | |
uint8_t | tAle2WriteStart_Ns |
ALE to write start wait time: tADL. More... | |
uint8_t | tReady2Relow_Ns |
Ready to RE# low min wait time: tRR. More... | |
uint8_t | tWehigh2Busy_Ns |
WE# high to busy wait time: tWB. More... | |
uint8_t _semc_nand_timing_config::tCeSetup_Ns |
uint8_t _semc_nand_timing_config::tCeHold_Ns |
uint8_t _semc_nand_timing_config::tCeInterval_Ns |
uint8_t _semc_nand_timing_config::tWeLow_Ns |
uint8_t _semc_nand_timing_config::tWeHigh_Ns |
uint8_t _semc_nand_timing_config::tReLow_Ns |
uint8_t _semc_nand_timing_config::tReHigh_Ns |
uint8_t _semc_nand_timing_config::tTurnAround_Ns |
uint8_t _semc_nand_timing_config::tWehigh2Relow_Ns |
uint8_t _semc_nand_timing_config::tRehigh2Welow_Ns |
uint8_t _semc_nand_timing_config::tAle2WriteStart_Ns |
uint8_t _semc_nand_timing_config::tReady2Relow_Ns |
uint8_t _semc_nand_timing_config::tWehigh2Busy_Ns |
struct _semc_nand_config |
Data Fields | |
semc_iomux_pin | cePinMux |
The CE pin mux setting. More... | |
uint32_t | axiAddress |
The base address for AXI nand. More... | |
uint32_t | axiMemsize_kbytes |
The memory size in unit of kbytes for AXI nand. More... | |
uint32_t | ipgAddress |
The base address for IPG nand . More... | |
uint32_t | ipgMemsize_kbytes |
The memory size in unit of kbytes for IPG nand. More... | |
semc_rdy_polarity_t | rdyactivePolarity |
Wait ready polarity. More... | |
bool | edoModeEnabled |
EDO mode enabled. More... | |
semc_nand_column_bit_num_t | columnAddrBitNum |
Column address bit number. More... | |
semc_nand_address_option_t | arrayAddrOption |
Address option. More... | |
sem_nand_burst_len_t | burstLen |
Burst length. More... | |
smec_port_size_t | portSize |
Port size. More... | |
semc_nand_timing_config_t * | timingConfig |
SEMC nand timing configuration. More... | |
semc_iomux_pin _semc_nand_config::cePinMux |
The kSEMC_MUXRDY is not valid for CE pin setting.
uint32_t _semc_nand_config::axiAddress |
uint32_t _semc_nand_config::axiMemsize_kbytes |
uint32_t _semc_nand_config::ipgAddress |
uint32_t _semc_nand_config::ipgMemsize_kbytes |
semc_rdy_polarity_t _semc_nand_config::rdyactivePolarity |
bool _semc_nand_config::edoModeEnabled |
semc_nand_column_bit_num_t _semc_nand_config::columnAddrBitNum |
semc_nand_address_option_t _semc_nand_config::arrayAddrOption |
sem_nand_burst_len_t _semc_nand_config::burstLen |
smec_port_size_t _semc_nand_config::portSize |
semc_nand_timing_config_t* _semc_nand_config::timingConfig |
struct _semc_nor_config |
Data Fields | |
semc_iomux_pin | cePinMux |
The CE# pin mux setting. More... | |
semc_iomux_nora27_pin | addr27 |
The Addr bit 27 pin mux setting. More... | |
uint32_t | address |
The base address. More... | |
uint32_t | memsize_kbytes |
The memory size in unit of kbytes. More... | |
uint8_t | addrPortWidth |
The address port width. More... | |
semc_rdy_polarity_t | rdyactivePolarity |
Wait ready polarity. More... | |
semc_adv_polarity_t | advActivePolarity |
ADV# polarity. More... | |
semc_norsram_column_bit_num_t | columnAddrBitNum |
Column address bit number. More... | |
semc_addr_mode_t | addrMode |
Address mode. More... | |
sem_norsram_burst_len_t | burstLen |
Burst length. More... | |
smec_port_size_t | portSize |
Port size. More... | |
uint8_t | tCeSetup_Ns |
The CE setup time. More... | |
uint8_t | tCeHold_Ns |
The CE hold time. More... | |
uint8_t | tCeInterval_Ns |
CE interval minimum time. More... | |
uint8_t | tAddrSetup_Ns |
The address setup time. More... | |
uint8_t | tAddrHold_Ns |
The address hold time. More... | |
uint8_t | tWeLow_Ns |
WE low time for async mode. More... | |
uint8_t | tWeHigh_Ns |
WE high time for async mode. More... | |
uint8_t | tReLow_Ns |
RE low time for async mode. More... | |
uint8_t | tReHigh_Ns |
RE high time for async mode. More... | |
uint8_t | tTurnAround_Ns |
Turnaround time for async mode. More... | |
uint8_t | tAddr2WriteHold_Ns |
Address to write data hold time for async mode. More... | |
uint8_t | latencyCount |
Latency count for sync mode. More... | |
uint8_t | readCycle |
Read cycle time for sync mode. More... | |
uint8_t | delayChain |
Delay chain, which adds delays on DQS clock to compensate timings while DQS is faster than read data. More... | |
semc_iomux_pin _semc_nor_config::cePinMux |
semc_iomux_nora27_pin _semc_nor_config::addr27 |
uint32_t _semc_nor_config::address |
uint32_t _semc_nor_config::memsize_kbytes |
uint8_t _semc_nor_config::addrPortWidth |
semc_rdy_polarity_t _semc_nor_config::rdyactivePolarity |
semc_adv_polarity_t _semc_nor_config::advActivePolarity |
semc_norsram_column_bit_num_t _semc_nor_config::columnAddrBitNum |
semc_addr_mode_t _semc_nor_config::addrMode |
sem_norsram_burst_len_t _semc_nor_config::burstLen |
smec_port_size_t _semc_nor_config::portSize |
uint8_t _semc_nor_config::tCeSetup_Ns |
uint8_t _semc_nor_config::tCeHold_Ns |
uint8_t _semc_nor_config::tCeInterval_Ns |
uint8_t _semc_nor_config::tAddrSetup_Ns |
uint8_t _semc_nor_config::tAddrHold_Ns |
uint8_t _semc_nor_config::tWeLow_Ns |
uint8_t _semc_nor_config::tWeHigh_Ns |
uint8_t _semc_nor_config::tReLow_Ns |
uint8_t _semc_nor_config::tReHigh_Ns |
uint8_t _semc_nor_config::tTurnAround_Ns |
uint8_t _semc_nor_config::tAddr2WriteHold_Ns |
uint8_t _semc_nor_config::latencyCount |
uint8_t _semc_nor_config::readCycle |
uint8_t _semc_nor_config::delayChain |
struct _semc_sram_config |
Data Fields | |
semc_iomux_pin | cePinMux |
The CE# pin mux setting. More... | |
semc_iomux_nora27_pin | addr27 |
The Addr bit 27 pin mux setting. More... | |
uint32_t | address |
The base address. More... | |
uint32_t | memsize_kbytes |
The memory size in unit of kbytes. More... | |
uint8_t | addrPortWidth |
The address port width. More... | |
semc_adv_polarity_t | advActivePolarity |
ADV# polarity 1: active high, 0: active low. More... | |
semc_addr_mode_t | addrMode |
Address mode. More... | |
sem_norsram_burst_len_t | burstLen |
Burst length. More... | |
smec_port_size_t | portSize |
Port size. More... | |
semc_sync_mode_t | syncMode |
Sync mode. More... | |
bool | waitEnable |
Wait enable. More... | |
uint8_t | waitSample |
Wait sample. More... | |
semc_adv_level_control_t | advLevelCtrl |
ADV# level control during address hold state, 1: low, 0: high. More... | |
uint8_t | tCeSetup_Ns |
The CE setup time. More... | |
uint8_t | tCeHold_Ns |
The CE hold time. More... | |
uint8_t | tCeInterval_Ns |
CE interval minimum time. More... | |
uint8_t | readHoldTime_Ns |
read hold time. More... | |
uint8_t | tAddrSetup_Ns |
The address setup time. More... | |
uint8_t | tAddrHold_Ns |
The address hold time. More... | |
uint8_t | tWeLow_Ns |
WE low time for async mode. More... | |
uint8_t | tWeHigh_Ns |
WE high time for async mode. More... | |
uint8_t | tReLow_Ns |
RE low time for async mode. More... | |
uint8_t | tReHigh_Ns |
RE high time for async mode. More... | |
uint8_t | tTurnAround_Ns |
Turnaround time for async mode. More... | |
uint8_t | tAddr2WriteHold_Ns |
Address to write data hold time for async mode. More... | |
uint8_t | tWriteSetup_Ns |
Write data setup time for sync mode. More... | |
uint8_t | tWriteHold_Ns |
Write hold time for sync mode. More... | |
uint8_t | latencyCount |
Latency count for sync mode. More... | |
uint8_t | readCycle |
Read cycle time for sync mode. More... | |
uint8_t | delayChain |
Delay chain, which adds delays on DQS clock to compensate timings while DQS is faster than read data. More... | |
semc_iomux_pin _semc_sram_config::cePinMux |
semc_iomux_nora27_pin _semc_sram_config::addr27 |
uint32_t _semc_sram_config::address |
uint32_t _semc_sram_config::memsize_kbytes |
uint8_t _semc_sram_config::addrPortWidth |
semc_adv_polarity_t _semc_sram_config::advActivePolarity |
semc_addr_mode_t _semc_sram_config::addrMode |
sem_norsram_burst_len_t _semc_sram_config::burstLen |
smec_port_size_t _semc_sram_config::portSize |
semc_sync_mode_t _semc_sram_config::syncMode |
bool _semc_sram_config::waitEnable |
uint8_t _semc_sram_config::waitSample |
semc_adv_level_control_t _semc_sram_config::advLevelCtrl |
uint8_t _semc_sram_config::tCeSetup_Ns |
uint8_t _semc_sram_config::tCeHold_Ns |
uint8_t _semc_sram_config::tCeInterval_Ns |
uint8_t _semc_sram_config::readHoldTime_Ns |
uint8_t _semc_sram_config::tAddrSetup_Ns |
uint8_t _semc_sram_config::tAddrHold_Ns |
uint8_t _semc_sram_config::tWeLow_Ns |
uint8_t _semc_sram_config::tWeHigh_Ns |
uint8_t _semc_sram_config::tReLow_Ns |
uint8_t _semc_sram_config::tReHigh_Ns |
uint8_t _semc_sram_config::tTurnAround_Ns |
uint8_t _semc_sram_config::tAddr2WriteHold_Ns |
uint8_t _semc_sram_config::tWriteSetup_Ns |
uint8_t _semc_sram_config::tWriteHold_Ns |
uint8_t _semc_sram_config::latencyCount |
uint8_t _semc_sram_config::readCycle |
uint8_t _semc_sram_config::delayChain |
struct _semc_dbi_config |
Data Fields | |
semc_iomux_pin | csxPinMux |
The CE# pin mux. More... | |
uint32_t | address |
The base address. More... | |
uint32_t | memsize_kbytes |
The memory size in unit of 4kbytes. More... | |
semc_dbi_column_bit_num_t | columnAddrBitNum |
Column address bit number. More... | |
sem_dbi_burst_len_t | burstLen |
Burst length. More... | |
smec_port_size_t | portSize |
Port size. More... | |
uint8_t | tCsxSetup_Ns |
The CSX setup time. More... | |
uint8_t | tCsxHold_Ns |
The CSX hold time. More... | |
uint8_t | tWexLow_Ns |
WEX low time. More... | |
uint8_t | tWexHigh_Ns |
WEX high time. More... | |
uint8_t | tRdxLow_Ns |
RDX low time. More... | |
uint8_t | tRdxHigh_Ns |
RDX high time. More... | |
uint8_t | tCsxInterval_Ns |
Write data setup time. More... | |
semc_iomux_pin _semc_dbi_config::csxPinMux |
uint32_t _semc_dbi_config::address |
uint32_t _semc_dbi_config::memsize_kbytes |
semc_dbi_column_bit_num_t _semc_dbi_config::columnAddrBitNum |
sem_dbi_burst_len_t _semc_dbi_config::burstLen |
smec_port_size_t _semc_dbi_config::portSize |
uint8_t _semc_dbi_config::tCsxSetup_Ns |
uint8_t _semc_dbi_config::tCsxHold_Ns |
uint8_t _semc_dbi_config::tWexLow_Ns |
uint8_t _semc_dbi_config::tWexHigh_Ns |
uint8_t _semc_dbi_config::tRdxLow_Ns |
uint8_t _semc_dbi_config::tRdxHigh_Ns |
uint8_t _semc_dbi_config::tCsxInterval_Ns |
struct _semc_queuea_weight_struct |
Data Fields | |
uint32_t | qos: 4 |
weight of qos for queue 0 . More... | |
uint32_t | aging: 4 |
weight of aging for queue 0. More... | |
uint32_t | slaveHitNoswitch: 8 |
weight of read/write no switch for queue 0 . More... | |
uint32_t | slaveHitSwitch: 8 |
weight of read/write switch for queue 0. More... | |
uint32_t _semc_queuea_weight_struct::qos |
uint32_t _semc_queuea_weight_struct::aging |
uint32_t _semc_queuea_weight_struct::slaveHitNoswitch |
uint32_t _semc_queuea_weight_struct::slaveHitSwitch |
union _semc_queuea_weight |
Data Fields | |
semc_queuea_weight_struct_t | queueaConfig |
Structure configuration for queueA. More... | |
uint32_t | queueaValue |
Configuration value for queueA which could directly write to the reg. More... | |
semc_queuea_weight_struct_t _semc_queuea_weight::queueaConfig |
uint32_t _semc_queuea_weight::queueaValue |
struct _semc_queueb_weight_struct |
Data Fields | |
uint32_t | qos: 4 |
weight of qos for queue 1. More... | |
uint32_t | aging: 4 |
weight of aging for queue 1. More... | |
uint32_t | weightPagehit: 8 |
weight of page hit for queue 1 only . More... | |
uint32_t | slaveHitNoswitch: 8 |
weight of read/write no switch for queue 1. More... | |
uint32_t | bankRotation: 8 |
weight of bank rotation for queue 1 only . More... | |
uint32_t _semc_queueb_weight_struct::qos |
uint32_t _semc_queueb_weight_struct::aging |
uint32_t _semc_queueb_weight_struct::weightPagehit |
uint32_t _semc_queueb_weight_struct::slaveHitNoswitch |
uint32_t _semc_queueb_weight_struct::bankRotation |
union _semc_queueb_weight |
Data Fields | |
semc_queueb_weight_struct_t | queuebConfig |
Structure configuration for queueB. More... | |
uint32_t | queuebValue |
Configuration value for queueB which could directly write to the reg. More... | |
semc_queueb_weight_struct_t _semc_queueb_weight::queuebConfig |
uint32_t _semc_queueb_weight::queuebValue |
struct _semc_axi_queueweight |
Data Fields | |
bool | queueaEnable |
Enable queue a. More... | |
semc_queuea_weight_t | queueaWeight |
Weight settings for queue a. More... | |
bool | queuebEnable |
Enable queue b. More... | |
semc_queueb_weight_t | queuebWeight |
Weight settings for queue b. More... | |
bool _semc_axi_queueweight::queueaEnable |
semc_queuea_weight_t _semc_axi_queueweight::queueaWeight |
bool _semc_axi_queueweight::queuebEnable |
semc_queueb_weight_t _semc_axi_queueweight::queuebWeight |
struct _semc_config_t |
busTimeoutCycles: when busTimeoutCycles is zero, the bus timeout cycle is 255*1024. otherwise the bus timeout cycles is busTimeoutCycles*1024. cmdTimeoutCycles: is used for command execution timeout cycles. it's similar to the busTimeoutCycles.
Data Fields | |
semc_dqs_mode_t | dqsMode |
Dummy read strobe mode: use enum in "semc_dqs_mode_t". More... | |
uint8_t | cmdTimeoutCycles |
Command execution timeout cycles. More... | |
uint8_t | busTimeoutCycles |
Bus timeout cycles. More... | |
semc_axi_queueweight_t | queueWeight |
AXI queue weight. More... | |
semc_dqs_mode_t _semc_config_t::dqsMode |
uint8_t _semc_config_t::cmdTimeoutCycles |
uint8_t _semc_config_t::busTimeoutCycles |
semc_axi_queueweight_t _semc_config_t::queueWeight |
#define FSL_SEMC_DRIVER_VERSION (MAKE_VERSION(2, 7, 0)) |
typedef enum _semc_mem_type semc_mem_type_t |
typedef enum _semc_waitready_polarity semc_waitready_polarity_t |
typedef enum _semc_sdram_cs semc_sdram_cs_t |
typedef enum _semc_sram_cs semc_sram_cs_t |
typedef enum _semc_nand_access_type semc_nand_access_type_t |
typedef enum _semc_interrupt_enable semc_interrupt_enable_t |
typedef enum _semc_ipcmd_datasize semc_ipcmd_datasize_t |
typedef enum _semc_refresh_time semc_refresh_time_t |
typedef enum _semc_sdram_column_bit_num semc_sdram_column_bit_num_t |
typedef enum _semc_sdram_burst_len sem_sdram_burst_len_t |
typedef enum _semc_nand_column_bit_num semc_nand_column_bit_num_t |
typedef enum _semc_nand_burst_len sem_nand_burst_len_t |
typedef enum _semc_norsram_burst_len sem_norsram_burst_len_t |
typedef enum _semc_dbi_column_bit_num semc_dbi_column_bit_num_t |
typedef enum _semc_dbi_burst_len sem_dbi_burst_len_t |
typedef enum _semc_iomux_pin semc_iomux_pin |
typedef enum _semc_iomux_nora27_pin semc_iomux_nora27_pin |
typedef enum _semc_port_size smec_port_size_t |
typedef enum _semc_addr_mode semc_addr_mode_t |
typedef enum _semc_dqs_mode semc_dqs_mode_t |
typedef enum _semc_adv_polarity semc_adv_polarity_t |
typedef enum _semc_sync_mode semc_sync_mode_t |
typedef enum _semc_adv_level_control semc_adv_level_control_t |
typedef enum _semc_rdy_polarity semc_rdy_polarity_t |
typedef enum _semc_ipcmd_nand_addrmode semc_ipcmd_nand_addrmode_t |
typedef enum _semc_ipcmd_nand_cmdmode semc_ipcmd_nand_cmdmode_t |
typedef enum _semc_nand_address_option semc_nand_address_option_t |
typedef enum _semc_ipcmd_nor_dbi semc_ipcmd_nor_dbi_t |
typedef enum _semc_ipcmd_sram semc_ipcmd_sram_t |
typedef enum _semc_ipcmd_sdram semc_ipcmd_sdram_t |
typedef struct _semc_sdram_config semc_sdram_config_t |
typedef struct _semc_nand_timing_config semc_nand_timing_config_t |
typedef struct _semc_nand_config semc_nand_config_t |
typedef struct _semc_nor_config semc_nor_config_t |
typedef struct _semc_sram_config semc_sram_config_t |
typedef struct _semc_dbi_config semc_dbi_config_t |
typedef struct _semc_queuea_weight_struct semc_queuea_weight_struct_t |
typedef union _semc_queuea_weight semc_queuea_weight_t |
typedef struct _semc_queueb_weight_struct semc_queueb_weight_struct_t |
typedef union _semc_queueb_weight semc_queueb_weight_t |
typedef struct _semc_axi_queueweight semc_axi_queueweight_t |
typedef struct _semc_config_t semc_config_t |
busTimeoutCycles: when busTimeoutCycles is zero, the bus timeout cycle is 255*1024. otherwise the bus timeout cycles is busTimeoutCycles*1024. cmdTimeoutCycles: is used for command execution timeout cycles. it's similar to the busTimeoutCycles.
anonymous enum |
enum _semc_mem_type |
enum _semc_sdram_cs |
enum _semc_sram_cs |
enum _semc_ipcmd_datasize |
enum _semc_refresh_time |
enum _semc_caslatency |
enum _semc_nand_burst_len |
enum _semc_dbi_burst_len |
enum _semc_iomux_pin |
enum _semc_port_size |
enum _semc_addr_mode |
enum _semc_dqs_mode |
enum _semc_adv_polarity |
enum _semc_sync_mode |
enum _semc_rdy_polarity |
enum _semc_ipcmd_nor_dbi |
enum _semc_ipcmd_sram |
enum _semc_ipcmd_sdram |
void SEMC_GetDefaultConfig | ( | semc_config_t * | config | ) |
The purpose of this API is to get the default SEMC configure structure for SEMC_Init(). User may use the initialized structure unchanged in SEMC_Init(), or modify some fields of the structure before calling SEMC_Init(). Example:
config | The SEMC configuration structure pointer. |
void SEMC_Init | ( | SEMC_Type * | base, |
semc_config_t * | configure | ||
) |
This function ungates the SEMC clock and initializes SEMC. This function must be called before calling any other SEMC driver functions.
base | SEMC peripheral base address. |
configure | The SEMC configuration structure pointer. |
void SEMC_Deinit | ( | SEMC_Type * | base | ) |
This function gates the SEMC clock. As a result, the SEMC module doesn't work after calling this function, for some IDE, calling this API may cause the next downloading operation failed. so, please call this API cautiously. Additional, users can using "#define FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL (1)" to disable the clock control operation in drivers.
base | SEMC peripheral base address. |
status_t SEMC_ConfigureSDRAM | ( | SEMC_Type * | base, |
semc_sdram_cs_t | cs, | ||
semc_sdram_config_t * | config, | ||
uint32_t | clkSrc_Hz | ||
) |
base | SEMC peripheral base address. |
cs | The chip selection. |
config | The sdram configuration. |
clkSrc_Hz | The SEMC clock frequency. |
status_t SEMC_ConfigureNAND | ( | SEMC_Type * | base, |
semc_nand_config_t * | config, | ||
uint32_t | clkSrc_Hz | ||
) |
base | SEMC peripheral base address. |
config | The nand configuration. |
clkSrc_Hz | The SEMC clock frequency. |
status_t SEMC_ConfigureNOR | ( | SEMC_Type * | base, |
semc_nor_config_t * | config, | ||
uint32_t | clkSrc_Hz | ||
) |
base | SEMC peripheral base address. |
config | The nor configuration. |
clkSrc_Hz | The SEMC clock frequency. |
status_t SEMC_ConfigureSRAMWithChipSelection | ( | SEMC_Type * | base, |
semc_sram_cs_t | cs, | ||
semc_sram_config_t * | config, | ||
uint32_t | clkSrc_Hz | ||
) |
base | SEMC peripheral base address. |
cs | The chip selection. |
config | The sram configuration. |
clkSrc_Hz | The SEMC clock frequency. |
status_t SEMC_ConfigureSRAM | ( | SEMC_Type * | base, |
semc_sram_config_t * | config, | ||
uint32_t | clkSrc_Hz | ||
) |
base | SEMC peripheral base address. |
config | The sram configuration. |
clkSrc_Hz | The SEMC clock frequency. |
status_t SEMC_ConfigureDBI | ( | SEMC_Type * | base, |
semc_dbi_config_t * | config, | ||
uint32_t | clkSrc_Hz | ||
) |
base | SEMC peripheral base address. |
config | The dbi configuration. |
clkSrc_Hz | The SEMC clock frequency. |
|
inlinestatic |
This function enables the SEMC interrupts according to the provided mask. The mask is a logical OR of enumeration members. See semc_interrupt_enable_t. For example, to enable the IP command done and error interrupt, do the following.
base | SEMC peripheral base address. |
mask | SEMC interrupts to enable. This is a logical OR of the enumeration :: semc_interrupt_enable_t. |
|
inlinestatic |
This function disables the SEMC interrupts according to the provided mask. The mask is a logical OR of enumeration members. See semc_interrupt_enable_t. For example, to disable the IP command done and error interrupt, do the following.
base | SEMC peripheral base address. |
mask | SEMC interrupts to disable. This is a logical OR of the enumeration :: semc_interrupt_enable_t. |
|
inlinestatic |
This function gets the SEMC interrupts event status. User can use the a logical OR of enumeration member as a mask. See semc_interrupt_enable_t.
base | SEMC peripheral base address. |
|
inlinestatic |
The following status register flags can be cleared SEMC interrupt status.
base | SEMC base pointer |
mask | The status flag mask, a logical OR of enumeration member semc_interrupt_enable_t. |
|
inlinestatic |
base | SEMC peripheral base address. |
status_t SEMC_SendIPCommand | ( | SEMC_Type * | base, |
semc_mem_type_t | memType, | ||
uint32_t | address, | ||
uint32_t | command, | ||
uint32_t | write, | ||
uint32_t * | read | ||
) |
base | SEMC peripheral base address. |
memType | SEMC memory type. refer to "semc_mem_type_t" |
address | SEMC device address. |
command | SEMC IP command. For NAND device, we should use the SEMC_BuildNandIPCommand to get the right nand command. For NOR/DBI device, take refer to "semc_ipcmd_nor_dbi_t". For SRAM device, take refer to "semc_ipcmd_sram_t". For SDRAM device, take refer to "semc_ipcmd_sdram_t". |
write | Data for write access. |
read | Data pointer for read data out. |
|
inlinestatic |
This function build SEMC NAND IP command. The command is build of user command code, SEMC address mode and SEMC command mode.
userCommand | NAND device normal command. |
addrMode | NAND address mode. Refer to "semc_ipcmd_nand_addrmode_t". |
cmdMode | NAND command mode. Refer to "semc_ipcmd_nand_cmdmode_t". |
|
inlinestatic |
base | SEMC peripheral base address. |
status_t SEMC_IPCommandNandWrite | ( | SEMC_Type * | base, |
uint32_t | address, | ||
uint8_t * | data, | ||
uint32_t | size_bytes | ||
) |
base | SEMC peripheral base address. |
address | SEMC NAND device address. |
data | Data for write access. |
size_bytes | Data length. |
status_t SEMC_IPCommandNandRead | ( | SEMC_Type * | base, |
uint32_t | address, | ||
uint8_t * | data, | ||
uint32_t | size_bytes | ||
) |
base | SEMC peripheral base address. |
address | SEMC NAND device address. |
data | Data pointer for data read out. |
size_bytes | Data length. |
status_t SEMC_IPCommandNorWrite | ( | SEMC_Type * | base, |
uint32_t | address, | ||
uint8_t * | data, | ||
uint32_t | size_bytes | ||
) |
base | SEMC peripheral base address. |
address | SEMC NOR device address. |
data | Data for write access. |
size_bytes | Data length. |
status_t SEMC_IPCommandNorRead | ( | SEMC_Type * | base, |
uint32_t | address, | ||
uint8_t * | data, | ||
uint32_t | size_bytes | ||
) |
base | SEMC peripheral base address. |
address | SEMC NOR device address. |
data | Data pointer for data read out. |
size_bytes | Data length. |