chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

深度剖析Nios II 處理器的硬件抽象層

友晶FPGA ? 來(lái)源:友晶FPGA ? 2025-10-31 15:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

硬件抽象層(Hardware Abstraction Layer, HAL)是一個(gè)輕量級(jí)嵌入式運(yùn)行時(shí)環(huán)境,它為用戶應(yīng)用程序和底層硬件提供了一個(gè)簡(jiǎn)單的設(shè)備驅(qū)動(dòng)程序接口。HAL應(yīng)用程序接口(API)與ANSI C標(biāo)準(zhǔn)庫(kù)綜合在一起,可使用類似C語(yǔ)言的庫(kù)函數(shù)來(lái)訪問(wèn)硬件設(shè)備或文件,如printf()、fopen()、fwrite()等函數(shù)。軟件工程師可非常方便的使用這些函數(shù)來(lái)與底層硬件通信,而無(wú)須關(guān)心底層硬件實(shí)現(xiàn)細(xì)節(jié)。

HAL可以看作是一個(gè)支持應(yīng)用程序開(kāi)發(fā)的軟件平臺(tái),它提供API函數(shù)接口,屏蔽硬件訪問(wèn)細(xì)節(jié),雖然占用了一些額外的資源,但是大大增加了應(yīng)用程序的開(kāi)發(fā)速度和可移植性。用戶只要利用HAL提供的各種函數(shù)就可以編寫應(yīng)用程序。

HAL作為Nios II處理器系統(tǒng)的設(shè)備驅(qū)動(dòng)程序包,為系統(tǒng)中的外圍設(shè)備提供了一致的接口。Nios II SBT從SOPC信息文件(.sopcinfo)中提取系統(tǒng)信息,生成一個(gè)針對(duì)于該硬件配置的定制的HAL板級(jí)支持包(BSP)。當(dāng)硬件配置信息發(fā)生改變時(shí),HAL設(shè)備驅(qū)動(dòng)配置也會(huì)自動(dòng)隨之更改,從而避免了由于底層硬件的變化而產(chǎn)生的編程錯(cuò)誤。Nios II SBT為用戶自動(dòng)創(chuàng)建和管理HAL設(shè)備驅(qū)動(dòng)程序,用戶不用創(chuàng)建或拷貝HAL文件,也不用編輯HAL中的任何源代碼。

HAL為用戶提供以下支持:

集成了newlib ANSI C標(biāo)準(zhǔn)庫(kù),允許調(diào)用類似C標(biāo)準(zhǔn)庫(kù)函數(shù);

提供訪問(wèn)Nios II系統(tǒng)中每個(gè)設(shè)備的驅(qū)動(dòng)程序;

提供HAL API,用于標(biāo)準(zhǔn)的函數(shù)接口如設(shè)備訪問(wèn)、中斷處理以及ALARM等;

提供系統(tǒng)初始化函數(shù),為main()函數(shù)和C庫(kù)函數(shù)建立運(yùn)行時(shí)環(huán)境;

提供設(shè)備初始化函數(shù),在main()函數(shù)之前,分配設(shè)備空間并初始化所有的外圍設(shè)備;

Nios II HAL的結(jié)構(gòu)如圖下所示。

fbbcb54e-b3c5-11f0-8c8f-92fbcf53809c.png

Nios II HAL的結(jié)構(gòu)

由上圖可以看出,用戶應(yīng)用程序在硬件抽象層和C標(biāo)準(zhǔn)庫(kù)函數(shù)上,這說(shuō)明用戶應(yīng)用程序要訪問(wèn)硬件設(shè)備至少有4中方法:

調(diào)用C標(biāo)準(zhǔn)庫(kù)函數(shù),如printf()和fwrite();

調(diào)用硬件抽象層的API函數(shù),如write();

調(diào)用設(shè)備驅(qū)動(dòng)程序,如alt_avalon_uart_write();

直接訪問(wèn)設(shè)備寄存器,如IOWR_ALTERA_AVALON_UART_RXDATA(base, data);

HAL I/O操作宏

fc187e4c-b3c5-11f0-8c8f-92fbcf53809c.png

前兩種方法的抽象度最高,可移植性最好,對(duì)用戶來(lái)說(shuō)最容易實(shí)現(xiàn),但是需要最多的額外開(kāi)銷;第三種方法抽象度較低,有一定的移植性,額外開(kāi)銷較少,但還需要用戶考慮對(duì)設(shè)備寫數(shù)據(jù)前的其他硬件操作;最后一種方法完全是對(duì)硬件的直接訪問(wèn),需要用戶關(guān)注設(shè)備的每個(gè)硬件細(xì)節(jié),無(wú)額外開(kāi)銷。

對(duì)于I/O外設(shè),HAL提供了一些宏定義來(lái)訪問(wèn)其中的寄存器,這些宏在/components/altera_nios2/HAL/inc/io.h中定義,以下是這些宏定義的詳細(xì)介紹。當(dāng)用戶編寫應(yīng)用程序時(shí),只需要調(diào)用這些宏就可以訪問(wèn)到I/O外設(shè)中的寄存器,而無(wú)需關(guān)心底層硬件的詳細(xì)信息。

另外,在HAL中還定義了常用的數(shù)據(jù)類型,這些定義在alt_type.h文件中,下面是alt_types.h文件內(nèi)容的片段,從中我們可以看出,所有的數(shù)據(jù)類型都是以alt_開(kāi)頭,若是無(wú)符號(hào)類型,那么數(shù)據(jù)類型中含有“u”表示unsigned的意思,最后會(huì)用數(shù)據(jù)的位數(shù)來(lái)結(jié)尾,如8、16、32、64。使用這些HAL數(shù)據(jù)類型可以很方便的看出變量的數(shù)據(jù)類型,比如,alt_u8 key_data 就表示key_data是一個(gè)8位的無(wú)符號(hào)數(shù)據(jù)。

fc734250-b3c5-11f0-8c8f-92fbcf53809c.png

使用HAL開(kāi)發(fā)應(yīng)用程序

基于HAL的軟件工程的創(chuàng)建和管理與Nios II SBT緊密相關(guān),下圖為Nios II SBT工程結(jié)構(gòu)。

fccd3f3a-b3c5-11f0-8c8f-92fbcf53809c.png

Nios II SBT工程結(jié)構(gòu)

從上圖可以看出,一個(gè)Nios II SBT工程包括2個(gè)工程:用戶應(yīng)用程序工程和HAL BSP工程。用戶應(yīng)用程序工程包含所有的用戶程序代碼文件,最終的可執(zhí)行映像由此工程生成。HAL BSP工程中包含所有與硬件處理器系統(tǒng)相關(guān)的接口信息。

在第一次編譯Nios II SBT過(guò)程中,編譯工具會(huì)根據(jù)硬件系統(tǒng)信息生成一個(gè)描述硬件信息的system.h文件,如代碼1.1所示。該文件是HAL的基礎(chǔ),它提供了關(guān)于Nios II系統(tǒng)硬件的描述,是硬件和軟件之間的橋梁。對(duì)應(yīng)用程序開(kāi)發(fā)來(lái)說(shuō),并不是system.h中的所有信息都有用,因此并不一定要在應(yīng)用程序的C源代碼文件中包含system.h。

由代碼1.1可知,system.h文件給出了每個(gè)外設(shè)的詳細(xì)信息,包括以下幾部分:

外設(shè)的硬件配置;

外設(shè)的基地址;

中斷優(yōu)先級(jí)(如果外設(shè)有中斷);

外設(shè)的符號(hào)名稱;

fd26719a-b3c5-11f0-8c8f-92fbcf53809c.png

代碼1.1 system.h文件示例

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

    關(guān)注

    68

    文章

    20111

    瀏覽量

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

    關(guān)注

    5178

    文章

    20028

    瀏覽量

    326075
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    9336

    瀏覽量

    155776
  • 硬件
    +關(guān)注

    關(guān)注

    11

    文章

    3540

    瀏覽量

    68572

原文標(biāo)題:Nios II 處理器的硬件抽象層(HAL)中文解說(shuō)

文章出處:【微信號(hào):友晶FPGA,微信公眾號(hào):友晶FPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    基于NIOS II嵌入式處理器的LCD控制實(shí)現(xiàn)

    本文介紹了一種基于NIOS II軟核處理器實(shí)現(xiàn)對(duì)LCD-LQ057Q3DC02控制的新方法。在設(shè)計(jì)中利用FPGA的Altera的SOPC Builder定制NIOS
    發(fā)表于 11-09 11:30 ?2262次閱讀
    基于<b class='flag-5'>NIOS</b> <b class='flag-5'>II</b>嵌入式<b class='flag-5'>處理器</b>的LCD控制實(shí)現(xiàn)

    基于Nios II和uClinux實(shí)現(xiàn)遠(yuǎn)程測(cè)控服務(wù)的設(shè)計(jì)

    系統(tǒng)的硬件結(jié)構(gòu)如圖2所示。硬件系統(tǒng)的核心是構(gòu)建于Ahera Cyclone FPGA中的Nios II嵌入式軟核處理器。
    發(fā)表于 06-28 14:49 ?1051次閱讀
    基于<b class='flag-5'>Nios</b> <b class='flag-5'>II</b>和uClinux實(shí)現(xiàn)遠(yuǎn)程測(cè)控服務(wù)<b class='flag-5'>器</b>的設(shè)計(jì)

    基于NIOS II 軟核處理器的SOPC 技術(shù)

    基于NIOS II 軟核處理器的SOPC 技術(shù)摘要:介紹了基于NIOS II 軟核處理器的SOP
    發(fā)表于 10-06 15:05

    Cyclone II FPGA和Nios II嵌入式處理器的優(yōu)勢(shì)

    在其業(yè)內(nèi)領(lǐng)先的低成本Cyclone TM FPGA系列和Nios軟核嵌入式處理器成功的基礎(chǔ)上,Altera現(xiàn)在推出了第二代產(chǎn)品系列。Cyclone II器件為用戶提供更高的邏輯密度和新增硬件
    發(fā)表于 07-18 07:43

    基于Nios II處理器的USB接口設(shè)計(jì)

    本文以Nios II 嵌入式軟處理器為核心,利用USB 控制芯片CH372,設(shè)計(jì)了基于Nios II 嵌入式軟
    發(fā)表于 08-28 11:34 ?33次下載

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

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

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

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

    Nios II處理器-世界上最通用的處理器

      Nios II系列軟核處理器是Altera的第二代FPGA嵌入式處理器,其性能超過(guò)200DMIPS,在Altera FPGA中實(shí)現(xiàn)僅需35美分。Altera的Stratix 、St
    發(fā)表于 11-30 16:33 ?4237次閱讀
    <b class='flag-5'>Nios</b> <b class='flag-5'>II</b><b class='flag-5'>處理器</b>-世界上最通用的<b class='flag-5'>處理器</b>

    Nios II處理器內(nèi)核詳解

    電子發(fā)燒友網(wǎng)核心提示 :與其他軟核處理器相比,世界上越來(lái)越多的設(shè)計(jì)人員使用了Nios II嵌入式處理器,該處理器一直是FPGA和HardCo
    發(fā)表于 10-17 13:50 ?7486次閱讀

    Nios II 系列處理器配置選項(xiàng)

    Nios II 系列處理器配置選項(xiàng):This chapter describes the Nios II Processor paramet
    發(fā)表于 10-17 14:08 ?17次下載

    怎樣使用Nios II處理器來(lái)構(gòu)建多處理器系統(tǒng)

    怎樣使用Nios II處理器來(lái)構(gòu)建多處理器系統(tǒng) Chapter 1. Creating Multiprocessor Nios
    發(fā)表于 10-17 14:51 ?19次下載

    使用 Nios II 處理器進(jìn)行設(shè)計(jì)(1)

    使用 Nios II 處理器進(jìn)行設(shè)計(jì)”第一部分
    的頭像 發(fā)表于 06-20 00:17 ?4464次閱讀
    使用 <b class='flag-5'>Nios</b> <b class='flag-5'>II</b> <b class='flag-5'>處理器</b>進(jìn)行設(shè)計(jì)(1)

    啟動(dòng) Nios II 處理器的方法

    Nios II 處理器的各種啟動(dòng)方法
    的頭像 發(fā)表于 06-20 01:22 ?4183次閱讀
    啟動(dòng) <b class='flag-5'>Nios</b> <b class='flag-5'>II</b> <b class='flag-5'>處理器</b>的方法

    FPGA視頻教程之如何使用NIOS II處理器

    本文檔的主要內(nèi)容詳細(xì)介紹的是FPGA視頻教程之如何使用NIOS II處理器詳細(xì)資料免費(fèi)下載。
    發(fā)表于 03-20 14:35 ?6次下載
    FPGA視頻教程之如何使用<b class='flag-5'>NIOS</b> <b class='flag-5'>II</b><b class='flag-5'>處理器</b>

    FPGA Nios嵌入式處理器硬件開(kāi)發(fā)

    本章將介紹Nios 處理器硬件開(kāi)發(fā)環(huán)境和硬件開(kāi)發(fā)的整個(gè)流程。一個(gè)簡(jiǎn)單Nios 開(kāi)發(fā)系統(tǒng)包括Nios
    發(fā)表于 01-15 15:57 ?5次下載
    FPGA <b class='flag-5'>Nios</b>嵌入式<b class='flag-5'>處理器</b>的<b class='flag-5'>硬件</b>開(kāi)發(fā)