国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

OpenHarmony設備開發(三)- 小熊派Nano3.1系統復現串口

系統 OpenHarmony
燒錄前提是我們有3.1的源碼以及編譯后的可燒錄文件.由于ubuntu上的下載燒錄工作過于繁雜,本次主要借助DevEco Device Tool工具進行下載以及燒錄適用于Hi3861芯片的3.1輕量系統源碼。

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

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

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

前言

當前小熊派Nano官方給的源碼是OpenHarmony1.0,而OpenHarmony2.x和3.x都有對輕量化系統增加了新的特性,因此想嘗試一下為Nano板燒錄OpenHarmony3.1的系統(雖然都沒用上新特性emm),并復現串口收發demo.

【FFH】OpenHarmony設備開發(三)- 小熊派Nano3.1系統復現串口-開源基礎軟件社區

OpenHarmony2.x和3.x新增特性:

  • 新增輕量級內核能力增強,包括文件系統增強、內核調試工具增強支持、內核模塊支持可配置、三方芯片適配支持、支持ARM9架構等。
  • 輕量級圖形能力增強支持,包括支持多語言字體對齊、支持顯示控件輪廓、支持點陣字體、供統一多后端框架支持多芯片平臺等。
  • DFX能力增強支持,包括HiLog功能增強、HiEvent功能增強,提供輕量級系統信息dump工具、提供重啟維側框架等。
  • AI能力增強支持,包括新增linux內核適配支持、AI引擎支持基于共享內存的數據傳輸。
  • 新增輕量級分布式能力增強,支持從輕量級系統啟動標準系統上的Ability。
  • 軟總線能力增強支持,提供認證通道傳輸能力,用于設備綁定。
  • 輕量級全球化能力增強支持,新增31種語言支持。
  • 輕量系統上新增權限屬性字段及其寫入接口,上層應用可通過該字段實現相關業務。
  • HiStreamer輕量級支持可定制的媒體管線框架、Linux版本init支持熱插拔、OS輕內核&驅動啟動優化、快速啟動能力支持。

燒錄準備

燒錄前提是我們有3.1的源碼以及編譯后的可燒錄文件.由于ubuntu上的下載燒錄工作過于繁雜,本次主要借助DevEco Device Tool工具進行下載以及燒錄適用于Hi3861芯片的3.1輕量系統源碼。

工具介紹

HUAWEI DevEco Device Tool是OpenHarmony面向智能設備開發者提供的一站式集成開發環境,支持OpenHarmony的組件按需定制,支持代碼編輯、編譯、燒錄和調試等功能,支持C/C++語言,以插件的形式部署在Visual Studio Code上。

DevEco Device Tool官方文檔:

https://device.harmonyos.com/cn/docs/documentation/guide/service_introduction-0000001050166905。

具體操作

主頁->新建工程->選擇OpenHarmony源碼->OpenHarmony樣例->WLAN連接類產品->確認。

【FFH】OpenHarmony設備開發(三)- 小熊派Nano3.1系統復現串口-開源基礎軟件社區

燒錄樣例

本次將在3.1系統上復現Nano官方1.0系統里帶的串口UART樣例。

分析樣例

首先分析官方給出的串口樣例(因為在不同系統中的線程創建步驟相同,因此省略線程創建),官方給出的串口樣例主要操作是初始化串口,發送數據,接收數據。

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include "ohos_init.h"
#include "cmsis_os2.h"
#include "wifiiot_errno.h"
#include "wifiiot_gpio.h"
#include "wifiiot_gpio_ex.h"
#include "wifiiot_uart.h"
#define UART_TASK_STACK_SIZE 1024 * 8
#define UART_TASK_PRIO 25
#define UART_BUFF_SIZE 1000
static const char *data = "Hello, BearPi!\r\n";
static void UART_Task(void)
{
uint8_t uart_buff[UART_BUFF_SIZE] = {0};
uint8_t *uart_buff_ptr = uart_buff;
uint32_t ret;
//串口屬性
WifiIotUartAttribute uart_attr = {
//傳輸比特率: 9600
.baudRate = 9600,

//數據長度: 8bits
.dataBits = 8,
.stopBits = 1,
.parity = 0,
};
//Initialize uart driver
ret = UartInit(WIFI_IOT_UART_IDX_1, &uart_attr, NULL);
if (ret != WIFI_IOT_SUCCESS)
{
printf("Failed to init uart! Err code = %d\n", ret);
return;
}
printf("UART Test Start\n");
while (1)
{
printf("=======================================\r\n");
printf("*************UART_example**************\r\n");
printf("=======================================\r\n");

//通過串口1發送數據
UartWrite(WIFI_IOT_UART_IDX_1, (unsigned char *)data, strlen(data));

//通過串口1接收數據
UartRead(WIFI_IOT_UART_IDX_1, uart_buff_ptr, UART_BUFF_SIZE);

printf("Uart1 read data:%s", uart_buff_ptr);
usleep(1000000);
}
}

對比頭文件

我們首先關注引用頭文件,小熊派官方demo引用的頭文件分別是"wifiiot_errno.h" "wifiiot_gpio.h" "wifiiot_gpio_ex.h" "wifiiot_uart.h",這幾個頭文件都保存在//base/iot_hardware/interfaces/kits/wifiiot_lite路徑下。

【FFH】OpenHarmony設備開發(三)- 小熊派Nano3.1系統復現串口-開源基礎軟件社區

3.1輕量系統中相關的頭文件則保存在了//base/iot_hardware/peripheral/interfaces/kits。

【FFH】OpenHarmony設備開發(三)- 小熊派Nano3.1系統復現串口-開源基礎軟件社區

不同版本的系統的頭文件名稱會有略微不同,提供的API接口名稱也會有所不同,但是通過一個個比對還是可以發現,雖然API接口名稱不同,但最終的操作函數還是相同的,實現的目的還是相同的。

對比API接口

下面對比一下UART的init接口,1.0系統提供的是UartInit(WifiIotUartIdx id, const WifiIotUartAttribute *param, const WifiIotUartExtraAttr *extraAttr);而3.1系統提供的是IoTUartInit(unsigned int id, const IotUartAttribute *param)。

能發現這兩個函數最終指向的操作函數hi_uart_init都是相同的,如下圖對比:

【FFH】OpenHarmony設備開發(三)- 小熊派Nano3.1系統復現串口-開源基礎軟件社區

【FFH】OpenHarmony設備開發(三)- 小熊派Nano3.1系統復現串口-開源基礎軟件社區

通過比較兩個版本的API接口,可以發現以下的API接口是對應關系:

1.0系統的API接口

3.1系統的API接口

UartInit

IoTUartInit

UartRead

IoTUartRead

UartWrite

IoTUartWrite

WifiIotUartAttribute

IotUartAttribute

PS:3.1系統中沒有WifiIotUartIdx列舉,我們從1.1系統中的列舉(如下)可以得知,我們所要用到的串口序號為1.因此我們在接下來的編寫代碼中,直接用1作為串口序號使用。

typedef enum {
/** Physical port 0 */
WIFI_IOT_UART_IDX_0,
/** Physical port 1 */
WIFI_IOT_UART_IDX_1,
/** Physical port 2 */
WIFI_IOT_UART_IDX_2,
/** Maximum value */
WIFI_IOT_UART_IDX_MAX
}WifiIotUartIdx;

編寫代碼

在該路徑applications/sample/wifi-iot/app下創建源代碼文件夾,并在里面創建一個.c源文件和BUILD.gn。

.c源文件:

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include "ohos_init.h"
#include "cmsis_os2.h"
#include "iot_gpio.h"
#include "iot_uart.h"
static const char *data = "Hello, BearPi Nano!!!!!\r\n";
static void UART_Task(void)
{
uint8_t uart_buff[1000] = {0};
uint8_t *uart_buff_ptr = uart_buff;
uint32_t ret;
IotUartAttribute uart_attr = {

// baud_rate: 9600
.baudRate = 9600,
// data_bits: 8bits
.dataBits = 8,
.stopBits = 1,
.parity = 0,
};
// Initialize uart driver
ret = IoTUartInit(1, &uart_attr);
if (ret != 0)
{
printf("Failed to init uart! Err code = %d\n", ret);
return;
}
printf("UART Test Start\n");
while (1)
{
printf("=======================================\r\n");
printf("*************UART_example**************\r\n");
printf("=======================================\r\n");

//通過串口1發送數據
IoTUartWrite(1, (unsigned char *)data, strlen(data));
(void)memset_s(uart_buff_ptr, sizeof(uart_buff_ptr), 0, sizeof(uart_buff_ptr));
//通過串口1接收數據
IoTUartRead(1, uart_buff_ptr, 1000);
printf("Uart1 read data:%s", uart_buff_ptr);
usleep(1000000);
}
}
static void UART_ExampleEntry(void)
{
osThreadAttr_t attr;
attr.name = "UART_Task";
attr.attr_bits = 0U;
attr.cb_mem = NULL;
attr.cb_size = 0U;
attr.stack_mem = NULL;
attr.stack_size = 1024 * 8;
attr.priority = 25;
if (osThreadNew((osThreadFunc_t)UART_Task, NULL, &attr) == NULL)
{
printf("[ADCExample] Falied to create UART_Task!\n");
}
}
SYS_RUN(UART_ExampleEntry);

BUILD.gn編譯腳本:

static_library("uart_example") {
sources = [
"uart.c"
]
include_dirs = [
"http://utils/native/lite/include",
"http://kernel/liteos_m/components/cmsis/2.0",
"http://base/iot_hardware/interfaces/kits/wifiiot_lite",
"http://ohos_bundles/@ohos/iot_controller/interfaces/kits",
]
}

最后修改app路徑下的BUILD.gn,添加編譯UART案例。

【FFH】OpenHarmony設備開發(三)- 小熊派Nano3.1系統復現串口-開源基礎軟件社區

編譯,燒錄

隨后就是老一套,連接Nano板,編譯,燒錄.具體操作可以參考 https://ost.51cto.com/posts/14773。

【FFH】OpenHarmony設備開發(三)- 小熊派Nano3.1系統復現串口-開源基礎軟件社區

效果

將Nano的RX和TX短接,便可實現自己的收發數據,打開終端查看效果。

【FFH】OpenHarmony設備開發(三)- 小熊派Nano3.1系統復現串口-開源基礎軟件社區

【FFH】OpenHarmony設備開發(三)- 小熊派Nano3.1系統復現串口-開源基礎軟件社區

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

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

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

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

2022-02-11 13:49:42

Linux系統鴻蒙

2021-12-30 16:12:07

鴻蒙HarmonyOS應用

2022-02-14 14:28:57

驅動開發鴻蒙系統

2022-04-02 20:45:04

Hi3516開發板操作系統鴻蒙

2022-01-05 20:27:45

鴻蒙HarmonyOS應用

2022-10-24 14:54:29

LWIP協議鴻蒙

2022-05-31 15:27:11

CSS動畫

2022-08-15 22:28:57

串口訪問鴻蒙

2022-09-06 15:25:22

Wifi設備開發

2022-10-25 14:51:11

設備開發鴻蒙

2022-09-22 15:23:40

設備開發鴻蒙

2024-04-09 09:34:36

鴻蒙系統燒錄操作系統

2022-04-18 10:37:01

鴻蒙操作系統開發工具

2022-02-15 14:06:36

OpenHarmon操作系統鴻蒙

2022-05-07 16:13:59

DevEcoTool鴻蒙

2023-02-28 15:49:09

鴻蒙應用開發

2022-02-16 15:55:21

驅動調用操作系統鴻蒙

2023-05-16 14:49:25

鴻蒙內核移植
點贊
收藏

51CTO技術棧公眾號

亚洲国产又黄又爽女人高潮的| 另类ts人妖一区二区三区| 日本精品视频在线观看| 国产传媒一区在线| 91av资源在线| 国产一区私人高清影院| 亚洲欧洲另类国产综合| 二区三区精品| 国产美女主播在线播放| 精品在线欧美视频| 日韩专区中文字幕一区二区| 在线观看免费版| 国产精品久久久久久久久久久久冷| 亚洲影视资源网| 九九亚洲精品| 狠狠干夜夜操| 日韩av电影免费观看高清| 国产精品国产自产拍高清av王其 | 亚洲性人人天天夜夜摸| 国产在线制服美女| 国产精品久久99久久| 亚洲欧美国产三级| 亚洲aaa级| 天堂av免费观看| 国产精品久久97| 午夜欧美大尺度福利影院在线看| 欧美一区二区三| 亚洲成人套图| av一区二区在线看| 欧美日韩免费一区二区三区 | 欧美色欧美亚洲高清在线视频| 精品99在线| 在线国产1区| 97久草视频| 91精品午夜视频| 热久久免费视频| 色香欲www7777综合网| 奇米影视亚洲色图| 欧美激情综合色综合啪啪五月| 国产精品高潮呻吟| 久久中文视频| 岛国在线大片| 亚洲一区二区在线观| 永久免费毛片在线播放不卡 | wwwwxxxx在线观看| 日本a级片在线观看| 久久精品国产99国产精品澳门| 久久精品日韩一区二区三区| 中国av一区| 国产午夜视频在线观看| 免费成人看片网址| 国产一区二区三区在线播放免费观看| 91丨porny丨中文| 国产一区二区三区不卡视频网站| 蜜芽tv福利在线视频| 亚洲精品永久www嫩草| 久久精品成人欧美大片古装| 尤物在线观看一区| 国产日韩免费| 绿色成人影院| 成人网址大全| 精品国产乱码久久久久久蜜柚 | 欧美特大特白屁股xxxx| 色婷婷综合久久久久中文字幕 | 欧美裸体一区二区三区| 国产在线精品免费av| 激情视频亚洲| 中文字幕亚洲精品视频| 日日夜夜精品网站| 欧美激情啊啊啊| 色丁香久综合在线久综合在线观看 | 久久99青青| 麻豆tv在线| 免费av手机在线观看| 日本免费一区二区三区视频观看| 在线精品亚洲一区二区不卡| 久久激五月天综合精品| 久久365资源| 欧美激情二区| 亚洲国产精品久久久久爰色欲| 91视频九色网站| 亚洲一级免费视频| 午夜视黄欧洲亚洲| 国产91在线看| 欧美电影免费| 电影久久久久久| 日本黄在线观看| 欧美成人高潮一二区在线看| 国产精品爽爽爽| 欧美大片国产精品| 亚洲日本va在线观看| 日韩国产一区二| 日韩av三区| 国产不卡123| 在线成年人视频| 99色这里只有精品| 国产一区二区自拍| 97国产suv精品一区二区62| 在线电影一区二区三区| 亚洲欧洲日韩综合一区二区| 毛片av一区二区三区| 亚洲婷婷丁香| 91豆花视频在线播放| jk破处视频在线| 国产在线视频综合| a级国产乱理论片在线观看99| 久久精品小视频| 欧美一区日韩一区| 亚洲黄色片在线观看| 丁香桃色午夜亚洲一区二区三区| 午夜精品免费| 国偷自产av一区二区三区| 9999精品成人免费毛片在线看 | h片精品在线观看| 黄色直播在线| 国产成人精品视频免费看| 久久综合入口| 国产美女直播视频一区| 久久91超碰青草是什么| 日韩精品中文字幕在线播放| 91福利小视频| 一区二区三区在线播| 97久久久精品综合88久久| 亚洲伊人网站| 久久久人成影片免费观看| 日韩成人一级| 999久久久国产999久久久| 国产精品25p| 国产三区在线观看| 水莓100在线视频| 99re热视频在线| 欧美三级在线观看视频| 亚洲综合第一| 久久资源av| 操一操视频一区| 成人免费淫片aa视频免费| 日av在线播放中文不卡| 欧美激情按摩在线| 久久色免费在线视频| 国产一区二区三区中文| 日韩hd视频在线观看| 在线综合亚洲欧美在线视频| 一本到不卡精品视频在线观看 | 亚洲成人影院少妇| 羞羞小视频视频| 妺妺窝人体色www在线小说| 欧美另类videosbestsex日本| 五月天久久狠狠| 久久久久久久久久久久久久久久av | 亚洲精品免费av| 国产精品九九九| 日本sm极度另类视频| 2018中文字幕一区二区三区| 久久亚洲欧美日韩精品专区 | 日本a在线播放| 你懂的在线视频| 国产对白在线正在播放| 成年人羞羞的网站| 国产精品igao视频| 亚洲人成电影| 你懂的网址国产 欧美| 粉嫩久久99精品久久久久久夜| 最近2019中文免费高清视频观看www99| 国产欧美日韩视频一区二区| 97精品超碰一区二区三区| 国产成人aaaa| 成人小视频免费在线观看| 国产精品亚洲第一区在线暖暖韩国| 麻豆一区二区三| 久久99精品国产.久久久久久| 久久精品国产第一区二区三区| 日本免费新一区视频 | 一菊综合网成人综合网| 97在线观看播放| 欧美日韩中文不卡| 国产国产国产国产国产国产| 日本高清中文字幕| 中文字幕av在线播放| 黄色的视频在线免费观看| av片在线看| 日韩在线资源| 第一中文字幕在线| av资源亚洲| 警花av一区二区三区| 偷窥自拍亚洲色图精选| 久久福利影院| 伊人久久亚洲热| 日本美女视频一区二区| 国产成人一级电影| 久久亚洲一级片| 亚洲欧美日韩一区| 色婷婷久久一区二区三区麻豆| 欧美精品丝袜中出| 国产视频在线一区二区| 久久精品视频在线播放| 日本欧美一级片| 国产精品一区在线播放| 一区二区三区视频在线播放| 久久深夜福利| 久久久www|