ELIOT1 HAL
Загрузка...
Поиск...
Не найдено
Драйвер модуля FLASH.

Драйвер накристалльной FLASH-памяти. Подробнее...

Файлы

файл  hal_flash.h
 Интерфейс драйвера модуля FLASH.
 

Макросы

#define FCTR_IRQ_STS_SET_RESULT_FLAGS
 
#define FCTR_IRQ_STS_CLR_SUCCESS_FLAGS
 

Перечисления

enum  flash_status
 Статусы драйвера модуля FLASH. Подробнее...
 
enum  flash_region
 Регионы накристалльной FLASH-памяти. Подробнее...
 

API HAL для драйвера модуля FLASH.

enum flash_status FLASH_Init (FCTR_Type *base)
 Инициализация накристалльной FLASH-памяти.
 
enum flash_status FLASH_WriteWord (FCTR_Type *base, uint32_t addr, uint32_t data)
 Запись 32-битного слова во встроенную FLASH-память.
 
enum flash_status FLASH_Program (FCTR_Type *base, uint32_t *addr, uint32_t *src, uint32_t length)
 Запись данных во встроенную FLASH-память.
 
enum flash_status FLASH_VerifyProgram (uint32_t *addr, uint32_t length, uint32_t *expected_data, uint32_t *failed_address, uint32_t *failed_data)
 Проверка корректности данных, записанных во внутреннюю FLASH-память.
 
enum flash_status FLASH_Erase (FCTR_Type *base, uint32_t *addr, uint32_t length)
 Стирание сектора накристалльной FLASH-памяти.
 
enum flash_status FLASH_MassErase (FCTR_Type *base, enum flash_region region)
 Стирание раздела накристалльной FLASH-памяти.
 
enum flash_status FLASH_VerifyErase (uint32_t *addr, uint32_t length)
 Проверка корректности стирания данных накристалльной FLASH-памяти.
 
enum flash_status FLASH_Read (uint32_t *addr, uint32_t *dest, uint32_t length)
 Чтение данных из накристалльной FLASH-памяти.
 
#define FLASH_TEST_ADDRESSES(address, length)
 Проверка корректности адреса и количества записываемых/стираемых байтов.
 

Команды для накристалльной FLASH-памяти.

#define FCTR_CMD_READ   (0x1)
 
#define FCTR_CMD_WRITE   (0x2)
 
#define FCTR_CMD_ROW_WRITE   (0x3)
 
#define FCTR_CMD_ERASE   (0x4)
 
#define FCTR_CMD_MASS_ERASE   (0x7)
 

Подробное описание

Драйвер накристалльной FLASH-памяти.

Заметки
Драйвер накристалльной FLASH-памяти позволяет стирать и записывать данные в память.

Макросы

◆ FCTR_CMD_ERASE

#define FCTR_CMD_ERASE   (0x4)

Стирание страницы.

◆ FCTR_CMD_MASS_ERASE

#define FCTR_CMD_MASS_ERASE   (0x7)

Стирание всего региона FLASH-памяти.

◆ FCTR_CMD_READ

#define FCTR_CMD_READ   (0x1)

Чтение слова.

◆ FCTR_CMD_ROW_WRITE

#define FCTR_CMD_ROW_WRITE   (0x3)

Быстрая запись слова.

◆ FCTR_CMD_WRITE

#define FCTR_CMD_WRITE   (0x2)

Запись слова.

◆ FCTR_IRQ_STS_CLR_SUCCESS_FLAGS

#define FCTR_IRQ_STS_CLR_SUCCESS_FLAGS
Макроопределение:
(FCTR_IRQ_STATUS_CLR_CMD_SUCCESS_IRQ_STS_CLR_Msk \
| FCTR_IRQ_STATUS_CLR_CMD_ACCEPT_IRQ_STS_CLR_Msk)

Объединение статусов SUCCESS и ACCEPT.

◆ FCTR_IRQ_STS_SET_RESULT_FLAGS

#define FCTR_IRQ_STS_SET_RESULT_FLAGS
Макроопределение:
(FCTR_IRQ_STATUS_SET_READ_OVERFLOW_IRQ_STS_SET_Msk \
| FCTR_IRQ_STATUS_SET_CMD_REJECT_IRQ_STS_SET_Msk \
| FCTR_IRQ_STATUS_SET_CMD_FAIL_IRQ_STS_SET_Msk \
| FCTR_IRQ_STATUS_SET_CMD_SUCCESS_IRQ_STS_SET_Msk)

Объединение всех статусов, кроме ACCEPT.

◆ FLASH_TEST_ADDRESSES

#define FLASH_TEST_ADDRESSES ( address,
length )

Проверка корректности адреса и количества записываемых/стираемых байтов.

Аргументы
addressСтартовый адрес записи/стирания.
lengthКоличество записываемых/стираемых байтов.
Возвращаемые значения
FLASH_Status_Ok
FLASH_Status_AddressAlignmentError
FLASH_Status_AddressOutOfRange

Перечисления

◆ flash_region

Регионы накристалльной FLASH-памяти.

Элементы перечислений
FLASH_MainRegion 

Основной раздел.

FLASH_SystemRegion 

Системный раздел.

◆ flash_status

Статусы драйвера модуля FLASH.

Элементы перечислений
FLASH_Status_Ok 

Нет ошибок.

FLASH_Status_InvalidArgument 

Недопустимый параметр.

FLASH_Status_CheckError 

Получена ошибка от оборудования.

FLASH_Status_VerifyError 

Ошибка верификации данных.

FLASH_Status_ConfigureError 

Недопустимая конфигурация или ошибка в описании оборудования.

FLASH_Status_AddressAlignmentError 

Адрес не выровнен по странице/слову.

FLASH_Status_AddressOutOfRange 

Адрес вне допустимого диапазона.

Функции

◆ FLASH_Erase()

enum flash_status FLASH_Erase ( FCTR_Type * base,
uint32_t * addr,
uint32_t length )

Стирание сектора накристалльной FLASH-памяти.

Заметки
К аргументам функции применяются следующие ограничения:
  • адрес должен быть выровнен по границе 8 KB страницы;
  • в значении адреса учитываются только младшие биты [20:0] (младшие 21 бит);
  • количество стираемых байтов должно быть кратно размеру страницы.
Аргументы
baseБазовый адрес регистров FLASH-памяти.
addrНачальный адрес стирания.
lengthКоличество стираемых байтов.
Возвращаемые значения
FLASH_Status_Ok
FLASH_Status_InvalidArgument
FLASH_Status_CheckError
FLASH_Status_AddressAlignmentError
FLASH_Status_AddressOutOfRange

◆ FLASH_Init()

enum flash_status FLASH_Init ( FCTR_Type * base)

Инициализация накристалльной FLASH-памяти.

Аргументы
baseБазовый адрес регистров FLASH-памяти.
Возвращаемые значения
FLASH_Status_Ok
FLASH_Status_ConfigureError

◆ FLASH_MassErase()

enum flash_status FLASH_MassErase ( FCTR_Type * base,
enum flash_region region )

Стирание раздела накристалльной FLASH-памяти.

Аргументы
baseБазовый адрес регистров FLASH-памяти.
regionРаздел памяти.
Возвращаемые значения
FLASH_Status_Ok
FLASH_Status_CheckError

◆ FLASH_Program()

enum flash_status FLASH_Program ( FCTR_Type * base,
uint32_t * addr,
uint32_t * src,
uint32_t length )

Запись данных во встроенную FLASH-память.

Заметки
К аргументам функции применяются следующие ограничения:
  • в значении адреса учитываются только младшие биты [20:0] (младшие 21 бит);
  • записываемые данные должны быть выровнены по границе 32-битного слова;
  • количество записываемых байтов должно быть кратно размеру страницы.
Аргументы
baseБазовый адрес регистров FLASH-памяти.
addrНачальный адрес записи.
srcЗаписываемые данные.
lengthКоличество записываемых байтов.
Возвращаемые значения
FLASH_Status_Ok
FLASH_Status_ConfigureError
FLASH_Status_AddressAlignmentError
FLASH_Status_AddressOutOfRange

◆ FLASH_Read()

enum flash_status FLASH_Read ( uint32_t * addr,
uint32_t * dest,
uint32_t length )

Чтение данных из накристалльной FLASH-памяти.

Заметки
К аргументам функции применяются следующие ограничения:
  • адрес чтения должен быть выровнен на размер страницы;
  • в значении адреса учитываются только младшие биты [20:0] (младшие 21 бит);
  • aдрес буфера под данные должен быть выровнен по границе 32-битного слова;
  • количество cчитываемых байтов должно быть кратно размеру страницы.
Аргументы
addrНачальный адрес чтения.
destСчитываемые данные.
lengthКоличество считываемых байтов.
Возвращаемые значения
FLASH_Status_Ok
FLASH_Status_InvalidArgument
FLASH_Status_CheckError
FLASH_Status_AddressAlignmentError
FLASH_Status_AddressOutOfRange
FLASH_Status_AddressAlignmentError

◆ FLASH_VerifyErase()

enum flash_status FLASH_VerifyErase ( uint32_t * addr,
uint32_t length )

Проверка корректности стирания данных накристалльной FLASH-памяти.

Заметки
К аргументам функции применяются следующие ограничения:
  • адрес должен быть выровнен на размер страницы;
  • в значении адреса учитываются только младшие биты [20:0] (младшие 21 бит);
  • количество байтов должно быть кратно размеру страницы.
Аргументы
baseБазовый адрес регистров FLASH-памяти.
addrНачальный адрес проверямой памяти.
lengthКоличество проверямых байтов.
Возвращаемые значения
FLASH_Status_Ok
FLASH_Status_ConfigureError
FLASH_Status_VerifyError
FLASH_Status_AddressAlignmentError
FLASH_Status_AddressOutOfRange

◆ FLASH_VerifyProgram()

enum flash_status FLASH_VerifyProgram ( uint32_t * addr,
uint32_t length,
uint32_t * expected_data,
uint32_t * failed_address,
uint32_t * failed_data )

Проверка корректности данных, записанных во внутреннюю FLASH-память.

Заметки
К аргументам функции применяются следующие ограничения:
  • начальный адрес чтения должен быть выровнен на размер страницы;
  • в значении адреса учитываются только младшие биты [20:0] (младшие 21 бит);
  • количество проверяемых байтов должно быть кратно размеру страницы;
  • адрес эталонных данных должен быть выровнен по границе 32-битного слова.
Аргументы
baseБазовый адрес регистров FLASH-памяти.
addrНачальный адрес проверяемых данных.
lengthКоличество проверяемых байтов.
expected_dataЭталонные данные.
failed_addressАдрес первых несовпадающих данных.
failed_dataПервые несовпадающие данные.
Возвращаемые значения
FLASH_Status_Ok
FLASH_Status_InvalidArgument
FLASH_Status_ConfigureError
FLASH_Status_AddressAlignmentError
FLASH_Status_AddressOutOfRange

◆ FLASH_WriteWord()

enum flash_status FLASH_WriteWord ( FCTR_Type * base,
uint32_t addr,
uint32_t data )

Запись 32-битного слова во встроенную FLASH-память.

Заметки
К аргументам функции применяются следующие ограничения:
  • адрес должен быть выровнен по границе 32-битного слова;
  • в значении адреса учитываются только младшие биты [20:0] (младшие 21 бит).
Аргументы
baseБазовый адрес регистров FLASH-памяти.
addrАдрес для записи.
dataЗаписываемое слово.
Возвращаемые значения
FLASH_Status_Ok
FLASH_Status_CheckError
FLASH_Status_AddressAlignmentError
FLASH_Status_AddressOutOfRange