色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

面向嵌入式系統的自診斷API

PCB線路板打樣 ? 來源:PCB線路板打樣 ? 作者:PCB線路板打樣 ? 2023-11-10 15:46 ? 次閱讀

邁向嵌入式系統的自診斷API
隨著嵌入式系統需求的增長和開發周期的縮小,開發人員越來越多地集成商業應用程序編程接口(API)或軟件工具的功能集合發布者提供在應用程序中使用該工具的功能。程序員選擇這些預先構建的庫,而不是手動編寫所需的功能。常見示例是通信,消息傳遞,數據庫和用戶界面庫。這些“中間件”API在便利性,可移植性,生產力和上市時間方面提供了諸多益處。但是,這些庫通常還存在引入破壞性和極難發現的編程錯誤的風險。這種風險源于商業API的實施方式。包含API的軟件功能幾乎總是數據結構無知。通過使用void指針在API庫和應用程序之間傳遞數據,他們處理數據而不“知道”他們運行的數據類型。

然而,創建API的潛力它捕獲了更廣泛的編程錯誤,并減少了API學習曲線的啟動,內置于C ++和C語言中。通過利用每個ANSI C/C ++編譯器的函數參數類型檢查能力,可以創建一個數據感知的編程接口,從而實現自診斷。 C/C ++作為首選的嵌入式系統開發環境不斷發展,因此基于環境固有功能的任何改進都具有廣泛的適用性。

數據管理通常是核心應用程序需求,以及許多商業數據庫API在解決嵌入式系統的性能和占用空間要求的同時,我們已經開始滿足這一需求。

從歷史上看,數據庫SDK已經為數據庫提供的服務提供了預定義的靜態編程接口。對于嵌入式系統,這些API中的大多數都是導航的,具有排序,存儲和檢索數據的功能,同時一次瀏覽數據庫的內容。開發人員必須學習這樣一個數據庫來完成一項任務,一般都是積極的,或者至少是中立的:雖然API提供了一個可以增加項目時間的學習曲線,但這種記憶在未來的項目中可能會有用。人們普遍期望這個API幾乎可以處理任何類型和組織的數據。

然而,一個重要的缺點是,對于預定義的數據庫函數庫來說,能夠管理任何數據庫定義的數據,接口必須忽略所有數據的類型。換句話說,數據庫編程接口必須將數據視為不透明或未鍵入的數據。簡單來說,數據庫庫無法知道公司,人員,網絡節點,傳感器,高速公路或任何其他特定類型的信息是從數據庫讀取還是寫入數據庫。編程接口只能知道正在寫入一些數據。

為了實現這一點,所有這些數據庫都使用void指針在數據庫庫和應用程序之間傳遞數據。 void指針是一個C/C ++語言程序變量,可以合法地指向任何類型的數據。無效指針是什么叫做un-typed?正如其名稱所暗示的那樣,它沒有類型。

沒有類型,C/C ++編譯器和數據庫運行時都不能對它們執行任何驗證。這開啟了編程錯誤的可能性,這些錯誤源于將指針傳遞給錯誤類型的數據。這種錯誤的后果包括數據庫中的無意義數據到損壞的(不可用的)數據庫到崩潰的程序。

編寫函數參數時出錯的結果將導致數據庫運行時放置將數據放入數據庫中不適合的位置(例如,將數據放入數據庫為模型數據指定的位置)。充其量,這會導致亂碼存儲在數據庫中。更糟糕的是,數據庫運行時可能會嘗試超出程序堆棧的末尾并導致內存沖突(即崩潰)。

從數據庫中讀取數據會帶來其他風險。嘗試將N字節寬的數據讀入一個小于N字節寬的程序變量將導致數據庫覆蓋內存中的隨機位置。關鍵數據可能會被覆蓋(例如程序調用堆棧),從而導致崩潰。重寫數據庫運行時結構也可能會被覆蓋并導致數據庫損壞。

引入錯誤有多容易?實際上,通過切割和粘貼代碼塊的省力實踐,這種錯誤很快就會進入代碼。任何與void指針相關的編輯錯誤,無論是傳遞指向錯誤主機程序變量的指針,還是傳遞指向已分配不足內存的指針,編譯器或中間件都無法檢測到。無論錯誤類型如何,使用void指針傳遞數據條C/C +編譯器和中間件運行時它們檢測錯誤的能力。糾正這些類型的錯誤的努力從最小到最大不等。

自我診斷API

創建更好的數據庫API的潛力?一個捕獲這樣的編程錯誤,并減少API學習曲線啟動?自從80年代首次將函數原型引入C和C ++以來,已經存在:通過利用每個ANSI C/C ++編譯器的函數參數類型檢查能力,創建一個數據感知的編程接口,從而實現自診斷。/p>

函數原型是函數的“簽名”。函數原型聲明函數的名稱,函數的參數(參數)數,每個參數的數據類型以及函數返回值的數據類型。如果函數的實際使用與其簽名不匹配,編譯器將發出錯誤消息,并且必須先糾正違規代碼,然后才能成功編譯程序。

利用現代ANSI C/C ++編譯器的函數原型設計功能要求我們放棄舊的想法,即數據庫編程接口必須是程序員學習的靜態函數庫,然后應用于每個可能的數據庫設計。相反,編程接口必須特定于每個數據庫設計,因此了解每個特定數據庫的數據類型。換句話說,填充模型記錄以強制要求程序員傳遞模型信息的數據庫函數的唯一方法是,該接口是從模型所參與的數據庫設計派生的,也是特定的。

McObject的eXtremeDB是一種用于嵌入式系統的內存數據庫系統(IMDS),它展示了如何將自診斷API應用于嵌入式系統中間件。 eXtremeDB有一個用于通用任務的小型靜態API(打開并建立與數據庫的連接,開始和結束事務等)。但是,大多數接口??關于填充,搜索和讀取數據庫定義中動態生成的數據的部分。

eXtremeDB數據庫用戶使用輸入到文本文件中的eXtremeDB數據庫定義語言(DDL)來描述數據庫。編譯器mcocomp處理此DDL,驗證其語法,如果沒有錯誤,則生成開發人員在其應用程序項目中包含的 .c和 .h文件。 .c和.h文件定義該唯一數據庫的編程接口。

在生成的文件中有函數原型(.h文件)和實現(.c文件)創建,搜索和讀取由數據庫設計者定義的每種類型的類和索引。每個接口都是針對特定數據元素和操作的特定用途的;因此,在接口定義中考慮了元素的類型。

eXtremeDB還建立在利用ANSI C函數原型的基礎上,提供了包含大量(和可配置)運行的數據庫庫的開發人員版本-time檢查函數原型無法檢測到的其他類型的編程錯誤,例如嘗試使用事務范圍之外的對象的句柄,或者使用無效的事務句柄。

直觀的界面可以在項目的開始階段提高程序員的工作效率,并延長軟件的使用壽命。與基于模糊靜態編程接口的非描述性代碼相比,進入項目的維護程序員發現閱讀和理解函數要容易得多。

為每個項目出現一個新界面,非常簡單的規則管理它的產生和使用。掌握生成和使用此類API的基礎知識可以提供比學習靜態中間件API的100到250個功能更強大,更靈活的“生活工具”。

作者:Steven T. Graves,總裁兼首席執行官,McObject LLC,Issaquah,WA

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5082

    文章

    19104

    瀏覽量

    304810
  • 嵌入式系統
    +關注

    關注

    41

    文章

    3587

    瀏覽量

    129436
  • API
    API
    +關注

    關注

    2

    文章

    1499

    瀏覽量

    61962
  • 數據庫
    +關注

    關注

    7

    文章

    3794

    瀏覽量

    64362
收藏 人收藏

    評論

    相關推薦

    新手怎么學嵌入式?

    。但面對這個復雜的領域,很多人可能會感到迷茫,不知從何處入手。別擔心,本文將為你提供一些入門學習嵌入式技術的建議。 新手入門學習嵌入式技術的途徑 1. 了解基礎知識 首先,要對嵌入式系統
    發表于 12-12 10:51

    嵌入式系統開發與硬件的關系 嵌入式系統開發常見問題解決

    嵌入式系統開發與硬件的關系 嵌入式系統是專為特定應用設計的計算機系統,它們通常嵌入在所控制的設備
    的頭像 發表于 12-09 09:38 ?233次閱讀

    嵌入式系統與物聯網的結合

    隨著科技的飛速發展,嵌入式系統和物聯網(IoT)已經成為現代技術領域的重要組成部分。嵌入式系統是指嵌入到設備或
    的頭像 發表于 11-06 10:23 ?281次閱讀

    什么是嵌入式?一文讀懂嵌入式主板

    在現代科技浪潮中,嵌入式技術已成為支撐各種智能設備和系統運行的核心力量。那么,究竟什么是嵌入式嵌入式系統,顧名思義,是將計算機的硬件和軟件
    的頭像 發表于 10-16 10:14 ?923次閱讀

    AMD 面向嵌入式系統推出高能效 EPYC 嵌入式 8004 系列

    領先地位。 ? AMD EPYC 嵌入式 8004 系列處理器專為計算密集型嵌入式系統所設計,可為高需求工作負載提供卓越性能,同時以緊湊的尺寸規格最大限度為空間和功率受限型應用提升能效。它還集成了一整套
    發表于 10-11 13:58 ?714次閱讀

    嵌入式系統的原理和應用

    嵌入式系統是一種專用的計算機系統,其設計初衷是執行特定任務,而非作為通用計算機使用。這類系統通常作為更大系統的一部分,起到控制、監控或輔助的
    的頭像 發表于 10-05 17:03 ?819次閱讀

    嵌入式系統是什么?

    分包含軟件運行環境以及操作系統,硬件部分包含信號處理器、存儲器以及通信模塊等多方面內容。與傳統的計算機系統相比,嵌入式系統與之相差很大,它并不能實現大容量的存儲功能,軟件部分則以
    的頭像 發表于 08-29 16:26 ?366次閱讀

    嵌入式工控主板在智慧醫療診斷設備中的應用

    嵌入式工控主板在智慧醫療診斷設備中的應用廣泛且深入,其高集成度、低功耗、高性能等特點使得它成為現代醫療設備中不可或缺的一部分。以下是對嵌入式工控主板在智慧醫療診斷設備中應用的詳細闡述:
    的頭像 發表于 07-11 10:51 ?409次閱讀
    <b class='flag-5'>嵌入式</b>工控主板在智慧醫療<b class='flag-5'>診斷</b>設備中的應用

    嵌入式系統怎么學?

    嵌入式系統怎么學? 隨著物聯網、智能制造等新技術的興起,嵌入式系統的應用范圍更加廣泛。包括但不限于工業控制、汽車電子、醫療設備、智能家居、智慧城市、消費電子、通信設備等。學習
    發表于 07-02 10:10

    入門嵌入式系統這些知識你知道嗎?

    嵌入式系統是一種專用的計算機系統,作為裝置或設備的一部分。通常,嵌入式系統是一個控制程序存儲在ROM中的
    發表于 05-03 09:54 ?554次閱讀

    再談嵌入式實時操作系統

    由于嵌入式處理器早期功能單一且運算能力不高,嵌入式應用已不能滿足各個領域不斷增長的需求。嵌入式操作系統應運而生,嵌入式操作
    的頭像 發表于 04-09 17:27 ?787次閱讀
    再談<b class='flag-5'>嵌入式</b>實時操作<b class='flag-5'>系統</b>

    嵌入式fpga是什么意思

    嵌入式FPGA是指將FPGA技術集成到嵌入式系統中的一種解決方案。嵌入式系統是一種為特定應用而設計的計算機
    的頭像 發表于 03-15 14:29 ?1243次閱讀

    fpga是嵌入式

    FPGA(現場可編程門陣列)不是嵌入式系統,但FPGA在嵌入式系統中有著重要的應用。
    的頭像 發表于 03-14 17:19 ?2282次閱讀

    嵌入式系統發展前景?

    嵌入式系統發展前景? 嵌入式系統,從定義上來說,是一種專用的計算機系統,它被設計用來控制、監視或者幫助操作一些設備、裝置或機器。在過去的幾年
    發表于 02-22 14:09

    嵌入式系統的應用實例

    嵌入式系統的三個基本要素是嵌入性、專用性與計算機系統
    的頭像 發表于 01-22 09:57 ?1060次閱讀
    主站蜘蛛池模板: 成人网站国产在线视频内射视频| 日韩一级精品久久久久| 娇喘嗯嗯 轻点啊视频福利| WWWXXXX兽交| 67194免费入口| 曰本少妇高潮久久久久久| 国产成人精品永久免费视频 | 成人免费公开视频| 99久久伊人一区二区yy5o99| 小sao货水好多真紧h的视频| 狠狠撩色姣姣综合久久| 国产免费高清mv视频在线观看| 4480YY无码午夜私人影院| 一边亲着一面膜下奶韩剧免费| 亚洲精品视频观看| 亚洲国产AV一区二区三区四区| 欧美性情一线免费http| 欧美日韩亚洲成人| 区一区二视频免费观看| 日韩人妻无码专区一本二本| 色中色入口2015| 乡村教师电影完整版在线观看| 乡村教师电影版| 一个人看的WWW高清电影| 伊人久久青草| 91桃色污无限免费看| WWW国产亚洲精品久久| 单亲妈妈3韩国电影免费观看| 永久免费精品影视网站| 原神美女被超污app| 97视频在线免费| 耽肉高h喷汁呻吟| 国产精品A久久777777| 国内精品一级毛片免费看| 精品国产三级a| 美女快播第一网| 日本一卡2卡3卡四卡精品网站| 无码AV动漫精品一区二区免费| 幺妹视频福利视频| 99久久婷婷国产综合精品青草 | 一品道门免费视频韩国|