RT Thread Ulog 檔案系統後端

2021-10-14 18:48:08 字數 2250 閱讀 6321

文章目錄

一、建立基本工程

二、配置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...