在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

蜂鳥FPGA開發板及蜂鳥JTAG下載器講解說明:移植FreeRTOS

HOkf_real_farme ? 來源:lq ? 2019-01-02 15:06 ? 次閱讀

1 RTOS 簡述

實時操作系統(RTOS)是指當外界事件或者數據產生時,能夠接受并以足夠快的速度予以處理,處理的結果又能在規定的時間內來控制生產過程或對處理系統能夠做出快速響應,調度一切可利用的資源完成實時任務,并控制所有實時任務協調一致運行的操作系統。主要特點是提供及時響應和考可靠性。

在服務器、個人電腦手機上運行的操作系統,譬如Windows和Linux,強調在一處理器上能運行更多任務。此類操作系統的代碼均具有一定規模,并且不一定能保證實時性。而對于處理器硬件資源有限,對實時性又有特殊要求的嵌入式應用領域,就需要一種代碼規模適中,實時性好的操作系統。

實時性可以分為硬實時和軟實時。硬實時的功能是必須在給定時間內完成操作,如果不能完成將可能導致嚴重后果。比如汽車安全氣囊觸發機制就是一個很好的硬實時的例子,在撞擊后安全氣囊必須在給定時間內彈出,如果響應時間超出給定時間,可能使駕駛員受到嚴重傷害。

對于軟實時,一個典型的實例是IPTV數字電視機頂盒,需要實時的解碼視頻流,如果丟失了一個或幾個視頻幀,視頻品質也不會相差多少。軟實時系統從統計角度來說,一個任務有確定的執行時間,事件在截止時間到來之前也能得到處理,即使違反截止時間也不會帶來致命的錯誤。

2 常用實時操作系統概述

常用的實時操作系統(RTOS)有以下幾種:FreeRTOSVxWorks、uc/os-II、uclinuxeCos、RT-Thread和SylixOS等。下面分別對這幾種RTOS進行介紹說明。

SylixOS:

— — 翼輝SylixOS實時操作系統是一款功能全面、穩定可靠、易于開發的國產實時系統平臺。其解決方案覆蓋網絡設備、國防安全、工業自動化、軌道交通、電力、醫療、航空航天等諸多領域。SylixOS是國內唯一一款支持SMP的大型實時操作系統。翼輝開發嵌入式操作系統SylixOS始于2006年,至今在軍工領域已有眾多項目或產品基于SylixOS進行開發,例如雷達、彈載飛控系統、星載任務計算機、機載火控系統、計重收費與超限檢測儀、火災報警系統、特種車輛與船用發動機狀態顯示器、潛艇蓄電池監控系統、輪式裝甲車實時監控系統等,其中大部分產品都要求7*24小時不間斷運行,當前很多SylixOS系統節點已不間斷運行超過5萬小時(6年)。

RT-Thread:

— — RT-Thread是一款主要由中國開源社區主導開發的開源實時操作系統(許可證GPLv2)。實時線程操作系統不僅是一個單一的實時操作系統內核,它也是一個完整的應用系統,包含了實時、嵌入式系統相關的各個組件:TCP/IP協議棧、文件系統、libc接口、圖形用戶界面等。RT-Thread擁有良好的軟件生態,支持市面上所有主流的編譯工具如GCC、Keil、IAR等,工具鏈完善、友好,支持各類標準接口,如POSIX、CMSIS、C++應用環境、Javascript執行環境等,方便開發者移植各類應用程序。商用支持所有主流MCU架構,如ARMCortex-M/R/A、MIPS、X86、Xtensa、Andes、C-Sky、RISC-V,幾乎支持市場上所有主流的MCU和Wi-Fi芯片

FreeRTOS:— —有關FreeRTOS見第3章。

VxWorks:

— — 由美國WindRiver公司于1983年推出的一款實時操作系統。由于其良好的持續發展能力,高性能內核以及友好的開發環境,因此在嵌入式系統領域占有一席之地。VxWorks由400多個相對獨立、短小精悍的目標模塊組成,用戶可根據需要進行配置和裁剪,在通信、軍事、航天、航空等領域應用廣泛。

uc/os-II:

— —前身是uc/os,最早由1992年美國嵌入式專家Jean J.Labrosse在《嵌入式系統編程》雜志上發表,其主要特點有公開源代碼,代碼結構清晰明了,注釋詳盡,組織有條理,可移植性好,可裁剪,可固化。

Uclinux:

— — 是由Lineo公司主推的開放源代碼的操作系統,主要針對目標處理器沒有存儲管理單元的嵌入式系統而設計的。Uclinux從Linux2.0/2.4內核派生而來,擁有Linux的絕大部分特性,通常用于內存很少的嵌入式操作系統。其主要特點有體積小、穩定、良好的移植性、優秀的網絡功能等。

eCos:

— — 含義為嵌入式可配置操作系統,主要用于消費電子、電信、車載設備、手持設備等低成本和便攜式應用。其最顯著的特點為可配置性,可以在源碼級別實現對系統的配置和裁剪,還可安裝第三方組件擴展系統功能。

3 FreeRTOS 簡介

由于RTOS需要占用一定系統資源,只有少數RTOS支持在小內存的MCU上運行,FreeRTOS是一款迷你型實時操作系統內核,功能包括:任務管理、時間管理、信號量、消息隊列、內存管理等功能,可基本滿足較小系統的需要。相對于VxWorks、uc/os-II等商業操作系統,FreeRTOS完全免費,具有源碼公開、可移植、可裁剪、任務調度靈活等特點,可以方便地移植到各種MCU上運行,其突出的特性如下。

免費開源。完全可以放心作為商業用途。

文檔資源齊全。在FreeRTOS官網上能下載到內核文件及詳細的介紹資料

安全性高。SafeRTOS基于FreeRTOS而來,經過安全認證的RTOS,近年來在歐美較為流行,支持搶占式和合作式任務切換模式,代碼精簡,核心由3個C文件組成,可支持65536個任務。因此其開源免費版本FreeRTOS在安全性方面也應該擁有一定保障。

市場使用率高。從2011年開始,FreeRTOS市場使用率持續高速增長,根據EEtimes雜志市場報告顯示,FreeRTOS使用率名列前茅,如圖3-1所示,2017年FreeRTOS市場占有率為20%,排名第二。

內核文件簡單。內核相關文件僅由3個C文件組成,全部圍繞任務調度展開,功能專一,便于理解與學習。

圖3-1 2017年各種操作系統的使用數量統計

4 蜂鳥E203移植FreeRTOS

本節介紹如何在HBird-E-SDK環境下移植一個簡單的FreeROTS示例。用戶可以以此為基礎進行豐富和完善,開發更多的復雜示例。

有關HBird-E-SDK環境的快速上手請參見《蜂鳥E203快速上手介紹》,有關HBird-E-SDK系統性的詳細介紹請參見中文書籍《RISC-V架構與嵌入式開發入門指南》的第11章。

4.1HBird-E-SDK中FreeRTOS程序代碼結構

在HBird-E-SDK環境中,FreeRTOS示例程序的相關代碼結構如下所示。

Makefile為主控制腳本,其代碼片段如下:

4.2FreeRTOS原理和移植介紹

由于RTOS需要占用一定系統資源,只有少數RTOS支持在小內存的MCU上運行,FreeRTOS是一款迷你型實時操作系統內核,功能包括:任務管理、時間管理、信號量、消息隊列、內存管理等功能,可基本滿足較小系統的需要。相對于VxWorks、uc/os-II等商業操作系統,FreeRTOS完全免費,具有源碼公開、可移植、可裁剪、任務調度靈活等特點、可以方便地移植到各種MCU上運行。

4.2.1RTOS操作系統的基本原理

傳統裸機程序是一個大while循環,將所有事情看作一個任務,順序執行代碼,遇到中斷發生則響應中斷(可能發生中斷嵌套),響應完中斷后會繼續之前被中斷的任務,其過程如圖4-1所示。

圖4-1 裸機程序的過程

而在RTOS中,將所有事情分成各個模塊,每一個模塊的內容看作一個任務,任務的執行順序是靈活的,根據相應的調度算法管理任務的運行,靈活性比裸機程序強,其過程如圖4-2所示。

圖4-2 RTOS程序的過程

FreeRTOS中的調度算法分為時間片調度算法和搶占式調度,在FreeRTOS的FreeRTOSConfig.h文件中配置如下:

即使不配置configUSE_TIME_SLICING為1,FreeRTOS也會默認開啟時間片調度。時間片調度算法和搶占式調度的特點簡述如下:

時間片調度算法:每一個任務給予固定的執行時間,時間結束后進入調度器,由調度器切換到下一個任務,在默認所有任務優先級相同情況下,輪流執行所有任務。

搶占式調度需要設置任務優先級,在進入調度器后,調度器選擇處于就緒態中優先級最高的任務作為下一個執行的任務。高優先級任務可以搶占低優先級任務,發生搶占時需要有能進入調度器的操作,調度器是任務切換的唯一實體。

4.2.2 FreeRTOS源碼解析和移植介紹

在HBird-E-SDK環境中,FreeRTOS源代碼和蜂鳥E203移植相關的代碼結構如下所示。

如上所示,FreeRTOS的代碼層次結構分明,用戶只需要修改三個文件名為“port*”的源代碼,完成基本的中斷和異常的底層移植,即可完成對于FreeRTOS的移植。

蜂鳥E203移植FreeRTOS操作系統時,實現固定時間切換任務的操作由內核自帶的mtime計時器中斷支持,可以設置為每隔一個固定的時間段發生一次計時器中斷(稱之為System Tick),在中斷處理函數中進入調度器切換下一個任務。在port.c文件中mtime計時器設置代碼如下:

更多移植代碼詳情,請用戶自行參見三個文件名為“port*”的源代碼。

4.2.3任務與中斷的關系

FreeRTOS的任務和中斷的優先級關系是移植FreeRTOS的難點,需要被正確的理解,否則程序會運行出錯:

任務總是可以被中斷打斷,任務之間具有的優先級,但是與“中斷的優先級”沒有關系,這兩種優先級是相互獨立的。

不調用任何FreeRTOSAPI函數的中斷,可以設置為任意的“中斷優先級”,并且允許嵌套。

在FreeRTOSConfig.h中預先定義configMAX_SYSCALL_INTERRUPT_PRIORITY的值,調用API函數的中斷優先級只能設置為不大于該值,支持嵌套,但是會被內核延遲。

關于FreeRTOS的任務優先級和中斷優先級如何設置,以及FreeRTOS的更多詳細信息,請用戶自行查閱相關FreeRTOS手冊學習。

4.3運行FreeRTOS

FreeRTOS示例可運行于HBird-E-SDK環境中,使用《蜂鳥E203快速上手介紹》中描述的運行方法按照如下步驟運行:

// 注意:確保在HBIRD-E-SDK中正確的安裝了RISC-V GCC工具鏈,請參見《蜂鳥E203快速上手介紹》了解其詳情。

// 步驟一:參照《蜂鳥E203快速上手介紹》中描述的方法,編譯FreeRTOS示例程序,使用如下命令:

make software PROGRAM=FreeRTOSv9.0.0NANO_PFLOAT=0

// 步驟二:參照《蜂鳥E203快速上手介紹》中描述的方法,將編譯好的FreeRTOS程序下載至FPGA原型開發板中,使用如下命令:

make upload PROGRAM=FreeRTOSv9.0.0

// 步驟三:參照《蜂鳥E203快速上手介紹》中描述的方法,在FPGA原型開發板上運行FreeRTOS程序:

// 由于示例程序將需要通過UART打印結果到主機PC的顯示屏上。參考《蜂鳥E203快速上手介紹》所述方法將串口顯示電腦屏幕設置好,使得程序的打印信息能夠顯示在電腦屏幕上。由于步驟二已經將程序燒寫進FPGA開發板的Flash之中,因此每次按MCU開發板的RESET按鍵,則處理器復位開始執行FreeRTOS程序,并將RISC-V字符串打印至主機PC的串口顯示終端上。

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

    關注

    1629

    文章

    21736

    瀏覽量

    603251
  • 操作系統
    +關注

    關注

    37

    文章

    6820

    瀏覽量

    123327
  • 開發板
    +關注

    關注

    25

    文章

    5047

    瀏覽量

    97442

原文標題:蜂鳥FPGA開發板全知道篇4:移植FreeRTOS

文章出處:【微信號:real_farmer,微信公眾號:硅農亞歷山大】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【龍芯2K0300蜂鳥試用】龍芯2K0300蜂鳥開發板上電測試!

    龍芯2K0300蜂鳥開發板收到后讓我很驚艷,龍芯2K0300蜂鳥開發板板子小巧,布局非常合理,而且板子做的非常漂亮,集成度非常高,功能也很全。 該系統是專為嵌入式領域打造的解決方
    發表于 09-05 20:46

    【龍芯2K0300蜂鳥試用】龍芯2K0300蜂鳥開發板開發環境搭建

    ://www.loongson.cn/ 龍芯技術社區: http://www.loongnix.cn/zh/ 2K0300蜂鳥開發板資料 更多資料從網盤下載 網盤鏈接 https://pan.baidu.com/s/1qMp1M
    發表于 09-05 21:16

    【作品合集】龍芯2K0300蜂鳥開發板試用精選

    】+4.libmodbus移植【龍芯2K0300蜂鳥試用】+3.移植lua到loongarch【龍芯2K0300蜂鳥
    發表于 09-10 18:17

    第二章:龍芯2K0300蜂鳥資料下載說明

    片 |--開發板實物圖.png蜂鳥整體頂視照片 |--開發板實物圖1.png蜂鳥整體底視照片
    發表于 09-11 17:30

    【MYMINIEYE Runber蜂鳥開發版免費試用連載】國產FPGA試用評測之MYMINIEYE Runber蜂鳥開發板

    本帖最后由 卿小小_9e6 于 2020-7-30 12:34 編輯 項目名稱:國產FPGA試用評測之MYMINIEYE Runber蜂鳥開發板試用計劃:1.項目名稱《國產FPGA
    發表于 07-16 10:20

    【MYMINIEYE Runber蜂鳥開發版免費試用連載】高云FPGA開箱

    `收到了發燒友寄來的蜂鳥開發板,板子小巧精致比普通名片還要略小,美中不足的一點就是板子沒有預留銅柱孔,方便安裝銅柱。可以看到板子正面放置了FPGA芯片,數碼管,撥碼開關,LED和按鍵等,基本滿足了
    發表于 07-26 00:29

    【RSIC-V】Lab1:蜂鳥e203上手教程

    下載到Perf-V,但由于FPGA掉電后剛剛下載的bit文件會丟失,所以開發板一旦掉電后,程序也隨之消失,還需要再次下載,為了方便可以繼續進
    發表于 08-02 13:47

    【RSIC-V】Lab1:蜂鳥e203上手教程

    下載到Perf-V,但由于FPGA掉電后剛剛下載的bit文件會丟失,所以開發板一旦掉電后,程序也隨之消失,還需要再次下載,為了方便可以繼續進
    發表于 08-25 14:31

    Ubuntu環境下將蜂鳥e203的hello_world例程下載開發板上,遇到JTAG問題求解答

    我想Ubuntu環境下將蜂鳥e203的hello_world例程下載開發板上,之前成功下載過程序,但是最近同樣的步驟一直遇到JTAG問題,
    發表于 08-12 07:05

    蜂鳥E203移植ZYNQ7000開發板調試打印hellowaord亂碼怎么解決?

    移植蜂鳥E203到zynq 保留GPIOA模塊,用gpio16和gpio17做串口uart的RX和TX.用Nucleistidio里面模板的helloworld建工程后,下載開發板
    發表于 08-12 07:49

    FreeRTOS移植MAPS-K22開發板

    FreeRTOS移植MAPS-K22開發板,本文以MAPS-K22開發板為例,介紹了將FreeRTOS
    發表于 12-24 16:39 ?4次下載

    蜂鳥FPGA開發板JTAG下載詳細說明

    為了便于初學者能夠快速地學習RISC-V CPU設計和RISC-V嵌入式開發蜂鳥E203開源MCU原型SoC定制了基于Xilinx FPGA的專用開發板和專用
    的頭像 發表于 11-12 17:10 ?2.1w次閱讀

    蜂鳥FPGA開發板蜂鳥JTAG下載講解說明

    perips目錄主要用于存放各種外設(Peripherals)模塊的Verilog RTL代碼,譬如GPIO,UART,SPI等。大部分的Peripherals的Verilog RTL代碼是直接復制于SiFive的Freedom E310項目中Chisel語言生成的出的Verilog RTL代碼,在此基礎上將其TileLink總線接口修改成了ICB總線接口,如圖3-5中所示的GPIO模塊ICB總線接口。
    的頭像 發表于 11-26 17:23 ?1.1w次閱讀
    <b class='flag-5'>蜂鳥</b><b class='flag-5'>FPGA</b><b class='flag-5'>開發板</b>及<b class='flag-5'>蜂鳥</b><b class='flag-5'>JTAG</b><b class='flag-5'>下載</b><b class='flag-5'>器</b><b class='flag-5'>講解說明</b>

    移植FreeRTOS到STM32開發板上的工程文件和源代碼免費下載

    本文檔的主要內容詳細介紹的是移植FreeRTOS到STM32開發板上的工程文件和源代碼免費下載
    發表于 01-07 08:00 ?16次下載
    <b class='flag-5'>移植</b><b class='flag-5'>FreeRTOS</b>到STM32<b class='flag-5'>開發板</b>上的工程文件和源代碼免費<b class='flag-5'>下載</b>

    蜂鳥FPGA開發板JTAG調試介紹

    開發板(在本文中將其簡稱為“FPGA開發板”)和專用 JTAG 調試(在本文中將其簡稱為“JTAG
    發表于 03-23 10:00 ?41次下載
    <b class='flag-5'>蜂鳥</b><b class='flag-5'>FPGA</b><b class='flag-5'>開發板</b>和<b class='flag-5'>JTAG</b>調試<b class='flag-5'>器</b>介紹
    主站蜘蛛池模板: 国产热视频| 日日干夜夜操s8| 波多野结衣久久国产精品| www天天干| 中文天堂| 四虎国产欧美成人影院| 欧美色图亚洲激情| 国产特黄一级片| 永久免费在线播放| 免费一级黄| 成人欧美一区二区三区白人| 久久99热久久精品| 色一区二区| 国模精品一区二区| 亚洲第一永久在线观看| 国产98在线传媒在线视频| 女攻各种play男受h| 色网站欧美| 亚洲第一免费视频| 视频在线二区| 手机天堂网| 午夜影视剧场| 成人欧美网站| 欧美色视频在线观看| 欧美精品xxxxbbbb| 亚洲免费网站在线观看| 亚洲毛片网站| 美女网站一区二区三区| 亚洲午夜一区| 无遮挡很污很爽很黄的网站| 永久免费看mv网站入口| 美女被拍拍拍拍拍拍拍拍| 久久天天| 在线毛片网| 久久两性视频| 欧美成人免费午夜全| 一级特黄aa毛片免费观看| www.亚洲综合| 欧美猛性| 色婷婷精品| 伊人福利视频|