大家不要只收藏不關(guān)注呀,哪怕只是點(diǎn)個(gè)贊也可以呀!??
粉絲私信發(fā)郵箱,免費(fèi)發(fā)你PDF!!!
因?yàn)闇?zhǔn)備備考中級嵌入式設(shè)計(jì)師證書,所以買了一些資料回來準(zhǔn)備復(fù)習(xí),本書為倪奕文老師編制的書,如果大家有時(shí)間和精力還是很建議大家去買一本的,這本書反而是能夠讓小白很快了解嵌入式所學(xué)知識(shí)的書籍,特地做此筆記,我希望我做一些工作能夠讓你花更少的時(shí)間去了解更多的知識(shí),并盡量不要走彎路,我會(huì)盡量把自己理解到的東西用更容易懂的話寫出來,一家之言,如果有錯(cuò)歡迎指正批評,望共同進(jìn)步,接下來我將每四學(xué)時(shí)的內(nèi)容整理一次發(fā)布。
一、嵌入式系統(tǒng)基礎(chǔ)
1、嵌入式硬件基礎(chǔ)(除進(jìn)制轉(zhuǎn)換外,考選擇題)
1.嵌入式微處理器結(jié)構(gòu)
馮-諾依曼結(jié)構(gòu)將程序和數(shù)據(jù)存放到同一存儲(chǔ)器的不同物理地址,采用單一的地址和數(shù)據(jù)總線,程序指令和數(shù)據(jù)的寬度相同。指令執(zhí)行耗費(fèi)時(shí)間久,高速運(yùn)算時(shí)會(huì)出現(xiàn)瓶頸效應(yīng)。
哈佛結(jié)構(gòu)時(shí)并行的體系結(jié)構(gòu),將數(shù)據(jù)與程序存儲(chǔ)在不同的存儲(chǔ)器中,這樣存放數(shù)據(jù)的存儲(chǔ)器叫做數(shù)據(jù)存儲(chǔ)器,存放程序的存儲(chǔ)器叫做程序存儲(chǔ)器。存在兩套獨(dú)立的總線,可以同時(shí)獲取指令(來自程序存儲(chǔ)器)和操作數(shù)(來自數(shù)據(jù)存儲(chǔ)器),使得數(shù)據(jù)的吞吐率提高了一倍。
2.計(jì)算機(jī)硬件組成
硬件系統(tǒng)由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備五部分組成。
存儲(chǔ)器有內(nèi)部存儲(chǔ)器(速度快、容量小)和外部存儲(chǔ)器(速度慢,容量大)。
外設(shè):鍵盤鼠標(biāo)顯示器等等
主機(jī):CPU(運(yùn)算器、控制器、寄存器組、內(nèi)部總線)+主存儲(chǔ)器,cpu的功能是實(shí)現(xiàn)程序控制、操作控制、時(shí)間控制、數(shù)據(jù)處理等
運(yùn)算器:算術(shù)邏輯單元、累加寄存器、數(shù)據(jù)緩沖寄存器、條件狀態(tài)寄存器
運(yùn)算器的功能是實(shí)現(xiàn)所有的算術(shù)運(yùn)算與邏輯運(yùn)算
控制器:指令控制器、程序計(jì)數(shù)器、地址寄存器、指令譯碼器
控制器的功能:控制整個(gè)CPU工作,包括程序控制、時(shí)序控制
CPU依據(jù)指令的不同階段來區(qū)分二進(jìn)制的指令和數(shù)據(jù),因?yàn)樵谥噶钪芷诘牟煌A段,指令會(huì)命令CPU去取指令或者數(shù)據(jù)。
3.數(shù)據(jù)的表示
進(jìn)制的轉(zhuǎn)換:16進(jìn)制用0x或H,例如0x18F或18FH都表示十六進(jìn)制的18F
各種進(jìn)制之間轉(zhuǎn)換,這里只需要注意一點(diǎn),m轉(zhuǎn)換為n進(jìn)制,要先將m轉(zhuǎn)換為十進(jìn)制,再將十進(jìn)制轉(zhuǎn)換為n進(jìn)制。
數(shù)的表示:各個(gè)數(shù)值再計(jì)算機(jī)中表現(xiàn)的形式為機(jī)器數(shù),特點(diǎn)是使用二進(jìn)制用0和1,小數(shù)點(diǎn)隱含,不占位置。
機(jī)器數(shù)有無符號和帶符號數(shù)之分,無符號數(shù)表示正數(shù),沒有符號位。帶符號數(shù)最高位為符號位,正數(shù)的符號為0,負(fù)數(shù)的符號為1。定點(diǎn)表示法分為純小數(shù)和純整數(shù)兩種,小數(shù)點(diǎn)不占存儲(chǔ)位,按照一下約定:
純小數(shù):約定小數(shù)點(diǎn)的位置的在機(jī)器數(shù)的最高位數(shù)值之前。
純整數(shù):約定小數(shù)點(diǎn)的位置的在機(jī)器數(shù)的最低位數(shù)值之后。
真值:機(jī)器數(shù)對應(yīng)的實(shí)際數(shù)值。
編碼方式:原碼、反碼、補(bǔ)碼、移碼。
原碼是正常二進(jìn)制表示,最高位表示符號。
數(shù)值0的原碼有兩種形式+0(00000000),-0(10000000)
正數(shù)的反碼就是原碼,負(fù)數(shù)的反碼在原碼的基礎(chǔ)上,除了符號位,其他位全部按位取反。數(shù)值0的反碼有兩種形式:+0(00000000),-0(11111111)
補(bǔ)碼:正數(shù)的補(bǔ)碼就是原碼:負(fù)數(shù)的補(bǔ)碼在原碼的基礎(chǔ)上,除了符號位,其他位全部按位取反,而后末尾+1,若有進(jìn)位則產(chǎn)生進(jìn)位。因此數(shù)值0的補(bǔ)碼只有一種形式+0=-0=00000000
移碼是用作浮點(diǎn)運(yùn)算的階碼,無論正負(fù)數(shù),都是將原碼的補(bǔ)碼的首位取反。
浮點(diǎn)數(shù)的運(yùn)算:表示方法為N=Fx2^E,E代表階碼,F(xiàn)代表尾數(shù),類似科學(xué)計(jì)數(shù)法,比如85.125 =0.85125x102,二進(jìn)制如101.011=0.1.1.11x23
浮點(diǎn)數(shù)所能表示的數(shù)值范圍由階碼確定,所表示的數(shù)值精度由尾數(shù)確定
帶符號尾數(shù)的補(bǔ)碼必須為1.0xxx(負(fù)數(shù))或者0.1xxxxxx(正數(shù))
浮點(diǎn)數(shù)的運(yùn)算步驟:對階、尾數(shù)計(jì)算、結(jié)果規(guī)格化
算術(shù)運(yùn)算與邏輯運(yùn)算:簡單,自己學(xué)習(xí)。
短路計(jì)算方式:邏輯運(yùn)算符左邊的值就能推出整個(gè)表達(dá)式的值。
4.校驗(yàn)碼
校驗(yàn)碼有:奇偶校驗(yàn)碼、CRC校驗(yàn)碼、海明校驗(yàn)碼。
奇偶校驗(yàn)碼:發(fā)送端編碼中的1為奇數(shù)或者偶數(shù),接收端檢查1的個(gè)數(shù)是否是正確的奇偶。只能檢錯(cuò),無法糾錯(cuò)。
CRC校驗(yàn)碼:找出一個(gè)能整除多項(xiàng)式的編碼,首先用原始報(bào)文除多項(xiàng)式,將得到的余數(shù)作為校驗(yàn)位加在原始報(bào)文后面,作為發(fā)送數(shù)據(jù)發(fā)給接收方。多項(xiàng)式的最高位和最低位必須是1。接收方收到帶校驗(yàn)和的幀之后,用多項(xiàng)式來除,余數(shù)為0,則表示信息無錯(cuò),否則要求發(fā)送方進(jìn)行重傳。
例如:假設(shè)原始信息串為10110,CRC的生成多項(xiàng)式G(x)=x^4+x+1,求CRC校驗(yàn)碼。
1)首先多項(xiàng)式為4次項(xiàng),那么就要在原始信息串后加4個(gè)0,得到101100000,作為被除數(shù);
2)由多項(xiàng)式得到出書,多項(xiàng)式中x的冪指數(shù)存在的位置為1,不存在的地方為0,即X4為1,X3為0,x2為0,x1為1,x^0為1,即:10011;
3)生成CRC校驗(yàn)碼,用101100000/10011得到余數(shù)1111。(如果余數(shù)不足,則再左邊補(bǔ)0,假如余數(shù)為11,則最終得到0011)
4)生成要發(fā)送的信息串101101111,發(fā)送方將此數(shù)據(jù)發(fā)送給接收方。
5)接收方進(jìn)行校驗(yàn),接收方接受帶校驗(yàn)和的幀之后,用多項(xiàng)式G(x)來除,余數(shù)為0,則表示信息無錯(cuò);否則要求發(fā)送方進(jìn)行重傳。
注意:這里采用的是模二除法,和傳統(tǒng)的除法意義不一樣,是二進(jìn)制除法,實(shí)際上就是按位異或,相同為0不同為1,有粉絲朋友問這里他算出來是1010,這里不是傳統(tǒng)的除法,注意這點(diǎn)。
海明校驗(yàn)碼:海明校驗(yàn)碼的本質(zhì)還是奇偶校驗(yàn)方式檢驗(yàn),優(yōu)點(diǎn)是既可以檢錯(cuò)也可以糾錯(cuò)。
通過首先將信息位寫入,校驗(yàn)位置保留即2^n次的位置全部保留,之后通過異或運(yùn)算,計(jì)算出校驗(yàn)位。接收方收到校驗(yàn)位之后會(huì)進(jìn)行校驗(yàn)位與信息位所算出的結(jié)果異或,如果是奇校驗(yàn),那么應(yīng)該全為1,如果為偶校驗(yàn)?zāi)敲慈繛?。如果不全為0,那么傳輸出現(xiàn)錯(cuò)誤,找到出錯(cuò)位,將該位逆轉(zhuǎn)。
2、計(jì)算機(jī)指令和中斷(除中斷原理,考選擇題)
1. 計(jì)算機(jī)指令
計(jì)算機(jī)指令由操作碼和操作數(shù)組成,操作碼是要完成的操作,操作數(shù)是參加運(yùn)算的數(shù)據(jù)及其所在的單元地址,操作碼和操作數(shù)都是以二進(jìn)制數(shù)碼存儲(chǔ)到存儲(chǔ)器中。
指令執(zhí)行過程可分為取指令—分析指令—執(zhí)行指令
取指令:將程序計(jì)數(shù)器PC的指令地址取出,送入地址總數(shù),CPU根據(jù)指令地址去內(nèi)存中取出指令的內(nèi)容存入指令寄存器IR。(pc指令地址------>取出指令------->存入IR)
分析指令:取指令后由指令譯碼器進(jìn)行分析,分析需要執(zhí)行什么操作
執(zhí)行指令:最好取出指令中所需要的源操作數(shù),執(zhí)行操作
根據(jù)不同的周期階段去區(qū)分從存儲(chǔ)器取出的是指令還是數(shù)據(jù)。也可根據(jù)取數(shù)與取指令的地址去區(qū)分。
指令的尋址方式:順序?qū)ぶ贩绞?、跳躍尋址方式
指令操作數(shù)的尋址方式:立即尋址方式、直接尋址方式、間接尋址方式、寄存器尋址方式、基址尋址方式、變址尋址方式、相對尋址方式。
特權(quán)指令:類似root權(quán)限下的指令,必須管理員才能使用的指令
指令系統(tǒng)CISC和RISC
CISC是復(fù)雜指令系統(tǒng),兼容性強(qiáng),指令繁多,長度可變,由微程序?qū)崿F(xiàn)
RISC是精簡指令系統(tǒng),指令少,使用頻率接近,主要依靠硬件實(shí)現(xiàn)。
2. 指令的流水線處理
流水線會(huì)讓指令的執(zhí)行加快,RISC的流水線技術(shù):超流水線、超標(biāo)量、超長指令字VLIW。
但是流水線處理發(fā)生錯(cuò)誤時(shí)也會(huì)導(dǎo)致阻塞并延期。
三種錯(cuò)誤:數(shù)據(jù)冒險(xiǎn)(指令所用的數(shù)據(jù)未返回)、結(jié)構(gòu)冒險(xiǎn)(同一指令中不同功能搶占同一個(gè)硬件)、控制冒險(xiǎn)(流水線遇到分支或者其他可能引起指令改變)
3. 中斷原理(大題會(huì)考流程)
3、存儲(chǔ)系統(tǒng)和性能(一般只考選擇題)
1. 存儲(chǔ)系統(tǒng)
存儲(chǔ)器結(jié)構(gòu):越快的越貴:寄存器、高速緩沖、RAM、ROM、外部磁盤、遠(yuǎn)程二級存儲(chǔ)
存儲(chǔ)器的訪問方式:地址訪問、內(nèi)容訪問
尋址方式:隨機(jī)存儲(chǔ)器、順序存儲(chǔ)器、直接存儲(chǔ)器
局部性原理:在CPU運(yùn)行時(shí),訪問的數(shù)據(jù)會(huì)趨于一個(gè)小的空間地址。
時(shí)間局部性:相鄰的時(shí)間內(nèi)會(huì)訪問同一個(gè)數(shù)據(jù)項(xiàng)。
空間局部性:在最近的將來會(huì)用到的數(shù)據(jù)的地址和現(xiàn)在的地址是相近的。
高速緩存cache:三種映射方法:直接映像(地址變換簡單但不靈活、易造成浪費(fèi))、全相聯(lián)映像(地址變換復(fù)雜,速度慢,但是不容易發(fā)生塊沖突)、組組相聯(lián)映像(前面兩種方式的結(jié)合,主存和cache存儲(chǔ)器都是先分塊后分組,組間采用直接映像,組內(nèi)全相聯(lián)映像)。
命中率及平均時(shí)間,CPU與內(nèi)存之間的數(shù)據(jù)交互,內(nèi)存會(huì)先將數(shù)據(jù)拷貝到cache中,根據(jù)局部性原理,數(shù)據(jù)會(huì)被循環(huán)執(zhí)行,不會(huì)每一次都去內(nèi)存中讀取,CPU訪問的數(shù)據(jù)在cache中命中,那么直接從cache中讀取數(shù)據(jù)。那如果要訪問的數(shù)據(jù)不在cache中,那么則需要從內(nèi)存中讀取。
I/O端口的地址編碼形式:I/O獨(dú)立編址和存儲(chǔ)器統(tǒng)一編址。
I/O獨(dú)立編址:I/O端口編址與存儲(chǔ)器的編址相互獨(dú)立,即空間分開設(shè)置互不影響,優(yōu)點(diǎn)是不占用內(nèi)存空間;使用I/O指令,程序清晰,譯碼電路比較簡單。缺點(diǎn)是只能用I/O指令,訪問端口的方法不如訪問存儲(chǔ)器的方法多。
存儲(chǔ)器統(tǒng)一編址:從存儲(chǔ)空間中劃出一部分地址給I/O端口。只能從地址范圍來區(qū)分兩種操作。
2. 總線
廣義來說,連接兩個(gè)以上電子元器件的導(dǎo)線都可以稱為總線,通常分為以下三類:
內(nèi)部總線:(內(nèi)部芯片級別的總線,芯片與處理器之間通信的總線)
系統(tǒng)總線:板級總線分為數(shù)據(jù)總線(CPU與RAM之間的總線)、地址總線(RAM之中存儲(chǔ)的數(shù)據(jù)的地址)和控制總線將控制器的信號傳送到周邊設(shè)備。
外部總線:設(shè)備一級的總線,微機(jī)和外部設(shè)備的總線。代表的有RS-232串行總線、SCSI(并行總線)、USB(通用串行總線)
從請求總線到完成總線使用的操作序列稱為總線事務(wù),典型的總線事務(wù)包括:請求操作、裁決操作、地址傳輸、總線釋放。
總線完成一次傳輸分為四個(gè)階段:總線裁決、尋址階段、數(shù)據(jù)傳輸階段、結(jié)束階段。
3. 性能和可靠性
MTBF = MTTF + MTTR
系統(tǒng)可靠性= MTTF / (MTTF + MTTR) * 100%
串聯(lián)系統(tǒng):一個(gè)設(shè)備不可靠,整個(gè)系統(tǒng)才會(huì)奔潰
并聯(lián)系統(tǒng):所有設(shè)備不可靠,整個(gè)系統(tǒng)才會(huì)奔潰
處理能力或效率由三個(gè)決定:吞吐率、響應(yīng)時(shí)間、資源利用率
基準(zhǔn)程序法:目前一致承認(rèn)的測試系統(tǒng)性能的較好方法。
4、嵌入式軟件架構(gòu)(一般只考選擇題)
1. 嵌入式軟件基礎(chǔ)
嵌入式軟件分類:系統(tǒng)軟件(設(shè)備驅(qū)動(dòng)程序,嵌入式操作系統(tǒng),嵌入式中間件等)、應(yīng)用軟件(上位機(jī),下位機(jī)等)、支撐軟件(在線仿真工具,交叉編譯器等)
設(shè)備驅(qū)動(dòng)層:BSP(板級支持包),對硬件進(jìn)行管理和控制,并為上層軟件提供所需的驅(qū)動(dòng)支持,BSP的基本思想是把嵌入式操作系統(tǒng)和具體的硬件平臺(tái)隔離。
BSP主要包括兩個(gè)方面的內(nèi)容:引導(dǎo)加載程序和設(shè)備驅(qū)動(dòng)程序
引導(dǎo)加載程序:系統(tǒng)上電后運(yùn)行的第一段軟件代碼,初始化硬件設(shè)備,建立內(nèi)存空間的映射圖,將系統(tǒng)的軟硬件環(huán)境設(shè)置到一個(gè)合適的狀態(tài)。
引導(dǎo)加載程序一般包括以下功能:片級初始化(微處理器的初始化)、板級初始化(正確設(shè)置各種寄存器來完成除微處理器之外的硬件設(shè)備的初始化)、加載內(nèi)核(將操作系統(tǒng)和應(yīng)用程序的映像從FLASH中復(fù)制到內(nèi)存中)
設(shè)備驅(qū)動(dòng)程序:嵌入式系統(tǒng)中必不可少的部分,具備的功能:硬件啟動(dòng)、硬件關(guān)閉、硬件停用、硬件啟用、讀操作、寫操作。文章來源:http://www.zghlxwxcb.cn/news/detail-401500.html
2. 嵌入式操作系統(tǒng)
嵌入式操作系統(tǒng)的特點(diǎn):系統(tǒng)內(nèi)核小、專用性強(qiáng)、系統(tǒng)精簡、高實(shí)時(shí)性、多任務(wù)的操作系統(tǒng)。
嵌入式實(shí)時(shí)操作系統(tǒng):要求系統(tǒng)在投入運(yùn)行前即具有確定性和可預(yù)測性。具有及時(shí)響應(yīng)和高可靠性的特點(diǎn)。
實(shí)時(shí)操作系統(tǒng)的特征包括:高精度計(jì)時(shí)系統(tǒng)、多級中斷機(jī)制、實(shí)時(shí)調(diào)度機(jī)制。
多任務(wù)系統(tǒng)上下文切換:即當(dāng)處理器的控制權(quán)由運(yùn)行任務(wù)轉(zhuǎn)移到另外一個(gè)就緒任務(wù)時(shí)所指向的操作
機(jī)內(nèi)自檢:對硬件進(jìn)行上電自檢,周期自檢,維護(hù)自檢,啟動(dòng)自檢等,確保系統(tǒng)故障的及時(shí)發(fā)現(xiàn)與定位。
微內(nèi)核操作系統(tǒng):將最為核心必要的部分放到內(nèi)核,其他能獨(dú)立的部分都放入到用戶進(jìn)程中,系統(tǒng)就會(huì)被分為用戶態(tài)和內(nèi)核態(tài)。
單體內(nèi)核內(nèi)核龐大,有較高的運(yùn)行效率,但占用資源較多且不易剪裁,系統(tǒng)穩(wěn)定性和安全性不好。
微內(nèi)核系統(tǒng)的效率較差,但是內(nèi)核精煉,便于裁剪和移植,安全性、可靠性和穩(wěn)定性較高。
嵌入式軟件學(xué)習(xí)路線
C語言進(jìn)階
嵌入式系統(tǒng)軟件及操作系統(tǒng):筆記(二)
嵌入式軟件基礎(chǔ)資料打印文章來源地址http://www.zghlxwxcb.cn/news/detail-401500.html
到了這里,關(guān)于軟考-嵌入式系統(tǒng)設(shè)計(jì)師:[嵌入式系統(tǒng)基礎(chǔ):筆記(一)]的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!