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

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

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

3天內不再提示

支持RT-Thread操作系統的NIOS II CPU系統搭建過程詳解

RTThread物聯網操作系統 ? 2017-12-04 18:15 ? 次閱讀

實驗說明

本節說明了如何基于在Qsys中搭建支持RT-Thread操作系統的基本NIOS II處理器系統,并在此基礎上實現創建2個LED閃爍的靜態線程的示例。RT-Thread操作系統版本:3.0軟件版本:Quartus II 13.0開發環境:Windows7 64位旗艦版硬件平臺:小梅哥AC620 FPGA開發板嵌入式處理器:NIOS II

操作步驟

搭建支持RT-Thread操作系統的NIOS II CPU系統

在Qsys中搭建能夠支持RT-Thread操作系統的NIOS II 處理器系統,除了必要的NIOS II處理器、RAM存儲器(片上RAM、SRAM、SDRAM、DDR2)、FLASH存儲器(EPCS)外,為了支持RT-Thread操作系統的運行,還需要添加UART串口外設、定時器外設、以及為了使系統能夠工作在較高的頻率,而添加PLL鎖相環。同時,為了能夠驅動LED燈,還需要根據實際硬件情況添加一定位寬的輸出型PIO以驅動LED燈。本系統主要包含以下外設:

PLL 時鐘管理單元,輸出2路相位相差90°的時鐘,一路提供給系統內所有邏輯使用,一路輸出到SDRAM芯片的clk管腳上。(相位為-90°)

NIOS II 處理器 ,選擇f(快速)版本,其他默認。

SDRAM控制器,16位數據位寬,12位行地址,9位列地址,用作NIOS II的數據和指令存儲器

EPCS控制器,用以掉電存儲FPGA和NIOS II的軟硬件固件信息

UART(RS232)控制器,用作系統標準輸入輸出設備,默認115200波特率

Timer定時器,設置默認10毫秒定時器,并可通過軟件修改寄存器以修改定時時間。

PIO,僅輸出型PIO,4位,對應開發板上4個LED燈

下圖為搭建好的最小NIOS II應用系統

其中需要注意的是,驅動LED的PIO為4位,并直接命名為了led,uart串口被命名為了RS232,這是為了與RT-Thread官方提供的NIOS II的BSP文件中相關代碼相對應。

NIOS II CPU相關設置

定時器參數設置

UART控制器相關設置

LED PIO相關設置

在Quartus II工程中例化CPU系統

設計頂層文件

將Qsys中搭建的系統命名為mysystem,然后generate得到HDL文件,在Quartus II軟件中添加mysystem.qsys文件,新建Verilog文件,完善頂層例化信息,完善后的代碼如下所示:

module ac620_ghrd( input wire reset_n, input wire clk, output wire [11:0] sdram_addr, output wire [1:0] sdram_ba, output wire sdram_cas_n, output wire sdram_cke, output wire sdram_clk, output wire sdram_cs_n, inout wire [15:0] sdram_dq, output wire [1:0] sdram_dqm, output wire sdram_ras_n, output wire sdram_we_n, output wire [3:0] led, input wire uart_rxd, output wire uart_txd, output wire epcs_dclk, output wire epcs_sce, output wire epcs_sdo, input wire epcs_data0 ); mysystem u0 ( .clk_in_reset_reset_n (reset_n), .clk_in_clk (clk), .sdram_addr (sdram_addr), .sdram_ba (sdram_ba), .sdram_cas_n (sdram_cas_n), .sdram_cke (sdram_cke), .sdram_cs_n (sdram_cs_n), .sdram_dq (sdram_dq), .sdram_dqm (sdram_dqm), .sdram_ras_n (sdram_ras_n), .sdram_we_n (sdram_we_n), .led_export (led), .uart_rxd (uart_rxd), .uart_txd (uart_txd), .sdram_cko_clk (sdram_clk), .epcs_dclk (epcs_dclk), .epcs_sce (epcs_sce), .epcs_sdo (epcs_sdo), .epcs_data0 (epcs_data0), .altpll_0_phasedone_conduit_export (), .altpll_0_locked_conduit_export (), .altpll_0_areset_conduit_export () ); endmodule

設置EPCS管腳功能

根據AC620 FPGA開發板引腳分配表或者開發板背面的絲印對用到的引腳功能一一分配正確的管腳。注意設置所有的IO電平為3.3LVTTL,以防止無法正確驅動SDRAM存儲器。另外由于使用到了EPCS,因此需要在Quartus中設置其功能為regular IO,如下圖所示:

添加SDC約束文件

在做基于NIOS II的SOPC開發時,務必要添加SDC約束文件,對系統的時鐘進行約束,以保證Quartus II軟件能夠按照運行的頻率要求對系統進行布局布線,否則,在沒有加約束的情況下,整個系統可能最高運行頻率比50MHz還要低,就會出現系統無法正常運行,軟件無法下載等各種故障。本實例中約束文件比較簡單,大家只需要將下述內容新建一個sdc文件保存起來并添加到Quartus II工程中即可:

set_time_format -unit ns -decimal_places 3 create_clock -name {clk} -period 20.000 -waveform { 0.000 10.000 } [get_ports {clk}] derive_pll_clocks

添加完成后編譯整個工程,得到sof文件。

創建NIOS II應用工程模版

打開Quartus II集成的NIOS II軟件開發工具(基于Eclipse),然后切換工作空間到Quartus II工程目錄下。

然后新建一個空白模版工程和bsp工程,如下所示。注意,sopcinfo文件路徑一定不能錯。

移植RT-Thread操作系統

下載RT-Thread操作系統源碼

從git上下載RT-Thread操作系統的源文件,源碼地址:https://github.com/RT-Thread/rt-thread選擇master分支,點擊Clone or download按鈕,選擇Download zip來下載源文件,當然也可以從我們提供的本實例的壓縮包中得到該文件。

下載完成之后的文件名為:rt-thread-master.zip

移植RT-Thread操作系統源碼

在RTT_Test工程下新建一個文件夾,命名為”rt-thread”,添加src文件夾,include文件夾到rt-thread文件夾下,然后添加libcpu下nios部分內容到rt-thread文件夾下。注意,libcpu下提供了對各種體系架構的cpu的支持,我們這里只需要nios部分即可,其他部分不需要添加到工程中。上述就完成了RT-Thread操作系統源碼的添加。但是此時還并不完整,我們還需要添加對NIOS II CPU的bsp文件,該文件在bsp路徑下的nios ii路徑下,我們拷貝該路徑下的所有.c和.h文件到工程中,注意,application.c是整個系統的應用部分,也就是main函數所在文件,因此將該文件從rt-thread文件夾中移出到軟件工程的根目錄(拖動即可),添加完成后的工程如下所示(具體可以參考我們提供的實例工程文件)。

設置頭文件搜索路徑

添加完所有的文件之后,我們還必須要在軟件的設置中添加頭文件搜索路徑,選中RTT_test工程,鼠標右擊選擇Properties選項,在彈出的對話框中選中Nios II Application Paths選項,添加include和bsp文件夾道頭文件路徑中,然后確認關閉。如果彈出下述相對路徑轉換提示,選擇Yes即可。


至此,所有的運行RT-Thread操作系統的要求都已經滿足了。

關閉FINSH支持功能

接下來,我們打開工程的rt-thread -> bsp -> rtconfig.h文件,定位到第80行左右,將#define RT_USING_FINSH這句話前面加上單行注釋符“//”,以屏蔽該定義,即不使用FINSH功能。

運行RT-Thread操作系統

編譯運行程序

然后對整個工程進行全編譯(快捷鍵為Ctrl + B),編譯無誤,就會得到可下載到NIOS II CPU中運行的elf文件,然后在菜單欄中依次點擊RUN -> Run Configurations選項,打開下載運行頁面。

新建一個硬件運行配置并選擇RTT_test工程,然后切換到Target Connection選項卡,刷新連接以確認硬件USB Blaster已經找到CPU。注意,在此操作之前需要先將Quartus II軟件編譯生成的sof文件下載到開發板中,并使用Micro USB數據線連接開發板和電腦,并打開串口調試工具,以找到開發板對應串口,設置波特率115200,ASCII接收。


勾選忽略system id和時間戳選項,然后點擊Run。即可開始軟件程序的下載。

實驗結果

下載完成后,即可在串口調試助手上看到系統運行時打印的信息,同時,開發板上4個LED燈循環閃爍。

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

    關注

    8

    文章

    1367

    瀏覽量

    114527
  • 定時器
    +關注

    關注

    23

    文章

    3237

    瀏覽量

    114467
  • uart
    +關注

    關注

    22

    文章

    1227

    瀏覽量

    101171

原文標題:基于 NIOS II 處理器的RT-Thread物聯網操作系統移植與使用教程

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    詳解RT-Thread實時操作系統

    RT-Thread實時操作系統核心RT-Thread實時操作系統核心是一個高效的硬實時核心,它具備非常優異的實時性、穩定性、可剪裁性。最小可以到3k ROM占用、1k RAM占用。內核
    發表于 03-02 14:24

    怎樣去搭建一種基于rt-thread操作系統的迷你時鐘

    本文中作者基于rt-thread操作系統搭建了一個迷你時鐘,用來顯示時間和溫濕度。rt-thread studio是一款用于rt-thread
    發表于 08-03 06:28

    怎樣去搭建一個基于rt-thread操作系統的迷你時鐘

    rt-thread是什么?怎樣去搭建一個基于rt-thread操作系統的迷你時鐘?
    發表于 10-09 08:42

    基于RT-Thread操作系統衍生rt-smart實時操作系統簡介

    1、rt-smart 實時操作系統簡介RT-Thread Smart(簡稱 rt-smart)嵌入式實時操作系統是基于
    發表于 06-22 17:56

    基于RT-Thread操作系統的Env開發環境搭建

    Env是什么Env 是 RT-Thread 推出的開發輔助工具,針對基于 RT-Thread 操作系統的項目工程,提供編譯構建環境、圖形化系統配置及軟件包管理功能。其內置的 menuc
    發表于 09-30 10:38

    RT-Thread操作系統有哪些優勢?

    RT-thread是一個輕量級的操作系統,很小,但是也是一個操作系統。主要優勢有這些: 跨芯片平臺:支持所有主流微控制器,解決設備碎片化問題。 實時
    發表于 06-28 08:16

    RT-Thread編程指南

    RT-Thread編程指南——RT-Thread開發組(2015-03-31)。RT-Thread做為國內有較大影響力的開源實時操作系統,本文是RT
    發表于 11-26 16:06 ?0次下載

    RT-Thread Smart微內核操作系統發布!

    9月1日,由上海睿賽德電子科技有限公司舉辦的RT-Thread Smart微內核操作系統發布會于北京圓滿落幕,發布會以見微為主題,邀請到中國工程院院士、產業專家、高校教授及行業從業人員100余位蒞臨
    的頭像 發表于 09-09 10:49 ?2653次閱讀

    RT-Thread嵌入式實時操作系統詳解

    。多線程系統把整個系統分割成一個個獨立的無法返回的函數。RT-Thread (Real Time-Thread)嵌入式實時多線程操作系統
    發表于 11-04 09:06 ?21次下載
    <b class='flag-5'>RT-Thread</b>嵌入式實時<b class='flag-5'>操作系統</b><b class='flag-5'>詳解</b>

    國民技術攜手RT-Thread共同推進MCU與RT-Thread操作系統廣泛適配

    日前,國民技術股份有限公司與知名物聯網操作系統廠商睿賽德科技(RT-Thread)簽署會員合作協議,正式成為RT-Thread高級會員。國民技術將基于通用MCU和RT-Thread物聯
    的頭像 發表于 12-16 09:56 ?2351次閱讀

    μC/OS-II兼容層——讓基于μC/OS-II開發的應用層無感地遷移到RT-Thread操作系統

    這是一個針對RT-Thread國產操作系統的μCOS-II操作系統兼容層,可以讓基于美國Micriμm公司的μCOS-II
    發表于 01-25 19:23 ?0次下載
    μC/OS-<b class='flag-5'>II</b>兼容層——讓基于μC/OS-<b class='flag-5'>II</b>開發的應用層無感地遷移到<b class='flag-5'>RT-Thread</b><b class='flag-5'>操作系統</b>

    RT-Thread實時操作系統安裝向導

    、簡易開發、超低功耗、高安全性的物聯網操作系統RT-Thread 擁有良好的軟件生態,支持市面上所有主流的編譯工具如 GCC、Keil、IAR 等,工具鏈完善、友好,支持各類標準接
    發表于 04-02 09:43 ?7次下載

    RT-Thread操作系統已經成功部署至芯馳E3

    近日,國內領先的車規芯片企業芯馳科技與國內領先的車載RTOS(實時操作系統)企業睿賽德科技(RT-Thread)共同宣布:RT-Thread操作系統全面
    的頭像 發表于 09-09 09:15 ?1223次閱讀

    RT-Thread操作系統的FreeRTOS兼容層

    的兼容項目中。 1 概述 這是一個針對RT-Thread國產操作系統的FreeRTOS操作系統兼容層,可以讓原有基于FreeRTOS操作系統的項目快速、無感地遷移到
    的頭像 發表于 01-14 00:55 ?1607次閱讀

    RT-Thread操作系統全面支持飛騰騰瓏E2000系列芯片

    近日,國內領先的自主核心芯片提供商飛騰和國內領先的RTOS(實時操作系統) RT-Thread 共同完成了針對飛騰系列CPU的適配支持,并且全部源碼已經發布到開源社區平臺,為嵌入式開發
    的頭像 發表于 08-28 18:55 ?1618次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>操作系統</b>全面<b class='flag-5'>支持</b>飛騰騰瓏E2000系列芯片