91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

HDI接口中如何實(shí)現(xiàn)驅(qū)動(dòng)入口

HarmonyOS開發(fā)者 ? 來源:OpenAtom OpenHarmony ? 作者: OAOH ? 2021-09-08 11:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

HDI接口概述

HDF 驅(qū)動(dòng)框架的一個(gè)重要功能是為系統(tǒng)提供穩(wěn)定的統(tǒng)一的硬件接口,這樣才能保證系統(tǒng)服務(wù)可以運(yùn)行在不同硬件上而不需要額外的適配工作,而HDI(Hardware Device Interfaces)正是為了實(shí)現(xiàn)該目的而設(shè)計(jì)。

HDI 是對(duì)硬件功能的較高層次抽象接口,各類外設(shè)完成 HDI 接口定義后便只會(huì)在 HDI 的兼容性規(guī)則下進(jìn)行變更,從而保證接口的穩(wěn)定性。具體的驅(qū)動(dòng)實(shí)現(xiàn)不需要再重復(fù)定義 HDI 接口,只需要按需實(shí)現(xiàn)即可接入系統(tǒng)功能。

在不同量級(jí)的 OpenHarmony 系統(tǒng)上,HDI 存在兩種部署形態(tài),IPC 模式和直通模式。

在輕量級(jí) OpenHarmony 系統(tǒng)上,出于減小系統(tǒng)性能負(fù)載考慮,HDI 實(shí)現(xiàn)為用戶態(tài)共享庫,由系統(tǒng)服務(wù)直接加載 HDI 實(shí)現(xiàn)到自己進(jìn)程中函數(shù)調(diào)用使用。HDI 實(shí)現(xiàn)封裝具體的用戶態(tài)-內(nèi)核態(tài)交互過程,當(dāng)需要訪問驅(qū)動(dòng)程序時(shí)使用 IO Service 請(qǐng)求將消息通過 system call 方式調(diào)用到內(nèi)核驅(qū)動(dòng)實(shí)現(xiàn)。

在 OpenHarmony 系統(tǒng)上,HDI 以獨(dú)立服務(wù)進(jìn)程方式部署,系統(tǒng)服務(wù)只加載 HDI 客戶端實(shí)現(xiàn)到自己進(jìn)程中,實(shí)際業(yè)務(wù)運(yùn)行在獨(dú)立進(jìn)程中,客戶端通過 IPC 與服務(wù)端交互,便于架構(gòu)解耦、權(quán)限管理。

HDI接口實(shí)現(xiàn)

直通模式為函數(shù)實(shí)現(xiàn)方式,無論調(diào)用還是實(shí)現(xiàn)都不需要其他組件支持即可實(shí)現(xiàn),這里將重點(diǎn)分析 IPC 模式的實(shí)現(xiàn)。

HDI發(fā)布

HDI IPC 模式基于 OpenHarmony 系統(tǒng)通信框架的通用模型,但是因?yàn)轵?qū)動(dòng)很多時(shí)候涉及到底層操作和多系統(tǒng)遷移的場(chǎng)景而使用C語言編寫,所以驅(qū)動(dòng)框架還提供了 HDI 服務(wù)的 C 語言實(shí)現(xiàn)的基礎(chǔ)組件,C++實(shí)現(xiàn)則主要使用系統(tǒng)通信框架組件。

HDI 服務(wù)發(fā)布基于 UHDF(用戶態(tài) HDF 驅(qū)動(dòng)框架)實(shí)現(xiàn),通用的服務(wù)發(fā)布實(shí)現(xiàn)如下。

1.實(shí)現(xiàn)驅(qū)動(dòng)入口

int SampleDriverBind(struct HdfDeviceObject *deviceObject){ HDF_LOGE(“SampleDriverBind enter!”); static struct IDeviceIoService testService = { .Dispatch = SampleServiceDispatch, // 服務(wù)回調(diào)接口 }; deviceObject-》service = &testService; return HDF_SUCCESS;} int SampleDriverInit(struct HdfDeviceObject *deviceObject){ HDF_LOGE(“SampleDriverInit enter”); return HDF_SUCCESS;} void SampleDriverRelease(struct HdfDeviceObject *deviceObject){ HDF_LOGE(“SampleDriverRelease enter”); return;} struct HdfDriverEntry g_sampleDriverEntry = { .moduleVersion = 1, .moduleName = “sample_driver”, .Bind = SampleDriverBind, .Init = SampleDriverInit, .Release = SampleDriverRelease,};

HDF_INIT(g_sampleDriverEntry);

首先要添加一個(gè) UHDF 驅(qū)動(dòng)用于發(fā)布 IoService 服務(wù),IoService 設(shè)備服務(wù)即為 HDI 服務(wù)實(shí)體。實(shí)現(xiàn)方式與 KHDF 驅(qū)動(dòng)一致。

2.實(shí)現(xiàn)服務(wù)響應(yīng)接口

int32_t SampleServiceOnRemoteRequest(struct HdfDeviceIoClient *client, int cmdId, struct HdfSBuf *data, struct HdfSBuf *reply){ switch (cmdId) { case SAMPLE_SERVICE_PING: return SampleServiceStubPing(client, data, reply); … … default: HDF_LOGE(“SampleServiceDispatch: not support cmd %d”, cmdId); return HDF_ERR_INVALID_PARAM; }}static int32_t SampleServiceDispatch(struct HdfDeviceIoClient *client, int cmdId, struct HdfSBuf *data, struct HdfSBuf *reply){ return SampleServiceOnRemoteRequest(client, cmdId, data, reply);}

當(dāng)收到 HDI 調(diào)用時(shí),服務(wù)響應(yīng)接口“SampleServiceDispatch”將會(huì)被調(diào)用。

client 調(diào)用者對(duì)象,在用戶態(tài)驅(qū)動(dòng)中暫時(shí)未支持

cmdId 調(diào)用命令字,用于區(qū)分調(diào)用的 API

data 調(diào)用入?yún)⑿蛄谢瘜?duì)象,在 IPC 調(diào)用場(chǎng)景為 parcel 對(duì)象的 C 語言封裝,入?yún)⑿枰褂眯蛄谢涌趶?data 對(duì)象中獲取后再使用

reply 調(diào)用出參對(duì)象,需要返回給調(diào)用的信息寫入該序列化對(duì)象

如果 C++實(shí)現(xiàn)客戶端可以使用下面接口將 sbuf 對(duì)象轉(zhuǎn)換為 parcel 對(duì)象后操作:

int32_t SbufToParcel(struct HdfSBuf *sbuf, OHOS::MessageParcel **parcel);

3.UHDF 驅(qū)動(dòng)配置

platform :: host { hostName = “sample_host”; priority = 50; sample_device :: device { device0 :: deviceNode { policy = 2; priority = 100; moduleName = “l(fā)ibsample_driver.z.so”; serviceName = “sample_driver_service”; } }}

參數(shù)說明:

host 一個(gè) host 節(jié)點(diǎn)即為一個(gè)獨(dú)立進(jìn)程,如果需要獨(dú)立進(jìn)程,新增屬于自己的 host 節(jié)點(diǎn)

policy 服務(wù)發(fā)布策略,HDI 服務(wù)設(shè)置為 2

moduleName 驅(qū)動(dòng)實(shí)現(xiàn)庫名

serviceName 服務(wù)名稱,請(qǐng)保持全局唯一性

因?yàn)?HDI 服務(wù) C 和 C++實(shí)現(xiàn)使用的 IPC 組件不一樣,面向?qū)ο髮?shí)現(xiàn)也不一致,所以在具體實(shí)現(xiàn)上存在一些差異。

HDI基礎(chǔ)組件 UHDF 框架為了支持 HDI 實(shí)現(xiàn),提供了以下基礎(chǔ)組件(僅用于 C 語言 HDI 實(shí)現(xiàn)):

SBuf

SBuf 是同時(shí)支持 KHDF 和 UHDF 驅(qū)動(dòng) IoService 消息序列化的工具對(duì)象。在 UHDF IPC 通信場(chǎng)景中,SBuf 可以與系統(tǒng) IPC 框架序列化對(duì)象 MessageParcel 對(duì)象(僅支持 C++)相互轉(zhuǎn)換,從而實(shí)現(xiàn) C 和 C++實(shí)現(xiàn)的 IPC 互通。

常用 API 如下:

struct HdfSBuf;struct HdfSbufImpl;struct HdfRemoteService;

/** * @brief HdfSBuf類型定義。 * * @since 1.0 */enum HdfSbufType { SBUF_RAW = 0, /* 用于用戶態(tài)內(nèi)核態(tài)通信的sbuf類型 */ SBUF_IPC, /* 用于跨進(jìn)程通信的sbuf類型 */ SBUF_IPC_HW, /* 用于擴(kuò)展的預(yù)留類型 */ SBUF_TYPE_MAX, /* sbuf類型最大值 */};

上述接口均有對(duì)應(yīng)的寫入接口,不再一一列舉,可查閱官網(wǎng)API參考文檔。

RemoteService

RemoteService 對(duì)象和系統(tǒng) IPC 框架中的 IRemoteObject 對(duì)象(僅支持 C++)對(duì)應(yīng)并可以相互轉(zhuǎn)換,表示一個(gè) IPC 對(duì)象。相關(guān) API 說明:

// 消息分發(fā)器,用于服務(wù)端響應(yīng)調(diào)用或者在客戶端發(fā)起調(diào)用struct HdfRemoteDispatcher { int (*Dispatch)(struct HdfRemoteService *, int, struct HdfSBuf *, struct HdfSBuf *);};

// RemoteService 死亡回調(diào)對(duì)象struct HdfDeathRecipient { void (*OnRemoteDied)(struct HdfDeathRecipient *, struct HdfRemoteService *);};

struct HdfRemoteService { struct HdfObject object_; struct HdfObject *target; struct HdfRemoteDispatcher *dispatcher; bool isHw;};// 以自定義的消息分發(fā)器實(shí)例化一個(gè)RemoteServicestruct HdfRemoteService *HdfRemoteServiceObtain( struct HdfObject *object, struct HdfRemoteDispatcher *dispatcher);

// 回收RemoteService對(duì)象void HdfRemoteServiceRecycle(struct HdfRemoteService *service);

// 添加RemoteService的死亡通知,如果對(duì)應(yīng)RemoteService的進(jìn)程異常退出,HdfDeathRecipient的回調(diào)接口將被調(diào)用void HdfRemoteServiceAddDeathRecipient(struct HdfRemoteService *service, struct HdfDeathRecipient *recipient);

基于 RemoteService 實(shí)現(xiàn)一個(gè)服務(wù)端的示例:

int SampleServiceStubDispatch( struct HdfRemoteService* service, int code, struct HdfSBuf *data, struct HdfSBuf *reply){ // IPC 調(diào)用響應(yīng)接口 int ret = HDF_FAILURE; switch (code) { case SAMPLE_IF_0: { // do something break; } default: { ret = HDF_ERR_INVALID_PARAM; } } return ret;}bool SampleStubConstruct(){ // 構(gòu)造消息分發(fā)器,實(shí)現(xiàn)消息處理回調(diào) static struct HdfRemoteDispatcher dispatcher = { .Dispatch = SampleServiceStubDispatch};// 實(shí)例化RemoteService inst-》remote = HdfRemoteServiceObtain((struct HdfObject *)inst, &dispatcher); if (inst-》remote == NULL) { HDF_LOGE(“Device service manager failed to obtain remote service”); return false;}… …

直接基于 RemoteService 實(shí)現(xiàn)服務(wù)端只適用于需要實(shí)現(xiàn)匿名 IPC 服務(wù)的情況,基于 UHDF 發(fā)布 HDI 服務(wù)只需要實(shí)現(xiàn) Driver 綁定的 IoService 即可。

RemoteService 客戶端對(duì)象只能從 SBuf HdfSBufReadRemoteService 接口獲取。

HDI實(shí)現(xiàn)

Driver 為 HDI 服務(wù)的驅(qū)動(dòng)入口實(shí)現(xiàn)

IoService 為 HDI 服務(wù)的服務(wù)入口實(shí)現(xiàn),IoService 的 Dispatch 方法中調(diào)用 ServiceStub 中的真正服務(wù)響應(yīng)接口(OnRemoteRequest)

ServiceStub 為服務(wù)端實(shí)現(xiàn)對(duì)象,主要處理與 IPC 相關(guān)的業(yè)務(wù)邏輯,在這里完成參數(shù)反序列化后調(diào)用真正的 Service 實(shí)現(xiàn)接口,即 ServiceImpl 接口

ServiceImpl 為 HDI 接口的真正實(shí)現(xiàn),這里不關(guān)注 IPC 過程,只實(shí)現(xiàn)函數(shù)接口。

驅(qū)動(dòng)框架提供了實(shí)現(xiàn)的樣例代碼,可參考 gitee driver 代碼倉。

HDI接口調(diào)用

HDI驅(qū)動(dòng)框架HDI接口

HDI 服務(wù)管理功能由驅(qū)動(dòng)框架 DeviceManager 實(shí)現(xiàn),所以驅(qū)動(dòng)框架提供了 HDI 服務(wù)管理相關(guān) HDI 接口。

C++實(shí)現(xiàn):

namespace OHOS {namespace HDI {namespace ServiceManager {namespace V1_0 {

struct IServiceManager : public IRemoteBroker {public: DECLARE_INTERFACE_DESCRIPTOR(u“HDI.IServiceManager.V1_0”); // get()靜態(tài)方法用于獲取IServiceManager對(duì)象實(shí)例 static ::sptr《IServiceManager》 Get(); // GetService()接口是真正提供的HDI接口,用于查詢并獲取其他HDI服務(wù)的客戶端對(duì)象 virtual ::sptr《IRemoteObject》 GetService(const char* serviceName) = 0;};} // namespace V1_0} // namespace ServiceManager} // namespace HDI} // namespace OHOS

C 實(shí)現(xiàn):

#ifdef __cplusplusextern “C” {#endif /* __cplusplus */

struct HDIServiceManager { struct HdfRemoteService *remote;

struct HdfRemoteService *(*GetService)(struct HDIServiceManager *self, const char* serviceName);};

struct HDIServiceManager *HDIServiceManagerGet(void);void HDIServiceManagerRelease(struct HDIServiceManager *servmgr);

#ifdef __cplusplus}#endif /* __cplusplus */

C 語言因?yàn)槿鄙僭拿嫦驅(qū)ο笾С郑@里我們采用 OOC 的實(shí)現(xiàn),函數(shù)方法 HDIServiceManagerGet/Release 用于 HDIServiceManager 對(duì)象的實(shí)例化和釋放,HDI 接口關(guān)聯(lián)在接口對(duì)象內(nèi)部成員中,與 C++實(shí)現(xiàn)類似。

HDI客戶端實(shí)現(xiàn)

HDI 客戶端同時(shí)支持 C 和 C++實(shí)現(xiàn),實(shí)現(xiàn)方法較為簡(jiǎn)單,只需 realize HDI 接口類即可。提供 C++實(shí)現(xiàn)基于系統(tǒng) IPC 子系統(tǒng)的統(tǒng)一模型,C 語言基于 RemoteService 和 SBuf 組件實(shí)現(xiàn),但是有一些公共的約定:

1.客戶端提供接口對(duì)象,接口與對(duì)象綁定且必須與 HDI 一致

2.提供服務(wù)接口對(duì)象的實(shí)例化和釋放接口。

3.客戶端實(shí)現(xiàn) IPC 過程,只為調(diào)用者暴露函數(shù)化接口。

HDI接口調(diào)用

HDI 客戶端接口已經(jīng)提供了服務(wù)獲取接口,調(diào)用者調(diào)用服務(wù)獲取接口后再調(diào)用服務(wù)對(duì)象方法即可完成 HDI 調(diào)用。

這里以服務(wù)管理 HDI 接口為例:

C++接口調(diào)用:

#include 《iservmgr_hdi.h》

void GetTestService(){ auto servmgr = IServiceManager::Get(); if (servmgr == nullptr) { HDF_LOGE(“failed to get IServiceManager”); return; }

auto sampleService = servmgr-》GetService(TEST_SERVICE_NAME); if (sampleService == nullptr) { HDF_LOGE(“failed to get TEST_SERVICE”); return; } // do something}

C 接口調(diào)用:

#include 《servmgr_hdi.h》

void GetTestService(){ struct HDIServiceManager *servmgr = HDIServiceManagerGet(); if (servmgr == nullptr) { HDF_LOGE(“failed to get IServiceManager”); return; }

struct HdfRemoteService *sampleService = servmgr-》GetService(servmgr, TEST_SERVICE_NAME); if (sampleService == nullptr) { HDF_LOGE(“failed to get TEST_SERVICE”); return; } // do something}

總結(jié)

本文介紹了 HDI 的總體方案,重點(diǎn)介紹了 HDI 的 IPC 模式具體實(shí)現(xiàn)方法和驅(qū)動(dòng)框架能力,相信對(duì)讀者理解和使用 HDI 有所幫助。

責(zé)任編輯:haq

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

    關(guān)注

    33

    文章

    9525

    瀏覽量

    157074
  • HDI
    HDI
    +關(guān)注

    關(guān)注

    7

    文章

    225

    瀏覽量

    22721
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2153

    瀏覽量

    36075

原文標(biāo)題:OpenHarmony HDF HDI基礎(chǔ)能力分析與使用

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    MAX3816A:DVI、HDMI和VGA接口中DDC的I2C 2線擴(kuò)展器

    MAX3816A:DVI、HDMI和VGA接口中DDC的I2C 2線擴(kuò)展器 在當(dāng)今的數(shù)字顯示領(lǐng)域,DVI、HDMI和VGA接口廣泛應(yīng)用于各種設(shè)備中,如高清電視、顯示器和計(jì)算機(jī)監(jiān)視器等。然而,長距離
    的頭像 發(fā)表于 02-28 16:05 ?155次閱讀

    MAX6959:2線接口LED顯示驅(qū)動(dòng)器的設(shè)計(jì)指南

    MAX6958/MAX6959:2線接口LED顯示驅(qū)動(dòng)器的設(shè)計(jì)指南 在電子設(shè)計(jì)領(lǐng)域,LED顯示驅(qū)動(dòng)器是實(shí)現(xiàn)數(shù)字顯示功能的關(guān)鍵組件。今天,我們來深入探討MAXIM公司的MAX6958/M
    的頭像 發(fā)表于 02-03 15:25 ?189次閱讀

    京東商品詳情API接口:電商數(shù)據(jù)驅(qū)動(dòng)的核心入口解析

    在數(shù)字經(jīng)濟(jì)深入滲透電商行業(yè)的今天,數(shù)據(jù)已成為企業(yè)優(yōu)化運(yùn)營、提升競(jìng)爭(zhēng)力的核心資產(chǎn)。京東作為國內(nèi)頭部電商平臺(tái),沉淀了海量標(biāo)準(zhǔn)化商品數(shù)據(jù)與動(dòng)態(tài)交易信息,而京東商品詳情API接口(核心接口名如
    的頭像 發(fā)表于 01-26 11:52 ?133次閱讀

    HDI線路板的應(yīng)用領(lǐng)域:從通信到軍事設(shè)備

    HDI線路板憑借高密度、高可靠性的特點(diǎn),廣泛應(yīng)用于通信、軍事設(shè)備、消費(fèi)電子、汽車電子及航空航天等領(lǐng)域。以下是具體應(yīng)用場(chǎng)景: 通信設(shè)備 HDI板用于5G基站、路由器、交換機(jī)等,支持高頻信號(hào)傳輸和高速
    的頭像 發(fā)表于 12-16 16:05 ?1109次閱讀

    原廠 FZH1697 帶鍵盤掃描接口的LCD驅(qū)動(dòng)控制專用電路

    背光驅(qū)動(dòng); 4通用輸入口,可連接撥輪式電子編碼開關(guān)1/2或1/3LCD驅(qū)動(dòng)偏壓可選LCD工作電壓可調(diào)串行接口(CLK,STB,DIO) 振蕩方式:內(nèi)置RC振蕩,典型振蕩頻率為128KH
    發(fā)表于 11-07 09:43

    圖文詳情編輯接口的設(shè)計(jì)與實(shí)現(xiàn)

    。本文將從接口設(shè)計(jì)原則、核心功能、技術(shù)實(shí)現(xiàn)到代碼示例,逐步解析如何構(gòu)建一個(gè)健壯的圖文詳情編輯接口。我們將聚焦于RESTful API設(shè)計(jì),確保接口安全、可擴(kuò)展且高性能。 1.
    的頭像 發(fā)表于 10-23 16:37 ?393次閱讀
    圖文詳情編輯<b class='flag-5'>接口</b>的設(shè)計(jì)與<b class='flag-5'>實(shí)現(xiàn)</b>

    E203串口中斷使用總結(jié)

    以上函數(shù)的設(shè)置后,就可以在中斷服務(wù)函數(shù)中寫下自己需要的中斷處理功能,并且在 main() 函數(shù)中寫下“my_uart_init()”,就能實(shí)現(xiàn)口中斷。 二、串口接收字符串 首先需要注意的是,由于
    發(fā)表于 10-22 07:34

    商品圖片批量上傳接口設(shè)計(jì)與實(shí)現(xiàn)

    ? 在電商平臺(tái)或內(nèi)容管理系統(tǒng)中,商品圖片的高效管理是核心需求之一。批量上傳接口允許用戶一次性上傳多張圖片,顯著提升操作效率。本文將逐步介紹如何設(shè)計(jì)并實(shí)現(xiàn)一個(gè)可靠的商品圖片批量上傳接口,涵蓋接口
    的頭像 發(fā)表于 10-13 15:25 ?452次閱讀

    嵌入式接口通識(shí)知識(shí)之Ethernet接口

    ,是MII接口的一半;TX_EN(Transmit Enable):數(shù)據(jù)發(fā)送使能信號(hào),與MII接口中的該信號(hào)線功能一樣;RX_ER(Receive Error):數(shù)據(jù)接收錯(cuò)誤提示信號(hào),與MII接口中
    發(fā)表于 09-16 17:27

    增長新引擎!思瑞浦接口驅(qū)動(dòng)芯片駛?cè)肟燔嚨?/a>

    聚焦模擬和數(shù)?;旌显诠I(yè)、汽車、通信和新能源應(yīng)用中,接口驅(qū)動(dòng)產(chǎn)品有著不可或缺的作用。思瑞浦是最早布局接口驅(qū)動(dòng)的國內(nèi)模擬半導(dǎo)體公司之一,公司在接口
    的頭像 發(fā)表于 09-14 22:15 ?765次閱讀
    增長新引擎!思瑞浦<b class='flag-5'>接口</b>與<b class='flag-5'>驅(qū)動(dòng)</b>芯片駛?cè)肟燔嚨? />    </a>
</div>                              <div   id=

    HDI盲埋孔PCB階數(shù)區(qū)分方法解析

    HDI盲埋孔PCB的階數(shù)是區(qū)分其結(jié)構(gòu)復(fù)雜度的關(guān)鍵指標(biāo),主要通過增層次數(shù)、鉆孔工藝及連接層數(shù)來綜合判斷,具體區(qū)分方法如下: 一、基于增層次數(shù)的階數(shù)定義 HDI板結(jié)構(gòu)通常以“a+N+a”或
    的頭像 發(fā)表于 08-05 10:34 ?3823次閱讀
    <b class='flag-5'>HDI</b>盲埋孔PCB階數(shù)區(qū)分方法解析

    抗輻照芯片在微小衛(wèi)星載荷通訊接口中的實(shí)踐探索

    摘要: 在微小衛(wèi)星技術(shù)蓬勃發(fā)展的當(dāng)下,其在復(fù)雜太空輻射環(huán)境中的可靠性面臨諸多挑戰(zhàn)。通訊接口作為衛(wèi)星載荷間及與地面?zhèn)鬏敂?shù)據(jù)的關(guān)鍵部件,其抗輻照能力至關(guān)重要。本文聚焦于抗輻照芯片在微小衛(wèi)星載荷通訊接口中
    的頭像 發(fā)表于 06-07 12:17 ?962次閱讀

    眾陽電路HDI剛?cè)岚褰榻B(一)

    隨著電子產(chǎn)品向輕薄短小、高性能及多功能化方向發(fā)展,作為電子產(chǎn)品元器件支撐體的印制線路板(PCB)也需要向布線高密度化、輕薄化方向發(fā)展。高密度布線、高接點(diǎn)數(shù)的高密度互連(HDI)技術(shù)和可實(shí)現(xiàn)立體三維
    的頭像 發(fā)表于 06-02 19:38 ?934次閱讀
    眾陽電路<b class='flag-5'>HDI</b>剛?cè)岚褰榻B(一)

    S-Video接口概述和分類

    S-Video接口在當(dāng)下視頻接口中,存在感已經(jīng)漸漸減少,它們的樣式與“古早”的很多接口相似。在視頻接口的發(fā)展中,它依然是必不可少的。本期我們將圍繞S-Video
    的頭像 發(fā)表于 04-11 10:59 ?3682次閱讀
    S-Video<b class='flag-5'>接口</b>概述和分類

    RT-Thread PIN驅(qū)動(dòng)添加

    Pin驅(qū)動(dòng)框架以NXPMCXA153為例PIN設(shè)備驅(qū)動(dòng)層單純的提供接口給應(yīng)用層用,其中PIN設(shè)備驅(qū)動(dòng)框架接口包含rt_pin_read等,具
    的頭像 發(fā)表于 03-28 18:59 ?921次閱讀
    RT-Thread PIN<b class='flag-5'>驅(qū)動(dòng)</b>添加