頁式存儲裝置抽象介面,提供基於頁的存儲操作
更多...
#include <SectorDevice.h>
|
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) |
| 擦除指定區塊
|
|
virtual bool | deinit (void) override |
| 硬體去初始化
|
|
virtual bool | init (void) override |
| 硬體初始化
|
|
virtual bool | isInit (void) override |
| 檢查硬體初始化狀態
|
|
頁式存儲裝置抽象介面,提供基於頁的存儲操作
該介面定義了分頁存儲裝置的基本操作,包括讀取、寫入和擦除等功能。 適用於Flash、EEPROM等需要分頁管理的存儲裝置。
◆ Status
頁式存儲裝置操作狀態列舉
定義了存儲操作可能的返回狀態
列舉值 |
---|
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 |
擦除指定頁面
- 參數
-
- 傳回值
- Status 操作結果狀態
◆ eraseSector()
Status hal::storage::SectorDevice::eraseSector |
( |
uint32 | sector | ) |
|
|
inline |
擦除指定區塊
- 參數
-
- 傳回值
- Status 操作結果狀態
- 註
- 這是基於區塊編號的便利方法,內部會轉換為位址操作
◆ pageCount()
virtual uint32 hal::storage::SectorDevice::pageCount |
( |
void | | ) |
const |
|
pure virtual |
◆ 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) 文件是由下列檔案中產生: