那曲檬骨新材料有限公司

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

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

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

系統(tǒng)編程的要點在于管理CPU的時間

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

Michael Barr發(fā)表了一篇題為“5個簡單步驟使嵌入式軟件架構(gòu)更健壯”的博文。Barr曾經(jīng)是《嵌入式系統(tǒng)編程》雜志的主編,因此你應(yīng)該把他當(dāng)作是一個編寫嵌入式代碼的專家,我是這么認(rèn)為的。

在這篇博文中,Barr寫道:
“我收集到的大量的證據(jù)表明,大部分編程人員、技術(shù)經(jīng)理或者團(tuán)隊都不能真正理解一個好的固件架構(gòu)是什么樣的,怎么去實現(xiàn)它,甚至是怎么去識別他們看的架構(gòu)的好壞。這還包括了在團(tuán)隊中最有經(jīng)驗的開發(fā)人員?!?/p>

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

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

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

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

系統(tǒng)編程的要點在于管理CPU的時間

請注意,Barr建議使用專用的硬件來處理實時任務(wù),比如一片F(xiàn)PGA,或者一個專用處理器,他解釋了為什么要這么做:

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

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

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

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

    關(guān)注

    68

    文章

    10905

    瀏覽量

    213035
  • 系統(tǒng)編程
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    6272
收藏 人收藏

    評論

    相關(guān)推薦

    Linux系統(tǒng)編程

    Linux系統(tǒng)編程
    發(fā)表于 03-03 10:26

    什么是Linux系統(tǒng)編程

    什么是Linux系統(tǒng)編程?Linux系統(tǒng)編程也叫Linux下的高級編程,是介于應(yīng)用層和驅(qū)動層之間的。學(xué)習(xí)了哪些知識后可以學(xué)習(xí)Linux系統(tǒng)編程?C語言基礎(chǔ)、Linux基本操作命令怎么學(xué)
    發(fā)表于 12-23 07:30

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

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

    基于LonWorks的在系統(tǒng)編程技術(shù)

    LonWorks 技術(shù)的應(yīng)用使得在系統(tǒng)編程的內(nèi)涵得以更充分的體現(xiàn)。本文在概要介紹ISP 以及LonWorks 技術(shù)的基礎(chǔ)上, 詳細(xì)說明采用基于Neuron 芯片的控制節(jié)點實現(xiàn)對CPLD 進(jìn)行在系統(tǒng)編程的具體
    發(fā)表于 04-16 14:12 ?8次下載

    C語言嵌入式系統(tǒng)編程教程

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

    C語言嵌入式系統(tǒng)編程教程

    C語言嵌入式系統(tǒng)編程教程
    發(fā)表于 01-16 13:54 ?36次下載

    C嵌入式系統(tǒng)編程

    C嵌入式系統(tǒng)編程
    發(fā)表于 10-23 16:27 ?14次下載

    C語言的嵌入式系統(tǒng)編程修煉之道

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

    linux系統(tǒng)編程_中文版

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

    如何通過Atmel Studio 6進(jìn)行系統(tǒng)編程

    如何通過Atmel Studio 6進(jìn)行系統(tǒng)編程
    的頭像 發(fā)表于 07-04 09:50 ?3052次閱讀

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

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

    SLG47004 在系統(tǒng)編程指南

    SLG47004 在系統(tǒng)編程指南
    發(fā)表于 02-02 19:05 ?2次下載
    SLG47004 在<b class='flag-5'>系統(tǒng)編程</b>指南

    為什么我們要掌握Linux系統(tǒng)編程

    為什么我們要掌握Linux系統(tǒng)編程?
    的頭像 發(fā)表于 05-17 10:00 ?910次閱讀

    Linux 系統(tǒng)編程的難點是什么

    對于有一定 Linux 開發(fā)基礎(chǔ)希望進(jìn)階學(xué)習(xí) Linux 系統(tǒng)編程的開發(fā)人員來說,其難點在于,Linux 所囊括的技術(shù)點繁雜,往往不知從何下手。
    發(fā)表于 06-28 12:54 ?672次閱讀

    SLG47004 在系統(tǒng)編程指南

    SLG47004 在系統(tǒng)編程指南
    發(fā)表于 07-04 18:51 ?0次下載
    SLG47004 在<b class='flag-5'>系統(tǒng)編程</b>指南
    百家乐官网英皇娱乐城| 百家乐官网破战| 新时代百家乐的玩法技巧和规则| 赌博百家乐官网经验网| bet365后备网址| 现场百家乐电话投注| 百家乐官网稳赢战术技巧| 肥乡县| 棋牌类单机游戏下载| 网上百家乐真的假的| 百家乐官网娱乐网备用网址 | 百家乐游戏作弊| 真钱百家乐赌博| 百家乐官网赢多少该止赢| 澳门赌博攻略| 百家乐官网扑克片礼服| 凭祥市| 8彩娱乐| 博彩网18good| 大发888合营商| 伯爵百家乐赌场娱乐网规则| 网络百家乐的陷阱| 风水24山头| 立即博百家乐官网的玩法技巧和规则| 百家乐官网筹码币方形| 台北县| 维也纳娱乐城| 大发888真人网址的微博| 大发888娱乐城加速器| 百家乐是个什么样的游戏| 百家乐补第三张牌规则| 百家乐官网翻天粤语版| 百家乐官网1326投注| 电子百家乐官网博彩正网| 百家乐官网巴厘岛平台| 百家乐官网赢钱秘密| 通州市| 百家乐官网中的概率| 哈尔滨百家乐官网赌场| 百家乐官网正确的打法| 专业百家乐官网筹码|