文章目錄
一、建立基本工程
二、配置rt-thread setting
三、掛載檔案系統
四、實現ulog檔案後端
前言本文是檔案系統掛載到 spi flash上,實現ulog檔案後端
需要提前將spi flash掛載成功
spi flash 採用的是w25q64
一、請參考rt-thread studio官方文件的建立工程流程
二、配置rt-thread setting
①設定日誌
盡量把非同步輸出執行緒的棧大小設定大一點,因為有可能會出現棧溢位
②設定檔案系統
三、掛載檔案系統到spi flash,(第一次掛載的話,需要對spi flash進行格式化,否則可能掛載不成功)
先需要抽象spi flash
/* spi 裝置初始化註冊,此函式由系統自動呼叫 */
static
intrt_hw_spi_flash_init
(void);
return rt_eok;
}init_component_export
(rt_hw_spi_flash_init)
;
/**
* 格式化spi flash
*/void
formatting_device()
}
/**
* 掛載檔案系統到spi flash
* @param parameter
*/void
spi_flash_mount
(void
*parameter)
else}}
init_env_export
(spi_flash_mount)
;
四、建立乙個.c檔案用來實現ulog檔案後端,可以參考rt-thread官方ulog元件後端的實現方法
/* 建立檔案後端 */
static
struct ulog_backend ulog_fat_file;
/* 檔案後端初始化 */
intulog_fat_file_backend_init
(void
)(ulog_fat_file_backend_init)
;
/**
* 後端輸出函式
* */
static
void
ulog_fat_file_backend_output
(struct ulog_backend *backend, rt_uint32_t level,
const
char
*tag, rt_bool_t is_raw,
const
char
*log, size_t len)
1.建立檔案成功後,open函式會返回乙個檔案描述符 fd 這個東西非常重要,因為write函式就需要用到這個 fd
,一般第乙個檔案描述符的值是 3
(我也不知道為啥是3
),然後如果建立開啟了乙個檔案又繼續建立下乙個檔案的話
fd 的值就會發生改變,一般在前乙個fd的值前 +
乙個檔案的 fd 就和上乙個檔案的 fd相同
2.不要同時向幾個檔案寫入日誌,因為會導致檔案裡的內容會有缺失
3.如果需要讀取檔案的偏移量(每個檔案的偏移量為 260
)/**
* 讀取logs目錄下檔案的偏移量
*/long
read_pos()
else
return position_offset;
}msh_cmd_export
(read_pos,***x)
;4.可以參考一下rt-thread元件裡大神上傳的ulog檔案系統後端的實現
謝謝!! python language 檔案與檔案系統
1.檔案與檔案系統 開啟檔案 open file,mode r buffering none,encoding none,errors none,newline none,closefd true open file and return a stream.raise oserror upon fa...
Moose File System分布檔案系統測試
moosefs是乙個開源的分布檔案系統軟體,可提供高效,可靠的資料儲存能力.配置,維護都比較簡單。moosefs對離散讀寫的效能提公升明顯。建議底層使用xfs檔案系統,支援更大的檔案系統和更多的檔案,這個的話rhel6已經加入支援了。整個分布儲存系統由三部分組成 master 儲存資料位圖,許可權資...
linux centos 掛載ntfs檔案系統
雖然舊版的 ntfs 在讀寫模式下很容易會吃掉你的資料,ntfs 3g 似乎能安全地進行讀寫。詳情見 ntfs 3g 的網頁。epel 軟體庫收錄了適用於 centos 7 及 centos 6 的 ntfs 3g 元件。若要安裝,請按照 軟體庫 頁的指引啟用 epel 軟體庫 yum instal...