1 FPGA 和CPLD
##1.1 FPGA和CPLD的區(qū)別差異
①CPLD更適合完成各種算法和組合邏輯,F(xiàn)PGA更適合于完成時序邏輯。換句話說衍腥,F(xiàn)PGA更適合于觸發(fā)器豐富的結(jié)構(gòu)蚪缀,而CPLD更適合于觸發(fā)器有限而乘積項豐富的結(jié)構(gòu)疹启。
②CPLD的連續(xù)式布線結(jié)構(gòu)決定了它的時序延遲是均勻的和可預(yù)測的林说,而FPGA的分段式布線結(jié)構(gòu)決定了其延遲的不可預(yù)測性粘驰。
③在編程上FPGA比CPLD具有更大的靈活性屡谐。CPLD通過修改具有固定內(nèi)連電路的邏輯功能來編程,F(xiàn)PGA主要通過改變內(nèi)部連線的布線來編程蝌数;FPGA可在邏輯門下編程,而CPLD是在邏輯塊下編程度秘。
④FPGA的集成度比CPLD高顶伞,具有更復(fù)雜的布線結(jié)構(gòu)和邏輯實現(xiàn)。
⑤CPLD比FPGA使用起來更方便剑梳。CPLD的編程采用E2PROM或FASTFLASH技術(shù)唆貌,無需外部存儲器芯片,使用簡單垢乙。而FPGA的編程信息需存放在外部存儲器上锨咙,使用方法復(fù)雜。 ⑥CPLD的速度比FPGA快追逮,并且具有較大的時間可預(yù)測性酪刀。這是由于FPGA是門級編程,并且CLB之間采用分布式互聯(lián)钮孵,而CPLD是邏輯塊級編程骂倘,并且其邏輯塊之間的互聯(lián)是集總式的。
⑦在編程方式上巴席,CPLD主要是基于E2PROM或FLASH存儲器編程历涝,編程次數(shù)可達1萬次,優(yōu)點是系統(tǒng)斷電時編程信息也不丟失漾唉。CPLD又可分為在編 程器上編程和在系統(tǒng)編程兩類荧库。FPGA大部分是基于SRAM編程,編程信息在系統(tǒng)斷電時丟失赵刑,每次上電時分衫,需從器件外部將編程數(shù)據(jù)重新寫入SRAM中。其 優(yōu)點是可以編程任意次料睛,可在工作中快速編程丐箩,從而實現(xiàn)板級和系統(tǒng)級的動態(tài)配置。
⑧CPLD保密性好恤煞,F(xiàn)PGA保密性差屎勘。
⑨一般情況下,CPLD的功耗要比FPGA大居扒,且集成度越高越明顯概漱。
隨著復(fù)雜可編程邏輯器件(CPLD)密度的提高,數(shù)字器件設(shè)計人員在進行大型設(shè)計時喜喂,既靈活又容易瓤摧,而且產(chǎn)品可以很快進入市常許多設(shè)計人員已經(jīng)感受到 CPLD容易使用竿裂。時序可預(yù)測和速度高等優(yōu)點,然而照弥,在過去由于受到CPLD密度的限制腻异,他們只好轉(zhuǎn)向FPGA和ASIC。現(xiàn)在这揣,設(shè)計人員可以體會到密度 高達數(shù)十萬門的CPLD所帶來的好處悔常。
1.2 FPGA的組成
CLB : 可編程邏輯宏單元
IOB :可編程輸入輸出單元
互聯(lián)資源:可編程的互聯(lián)開關(guān)矩陣、內(nèi)部長線给赞、總線等
重構(gòu)邏輯和程序存儲器
2 嵌入式微處理器基礎(chǔ)
2.1 結(jié)構(gòu)和類型
立即尋址就是指令當(dāng)中自帶數(shù)據(jù)机打,直接讀取,最快片迅;
直接尋址就是指令中存放的是地址残邀,直接解析這個地址;
間接尋址就只指令中存放的是地址的地址柑蛇,或者是存放地址的寄存器芥挣,最慢。
2.2 多核結(jié)構(gòu)
對于多核CPU唯蝶,優(yōu)化操作系統(tǒng)任務(wù)調(diào)度算法是保證效率的關(guān)鍵九秀。一般任務(wù)調(diào)度算法有全局隊列調(diào)度和局部隊列調(diào)度。前者是指操作系統(tǒng)維護一個全局的任務(wù)等待隊列粘我,當(dāng)系統(tǒng)中有一個CPU核心空閑時鼓蜒,操作系統(tǒng)就從全局任務(wù)等待隊列中選取就緒任務(wù)開始在此核心上執(zhí)行。這種方法的優(yōu)點是CPU核心利用率較高征字。后者是指操作系統(tǒng)為每個CPU內(nèi)核維護一個局部的任務(wù)等待隊列都弹,當(dāng)系統(tǒng)中有一個CPU內(nèi)核空閑時,便從該核心的任務(wù)等待隊列中選取恰當(dāng)?shù)娜蝿?wù)執(zhí)行匙姜,這種方法的優(yōu)點是任務(wù)基本上無需在多個CPU核心間切換畅厢,有利于提高CPU核心局部Cache命中率。目前多數(shù)多核CPU操作系統(tǒng)采用的是基于全局隊列的任務(wù)調(diào)度算法氮昧。
多核的中斷處理和單核有很大不同框杜。多核的各處理器之間需要通過中斷方式進行通信,所以多個處理器之間的本地中斷控制器和負責(zé)仲裁各核之間中斷分配的全局中斷控制器也需要封裝在芯片內(nèi)部袖肥。
另外,多核CPU是一個多任務(wù)系統(tǒng)咪辱。由于不同任務(wù)會競爭共享資源,因此需要系統(tǒng)提供同步與互斥機制椎组。而傳統(tǒng)的用于單核的解決機制并不能滿足多核油狂,需要利用硬件提供的“讀-修改-寫”的原子操作或其他同步互斥機制來保證。
Big_endian ,little-endian 大的結(jié)尾,小的結(jié)尾(結(jié)尾指的是小的地址)
4 # 嵌入式微處理器中斷和異常
4.1 異常
異常就是正常的用戶程序被暫時中止专筷,處理器就進入異常模式弱贼。
ARM CPU的異常分為:復(fù)位異常、中斷異常(IRQ,FIR)磷蛹、預(yù)取指令中止異常吮旅、未定義指令異常、軟件中斷指令異常弦聂、數(shù)據(jù)中止訪問異常鸟辅。
中斷:
軟件中斷指令(swi)異常(軟件中斷指令)
異常是應(yīng)用程序自己調(diào)用時產(chǎn)生的,用于用戶程序申請訪問硬件資源時莺葫,例如:printf()打 印函數(shù),要將用戶數(shù)據(jù)打印到顯示器上枪眉,用戶程序要想實現(xiàn)打印必須申請使用顯示器捺檬,而用戶程序又沒有外設(shè)硬件的使用權(quán),只能通過使用軟件中斷指令切換到內(nèi)核態(tài)贸铜,通過操作系統(tǒng)內(nèi)核代碼來訪問外設(shè)硬件堡纬,內(nèi)核態(tài)是工作在特權(quán)模式下,操作系統(tǒng)在特權(quán)模式下完成將用戶數(shù)據(jù)打印到顯示器上蒿秦。這樣做的目的無非是為了保護操 作系統(tǒng)的安全和硬件資源的合理使用烤镐,該異常在管理模式下處理。
硬件中斷:
硬件中斷是由外設(shè)引發(fā)的, 軟中斷是執(zhí)行中斷指令產(chǎn)生的.
硬件中斷的中斷號是由中斷控制器提供的, 軟中斷的中斷號由指令直接指出, 無需使用中斷控制器.
硬件中斷是可屏蔽的, 軟中斷不可屏蔽.
硬件中斷處理程序要確保它能快速地完成任務(wù), 這樣程序執(zhí)行時才不會等待較長時間, 稱為上半部.
軟中斷處理硬中斷未完成的工作, 是一種推后執(zhí)行的機制, 屬于下半部.
不可屏蔽中斷:
不可屏蔽中斷屬于 中斷請求 的一種棍鳖。外部不可屏蔽中斷請求經(jīng)由專門的CPU針腳NMI炮叶,通知CPU發(fā)生了災(zāi)難性事件,如電源掉電渡处、總線奇偶位出錯等镜悉。內(nèi)部不可屏蔽中斷請求是CPU內(nèi)部自發(fā)產(chǎn)生的,如存儲器讀寫出錯医瘫、溢出中斷侣肄、除法出錯中斷等。NMI線上中斷請求是不可屏蔽的(既無法禁止的)醇份、而且立即被CPU鎖存稼锅。因此NMI是邊沿觸發(fā),不需要電平觸發(fā)僚纷。NMI的優(yōu)先級也比INTR高矩距。不可屏蔽中斷的類型指定為2,在CPU響應(yīng)NMI時畔濒,不必由中斷源提供中斷類型碼剩晴,因此NMI響應(yīng)也不需要執(zhí)行總線周期INTA。
可屏蔽中斷:
可屏蔽中斷由有中斷能力的外圍設(shè)備所產(chǎn)生,包括處在定時模式的定時器溢出赞弥。每個可屏蔽中斷源可以由中斷使能位所單獨關(guān)閉毅整,或者由由狀態(tài)寄存器中的通用中斷使能位GIE一齊關(guān)閉
5 嵌入式系統(tǒng)的存儲體系
5.1 層次結(jié)構(gòu):
寄存器-----內(nèi)部緩存(SRAM)--外部緩存(DDRAM,SRAM等)--主存貯(flash等)
---存儲器(磁盤等)---遠程二級存儲(web服務(wù)器绽左,分布式文件系統(tǒng))
5.2 MMU的功能和作用
將邏輯地址轉(zhuǎn)換成物理地址悼嫉。內(nèi)存映射。
內(nèi)存映射
存儲區(qū)訪問權(quán)限控制
設(shè)置虛擬存儲空間的緩沖特性
5.2常見的RAM類型
SRAM:靜態(tài)RAM拼窥,不用刷新戏蔑,速度非常快鲁纠,常用于內(nèi)部cache总棵。需要晶體管多(6個),價格昂貴改含。SRAM有四種引腳: CE =1 ,data禁用情龄。 Addres 是一組地址線。
DRAM: 動態(tài)隨機存儲器捍壤。在刷新的時間需要插入等待時間骤视。
引腳: 行地址選擇線
: 列地址選擇線。
DDRAM: SDRAM只能工作在133MHZ鹃觉。 DDRAM是基于SDRAM专酗。芯片內(nèi)部的數(shù)據(jù)寬度增大一倍〉辽龋可以在上升沿和下降丫刷新數(shù)據(jù)祷肯。帶寬和傳輸速率都增大了一倍。
FLASH:只能從1變成0粱玲,所以寫入之前需要先擦除躬柬。擦除最小的單位是一個區(qū)塊,而不是一個單位抽减。非容易丟失的內(nèi)存允青。
NORFLASHL:程序可以直接運行(帶SRAM接口),寫入速度慢卵沉。讀速度快颠锉。代碼閃存。
NANDflash: 程序不能直接運行史汗,寫入快(U盤)琼掠。隨機讀取能力差⊥W玻基于NAND的閃存可以取代硬盤瓷蛙。數(shù)據(jù)閃存悼瓮。
NVRAM: 常的,我們將數(shù)據(jù)斷電后仍能保留的半導(dǎo)體存儲器稱為“非易失性(或非發(fā)揮性)隨機訪問存儲器”——Non-Volatile Random Access Memory艰猬,即NVRAM横堡,而像DRAM與SRAM這樣的存儲器則就稱為NVRAM:
Non-Volatile RAM. The target is to have a electrical device that could be accessed quite fast, most of the time the content is calculated by bytes and the content could be saved after power down. There are different technical ways to implement this concept such as EEPROM which is very common. Please note, in mobile phone design, most of the time one or two sectors of ROM (most of the time it is FLASH) will be used to simulate NVRAM, the only reason is cost saving since ROM is a "must" but NVRAM is not.
FLASH: One kind of ROM and the difference to other ROM is semiconductor level. Please note, FLASH must be read/write by sectors but NVRAM should be read/write by bytes. It is why NVRAM driver have to implement an algorithm such as copying all the content in one sector to RAM first.
高速緩存的分類:
cache: 能夠減少內(nèi)存的平均訪問時間。
分類: (1)統(tǒng)一cache 和獨立的數(shù)據(jù)冠桃、
寫通cache 和寫回cache:
寫通cache: CPU 在更新cache時命贴,同時更新主存
寫回cache: CPU在更新cache的時候,不更新主存食听。
cache和內(nèi)存都分成相同大小的塊胸蛛。主存地址可以由塊號M和塊內(nèi)地址N組成。 Cache地址也由塊號m和塊內(nèi)地址n組成樱报。
CPU訪問Cache時葬项,CPU送來主存地址,放到主存地址寄存器中迹蛤,然后通過地址變換部件變成cache的塊號m玷室,并放到cache的地址寄存器中。同時將主存中的塊內(nèi)地址N直接作為cache的塊內(nèi)地址n送到cache的地址寄存器中笤受。如果地址變換成功(命中),就用得到的cache地址訪問cache敌蜂。從cache中取出數(shù)據(jù)送到CPU中箩兽。如果變換不成功,則產(chǎn)生cache失效的消息章喉。則直接讀主存到CPU汗贫,同時放到cache中。如果cache滿了秸脱,就要采用替換策略進行替換落包。
直接地址映射和變換:
組相關(guān)聯(lián)地址映射和變換:命中率高,每個組有n個單元摊唇。
全關(guān)聯(lián)地址映射和變換: 主存中任何一個塊可以映射到內(nèi)存的任意位置咐蝇。
cache的替換: 輪換法和隨機替換法
6 外設(shè)
6.1 A/D 接口和原理
A/D轉(zhuǎn)換的方法: 計數(shù)法,雙積分法巷查, 和逐次逼近法。
優(yōu)點: 簡單 缺點:速度慢
雙積分式: 雙積分式A/D的基本原理是對輸入的模擬電壓和參考電壓進行兩次積分、轉(zhuǎn)換成與輸入電壓均值成正比的時間間隔浅浮。具有很高的抗工頻干擾暴浦,轉(zhuǎn)換精度高,但是速度很慢崇败。朱
逐次逼近法:最高位放置位1 盅称,如果高于Vi,最高位清零,如果低于Vi缩膝,控制電路保留最高位混狠,次高位放置為1,繼續(xù)比較逞盆。實質(zhì)是對分搜索法
特點:速度快檀蹋,轉(zhuǎn)換精度高。最常用的方法云芦。
重要的指標:
分辨率和精度:
LSB所對應(yīng)的電平值來表述
分辨率高俯逾,精度不一定高,精度受到溫度漂移舅逸,線性度等影響
絕對精度: 誤差的最大值桌肴。
相對精度;絕對精度/量程 *100%
轉(zhuǎn)換時間
量程:
6.2 D/A 的原理
采用T形網(wǎng)絡(luò)將數(shù)字轉(zhuǎn)換成模擬電流琉历,然后將電流轉(zhuǎn)換成電壓輸出(運放)坠七。
D/A 轉(zhuǎn)換的分類:
電壓型: 無放大輸出部分的延遲,常用作高速D/A (高阻抗負載)
電流型: 外接電流電壓轉(zhuǎn)換旗笔,轉(zhuǎn)換到電壓彪置。(接運放)。
乘算型:
主要指標:
分辨率: 最小的模擬量輸出蝇恶。
建立時間: 穩(wěn)定所需的時間拳魁。
6.3 LCD
LCD:耗電省,體積小撮弧。
如果電流流過潘懊,液晶分子會以電流的方向排列。
如果提供了帶有細小溝槽的外層贿衍,將液晶倒入后授舟,液晶分子會順著溝槽排列。并且內(nèi)層和外層是同樣的排列方式贸辈。
液晶層允許光線扭轉(zhuǎn)释树。能夠過濾除了從特殊角度射入的光線。如果液晶層扭轉(zhuǎn)裙椭,光線將會隨之扭轉(zhuǎn)躏哩,以不同的方向從另一個方向射出。
讓液晶分子發(fā)生扭轉(zhuǎn)
6.4 音頻和視頻接口
音頻:PCM: 光盤
MPEG(MP3):
AC3:TV揉燃,HDTV
編碼或者解碼音頻的總線是IIS扫尺。 分時復(fù)用數(shù)據(jù)線,信道選擇線炊汤,時鐘線正驻。
6.7 串口
232串行總線:
RS422 : 差分傳輸
RS485 : 幾千米距離 差分傳輸
6.8 并行總線接口
并口: LPT: 分為SPP(標準)弊攘,EPP(增強),和ECP(擴展).
IEEE488總線: SCSI總線姑曙,MXI總線
串口總線 USB總線: 通用串行總線
特點:(1)使用簡單
(2) 每個USB設(shè)備有主機襟交,最大127級
(3)較低成本電纜,較強的糾錯能力
USB系統(tǒng): USB主機伤靠,USb設(shè)備和USB互聯(lián)
USB設(shè)備: 有HUB和Function功能
每個USB系統(tǒng)只有一個主機捣域,到主計算機的USB接口被稱為主控制器。
USB協(xié)議: 查詢協(xié)議
USB上鎖掛連的外設(shè)通過主機調(diào)度和基于令牌的協(xié)議共享USB帶寬宴合。
健壯性: 差分驅(qū)動和屏蔽保護
控制器和數(shù)據(jù)域的CRC校驗
連接斷開檢測
協(xié)議自我修復(fù)
對數(shù)據(jù)的流量控制
采用數(shù)據(jù)管道和控制管道
USB接口的原理: 主機啟動或是USB插入的時候都要對設(shè)備進行配置焕梅。
USB設(shè)備與主機的問答過程。
SPI: 同步協(xié)議接口
四種工作模式:
時鐘級性: 空閑SCK的狀態(tài)
時鐘相位:數(shù)據(jù)輸出上升沿還是下降沿有效
IIC 總線:
主發(fā)送卦洽,主接收贞言,從發(fā)送,從接收
IIC協(xié)議起始位
SCL為高電平時阀蒂,SDA出現(xiàn)下降沿该窗,產(chǎn)生一個起始位。
IIC協(xié)議結(jié)束位
SCL為高電平時蚤霞,SDA出現(xiàn)上升沿酗失,產(chǎn)生一個結(jié)束位。
IIC讀寫單字節(jié)時序
IIC主機對IIC從機寫入數(shù)據(jù)時昧绣,SDA上的每一位數(shù)據(jù)在SCL的高電平期間被寫入從機中级零。對于主機,在SCL的低電平期間改變要寫入的數(shù)據(jù)滞乙。
6.9 網(wǎng)絡(luò)接口
常用的協(xié)議標準IEEE802.3
編碼方式:曼徹斯特編碼或者差分曼徹斯特編碼。
曼徹斯特編碼: 用高到低的跳變表示0鉴嗤,從低到高的跳變表示1
曼徹斯特差分編碼:
以太網(wǎng)傳輸傳輸特點斩启,低位開始傳輸。
6.10 TCP/IP 協(xié)議
分層的協(xié)議醉锅。
應(yīng)用層兔簇,傳輸層,網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層硬耍,物理層
ARP: 從物理地址到MAC地址的轉(zhuǎn)換垄琐。
每層上的協(xié)議:
應(yīng)用層: BSD Sockets
傳輸層: TCP和UDP
網(wǎng)絡(luò)層: IP,ARP经柴,ICMP狸窘,IGMP
數(shù)據(jù)鏈路: MAc
物理層:
ICMP: IP的附屬協(xié)議。網(wǎng)絡(luò)控制報文協(xié)議坯认。
IP: Internet Protocol 網(wǎng)際協(xié)議:
所有TCP翻擒,UDP氓涣,ICMP和IGMP,都用IP數(shù)據(jù)包來傳輸陋气。最長655535字節(jié)
IP提供不可靠劳吠,無連接的數(shù)據(jù)包傳送服務(wù)。
可靠性由TCP來提供
IP數(shù)據(jù)包可以不按順序接收
TCP: 傳輸控制協(xié)議
面向連接可靠的協(xié)議巩趁。
UDP :不可靠 比如網(wǎng)絡(luò)管理 SNMP痒玩,域名解析DNS,簡單文本傳輸TFTP
靠端口號來識別上層的用戶议慰,F(xiàn)TP 21蠢古,Telent 的TCP 23,TFTP 的UDP 端口69
6.11 CAN 總線的接口和原理
控制器局域網(wǎng)
允許110個節(jié)點
1MB的傳輸速率
多主方式的串行總線
差分傳輸
6.12 WLAN 特點
- 802.11協(xié)議褒脯,定義了兩個RF傳輸和一個紅外傳輸
RF標準是跳頻擴頻和直接序列擴頻
工作范圍2.4G到2.4835G
現(xiàn)在被IEEE802.11b 取代
802.11a 是b 的后續(xù)標準
6.13 藍牙
2.4G ISM
基帶協(xié)議: 電路交換和分組交換便瑟。
傳輸距離短
采用個跳頻擴展技術(shù)
劃分為79個頻點,采用快速跳頻番川。(安全和抗干擾)到涂。開始頻率2.4G,終止頻率2.48G
1600跳/S
(5)時分復(fù)用多路訪問技術(shù)
語音支持颁督,語音信道CVSD編碼
糾錯計劃践啄,F(xiàn)EC向前的方案
組成: 無線單元,基帶單元(跳頻控制和數(shù)據(jù)和信息的打包)沉御,鏈路管理和控制(核心)
周期性的監(jiān)聽其他設(shè)備發(fā)出的查詢消息或者尋呼消息屿讽。
6.14 1394的應(yīng)用
串行總線技術(shù),串行工業(yè)總線標準
多媒體領(lǐng)域吠裆,比如DVD伐谈,攝像機燈
總線可以接63個設(shè)備
支持多種總線技術(shù)
即插即用
同步和異步出書
支持點對點通信
標準IEEE1212標準
較遠傳輸距離
協(xié)議棧: 物理層,鏈路及事物層试疙。管理層诵棵。
6.15 ZigBee的特點
簡單的說,ZigBee是一種高可靠的無線數(shù)傳網(wǎng)絡(luò)祝旷,類似于CDMA和GSM網(wǎng)絡(luò)履澳。ZigBee數(shù)傳模塊類似于移動網(wǎng)絡(luò)基站。通訊距離從標準的75m到幾百米怀跛、幾公里距贷,并且支持無限擴展。
ZigBee是一種無線連接吻谋,可工作在2.4GHz(全球流行)忠蝗、868MHz(歐洲流行)和915 MHz(美國流行)3個頻段上,分別具有最高250kbit/s、20kbit/s和40kbit/s的傳輸速率漓拾,它的傳輸距離在10-75m的范圍內(nèi),但可以繼續(xù)增加什湘。作為一種無線通信技術(shù)长赞,ZigBee具有如下特點:
7 電子電路設(shè)計
原理圖,網(wǎng)絡(luò)表 闽撤,設(shè)計印刷電路板
可靠性: 地線設(shè)計:單點和多點 數(shù)字和模擬 加粗 環(huán)路
電磁兼容設(shè)計: 合理的導(dǎo)線寬度 正確布線策略 去耦電容 抑制反射干擾 散熱設(shè)計
測試方法和原理: 故障檢測和診斷
放到測試設(shè)備上進行得哆,輸入一系列測試信號
JTAG測試接口
抗干擾設(shè)計:
8 嵌入式軟件以及常識
分類: 系統(tǒng)軟件,支撐軟件(中間件和可配置組件)哟旗、應(yīng)用軟件
系統(tǒng)軟件: 設(shè)備驅(qū)動贩据,操作系統(tǒng),中間件
應(yīng)用軟件: 手機軟件等
支撐軟件: 輔助開發(fā)的工具 系統(tǒng)分析闸餐,在線仿真饱亮,交叉編譯,模擬配置
無操作系統(tǒng): 循環(huán)輪轉(zhuǎn)和前后臺(增加了中斷)
中斷是前臺舍沙,輪循是后臺
系統(tǒng)引導(dǎo)(bootloader): 嵌入式系統(tǒng)上電后運行的第一段代碼近上。
PC中,位于只讀ROM的BIOS拂铡,和硬盤引導(dǎo)記錄中的引導(dǎo)程序壹无。
BIOS硬件檢測和資源分配。
操作系統(tǒng)運行之前運行的一小段程序感帅。(硬件初始化和內(nèi)存映射)斗锭。
初始化包括:片級初始化和板級初始化。
BSP:板級支持包:
所有與硬件相關(guān)的代碼失球♂牵基本思想是把嵌入式系統(tǒng)與硬件隔離
設(shè)備驅(qū)動程序: 對硬件初始化和管理。包括硬件啟動实苞,停用豺撑,讀,寫
分類:
單體結(jié)構(gòu): 模塊間可以互相調(diào)用
分層結(jié)構(gòu): 上一層只能調(diào)用下一層 MS_DOS
微內(nèi)核結(jié)構(gòu): 只保留核心的功能單元
多重獨立安全等級結(jié)構(gòu):
高可靠的嵌入式實時操作系統(tǒng): 相關(guān)的標準黔牵,區(qū)分概念前硫,隔離保護,健康監(jiān)控
多道程序技術(shù): 允許多個任務(wù)同時運行
進程的概念: 一個進程就是一個正在運行的程序荧止。
程序是一個靜態(tài)的概念,進程是一個動態(tài)的概念
特性: 動態(tài)性阶剑,獨立性和并發(fā)性
線程: 進程中的一條執(zhí)行流程跃巡。
對于同一個進程的各個線程,運行在相同的資源平臺上牧愁∷匦埃可以共享各進程的各種走遠。
任務(wù): 嵌入式中能夠獨立運行的實體稱為任務(wù)猪半。其實就是線程兔朦。
任務(wù)的狀態(tài);
運行狀態(tài):
就緒狀態(tài):
阻塞狀態(tài):
任務(wù)管理通過TCB來管理:
Task Control Block :任務(wù)控制塊兒偷线,用來管理和描述一個任務(wù)的數(shù)據(jù)結(jié)構(gòu)。
任務(wù)管理的信息(任務(wù)ID沽甥,任務(wù)狀態(tài)声邦,優(yōu)先級,調(diào)度摆舟,時間亥曹,指針,隊列)
CPU上下文信息恨诱,通用寄存器媳瞪,PC,PSW照宝,SP蛇受。每個進程都有一份邏輯的寄存器
資源信息管理: 段表指針,頁表信息等
TCB是任務(wù)存在的唯一標志厕鹃,有新任務(wù)創(chuàng)建兢仰,就有一個新的TCB產(chǎn)生。
任務(wù)切換過程:
將CPU上下文信息放到TCB中
跟新當(dāng)前的任務(wù)狀態(tài)
按照一定的策略熊响,選擇一個就緒的任務(wù)
修改新任務(wù)狀態(tài)
根據(jù)TCB內(nèi)容旨别,回復(fù)新任務(wù)的上下文環(huán)境。
任務(wù)隊列:
不同的狀態(tài)用不同的隊列表示汗茄。
運行隊列秸弛,阻塞隊列,就緒隊列
信號量S的阻塞隊列洪碳,所有等待該信號量的任務(wù)都掛在此隊列
郵箱M的隊列: 正在等待郵箱M的任務(wù)递览。‘
調(diào)度器的原理:
調(diào)度算法
不可搶占式: 一直運行瞳腌,直到被阻塞或者主動交出CPU使用權(quán)
可搶占式: 正在運行時被其他任務(wù)打斷绞铃。
一些關(guān)鍵的可以打斷一些不重要的:
調(diào)度算法的性能指標:
響應(yīng)時間,切換就緒任務(wù)的時間
周轉(zhuǎn)時間(提交到完成)
調(diào)度開銷 (時間和空間)
公平性
均衡性
吞吐量
算法: 先來現(xiàn)服務(wù): FCFS(first come first served)
按照任務(wù)先后到來的順序嫂侍,不可搶占式的儿捧。
缺點: 一批任務(wù)的周轉(zhuǎn)時間決定于任務(wù)的排序。
短作業(yè)優(yōu)先法: (SJF)short job first
可搶占 和不可搶占的類型都有挑宠。
可以得到最小的平均周轉(zhuǎn)時間
時間片輪轉(zhuǎn):
公平性
活動性
主要問題:需要選擇一個合適的q值(時間片大蟹贫堋)
每個任務(wù)的等待時間(n-1)*q
優(yōu)先級算法:
給每個任務(wù)設(shè)置一個優(yōu)先級,每次運行優(yōu)先級最高的任務(wù)各淀。
動態(tài)優(yōu)先級: 提高等待任務(wù)的優(yōu)先級懒鉴,防止被餓死。
高優(yōu)先級的任務(wù)會搶占低優(yōu)先級的任務(wù)。
優(yōu)先級反轉(zhuǎn):
產(chǎn)生原因:
共享資源(IO設(shè)備临谱,信號量璃俗,郵箱),高優(yōu)先級等待低優(yōu)先級釋放資源悉默。
低優(yōu)先級又在等待中優(yōu)先級的任務(wù)城豁。
比如低優(yōu)先級的任務(wù)占用R,一直被其他任務(wù)中斷麦牺,導(dǎo)致R無法釋放钮蛛,導(dǎo)致很高優(yōu)先級的另一個任務(wù)也不能運行。
實時系統(tǒng)的調(diào)度:
任務(wù)模型(執(zhí)行時間剖膳,周期和的時間期限)
RMS算法: 單調(diào)速率調(diào)度算法: 靜態(tài)優(yōu)先級的調(diào)度算法
任務(wù)周期越短魏颓,優(yōu)先級越高。
缺點: CPU使用上限位0.69
假定任務(wù)相同獨立的吱晒,周期性的甸饱,任務(wù)在任何位置都可以被搶占,任務(wù)之間不通信是不切實際的
EDF算法: 動態(tài)優(yōu)先級的調(diào)度算法:
根據(jù)任務(wù)的截止時間來確定優(yōu)先級仑濒。
EDF是最優(yōu)的單處理器的調(diào)度算法叹话,CPU利用上限位100%。
缺點:實時系統(tǒng)不易實現(xiàn)墩瞳,系統(tǒng)開銷大驼壶。
優(yōu)先級反轉(zhuǎn):
優(yōu)先級天花板策略(Priority ceilings): 優(yōu)先級天花板是指將申請(占有)某資源的任務(wù)的優(yōu)先級提升到可能訪問該資源的所有任務(wù)中最高優(yōu)先級任務(wù)的優(yōu)先級.(這個優(yōu)先級稱為該資源的優(yōu)先級天花板) 。在上述例子中體現(xiàn)為當(dāng)?shù)蛢?yōu)先級任務(wù)申請占有某資源時就將這個低優(yōu)先級任務(wù)的優(yōu)先級升為能訪問該資源的所有任務(wù)中最高優(yōu)先級任務(wù)的優(yōu)先級
優(yōu)先級繼承策略對任務(wù)執(zhí)行流程的影響相對較小喉酌,因為只有當(dāng)高優(yōu)先級任務(wù)申請已被低優(yōu)先級任務(wù)占有的臨界資源這一事實發(fā)生時热凹,才抬升低優(yōu)先級任務(wù)的優(yōu)先級。而天花板策略是誰占有就直接升到最高泪电。
任務(wù)之間通信:
共享內(nèi)存: 需要結(jié)合互斥條件般妙。
消息: 內(nèi)存空間中一段長度可變的緩沖區(qū)(建立通信鏈路,(send receive操作))
直接通信:
send(P相速,message)發(fā)送消息給任務(wù)P
receive (Q,message ) 接收消息從任務(wù)Q
特點: (1)鏈路自動建立碟渺,操作系統(tǒng)維護
只涉及一對互相通信
單方向或者雙方向
間接通信:
不需要指出來源和去向,而是通過郵箱來發(fā)送和接收突诬。
send(A苫拍,message) 發(fā)送消息到郵箱
receive(A,message)接收消息從郵箱
特點: 一個郵箱可以被多個任務(wù)訪問
單向或者雙向通信
只能存放單條信息,如果放多條旺隙,稱為消息隊列
管道: 連接兩個任務(wù)的共享文件
信號: 信號機制也被稱為軟中斷機制绒极,和中斷相似。
8.1 同步和互斥
任務(wù)之間的關(guān)系:
相互獨立催束,任務(wù)互斥,任務(wù)同步(依存關(guān)系)伏社,任務(wù)通信(需要傳遞數(shù)據(jù)和信息)
互斥: 競爭條件: 兩個或者多個任務(wù)對同一個共享數(shù)據(jù)進行讀寫抠刺。 把這種現(xiàn)象就做競爭條件塔淤。
對共享資源進行訪問的代碼,這些訪問可能導(dǎo)致共享競爭的出現(xiàn)速妖,叫做臨界區(qū)
高蜂,把需要互斥訪問的資源稱為臨界資源。
解決方案
關(guān)閉中斷法
繁忙等待法
信號量(用來解決互斥的問題)
用一種新的變量類型罕容,也就是信號量也記錄當(dāng)前可利用資源的個數(shù)备恤。
正數(shù)或者0 : 表示可利用資源的個數(shù)
負數(shù): 等待進入臨界區(qū)的任務(wù)個數(shù)。
信號量是系統(tǒng)來維護的锦秒,任務(wù)不能直接修改它的值露泊。
只能通過初始化和兩個標準原語(P,v)來進行訪問。
原語: 不可中斷的一段程序旅择,在內(nèi)核下關(guān)中斷來實現(xiàn)惭笑。
P、v原語是內(nèi)核代碼的一部分
在等待進入臨界區(qū)時生真,任務(wù)會被阻塞起來沉噩。
P,主要功能是申請一個空閑的資源柱蟀。把信號量的值減一川蒙,如果成功,會退出原語长已,失敗畜眨,阻塞任務(wù)。
V痰哨,釋放一個被占用的資源胶果,把信號量的值加1 。 如果發(fā)現(xiàn)被阻塞的任務(wù)斤斧,把它喚醒早抠。
P實際就是一個函數(shù)。
信號量同步的優(yōu)點:
可以允許多個任務(wù)同時進入臨界區(qū)
當(dāng)任務(wù)無法進入臨界區(qū)時撬讽,會被阻塞
代碼L
semphors S
s.N = N
P(S)
臨界區(qū)
V(S)
非臨界區(qū)
任務(wù)同步:
存在時序關(guān)系或者先后的關(guān)系
可以使用信號量進行同步蕊连,把信號量看做共享的資源,
在一個任務(wù)內(nèi)部使用P原語游昼,另一個任務(wù)內(nèi)部使用V原語甘苍。
死鎖:
PV執(zhí)行不當(dāng)(兩個PV)
每個任務(wù)都占據(jù)著某種資源,而又在等待其他資源烘豌,同時資源都不能釋放载庭。
8.2 存儲管理
存儲管理:
存儲管理方式:
固定分區(qū): 各個分區(qū)大小可以相等,也可以不等,固定的分區(qū)囚聚。
可變分區(qū): 不會產(chǎn)生內(nèi)碎片靖榕,但是會可能產(chǎn)生外碎片
內(nèi)存管理:
最先匹配法:
下次匹配法;
最佳匹配法:
最壞匹配法:
地址重定位:
地址映射顽铸。
邏輯地址:相對的地址或者虛地址茁计。
目標代碼一般都是虛地址的形式。
MMU來管理地址映射谓松。
靜態(tài)地址映射: 程序裝入內(nèi)存時星压,直接對指令進行修改。一次性實帶孩子轉(zhuǎn)換鬼譬。
缺點: 程序裝入內(nèi)存后就不能再移動了
動態(tài)地址映射: 程序訪問內(nèi)存時娜膘,在轉(zhuǎn)換。硬件地址映射機制來完成拧簸。
頁式存儲管理:
打破存儲的連續(xù)性劲绪。
數(shù)據(jù)結(jié)構(gòu): 頁表(邏輯和物理的對應(yīng)),物理頁面表(各個物理頁面的分配情況)
地址映射: 邏輯地址分析盆赤,頁表查找贾富,物理地址合成。
優(yōu)點: 沒有外碎片 牺六,程序不用連續(xù)存放
缺點:程序必須全部裝入
每個任務(wù)維護一個頁表
虛擬內(nèi)存技術(shù):
MMU還提供虛擬內(nèi)存技術(shù)颤枪。
在頁式存儲的基礎(chǔ)上,增加了請求調(diào)用頁面和頁面置換的功能淑际,
裝入部分程序畏纲。
程序局部性原理:執(zhí)行的指令和訪問的存儲空間局限在一定區(qū)域內(nèi)。
頁面置換算法:
最優(yōu)頁面置換算法
最久未用置換算法
最不常用算法
先進先出算法
時鐘頁面置換算法
8.3 設(shè)備
邏輯設(shè)備: 程序請求的設(shè)備
虛擬設(shè)備: 利spooling 技術(shù)實現(xiàn)春缕,將邏輯設(shè)備虛擬成多臺設(shè)備
字符設(shè)備:以字符 為單位進行傳輸盗胀,比如打印機,鍵盤
塊設(shè)備: 應(yīng)用程序可以隨機訪問設(shè)備數(shù)據(jù)锄贼,程序可自行確定讀取數(shù)據(jù)的位置票灰。硬盤、軟盤宅荤、CD-ROM驅(qū)動器和閃存都是典型的塊設(shè)備屑迂,應(yīng)用程序可以尋址磁盤上的任何位置,并由此讀取數(shù)據(jù)冯键。此外惹盼,數(shù)據(jù)的讀寫只能以塊(通常是512B)的倍數(shù)進行。與字符設(shè)備不同惫确,塊設(shè)備并不支持基于字符的尋址手报。
網(wǎng)絡(luò)設(shè)備是特殊設(shè)備的驅(qū)動蚯舱,它負責(zé)接收和發(fā)送幀數(shù)據(jù),可能是物理幀掩蛤,也可能是ip數(shù)據(jù)包晓淀,這些特性都有網(wǎng)絡(luò)驅(qū)動決定
設(shè)備驅(qū)動程序:
是直接同I/O設(shè)備打交道
8.3 文件系統(tǒng)
FAT
NFS:
文件和目錄: 文件是一種抽象的機制
存取: 順序和隨機
訪問: 打開盏档,關(guān)閉,讀寫燥爷,添加蜈亩,定位
8.4 程序設(shè)計
解釋器: 直接解釋執(zhí)行源程序∏棒幔或者將源程序翻譯成某種中間形式稚配。解釋程序和源程序都要參與到目標語言程序。
編譯器: 將源程序翻譯成目標程序港华。
偽指令:不產(chǎn)生機器碼道川,常數(shù)定義偽指令,存儲定義偽指令立宜,匯編控制(IF)冒萄,開始偽指mi令,結(jié)束偽指令橙数,
面向?qū)ο蟮恼Z言:
8.5 測試
黑盒測試:極限情況測試尊流,邊界測試,異常測試灯帮,錯誤猜測崖技,隨機測試,性能測試
百盒測試: 對程序的路徑和過程進行測試 獨立路徑钟哥,循環(huán)迎献,判斷,內(nèi)部數(shù)據(jù)的有效性
覆蓋測試: 早期腻贰,在單元測試期間吁恍。
覆蓋策略:
語句覆蓋,判定覆蓋(一次真银受,一次假)践盼,條件覆蓋(每個條件都獲得多有的邏輯值)
條件覆蓋: 只要各個邏輯的取值都出現(xiàn)過就好,分支不一定執(zhí)行宾巍。
比如if(A && B )
則: 條件覆蓋取值只要兩個測試用例即可
用例1 A=TRUE , B = True
2 A = false , B = false
判定/條件覆蓋: 每個分支都執(zhí)行咕幻,,每個條件獲得所有的邏輯值
條件組合覆蓋: 每個條件組合出現(xiàn)一次顶霞。條件覆蓋滿足肄程,則一定滿足判斷覆蓋锣吼,條件覆蓋和判斷/條件覆蓋。
路徑測試: 被稱為最強的覆蓋條件蓝厌,要圖的每個路徑都要執(zhí)行一次玄叠。路勁覆蓋還是不能取代判斷覆蓋。
9 嵌入式系統(tǒng)開發(fā)和管理
常用的開發(fā)模型:
- 瀑布模型: 制定計劃拓提,需求分析读恃,軟件設(shè)計,程序編寫代态,軟件測試寺惫,運行維護。
自上而下的設(shè)計蹦疑,如同瀑布流水西雀。
快速原型(1)建造一個快速原型 ,隨后客戶反饋歉摧,快速修改模型艇肴。
增量模型: 增量構(gòu)架來設(shè)計,各個階段并不交付一個完整的產(chǎn)品
螺旋模型: 結(jié)合瀑布模型和快速原型模型叁温,沿著螺旋進行若干次迭代再悼。(強調(diào)了風(fēng)險分析)
演化模型(事先不能定義完整的需求)
項目管理: 項目計劃,項目組織膝但,質(zhì)量管理帮哈,費用控制,進度控制锰镀。
用戶需求: 從用戶局角度來描述系統(tǒng)功能和非系統(tǒng)功能娘侍。避免專業(yè)性的描述。
系統(tǒng)需求: 結(jié)構(gòu)化系統(tǒng)分析泳炉。使用PDL系統(tǒng)分析憾筏。標準接口分析
系統(tǒng)規(guī)格書的說明文檔: 是對用戶需求分析和系統(tǒng)需求分析之后的文檔。
系統(tǒng)設(shè)計:傳統(tǒng)的設(shè)計方法花鹅,瀑布模型氧腰,自上而下。
內(nèi)容耦合: 一個模塊直接修改另一個模塊的數(shù)據(jù)
公共耦合:
控制耦合刨肃; 傳遞信號(開關(guān)值古拴,標記量)
標記耦合
數(shù)據(jù)耦合
非直接耦合
盡量使用使用數(shù)據(jù)耦合,少用控制耦合真友,避免內(nèi)容耦合黄痪。
** 10 網(wǎng)絡(luò)攻擊**
DOS 攻擊: DoS是Denial of Service的簡稱,即拒絕服務(wù)盔然,造成DoS的攻擊行為被稱為DoS攻擊桅打,其目的是使計算機或網(wǎng)絡(luò)無法提供正常的服務(wù)是嗜。最常見的DoS攻擊有計算機網(wǎng)絡(luò)帶寬攻擊和連通性攻擊。
一定要時刻記得挺尾,DOS不是DOS操作系統(tǒng)鹅搪。
DDOS:分布式的DOS攻擊。
(1)制造大流量的無用的數(shù)據(jù)
(2)利用TCP/IP 協(xié)議的缺陷遭铺,制造大量的無用數(shù)據(jù)
(3)使用僵尸電腦進行攻擊
11 密碼加密:
1 摘要算法
常用的摘要算法有MD5,SHA1丽柿。摘要算法是一個不可逆過程,就是無論多大數(shù)據(jù)魂挂,經(jīng)過算法運算后都是生成固定長度的數(shù)據(jù),一般結(jié)果使用16進制進行顯示航厚。
MD5和SHA1的區(qū)別:MD5結(jié)果是128位摘要,SHa1是160位摘要锰蓬。那么MD5的速度更快,而SHA1的強度更高眯漩。
下面統(tǒng)一使用MD5算法進行說明芹扭,SHA1類似。
主要用途有:驗證消息完整性赦抖,安全訪問認證舱卡,數(shù)據(jù)簽名。
消息完整性:由于每一份數(shù)據(jù)生成的MD5值不一樣队萤,因此發(fā)送數(shù)據(jù)時可以將數(shù)據(jù)和其MD5值一起發(fā)送轮锥,然后就可以用MD5驗證數(shù)據(jù)是否丟失、修改要尔。
安全訪問認證:這是使用了算法的不可逆性質(zhì)舍杜,(就是無法從MD5值中恢復(fù)原數(shù)據(jù))對賬號登陸的密碼進行MD5運算然后保存,這樣可以保證除了用戶之外赵辕,即使數(shù)據(jù)庫管理人員都無法得知用戶的密碼既绩。
數(shù)字簽名:這是結(jié)合非對稱加密算法和CA證書的一種使用場景。
一般破解方法:字典法还惠,就是將常用密碼生成MD5值字典饲握,然后反向查找達到破解目的,因此建議使用強密碼蚕键。
對稱加密算法只是為了區(qū)分非對稱加密算法救欧。其中鮮明的特點是對稱加密是加密解密使用相同的密鑰,而非對稱加密加密和解密時使用的密鑰不一樣锣光。對于大部分情況我們都使用對稱加密笆怠,而對稱加密的密鑰交換時使用非對稱加密,這有效保護密鑰的安全誊爹。非對稱加密加密和解密密鑰不同骑疆,那么它的安全性是無疑最高的田篇,但是它加密解密的速度很慢,不適合對大數(shù)據(jù)加密箍铭。而對稱加密加密速度快泊柬,因此混合使用最好。
常用的對稱加密算法有:AES和DES.
DES:比較老的算法诈火,一共有三個參數(shù)入口(原文兽赁,密鑰,加密模式)冷守。而3DES只是DES的一種模式刀崖,是以DES為基礎(chǔ)更安全的變形,對數(shù)據(jù)進行了三次加密拍摇,也是被指定為AES的過渡算法亮钦。
AES:高級加密標準,新一代標準充活,加密速度更快蜂莉,安全性更高(不用說優(yōu)先選擇)
.非對稱加密(RSA)
這里主要對RSA進行介紹。
對稱加密加密解密使用的是相同的密鑰混卵,而非對稱加密加密解密時使用的不同的密鑰映穗,分為公鑰(public key)和私鑰(private key).公鑰可以公開,而私鑰自己保存幕随。它利用的是兩個大質(zhì)數(shù)相乘十分容易蚁滋,而對其乘積進行因素分解十分困難。這樣就可以將乘積作為密鑰了,這個乘積為N值赘淮,根據(jù)兩個大質(zhì)數(shù)選擇e和生成d,刪掉兩個大質(zhì)數(shù)辕录。這樣(N,e)為公鑰,(N,d)為私鑰梢卸,公鑰無法破解出私鑰(不作詳細介紹踏拜,我們不是研究算法的)。由于非對稱加密的密鑰生成麻煩低剔,所以無法做到一次一密速梗,而且其加密速度很慢,無法對大量數(shù)據(jù)加密襟齿。因此最常用的使用場景就是數(shù)字簽名和密碼傳輸姻锁,用作數(shù)字簽名時使用私鑰加密,公鑰解密猜欺;用作加密解密時位隶,使用公鑰加密,私鑰解密开皿。
作者:宇o風(fēng)
來源:CSDN
原文:https://blog.csdn.net/u013565368/article/details/53081195
版權(quán)聲明:本文為博主原創(chuàng)文章涧黄,轉(zhuǎn)載請附上博文鏈接篮昧!
11 補充
公共端口號:
(1)公認端口(Well Known Ports):從0到1023,它們緊密綁定(binding)于一些服務(wù)笋妥。通常這些端口的通訊明確表明了某種服務(wù)的協(xié)議懊昨。例如:80端口實際上總是HTTP通訊。
(2)注冊端口(Registered Ports):從1024到49151春宣。它們松散地綁定于一些服務(wù)酵颁。也就是說有許多服務(wù)綁定于這些端口,這些端口同樣用于許多其它目的月帝。例如:許多系統(tǒng)處理動態(tài)端口從1024左右開始躏惋。
- 動態(tài)和/或私有端口(Dynamic and/or Private Ports):從49152到65535。理論上嚷辅,不應(yīng)為服務(wù)分配這些端口簿姨。實際上,機器通常從1024起分配動態(tài)端口簸搞。但也有例外:SUN的RPC端口從32768開始扁位。
著作權(quán): 給公司開發(fā)的,我只有署名權(quán)攘乒。其他權(quán)利屬于公司。
PERT圖:
1惋鹅、事件(Events)表示主要活動結(jié)束的那一點则酝;
2、活動(Activities)表示從一個事件到另一個事件之間的過程闰集;
3沽讹、松弛時間(slack time)不影響完工前提下可能被推遲完成的最大時間踩娘;
4晃酒、關(guān)鍵路線(Critical Path)是PERT網(wǎng)絡(luò)中花費時間最長的事件和活動的序列
要點: 每個時間完整,一定要和它相連的所有事項都要完成怖亭。
11
9 盲點
9.1 浮點數(shù)的表示
9.2 多處理器調(diào)度
應(yīng)該要掌握的考點:
(1)TCP/IP 協(xié)議必須熟悉
(2)測試模型必須熟悉
(3)實時操作系統(tǒng)一定會考
2018 考試總結(jié):
1 信號量分為互斥信號量和同步信號量
2 信號量的使用方法
3 信號量操作函數(shù) take(P 操作)沐鼠,如果沒有可用資源挚瘟,可以阻塞任務(wù),但不是永久的饲梭,可以設(shè)置阻塞的時間乘盖。