衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

開發板如何適配OpenHarmony 3.2

OpenAtom OpenHarmony ? 來源:未知 ? 2023-04-04 01:35 ? 次閱讀

點擊藍字 ╳ 關注我們


開源項目 OpenHarmony
是每個人的 OpenHarmony

陸道

誠邁科技高級技術專家

簡介

OpenAtom OpenHarmony(以下簡稱“OpenHarmony”) 3.2 Beta5版本在OpenHarmony 3.1 Release版本的基礎上,有以下改變:性能上有很大的提升、標準系統應用開發框架增強、標準系統分布式能力增強。
本文介紹誠邁科技基于RK3568設計的HCPAD-100開發板以及基于RK3566設計的中控屏HongzPad2022在OpenHarmony 3.2 Beta5版本上的適配過程。
涉及到開發板的添加/u-boot /linux-5.10/分區表/根文件系統/顯示/觸摸/USB的移植過程以及OpenHarmony所依賴的驅動特性介紹。

如何添加新的開發板進行編譯

參照DAYU200的工程配置文件我們新建自己的編譯命令。
1)在device/board/目錄新建archermind目錄,新建rk3568/rk3588/rk3399目錄,并添加相關的工程文件。


2)在vendor目錄新建archermind目錄。新建以下幾個目錄,并添加相關的工程文件。


3)修改vendor/archermind/hongzos_rk3568/config.json文件,product_name改成hongzos_rk3568,device_build_path改成第一步新建的目錄。
{
"product_name": "hongzos_rk3568",
"device_company": "rockchip",
"device_build_path": "device/board/archermind/rk3568",
"target_cpu": "arm",
"type": "standard",
"version": "3.0",
"board":"rk3568",

通過./build.sh --product-name hongzos_rk3568來編譯出我們自己開發板的鏡像,編譯完后對應開發板的image鏡像放在out/rk3568/packages/phone/目錄。相關代碼放在文章最后的參考鏈接。


U-Boot移植

U-boot是通過二進制鏡像直接放在device/board/hihope/rk3568/loader目錄下的,這個目錄下涉及到文件如下:

1)下載rk官方發布的uboot源碼
gitclonehttps://github.com/rockchip-linux/u-boot.git

2)修改make.sh, 指定RKBIN_TOOLS的路徑
RKBIN_TOOLS=rkbin/tools

3)增加代碼讀取ramdisk分區到指定的內存位置,修改cmd/pxe.c
#include "boot_rkimg.h"
#define BLK_CNT(_num_bytes, _block_size)
((_num_bytes + _block_size - 1) / _block_size)


static char* load_ramdisk_from_partition(void *buffer)
{
struct blk_desc *desc = rockchip_get_bootdev();
disk_partition_t part_ramdisk_boot;
static char initrd_str[28];
long blk_cnt = 0, blks_read = 0;
long blk_start = 0;
if (part_get_info_by_name(desc, "ramdisk", &part_ramdisk_boot) < 0) {
printf("No ramdisk partition ");
return NULL;
}
blk_cnt = part_ramdisk_boot.size;
blk_start = part_ramdisk_boot.start;
printf("Load from partition ' ramdisk ' to address 0x%p, count: %ld total block(s) by ludao ", buffer, blk_cnt);
blks_read = blk_dread(desc, blk_start, blk_cnt, buffer);
if (blks_read != blk_cnt) {
return NULL;
}
printf("Read from partition ' ramdisk ' done, from 0x%lx total block(s) 0x%lx ", blk_start, blk_cnt);
sprintf(initrd_str, "0x%p:0x%lx", buffer, blk_cnt*(part_ramdisk_boot.blksz));
printf("Openharmony ramdisk_addr_r = %s ", initrd_str);


return initrd_str;
}
static int label_boot(cmd_tbl_t *cmdtp, struct pxe_label *label)
if (label->initrd) {
if (get_relfile_envaddr(cmdtp, label->initrd, "ramdisk_addr_r") < 0) {
printf("Skipping %s for failure retrieving initrd ",
label->name);
return 1;
}


bootm_argv[2] = initrd_str;
strncpy(bootm_argv[2], env_get("ramdisk_addr_r"), 18);
strcat(bootm_argv[2], ":");
strncat(bootm_argv[2], env_get("filesize"), 9);
}else{
void *buffer = (void *)env_get_ulong("ramdisk_addr_r", 16, 0);
bootm_argv[2] = load_ramdisk_from_partition(buffer);
if(bootm_argv[2]){
printk("initrd = %s ", bootm_argv[2]);
}
}

4)指定交叉編譯器和平臺開始編譯,編譯完成后根目錄會生成u-boot.bin
./make.shCROSS_COMPILE=aarch64-linux-gnu-rk3568
所有相關代碼已經放到開源社區,大家可以下載下來直接編譯使用,相關代碼放在文章最后的參考鏈接。

Linux-5.10移植

1)內核編譯腳本
linux編譯腳本的是放在device/board/hihope/rk3568/kernel目錄下的build_kernel.sh文件,由于kernel/linux/linux-5.10是公共代碼,OpenHarmony編譯腳本是通過打補丁的方式來適配不同平臺,不同的平臺有自己的內核補丁。
編譯腳本會先把kernel/linux/linux-5.10拷貝到out/kernel/src_tmp/linux-5.10/,然后打上3568的內核補丁patch -p1 < kernel/linux/patches/linux-5.10/rk3568_patch/kernel.patch
后編譯生成自己的鏡像,不利于我們開發,我們自己開發過程中做如下修改,這樣方便我們開發過程中的修改。
先進入kernel/linux/linux-5.10目錄
patch -p1 < kernel/linux/patches/linux-5.10/rk3568_patch/kernel.patch
修改device/board/hihope/rk3568/kernel/build_kernel.sh
注釋掉
//patch-p1
2)設備樹的定制,首先我們需要有自己的板子的設備樹例如rk3568-chujue-linux.dts
把設備樹放到kernel/linux/linux-5.10/arch/arm64/boot/dts/rockchip/目錄
修改kernel/linux/linux-5.10/ make-ohos.sh


model_list=(
"TB-RK3568X0 arm64 0xfe660000 rk3568-toybrick-x0-linux Image rockchip_linux_defconfig"
"TB-RK3568X10 arm64 0xfe660000 rk3568-toybrick-x10-linux Image rockchip_linux_defconfig"
)
修改其中的TB-RK3568X0,把rk3568-toybrick-x0-linux改成我們自己的rk3568-chujue-linux.dts,
TB-RK3568X0是在device/board/hihope/rk3568/kernel/build_kernel.sh指定的
這樣編程后生產設備樹就是我們自己開發板的,設備樹如果不對,機器將會無法開機,U-boot也會無法開啟。

3)內核config的定制
文件位置kernel/linux/config/linux-5.10/arch/arm64/configs/rk3568_standard_defconfig
3.2 顯示設備需要打開CONFIG_DRM_PANEL_SIMPLE配置顯示才能正常顯示
CONFIG_DRM_PANEL_SIMPLE = y
kernel/linux/linux-5.10/drivers/gpu/drm/panel/panel-simple.c
注釋掉
//intpanel_simple_loader_protect(structdrm_panel*panel)
4)啟動Logo定制
修改device/board/hihope/rk3568/kernel目錄的圖片即可

5)啟動參數的定制
kernel/linux/linux-5.10/ make-ohos.sh
cmdline="appendearlycon=uart8250,mmio32,${uart}root=PARTUUID=614e0000-0000-4b53-8000-1d28000054a9rwrootwaitrootfstype=ext4

分區表

1)rk3568采樣的是GPT格式的分區表,v3.2新增加了三個分區sys_prod, chip-prod,ramdisk
通過修改以下文件來修改分區表的配置,我們可以直接使用dayu開發板的分區表。
device/board/hihope/rk3568/loader/parameter.txt
FIRMWARE_VER:11.0
MACHINE_MODEL:rk3568_r
MACHINE_ID:007
MANUFACTURER: rockchip
MAGIC: 0x5041524B
ATAG: 0x00200800
MACHINE: rk3568_r
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
TYPE: GPT
CMDLINE:mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(misc),0x00003000@0x00006000(resource),0x00030000@0x00009000(boot_linux:bootable),0x00002000@0x00039000(ramdisk),0x00400000@0x0003B000(system),0x00200000@0x0043B000(vendor),0x00019000@0x0063B000(sys-prod),0x00019000@0x00654000(chip-prod),0x00010000@0x0066D000(updater),-@0x0067D000(userdata:grow)
uuid:system=614e0000-0000-4b53-8000-1d28000054a9
uuid:boot_linux=a2d37d82-51e0-420d-83f5-470db993dd35
device/board/hihope/rk3568/cfg/fstab.rk3568
# fstab file.
#
/dev/block/platform/fe310000.sdhci/by-name/system /usr ext4 ro,barrier=1 wait,required
/dev/block/platform/fe310000.sdhci/by-name/vendor /vendor ext4 ro,barrier=1 wait,required
/dev/block/platform/fe310000.sdhci/by-name/sys-prod /sys_prod ext4 ro,barrier=1 wait
/dev/block/platform/fe310000.sdhci/by-name/chip-prod /chip_prod ext4 ro,barrier=1 wait
/dev/block/platform/fe310000.sdhci/by-name/userdata /data f2fs discard,noatime,nosuid,nodev,fscrypt=2aes-256-xts wait,check,fileencryption=software,quota
/dev/block/platform/fe310000.sdhci/by-name/misc/miscnonenonewait,required
2)如何修改RKDevTool.exe工具加載的分區表
parameter.txt文件中的CMDLINE字段中有mtdparts=,
其中0x00002000@0x00002000(uboot)的括號里面是分區的名字,@后面的0x00002000是分區的開始地址,以4k為單位的偏移地址,@前面是分區的大小,
注意修改的時候要注意連續性,不要有重疊的位置。

根文件系統

1)ramdisk從3.1到3.2的變化
3.1中ramdisk.Img是放在out/kernel/src_tmp/linux-5.10/boot_linux/目錄下被打包到boot_linux.img中。
3.2的ramdisk.Img是直接放在單獨的分區里面,由Boot在開機的模式不同的情況下選擇加載不同的根文件系統
2)如何修改ramdisk
在.gn文件里面添加對應的配置文件,生成的文件將會被放到ramdisk鏡像里面
    image_list += [
"ramdisk",
"updater_ramdisk",
]

顯示模塊適配

1)Devices tree配置
通過設備樹來打開mipi 通道1的配置和hdmi的設備,OpenHarmony 3.2 Beta5 是支持多屏異顯的,OpenHarmony 3.1 Release 不支持。
&dsi1 {
status = "okay";
//rockchip,lane-rate = <200>;
dsi1_panel: panel@0 {
status = "okay";
compatible = "simple-panel-dsi";
reg = <0>;
backlight = <&backlight>;
reset-delay-ms = <60>;
enable-delay-ms = <60>;
prepare-delay-ms = <60>;
unprepare-delay-ms = <60>;
disable-delay-ms = <60>;
dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;
dsi,format = ;
dsi,lanes = <4>;
panel-init-sequence = [
05 78 01 11
05 14 01 29
];


panel-exit-sequence = [
05 00 01 28
05 00 01 10
];


disp_timings1: display-timings {
native-mode = <&dsi1_timing0>;
dsi1_timing0: timing0 {
clock-frequency = <150000000>;
hactive = <1200>;
vactive = <1920>;
hback-porch = <120>;
hfront-porch = <10>;
vback-porch = <10>;


&hdmi {
status = "okay";
rockchip,phy-table =
<92812500 0x8009 0x0000 0x0270>,
<165000000 0x800b 0x0000 0x026d>,
<185625000 0x800b 0x0000 0x01ed>,
<297000000 0x800b 0x0000 0x01ad>,
<594000000 0x8029 0x0000 0x0088>,
<000000000 0x0000 0x0000 0x0000>;
};
2)內核打開相關的配置
3.2中默認關閉了CONFIG_DRM_PANEL_SIMPLE,但是我們的設備數中字段需要依賴這個配置項,所以需要打開它。
CONFIG_DRM_PANEL_SIMPLE=y
CONFIG_DRM_ANALOGIX_DP=y
CONFIG_DRM_DW_HDMI=y
CONFIG_DRM_DW_HDMI_I2S_AUDIO=y
CONFIG_DRM_DW_HDMI_CEC=y
CONFIG_DRM_DW_MIPI_DSI=y
3)HAL層的適配
源碼結構


顯示HDI需要適配兩部分:gralloc 和 display_device。

display device適配
display device模塊提供顯示設備管理、layer管理、硬件加速等功能。
drm設備節點定義在//device/soc/rockchip/rk3568/hardware/display/src/display_device/drm_device.cpp文件中,可根據實際情況修改
std::shared_ptr DrmDevice::Create()
{
DISPLAY_DEBUGLOG();
if (mDrmFd == nullptr) {
const std::string name("rockchip");
int drmFd = open("/dev/dri/card0", O_RDWR | O_CLOEXEC); // drmOpen(name.c_str(), nullptr);
}
如開發板不支持硬件合成或是有問題的時候,需要在drm_display.cpp文件中跳過gfx的初始化。
int32_t DrmDisplay::Init()
{
...
...
ret = preComp->Init(); // gfx初始化,這里需要跳過
DISPLAY_CHK_RETURN((ret != DISPLAY_SUCCESS), DISPLAY_FAILURE, DISPLAY_LOGE("can not init HdiGfxComposition")); // 或者不判斷返回值
}
同時在//device/soc/rockchip/rk3568/hardware/display/src//hdi_gfx_composition.cpp文件中修改set_layers方法,全部使用CPU合成顯示。
int32_t HdiGfxComposition::vector &layers, HdiLayer &clientLayer)
{
#if 0 // CPU合成
layer->SetDeviceSelect(COMPOSITION_CLIENT);
#else
if ((layer->GetCompositionType() != COMPOSITION_VIDEO) &&
(layer->GetCompositionType() != COMPOSITION_CURSOR)) {
layer->SetDeviceSelect(COMPOSITION_DEVICE);
} else {
layer->SetDeviceSelect(layer->GetCompositionType());
}
#endif
}
gralloc適配
gralloc模塊提供顯示內存管理功能,OpenHarmony提供了使用與Hi3516DV300參考實現。
drm設備節點定義在//device/soc/rockchip/rk3568/hardware/display/src/display_gralloc/display_gralloc_gbm.c文件中,可根據實際情況修改
constchar*g_drmFileNode="/dev/dri/card0";

1)Devices tree配置
我們的開發板使用的是gt9XX的觸摸屏,所以我們把相關的信息配置進去。
   gt9xx: gt911@14 {
compatible = "goodix,gt9xx";
reg = <0x14>;
pinctrl-names = "default";
pinctrl-0 = <&tp_gpio>;
goodix_irq_gpio = <&gpio3 RK_PB4 IRQ_TYPE_LEVEL_LOW>;
goodix_rst_gpio = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>;
/*touchscreen-inverted-x;*/
status = "okay";
};
2)內核驅動配置
打開內核配置CONFIG_TOUCHSCREEN_GT9XX=y
驅動源碼里面把所有ABS_MT_WIDTH_MAJOR相關的屬性去掉。3.2不識別有這個屬性的
輸入設備。
kernel/linux/linux-5.10/drivers/input/touchscreen/gt9xx/gt9xx.c
//input_set_abs_params(ts->input_dev,ABS_MT_WIDTH_MAJOR,0,255,0,0);

USB調試適配

1)調試工具
開發板的USB host是標準的linux驅動架構,OpenHarmony 對這塊基本不需要做修改,USB的設備包括鼠標,sdcard都會默認支持。
USB 作為devices,最常用的功能是連接電腦,用電腦端的hdc shell來調試設備,這樣我們才能在后續工作中抓取日志分析。
hdc shell “dmesg -Tw” 實時獲取kernel 日志
hdc shell “hilog” 獲取OpenHarmony 日志

2)USB devices設備的端口選擇
init.rk3568.usb.cfg文件中有Usb初始化參數設置,其中最主要的是
sys.usb.controller設置成正確的基地址以及設備類型
"setparamsys.usb.controllerfcc00000.dwc3"

總結

至此我們的開發板擁有自己的開發基線,也已經可以進入到桌面,觸摸屏,USB鼠標,hdc調試都已經正常工作,我們接下來進行下一階段的適配工作。

參考鏈接

以下是源碼倉庫地址

https://gitee.com/harchermindy/vendor_archermind

https://gitee.com/harchermindy/device_board_archermind

https://gitee.com/harchermindy/uboot-rk-openharmony

https://gitee.com/harchermindy/linux-5.10



原文標題:開發板如何適配OpenHarmony 3.2

文章出處:【微信公眾號:OpenAtom OpenHarmony】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 鴻蒙
    +關注

    關注

    57

    文章

    2392

    瀏覽量

    43056
  • OpenHarmony
    +關注

    關注

    25

    文章

    3747

    瀏覽量

    16588

原文標題:開發板如何適配OpenHarmony 3.2

文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    OpenHarmony源碼編譯后燒錄鏡像教程,RK3566鴻蒙開發板演示

    本文介紹瑞芯微主板/開發板編譯OpenHarmony源碼后燒錄鏡像的教程,觸覺智能Purple Pi OH鴻蒙開發板演示。搭載了瑞芯微RK3566四核處理器,樹莓派卡片電腦設計,支持開源鴻蒙O
    的頭像 發表于 12-30 10:08 ?183次閱讀
    <b class='flag-5'>OpenHarmony</b>源碼編譯后燒錄鏡像教程,RK3566鴻蒙<b class='flag-5'>開發板</b>演示

    OpenHarmony怎么修改DPI密度值?觸覺智能RK3566鴻蒙開發板演示

    開源鴻蒙OpenHarmony系統下,修改DPI密度值的方法,觸覺智能Purple Pi OH鴻蒙開發板演示,搭載了瑞芯微RK3566四核處理器,Laval鴻蒙社區推薦開發板,已適配
    的頭像 發表于 12-24 11:46 ?265次閱讀
    <b class='flag-5'>OpenHarmony</b>怎么修改DPI密度值?觸覺智能RK3566鴻蒙<b class='flag-5'>開發板</b>演示

    OpenHarmony默認30秒熄屏太麻煩?觸覺智能鴻蒙開發板教你輕松取消

    OpenHarmony系統開機后 30 秒會自動息屏,教大家兩招輕松取消自動息屏,觸覺智能Purple Pi OH鴻蒙開發板演示,已適配全新OpenHarmony5.0 Release
    的頭像 發表于 12-09 11:45 ?268次閱讀
    <b class='flag-5'>OpenHarmony</b>默認30秒熄屏太麻煩?觸覺智能鴻蒙<b class='flag-5'>開發板</b>教你輕松取消

    OpenHarmony屬性信息怎么修改?觸覺智能RK3566鴻蒙開發板來演示

    本文介紹開源鴻蒙OpenHarmony系統下,修改產品屬性信息的方法,觸覺智能Purple Pi OH鴻蒙開發板演示,已適配全新OpenHarmony5.0 Release系統!
    的頭像 發表于 11-27 09:31 ?235次閱讀
    <b class='flag-5'>OpenHarmony</b>屬性信息怎么修改?觸覺智能RK3566鴻蒙<b class='flag-5'>開發板</b>來演示

    如何在開源鴻蒙OpenHarmony開啟SELinux模式?RK3566鴻蒙開發板演示

    本文介紹開源鴻蒙OpenHarmony系統下,開啟/關閉SELinux權限的方法,觸覺智能Purple Pi OH鴻蒙開發板演示,已適配全新OpenHarmony5.0 Release
    的頭像 發表于 11-18 19:03 ?423次閱讀
    如何在開源鴻蒙<b class='flag-5'>OpenHarmony</b>開啟SELinux模式?RK3566鴻蒙<b class='flag-5'>開發板</b>演示

    觸覺智能Purple Pi OH鴻蒙開發板成功適配OpenHarmony5.0 Release,開啟新征程

    觸覺智能Purple Pi OH鴻蒙開發板,成功適配OpenHarmony5.0 Release版本!為大家帶來OpenHarmony5.0特性講解!關注觸覺智能,為大家帶來更多
    的頭像 發表于 10-25 10:51 ?485次閱讀
    觸覺智能Purple Pi OH鴻蒙<b class='flag-5'>開發板</b>成功<b class='flag-5'>適配</b><b class='flag-5'>OpenHarmony</b>5.0 Release,開啟新征程

    OpenHarmony 明星開發板和應用招募啟動,等你來!

    為助力企業和開發者快速找到好用的開發板和應用,推動OpenHarmony生態發展,現啟動 “OpenHarmony 明星開發板和應用招募”評
    發表于 09-14 15:21

    鴻蒙OpenHarmony開發板解析:【芯片解決方案】

    芯片解決方案是指基于某款開發板的完整解決方案,包含驅動、設備側接口適配開發板sdk等。
    的頭像 發表于 05-10 15:42 ?1304次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b><b class='flag-5'>開發板</b>解析:【芯片解決方案】

    鴻蒙OpenHarmony【基于Hi3516DV300開發板(時鐘應用開發)】

    如何快速搭建基于OpenHarmony標準系統(Hi3516DV300開發板)的應用開發環境,并基于一個時鐘APP示例逐步展示應用的創建、開發、調試和安裝等流程。
    的頭像 發表于 05-08 15:27 ?1243次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>【基于Hi3516DV300<b class='flag-5'>開發板</b>(時鐘應用<b class='flag-5'>開發</b>)】

    鴻蒙OpenHarmony【集成三方SDK】 (基于Hi3861開發板

    OpenHarmony致力于打造一套更加開放完善的IoT生態系統,為此OpenHarmony規劃了一組目錄,用于將各廠商的SDK集成到OpenHarmony中。本文檔基于Hi3861開發板
    的頭像 發表于 04-24 15:11 ?1193次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>【集成三方SDK】 (基于Hi3861<b class='flag-5'>開發板</b>)

    OpenHarmony鴻蒙南向開發案例:【智能貓眼(基于Hi3518開發板)】

    基于Hi3518開發板,使用開源OpenHarmony開發的RTSP協議流媒體應用。達到將Hi3518開發板中攝像頭獲取的數據通過RTSP協議傳輸到手機并顯示 。
    的頭像 發表于 04-22 15:46 ?2136次閱讀
    <b class='flag-5'>OpenHarmony</b>鴻蒙南向<b class='flag-5'>開發</b>案例:【智能貓眼(基于Hi3518<b class='flag-5'>開發板</b>)】

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

    基于Hi3516開發板,使用開源OpenHarmony開發的RTSP協議流媒體應用。達到將Hi3516開發板中攝像頭獲取的數據通過RTSP協議傳輸到手機并顯示 。
    的頭像 發表于 04-19 22:01 ?698次閱讀
    <b class='flag-5'>OpenHarmony</b>鴻蒙南向<b class='flag-5'>開發</b>案例:【智能貓眼(基于3516<b class='flag-5'>開發板</b>)】

    OpenHarmony南向開發案例:【智能油煙機】

    基于Hi3516開發板,使用開源OpenHarmony開發的應用。
    的頭像 發表于 04-18 15:54 ?1109次閱讀
    <b class='flag-5'>OpenHarmony</b>南向<b class='flag-5'>開發</b>案例:【智能油煙機】

    適配開源鴻蒙OpenHarmony 4.1,Purple Pi OH開發板與時俱進

    2024年4月3日,備受矚目的OpenHarmony4.1release版本正式發布。值得一提的是,觸覺智能的PurplePiOH已經成功適配了這一新版本,展現出強大的兼容性和前沿的技術實力。此次
    的頭像 發表于 04-18 08:33 ?974次閱讀
    已<b class='flag-5'>適配</b>開源鴻蒙<b class='flag-5'>OpenHarmony</b> 4.1,Purple Pi OH<b class='flag-5'>開發板</b>與時俱進

    【七】Purple Pi OH開發板帶你7天入門OpenHarmony

    進入OpenHarmony系統的世界,對于許多開發者來說,是一次全新且充滿挑戰的旅程。通過PurplePiOH開發板這個窗口,我們不僅能夠觸摸到硬件本身的魅力,還有機會深入探索
    的頭像 發表于 03-22 08:31 ?472次閱讀
    【七】Purple Pi OH<b class='flag-5'>開發板</b>帶你7天入門<b class='flag-5'>OpenHarmony</b>!
    澳门百家乐官网小| 大埔县| 时时博百家乐娱乐城| 百家乐官网买闲打法| 大发888国际体育| 百家乐桌台布| 百家乐官网庄闲局部失| 博彩选名门国际| 百家乐棋牌游戏正式版| 百家乐官网玩法介绍图片| 皇博线上娱乐| 百家乐制胜软件| 新世百家乐官网的玩法技巧和规则 | 皇冠网百家乐官网阿| 百家乐官网是真的吗| 大发888娱乐场下载samplingid112 | 百家乐公式书| 视频百家乐官网平台| 百家乐官网单机版游戏下载| 大发888 大发888娱乐城 大发888娱乐场 | 棋牌百家乐官网赢钱经验技巧评测网| 豪龙国际娱乐| 百家乐网上真钱娱乐| 怎样赢百家乐官网的玩法技巧和规则| 淘金盈国际线上娱乐| 百家乐图形的秘密破解| 24山向与周天360度关系示意图| 大赢家百家乐官网66| 利高| 大发888优惠红利代码| 澳门百家乐心| 免费百家乐官网统计软件| 百家乐官网直杀| 博彩娱乐| 威尼斯人娱乐网上百家乐| 百家乐智能分析软| 百家乐官网破战| 广州百家乐官网酒店用品制造有限公司| 威尼斯人娱乐 老品牌| 六合彩报纸| 百家乐台布21点|