侵權投訴

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

3天內不再提示

詳解Board和SoC解耦的設計思路

HarmonyOS_Community ? 來源:HarmonyOS官方合作社區 ? 作者:HarmonyOS官方合作社 ? 2022-03-03 09:50 ? 次閱讀

摘要

本文簡單介紹OpenHarmony輕量系統移植,Board和SoC解耦的設計思路。適合自己動手移植OpenHarmony輕量系統的朋友們。

開始嘗試講解一下系統的移植,主要是輕量系統,也可能會順便講下L1移植。

對應的是 01_vendor_soc_board

詳解Board和SoC解耦的設計思路

1、hb編譯原理

當我們輸入hb set命令后,會提示我們選擇要編譯構建的工程。

詳解Board和SoC解耦的設計思路

那么,hb 怎么知道有哪些工程可以編譯呢?

事實上這些工程都是在vendor文件夾中的,為了驗證,我們可以在vendor中創建一個空的文件夾:gd,然后gd文件夾下面又創建了gd32f303_lianzhian文件夾。

但是這里還不夠,一個標準簡單的vendor文件夾結構如下:

詳解Board和SoC解耦的設計思路

其中debug.config內容為空即可,因為它的內容是自動生成的,后面我們配置的內核的時候需要用到。

這幾個文件我們可以直接復制3861的過來,然后刪去我們不需要的子系統,我們只需要保留如下即可:

config.json文件:

{  "product_name": "gd32f303_lianzhian",  "type": "mini",  "version": "3.0",  "device_company": "lianzhian",  "board": "gd32f303_lianzhian",  "kernel_type": "liteos_m",  "kernel_version": "",  "subsystems": [   {    "subsystem": "kernel",    "components": [     { "component": "liteos_m",      "features":[      ]     }    ]   }  ],  "third_party_dir": "",  "product_adapter_dir": ""}

向右滑動查看完整代碼

BUILD.gn文件:

group("gd32f303_lianzhian") {}

向右滑動查看完整代碼

此時,我們再去執行hb set,就可以看到我們自己創建的工程了:gd32f303_lianzhian

詳解Board和SoC解耦的設計思路

2、設計思想

最新的master分支的代碼設計采用Board和SoC解耦的設計思路,具體可以看這個文章:

按照硬件進行層次劃分為芯片架構層、片上系統層和單板層。從下向上依次進行包含關系,例如:

(1)架構

ARMv7E-M架構具有ARM Cortex-M4, ARM Cortex-M7等CPU實現。

(2)芯片系列

ARM Cortex-M4 CPU對應的SoC Family有STmicro STM32、NXP i.MX等,反過來,如圖SoC Family 2跨越CPU1和CPU2,意味著一個SoC Family可以包含多個CPU實現,例如STMicro STM32可以包含Cortex-M0、Cortex-M4等CPU,又例如復雜的STM32MP157 SoC包含兩個Cortex-A7 CPU核與一個Cortex-M4 CPU核,對于異構多核SoC,需要通過OpenAMP來進行分解成多個同構多核的部分。

(3)芯片與開發板對應關系

STM32 SoC Family有STM32F4、STM32G4等SoC Series。

STM32F4 SoC Series 有 STM32F401、STM32F429等SoC。

STM32F429 SoC 有 野火STM32F429挑戰者開發板、正點原子stm32f429阿波羅開發板等。

如圖Board 5上面還有一個shields,意味著一個Board可以通過增加擴展板的形式來提供更強的功能。例如,單板可以利用串口通信外接Hi3861模組,以提供WLAN能力。

詳解Board和SoC解耦的設計思路

基于硬件結構劃分層次圖,OpenHarmony頂層目錄結構設計如下:

詳解Board和SoC解耦的設計思路

3、board配置

1)創建 board文件夾

當我們輸入hb set命令后,我們選擇 gd32f303_lianzhian 可以看到會提示報錯:我們需要創建該文件夾:device/board/lianzhian,為啥是lianzhian ?

因為我們在vendor中的config.json中指定了device_company 設備廠家是lianzhian,大家可以回頭看看,標準的board文件夾目錄結構如下:

詳解Board和SoC解耦的設計思路

2)Kconfig配置文件

我們可以在kernel/liteos_m內核目錄下執行make menuconfig進行圖形化配置,Makefile文件會遍歷board下的所有Kconfig文件,所以我們需要添加對應的Kconfig文件。

這里內核是分層設計的,即廠商配置和具體開發板分開,一個廠商下面可以有多個開發板。

例如我們現在移植的設備廠商是是lianzhian,那么lianzhian是廠商文件夾,lianzhian下面有Kconfig,主要是廠商級別的配置。

然后lianzhian下面可以有多個開發板,我們這里只寫了gd32f303_lianzhian開發板。同樣gd32f303_lianzhian文件夾下面也有Kconfig配置文件。

3)廠商Kconfig配置文件

我們先看下lianzhian廠商的Kconfig文件

(1)Kconfig.liteos_m.boards 文件內容:

orsource "*/Kconfig.liteos_m.board"

可以看到很簡單,事實上它就是簡單的把當前目錄下的所有文件夾下的Kconfig.liteos_m.board文件都導入進來。

(2)Kconfig.liteos_m.defconfig.boards文件

orsource "*/Kconfig.liteos_m.defconfig.board"

同樣把當前目錄下的所有文件夾下的Kconfig.liteos_m.defconfig.board文件都導入進來。

(3)Kconfig.liteos_m.shields 文件

這里我們暫時不需要,可以內容為空

4)具體開發板的Kconfig配置文件

我們先看下gd32f303_lianzhian廠商的Kconfig文件。

(1)Kconfig.liteos_m.board文件:

需要配置選擇該單板的選項,以及它依賴的SoC

config BOARD_GD32F303_LIANZHIAN  bool "select board gd32f303 lianzhian"  depends on SOC_GD32F303    #只有當我們芯片型號選擇為GD32F303時才可見

向右滑動查看完整代碼

這里是增加一個配置選項,即后面我們可以在make menuconfig中看到"select board gd32f303 lianzhian"配置項。

詳解Board和SoC解耦的設計思路

(2)Kconfig.liteos_m.defconfig.board 文件

需要配置選擇該單板后,默認定義 BOARD 的名字,該文件我們可以留空,也可以如下配置:

if BOARD_GD32F303_LIANZHIANconfig BOARD  string  default "gd32f303_lianzhian"
endif #BOARD_GD32F303_LIANZHIAN

向右滑動查看完整代碼

(3)gd32f303_lianzhian_defconfig 文件

內容為:

LOSCFG_BOARD_GD32F303_LIANZHIAN=yLOSCFG_SOC_SERIES_GD32F303=yLOSCFG_SOC_GD32F303ZET6=y

向右滑動查看完整代碼

這里表示我們選中的板卡、SOC、SOC具體子型號系列等。

5)config.gni配置文件

liteos_m文件夾下的config.gni文件是用來進行內核配置的

詳解Board和SoC解耦的設計思路

該文件內容如下:

# Copyright (C) 2020 Hisilicon (Shanghai) Technologies Co., Ltd. All rights reserved.
# 選擇內核類型, e.g. "linux", "liteos_a", "liteos_m".kernel_type = "liteos_m"
# 內核版本,留空即可.kernel_version = ""
# 芯片架構, e.g. "cortex-a7", "riscv32".board_cpu = "cortex-m4"
# 這里一般不用謝, e.g. "armv7-a", "rv32imac".board_arch = ""
# Toolchain name used for system compiling.# E.g. gcc-arm-none-eabi, arm-linux-harmonyeabi-gcc, ohos-clang, riscv32-unknown-elf.# Note: The default toolchain is "ohos-clang". It's not mandatory if you use the default toolchain.# 交叉編譯器名稱board_toolchain = "arm-none-eabi-gcc"
# The toolchain path instalLED, it's not mandatory if you have added toolchain path to your ~/.bashrc.# 這里一般可以不寫board_toolchain_path = ""
# 交叉編譯器Compiler prefix.board_toolchain_prefix = "arm-none-eabi-"
# 編譯器類型 Compiler type, "gcc" or "clang".board_toolchain_type = "gcc"
# 編譯選項Board related common compile flags.board_cflags = [ "-mcpu=cortex-m4", "-mfpu=fpv4-sp-d16", "-mfloat-abi=hard", "-mthumb", "-Og", # "-g", #"-Wall", "-fdata-sections", "-ffunction-sections", # 注意,這里我們需要定義GD32F30X_HD宏 "-DGD32F30X_HD", # 我們需要浮點數計算 "-D__FPU_PRESENT",]board_cxx_flags = board_cflagsboard_ld_flags = []
# 頭文件路徑,一般需要soc相關 Board related headfiles search path.board_include_dirs = [ "${ohos_root_path}device/soc/gd32/gd32f303/liteos_m", "${ohos_root_path}device/soc/gd32/CMSIS", "${ohos_root_path}device/soc/gd32/CMSIS/GD/GD32F30x/Include", "${ohos_root_path}device/soc/gd32/gd32f303/GD32F3XX_Driver/Inc", "${ohos_root_path}device/soc/gd32/gd32f303", "${ohos_root_path}utils/native/lite/include", "${ohos_root_path}kernel/liteos_m/components/cpup", "${ohos_root_path}kernel/liteos_m/components/exchook", ]
# 開發板用到哪個soc Board adapter dir for OHOS components.board_adapter_dir = "${ohos_root_path}device/soc/gd32"
# Sysroot path.board_configed_sysroot = ""
# Board storage type, it used for file system generation.storage_type = ""

向右滑動查看完整代碼

4、SOC配置

1)創建 SOC文件夾

我們進入到device/soc文件夾,創建 gd32文件夾,gd32文件夾內容如下:

詳解Board和SoC解耦的設計思路

其中GD32官方標準庫文件和CMSIS都可以在GD官網下載到,而且不需要我們修改編寫,故而本節不會講其中的內容,重點放在Kconfig配置文件中。

同樣,soc也是分為芯片廠家的Kconfig 和具體芯片信號的Kconfig,gd32是芯片廠家,gd32f303只是其中的一款型號而已。

2)gd32芯片廠家Kconfig配置文件

(1)先看Kconfig.liteos_m.soc文件

config SOC_COMPANY_GD32  bool
if SOC_COMPANY_GD32config SOC_COMPANY  default "gd32"
rsource "*/Kconfig.liteos_m.soc"endif # SOC_COMPANY_GD32

向右滑動查看完整代碼

這里很簡單,就是配置我們的芯片廠商默認為 gd32,之后導入所有文件夾的 Kconfig.liteos_m.soc 配置文件。

(2)Kconfig.liteos_m.series文件

這個文件就比較簡單了,導入所有文件夾的 Kconfig.liteos_m.series 配置文件

rsource "*/Kconfig.liteos_m.series"

向右滑動查看完整代碼

(3)Kconfig.liteos_m.defconfig

同樣,導入所有文件夾的Kconfig.liteos_m.defconfig

rsource "*/Kconfig.liteos_m.defconfig.series"

向右滑動查看完整代碼

3)gd32F303芯片的Kconfig配置文件

我們來看看具體的芯片型號gd32f303的配置文件吧

(1)Kconfig.liteos_m.series文件

需要配置芯片系列,以及它的芯片架構等信息,內容:

config SOC_SERIES_GD32F303  bool "GD32F303 chip"  select ARM  select SOC_COMPANY_GD32  select CPU_CORTEX_M4  help    Enable support for GD32F303

向右滑動查看完整代碼

這個是芯片系列的選擇,我們的芯片系列是GD32F303,架構是ARM、CORTEX_M4 芯片廠家是 SOC_COMPANY_GD32,這個在上一級gd32的Kconfig配置文件中有定義。

(2)Kconfig.liteos_m.soc文件

需要配置芯片系列有多少個型號的芯片。內容:

choice  prompt "GD32F303 series SoC"  depends on SOC_SERIES_GD32F303 #只有選擇了芯片系列SOC_SERIES_GD32F303后才會出現如下選項
config SOC_GD32F303ZET6  #增加一個SOC_GD32F303ZET6選項,我們現在只有GD32F303ZET6,后面可以還有GD32F303RCT6等。  bool "SoC GD32F303ZET6"
endchoice

向右滑動查看完整代碼

(3)Kconfig.liteos_m.defconfig.series 文件

選擇芯片系列后默認的配置,內容:

if SOC_SERIES_GD32F303
rsource "Kconfig.liteos_m.defconfig.gd32f303"
config SOC_SERIES  string  default "gd32f303"
config NUM_IRQS #中斷數量,跟具體芯片相關  int  default 90
config SYS_CLOCK_HW_CYCLES_PER_SEC #時鐘周期,GD32F303是120MHz  int  default 120000000
endif

向右滑動查看完整代碼

(4)Kconfig.liteos_m.defconfig.gd32f303 文件

Gd32f303的配置,內容比較簡單:

config SOC  string  default "gd32f303zet6"  depends on SOC_GD32F303ZET6

向右滑動查看完整代碼

默認是gd32f303zet6,至此我們的soc的kconfig配置基本完成。

4)內核配置頭文件

還有一個比較重要的內核配置頭文件,target_config.h。這個大家可以直接復制我的就行,主要是內核功能配置相關。

詳解Board和SoC解耦的設計思路

其中有一個比較重要的配置項:

/** * @ingroup los_config * Memory size */#define LOSCFG_SYS_HEAP_SIZE                (60*1024)

向右滑動查看完整代碼

這個是配置內核的堆棧大小,這里可以根據自己芯片的內存大小來定,GD32F303內存是64KB,這里我用60k即可。

5、make menuconfig配置

完成上面移植內容后,接下來,我們就可以進行menuconfig配置了。

注意,這里我們需要先執行一次hb set選擇我們的開發板gd32f303_lianzhian。我們進入 kernel/liteos_m 文件夾執行 make menuconfig

詳解Board和SoC解耦的設計思路

進入Platform,我們選擇gd32f303芯片、gd32f303_lianzhian開發板,如下:

詳解Board和SoC解耦的設計思路

退出保存。結果將自動保$(PRODUCT_PATH)/kernel_configs/debug.config

6、gn編譯

在上一步Kconfig的圖形化配置后,將其生成的配置結果可以作為gn編譯的輸入,以控制不同模塊是否編譯。另外為了解決之前gn編寫時,隨意include的問題,內核編譯做了模塊化編譯的設計,使得整個編譯邏輯更加清晰。

我們需要編寫device/board/lianzhian 和 device/soc/gd32兩個文件夾下的BUILD.gn。

這幾個BUILD.gn文件比較簡單,都是模塊化編譯,大家可以直接參考我的。

7、開始編譯

配置完BUILD.gn后,我們就可以開始執行hb build -f編譯了??梢钥吹揭呀浤芫幾g過一大半了:

詳解Board和SoC解耦的設計思路

我們今天的目標就是要能讓編譯系統能開始編譯我們的開發板一步一腳印,接下來我們將繼續開始移植,接下來將配置libc庫、系統啟動、main函數、鏈接腳本,直到編譯通過并且在開發板中成功運行~

本節Board和SoC解耦的設計思路就分享到這里了,下一篇我們給大家分享:Board、SOC、架構與代碼對應關系,歡迎大家持續關注哦~

原文標題:從零移植OpenHarmony輕量系統【2】Board和SoC解耦的設計思路

文章出處:【微信公眾號:HarmonyOS官方合作社區】歡迎添加關注!文章轉載請注明出處。

審核編輯:湯梓紅

原文標題:從零移植OpenHarmony輕量系統【2】Board和SoC解耦的設計思路

文章出處:【微信號:HarmonyOS_Community,微信公眾號:HarmonyOS官方合作社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    一文搞懂CPU、MPU、MCU、SOC的聯系與區別

    1 CPU CPU(Central Processing Unit),是一臺計算機的運算核心和控制核....
    的頭像 嵌入式大雜燴 發表于 04-05 13:45 ? 423次 閱讀
    一文搞懂CPU、MPU、MCU、SOC的聯系與區別

    喜大普奔!OpenHarmony 3.1新特性—DAYU200能打電話了!

    1、前言大家好,我叫連志安,目前是OpenHarmony社區的一位開發者。 我在2020年華為的HDC上就開始接觸OpenHarmony,至今1...
    發表于 04-04 10:52 ? 2107次 閱讀

    OpenHarmony開源開發者成長計劃:電子發燒友導師團招募

    OpenAtom OpenHarmony(以下簡稱“OpenHarmony”) 開源開發者成長計劃項目自2021年 10 月 24 日上線以來,在開發者中引發...
    發表于 04-02 17:32 ? 4664次 閱讀

    分享嵌入式軟件Bootloader設計與移植方法

      嵌入式電子產品由于其專用性的特性 ,使得與硬件相關的軟件需要經過移植才能使用。如何設計與移植設備....
    發表于 04-02 17:24 ? 15次 閱讀

    物聯網難以忽視的真相:物聯網安全是一場永無止境的戰斗

    物聯網 (IoT) 聯網設備的持續創新和廣泛采用帶來了廣泛的便利,改善了我們每天的生活。與此同時,物....
    的頭像 物聯網評論 發表于 04-02 17:09 ? 165次 閱讀

    無線終端SoC芯片TK8610概述及功能特點

    芯來科技助力道生物聯發布基于RISC-V內核的TurMass標準無線終端SoC芯片—TK8610。
    的頭像 芯來科技 發表于 04-02 16:02 ? 190次 閱讀

    在OpenHarmony library中如何引用本地har庫

    我在devstudio 的library中引用本地har庫, build時報如下錯誤: Error:The HAR generated by the library project is corru...
    發表于 04-02 15:21 ? 741次 閱讀

    求助,編譯OpenHarmony2.0失敗了怎么解決

    編譯OpenHarmony2.0失敗,求助一下
    發表于 04-02 15:11 ? 709次 閱讀

    openharmony實現的VideoPlayerManager功能

    介紹 OHOS實現的VideoPlayerManager功能。 移植版本:Branches/mast....
    發表于 04-02 15:10 ? 25次 閱讀

    openharmony第三方組件適配移植的滑塊拼圖驗證碼控件

    項目介紹 項目名稱:滑塊拼圖驗證碼控件 所屬系列:openharmony的第三方組件適配移植 功能:....
    發表于 04-02 14:31 ? 10次 閱讀

    基于openharmony適配移植的水波控件實現

    MultiWaveHeader 是一個可以高度定制每個波形的水波控件。 項目移植狀態:支持組件所有基....
    發表于 04-02 14:28 ? 10次 閱讀

    喜大普奔!DAYU200能打電話了—OpenHarmony 3.1新特性!

    1 前言令人期待的OpenHarmony 3.1Release終于在3月31號發布了,目前DAYU200是首款支持OpenHarmony 3.1 Release版本的...
    發表于 04-02 14:09 ? 4909次 閱讀

    openharmony的動畫加載演示

    使用 DoubleBounce doubleBounce = new DoubleBounce ()....
    發表于 04-02 14:07 ? 8次 閱讀

    基于openharmony適配移植的ohos動畫緩動功能

    集成 方式一: 將項目中的build.gradle文件中dependencies→classpath....
    發表于 04-02 11:55 ? 20次 閱讀

    openharmony第三方組件適配移植的雪花飄落動畫效果

    項目介紹 項目名稱:ohos-snowfall 所屬系列:openharmony的第三方組件適配移植....
    發表于 04-02 11:52 ? 7次 閱讀

    openharmony第三方組件適配移植的SVGA動畫渲染庫

    項目介紹 項目名稱:SVGAPlayer-Ohos 所屬系列:openharmony的第三方組件適配....
    發表于 04-02 11:47 ? 5次 閱讀

    OpenHarmony第三方組件適配移植的螞蟻森林水滴控件

    項目介紹 項目名稱:CustomWaterView 所屬系列:OpenHarmony的第三方組件適配....
    發表于 04-02 11:39 ? 7次 閱讀

    openharmony第三方組件適配移植的實時波紋加載特效控件

    項目介紹 項目名稱:WaveLoadingView 所屬系列:openharmony 第三方組件適配....
    發表于 04-02 11:34 ? 9次 閱讀

    openharmony第三方組件適配移植的動畫庫實現

    項目介紹 項目名稱:CanAnimation 所屬系列:openharmony的第三方組件適配移植 ....
    發表于 04-02 11:30 ? 5次 閱讀

    openharmony第三方組件適配移植的加載動畫庫控件

    項目介紹 項目名稱:Zloading加載動畫庫 所屬系列:openharmony的第三方組件適配移植....
    發表于 04-02 11:27 ? 11次 閱讀

    深度剖析OpenHarmony的對象內核事件

    OpenHarmony 的同步機制,簡單來說就是一個或多個任務可以通過一個或多個事件來觸發事件安排不同的等待寫入事件任務進入運行狀...
    發表于 04-02 11:26 ? 690次 閱讀

    openharmony第三方組件適配移植的水波紋效果控件實現

    項目介紹 項目名稱:RippleView 所屬系列:openharmony的第三方組件適配移植 功能....
    發表于 04-02 11:24 ? 5次 閱讀

    openharmony第三方組件適配移植的交互提示動畫實現

    項目名稱:SuperLike 所屬系列:openharmony的第三方組件適配移植 功能:仿今日頭條....
    發表于 04-02 11:22 ? 10次 閱讀

    openharmony第三方組件適配移植的分段器組件實現

    項目介紹 項目名稱:WaveLineView 所屬系列:openharmony第三方組件適配移植 功....
    發表于 04-02 11:16 ? 9次 閱讀

    基于OpenHarmony適配移植的組件水波紋效果實現

    項目介紹 項目名稱:material-ripple 所屬系列:OpenHarmony的第三方組件適配....
    發表于 04-02 11:10 ? 5次 閱讀

    基于openharmony適配移植的語音識別視圖教程

    項目介紹 項目名稱:SpeechRecognitionView 所屬系列:openharmony的第....
    發表于 04-02 11:07 ? 8次 閱讀

    OpenHarmony動態庫Sa服務拉起的main入口說明

    簡介 OpenHarmony 很多服務都是編譯成動態庫, 動態庫服務,沒有main函數入口。服務的拉起的入口在哪? 以在線升級服務為例說...
    發表于 04-02 11:03 ? 780次 閱讀

    基于openharmony適配移植的水波紋組件教程案例

    項目介紹 項目名稱:RippleDrawable 所屬系列:openharmony的第三方組件適配移....
    發表于 04-02 11:02 ? 9次 閱讀

    基于openharmony適配移植的多種動畫效果實現教程

    項目介紹 項目名稱: OhosLoadingAnimation 所屬系列:openharmony的第....
    發表于 04-02 10:55 ? 5次 閱讀

    openharmony第三方組件適配移植的ohos水波控件

    項目介紹 項目名稱:MultiWaveHeader 所屬系列:openharmony的第三方組件適配....
    發表于 04-02 10:54 ? 3次 閱讀

    【直播回顧】OpenHarmony知識賦能第四期第四課——音頻驅動開發

    3月31日晚上19點,知識賦能第四期直播的第四節,也是本期最后一節直播課《OpenHarmony標準系統HDF框架之音頻驅動開發》,在...
    發表于 04-02 10:53 ? 721次 閱讀
    【直播回顧】OpenHarmony知識賦能第四期第四課——音頻驅動開發

    基于openharmony移植的Confetti粒子系統庫

    Confetti是一個高性能、易于配置的粒子系統庫,可以在空間中為任何一組對象設置動畫。您可以指定您....
    發表于 04-02 10:41 ? 6次 閱讀

    【課程匯總】OpenHarmony全場景Demo數字管家系列課(附鏈接)

    小孩放學了,做作業的時間到,窗簾、護眼燈自動打開,關掉電視和掃地機,給小孩一個安靜舒適的學習環境;碰到學習難題,可以隨時...
    發表于 04-02 10:15 ? 899次 閱讀

    RTT在LPC2478上的移植代碼不支持中斷嵌套嗎

    看了關于移植部分的代碼, 有幾個問題想請教下: 1 移植中關于中斷部分 現在的移植代碼應該是中斷中不支持中斷嵌套的吧。 ...
    發表于 04-02 10:14 ? 1682次 閱讀

    OpenHarmony 3.1來了 OpenHarmony 3.1 Release全面解析

    眾所周知,人們逐漸注重更加高效、舒適、便捷、有趣的生活和工作體驗,并且開發者也需要更多新思路,本文讓....
    的頭像 HiHope社區 發表于 04-01 16:04 ? 236次 閱讀

    openharmony第三方組件適配移植的反彈動畫框架教程

    項目介紹 項目名稱:Backboard 所屬系列:openharmony的第三方組件適配移植 功能:....
    發表于 04-01 11:37 ? 13次 閱讀

    組件計數器的功能實現教程

    介紹 實現組件計數器功能。 導入依賴 方式一: 通過library生成har包,添加har包到lib....
    發表于 04-01 11:09 ? 11次 閱讀

    簡單的openharmony視圖可輕松繪制三角形

    三角視圖包括: *設置方向 *設置顏色 以編程方式添加三角形視圖 通過xml布局添加三角形視圖 使用....
    發表于 04-01 10:58 ? 14次 閱讀

    OpenHarmony第三方組件適配移植的畫板控件使用

    項目介紹 項目名稱:ohos-palette 所屬系列:OpenHarmony的第三方組件適配移植 ....
    發表于 04-01 10:54 ? 11次 閱讀

    openharmony第三方組件適配移植的正弦動畫繪制教程

    項目介紹 項目名稱:SineView 所屬系列:openharmony的第三方組件適配移植 功能:繪....
    發表于 04-01 10:52 ? 13次 閱讀

    openharmony第三方組件適配移植的繪圖功能庫

    項目介紹 項目名稱:ink-ohos 所屬系列:openharmony的第三方組件適配移植 功能:i....
    發表于 04-01 10:48 ? 8次 閱讀

    openharmony第三方組件適配移植的多邊形繪制工具教程

    項目介紹 項目名稱:PolygonDrawingUtil 所屬系列:openharmony的第三方組....
    發表于 04-01 10:45 ? 13次 閱讀

    openharmony第三方組件適配移植的自由繪制視圖教程

    項目介紹 項目名稱:自由繪制視圖 所屬系列:openharmony的第三方組件適配移植 功能:根據手....
    發表于 04-01 10:42 ? 8次 閱讀

    openharmony第三方組件適配移植的工程視圖組件

    項目介紹 項目名稱:DrawingView-Ohos 所屬系列:openharmony的第三方組件適....
    發表于 04-01 10:39 ? 12次 閱讀

    openharmony第三方組件適配移植的繪圖視圖案例

    項目介紹 項目名稱:繪圖視圖 所屬系列:openharmony的第三方組件適配移植 功能:ohos視....
    發表于 04-01 10:34 ? 10次 閱讀

    openharmony適配移植的多邊形視圖控件

    介紹 模仿掌上英雄聯盟能力分析效果。 依賴 方式一.Library引用 添加本工程中library模....
    發表于 04-01 10:26 ? 11次 閱讀

    openharmony第三方組件適配移植的進度條樣式圖表

    項目介紹 項目名稱:ChartProgressBar-Ohos 所屬系列:openharmony的第....
    發表于 04-01 10:08 ? 11次 閱讀

    openharmony第三方組件適配移植的音樂表演控件

    項目介紹 項目名稱:MusicIndicator 所屬系列:openharmony的第三方組件適配移....
    發表于 04-01 10:05 ? 5次 閱讀

    openharmony第三方組件適配移植的開源圖表框架

    項目介紹 項目名稱:AAChartCore開源圖表框架 所屬系列:openharmony的第三方組件....
    發表于 04-01 10:00 ? 9次 閱讀

    openharmony第三方組件適配移植的顯示頻譜控件

    項目介紹 項目名稱:ohos-visualizer 所屬系列:openharmony的第三方組件適配....
    發表于 04-01 09:57 ? 10次 閱讀

    openharmony第三方組件適配移植的自定義折線控件庫

    項目介紹 項目名稱:spark 所屬系列:openharmony的第三方組件適配移植 功能:spar....
    發表于 04-01 09:55 ? 10次 閱讀

    openharmony第三方組件適配移植的圖表功能庫

    項目介紹 項目名稱:achartengine 所屬系列:openharmony的第三方組件適配移植 ....
    發表于 04-01 09:40 ? 6次 閱讀

    openharmony第三方組件適配移植的股價圖表庫

    項目介紹 項目名稱:ikvStockChart 所屬系列:openharmony的第三方組件適配移植....
    發表于 04-01 09:30 ? 4次 閱讀

    簡單但很棒的openharmony滑動按鈕案例

    一個簡單但很棒的openharmony滑動按鈕。 用法 依賴項{ 實現‘io.openharmony....
    發表于 04-01 09:22 ? 6次 閱讀

    openharmony移植的卷尺控件使用教程

    一系列卷尺控件,包含:基本卷尺控件(體重尺,或其它)、金額卷尺控件、時間卷尺控件 demo中,分別用....
    發表于 04-01 09:19 ? 8次 閱讀

    一個openharmony滑塊/搜索欄案例

    一個openharmony滑塊/搜索欄,但不同:-) 依賴項 { 實現‘ io 。開放和諧。tpc ....
    發表于 04-01 09:12 ? 4次 閱讀

    openHarmony的ViewPager擴展可提供基于滾動動畫

    Jazz for openHarmonyOS 一個簡單的 ViewPager 擴展,提供基于滾動的動....
    發表于 03-31 11:37 ? 15次 閱讀
    俄罗斯一级婬片A片AAA毛片_国产一级婬片A片AAA毛片A级