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

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

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

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

基于碼云上release3.1分支代碼進(jìn)行分析

電子發(fā)燒友開(kāi)源社區(qū) ? 來(lái)源:HarmonyOS官方合作社區(qū) ? 作者:HarmonyOS官方合作社 ? 2022-04-20 09:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1

技術(shù)背景

OpenHarmony release3.1版本在2.0的基礎(chǔ)之上不僅增加了功能,而且各模塊組件的能力也有所增強(qiáng),本文就3.1版本的init啟動(dòng)子系統(tǒng)模塊,在啟動(dòng)引導(dǎo)系統(tǒng)服務(wù)方面進(jìn)行分析。本文檔是基于碼云上release3.1分支代碼進(jìn)行分析。

啟動(dòng)子系統(tǒng)負(fù)責(zé)整個(gè)系統(tǒng)各個(gè)進(jìn)程運(yùn)行時(shí)環(huán)境的構(gòu)建及進(jìn)程引導(dǎo),不同層級(jí)的進(jìn)程有著不同的運(yùn)行環(huán)境,運(yùn)行環(huán)境決定著系統(tǒng)進(jìn)程的設(shè)計(jì)。在增強(qiáng)啟動(dòng)子系統(tǒng)能力方面有以下方面:

基礎(chǔ)能力增強(qiáng):進(jìn)程啟動(dòng)、回收機(jī)制增強(qiáng),維護(hù)命令統(tǒng)一以及插件化管理;

并行啟動(dòng):最大化并行啟動(dòng),為依賴資源提供同步機(jī)制,運(yùn)行時(shí)進(jìn)行資源獲取;

按需啟動(dòng):無(wú)訪問(wèn)不啟動(dòng),減少常駐內(nèi)存;

分組啟動(dòng):可對(duì)服務(wù)進(jìn)行靈活組裝,提供整機(jī)不同的啟動(dòng)級(jí)別能力。

2

Init啟動(dòng)功能概述

1.基礎(chǔ)能力的增強(qiáng)

進(jìn)程啟動(dòng),支持進(jìn)程的selinux策略配置,擴(kuò)展AccessToken設(shè)置,支持綁核配置;進(jìn)程回收,支持進(jìn)程頻繁退出抑制機(jī)制;維護(hù)命令,統(tǒng)一init的維護(hù)命令,包括系統(tǒng)參數(shù)和進(jìn)程管理;插件化管理,init部件與周邊模塊關(guān)聯(lián)度高,通過(guò)插件化機(jī)制供其它模塊擴(kuò)展。

2.進(jìn)程分組&并行啟動(dòng)

支持服務(wù)分組配置,如支持系統(tǒng)知名group,支持整機(jī)開(kāi)機(jī)、重啟、關(guān)機(jī)、待機(jī)、充電等模式;支持服務(wù)依賴管理,支持并行啟動(dòng)依賴同步機(jī)制。

3.按需啟動(dòng)

支持SA類進(jìn)程按需啟動(dòng),HDF類進(jìn)程按需啟動(dòng),socket類進(jìn)程的按需啟動(dòng);支持熱插拔事件驅(qū)動(dòng)進(jìn)程按需啟動(dòng);支持為按需啟動(dòng)定時(shí)啟動(dòng)、進(jìn)程代持fd等輔助功能。

3

系統(tǒng)能力增強(qiáng)點(diǎn)分析

1.進(jìn)程啟動(dòng)能力增強(qiáng)

進(jìn)程啟動(dòng)時(shí),支持在配置文件中配置服務(wù)進(jìn)程的綁核、優(yōu)先級(jí)、selinux策略加載以及AccessToken信息。

1)配置服務(wù)進(jìn)程綁核能力

在服務(wù)的cfg配置文件中,配置綁核,例如param_watcher服務(wù)。系統(tǒng)啟動(dòng)之后通過(guò)taskset -p pid,查看服務(wù)綁核情況,例如 current affinity mask: 3,即表示param_watcher服務(wù)運(yùn)行在兩個(gè)cpu上切換。

“services” : [{“name” : “param_watcher”,…“cpucore” : [0,1]},

(左右移動(dòng)查看全部?jī)?nèi)容)

通過(guò)CJSON解析 cfg 文件,獲取屬性”cpucore”屬性值的數(shù)組,然后通過(guò)接口CPU_SET設(shè)置進(jìn)程的CPU.

cd433c54-c041-11ec-bce3-dac502259ad0.png

在init,fork()服務(wù)子進(jìn)程時(shí)設(shè)置CPU綁核。

cd74821e-c041-11ec-bce3-dac502259ad0.png

2)配置服務(wù)進(jìn)程優(yōu)先級(jí)

在服務(wù)cfg文件中配置進(jìn)程的優(yōu)先級(jí),例如appspawn.cfg中配置"importance" : -20,即設(shè)置appspawn的優(yōu)先級(jí)為-20。

{ "services" : [{ "name" : "appspawn", "path" : ["/system/bin/appspawn"], "importance" : -20, "uid" : "root", "gid" : ["root"], "start-mode" : "boot" } ] }

代碼中通過(guò)CJSON解析cfg文件中”importance”屬性,得到服務(wù)的優(yōu)先級(jí),同時(shí)通過(guò)SetimportantValue回調(diào)函數(shù)保存優(yōu)先級(jí)屬性。

cd8e02a2-c041-11ec-bce3-dac502259ad0.png

在ServiceExec執(zhí)行進(jìn)程命令之前通過(guò)setpriority設(shè)置服務(wù)的優(yōu)先級(jí)。

cda7018a-c041-11ec-bce3-dac502259ad0.png

3)服務(wù)的selinux策略加載

OpenHarmony正在不斷完善selinux安全策略,后面對(duì)于服務(wù)的管控會(huì)更加嚴(yán)格。Init啟動(dòng)在服務(wù)cfg文件中提供配置進(jìn)程的Selinux接口,例如updater_sa.cfg文件中配置

“secon” : “uupdater_sa:s0”。 {“services” : [{“name” : “updater_sa”,“path” : [“/system/bin/sa_main”, “/system/profile/updater_sa.xml”],“uid” : “system”,“gid” : [“system”, “shell”],“secon” : “uupdater_sa:s0”}]}

通過(guò)JSON解析cfg文件中"secon"屬性,獲取服務(wù)的selinux值。

cdbc954a-c041-11ec-bce3-dac502259ad0.png

在init初始時(shí),加載selinux LoadPolicy。

cdda54b8-c041-11ec-bce3-dac502259ad0.png

在init fork子進(jìn)程時(shí),通過(guò)SetSecon 設(shè)置服務(wù)的selinux。

cdf0c5d6-c041-11ec-bce3-dac502259ad0.png

4)配置服務(wù)進(jìn)程AccessToken屬性

在服務(wù)cfg文件中配置進(jìn)程的AccessToken,即cfg文件中配置“apl”: “xxx”,設(shè)置一串令牌。

通過(guò)JSON解析cfg文件中"apl"屬性,獲取服務(wù)的apl值。

ce121614-c041-11ec-bce3-dac502259ad0.png

在init fork 子進(jìn)程的時(shí)候設(shè)置進(jìn)程的AccessToken.

ce352fc8-c041-11ec-bce3-dac502259ad0.png

2.進(jìn)程啟動(dòng)&回收能力增強(qiáng)

1)進(jìn)程的啟動(dòng)流程

init啟動(dòng)系統(tǒng)服務(wù)進(jìn)程時(shí)都是先f(wàn)ork再execv執(zhí)行目標(biāo)服務(wù)進(jìn)程而完成啟動(dòng)。Fork的流程又細(xì)分為

pre-fork:即服務(wù)進(jìn)程不需要真正的啟動(dòng),只是由init做好服務(wù)的準(zhǔn)備工作,服務(wù)被訪問(wèn)時(shí)拉起服務(wù);

fork:只要fork成功,init就接著啟動(dòng)下一個(gè)進(jìn)程,即使后面execv執(zhí)行失敗也忽略,最大承擔(dān)并行啟動(dòng)服務(wù);

execv:fork完成之后需要execv執(zhí)行成功,才算服務(wù)啟動(dòng)完成;

service:在服務(wù)啟動(dòng)完成之后,通過(guò)setparameter 設(shè)置服務(wù)啟動(dòng)標(biāo)志"startup.service.ctl.serviceName" 為SERVICE_STARTED。

ce4e0cf0-c041-11ec-bce3-dac502259ad0.png

ce6779a6-c041-11ec-bce3-dac502259ad0.png

2)子進(jìn)程退出資源回收

init監(jiān)聽(tīng)到任何子進(jìn)程退出都需要waitpid回收該進(jìn)程,避免出現(xiàn)僵尸進(jìn)程。

ce849fea-c041-11ec-bce3-dac502259ad0.png

3)設(shè)置服務(wù)啟動(dòng)特殊模式

通過(guò)在服務(wù)的cfg文件中配置Once、DisabLED、Critical屬性值設(shè)置服務(wù)啟動(dòng)的特殊方式。

Default:默認(rèn)情況下服務(wù)退出之后,init會(huì)再次拉起服務(wù);

Once:服務(wù)是單次啟動(dòng)模式,退出之后init不再拉起;

Disabled:服務(wù)是被禁用的,退出后也不會(huì)拉起;

Critical:服務(wù)失敗后需要重新拉起,但是失敗N次之后,系統(tǒng)就會(huì)重啟,默認(rèn)是4次。

常駐服務(wù)進(jìn)程如果一直異常退出,為了避免頻繁嘗試?yán)鹪摲?wù),增加抑制機(jī)制,默認(rèn)3秒內(nèi)連續(xù)退出超過(guò)5次則不再自動(dòng)拉起該服務(wù)。

核心服務(wù)進(jìn)程如果一直異常退出,為了避免系統(tǒng)不可用,嘗試系統(tǒng)重啟;默認(rèn)20秒內(nèi)連續(xù)退出超過(guò)4次則不再自動(dòng)拉起該服務(wù)。

例如 “critical” : [1, 1, 60], 代表有critical attribute,同時(shí)60秒內(nèi)重啟1次,就系統(tǒng)重啟。通過(guò)GetCritical函數(shù)解析critical 屬性,通過(guò)CalculateCrashTime函數(shù)判斷是否需要重啟服務(wù),或是reboot系統(tǒng)。

ceb266e6-c041-11ec-bce3-dac502259ad0.png

cec8d462-c041-11ec-bce3-dac502259ad0.png

3.提供整機(jī)狀態(tài)服務(wù)

1)整機(jī)狀態(tài)

各系統(tǒng)服務(wù)進(jìn)程啟動(dòng)后,還需要相應(yīng)整機(jī)提供的重啟、關(guān)機(jī)等請(qǐng)求(對(duì)應(yīng)整機(jī)狀態(tài)變化能夠?qū)M(jìn)程進(jìn)行相應(yīng)處理stop、suspend、freeze等)。

重啟、shutdown關(guān)機(jī):關(guān)閉服務(wù)進(jìn)程,通過(guò)stop命令關(guān)閉服務(wù);
Suspend關(guān)機(jī):STR帶電低功耗關(guān)機(jī),可快速開(kāi)機(jī),服務(wù)可選擇的退出或清理資源;
Freeze關(guān)機(jī):STD系統(tǒng)快照寫(xiě)到Disk,可完全掉電并快速開(kāi)機(jī)。

通過(guò)reboot命令,設(shè)置 "startup.device.ctl"參數(shù)給外界提供當(dāng)前整機(jī)的狀態(tài),系統(tǒng)服務(wù)進(jìn)程可通過(guò)ParameterClient的watch機(jī)制監(jiān)聽(tīng)整機(jī)的狀態(tài)變化,處理自己的狀態(tài)。
Reboot 命令:

cee33df2-c041-11ec-bce3-dac502259ad0.png

cf08bcd0-c041-11ec-bce3-dac502259ad0.png

2)服務(wù)可以通過(guò)start/stop來(lái)啟動(dòng)停止

通過(guò)以下命令可以啟動(dòng)或者停止服務(wù)。

start_service servicename --start servicestop_service servicename --stop serviceservice_control start servicename --start serviceservice_control stop servicename --stop service

cf30a5ce-c041-11ec-bce3-dac502259ad0.png

最終通過(guò)SystemSetParameter(“ohos.ctl.start”, nameValue)啟動(dòng)服務(wù),其中nameValue是服務(wù)名+服務(wù)的參數(shù)組合數(shù)組。

cf5983d6-c041-11ec-bce3-dac502259ad0.png

4.按需啟動(dòng)

1)SA進(jìn)程按需啟動(dòng)

需要按需啟動(dòng)的SA服務(wù),通過(guò)在cfg文件配置”dynamic” : true,設(shè)置此SA服務(wù)為按需啟動(dòng),即init在start service的時(shí)候解析到此屬性,不直接拉起服務(wù);而是通過(guò)client端觸發(fā)samgr拉起服務(wù)。

動(dòng)態(tài)加載系統(tǒng)服務(wù)進(jìn)程及SystemAbility, 系統(tǒng)進(jìn)程無(wú)需開(kāi)機(jī)啟動(dòng),而是在SystemAbility被訪問(wèn)的時(shí)候按需拉起,并加載指定SystemAbility。繼承SystemAbilityLoadCallbackStub類,并覆寫(xiě)OnLoadSystemAbilitySuccess(int32_t systemAbilityId, const sptr& remoteObject)、OnLoadSystemAbilityFail(int32_t systemAbilityId)方法。

cf9291f8-c041-11ec-bce3-dac502259ad0.png

調(diào)用samgr提供的動(dòng)態(tài)加載接口LoadSystemAbility(int32_t systemAbilityId, const sptr& callback)。

cfc3dc7c-c041-11ec-bce3-dac502259ad0.png

Samgr通過(guò)調(diào)用init提供的ServiceControlWithExtra接口,拉起服務(wù)。

cff42896-c041-11ec-bce3-dac502259ad0.png

3)socket進(jìn)程按需啟動(dòng)

init在pre-fork階段為socket類進(jìn)程創(chuàng)建好socket,init中監(jiān)聽(tīng)創(chuàng)建好的socket上的網(wǎng)絡(luò)事件,socket上有報(bào)文事件后,init拉起socket進(jìn)程進(jìn)行報(bào)文處理。

socket進(jìn)程無(wú)報(bào)文處理后,可以自動(dòng)退出,退出后init回收該子進(jìn)程并重新監(jiān)聽(tīng)socket網(wǎng)絡(luò)數(shù)據(jù)。

在服務(wù)cfg文件中添加”ondemand” : true 配置,設(shè)置socket服務(wù)為按需啟動(dòng)。

d0144266-c041-11ec-bce3-dac502259ad0.png

在fork 子進(jìn)程的時(shí)候,判斷服務(wù)是ondemand的,則創(chuàng)建socket監(jiān)聽(tīng)。

d02c4456-c041-11ec-bce3-dac502259ad0.png

通過(guò)回調(diào)函數(shù)ProcessWatchEvent_處理socket按需啟動(dòng)的事件。

d044b78e-c041-11ec-bce3-dac502259ad0.png

4)熱插拔服務(wù)進(jìn)程按需啟動(dòng)

配置ueventd.cfg配置文件中設(shè)備節(jié)點(diǎn)屬性,例如,/dev/binder屬性配置為 ohos.dev.binder,當(dāng)設(shè)備節(jié)點(diǎn)被創(chuàng)建好,param設(shè)置ohos.dev.binder屬性值為added。

在相應(yīng)服務(wù)的cfg文件中,配置”job”為condition,如下:

“condition” : “ohos.dev.binder=added”

即當(dāng)條件滿足時(shí)觸發(fā)服務(wù)拉起。

5)定時(shí)拉起&fd代持

定時(shí)拉起:服務(wù)進(jìn)程在退出前可根據(jù)業(yè)務(wù)需要預(yù)約下次啟動(dòng)的時(shí)間。

fd代持:按需啟動(dòng)進(jìn)程可以保持退出前的fd狀態(tài)句柄不丟失。按需啟動(dòng)進(jìn)程退出前可發(fā)fd發(fā)送給init代持,再次啟動(dòng)后再獲取fd。

在服務(wù)的cfg配置"timer_start" : 6 ,設(shè)置服務(wù)6秒后拉起。通過(guò)LE_CreateTimer創(chuàng)建定時(shí)器,定時(shí)時(shí)間到達(dá)時(shí),觸發(fā)回調(diào)函數(shù),拉起服務(wù)。

d07679cc-c041-11ec-bce3-dac502259ad0.png

創(chuàng)建fdhold的socket,注冊(cè)event loop回調(diào)函數(shù)ProcessFdHoldEvent監(jiān)聽(tīng)。

d0993516-c041-11ec-bce3-dac502259ad0.png

5.并行啟動(dòng)及依賴管理

begetd啟動(dòng)分三個(gè)階段,pre-init和init階段完成公共依賴部分;后續(xù)所有的服務(wù)都是并行化啟動(dòng)。服務(wù)啟動(dòng)的依賴包括Job和Service。

1)Job

所有的Job由init特權(quán)進(jìn)程完成,可包括:設(shè)置全局環(huán)境變量,設(shè)置特權(quán)/proc, /sys節(jié)點(diǎn)參數(shù)等。

2)Service

Service依賴的前置條件可在啟動(dòng)腳本里指定Job完成。例如在service 中配置

“service”:“jobs” : { “on-start” : “services:console” }“job”:{ “name” : “services:console”, “cmds” : [ “chmod 0773 /data/misc/trace”, “chmod 0775 /data/misc/wmtrace” ]}

即在fork子進(jìn)程的時(shí)候執(zhí)行job相關(guān)的命令。

d0b1f63c-c041-11ec-bce3-dac502259ad0.png

通過(guò)cfg文件設(shè)置服務(wù)的”start-mode”來(lái)管理正常啟動(dòng)還是并行啟動(dòng)。

“start-mode” : “boot”“start-mode” : “normal”“start-mode” : “condition”


其中boot、normal 模式是并行啟動(dòng),service不寫(xiě)start-mode默認(rèn)也是normal。Condition模式必須通過(guò) start service 來(lái)拉起。

Start-mode通過(guò)注冊(cè)鉤子函數(shù),通過(guò)trigger拉起服務(wù)。

d0dbea3c-c041-11ec-bce3-dac502259ad0.png

6.分組管理

系統(tǒng)服務(wù)可以按照分組進(jìn)行管理,設(shè)備級(jí)知名group用于完成整機(jī)的開(kāi)機(jī)、待機(jī)、充電等功能。默認(rèn)的整機(jī)開(kāi)機(jī)是放到GROUP_BOOT中,GROUP_CHARING是充電模式。

以charging group舉例說(shuō)明。

配置device.charing.group.cfg 里面設(shè)置需要的jobs、services以及groups。

d10fa232-c041-11ec-bce3-dac502259ad0.png

解析group 的cfg文件。

d13f1c24-c041-11ec-bce3-dac502259ad0.png

通過(guò)hash表保存group的配置。

通過(guò)cmdline獲取當(dāng)前的group 模式,從而啟動(dòng)進(jìn)入不同的group,系統(tǒng)進(jìn)入不同的模式。

d15f15ba-c041-11ec-bce3-dac502259ad0.png

4

總結(jié)

Release3.1 版本在OpenHarmony2.0的基礎(chǔ)上各方面能力都有所提升,性能和穩(wěn)定性方面有所改善。Init組件中加入selinux配置,增強(qiáng)了系統(tǒng)的安全模式,按需啟動(dòng)模式節(jié)約系統(tǒng)的內(nèi)存資源,并行啟動(dòng)增加了系統(tǒng)的啟動(dòng)效率,分組啟動(dòng)模式為后期系統(tǒng)進(jìn)入不同狀態(tài)模式提供有效的接口??傊甇penHarmony在開(kāi)源社區(qū)中,通過(guò)大家的共同努力正在茁長(zhǎng)成長(zhǎng),總有一天會(huì)長(zhǎng)成蒼天大樹(shù),枝繁葉茂,造福人類。

審核編輯 :李倩

聲明:本文內(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)投訴
  • 子系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    116

    瀏覽量

    13519
  • OpenHarmony
    +關(guān)注

    關(guān)注

    33

    文章

    3960

    瀏覽量

    21168

原文標(biāo)題:OpenHarmony release 3.1 版本啟動(dòng)子系統(tǒng)功能分析

文章出處:【微信號(hào):HarmonyOS_Community,微信公眾號(hào):電子發(fā)燒友開(kāi)源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    企業(yè)后,數(shù)據(jù)不通、訪問(wèn)卡頓?這份網(wǎng)融合解決方案請(qǐng)收好

    前言在數(shù)字化轉(zhuǎn)型的浪潮中,“業(yè)務(wù)”早已成為企業(yè)升級(jí)的標(biāo)配。但很多企業(yè)完成后卻發(fā)現(xiàn),理想中的高效流暢并未如期而至,反而陷入了新的困境:不同
    的頭像 發(fā)表于 03-02 11:28 ?221次閱讀
    企業(yè)<b class='flag-5'>上</b><b class='flag-5'>云</b>后,數(shù)據(jù)不通、訪問(wèn)卡頓?這份<b class='flag-5'>云</b>網(wǎng)融合解決方案請(qǐng)收好

    代碼ATE測(cè)試系統(tǒng),輕松完成LED電源模塊的自動(dòng)化測(cè)試

    一、案例概述 零代碼ATE測(cè)試系統(tǒng)賦能湖南某電子科技公司,針對(duì)其 LED 電源研發(fā)測(cè)試階段 “手動(dòng)測(cè)試效率低、方案調(diào)整不靈活、數(shù)據(jù)分析需求迫切” 的核心問(wèn)題,提供定制化自動(dòng)化測(cè)試解決方案。成功將單款
    的頭像 發(fā)表于 12-22 19:50 ?338次閱讀
    零<b class='flag-5'>代碼</b>ATE測(cè)試系統(tǒng),輕松完成LED電源模塊的自動(dòng)化測(cè)試

    C語(yǔ)言的分支結(jié)構(gòu)介紹

    1.簡(jiǎn)單if語(yǔ)句 C語(yǔ)言中的分支結(jié)構(gòu)語(yǔ)句中的if條件語(yǔ)句。 簡(jiǎn)單if語(yǔ)句的基本結(jié)構(gòu)如下: 代碼語(yǔ)言:javascript if(表達(dá)式) { 執(zhí)行代碼塊; } 其語(yǔ)義是:如果表達(dá)式的值為真,則執(zhí)行其后的語(yǔ)句,否則不執(zhí)
    發(fā)表于 11-25 07:48

    蜂鳥(niǎo)E203簡(jiǎn)單分支預(yù)測(cè)的改進(jìn)

    當(dāng)前指令的類型是普通指令還是分支跳轉(zhuǎn)指令。當(dāng)譯碼信息指示當(dāng)前指令為分支跳轉(zhuǎn)指令時(shí),則在一個(gè)周期內(nèi)進(jìn)行分支預(yù)測(cè)。 蜂鳥(niǎo)E203的分支預(yù)測(cè)十
    發(fā)表于 10-24 07:45

    如何在vivado基于二進(jìn)制對(duì)指令運(yùn)行狀態(tài)進(jìn)行判斷

    a0 -8 為例 獲取相應(yīng)的二進(jìn)制將其轉(zhuǎn)換為16進(jìn)制導(dǎo)入vivado,方法就是將代碼文件修改為.verilog文件并存入蜂鳥(niǎo)的tb文件夾,在vivado的tb中修改測(cè)試用例路徑即可進(jìn)行仿真。 得到
    發(fā)表于 10-24 06:46

    在vivado基于二進(jìn)制對(duì)指令運(yùn)行狀態(tài)進(jìn)行判斷

    a0 -8 為例 獲取相應(yīng)的二進(jìn)制將其轉(zhuǎn)換為16進(jìn)制導(dǎo)入vivado,方法就是將代碼文件修改為.verilog文件并存入蜂鳥(niǎo)的tb文件夾,在vivado的tb中修改測(cè)試用例路徑即可進(jìn)行仿真。 得到結(jié)果
    發(fā)表于 10-24 06:31

    提高條件分支指令預(yù)測(cè)正確率的方法

    內(nèi)核中完整地插入這一分支預(yù)測(cè)器,需要修改e203_ifu_ifetch模塊與e203_ifu_litebpu模塊。 上圖為gshare結(jié)構(gòu)框圖 最終實(shí)現(xiàn)效果 如圖,我們?cè)陬A(yù)測(cè)器中添加了兩個(gè)計(jì)數(shù)
    發(fā)表于 10-22 08:22

    工業(yè)物聯(lián)網(wǎng)平臺(tái)有哪些低代碼應(yīng)用

    多協(xié)議支持:主流平臺(tái)(如領(lǐng)方案、AIRIOT)內(nèi)置200+工業(yè)協(xié)議驅(qū)動(dòng)包(如MQTT、Modbus、OPC UA),通過(guò)JSON配置實(shí)現(xiàn)協(xié)議轉(zhuǎn)換,支持自定義協(xié)議擴(kuò)展。例如,領(lǐng)方案支持“即插即用”設(shè)備接入,10鐘完成設(shè)備
    的頭像 發(fā)表于 09-24 14:49 ?625次閱讀

    測(cè)試小白3鐘上手,零代碼自動(dòng)化測(cè)試平臺(tái),15鐘搭建自動(dòng)化測(cè)試方案

    還在為不懂代碼、搭建測(cè)試方案耗時(shí)久而發(fā)愁?ATECLOUD 零代碼自動(dòng)化測(cè)試平臺(tái),專為自動(dòng)化測(cè)試量身打造,小白3 分鐘就能輕松上手,15 分鐘即可完成自動(dòng)化測(cè)試方案搭建,徹底打破傳統(tǒng)測(cè)試的技術(shù)壁壘與效率瓶頸。
    的頭像 發(fā)表于 09-22 17:52 ?887次閱讀
    測(cè)試小白3<b class='flag-5'>分</b>鐘上手,零<b class='flag-5'>代碼</b>自動(dòng)化測(cè)試平臺(tái),15<b class='flag-5'>分</b>鐘搭建自動(dòng)化測(cè)試方案

    亞馬遜科技宣布推出Qwen3與DeepSeek-V3.1模型的完全托管服務(wù)

    亞馬遜科技致力于成為運(yùn)行開(kāi)放權(quán)重模型的最佳平臺(tái),在Amazon Bedrock新增五個(gè)模型選項(xiàng),持續(xù)豐富模型選擇,進(jìn)一步滿足客戶需求。 主要亮點(diǎn): · Qwen3系列提供適用于復(fù)雜編程和通用推理
    的頭像 發(fā)表于 09-19 10:11 ?892次閱讀

    代碼自動(dòng)化測(cè)試平臺(tái)ATECLOUD功能詳解

    ATECLOUD 是由納米軟件開(kāi)發(fā)的高度可擴(kuò)展零代碼測(cè)試平臺(tái),專為電子儀器自動(dòng)化測(cè)試企業(yè)設(shè)計(jì),提供高性價(jià)比數(shù)字化轉(zhuǎn)型方案。 一、ATECLOUD與傳統(tǒng)測(cè)試系統(tǒng)的核心差異 ATECLOUD智能測(cè)試
    的頭像 發(fā)表于 08-20 17:32 ?1371次閱讀
    零<b class='flag-5'>代碼</b>自動(dòng)化測(cè)試平臺(tái)ATECLOUD功能詳解

    代碼開(kāi)發(fā)平臺(tái)是什么?零編程零成本搭建

    聯(lián)網(wǎng)平臺(tái)作為連接物理設(shè)備與數(shù)字世界的核心樞紐,其功能設(shè)計(jì)圍繞設(shè)備管理、數(shù)據(jù)流轉(zhuǎn)、應(yīng)用開(kāi)發(fā)、業(yè)務(wù)賦能四大維度展開(kāi)。 一、核心能力 低代碼/零代碼:通過(guò)可視化拖拽組件、預(yù)置模板、圖形化邏輯編排代替手寫(xiě)
    的頭像 發(fā)表于 07-31 15:25 ?782次閱讀

    什么是零代碼平臺(tái)?

    代碼平臺(tái)是一種無(wú)需編寫(xiě)傳統(tǒng)代碼,通過(guò)可視化拖拽、參數(shù)配置、邏輯連線即可快速搭建業(yè)務(wù)流程與應(yīng)用系統(tǒng)的工具平臺(tái)。它將復(fù)雜的軟件開(kāi)發(fā)過(guò)程轉(zhuǎn)化為 “搭積木” 式的操作,讓非技術(shù)人員(如業(yè)務(wù)人員、運(yùn)營(yíng)人員
    發(fā)表于 07-12 20:28

    工業(yè)組態(tài)在智慧水利的應(yīng)用

    、實(shí)際案例等方面進(jìn)行闡述: 應(yīng)用場(chǎng)景 水質(zhì)監(jiān)測(cè):工業(yè)組態(tài)可實(shí)現(xiàn)對(duì)水質(zhì)分析傳感器和水質(zhì)分析儀器儀表的遠(yuǎn)程監(jiān)控。通過(guò)
    的頭像 發(fā)表于 06-20 16:11 ?552次閱讀

    潤(rùn)和的Hi3861開(kāi)發(fā)版如何連接華為

    剛?cè)胧至艘惶诐?rùn)和的Hi3861開(kāi)發(fā)套件,下載的是3.2Release版本的源碼,想連接華為但是潤(rùn)和那邊的代碼倉(cāng)中沒(méi)有相關(guān)的demo,,求大佬指點(diǎn)
    發(fā)表于 04-11 20:32