吴忠躺衫网络科技有限公司

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

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

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

Harmony系統(tǒng)代碼的靜態(tài)測(cè)試

北匯信息POLELINK ? 2022-08-01 14:22 ? 次閱讀

華為的Harmony手機(jī)操作系統(tǒng)已經(jīng)發(fā)布了幾個(gè)月了,作為國(guó)產(chǎn)操作系統(tǒng),其寄托了我們的深切希望。在Harmony系統(tǒng)發(fā)布會(huì)上,手機(jī)、平板、智能手表等消費(fèi)電子產(chǎn)品固然是主角,而作為華為冉冉升起的新興業(yè)務(wù)領(lǐng)域——智能汽車(chē),亦被包含在系統(tǒng)生態(tài)之中,也引起了行業(yè)的廣泛關(guān)注。

Harmony作為一個(gè)新生的系統(tǒng),其不可避免的會(huì)存在很多問(wèn)題,而汽車(chē)領(lǐng)域?qū)Υa的編碼規(guī)范要求又極為嚴(yán)格。因此本文將通過(guò)使用汽車(chē)行業(yè)主流的靜態(tài)分析工具,來(lái)分析測(cè)試Harmony系統(tǒng)代碼對(duì)汽車(chē)行業(yè)內(nèi)常用編碼規(guī)范(CERT、MISRA C 2012、CWE C)的遵循情況。

考慮到標(biāo)準(zhǔn)Harmony系統(tǒng)的代碼量非常龐大,本文僅以OpenHarmony_1.0.1_release分支中的Hi3861 WLAN模組代碼為例進(jìn)行部分代碼的靜態(tài)測(cè)試。

編譯Harmony系統(tǒng)

Ubuntu編譯環(huán)境準(zhǔn)備

系統(tǒng)要求:Ubuntu16.04及以上64位系統(tǒng)版本。

本文使用的是搭建在虛擬機(jī)中的Ubuntu 18.0系統(tǒng),編譯環(huán)境搭建分為如下步驟:

▲獲取源碼

▲安裝和配置Python

▲安裝gn

▲安裝ninja

▲安裝LLVM

▲安裝hb

了解詳細(xì)的配置步驟請(qǐng)移步Harmony開(kāi)源項(xiàng)目教程指南,本文就不做詳細(xì)的介紹了,按照文檔一步一步進(jìn)行操作,就可以獲取Harmony輕量系統(tǒng)源碼,并完成編譯環(huán)境的搭建。

請(qǐng)注意,此時(shí)我們還無(wú)法編譯Harmony系統(tǒng),需要完成后續(xù)開(kāi)發(fā)板環(huán)境搭建后才能正常編譯Harmony系統(tǒng)。

Hi3861開(kāi)發(fā)板環(huán)境搭建

為了能正常編譯源碼中的wifiiot_hispark_pegasus工程,我們需要在剛才設(shè)置的Ubuntu編譯環(huán)境中搭建Hi3861開(kāi)發(fā)板環(huán)境搭建,如果需要編譯別的工程,搭建對(duì)應(yīng)的開(kāi)發(fā)板環(huán)境即可。

了解詳細(xì)的搭建步驟請(qǐng)移步安裝Hi3861開(kāi)發(fā)板環(huán)境

編譯Harmony系統(tǒng)

完成Hi3861開(kāi)發(fā)版環(huán)境搭建后,我們就可以正常編譯源碼中的wifiiot_hispark_pegasus工程了,具體步驟如下:

▲到下載的源碼根目錄下,執(zhí)行hb set,然后會(huì)提示讓你輸入源碼根目錄,輸入當(dāng)前路徑后回車(chē),選擇wifiiot_hispark_pegasus項(xiàng)目就完成了編譯準(zhǔn)備工作。

pYYBAGLmUPaAe4SkAABQ-O7ArnI670.png

▲執(zhí)行hb build即可進(jìn)行wifiiot_hispark_pegasus工程的編譯,如果編譯結(jié)果如下圖所示,即表示你成功地編譯了該工程。

pYYBAGLmUQCAKpznAAKGobVp8jA714.png

成功實(shí)現(xiàn)wifiiot_hispark_pegasus工程的編譯后,我們就可以進(jìn)行后續(xù)的靜態(tài)分析工作了。

Harmony系統(tǒng)靜態(tài)分析

Harmony系統(tǒng)編譯環(huán)境配置

通過(guò)編譯器環(huán)境配置文件生成工具,我們可以很方便地生成Harmony編譯環(huán)境的配置文件,由于wifiiot_hispark_pegasus工程是C工程,因此只配置C編譯器的環(huán)境即可,考慮到Harmony使用的是C99標(biāo)準(zhǔn),因此需要在生成配置文件時(shí)需要添加-std=C99,具體如下圖:

poYBAGLmUTaASOyhAADCfhveTPQ839.png

然后在靜態(tài)測(cè)試工具中導(dǎo)入該配置文件即可。

靜態(tài)分析執(zhí)行

為了方便后續(xù)將Harmony的靜態(tài)分析過(guò)程部署到持續(xù)集成平臺(tái)上,本文以命令行的方式進(jìn)行靜態(tài)分析操作的演示。具體步驟如下:

  • 創(chuàng)建QAC工程,命令如下:

qacli admin --qaf-project-config --qaf-project . --cct "/home/zhou/.config/Perforce/Helix-QAC-2021.1/config/cct/GNU_GCC-riscv32-unknown-elf-gcc_7.3.0-riscv32-unknown-elf-C-c99.cct" --acf "/home/zhou/.config/Perforce/Helix-QAC-2021.1/config/acf/HMOS.acf" --rcf "/home/zhou/.config/Perforce/Helix-QAC-2021.1/config/rcf/HMOS.rcf"

為了更全面地了解Harmony系統(tǒng)的代碼質(zhì)量,本文在QAC工程的分析配置文件HMOS.acf中添加了MISRA C 2012合規(guī)模塊、CERT C合規(guī)模塊及CWE C合規(guī)模塊。

  • MISRA C 2012:為開(kāi)發(fā)安全關(guān)鍵系統(tǒng)提供編碼標(biāo)準(zhǔn),廣泛應(yīng)用于汽車(chē)軟件開(kāi)發(fā)。
  • CERT信息安全編碼標(biāo)準(zhǔn),能確保您的軟件免受潛在的軟件安全漏洞的侵害。
  • CWE C:常見(jiàn)弱點(diǎn)枚舉(CWE)列表標(biāo)識(shí)了軟件和硬件中的軟件安全弱點(diǎn)。

  • 過(guò)濾Harmony中包含的第三方源碼,命令如下:

qacli pprops -P . --sync-setting FILE_FILTER --set "/home/zhou/Downloads/openHarmony/third_party"

通過(guò)該命令,我們可以將Harmony工程中包含的第三方源碼從QAC工程中過(guò)濾出去,這樣我們可以更好地通過(guò)QAC的分析結(jié)果衡量Harmony蒙源碼的代碼質(zhì)量。

  • 將wifiiot_hispark_pegasus工程源碼加載到QAC工程中,具體命令如下:

qacli sync -P . -t MONITOR "cd /home/zhou/Downloads/openHarmony&&hb clean&&hb build"

該命令是通過(guò)監(jiān)測(cè)wifiiot_hispark_pegasus工程的編譯過(guò)程,自動(dòng)將編譯過(guò)程中調(diào)用的源文件和頭文件添加到QAC工程中。

  • 執(zhí)行QAC分析,具體命令如下:

qacli analyze -P . –cf

pYYBAGLmUXqAa57jAALZbPTOTSw762.png

  • 生成合規(guī)報(bào)告

qacli report -P . -t RCR

pYYBAGLmUYeANkEjAADsATX29pc031.png

  • 將分析結(jié)果上傳到QAC的網(wǎng)頁(yè)端,方便查看,命令如下:

qacli upload -P . --qav-upload --upload-project HMOS --snapshot-name v1.0 --upload-source ALL -U https://192.168.9.126:8081/ --username admin --password admin

poYBAGLmUZ6AeDtCAACzd2L9VCc876.png

靜態(tài)分析結(jié)果分析

模塊wifiiot_hispark_pegasus的總體合規(guī)情況如下:

pYYBAGLmUbCARIOUAABvDWWvFAc088.png

QAC共計(jì)報(bào)出107618條診斷消息,共計(jì)違反規(guī)則290264次,違反的規(guī)則數(shù)目為302條(包含MISRA C、CERT C和CWE C),符合的規(guī)則有216條,由于模塊的文件合規(guī)率高達(dá)94.19%,但是工程合規(guī)率卻只有41.70%,所以可以看出違反規(guī)則的情況集中在少部分源文件中。

CERT合規(guī)情況

wifiiot_hispark_pegasus源碼的CERT總體違規(guī)情況如下圖:

poYBAGLmUdCAFENbAACYpBAO6v8814.png

圖中的圖例為CERT C的規(guī)則組簡(jiǎn)寫(xiě),詳細(xì)信息如下:

02_DCL Declarations and Initialization (DCL)

10_ENV Environment (ENV)

11_SIG Signals (SIG)

04_INT Integers (INT)

09_FIO Input Output (FIO)

14_CON Concurrency (CON)08_MEM Memory Management (MEM)

07_STR Characters and Strings (STR)

03_EXP Expressions (EXP)

違反最多的10條CERT C規(guī)則如下圖:

pYYBAGLmUe6AW8kOAACZVXx4egw261.png

CERT C規(guī)則的違規(guī)分布情況如下圖:

pYYBAGLmUfuAbq3HAAJe27dqtzU467.png

圖中方塊面積表示代碼量,顏色深淺表示違反CERT的嚴(yán)重程度,由上圖可以看出,CERT C的違規(guī)情況主要集中在如下源文件中:

  • cmsis_task_func_test.c:有3182行代碼,違反了1951條CERT C的診斷消息;
  • cmsis_task_pri_func_test.c有1635行代碼,違反了1144條CERT C的診斷消息;
  • tcp_session_manager.c:有1230行代碼,違反了912條CERT C的診斷消息;
  • huks_adapter.c:有1705行代碼,違反了862條CERT C的診斷消息;
  • coap_adapter.c:有638行代碼,違反了579條CERT C的診斷消息。

圈復(fù)雜度最高的10個(gè)函數(shù)如下圖:

poYBAGLmUhaAChnzAABHg9v6sVk317.png

下文我們將摘錄部分違反規(guī)則的代碼進(jìn)行分析說(shuō)明:

1. DCL37 Do not declare or define a reserved identifier. (rule)

規(guī)則解釋:

根據(jù) C標(biāo)準(zhǔn),7.1.3 [ISO/IEC 9899:2011],

所有以下劃線和大寫(xiě)字母或其他下劃線開(kāi)頭的所有標(biāo)識(shí)符都始終保留使用。

所有以下劃線開(kāi)頭的標(biāo)識(shí)符始終保留,用作普通名稱空間和標(biāo)簽名稱空間中文件范圍的標(biāo)識(shí)符。

違規(guī)舉例:

/HMOS/base/hiviewdfx/hievent_lite/frameworks/hiview_event.c,L28:

#define EVENT_VALUE_MAX_NUM16

此處代碼不合規(guī),因?yàn)?EVENT_VALUE_MAX_NUM'宏可能在未來(lái)與''中的宏有沖突。

參考ISO:C90 Language [7.13], ISO:C99 Language [7.26]

2. INT02 Understand integer conversion rules. (recommend)

規(guī)則解釋:

轉(zhuǎn)換可以作為強(qiáng)制轉(zhuǎn)換的結(jié)果顯式發(fā)生,也可以根據(jù)操作的要求隱式發(fā)生。盡管正確執(zhí)行程序通常需要進(jìn)行轉(zhuǎn)換,但它們也可能導(dǎo)致數(shù)據(jù)丟失或被誤解。將操作數(shù)值轉(zhuǎn)換為兼容類型不會(huì)導(dǎo)致值或表示發(fā)生變化。

C整數(shù)轉(zhuǎn)換規(guī)則定義了 C編譯器如何處理轉(zhuǎn)換。這些規(guī)則包括整數(shù)提升整數(shù)轉(zhuǎn)換等級(jí)通常的算術(shù)轉(zhuǎn)換。規(guī)則的意圖是確保轉(zhuǎn)化導(dǎo)致相同的數(shù)值,并且這些值最小化了其余計(jì)算中的意外。Prestandard C通常更傾向于保留類型的簽名。

違規(guī)舉例

/HMOS/base/hiviewdfx/hievent_lite/frameworks/hiview_event.c,L57:e.common.mark=EVENT_INFO_HEAD;

此處代碼不合規(guī),因?yàn)橐粋€(gè)'essentially signed'類型的整型常量在賦值時(shí)被轉(zhuǎn)換為'unsigned'類型。

3. DCL23 Guarantee that mutually visible identifiers are unique. (recommend)

規(guī)則解釋:

根據(jù) C標(biāo)準(zhǔn) [ISO/IEC 9899:2011]的第 6.2.7條,

所有引用同一對(duì)象或函數(shù)的聲明都應(yīng)具有兼容的類型;否則,行為未定義。

此外,根據(jù)第 6.4.2.1款,

任何在重要字符上不同的標(biāo)識(shí)符都是不同的標(biāo)識(shí)符。如果兩個(gè)標(biāo)識(shí)符僅在非重要字符上不同,則行為未定義。

違規(guī)舉例:

/HMOS/base/hiviewdfx/hievent_lite/interfaces/native/innerkits/hiview_event.h,L85:

voidHiEventPutInteger(HiEvent*event, int8 key, uint32 value);

此處代碼不合規(guī),因?yàn)橥獠繕?biāo)識(shí)符匹配其他外部標(biāo)識(shí)符(例如:'HiEventPrintf')的前6個(gè)字符-程序不符合嚴(yán)格的ISO:C90。

參考:ISO:C90 Language [6.1.2], Security Problems

4. DCL00 Const-qualify immutable objects. (recommend)

規(guī)則解釋:

不可變對(duì)象應(yīng)該使用const限定。使用const限定來(lái)強(qiáng)制對(duì)象不變性有助于確保應(yīng)用程序的正確性和安全性。例如,ISO/IEC TR 24772建議將參數(shù)標(biāo)記為常量,以避免無(wú)意中修改函數(shù)參數(shù) [ISO/IEC TR 24772]。STR05-C.Use pointers to const when referring to string literals描述了此建議的特殊情況。

違規(guī)舉例

/HMOS/base/hiviewdfx/hievent_lite/frameworks/hiview_event.c,L50:

voidHiEventPrintf(uint8 type, uint16 eventId, int8 key, uint32 value)

此處代碼不合規(guī),因?yàn)樾螀?type'永遠(yuǎn)不會(huì)被修改,因此可以用'const'限定符聲明它。

參考:, ISO:C90 Language [6.5.3], Security Problems

5. MEM34-C. Only free memory allocated dynamically.(rule)

規(guī)則解釋:

C標(biāo)準(zhǔn)附錄J [ISO/IEC 9899:2011]指出,如下行為是未定義的:

free或realloc函數(shù)的指針參數(shù)與先前由內(nèi)存管理函數(shù)返回的指針不匹配,或者空間已被調(diào)用free或realloc釋放

釋放非動(dòng)態(tài)分配的內(nèi)存可能導(dǎo)致堆棧損壞和其他嚴(yán)重錯(cuò)誤。不要對(duì)非標(biāo)準(zhǔn)內(nèi)存分配函數(shù)返回的指針調(diào)用free(),如malloc()、calloc()、realloc()或aligned_alloc()。

違規(guī)舉例

/HMOS/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/parsedata.c,第76行代碼:

FREE((char*)payload);

此處代碼不合規(guī),因?yàn)檫@是對(duì)非動(dòng)態(tài)內(nèi)存palyload變量的釋放,payload定義在/HMOS/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/parsedata.c,L53:

payload=json_to_string(obj_value);

限于篇幅,MISRA C和CWE C的合規(guī)情況不在這里一一展示。

結(jié)束語(yǔ)

通過(guò)對(duì)Harmony系統(tǒng)部分代碼的靜態(tài)測(cè)試,我們嘗試了解了Harmony系統(tǒng)針對(duì)汽車(chē)行業(yè)常用的代碼編程規(guī)范的合規(guī)情況,期望未來(lái)Harmony通過(guò)不斷迭代開(kāi)發(fā),提升代碼的合規(guī)程度,進(jìn)一步改善代碼的質(zhì)量,成為一個(gè)優(yōu)秀的車(chē)載操作系統(tǒng)。

聲明:本文內(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)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何測(cè)試TPA3118和TPA3116的靜態(tài)電流和靜態(tài)功耗?

    1.如何測(cè)試TPA3118和TPA3116的靜態(tài)電流和靜態(tài)功耗? 2.測(cè)試時(shí)候需要帶負(fù)載嘛?(是否需要接喇叭) 3.如果用萬(wàn)用表測(cè)試應(yīng)該
    發(fā)表于 10-12 06:54

    汽車(chē)異構(gòu)硬件平臺(tái)開(kāi)發(fā)如何進(jìn)行靜態(tài)代碼分析

    先進(jìn)的靜態(tài)代碼分析工具,其新版本中引入的多CCT功能為開(kāi)發(fā)人員提供了強(qiáng)大的支持,該功能不僅簡(jiǎn)化了多編譯器環(huán)境下的代碼分析過(guò)程,還可以極大增強(qiáng)代碼的質(zhì)量和安全性。
    的頭像 發(fā)表于 10-09 16:15 ?587次閱讀
    汽車(chē)異構(gòu)硬件平臺(tái)開(kāi)發(fā)如何進(jìn)行<b class='flag-5'>靜態(tài)</b><b class='flag-5'>代碼</b>分析

    新能源汽車(chē) LabCar 測(cè)試系統(tǒng)方案

    什么是LabCar測(cè)試LabCar測(cè)試目標(biāo)是進(jìn)行整車(chē)黃板臺(tái)架功能測(cè)試,用于整車(chē)開(kāi)發(fā)和測(cè)試階段,滿足設(shè)計(jì)人員和測(cè)試人員的試驗(yàn)需求,以驗(yàn)證整車(chē)性
    的頭像 發(fā)表于 09-13 16:56 ?2109次閱讀
    新能源汽車(chē) LabCar <b class='flag-5'>測(cè)試</b><b class='flag-5'>系統(tǒng)</b>方案

    變頻器靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試方法

    在變頻器的維護(hù)和故障診斷中,靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試是兩項(xiàng)不可或缺的步驟。這兩類測(cè)試為技術(shù)人員提供了判斷變頻器內(nèi)部組件健康狀況的依據(jù)。 一、靜態(tài)
    的頭像 發(fā)表于 08-19 17:47 ?1561次閱讀

    恒訊科技分析:如何測(cè)試海外靜態(tài)IP服務(wù)的穩(wěn)定性和速度?

    測(cè)試海外靜態(tài)IP服務(wù)的穩(wěn)定性和速度可以通過(guò)以下步驟進(jìn)行: 1、選擇測(cè)試工具:使用網(wǎng)絡(luò)測(cè)試工具,如ping命令、traceroute(或 racert)、網(wǎng)絡(luò)速度
    的頭像 發(fā)表于 08-14 14:58 ?406次閱讀

    功率半導(dǎo)體器件靜態(tài)特性測(cè)試挑戰(zhàn)及應(yīng)對(duì)測(cè)試方案

    PMST系列功率器件靜態(tài)參數(shù)測(cè)試系統(tǒng)是武漢普賽斯正向設(shè)計(jì),精益打造的高精密電壓/電流測(cè)試分析系統(tǒng),是一致能夠提供IV,CV、跨導(dǎo)等豐富功能的
    的頭像 發(fā)表于 07-23 15:43 ?607次閱讀
    功率半導(dǎo)體器件<b class='flag-5'>靜態(tài)</b>特性<b class='flag-5'>測(cè)試</b>挑戰(zhàn)及應(yīng)對(duì)<b class='flag-5'>測(cè)試</b>方案

    靜態(tài)庫(kù)中定義的INIT_DEVICE_EXPORT函數(shù)并沒(méi)有被系統(tǒng)調(diào)用,為什么?

    1,將一段代碼編譯成靜態(tài)庫(kù) 2,主工程鏈接這個(gè)靜態(tài)庫(kù) 3,靜態(tài)庫(kù)里的函數(shù)并沒(méi)有被主工程調(diào)用 4,靜態(tài)庫(kù)中定義了一些 INIT_DEVICE_
    發(fā)表于 07-04 06:49

    ADC靜態(tài)測(cè)試全流程:以斜坡測(cè)試為例(二)

    作者介紹 ? 在上期文章中我們介紹了ADC靜態(tài)參數(shù)測(cè)試的“測(cè)試適用性”和“硬件準(zhǔn)備”,今天將為您介紹測(cè)試的“軟件配置”以及“開(kāi)始測(cè)試和查看結(jié)
    的頭像 發(fā)表于 06-17 17:47 ?829次閱讀
    ADC<b class='flag-5'>靜態(tài)</b><b class='flag-5'>測(cè)試</b>全流程:以斜坡<b class='flag-5'>測(cè)試</b>為例(二)

    ADC靜態(tài)測(cè)試全流程:以斜坡測(cè)試為例(一)

    如何利用該系統(tǒng)進(jìn)行精確的ADC靜態(tài)參數(shù)測(cè)試。我們將以斜坡測(cè)試(Ramp test)這一典型測(cè)試流程為例,指導(dǎo)您高效地使用我們的ATX
    的頭像 發(fā)表于 06-14 10:11 ?1082次閱讀
    ADC<b class='flag-5'>靜態(tài)</b><b class='flag-5'>測(cè)試</b>全流程:以斜坡<b class='flag-5'>測(cè)試</b>為例(一)

    半導(dǎo)體分立器件靜態(tài)參數(shù)測(cè)試系統(tǒng)

    半導(dǎo)體分立器件靜態(tài)參數(shù)測(cè)試系統(tǒng)產(chǎn)品介紹 HUSTEC-DC-2010晶體管直流參數(shù)測(cè)試系統(tǒng)是由我公司技術(shù)團(tuán)隊(duì)結(jié)合半導(dǎo)體功率器件
    發(fā)表于 05-21 10:37 ?0次下載

    如何設(shè)置靜態(tài)IP代理

    靜態(tài)IP
    jf_60146132
    發(fā)布于 :2024年04月29日 07:46:31

    電源測(cè)試系統(tǒng)如何解決電源模塊測(cè)試痛點(diǎn)?

    電源模塊測(cè)試系統(tǒng)采取B/S結(jié)構(gòu),通過(guò)軟件程控儀器,實(shí)現(xiàn)自動(dòng)化測(cè)試,解放人力。自動(dòng)化測(cè)試測(cè)試程序簡(jiǎn)單化,無(wú)需頻繁手動(dòng)調(diào)整儀器,通過(guò)儀器指令便
    的頭像 發(fā)表于 03-26 16:47 ?426次閱讀
    電源<b class='flag-5'>測(cè)試</b><b class='flag-5'>系統(tǒng)</b>如何解決電源模塊<b class='flag-5'>測(cè)試</b>痛點(diǎn)?

    cubeide創(chuàng)建靜態(tài)庫(kù)工程,如何使用cubeMX生成配置代碼

    創(chuàng)建工程可執(zhí)行程序的話會(huì)生成一個(gè).ioc文件,然后可以使用MX配置生成代碼, 但創(chuàng)建靜態(tài)庫(kù)工程的話并沒(méi)有生成.ioc文件,請(qǐng)教一下如何使用。 感謝!!!!!!!!!!
    發(fā)表于 03-12 08:04

    使用的H7系列MX編寫(xiě)代碼后生成靜態(tài)庫(kù)文件,如何更改靜態(tài)庫(kù)工程也使用硬件雙精度浮點(diǎn)數(shù)?

    使用的H7系列MX編寫(xiě)代碼后生成靜態(tài)庫(kù)文件, 在調(diào)用該靜態(tài)庫(kù)文件并編譯報(bào)錯(cuò),如下: 然后我查看了靜態(tài)庫(kù)工程的編譯指令: 而APP程序的編譯指令: 想請(qǐng)教一下,該如何更改
    發(fā)表于 03-12 06:15

    車(chē)載信息娛樂(lè)系統(tǒng)的網(wǎng)絡(luò)安全考慮因素

    靜態(tài)應(yīng)用程序安全測(cè)試 ( SAST ) 軟件測(cè)試方法檢查和分析應(yīng)用程序源代碼、字節(jié)碼和二進(jìn)制文件的編碼和設(shè)計(jì)條件,以發(fā)現(xiàn) IVI 系統(tǒng)軟件中
    的頭像 發(fā)表于 03-06 17:14 ?1199次閱讀
    車(chē)載信息娛樂(lè)<b class='flag-5'>系統(tǒng)</b>的網(wǎng)絡(luò)安全考慮因素
    威尼斯人娱乐场有什么玩| 广州百家乐赌博机| 百家乐官网相对策略| 利澳百家乐的玩法技巧和规则| 百家乐官网常用公式| 众发国际娱乐| 闲和庄百家乐娱乐场| 百家乐官网娱乐真人娱乐| 吉隆县| 大发888 894| 百家乐最长的缆| 澳门百家乐官网一把决战输赢| 七匹狼娱乐城开户| 百家乐真人百家乐皇冠| 克拉克百家乐官网的玩法技巧和规则| 蕲春县| 大发888我发财官网| 百家乐美食坊| 澳门百家乐官网网上赌博| 天水市| 新全讯网3344555| 百家乐信誉平台开户| 百家乐官网可以出千吗| 澳门百家乐| 百家乐真人视频出售| 关于百家乐概率的书| 百家乐官网小九梭哈| 百家乐官网在发牌技巧| 博彩吧| 百家乐技巧经| 百家乐那个平台信誉高| 大都会百家乐官网的玩法技巧和规则| 百家乐官网是否有路子| bet365开户| 大发888娱乐场玩什么| 蓝盾百家乐代理| 澳门百家乐网址| 香港百家乐官网娱乐场开户注册| 博九网百家乐官网现金网| 威廉希尔| 大发888娱乐场 东南网|