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

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

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

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

桃芯科技軟件審核簡介

桃芯科技 ? 來源:桃芯科技 ? 2025-01-24 09:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

說明

本文檔對如何審核一個項目的軟件是否符合量產(chǎn)要求進(jìn)行闡述;審核目的為確保軟件足夠健全、穩(wěn)定、易于量產(chǎn),做出更有品質(zhì)的產(chǎn)品;該文檔不一定會講清楚每個檢測項,但會盡可能提示你如何掌控調(diào)整方向。

本文檔適用于桃芯科技軟件平臺衍生品。

主要檢測項

1軟件框架檢查

桃芯平臺的軟件包有很多種,typical、exp等類型,還有noos版本,各自有不同的特點,評估該項目是否選擇了最優(yōu)的類型。

關(guān)于軟件包的版本選擇,請參考如下意見:

普通的產(chǎn)品,對功耗,最大連接數(shù)等沒有嚴(yán)格要求的,選通用的,用typical版本即可。

追求極致功耗,且連接數(shù)比較小,則選擇mini包類型。

需要連接數(shù)盡可能多,則可以考慮extention包。

需要要體驗sdk的一些新特性,或者比較全面的api體驗,但可以接受一些bug存在,則可采用實驗性質(zhì)的exp版本。

若不考慮內(nèi)置freertos系統(tǒng),或、需要更換其它rtos,則可以以上版本對應(yīng)的noos版本。

2功能符合性檢查

不同的產(chǎn)品功能不同,檢查項則不同,這里以藍(lán)牙串口模塊為例進(jìn)行說明,供參考:

藍(lán)牙模塊的串口協(xié)議指令是否與規(guī)格書一致;

藍(lán)牙模塊的藍(lán)牙協(xié)議是否與規(guī)格書一致;

其它和基本功能相關(guān)的,統(tǒng)統(tǒng)檢查是否與設(shè)計目標(biāo)一致。

3異常應(yīng)對檢查

對于不同的產(chǎn)品,滿足基本功能是基本要求,對于一些異常情況發(fā)生時,也應(yīng)該有應(yīng)對措施,常見的:

EMC干擾導(dǎo)致的接口通訊錯誤,比如UART或者SPI等;

其它環(huán)境因素(比如高溫低溫)造成的宕機問題等;

應(yīng)對異常,常見的應(yīng)對措施:

EMC等導(dǎo)致的通訊錯誤,可通過增加校驗來進(jìn)行判斷,來識別幀錯誤。同時,對幀接收建立超時機制,來避免兩個不同幀之間發(fā)生重疊導(dǎo)致的判斷錯誤。以AT指令串口藍(lán)牙模組舉例,先發(fā)送一個異常uart指令(比如缺少幀尾),間隔200ms以上再發(fā)送一個正常指令,觀察模組是否可以正常接收第二個正常的指令等等。

對于其它因素造成的宕機問題,一般要用看門狗進(jìn)行保護。

以上場景針對性比較強,不一定適用所有場景,請根據(jù)產(chǎn)品類型,制定詳細(xì)的異常測試計劃。

4Flash存儲檢查

對于桃芯的芯片,需要檢查藍(lán)牙配對使用的kv系統(tǒng)的存儲的地址是否被合理規(guī)劃,他們是否與應(yīng)用程序區(qū)沖突;

如果用戶自定義數(shù)據(jù)未使用kv系統(tǒng),也要確定地址范圍是否與應(yīng)用程序空間發(fā)生重疊;

還要考慮兩種自定義數(shù)據(jù)的地址范圍是否與OTA備份區(qū)的空間發(fā)生重疊;

各種flash存儲數(shù)據(jù)是否使用了循環(huán)存儲(存滿一個扇區(qū)才擦除一次的策略)來增加擦寫次數(shù),進(jìn)而來提高產(chǎn)品壽命,按照10萬次擦寫壽命來看,產(chǎn)品平均使用壽命是多少,是否符合產(chǎn)品預(yù)期設(shè)計;

5任務(wù)優(yōu)先級(rtos版本)檢查

各任務(wù)優(yōu)先級設(shè)計是否合理,主要檢查:

檢查藍(lán)牙協(xié)議棧controller任務(wù)是否已經(jīng)是最高優(yōu)先級。(controller的task優(yōu)先級應(yīng)該是最高的)

檢查藍(lán)牙協(xié)議棧host任務(wù)優(yōu)先級。

檢查FreeRTOS timer 任務(wù)優(yōu)先級。

檢查用戶任務(wù)的優(yōu)先級安排是否合理,與藍(lán)牙協(xié)議棧任務(wù)優(yōu)先級等platform任務(wù)優(yōu)先級的關(guān)系是否合理。

檢查有沒有其它用戶任務(wù)優(yōu)先級與idle task的優(yōu)先級一樣,影響到睡眠的。

任務(wù)優(yōu)先級檢查可以參考如下文檔設(shè)計:3. FreeRTOS任務(wù)優(yōu)先級在桃芯sdk的設(shè)置(https://daklqpbddlx.feishu.cn/wiki/Tdytw22uYi0V8okrwUicFrgBnng)

6中斷優(yōu)先級檢查

檢查各個硬件中斷的優(yōu)先級安排是否合理,比如重要中斷是否優(yōu)先級是否更高。

7線程安全檢查

檢查應(yīng)用代碼中有沒有在任務(wù)和中斷中共同訪問一個變量或內(nèi)存的情況發(fā)生,這種情況會導(dǎo)致共享資源競爭問題,引起低概率問題,需要在設(shè)計階段避免這樣的行為,常用的處理手段有:

對于RTOS的系統(tǒng),可用信號量,隊列等消除線程安全問題;

對于沒有RTOS的系統(tǒng),可用匯編轉(zhuǎn)化為原子操作避免競爭;

檢查在調(diào)用桃芯藍(lán)牙協(xié)議棧接口時,是否通過btstack_push_user_msg的方式送到host任務(wù)執(zhí)行,以避免線程安全問題,或可以直接調(diào)用線程安全接口。

8看門狗WDT檢查

檢查看門狗是否打開:

一般測試階段不能打開,讓其發(fā)生死機等異常來暴露問題,方便及時發(fā)現(xiàn)和修復(fù);

量產(chǎn)階段要打開,以確保未知問題導(dǎo)致宕機后無法自恢復(fù)。

檢查看門狗的超時復(fù)位時間和喂狗周期設(shè)置是否合理:

檢查兩者時間是否過于接近,導(dǎo)致容易發(fā)生意外復(fù)位;

檢查喂狗時間是否設(shè)置過于頻繁,導(dǎo)致cpu時間過多被占用,影響其它任務(wù)性能;

檢查復(fù)位超時時間是否設(shè)置過大,導(dǎo)致宕機復(fù)位不及時;

檢查多程序間跳轉(zhuǎn),看門狗狀態(tài)如何,如果狗一直開著,兩個程序是不是都進(jìn)行了喂狗操作。

9編譯優(yōu)化等級檢查

檢查優(yōu)化等級是否非-O0,如果是,則需要:

檢查寄存器設(shè)置是否均有volatile關(guān)鍵字,比如給某個寄存器設(shè)置為0,再設(shè)置為1,如果沒有加volatile,則可能被編譯器優(yōu)化為只賦值為1這一個操作,造成硬件執(zhí)行錯誤。

檢查部分關(guān)鍵狀態(tài)變量是否添加volatile關(guān)鍵字,以便于獲取真實的RAM變量值,避免邏輯錯誤。

需要注意的是,大量不必要的添加volatile將會導(dǎo)致程序運行變慢。

10日志檢查

日志添加/屏蔽:在調(diào)試階段,往往會打開調(diào)試日志,在量產(chǎn)階段,會關(guān)閉日志信息,提高性能,減少延時。 需要注意的是:去掉日志,會引起運行時序的變化,可能引入一些邏輯問題,所以,軟件去掉日志后需進(jìn)行充分測試后軟件才能釋放。

11藍(lán)牙OTA升級

確認(rèn)項目是否需要OTA功能,如果需要,則需要添加并測試。

檢查OTA是采用備份升級策略還是非備份升級策略。

檢查是僅升級APP,還是同時升級platform和APP。

檢查FLASH空間結(jié)構(gòu)是否被詳細(xì)規(guī)劃,整理一個flash分配圖,主要問自己:

哪些地方存儲協(xié)議棧platform.BIN

哪些存儲APP,APP備份區(qū)是否足夠大

是否需要二級boot

用戶數(shù)據(jù)存儲在哪里

檢查OTA升級過程是否可以正常進(jìn)行。

檢查升級版本號有沒有正確添加,每次發(fā)布軟件是否修改了版本號。

12版本號控制

檢查是否添加了版本號。

檢查是否只有一個地方可以修改版本號,多個地方修改容易造成遺漏。

檢查通過串口等有線接口獲得的版本號是否與預(yù)設(shè)一致。

檢查通過藍(lán)牙接口獲得的版本號是否與預(yù)設(shè)一致。

13RAM相關(guān)檢查

堆、任務(wù)棧大小設(shè)置是否合理。

對于帶RTOS的包:.S類型啟動文件中堆的分配值是否為0(sdk例程默認(rèn)為0),如果為0,特別注意不能使用malloc,可以使用pvPortMalloc和ll_malloc替代。

而對于非RTOS包:.S啟動文件的STACK大小是否足夠大。

14死循環(huán)檢測

桃芯平臺的異常檢測 hardfault、assert、OOM回調(diào)中一般是打印調(diào)試信息,并設(shè)置死循環(huán)。在調(diào)試階段沒有問題,但是在量產(chǎn)代碼中,這里的死循環(huán)應(yīng)改為軟件復(fù)位或看門狗復(fù)位。

檢查程序中每一個while(1)和for(;;)死循環(huán),是否增加了超時退出機制。

檢查另外一種比較隱藏for死機:比如uint8_t類型和大于256的數(shù)據(jù)/數(shù)據(jù)類型進(jìn)行比較,永遠(yuǎn)得不到滿足,也會造成死循環(huán),要特別注意。

15代碼風(fēng)格檢查

檢查是否存在隨意使用extern方式引用代碼,造成代碼結(jié)構(gòu)混亂問題,建議使用同名C文件和H文件,以及引用頭文件的方式來調(diào)用其它文件的函數(shù)。

檢查整體代碼風(fēng)格是否統(tǒng)一,盡量不要使用多種風(fēng)格的代碼,使得移植性、閱讀性較差;

程序中盡量用宏代替一些關(guān)鍵數(shù)字標(biāo)記,方便統(tǒng)一修改,提高維護效率。

C語言中,進(jìn)行變量賦值時,需注意數(shù)字字面量的前綴表示不同進(jìn)制:0x 前綴表示十六進(jìn)制,0 前綴表示八進(jìn)制,0b 前綴表示二進(jìn)制。為避免潛在錯誤,應(yīng)在賦值操作前檢查數(shù)字字面量的前綴,確保其符合預(yù)期的進(jìn)制表示,例如:

C
#define TEST_MACRO 09 // 錯誤,第一個字符0代表八進(jìn)制,八進(jìn)制不存在數(shù)字9,范圍是0~7
#define TEST_MACRO 011 // 正確,第一個字符0代表八進(jìn)制,八進(jìn)制11代表9
#define TEST_MACRO 9 // 正確,默認(rèn)10進(jìn)制數(shù)9
#define TEST_MACRO 0x9 // 正確,十六進(jìn)制數(shù)據(jù)
#define TEST_MACRO 0b1001 // 正確,二進(jìn)制,換算成十進(jìn)制為9

16低級錯誤檢查

檢查所有switch case 是否有丟失 break而造成邏輯隱患或錯誤的問題。

檢查是否直接判斷一些沒有賦值的局部變量造成邏輯異常的問題。

檢查是否有指針沒有賦值則直接調(diào)用的情況,指針用之前需要判斷非空,是否直接分配堆后立即判斷非空。

檢查邏輯上是否可能使用已被釋放的指針,造成hardfault等問題;

檢查是否存在同一個中斷硬件在多個地方注冊回調(diào)的情況;

檢查free掉一個指針后是否在其后面添加了設(shè)置該指針為NULL的操作,這往往是必要的。

檢查邏輯上是否存在內(nèi)存泄露的風(fēng)險,例如:malloc一塊內(nèi)存后,用完未free,或邏輯缺陷導(dǎo)致無法free,隨著代碼運行,內(nèi)存申請越來越多,最終導(dǎo)致泄露。尤其內(nèi)存泄露要很久時間才會發(fā)生時,不易察覺,所以,應(yīng)盡量在設(shè)計階段避免。

17時鐘校準(zhǔn)

檢查使用內(nèi)部RC低頻時鐘時,低功耗是否開啟了時鐘校準(zhǔn)。

18詞語小介紹

檢查使用數(shù)組時,有沒有做最大值判斷,避免數(shù)組越界使用。

檢查使用指針時,有沒有做最大值判斷,避免指針空間越界使用。

檢查藍(lán)牙回調(diào)事件中回調(diào)參數(shù)的使用是否添加const關(guān)鍵:這些參數(shù)只能讀,不能寫和修改,意外修改會造成未知異常。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片
    +關(guān)注

    關(guān)注

    463

    文章

    54010

    瀏覽量

    466050
  • 藍(lán)牙
    +關(guān)注

    關(guān)注

    119

    文章

    6313

    瀏覽量

    178711
  • 軟件
    +關(guān)注

    關(guān)注

    69

    文章

    5332

    瀏覽量

    91583
  • emc
    emc
    +關(guān)注

    關(guān)注

    176

    文章

    4390

    瀏覽量

    191579

原文標(biāo)題:《軟件設(shè)計指南》之一-桃芯軟件審核簡介

文章出處:【微信號:INGCHIPS_OFFICIAL,微信公眾號:桃芯科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    發(fā)布元服務(wù)提交審核

    ;gt; 版本信息”下待發(fā)布的版本。 點擊右上角的“提交審核”。 在彈出的窗口中確認(rèn)版本號無誤后,點擊“確認(rèn)”。 如果軟件包中支持的設(shè)備類型范圍大于配置支持設(shè)備時選擇的設(shè)備范圍,并且軟件包支持PC
    發(fā)表于 12-04 14:23

    發(fā)布應(yīng)用催促加急撤銷審核

    ;gt; 版本信息”下待發(fā)布的版本。 點擊右上角的“提交審核”。 在彈出的窗口中確認(rèn)版本號無誤后,點擊“確認(rèn)”。 如果軟件包中支持的設(shè)備類型范圍大于配置支持設(shè)備時選擇的設(shè)備范圍,并且軟件包支持PC
    發(fā)表于 12-26 10:43

    用proteus做一個心,尋求思路

    最近學(xué)校開設(shè)了Proteus電路仿真課程,我想用二極管做一個心的表白設(shè)計,現(xiàn)在想尋求思路。我自己能想到的就是用二極管設(shè)計一個心形,然后利用單片機實行流水燈。各位大神有什么高見嗎? ^_^
    發(fā)表于 10-25 20:23

    合同智能審核軟件-提高審查效率和準(zhǔn)確性

    合同管理是企業(yè)營業(yè)中的重要部分,而文件審查時間占到合同文件管理的百分之七十左右。這意味著如果使用軟件將合同審查自動化,企業(yè)的合同管理效率將大幅度提高。同時在實際的合同智能審核軟件應(yīng)用中,也要保證自動
    發(fā)表于 09-05 17:22

    采集軟件簡介

    采集軟件簡介 數(shù)據(jù)采集軟件的用途是采集數(shù)據(jù)、執(zhí)行預(yù)處理(如特征提取和/或前端濾波),以及將數(shù)據(jù)存儲到硬盤。分析軟件是獨立的,可在實時(與采
    發(fā)表于 03-31 10:06 ?13次下載

    量子技術(shù)簡介

    量子技術(shù)簡介 作為國內(nèi)平板電視巨頭的長虹,去年以來,針對平板電視普遍遭遇“缺”的困局,長虹整合內(nèi)
    發(fā)表于 05-24 17:24 ?1420次閱讀

    C語言教程之猴子吃

    C語言教程之猴子吃,很好的C語言資料,快來學(xué)習(xí)吧。
    發(fā)表于 04-22 09:51 ?0次下載

    西門子軟件DriveMonitor 使用簡介.pdf

    西門子軟件DriveMonitor 使用簡介.pdf
    發(fā)表于 05-23 11:08 ?13次下載

    SYS BIOS簡介:如何軟件中斷?

    SYS BIOS簡介-軟件中斷
    的頭像 發(fā)表于 08-15 01:39 ?4320次閱讀

    科技正在走向自主創(chuàng)打造國內(nèi)第一顆擁有自主協(xié)議的藍(lán)牙5.0芯片的道路上

    P技術(shù)是所有關(guān)鍵技術(shù)和SoC產(chǎn)品的基礎(chǔ),是擺脫外部制約和自主發(fā)展的基礎(chǔ),科技擁有國內(nèi)首個完全自主的藍(lán)牙5協(xié)議棧,這包括了藍(lán)牙5.0的底層協(xié)議LINK Controller IP(軟件+硬件)技術(shù)
    的頭像 發(fā)表于 11-09 08:54 ?9173次閱讀

    EDA軟件公司愿景科創(chuàng)板IPO終止

    2020年12月31日,上海證券交易所科創(chuàng)板上市審核中心發(fā)布關(guān)于終止對北京愿景軟件技術(shù)股份有限公司(下稱“愿景”)首次公開發(fā)行股票并在科創(chuàng)板上市
    的頭像 發(fā)表于 01-06 09:24 ?2962次閱讀

    科技車規(guī)級低功耗SoC芯片獲得AEC-Q100的測試認(rèn)證

    ING91870CQ是科技發(fā)布的一款車規(guī)級低功耗SoC芯片。該芯片歷經(jīng)9個月的可靠性測試,最終獲得AEC-Q100的測試認(rèn)證。
    的頭像 發(fā)表于 09-15 10:18 ?5266次閱讀

    STM32WL軟件簡介

    電子發(fā)燒友網(wǎng)站提供《STM32WL軟件簡介.pdf》資料免費下載
    發(fā)表于 09-19 14:51 ?1次下載
    STM32WL<b class='flag-5'>軟件</b><b class='flag-5'>簡介</b>

    科技推出的低功耗藍(lán)牙應(yīng)用方案支持Apple Find My功能

    2023年11月,科技的ING9XX系列BLE芯片成功通過蘋果授權(quán)的第三方機構(gòu)進(jìn)行的各項合規(guī)性驗證,該系列芯片已經(jīng)全面兼容Find My network accessory的功能要求,可為第三方硬件產(chǎn)品提供高效快速尋找丟失物品的低功耗藍(lán)牙應(yīng)用方案。
    的頭像 發(fā)表于 04-19 10:11 ?2270次閱讀
    <b class='flag-5'>桃</b><b class='flag-5'>芯</b>科技推出的低功耗藍(lán)牙應(yīng)用方案支持Apple Find My功能

    旺微電子通過國際一流供應(yīng)鏈體系審核

    2025年3月初,旺微電子成功通過全球頂級Tier1企業(yè)的供應(yīng)商導(dǎo)入審核,標(biāo)志著公司在車規(guī)芯片領(lǐng)域正式邁入國際一流供應(yīng)鏈體系。
    的頭像 發(fā)表于 03-10 10:06 ?1157次閱讀