哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

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

ARM嵌入式系統(tǒng)的異常及裸機(jī)開(kāi)發(fā)設(shè)計(jì)

454398 ? 來(lái)源:博客園 ? 作者: 碎歲語(yǔ) ? 2020-10-07 15:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、ARM的異常

異常在嵌入式開(kāi)發(fā)中是很常見(jiàn)的事件,它也是非常重要的事件。簡(jiǎn)單來(lái)說(shuō),異常就是一種會(huì)打斷程序正常執(zhí)行的事件。異常通常又稱為“中斷”。

異常的種類大致可分為如下幾種:

1、中斷

IRQ / FIQ 由外部硬件觸發(fā)的中斷。

2、軟中斷

soft interrupt 由系統(tǒng)調(diào)用的中斷事件,由軟件產(chǎn)生的中斷事件。

3、復(fù)位

Reset

4、未定義指令

5、數(shù)據(jù)異常

例如數(shù)據(jù)越界等。

中斷:

ARM 有兩級(jí)外部中斷:1、FIQ;2、IRQ。

但大多數(shù)的嵌入式系統(tǒng)都有多于兩個(gè)的外部中斷源,為了能正常響應(yīng)所有的外部中斷事件,就需要一個(gè)“中斷控制器”。

嵌入式系統(tǒng)的中斷響應(yīng)架構(gòu)大致如下圖所示:

當(dāng)在短時(shí)間內(nèi)產(chǎn)生大量中斷事件時(shí),CPU無(wú)法保證能及時(shí)響應(yīng)所有的中斷事件。為了避免發(fā)生丟失中斷的問(wèn)題,每一個(gè)中斷事件都會(huì)作一個(gè)“記錄”,即我們常見(jiàn)的設(shè)置“中斷標(biāo)志位”。當(dāng)CPU查到中斷標(biāo)志位的值有效時(shí),就會(huì)發(fā)起一個(gè)中斷事件。當(dāng)然,一個(gè)中斷事件我們一般只需要處理一次,因此,通常我們要在中斷處理函數(shù)中將對(duì)應(yīng)的中斷標(biāo)志位作清除操作。

ARM 系統(tǒng)會(huì)有一個(gè)“中斷向量表”的機(jī)制來(lái)專門(mén)存儲(chǔ)中斷響應(yīng)函數(shù)地址。

2、裸機(jī)開(kāi)發(fā)

什么是祼機(jī)開(kāi)發(fā)?

祼機(jī)開(kāi)發(fā)就是指在嵌入式開(kāi)發(fā)板中,直接編寫(xiě)程序控制硬件設(shè)備的開(kāi)發(fā)模式。在開(kāi)發(fā)板上沒(méi)有操作系統(tǒng),板上各種內(nèi)圍、外圍硬件資源均由需要使用到它的程序來(lái)全權(quán)操作。

祼機(jī)開(kāi)發(fā)除了軟件編程能力,還有一個(gè)很重要的就是要能看懂硬件電路圖以及各種芯片手冊(cè)。

在嵌入式領(lǐng)域電路圖設(shè)計(jì)中,經(jīng)常可以看到CPU管腳與某些設(shè)備不是直接相連的,而是要通過(guò)一個(gè)“三極管”來(lái)間接控制。這么設(shè)計(jì)的原因是為了降低CPU在控制各種外圍設(shè)備時(shí)被外圍設(shè)備的合計(jì)電流燒毀的風(fēng)險(xiǎn)。拿LED控制電路來(lái)說(shuō),一個(gè)LED燈通常都是供3.3v的電壓,并接入一個(gè) 1k 的電阻。如此一來(lái),LED燈在工作時(shí)的電流就約為3.3ma。若CPU的管腳直接控制LED燈的亮滅,當(dāng)板上有大量LED燈同時(shí)亮起時(shí),輸入到CPU的電流累加起來(lái)就會(huì)比較大,CPU的發(fā)熱也會(huì)水漲船高,燒毀的風(fēng)險(xiǎn)也更大。而通過(guò)一個(gè)三極管間接控制LED燈,就不會(huì)有這個(gè)風(fēng)險(xiǎn),LED燈工作時(shí)的電流將不會(huì)直接作用到CPU上。

在電路圖設(shè)計(jì)中,有一個(gè)概念非常常見(jiàn):上拉、下拉電阻。它們是指在對(duì)應(yīng)元器件的電路上外接一個(gè)或一組電阻元件。上拉是指電阻元件與電源相連接,下拉則是指電阻元件與地相連接。

ARM芯片往往都有很多的引腳,其中會(huì)有若干組 GPIO 引腳。GPIO 的全稱是:General purpose input/output,可以簡(jiǎn)單理解為這些引腳就是專門(mén)給我們自由實(shí)現(xiàn)軟件邏輯功能的。而為了節(jié)省硬件資源與開(kāi)發(fā)成本,通常同一個(gè)芯片引腳還可以有多個(gè)功能用途。我們?cè)诰幊虝r(shí)就需要首先確定好某個(gè)引腳的功能用途,然后才去設(shè)置引腳的值。因此,ARM芯片的引腳控制通常都需要操作到兩個(gè)寄存器

1、功能控制寄存器;

2、數(shù)值寄存器。

在軟件開(kāi)發(fā)過(guò)程中,首先通過(guò)功能控制寄存器設(shè)置好我們要用的引腳的功能用途,是普通GPIO模式還是其它功能,是輸入方向還是輸出方向。然后才是將對(duì)應(yīng)的電平值寫(xiě)到數(shù)值寄存器中。

在編程編寫(xiě)完成后,需要編譯生成可執(zhí)行文件才能在ARM芯片上運(yùn)行。

編譯過(guò)程通常都使用 Linux 操作系統(tǒng)來(lái)完成。編譯還需要使用到專用的“編譯鏈”,即與要運(yùn)行該程序的平臺(tái)相匹配的 gcc 工具。PC 端的 Linux 系統(tǒng)默認(rèn)的 gcc 是針對(duì) x86 架構(gòu)芯片的,用它所編譯出來(lái)的可執(zhí)行程序只能在 x86 架構(gòu)芯片上運(yùn)行。而與平臺(tái)相匹配的 gcc 工具需要自行下載安裝,或者可以詢問(wèn)芯片廠商索要。

ARM裸機(jī)開(kāi)發(fā)模式還被稱為“交叉開(kāi)發(fā)環(huán)境”。它是指程序的開(kāi)發(fā)與運(yùn)行是分開(kāi)完成的。通常我們都使用PC來(lái)編寫(xiě)、編譯程序,然后再將編譯生成的可執(zhí)行程序下載到開(kāi)發(fā)板中運(yùn)行。這種開(kāi)發(fā)環(huán)境就叫“交叉開(kāi)發(fā)環(huán)境”。

有些開(kāi)發(fā)板在出廠時(shí)會(huì)預(yù)置 uboot 程序,在 uboot 模式下可以直接通過(guò) loadb 命令將程序下載到開(kāi)發(fā)板內(nèi)存中,然后再通過(guò) go + 內(nèi)存地址 這條命令來(lái)運(yùn)行我們的“裸機(jī)程序”。當(dāng)然,這種模式不是所有的 ARM 開(kāi)發(fā)板都支持的,具體要看廠商是否有提供這個(gè)功能。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    135

    文章

    9582

    瀏覽量

    393431
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11320

    瀏覽量

    225792
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    918

    瀏覽量

    43868
  • 嵌入式開(kāi)發(fā)

    關(guān)注

    18

    文章

    1167

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    ARM嵌入式系統(tǒng)基礎(chǔ)教程》下載

    ARM嵌入式系統(tǒng)基礎(chǔ)教程簡(jiǎn)介:本書(shū)是《ARM嵌入式系統(tǒng)系列教程》中的理論課教材。以PHILIPS
    發(fā)表于 04-04 23:27

    什么是裸機(jī)開(kāi)發(fā)與linux嵌入式開(kāi)發(fā)

    裸機(jī)開(kāi)發(fā)與linux嵌入式開(kāi)發(fā)1.裸機(jī)開(kāi)發(fā)2.linux嵌入式開(kāi)發(fā)1.
    發(fā)表于 11-08 06:47

    基于ARM嵌入式開(kāi)發(fā)

    基于ARM嵌入式開(kāi)發(fā):華清遠(yuǎn)見(jiàn)/孫天澤基于ARM嵌入式開(kāi)發(fā)內(nèi)容有:ARM簡(jiǎn)介,基于ARM
    發(fā)表于 10-04 08:49 ?83次下載

    ARM嵌入式系統(tǒng)開(kāi)發(fā)-軟件設(shè)計(jì)與優(yōu)化

    ARM嵌入式系統(tǒng)開(kāi)發(fā)-軟件設(shè)計(jì)與優(yōu)化
    發(fā)表于 02-11 09:57 ?94次下載
    <b class='flag-5'>ARM</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)開(kāi)發(fā)</b>-軟件設(shè)計(jì)與優(yōu)化

    嵌入式ARM系統(tǒng)原理與實(shí)例開(kāi)發(fā)

    嵌入式ARM系統(tǒng)原理與實(shí)例開(kāi)發(fā) 非常實(shí)用的資料
    發(fā)表于 12-29 17:28 ?0次下載

    ARM嵌入式軟件開(kāi)發(fā)

    ARM嵌入式軟件開(kāi)發(fā)ARM嵌入式軟件開(kāi)發(fā)ARM
    發(fā)表于 01-15 17:29 ?65次下載

    嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開(kāi)發(fā)ARM與uC/OS-Ⅱ

    嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開(kāi)發(fā) ——ARM與uC/OS-Ⅱ
    發(fā)表于 11-08 17:32 ?0次下載

    基于ARM嵌入式系統(tǒng)程序開(kāi)發(fā)要點(diǎn)(1)

    基于ARM嵌入式系統(tǒng)程序開(kāi)發(fā)要點(diǎn)(1)
    發(fā)表于 01-14 12:33 ?7次下載

    嵌入式系統(tǒng)裸機(jī)編程的內(nèi)存管理簡(jiǎn)介

    ,可能造成內(nèi)存泄漏,重則造成內(nèi)存訪問(wèn)異常。導(dǎo)致系統(tǒng)死機(jī)。 ? 嵌入式產(chǎn)品,對(duì)穩(wěn)定性要求及其嚴(yán)格。動(dòng)不動(dòng)就死機(jī),那可就麻煩大了。以下,是我本人對(duì)嵌入式
    的頭像 發(fā)表于 12-28 09:44 ?4031次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>裸機(jī)</b>編程的內(nèi)存管理簡(jiǎn)介

    ARM嵌入式系統(tǒng)開(kāi)發(fā)_Android應(yīng)用開(kāi)發(fā)入門(mén)(基礎(chǔ)版)

    ARM嵌入式系統(tǒng)開(kāi)發(fā)_Android應(yīng)用開(kāi)發(fā)入門(mén)(基礎(chǔ)版)(嵌入式開(kāi)發(fā)板教程)-該文檔為ARM
    發(fā)表于 08-04 11:02 ?0次下載
    <b class='flag-5'>ARM</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)開(kāi)發(fā)</b>_Android應(yīng)用<b class='flag-5'>開(kāi)發(fā)</b>入門(mén)(基礎(chǔ)版)

    ARM嵌入式系統(tǒng)原理及應(yīng)用教程

    ARM嵌入式系統(tǒng)原理及應(yīng)用教程(嵌入式開(kāi)發(fā)全套課程)-該文檔為ARM嵌入式
    發(fā)表于 08-04 11:33 ?42次下載
    <b class='flag-5'>ARM</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>原理及應(yīng)用教程

    ARM嵌入式系統(tǒng)復(fù)習(xí)要點(diǎn)

    ARM嵌入式系統(tǒng)復(fù)習(xí)要點(diǎn)(嵌入式開(kāi)發(fā)版使用什么系統(tǒng)好)-文檔為ARM
    發(fā)表于 08-04 15:07 ?13次下載
    <b class='flag-5'>ARM</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>復(fù)習(xí)要點(diǎn)

    嵌入式】基于ARM嵌入式Linux開(kāi)發(fā)總結(jié)

    前言嵌入式知識(shí)點(diǎn)復(fù)習(xí)一嵌入式知識(shí)點(diǎn)復(fù)習(xí)二 --體系結(jié)構(gòu)嵌入式知識(shí)點(diǎn)復(fù)習(xí)三 --ARM-LINUX嵌入式開(kāi)發(fā)環(huán)境
    發(fā)表于 10-19 18:32 ?28次下載
    【<b class='flag-5'>嵌入式</b>】基于<b class='flag-5'>ARM</b>的<b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>開(kāi)發(fā)</b>總結(jié)

    ARM嵌入式系統(tǒng)

    一、常見(jiàn)的ARM嵌入式系統(tǒng)開(kāi)發(fā)環(huán)境配置:1、編譯器/匯編器2、指令系統(tǒng)模擬器3、在線仿真器或調(diào)試探測(cè)器4、目標(biāo)開(kāi)發(fā)板5、跟蹤捕捉儀6、
    發(fā)表于 10-20 18:20 ?6次下載
    <b class='flag-5'>ARM</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>

    基于ARM核的嵌入式系統(tǒng)異常處理機(jī)制的設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于ARM核的嵌入式系統(tǒng)異常處理機(jī)制的設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 10-27 09:00 ?0次下載
    基于<b class='flag-5'>ARM</b>核的<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>異常</b>處理機(jī)制的設(shè)計(jì)
    区。| 广水市| 山东| 舞阳县| 江门市| 平顶山市| 四会市| 贡嘎县| 高陵县| 大荔县| 新津县| 无棣县| 大石桥市| 津南区| 通江县| 监利县| 芜湖县| 探索| 商洛市| 谷城县| 丹东市| 攀枝花市| 沅江市| 滦南县| 高要市| 邳州市| 平昌县| 四子王旗| 东莞市| 尚义县| 县级市| 东乡县| 阿合奇县| 萍乡市| 汉阴县| 长春市| 钦州市| 海淀区| 滕州市| 白朗县| 阿城市|