日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

高级C语言教程-中断和设备驱动

發(fā)布時間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高级C语言教程-中断和设备驱动 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

簡述設(shè)備驅(qū)動、Boot Loader與BSP之間的區(qū)別!
設(shè)備驅(qū)動是介于底層硬件與操作系統(tǒng)之間的一層軟件。設(shè)備驅(qū)動的主要功能就是屏蔽硬件控制的具體細(xì)節(jié),對操作系統(tǒng)提供一個抽象的、統(tǒng)一的硬件資源訪問接口。
Boot Loader的概念。Boot Loader是一段固化在嵌入式系統(tǒng)目標(biāo)系統(tǒng)ROM(或者諸如Flash等非易失性存儲器)中的一段程序,他的主要作用就是引導(dǎo)操作系統(tǒng)(這也是為什么叫他Boot Lodaer 的原因)。
BSP,所謂的板級支持包類似于PC平臺上的BIOS(BasicInputOutput System,基本輸入輸出系統(tǒng))。一般而言,BSP也是一段固化在嵌入式系統(tǒng)目標(biāo)目標(biāo)系統(tǒng)ROM中的程序。
在UNIX系統(tǒng)中將文件抽象為字符流(Byte Sream),所謂的文件就是一個可以輸入/輸出的字符流。設(shè)備也可以被抽象為字符流,用戶對這個設(shè)備的讀和寫可以抽象為對這個字符流的讀和寫,將所有對設(shè)備的操作都抽象為對文件的操作,這樣做的好處就是;
第一,將設(shè)備和文件統(tǒng)一有利于操作系統(tǒng)的管理,實際上很多的外圍的設(shè)備天然的和文件系統(tǒng)相關(guān),比如磁盤驅(qū)動器,CF卡等,第二,不同的設(shè)備被抽象為文件,便于操作系統(tǒng)采用統(tǒng)一的方式管理不同的外為設(shè)備。
中斷處理模塊可能是設(shè)備驅(qū)動中最重要的部分之一,因為設(shè)備的異步特性,操作系統(tǒng)不可能采用輪詢的方式,對設(shè)備進行管理,采用中斷處理異步事件是唯一的選擇。

設(shè)備驅(qū)動的中斷處理程序主要包括

  • 將設(shè)備的數(shù)據(jù)從硬件FIFO中讀出來,并將數(shù)據(jù)存放到由設(shè)備驅(qū)動管理的軟件接收緩沖區(qū)中,或者將需要發(fā)送給硬件設(shè)備數(shù)據(jù)從驅(qū)動管理的緩沖區(qū)寫到硬件發(fā)送的FIFO中;
  • 如果是由于硬件設(shè)備故障或者狀態(tài)變化引起的中斷,中斷處理程序需要處理這些問題;
  • 在處理基本的數(shù)據(jù)接收和發(fā)送工作之后,對于有操作系統(tǒng)的系統(tǒng)而言,中斷處理程序需要通過調(diào)用一個系統(tǒng)調(diào)用的方式通知操作系統(tǒng)內(nèi)核中斷的發(fā)生,如果中斷的發(fā)生激活了操作系統(tǒng)中更高優(yōu)先級的任務(wù),OS內(nèi)核將通過任務(wù)調(diào)度器將任務(wù)由當(dāng)前任務(wù)切換到更高優(yōu)先級任務(wù),
    說明:并不是所有的外圍設(shè)備驅(qū)動都需要中斷處理程序,某些設(shè)備(如 LCD)通常情況下是不需要中斷處理的;
    中斷的處理過程一般由硬件和軟件兩部分共同完成。實現(xiàn)的部分有:
    中斷實現(xiàn)的兩種方式,硬件實現(xiàn)還要軟件實現(xiàn)方式的流程:
  • 雖然現(xiàn)在的RISC處理器的大多數(shù)指令可以在一個周期內(nèi)完成,但是依然存在一些特殊的指令必須在多個周期才能完成而這些指令運行期間CPU是不接受中斷請求的,比如ARM指令中的LDM和STM兩類指令,這些指令是多裝宅多存儲指令。他們的執(zhí)行時間取決于軟件程序員希望通過一條指令保存多少數(shù)據(jù),在最壞的情況下可能需要十幾個周期才能完成。
  • 幾乎所有的處理器在相應(yīng)中斷期間都是關(guān)閉中斷的,也就是說CPU相應(yīng)某個中斷請求的時候,硬件會自動的將程序狀態(tài)字中的中斷使能位清除(ARM處理器剛好相反在相應(yīng)中斷時硬件會自動的在CPSR中設(shè)置一位禁止中斷位),硬件之所以這樣設(shè)計是為了防止CPU相應(yīng)一個中斷期間又進入另一個中斷進而造成中斷現(xiàn)場保存的混亂。總之默認(rèn)情況下CPU相應(yīng)中斷之后不會在接受新的中斷,也就是不支持中斷的嵌套,CPU只有從該中斷處理程序中退出之后才可能相應(yīng)新的中斷,雖然,在CPU完成中斷現(xiàn)場保護工作之后,程序員可以通過軟件重新打開中斷以接收中斷嵌套,但是在通常的情況下,操作系統(tǒng)的任務(wù)調(diào)度只能發(fā)生在外層中斷返回時,對于嵌套的中斷返回將不會發(fā)生在任務(wù)調(diào)度。
  • 可重入函數(shù)和不可重入函數(shù)

    可重入函數(shù)主要用于多任務(wù)環(huán)境中,一個可重入的函數(shù)簡單來說就是可以被中斷的函數(shù),也就是說,可以在這個函數(shù)執(zhí)行的任何時刻中斷它,轉(zhuǎn)入OS調(diào)度下去執(zhí)行另外一段代碼,而返回控制時不會出現(xiàn)什么錯誤;而不可重入的函數(shù)由于使用了一些系統(tǒng)資源,比如全局變量區(qū),中斷向量表等,所以它如果被中斷的話,可能會出現(xiàn)問題,這類函數(shù)是不能運行在多任務(wù)環(huán)境下的。

    總結(jié)

    以上是生活随笔為你收集整理的高级C语言教程-中断和设备驱动的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 99久久亚洲精品日本无码 | 亚洲黄页网站 | 在线中文字幕亚洲 | 一本一道久久综合狠狠老精东影业 | 一边摸上面一边摸下面 | 亚洲熟女一区二区 | 中文字幕一区二区三区人妻电影 | 国产又黄又粗又猛又爽视频 | 美女黄色小视频 | 8090理论片午夜理伦片 | 日本免费专区 | 黄色三级免费观看 | 快播视频在线观看 | av一片 | 91二区| jizz黄色片| 日本在线视频播放 | 亚洲av无码国产精品麻豆天美 | 夜夜嗨网站 | 你懂的在线视频网站 | 亚洲av综合色区无码一区 | 欧美嫩草 | 亚洲欧美激情另类 | 99精品网站 | 亚洲欧美日韩精品在线 | www.激情五月 | 亚洲AV成人无码电影在线观看 | 日欧一级片 | 亚洲精品一区三区三区在线观看 | 精品乱子伦一区二区 | 性激情视频 | 91午夜交换视频 | 久久的色偷偷 | 久久久国产网站 | 欧美人喂奶吃大乳 | 久久久久久久国产精品美女 | 黑丝美女av | 国产精品亚洲视频 | 天堂中文资源在线 | 综合久久久久综合 | 丁香婷婷深情五月亚洲 | wwwyoujizz日本| 国产精品成人99一区无码 | 制服丝袜影音先锋 | 天天鲁 | 色精品视频 | 亚洲成年网 | 久久精品男人的天堂 | 欧美特级特黄aaaaaa在线看 | 亚洲综合在线一区 | 国产高清二区 | 女优视频在线观看 | 欧美日韩系列 | 国产极品粉嫩 | 亚洲精品18在线观看 | 欧美国产二区 | 极品91尤物被啪到呻吟喷水 | 三级精品视频 | 中文字幕在线观看第二页 | 欧美色视频一区二区三区 | 久久久久久久久久久久 | 国产精品一区二区性色av | 一起草最新网址 | www.四虎影视.com | 亚洲AV无码一区二区伊人久久 | 在线色网| 男生女生插插插 | 熟女高潮一区二区三区视频 | 久久伊人中文字幕 | 嫩草嫩草嫩草 | 手机成人在线 | 九九视频免费观看 | 九色porny丨精品自拍视频 | 国产精品久久久久永久免费看 | 五月天福利视频 | 久久黄网 | www.久久.com| 久久免费视频播放 | 奇米狠狠去啦 | 日韩毛片无码永久免费看 | 91精品久久久久久 | 日韩色黄大片 | 96精品| 制服一区| 男人都懂的网站 | 国产日产精品一区二区三区四区 | 99热这里只有精品在线 | 国产一区二区视频在线免费观看 | 日韩在线第二页 | 婷婷国产在线 | 日本成人免费视频 | 亚洲女同视频 | 国产一区二区三区在线免费观看 | 欧美 日韩 国产 中文 | 51嘿嘿嘿国产精品伦理 | 亚洲国产av一区二区 | 国产精品手机在线观看 | 91久久精品一区二区 | 日韩福利 |