精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于OpenHarmony標準接口的文件讀寫實現案例

系統 OpenHarmony
本文基于小凌派-RK2206開發板 + OpenHarmony輕量級操作系統 + LitteFS文件系統,通過Hal_file標準接口實現對Flash讀寫功能。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

一、簡介

在嵌入式領域,FLASH是一種常用的存儲設備,Flash閃存作為嵌入式系統的主要存儲設備有其自身的特性。Fash的寫入操作只能把對應位置的1修改成0,而不能把0修改為1,而擦除Fash就是把對應存儲塊的內容恢復為1。因此,一般情況下向Fash寫入內容時,需要先擦除對應的存儲區間,這種擦除是以塊(Bock)為單位進行的。閃存主要有NOR和NAND兩種技術。因為Flash存儲器的擦寫次數是有限的,NAND閃存還有特殊的硬件接口和讀寫時序,于是就出現了專門針對FLASH的文件系統。比較常用的有jffs2,yaffs2,logfs,ubifs。本文基于小凌派-RK2206開發板 + OpenHarmony輕量級操作系統 + LitteFS文件系統,通過hal_file標準接口實現對Flash讀寫功能。

二、hal_file標準接口

頭文件://utils/native/lite/hals/file/hal_file.h。

1、HalFileOpen()

打開/創建文件,類似于Linux的open函數。

int HalFileOpen(const char *path, int oflag, int mode);

參數說明:

基于OpenHarmony標準接口的文件讀寫實現案例-開源基礎軟件社區

返回值為LOS_OK表示成功,其余為失敗。

2、HalFileClose()

關閉文件,類似于Linux的close函數。

int HalFileClose(int fd);

參數說明:

基于OpenHarmony標準接口的文件讀寫實現案例-開源基礎軟件社區

返回值為LOS_OK表示成功,其余為失敗。

3、HalFileRead()

從文件中讀取一段內容,類似于Linux的read函數。

int HalFileRead(int fd, char* buf, unsigned int len);

參數說明:

基于OpenHarmony標準接口的文件讀寫實現案例-開源基礎軟件社區

返回值為從文件讀取內容的大小,0或者小于0則為失敗。

4、HalFileWrite()

往文件寫入一段內容,類似于Linux的write函數。

int HalFileWrite(int fd, const char* buf, unsigned int len);

參數說明:

基于OpenHarmony標準接口的文件讀寫實現案例-開源基礎軟件社區

返回值為成功寫入到文件的內容大小,0或者小于0則為失敗。

5、HalFileDelete()

刪除文件,類似于Linux的unlink函數。

int HalFileDelete(const char* path);

參數說明:

基于OpenHarmony標準接口的文件讀寫實現案例-開源基礎軟件社區

返回值為LOS_OK為成功,其余則為失敗。

6、HalFileStat()

獲取文件大小,類似于Linux的stat函數。

int HalFileStat(const char* path, unsigned int* fileSize);

參數說明:

基于OpenHarmony標準接口的文件讀寫實現案例-開源基礎軟件社區

返回值為LOS_OK為成功,其余則為失敗。

7、HalFileSeek()

文件所在位置移動,類似于Linux的lseek函數。

int HalFileSeek(int fd, int offset, unsigned int whence);

參數說明:

基于OpenHarmony標準接口的文件讀寫實現案例-開源基礎軟件社區

返回值為LOS_OK為成功,其余則為失敗。

三、程序設計

本例程演示如何在小凌派-RK2206開發板上使用鴻蒙LiteOS-M內核接口,進行文件讀寫開發。例程流程如下所示:

(1)創建一個文件。

(2)每5秒進行1次文件讀寫操作。

(3)文件標識移動到文件起始處,讀文件內容,并打印。

(4)文件標識移動到文件起始處,寫文件內容。

(5)循環上述的第2~4步驟。

1、任務創建代碼分析

在file_example函數中通過LOS_TaskCreate函數創建一個線程:hal_file_thread。

void file_example()
{
unsigned int thread_id;
TSK_INIT_PARAM_S task = {0};
unsigned int ret = LOS_OK;
task.pfnTaskEntry = (TSK_ENTRY_FUNC)hal_file_thread;
task.uwStackSize = 1024 * 10;
task.pcName = "hal_file_thread";
task.usTaskPrio = 25;
ret = LOS_TaskCreate(&thread_id, &task);
if (ret != LOS_OK)
{
printf("Falied to create hal_file_thread ret:0x%x\n", ret);
return;
}
}
APP_FEATURE_INIT(file_example);

2、文件讀寫代碼分析

hal_file_thread函數負責打開文件,每5秒移動到文件頭讀取數據,再移動到文件頭寫入一段內容,重復以上流程。

void hal_file_thread()
{
int fd;
char buffer[1024];
int read_length, write_length;
int current = 0;

/* 打開文件,如果沒有該文件就創建,如有該文件則打開
* O_TRUNC_FS => 清空文件內容
*/
//fd = HalFileOpen(FILE_NAME, O_RDWR_FS | O_CREAT_FS, 0);
fd = HalFileOpen(FILE_NAME, O_RDWR_FS | O_CREAT_FS | O_TRUNC_FS, 0);
if (fd == -1)
{
printf("%s HalFileOpen failed!\n", FILE_NAME);
return;
}
while (1)
{
/* 文件位置移動到文件開始位置 */
HalFileSeek(fd, 0, SEEK_SET);
memset(buffer, 0, sizeof(buffer));
/* 讀取文件內容 */
read_length = HalFileRead(fd, buffer, sizeof(buffer));
printf("read: \n");
printf(" length = %d\n", read_length);
printf(" content = %s\n", buffer);
/* 文件位置移動到文件開始位置 */
HalFileSeek(fd, 0, SEEK_SET);
memset(buffer, 0, sizeof(buffer));
snprintf(buffer, sizeof(buffer), "Hello World(%d) => ", current);
/* 寫入文件 */
write_length = HalFileWrite(fd, buffer, strlen(buffer));
current++;
LOS_Msleep(5000);
}
HalFileClose(fd);
}

四、編譯過程

1、搭建和下載源代碼

我已將OpenHarmony源代碼上傳到Gitee社區中,大家可以根據以下網址下載。

https://gitee.com/Lockzhiner-Electronics/lockzhiner-rk2206-openharmony3.0lts。

注意:編譯環境可根據以下網址來操作:https://gitee.com/Lockzhiner-Electronics/lockzhiner-rk2206-openharmony3.0lts/blob/master/vendor/lockzhiner/rk2206/README_zh.md。

2、修改編譯腳本

修改 vendor/lockzhiner/rk2206/sample 路徑下 BUILD.gn 文件,指定 a7_hal_file 參與編譯。

./a7_hal_file:hal_file_example”,

修改 device/lockzhiner/rk2206/sdk_liteos 路徑下 Makefile 文件,添加 -lhal_file_example 參與編譯。

apps_LIBS = -lhal_file_example

3、編譯固件

hb set -root .
hb set
hb build -f

4、燒寫固件

請參考Gitee網址的說明手冊(“燒錄打印”章節):https://gitee.com/Lockzhiner-Electronics/lockzhiner-rk2206-openharmony3.0lts/blob/master/device/rockchip/README_zh.md。

五、實驗結果

程序編譯燒寫到開發板后,按下開發板的RESET按鍵,通過串口軟件查看日志如下:

HalFileInit: Flash Init Successful!
read:
length = 0
content =
read:
length = 18
content = Hello World(0) =>
read:
length = 18
content = Hello World(1) =>

好了,今天的課程就到這里,我們下次再見!

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??。

責任編輯:jianghua 來源: ??51CTO開源基礎軟件社區
相關推薦

2023-11-10 09:32:23

Python文件操作

2022-07-25 14:17:04

JS應用開發

2022-07-19 20:33:38

MQTT阿里云IoT服務

2022-05-27 14:55:34

canvas畫布鴻蒙

2024-01-11 15:54:55

eTS語言TypeScript應用開發

2023-05-08 15:48:13

智能音箱鴻蒙

2024-03-04 15:06:38

鴻蒙智能教室應用開發

2019-11-19 11:20:25

Python數據結構Windows

2022-07-26 14:40:42

ArkUIJS

2022-06-28 14:42:26

ETS購物車應用

2009-11-02 10:53:34

VB.NET INI文

2023-01-13 16:54:38

2022-03-21 15:42:36

智能家居物聯網MQTT

2023-03-08 15:51:10

2023-08-18 14:28:18

UART異步通信

2022-09-15 15:04:16

ArkUI鴻蒙

2022-09-20 14:35:59

ArkUI鴻蒙JS

2023-07-26 09:41:57

內核編程接口線程管理

2022-06-16 15:07:06

布局結構app

2023-02-01 16:28:30

Linux內核鴻蒙
點贊
收藏

51CTO技術棧公眾號

亚洲男人av| 91精品国产综合久久久蜜臀九色| 久久亚洲人体| 亚洲男女毛片无遮挡| 国产亚洲欧美一区二区三区| 最新一区二区三区| 男女啪啪999亚洲精品| 亚洲人吸女人奶水| 久久偷看各类wc女厕嘘嘘偷窃 | 国产精品美女午夜av| 亚洲av无一区二区三区| 9999久久久久| 亚洲一级二级三级| 日韩国产高清一区| 精品人妻一区二区三区换脸明星| 美女精品在线观看| 欧美精品亚州精品| 一级在线观看视频| 国产成人福利夜色影视| 国产欧美一区二区精品仙草咪| 成人性生交xxxxx网站| 国语对白永久免费| 久久99影视| 日韩欧美另类在线| r级无码视频在线观看| 国产精品天堂| 99精品视频在线观看免费| 91精品美女在线| 日本熟妇一区二区三区| 黄色亚洲在线| 亚洲美女喷白浆| 亚洲乱妇老熟女爽到高潮的片| 不卡av免费观看| 亚洲三级小视频| 成人精品一二区| 日本三级片在线观看| 99久久九九| 国产亚洲欧洲高清| 中文字幕av网址| 久久精品黄色| 欧美在线色视频| 欧美三级午夜理伦三级| 成人性生交大片免费看网站| 久久久久国产精品人| 国产三区精品| 中文字幕一区二区三区免费看| 一区二区久久| 777777777亚洲妇女| 久久久综合久久| 久久99国内| 亚洲人成电影网| 女尊高h男高潮呻吟| 精品淫伦v久久水蜜桃| 精品久久免费看| 老女人性生活视频| 年轻的保姆91精品| 红桃av永久久久| 97在线国产视频| 国产三级伦理在线| 国产精品乱子久久久久| 高清国产在线一区| 91麻豆精品在线| 免费成人av资源网| 国产一区视频在线播放| 日韩av大片在线观看| 99精品国产99久久久久久福利| 最近2019免费中文字幕视频三 | 日韩欧美精品一区| 欧美大片国产精品| av电影在线播放| 日韩黄色在线| 日韩一级片网址| av免费观看不卡| 免费视频亚洲| 日韩在线视频一区| 国精产品一区一区三区免费视频| 豆花视频一区| 欧洲亚洲国产日韩| 亚洲综合婷婷久久| 成人性生交大片免费观看网站| 91九色02白丝porn| 91免费黄视频| 欧美三级网址| 欧美日韩国产色| 久久在线中文字幕| 夜鲁夜鲁夜鲁视频在线播放| 91传媒视频在线播放| 亚洲综合婷婷久久| 精品人人人人| 最新亚洲国产精品| 欧美黄色激情视频| 国产精品精品国产一区二区| 国产亚洲欧美另类中文| 国产97免费视频| 久久久久久久久久久妇女| 国产一区二区三区在线看| 日韩精品一区二区三区在线视频| 国产精品啊啊啊| 国产精品69av| 在线观看亚洲黄色| 乱人伦精品视频在线观看| 性色av一区二区三区红粉影视| 国产视频1区2区| 国产成人无遮挡在线视频| 亚洲www在线| 国产手机精品视频| 精东粉嫩av免费一区二区三区| 国产精品区免费视频| av男人的天堂在线| 中文天堂在线一区| 国产主播自拍av| 中文在线аv在线| 欧美一区二区免费视频| 国产精品999.| 亚洲性视频在线| 日韩欧美国产一区二区在线播放 | 97超级碰在线看视频免费在线看| 国产九色91回来了| 99在线精品观看| 久久精品在线免费视频| 秋霞在线午夜| 五月天国产精品| 激情网站五月天| 成人h在线观看| 91精品婷婷国产综合久久性色| 中国美女乱淫免费看视频| 俺要去色综合狠狠| 97视频在线观看视频免费视频 | 91捆绑美女网站| 欧美18视频| av资源网在线播放| 日韩一区二区三区四区| 五月天婷婷丁香网| 老司机精品久久| 91免费精品国偷自产在线| 成人激情四射网| 17c精品麻豆一区二区免费| 老司机午夜av| 狠狠做六月爱婷婷综合aⅴ| 精品国产欧美一区二区五十路 | 日韩欧美资源站| 99自拍视频在线| 男女激情视频一区| 日本一区视频在线观看| 中文在线аv在线| 亚洲毛茸茸少妇高潮呻吟| 在线观看天堂av| 亚洲欧洲一区| 国产精品日韩欧美| 午夜精品小视频| 久久先锋资源网| 神马午夜伦理影院| 不卡av影片| 亚洲精品一区二区网址| www.中文字幕在线观看| 91在线精品秘密一区二区| 欧美 国产 综合| 亚洲小说图片| 久久久在线视频| 伊人久久一区二区| 国产精品色哟哟网站| 国产 日韩 欧美在线| 波多野结衣在线一区二区| 欧美丰满少妇xxxxx做受| 成人av一区二区三区在线观看| 日本一区二区三区dvd视频在线| 欧美人与动牲交xxxxbbbb| 欧美特大特白屁股xxxx| 精品国产a毛片| 久久不卡免费视频| 久久精品亚洲麻豆av一区二区 | a v视频在线观看| 久久九九久精品国产免费直播| 激情综合网俺也去| 精品国内亚洲2022精品成人| 欧美在线亚洲在线| 国产 欧美 自拍| 欧美日韩国产麻豆| 免费黄色三级网站| 久久精品一本| 看一级黄色录像| 欧美视频第一| 亚洲一级免费视频| 国产精品无码久久av| 国产精品视频一二三区| 欧美性受xxxx黒人xyx性爽| 欧美精品播放| 成人蜜桃视频| 欧美性video| 精品视频一区在线视频| 日干夜干天天干| 亚洲国产经典视频| 国产九九在线视频| 欧美日韩 国产精品| 亚洲最大的免费| 黄网站app在线观看| 欧美体内she精视频| 久久久久亚洲av成人片| 国产清纯白嫩初高生在线观看91| 999香蕉视频| 一本精品一区二区三区| 蜜桃精品久久久久久久免费影院 | 综合久久2019| 亚洲四色影视在线观看| 久久精品视频2| 亚洲国产综合色| 亚洲一区二区在线免费| 日韩一区二区久久| 欧美日韩另类丝袜其他| 亚洲成av在线| 日韩在线免费视频| 五月激情婷婷综合| 欧美性猛交xxxx免费看漫画| 日韩一级片av| 不卡的av中国片| 91精品视频国产| 精品电影一区| 久久精品日韩精品| 日韩精品久久久久久久软件91| 国产精品精品国产| 美女高潮在线观看| 欧美大片在线免费观看| 在线免费观看黄色av| 精品中文字幕久久久久久| 亚洲国产精品久久久久久久| 午夜日韩在线观看| 欧洲女同同性吃奶| 99久久精品国产导航| 日本xxxxxxx免费视频| 在线观看亚洲| 色狠狠久久av五月综合| 国产精品麻豆| 国产免费一区二区三区在线能观看| 求av网址在线观看| 亚洲成人av中文字幕| 99久久精品免费看国产交换| 欧美日韩你懂的| 日本一区二区欧美| 国产欧美日韩另类一区| 黄色片子免费看| 国产一区二区导航在线播放| 亚洲欧美日本一区二区三区| 国模吧视频一区| 日韩成人手机在线| 黄色日韩在线| 奇米精品一区二区三区| 99国产精品私拍| 日本成年人网址| 香蕉精品999视频一区二区| 国产淫片免费看| 久久狠狠一本精品综合网| 日韩视频在线观看视频| 日韩一级电影| 97超碰人人看人人| 香蕉成人影院| 国产精品夜色7777狼人| av资源新版天堂在线| 久久精品国产亚洲| 男同在线观看| 中文字幕国产亚洲| 少妇高潮久久久| 欧美一二三区在线观看| 99国产揄拍国产精品| 欧美电视剧在线看免费| 亚洲乱色熟女一区二区三区| 欧美日韩精品欧美日韩精品| 日韩福利片在线观看| 亚洲精品国产无天堂网2021 | 日韩一级视频在线观看| 久久久久久久久久久久久夜| 毛片aaaaaa| 一区二区三区资源| 五月婷婷六月香| 亚洲另类在线视频| 国产精品免费av一区二区| 日韩欧美国产黄色| 一级黄色录像大片| 日韩午夜激情视频| 深夜福利在线观看直播| 这里精品视频免费| 色婷婷在线播放| 热久久这里只有| 国产成年精品| 成人黄色片网站| 日本精品久久久久中文字幕| 欧美三级精品| 久久久亚洲天堂| 欧美6一10sex性hd| 欧美在线视频观看| 日本免费一区二区六区| 国产精品爽爽爽爽爽爽在线观看| 乡村艳史在线观看| 国产日韩欧美在线观看| 伊人久久噜噜噜躁狠狠躁| 欧洲一区二区日韩在线视频观看免费| 98精品久久久久久久| 欧美成人免费在线观看视频| 国产精品第十页| 99久久激情视频| 日日夜夜精品视频天天综合网| 一二三级黄色片| 国产一区二区精品久久| 黑人巨大精品欧美| 亚洲人成在线播放网站岛国| 日本韩国欧美中文字幕| 欧美一区二区免费观在线| 色中色在线视频| 亚洲午夜国产成人av电影男同| 午夜小视频在线观看| 国产精品第一第二| 日韩欧国产精品一区综合无码| 国产伦精品一区二区三区视频孕妇 | 国产极品国产极品| 在线亚洲一区观看| 欧美一区二区黄片| 久久久999国产| 久久久成人av毛片免费观看| 国产自产在线视频一区| 自拍欧美日韩| 中文字幕在线视频精品| 国产欧美日韩亚州综合| 久久一区二区三区视频| 日本精品免费观看高清观看| 国产小视频一区| 亚洲人高潮女人毛茸茸| 在线国产91| 欧美黄色免费网站| 国产95亚洲| 在线视频一区观看| 日本亚洲最大的色成网站www| 特大黑人巨人吊xxxx| 国产精品乱人伦中文| 波多野结衣在线观看一区| 欧美精品久久一区| 色综合免费视频| 久久久日本电影| 国产91精品入| 国产aaa免费视频| 日本少妇一区二区| 欧美 日韩 成人| 欧美性一二三区| 囯产精品一品二区三区| 亚洲性生活视频| 第一av在线| 精品国产乱码久久久久久久软件| 成人情趣视频| 给我免费播放片在线观看| 国产成人啪午夜精品网站男同| 欧美日韩色视频| 日韩一级片在线播放| shkd中文字幕久久在线观看| 久久久久久久色| 女同另类激情重口| av之家在线观看| 久久久久久久国产精品影院| 日韩综合在线观看| 在线视频欧美性高潮| 亚洲青青久久| 蜜桃麻豆91| 老司机免费视频久久| 亚洲国产精品第一页| 香蕉成人啪国产精品视频综合网| 亚洲天堂手机版| 久久躁日日躁aaaaxxxx| 日韩av一级| 蜜桃视频日韩| 奇米色一区二区| 九色porny自拍视频| 亚洲高清久久久| 性色av蜜臀av| 午夜精品一区二区三区在线视频| 香蕉久久夜色精品国产使用方法| 久久精品国产91精品亚洲| 午夜18视频在线观看| 俺去啦;欧美日韩| 日韩欧美激情电影| 日本福利视频在线| 成人网男人的天堂| 欧美日韩一二三四区| 亚洲品质视频自拍网| 色综合视频一区二区三区44| 男人c女人视频| 国产精品一区三区| 毛片在线免费视频| 亚洲第一页中文字幕| 三级成人黄色影院| 国产盗摄视频在线观看| 91在线观看地址| 国产又黄又大又粗的视频| 欧美激情免费观看| 麻豆精品一区| 黄色录像特级片| 国产精品一区二区视频| 波兰性xxxxx极品hd| 亚洲国产精品字幕| 黄色成人小视频| 日本网站免费在线观看| 99re这里只有精品首页| 日韩乱码在线观看| 亚洲国产精品热久久|