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

jkxqj發表於2014-04-17

嵌入式系統的特點: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);
}


相關文章