Большой апгрейд:
- исправлены баги библиотеки memspi - добавлены модули для сохранения настреок в eeprom и flash (с равномерным износом) - надо тестить, проверять и рефакторить
This commit is contained in:
@@ -26,30 +26,61 @@
|
||||
|
||||
#include "memspi_config.h"
|
||||
|
||||
#ifndef local_time
|
||||
#define local_time() HAL_GetTick() ///< Локальное время
|
||||
#endif
|
||||
|
||||
/** @defgroup MEMSPI_Commands Memory SPI Commands
|
||||
* @brief Определения команд SPI-памяти
|
||||
* @{
|
||||
*/
|
||||
#define MEMSPI_READ_JEDEC_ID 0x9F ///< Команда чтения JEDEC ID
|
||||
#define MEMSPI_READ_UNIQUE_ID 0x4B ///< Команда чтения уникального идентификатора
|
||||
|
||||
#ifdef RUFLASH
|
||||
|
||||
#define MEMSPI_READ_DATA (0x03)
|
||||
|
||||
#define MEMSPI_ERASE_SECTOR (0xD8)
|
||||
#define MEMSPI_ERASE_CHIP (0x60)
|
||||
|
||||
#define MEMSPI_WRITE_ENABLE (0x06)
|
||||
#define MEMSPI_WRITE_DISABLE (0x04)
|
||||
|
||||
#define MEMSPI_PAGE_PROGRAM (0x02)
|
||||
#define MEMSPI_BYTE_PROGRAM (0x02)
|
||||
#define MEMSPI_WRITE_EEPROM (MEMSPI_PAGE_PROGRAM)
|
||||
|
||||
#define MEMSPI_PROTECT_SECTOR (0x36)
|
||||
#define MEMSPI_UNPROTECT_SECTOR (0x39)
|
||||
#define MEMSPI_READ_PROTECT_REG (0x3C)
|
||||
|
||||
|
||||
#define MEMSPI_READ_STATUS_REG (0x05)
|
||||
#if defined(SEPARATED_STATUS_REGISTER)
|
||||
#define MEMSPI_READ_STATUS_REG_2 (0x35)
|
||||
#endif
|
||||
#define MEMSPI_WRITE_STATUS_REG (0x01)
|
||||
|
||||
|
||||
#define MEMSPI_READ_JEDEC_ID (0x9F)
|
||||
#define MEMSPI_READ_UNIQUE_ID (0x4B)
|
||||
|
||||
#else
|
||||
#define MEMSPI_READ_DATA 0x03 ///< Чтение данных из памяти
|
||||
|
||||
#define MEMSPI_ERASE_SECTOR 0x20 ///< Стирание одного сектора
|
||||
|
||||
#define MEMSPI_WRITE_ENABLE 0x06 ///< Разрешение записи
|
||||
#define MEMSPI_WRITE_DISABLE 0x04 ///< Запрещение записи
|
||||
#define MEMSPI_WRITE_STATUS_REG 0x01 ///< Запись в регистр состояния
|
||||
#define MEMSPI_ERASE_SECTOR 0x20 ///< Стирание одного сектора
|
||||
|
||||
#define MEMSPI_PAGE_PROGRAM 0x02 ///< Программирование одной страницы
|
||||
#define MEMSPI_WRITE_EEPROM MEMSPI_PAGE_PROGRAM ///< Псевдоним для программирования EEPROM
|
||||
#define MEMSPI_READ_STATUS_REG 0x05 ///< Чтение регистра состояния
|
||||
|
||||
#define MEMSPI_READ_STATUS_REG 0x05 ///< Чтение регистра состояния
|
||||
#if defined(MEMSPI_SEPARATED_STATUS_REGISTER)
|
||||
#define MEMSPI_READ_STATUS_REG_2 0x35 ///< Чтение второго регистра состояния (если поддерживается)
|
||||
#endif
|
||||
#define MEMSPI_WRITE_STATUS_REG 0x01 ///< Запись в регистр состояния
|
||||
|
||||
#define MEMSPI_READ_DATA 0x03 ///< Чтение данных из памяти
|
||||
|
||||
#define MEMSPI_READ_JEDEC_ID 0x9F ///< Команда чтения JEDEC ID
|
||||
#define MEMSPI_READ_UNIQUE_ID 0x4B ///< Команда чтения уникального идентификатора
|
||||
#endif
|
||||
/** //MEMSPI_Commands
|
||||
* @}
|
||||
*/
|
||||
@@ -82,6 +113,8 @@
|
||||
#define MEMSPI_SR_SRWD MEMSPI_SR_SRP0 ///< Status Register Write Disable (аналог SRP0)
|
||||
#define MEMSPI_SR_WIP MEMSPI_SR_WEL ///< Write-In-Progress (используется в некоторых EEPROM)
|
||||
|
||||
// Exclusive (by name) RUFLASH SR bits
|
||||
#define MEMSPI_SR_EPE (1<<5) ///< Ошибка/стирания записи
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
@@ -144,8 +177,16 @@ HAL_StatusTypeDef MEMSPI_CMD_Read_Data(MEMSPI_HandleTypeDef *hmemspi, uint32_t F
|
||||
HAL_StatusTypeDef MEMSPI_CMD_EEPROM_Write(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint8_t *pData, uint16_t Size, uint32_t Timeout);
|
||||
/* Send command to page program in FLASH */
|
||||
HAL_StatusTypeDef MEMSPI_CMD_FLASH_Page_Program(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint8_t *pData, uint16_t Size, uint32_t Timeout);
|
||||
/* Send command to byte program in FLASH */
|
||||
HAL_StatusTypeDef MEMSPI_CMD_FLASH_Byte_Program(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint8_t Byte, uint32_t Timeout);
|
||||
/* Send command to erase sector of FLASH */
|
||||
HAL_StatusTypeDef MEMSPI_CMD_FLASH_Erase_Sector(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint32_t Timeout);
|
||||
/* Send command to Unprotect Sector */
|
||||
HAL_StatusTypeDef MEMSPI_CMD_Unprotect_Sector(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint32_t Timeout);
|
||||
/* Send command to Protect sector */
|
||||
HAL_StatusTypeDef MEMSPI_CMD_Protect_Sector(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint32_t Timeout);
|
||||
/* Send command to read Sector Protection Register */
|
||||
HAL_StatusTypeDef MEMSPI_CMD_Read_Sector_Protection(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint8_t *pStatus, uint32_t Timeout);
|
||||
/* Send command to read JEDEC ID */
|
||||
uint32_t MEMSPI_CMD_Read_JEDEC_ID(MEMSPI_HandleTypeDef *hmemspi, uint32_t Timeout);
|
||||
/* Send command to read JEDEC ID */
|
||||
@@ -158,6 +199,17 @@ HAL_StatusTypeDef MEMSPI_CMD_Fast_Read(MEMSPI_HandleTypeDef *hmemspi, uint32_t F
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifndef local_time
|
||||
#define local_time() HAL_GetTick() ///< Локальное время
|
||||
#endif
|
||||
|
||||
#ifndef printf_memspi
|
||||
#define printf_memspi(...)
|
||||
#endif
|
||||
#ifndef printf_memspi_err
|
||||
#define printf_memspi_err(...)
|
||||
#endif
|
||||
|
||||
#endif // __SPI_MEMORY_CORE_H_
|
||||
|
||||
/** //MEMSPI_CORE
|
||||
|
||||
Reference in New Issue
Block a user