在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

深入理解OpenHarmony系統(tǒng)啟動(dòng) 輕松踏上設(shè)備軟件開(kāi)發(fā)之旅

OpenAtom OpenHarmony ? 來(lái)源:OpenAtom OpenHarmony ? 作者:OpenAtom OpenHarmony ? 2022-08-13 10:31 ? 次閱讀

如何優(yōu)雅地參與開(kāi)源貢獻(xiàn),向頂級(jí)開(kāi)源項(xiàng)目提交PR(Pull Request),跟著大咖30分鐘成為OpenAtom OpenHarmony(簡(jiǎn)稱(chēng)“OpenHarmony”)Contributor。戰(zhàn)“碼”先鋒直播間第五期,邀請(qǐng)華為終端BG OpenHarmony基礎(chǔ)軟件SIG/技術(shù)專(zhuān)家Handy為大家分享《OpenHarmony設(shè)備啟動(dòng)過(guò)程與模塊化開(kāi)發(fā)實(shí)踐》。分享主要分為四個(gè)部分:OpenHarmony設(shè)備啟動(dòng)的基本過(guò)程,基于qemu平臺(tái)的最小系統(tǒng)介紹,init進(jìn)程的設(shè)計(jì)理念,以及如何基于qemu進(jìn)行init的擴(kuò)展模塊開(kāi)發(fā)。

● 第一部分,是從宏觀上了解OpenHarmony在設(shè)備上的啟動(dòng)引導(dǎo)過(guò)程,了解操作系統(tǒng)啟動(dòng)引導(dǎo)的基本概念和相關(guān)術(shù)語(yǔ)。

● 第二部分,介紹基于qemu虛擬機(jī)平臺(tái)的最小系統(tǒng),如何在不要開(kāi)發(fā)板的情況下進(jìn)行OpenHarmony標(biāo)準(zhǔn)系統(tǒng)基礎(chǔ)軟件的開(kāi)發(fā)。

● 第三部分,介紹OpenHarmony第一個(gè)用戶(hù)態(tài)進(jìn)程init的設(shè)計(jì)理念。

● 第四部分,介紹如何基于qemu虛擬機(jī)平臺(tái)進(jìn)行init的模塊化開(kāi)發(fā)。

1. 設(shè)備啟動(dòng)過(guò)程

1.1 OS啟動(dòng)引導(dǎo)技術(shù)概述

ec00193e-1a85-11ed-ba43-dac502259ad0.png

在介紹OpenHarmony操作系統(tǒng)啟動(dòng)引導(dǎo)過(guò)程前,Handy老師先回顧了傳統(tǒng)PC行業(yè)操作系統(tǒng)的引導(dǎo)過(guò)程。上圖是傳統(tǒng)PC硬件和操作系統(tǒng)的大致結(jié)構(gòu),其中底層的是硬件主板,在主板上板載的firmware將完成主板的自啟;然后掃描存儲(chǔ)設(shè)備,包括硬盤(pán)、光盤(pán)、U盤(pán)等;再?gòu)拇鎯?chǔ)設(shè)備上識(shí)別已安裝的操作系統(tǒng),最終從這些操作系統(tǒng)上啟動(dòng)。

在PC環(huán)境下,firmware都遵循UEFI標(biāo)準(zhǔn)。UEFI是一個(gè)非常復(fù)雜的標(biāo)準(zhǔn),由CPU廠商,PC主板廠商和OS廠商聯(lián)合開(kāi)發(fā),主要包括Win-Tel。該標(biāo)準(zhǔn)詳細(xì)定義了固件和操作系統(tǒng)之間的接口,適應(yīng)了PC硬件的開(kāi)放式架構(gòu),使得不同的操作系統(tǒng)都可以在各個(gè)不同廠商的CPU、主板、硬盤(pán)、內(nèi)存上運(yùn)行。UEFI標(biāo)準(zhǔn)的實(shí)現(xiàn)包括EDK2、coreboot、LinuxBoot等。

但在嵌入式系統(tǒng)中,這些標(biāo)準(zhǔn)則相對(duì)簡(jiǎn)化。因?yàn)?a target="_blank">嵌入式設(shè)備不像早期PC一樣可以任意組裝。嵌入式設(shè)備就像一體機(jī),SOC、RAM、EMMC、外設(shè)以及操作系統(tǒng)等都是在設(shè)備出廠時(shí)預(yù)制好,消費(fèi)者開(kāi)箱即用。因此,SOC板載的firmware一般相對(duì)簡(jiǎn)化,只需要加載到bootloader,操作系統(tǒng)開(kāi)發(fā)人員基本不關(guān)心SOC的firmware。

Bootloader是操作系統(tǒng)的直接上游,操作系統(tǒng)需要由Bootloader來(lái)加載并運(yùn)行。在嵌入式系統(tǒng)中,一般都采用uboot。在uboot中可以指定操作系統(tǒng)鏡像在存儲(chǔ)器中的具體位置,這次主要基于u-boot介紹OpenHarmony標(biāo)準(zhǔn)系統(tǒng)的啟動(dòng)引導(dǎo)過(guò)程。

另外還有兩個(gè)基本概念:分區(qū)表和OS鏡像。分區(qū)表是用來(lái)把存儲(chǔ)器的存儲(chǔ)區(qū)域進(jìn)行劃分,不同區(qū)域存放不同的OS鏡像。

1.2 OpenHarmony啟動(dòng)引導(dǎo)分區(qū)加載過(guò)程

ec389dae-1a85-11ed-ba43-dac502259ad0.png

上圖為我們指明了OpenHarmony相關(guān)的OS鏡像。u-boot首先加載boot.img和ramdisk.img。boot.img是內(nèi)核鏡像,ramdisk.img是最早的用戶(hù)態(tài)進(jìn)程鏡像,其中就包括init進(jìn)程。通過(guò)這兩個(gè)OS鏡像,系統(tǒng)可以啟動(dòng)到最基本的shell,這里還沒(méi)有啟動(dòng)任何業(yè)務(wù)。

在ramdisk.img的init進(jìn)程里,會(huì)主動(dòng)掛載system.img和vendor.img,并掃描其中的啟動(dòng)配置文件,拉起各個(gè)進(jìn)程。system.img和vendor.img是OpenHarmony中各個(gè)子系統(tǒng)編譯后產(chǎn)物的集合。

從上圖右側(cè)文字我們可以看到,u-boot和OpenHarmony鏡像啟動(dòng)時(shí)都需要知道分區(qū)表信息。分區(qū)表信息有多種方式傳遞,一般包括GPT分區(qū)表,bootargs分區(qū)表。圖中示意的是u-boot通過(guò)blkdevparts這個(gè)bootargs傳遞給內(nèi)核。內(nèi)核會(huì)根據(jù)這些信息創(chuàng)建對(duì)應(yīng)的block設(shè)備。同時(shí)還有root這個(gè)節(jié)點(diǎn),告知內(nèi)核從哪里掛載根文件系統(tǒng),從而啟動(dòng)init。

ramdisk里的init最重要的幾個(gè)事件包括:創(chuàng)建并掛載根文件系統(tǒng),包括tmpfs、dev節(jié)點(diǎn)、procfs等。同時(shí),需要掛載system.img和vendor.img,這兩個(gè)是啟動(dòng)過(guò)程的必選分區(qū)。當(dāng)前Release版本里是通過(guò)ramdisk.img里的required.fstab文件來(lái)配置system、vendor分區(qū)的掛載參數(shù);最新master版本還支持通過(guò)ohos.required_mount.xxx bootargs參數(shù)來(lái)提供這些掛載參數(shù);具體參考文檔可以參考《啟動(dòng)子系統(tǒng)概述》(https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-boot-overview.md)。

ramdisk里的init完成system/vendor的掛載后,就開(kāi)始進(jìn)入system/vendor系統(tǒng)中,開(kāi)始第二階段并發(fā)啟動(dòng)的過(guò)程。此時(shí),init會(huì)掃描/{system,vendor}/etc/init下的各個(gè)啟動(dòng)配置文件,拉起各個(gè)子系統(tǒng)的服務(wù),并最終拉起應(yīng)用。在分區(qū)掛載方面,還有一個(gè)重要的配置文件/vendor/etc/fstab.{hardware};這個(gè)可以定義更多需要掛載的分區(qū),包括data分區(qū),以及產(chǎn)品擴(kuò)展的分區(qū)。

1.3 OpenHarmony系統(tǒng)進(jìn)程啟動(dòng)過(guò)程

ec7ac1a2-1a85-11ed-ba43-dac502259ad0.png

隨后,Handy老師為我們介紹了進(jìn)入OpenHarmony系統(tǒng)后,用戶(hù)態(tài)進(jìn)程的啟動(dòng)概況。從上圖中,我們可以把啟動(dòng)的進(jìn)程分為以下幾類(lèi):

● UHDF類(lèi)系統(tǒng)進(jìn)程UHDF類(lèi)系統(tǒng)進(jìn)程為系統(tǒng)提供HDI接口,這類(lèi)進(jìn)程為系統(tǒng)服務(wù)提供芯片無(wú)關(guān)的硬件訪問(wèn)接口。這類(lèi)進(jìn)程都通過(guò)hdf_devmgr管理。

● SA類(lèi)系統(tǒng)進(jìn)程SA是OpenHarmony的基礎(chǔ)系統(tǒng)元能力,每個(gè)SA是一個(gè)獨(dú)立的so,根據(jù)配置一個(gè)或多個(gè)SA可以部署到同一個(gè)進(jìn)程中,我們稱(chēng)這類(lèi)進(jìn)程為SA類(lèi)系統(tǒng)服務(wù)。每個(gè)SA類(lèi)系統(tǒng)服務(wù)進(jìn)程都是通過(guò)sa_main進(jìn)程解析配置文件啟動(dòng),向sa_mgr服務(wù)注冊(cè)支持的SA;訪問(wèn)SA服務(wù)時(shí)需要先根據(jù)SA的ID向sa_mgr獲取該SA的句柄。

● Linux原生系統(tǒng)服務(wù)OpenHarmony除了支持SA類(lèi)和UHDF類(lèi)系統(tǒng)進(jìn)程外,也支持啟動(dòng)Linux原生的系統(tǒng)進(jìn)程。通過(guò)Linux原生系統(tǒng)服務(wù)可以快速使用Linux社區(qū)已有的成熟能力。

● 應(yīng)用進(jìn)程每個(gè)應(yīng)用進(jìn)程都是從appspawn孵化而來(lái),appspawn預(yù)加載了應(yīng)用運(yùn)行時(shí)需要的資源,主要是ArkUI相關(guān)的依賴(lài)庫(kù)。

init拉起每個(gè)進(jìn)程的方式都是通過(guò)配置文件來(lái)完成,其格式都是如下所示的JSON格式;每個(gè)進(jìn)程的配置文件安裝到/system/etc/init或/vendor/etc/init目錄下,init會(huì)掃描這些配置,按照配置拉起對(duì)應(yīng)的進(jìn)程。下面我們將結(jié)合qemu最小系統(tǒng)來(lái)介紹下init的詳細(xì)設(shè)計(jì)。

{   "services" : [{           "name" : "watchdog_service",           "start-mode" : "condition",           "path" : ["/system/bin/watchdog_service", "10", "2"],           "disabled" : 1,           "sandbox" : 0,           "uid" : "watchdog",           "gid" : ["watchdog", "log", "readproc"],           "secon" : "uwatchdog_service:s0"      }  ]}

2. 基于qemu的最小系統(tǒng)

2.1 Why qemu

硬件設(shè)備開(kāi)發(fā)人員在開(kāi)發(fā)工作中,需要使用到各種各樣的開(kāi)發(fā)板。每個(gè)開(kāi)發(fā)板的連接線纜、接線方式、升級(jí)燒寫(xiě)方式各不相同,且上手門(mén)檻高;開(kāi)發(fā)時(shí)的便攜性和調(diào)試效率等都比較低。特別是init相關(guān)的開(kāi)發(fā)調(diào)試,修改后還需要整機(jī)燒寫(xiě)。為了能像應(yīng)用開(kāi)發(fā)者一樣,可以隨時(shí)隨地,相對(duì)高效且“體面”地開(kāi)發(fā)底層系統(tǒng)服務(wù)。于是,構(gòu)建了基于qemu的OpenHarmony最小系統(tǒng),希望能讓硬件設(shè)備開(kāi)發(fā)人員只需一臺(tái)筆記本就可以隨時(shí)開(kāi)發(fā)調(diào)試底層系統(tǒng)服務(wù)。

2.2 關(guān)于qemu-arm-linux-min

ecaf69f2-1a85-11ed-ba43-dac502259ad0.png

OpenHarmony的qemu最小系統(tǒng)名稱(chēng)是qemu-arm-linux-min。從名稱(chēng)可以看出,它是用qemu模擬的ARM32位運(yùn)行平臺(tái),使用Linux內(nèi)核運(yùn)行的OpenHarmony最小系統(tǒng)部件集合。其部件集合的定義在vendor/ohemu/qemu_arm_linux_min/config.json里,包含約20個(gè)部件,主要是系統(tǒng)基礎(chǔ)的啟動(dòng)、DFX、安全、samgr、軟總線相關(guān)的部件。

編譯命令只需要指定qemu-arm-linux-min產(chǎn)品名即可,運(yùn)行也只需要一個(gè)qemu-run.sh命令。詳細(xì)的信息可以跳轉(zhuǎn)到文末的device/qemu/arm_virt虛擬平臺(tái)的文檔。

qemu-arm-linux-min的優(yōu)勢(shì):

● 代碼倉(cāng)少,只需要96個(gè)倉(cāng)代碼(-g ohos:chipset -m chipsets/qemu.xml),詳細(xì)說(shuō)明參考https://gitee.com/openharmony/manifest

● 編譯快:只需要編譯5000個(gè)文件(完整系統(tǒng)需3萬(wàn)個(gè))。

● 免燒寫(xiě):qemu-run.sh直接運(yùn)行。

因此,開(kāi)發(fā)者僅需一臺(tái)筆記本,就可以隨時(shí)隨地寫(xiě)代碼,輕松為OpenHarmony做貢獻(xiàn)。

2.3 DEMO TIME

ecebb34e-1a85-11ed-ba43-dac502259ad0.png

了解qemu-arm-linux-min介紹后,Handy老師為我們介紹了如何使用它。

arm_virt網(wǎng)頁(yè)上已經(jīng)比較詳細(xì)地介紹了運(yùn)行虛擬機(jī)的準(zhǔn)備工作了。前面編譯環(huán)境準(zhǔn)備以及下載代碼的都是通用的,編譯命令前面也說(shuō)明了,只需要指定qemu-arm-linux-min即可。運(yùn)行前,需要先安裝qemu,請(qǐng)下載5.2以上版本的qemu,并對(duì)源碼進(jìn)行編譯。

qemu-run.sh運(yùn)行腳本有兩個(gè)運(yùn)行模式,普通模式直接啟動(dòng),虛擬機(jī)只有虛擬磁盤(pán),沒(méi)有網(wǎng)絡(luò)。-n選項(xiàng)可以創(chuàng)建虛擬網(wǎng)橋,使得虛擬機(jī)和主機(jī)之間可以通過(guò)網(wǎng)絡(luò)通信,使用hdc等命令。下面我們演示如何使用qemu-arm-linux-min進(jìn)行g(shù)db調(diào)試。

調(diào)試環(huán)境如下圖所示:主機(jī)上通過(guò)qemu-run.sh創(chuàng)建了虛擬網(wǎng)橋,用于與虛擬機(jī)通信。同時(shí),為了在虛擬機(jī)上訪問(wèn)源碼進(jìn)行g(shù)db調(diào)試,在主機(jī)上啟動(dòng)了smbd服務(wù)。虛擬機(jī)的內(nèi)核默認(rèn)開(kāi)啟了cifs模塊,可以掛載主機(jī)上的smb共享目錄。

● 使能虛擬機(jī)的網(wǎng)絡(luò)接口:


# 使能虛擬機(jī)網(wǎng)絡(luò)接口ifconfig eth0 192.168.100.2# 測(cè)試與主機(jī)側(cè)的網(wǎng)絡(luò)連接ping192.168.100.1-t4

● 在虛擬機(jī)掛載主機(jī)的samba共享目錄:


# 創(chuàng)建掛載點(diǎn)mkdir /mnt/smb# 掛載cifs文件系統(tǒng)mount -t cifs -o username=xxx,password=xxx,vers=2.1      //192.168.100.1/handy /mnt/smb# 可選建立hdc連接hdc_stdtconn192.168.100.2:5555
● 使用gdb:
# gdb在主機(jī)samba服務(wù)器的tools目錄# 調(diào)試代碼在主機(jī)samba服務(wù)器的ohos目錄
# 運(yùn)行調(diào)試程序/mnt/smb/tools/gdb /mnt/smb/ohos/out/qemu-arm-linux/exe.unstripped/startup/init/gdbtest
# 關(guān)聯(lián)源碼目錄directory /mnt/smb/ohos/out/qemu-arm-linux
#其它命令:r, bt

arm版的gdb可以從以下網(wǎng)站獲取:

https://github.com/therealsaumil/static-arm-bins/(需解決網(wǎng)絡(luò)問(wèn)題)

https://gitee.com/stesen/ohos_cross_tools

3. init進(jìn)程的設(shè)計(jì)理念

3.1 init進(jìn)程的模塊劃分

ecff3932-1a85-11ed-ba43-dac502259ad0.png

通過(guò)前文的介紹,可以知道init進(jìn)程是系統(tǒng)從內(nèi)核態(tài)向用戶(hù)態(tài)引導(dǎo)的核心進(jìn)程;該進(jìn)程是所有用戶(hù)態(tài)進(jìn)程的父進(jìn)程。

init的模塊劃分如上圖所示,啟動(dòng)過(guò)程大體分為第一階段和第二階段。第一階段用于創(chuàng)建基礎(chǔ)的根文件系統(tǒng),包括procfs、sysfs、dev設(shè)備節(jié)點(diǎn)、tmpfs等。第二階段提供了系統(tǒng)參數(shù)服務(wù),服務(wù)腳本解析能力;然后就進(jìn)入了腳本配置啟動(dòng)的過(guò)程。

具體配置參考《init啟動(dòng)引導(dǎo)組件》(https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-boot-init.md

這里很重要的部分是init里提供了模塊化引擎,提供了擴(kuò)展模塊開(kāi)發(fā)的對(duì)外API,可以在不改變init框架的基礎(chǔ)上擴(kuò)展init各個(gè)模塊的功能。例如可以擴(kuò)展腳本配置的命令,擴(kuò)展服務(wù)管理功能,在腳本運(yùn)行前擴(kuò)展鉤子執(zhí)行等。

3.2 init進(jìn)程的啟動(dòng)順序與擴(kuò)展機(jī)制說(shuō)明

ed3ca786-1a85-11ed-ba43-dac502259ad0.png

上圖是init進(jìn)程啟動(dòng)的詳細(xì)過(guò)程,主要分為三個(gè)部分:

● 第一階段如前面描述,完成基礎(chǔ)根文件系統(tǒng)的構(gòu)建。

● 第二大部分提供了系統(tǒng)參數(shù)服務(wù),并且完成了配置腳本的掃描與解析。

● 第三大部分進(jìn)入了腳本化運(yùn)行的階段。

第一部分邏輯固定,不提供擴(kuò)展;第二部分都是native代碼,可以通過(guò)開(kāi)發(fā)擴(kuò)展模塊向紅色擴(kuò)展點(diǎn)注冊(cè)鉤子函數(shù)來(lái)擴(kuò)展功能。第三部分通過(guò)配置腳本進(jìn)行擴(kuò)展,每個(gè)系統(tǒng)服務(wù)都可以編寫(xiě)各自的配置文件在指定階段完成相應(yīng)功能。

3.3 init腳本化啟動(dòng)過(guò)程說(shuō)明

ed7ea898-1a85-11ed-ba43-dac502259ad0.png

腳本化啟動(dòng)過(guò)程大體可以分為三個(gè)階段:

● pre-init完成腳本化早期工作,包括ueventd、data分區(qū)掛載等。

● init階段完成samgr和hdf_devmgr的啟動(dòng),這兩個(gè)進(jìn)程是各個(gè)SA進(jìn)程以及HDI服務(wù)進(jìn)程的管理中心,公共依賴(lài)需提前啟動(dòng)。

● post-init階段是各個(gè)子系統(tǒng)服務(wù)啟動(dòng)的階段。為了保障整機(jī)開(kāi)機(jī)啟動(dòng)速度,這個(gè)階段各個(gè)服務(wù)都是并行啟動(dòng)的,服務(wù)之間如果有依賴(lài)關(guān)系,需要進(jìn)行運(yùn)行時(shí)同步設(shè)計(jì)。init提供了系統(tǒng)參數(shù)服務(wù),可以提供wait和watch機(jī)制,輔助各個(gè)服務(wù)進(jìn)行同步。

4. init擴(kuò)展模塊開(kāi)發(fā)示例

init擴(kuò)展模塊代碼都放在base/startup/init_lite/services/modules目錄下,代碼引用API頭文件定義及插件代碼入口:
#include "init_module_engine.h"
MODULE_CONSTRUCTOR(void){   // 加載插件代碼入口,dlopen此插件庫(kù)時(shí)自動(dòng)執(zhí)行}
MODULE_DESTRUCTOR(void){   // 卸載插件代碼入口,dlclose此插件庫(kù)時(shí)自動(dòng)執(zhí)行}
BUILD.gn編譯腳本依賴(lài)及插件安裝目錄:
ohos_shared_library("libinit_example_module") { ... external_deps = [ "init:libinit_module_engine" ] module_install_dir = "lib/init/" ...}
OpenHarmony期待你的加入,與Handy老師一起,深入理解OpenHarmony系統(tǒng)啟動(dòng),提PR,輕松踏上設(shè)備軟件開(kāi)發(fā)之旅,成為貢獻(xiàn)達(dá)人,為OpenHarmony生態(tài)發(fā)展貢獻(xiàn)力量。

附錄:

啟動(dòng)恢復(fù)子系統(tǒng)概述:

https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-boot-overview.md

qemu ARM Virt 標(biāo)準(zhǔn)系統(tǒng)教程

https://gitee.com/openharmony/device_qemu/tree/master/arm_virt/linux

qemu-arm-linux-min代碼倉(cāng)說(shuō)明:

https://gitee.com/openharmony/manifest

qemu ARM Virt 標(biāo)準(zhǔn)系統(tǒng)教程:

https://gitee.com/openharmony/device_qemu/tree/master/arm_virt/linux

Arm版的gdb可以從以下網(wǎng)站獲取:

https://github.com/therealsaumil/static-arm-bins/

https://gitee.com/stesen/ohos_cross_tools

init啟動(dòng)引導(dǎo)組件:

https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-boot-init.md

審核編輯 :李倩


聲明:本文內(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)投訴
  • 開(kāi)源
    +關(guān)注

    關(guān)注

    3

    文章

    3635

    瀏覽量

    43622
  • 模塊化
    +關(guān)注

    關(guān)注

    0

    文章

    339

    瀏覽量

    21879
  • OpenHarmony
    +關(guān)注

    關(guān)注

    29

    文章

    3842

    瀏覽量

    18285

原文標(biāo)題:30分鐘成為Contributor|深入理解OpenHarmony系統(tǒng)啟動(dòng) 輕松踏上設(shè)備軟件開(kāi)發(fā)之旅

文章出處:【微信號(hào):gh_e4f28cfa3159,微信公眾號(hào):OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    系統(tǒng)啟動(dòng)時(shí)間優(yōu)化方案--基于米爾MYD-YG2LX開(kāi)發(fā)

    設(shè)接口,在工業(yè)、醫(yī)療、電力等行業(yè)都得到廣泛的應(yīng)用。 米爾基于瑞薩RZ/G2L開(kāi)發(fā)板本文主要介紹基于MYD-YG2LX開(kāi)發(fā)板進(jìn)行系統(tǒng)啟動(dòng)時(shí)間優(yōu)化的調(diào)試案例,一般啟動(dòng)方式有去掉常規(guī)uboo
    發(fā)表于 05-09 18:03

    OpenHarmony默認(rèn)30秒熄屏太麻煩?觸覺(jué)智能鴻蒙開(kāi)發(fā)板教你輕松取消

    OpenHarmony系統(tǒng)開(kāi)機(jī)后 30 秒會(huì)自動(dòng)息屏,教大家兩招輕松取消自動(dòng)息屏,觸覺(jué)智能Purple Pi OH鴻蒙開(kāi)發(fā)板演示,已適配全新Open
    的頭像 發(fā)表于 12-09 11:45 ?679次閱讀
    <b class='flag-5'>OpenHarmony</b>默認(rèn)30秒熄屏太麻煩?觸覺(jué)智能鴻蒙<b class='flag-5'>開(kāi)發(fā)</b>板教你<b class='flag-5'>輕松</b>取消

    深入理解C語(yǔ)言:循環(huán)語(yǔ)句的應(yīng)用與優(yōu)化技巧

    能讓你的代碼更加簡(jiǎn)潔明了,還能顯著提升程序執(zhí)行效率。本文將詳細(xì)介紹C語(yǔ)言中的三種常見(jiàn)循環(huán)結(jié)構(gòu)——while循環(huán)、for循環(huán)和do...while循環(huán),帶你深入理解
    的頭像 發(fā)表于 12-07 01:11 ?563次閱讀
    <b class='flag-5'>深入理解</b>C語(yǔ)言:循環(huán)語(yǔ)句的應(yīng)用與優(yōu)化技巧

    北京軟件開(kāi)發(fā)公司有那些?做軟件的公司有哪些?

    北京作為中國(guó)的科技創(chuàng)新中心之一,擁有眾多提供軟件開(kāi)發(fā)服務(wù)的公司。以下是一些在北京地區(qū)較為知名的軟件開(kāi)發(fā)公司: 華盛恒輝科技有限公司:是一家專(zhuān)注于高端軟件定制開(kāi)發(fā)服務(wù)和高端建設(shè)的服務(wù)機(jī)構(gòu)
    的頭像 發(fā)表于 10-28 15:02 ?1120次閱讀

    TPS65982和TPS65986快速入門(mén)和系統(tǒng)啟動(dòng)

    電子發(fā)燒友網(wǎng)站提供《TPS65982和TPS65986快速入門(mén)和系統(tǒng)啟動(dòng).pdf》資料免費(fèi)下載
    發(fā)表于 10-08 11:15 ?2次下載
    TPS65982和TPS65986快速入門(mén)和<b class='flag-5'>系統(tǒng)啟動(dòng)</b>

    ECU電控軟件開(kāi)發(fā)及測(cè)試介紹

    本文重點(diǎn)介紹符合AutoSar架構(gòu)的應(yīng)用軟件開(kāi)發(fā)、MBD開(kāi)發(fā)模式下的軟件質(zhì)量評(píng)估與優(yōu)化方案、復(fù)雜場(chǎng)景下的ECU性能壓力測(cè)試方案。
    的頭像 發(fā)表于 09-26 14:25 ?3979次閱讀
    ECU電控<b class='flag-5'>軟件開(kāi)發(fā)</b>及測(cè)試介紹

    瑞芯微RK3566鴻蒙開(kāi)發(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)軟件開(kāi)發(fā)測(cè)試的新手入門(mén)學(xué)習(xí)課程,設(shè)備為觸覺(jué)智能的瑞芯微RK3566開(kāi)發(fā)板,
    的頭像 發(fā)表于 09-10 11:56 ?1141次閱讀
    瑞芯微RK3566鴻蒙<b class='flag-5'>開(kāi)發(fā)</b>板<b class='flag-5'>OpenHarmony</b>標(biāo)準(zhǔn)<b class='flag-5'>系統(tǒng)</b>應(yīng)用兼容性測(cè)試指導(dǎo)

    深入理解FPD-link III ADAS解串器HUB產(chǎn)品

    電子發(fā)燒友網(wǎng)站提供《深入理解FPD-link III ADAS解串器HUB產(chǎn)品.pdf》資料免費(fèi)下載
    發(fā)表于 09-06 09:58 ?2次下載
    <b class='flag-5'>深入理解</b>FPD-link III ADAS解串器HUB產(chǎn)品

    軟件開(kāi)發(fā)分為多少個(gè)階段

    軟件開(kāi)發(fā)分為多少個(gè)階段 第一階段:需要分析及確認(rèn)階段 系統(tǒng)需要分析階段,明確項(xiàng)目需求,確保所有利益相關(guān)者對(duì)項(xiàng)目目標(biāo)、功能、性能、安全、用戶(hù)接口等方面有共同的理解和期望。 需求分析:對(duì)收集到的需求
    的頭像 發(fā)表于 08-21 14:27 ?974次閱讀

    Jama Connect for Automotive,汽車(chē)行業(yè)需求管理解決方案,加速汽車(chē)軟件開(kāi)發(fā)

    軟件開(kāi)發(fā)
    龍智DevSecOps
    發(fā)布于 :2024年08月05日 13:55:24

    嵌入式軟件開(kāi)發(fā)與AI整合

    嵌入式軟件開(kāi)發(fā)與AI整合是當(dāng)前技術(shù)發(fā)展的重要趨勢(shì)之一。隨著人工智能技術(shù)的快速發(fā)展,嵌入式系統(tǒng)越來(lái)越多地集成了AI算法,以實(shí)現(xiàn)更復(fù)雜的智能功能。以下是關(guān)于嵌入式軟件開(kāi)發(fā)與AI整合的詳細(xì)分析
    的頭像 發(fā)表于 07-31 09:25 ?1286次閱讀
    嵌入式<b class='flag-5'>軟件開(kāi)發(fā)</b>與AI整合

    鴻蒙OpenHarmony南向/北向快速開(kāi)發(fā)教程-迅為RK3568開(kāi)發(fā)

    4.1學(xué)習(xí)之旅了嗎?快來(lái)加入我們,一起探索鴻蒙4.1系統(tǒng)的無(wú)限魅力吧! 【北京迅為】OpenHarmony學(xué)習(xí)開(kāi)發(fā)系列教程(第1期 北向基礎(chǔ)篇一) P0_先導(dǎo)課 P1_
    發(fā)表于 07-23 10:44

    名單公布!【書(shū)籍評(píng)測(cè)活動(dòng)NO.38】OpenHarmony開(kāi)發(fā)與實(shí)踐 | 基于紅莓RK2206開(kāi)發(fā)

    OpenHarmony操作系統(tǒng)的SIMPLEGUI顯示模塊,幫助讀者快速開(kāi)發(fā)應(yīng)用程序界面;第7章通過(guò)一系列開(kāi)發(fā)示例,幫助讀者深入理解
    發(fā)表于 07-19 10:57

    OpenHarmony之開(kāi)機(jī)優(yōu)化

    OpenHarmony已經(jīng)支持了Bootchart工具,我們可以直接使用Bootchart工具,Bootchart工具介紹如下: 概述 Bootchart是一個(gè)用于系統(tǒng)啟動(dòng)過(guò)程性能分析的開(kāi)源軟件工具
    發(fā)表于 07-01 16:39

    【《軟件開(kāi)發(fā)珠璣》閱讀體驗(yàn)】+ 心得

    【《軟件開(kāi)發(fā)珠璣》閱讀體驗(yàn)】+ 心得 感謝電子發(fā)燒友論壇提供的讀書(shū)機(jī)會(huì)。讀這本書(shū)使我在編程方面多了位資深老師。 在軟件項(xiàng)目開(kāi)發(fā)領(lǐng)域的時(shí),我閱讀了《軟件開(kāi)發(fā)珠璣》這本書(shū)。它以獨(dú)特的視角和
    發(fā)表于 06-23 17:56
    主站蜘蛛池模板: 天天操天天舔天天射 | 成年香蕉大黄美女美女 | 萌白酱一线天粉嫩喷水在线观看 | 日本aaaaa特黄毛片 | 久久综合成人网 | 亚洲国产高清人在线 | 伊人成年综合网 | 国产免费一级高清淫日本片 | 黄色国产视频 | 日本免费黄视频 | 免费一级特黄 欧美大片 | 亚洲香蕉影视在线播放 | 午夜影院普通 | 天天天天添天天拍天天谢 | 日本最猛黑人xxxx猛交 | 日本最黄视频 | 神马午夜影视 | 亚洲激情a | 国产黄mmd在线观看免费 | 5g影院天天爽 | 视频一区视频二区在线观看 | 青草视频在线观看国产 | 久操免费视频 | 亚洲欧美在线一区二区 | 色多多免费视频 | 中年艳妇乱小玩 | 国产成人综合久久 | 最近最新免费视频 | 亚色视频在线 | 亚洲男人的天堂久久无 | 国产二区三区毛片 | 亚洲精品私拍国产福利在线 | 全日本爽视频在线 | 人人天天夜夜 | 如果我们是季节韩剧在线观看 | 伊人9| 久久精品国产亚洲aa | 久久久久四虎国产精品 | 亚洲精品乱码久久久久久蜜桃图片 | 天堂精品在线 | 色黄网站|