天天看點

嵌入式作業系統---重點知識

嵌入式系統的特點:1、 精簡記憶體空間  2、待機時間長  3、可與外界裝置連接配接  4、動态加載應用程式  5、網絡通信

嵌入式處理器分類:1、嵌入式微處理器  2、嵌入式微控制器  3、嵌入式dsp處理器  4、嵌入式片上系統

mips:即“無内部互鎖流水級的微處理器”,其機制是盡量利用軟體辦法避免流水線中的資料相關問題。

arm處理器:arm處理器既是一個公司名字,也是一類微處理器的統稱,還是一種技術的名字。arm處理器主要用于工業控制、無線通信、網絡應用、消費類電子産品、成像和安全産品,一般采用risc架構。

實時嵌入式系統:是以執行特定功能設計的,可以嚴格按照時序執行功能的嵌入式系統,最大特點是程式的執行具有确定性。

典型的嵌入式作業系統:1、windows ce  2、symbian  3、embedded linux

嵌入式系統軟體組成:1、初始化引導代碼  2、闆級支援包  3、作業系統  4、通信協定棧   5、圖形使用者界面  6、應用軟體

嵌入式系統軟體結構:1、闆級支援包  2、作業系統  3、使用者應用軟體底層  4、使用者應用軟體高層

闆級支援包bsp:bsp是嵌入式作業系統介于硬體平台和作業系統之間的中間層軟體,主要用于屏蔽底層硬體多樣性,根據作業系統的要求完成對硬體的直接操作,向作業系統提供底層硬體資訊,并最終啟動作業系統。

bsp主要作用:1、初始化底層硬體,為作業系統提供底層硬體資訊  2、初始化相關硬體裝置,主要是儲存設備和通信裝置。3、檢測系統硬體是否正常  4、加載作業系統并啟動系統運作。

輪轉結構:一種非常簡單的結構,它沒有中斷沒有共享資料,無須考慮延遲時間,對于能用該結構成功解決的問題的系統來說它是首選。

主控端與目标機:開發環境:1、本地開發環境  2、交叉開發環境(分開放型和商業型)  。    運作交叉開發環境的pc即為主控端,嵌入式裝置即為目标機。

宿主系統通常帶有如下硬體:1、帶有高速緩存的高性能處理器  2、大容量ram  3、隻讀存儲器和基本輸入輸出  4、超大容量磁盤  5、鍵盤  6、滑鼠 7、網絡連接配接

連結器:将編譯過的應用程式代碼與庫os核心目标代碼連結在一起。

消息隊列特征:1、os提供了對消息隊列或消息的插入删除操作  2、在使用核心中用于隊列的函數之前,每個消息隊列都需要初始化  3、每個建立隊列都有一個id  4、每個隊列都有使用者可定義的大小。

排程器:排程器的一個重要目标就是有效的配置設定cpu時間片,同時提供良好的使用者體驗。

可排程實體:1、任務:獨立的執行線程,線程中包含獨立的可排程指令  2、程序:由核心提供的可排程對象。

異常:打斷處理器正常執行,并迫使處理器進入一個有特權的特殊指令的執行事件。

異常分為:1、同步異常:由内部事件引起的異常,例子:1)從一個奇數記憶體位址讀或寫操作将引起存儲器存取一個錯誤事件,并引起一個異常。2)造成一個被0除的運算

                     2、異步異常:由外部事件即與處理器指令無關的事件引發的異常,例子:1)按下嵌入式闆上的複位鍵  2)通信處理器子產品接收資料包

中斷:1、從是否可屏蔽分為:可屏蔽中斷和不可屏蔽中斷  2、從中斷源可分為:硬體中斷和軟體中斷  3、從出發方式可分為:邊緣觸發中斷和電平觸發中斷  4、從調用方式可分為:向量中斷、直接中斷和間接中斷。

異常的優先權:1、不同優先級的中斷源同時提出中斷請求,處理器首先響應優先級最高的  2、當處理器正對某一中斷源服務時,有比它優先級更高的中斷源提出中斷請求時,處理器中斷正在執行的中斷服務程式而去對優先級更高的中斷源進行服務,服務結束後再傳回原優先級較低的中斷服務程式繼續執行。

arm的異常中斷響應過程:1、将下一條指令位址存入相應的連結寄存器lr,以便程式在處理完異常之後從正确的位置重新開始執行。2、将cpsr的值複制到相應的spsr中

3、設定适當的cpsr位,包括改變處理器狀态進入arm狀态,改變處理器模式進入相應的異常模式,設定中斷禁止位禁止相應的中斷。4、設定pc使其從相應的異常向量位址

取下一條指令執行,進而跳轉到相應的異常處理程式處。

資源同步:多任務的通路必須同步,以維護共享資源的完整性,此過程稱為資源同步,常見方法有:1)中斷鎖 2)搶占鎖

死鎖:系統中執行多個并發線程被永久阻塞因為資源的需求絕不能被滿足。

死鎖産生的條件:1、互相排斥  2、非搶先  3、保持和等待  4、圓圈等待

資源請求模型:1、單資源請求模型  2、and資源請求模型  3、or 資源請求模型  4、and-or 請求模型

死鎖檢測:死鎖檢測算法是一個全局算法,它常常用來檢測整個系統中的死鎖。

優先級倒置:1、優先級繼承:強令低優先級任務繼承 與之共享資源并被挂起的任意高優先級任務的優先等級

                        2、優先級頂置:為每種資源都配置設定優先級

android的linux平台組成:1、作業系統  2、中間件  3、使用者界面  4、應用軟體

android的系統構架:分層構架:1、應用程式層(java開發) 2、應用程式架構層(java開發) 3、系統運作庫層(c、c++) 4、linux核心層(c語言實作)

android基于linux作業系統,由硬體、系統核心、系統服務、應用程式組成,和标準的linux核心一樣,android核心主要實作記憶體管理、程序排程、程序間通信等功能。

藍牙驅動:1、藍牙協定部分:包括hci接口、sco子產品、l2cap子產品、bnep子產品 ,2、藍牙控制器驅動部分:為基于sdio/uart/usb接口的藍牙裝置提供驅動。

framebuffer 幀緩沖:linux抽象出framebuffer來供使用者程序進行直接寫屏,framebuffer是圖形硬體裝置的抽象層,它描述視訊硬體的幀緩沖區,提供一組非常友善的應用軟體通路圖形硬體的接口。

android工程目錄:src、gen、assets、res、androidmanifest.xml

android應用程式由4個子產品構造而成:activity、intent、content provider、service.

程式設計題:

android資料庫

插入方法:

public long insert(string detail,string time,string source)

{

    system.out.println("start insert");

    sqlitedatabase db= this.getwritabledatabase();

    contentvalues cv= new contentvalues();

    cv.put("detail", detail);

    cv.put("time", time);

    cv.put("source", source);

    long row=db.insert("spring",null,cv);

    system.out.println("finish insert");

    return row;

}

查詢資料方法

public cursor select()

system.out.println("select");

 sqlitedatabase db= this.getreadabledatabase();

 system.out.println("select");

 cursor cursor=db.query("spring",null,null,null,null,null,null);

system.out.println("6.5");

return cursor;

更新資料方法

public void update(int id,string item,string text)

 sqlitedatabase db= this.getwritabledatabase();

 string where="_id"+"=?";

 string[] wherevalue={integer.tostring(id)};

 contentvalues cv= new contentvalues();

      cv.put(item, text);

      db.update("spring",cv,where,wherevalue);