欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      ARM9嵌入式復(fù)習(xí)總結(jié)

      時(shí)間:2019-05-12 08:21:34下載本文作者:會(huì)員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《ARM9嵌入式復(fù)習(xí)總結(jié)》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《ARM9嵌入式復(fù)習(xí)總結(jié)》。

      第一篇:ARM9嵌入式復(fù)習(xí)總結(jié)

      ARM9嵌入式復(fù)習(xí)

      第一章

      1.嵌入式微處理器的分類。

      a)什么是嵌入式微處理器?

      1.嵌入式微處理器是嵌入式系統(tǒng)硬件層的核心,嵌入式微處理器將通用CPU中許多由板卡完成的任務(wù)集成到芯片內(nèi)部,從而有利于系統(tǒng)設(shè)計(jì)趨于小型化、高效率和高可靠性。嵌入式微處理器大多工作在為特定用戶群所專門設(shè)計(jì)的系統(tǒng)中。

      2.嵌入式微處理器的體系結(jié)構(gòu)可以采用馮·諾依曼體系結(jié)構(gòu)或哈佛體系結(jié)構(gòu),指令系統(tǒng)可以選用精簡指令系統(tǒng)(Reduced Instruction Set Computer,RISC)和復(fù)雜指令集系統(tǒng)CISC(Complex Instruction Set Computer, CISC)。b)嵌入式微處理器分類

      1.按照系列分:ARM系列、MIPS系列、PowerPC系列。2.按照指令復(fù)雜程度分:CISC和RISC兩類

      2.微處理器劃分:

      a)嵌入式微控制器 b)嵌入式微處理器 c)DSP處理器

      d)嵌入式片上系統(tǒng) e)多核處理器

      3.嵌入式操作系統(tǒng)(EOS)的特性

      EOS除具備了一般操作系統(tǒng)最基本的任務(wù)調(diào)度、同步機(jī)制、中斷處理、文件處理等功能外,還具有如下特點(diǎn):強(qiáng)實(shí)時(shí)性;支持開放性和可伸縮性的體系結(jié)構(gòu),具有可裁減性;提供統(tǒng)一的設(shè)備驅(qū)動(dòng)接口;提供操作方便、簡單、友好的圖形GUI和圖形界面;支持TCP/IP協(xié)議及其他協(xié)議,提供TCP/UDP/IP/PPP協(xié)議支持及統(tǒng)一的MAC訪問層接口,提供強(qiáng)大的網(wǎng)絡(luò)功能。

      第二章

      1.ARM7TDMI命名

      2.3級流水線與總線架構(gòu) 三級流水線:

      流水線使用3個(gè)階段,因此指令分為3個(gè)階段執(zhí)行 1.取指:從程序存儲(chǔ)器中讀取指令,放入流水線中

      2.譯碼:操作碼和操作數(shù)被譯碼,決定執(zhí)行什么功能,為下一個(gè)始終周期準(zhǔn)備數(shù)據(jù)路

      徑所需要的控制信號。

      3.執(zhí)行:執(zhí)行已譯碼的指令

      注:程序計(jì)數(shù)器(PC)指向被取指的指令,而不是指向正在執(zhí)行的指令 在正常操作的過程中,在執(zhí)行一條指令的同時(shí)對下一條指令進(jìn)行譯碼,并將第三條指令從存儲(chǔ)器中取出

      3.ARM的兩種狀態(tài)與7種工作模式

      a)兩種狀態(tài)。

      i.ARM狀態(tài):32位,這種狀態(tài)下執(zhí)行的是字方式的ARM指令; ii.Thumb狀態(tài):16位,這種狀態(tài)下執(zhí)行半字方式的Thumb指令。注:兩個(gè)狀態(tài)之間的切換并不影響處理器模式或寄存器內(nèi)容,可以使用BX指令切換兩種狀態(tài).狀態(tài)寄存器CPSR的T位反應(yīng)了處理器運(yùn)行不同指令的當(dāng)前狀態(tài).b)7種工作模式。

      注:除用戶模式外,其它模式均為特權(quán)模式。ARM內(nèi)部寄存器和一些片內(nèi)外設(shè)在硬件設(shè)計(jì)上只允許(或者可選為只允許)特權(quán)模式下訪問。此外,特權(quán)模式可以自由的切換處理器模式,而用戶模式不能直接切換到別的模式。

      題目:ARM微處理器復(fù)位后,PC的地址通常是 0x0,初始的工作模式是Supervisor 4.ARM常用幾個(gè)寄存器功能

      在ARM7TDMI處理器內(nèi)部有37個(gè)用戶可見的寄存器。31個(gè)通用32位寄存器,6個(gè)狀態(tài)寄存器。

      a.堆棧寄存器(SP):R13,在ARM指令集當(dāng)中,沒有以特殊方式使用R13的指令或其它

      功能,只是習(xí)慣上都這樣使用。但是在Thumb指令集中存在使用R13的指令。

      b.鏈接寄存器(LR):R14,在結(jié)構(gòu)上有兩個(gè)特殊功能:

      1.在每種模式下,模式自身的R14版本用于保存子程序返回地址; 2.當(dāng)發(fā)生異常時(shí),將R14對應(yīng)的異常模式版本設(shè)置為異常返回地址(有些異常有一

      個(gè)小的固定偏移量)。c.程序計(jì)數(shù)器(PC):R15,在ARM狀態(tài),位[1:0]為0,位[31:2]保存PC。在Thumb狀

      態(tài),位[0]為0,位[31:1]保存PC。對于ARM指令集而言,PC總是指向當(dāng)前指令的下

      兩條指令的地址,即PC的值為當(dāng)前指令的地址值加8字節(jié)。

      d.程序狀態(tài)寄存器(CPSR):R16,在所有處理器模式下都可以訪問CPSR。每種異常模

      式都有一個(gè)程序狀態(tài)保存寄存器(SPSR),在異常發(fā)生時(shí),SPSR用于保存CPSR的狀

      態(tài)。5.條件代碼標(biāo)志

      N 運(yùn)算結(jié)果的最高位反映在該標(biāo)志位。對于有符號二進(jìn)制補(bǔ)碼,結(jié)果為負(fù)數(shù)時(shí)N=1,結(jié)果為正數(shù)或零時(shí)N=0;

      Z 指令結(jié)果為0時(shí)Z=1(通常表示比較結(jié)果“相等”),否則Z=0;

      C 當(dāng)進(jìn)行加法運(yùn)算(包括CMN指令),并且最高位產(chǎn)生進(jìn)位時(shí)C=1,否則C=0。當(dāng)進(jìn)行

      減法運(yùn)算(包括CMP 指令),并且最高位產(chǎn)生借位時(shí)C=0,否則C=1。對于結(jié)合移位

      操作的非加法/減法指令,C為從最高位最后移出的值,其它指令C通常不變;

      V 當(dāng)進(jìn)行加法/減法運(yùn)算,并且發(fā)生有符號溢出時(shí)V=1,否則V=0,其它指令V通常不

      變。

      附:控制位

      I、F中斷控制位——控制允許和禁止中斷 T控制(標(biāo)志)位——反映處理器的運(yùn)行狀態(tài) M控制位——決定了處理器的運(yùn)行模式 6.中斷號、中斷向量與優(yōu)先級。(7種異常)7.存儲(chǔ)器格式。

      a)ARM體系結(jié)構(gòu)使用232個(gè)字節(jié)的單

      一、線性地址空間。將字節(jié)地址做為無符號數(shù)看待,范圍為0~232-1 b)對于字對齊的地址A,地址空間規(guī)則要求如下:

      ● 地址位于A的字由地址為A、A+

      1、A+2和A+3的字節(jié)組成; ● 地址位于A的半字由地址為A和A+1的字節(jié)組成;

      ● 地址位于A+2的半字由地址為A+2和A+3的字節(jié)組成; ● 地址位于A的字由地址為A和A+2的半字組成。注:這樣并不能完全定義字,半字和字節(jié)之間的映射。存儲(chǔ)器采用下列映射機(jī)制中的一種。

      大端存儲(chǔ):字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中,而字?jǐn)?shù)據(jù)的低字節(jié)則存放在高地址中

      小端存儲(chǔ):低地址中存放的是字?jǐn)?shù)據(jù)的低字節(jié),高地址存放的是字?jǐn)?shù)據(jù)的高字節(jié)

      例如,假設(shè)一個(gè)32位字長的微處理器上定義一個(gè)int類型的常量a,其內(nèi)存地址位 于0x6000處,其值用十六進(jìn)制表示為0x23456789。如圖1.2.2(a)所示,如果按小端法存儲(chǔ),則其最低字節(jié)數(shù)據(jù)0x89存放在內(nèi)存低地址0x6000處,最高字 節(jié)數(shù)據(jù)0x23存放在內(nèi)存高地址0x6003處。如圖1.2.2(b)所示,如果按大端法存儲(chǔ),則其最高字節(jié)數(shù)據(jù)0x23存放在內(nèi)存的低地址0x6000處,而最低字節(jié)數(shù)據(jù)0x89存放在內(nèi)存的高地址0x6003處。

      第三章

      一:尋址方式。1.寄存器尋址

      操作數(shù)的值在寄存器中,指令中的地址碼字段給出的是寄存器編號,寄存器的內(nèi)容是操作數(shù),指令執(zhí)行時(shí)直接取出寄存器值操作。

      例如指令:

      MOV R1,R2 ;R1←R2 SUB R0,R1,R2 ;R0←R1-R2 2.立即尋址

      在立即尋址指令中數(shù)據(jù)就包含在指令當(dāng)中,立即尋址指令的操作碼字段后面的地址碼部分就是操作數(shù)本身,取出指令也就取出了可以立即使用的操作數(shù)(也稱為立即數(shù))。立即數(shù)要以“?!睘榍熬Y,表示16進(jìn)制數(shù)值時(shí)以“0x”表示。

      SUBS R0,R0,#1;R0減1,結(jié)果放入R0,并且影響標(biāo)志位 MOV R0,#0xFF000;將立即數(shù)0xFF000裝入R0寄存器 3.寄存器移位尋址。

      寄存器移位尋址是ARM指令集特有的尋址方式。當(dāng)?shù)?個(gè)操作數(shù)是寄存器移位方式時(shí),第2個(gè)寄存器操作數(shù)在與第1個(gè)操作數(shù)結(jié)合之前,選擇進(jìn)行移位操作。寄存器移位尋址指令舉例如下:

      MOV R0,R2,LSL #3;R2的值左移3位,結(jié)果放入R0,即是R0=R2×8 ANDS R1,R1,R2,LSL R3;R2的值左移R3位,然后和R1相“與”操作,結(jié)果放入R1 4.寄存器間接尋址

      寄存器間接尋址指令中的地址碼給出的是一個(gè)通用寄存器的編號,所需的操作數(shù)保存在寄存器指定地址的存儲(chǔ)單元中,即寄存器為操作數(shù)的地址指針。寄存器間接尋址指令舉例如下:

      LDR R1,[R2];將R2指向的存儲(chǔ)單元的數(shù)據(jù)讀出保存在R1中

      SWP R1,R1,[R2];將寄存器R1的值和R2指定的存儲(chǔ)單元的內(nèi)容交換 5.基址尋址

      基址尋址就是將基址寄存器的內(nèi)容與指令中給出的偏移量相加,形成操作數(shù)的有效地址?;穼ぶ酚糜谠L問基址附近的存儲(chǔ)單元,常用于查表、數(shù)組操作、功能部件寄存器訪問等。基址尋址指令舉例如下:

      LDR R2,[R3,#0x0C];讀取R3+0x0C地址上的存儲(chǔ)單元的內(nèi)容,放入R2 STR R1,[R0,#-4]!;先R0=R0-4,然后把R1的值寄存到保存到R0指定的存儲(chǔ)單元

      6.多寄存器尋址

      多寄存器尋址一次可傳送幾個(gè)寄存器值,允許一條指令傳送16個(gè)寄存器的任何子集或所有寄存器。多寄存器尋址指令舉例如下:

      LDMIA R1!,{R2-R7,R12};將R1指向的單元中的數(shù)據(jù)讀出到R2~R7、R12中(R1自

      動(dòng)加1)STMIA R0!,{R2-R7,R12};將寄存器R2~R7、R12的值保存到R0指向的存儲(chǔ)單元中

      R0自動(dòng)加1 7.堆棧尋址

      堆棧是一個(gè)按特定順序進(jìn)行存取的存儲(chǔ)區(qū),操作順序?yàn)椤昂筮M(jìn)先出”。堆棧尋址是隱含的,它使用一個(gè)專門的寄存器(堆棧指針)指向一塊存儲(chǔ)區(qū)域(堆棧),指針?biāo)赶虻拇鎯?chǔ)單元即是堆棧的棧頂。存儲(chǔ)器堆棧可分為兩種:

      向上生長:向高地址方向生長,稱為遞增堆棧 向下生長:向低地址方向生長,稱為遞減堆棧 8.塊拷貝尋址

      多寄存器傳送指令用于將一塊數(shù)據(jù)從存儲(chǔ)器的某一位置拷貝到另一位置。如: STMIA R0!,{R1-R7};將R1~R7的數(shù)據(jù)保存到存儲(chǔ)器中。

      ;存儲(chǔ)指針在保存第一個(gè)值之后增加,;增長方向?yàn)橄蛏显鲩L。STMIB R0!,{R1-R7};將R1~R7的數(shù)據(jù)保存到存儲(chǔ)器中。

      ;存儲(chǔ)指針在保存第一個(gè)值之前增加,;增長方向?yàn)橄蛏显鲩L。9.相對尋址

      相對尋址是基址尋址的一種變通。由程序計(jì)數(shù)器PC提供基準(zhǔn)地址,指令中的地址碼字段作為偏移量,兩者相加后得到的地址即為操作數(shù)的有效地址。相對尋址指令舉例如下:

      BL SUBR1;調(diào)用到SUBR1子程序

      BEQ LOOP;條件跳轉(zhuǎn)到LOOP標(biāo)號處

      ...LOOP MOV R6,#1...SUBR1...二:指令集(LDR STR MOV ADD SUB)

      1.ARM指令集 2.Thumb指令集 3.常用指令

      a)LDR:加載字?jǐn)?shù)據(jù) b)STR:存儲(chǔ)字?jǐn)?shù)據(jù)

      LDR/STR指令尋址非常靈活,它由兩部分組成,其中一部分為一個(gè)基址寄存器,可以為任一個(gè)通用寄存器;另一部分為一個(gè)地址偏移量。地址偏移量有以下3種格式: 立即數(shù)。立即數(shù)可以是一個(gè)無符號的數(shù)值。這個(gè)數(shù)據(jù)可以加到基址寄存器,也可以從基址寄存器中減去這個(gè)數(shù)值。如:LDR R1,[R0,#0x12] 寄存器。寄存器中的數(shù)值可以加到基址寄存器,也可以從基址寄存器中減去這個(gè)數(shù)值。如:LDR R1,[R0,R2] 寄存器及移位常數(shù)。寄存器移位后的值可以加到基址寄存器,也可以從基址寄存器中減去這個(gè)數(shù)值。

      如:LDR R1,[R0,R2,LSL #2]

      從尋址方式的地址計(jì)算方法分,加載/存儲(chǔ)指令有以下4種格式: 零偏移。如:LDR Rd,[Rn] 前索引偏移。如:LDR Rd,[Rn,#0x04]!程序相對偏移。如:LDR Rd,labe1 后索引偏移。如:LDR Rd,[Rn],#0x04 c)MOV:數(shù)據(jù)傳送指令

      d)ADD:加法運(yùn)算指令

      e)SUB:減法運(yùn)算指令

      第四章

      一:最小系統(tǒng)一個(gè)嵌入式處理器自己是不能獨(dú)立工作的,必須給它供電、加上時(shí)鐘信號、提供復(fù)位信號,如果芯片沒有片內(nèi)程序存儲(chǔ)器,則還要加上存儲(chǔ)器系統(tǒng),然后嵌入式處理器芯片才可能工作。這些提供嵌入式處理器運(yùn)行所必須的條件的電路與嵌入式處理器共同構(gòu)成了這個(gè)嵌入式處理器的最小系統(tǒng)。而大多數(shù)基于ARM7處理器核的微控制器都有調(diào)試接口,這部分在芯片實(shí)際工作時(shí)不是必需的,但因?yàn)檫@部分在開發(fā)時(shí)很重要,所以也把這部分也歸入最小系統(tǒng)中。

      二:時(shí)鐘產(chǎn)生單元

      目前所有的微控制器均為時(shí)序電路,需要一個(gè)時(shí)鐘信號才能工作,大多數(shù)微控制器具有晶體振蕩器。簡單的方法是利用微控制器內(nèi)部的晶體振蕩器,但有些場合(如減少功耗、需要嚴(yán)格同步等情況)需要使用外部振蕩源提供時(shí)鐘信號。

      三:I2C的概念與應(yīng)用

      I2C BUS(Inter Integrated Circuit BUS,內(nèi)部集成電路總線)是由Philips公司推出的二線制串行擴(kuò)展總線,用于連接微控制器及其外圍設(shè)備。I2C總線是具備總線仲裁和高低速設(shè)備同步等功能的高性能多主機(jī)總線,直接用導(dǎo)線連接設(shè)備,通信時(shí)無需片選信號。

      如圖6.2.1所示,在I2C總線上,只需要兩條線—串行數(shù)據(jù)SDA線和串行時(shí)鐘SCL線,它們用于總線上器件之間的信息傳遞。SDA和SCL都是雙向的。每個(gè)器件都有一個(gè)唯一的地址以供識別,而且各器件都可以作為一個(gè)發(fā)送器或接收器(由器件的功能決定)。2C總線有如下操作模式:主發(fā)送模式、主接收模式、從發(fā)送模式、從接收模式。下面介紹其通用傳輸過程、信號及數(shù)據(jù)格式。

      *數(shù)據(jù)有效:在傳輸數(shù)據(jù)的時(shí)候,SDA線必須在時(shí)鐘的高電平周期保持穩(wěn)定,SDA的高或低電平狀態(tài)只有在SCL線的時(shí)鐘信號是低電平時(shí)才能改變.*起始停止

      當(dāng)I2C接口處于從模式時(shí),要想數(shù)據(jù)傳輸,必須檢測SDA線上的啟動(dòng)信號,啟動(dòng)信號由主器件產(chǎn)生。如圖6.2.2所示,在SCL信號為高時(shí),SDA產(chǎn)生一個(gè)由高變低的電平變化,即產(chǎn)生一個(gè)啟動(dòng)信號。當(dāng)I2C總線上產(chǎn)生了啟動(dòng)信號后,那么這條總線就被發(fā)出啟動(dòng)信號的主器件占用了,變成“忙”狀態(tài);如圖6.2.2所示,在SCL信號為高時(shí),SDA產(chǎn)生一個(gè)由低變高的電平變化,產(chǎn)生停止信號。停止信號也由主器件產(chǎn)生,作用是停止與某個(gè)從器件之間的數(shù)據(jù)傳輸。當(dāng)I2C總線上產(chǎn)生了一個(gè)停止信號后,那么在幾個(gè)時(shí)鐘周期之后總線就被釋放,變成“閑”狀態(tài)。主器件產(chǎn)生一個(gè)啟動(dòng)信號后,它還會(huì)立即送出一個(gè)從地址,用來通知將與它進(jìn)行數(shù)據(jù)通信的從器件。1個(gè)字節(jié)的地址包括7位的地址信息和1位的傳輸方向指示位,如果第7位為“0”,表示馬上要進(jìn)行一個(gè)寫操作;如果為“1”,表示馬上要進(jìn)行一個(gè)讀操作。

      *傳輸格式 SDA線上傳輸?shù)拿總€(gè)字節(jié)長度都是8位,每次傳輸中字節(jié)的數(shù)量是沒有限制的。在起始條件后面的第一個(gè)字節(jié)是地址域,之后每個(gè)傳輸?shù)淖止?jié)后面都有一個(gè)應(yīng)答(ACK)位。傳輸中串行數(shù)據(jù)的MSB(字節(jié)的高位)首先發(fā)送。

      *應(yīng)答信號

      為了完成1個(gè)字節(jié)的傳輸操作,接收器應(yīng)該在接收完1個(gè)字節(jié)之后發(fā)送ACK位到發(fā)送器,告訴發(fā)送器,已經(jīng)收到了這個(gè)字節(jié)。ACK脈沖信號在SCL線上第9個(gè)時(shí)鐘處發(fā)出(前面8個(gè)時(shí)鐘完成1個(gè)字節(jié)的數(shù)據(jù)傳輸,SCL上的時(shí)鐘都是由主器件產(chǎn)生的)。當(dāng)發(fā)送器要接收ACK脈沖時(shí),應(yīng)該釋放SDA信號線,即將SDA置高。接收器在接收完前面8位數(shù)據(jù)后,將SDA拉低。發(fā)送器探測到SDA為低,就認(rèn)為接收器成功接收了前面的8位數(shù)據(jù)。

      *I2C總線的數(shù)據(jù)傳輸過程

      ① 開始:主設(shè)備產(chǎn)生啟動(dòng)信號,表明數(shù)據(jù)傳輸開始。

      ② 地址:主設(shè)備發(fā)送地址信息,包含7位的從設(shè)備地址和1位的數(shù)據(jù)方向指示位(讀或?qū)懳唬硎緮?shù)據(jù)流的方向)。

      ③ 數(shù)據(jù):根據(jù)指示位,數(shù)據(jù)在主設(shè)備和從設(shè)備之間進(jìn)行傳輸。數(shù)據(jù)一般以8位傳輸,最重要的位放在前面;具體能傳輸多少量的數(shù)據(jù)并沒有限制。接收器產(chǎn)生1位的ACK(應(yīng)答信號)表明收到了每個(gè)字節(jié)。傳輸過程可以被中止和重新開始。

      ④ 停止:主設(shè)備產(chǎn)生停止信號,結(jié)束數(shù)據(jù)傳輸。

      第五章

      一:串口的概念(串行接口)常用的數(shù)據(jù)通信方式有并行通信和串行通信兩種。當(dāng)兩臺數(shù)字設(shè)備之間傳輸距離較遠(yuǎn)時(shí),數(shù)據(jù)往往以串行方式傳輸。串行通信的數(shù)據(jù)是一位一位地進(jìn)行傳輸?shù)?,在傳輸中每一位?shù)據(jù)都占據(jù)一個(gè)固定的時(shí)間長度。與并行通信相比,如果n位并行接口傳送n位數(shù)據(jù)需時(shí)間T,則串行傳送的時(shí)間最少為nT。串行通信具有傳輸線少、成本低等優(yōu)點(diǎn),特別適合遠(yuǎn)距離傳送。

      ① 串行數(shù)據(jù)通信模式

      串行數(shù)據(jù)通信模式有單工通信、半雙工通信和全雙工通信3種基本的通信模式。● 單工通信:數(shù)據(jù)僅能從設(shè)備A到設(shè)備B進(jìn)行單一方向的傳輸?!?半雙工通信:數(shù)據(jù)可以從設(shè)備A到設(shè)備B進(jìn)行傳輸,也可以從設(shè)備B到設(shè)備A進(jìn)行傳輸,但不能在同一時(shí)刻進(jìn)行雙向傳輸。

      ● 全雙工通信:數(shù)據(jù)可以在同一時(shí)刻從設(shè)備A傳輸?shù)皆O(shè)備B,或從設(shè)備B傳輸?shù)皆O(shè)備A,即可以同時(shí)雙向傳輸。

      ② 串行通信方式 a.異步通信方式

      異步通信時(shí)數(shù)據(jù)是一幀一幀傳送的,每幀數(shù)據(jù)包含有起始位(”0”)、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位(”1”),每幀數(shù)據(jù)的傳送靠起始位來同步。一幀數(shù)據(jù)的各位代碼間的時(shí)間間隔是固定的,而相鄰兩幀的數(shù)據(jù)其時(shí)間間隔是不固定的。在異步通信的數(shù)據(jù)傳送中,傳輸線上允許空字符。

      異步通信對字符的格式、波特率、校驗(yàn)位有確定的要求?!?字符的格式

      每個(gè)字符傳送時(shí),必須前面加一起始位,后面加上1、1.5或2位停止位。例如ASCII碼傳送時(shí),一幀數(shù)據(jù)的組成是:前面1個(gè)起始位,接著7位ASCII編碼,再接著一位奇偶校驗(yàn)位,最后一位停止位,共10位。

      ● 波特率

      傳送數(shù)據(jù)位的速率稱為波特率,用位/秒(bit/s)來表示,稱之為波特。例如,數(shù)據(jù)傳送的速率為120字符/秒,每幀包括10個(gè)數(shù)據(jù)位,則傳送波特率為:

      10×120=1200b/s=1200波特

      每一位的傳送時(shí)間是波特的倒數(shù),如1/1200=0.833ms。異步通信的波特率的數(shù)值通常為:150、300、600、1200、2400、4800、9600、14400、28800等,數(shù)值成倍數(shù)變化。

      ● 校驗(yàn)位

      在一個(gè)有8位的字節(jié)(byte)中,其中必有奇數(shù)個(gè)或偶數(shù)個(gè)的“1”狀態(tài)位。對于偶校驗(yàn)就是要使字符加上校驗(yàn)位有偶數(shù)個(gè)“1”;奇校驗(yàn)就是要使字符加上校驗(yàn)位有奇數(shù)個(gè)“1”。例如數(shù)據(jù)“00010011”,共有奇數(shù)個(gè)“1”,所以當(dāng)接收器要接收偶數(shù)個(gè)“1”時(shí)(即偶校驗(yàn)時(shí)),則校驗(yàn)位就置為“1”,反之,接收器要接收奇數(shù)個(gè)“1”時(shí)(即奇校驗(yàn)時(shí)),則校驗(yàn)位就置為“0”。

      一般校驗(yàn)位的產(chǎn)生和檢查是由串行通信控制器內(nèi)部自動(dòng)產(chǎn)生,除了加上校驗(yàn)位以外,通信控制器還自動(dòng)加上停止位,用來指明欲傳送字符的結(jié)束。停止位通常取1、1.5或2個(gè)位。對接收器而言,若未能檢測到停止位則意味著傳送過程發(fā)生了錯(cuò)誤。

      在異步通信方式中,在發(fā)送的數(shù)據(jù)中含有起始位和停止位這兩個(gè)與實(shí)際需要傳送的數(shù)據(jù)毫無相關(guān)的位。如果在傳送1個(gè)8位的字符時(shí),其校驗(yàn)位、起始位和停止位都為1個(gè)位,則相當(dāng)于要傳送11個(gè)位信號,傳送效率只有約80%。

      (2)同步通信方式

      為了提高通信效率可以采用同步通信方式。同步傳輸采用字符塊的方式,減少每一個(gè)字符的控制和錯(cuò)誤檢測數(shù)據(jù)位,因而可以具有較高的傳輸速率。

      與異步方式不同的是,同步通信方式不僅在字符的本身之間是同步的,而且在字符與字符之間的時(shí)序仍然是同步的,即同步方式是將許多的字符聚集成一字符塊后,在每塊信息(常常稱之為信息幀)之前要加上1~2個(gè)同步字符,字符塊之后再加入適當(dāng)?shù)腻e(cuò)誤檢測數(shù)據(jù)才傳送出去。在同步通信時(shí)必須連續(xù)傳輸,不允許有間隙,在傳輸線上沒有字符傳輸時(shí),要發(fā)送專用的”空閑”字符或同步字符。

      在同步方式中產(chǎn)生一種所謂“冗余”字符,防止錯(cuò)誤傳送。假設(shè)欲傳送的數(shù)據(jù)位當(dāng)作一被除數(shù),而發(fā)送器本身產(chǎn)生一固定的除數(shù),將前者除以后者所得的余數(shù)即為該“冗余”字符。當(dāng)數(shù)據(jù)位和“冗余”字符位一起被傳送到接收器時(shí),接收器產(chǎn)生和發(fā)送器相同的除數(shù),如此即可檢查出數(shù)據(jù)在傳送過程中是否發(fā)生了錯(cuò)誤。統(tǒng)計(jì)數(shù)據(jù)表明采用”冗余”字符方法錯(cuò)誤防止率可達(dá)99%以上。

      二:NAND FLASH與NOR FLASH異同.答:不同:

      1)NOR Flash把整個(gè)存儲(chǔ)區(qū)分成若干個(gè)扇區(qū)(Sector),而NAND Flash把整個(gè)存儲(chǔ)區(qū) 分成若干個(gè)塊(Block),可以對以塊或扇區(qū)為單位的內(nèi)存單元進(jìn)行擦寫和再編程。

      2)NAND Flash執(zhí)行擦除操作是十分簡單的,而NOR型內(nèi)存則要求在進(jìn)行擦除前先 要將目標(biāo)塊內(nèi)所有的位都寫為0。由于擦除NOR Flash時(shí)是以64~128KB為單位的塊進(jìn)行的,執(zhí)行一個(gè)寫入/擦除操作的時(shí)間為5s,與此相反,擦除NAND Flash是以8~32KB的塊進(jìn)行的,執(zhí)行相同的操作最多只需要4ms。

      3)NOR Flash的讀速度比NAND Flash稍快一些,NAND Flash的寫入速度比NOR Flash 快很多。NAND Flash的隨機(jī)讀取能力差,適合大量數(shù)據(jù)的連續(xù)讀取。

      4)NOR Flash容量通常在1 MB~8MB之間。而NAND Flash用在8MB以上的產(chǎn)品當(dāng) 中。NOR Flash主要應(yīng)用在代碼存儲(chǔ)介質(zhì)中,NAND Flash適用于資料存儲(chǔ)。

      5)在NOR Flash上運(yùn)行代碼不需要任何的軟件支持。在NAND Flash上進(jìn)行同樣操作 時(shí),通常需要驅(qū)動(dòng)程序,也就是內(nèi)存技術(shù)驅(qū)動(dòng)程序(MTD)。NAND Flash和NOR Flash在進(jìn)行寫入和擦除操作時(shí)都需要MTD。

      6)在NAND Flash中每個(gè)塊的最大擦寫次數(shù)是一百萬次,而NOR Flash的擦寫次數(shù)是 十萬次。

      區(qū)別:兩者工藝不一樣,NOR讀取速度快,成本高,容量不易做大,NAND讀取慢,成本低,容量很容易作大。

      相同點(diǎn):都是采用FLASH技術(shù)生產(chǎn)

      功能:NOR適合作為芯片程序存儲(chǔ)的ROM使用,NAND適合作為非易失性數(shù)據(jù)存儲(chǔ)器 第八章

      一:Linux的最常用的命令

      答:1)adduser 示例:創(chuàng)建pdr帳戶 adduser pdr 2)cat 示例:

      cat text 在屏幕上顯示文件text的內(nèi)容;

      cat-n textfile1 > textfile2 把 textfile1 的文件內(nèi)容加上行號后輸入 textfile2 這個(gè)文件里; 3)cd 示例:假設(shè)用戶當(dāng)前目錄是 /home/xu 現(xiàn)需要更換到/home/xu/pro 目錄中 $ cd pro 4)cp 示例:

      $ cp-r /usr/xu/ /usr/liu/ 表示將/usr/xu 目錄中的所有文件及其子目錄拷貝到目錄 /usr/liu中。

      5)export 示例:顯示當(dāng)前所有環(huán)境變量的設(shè)置情況 #export 6)Fdisk 示例:查看當(dāng)前系統(tǒng)中磁盤的分區(qū)狀況,包括硬盤、U盤等fdisk-l 7)Ln: 類似windows下的快捷方式

      示例:要為當(dāng)前目錄下的file文件建立一個(gè)硬鏈接,名為/home/lbt/doc/file/, 可用如下命令: ln file /home/lbt/doc/file 8)locate 示例:locate filename: 尋找系統(tǒng)中所有叫filename的文件

      9)Ls 示例:將 /bin 目錄以下所有目錄及文件詳細(xì)資料列出 : ls-lR /bin 10)minicom 示例:開啟minicom的配置界面 minicom –s 11)Mkdir 示例:在當(dāng)前目錄中創(chuàng)建嵌套的目錄層次inin 和inin下的mail目錄權(quán)限設(shè)置為只有文件擁有者有讀、寫和執(zhí)行權(quán)限。mkdir-p-m 700./inin/mail/ 12)Mount 示例:掛載ntfs格式的hda7分區(qū)到/mnt/cdrom文件夾mount-o iocharset=cp936 /dev/hda7 /mnt/cdrom 13)mv 示例:$ mv /usr/xu/ *.表示將/usr/xu 中的所有文件移到當(dāng)前目錄 用.表示

      14)Passwd:passwd 作為普通用戶和超級權(quán)限用戶都可以運(yùn)行,但作為普通用戶只能 更改自己的用戶密碼,但前提是沒有被root用戶鎖定;如果root用戶運(yùn) 行passwd,可以設(shè)置或修改任何用戶的密碼;passwd 命令后面不接任何參數(shù)或用戶名,則表示修改當(dāng)前用戶的密碼

      示例:passwd pengdr 15)ping 示例:ping 004km.cn 16)pwd:查看”當(dāng)前工作目錄“的完整路徑 示例:

      [root@localhost ~]# pwd /root 17)reboot:執(zhí)行reboot指令可讓系統(tǒng)停止運(yùn)作,并重新開機(jī)。示例:做個(gè)重開機(jī)的模擬(只有紀(jì)錄并不會(huì)真的重開機(jī))。reboot –w 18)rmdir 示例:在工作目錄下的 BBB 目錄中,刪除名為 Test 的子目錄。若 Test 刪 除后,BBB 目錄成為空目錄,則 BBB 亦予刪除。

      rmdir-p BBB/Tes [root@localhost ~]# 19)setup 功能說明:設(shè)置程序,類似windows控制面板 語法:setup 20)su功能說明:變更用戶身份。示例:變更賬號為超級用戶,并在執(zhí)行df命令后 還原使用者。su-c df root 21)tar 功能說明:備份或解壓文件。示例:壓縮目錄/etc為tar.gz后綴。# tar cvf backup.tar /etc 解壓#tar –zxvf file.tar.gz #tar –jxvf file.tar.bz2 22)umount 功能:卸除文件系統(tǒng)。示例:卸載 /mnt區(qū): umount /mnt/cdrom 23)whereis 功能:查詢某個(gè)二進(jìn)制命令文件、幫助文件等所在目錄.比如:查找“l(fā)s” 這個(gè)二進(jìn)制命令文件所在的目錄 whereis ls

      第九章

      一:ADS編譯環(huán)境的設(shè)置

      二:系統(tǒng)啟動(dòng)代碼bootloader概念

      在嵌入式系統(tǒng)中,通常沒有像BIOS那樣的固件程序,因此整個(gè)系統(tǒng)的加載啟動(dòng)任務(wù)就完全由BootLoader來完成。比如在一個(gè)基于 ARM7TDMI core的嵌入式系統(tǒng)中,系統(tǒng)在上電或復(fù)位時(shí)都從地址 0x00000000開始執(zhí)行。而在這個(gè)地址處安排的通常就是系統(tǒng)的BootLoader程序。

      BootLoader就是在操作系統(tǒng)運(yùn)行之前運(yùn)行的一段小程序。通過它可以初始化硬件設(shè)備,從而將系統(tǒng)的軟硬件環(huán)境設(shè)置到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)做好準(zhǔn)備。Bootloader是在嵌入式系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段引導(dǎo)加載程序。

      作用:將內(nèi)核映像從硬盤上讀到RAM中,然后跳轉(zhuǎn)到內(nèi)核的入口點(diǎn)去運(yùn)行,即開始啟動(dòng)操作系統(tǒng)。

      嵌入式系統(tǒng)常見的Bootloader有vivi和U-Boot,RedBoot

      題目一:簡述Bootloader啟動(dòng)過程。

      1、第一階段

      (1)、基本的硬件設(shè)備初始化(2)、為階段2代碼準(zhǔn)備RAM空間(3)、拷貝階段2代碼到RAM空間(4)、設(shè)置好堆棧

      (5)、跳轉(zhuǎn)到階段2的C程序入口點(diǎn)

      2、第二階段

      (1)、初始化本階段要使用到的硬件(2)、檢測系統(tǒng)內(nèi)存映射(memory map)(3)、將kernel和根文件系統(tǒng)映像從flash讀到RAM空間(4)、為kernel設(shè)置啟動(dòng)參數(shù)(5)、調(diào)用內(nèi)核

      題目二:請簡述嵌入式軟件Bootloader的兩種工作模式。

      啟動(dòng)加載模式:啟動(dòng)加載模式稱為“自舉”(Autonomous)模式。即Bootloader從目標(biāo)機(jī)上的某個(gè)固態(tài)存儲(chǔ)設(shè)備上將操作系統(tǒng)加載到 RAM 中運(yùn)行,整個(gè)過程并沒有用戶的介入。啟動(dòng)加載模式是 Bootloader的正常工作模式,在嵌入式產(chǎn)品發(fā)布的時(shí)侯,Bootloader必須工作在這種模式下。

      下載模式:在這種模式下,目標(biāo)機(jī)上的Bootloader將通過串口連接或網(wǎng)絡(luò)連接等通信手段從主機(jī)下載文件。下載內(nèi)容及存儲(chǔ):主要是下載內(nèi)核映像和根文件系統(tǒng)映像等。從主機(jī)下載的文件通常首先被Bootloader保存到目標(biāo)機(jī)的RAM中,然后再被 Bootloader寫到目標(biāo)機(jī)上的FLASH 類固態(tài)存儲(chǔ)設(shè)備中

      三:Makefile文件的用途與寫法

      1.用途:makefile關(guān)系到了整個(gè)工程的編譯規(guī)則。一個(gè)工程中的源文件不計(jì)數(shù),其按類型、功能、模塊分別放在若干個(gè)目錄中,makefile定義了一系列的規(guī)則來指定,哪些文件需要先編譯,哪些文件需要后編譯,哪些文件需要重新編譯,甚至于進(jìn)行更復(fù)雜的功能操作,因?yàn)閙akefile就像一個(gè)Shell腳本一樣,其中也可以執(zhí)行操作系統(tǒng)的命令。2.寫法: 1)需要由make工具創(chuàng)建的目標(biāo)體(target),通常是目標(biāo)文件右可執(zhí)行文件;2)要?jiǎng)?chuàng)建的目標(biāo)體所依賴的文件(dependency_file);3)創(chuàng)建每個(gè)目標(biāo)體進(jìn)需要運(yùn)行的命令(command)格式:target:dependency_files command 例如,有兩個(gè)文件分別為hello.c和hello.h,創(chuàng)建的目標(biāo)體為hello.o,執(zhí)行的命令為gcc編譯指令:gcc –c hello.c,那么,對應(yīng)的Makefile就可以寫為:

      #The simplest example hello.o:hello.c hello.h gcc –c hello.c –o hello.o 接著就可以make了。使用make的格式為:#make target,這樣make就會(huì)自動(dòng)讀入Makefile(也可以是首寫字母小寫makefile)并執(zhí)行對應(yīng)target的commank語句,并會(huì)找到相應(yīng)的依賴文件。如下所示:

      [root @localhost makefile] # make hello.o Gcc –c hello.c –o hello.o [root @localhost makefile] # ls Hello,c hello.h hello.o Makefile 可以看到,Makefile執(zhí)行了”hello.o”對應(yīng)的命令語句,并生成了”hello.o”的目標(biāo)體.附:makefile的自動(dòng)變量:

      $* 不包括擴(kuò)展名的目標(biāo)文件名稱

      $+ 所以的依賴文件,以空格分開,并以出現(xiàn)的先后為序,可能包含重復(fù)的依賴文件 $< 第一個(gè)依賴文件

      $? 所以時(shí)間戳比目標(biāo)文件晚的依賴文件,并以空格分開 $@ 目標(biāo)文件的完整名稱

      $^ 所有不重復(fù)的依賴文件,以空格分開

      $% 如果目標(biāo)是歸檔成員,則該變量表示目標(biāo)的歸檔成員名稱

      題目一:Makefile和Make各實(shí)現(xiàn)什么功能?

      Makefile文件內(nèi)容 按照規(guī)則,對系統(tǒng)中本目錄下的文件(.c、.s、.o、.h、.lib等)根據(jù)相互關(guān)系和要求進(jìn)行組織,設(shè)定各自的編譯方法,指定所生成的目標(biāo)。Makefile是一種文本格式文件。

      Make是Makefile文件的解釋器

      Make對Makefile文件解釋后,生成Linux的shell命令和gcc編譯命令,接著對命令執(zhí)行,最終生成目標(biāo)文件。

      Makefile是工程系統(tǒng)編譯批處理文件。

      第十章

      一:嵌入式編譯環(huán)境的概念、建立方法以及步驟

      第十一章

      一:Linux驅(qū)動(dòng)設(shè)備的分類與常用的數(shù)據(jù)結(jié)構(gòu)

      1.Linux系統(tǒng)設(shè)備分為三類:字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備 2.數(shù)據(jù)結(jié)構(gòu): 用戶應(yīng)用程序調(diào)用設(shè)備的功能都是在設(shè)備驅(qū)動(dòng)程序中定義的,也就是設(shè)備驅(qū)動(dòng)程序中所定義的功能入口點(diǎn)函數(shù)(或稱為功能接口函數(shù))。這些設(shè)備的功能接口函數(shù)都被定義在 中的數(shù)據(jù)結(jié)構(gòu)體里面。

      struct file_operations{ };

      struct inode{ };

      struct file{ }; 二:內(nèi)核驅(qū)動(dòng)代碼的書寫規(guī)則

      第二篇:ARM嵌入式技術(shù)復(fù)習(xí)總結(jié)

      第一章 1.嵌入式系統(tǒng)定義/概念:嵌入式系統(tǒng)就是嵌入到對象體中的專用計(jì)算機(jī)系統(tǒng)。三要素:嵌入、專用、計(jì)算機(jī)。嵌入性:嵌入到對象體系中,有對象環(huán)境要求,專用性:軟、硬件按對象要求裁減,計(jì)算機(jī):實(shí)現(xiàn)對象的智能化功能。廣義的講,一個(gè)嵌入式系統(tǒng)就是一個(gè)具有特定功能或用途的計(jì)算機(jī)軟硬件集合體,即以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用對功能??煽啃?、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)發(fā)展的最高形式——片上系統(tǒng)(SOC)2.嵌入式系統(tǒng)的特性:a.只執(zhí)行特定功能;b.以微控制器、外圍器件為中心,系統(tǒng)構(gòu)成可大可小;c.有嚴(yán)格的時(shí)序性和穩(wěn)定性要求;d.自動(dòng)操作循環(huán),等待中斷控制;e.程序被燒寫在存儲(chǔ)芯片中。(開發(fā)時(shí)應(yīng)注意的a.嵌入式系統(tǒng)是面向具體應(yīng)用的產(chǎn)品b.嵌入式軟件特征:具有實(shí)時(shí)性,高質(zhì)量、高可靠,程序固化c.需要軟硬件開發(fā)工具和系統(tǒng)軟件d.需要應(yīng)用專家參與開發(fā)e.嵌入式系統(tǒng)分散而不可壟斷)3.嵌入式系統(tǒng)的分類:a.按表現(xiàn)形式分(硬件范疇):芯片級嵌入(含程序或算法的處理器)、模塊級嵌入(系統(tǒng)中的某個(gè)核心模塊)、系統(tǒng)級嵌入(完整系統(tǒng)并有嵌入軟件)b.按實(shí)時(shí)性要求分(軟件范疇):非實(shí)時(shí)系統(tǒng)(PDA)、實(shí)時(shí)系統(tǒng)(軟實(shí)時(shí)系統(tǒng):消費(fèi)類產(chǎn)品。硬實(shí)時(shí)系統(tǒng):工業(yè)和軍工系統(tǒng))4.嵌入式微處理器(發(fā)展趨勢:經(jīng)濟(jì)性、微型化、智能化)主要分類: 微控制器(MCU)(51單片機(jī))、微處理器(MPU)(ARM、PowerPC)、數(shù)字信號處理器(DSP)(一般用在快速執(zhí)行算法,做控制比較困難)、混合處理器和片上系統(tǒng)(SOC)(結(jié)構(gòu)簡潔,體積小、功耗低,可靠性高,設(shè)計(jì)生產(chǎn)效率高。Smart XA)、可編程片上系統(tǒng)(SOPC)5.嵌入式系統(tǒng)組成:粗略劃分:嵌入式處理器、外圍設(shè)備、嵌入式操作系統(tǒng)(可選)、嵌入式應(yīng)用軟件。稍細(xì)劃分:嵌入式處理器、外圍設(shè)備、驅(qū)動(dòng)程序、嵌入式操作系統(tǒng)、應(yīng)用接口、嵌入式應(yīng)用軟件。6.嵌入式操作系統(tǒng)簡介:a.嵌入式操作系統(tǒng)是支持嵌入式系統(tǒng)的操作系統(tǒng),它是嵌入式應(yīng)用軟件的基礎(chǔ)和開發(fā)平臺。b.功能:進(jìn)程調(diào)度、內(nèi)存管理、設(shè)備管理、文件管理、中斷管理、系統(tǒng)功能接口(API調(diào)用,如網(wǎng)絡(luò)功能)、設(shè)備驅(qū)動(dòng)。c.特點(diǎn):系統(tǒng)可裁減、可配置,系統(tǒng)具有實(shí)時(shí)性,系統(tǒng)穩(wěn)定、可靠。d.實(shí)時(shí)系統(tǒng)的定義:能夠?qū)ν獠渴录龀黾皶r(shí)響應(yīng)的系統(tǒng),響應(yīng)時(shí)間要有保證。硬實(shí)時(shí)系統(tǒng):對系統(tǒng)響應(yīng)時(shí)間有嚴(yán)格的要求,如果系統(tǒng)響應(yīng)時(shí)間不能滿足,就會(huì)引起系統(tǒng)崩潰或致命的錯(cuò)誤。軟實(shí)時(shí)系統(tǒng):對系統(tǒng)響應(yīng)時(shí)間有要求,但是如果系統(tǒng)響應(yīng)時(shí)間不能滿足,它并不會(huì)導(dǎo)致系統(tǒng)出現(xiàn)致命的錯(cuò)誤或崩潰,只是降低系統(tǒng)的吞吐量。e.幾種主流的嵌入式操作系統(tǒng):μC/OS-II:教學(xué)的免費(fèi)、面向中小型嵌入式系統(tǒng)應(yīng)用。Vxworks:具有可靠、實(shí)時(shí)、可裁減特性。WinCE:它是微軟針對個(gè)人電腦以外的電腦產(chǎn)品所研發(fā)的嵌入式操作系統(tǒng)。Linux/μCLinux:免費(fèi)、源碼開放的操作系統(tǒng),μclinux面向沒有MMU的硬件平臺。PalmOS :具有開放的操作系統(tǒng)應(yīng)用程序接口(API),可讓用戶靈活方便地定制操作系統(tǒng)。

      第二章1.ARM體系的特點(diǎn):a.低功耗、低成本、高性能(3/5級流水線)。b.采用RISC體系結(jié)構(gòu)。c.使用大量的寄存器(37個(gè)寄存器31個(gè)通用6個(gè)狀態(tài))d.高效的指令系統(tǒng)(Thumb指令與等價(jià)的ARM代碼相比較可節(jié)省30~40%以上的存儲(chǔ)空間)e.在保證高性能的前提下盡量縮小芯片面積、降低功耗;所有的指令都可以根據(jù)前面的執(zhí)行結(jié)果決定是否被執(zhí)行。2.ARM7采用3級流水線(是把一個(gè)重復(fù)的過程分解為若干個(gè)子過程,每個(gè)子過程可以與其他子過程同時(shí)進(jìn)行):取指(從程序存儲(chǔ)器中取指令,放入指令流水線,占用存儲(chǔ)器訪問操作)、譯碼(指令譯碼,占用譯碼邏輯)、執(zhí)行(執(zhí)行指令/讀寫reg,占用ALU及數(shù)據(jù)路徑)。一條指令有3個(gè)時(shí)鐘周期的執(zhí)行時(shí)間,但吞吐量是每個(gè)周期1條指令。PC 指向處于讀取級的指令地址,而不是處于執(zhí)行級的指令地址PC=當(dāng)前執(zhí)行指令地址+8。比較:ARM9是5級流水線(取指、譯碼、執(zhí)行、存儲(chǔ)器、寫),哈佛架構(gòu),擁有獨(dú)立的指令和數(shù)據(jù)總線;指令和數(shù)據(jù)的讀取可以在同一周期進(jìn)行。3級流水的ARM7內(nèi)核是指令和數(shù)據(jù)總線復(fù)用的馮.諾依曼架構(gòu),指令和數(shù)據(jù)的讀取不能在同一周期進(jìn)行;5級流水線設(shè)計(jì)把寄存器讀取、邏輯運(yùn)算、結(jié)果回寫分散在不同的流水當(dāng)中,每一級流水的操作簡潔,提升了處理器的主頻。3.ARM微處理器的工作狀態(tài)與模式:兩種工作狀態(tài):ARM狀態(tài),此時(shí)處理器執(zhí)行32位的字對齊的ARM指令;Thumb狀態(tài),此時(shí)處理器執(zhí)行16位的、半字對齊的Thumb指令。狀態(tài)切換:ARM?THUMB:當(dāng)操作數(shù)寄存器的狀態(tài)位(位0)為1時(shí),可以采用執(zhí)行BX指令的方法;當(dāng)處理器處于Thumb狀態(tài)時(shí)發(fā)生異常,則異常處理返回時(shí),自動(dòng)切換到Thumb狀態(tài)。THUMB?ARM:當(dāng)操作數(shù)寄存器的狀態(tài)位為0時(shí),執(zhí)行BX指令;在處理器進(jìn)行異常處理時(shí),把PC指針放入異常模式鏈接寄存器中,并從異常向量地址開始執(zhí)行程序,也可使處理器切換到ARM狀態(tài)。模式:用戶模式:ARM處理器正常的程序執(zhí)行狀態(tài),大部分任務(wù)執(zhí)行在這種模式;快速中斷模式:當(dāng)一個(gè)高優(yōu)先級中斷產(chǎn)生時(shí)將會(huì)進(jìn)入這種模式,用于高速數(shù)據(jù)傳輸或通道處理;外部中斷模式:當(dāng)一個(gè)低優(yōu)先級中斷產(chǎn)生時(shí)將會(huì)進(jìn)入這種模式,用于通用的中斷處理;管理模式:當(dāng)復(fù)位或軟中斷指令執(zhí)行時(shí)將會(huì)進(jìn)入這種模式,供操作系統(tǒng)使用的一種保護(hù)模式;中止模式:當(dāng)存取異常時(shí)將會(huì)進(jìn)入這種模式,用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù);未定義模式:當(dāng)執(zhí)行未定義指令時(shí)會(huì)進(jìn)入這種模式,軟件仿真硬件協(xié)處理器;系統(tǒng)模式:供需要訪問系統(tǒng)資源的操作系統(tǒng)任務(wù)使用,運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù)。模式特點(diǎn):1)用戶模式特點(diǎn):應(yīng)用程序不能夠訪問受操作系統(tǒng)保護(hù)的系統(tǒng)資源;應(yīng)用程序不能進(jìn)行處理器模式的切換。2)系統(tǒng)模式特點(diǎn):不屬于異常模式,不是通過異常進(jìn)入的。系統(tǒng)模式屬于特權(quán)模式,可以訪問所有的系統(tǒng)資源,也可以直接進(jìn)行模式的切換。它主要供操作系統(tǒng)使用。3)特權(quán)模式:除用戶模式之外的工作模式,特點(diǎn):應(yīng)用程序可以訪問所有的系統(tǒng)資源;可以任意地進(jìn)行處理器模式的切換 4)異常模式:除用戶模式、系統(tǒng)模式之外的五種模式,特點(diǎn):以各自的中斷或異常方式進(jìn)入,并且處理各自的中斷或異常。模式切換:軟件控制進(jìn)行切換(在特權(quán)模式下通過改變CPSR中的運(yùn)行模式位[4:0]);通過外部中斷和異常進(jìn)行切換。4.數(shù)據(jù)類型: 8位、16位(半字對齊)、32位(字對齊)的有符號和無符號型。5.存儲(chǔ)字?jǐn)?shù)據(jù):兩種方法(大端、小端格式)。大端格式:字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中,而字?jǐn)?shù)據(jù)的低字節(jié)則存放在高地址中;小端格式:與大端存儲(chǔ)格式相反。缺省設(shè)置為小端格式。6.ARM狀態(tài)下寄存器:程序計(jì)數(shù)器PC(R15)(ARM狀態(tài)下,位[1:0]為0,位[31:2]用于保存PC;Thumb狀態(tài)下,位[0]為0,位[31:1]用于保存PC)。R13常用作堆棧指針(SP)。R14也稱作子程序連接寄存器或連接寄存器LR。當(dāng)執(zhí)行BL子程序調(diào)用指令時(shí),可以從R14中得到R15的備份。寄存器R16用作CPSR(當(dāng)前程序狀態(tài)寄存器)。7.ARM/Thumb下寄存器區(qū)別:Thumb狀態(tài)下的寄存器集是ARM狀態(tài)下寄存器集的一個(gè)子集,Thumb和ARM狀態(tài)下的R0~R7、CPSR和所有的SPSR是相同的;Thumb狀態(tài)下的SP對應(yīng)于ARM狀態(tài)下的R13;Thumb狀態(tài)下的LR對應(yīng)于R14;Thumb狀態(tài)下的PC對應(yīng)于R15。8.異常:ARM有7種異常:復(fù)位、未定義指令、軟件中斷、指令預(yù)取中止、數(shù)據(jù)中止、IRQ、FIQ。異常響應(yīng):復(fù)位異常立即中止當(dāng)前指令。其他:保存返回地址(將引起異常指令的下一條指令的地址保存到新的異常模式下的R14);保存當(dāng)前狀態(tài)寄存器CPSR的內(nèi)容(將CPSR的內(nèi)容保存到將要執(zhí)行的異常中斷對應(yīng)的SPSR中);設(shè)置當(dāng)前狀態(tài)寄存器CPSR中的相應(yīng)位(設(shè)置控制位使進(jìn)入響應(yīng)執(zhí)行模式;禁止FIQ、IRQ);轉(zhuǎn)去執(zhí)行中斷處理程序(取相應(yīng)的中斷向量給程序計(jì)數(shù)器PC)。返回:將返回地址裝入PC ;恢復(fù)CPSR的值 ;清除中斷屏蔽位。9.異常向量地址:復(fù)位-0x00000000(管理模式);未定義-0x00000004(未定義);軟件中斷-08(管理);中止(預(yù)取指令)-0c(中止);中止(數(shù)據(jù))-10(中止);保留-0x00000014;IRQ-18(IRQ);FIQ-1C(FIQ)。10.異常優(yōu)先級:復(fù)位>數(shù)據(jù)中止>FIQ>IRQ>預(yù)取指令中止>未定義中止、SWI

      第五章1.編寫應(yīng)用程序都要用到的文件:a.INC目錄下的文件: Def.h(基本數(shù)據(jù)類型重定義頭文件U32,S16等)Option.h(是硬件系統(tǒng)重要設(shè)置頭文件,修改系統(tǒng)的工作頻率,總線寬度,一些重要地址的值)2410addr.h(是2410的寄存器的地址宏定義頭文件)2410lib.h(調(diào)試時(shí)常用函數(shù),還有一些其它的常用函數(shù)的頭文件)b.SRC目錄下的文件: 2410init.s 是2410初始化啟動(dòng)程序,由匯編語言寫成2.ARM的啟動(dòng)過程—系統(tǒng)的初始化:包括兩個(gè)級別的操作:系統(tǒng)運(yùn)行環(huán)境初始化、應(yīng)用程序初始化。a.運(yùn)行環(huán)境初始化(對于嵌入式應(yīng)用系統(tǒng)來說,由于沒有操作系統(tǒng)的支持,存放在ROM的代碼必須進(jìn)行所有的初始化工作):①設(shè)置初始入口點(diǎn)(初始入口點(diǎn)是映象文件運(yùn)行時(shí)的入口點(diǎn),每個(gè)映像文件只有一個(gè)唯一的初始入口點(diǎn),它保存在ELF頭文件中。初始入口點(diǎn)必須位于映像文件的可執(zhí)行區(qū)域;包含初始入口點(diǎn)的可執(zhí)行域不能被覆蓋,它的加載時(shí)地址和運(yùn)行時(shí)地址必須是相同的)②設(shè)置中斷向量表(如果系統(tǒng)運(yùn)行時(shí),地址0x00處為RAM,則系統(tǒng)初始化時(shí)必須重建異常中斷向量表)③初始化存儲(chǔ)系統(tǒng)④初始化數(shù)據(jù)棧指針⑤初始化關(guān)鍵的IO設(shè)備⑥設(shè)置中斷昔日需要的RAM變量⑦使能異常中斷(通過清除CPSR寄存器的中斷禁止位實(shí)現(xiàn))⑧切換處理器模式(系統(tǒng)還處于特權(quán)模式,如果下面要運(yùn)行的應(yīng)用程序是在用戶模式下運(yùn)行,就需要將處理器切換到用戶模式。)⑨切換程序狀態(tài)(所有的RAM內(nèi)核都是從ARM狀態(tài)開始執(zhí)行的)b.應(yīng)用程序初始化①將已經(jīng)初始化的數(shù)據(jù)搬運(yùn)到可寫的數(shù)據(jù)區(qū)(這部分?jǐn)?shù)據(jù)就是映像文件中的RW屬性的數(shù)據(jù))②在可寫存儲(chǔ)區(qū)建立ZI屬性的可寫數(shù)據(jù)區(qū)3.ARM的啟動(dòng)過程—初始化程序分析:①定義程序入口地址(由AREA偽操作定義: AREA Init,CODE,READONLYENTRY)②建立異常向量以及中斷處理:1)建立中斷向量入口2)建立中斷服務(wù)程序入口地址表3)看門狗與中斷禁止(當(dāng)系統(tǒng)復(fù)位后,看門狗與中斷要被首先禁止與被初始化,否則,當(dāng)看門狗溢出產(chǎn)生的系統(tǒng)復(fù)位,引起中斷,其它中斷源產(chǎn)生中斷時(shí),CPU會(huì)進(jìn)入一個(gè)未知的狀態(tài),出現(xiàn)程序跑飛等現(xiàn)象)4)系統(tǒng)時(shí)鐘初始化5)電源低功耗模式6)內(nèi)存控制器初始化(接口時(shí)序優(yōu)化)7)模式的堆棧初始化地址(對程序中需要用到的每一種模式都要給SP定義一個(gè)堆棧地址)8)初始化用戶執(zhí)行環(huán)境(應(yīng)用程序執(zhí)行環(huán)境的初始化,就是完成必要的從ROM到RAM的數(shù)據(jù)傳輸和內(nèi)容清零)9)呼叫主應(yīng)用程序(IMPORT main或B main)4.ARM映像文件:arm映像文件其實(shí)就是可執(zhí)行文件,包括bin或hex兩種格式,可以直接燒到rom里執(zhí)行。映像文件一般由域組成。域最多由三個(gè)輸出段組成(RO、RW、ZI)組成,輸出段又由輸入段(代碼和數(shù)據(jù))組成。5.中斷(☆注:異常包含5種模式:管理(復(fù)位、軟件中斷SWI)、中止(指令預(yù)取中止、數(shù)據(jù)中止)、未定義、快速中斷FIQ、外部中斷IRQ。中斷分兩類:SWI、硬件(FIQ、IRQ)。異常包含中斷,中斷都屬于異常)中斷仲裁:決定中斷的優(yōu)先級,當(dāng)中斷控制器接收到多個(gè)中斷請求時(shí),其內(nèi)的優(yōu)先級仲裁器裁決后向CPU發(fā)出優(yōu)先級最高的中斷請求信號或快速中斷請求信號,中斷系統(tǒng)有6個(gè)分仲裁器和1個(gè)總仲裁器,每一個(gè)仲裁器可以處理6路中斷。在編寫中斷服務(wù)程序時(shí)需要滿足如下要求:(1)不能向中斷服務(wù)程序傳遞參數(shù);(2)中斷服務(wù)程序沒有返回值;(3)中斷服務(wù)程序應(yīng)要盡可能短,來減少中斷服務(wù)程序的處理時(shí)間,保證實(shí)時(shí)系統(tǒng)的性能。使用中斷的步驟:(1)在使用中斷前先設(shè)置好相應(yīng)模式下的堆棧。如當(dāng)發(fā)生快速中斷FIQ 時(shí),CPU進(jìn)入“快中斷模式”,這時(shí)使用“快中斷模式”下的堆棧。(2)對于“Request sources”中的中斷,將INTSUBMSK 寄存器中相應(yīng)位設(shè)為0。(3)將INTMSK 寄存器中相應(yīng)位設(shè)為O。(4)確定使用的方式:是FIQ 還是IRQ。如果是FIQ,則在INTMOD 寄存器設(shè)置相應(yīng)位為1。如果是IRQ,則在PRIORITY 寄存器中設(shè)置優(yōu)先

      級(5)準(zhǔn)備好中斷處理函數(shù):①中斷向量:在中斷向量設(shè)置好當(dāng)FIQ 或IRQ 被觸發(fā)時(shí)的跳轉(zhuǎn)函數(shù)。②對于IRQ,在跳轉(zhuǎn)函數(shù)中讀取INTPND 寄存器或INTOFFSET 寄存器的值來確定中斷源,然后調(diào)用具體的處理函數(shù)。③對于FIQ,因?yàn)橹挥幸粋€(gè)中斷可以設(shè)為FIQ,無須判斷中斷源。④中斷處理函數(shù)進(jìn)入和返回。(6)設(shè)置CPSR 寄存器中的F位對于FIQ,或I位對于IRQ,其值為0時(shí),表示開中斷。

      第六章1.Nor Flash與Nand Flash比較:Nor flash:讀速度高,而擦、寫速度低,容量小,價(jià)格高。Nand flash:讀速度不如Nor flash,但擦、寫速度高,容量大,價(jià)格低。有取代磁盤的趨勢?,F(xiàn)在不少用戶從Nand flash啟動(dòng)和引導(dǎo)系統(tǒng)(開始 4KB代碼,BANK0中,自動(dòng)復(fù)制到內(nèi)部SRAM中,利用這4KB的代碼把更多的代碼從Nand flash中讀到SDRAM中),而在SDRAM上執(zhí)行主程序代碼。2.串口介紹:(1)UART(通用異步串行口):有三個(gè)獨(dú)立的異步串行I/O 端口,每個(gè)串口(11個(gè)專用寄存器,共39個(gè))都可以在中斷和DMA 兩種模式下進(jìn)行收發(fā)。UART支持的最高波特率達(dá)230.4kbps。每個(gè)UART 包含:波特率發(fā)生器(以PCLK或UCLK為時(shí)鐘源)、接收器、發(fā)送器和控制單元。發(fā)送器和接收器各包含1個(gè)16 字節(jié)的FIFO 寄存器和移位寄存器。工作原理:(FIFO模式)當(dāng)發(fā)送數(shù)據(jù)的時(shí)候,數(shù)據(jù)先寫到FIFO 然后拷貝到發(fā)送移位寄存器,然后從數(shù)據(jù)輸出端口(TxDn)依次被移位輸出。被接收的數(shù)據(jù)也同樣從接收端口(RxDn)移位輸入到移位寄存器,然后拷貝到FIFO 中。使用FIFO與不使用FIFO的比較:前者是通過對FIFO狀態(tài)寄存器UFSTATn的查詢,確定進(jìn)行收發(fā),后者是通過對收/發(fā)狀態(tài)寄存器UTRSTATn的查詢,確定進(jìn)行收發(fā)。中斷或DMA請求: 7種中斷請求事件是:溢出錯(cuò)誤、奇偶校驗(yàn)錯(cuò)誤、幀格式錯(cuò)誤、傳輸中斷信號、接收緩沖器數(shù)據(jù)就緒、發(fā)送緩沖器空、發(fā)送移位器空。分成3類:錯(cuò)誤中斷請求、接收中斷請求、發(fā)送中斷請求。RS232:全雙工,采用負(fù)邏輯,單端傳送,適合短距離傳輸;RS422:單工差分,兩條線相對電壓傳送,至少需要四條線傳輸;RS485:半雙工,單工差分,差分異步傳輸,適合遠(yuǎn)距離傳輸。(2)USB接口(通用串行總線)(49個(gè)reg):主要用于PC與外圍設(shè)備互連,數(shù)據(jù)傳輸速度為:低速1.5Mb/s,全速12Mb/s,高速480Mb/s。主要由5部分組成:USB芯片及協(xié)議程序(固件)、控制器(控制USB芯片)、控制器程序、USB設(shè)備驅(qū)動(dòng)程序、USB設(shè)備。USB總線主要特點(diǎn):USB端口不區(qū)分設(shè)備,即插即用、可熱插拔,傳輸速度高,易擴(kuò)展、可擴(kuò)展到127個(gè)USB設(shè)備,對設(shè)備提供電源,成本低等。(3)I2C串行總線接口:(4個(gè)reg)總線信號為兩線,一個(gè)能夠雙向傳輸?shù)臄?shù)據(jù)線SDA、另一個(gè)能夠雙向傳輸?shù)臅r(shí)鐘線SCL。是信號線

      2最少的串行總線??偩€的特點(diǎn):a.有一個(gè)IC總線接口。b.I2C總線的速度:可以標(biāo)準(zhǔn)速度傳輸(100kb/s),也可以高速傳輸(高達(dá)400kb/s)。c.可以查詢方式

      和中斷方式工作。d.可以主設(shè)備身份傳輸,也可以從設(shè)備身份傳輸,因此共有4種操作模式(主機(jī)、從機(jī)發(fā)送、接收)。主要有5部分構(gòu)成:數(shù)據(jù)收發(fā)寄存器、數(shù)據(jù)移位寄存器、地址寄存器、時(shí)鐘發(fā)生器、控制邏輯等部分。系統(tǒng)要求:a.各個(gè)節(jié)點(diǎn)設(shè)備必須具有I2C接口功能;b.各個(gè)節(jié)點(diǎn)設(shè)備必須共地;c.兩個(gè)信號線必須接上拉電阻。(4)I2S串行總線接口:a.1通道音頻I2S總線接口,可基于 DMA方式工作;b.串行,每通道 8/16 位數(shù)據(jù)傳輸;c.發(fā)送和接收具備 128 字節(jié)(64 字節(jié)加64 字節(jié))FIFO;d.支持 IIS 格式和 MSB-justified數(shù)據(jù)格式。(5)網(wǎng)絡(luò)接口:支持8位、16位的微處理器,可以工作在I/0方式或Memory方式。片內(nèi)集成了雙工SA總線接口,可以直接和有雙工SA總線的微處理器系統(tǒng)無縫連接。(6)JTAG接口:硬件仿真器可以通過JTAG接口對開發(fā)板進(jìn)行在線仿真調(diào)試,也可以使用sjf2410等燒寫工具通過JTAG接口對其擴(kuò)展的Flash存儲(chǔ)器進(jìn)行編程。(7)SPI 接口:a.兼容 2 通道 SPI 協(xié)議 2.11版;b.發(fā)送和接收具有 2×8 位的22移位寄存器;c.可以基于 DMA或中斷模式工作3.串口總結(jié):芯片級(IC、IS、SPI、USB),系統(tǒng)級(網(wǎng)絡(luò)接口、JTAG接口、USB、UAR T :RS232/485/422)。URAT

      傳輸距離:RS232<485(差分)<光纜。4.看門狗:看門狗是一種電路,具有監(jiān)視并恢復(fù)程序正常運(yùn)行的功能,是一個(gè)定時(shí)器電路?;驹恚涸O(shè)一系統(tǒng)程序完整運(yùn)行一周期的時(shí)間是Tp,看門狗的定時(shí)周期為Ti,要求Ti>Tp。在程序運(yùn)行一周期后,修改定時(shí)器的計(jì)數(shù)值,只要程序正常運(yùn)行,定時(shí)器就不會(huì)溢出。若由于干擾等原因使系統(tǒng)不能在Tp 時(shí)刻修改定時(shí)器的計(jì)數(shù)值,定時(shí)器將在Ti 時(shí)刻溢出,引發(fā)系統(tǒng)復(fù)位,使系統(tǒng)得以重新運(yùn)行,從而起到監(jiān)控作用。功能:定時(shí)器功能、復(fù)位功能。構(gòu)成:時(shí)鐘、看門狗計(jì)時(shí)器、看門狗數(shù)據(jù)寄存器、復(fù)位信號發(fā)生器、控制邏輯等。5.補(bǔ)充:(1)I/O端口寄存器:引腳配置寄存器、數(shù)據(jù)reg、引腳上拉reg、保留reg。(2)LCD(液晶顯示器):是一種數(shù)字顯示技術(shù),可以通過液晶和彩色過濾器過濾光源,在平面面板上產(chǎn)生圖象。組成:LCD顯示屏、顯示控制器、緩沖存儲(chǔ)器。

      第七章1.Linux系統(tǒng)及特點(diǎn):Linux是一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng)。特點(diǎn):自由軟件,開放源代碼;真正的多用戶、多任務(wù)操作系統(tǒng);可靈活裁剪配置;支持多種硬件平臺;提供強(qiáng)大的管理功能;完全符合POSIX標(biāo)準(zhǔn);具有豐富的圖形界面;具有強(qiáng)大的網(wǎng)絡(luò)功能。2.Linux組成:①Linux內(nèi)核,功能是:進(jìn)程管理(負(fù)責(zé)創(chuàng)建和撤銷進(jìn)程以及處理他們和外部世界的連接)、內(nèi)存管理(內(nèi)核在有限的可用資源上為每個(gè)進(jìn)程都創(chuàng)建了一個(gè)虛擬尋址空間)、文件系統(tǒng)(內(nèi)核在沒有結(jié)構(gòu)硬件上構(gòu)造結(jié)構(gòu)化的文件系統(tǒng))、設(shè)備控制(內(nèi)核必須為系統(tǒng)中的每件外設(shè)嵌入相應(yīng)的驅(qū)動(dòng)程序)、網(wǎng)絡(luò)功能(處理路由和地址解析問題)。②Linux Shell:常用的有:Bourne Shell(sh,最初始的Shell,并且在每種Unix上都可以使用),C-Shelll(csh),Korn Shell(ksh),Bourne Again Shell(bash,大多數(shù)Linux系統(tǒng)的默認(rèn)Shell)。③Linux文件結(jié)構(gòu):文件結(jié)構(gòu)是文件存放在磁盤等存儲(chǔ)設(shè)備上的組織方法,主要體現(xiàn)在對文件和目錄的組織上,目錄提供了管理文件的一個(gè)方便而有效的途徑。Linux目錄采用多級樹形結(jié)構(gòu),用戶可以瀏覽整個(gè)系統(tǒng),可以進(jìn)入任何一個(gè)已授權(quán)進(jìn)入的目錄,訪問那里的文件,目錄樹只有一個(gè),不管OS管理幾個(gè)磁盤分區(qū)。④Linux實(shí)用工具,分三類:編輯器:用于編輯文件;過濾器:用于接收數(shù)據(jù)并過濾數(shù)據(jù);交互程序:允許用戶發(fā)送信息或接收來自其他用戶的信息。

      第八章1.交叉編譯環(huán)境的軟件工具1)Binutils:Binutils是一組針對目標(biāo)系統(tǒng)的二進(jìn)制開發(fā)工具,包括連接器、匯編器和其他用于目標(biāo)文件和檔案的工具。2)GCC:編譯器,gcc不但能夠支持C/C++語言的編譯,而且能夠支持FORTRAN JAVA ADA等編程語言。3)Glibc:Glibc庫是提供系統(tǒng)調(diào)用和基本函數(shù)的C庫,可以編譯生成靜態(tài)庫和動(dòng)態(tài)庫。4)GDB:GDB可以調(diào)試C和C++語言程序,功能:a.啟動(dòng)被調(diào)試程序。b.讓被調(diào)試的程序在指定的位置停住。c.當(dāng)程序被停住時(shí),可以檢查程序狀態(tài)(如變量值)。5)Crosstool:實(shí)際上是一個(gè)腳本,用于編譯和測試大多數(shù)體系結(jié)構(gòu)的各gcc和glibc的版本組合。2.Linux開發(fā)環(huán)境組建:可分別建立以LINUX為操作系統(tǒng)的開發(fā)環(huán)境或者在Windows下安裝模擬Linux環(huán)境的軟件。幾種組建方案:① Windows+ Linux +目標(biāo)系統(tǒng)(可以解決開發(fā)環(huán)境問題,但同時(shí)用兩個(gè)操作系統(tǒng),來回切換,浪費(fèi)時(shí)間)、②Windows+cygwin+目標(biāo)系統(tǒng)(cygwin是運(yùn)行于windows下的linux模擬運(yùn)行環(huán)境,但是在使用某些特殊功能時(shí),需要添加一些補(bǔ)丁)、③Windows+虛擬機(jī)(Linux)+目標(biāo)系統(tǒng)(在不破壞原有操作系統(tǒng)的基礎(chǔ)上,虛擬一臺‘真實(shí)’計(jì)算機(jī),在它上面安裝linux和操作真實(shí)的linux一樣)、④Windows+Linux服務(wù)器 +目標(biāo)系統(tǒng)(只需要一臺linux服務(wù)器即可,對客戶機(jī)和服務(wù)器的硬件要求沒什么特別需求)。3.用戶、Shell、Linux之間關(guān)系:Shell作為操作系統(tǒng)的外殼,為用戶提供使用操作系統(tǒng)的接口。它是命令語言、命令解釋程序及程序設(shè)計(jì)語言的統(tǒng)稱。Shell是用戶和操作系統(tǒng)之間最主要接口。通過Shell,可以同時(shí)在后臺運(yùn)行多個(gè)應(yīng)用程序,并且在把需要與用戶交互的程序放在前臺運(yùn)行。4.makefile文件的作用:使用make 工具,可以將大型的開發(fā)項(xiàng)目分解成為多個(gè)易于管理的模塊,make在執(zhí)行時(shí),需要一個(gè)命名為Makefile的文件。Makefile文件描述了整個(gè)工程的編譯,連接等規(guī)則。Makefile說明了組成程序的各模塊間的相互關(guān)系及更新模塊時(shí)必須進(jìn)行的動(dòng)作,make按照這些說明自動(dòng)地維護(hù)這些模塊。在makefile(Makefile)中,自頂向下說明各模塊之間的依賴關(guān)系及實(shí)現(xiàn)方法。

      第九章1.BootLoader概念:系統(tǒng)上電之后,需要一段程序來進(jìn)行初始化,如果它能將操作系統(tǒng)內(nèi)核(從本地Flash或通過網(wǎng)絡(luò))復(fù)制到內(nèi)存中運(yùn)行,就稱這段程序?yàn)锽ootloader。其作用是,在系統(tǒng)上電時(shí)開始執(zhí)行,初始化硬件設(shè)備、準(zhǔn)備好軟件環(huán)境,最后調(diào)用操作系統(tǒng)內(nèi)核。2.兩種操作模式:①啟動(dòng)加載模式,即Bootloader從目標(biāo)機(jī)上的某個(gè)固態(tài)存儲(chǔ)設(shè)備上將操作系統(tǒng)加載到RAM中運(yùn)行,整個(gè)過程并沒有用戶的介入;②下載模式,目標(biāo)機(jī)上的Bootloader將通過串口連接或網(wǎng)絡(luò)連接等通信手段從主機(jī)下載文件,這種模式通常在第一次安裝內(nèi)核與根文件系統(tǒng)時(shí)被使用,以后的系統(tǒng)更新也會(huì)使用Bootloader的這種工作模式。3.啟動(dòng)方式:①網(wǎng)絡(luò)啟動(dòng)方式,使用這種啟動(dòng)方式之前,需要把Bootloader安裝到板上的EPROM或者Flash中。Bootloader通過以太網(wǎng)接口遠(yuǎn)程下載Linux內(nèi)核映像或者文件系統(tǒng)。②磁盤啟動(dòng)方式,傳統(tǒng)的Linux系統(tǒng)運(yùn)行在臺式機(jī)或者服務(wù)器上,這些計(jì)算機(jī)一般都使用BIOS引導(dǎo),并且使用磁盤作為存儲(chǔ)介質(zhì),在硬盤的主引導(dǎo)區(qū),需要一個(gè)Bootloader可以從磁盤文件系統(tǒng)中把操作系統(tǒng)引導(dǎo)起來。③Flash啟動(dòng)方式,Bootloader的入口位于處理器上電執(zhí)行第一條指令的位置,Bootloader引導(dǎo)Linux內(nèi)核,就是要把內(nèi)核映像解壓到RAM中去,然后跳轉(zhuǎn)到內(nèi)核映像入口執(zhí)行,從而實(shí)現(xiàn)自舉啟動(dòng),與磁盤啟動(dòng)相似。4.種類與特點(diǎn):Bootloader種類繁多,比如x86上有LILO、GRUB等;對于ARM架構(gòu)的CPU,有U-Boot、Vivi等。特點(diǎn):LILO是Linux磁盤引導(dǎo)程序,GRUB是GNU的LILO替代程序;ViVi支持串口下載功能,代碼量小;U-boot通用引導(dǎo)程序,支持串口、網(wǎng)絡(luò)下載功能,代碼量大;Redboot支持串口、網(wǎng)絡(luò)下載功能,代碼量最大;Blob:支持串口、網(wǎng)絡(luò)下載功能,代碼量小5.基本原理:①操作模式:? ②通信:目標(biāo)機(jī)上的Bootloader一般可通過串口與主機(jī)之間進(jìn)行文件傳輸,也可以通過以太網(wǎng)連接并借助TFTP協(xié)議來下載文件,這樣傳輸更快; ③Bootloader 的功能與結(jié)構(gòu):由于Bootloader的實(shí)現(xiàn)依賴于CPU的體系結(jié)構(gòu),大多數(shù)Bootloader都分為stage1和 stage2兩大部分。stage1通常包括以下工作:硬件設(shè)備初始化、為加載Bootloader的stage2準(zhǔn)備RAM空間、拷貝Bootloader的stage2到RAM空間中、設(shè)置堆棧、跳轉(zhuǎn)到stage2的C入口點(diǎn)。stage2的代碼通常用C語言來實(shí)現(xiàn),stage2 執(zhí)行映像的入口點(diǎn)是用匯編語言寫一段trampoline小程序,用這段trampoline小程序來作為main()函數(shù)的外部包裹。

      補(bǔ)充:1.LCD屏的主要技術(shù)參數(shù):(1)像素:顯示屏上所能控制的最小單位(2)分辨率:分辨率指 LCD 上象素的數(shù)目3)色深:在某一分辨率下,每一個(gè)像點(diǎn)可以有多少種色彩來描述,單位是“bit”,色深和分辨率之積決定了顯示緩存區(qū)的大?。?)刷新頻率:圖像在屏幕上更新的速度,也即屏幕上的圖像每秒鐘出現(xiàn)的次數(shù),單位是赫茲(5)物理尺寸:LCD的外觀尺寸對角線長度,單位為英寸

      2.分散裝載技術(shù):ARM的連接器提供了一種分散加載機(jī)制,在連接時(shí)可以根據(jù)分散加載文件中指定的存儲(chǔ)器分配方案,將可執(zhí)行鏡像文件分成指定的分區(qū)并定位于指定的存儲(chǔ)器物理地址,當(dāng)嵌入式系統(tǒng)在復(fù)位或重新上電時(shí),在對CPU相應(yīng)寄存器進(jìn)行初始化后,首先執(zhí)行ROM存儲(chǔ)器的Bootloader代碼,根據(jù)連接時(shí)的存儲(chǔ)器分配方案,將相應(yīng)代碼和數(shù)據(jù)由加載地址拷貝到運(yùn)行地址,定位在RAM存儲(chǔ)器的代碼和數(shù)據(jù)就在RAM存儲(chǔ)器中運(yùn)行,而不再從ROM存儲(chǔ)器中取數(shù)據(jù)或取指令,從而大大提高了CPU的運(yùn)行速率和效率。最常用的2種情況:(1)把中斷程序作為一個(gè)單獨(dú)的運(yùn)行域,放在32位的RAM,(2)將啟動(dòng)代碼以外的所有代碼都復(fù)制到RAM中運(yùn)行。

      3.PWM:只對一方波序列信號的占空比按照要求進(jìn)行調(diào)制,而不改變方波信號的其它參數(shù),即不改變幅度和周期,因此脈寬調(diào)制信號的產(chǎn)生和傳輸,都是數(shù)字式的。只要帶寬足夠(頻率足夠高或周期足夠短),任何模擬信號都可以使用PWM 來實(shí)現(xiàn)。應(yīng)用:借助于微處理器,使用脈寬調(diào)制方法實(shí)現(xiàn)模擬信號是一種非常有效的技術(shù),廣泛應(yīng)用在從測量、通信到功率控制與變換的許多領(lǐng)域中。

      第三篇:實(shí)習(xí)總結(jié)-嵌入式ARM

      實(shí)訓(xùn)總結(jié)

      班級 卓越1301姓名***

      通過這段時(shí)間的學(xué)習(xí)使我學(xué)到了很多知識,并且了解到ARM的應(yīng)用以及對開發(fā)板的應(yīng)用,為以后的學(xué)習(xí)奠定了一定的基礎(chǔ)。

      嵌入式系統(tǒng)一般定義為以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗和應(yīng)用環(huán)境有特殊要求的專用計(jì)算機(jī)系統(tǒng)。是將應(yīng)用程序、操作系統(tǒng)和計(jì)算機(jī)硬件集成在一起的系統(tǒng)這是從技術(shù)角度。從系統(tǒng)角度上是設(shè)計(jì)完成復(fù)雜功能的硬件和軟件,并使其緊密耦合在一起的計(jì)算機(jī)系統(tǒng)。

      廣義上講,凡是帶有微處理器的專用軟硬件系統(tǒng)都可稱為嵌入式系統(tǒng)。如各類單片機(jī)和DSP系統(tǒng)。這些系統(tǒng)在完成較為單一的專業(yè)功能時(shí)具有簡潔高效的特點(diǎn)。但由于他們沒有操作系統(tǒng),管理系統(tǒng)硬件核軟件的能力有限,在實(shí)現(xiàn)復(fù)雜多任務(wù)功能時(shí),往往困難重重,甚至無法實(shí)現(xiàn)。從狹義上講,我們更加強(qiáng)調(diào)那些使用嵌入式微處理器構(gòu)成獨(dú)立系統(tǒng),具有自己操作系統(tǒng),具有特定功能,用于特定場合的嵌入式系統(tǒng)。

      嵌入式的應(yīng)用也比較廣泛涉及軍事國防、工業(yè)控制、消費(fèi)電子和網(wǎng)絡(luò)。在家用方面更是數(shù)字電視、信息家電、智能玩具、手持通訊、存儲(chǔ)設(shè)備的核心。

      在ARM指令集中了解到ARM的尋址方式以及它的的特性,具有高效、快速的特點(diǎn),還有Thumb指令集具有靈活、小巧的特點(diǎn)。

      在這次實(shí)訓(xùn)中做了兩個(gè)項(xiàng)目,一個(gè)是LED燈,實(shí)現(xiàn)LED燈的點(diǎn)亮是比較簡單的,通過查找手冊可以很快的了解到要使用的寄存器和方法,另一個(gè)項(xiàng)目是DS18B20這個(gè)比較復(fù)雜,除了要掌握對寄存器的使用,還要對了解對串口的初始化,讀寫字節(jié)等等。

      感謝這次實(shí)訓(xùn),通過這次的實(shí)訓(xùn)項(xiàng)目,使我大體了解制作項(xiàng)目的步驟,了解了嵌入式技術(shù)的掌握是需要一個(gè)過程的。實(shí)事求是的說,嵌入式技術(shù)的全面掌握是有相當(dāng)難度的,通過積累和動(dòng)手總會(huì)有收獲的,從實(shí)驗(yàn)中也明白了一個(gè)大的項(xiàng)目并不是一個(gè)人可以完成的,團(tuán)隊(duì)協(xié)作很重要。

      姓名:***

      年級:卓越1301

      2014-7-5

      第四篇:ARM嵌入式linux復(fù)習(xí)心得總結(jié)1

      2011.10.9 Evo楊

      ARM嵌入式linux復(fù)習(xí)心得總結(jié)1:

      一、Linux定制安裝:

      從新安裝配置了一遍Linux,我使用的是Vmware7.0安裝RHEL5.5,對于Linux的安裝主要是要選擇定制安裝也就是Vmware7.0(下面簡稱Vm)中新建虛擬機(jī)開始部分選擇”Custom(advanced)”,因?yàn)檫@里我所使用的FTP、sumba等服務(wù)器是需要定制加上的一開始沒有注意結(jié)果悲劇了…(以后一定要仔細(xì)的選擇!),在next后面應(yīng)該選擇最后一個(gè)選項(xiàng)這樣自定義的選項(xiàng)會(huì)更加多,同樣可以選擇定制安裝的一些選項(xiàng),在這里同樣有個(gè)地方要注意:

      1、最好使用默認(rèn)的內(nèi)存分配方式

      2、*(重要)選擇bridged networking 的網(wǎng)絡(luò)連接方式(這里要注意,第一次安裝的時(shí)候沒有注意使用的是默認(rèn)值也就是NET模式,最后在設(shè)置NFS和sumba服務(wù)器的時(shí)候(也可能是其他的操作錯(cuò)誤)無法與PC機(jī)ping通訊這里花費(fèi)了大量的時(shí)間研究!后面就是Linux系統(tǒng)的安裝了,這里我使用的是圖形化界面的安裝(以前大一的時(shí)候用命令行安過一次自己英語太垃圾了,安了整整一上午…)

      3、在最后配置的時(shí)候防火墻要禁用,因?yàn)檫@里防火墻會(huì)阻止一切自發(fā)的與本機(jī)聯(lián)網(wǎng)的事件,在后面使用NFS以及sumba服務(wù)器的時(shí)候是不能打開的,第一次安裝的時(shí)候吃過這方面的虧以后要注意!

      4、禁用SELinux,這個(gè)也是與安全有關(guān)的,現(xiàn)在暫時(shí)禁用就可以了。

      二、再次回顧了一下Linux的命令,這里比較熟悉,跟走路一樣這里必須專業(yè)起來!總的來說有一下幾個(gè)命令必須靈活運(yùn)用:

      1、useradd(添加用戶名,后面使用sumba服務(wù)器的時(shí)候需要用到,使用率較低)

      2、passwd(添加用戶密碼,一般配合useradd使用,使用率較低)

      3、su(切換用戶,經(jīng)常用)

      4、shutdown(關(guān)機(jī)命令,用法有多種,我一般不用,虛擬機(jī)直接斷電就行了)

      5、cp(拷貝,不解釋)

      6、mv(移動(dòng)或更名,不解釋)

      7、rm(刪除,不解釋)

      8、mkdir(創(chuàng)建目錄)

      9、cd(改變工作目錄,經(jīng)常用)

      10、pwd(顯示當(dāng)前目錄)

      11、ls(查看目錄)

      12、tar(針對tar.gz打包和解壓,這里主要記住 tar cvzf * 和tar xvzf * 一個(gè)是壓縮,一個(gè)是解壓)

      13、tar(針對tar打包和解壓,這里主要記住 tar cvf * 和tar xvf * 一個(gè)是壓縮,一個(gè)是解壓)

      14、unzip(解壓zip文件)

      15、chmod(更改權(quán)限)

      16、df(查看磁盤使用情況)

      17、ifconfig(查看網(wǎng)絡(luò)配置、查看ip等)

      18、netstat(查看網(wǎng)絡(luò)狀態(tài))

      19、grep(查找字符串,這個(gè)其實(shí)很重要,但自己總是忘記可能是一般不用的原因)20、rpm(用于軟件安裝)

      21、mount(掛載,很重要用語掛載CDROM、硬盤以及共享文件等)

      22、find(找到*文件存在路徑)

      三、vi編輯器的使用,使用比較熟練好像加“!”的都是強(qiáng)制執(zhí)行的。

      四、安裝tftp服務(wù)器:

      常用命令:*netstat –a | grep tftp 這里檢測當(dāng)前tftp的情況,在資料上是說檢測安裝情況,我覺得不是應(yīng)該是檢測啟動(dòng)情況,當(dāng)然這個(gè)也是包括安裝與否的,這里要注意!有的時(shí)候他是安裝上的但是沒有打開,查看配置文件是就會(huì)發(fā)現(xiàn)disable 默認(rèn)是 = yes 意思是默認(rèn)是關(guān)閉的我們有幾種方法將他打開:

      1、使用setup命令啟動(dòng)tftp

      2、配置 #vi /etc/xinetd.d/tftp 中把disable中的yes改為no

      3、使用命令啟動(dòng) #/etc/init.d/xinetd start

      五、安裝NFS服務(wù)器: 這個(gè)功能是共享Linux與Linux之間文件的,后面開發(fā)ARM的時(shí)候聯(lián)通內(nèi)核與文件系統(tǒng)使用

      六、安裝samba服務(wù)器

      首先是要配置samba服務(wù)器的配置文件位置在:#vi /etc/samba/smb.conf 在Share Definitions中添加 【root】

      Comment

      = Root Ditectories

      Browseable

      = yes

      Writable

      = yes

      Path

      = /

      valid users

      =

      smb

      valid users

      =

      MYDOMAIN%s 其中可以在【home】前在命令模式下輸入“6yy”(復(fù)制這六行!)然后再輸入“p”(粘貼)然后再修改,這樣修改起來比較方便,也是絕大多數(shù)教程都使用的方法,其中要注意幾點(diǎn):

      1、要是使用復(fù)制方法然后修改的話要注意看清楚Comment這行后面Root Ditectories 這行的Root是不要忘了修改【homes】中式Home而【root】中是Root切記?。ㄟ@里自己在前一次安裝的時(shí)候沒有留意導(dǎo)致后面Samba 服務(wù)器不能使用!?。?/p>

      2、smb 這是用戶名這里引用一下教材的語言:添加用戶,注意添加用戶的用戶與修改配置文件部分valid users = smb相同,如果smb用戶存在則不需要添加!

      配置完畢要重新啟動(dòng)samba服務(wù)器 #/etc/init.d/smb restart

      最后在windows中運(yùn)行即可。

      七、Samba、NFS等PC與虛擬機(jī)的網(wǎng)絡(luò)配置(重點(diǎn))這里著重總結(jié)一下這次網(wǎng)絡(luò)的配置,虛擬機(jī)的網(wǎng)絡(luò)配置非常重要,即使Linux不需要上網(wǎng)可是他們之間的數(shù)據(jù)傳送也是十分必要的,例如Vmtools這個(gè)工具,smb、NFS、tftp等,我在這里的網(wǎng)絡(luò)配置花費(fèi)了大量的時(shí)間研究,主要是samba服務(wù)器總不能配置成功,網(wǎng)上也有許多的方法不過講的都很細(xì)許多功能的實(shí)現(xiàn)都比較抽象,我之所以總是沒有成功在上面的幾個(gè)方面上已經(jīng)詳細(xì)的解釋了,這里不再次做總結(jié),其中有幾點(diǎn)與老師或查資料得到的幾點(diǎn)信息在這里要總結(jié)一下:

      1、在所有的服務(wù)器等聯(lián)網(wǎng)活動(dòng)之前一定要把網(wǎng)絡(luò)通信配置好!在PC中首先要ipconfig一下查詢一下PC機(jī)網(wǎng)絡(luò)配置情況(ip、網(wǎng)關(guān)等)然后再在虛擬機(jī)中使用命令setup打開網(wǎng)絡(luò)配置去掉自動(dòng)分配IP選用靜態(tài)ip然后將ip等項(xiàng)目輸入進(jìn)去,這里要輸入的一共三項(xiàng),后兩項(xiàng)是相同的只有ip是需要改變的,切記要分配在同一個(gè)網(wǎng)段!這樣才能實(shí)現(xiàn)局域網(wǎng)功能

      2、我問了問教授Linux的一位老師他曾經(jīng)因?yàn)楦牧吮镜剡B接的IP導(dǎo)致虛擬機(jī)上的網(wǎng)絡(luò)服務(wù)器不能用了,當(dāng)更改回原來的ip才能使用,這里我并沒有出現(xiàn)這種情況因?yàn)槲以谠O(shè)置ip的時(shí)候使用的是動(dòng)態(tài)分配地址的ip路由器,在設(shè)置完成后并沒有出現(xiàn)服務(wù)器失效的情況所以我認(rèn)為這里老師可能使用了某個(gè)ip綁定了吧。

      八、Vmtools的安裝使用

      這個(gè)工具很好用在XP中安裝比較方便,但在Linux中有點(diǎn)兒復(fù)雜,當(dāng)然只是有點(diǎn)兒而已,使用Vmware自動(dòng)下載就可以完成后Linux自動(dòng)加載了一個(gè)cdrom里面就有一個(gè)vmtools的tar 解壓包(有時(shí)需要自己加載)他在文件中找到安裝文件安裝即可。這里引用一下網(wǎng)絡(luò)同仁的資源我覺得他寫的吧、簡單明了(http://004km.cntl.h> void create_file(char *filename){ If(create(filename,0666)<0)

      //創(chuàng)建文件函數(shù)判斷創(chuàng)建是否成功 后面的是文件的權(quán)限:可讀可寫不可執(zhí)行!

      { printf(“create file %s failure!n”,filename);

      exit(EXIT_FAILURE);} Else { Printf(“create file %s success!”,filename);} }

      Int main(int argc,char *argv[])// 這里的argc是程序參數(shù)個(gè)數(shù)(如ls –a 這就是兩個(gè)參數(shù),也就是說是兩個(gè)字符串,而argv【】表示的是參數(shù)名字 argv【0】=ls argv【1】=-a 后面應(yīng)該還有一個(gè)參數(shù)char *env 代表的是環(huán)境變量的字符串(各種路徑)){

      If(argc<2)

      //判斷文件是否符合要求,這個(gè)一般小于0就行 { Perror(“you haven’t input the filename,please try again!n”);

      Exit(EXIT_FAILURE);//這個(gè)最后等于1 其實(shí)就是個(gè)return 1; } Create_file(argv[1]);Exit(EXIT_SUCCESS);

      //這個(gè)最后等于0 其實(shí)就是個(gè)return 0;

      }

      十一、今天心得體會(huì):錯(cuò)誤與進(jìn)步同在!正視錯(cuò)誤,解決錯(cuò)誤,取得進(jìn)步!

      第五篇:ARM嵌入式linux復(fù)習(xí)心得總結(jié)1

      2011.10.9 Evo楊

      ARM嵌入式linux復(fù)習(xí)心得總結(jié)1:

      一、Linux定制安裝:

      從新安裝配置了一遍Linux,我使用的是Vmware7.0安裝RHEL5.5,對于Linux的安裝主要是要選擇定制安裝也就是Vmware7.0(下面簡稱Vm)中新建虛擬機(jī)開始部分選擇”Custom(advanced)”,因?yàn)檫@里我所使用的FTP、sumba等服務(wù)器是需要定制加上的一開始沒有注意結(jié)果悲劇了…(以后一定要仔細(xì)的選擇!),在next后面應(yīng)該選擇最后一個(gè)選項(xiàng)這樣自定義的選項(xiàng)會(huì)更加多,同樣可以選擇定制安裝的一些選項(xiàng),在這里同樣有個(gè)地方要注意:

      1、最好使用默認(rèn)的內(nèi)存分配方式

      2、*(重要)選擇bridged networking 的網(wǎng)絡(luò)連接方式(這里要注意,第一次安裝的時(shí)候沒有注意使用的是默認(rèn)值也就是NET模式,最后在設(shè)置NFS和sumba服務(wù)器的時(shí)候(也可能是其他的操作錯(cuò)誤)無法與PC機(jī)ping通訊這里花費(fèi)了大量的時(shí)間研究!后面就是Linux系統(tǒng)的安裝了,這里我使用的是圖形化界面的安裝(以前大一的時(shí)候用命令行安過一次自己英語太垃圾了,安了整整一上午…)

      3、在最后配置的時(shí)候防火墻要禁用,因?yàn)檫@里防火墻會(huì)阻止一切自發(fā)的與本機(jī)聯(lián)網(wǎng)的事件,在后面使用NFS以及sumba服務(wù)器的時(shí)候是不能打開的,第一次安裝的時(shí)候吃過這方面的虧以后要注意!

      4、禁用SELinux,這個(gè)也是與安全有關(guān)的,現(xiàn)在暫時(shí)禁用就可以了。

      二、再次回顧了一下Linux的命令,這里比較熟悉,跟走路一樣這里必須專業(yè)起來!總的來

      說有一下幾個(gè)命令必須靈活運(yùn)用:

      1、useradd(添加用戶名,后面使用sumba服務(wù)器的時(shí)候需要用到,使用率較低)

      2、passwd(添加用戶密碼,一般配合useradd使用,使用率較低)

      3、su(切換用戶,經(jīng)常用)

      4、shutdown(關(guān)機(jī)命令,用法有多種,我一般不用,虛擬機(jī)直接斷電就行了)

      5、cp(拷貝,不解釋)

      6、mv(移動(dòng)或更名,不解釋)

      7、rm(刪除,不解釋)

      8、mkdir(創(chuàng)建目錄)

      9、cd(改變工作目錄,經(jīng)常用)

      10、pwd(顯示當(dāng)前目錄)

      11、ls(查看目錄)

      12、tar(針對tar.gz打包和解壓,這里主要記住 tar cvzf * 和tar xvzf * 一個(gè)是壓縮,一個(gè)是解壓)

      13、tar(針對tar打包和解壓,這里主要記住 tar cvf * 和tar xvf * 一個(gè)是壓縮,一個(gè)是解壓)

      14、unzip(解壓zip文件)

      15、chmod(更改權(quán)限)

      16、df(查看磁盤使用情況)

      17、ifconfig(查看網(wǎng)絡(luò)配置、查看ip等)

      18、netstat(查看網(wǎng)絡(luò)狀態(tài))

      19、grep(查找字符串,這個(gè)其實(shí)很重要,但自己總是忘記可能是一般不用的原因)

      20、rpm(用于軟件安裝)

      21、mount(掛載,很重要用語掛載CDROM、硬盤以及共享文件等)

      22、find(找到*文件存在路徑)

      三、vi編輯器的使用,使用比較熟練好像加“!”的都是強(qiáng)制執(zhí)行的。

      四、安裝tftp服務(wù)器:

      常用命令:*netstat –a | greptftp這里檢測當(dāng)前tftp的情況,在資料上是說檢測安裝情況,我覺得不是應(yīng)該是檢測啟動(dòng)情況,當(dāng)然這個(gè)也是包括安裝與否的,這里要注意!有的時(shí)候他是安裝上的但是沒有打開,查看配置文件是就會(huì)發(fā)現(xiàn)disable 默認(rèn)是 = yes 意思是默認(rèn)是關(guān)閉的我們有幾種方法將他打開:

      1、使用setup命令啟動(dòng)tftp2、配置 #vi /etc/xinetd.d/tftp 中把disable中的yes改為no3、使用命令啟動(dòng) #/etc/init.d/xinetd start

      五、安裝NFS服務(wù)器: 這個(gè)功能是共享Linux與Linux之間文件的,后面開發(fā)ARM的時(shí)候

      聯(lián)通內(nèi)核與文件系統(tǒng)使用

      六、安裝samba服務(wù)器

      首先是要配置samba服務(wù)器的配置文件位置在:#vi /etc/samba/smb.conf

      在Share Definitions中添加

      【root】

      Comment=Root Ditectories

      Browseable=yes

      Writable=yes

      Path=/

      valid users=smb

      valid users=MYDOMAIN%s

      其中可以在【home】前在命令模式下輸入“6yy”(復(fù)制這六行?。┤缓笤佥斎搿皃”(粘貼)然后再修改,這樣修改起來比較方便,也是絕大多數(shù)教程都使用的方法,其中要注意幾點(diǎn):

      1、要是使用復(fù)制方法然后修改的話要注意看清楚Comment這行后面Root

      Ditectories 這行的Root是不要忘了修改【homes】中式Home而【root】

      中是Root切記?。ㄟ@里自己在前一次安裝的時(shí)候沒有留意導(dǎo)致后面Samba

      服務(wù)器不能使用?。。?/p>

      2、smb 這是用戶名這里引用一下教材的語言:添加用戶,注意添加用戶的用戶與修改配置文件部分valid users = smb相同,如果smb用戶存在則不

      需要添加!

      配置完畢要重新啟動(dòng)samba服務(wù)器 #/etc/init.d/smb restart

      最后在windows中運(yùn)行即可。

      七、Samba、NFS等PC與虛擬機(jī)的網(wǎng)絡(luò)配置(重點(diǎn))

      這里著重總結(jié)一下這次網(wǎng)絡(luò)的配置,虛擬機(jī)的網(wǎng)絡(luò)配置非常重要,即使Linux不需要上

      網(wǎng)可是他們之間的數(shù)據(jù)傳送也是十分必要的,例如Vmtools這個(gè)工具,smb、NFS、tftp等,我在這里的網(wǎng)絡(luò)配置花費(fèi)了大量的時(shí)間研究,主要是samba服務(wù)器總不能配置成功,網(wǎng)上也有許多的方法不過講的都很細(xì)許多功能的實(shí)現(xiàn)都比較抽象,我之所以總是沒有成功在上面的幾個(gè)方面上已經(jīng)詳細(xì)的解釋了,這里不再次做總結(jié),其中有幾點(diǎn)與老師或查資料得到的幾點(diǎn)信息在這里要總結(jié)一下:

      1、在所有的服務(wù)器等聯(lián)網(wǎng)活動(dòng)之前一定要把網(wǎng)絡(luò)通信配置好!在PC中首先要ipconfig

      一下查詢一下PC機(jī)網(wǎng)絡(luò)配置情況(ip、網(wǎng)關(guān)等)然后再在虛擬機(jī)中使用命令setup打開網(wǎng)絡(luò)配置去掉自動(dòng)分配IP選用靜態(tài)ip然后將ip等項(xiàng)目輸入進(jìn)去,這里要輸入的一共三項(xiàng),后兩項(xiàng)是相同的只有ip是需要改變的,切記要分配在同一個(gè)網(wǎng)段!這樣才能實(shí)現(xiàn)局域網(wǎng)功能

      2、我問了問教授Linux的一位老師他曾經(jīng)因?yàn)楦牧吮镜剡B接的IP導(dǎo)致虛擬機(jī)上的網(wǎng)

      絡(luò)服務(wù)器不能用了,當(dāng)更改回原來的ip才能使用,這里我并沒有出現(xiàn)這種情況因?yàn)槲以谠O(shè)置ip的時(shí)候使用的是動(dòng)態(tài)分配地址的ip路由器,在設(shè)置完成后并沒有出現(xiàn)服務(wù)器失效的情況所以我認(rèn)為這里老師可能使用了某個(gè)ip綁定了吧。

      八、Vmtools的安裝使用

      這個(gè)工具很好用在XP中安裝比較方便,但在Linux中有點(diǎn)兒復(fù)雜,當(dāng)然只是有點(diǎn)

      兒而已,使用Vmware自動(dòng)下載就可以完成后Linux自動(dòng)加載了一個(gè)cdrom里面就有一個(gè)vmtools的tar 解壓包(有時(shí)需要自己加載)他在文件中找到安裝文件安裝即可。這里引用一下網(wǎng)絡(luò)同仁的資源我覺得他寫的吧、簡單明了(http:///viewarticle.php?id=66813)

      安裝linux時(shí),一定要安裝gcc和kernel-source,VMware要對內(nèi)核頭文件進(jìn)行編譯。注:linux區(qū)分大小寫,例如,用戶名root和Root就是兩個(gè)用戶了。你想進(jìn)入tmp目錄,而你輸入的是Tmp,嘿嘿,肯定是進(jìn)不去的!

      按下alt+f2,輸入konsole 新建一個(gè)終端。

      注:如果你不是以root用戶登錄,你不能安裝程序。用su命令可以切換到root用戶,不會(huì)用命令的話,注銷后用root登錄。

      輸入 /sbin/telinit

      3用root登錄,輸入root的密碼,如果你忘了,我只能同情你了。按下alt+ctrl把鼠標(biāo)切出來,點(diǎn)擊菜單上的“安裝VMware-tools”。

      回到虛擬機(jī)中,掛載cdrom。

      mount /dev/cdrom /mnt/cdrom進(jìn)入cdrom目錄

      cd /mnt/cdrom將光盤中的內(nèi)容復(fù)制到tmp目錄下

      cp VM* /tmp/

      注:*號是通配符。還有,輸入單個(gè)命令時(shí)按Tab自動(dòng)輸入。

      進(jìn)入tmp目錄

      cd /tmp

      解壓縮.tar.gz文件

      tar zvxf VMware*.tar.gz

      屏幕嘩嘩的閃呀!進(jìn)入解壓后的vmware-tools-distrib目錄

      cd vmware-tools-distrib

      執(zhí)行安裝文件

      ./vm*.pl

      一路默認(rèn)回答,皆按回車鍵。

      以上都很順利,很多人都卡在了這里,這個(gè)該死的目錄怎么也找不到,why?是因?yàn)槟銢]安裝gcc或kernel-source,回本文開頭去看吧!

      配置你的x windows 設(shè)置。輸入yes并按回車鍵。

      選擇你linux的顯示屏幕大小。

      Enioy!

      最后顯示的是VMware開發(fā)組的注記。要讓他們知道中國有這么多用破解版的,他們就不這么寫了。呵呵。

      輸入startx啟動(dòng)Xwindows

      OK。

      我就是參考這個(gè)文章安裝完成的它使用的是紅旗的Linux不過我在紅帽的Linux5中同樣使用順利所以將此貼貼上便于以后參考!

      九、Makefile

      Makefile是個(gè)將多個(gè)文件鏈接編譯的工具使用方法很簡單假設(shè)有兩個(gè)文件一個(gè)是main.c 一個(gè)是fun.c以及同文件 fun.h

      建立Makefile文件輸入:

      main:main.o fun.ogcc main.o fun.o –o main main.o:main.c fun.hgcc –c main.c –o main.o fun.o:fun.c fun.hgcc –c fun.c –o fun.o clean:rm –f main *.o(這部分代碼在make clean時(shí)執(zhí)行!)從中可以看出編譯的規(guī)律

      目標(biāo):匯編文件…..gcc 匯編文件

      1、匯編文件

      2、…..–o 目標(biāo)文件名(這里同編譯一條代碼時(shí)相同)

      十、文件編程-文件創(chuàng)建

      #include

      #include

      #include

      #include

      #include

      void create_file(char *filename)

      {

      If(create(filename,0666)<0)//創(chuàng)建文件函數(shù)判斷創(chuàng)建是否成功 后面的是文件的權(quán)限:可讀可寫不可執(zhí)行!

      {printf(“create file %s failure!n”,filename);exit(EXIT_FAILURE);

      }

      Else

      {

      Printf(“create file %s success!”,filename);

      }

      }

      Int main(int argc,char *argv[])// 這里的argc是程序參數(shù)個(gè)數(shù)(如ls –a這就是兩個(gè)參數(shù),也就是說是兩個(gè)字符串,而argv【】表示的是參數(shù)名字 argv【0】=lsargv【1】=-a后面應(yīng)該還有一個(gè)參數(shù)char *env 代表的是環(huán)境變量的字符串(各種路徑)){

      If(argc<2)//判斷文件是否符合要求,這個(gè)一般小于0就行 {Perror(“you haven’t input the filename,please try again!n”);Exit(EXIT_FAILURE);//這個(gè)最后等于1其實(shí)就是個(gè)return 1;

      }

      Create_file(argv[1]);

      Exit(EXIT_SUCCESS);//這個(gè)最后等于0其實(shí)就是個(gè)return 0;

      }

      十一、今天心得體會(huì):錯(cuò)誤與進(jìn)步同在!正視錯(cuò)誤,解決錯(cuò)誤,取得進(jìn)步!

      下載ARM9嵌入式復(fù)習(xí)總結(jié)word格式文檔
      下載ARM9嵌入式復(fù)習(xí)總結(jié).doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        ARM嵌入式基礎(chǔ)教程知識點(diǎn)總結(jié)

        1、舉出書本中未提到的嵌入式在每種異常模式下都有一個(gè)對統(tǒng):嵌入式μCLinux、Windows 系統(tǒng)的例子:紅綠燈控制,數(shù)字應(yīng)的物理寄存器——程序狀態(tài)CE、VxWorks、μC/OS-II 空調(diào),......

        ARM嵌入式linux復(fù)習(xí)心得總結(jié)2(5篇)

        2011.10.10 Evo YangARM嵌入式linux復(fù)習(xí)心得總結(jié)2:一、文件編程綜合實(shí)驗(yàn)—文件拷貝這里的文件拷貝實(shí)驗(yàn)是在昨天創(chuàng)建文件的基礎(chǔ)之上的綜合練習(xí),由于是Linux應(yīng)用編程的基礎(chǔ)所以......

        嵌入式系統(tǒng)ARM實(shí)驗(yàn)報(bào)告

        南京郵電大學(xué)通信與信息工程學(xué)院 實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)名稱:實(shí)驗(yàn)一基于ADS開發(fā)環(huán)境的設(shè)計(jì) 實(shí)驗(yàn)二嵌入式Linux交叉開發(fā)環(huán)境的建立 實(shí)驗(yàn)三嵌入式Linux環(huán)境下的程序設(shè)計(jì)課程名稱嵌入式......

        嵌入式復(fù)習(xí)總結(jié)

        一:嵌入式系統(tǒng)概述 1嵌入式定義 2嵌入式與通用計(jì)算機(jī) A.嵌入式系統(tǒng)具有應(yīng)用針對性 B.嵌入式系統(tǒng)硬件一般對擴(kuò)展能力要求不高 C.嵌入式一般采用專門針對嵌入式應(yīng)用設(shè)計(jì)的處理......

        ARM與嵌入式實(shí)驗(yàn)報(bào)告(5篇)

        ARM與嵌入式技術(shù) 實(shí)驗(yàn)報(bào)告 專業(yè)班級:通信工程 姓名:**** 學(xué)號:****** 實(shí)驗(yàn)日期:2012年6月7日 指導(dǎo)老師:***** 一、實(shí)驗(yàn)?zāi)康?1.學(xué)習(xí)使用Embest IDE開發(fā)環(huán)境及ARM 軟件模擬器; 2.......

        ARM嵌入式系統(tǒng)的問題總結(jié)分析.

        ARM嵌入式系統(tǒng)的問題總結(jié)分析 摘要:本文是作者關(guān)于嵌入式系統(tǒng)一些基本問題的思考和總結(jié)。主要是從嵌入式處理器與硬件、ARM處理器的優(yōu)勢、嵌入式軟件、嵌入式系統(tǒng)教學(xué)等方面......

        哈工大ARM嵌入式系統(tǒng)考試知識點(diǎn)總結(jié)(5篇)

        接VIC部分 一旦產(chǎn)生IRQ中斷,微控制器切換到IRQ模式,并跳轉(zhuǎn)到向量表0x0018地址執(zhí)行指令。一旦產(chǎn)生FIQ中斷,微控制器切換到FIQ模式,并跳轉(zhuǎn)到向量表0x001C地址執(zhí)行指令,然后跳轉(zhuǎn)到FI......

        嵌入式復(fù)習(xí)總結(jié)a4

        一、嵌入式系統(tǒng)基本知識 1、什么是嵌入式系統(tǒng)、分層結(jié)構(gòu):根據(jù)IEEE(國際電氣和電子工程師協(xié)會(huì))的定義:嵌入式系統(tǒng)是“用于控制、監(jiān)視或者輔助操作機(jī)器和設(shè)備的裝置”, 此定義是從......