色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenHarmony3.0上編譯C控制Hi3516開(kāi)發(fā)板的LED閃爍

OpenHarmony技術(shù)社區(qū) ? 來(lái)源:鴻蒙技術(shù)社區(qū) ? 作者:亮子力 ? 2021-09-28 09:42 ? 次閱讀

OpenHarmony 分為輕量系統(tǒng)、小型系統(tǒng)、標(biāo)準(zhǔn)系統(tǒng),目前對(duì)應(yīng) LiteOS-M、LiteOS-A、Linux 內(nèi)核。但好像并沒(méi)有說(shuō)一定是按照使用內(nèi)核來(lái)劃分。我們這里姑且先這么區(qū)分。

本文使用的是比較新的 OpenHarmony 3.0 LTS 版本,Linux 內(nèi)核,編譯標(biāo)準(zhǔn)系統(tǒng)。

官方文檔已經(jīng)說(shuō)明了,如何使用 DevEco Studio 開(kāi)發(fā) hap 包,并運(yùn)行在開(kāi)發(fā)板,但是 ACE 框架能力有限。

設(shè)備硬件開(kāi)發(fā)還是需要 C,所以這篇文章,將在標(biāo)準(zhǔn)系統(tǒng)下編譯 C 控制 Hi3516 開(kāi)發(fā)板的 LED 閃爍。

環(huán)境準(zhǔn)備

3.0 源碼下載

repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony-3.0-LTS --no-repo-verify

repo sync -c

repo forall -c ‘git lfs pull’

區(qū)別于 2.0 需要安裝 ruby,其他基本都一樣。

sudo apt-get install ruby-full

編譯命令:

build/prebuilts_download.sh

。/build.sh --product-name Hi3516DV300

編寫(xiě) helloworld.c

在 applicationsstandard 目錄下新建一個(gè) app 目錄來(lái)存放 .c 的業(yè)務(wù)代碼。

比如 applicationsstandardapphelloworld.c 內(nèi)容容下:

#include 《stdio.h》int main(){

printf(“Hello world.

”);

return 0;

}

然后在當(dāng)前目錄新建編譯腳本 BUILD.gn 內(nèi)容如下:

import(“//build/ohos.gni”)

import(“//drivers/adapter/uhdf2/uhdf.gni”)

ohos_executable(“helloworld”) {

sources = [

“helloworld.c”

subsystem_name = “applications”

part_name = “prebuilt_hap”

}

然后添加到編譯框架 applicationsstandardhapohos.build 增加如下內(nèi)容。

“//applications/standard/app:helloworld”

最后執(zhí)行編譯命令即可,開(kāi)發(fā)板使用的是 Hi3516,在不指定 out 目錄時(shí),缺省生成在 /system/lib64 或 /system/lib 下。

6d1eed6c-1fc1-11ec-82a8-dac502259ad0.png

點(diǎn)亮開(kāi)發(fā)板 LED

能打印 helloworld 說(shuō)明環(huán)境是沒(méi)問(wèn)題的,接下來(lái)嘗試點(diǎn)亮開(kāi)發(fā)板的 LED。查看 Hi3516DV300 原理圖:

6dcc264e-1fc1-11ec-82a8-dac502259ad0.png

6e664ac6-1fc1-11ec-82a8-dac502259ad0.png

Hi3516DV300 共有 4 層板,由原理圖可知:最上層板的紅外補(bǔ)光燈接在 GPIO5_1,綠色 LED 指示燈在 GPIO2_3,核心板的紅色 LED 在 GPIO3_4。

接下來(lái)參考 OpenHarmony GPIO 驅(qū)動(dòng)說(shuō)明:

https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/driver/driver-platform-gpio-des.md

確定GPIO管腳號(hào):不同SOC芯片由于其GPIO控制器型號(hào)、參數(shù)、以及控制器驅(qū)動(dòng)的不同,GPIO管腳號(hào)的換算方式不一樣。

①Hi3516DV300:控制器管理 12 組 GPIO 管腳,每組 8 個(gè)。

GPIO 號(hào) = GPIO 組索引 (0~11) * 每組 GPIO 管腳數(shù)(8) + 組內(nèi)偏移

舉例:GPIO10_3 的 GPIO 號(hào) = 10 * 8 + 3 = 83。

②Hi3518EV300:控制器管理 10 組 GPIO 管腳,每組 10 個(gè)。

GPIO 號(hào) = GPIO 組索引 (0~9) * 每組 GPIO 管腳數(shù)(10) + 組內(nèi)偏移

舉例:GPIO7_3 的 GPIO 管腳號(hào) = 7 * 10 + 3 = 73

由此可以得出:

GPIO5_1 = 5 * 8 + 1;

GPIO2_3 = 2 * 8 + 3;

GPIO3_4 = 3 * 8 + 4;

然后新建 applicationsstandardappledtest.c,內(nèi)容如下:

#include 《stdlib.h》 // standard library 標(biāo)準(zhǔn)庫(kù)函數(shù)頭文件#include 《stdio.h》 // standard input output 標(biāo)準(zhǔn)輸入輸出函數(shù)#include 《stdint.h》 // 定義了擴(kuò)展的整數(shù)類型和宏#include 《unistd.h》 // POSIX 系統(tǒng) API 訪問(wèn)功能的頭文件#include 《fcntl.h》 // unix標(biāo)準(zhǔn)中通用的頭文件 define O_WRONLY and O_RDONLY // #include 《string.h》#define GPIO_DIR_IN “in”#define GPIO_DIR_OUT “out”#define GPIO_VAL_LOW 0#define GPIO_VAL_HIGHT 1int32_t GpioSetDir(uint16_t gpio, char* dir){

char path[100] = {0};

sprintf(path,“echo %d 》 /sys/class/gpio/export”,gpio);

system(path);

printf(“info:%s

”,path);

char direction[100] = {0};

sprintf(direction,“echo %s 》 /sys/class/gpio/gpio%d/direction”,dir,gpio);

system(direction);

printf(“info:%s

”,direction);

return 0;

}

int32_t GpioWrite(uint16_t gpio, uint16_t val)

{

char path[100] = {0};

sprintf(path,“echo %d 》 /sys/class/gpio/gpio%d/value”,val,gpio);

system(path);

printf(“info:%s

”,path);

return 0;

}

int main(){

uint16_t GPIO5_1 = 5 * 8 + 1;

uint16_t GPIO2_3 = 2 * 8 + 3;

uint16_t GPIO3_4 = 3 * 8 + 4;

printf(“LED test start

”);

int32_t ret;

// uint16_t val;

ret = GpioSetDir(GPIO5_1,GPIO_DIR_OUT);

if (ret != 0) {

printf(“GpioSerDir: failed, ret %d

”, ret);

return 0;

}

ret = GpioSetDir(GPIO2_3,GPIO_DIR_OUT);

if (ret != 0) {

printf(“GpioSerDir: failed, ret %d

”, ret);

return 0;

}

ret = GpioSetDir(GPIO3_4,GPIO_DIR_OUT);

if (ret != 0) {

printf(“GpioSerDir: failed, ret %d

”, ret);

return 0;

}

while(1)

{

GpioWrite(GPIO5_1, GPIO_VAL_HIGHT);

usleep(1000000);

GpioWrite(GPIO5_1, GPIO_VAL_LOW);

usleep(1000000);

GpioWrite(GPIO2_3, GPIO_VAL_HIGHT);

usleep(1000000);

GpioWrite(GPIO2_3, GPIO_VAL_LOW);

usleep(1000000);

GpioWrite(GPIO3_4, GPIO_VAL_HIGHT);

usleep(1000000);

GpioWrite(GPIO3_4, GPIO_VAL_LOW);

usleep(1000000);

}

return 0;

}

將業(yè)務(wù)代碼添加到 BUILD.gn:

import(“//build/ohos.gni”)

import(“//drivers/adapter/uhdf2/uhdf.gni”)

ohos_executable(“helloworld”) {

sources = [

“helloworld.c”

subsystem_name = “applications”

part_name = “prebuilt_hap”

}

ohos_executable(“l(fā)edtest”) {

sources = [

“l(fā)edtest.c”

subsystem_name = “applications”

part_name = “prebuilt_hap”

}

applicationsstandardhapohos.build:

“//applications/standard/app:ledtest”

之后將程序燒錄到開(kāi)發(fā)板,執(zhí)行 。/system/bin/ledtest:

6ee87c1c-1fc1-11ec-82a8-dac502259ad0.png

就可以看到 LED 閃爍起來(lái)了。

本來(lái)是打算使用鴻蒙的 GPIO 接口來(lái)實(shí)現(xiàn)這個(gè)功能的,不過(guò)調(diào)試了很久也沒(méi)調(diào)通,最后無(wú)奈還是用的 system 自己實(shí)現(xiàn)的 GPIO 函數(shù)。

有沒(méi)使用 OpenHarmony 的 GPIO 成功的小伙伴可以留言一起交流啊。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    242

    文章

    23252

    瀏覽量

    660575
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5032

    瀏覽量

    97375
  • 鴻蒙系統(tǒng)
    +關(guān)注

    關(guān)注

    183

    文章

    2634

    瀏覽量

    66306
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3713

    瀏覽量

    16255

原文標(biāo)題:OpenHarmony 3.0上點(diǎn)亮開(kāi)發(fā)板LED

文章出處:【微信號(hào):gh_834c4b3d87fe,微信公眾號(hào):OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鴻蒙OpenHarmony【小型系統(tǒng) 編譯】(基于Hi3516開(kāi)發(fā)板

    OpenHarmony支持hb和build.sh兩種編譯方式。此處介紹hb方式,build.sh腳本編譯方式請(qǐng)參考[使用build.sh腳本編譯源碼]。
    的頭像 發(fā)表于 05-10 15:59 ?692次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>【小型系統(tǒng) <b class='flag-5'>編譯</b>】(基于<b class='flag-5'>Hi3516</b><b class='flag-5'>開(kāi)發(fā)板</b>)

    鴻蒙OpenHarmony【基于Hi3516DV300開(kāi)發(fā)板(時(shí)鐘應(yīng)用開(kāi)發(fā))】

    如何快速搭建基于OpenHarmony標(biāo)準(zhǔn)系統(tǒng)(Hi3516DV300開(kāi)發(fā)板)的應(yīng)用開(kāi)發(fā)環(huán)境,并基于一個(gè)時(shí)鐘APP示例逐步展示應(yīng)用的創(chuàng)建、開(kāi)發(fā)
    的頭像 發(fā)表于 05-08 15:27 ?1164次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>【基于<b class='flag-5'>Hi3516</b>DV300<b class='flag-5'>開(kāi)發(fā)板</b>(時(shí)鐘應(yīng)用<b class='flag-5'>開(kāi)發(fā)</b>)】

    鴻蒙OpenHarmony南向:【Hi3516標(biāo)準(zhǔn)系統(tǒng)入門(命令行方式)】

    除小型系統(tǒng)外,Hi3516DV300開(kāi)發(fā)板還支持標(biāo)準(zhǔn)系統(tǒng)。此章節(jié)簡(jiǎn)要介紹如何使用命令行在Hi3516DV300開(kāi)發(fā)板上進(jìn)行標(biāo)準(zhǔn)系統(tǒng)的開(kāi)發(fā)。
    的頭像 發(fā)表于 05-08 09:26 ?875次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>南向:【<b class='flag-5'>Hi3516</b>標(biāo)準(zhǔn)系統(tǒng)入門(命令行方式)】

    鴻蒙OpenHarmony南向:【Hi3516開(kāi)發(fā)板介紹】

    Hi3516DV300作為新一代行業(yè)專用Smart HD IP攝像機(jī)SOC,集成新一代ISP(Image Signal Processor)、H.265視頻壓縮編碼器以及高性能NNIE引擎,具備低碼率、高畫(huà)質(zhì)、低功耗等特點(diǎn),并具備強(qiáng)勁的智能處理和分析能力。
    的頭像 發(fā)表于 05-06 16:13 ?605次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>南向:【<b class='flag-5'>Hi3516</b><b class='flag-5'>開(kāi)發(fā)板</b>介紹】

    鴻蒙OpenHarmony【小型系統(tǒng) 燒錄】(基于Hi3516開(kāi)發(fā)板

    針對(duì)Hi3516DV300開(kāi)發(fā)板,除了DevEco Device Tool(操作方法請(qǐng)參考燒錄))外,還可以使用HiTool進(jìn)行燒錄。
    的頭像 發(fā)表于 04-28 15:03 ?1260次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>【小型系統(tǒng) 燒錄】(基于<b class='flag-5'>Hi3516</b><b class='flag-5'>開(kāi)發(fā)板</b>)

    HarmonyOS開(kāi)發(fā):【基于命令行(開(kāi)發(fā)環(huán)境)】

    支持在Windows環(huán)境下進(jìn)行編譯,如Hi3861、Hi3516系列開(kāi)發(fā)板。因此,建議使用Ubuntu的編譯環(huán)境對(duì)源碼進(jìn)行
    的頭像 發(fā)表于 04-25 17:54 ?1250次閱讀
    HarmonyOS<b class='flag-5'>開(kāi)發(fā)</b>:【基于命令行(<b class='flag-5'>開(kāi)發(fā)</b>環(huán)境)】

    鴻蒙OpenHarmony【小型系統(tǒng)運(yùn)行案例】 (基于Hi3516開(kāi)發(fā)板

    在完成Hi3516DV300的燒錄后,還需要設(shè)置BootLoader引導(dǎo)程序,才能運(yùn)行OpenHarmony系統(tǒng)。
    的頭像 發(fā)表于 04-23 21:00 ?440次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>【小型系統(tǒng)運(yùn)行案例】 (基于<b class='flag-5'>Hi3516</b><b class='flag-5'>開(kāi)發(fā)板</b>)

    鴻蒙OpenHarmony【小型系統(tǒng)燒錄】 (基于Hi3516開(kāi)發(fā)板

    燒錄是指將編譯后的程序文件下載到芯片開(kāi)發(fā)板的動(dòng)作,為后續(xù)的程序調(diào)試提供基礎(chǔ)。
    的頭像 發(fā)表于 04-23 17:29 ?690次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>【小型系統(tǒng)燒錄】 (基于<b class='flag-5'>Hi3516</b><b class='flag-5'>開(kāi)發(fā)板</b>)

    鴻蒙OpenHarmony【小型系統(tǒng)編譯】 (基于Hi3516開(kāi)發(fā)板

    DevEco Device Tool支持Hi3516DV300開(kāi)發(fā)板的源碼一鍵編譯功能,提供編譯工具鏈和編譯環(huán)境依賴的檢測(cè)及一鍵安裝,簡(jiǎn)化復(fù)
    的頭像 發(fā)表于 04-23 15:53 ?511次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>【小型系統(tǒng)<b class='flag-5'>編譯</b>】 (基于<b class='flag-5'>Hi3516</b><b class='flag-5'>開(kāi)發(fā)板</b>)

    OpenHarmony鴻蒙南向開(kāi)發(fā)案例:【智能貓眼(基于3516開(kāi)發(fā)板)】

    基于Hi3516開(kāi)發(fā)板,使用開(kāi)源OpenHarmony開(kāi)發(fā)的RTSP協(xié)議流媒體應(yīng)用。達(dá)到將Hi3516開(kāi)
    的頭像 發(fā)表于 04-19 22:01 ?599次閱讀
    <b class='flag-5'>OpenHarmony</b>鴻蒙南向<b class='flag-5'>開(kāi)發(fā)</b>案例:【智能貓眼(基于<b class='flag-5'>3516</b><b class='flag-5'>開(kāi)發(fā)板</b>)】

    鴻蒙OpenHarmony【搭建Ubuntu環(huán)境】

    支持在Windows環(huán)境下進(jìn)行編譯,如Hi3861、Hi3516系列開(kāi)發(fā)板。因此,建議使用Ubuntu的編譯環(huán)境對(duì)源碼進(jìn)行
    的頭像 發(fā)表于 04-19 16:53 ?1274次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>【搭建Ubuntu環(huán)境】

    鴻蒙OpenHarmony【搭建Windows環(huán)境】

    支持在Windows環(huán)境下進(jìn)行編譯,如Hi3861、Hi3516系列開(kāi)發(fā)板。因此,建議使用Ubuntu的編譯環(huán)境對(duì)源碼進(jìn)行
    的頭像 發(fā)表于 04-19 15:42 ?598次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>【搭建Windows環(huán)境】

    OpenHarmony南向開(kāi)發(fā)案例:【智能照相機(jī)】

    基于Hi3516開(kāi)發(fā)板,使用OpenHarmony3.0-LTS開(kāi)發(fā)的應(yīng)用。通過(guò)獲取攝像頭數(shù)據(jù),實(shí)現(xiàn)預(yù)覽拍照以及路視頻等功能。并且通過(guò)后臺(tái)AI服務(wù)識(shí)別喚醒詞來(lái)進(jìn)行語(yǔ)音
    的頭像 發(fā)表于 04-18 22:19 ?426次閱讀
    <b class='flag-5'>OpenHarmony</b>南向<b class='flag-5'>開(kāi)發(fā)</b>案例:【智能照相機(jī)】

    OpenHarmony南向開(kāi)發(fā)案例:【智能油煙機(jī)】

    基于Hi3516開(kāi)發(fā)板,使用開(kāi)源OpenHarmony開(kāi)發(fā)的應(yīng)用。
    的頭像 發(fā)表于 04-18 15:54 ?1047次閱讀
    <b class='flag-5'>OpenHarmony</b>南向<b class='flag-5'>開(kāi)發(fā)</b>案例:【智能油煙機(jī)】

    OpenHarmony南向開(kāi)發(fā)案例:【智能中控屏】

    基于Hi3516開(kāi)發(fā)板,使用開(kāi)源OpenHarmony開(kāi)發(fā)的應(yīng)用。通過(guò)控制面板可以控制同一局域網(wǎng)
    的頭像 發(fā)表于 04-17 16:12 ?384次閱讀
    <b class='flag-5'>OpenHarmony</b>南向<b class='flag-5'>開(kāi)發(fā)</b>案例:【智能中控屏】
    主站蜘蛛池模板: 伊人久久艹| 精品国产乱码久久久久久乱码| 日本经典片免费看| BL文高H强交| 尿了么app| 99婷婷久久精品国产一区二区| 免费观看a视频| 3D漫画H精品啪啪无码| 韩国精品无码少妇在线观看网站| 我们日本在线观看免费动漫下载| writeas雷狮直播| 欧美人与禽zoz0性伦交app| 99国产这里只有精品视频| 久久人妻少妇嫩草AV蜜桃99| 一个人看www| 久久激情影院| 妖精视频免费看| 九九热伊人| 一本道中文无码亚洲| 交换邻居波多野结衣中文字幕| 亚洲人成网站在线观看90影院| 河南老太XXXXXHD| 亚洲国产成人在线| 黄网13区| 一本久道视频无线视频| 国产在线AV一区二区香蕉| 亚洲国产精品嫩草影院| 国产亚洲欧洲日韩在线观看 | 岳打开双腿开始配合日韩视频| 久久91精品久久久久久水蜜桃| 亚洲欧美色综合影院| 国外经典三级| 亚洲一在线| 男男gaygay拳头| 被室友C哭调教双性| 日韩毛片在线视频| 国产精品99久久免费黑人人妻 | 国产精品免费大片| 亚洲 日韩 在线 国产 视频| 韩国女人高潮嗷嗷叫视频 | 欧美一区二区三区激情视频|