BLE5.2 1.0
开发文档说明
xc_drv_spi_dma.h
浏览该文件的文档.
1
25#ifndef __XC_DRV_SPI_DMA_H_
26#define __XC_DRV_SPI_DMA_H_
27
28/*-----------------------------------------------------------------------------------
29 INCLUDE HEADE FILES
30 ------------------------------------------------------------------------------------*/
31#include <stdbool.h>
32#include <stdio.h>
33#include <stdlib.h>
34#include "xc6xxx.h"
35
36/*------------------------------------------------------------------------------------
37 Macros
38 -------------------------------------------------------------------------------------*/
39#define SPI1_BASE_OFFSET 0x1000
40#define SPI2_BASE_OFFSET 0x1800
41
42#define SSIx_DATA_OFFSET 0x60
43
44#define FLASH_PAGE_SIZE 256
45#define FLASH_SECTOR_SIZE 4096
46
47#define CMD_READ_DATA (uint8_t)0x03
48#define CMD_READ_STATUS (uint8_t)0x05
49#define CMD_CHIP_ERASE (uint8_t)0xc7
50#define CMD_WRITE_ENABLE (uint8_t)0x06
51#define CMD_WRITE_DISABLE (uint8_t)0x04
52#define CMD_PAGE_PROGRAM (uint8_t)0x02
53#define CMD_BLOCK_ERASE (uint8_t)0xD8
54#define CMD_SECTOR_ERASE (uint8_t)0x20
55#define CMD_PAGE_ERASE (uint8_t)0x81
56#define CMD_RELEASE_PWRDWN (uint8_t)0xAB
57#define CMD_PWRDWN (uint8_t)0xB9
58#define CMD_RUID (uint8_t)0x4B
59#define CMD_RDID (uint8_t)0x9F
60
61//#define CUR_PAGE_NUM(addr) (addr/FLASH_PAGE_SIZE)
62//#define CUR_START_PSR(addr) (addr%FLASH_PAGE_SIZE)
63
64/*------------------------------------------------------------------------------------
65 Exported Functions
66 -------------------------------------------------------------------------------------*/
67void xc_spi_dma_deinit(uint8_t spi_idx);
68
69void xc_spi_dma_read_data(uint8_t spi_idx, uint8_t *data, uint16_t size);
70void xc_spi_dma_write_data(uint8_t spi_idx, uint8_t *data, uint16_t size);
71void xc_spi_dma_write_and_read_data(uint8_t spi_idx,
72 uint8_t *w_data, uint16_t w_size,
73 uint8_t *r_data, uint16_t r_size);
74void xc_spi_dma_read_and_write_data(uint8_t spi_idx,
75 uint8_t *w_data, uint16_t w_size,
76 uint8_t *r_data, uint16_t r_size);
77
78void xc_spi_dma_flash_power_down(uint8_t spi_idx);
79void xc_spi_dma_flash_wakeup(uint8_t spi_idx);
80void xc_spi_dma_flash_wait_busy(uint8_t spi_idx);
81void xc_spi_dma_flash_erase_sector(uint8_t spi_idx, uint32_t Dst_Addr);
82void xc_spi_dma_flash_erase_page(uint8_t spi_idx, uint32_t Dst_Addr);
83void xc_spi_dma_flash_write_page(uint8_t spi_idx, uint32_t WriteAddr, uint8_t *data, uint16_t size);
84void xc_spi_dma_flash_read_page(uint8_t spi_idx, uint32_t ReadAddr, uint8_t *data, uint16_t size);
85void xc_spi_dma_flash_rdid(uint8_t spi_idx, uint8_t *rdid);
86void xc_spi_dma_flash_ruid(uint8_t spi_idx, uint8_t *ruid);
87
88eXC_RESULT xc_spi_dma_flash_write(uint8_t spi_idx, uint32_t writeAddr, uint8_t *buff, uint16_t size);
89eXC_RESULT xc_spi_dma_flash_read(uint8_t spi_idx, uint32_t readAddr, uint8_t *buff, uint16_t size);
90
91#endif /* __XC_DRV_SPI_DMA_H_ */
92
void xc_spi_dma_flash_erase_page(uint8_t spi_idx, uint32_t Dst_Addr)
_idx
void xc_spi_dma_flash_power_down(uint8_t spi_idx)
void xc_spi_dma_read_and_write_data(uint8_t spi_idx, uint8_t *w_data, uint16_t w_size, uint8_t *r_data, uint16_t r_size)
void xc_spi_dma_write_data(uint8_t spi_idx, uint8_t *data, uint16_t size)
void xc_spi_dma_deinit(uint8_t spi_idx)
void xc_spi_dma_write_and_read_data(uint8_t spi_idx, uint8_t *w_data, uint16_t w_size, uint8_t *r_data, uint16_t r_size)
void xc_spi_dma_flash_rdid(uint8_t spi_idx, uint8_t *rdid)
void xc_spi_dma_flash_ruid(uint8_t spi_idx, uint8_t *ruid)
void xc_spi_dma_flash_read_page(uint8_t spi_idx, uint32_t ReadAddr, uint8_t *data, uint16_t size)
eXC_RESULT xc_spi_dma_flash_write(uint8_t spi_idx, uint32_t writeAddr, uint8_t *buff, uint16_t size)
void xc_spi_dma_flash_write_page(uint8_t spi_idx, uint32_t WriteAddr, uint8_t *data, uint16_t size)
void xc_spi_dma_flash_wakeup(uint8_t spi_idx)
void xc_spi_dma_flash_erase_sector(uint8_t spi_idx, uint32_t Dst_Addr)
void xc_spi_dma_flash_wait_busy(uint8_t spi_idx)
void xc_spi_dma_read_data(uint8_t spi_idx, uint8_t *data, uint16_t size)
eXC_RESULT xc_spi_dma_flash_read(uint8_t spi_idx, uint32_t readAddr, uint8_t *buff, uint16_t size)