精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

系統編程的要點在于管理CPU的時間

Xilinx賽靈思官微 ? 來源:djl ? 作者:賽靈思Steve Leibso ? 2019-07-24 14:54 ? 次閱讀

Michael Barr發表了一篇題為“5個簡單步驟使嵌入式軟件架構更健壯”的博文。Barr曾經是《嵌入式系統編程》雜志的主編,因此你應該把他當作是一個編寫嵌入式代碼的專家,我是這么認為的。

在這篇博文中,Barr寫道:
“我收集到的大量的證據表明,大部分編程人員、技術經理或者團隊都不能真正理解一個好的固件架構是什么樣的,怎么去實現它,甚至是怎么去識別他們看的架構的好壞。這還包括了在團隊中最有經驗的開發人員。”

隨后,Barr的博文給出了開發穩定的嵌入式固件架構的5個步驟程序。
1.確定需求
2.把架構從設計中區分出來
3.管理CPU時間
4.測試設計
5.為改變做計劃

整篇博文值得花時間去閱讀,但在這里我想要聚焦在第3步:管理CPU時間,Barr寫道:

“大部分產品都是把非實時、軟件實時和硬件實時的需求混合到一起。軟件的時間限制通常最具挑戰性,要以一種明確的方式去定義、測試和實施。舉個例子,在機頂盒設計中,偶爾丟掉一幀視頻數據可能是可以接受的,但是不能連續丟掉超過兩幀,并且不能丟掉任何音頻數據,音頻數據是包括在相同的數字輸入數據流中,處理軟件時間限制的最簡單的方法是把它們作為硬件時間限制一樣對待,必須滿足。

一旦識別了時間限制,在體系結構上,第一步要做的是把盡可能多的有時間要求的需求從軟件中分離出來,放到硬件中去處理。圖1展示了實時功能的處理方式的優先級排序。如圖所示,處理實時功能最理想的地方是在一片FPGA或者一個專用的CPU中(不考慮時間限制的長度)。只有當不可能這樣做的時候,才會去選擇中斷服務程序(ISR),當一個ISR也不能使用的時候,就應該選擇使用一個高優先級的任務。”

系統編程的要點在于管理CPU的時間

請注意,Barr建議使用專用的硬件來處理實時任務,比如一片FPGA,或者一個專用處理器,他解釋了為什么要這么做:

“首先,因為這樣簡化了非實時軟件的設計和實現,在架構上把有時間要求的需求從大量的軟件中剝離出來,這樣可以使用新手編寫的代碼,而不會影響到用戶安全性。把實時功能放到一起的另一個好處是,可以簡化關于驗證所有的時間限制都能滿足的分析過程。”

Barr是在Xilinx公布Zynq SoC之前寫下這些話的,但他也許應該寫的更直接一些。Zynq SoC的可編程邏輯(PL)恰好就是你需要的這種資源,可以用來實現自定義的硬件,處理硬件實時需求,包括那些需要用到一些專用I/O的任務,就象Adam Taylor在今天發表的博文中描述的那樣,” 亞當泰勒玩轉MicroZed連載34:用MicroZed驅動Adafruit RGB NeoPixel LED陣列…”,在這個簡單的例子中,使用Zynq SoC 中的PL硬件邏輯為Adafruit NeoPixel LED條實現了一個專用的串行驅動器。如果你需要做一些更復雜的事情,那么可以有多種途徑來使用Zynq PL,你可以在Zynq 的PL中例化復雜的硬件模塊,包括存儲器控制器以太網MAC、DSP模塊以及很多其它類型的硬件模塊,這些模塊可以是商業IP,也可以是你自己用Verilog、VHDL開發的模塊,或者是用Vivado HLS從C/C++代碼綜合轉換而來的設計。

如果出于某些原因,你的系統在實時性方面需要做得異常復雜,那么可以考慮使用多核設計,多核Zynq SoC有兩個ARM Cortex-A9 MPCore處理器,工作頻率可以超過1GHz。如果需要,你可以使用其中一個ARM處理器內核來處理實時代碼和實時操作系統(RTOS),另一個ARM處理器內核可以運行那些不需要或者不能夠實時工作的代碼(在這里閱讀“Linux,” GUI, 和apps)。

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

    關注

    68

    文章

    10827

    瀏覽量

    211167
  • 系統編程
    +關注

    關注

    0

    文章

    8

    瀏覽量

    6241
收藏 人收藏

    評論

    相關推薦

    Linux系統編程

    Linux系統編程
    發表于 03-03 10:26

    什么是Linux系統編程

    什么是Linux系統編程?Linux系統編程也叫Linux下的高級編程,是介于應用層和驅動層之間的。學習了哪些知識后可以學習Linux系統編程?C語言基礎、Linux基本操作命令怎么學
    發表于 12-23 07:30

    時間管理和定時器編程基本知識匯總

    Linux系統編程第08期:時間管理和定時器編程 6年嵌入式開發經驗,在多家...
    發表于 12-23 08:32

    基于LonWorks的在系統編程技術

    LonWorks 技術的應用使得在系統編程的內涵得以更充分的體現。本文在概要介紹ISP 以及LonWorks 技術的基礎上, 詳細說明采用基于Neuron 芯片的控制節點實現對CPLD 進行在系統編程的具體
    發表于 04-16 14:12 ?8次下載

    C語言嵌入式系統編程教程

    C語言嵌入式系統編程教程 不同于一般形式的軟件編程,嵌入式系統編程建立在特定的硬件平臺上,勢必要求其編程語言具備較強的硬件直接操作能力。無疑
    發表于 02-10 10:33 ?200次下載

    C語言嵌入式系統編程教程

    C語言嵌入式系統編程教程
    發表于 01-16 13:54 ?36次下載

    C嵌入式系統編程

    C嵌入式系統編程
    發表于 10-23 16:27 ?14次下載

    C語言的嵌入式系統編程修煉之道

    C語言的嵌入式系統編程修煉之道
    發表于 10-24 08:36 ?29次下載
    C語言的嵌入式<b class='flag-5'>系統編程</b>修煉之道

    linux系統編程_中文版

    linux系統編程_中文版
    發表于 10-29 10:17 ?0次下載
    linux<b class='flag-5'>系統編程</b>_中文版

    如何通過Atmel Studio 6進行系統編程

    如何通過Atmel Studio 6進行系統編程
    的頭像 發表于 07-04 09:50 ?2979次閱讀

    EE-125:ADSP-218x嵌入式系統軟件管理和在系統編程(ISP)

    EE-125:ADSP-218x嵌入式系統軟件管理和在系統編程(ISP)
    發表于 05-18 16:37 ?10次下載
    EE-125:ADSP-218x嵌入式<b class='flag-5'>系統</b>軟件<b class='flag-5'>管理</b>和在<b class='flag-5'>系統編程</b>(ISP)

    SLG47004 在系統編程指南

    SLG47004 在系統編程指南
    發表于 02-02 19:05 ?0次下載
    SLG47004 在<b class='flag-5'>系統編程</b>指南

    為什么我們要掌握Linux系統編程

    為什么我們要掌握Linux系統編程
    的頭像 發表于 05-17 10:00 ?842次閱讀

    Linux 系統編程的難點是什么

    對于有一定 Linux 開發基礎希望進階學習 Linux 系統編程的開發人員來說,其難點在于,Linux 所囊括的技術點繁雜,往往不知從何下手。
    發表于 06-28 12:54 ?604次閱讀

    SLG47004 在系統編程指南

    SLG47004 在系統編程指南
    發表于 07-04 18:51 ?0次下載
    SLG47004 在<b class='flag-5'>系統編程</b>指南