|
STM32G474xx HAL用户手册
|
NAND HAL模块驱动程序。该文件提供了驱动作为外部设备挂载的NAND存储器的通用固件。 更多...
#include "stm32g4xx_hal.h"函数 | |
| HAL_StatusTypeDef | HAL_NAND_Init (NAND_HandleTypeDef *hnand, FMC_NAND_PCC_TimingTypeDef *ComSpace_Timing, FMC_NAND_PCC_TimingTypeDef *AttSpace_Timing) |
| 执行NAND存储器初始化序列。 | |
| HAL_StatusTypeDef | HAL_NAND_DeInit (NAND_HandleTypeDef *hnand) |
| 执行NAND存储器反初始化序列。 | |
| __weak void | HAL_NAND_MspInit (NAND_HandleTypeDef *hnand) |
| NAND MSP初始化。 | |
| __weak void | HAL_NAND_MspDeInit (NAND_HandleTypeDef *hnand) |
| NAND MSP反初始化。 | |
| void | HAL_NAND_IRQHandler (NAND_HandleTypeDef *hnand) |
| 该函数处理NAND设备中断请求。 | |
| __weak void | HAL_NAND_ITCallback (NAND_HandleTypeDef *hnand) |
| NAND中断功能回调。 | |
| HAL_StatusTypeDef | HAL_NAND_Read_ID (NAND_HandleTypeDef *hnand, NAND_IDTypeDef *pNAND_ID) |
| 读取NAND存储器的电子签名。 | |
| HAL_StatusTypeDef | HAL_NAND_Reset (NAND_HandleTypeDef *hnand) |
| NAND存储器复位。 | |
| HAL_StatusTypeDef | HAL_NAND_ConfigDevice (NAND_HandleTypeDef *hnand, const NAND_DeviceConfigTypeDef *pDeviceConfig) |
| 配置设备:输入设备的物理参数。 | |
| HAL_StatusTypeDef | HAL_NAND_Read_Page_8b (NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress, uint8_t *pBuffer, uint32_t NumPageToRead) |
| 从NAND存储器块读取页面(8位寻址) | |
| HAL_StatusTypeDef | HAL_NAND_Read_Page_16b (NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress, uint16_t *pBuffer, uint32_t NumPageToRead) |
| 从NAND存储器块读取页面(16位寻址) | |
| HAL_StatusTypeDef | HAL_NAND_Write_Page_8b (NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress, const uint8_t *pBuffer, uint32_t NumPageToWrite) |
| 向NAND存储器块写入页面(8位寻址) | |
| HAL_StatusTypeDef | HAL_NAND_Write_Page_16b (NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress, const uint16_t *pBuffer, uint32_t NumPageToWrite) |
| 向NAND存储器块写入页面(16位寻址) | |
| HAL_StatusTypeDef | HAL_NAND_Read_SpareArea_8b (NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress, uint8_t *pBuffer, uint32_t NumSpareAreaToRead) |
| 从NAND存储器读取备用区域(8位寻址) | |
| HAL_StatusTypeDef | HAL_NAND_Read_SpareArea_16b (NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress, uint16_t *pBuffer, uint32_t NumSpareAreaToRead) |
| 从NAND存储器读取备用区域(16位寻址) | |
| HAL_StatusTypeDef | HAL_NAND_Write_SpareArea_8b (NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress, const uint8_t *pBuffer, uint32_t NumSpareAreaTowrite) |
| 向NAND存储器写入备用区域(8位寻址) | |
| HAL_StatusTypeDef | HAL_NAND_Write_SpareArea_16b (NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress, const uint16_t *pBuffer, uint32_t NumSpareAreaTowrite) |
| 向NAND存储器写入备用区域(16位寻址) | |
| HAL_StatusTypeDef | HAL_NAND_Erase_Block (NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress) |
| NAND存储器块擦除。 | |
| uint32_t | HAL_NAND_Address_Inc (const NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress) |
| 递增NAND存储器地址。 | |
| HAL_StatusTypeDef | HAL_NAND_RegisterCallback (NAND_HandleTypeDef *hnand, HAL_NAND_CallbackIDTypeDef CallbackId, pNAND_CallbackTypeDef pCallback) |
| 注册用户NAND回调函数,用于覆盖弱预定义回调。 | |
| HAL_StatusTypeDef | HAL_NAND_UnRegisterCallback (NAND_HandleTypeDef *hnand, HAL_NAND_CallbackIDTypeDef CallbackId) |
| 注销用户NAND回调函数,回调重定向到弱预定义回调。 | |
| HAL_StatusTypeDef | HAL_NAND_ECC_Enable (NAND_HandleTypeDef *hnand) |
| 动态启用NAND ECC功能。 | |
| HAL_StatusTypeDef | HAL_NAND_ECC_Disable (NAND_HandleTypeDef *hnand) |
| 动态禁用FMC_NAND ECC功能。 | |
| HAL_StatusTypeDef | HAL_NAND_GetECC (NAND_HandleTypeDef *hnand, uint32_t *ECCval, uint32_t Timeout) |
| 动态获取NAND ECC值。 | |
| HAL_NAND_StateTypeDef | HAL_NAND_GetState (const NAND_HandleTypeDef *hnand) |
| 返回NAND状态 | |
| uint32_t | HAL_NAND_Read_Status (const NAND_HandleTypeDef *hnand) |
| NAND存储器读取状态。 | |
NAND HAL模块驱动程序。该文件提供了驱动作为外部设备挂载的NAND存储器的通用固件。
版权所有 (c) 2019 STMicroelectronics。保留所有权利。
本软件根据可 在 LICENSE 文件中找到的条款进行许可。如未随本软件提供 LICENSE 文件,则按原样提供。
==============================================================================
##### 如何使用本驱动程序 #####
==============================================================================
[..]
本驱动程序是一个通用分层驱动程序,包含一组用于
控制NAND闪存的API。它使用FMC层函数来与
NAND设备接口。本驱动程序的使用方法如下:
(+) 使用HAL_NAND_Init()函数进行NAND闪存配置序列
以及通用和属性空间的控制和时序参数。
(+) 使用HAL_NAND_Read_ID()函数读取NAND闪存制造商和设备ID。
读取的信息存储在函数调用者声明的NAND_ID_TypeDef
结构中。
(+) 使用以下函数通过读/写操作访问NAND闪存
HAL_NAND_Read_Page_8b()/HAL_NAND_Read_SpareArea_8b(),
HAL_NAND_Write_Page_8b()/HAL_NAND_Write_SpareArea_8b(),
HAL_NAND_Read_Page_16b()/HAL_NAND_Read_SpareArea_16b(),
HAL_NAND_Write_Page_16b()/HAL_NAND_Write_SpareArea_16b()
读取/写入页面/备用区域。这些函数使用用户预先在NAND_DeviceConfigTypeDef
结构中定义的特定设备信息(块、页面大小等)。读/写地址信息包含在
作为参数传递的Nand_Address_Typedef结构中。
(+) 使用HAL_NAND_Reset()函数执行NAND闪存复位芯片操作。
(+) 使用HAL_NAND_Erase_Block()函数执行NAND闪存块擦除操作。
块擦除地址信息包含在作为参数传递的Nand_Address_Typedef
结构中。
(+) 使用HAL_NAND_Read_Status()函数读取NAND闪存状态操作。
(+) 您还可以通过调用控制API HAL_NAND_ECC_Enable()/
HAL_NAND_ECC_Disable()来分别启用/禁用ECC纠错
功能,或使用HAL_NAND_GetECC()函数获取ECC纠错码。
(+) 您可以通过调用HAL_NAND_GetState()函数来监控NAND设备的HAL状态
[..]
(©) 本驱动程序是一组处理标准NAND闪存操作的通用API。
如果NAND闪存设备包含不同的操作和/或实现,
应单独实现。
*** 回调注册 ***
=============================================
[..]
当编译定义USE_HAL_NAND_REGISTER_CALLBACKS设置为1时,
允许用户动态配置驱动程序回调。
使用HAL_NAND_RegisterCallback()函数注册用户回调,
它允许注册以下回调:
(+) MspInitCallback : NAND MspInit.
(+) MspDeInitCallback : NAND MspDeInit.
此函数接受HAL外设句柄、回调ID和用户回调函数指针作为参数。
使用HAL_NAND_UnRegisterCallback()函数将回调重置为默认的
弱(覆盖)函数。它允许重置以下回调:
(+) MspInitCallback : NAND MspInit.
(+) MspDeInitCallback : NAND MspDeInit.
此函数接受HAL外设句柄和回调ID作为参数。
默认情况下,在HAL_NAND_Init之后,如果状态为HAL_NAND_STATE_RESET,
所有回调将重置为相应的遗留弱(覆盖)函数。
MspInit和MspDeInit回调例外,它们分别重置为HAL_NAND_Init
和HAL_NAND_DeInit中的遗留弱(覆盖)函数,但仅在这些回调为
空(未预先注册)时才重置。
否则,如果MspInit或MspDeInit不为空,HAL_NAND_Init和HAL_NAND_DeInit
将保留并使用用户预先注册的MspInit/MspDeInit回调
回调只能在READY状态下注册/注销。
MspInit/MspDeInit回调例外,它们可以在READY或RESET状态下注册/注销,
因此注册的(用户)MspInit/DeInit回调可在Init/DeInit期间使用。
在这种情况下,首先使用HAL_NAND_RegisterCallback注册MspInit/MspDeInit用户回调,
然后再调用HAL_NAND_DeInit或HAL_NAND_Init函数。
当编译定义USE_HAL_NAND_REGISTER_CALLBACKS设置为0或
未定义时,回调注册功能不可用,
使用弱(覆盖)回调。
定义于文件 stm32g4xx_hal_nand.c。
1.7.6.1