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

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

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

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

如何在Nios II平臺搭建RTEMS嵌入式開發(fā)環(huán)境

電子設(shè)計(jì) ? 來源:郭婷 ? 作者:電子設(shè)計(jì) ? 2019-07-11 08:19 ? 次閱讀

1.引言

隨著技術(shù)的不斷發(fā)展,嵌入式技術(shù)逐漸成為計(jì)算機(jī)技術(shù)的一個(gè)重要分支。由于嵌入式產(chǎn)品所運(yùn)用場合多種多樣,不同應(yīng)用場景對嵌入式實(shí)時(shí)響應(yīng)、成本都有著不同的需求。嵌入式開發(fā)涉及硬件和軟件設(shè)計(jì),其中硬件開發(fā)包括板級開發(fā);而軟件開發(fā)則需要在硬件開發(fā)完成后才能開始,且與硬件有著緊密的關(guān)系。但FPGA的出現(xiàn)將徹底改變傳統(tǒng)嵌入式開發(fā)模式,使得嵌入式開發(fā)工程師可以像PC端軟件開發(fā)一樣開發(fā)嵌入式軟件,降低嵌入式開發(fā)的成本。

RTEMS (Real - Time Executivefor Multiprocessor Systems)是一個(gè)開放源代碼的實(shí)時(shí)嵌入式操作系統(tǒng),對各類主流的嵌入式平臺都有良好的支持,同時(shí)其也有著良好的開發(fā)軟件。目前無論是航空航天、軍工,還是民用領(lǐng)域RTEMS都有著極為廣泛的應(yīng)用。

Nios II由美國Altera公司推出的基于Nios的第二代32位RISC軟核,基于FPGA平臺,其性能可達(dá)200MIPS,是一款可定制的高性能嵌入式軟核,配合Altera官方提供的開發(fā)者套件,嵌入式工程師可以快捷、高效的進(jìn)行硬件、軟件的開發(fā)。

2.基于Nios II的SOPC開發(fā)環(huán)境

2.1 Altera SOPC Builder

SOPC Builder是一個(gè)全自動(dòng)的SOPC硬件開發(fā)環(huán)境,設(shè)計(jì)者可以通過Altera提供的IP宏選擇適合自己應(yīng)用的外圍功能模塊,并進(jìn)行內(nèi)存基地址的分配、中斷請求線和內(nèi)部總線的適配。與此同時(shí),還可以通過HDL文件來自定義外設(shè)模塊,比如DM9000A以太網(wǎng)控制器。SOPCBuilder使得可以在短暫的時(shí)間內(nèi)完成一個(gè)完整的硬件開發(fā)系統(tǒng)。

2.2 SOPC硬件系統(tǒng)

通過Altera提供的Quartus II和SOPCBuilder可以快速自定應(yīng)硬件系統(tǒng),圖1是針對Altera颶風(fēng)III代EP3C16Q器件定制的硬件系統(tǒng)nios2rtems示例圖。

如何在Nios II平臺搭建RTEMS嵌入式開發(fā)環(huán)境

硬件系統(tǒng)nios2rtems采用Nios II快速型軟核,為加快其運(yùn)行速率,系統(tǒng)時(shí)鐘為100MHz,外圍模塊有jtag-uartsdram、epcsflash、interval timer等,使用Avalon總線作為數(shù)據(jù)及控制總線。

2.3 SOPC軟件系統(tǒng)

通過使用Nios II IDE添加軟件工程,編譯即可生成與硬件相關(guān)聯(lián)的描述性文件,其中最為重要的是system.h文件以及HAL驅(qū)動(dòng)。

system.h文件提供nios2rtems硬件的描述,包含各個(gè)模塊的基址、模塊所使用的中斷號和中斷優(yōu)先級及外設(shè)模塊的符號名。它同SOPCBuilder提供的各個(gè)外設(shè)模塊的寄存器描述構(gòu)成了HAL庫的基礎(chǔ),同時(shí)也是驅(qū)動(dòng)開發(fā)的基礎(chǔ)。而HAL作為硬件抽象層,通過函數(shù)封裝為上層應(yīng)用提供統(tǒng)一的調(diào)用API接口

3.RTEMS開發(fā)環(huán)境搭建

3.1 Nios II交叉編譯工具

有兩種方式完成交叉編譯工具的安裝,其一是通過官方提供的定制腳本來安裝;其二就是通過獲得各個(gè)組件的源代碼、補(bǔ)丁來手動(dòng)編譯安裝。由于手動(dòng)編譯安裝可能由于某個(gè)版本的錯(cuò)誤選擇而使得編譯失敗,這里我們采用定制腳本來進(jìn)行安裝。

3.1.1 設(shè)置

為獲得支持Nios II平臺的嵌入式開發(fā)環(huán)境,需要準(zhǔn)備工具包的源碼和定制腳本,以及工程目錄。

首先,為nios2rtems設(shè)置工作目錄:

mkdir-p nios2rtems/rtems/src

然后,獲得RTEMS源碼構(gòu)建套件,其大部分是由python所寫的腳本文件。由于托管在git倉庫,所以必須有g(shù)it工具并通過下面代碼獲得工具套件源碼:

$ git clone git://git.rtems.org/rtemssource-builder.git

3.1.2 檢查

RTEMS源碼構(gòu)建套件為檢查編譯環(huán)境是否已經(jīng)就緒提供了相應(yīng)的工具sb-check:

$ source-builder/sb-check

RTEMS Source Builder environment is ok

顯示編譯環(huán)境已經(jīng)準(zhǔn)備就緒3.1.3 編譯

源碼構(gòu)建套件中提供了若干平臺的支持,在編譯之前可以通過sb-set-builder命令的list-bsets選項(xiàng)查看其支持的平臺。

$ /source-builder/sb-set-builder-list-bsets

4.10/rtems-nios2.bset

4.11/rtems-nios2.bset

從輸出結(jié)果可以知道,RTEMS在4.10版本就已經(jīng)支持nios2平臺了,這里我們選擇最新的4.11版本。通過如下命令可以開啟nios2平臺的交叉編譯工具的構(gòu)建:

$ sb-set-builder-log=l-nios2.txt\-prefix=$HOME/nios2rtems/rtems/4.11\4.11/rtems-sparc由于構(gòu)建過程中需要對所缺文件進(jìn)行在線的下載,整個(gè)過程可能持續(xù)非常長在$HOME/nios2rtems/rtems/4.11目錄下的bin/文件夾下可以看到已安裝的nios2-rtems4.11-gcc等工具。

3.2 BSP支持包構(gòu)建

3.2.1 RTEMS BSP結(jié)構(gòu)

RTEMS下關(guān)于nios2平臺的主要部分有:第一,CPU相關(guān),該部分包含和CPU功能相關(guān)的代碼,主要涉及CPU上下文切換以及CPU中斷異常處理等代碼;第二,外設(shè)相關(guān),該部分包含外設(shè)硬件的寄存器信息等和CPU內(nèi)部功能相關(guān)功能代碼;第三,BSP相關(guān),該部分包含硬件系統(tǒng)中外設(shè)相關(guān)代碼,例如console、timer以及硬件初始化等[5].

3.2.2 Nios II BSP構(gòu)建

Nios II的驅(qū)動(dòng)實(shí)現(xiàn)較為簡單,對硬件的操作主要涉及對外設(shè)硬件所在地址的讀寫操作[6].

在RTEMS中添加Nios II支持可以分為以下三個(gè)步驟。

首先,構(gòu)建cpu對Nios II支持,主要是提供CPU進(jìn)程上下文切換和中斷異常處理相關(guān)代碼,具體需要實(shí)現(xiàn)以下功能:

1)_CPU_Context_switch()以及_CPU_Context_restore(),函數(shù)主要功能用于保存和恢復(fù)當(dāng)前上下文相關(guān)的寄存器值。

2)_exception_vector(),處理CPU異常函數(shù),用于檢查硬件當(dāng)前狀態(tài),并根據(jù)異常類型跳轉(zhuǎn)至異常處理服務(wù)程序或者中斷處理程序中。

3)_Exception_Handler(),異常處理服務(wù)程序。

4)_ISR_Handler(),中斷服務(wù)程序。

5)其它輔助函數(shù),例如中斷注冊、使能及禁止中斷等功能。

其次,添加外設(shè)對Nios II支持,主要是提供與CPU異常等相關(guān)的代碼,具體需要實(shí)現(xiàn)以下功能:

1)中斷的管理,包括中斷的注冊、中斷使能以及中斷禁止等功能,這是對cpu的進(jìn)一步封裝(可選)。

2)Timer和Clock的等驅(qū)動(dòng)服務(wù)程序。

3)外圍設(shè)備的寄存器相關(guān)信息,都可以在SOPC Builder中找到,例如jtag-uart的寄存器信息可在altera_avalon_jtag_uart_regs.h文件中找到,將所有外設(shè)的寄存器相關(guān)頭文件信息放入c\src\lib\libcpu目錄中。

4)添加其他可能需要的Cache操作相關(guān)代碼。

最后,添加BSP對Nios II支持,該部分以RTEMS中nios2_iss為模板,提供基本的驅(qū)動(dòng)程序,一般包括以下基本內(nèi)容:

1)Clock驅(qū)動(dòng),Timer驅(qū)動(dòng),jtag-uart驅(qū)動(dòng)。這一部分代碼涉及對底層硬件的讀寫操作,非常依賴于Nios2eds生成的system.h文件及相關(guān)寄存器頭文件。

2)start.S及bspstart.c,操作系統(tǒng)啟動(dòng)文件。文件start.S包含RTEMS的啟動(dòng)代碼,包括初始化處理器和單板,為之后的C程序運(yùn)行提供棧空間,使之可以進(jìn)入bspstart.c進(jìn)一步初始化BSP.

3)其他外設(shè)驅(qū)動(dòng),網(wǎng)絡(luò)驅(qū)動(dòng),攝像頭驅(qū)動(dòng)等都在此處添加。

3.2.3 編譯下載

準(zhǔn)備好Nios II的BSP之后既可以按照RTEMS官方提供的內(nèi)核編譯流程編譯,之后即可編譯鏈接用戶應(yīng)用程序。通過命令行的nios2-download即可實(shí)現(xiàn)程序下載。

4.結(jié)論

本文首先介紹了如何使用Quartus II、SOPC Builder工具進(jìn)行系統(tǒng)開發(fā)的一般流程,并簡要分析NiosII硬件系統(tǒng)及其軟件系統(tǒng)的架構(gòu)。接著詳細(xì)講述如何為RTEMS構(gòu)建支持NiosII的板級支持包以及使用Nios2eds進(jìn)行應(yīng)用軟件的開發(fā)。全文從底層硬件到上層軟件,詳細(xì)描述了如何為基于NiosII軟核構(gòu)建基于RTEMS的板級支持包。本文同時(shí)給出了基于Nios II軟核的RTEMS移植方法和實(shí)驗(yàn)平臺構(gòu)建的一般方法。

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

    關(guān)注

    1644

    文章

    21993

    瀏覽量

    615324
  • 嵌入式
    +關(guān)注

    關(guān)注

    5144

    文章

    19575

    瀏覽量

    315734
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4891

    瀏覽量

    70355
收藏 人收藏

    評論

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

    嵌入式開發(fā)流程

    嵌入式開發(fā)流程一般是在PC機(jī)的Windows系統(tǒng)下安裝Ubuntu虛擬機(jī),搭建嵌入式開發(fā)環(huán)境及交叉編譯環(huán)境
    發(fā)表于 11-05 06:06

    嵌入式開發(fā)環(huán)境搭建

    前言前面經(jīng)過開發(fā)板初步上手體驗(yàn),對嵌入式開發(fā)的熱情已經(jīng)被點(diǎn)燃,下面進(jìn)行開發(fā)環(huán)境搭建。首先要明確嵌入式
    發(fā)表于 12-17 06:09

    面向RTEMS嵌入式軟件集成開發(fā)環(huán)境

    實(shí)現(xiàn)面向RTEMS嵌入式軟件集成開發(fā)環(huán)境,提高嵌入式應(yīng)用程序的可靠性和開發(fā)效率。在編譯過程中
    發(fā)表于 03-21 15:10 ?38次下載

    Nios II 嵌入式處理器 7.1 的新特性

    Nios II 嵌入式處理器 7.1 的新特性
    發(fā)表于 08-04 14:40 ?4次下載

    NIOS II的特性及開發(fā)設(shè)計(jì)流程

    NIOS II的特性及開發(fā)設(shè)計(jì)流程 NIOS的主要特點(diǎn)NIOS II是一個(gè)用戶可配置的通用RI
    發(fā)表于 02-08 14:47 ?1944次閱讀

    嵌入式開發(fā)

    嵌入式開發(fā)就是指在嵌入式操作系統(tǒng)下進(jìn)行開發(fā)嵌入式Linux是以Linux為基礎(chǔ)的嵌入式作業(yè)系統(tǒng)。這里提供了
    發(fā)表于 12-20 13:21
    <b class='flag-5'>嵌入式開發(fā)</b>

    嵌入式開發(fā)平臺搭建與軟件移植

    嵌入式應(yīng)用是近年來流行最快的徽電子產(chǎn)業(yè),嵌入式開發(fā)包含著內(nèi)容豐富的技術(shù)底盆。針甘日前嵌入式開發(fā)廣泛的市場需求,時(shí)比存在的各種嵌入式開發(fā)方式,提出了一種基于網(wǎng)絡(luò)和串
    發(fā)表于 12-27 15:51 ?67次下載
    <b class='flag-5'>嵌入式開發(fā)</b><b class='flag-5'>平臺</b>的<b class='flag-5'>搭建</b>與軟件移植

    Nios II嵌入式設(shè)計(jì)包詳解

    電子發(fā)燒友網(wǎng)核心提示 :當(dāng)您采用Nios II 嵌入式處理器進(jìn)行設(shè)計(jì)時(shí),您所使用的將是由Altera及其合作伙伴提供的可靠的軟件開發(fā)工具和軟件組件。
    發(fā)表于 10-17 15:31 ?2035次閱讀
    <b class='flag-5'>Nios</b> <b class='flag-5'>II</b><b class='flag-5'>嵌入式</b>設(shè)計(jì)包詳解

    基于Nios II嵌入式開發(fā)模式的搭建方案  

    介紹了Nios II的軟件開發(fā)環(huán)境,然后詳細(xì)闡述如何在Nios
    發(fā)表于 10-17 10:47 ?0次下載
    基于<b class='flag-5'>Nios</b> <b class='flag-5'>II</b>的<b class='flag-5'>嵌入式開發(fā)</b>模式的<b class='flag-5'>搭建</b>方案  

    基于嵌入式開發(fā)平臺搭建與軟件移植

    基于嵌入式開發(fā)平臺搭建與軟件移植
    發(fā)表于 10-30 15:31 ?7次下載
    基于<b class='flag-5'>嵌入式開發(fā)</b><b class='flag-5'>平臺</b>的<b class='flag-5'>搭建</b>與軟件移植

    嵌入式開發(fā)環(huán)境搭建

    本文詳細(xì)介紹了嵌入式開發(fā)環(huán)境搭建。這個(gè)教程在僅使用附帶的光盤鏡像文件里的資料的情況下,所搭建嵌入式 ARM
    的頭像 發(fā)表于 02-01 16:39 ?8796次閱讀
    <b class='flag-5'>嵌入式開發(fā)</b><b class='flag-5'>環(huán)境</b>的<b class='flag-5'>搭建</b>

    Nios II平臺搭建RTEMS嵌入式開發(fā)簡析

    ,首先介紹了Nios II的軟件開發(fā)環(huán)境,然后詳細(xì)闡述如何在Nios
    發(fā)表于 06-05 15:37 ?1700次閱讀
    在<b class='flag-5'>Nios</b> <b class='flag-5'>II</b><b class='flag-5'>平臺</b>下<b class='flag-5'>搭建</b><b class='flag-5'>RTEMS</b><b class='flag-5'>嵌入式開發(fā)</b>簡析

    嵌入式開發(fā)(一):嵌入式開發(fā)新手入門

    本篇文章整理下嵌入式開發(fā)中一些入門的基礎(chǔ)技能,都是根據(jù)以往的工程經(jīng)驗(yàn)整理,適用于之前沒做過嵌入式開發(fā)的新手。嵌入式開發(fā)流程一般如下,一般是在PC機(jī)的Windows系統(tǒng)下安裝Ubuntu虛擬機(jī),
    發(fā)表于 10-14 10:58 ?79次下載
    <b class='flag-5'>嵌入式開發(fā)</b>(一):<b class='flag-5'>嵌入式開發(fā)</b>新手入門

    嵌入式系統(tǒng)移植-01嵌入式基本概念,嵌入式開發(fā)環(huán)境搭建,目標(biāo)機(jī)搭建,TFTP服務(wù)搭建,NFS服務(wù)搭建

    Android系統(tǒng)嵌入式開發(fā)環(huán)境搭建嵌入式Linux交叉開發(fā)環(huán)境硬件基本組成
    發(fā)表于 10-20 17:21 ?10次下載
    <b class='flag-5'>嵌入式</b>系統(tǒng)移植-01<b class='flag-5'>嵌入式</b>基本概念,<b class='flag-5'>嵌入式開發(fā)</b><b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>,目標(biāo)機(jī)<b class='flag-5'>搭建</b>,TFTP服務(wù)<b class='flag-5'>搭建</b>,NFS服務(wù)<b class='flag-5'>搭建</b>

    VScode嵌入式開發(fā)之入門教程

    VScode嵌入式開發(fā)之入門教程1.VScode進(jìn)行單片機(jī)嵌入式開發(fā)教程2.單片機(jī)開發(fā)環(huán)境搭建3.相關(guān)技巧與設(shè)置
    發(fā)表于 11-03 09:51 ?44次下載
    VScode<b class='flag-5'>嵌入式開發(fā)</b>之入門教程
    主站蜘蛛池模板: 国产无遮挡床戏视频免费 | 在线观看视频免费入口 | 成人午夜视频免费看欧美 | 免费又黄又爽的禁片视频 | 欧美日韩精品一区二区在线线 | 亚洲男人的天堂成人 | 欧美三级中文字幕hd | 免费看啪啪的网站 | 欧美成人xxxx | 色cccwww在线播放 | 亚洲一级特黄特黄的大片 | 亚洲色图21p | 黄色a站| 男人视频在线观看 | 四虎在线观看免费永久 | 天天艹夜夜 | 色v在线| 亚洲爱爱网站 | 国产精品久久永久免费 | 2019天天射干 | 免费黄色一级 | 在线天堂中文www官网 | 四虎国产成人亚洲精品 | 欧美人与禽 | 中文字幕欧美成人免费 | 天天做天天爽爽快快 | 天天舔天天干 | 亚洲啊v在线 | 一级毛片真人免费观看 | 五月天婷婷亚洲 | 欧美.亚洲.日本一区二区三区 | 久青草国产高清在线视频 | 成人网中文字幕色 | 久操成人| 深爱综合网| 手机在线你懂的 | 国产特黄1级毛片 | 欧美特黄特色aaa大片免费看 | 爱婷婷视频在线观看 | 天天躁日日躁狠狠躁中文字幕老牛 | 午夜宅男在线 |