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

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

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

3天內不再提示

在Nios II嵌入式平臺上uClinux的移植研究

電子工程師 ? 來源:微計算機信息 ? 作者:余臘生 洪飛 ? 2021-03-24 17:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. Nios II嵌入式處理器

Nios II是運行在FPGA上的五級流水線、單指令的RISC處理器,它專門針對Altera的可編程邏輯器件及片上可編程的設計思想做了相應的優(yōu)化。作為一種可配置的精減的RISC處理器,它可以與用戶自定義邏輯結合構成SOPC系統,并下載到Altera的可編程器件中。32位的Nios II軟核,結合外部閃存以及大容量存儲器,可以構成一個功能強大的32位嵌入式處理器系統。此外,利用Altera提供的IDE(Integrated development environment)開發(fā)工具 可以方便的在調試模式下調試處理器,提高開發(fā)的速度。

使用Cyclone II版Nios II應用開發(fā)板Nios-DEVKIT-2C35 作為移植實現的平臺,開發(fā)板主要包括Cyclone II EP2C35器件、EPM7128AE CPLD配置控制邏輯、存儲器、串行配置連接器、FPGA和CPLD的JTAG接口等。

2. 移植

2.1. uClinux嵌入式操作系統

uClinux是Linux的一個嵌入式版本,它經過小型化改造,形成了一個高度優(yōu)化、代碼緊湊的嵌入式Linux,并保留了Linux的大多數優(yōu)點。最新的2.6版本在內核主體中加入了提高中斷性能和調度響應時間的改進,其中有三個最顯著的改進:采用可搶占內核、更加有效的調度算法以及同步性的提高 。

2.1.1. uClinux操作系統的移植

uClinux源代碼絕大部分都是使用的C語言,只有那些直接與處理其硬件相關的代碼如開關CPU中斷等操作才采用匯編語言編寫,因此uClinux具有很好的移植性。一般來說,uClinux的移植大致分為三類:

1) 結構層次的移植。如果待移植的處理器結構不同于任何已經支持的處理器結構,則需要修改linux/arch目錄下的相關處理器結構的文件。uClinux內核代碼的大部分是獨立于處理器和其體系結構的,但是其最底層的代碼也是特定于各個系統的。他們的中斷處理上下文、內存維護、任務上下文和初始化過程都是獨特的。對一個新型的體系,其下層程序可以模仿與其相似的體系程序編寫。

2) 平臺層次的移植。待移植處理器是某種uClinux已支持體系的分支處理器,即如果待移植的處理器是基于Nios II內核的,而Nios II內核已經被uClinux支持,則需要在相關體系結構目錄platform下建立相應目錄并編寫相應代碼,這些代碼主要是跟蹤程序(實現用戶程序到內核函數的接口等功能)、中斷控制調度程序和內存初始化程序等。

3) 板級移植。如果所用處理器(如Cyclone II版本系列)已經被uClinux支持的話,就只需要板級移植了。板級移植需要修改或添加linux/arch/Nios2nommu/scripts目錄中的文件,該目錄中主要是與具體硬件平臺相關的配置,可以利用Nios II自帶的SOPC Builder軟件生成具體平臺對應的配置文件。

對于uClinux已經支持的硬件架構,移植的過程相對較為簡單,主要考慮修改與硬件開發(fā)平臺相關的具體因素,如內存大小、外圍設備的配置等。一般現在做的大部分移植都是平臺層次移植和板級移植。

2.1.2. initramfs文件系統

在uClinux 2.6操作系統中,用initramfs文件系統取代了以前的romfs文件系統。

1. romfs文件系統。romfs文件系統是在uClinux 2.4以及之前版本廣泛用到的文件系統,這種文件系統相對于一般的ext2/ext3文件系統要求更少的空間。romfs文件系統不支持動態(tài)擦寫保存,對于系統需要動態(tài)保存的數據采用虛擬RAM盤的方法進行處理(RAM盤采用ext2/ext3文件系統)。

2. initramfs文件系統。initramfs是在2.5版本內核中引入的技術,它的基本思想是:在內核鏡像中附加一個cpio包,cpio包中包含了一個小型的文件系統,當內核啟動時,內核將cpio包解開,并且將其中包含的文件系統作為初始的根文件系統,內核中的一部分初始化代碼會放到這個文件系統中作為用戶層進程來執(zhí)行。這樣帶來的明顯的好處是精簡了內核的初始化代碼,例如尋找真正的啟動盤、啟動時的網絡安裝、ACPI的安裝等,這些代碼都可以從內核中移出,把它們都轉移到用戶空間完成,這樣使得開發(fā)者在用戶層就可以定制自己的啟動過程,而不需要去修改內核代碼,使定制啟動過程變得更加容易。

2.2. 開發(fā)環(huán)境的建立

1. 建立交叉編譯環(huán)境??梢栽趗Clinux官方網站下載支持Nios II的交叉編譯開發(fā)工具包,包括Nios2-linux-uclibc-gcc、Nios2-linux-uclibc-ld、Nios2-linux-uclibc-objdump等。

安裝好交叉編譯工具包后,要在宿主PC上的Linux系統的環(huán)境變量中(一般修改~/.bash_profile文件),添加對Nios II交叉編譯環(huán)境的支持,這樣在以后的開發(fā)中,就可以正常編譯在Nios II嵌入式平臺下運行的程序了。

2. 內核的下載和燒寫。在最初的調試中,是通過JTAG把內核下載到開發(fā)板,Nios II平臺的硬件邏輯也是通過JTAG燒進開發(fā)板,等到最后硬件邏輯測試沒有問題,以及uClinux操作系統調試運行正常后,就可以制作帶bootloader的內核,燒入flash中。

2.3. 引導程序

引導程序(即bootloader)就是在操作系統內核運行之前運行的一段小程序,它在硬件復位后首先被執(zhí)行。主要工作是初始化硬件設備、建立內存空間的映射圖,從而將系統的軟硬環(huán)境帶到一個合適的狀態(tài),以便為最終調用操作系統內核準備合適的環(huán)境。通常引導程序嚴重地依賴于硬件,每種CPU體系結構都用不同的啟動代碼。此外,引導程序還依賴于具體的嵌入式板級設備的配置,如硬件地址分配,RAM芯片類型等。bootloader擔負著初始化硬件和引導操作系統的雙重責任,也是在特定硬件平臺操作系統移植至關重要的一步。

對于作者使用的Nios II應用開發(fā)板,引導程序主要完成以下幾項工作:

1) 矢量表初始化。

2) 初始化硬件(I/O口和控制器、存儲器、時鐘)。

3) 將操作系統內核從Flash指定位置拷貝到RAM中。

4) 軟件初始化:建立堆棧和初始化數據段,建立C的運行環(huán)境。

5) 讓CPU轉入RAM中指定的位置(即操作系統內核)開始執(zhí)行。

其中,第二步主要初始化處理器的一些控制或狀態(tài)寄存器、時鐘、I/O口、RAM等這些內核必須用到的設備。第三步中uClinux內核加載可以直接從flash某個地址開始逐句執(zhí)行或者加載到內存中運行。作者采用的是后一種方法,即先把flash中的操作系統內核全部復制到內存中,再從內存中運行操作系統,因為內核大小一共不到1.5M字節(jié),從flash復制到RAM中花的時間很少(幾百毫秒),很快就會完成,該方法也比較容易實現。

2.4 uClinux操作系統映像的構建

引導程序執(zhí)行完畢后,處理器就開始執(zhí)行真正的操作系統,操作系統內核的運行跟開發(fā)板的硬件配置有著緊密的聯系。只有正確的配置操作系統內核,它才會正確利用硬件資源。由于2.6版本的uClinux已經支持了Nios II處理器,所以移植過程主要是板級移植。

首先,利用Nios II的配套開發(fā)軟件Quartus II新建一個工程,用SOPC builder設計好自己的硬件邏輯,編譯后會生成兩個跟硬件平臺相對應的硬件邏輯的文件,其中,*.sof文件是燒入開發(fā)板中并運行于其中的硬件邏輯,另外一個*.ptf文件是用于生成跟硬件平臺相適應的uClinux內核。

然后,在宿主PC的Linux環(huán)境下,把*.ptf文件通過相關命令導入內核配置中,硬件平臺的配置內容就會在linux/arch/Nios2nommu/scripts文件夾下生成,接著就可以通過make menuconfig 命令配置uClinux操作系統內核,具體相關選項的選擇,要跟自己的硬件平臺相同。

最后,在配置好內核后,就可以直接編譯生成uClinux操作系統內核映像文件,把*.sof文件通過JTAG燒入開發(fā)板中,把內核映像文件通過JTAG燒入SDRAM中,一個uClinux操作系統就可以在Nios II開發(fā)板上運行起來了。

至此,一個簡單的uClinux操作系統在Nios II嵌入式平臺上移植完成,這個操作系統經過裁減,去掉了Linux內核中一些不是必須的功能,但是具有一個Linux操作系統的幾乎所有的特征。接下來,就可以在建好的開發(fā)環(huán)境中,開發(fā)在此平臺上運行的程序了。

3. 結束語

Altera的Nios II軟核處理器性能超過200DMIPS,在Altera FPGA中實現僅需35美分,并且開發(fā)者能從無限的系統配置組合中選擇滿足性能和成本目標的方案,而不必為系統級設計考慮采用ASIC。并且,Nios II處理器還具有完善的軟件開發(fā)套件。

責任編輯:lq6

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

    關注

    68

    文章

    20084

    瀏覽量

    243932
  • 存儲器
    +關注

    關注

    39

    文章

    7698

    瀏覽量

    170394
  • 可編程邏輯
    +關注

    關注

    7

    文章

    526

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    新一代嵌入式開發(fā)平臺 AMD嵌入式軟件和工具2025.1版現已推出

    搶先體驗 SHEL 流程簡化所有 AMD 嵌入式開發(fā)平臺上的軟件項目生成過程 Zephyr RTOS 兼容性已擴展至第二代 AMD Versal AI Edge 系列、Kria SOM
    的頭像 發(fā)表于 08-20 09:15 ?3414次閱讀

    AMD 2025.1版嵌入式軟件和工具的新增功能

    AMD 2025.1 版嵌入式軟件和工具是面向新一代嵌入式系統開發(fā)而打造的綜合平臺,全面加速概念構想到部署落地。
    的頭像 發(fā)表于 08-15 15:32 ?895次閱讀

    嵌入式工程師為什么要學QT?

    Qt對嵌入式工程師來說,真的很重要嗎? Qt是一個跨平臺的C++應用程序開發(fā)框架,非常適合嵌入式系統的開發(fā),Qt嵌入式開發(fā)中具有很重要的作
    發(fā)表于 08-14 15:15

    嵌入式力矩電機的設計方法研究

    ~~~*附件:嵌入式力矩電機的設計方法研究.pdf【免責聲明】本文系網絡轉載,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請第一時間告知,刪除內容!
    發(fā)表于 06-11 15:08

    如何在嵌入式平臺上部署高光譜相機

    高光譜成像技術廣泛應用于農業(yè)、環(huán)境監(jiān)測、工業(yè)檢測等領域。友思特eBUS軟件為嵌入式分選和檢測成像平臺搭建提供專屬解決方案,如自定義的分選系統、實時數據采集、高性能處理平臺和實時通信協議等。
    的頭像 發(fā)表于 06-03 13:39 ?434次閱讀
    如何在<b class='flag-5'>嵌入式</b><b class='flag-5'>平臺上</b>部署高光譜相機

    飛凌嵌入式ElfBoard ELF 1板卡-Uboot

    架構的嵌入式平臺,如PowerPC、ARM、MIPS。本手冊將U-Boot簡寫為uboot,所以本手冊中的uboot即為U-Boot。uboot是遵循GPL條款的開放源碼項目,是PPCBoot以及
    發(fā)表于 05-22 10:44

    嵌入式開發(fā)入門指南:從零開始學習嵌入式

    開發(fā)(設備驅動、內核編譯) 4. 推薦的學習資源書籍:《嵌入式系統軟件設計基礎》《ARM Cortex-M系列嵌入式開發(fā)》在線課程:慕課網、B站嵌入式教學視頻實踐平臺:Arduino、
    發(fā)表于 05-15 09:29

    在任何平臺上使用PetaLinux的先決條件

    本篇文章介紹了在任何平臺上使用 PetaLinux 的先決條件。PetaLinux 是一種嵌入式 Linux 軟件開發(fā)套件 (SDK),主要用于基于 FPGA 的系統級芯片 (SoC) 設計或 FPGA 設計。
    的頭像 發(fā)表于 04-24 10:40 ?1123次閱讀
    在任何<b class='flag-5'>平臺上</b>使用PetaLinux的先決條件

    嵌入式去哪個城市好?

    對于嵌入式技術從業(yè)者來說,選擇哪個城市發(fā)展是一個重要的決策。以下是一些建議: 一線城市 北京作為中國的首都和科技中心,北京擁有眾多頂尖的高校和研究機構,以及大量的高科技企業(yè),為嵌入式開發(fā)和應用提供了
    發(fā)表于 04-02 10:12

    Python嵌入式系統中的應用場景

    你想把你的職業(yè)生涯提升到一個新的水平?Python嵌入式系統中正在成為一股不可缺少的新力量。盡管傳統上嵌入式開發(fā)更多地依賴于C和C++語言,Python的優(yōu)勢在于其簡潔的語法、豐富的庫和快速的開發(fā)周期,這使得它在某些
    的頭像 發(fā)表于 03-19 14:10 ?1037次閱讀

    BlackBerry QNX推出通用嵌入式開發(fā)平臺

    BlackBerry有限公司(紐交所代碼:BB;多倫多證券交易所代碼:BB)旗下部門QNX今日宣布推出QNX 通用嵌入式開發(fā)平臺(General Embedded Development
    的頭像 發(fā)表于 03-11 16:04 ?835次閱讀

    嵌入式主板的概述與發(fā)展

    隨著科技的迅猛發(fā)展,嵌入式系統現代電子產品中扮演著越來越重要的角色。嵌入式主板作為嵌入式系統的核心組件之一,承擔著控制、處理和通訊等多種功能。本文將對
    的頭像 發(fā)表于 01-13 16:30 ?1025次閱讀
    <b class='flag-5'>嵌入式</b>主板的概述與發(fā)展

    嵌入式系統開發(fā)與硬件的關系 嵌入式系統開發(fā)常見問題解決

    嵌入式系統開發(fā)與硬件的關系 嵌入式系統是專為特定應用設計的計算機系統,它們通常嵌入在所控制的設備中。這些系統的關鍵特點是它們與硬件的緊密集成,這意味著軟件必須為特定的硬件平臺量身定制。
    的頭像 發(fā)表于 12-09 09:38 ?1322次閱讀

    HAL庫Arduino平臺上的使用

    ,適合于快速原型開發(fā)和教育。HAL(硬件抽象層)庫是一種Arduino平臺上使用的軟件庫,它提供了一種標準化的方式來訪問硬件功能,使得開發(fā)者可以編寫更通用、更可移植的代碼。 1. 什么是HAL庫 HAL庫是硬件抽象層庫的簡稱,
    的頭像 發(fā)表于 12-02 14:04 ?2119次閱讀

    HAL庫嵌入式系統中的應用

    HAL庫是一種嵌入式開發(fā)中用于屏蔽底層硬件細節(jié)、提供統一接口的軟件層。它允許開發(fā)者在編寫應用程序時無需關心具體的硬件實現,從而提高了代碼的可移植性和復用性。HAL庫的主要目的是將硬件相關的代碼與應用程序代碼分離,使得開發(fā)者能
    的頭像 發(fā)表于 12-02 11:32 ?2743次閱讀