18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

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

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

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

如何將RTOS添加到ZYNQ SoC設(shè)計中

電子工程師 ? 來源:網(wǎng)絡(luò)整理 ? 2018-02-15 05:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在尋求獲得來自處理系統(tǒng)內(nèi)的賽靈思Zynq?-7000全可編程SoC的最大利益,操作系統(tǒng)將讓你更不是一個簡單的裸機解決方案。任何開發(fā)ZYNQ SoC設(shè)計有大量的操作系統(tǒng)可供選擇,并根據(jù)最終應(yīng)用程序,你可以選擇一個實時版本。一個RTOS是您最好的選擇,如果你是在工業(yè),軍事,航空航天或在響應(yīng)時間和可靠的性能要求,以防止生命或傷亡的,或者實現(xiàn)嚴(yán)格的績效目標(biāo)等具有挑戰(zhàn)性的環(huán)境中使用的SoC ZYNQ。

為了得到一個感覺如何最好地實時操作系統(tǒng)添加到我們的ZYNQ SoC系統(tǒng)中,我們將使用最流行的實時操作系統(tǒng)之一左右,在μC/ OS-III Micrium的。這RTOS或更早的版本中它已經(jīng)用在了一些非常令人興奮的系統(tǒng),包括火星的好奇心流動站。目前最新的版本是在被認證為MISRA-C,DO178B A級,SIL3 / 4和IEC61508標(biāo)準(zhǔn),這意味著它應(yīng)該有一個廣泛的吸引力許多ZYNQ SoC的用戶的過程。但在此之前進入的實施細則,這是有幫助的審查實時操作系統(tǒng)的基礎(chǔ)知識。

什么是實時操作系統(tǒng)?

是什么讓一個實時操作系統(tǒng)與標(biāo)準(zhǔn)操作系統(tǒng)有何不同?井,一個實時操作系統(tǒng)是確定性的,這意味著該系統(tǒng)限定的期限內(nèi)進行響應(yīng)。這個決定可以是一個重要的原因,例如,如果最終應(yīng)用正在監(jiān)控工業(yè)過程,并具有以響應(yīng)事件在指定的時間周期內(nèi),如將是一種用于工業(yè)控制系統(tǒng)中的情況。

RTOS進一步細分基于它們來滿足這些最后期限的能力。這種分類產(chǎn)生了三種不同類型的RTOS,其中每一個不同的地址的最后期限的概念。在硬的RTOS,缺少一個期限被看作是一個系統(tǒng)故障。這不是為公司RTOS,其中偶爾錯過截止時間是可以接受的情況。在軟的RTOS,同時,缺少一個期限減少的結(jié)果的有效性,但該系統(tǒng)作為一個整體能容忍此。

實時操作系統(tǒng)圍繞運行的任務(wù)(有時稱為工藝),其每一個執(zhí)行所需功能的概念。例如,一個任務(wù)可能讀取數(shù)據(jù)通過接口或?qū)@些數(shù)據(jù)進行操作。一個簡單的系統(tǒng)可以采用只有一個任務(wù),但它更可能為多個任務(wù),以在處理器上在任一時刻運行。這些任務(wù)之間的切換被稱為“上下文切換”,它要求與每個任務(wù)相關(guān)聯(lián)的處理器的狀態(tài)被存儲和添加到任務(wù)堆棧中。

確定的方法,其任務(wù)是下一個要運行是由內(nèi)核(管理從軟件輸入/輸出請求,并將它們轉(zhuǎn)換成用于所述中央處理單元的數(shù)據(jù)處理的指令和在所述處理器的功能元件的RTOS的核心)來控制。任務(wù)調(diào)度可以是復(fù)雜的,特別是如果我們希望避免死鎖的狀態(tài),其中兩個或多個任務(wù)鎖定彼此出來。的兩個基本方法是時間共享和事件驅(qū)動的。分時,每個任務(wù)獲取處理器上的專用時隙。更高優(yōu)先級的任務(wù)可以被分配多個時隙。此時間片是通過常規(guī)的中斷或定時器控制,并且通常被稱為“round-robin調(diào)度”。隨著一個事件驅(qū)動的溶液,任務(wù)只切換,當(dāng)一個具有較高優(yōu)先級的運行必需的。這通常被稱為“搶占式調(diào)度”。

死鎖,資源共享和饑餓

當(dāng)兩個或多個進程需要使用相同的資源,如UART,ADCDAC-它有可能為他們的同時請求該資源。在這種情況下,訪問需要為了防止?fàn)幱帽豢刂啤_@是如何管理是很重要的。如果沒有正確的管理,問題,如“死鎖”或“饑餓”可能發(fā)生,從而導(dǎo)致系統(tǒng)故障。

死鎖當(dāng)一個進程持有一個資源而無法釋放它發(fā)生,因為它是無法完成的任務(wù)。它要求當(dāng)前正由另一個過程中的另一個的資源。由于該系統(tǒng)將保持在該狀態(tài)下無限期地,該應(yīng)用程序被認為是僵持。你可以想像,僵局是一個實時操作系統(tǒng)發(fā)現(xiàn)自己在一個糟糕的情況。

發(fā)生饑荒時,一個進程無法運行,因為它需要的資源總是分配給另一個進程。

這可能不會令你感到驚訝地聽到,已經(jīng)出現(xiàn)了很多東西寫就這些問題,多年來,有很多提出的解決方案,如德克爾的算法,一個經(jīng)典的修復(fù)程序并發(fā)編程的互斥問題。最常用的方法來處理這些情況下是信號量,這通常是兩種類型的二進制信號和計數(shù)信號量的。

一般地,每個資源有分配給它的一個二進制信號。一個請求進程將等待資源執(zhí)行之前變得可用。一旦任務(wù)完成,請求進程將釋放資源。這些信號量通常被稱為WAIT和SIGNAL操作。一個進程將等待一個信號量。如果資源是自由的,該過程將被考慮到資源的控制,它會運行,直到完成,此時它會SIGNAL完成。然而,如果當(dāng)處理等待對信號執(zhí)行的資源已被占用,則該過程將被掛起,直到資源變得自由。這可以盡快當(dāng)前正在執(zhí)行的處理結(jié)束發(fā)生,但有可能是一個較長的等待,如果這個過程是由較高優(yōu)先級的一個進程搶占。一類特殊的名為互斥體(從術(shù)語“互斥”派生)二進制信號量經(jīng)常被用來防止優(yōu)先級反轉(zhuǎn)。

計數(shù)信號以同樣的方式作為二進制信號量的工作,但它們被使用時,一個特定類型的資源的一個以上的實例是可用的(例如,數(shù)據(jù)存儲)。由于每個資源被分配給一個過程,計數(shù)被減小,以顯示剩余的可用資源的數(shù)量。當(dāng)計數(shù)到達零,有沒有更多的可用資源,并且請求進程將被掛起,直到資源之一被釋放。

它往往是必要的過程來與彼此通信。有多種方法可以采用,這是最簡單的是,如上所述,以使用一個數(shù)據(jù)存儲和信號。更復(fù)雜的技術(shù)包括消息隊列。有了消息隊列,當(dāng)一個進程希望將信息發(fā)送到另一個進程,它發(fā)布消息隊列。當(dāng)一個進程希望從一個隊列中接收消息時,它會掛起隊列。因此,消息隊列工作就像一個FIFO(先入先出)存儲器。

在μC/ OS-III操作系統(tǒng)

Micrium的μC/ OS-III是一個搶占式RTOS,這意味著它會一直運行具有最高優(yōu)先級的準(zhǔn)備執(zhí)行任務(wù)。在將其加入ZYNQ SoC系統(tǒng)設(shè)計的第一步是從Micrium的網(wǎng)站下載了μC/ OS-III的RTOS。一旦你這樣做,安裝非常簡單。你只需要你安裝的Xilinx提取下您的計算機上的幾個ZIP文件到正確的文件夾(目錄)。

請確保您提取名為Zynq-7000-ucosiii-bsp.zip ZIP文件到您的 ISE_DS EDK 軟件 lib目錄 BSP 文件夾中。你會看到一些其他的操作系統(tǒng)這個文件夾下,包括獨立和xilkernel的。接下來,提取名為Zynq-7000-ucosiii-demo.zip ZIP文件到您的 ISE_DS EDK 軟件 lib目錄 sw_apps 文件夾,如圖1。再次,你會看到一些其他的應(yīng)用演示中此文件夾。

圖1:顯示演示文件的位置的目錄結(jié)構(gòu)

無需安裝這兩套文件,我們準(zhǔn)備開始軟件開發(fā)工具包(SDK)中創(chuàng)建我們的項目。我們將使用之前創(chuàng)建相同的基本硬件,但我們需要一個新的應(yīng)用程序和板級支持包(BSP),因為我們希望包括操作系統(tǒng)。

在SDK中,關(guān)閉所有打開的項目,除了基本硬件設(shè)計。接下來,選擇文件>新建>應(yīng)用程序項目的選擇,給新的項目名稱并選擇操作系統(tǒng)μC/ OS-III(見圖2)。然后選擇μC/ OS-III的演示應(yīng)用程序(見圖3)

圖2:選擇操作系統(tǒng)

圖3:選擇μCOS-III演示

當(dāng)你快樂時,單擊Finish按鈕。應(yīng)用程序和板級支持包(如果你選擇該選項)將在SDK中創(chuàng)建。如果您選擇了自動生成選項,你可能會發(fā)現(xiàn)一些錯誤的報道。這是因為不是所有的項目引用是正確的呢。要設(shè)置這些項目引用,您需要導(dǎo)入的演示設(shè)置,你會發(fā)現(xiàn)項目>來源>設(shè)置選項下。在這個XML文件右鍵單擊并查看屬性。這將允許您選擇和復(fù)制該文件的位置,如圖4所示。

圖4:獲取正確的設(shè)置

一旦你復(fù)制這個位置,在項目右鍵單擊并選擇屬性。在標(biāo)題C / C ++一般,選擇路徑和符號的選擇。然后選擇導(dǎo)入設(shè)置和設(shè)置文件的位置粘貼。

同樣重要的是,以確保存儲庫正確指向前面添加的庫。您可以通過設(shè)置賽靈思工具>存儲庫,它應(yīng)該顯示在您的μC/ OS-III BSP以前安裝的位置檢查這些。

因為我們希望使用的UART輸出的狀態(tài)演示,正在顯示出完成初始化和運行任務(wù),則可能需要設(shè)置標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出到UART下的BSP設(shè)置。

經(jīng)執(zhí)行這些操作,你會看到,現(xiàn)在可以建項目。但是,仍然會有一些警告,如果你想在你的硬件上運行這個項目,將無法達到演示指出它應(yīng)該。這是因為警告了未申報的功能。包括bsp.c文件中下面的語句應(yīng)該糾正這個問題。

有一次,我添加了這個“有”頭文件,該項目建成并運行按預(yù)期在我的ZedBoard(見我的YouTube視頻)。#include“xil_cache.h”

啟動和運行

在拿到例如啟動和運行,你現(xiàn)在有信心,RTOS已經(jīng)在系統(tǒng)上正確實施?,F(xiàn)在,您可以繼續(xù)正確地執(zhí)行對ZYNQ SoC的軟件設(shè)計。一旦你創(chuàng)建了軟件應(yīng)用和工程團隊已經(jīng)準(zhǔn)備好嘗試一下硬件,可以在完全相同的方式創(chuàng)建一個編程文件,你會為裸機系統(tǒng)(參見Xcell雜志問題83,“如何配置您的SoC ZYNQ裸機解決方案“),能夠與RTOS的應(yīng)用程序啟動和配置存儲器執(zhí)行。

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

    關(guān)注

    24

    文章

    858

    瀏覽量

    122366
  • 實時操作系統(tǒng)
    +關(guān)注

    關(guān)注

    1

    文章

    205

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    如何在e203 SOC添加自定義外設(shè)

    外設(shè)的基地址和連接e203_soc_top信號使用,并將自定義的外設(shè)正確實例化在此對外接口口模塊。 3、在e203_soc_top中正確實例化第2步的對外接口模塊 4、在syst
    發(fā)表于 10-20 10:38

    rt_printf相關(guān)組件怎么添加?

    查詢到printf相關(guān)兩個組件,點擊添加時提示如圖,請教如何添加到項目中。
    發(fā)表于 10-09 07:24

    如何將“同步scons 配置至項目”功能添加到編譯步驟

    我想將rt-thread studio的“同步scons配置至項目”功能添加到編譯前步驟 但是我不知道這個功能執(zhí)行了什么指令,在構(gòu)建前步驟應(yīng)該輸入什么指令,用”scons”命令無法實現(xiàn)
    發(fā)表于 09-22 07:39

    如何移除意外添加到項目中或不再需要的板級標(biāo)注

    在原理圖文檔調(diào)用 Board Level Annotation Command 時,項目目錄中會創(chuàng)建一個特殊文件,文件名包含項目名稱及 .ANNOTATION 擴展名。此文件一旦創(chuàng)建,會影響標(biāo)識符的顯示和處理方式。目前無法通過自動化方式移除該文件,本文向您展示如何手動
    的頭像 發(fā)表于 08-25 11:11 ?766次閱讀

    VScode使用STM32CUBE CLT如何添加靜態(tài)庫.a文件到工程

    我使用VScode搭配ST的插件基于Cmake來編譯和調(diào)試程序,我感覺非常方便。但是遇到一個問題,我不知道如何把.a后綴的靜態(tài)庫文件添加到工程。有沒有大佬可以幫忙解決一下。
    發(fā)表于 08-12 07:36

    在樹莓派5上,如何使用毫米波雷達檢測和追蹤人類?

    在本指南中,我們學(xué)習(xí)如何將RD-03D雷達傳感器添加到樹莓派單板計算機上,以便實時檢測和追蹤人類。我們將了解該傳感器的工作原理及可獲取的數(shù)據(jù)、如何將其連接到樹莓派并讀取數(shù)據(jù),還會用它
    的頭像 發(fā)表于 07-24 15:32 ?1637次閱讀
    在樹莓派5上,如何使用毫米波雷達檢測和追蹤人類?

    ArkUI-X添加到現(xiàn)有Android項目中

    aar包 在應(yīng)用工程初始化ArkUI-X 通過Android studio 創(chuàng)建一個應(yīng)用工程,將我們上述的aar包添加到工程目錄下的libs目錄 Application部分 繼承調(diào)用
    發(fā)表于 06-04 22:35

    ArkUI-X添加到現(xiàn)有Android項目中

    aar包 在應(yīng)用工程初始化ArkUI-X 通過Android studio 創(chuàng)建一個應(yīng)用工程,將我們上述的aar包添加到工程目錄下的libs目錄 Application部分 繼承調(diào)用
    發(fā)表于 05-28 22:44

    如何將VCP功能添加到UVC應(yīng)用程序代碼?

    我正在嘗試 VCP 功能添加到 UVC 應(yīng)用程序代碼。 我的平臺是CYUSB3011-BZXC UsbUart 示例代碼已添加到現(xiàn)有的 UVC 應(yīng)用程序
    發(fā)表于 05-16 06:41

    如何將ENWF9408AVEF Wi-Fi模塊添加到1064EVK wifi_cli SDK項目中?

    如何將 松下 ENWF9408AVEF (NXP 88W8977) Wi-Fi 模塊添加到 1064EVK wifi_cli SDK 項目中? 使用不同的 88W8977 定義初始化失敗
    發(fā)表于 04-02 07:50

    如何將項目從IAR遷移到Embedded Studio

    本文描述如何將IAR EWARM項目遷移到SEGGER Embedded Studio(簡稱SES)。
    的頭像 發(fā)表于 02-25 17:11 ?895次閱讀
    <b class='flag-5'>如何將</b>項目從IAR遷移到Embedded Studio

    解析PCIe 6.0的正交頭內(nèi)容(OHC)

    在引入 Flit 模式后,TLP Header 的信息進行了重新調(diào)整。除基本包頭外,還可以正交頭內(nèi)容 (OHC) 添加到 TLP 。OHC 作為 TLP 的額外包頭,包含 TLP
    的頭像 發(fā)表于 02-18 13:55 ?1323次閱讀
    解析PCIe 6.0<b class='flag-5'>中</b>的正交頭內(nèi)容(OHC)

    如何將python文件導(dǎo)入到ROS系統(tǒng)

    本文通過使用myCobot機械臂進行QR碼視覺追蹤的實踐案例分析,介紹如何將 python 文件導(dǎo)入到 ROS 系統(tǒng)。
    的頭像 發(fā)表于 02-11 11:08 ?1086次閱讀
    <b class='flag-5'>如何將</b>python文件導(dǎo)入到ROS系統(tǒng)<b class='flag-5'>中</b>

    KiCad 7添加網(wǎng)絡(luò)類(一)

    “ ?網(wǎng)絡(luò)類用于特定目的的網(wǎng)絡(luò)分組,以便快速查看、分配設(shè)計規(guī)則等操作,比如可以12V、5V、3.3V、GND等網(wǎng)絡(luò)添加到Power網(wǎng)絡(luò)類,然后為Power網(wǎng)絡(luò)類定義獨立的線寬、間距規(guī)則
    的頭像 發(fā)表于 11-12 12:21 ?2246次閱讀
    KiCad 7<b class='flag-5'>中</b><b class='flag-5'>添加</b>網(wǎng)絡(luò)類(一)

    KiCad 7添加網(wǎng)絡(luò)類(二)

    “ ?網(wǎng)絡(luò)類用于特定目的的網(wǎng)絡(luò)分組,以便快速查看、分配設(shè)計規(guī)則等操作,比如可以12V、5V、3.3V、GND等網(wǎng)絡(luò)添加到Power網(wǎng)絡(luò)類,然后為Power網(wǎng)絡(luò)類定義獨立的線寬、間距規(guī)則
    的頭像 發(fā)表于 11-12 12:21 ?2128次閱讀
    KiCad 7<b class='flag-5'>中</b><b class='flag-5'>添加</b>網(wǎng)絡(luò)類(二)