mFrame
載入中...
搜尋中...
無符合項目
hal::storage::SectorDevice 結構 參考文件abstract

頁式存儲裝置抽象介面,提供基於頁的存儲操作 更多...

#include <SectorDevice.h>

類別hal::storage::SectorDevice的繼承圖:
hal::Base

公開型態

enum struct  Status : uint8 {
  OK = 0x00 , ERROR = 0x01 , NOT_SUPPORTED = 0x02 , OUT_OF_BOUNDS = 0x03 ,
  TIMEOUT = 0x04 , NOT_RAM_SOURCE = 0x05 , NOT_ALIGNED = 0x06
}
 頁式存儲裝置操作狀態列舉 更多...
 

公開方法(Public Methods)

virtual uint32 pageSize (void) const override
 取得裝置的頁面大小
 
virtual uint32 pageCount (void) const override
 取得裝置的總頁數
 
virtual uint32 sectorCount (void) const override
 取得裝置的總區塊數
 
virtual Status read (uint32 address, void *buffer) override
 從指定頁面讀取資料
 
virtual Status write (uint32 address, const void *buffer) override
 向指定頁面寫入資料
 
virtual Status erase (uint32 address) override
 擦除指定頁面
 
uint32 sectorSize (void) const
 取得每個區塊的大小
 
uint32 totalSize (void) const
 取得裝置的總存儲容量
 
Status readPage (uint32 page, void *buffer)
 從指定頁面讀取資料
 
Status writePage (uint32 page, const void *buffer)
 向指定頁面寫入資料
 
Status eraseSector (uint32 sector)
 擦除指定區塊
 
- 公開方法(Public Methods) 繼承自 hal::Base
virtual bool deinit (void) override
 硬體去初始化
 
virtual bool init (void) override
 硬體初始化
 
virtual bool isInit (void) override
 檢查硬體初始化狀態
 

詳細描述

頁式存儲裝置抽象介面,提供基於頁的存儲操作

該介面定義了分頁存儲裝置的基本操作,包括讀取、寫入和擦除等功能。 適用於Flash、EEPROM等需要分頁管理的存儲裝置。

列舉型態成員說明文件

◆ Status

enum struct hal::storage::SectorDevice::Status : uint8
strong

頁式存儲裝置操作狀態列舉

定義了存儲操作可能的返回狀態

列舉值
OK 

操作成功完成

ERROR 

一般性錯誤

NOT_SUPPORTED 

不支援的操作

OUT_OF_BOUNDS 

頁面編號超出有效範圍

TIMEOUT 

操作超時

NOT_RAM_SOURCE 

寫入來源不是RAM(片內Flash寫入限制)

NOT_ALIGNED 

寫入或讀取來源未4-byte對齊

函式成員說明文件

◆ erase()

virtual Status hal::storage::SectorDevice::erase ( uint32 address)
pure virtual

擦除指定頁面

參數
sector頁面編號(從0開始)
傳回值
Status 操作結果狀態

◆ eraseSector()

Status hal::storage::SectorDevice::eraseSector ( uint32 sector)
inline

擦除指定區塊

參數
sector區塊編號(從0開始)
傳回值
Status 操作結果狀態
這是基於區塊編號的便利方法,內部會轉換為位址操作

◆ pageCount()

virtual uint32 hal::storage::SectorDevice::pageCount ( void ) const
pure virtual

取得裝置的總頁數

傳回值
uint32 裝置總頁數

◆ pageSize()

virtual uint32 hal::storage::SectorDevice::pageSize ( void ) const
pure virtual

取得裝置的頁面大小

傳回值
uint32 每頁的位元組數

◆ read()

virtual Status hal::storage::SectorDevice::read ( uint32 address,
void * buffer )
pure virtual

從指定頁面讀取資料

參數
page頁面編號(從0開始)
buffer讀取資料的緩衝區
傳回值
Status 操作結果狀態

◆ readPage()

Status hal::storage::SectorDevice::readPage ( uint32 page,
void * buffer )
inline

從指定頁面讀取資料

參數
page頁面編號(從0開始)
buffer讀取資料的目標緩衝區
傳回值
Status 操作結果狀態
這是基於頁面編號的便利方法,內部會轉換為位址操作

◆ sectorCount()

virtual uint32 hal::storage::SectorDevice::sectorCount ( void ) const
pure virtual

取得裝置的總區塊數

傳回值
uint32 裝置總區塊數

◆ sectorSize()

uint32 hal::storage::SectorDevice::sectorSize ( void ) const
inline

取得每個區塊的大小

傳回值
uint32 區塊大小(位元組數),等於頁面大小乘以每區塊頁數

◆ totalSize()

uint32 hal::storage::SectorDevice::totalSize ( void ) const
inline

取得裝置的總存儲容量

傳回值
uint32 總容量(位元組數),等於區塊大小乘以區塊數量

◆ write()

virtual Status hal::storage::SectorDevice::write ( uint32 address,
const void * buffer )
pure virtual

向指定頁面寫入資料

參數
page頁面編號(從0開始)
buffer寫入資料的來源緩衝區
bufferSize資料大小(位元組)
傳回值
Status 操作結果狀態
對於片內Flash,資料來源必須位於RAM且4-byte對齊

◆ writePage()

Status hal::storage::SectorDevice::writePage ( uint32 page,
const void * buffer )
inline

向指定頁面寫入資料

參數
page頁面編號(從0開始)
buffer寫入資料的來源緩衝區
傳回值
Status 操作結果狀態
這是基於頁面編號的便利方法,內部會轉換為位址操作

此結構(structure) 文件是由下列檔案中產生: