CI13LC SDK API手册  2.1.1
本手册用于描述CI13LC SDK各个组件和驱动API
结构体 | 宏定义 | 类型定义 | 枚举 | 函数 | 变量
ci13lc_dtrflash.h 文件参考
#include <stdint.h>
#include <string.h>
#include <stdbool.h>

浏览源代码.

结构体

struct  spic_init_t
 
struct  spic_base_config_t
 

宏定义

#define SPIC_DMA_MODEFI   0 /*待芯片回来,提高主频后,再测试哪一种方式效率更高,且代码更少*/
 
#define FLASH_F_SAME_AS_IP_CORE   (0) /*1:flash时钟和IPCORE同频。0:不同频 */
 
#define RX_NAGE_SAMPLE   0 /*FLASH的时序窗口调整:0 上升沿采样、1 下降沿采样 */
 
#define RX_NAGE_EN   1 /*FLASH的时序窗口调整:0、1 */
 
#define DELAY_LINE   0x1a /*FLASH的时序窗口调整:1 ~ 32 */
 

类型定义

typedef struct spic_init_tspic_init_p
 
typedef struct spic_base_config_tspic_base_config_p
 

枚举

enum  flash_flag_t {
  FLASH_FLAG_WRITE = 0,
  FLASH_FLAG_READ = 1
}
 

函数

int32_t spic_cmd (uint32_t spic_base, spic_base_config_p spic_base_config)
 spic向flash发送命令 更多...
 
int32_t spic_read_by_cpu (uint32_t spic_base, spic_base_config_p spic_base_config, uint8_t *read_data, uint32_t read_len)
 spic以CPU的方式向flash读数据 更多...
 
int32_t spic_write_by_cpu (uint32_t spic_base, spic_base_config_p spic_base_config, uint8_t *write_data, uint32_t write_len)
 spic以CPU的方式向flash写数据 更多...
 
int32_t spic_readwrite_by_dma (uint32_t spic_base, spic_base_config_p spic_base_config, uint8_t *data, uint32_t len, flash_flag_t flag)
 spic以dma的方式flash写/读数据 更多...
 
int32_t spic_read_xip (uint32_t spic_base, spic_base_config_p spic_base_config, uint8_t *read_data, uint32_t read_len)
 
int32_t spic_init (uint32_t spic_base, spic_init_p init)
 spic控制器初始化 更多...
 
int32_t spic_clk_phase_set (uint32_t spic_base, uint32_t tx_shift, uint32_t tx_nege_en, uint32_t rx_shift, uint32_t rx_nege_en)
 flash时钟相位调制 更多...
 
void spic_hardware_reset (uint32_t spic_base, uint8_t enable)
 
int32_t spic_xip_config (uint32_t spic_base, spic_base_config_p spic_base_config)
 XIP配置 更多...
 
uint32_t spic_prefetch_en (uint32_t spic_base, bool en)
 flash预取开关 更多...
 
void spic_change_clk (uint32_t spic_base, flash_clk_div_t clk)
 切换flash的时钟分频 更多...
 

变量

typedef enum
 

结构体说明

◆ spic_init_t

struct spic_init_t
成员变量
uint32_t addr_size

功能:地址宽度(单位Byte)

flash_clk_div_t flash_clk_div

功能:flash时钟分频

uint32_t flash_sel

功能:flash选择:0:flash0;1:flash1

◆ spic_base_config_t

struct spic_base_config_t
成员变量
uint32_t addr

功能:操作地址

uint32_t addr_en

功能:地址是否有效

uint32_t cmd0

功能:命令0

uint32_t cmd1

功能:命令1

md_sel_t cmd_md

功能:命令模式(一般地址的模式和命令模式相同)

md_sel_t data_md

功能:数据模式

uint32_t dummy

功能:Dummy周期

uint32_t dummy_en

功能:Dummy是否有效

宏定义说明

◆ DELAY_LINE

#define DELAY_LINE   0x1a /*FLASH的时序窗口调整:1 ~ 32 */

◆ FLASH_F_SAME_AS_IP_CORE

#define FLASH_F_SAME_AS_IP_CORE   (0) /*1:flash时钟和IPCORE同频。0:不同频 */

◆ RX_NAGE_EN

#define RX_NAGE_EN   1 /*FLASH的时序窗口调整:0、1 */

◆ RX_NAGE_SAMPLE

#define RX_NAGE_SAMPLE   0 /*FLASH的时序窗口调整:0 上升沿采样、1 下降沿采样 */

◆ SPIC_DMA_MODEFI

#define SPIC_DMA_MODEFI   0 /*待芯片回来,提高主频后,再测试哪一种方式效率更高,且代码更少*/

类型定义说明

◆ spic_base_config_p

◆ spic_init_p

typedef struct spic_init_t* spic_init_p

枚举类型说明

◆ flash_flag_t

枚举值
FLASH_FLAG_WRITE 

FLASH_FLAG_READ 

函数说明

◆ spic_change_clk()

void spic_change_clk ( uint32_t  spic_base,
flash_clk_div_t  clk 
)

切换flash的时钟分频

◆ spic_clk_phase_set()

int32_t spic_clk_phase_set ( uint32_t  spic_base,
uint32_t  tx_shift,
uint32_t  tx_nege_en,
uint32_t  rx_shift,
uint32_t  rx_nege_en 
)

flash时钟相位调制

参数
tx_shift偏移X个core_clk,注意X必须小于core_clk与flash_clk的频率倍数(dtr模式下小于倍数的一半)
tx_nege_en配置为1时在shift的基础上再向后平移半个core_clk周期
rx_shift偏移X个core_clk,注意X必须小于core_clk与flash_clk的频率倍数(dtr模式下小于倍数的一半)
rx_nege_en配置为1时在shift的基础上再向后平移半个core_clk周期
返回
int32_t 0:成功;1:失败;

◆ spic_cmd()

int32_t spic_cmd ( uint32_t  spic_base,
spic_base_config_p  spic_base_config 
)

spic向flash发送命令

参数
spic_base_config配置结构体指针
返回
int32_t 0:成功;1:失败;

◆ spic_hardware_reset()

void spic_hardware_reset ( uint32_t  spic_base,
uint8_t  enable 
)

◆ spic_init()

int32_t spic_init ( uint32_t  spic_base,
spic_init_p  init 
)

spic控制器初始化

参数
init初始化结构体
返回
int32_t 0:成功;1:失败;

◆ spic_prefetch_en()

uint32_t spic_prefetch_en ( uint32_t  spic_base,
bool  en 
)

flash预取开关

参数
enenable:开启;disable:关闭;

◆ spic_read_by_cpu()

int32_t spic_read_by_cpu ( uint32_t  spic_base,
spic_base_config_p  spic_base_config,
uint8_t *  read_data,
uint32_t  read_len 
)

spic以CPU的方式向flash读数据

参数
spic_base_config配置结构体指针
read_data数据指针
read_len数据长度
返回
int32_t 0:成功;1:失败;

◆ spic_read_xip()

int32_t spic_read_xip ( uint32_t  spic_base,
spic_base_config_p  spic_base_config,
uint8_t *  read_data,
uint32_t  read_len 
)

◆ spic_readwrite_by_dma()

int32_t spic_readwrite_by_dma ( uint32_t  spic_base,
spic_base_config_p  spic_base_config,
uint8_t *  data,
uint32_t  len,
flash_flag_t  flag 
)

spic以dma的方式flash写/读数据

参数
spic_base_config配置结构体指针
data数据指针
len数据长度
flag读写标志
返回
int32_t 0:成功;1:失败;

◆ spic_write_by_cpu()

int32_t spic_write_by_cpu ( uint32_t  spic_base,
spic_base_config_p  spic_base_config,
uint8_t *  write_data,
uint32_t  write_len 
)

spic以CPU的方式向flash写数据

参数
spic_base_config配置结构体指针
write_data数据指针
write_len数据长度
返回
int32_t 0:成功;1:失败;

◆ spic_xip_config()

int32_t spic_xip_config ( uint32_t  spic_base,
spic_base_config_p  base_config 
)

XIP配置

参数
config配置结构体指针
返回
int32_t 0:成功;1:失败;

变量说明

◆ enum

typedef enum
初始值:
{
FLASH_CLK_DIV_2 = 0,
FLASH_CLK_DIV_4 = 1,
FLASH_CLK_DIV_6 = 2,
FLASH_CLK_DIV_8 = 3,
}flash_clk_div_t

< 功能:flash器件时钟与core_clk时钟频率关系 功能:2分频 功能:4分频 功能:6分频 功能:8分频

< 功能:发送命令、地址、数据的模式选择 功能:单线模式 功能:四线模式 功能:八线模式 功能:保留 功能:单线MERGE模式 功能:四线MERGE模式 功能:保留 功能:保留 功能:DTR单线模式 功能:DTR四线模式 功能:DTR八线模式 功能:保留 功能:DTR单线MERGE模式 功能:DTR四线MERGE模式 功能:保留