Loading...
Searching...
No Matches
flash.h
1
6
7#ifndef _FLASH_H
8#define _FLASH_H
9
10#include "stm32f439xx.h"
11#include "string.h"
12
13#include "devices.h"
14#include "spi.h"
15
16#define FLASH_PAGE_PROGRAM 0x02
17#define FLASH_READ_DATA 0x03
18#define FLASH_WRITE_ENABLE 0x06
19#define FLASH_ERASE_CHIP 0x60
20#define FLASH_READ_STATUS_REGISTER_1 0x05
21#define FLASH_READ_STATUS_REGISTER_2 0x35
22#define FLASH_READ_STATUS_REGISTER_3 0x15
23
28
30typedef struct Flash {
32 int pageSize;
33 long pageCount;
34 void (*erase)(struct Flash *);
35 void (*readPage)(struct Flash *, uint32_t, volatile uint8_t *);
36 void (*writePage)(struct Flash *, uint32_t, uint8_t *);
37} Flash;
38
39void configure_SPI4_Flash();
40DeviceHandle_t Flash_init(Flash *, char[DEVICE_NAME_LENGTH], GPIO_TypeDef *, unsigned long, int, long);
41void Flash_readPage(Flash *, uint32_t, volatile uint8_t *);
42void Flash_writePage(Flash *, uint32_t, uint8_t *);
43void Flash_erase(Flash *);
45void _Flash_readStatus1(Flash *, uint8_t *);
46void _Flash_readStatus2(Flash *, uint8_t *);
47void _Flash_readStatus3(Flash *, uint8_t *);
48
50#endif
void _Flash_readStatus2(Flash *, uint8_t *)
Read from Status Register 2.
Definition flash.c:101
void Flash_readPage(Flash *, uint32_t, volatile uint8_t *)
Read from flash.
Definition flash.c:202
void _Flash_readStatus1(Flash *, uint8_t *)
Read from Status Register 1.
Definition flash.c:83
void _Flash_readStatus3(Flash *, uint8_t *)
Read from Status Register 3.
Definition flash.c:119
void Flash_writePage(Flash *, uint32_t, uint8_t *)
Write page to flash.
Definition flash.c:166
DeviceHandle_t Flash_init(Flash *, char[DEVICE_NAME_LENGTH], GPIO_TypeDef *, unsigned long, int, long)
Initialise flash struct.
Definition flash.c:33
void _Flash_writeEnable(Flash *)
Send Write Enable instruction to the flash device.
Definition flash.c:66
void Flash_erase(Flash *)
Erase flash chip.
Definition flash.c:140
Definition flash.h:30
SPI base
Parent SPI interface.
Definition flash.h:31
void(* readPage)(struct Flash *, uint32_t, volatile uint8_t *)
Read page method.
Definition flash.h:35
void(* erase)(struct Flash *)
Chip erase method.
Definition flash.h:34
void(* writePage)(struct Flash *, uint32_t, uint8_t *)
Write page method.
Definition flash.h:36
Struct definition for SPI interface. Provides the interface for API consumers to interact with the SP...
Definition spi.h:49