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

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

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

3天內不再提示

ARM嵌入式系統的異常及裸機開發設計

454398 ? 來源:博客園 ? 作者: 碎歲語 ? 2020-10-07 15:22 ? 次閱讀

1、ARM的異常

異常在嵌入式開發中是很常見的事件,它也是非常重要的事件。簡單來說,異常就是一種會打斷程序正常執行的事件。異常通常又稱為“中斷”。

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

1、中斷

IRQ / FIQ 由外部硬件觸發的中斷。

2、軟中斷

soft interrupt 由系統調用的中斷事件,由軟件產生的中斷事件。

3、復位

Reset

4、未定義指令

5、數據異常

例如數據越界等。

中斷:

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

但大多數的嵌入式系統都有多于兩個的外部中斷源,為了能正常響應所有的外部中斷事件,就需要一個“中斷控制器”。

嵌入式系統的中斷響應架構大致如下圖所示:

當在短時間內產生大量中斷事件時,CPU無法保證能及時響應所有的中斷事件。為了避免發生丟失中斷的問題,每一個中斷事件都會作一個“記錄”,即我們常見的設置“中斷標志位”。當CPU查到中斷標志位的值有效時,就會發起一個中斷事件。當然,一個中斷事件我們一般只需要處理一次,因此,通常我們要在中斷處理函數中將對應的中斷標志位作清除操作。

ARM 系統會有一個“中斷向量表”的機制來專門存儲中斷響應函數地址。

2、裸機開發

什么是祼機開發?

祼機開發就是指在嵌入式開發板中,直接編寫程序控制硬件設備的開發模式。在開發板上沒有操作系統,板上各種內圍、外圍硬件資源均由需要使用到它的程序來全權操作。

祼機開發除了軟件編程能力,還有一個很重要的就是要能看懂硬件電路圖以及各種芯片手冊。

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

在電路圖設計中,有一個概念非常常見:上拉、下拉電阻。它們是指在對應元器件的電路上外接一個或一組電阻元件。上拉是指電阻元件與電源相連接,下拉則是指電阻元件與地相連接。

ARM芯片往往都有很多的引腳,其中會有若干組 GPIO 引腳。GPIO 的全稱是:General purpose input/output,可以簡單理解為這些引腳就是專門給我們自由實現軟件邏輯功能的。而為了節省硬件資源與開發成本,通常同一個芯片引腳還可以有多個功能用途。我們在編程時就需要首先確定好某個引腳的功能用途,然后才去設置引腳的值。因此,ARM芯片的引腳控制通常都需要操作到兩個寄存器

1、功能控制寄存器;

2、數值寄存器。

在軟件開發過程中,首先通過功能控制寄存器設置好我們要用的引腳的功能用途,是普通GPIO模式還是其它功能,是輸入方向還是輸出方向。然后才是將對應的電平值寫到數值寄存器中。

在編程編寫完成后,需要編譯生成可執行文件才能在ARM芯片上運行。

編譯過程通常都使用 Linux 操作系統來完成。編譯還需要使用到專用的“編譯鏈”,即與要運行該程序的平臺相匹配的 gcc 工具。PC 端的 Linux 系統默認的 gcc 是針對 x86 架構芯片的,用它所編譯出來的可執行程序只能在 x86 架構芯片上運行。而與平臺相匹配的 gcc 工具需要自行下載安裝,或者可以詢問芯片廠商索要。

ARM裸機開發模式還被稱為“交叉開發環境”。它是指程序的開發與運行是分開完成的。通常我們都使用PC來編寫、編譯程序,然后再將編譯生成的可執行程序下載到開發板中運行。這種開發環境就叫“交叉開發環境”。

有些開發板在出廠時會預置 uboot 程序,在 uboot 模式下可以直接通過 loadb 命令將程序下載到開發板內存中,然后再通過 go + 內存地址 這條命令來運行我們的“裸機程序”。當然,這種模式不是所有的 ARM 開發板都支持的,具體要看廠商是否有提供這個功能。

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

    關注

    134

    文章

    9121

    瀏覽量

    368238
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10889

    瀏覽量

    212386
  • 中斷
    +關注

    關注

    5

    文章

    900

    瀏覽量

    41590
  • 嵌入式開發
    +關注

    關注

    18

    文章

    1033

    瀏覽量

    47632
收藏 人收藏

    評論

    相關推薦

    ARM嵌入式系統基礎教程》下載

    ARM嵌入式系統基礎教程簡介:本書是《ARM嵌入式系統系列教程》中的理論課教材。以PHILIPS
    發表于 04-04 23:27

    什么是裸機開發與linux嵌入式開發

    裸機開發與linux嵌入式開發1.裸機開發2.linux嵌入式開發1.
    發表于 11-08 06:47

    基于ARM嵌入式開發

    基于ARM嵌入式開發:華清遠見/孫天澤基于ARM嵌入式開發內容有:ARM簡介,基于ARM
    發表于 10-04 08:49 ?83次下載

    ARM嵌入式系統開發-軟件設計與優化

    ARM嵌入式系統開發-軟件設計與優化
    發表于 02-11 09:57 ?94次下載
    <b class='flag-5'>ARM</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系統開發</b>-軟件設計與優化

    嵌入式ARM系統原理與實例開發

    嵌入式ARM系統原理與實例開發 非常實用的資料
    發表于 12-29 17:28 ?0次下載

    ARM嵌入式軟件開發

    ARM嵌入式軟件開發ARM嵌入式軟件開發ARM
    發表于 01-15 17:29 ?65次下載

    嵌入式系統設計與實例開發ARM與uC/OS-Ⅱ

    嵌入式系統設計與實例開發 ——ARM與uC/OS-Ⅱ
    發表于 11-08 17:32 ?0次下載

    基于ARM嵌入式系統程序開發要點(1)

    基于ARM嵌入式系統程序開發要點(1)
    發表于 01-14 12:33 ?7次下載

    嵌入式系統裸機編程的內存管理簡介

    ,可能造成內存泄漏,重則造成內存訪問異常。導致系統死機。 ? 嵌入式產品,對穩定性要求及其嚴格。動不動就死機,那可就麻煩大了。以下,是我本人對嵌入式
    的頭像 發表于 12-28 09:44 ?3140次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b><b class='flag-5'>裸機</b>編程的內存管理簡介

    ARM嵌入式系統開發_Android應用開發入門(基礎版)

    ARM嵌入式系統開發_Android應用開發入門(基礎版)(嵌入式開發板教程)-該文檔為ARM
    發表于 08-04 11:02 ?0次下載
    <b class='flag-5'>ARM</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系統開發</b>_Android應用<b class='flag-5'>開發</b>入門(基礎版)

    ARM嵌入式系統原理及應用教程

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

    ARM嵌入式系統復習要點

    ARM嵌入式系統復習要點(嵌入式開發版使用什么系統好)-文檔為ARM
    發表于 08-04 15:07 ?13次下載
    <b class='flag-5'>ARM</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>復習要點

    嵌入式】基于ARM嵌入式Linux開發總結

    前言嵌入式知識點復習一嵌入式知識點復習二 --體系結構嵌入式知識點復習三 --ARM-LINUX嵌入式開發環境
    發表于 10-19 18:32 ?26次下載
    【<b class='flag-5'>嵌入式</b>】基于<b class='flag-5'>ARM</b>的<b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>開發</b>總結

    ARM嵌入式系統

    一、常見的ARM嵌入式系統開發環境配置:1、編譯器/匯編器2、指令系統模擬器3、在線仿真器或調試探測器4、目標開發板5、跟蹤捕捉儀6、
    發表于 10-20 18:20 ?6次下載
    <b class='flag-5'>ARM</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>

    基于ARM核的嵌入式系統異常處理機制的設計

    電子發燒友網站提供《基于ARM核的嵌入式系統異常處理機制的設計.pdf》資料免費下載
    發表于 10-27 09:00 ?0次下載
    基于<b class='flag-5'>ARM</b>核的<b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b><b class='flag-5'>異常</b>處理機制的設計
    主站蜘蛛池模板: a亚洲| 亚洲欧洲日韩综合| 2021久久精品免费观看| 国产精品久久久久久影院| 91午夜剧场| 中文在线1区二区六区| 少妇被按摩| aa三级动态图无遮无挡| 午夜性福利| 日本久本草精品| 狠狠色噜狠狠狠狠色综合久| youjizz国产| 天天色官网| 97精品伊人久久久大香线焦| 91成人在线免费视频| 久久青草精品一区二区三区| 久久美女性网| a级特黄毛片| 日韩美女影院| 日本xxxx69日本| 青青草99热久久| 亚洲人成电影在线小说网色| 日韩日韩| 国产一级做a爱免费观看| 亚洲视频国产| free性日韩| 精品一区亚洲| 婷婷丁香亚洲| 激情久久久久久久久久| 天天爽天天干天天操| 6080午夜| 综合色久| 嫩草影院在线入口| www.四虎影院在线观看| 久久99操| 欧美人成一本免费观看视频| 色综合久久中文综合网| 国产欧美日韩电影| 天天干天天操天天碰| 又粗又长又大真舒服好爽漫画| 亚洲伊人精品综合在合线|