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

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

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

【潤(rùn)和軟件DAYU200開發(fā)板體驗(yàn)】移植speexdsp到OpenHarmony標(biāo)準(zhǔn)系統(tǒng)④

開發(fā)板試用精選 ? 來源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-10-12 10:11 ? 次閱讀

本文來源電子發(fā)燒友社區(qū),作者:離北況歸, 帖子地址:https://bbs.elecfans.com/jishu_2308798_1_1.html



由于想要分享的內(nèi)容較多,為避免讀者姥爺們失去看下去的耐心,分享將以連載的方式進(jìn)行。
下期預(yù)告:speexdsp功能分析和功能測(cè)試

本期為移植speexdsp到OpenHarmony標(biāo)準(zhǔn)系統(tǒng)的第④期,主要內(nèi)容如下:
@toc

image.png


speexdsp移植后已提交至openhamrony sig倉(cāng)庫(kù):https://gitee.com/openharmony-sig/contest/tree/master/2022_OpenHarmony_thirdparty/speexdsp


五、在OpenHarmony編譯體系下增量編譯Speexdsp

建議先增量編譯生成三方庫(kù)的動(dòng)態(tài)鏈接庫(kù)和可執(zhí)行文件,驗(yàn)證是否成功把三方庫(kù)加入OpenHarmonybian編譯體系。

  • 成功編譯出so和可執(zhí)行文件,即成功把三方庫(kù)加入到ohos編譯體系。之后還要驗(yàn)證三方庫(kù)在ohos運(yùn)行,功能是否正常。功能正常才能視為移植成功。

推薦增量編譯出三方庫(kù)的動(dòng)態(tài)鏈接庫(kù)和測(cè)試用例,不推薦的做法是把三方庫(kù)加入openharmony編譯體系后全量編譯出燒錄ohos用的固件。

  • 第一是因?yàn)槿烤幾gohos對(duì)電腦的性能,特別是內(nèi)存要求比較高(筆者的筆記本上的虛擬機(jī)內(nèi)存給到了32G,對(duì)學(xué)生開發(fā)者來講,編譯ohos的硬件門檻還是有點(diǎn)高的。)增量編譯對(duì)內(nèi)存要求不是特別高。(筆者的8G內(nèi)存二合一筆記本都可以編譯出來,并且虛擬機(jī)內(nèi)存只給到了4GB左右
  • 第二是因?yàn)?span style="font-weight:700;">全量編譯花費(fèi)時(shí)間較多(筆者完整編譯出一個(gè)固件需要3個(gè)小時(shí)左右。)增量編譯需要的時(shí)間相對(duì)較少(筆者大概只需要花費(fèi)9分鐘左右

全量編譯和增量編譯概念

  • 全量編譯是將所有文件重新編譯,重新生成解決方案就是全量編譯
  • 增量編譯只對(duì)改動(dòng)的文件進(jìn)行編譯,執(zhí)行生成解決方案就是增量編譯

在源碼目錄執(zhí)行如下命令,進(jìn)行增量編譯:

./build.sh --product-name rk3568 --ccache --build-target=speexdsp --target-cpu arm64
  • ohos3.2beta1版本開始新增特性,支持64位系統(tǒng)的編譯,默認(rèn)情況下編譯的都是32位系統(tǒng),在編譯命令中添加--target-cpu arm64即可構(gòu)建64位系統(tǒng),編譯so和可執(zhí)行文件的執(zhí)行語(yǔ)句更改為:

image.png

加快本地編譯的一些參數(shù)

編譯時(shí),適當(dāng)選擇添加以下的編譯參數(shù)可以加快編譯的過程。

  • 添加--ccache參數(shù):
    • 原理:ccache會(huì)緩存c/c++編譯的編譯輸出,下一次在編譯輸入不變的情況下,直接復(fù)用緩存的產(chǎn)物。
    • 安裝:
      • 快速安裝:執(zhí)行sudo apt-get install ccache命令。
    • 使用:執(zhí)行./build.sh --product-name 產(chǎn)品名 --ccache命令。
  • 添加--fast-rebuild參數(shù)
    • 原理:編譯流程主要分為:preloader->loader->gn->ninja這四個(gè)過程,在本地沒有修改gn和產(chǎn)品配置相關(guān)文件的前提下,添加--fast-rebuild會(huì)讓你直接從ninja編譯開始。
    • 使用:執(zhí)行./build.sh --product-name 產(chǎn)品名 --fast-rebuild命令。
  • 添加enable_notice_collection=false參數(shù)
    • 原理:省略掉收集開源軟件模塊的license的過程。
    • 使用:執(zhí)行./build.sh --product-name 產(chǎn)品名 --gn-args --enable_notice_collection=false --ccache命令。
  • 添加--build-target參數(shù)
    • 該參數(shù)用于指定編譯模塊,如何找模塊的名字:
    • 相關(guān)倉(cāng)下BUILD.gn中關(guān)注group、ohos_shared_library、ohos_executable等關(guān)鍵字。
    • ./build.sh --product-name 產(chǎn)品名 --build-target 模塊名 --build-only-gn生成build.ninja,然后去該文件中查找相關(guān)模塊名。
    • 使用:執(zhí)行./build.sh --product-name 產(chǎn)品名 --build-target ark_js_host_linux_tools_packages命令。

解決編譯報(bào)錯(cuò)

(筆者理解移植過程肯定不會(huì)是一帆風(fēng)順的)

執(zhí)行編譯命令后,有部分報(bào)錯(cuò)
1.部分頭文件缺失報(bào)錯(cuò)
‘speexdsp_config_types.h’ file not found

編譯找不到third_party/speexdsp/include/speex目錄下的speexdsp_config_types.h文件。

../../third_party/speexdsp/include/speex/speexdsp_types.h:122:10: fatal error: 
'speexdsp_config_types.h' file not found

image.png

解決辦法:

  • speexdsp_types.h 是由linux下編譯生成的,因此需要在Linux下編譯整個(gè)Speexdsp源碼,然后把在speexdsp原生庫(kù)目錄下build/include/speex目錄生成的speexdsp_types.h文件拷貝到要ohos源碼下的third_party/speexdsp/include/speex目錄下,

2.json文件語(yǔ)法發(fā)生錯(cuò)誤。

image.png

解決方法:
查看out/rk3568目錄下build.log文件,檢查源碼/build/subsystem_config.json文件語(yǔ)法
筆者出現(xiàn)這個(gè)問題的原因是json文件語(yǔ)法發(fā)生錯(cuò)誤,在subsystem_config.json文件第一行的{沒有匹配},添加上去就沒問題。
image.png

編譯成功

解決完編譯報(bào)錯(cuò)后,再次執(zhí)行編譯命令。

./build.sh --product-name rk3568 --ccache --build-target=speexdsp --target-cpu arm64

image.png

編譯成功,終端打印信息如下:
下面只選取關(guān)鍵的一小部分,實(shí)際打印出來的信息有兩千行左右。)

jiajiahao@ubuntu:~/Desktop/OpenHarmony/sources$ ./build.sh --product-name rk3568 --ccache --build-target=speexdsp --target-cpu arm64
++++++++++++++++++++++++++++++++++++++++
2022-09-07 22:03:47
--product-name rk3568 --ccache --build-target=speexdsp --target-cpu arm64
......
······
[OHOS INFO] [1595/1633] STAMP obj/third_party/speexdsp/speexdsp_share.inputdeps.stamp
[OHOS INFO] [1596/1633] CC obj/out/rk3568/obj/third_party/musl/intermidiates/linux/musl_src_ported/src/unistd/soft_musl_src/ttyname_r.o
[OHOS INFO] [1597/1633] CC obj/out/rk3568/obj/third_party/musl/intermidiates/linux/musl_src_ported/src/unistd/soft_musl_src/ualarm.o
[OHOS INFO] [1598/1633] CC obj/out/rk3568/obj/third_party/musl/intermidiates/linux/musl_src_ported/src/unistd/soft_musl_src/unlink.o
[OHOS INFO] [1599/1633] CC obj/out/rk3568/obj/third_party/musl/intermidiates/linux/musl_src_ported/src/unistd/soft_musl_src/unlinkat.o
[OHOS INFO] [1600/1633] CC obj/out/rk3568/obj/third_party/musl/intermidiates/linux/musl_src_ported/src/unistd/soft_musl_src/usleep.o
[OHOS INFO] [1601/1633] CC obj/out/rk3568/obj/third_party/musl/intermidiates/linux/musl_src_ported/src/unistd/soft_musl_src/write.o
[OHOS INFO] [1602/1633] CC obj/out/rk3568/obj/third_party/musl/intermidiates/linux/musl_src_ported/src/unistd/soft_musl_src/writev.o
[OHOS INFO] [1603/1633] CC obj/out/rk3568/obj/third_party/musl/intermidiates/linux/musl_src_ported/src/string/soft_musl_src_nossp/mempcpy.o
[OHOS INFO] [1604/1633] CC obj/out/rk3568/obj/third_party/musl/intermidiates/linux/musl_src_ported/src/string/soft_musl_src_nossp/memset.o
[OHOS INFO] [1605/1633] STAMP obj/third_party/musl/soft_musl_src.stamp
[OHOS INFO] [1606/1633] CC obj/third_party/speexdsp/libspeexdsp/speexdsp_share/buffer.o
[OHOS INFO] [1607/1633] CC obj/third_party/speexdsp/libspeexdsp/speexdsp_share/fftwrap.o
[OHOS INFO] [1608/1633] CC obj/third_party/speexdsp/libspeexdsp/speexdsp_share/filterbank.o
[OHOS INFO] [1609/1633] CC obj/out/rk3568/obj/third_party/musl/intermidiates/linux/musl_src_ported/src/env/soft_musl_src_nossp/__libc_start_main.o
[OHOS INFO] [1610/1633] CC obj/third_party/speexdsp/libspeexdsp/speexdsp_share/scal.o
[OHOS INFO] [1611/1633] ASM obj/out/rk3568/obj/third_party/musl/intermidiates/linux/musl_src_ported/src/thread/aarch64/soft_musl_src_nossp/__set_thread_area.o
[OHOS INFO] [1612/1633] CC obj/out/rk3568/obj/third_party/musl/intermidiates/linux/musl_src_ported/src/env/soft_musl_src_nossp/__init_tls.o
[OHOS INFO] [1613/1633] CC obj/out/rk3568/obj/third_party/musl/intermidiates/linux/musl_src_ported/src/env/soft_musl_src_nossp/__stack_chk_fail.o
[OHOS INFO] [1614/1633] STAMP obj/third_party/musl/soft_musl_src_nossp.stamp
[OHOS INFO] [1615/1633] CC obj/third_party/speexdsp/libspeexdsp/speexdsp_share/jitter.o
[OHOS INFO] [1616/1633] CC obj/third_party/speexdsp/libspeexdsp/speexdsp_share/preprocess.o
[OHOS INFO] [1617/1633] CC obj/third_party/speexdsp/libspeexdsp/speexdsp_share/resample.o
[OHOS INFO] [1618/1633] CC obj/third_party/speexdsp/libspeexdsp/speexdsp_share/mdf.o
[OHOS INFO] [1619/1633] SOLINK obj/third_party/musl/usr/lib/aarch64-linux-ohos/libc.so
[OHOS INFO] [1620/1633] STAMP obj/third_party/musl/soft_shared_libs.stamp
[OHOS INFO] [1621/1633] STAMP obj/build/config/common_deps.stamp
[OHOS INFO] [1622/1633] STAMP obj/build/config/executable_deps.stamp
[OHOS INFO] [1623/1633] STAMP obj/build/config/shared_library_deps.stamp
[OHOS INFO] [1624/1633] CC obj/third_party/speexdsp/libspeexdsp/speexdsp_share/smallft.o
[OHOS INFO] [1625/1633] SOLINK speexdsp/speexdsp/libspeexdsp_share.z.so
[OHOS INFO] [1626/1633] LINK speexdsp/speexdsp/testdenoise
[OHOS INFO] [1627/1633] LINK speexdsp/speexdsp/testecho
[OHOS INFO] [1628/1633] LINK speexdsp/speexdsp/testjitter
[OHOS INFO] [1629/1633] LINK speexdsp/speexdsp/testresample
[OHOS INFO] [1630/1633] LINK speexdsp/speexdsp/testresample2
[OHOS INFO] [1631/1633] STAMP obj/out/rk3568/build_configs/speexdsp/speexdsp/speexdsp_info.stamp
[OHOS INFO] [1632/1633] ACTION //out/rk3568/build_configs/speexdsp/speexdsp:speexdsp(//build/toolchain/ohos:ohos_clang_arm64)
[OHOS INFO] [1633/1633] STAMP obj/out/rk3568/build_configs/speexdsp/speexdsp/speexdsp.stamp
[OHOS INFO] ---------------------------------------------
[OHOS INFO] ccache summary:
[OHOS INFO] cache hit (direct)  : 0
[OHOS INFO] cache hit (preprocessed)  : 0
[OHOS INFO] cache miss  : 1340
[OHOS INFO] hit rate:  0.00% 
[OHOS INFO] mis rate: 100.00% 
[OHOS INFO] ---------------------------------------------
[OHOS INFO] c targets overlap rate statistics
[OHOS INFO] subsystem       	files NO.	percentage	builds NO.	percentage	overlap rate
[OHOS INFO] aafwk           	      25	0.9%	      25	0.9%	1.00
[OHOS INFO] arkui           	      11	0.4%	      11	0.4%	1.00
[OHOS INFO] bundlemanager   	      45	1.5%	      45	1.5%	1.00
[OHOS INFO] communication   	     197	6.7%	     197	6.7%	1.00
[OHOS INFO] hiviewdfx       	      32	1.1%	      32	1.1%	1.00
[OHOS INFO] securec         	      78	2.7%	      78	2.7%	1.00
[OHOS INFO] speexdsp        	      14	0.5%	      14	0.5%	1.00
[OHOS INFO] startup         	      46	1.6%	      46	1.6%	1.00
[OHOS INFO] third_party     	    1065	36.3%	    1065	36.3%	1.00
[OHOS INFO] thirdparty      	    1065	36.3%	    1065	36.3%	1.00
[OHOS INFO] utils           	      58	2.0%	      58	2.0%	1.00
[OHOS INFO] zxing-cpp-1.2.0 	     117	4.0%	     117	4.0%	1.00
[OHOS INFO] 
[OHOS INFO] c overall build overlap rate: 1.00
[OHOS INFO] 
[OHOS INFO] 
[OHOS INFO] rk3568 build success
[OHOS INFO] cost time: 0:02:24
=====build  successful=====

驗(yàn)證編譯結(jié)果

編譯speexdsp生成的動(dòng)態(tài)鏈接庫(kù)和測(cè)試用的可執(zhí)行程序,在openharmony源碼目錄的out/rk3568下。

image.png

out/rk3568/speexdsp目錄結(jié)構(gòu)如下:
image.png

├── libspeexdsp_share.z.so # 動(dòng)態(tài)鏈接庫(kù)
├── testdenoise            # 測(cè)試用例 
├── testecho               # 測(cè)試用例 
├── testjitter             # 測(cè)試用例 
├── testresample           # 測(cè)試用例 
└── testresample2          # 測(cè)試用例

六、API接口導(dǎo)出

在源碼third_party/speexdsp目錄下新建export_api文件夾。

image.png

1.在export_api目錄下新建allHeads.h文件

該頭文件中包含所有庫(kù)對(duì)外導(dǎo)出的頭文件。speexdsp有5個(gè)測(cè)試程序testdenoise、testecho、testjitter、testresample、testresample2。

image.png

查看這五個(gè)測(cè)試程序的源文件testdenoise.c、testecho.c、testjitter.c、testresample.c、testresample2.c。

image.png

其用到的libspeexdsp_share.z.so的頭文件如下:

#include "speex_preprocess.h"
#include "speex_echo.h"
#include "speex_jitter.h"
#include "speex_resampler.h"

2.新增allDySos目錄,該目錄下放置生成的動(dòng)態(tài)庫(kù):

image.png

3、新增allTests目錄,該目錄下放置所有生成的測(cè)試文件:

image.png

4、新建自動(dòng)化測(cè)試腳本export_interface.sh,如下所示:

其中cxx="0"表示根據(jù).c文件進(jìn)行導(dǎo)出,cxx="1"則表示根據(jù).cpp文件進(jìn)行導(dǎo)出(如果導(dǎo)出c++的三方庫(kù)的api接口,使用該腳本就讓cxx=1):

#!/bin/sh
#C庫(kù)
cxx="0"

mixed_api() {
    
    while read line
    do
        if [ $cxx != "1" -o "$4" == "1" ];then
            tmp=$line
        else
            tmp=`echo $line | sed "s/(.*$//g" | sed "s/^.*:://g"`
        fi
        res=`cat $2 |grep "$tmp" -F`
        if [ "$res" != "" ];then
            echo "$line" >> $3
        fi
    done < $1
}

remove_standard_api() {
    flag="0"
    while read line
    do
        tmp1=`echo $line |grep ".*#.*/usr/"`
        tmp2=`echo $line |grep ".*#.*[0-9].*".*""`
        if [ "$tmp1" != "" ];then
            flag="0"
        elif [ "$tmp2" != "" ];then
            flag="1"
        elif [ $flag == "1" ];then
            echo "$line" >> $2
        fi
    done < $1
}

src1="allHeads.h"
src2="allDySos"
src3="allTests"

if [ $cxx == "1" ];then
    flags_D="-DC"
    flags_DU="-DCu"
    CC=g++
else
    flags_D="-D"
    flags_DU="-Du"
    CC=gcc
fi

if [ ! -e $src1 ];then
    echo "$src1 is not exist!"
    exit 1
fi

if [ ! -e $src2 ];then
    echo "$src2 is not exist!"
    exit 1
fi

if [ ! -e $src3 ];then
    echo "$src3 is not exist!"
    exit 1
fi

rm -rf $src1.i* $src2.txt $src3.txt export_api.txt tested_api.txt

$CC -E $* $src1 -o $src1.i

if [ "$?" != "0" ];then
    exit 1
fi

remove_standard_api $src1.i $src1.i.tmp

nm $src2/* $flags_D | sort -u | grep " T " | sed "s/^.* T //g" >> $src2.txt
nm $src3/* $flags_DU | sort -u | sed "s/^.* U //g" >> $src3.txt

mixed_api $src2.txt $src1.i.tmp export_api.txt 0
mixed_api export_api.txt $src3.txt  tested_api.txt 1

rm -rf $src1.i* $src2.txt $src3.txt

執(zhí)行腳本導(dǎo)出api接口

執(zhí)行該腳本導(dǎo)出api接口時(shí),需要給腳本傳入編譯頭文件的參數(shù)。(運(yùn)行此api接口導(dǎo)出腳本在PC端)

  • 例如./export_interface.sh -I 頭文件所在路徑 -D宏定義(編譯所有動(dòng)態(tài)庫(kù)時(shí),cflags/cflags_cc中的參數(shù))
    • 頭文件所在路徑為絕對(duì)路徑
    • D宏定義指的是(編譯所有動(dòng)態(tài)庫(kù)時(shí),cflags/cflags_cc中的參數(shù))

筆者導(dǎo)出speexdsp API接口,在export_api文件夾下打開終端輸入了如下命令:

chmod 777 export_interface.sh
./export_interface.sh -I/home/jiajiahao/Desktop/OpenHarmony/sources/third_party/speexdsp/include/speex

結(jié)果是生成export_api.txt(導(dǎo)出so對(duì)外api接口)與testd_api.txt(導(dǎo)出測(cè)試程序所用到so對(duì)外導(dǎo)出api接口 )。

image.png

export_api.txt文件內(nèi)容如下:

speex_preprocess_state_init
speex_preprocess_state_destroy
speex_preprocess
speex_preprocess_run
speex_preprocess_estimate_update
speex_preprocess_ctl
jitter_buffer_init
jitter_buffer_ctl
jitter_buffer_reset
jitter_buffer_destroy
jitter_buffer_put
jitter_buffer_get
jitter_buffer_get_another
jitter_buffer_update_delay
jitter_buffer_get_pointer_timestamp
jitter_buffer_tick
jitter_buffer_remaining_span
speex_echo_state_init
speex_echo_state_init_mc
speex_echo_state_reset
speex_echo_state_destroy
speex_echo_capture
speex_echo_cancellation
speex_echo_playback
speex_echo_cancel
speex_echo_ctl
speex_resampler_init
speex_resampler_init_frac
speex_resampler_set_quality
speex_resampler_set_rate_frac
speex_resampler_destroy
speex_resampler_process_float
speex_resampler_process_int
speex_resampler_process_interleaved_float
speex_resampler_process_interleaved_int
speex_resampler_set_rate
speex_resampler_get_rate
speex_resampler_get_ratio
speex_resampler_get_quality
speex_resampler_set_input_stride
speex_resampler_get_input_stride
speex_resampler_set_output_stride
speex_resampler_get_output_stride
speex_resampler_get_input_latency
speex_resampler_get_output_latency
speex_resampler_skip_zeros
speex_resampler_reset_mem
speex_resampler_strerror
speex_decorrelate_new
speex_decorrelate
speex_decorrelate_destroy

tested_api.txt文件內(nèi)容如下:

speex_preprocess_state_init
speex_preprocess_state_destroy
speex_preprocess
speex_preprocess_run
speex_preprocess_ctl
jitter_buffer_init
jitter_buffer_reset
jitter_buffer_put
jitter_buffer_get
jitter_buffer_tick
speex_echo_state_init
speex_echo_state_destroy
speex_echo_cancellation
speex_echo_cancel
speex_echo_ctl
speex_resampler_init
speex_resampler_destroy
speex_resampler_process_float
speex_resampler_set_rate
speex_resampler_skip_zeros

下期預(yù)告:speexdsp功能分析和功能測(cè)試

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

    關(guān)注

    1

    文章

    26

    瀏覽量

    1218
  • 潤(rùn)和軟件
    +關(guān)注

    關(guān)注

    1

    文章

    275

    瀏覽量

    886
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    dayu200 rk3568 openharmony5.0 sim卡 通話服務(wù)

    想請(qǐng)問一下有人在dayu200 rk3568上插過sim卡并且成功完成過通話服務(wù)嗎? 我現(xiàn)在在dayu200上燒錄了openHarmony release 5.0.0版本的鏡像,在上面插上了sim卡,但是仍然顯示未檢測(cè)到sim卡
    發(fā)表于 12-26 16:52

    瑞芯微RK3566鴻蒙開發(fā)板OpenHarmony標(biāo)準(zhǔn)系統(tǒng)應(yīng)用兼容性測(cè)試指導(dǎo)

    本文OpenHarmony標(biāo)準(zhǔn)系統(tǒng)應(yīng)用兼容性測(cè)試指導(dǎo),適用鴻蒙系統(tǒng)軟件開發(fā)測(cè)試的新手入門學(xué)習(xí)課程,設(shè)備為觸覺智能的瑞芯微RK3566開發(fā)板,型號(hào)Purple Pi OH。是Laval官
    的頭像 發(fā)表于 09-10 11:56 ?442次閱讀
    瑞芯微RK3566鴻蒙<b class='flag-5'>開發(fā)板</b><b class='flag-5'>OpenHarmony</b><b class='flag-5'>標(biāo)準(zhǔn)系統(tǒng)</b>應(yīng)用兼容性測(cè)試指導(dǎo)

    請(qǐng)求推薦無需NPU的OpenHarmony標(biāo)準(zhǔn)系統(tǒng)ARM開發(fā)板

    請(qǐng)教一下大佬們,目前的需求是在國(guó)產(chǎn)ARM開發(fā)板上跑OpenHarmony標(biāo)準(zhǔn)系統(tǒng),無需NPU/GPU,其它配置(CPU、RAM等)可以盡量高點(diǎn),價(jià)位在2k以內(nèi),球球推薦!感謝大佬們!
    發(fā)表于 08-16 16:25

    潤(rùn)開鴻“龍芯+OpenHarmony開發(fā)平臺(tái)DAYU431先鋒派新品發(fā)布

    潤(rùn)開鴻基于全新龍芯2K0300芯片平臺(tái)的重磅新品潤(rùn)開鴻HH-SCDAYU431先鋒派開發(fā)平臺(tái)正式上市,成為潤(rùn)開鴻DAYU系列產(chǎn)品中符合
    的頭像 發(fā)表于 08-07 14:50 ?550次閱讀
    <b class='flag-5'>潤(rùn)</b>開鴻“龍芯+<b class='flag-5'>OpenHarmony</b>”<b class='flag-5'>開發(fā)</b>平臺(tái)<b class='flag-5'>DAYU</b>431先鋒派新品發(fā)布

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

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

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

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

    鴻蒙OpenHarmony標(biāo)準(zhǔn)系統(tǒng) 運(yùn)行】(基于RK3568開發(fā)板

    燒錄完成重啟開發(fā)板后,系統(tǒng)將會(huì)自動(dòng)啟動(dòng)。開發(fā)板附帶的屏幕呈現(xiàn)以下界面,表明系統(tǒng)已運(yùn)行成功。
    的頭像 發(fā)表于 05-06 15:38 ?485次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>【<b class='flag-5'>標(biāo)準(zhǔn)系統(tǒng)</b> 運(yùn)行】(基于RK3568<b class='flag-5'>開發(fā)板</b>)

    鴻蒙OpenHarmony標(biāo)準(zhǔn)系統(tǒng) 運(yùn)行】 (基于RK3568開發(fā)板

    燒錄完成重啟開發(fā)板之后,系統(tǒng)將會(huì)自動(dòng)啟動(dòng)……
    的頭像 發(fā)表于 04-25 15:56 ?880次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>【<b class='flag-5'>標(biāo)準(zhǔn)系統(tǒng)</b> 運(yùn)行】 (基于RK3568<b class='flag-5'>開發(fā)板</b>)

    鴻蒙OpenHarmony標(biāo)準(zhǔn)系統(tǒng)編寫“Hello World”程序】 (基于RK3568開發(fā)板

    源碼],創(chuàng)建RK3568開發(fā)板的源碼工程。 示例目錄 拉取openharmony項(xiàng)目代碼,在代碼根目錄創(chuàng)建sample子系統(tǒng)文件夾,在子系統(tǒng)目錄下創(chuàng)建hello部件文件夾,hello文
    的頭像 發(fā)表于 04-24 17:32 ?891次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>【<b class='flag-5'>標(biāo)準(zhǔn)系統(tǒng)</b>編寫“Hello World”程序】 (基于RK3568<b class='flag-5'>開發(fā)板</b>)

    OpenHarmony開發(fā)實(shí)例:【電話簿聯(lián)系人Contacts】

    Contacts應(yīng)用是基于OpenHarmony SDK開發(fā)的安裝在潤(rùn)和HiSpark Taurus AI Camera(Hi3516d)開發(fā)板標(biāo)準(zhǔn)
    的頭像 發(fā)表于 04-23 09:44 ?816次閱讀
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>開發(fā)</b>實(shí)例:【電話簿聯(lián)系人Contacts】

    OpenHarmony開發(fā)實(shí)例:【 待辦事項(xiàng)TodoList】

    TodoList應(yīng)用是基于OpenHarmony SDK開發(fā)的安裝在潤(rùn)和HiSpark Taurus AI Camera(Hi3516d)開發(fā)板標(biāo)準(zhǔn)
    的頭像 發(fā)表于 04-22 22:00 ?760次閱讀
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>開發(fā)</b>實(shí)例:【 待辦事項(xiàng)TodoList】

    【鴻蒙】OpenHarmony運(yùn)行docker詳細(xì)步驟

    1.環(huán)境和設(shè)備 系統(tǒng)版本: 3.2release(64 位) OpenHarmony 內(nèi)核版本:5.10 標(biāo)準(zhǔn)系統(tǒng)設(shè)備: DAYU200 Docker:18.03.1 (64 位) s
    的頭像 發(fā)表于 03-02 15:10 ?2763次閱讀
    【鴻蒙】<b class='flag-5'>OpenHarmony</b>運(yùn)行docker詳細(xì)步驟

    【鴻蒙】標(biāo)準(zhǔn)系統(tǒng)移植指南

    標(biāo)準(zhǔn)系統(tǒng)移植指南 本文描述了移植一塊開發(fā)板的通用步驟,和具體芯片相關(guān)的詳細(xì)移植過程無法在此一一列舉。后續(xù)社區(qū)還會(huì)陸續(xù)發(fā)布
    的頭像 發(fā)表于 02-27 14:36 ?963次閱讀
    【鴻蒙】<b class='flag-5'>標(biāo)準(zhǔn)系統(tǒng)</b><b class='flag-5'>移植</b>指南

    請(qǐng)問DAYU200有SPI可以用么

    大家好,請(qǐng)問DAYU200有SPI可以用么 我看這里https://developer.huawei.com/consumer/cn/market/prod-detail?productId
    發(fā)表于 02-20 11:38

    開源大師兄開發(fā)板通過 OpenHarmony 3.2 Release版本兼容性測(cè)評(píng)

    近期,江蘇潤(rùn)開鴻數(shù)字科技有限公司(以下簡(jiǎn)稱“潤(rùn)開鴻”)開源?師兄開發(fā)板順利通過OpenHarmony3.2.1Release版本兼容性測(cè)評(píng),為基于開源大師兄
    的頭像 發(fā)表于 01-20 08:02 ?964次閱讀
    開源大師兄<b class='flag-5'>開發(fā)板</b>通過 <b class='flag-5'>OpenHarmony</b> 3.2 Release版本兼容性測(cè)評(píng)