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

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

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

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

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

      嵌入式系統(tǒng)教案(李震)

      時(shí)間:2019-05-15 06:13:54下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《嵌入式系統(tǒng)教案(李震)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《嵌入式系統(tǒng)教案(李震)》。

      第一篇:嵌入式系統(tǒng)教案(李震)

      嵌入式系統(tǒng)教案

      教材:《ARM9嵌入式系統(tǒng)設(shè)計(jì)—基于S3C2410與Linux(第二版)》,徐英慧,馬忠梅,王磊,王琳 編著,北京航空航天大學(xué)出版社 課時(shí)分配:理論課32學(xué)時(shí),實(shí)驗(yàn)課8學(xué)時(shí),共40學(xué)時(shí)

      第1章 嵌入式系統(tǒng)基礎(chǔ)

      一、教學(xué)目的:

      介紹嵌入式系統(tǒng)的基本概念,包括嵌入式系統(tǒng)的概念、特點(diǎn)及應(yīng)用,由本章了解嵌入式系統(tǒng)的基礎(chǔ)知識(shí),掌握嵌入式的發(fā)展方向。

      學(xué)時(shí)分配:2學(xué)時(shí)

      二、教學(xué)重點(diǎn):

      實(shí)時(shí)操作系統(tǒng)的多任務(wù)內(nèi)核,實(shí)時(shí)操作系統(tǒng)的任務(wù)管理機(jī)制

      三、教學(xué)難點(diǎn):

      理解和掌握嵌入式系統(tǒng)中任務(wù)間采用的共享數(shù)據(jù)結(jié)構(gòu)和消息機(jī)制等兩種通信方式,嵌入式系統(tǒng)的優(yōu)先級(jí)繼承,搶占式調(diào)度和非搶占式調(diào)度間的區(qū)別。

      四、教學(xué)方法:

      課題講授及嵌入式系統(tǒng)在精細(xì)農(nóng)業(yè)中的應(yīng)用實(shí)例演示

      五、教學(xué)過程設(shè)計(jì):(2學(xué)時(shí))

      一、嵌入式系統(tǒng)概念

      (一)嵌入式系統(tǒng)的定義

      (二)嵌入式系統(tǒng)的組成

      (三)嵌入式系統(tǒng)的特點(diǎn)

      (四)嵌入式系統(tǒng)的應(yīng)用

      (五)實(shí)時(shí)系統(tǒng)

      二、嵌入式處理器

      (一)嵌入式處理器分類

      (二)微控制器的定義及特點(diǎn)

      (三)嵌入式微處理器的定義及特點(diǎn),介紹主流的微處理器,包括ARM、MIPS、MC68K、PowerPC、X86微處理器等。

      (四)DSP處理器的定義及特點(diǎn)

      (五)片上系統(tǒng)的定義及特點(diǎn)

      (六)典型的嵌入式處理器

      三、嵌入式操作系統(tǒng)

      (一)操作系統(tǒng)的概念和分類

      (二)實(shí)時(shí)操作系統(tǒng)

      (三)常見的嵌入式操作系統(tǒng)

      四、實(shí)時(shí)操作系統(tǒng)的內(nèi)核

      (一)任務(wù)管理

      (二)任務(wù)間的通信和同步

      (三)存儲(chǔ)器管理

      (四)定時(shí)器和中斷管理

      五、嵌入式技術(shù)發(fā)展現(xiàn)狀及趨勢(shì)

      六、思考題

      1、什么是嵌入式系統(tǒng)? 它由哪幾部分組成?(作業(yè))

      2、嵌入式系統(tǒng)有何特點(diǎn)?(作業(yè))

      3、嵌入式處理器分為哪幾類?

      4、ARM英文原意是什么? 它是一個(gè)怎樣的公司? 其處理器有何特點(diǎn)?

      5、什么事實(shí)時(shí)系統(tǒng)?實(shí)時(shí)系統(tǒng)有何特點(diǎn)?如何劃分?

      6、實(shí)時(shí)操作系統(tǒng)常用的任務(wù)調(diào)度算法有哪幾種?

      第2章 嵌入式系統(tǒng)開發(fā)過程

      一、教學(xué)目的:

      介紹嵌入式軟件的開發(fā)過程和調(diào)試手段,使學(xué)生了解嵌入式軟件與普通計(jì)算機(jī)軟件在開發(fā)和調(diào)試上的區(qū)別。

      學(xué)時(shí)分配:2學(xué)時(shí)

      二、教學(xué)重點(diǎn):

      嵌入式系統(tǒng)與通用計(jì)算機(jī)在人機(jī)交互界面、有限功能及時(shí)間關(guān)鍵性和穩(wěn)定性方面的區(qū)別,板級(jí)支持包的定義及其作用,嵌入式系統(tǒng)軟件的調(diào)試方式。

      三、教學(xué)難點(diǎn):

      嵌入式應(yīng)用軟件開發(fā)所使用的交叉開發(fā)環(huán)境的定義,嵌入式開發(fā)時(shí)宿主機(jī)和目標(biāo)機(jī)間的區(qū)別及其協(xié)調(diào)工作關(guān)系。

      四、教學(xué)方法:

      課題講授及實(shí)例演示,采用多媒體教學(xué)方法,利用Powerpoint將本節(jié)課的關(guān)鍵內(nèi)容歸類,并通過Internet收集相關(guān)的資料融入教學(xué)內(nèi)容中。

      五、教學(xué)過程設(shè)計(jì):(2學(xué)時(shí))

      一、嵌入式軟件開發(fā)的特點(diǎn)

      二、嵌入式軟件的開發(fā)流程

      三、嵌入式系統(tǒng)的調(diào)試

      四、板級(jí)支持包

      六、思考題

      1、嵌入式系統(tǒng)開發(fā)分為哪幾個(gè)階段?每個(gè)階段的特點(diǎn)是什么?

      2、嵌入式系統(tǒng)有哪幾種調(diào)試方式?現(xiàn)在最流行的是哪種?使用什么接口?

      3、什么是板級(jí)支持包?它一般完成什么工作?(作業(yè))

      第3章 ARM體系結(jié)構(gòu)

      一、教學(xué)目的:

      介紹ARM的體系結(jié)構(gòu),主要包括ARM體系結(jié)構(gòu)的特點(diǎn),ARM處理器的結(jié)構(gòu)和分類,ARM存儲(chǔ)器及存儲(chǔ)器說(shuō)明,ARM的編程模型,ARM指令集,主要包括ARM指令集的分類、ARM和Thumb指令集。

      學(xué)時(shí)分配:10學(xué)時(shí)

      二、教學(xué)重點(diǎn):

      ARM體系結(jié)構(gòu)的特點(diǎn),ARM中ALU的基本結(jié)構(gòu)、ALU的時(shí)序、桶形移位寄存器的工作過程、高速乘法器的實(shí)現(xiàn)原理、ARM的寄存器組織形式,ARM的9種基本尋址方式,ARM指令集的四大類指令及偽指令。

      三、教學(xué)難點(diǎn):

      理解和掌握7種工作模式下ARM31個(gè)通用寄存器的分組和使用方式,理解和熟練使用ARM指令集中四大類指令的符號(hào)及調(diào)用格式。

      四、教學(xué)方法:

      課題講授及例程解析,采用多媒體教學(xué)方法,利用Powerpoint將本節(jié)課的關(guān)鍵內(nèi)容歸類,并通過Internet收集相關(guān)的資料融入教學(xué)內(nèi)容中。

      五、教學(xué)過程設(shè)計(jì):

      一、arm體系結(jié)構(gòu)概述(2學(xué)時(shí))

      (一)arm體系結(jié)構(gòu)的特點(diǎn)

      (二)arm處理器結(jié)構(gòu)

      (三)arm處理器內(nèi)核

      (四)arm處理器核

      二、編程模型(2學(xué)時(shí))

      (一)數(shù)據(jù)類型

      (二)處理器模式

      (三)處理器工作狀態(tài)

      (四)寄存器組織

      (五)異常

      (六)存儲(chǔ)器和存儲(chǔ)器映射i/o

      三、arm基本尋址方式(2學(xué)時(shí))

      四、arm指令集(4學(xué)時(shí))

      (一)條件執(zhí)行

      (二)指令分類說(shuō)明

      (三)thumb指令集與arm指令集的區(qū)別

      (四)thumb指令分類說(shuō)明

      六、思考題

      1、ARM7和ARM9在流水線設(shè)計(jì)方面有何不同? ARM9處理器有和特點(diǎn)?

      2、ARM處理器支持的數(shù)據(jù)類型有哪些?

      3、寫出ARM使用的各種工作模式和工作狀態(tài)

      4、ARM處理器總共有多少個(gè)寄存器?其中哪個(gè)用過PC?哪個(gè)用過LR?

      5、ARM920T處理器加入了哪兩個(gè)協(xié)處理器?各自的主要功能是什么?

      6、ARM920T支持哪些時(shí)鐘模式?

      7、簡(jiǎn)述ARM的CPSR寄存器中各位的作用。(作業(yè))

      第4章 ARM系統(tǒng)硬件設(shè)計(jì)基礎(chǔ)

      一、教學(xué)目的:

      介紹ARM系統(tǒng)硬件設(shè)計(jì)的基礎(chǔ)知識(shí),包括ADS集成開發(fā)環(huán)境,對(duì)ARM的匯編程序設(shè)計(jì)和混合編程以及ARM硬件啟動(dòng)程序設(shè)計(jì)。

      學(xué)時(shí)分配:8學(xué)時(shí),其中6個(gè)理論學(xué)時(shí),2個(gè)實(shí)驗(yàn)學(xué)時(shí)

      二、教學(xué)重點(diǎn):

      基于ARM的匯編語(yǔ)言程序設(shè)計(jì),包括ARM匯編器支持的偽指令、基于ARM的匯編語(yǔ)言語(yǔ)句格式和ARM匯編語(yǔ)言程序的基本結(jié)構(gòu)等?;贏RM的C語(yǔ)言與匯編語(yǔ)言混合編程,包括C語(yǔ)言與匯編語(yǔ)言混合編程應(yīng)遵守的規(guī)則和C語(yǔ)言與匯編語(yǔ)言之間的相互調(diào)用與混合使用方法。

      三、教學(xué)難點(diǎn):

      理解和掌握ARM匯編器支持的偽指令及其使用方式、基于ARM的匯編語(yǔ)言語(yǔ)句格式和ARM匯編語(yǔ)言程序的基本結(jié)構(gòu)等。

      四、教學(xué)方法:

      課題講授、例程解析與上機(jī)實(shí)驗(yàn)相結(jié)合,采用多媒體教學(xué)方法,利用Powerpoint將本節(jié)課的關(guān)鍵內(nèi)容歸類,在課堂上對(duì)ARM的匯編語(yǔ)言進(jìn)行講解的同時(shí)布置相關(guān)練習(xí),加深學(xué)生對(duì)ARM匯編語(yǔ)言的理解,利用上機(jī)實(shí)驗(yàn)的方法使學(xué)生加深對(duì)ARM開發(fā)環(huán)境ADS的了解。

      五、教學(xué)過程設(shè)計(jì):

      一、ARM開發(fā)環(huán)境簡(jiǎn)介(0.5學(xué)時(shí))

      (一)RealView MDK開發(fā)工具簡(jiǎn)介

      (二)IAR EWARM集成開發(fā)環(huán)境簡(jiǎn)介

      二、基于ARM的匯編語(yǔ)言程序設(shè)計(jì)(1.5學(xué)時(shí))

      (一)ARM匯編器支持的偽指令

      (二)基于ARM的匯編語(yǔ)言語(yǔ)句格式

      (三)ARM匯編語(yǔ)言程序的基本結(jié)構(gòu)

      (四)基于ARM的匯編語(yǔ)言程序舉例

      三、基于ARM的硬件啟動(dòng)程序設(shè)計(jì)(2學(xué)時(shí))

      (一)分配中斷向量表

      (二)初始化存儲(chǔ)系統(tǒng)

      (三)初始化堆棧

      (四)初始化有特殊要求的硬件模塊

      (五)初始化應(yīng)用程序執(zhí)行環(huán)境

      (六)改變處理器模式

      (七)調(diào)用主應(yīng)用程序

      四、基于ARM的C語(yǔ)言與匯編語(yǔ)言混合編程(2學(xué)時(shí))

      (一)C語(yǔ)言與匯編語(yǔ)言混合編程應(yīng)遵守的規(guī)則

      (二)匯編程序調(diào)用C程序的方法

      (三)C程序調(diào)用匯編程序的方法

      (四)C程序中內(nèi)嵌匯編語(yǔ)句

      (五)基于ARM的C語(yǔ)言與匯編語(yǔ)言混合編程舉例

      五、上機(jī)實(shí)驗(yàn):ADS1.2嵌入式系統(tǒng)開發(fā)環(huán)境(2學(xué)時(shí))

      六、思考題

      1、基于ARM的硬件啟動(dòng)程序應(yīng)該包含哪些工作?

      2、簡(jiǎn)述C語(yǔ)言與匯編語(yǔ)言混合編程時(shí)應(yīng)該遵循的參數(shù)傳遞規(guī)則。

      3、C程序中內(nèi)嵌ARM匯編語(yǔ)句的格式是怎樣的?應(yīng)該注意哪些內(nèi)容?

      4、C語(yǔ)言中如何內(nèi)嵌匯編實(shí)現(xiàn)對(duì)鏈表的簡(jiǎn)單操作?

      5、ARM啟動(dòng)程序中如何設(shè)置中斷向量?如何初始化堆棧和寄存器?

      6、在對(duì)ARM集成開發(fā)環(huán)境進(jìn)行設(shè)置時(shí)如何設(shè)置ARM內(nèi)核和內(nèi)存地址范圍?

      第5章 基于S3C2410的系統(tǒng)硬件設(shè)計(jì)

      一、教學(xué)目的:

      介紹S3C2410系統(tǒng)的硬件設(shè)計(jì),分別介紹I/O口、中斷、DMA、UART、A/D接口、鍵盤、LCD、觸摸屏、音頻及USB設(shè)備的硬件設(shè)計(jì)要點(diǎn)等。

      學(xué)時(shí)分配:10學(xué)時(shí),其中6個(gè)理論學(xué)時(shí),4個(gè)實(shí)驗(yàn)學(xué)時(shí)

      二、教學(xué)重點(diǎn):

      S3c2410A的I/O口工作原理,ARM的中斷原理及S3c2410A的中斷控制器,UART的工作原理,A/D接口原理以及LCD顯示原理等。

      三、教學(xué)難點(diǎn):

      理解和掌握S3c2410A的I/O口編程、中斷控制器的程序設(shè)定、通過程序設(shè)定UART幀格式、A/D轉(zhuǎn)換的流程及相關(guān)的程序編制等。

      四、教學(xué)方法:

      課題講授、例程解析與上機(jī)實(shí)驗(yàn)相結(jié)合,采用多媒體教學(xué)方法,利用Powerpoint將本節(jié)課的關(guān)鍵內(nèi)容歸類,在課堂上對(duì)S3c2410A的結(jié)構(gòu)進(jìn)行講解,課堂上攜帶開發(fā)板,給學(xué)生一個(gè)感性的認(rèn)識(shí),進(jìn)行講解的同時(shí)布置相關(guān)練習(xí),加深學(xué)生對(duì)S3c2410A結(jié)構(gòu)的理解,本章節(jié)共安排三次實(shí)驗(yàn),內(nèi)容分別為:GPIO實(shí)驗(yàn)、UART實(shí)驗(yàn)和A/D實(shí)驗(yàn)。通過實(shí)驗(yàn),是學(xué)生更加了解S3c2410A處理器的內(nèi)部功能。

      五、教學(xué)過程設(shè)計(jì):

      一、S3c2410簡(jiǎn)介(1學(xué)時(shí))

      (一)S3c2410A的特點(diǎn)

      (二)存儲(chǔ)器控制

      (三)NAND Flash控制器

      (四)時(shí)鐘和電源管理 二I/O口(1學(xué)時(shí))

      (一)S3c2410A的I/O口工作原理

      (二)I/O口編程實(shí)例

      三、中斷(1學(xué)時(shí))

      (一)ARM的中斷原理

      (二)S3c2410A的中斷控制器

      (三)中斷編程實(shí)例

      四、UART(1學(xué)時(shí))

      (一)UART的工作原理

      (二)S3c2410A的UART

      (三)UART編程實(shí)例

      五、A/D接口(1學(xué)時(shí))

      (一)A/D接口原理

      (二)S3c2410A的A/D轉(zhuǎn)換

      (三)A/D接口編程實(shí)例

      六、LCD(1學(xué)時(shí))

      (一)LCD顯示原理

      (二)S3c2410A的LCD控制器

      (三)LCD顯示的編程實(shí)例

      六、思考題

      1、S3c2410A采用的是哪種CPU內(nèi)核?實(shí)現(xiàn)了什么樣的體系結(jié)構(gòu)?

      2、簡(jiǎn)述S3c2410ANand Flash啟動(dòng)裝載器的特點(diǎn)。

      3、S3c2410A的中斷控制器有多少個(gè)中斷源?

      4、S3C2410A的存儲(chǔ)器控制器的特性是什么?

      5、S3c2410A共有多少個(gè)功能復(fù)用的I/O口?如何分組?

      6、S3c2410A的UART數(shù)據(jù)發(fā)送時(shí)的幀格式是怎樣的?如何進(jìn)行設(shè)定?

      7、S3c2410A的A/D轉(zhuǎn)換器的類型是什么?

      第6章 Linux操作系統(tǒng)基礎(chǔ)

      一、教學(xué)目的:

      介紹Linux的基礎(chǔ)知識(shí),包括內(nèi)核結(jié)構(gòu)、進(jìn)程調(diào)度、內(nèi)存管理、虛擬文件、進(jìn)程通信、網(wǎng)絡(luò)接口、設(shè)備管理以及Linux基本命令等。

      學(xué)時(shí)分配:6學(xué)時(shí),其中4個(gè)理論學(xué)時(shí),2個(gè)實(shí)驗(yàn)學(xué)時(shí)

      二、教學(xué)重點(diǎn): 嵌入式Linux開發(fā)概述、開發(fā)環(huán)境構(gòu)建、嵌入式編程基礎(chǔ)知識(shí);Linux系統(tǒng)與Windows系統(tǒng)在進(jìn)程調(diào)度、內(nèi)存管理、虛擬文件系統(tǒng)、進(jìn)程間通信、網(wǎng)絡(luò)接口以及各子系統(tǒng)之間的依賴關(guān)系等方面的區(qū)別。

      三、教學(xué)難點(diǎn):

      makefile文件的編寫規(guī)則,并結(jié)合使用工具aclocal、autoconf和automake生成makefile文件;掌握gcc和gdb的基本用法。

      四、教學(xué)方法:

      課題講授及實(shí)例演示,采用多媒體教學(xué)方法,利用Powerpoint將本節(jié)課的關(guān)鍵內(nèi)容歸類,并通過Internet收集相關(guān)的資料融入教學(xué)內(nèi)容中,安排一次Linux系統(tǒng)配置及簡(jiǎn)單程序運(yùn)行實(shí)驗(yàn)。

      五、教學(xué)過程設(shè)計(jì):

      一、Linux操作系統(tǒng)概述(1.5學(xué)時(shí))

      (一)Linux操作系統(tǒng)的產(chǎn)生及發(fā)展

      (二)Linux操作系統(tǒng)的特點(diǎn)

      二、Linux內(nèi)核的結(jié)構(gòu)(2.5學(xué)時(shí))

      (一)進(jìn)程調(diào)度

      (二)內(nèi)存管理

      (三)虛擬文件系統(tǒng)

      (四)進(jìn)程間通信

      (五)網(wǎng)絡(luò)接口

      (六)各子系統(tǒng)之間的依賴關(guān)系

      六、思考題

      1、Linux操作系統(tǒng)有哪些特點(diǎn)?

      2、操作系統(tǒng)有哪些內(nèi)核的結(jié)構(gòu)模式?

      3、單內(nèi)核操作系統(tǒng)有何特點(diǎn)?微內(nèi)核操作系統(tǒng)有何特點(diǎn)?

      4、什么是進(jìn)程?Linux的進(jìn)程有哪些種類?

      5、Linux虛擬內(nèi)存技術(shù)提供哪些功能?

      6、簡(jiǎn)述進(jìn)程調(diào)度與內(nèi)存管理之間的關(guān)系。簡(jiǎn)述內(nèi)存管理與虛擬文件系統(tǒng)之間的關(guān)系。

      復(fù)習(xí)

      一、教學(xué)目的:

      復(fù)習(xí)所學(xué)內(nèi)容,幫助學(xué)生對(duì)嵌入式系統(tǒng)課程所設(shè)計(jì)的知識(shí)點(diǎn)進(jìn)行總結(jié)和歸納。學(xué)時(shí)分配:2學(xué)時(shí)

      二、教學(xué)重點(diǎn):

      嵌入式系統(tǒng)的定義、嵌入式系統(tǒng)的組成、嵌入式系統(tǒng)的特點(diǎn),嵌入式系統(tǒng)的應(yīng)用,操作系統(tǒng)的概念和分類、實(shí)時(shí)操作系統(tǒng)、常見的嵌入式操作系統(tǒng),arm體系結(jié)構(gòu)概述、arm體系結(jié)構(gòu)的特點(diǎn)、arm處理器結(jié)構(gòu)、arm處理器內(nèi)核、arm處理器核,Linux內(nèi)核等。

      三、教學(xué)方法:

      課題講授,采用多媒體教學(xué)方法,利用Powerpoint將本節(jié)課的關(guān)鍵內(nèi)容歸類。

      第二篇:《嵌入式系統(tǒng)設(shè)計(jì)》教案

      嵌入式系統(tǒng)設(shè)計(jì)教案

      課程總學(xué)時(shí): 32 講課學(xué)時(shí): 24 實(shí)驗(yàn)學(xué)時(shí): 8 授 課 人: 楊詞慧

      南昌航空大學(xué)信息工程學(xué)院

      目錄 嵌入式系統(tǒng)概述.......................................................................................................................1 1.1 嵌入式系統(tǒng)的基本概念...............................................................................................1 1.2 嵌入式系統(tǒng)的發(fā)展歷史...............................................................................................2 1.3 嵌入式系統(tǒng)的體系結(jié)構(gòu)...............................................................................................2 1.4 嵌入式處理器...............................................................................................................3 1.5 嵌入式操作系統(tǒng)...........................................................................................................4 1.6 嵌入式系統(tǒng)的應(yīng)用及發(fā)展趨勢(shì)...................................................................................7 ARM體系結(jié)構(gòu).........................................................................................................................8 2.1 ARM設(shè)計(jì)思想.............................................................................................................8 2.2 ARM體系結(jié)構(gòu)分析.....................................................................................................9 2.3 ARM處理器系列.......................................................................................................11 2.4 ARM處理器模式.......................................................................................................15 2.5 ARM體系的異常處理...............................................................................................16 2.6 ARM內(nèi)部寄存器.......................................................................................................18 2.7 ARM體系的存儲(chǔ)系統(tǒng)...............................................................................................19 ARM指令系統(tǒng)及程序設(shè)計(jì)基礎(chǔ)...........................................................................................21 3.1 ARM尋址方式...........................................................................................................21 3.2 ARM指令集...............................................................................................................24 3.3 Thumb指令集............................................................................................................33 3.4............................................................................................................................................35 3.5............................................................................................................................................35 3.6 嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)過程.....................................................................................36 STM32微控制器...................................................................................................................37 4.1 STM32微控制器的性能指標(biāo)....................................................................................37 2 3 4

      I 嵌入式系統(tǒng)概述

      教學(xué)目的:使學(xué)生對(duì)嵌入式系統(tǒng)的基本概念和體系結(jié)構(gòu)、嵌入式處理器、嵌入式操作系統(tǒng)、嵌入式系統(tǒng)的歷史、應(yīng)用及發(fā)展趨勢(shì)有一定的了解。

      教學(xué)重點(diǎn):嵌入式系統(tǒng)的基本概念、嵌入式處理器和嵌入式操作系統(tǒng)。教學(xué)難點(diǎn):嵌入式系統(tǒng)的體系結(jié)構(gòu)、嵌入式處理器。教學(xué)方法與教學(xué)手段:課堂講授,多媒體教學(xué)。教學(xué)時(shí)間:2課時(shí)。教學(xué)內(nèi)容

      1.1 嵌入式系統(tǒng)的基本概念

      (1)嵌入式系統(tǒng)的定義

      先舉例說(shuō)明生活中的各種嵌入式系統(tǒng)設(shè)備,如iPhone、小米手機(jī)、洗衣機(jī)、電壓力鍋等。IEEE(國(guó)際電氣和電子工程師協(xié)會(huì))的定義:嵌入式系統(tǒng)是用于控制、監(jiān)視或者輔助操作機(jī)器和設(shè)備的裝置(Devices used to control, monitor, or assist the operation of equipment, machinery or plants)。

      微機(jī)學(xué)會(huì)的定義:嵌入式系統(tǒng)是以嵌入式應(yīng)用為目的的計(jì)算機(jī)系統(tǒng),可分為系統(tǒng)級(jí)、板級(jí)和片級(jí)。a)系統(tǒng)級(jí):各種類型的工控機(jī)、PC104等模塊。b)板級(jí):各種類型的帶CPU的主板或OEM產(chǎn)品。c)片級(jí):各種以單片機(jī)、DSP、微處理器為核心的產(chǎn)品。

      一般定義:嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟件硬件可裁剪,對(duì)功能、可靠性、成本、體積、功耗要求嚴(yán)格的專用計(jì)算機(jī)系統(tǒng)。

      (2)嵌入式系統(tǒng)的特點(diǎn) a)專用、軟硬件可剪裁配置。b)低功耗、高可靠性、高穩(wěn)定性。c)軟件代碼矮小精悍。d)代碼可固化。e)實(shí)時(shí)性。f)弱交互性。

      g)軟件開發(fā)通常需要專門的開發(fā)工具、環(huán)境和方法。h)要求開發(fā)、設(shè)計(jì)人員具有較高的技能。i)具有較長(zhǎng)的生命周期。(3)嵌入式系統(tǒng)的分類

      按嵌入式微處理器的位數(shù)可分為:4位、8位、16位、32位和64位。按實(shí)時(shí)性能可分為:非實(shí)時(shí)系統(tǒng)和實(shí)時(shí)系統(tǒng)。

      按軟件結(jié)構(gòu)可分為:嵌入式單線程系統(tǒng)和嵌入式事件驅(qū)動(dòng)系統(tǒng)。

      按應(yīng)用領(lǐng)域可分為:信息家電類、消費(fèi)電子類、醫(yī)療電子類、移動(dòng)終端類、通信類、汽車電子類、工業(yè)控制類、航空電子類、軍事電子類等。

      1.2 嵌入式系統(tǒng)的發(fā)展歷史

      (1)以單芯片為核心的可編程控制器形成的系統(tǒng)

      1971年11月,Intel推出Intel 4004。隨后出現(xiàn)Intel 8080/8085、8086、Motorola的6800、68000,Zilog的Z80、Z8000。

      以微處理器為核心構(gòu)成的系統(tǒng)

      單板機(jī):Intel的iSBC系列、Zilog的MCB等

      將計(jì)算機(jī)做在一個(gè)芯片上,大部分應(yīng)用于專業(yè)性強(qiáng)的工業(yè)控制系統(tǒng)中,沒有操作系統(tǒng)的支持,系統(tǒng)結(jié)構(gòu)和功能相對(duì)單一,處理效率較低,存儲(chǔ)容量較小。

      (2)以嵌入式CPU為基礎(chǔ)、以簡(jiǎn)單操作系統(tǒng)為核心的嵌入式系統(tǒng)

      CPU種類繁多,通用性較弱;系統(tǒng)開銷小,效率高;操作系統(tǒng)達(dá)到一定的兼容性和擴(kuò)展性;應(yīng)用軟件較專業(yè)化,用戶界面不夠友好。

      (3)以嵌入式操作系統(tǒng)為標(biāo)志的嵌入式系統(tǒng)

      嵌入式操作系統(tǒng)可運(yùn)行于各種不同類型的微處理器上,兼容性好;操作系統(tǒng)內(nèi)核小,效率高;具備文件和目錄管理,支持多任務(wù)、網(wǎng)絡(luò)應(yīng)用,具備圖形窗口和用戶界面;有大量的應(yīng)用程序接口API。

      (4)以Internet為標(biāo)志的嵌入式系統(tǒng) 嵌入式設(shè)備與Internet的結(jié)合。

      1.3 嵌入式系統(tǒng)的體系結(jié)構(gòu)

      (1)體系結(jié)構(gòu)

      (2)硬件層

      ? 嵌入式處理器:ARM、DSP、FPGA ? 存儲(chǔ)器系統(tǒng):ROM、FLASH、SDRAM ? 中斷控制器、DMAC、定時(shí)器/計(jì)數(shù)器、UART、USB控制器、LCD控制器等 ? I/O接口:USB、I2C、SPI、CAN等

      (3)中間層

      ? 硬件抽象層(Hardware Abstraction Layer, HAL)。位于操作系統(tǒng)內(nèi)核與硬件電路之間的接口層,隱藏硬件接口細(xì)節(jié)。

      ? 板級(jí)支持包(Board Support Package, BSP)。為上層的驅(qū)動(dòng)程序提供訪問硬件設(shè)備寄存器的函數(shù)包。? 設(shè)備驅(qū)動(dòng)程序

      1.4 嵌入式處理器

      (1)嵌入式處理器的分類

      中高端的嵌入式微處理器(Embedded Micro-Processor Unit, EMPU)低端的微控制器(Microcontroller Unit, MCU)DSP處理器(Digital Signal Processor, DSP)高度集成的片上系統(tǒng)(System on Chip, SoC)(2)嵌入式微處理器

      由通用計(jì)算機(jī)中的CPU演變而來(lái),只保留與嵌入式應(yīng)用緊密相關(guān)的功能硬件,在工作溫度、抗電磁干擾、可靠性、功耗等方面做了各種增強(qiáng)。

      主要的嵌入式處理器類型:ARM、MIPS、PowerPC、68000系列等。特點(diǎn)

      a)在設(shè)計(jì)中考慮低功耗。

      b)采用可擴(kuò)展的處理器結(jié)構(gòu)。處理器內(nèi)部留有很多擴(kuò)展接口。c)具有很強(qiáng)的存儲(chǔ)區(qū)保護(hù)功能。d)提供豐富的調(diào)試功能。

      e)對(duì)實(shí)時(shí)任務(wù)具有很強(qiáng)的支持能力。(3)微控制器

      俗稱單片機(jī),將整個(gè)計(jì)算機(jī)系統(tǒng)集成到一塊芯片中。

      WatchWatchdogdogGPIO/計(jì)數(shù)GPIOUARTUART定時(shí)定時(shí)/計(jì)數(shù)A/DA/DD/A器D/A器2CCANCANII2CSPISPIUSBUSBCPUCPUSRAMSRAM核心部分FlashFlash8位單片機(jī)示意圖以一種微處理器為核心,芯片內(nèi)部集成Flash、RAM、總線邏輯、定時(shí)器/計(jì)數(shù)器、I/O口、串行口、PWM、A/D、D/A等。

      最早的單片機(jī): 1976年,Intel的8048,Motorola的68HC05、Zilog公司的Z80.(4)DSP處理器

      對(duì)系統(tǒng)結(jié)構(gòu)和指令進(jìn)行了特殊設(shè)計(jì),使其適合DSP算法 高效乘累加運(yùn)算、超標(biāo)量操作、指令流水線 高效數(shù)據(jù)存取、硬件重復(fù)循環(huán) 確定性操作(程序執(zhí)行時(shí)間可預(yù)測(cè))應(yīng)用場(chǎng)合:音視頻編解碼、數(shù)字濾波、FFT等(5)片上系統(tǒng)

      將整個(gè)系統(tǒng)做在一個(gè)芯片上 優(yōu)點(diǎn)

      a)通過改變內(nèi)部工作電壓,降低芯片功耗 b)減少芯片對(duì)外的引腳數(shù),簡(jiǎn)化制造過程

      c)減少外圍驅(qū)動(dòng)接口單元及電路板之間的信號(hào)傳遞,加快微處理器數(shù)據(jù)處理的速度 d)內(nèi)嵌線路可避免信號(hào)傳遞時(shí)所造成的系統(tǒng)雜訊 聯(lián)發(fā)科推出28nm雙核處理器MT6572 a)代號(hào)武松,基于Cortex-A7架構(gòu) b)主頻為1.2GHz c)處理器上整合了Wi-Fi、FM收音機(jī)、GPS以及藍(lán)牙四種功能 d)支持500萬(wàn)像素?cái)z像頭(6)嵌入式處理器的發(fā)展趨勢(shì) a)內(nèi)部結(jié)構(gòu)

      SoC設(shè)計(jì),與DSP、Flash、FPGA融合;性能更強(qiáng),集成更多的功能部件;雙核或多核結(jié)構(gòu) b)功耗更低 c)可靠性更高 d)支持ISP、ISD 1.5 嵌入式操作系統(tǒng)

      (1)操作系統(tǒng)的概念及功能

      操作系統(tǒng)。是一組計(jì)算機(jī)程序的集合,用來(lái)有效地控制和管理計(jì)算機(jī)的硬件和軟件資源,并為用戶提供方便的應(yīng)用接口。

      功能:處理器管理;存儲(chǔ)器管理;設(shè)備管理;文件管理;用戶接口(2)操作系統(tǒng)的分類 按程序調(diào)度的方法分為

      ? 順序操作系統(tǒng)。只含一個(gè)運(yùn)行程序,獨(dú)占CPU時(shí)間,順序執(zhí)行。如DOS系統(tǒng)。? 分時(shí)操作系統(tǒng)。系統(tǒng)內(nèi)同時(shí)有多道程序運(yùn)行。如Unix系統(tǒng)。? 實(shí)時(shí)操作系統(tǒng)。

      從應(yīng)用角度,嵌入式操作系統(tǒng)可分為 ? 面向低端信息家電

      ? 面向高端信息家電 ? 面向個(gè)人通信終端 ? 面向通信設(shè)備 ? 面向汽車電子 ? 面向工業(yè)控制

      從實(shí)時(shí)性的角度,嵌入式操作系統(tǒng)可分為 ? 具有強(qiáng)實(shí)時(shí)特點(diǎn)的嵌入式操作系統(tǒng) ? 具有弱實(shí)時(shí)特點(diǎn)的嵌入式操作系統(tǒng) ? 沒有實(shí)時(shí)特點(diǎn)的嵌入式操作系統(tǒng)(3)實(shí)時(shí)操作系統(tǒng)(RTOS)

      是具有實(shí)時(shí)性且能支持實(shí)時(shí)控制系統(tǒng)工作的操作系統(tǒng),首要任務(wù)是調(diào)度一切可利用的資源來(lái)完成控制任務(wù)。

      對(duì)現(xiàn)場(chǎng)不停監(jiān)測(cè),一旦有事件發(fā)生能立即處理。與通用OS的區(qū)別:實(shí)時(shí)性,代碼尺寸小。一般包括以下幾個(gè)重要組成部分:

      ? 實(shí)時(shí)內(nèi)核:任務(wù)管理、定時(shí)器管理、存儲(chǔ)器管理、任務(wù)間通信與同步等。? 網(wǎng)絡(luò)組件 ? 文件系統(tǒng) ? 圖形用戶界面

      IEEE的Unix委員會(huì)規(guī)定了實(shí)時(shí)操作系統(tǒng)須具備以下幾個(gè)特點(diǎn): ? 支持異步事件的響應(yīng)。? 中斷和調(diào)度任務(wù)的優(yōu)先機(jī)制。? 支持指令性計(jì)劃占式調(diào)度。? 支持同步。

      (4)常見的嵌入式操作系統(tǒng) 嵌入式Linux ? 實(shí)時(shí)的嵌入式Linux:如RT-Linux、KURT-Linux等。RT-Linux將通常的Linux任務(wù)優(yōu)先級(jí)設(shè)為最低。

      ? 一般的嵌入式Linux:如μCLinux。? 開源,內(nèi)核小、效率高,可定制 μC/OS和μC/OS-II ? μC/OS-II(MicroController Operating System)是由Jean J.Labrosse開發(fā)的實(shí)時(shí)操作系統(tǒng)內(nèi)核。

      ? 已被移植到Intel、ARM、Motorola等公司的81種不同的處理器上。

      ? Labrosse用一年時(shí)間開發(fā)了μC/OS實(shí)時(shí)操作系統(tǒng); 1992年在《Embedded System Programming》上 發(fā)表介紹文章,并公布源代碼;1993年寫了《μC/OS, The Real-Time Kernel》;書及源碼推動(dòng)了μC/OS-II的發(fā)展。

      ? μC/OS-II只是一個(gè)實(shí)時(shí)操作系統(tǒng)的內(nèi)核,全部核心代碼只有8.3 KB。? 只包含進(jìn)程調(diào)度、時(shí)鐘管理、內(nèi)存管理和進(jìn)程間的通信與同步等基本功能。Windows CE ? 多線程、完整優(yōu)先權(quán)、多任務(wù)的32位嵌入式操作系統(tǒng)。? 基本內(nèi)核大小至少為200KB。VxWorks ? 美國(guó)WindRiver公司于1983年設(shè)計(jì)

      ? 是目前嵌入式系統(tǒng)領(lǐng)域中使用最廣泛、市場(chǎng)占有率最高的系統(tǒng)。? 擁有良好的持續(xù)發(fā)展能力和高性能的內(nèi)核及友好的用戶開發(fā)環(huán)境。

      ? 支持多種處理器,如ARM、x86、i960、SunSparc、MIPS RX000、PowerPC、StrongARM等。? 以良好的可靠性和實(shí)時(shí)性,廣泛應(yīng)用在通信、軍事、航空、航天等領(lǐng)域。

      ? 應(yīng)用案例:美國(guó)F-

      16、FA-18戰(zhàn)斗機(jī),B-2隱形轟炸機(jī),“愛國(guó)者”導(dǎo)彈,1997年4月在火星登陸的火星探測(cè)器。Palm OS ? 32位嵌入式操作系統(tǒng),由3Com公司的Palm Computing部門開發(fā)。

      ? 在掌上電腦和PDA市場(chǎng)上占有很大的市場(chǎng)份額,曾占據(jù)90%的PDA市場(chǎng)份額。? 2010年04月29日惠普12億美元收購(gòu)Palm QNX ? 一個(gè)實(shí)時(shí)、可擴(kuò)充的操作系統(tǒng)。

      ? 部分遵循POSIX(可移植操作系統(tǒng)接口)相關(guān)標(biāo)準(zhǔn)。

      ? 內(nèi)核僅提供4種服務(wù):進(jìn)程調(diào)度、進(jìn)程間通信、底層網(wǎng)絡(luò)通信和中斷處理。? 內(nèi)核非常小巧(QNX4.X約為12KB),運(yùn)行速度極快。iOS ? 蘋果推出,基于Darwin ? 最新:iOS8 Android ? Google開發(fā)的基于Linux平臺(tái)的開源手機(jī)操作系統(tǒng) Delta OS ? 是電子科技大學(xué)實(shí)時(shí)系統(tǒng)教研室和北京科銀京成技術(shù)有限公司聯(lián)合研制并開發(fā)的全中文嵌入式操作系統(tǒng)。

      ? 絕大部分代碼由C語(yǔ)言編寫。

      ? 已成功應(yīng)用于通信、網(wǎng)絡(luò)、信息家電等多個(gè)應(yīng)用領(lǐng)域。pSOS ISI公司研發(fā)的產(chǎn)品。

      模塊化、高性能、完全可擴(kuò)展。

      1.6 嵌入式系統(tǒng)的應(yīng)用及發(fā)展趨勢(shì)

      (1)嵌入式系統(tǒng)的應(yīng)用領(lǐng)域 ? 消費(fèi)電子領(lǐng)域 ? 通信網(wǎng)絡(luò)領(lǐng)域

      ? 工業(yè)控制領(lǐng)域、機(jī)器人領(lǐng)域 ? 交通管理與汽車電子領(lǐng)域 ? 國(guó)防與航空航天領(lǐng)域 ? 醫(yī)療儀器領(lǐng)域

      (2)嵌入式系統(tǒng)的發(fā)展趨勢(shì)

      ? 小型化、智能化、網(wǎng)絡(luò)化、可視化 ? 多核技術(shù)的應(yīng)用 ? 低功耗、綠色環(huán)保

      ? 云計(jì)算、可重構(gòu)、虛擬化等技術(shù)被進(jìn)一步應(yīng)用到嵌入式系統(tǒng)中 ? 嵌入式系統(tǒng)軟件將逐漸PC化 ? 融合趨勢(shì)

      ? 微控制器MCU與SoC的結(jié)合 ? 微控制器MCU與DSP的結(jié)合 ? ARM與DSP的結(jié)合

      ? 微控制器MCU與CPLD/FPGA的結(jié)合 ? 安全性 ARM體系結(jié)構(gòu)

      教學(xué)目的:使學(xué)生對(duì)ARM設(shè)計(jì)思想、ARM處理器系列、ARM體系結(jié)構(gòu)、ARM處理器模式、ARM內(nèi)部寄存器、ARM體系的存儲(chǔ)系統(tǒng)有一定的了解。

      教學(xué)重點(diǎn):ARM設(shè)計(jì)思想、ARM體系結(jié)構(gòu)、ARM處理器模式、ARM內(nèi)部寄存器。教學(xué)難點(diǎn):ARM處理器模式、ARM內(nèi)部寄存器。教學(xué)方法與教學(xué)手段:課堂講授,多媒體教學(xué)。教學(xué)時(shí)間:4課時(shí)。教學(xué)內(nèi)容

      2.1 ARM設(shè)計(jì)思想

      (1)RISC 傳統(tǒng)的CISC(Complex Instruction Set Computing)指令集中,約20%指令占整個(gè)程序代碼的80%。RISC(Reduced Instruction Set Computing)是一種設(shè)計(jì)思想,其目標(biāo)是設(shè)計(jì)出一套能在高時(shí)鐘頻率下單周期執(zhí)行、簡(jiǎn)單而有效的指令集。

      RISC設(shè)計(jì)重點(diǎn)在于降低硬件執(zhí)行指令的復(fù)雜度,而傳統(tǒng)的CISC更側(cè)重于硬件執(zhí)行指令的功能性,使CISC指令變得復(fù)雜。

      (2)RISC設(shè)計(jì)思想的實(shí)現(xiàn)

      ? 指令集。減少了指令種類,指令只實(shí)現(xiàn)簡(jiǎn)單的功能,指令長(zhǎng)度固定。

      ? 流水線。指令的處理過程被拆分成幾個(gè)更小的、能夠被流水線并行執(zhí)行的單元。

      ? 寄存器。更多通用寄存器,可存數(shù)據(jù)和地址,可為所有數(shù)據(jù)操作提供快速的局部存儲(chǔ)訪問。? load-store結(jié)構(gòu)。處理器只處理寄存器中數(shù)據(jù),用load和store指令完成寄存器和外存間的數(shù)據(jù)傳送

      (3)ARM的設(shè)計(jì)思想 ? 較小的核。降低功耗

      ? 高的代碼密度??紤]成本和物理尺寸限制

      ? 較小的處理器內(nèi)核管芯(Die)面積。留給外設(shè)電路的空間較大 ? 硬件調(diào)試技術(shù)(4)ARM微處理器的特點(diǎn)

      ? 體積小,功耗低,成本低,性能高; ? 支持Thumb/ARM指令集,兼容8/16位器件;

      ? 大量使用寄存器,指令執(zhí)行速度更快; ? 大多數(shù)數(shù)據(jù)操作都在寄存器中完成; ? 尋址方式靈活簡(jiǎn)單,執(zhí)行效率高; ? 指令長(zhǎng)度固定。

      2.2 ARM體系結(jié)構(gòu)分析

      (1)包含典型 的RISC 體系結(jié)構(gòu)特征

      ? 統(tǒng)一寄存器文件加載/存儲(chǔ)體系結(jié)構(gòu),數(shù)據(jù)處理操作只針對(duì)寄存器內(nèi)容; ? 簡(jiǎn)單尋址模式,所有加載/存儲(chǔ)地址只通過寄存器內(nèi)容和指令字段確定。? 指令長(zhǎng)度固定,簡(jiǎn)化了指令譯碼。(2)還提供

      ? 可組合使用轉(zhuǎn)換與算術(shù)或邏輯運(yùn)算指令 ? 自動(dòng)遞增和自動(dòng)遞減尋址模式,可優(yōu)化程序循環(huán) ? 加載存儲(chǔ)多個(gè)指令以最大化數(shù)據(jù)吞吐量 ? 幾乎所有指令都采取條件執(zhí)行的方式(3)普林斯頓結(jié)構(gòu)和哈佛結(jié)構(gòu)

      普林斯頓結(jié)構(gòu):也稱馮·諾伊曼結(jié)構(gòu),它將程序指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器合并在一起的存儲(chǔ)結(jié)構(gòu)。ARM7系列基于普林斯頓結(jié)構(gòu)。

      哈佛結(jié)構(gòu):將程序指令存儲(chǔ)和數(shù)據(jù)存儲(chǔ)分開的存儲(chǔ)結(jié)構(gòu)。ARM9系列之后都基于哈佛結(jié)構(gòu)。

      (4)流水線

      ARM7的三級(jí)流水線在執(zhí)行單元完成了大量的工作,執(zhí)行單元的工作往往占用多個(gè)時(shí)鐘周期,從而成為系統(tǒng)性能的瓶頸。

      ARM9采用哈佛架構(gòu),避免了數(shù)據(jù)訪問了取指的總路線沖突,采用五級(jí)流水線設(shè)計(jì)。

      五級(jí)流水線技術(shù)把三級(jí)流水線中的執(zhí)行單元進(jìn)一步細(xì)化,減少了在每個(gè)時(shí)鐘周期內(nèi)必須完成的工

      作量,進(jìn)而允許使用較高的時(shí)鐘頻率。

      無(wú)論三級(jí)流水線還是五級(jí)流水線,在以下情況下都會(huì)發(fā)生阻塞: ? 多周期指令、跳轉(zhuǎn)分支指令 ? 中斷發(fā)生

      ? 相鄰指令之間的寄存器沖突:如果當(dāng)前指令(A)的目的操作數(shù)寄存器和下一條指令(B)的源操作數(shù)寄存器一致,B指令就需要等A回寫之后才能譯碼。

      (5)ARM體系結(jié)構(gòu)的版本

      2.3 ARM處理器系列

      (1)ARM處理器系列

      ? 經(jīng)典ARM處理器:ARM7、ARM9、ARM10、ARM11 ? Cortex-A系列處理器:Cortex-A15、Cortex-A9、Cortex-A8、Cortex-A7、Cortex-A5 ? Cortex-R系列處理器:Cortex-R7、Cortex-R5、Cortex-R4 ? Cortex-M系列處理器:Cortex-M4、Cortex-M3、Cortex-M1、Cortex-M0+、Cortex-M0、CMSDK、CMSIS ? SecurCore處理器(2)ARM內(nèi)核版本命名規(guī)則

      (3)ARM7系列微處理器 a)主要特點(diǎn)

      ? 最高主頻:130MIPS(Million Instructions Per Second); ? 功耗低;

      ? 代碼密度高,兼容16位的微處理器; ? 可得到廣泛的操作系統(tǒng)和實(shí)時(shí)操作系統(tǒng)支持; ? 眾多的開發(fā)工具,優(yōu)秀的調(diào)試機(jī)制; ? 采用3級(jí)流水線結(jié)構(gòu);

      ? 提供0.25μm、0.18μm和0.13μm的生產(chǎn)工藝。b)馮·諾伊曼結(jié)構(gòu):數(shù)據(jù)和指令使用同一條總線。

      c)包括ARM7TDMI、ARM7TDMI-S、ARM7EJ-S和ARM720T四種類型,適用于不同的市場(chǎng)要求 d)ARM7TDMI ? ARM公司最早為業(yè)界普遍認(rèn)可并廣泛應(yīng)用的處理器核。? T:Thumb;D:Debug;M:Multiplier;I:Embedded ICE logic。e)ARM7TDMI-S ? 是ARM7TDMI的可綜合(synthesizable)版本(軟核)。

      ? ARM以“軟”核的方式把ARM7TDMI核授權(quán)給處理器廠商,處理器廠商可進(jìn)行修改和綜合。這就是ARM7TDMI-S。

      ? 綜合出的整個(gè)核比“硬”核大50%,電源效率降低50%。f)ARM7EJ-S ? 是可綜合的、帶有增強(qiáng)型DSP(E變種)和Java加速功能(J變種)的32位RISC嵌入式處理器。

      ? 主要用于數(shù)字音頻播放器、帶Java功能的無(wú)線手持設(shè)備、噴墨打印機(jī)、數(shù)碼相機(jī)和PDA等方面。

      g)ARM720T ? 專為使用Windows CE、Symbian OS操作系統(tǒng)平臺(tái)設(shè)計(jì)。? 主要用于數(shù)字音頻播放器、噴墨打印機(jī)和數(shù)碼相機(jī)等。(4)ARM9系列微處理器 a)主要特點(diǎn)

      ? 5級(jí)整數(shù)流水線;

      ? 單一的32位AMBA(Advanced Microcontroller Bus Architecture)總線接口; ? MMU支持Windows CE、Symbian OS、Linux等; ? 支持實(shí)時(shí)操作系統(tǒng),包括VxWorks; ? 統(tǒng)一的數(shù)據(jù)Cache和指令Cache;

      ? 提供0.25μm、0.18μm和0.13μm的生產(chǎn)工藝。

      b)包括ARM9TDMI、ARM920T、ARM940T和ARM9E四種類型。后三種含有Cache。

      c)采用Harvard體系結(jié)構(gòu)

      ? 指令與數(shù)據(jù)分開存儲(chǔ)。? 采用指令快存 和數(shù)據(jù)快存。

      d)在相同工藝條件下,ARM9TDMI的處理能力是ARM7TDMI的兩倍。e)ARM920T ?

      Motorola MC9328MX1和Samsung S3C2410X處理器都采用ARM920T 核心。? 主要應(yīng)用于通信終端、3G基帶和應(yīng)用處理器、基于OS的平臺(tái)設(shè)備、數(shù)碼相機(jī)、音頻/視頻解碼和機(jī)頂盒等。

      f)ARM940T ? 與ARM920T相比,實(shí)現(xiàn)了一個(gè)更小的D-Cache、I-Cache和MPU。適于不需運(yùn)行操作系統(tǒng)的平臺(tái)。

      g)ARM9E ? 使用單一的處理器核,提供微控制器、DSP、Java應(yīng)用系統(tǒng)的解決方案; ? DSP指令集;

      ? 在0.13μm工藝下,主頻可達(dá)300MIPS的性能; ? 集成實(shí)時(shí)跟蹤調(diào)試功能; ? 可選的VFP9浮點(diǎn)處理協(xié)處理器;

      ? 高性能的AHB(Advanced High performance Bus)。(5)ARM10系列微處理器 a)主要特點(diǎn)

      ? 6級(jí)流水線;

      ? 在典型的0.13μm工藝下,主頻可達(dá)400MIPS的性能; ? 單一的32位AMBA 總線接口;

      ? MMU支持Windows CE、Symbian OS、Linux等; ? 統(tǒng)一的數(shù)據(jù)Cache和指令Cache;

      ? 提供0.25μm、0.18μm和0.13μm的生產(chǎn)工藝; ? 并行讀取/寫入部件。

      b)包括:ARM1020、ARM10200、ARM1020E、ARM1022E、ARM1026EJ-S。c)使用ARM10TDMI處理器核,采用ARMv5T結(jié)構(gòu)。d)ARM10TDMI ? 在相同工藝條件下,處理能力是ARM9TDMI的兩倍;

      ? 采用提高時(shí)鐘頻率、6級(jí)流水線、轉(zhuǎn)移預(yù)測(cè)邏輯、64位存儲(chǔ)器和無(wú)阻塞的存/取邏輯等措施提升性能。

      e)ARM10E。新節(jié)能模式,64位Load/Store體系,與ARM10TDMI相比具有的特點(diǎn)

      ? DSP指令集;

      ? 可選的VFP10浮點(diǎn)處理協(xié)處理器;

      ? 在實(shí)時(shí)控制和三維圖像處理時(shí),主頻可達(dá)650MFLPS(百萬(wàn)次浮點(diǎn)運(yùn)算每秒)。

      (6)ARM11系列微處理器

      ? ARM1156T2-S內(nèi)核、ARM1156T2F-S內(nèi)核、ARM1176JZ-S內(nèi)核和ARM11JZF-S內(nèi)核 ? ARM1156T2-S內(nèi)核和 ARM1156T2F-S內(nèi)核 ? 基于ARM v6指令集體系結(jié)構(gòu);

      ? 是首批含有ARM Thumb-2內(nèi)核技術(shù)的產(chǎn)品。(7)Cortex-A系列微處理器

      ? 適于高計(jì)算要求、運(yùn)行豐富操作系統(tǒng)及提供交互媒體和圖形體驗(yàn)的應(yīng)用領(lǐng)域。? 支持傳統(tǒng) ARM、Thumb指令集和新的高性能緊湊型 Thumb-2 指令集。? 移動(dòng)互聯(lián)網(wǎng)的支持

      ? 低功率設(shè)計(jì),支持 Adobe Flash 10.1 ? 高性能 NEON 引擎,廣泛支持媒體編解碼器 ? 高性能

      ? Cortex-A15:為新一代移動(dòng)基礎(chǔ)結(jié)構(gòu)應(yīng)用和無(wú)線基礎(chǔ)結(jié)構(gòu)應(yīng)用提供高性能的解決方案。

      ? Cortex-A9。800 MHz1 GHz 的頻率下,提供的性能超過 2000 DMIPS。

      ? Cortex-A5 低成本實(shí)現(xiàn),在 400-800 MHz 的頻率下,提供的性能超過 1200 DMIPS,是尺寸最小、功耗最低的 ARM 多核處理器。

      ? 多核技術(shù):Cortex-A15、Cortex-A5和Cortex-A9 處理器都支持 ARM 第二代多核技術(shù)。? 高級(jí)擴(kuò)展

      ? Thumb-2,提供最佳代碼大小和性能。? TrustZone,安全擴(kuò)展,提供可信計(jì)算。

      ? Jazelle 技術(shù),提高執(zhí)行環(huán)境(如 Java、.Net、MSIL、Python 和 Perl)速度。

      (8)Cortex-R系列微處理器

      ? 為具有嚴(yán)格的實(shí)時(shí)響應(yīng)限制的深層嵌入式系統(tǒng)提供高性能計(jì)算解決方案。

      ? 快速。以高時(shí)鐘頻率獲得高處理性能。

      ? 確定性。處理在所有場(chǎng)合都必須符合硬實(shí)時(shí)限制。? 安全。系統(tǒng)必須可靠且可信。

      ? 成本效益。在處理器及其內(nèi)存系統(tǒng)中都具有競(jìng)爭(zhēng)力的成本和功耗。? 應(yīng)用領(lǐng)域

      ? 智能手機(jī)

      ? 企業(yè)系統(tǒng):硬盤驅(qū)動(dòng)器、聯(lián)網(wǎng)和打印 ? 消費(fèi)電子:機(jī)頂盒、數(shù)字電視和播放器 ? 醫(yī)療行業(yè)、工業(yè)和汽車行業(yè)的可靠系統(tǒng) ? 功能集

      (9)Cortex-M系列微處理器

      ? 向上兼容的高能效、易于使用的處理器

      ? 針對(duì)成本和功耗敏感的 MCU 和終端應(yīng)用的混合信號(hào)設(shè)備進(jìn)行過優(yōu)化。? 更低的功耗,更長(zhǎng)的電池壽命。

      ? 高密度指令集,更小的代碼,更低的硅成本。

      RISC 處理器內(nèi)核高性能32 位CPU具有確定性的運(yùn)算低延遲3 階段管道Thumb-2 技術(shù)16/32 位指令的最佳混合小于8 位設(shè)備3 倍的代碼大小對(duì)性能沒有負(fù)面影響低功耗模式集成的睡眠狀態(tài)支持多電源域基于架構(gòu)的軟件控制嵌套矢量中斷控制器(NVIC)低延遲、低抖動(dòng)中斷響應(yīng)不需要匯編編程以純C 語(yǔ)言編寫的中斷服務(wù)例程工具和RTOS 支持廣泛的第三方工具支持Cortex 微控制器軟件接口標(biāo)準(zhǔn)(CMSIS)最大限度地增加軟件成果重用CoreSight調(diào)試和跟蹤JTAG 或2 針串行線調(diào)試(SWD)連接支持多處理器支持實(shí)時(shí)跟蹤(10)SecurCore系列微處理器

      ? 為安全要求較高應(yīng)用設(shè)計(jì)。智能卡

      ? SIM、ID、銀行業(yè)、付費(fèi)電視、公共交通、電子政務(wù)

      2.4 ARM處理器模式

      (1)32位ARM處理器工作狀態(tài)

      32位ARM處理器有三種工作狀態(tài) ? ARM狀態(tài)。對(duì)應(yīng)32位ARM指令集 ? Thumb狀態(tài)。對(duì)應(yīng)16位Thumb指令集 ? Jazelle狀態(tài)。對(duì)應(yīng)8位的Jazelle指令集

      用于在處理器指令層次對(duì)JAVA加速

      只有進(jìn)入特定的狀態(tài),相應(yīng)的指令集才有效。CPSR的J(Jazelle)和T(Thumb)位反映程序的狀態(tài)。Thumb-2 ? 與現(xiàn)有 ARM 和 Thumb 解決方案向后兼容,同時(shí)擴(kuò)展了 Thumb 指令集的可用功能; ? 使用少于 31% 的內(nèi)存以降低系統(tǒng)成本; ? 提供比現(xiàn)有高密度代碼高出 38% 的性能。(2)64位ARM處理器工作狀態(tài)

      ARMv8架構(gòu)

      兩種主要執(zhí)行狀態(tài):AArch64, AArch32 AArch64:引入了一套新的指令集“A64”專門用于64位處理 AArch32:兼容現(xiàn)有的32位ARM指令集 ARMv8架構(gòu)支持三個(gè)主要指令集

      A32(或 ARM):32 位固定長(zhǎng)度指令集

      T32(Thumb):以 16 位固定長(zhǎng)度指令集的形式引入,在引入 Thumb-2 技術(shù)時(shí)增強(qiáng)為 16 位和 32 位混合長(zhǎng)度

      A64:提供與 ARM 和 Thumb 指令集類似功能的64位固定長(zhǎng)度指令集(3)ARM處理器運(yùn)行模式

      ? 用戶模式(usr):ARM處理器正常的程序執(zhí)行狀態(tài)。? 快速中斷模式(fiq):用于高速數(shù)據(jù)傳輸或通道處理 ? 外部中斷模式(irq):用于通用的中斷處理。? 管理模式(svc):操作系統(tǒng)使用的保護(hù)模式。

      ? 數(shù)據(jù)訪問終止模式(abt):當(dāng)數(shù)據(jù)或指令預(yù)取終止時(shí)進(jìn)入該模式,可用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù)。

      ? 系統(tǒng)模式(sys):運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù)。

      ? 未定義指令中止模式(und):當(dāng)未定義的指令執(zhí)行時(shí)進(jìn)入該模式,可用于支持硬件協(xié)處理器的軟件仿真。

      運(yùn)行模式可通過軟件改變,也可通過外部中斷或異常處理改變。用戶模式之外的模式稱為非用戶模式或特權(quán)模式。除用戶模式和系統(tǒng)模式之外的5種稱為異常模式,常用于處理中斷和異常、訪問受保護(hù)的系統(tǒng)資源等情況。

      2.5 ARM體系的異常處理

      (1)ARM體系中3種控制程序執(zhí)行流程的方式: ? 順序執(zhí)行 ? 跳轉(zhuǎn)分支指令

      ? 異常中斷:處理器暫時(shí)中斷當(dāng)前數(shù)據(jù)流的現(xiàn)象。(2)對(duì)異常的響應(yīng)。ARM處理器執(zhí)行完當(dāng)前指令后: ? 進(jìn)入與特定的異常相應(yīng)的操作模式;

      ? 將引起異常指令的下一條指令的地址保存到新模式的R14中;

      ? 將CSPR原值保存到新模式的SPSR中;

      ? 通過設(shè)置CSPR的第7位來(lái)禁止IRQ。如果為FIQ中斷,則還要設(shè)置CSPR的第6位來(lái)禁止FIQ;

      ? 給PC強(qiáng)制賦向量地址值。(3)中斷向量表

      指定了異常中斷及其處理程序的對(duì)應(yīng)關(guān)系,它通常存放在存儲(chǔ)地址的低端。

      大小為32字節(jié),其中每個(gè)異常中斷占據(jù)4字節(jié)空間,用于存放一個(gè)跳轉(zhuǎn)指令或者一個(gè)向PC寄存器中賦值的指令。

      (4)異常優(yōu)先級(jí):當(dāng)幾個(gè)異常中斷同時(shí)發(fā)生時(shí),就必須按照一定的次序來(lái)處理這些異常中斷。(5)從異常返回

      將連接寄存器LR的值減去相應(yīng)偏移量后送到PC中; 將SPSR復(fù)制回CPSR中;

      若在進(jìn)入異常處理時(shí)設(shè)置了中斷禁止位,則要清除。通過普通指令控制PC返回

      軟件中斷的返回指令 MOVS R15, R14;將鏈接寄存器內(nèi)容移入PC并轉(zhuǎn)換模式 IRQ,F(xiàn)IQ和預(yù)取異常終止中斷的返回指令 SUBS R15, R14, #4 數(shù)據(jù)終止異常的返回指令 SUBS R15, R14, #8;異常在導(dǎo)致異常的指令的下一條指令后產(chǎn)生

      2.6 ARM內(nèi)部寄存器

      (1)寄存器結(jié)構(gòu)

      32位ARM有31個(gè)32位通用寄存器,6個(gè)狀態(tài)寄存器。通用寄存器可用來(lái)保存數(shù)據(jù)和地址信息,用R為前綴加寄存器序號(hào)表示

      15個(gè)通用寄存器(R0~R14)、一個(gè)或兩個(gè)狀態(tài)寄存器及程序計(jì)數(shù)器可在任意時(shí)間和處理器模式下被訪問,有些處理器模式擁有自身獨(dú)立的寄存器

      (2)通用寄存器

      分成三類:

      R0~R7:未分組寄存器。每個(gè)未分組寄存器在所有的處理器模式下都表示同一個(gè)物理寄存器。R8~R14:分組寄存器。每個(gè)分組寄存器與一個(gè)用戶模式的寄存器對(duì)應(yīng)。R15:程序計(jì)數(shù)器PC。

      分組寄存器R8~R14可分為兩組:

      R8~R12:每個(gè)寄存器對(duì)應(yīng)兩組不同的物理寄存器,一組是FIQ模式下的,記為R8_fiq~R12_fiq, 另一組是除FIQ模式外的:R8_usr~R12_usr。

      R13~R14:分別對(duì)應(yīng)6個(gè)不同的物理寄存器。用戶模式和系統(tǒng)模式共用一個(gè)寄存器,另外5個(gè)對(duì)應(yīng)其余5種。

      R13 _ R14 _

      可以是以下幾種模式之一:usr、svc、abt、und、irq和fiq。

      R13:被稱為堆棧指針SP,但沒有任何指令強(qiáng)制性使用R13作為堆棧指針

      R14又被稱為鏈接寄存器LR(Link Register)。當(dāng)調(diào)用子程序時(shí),返回地址被自動(dòng)保存到R14。由于ARM采用了多級(jí)流水線技術(shù),所以當(dāng)正常讀取PC值時(shí),該值為當(dāng)前指令地址值加8,或是加12。

      2.7 ARM體系的存儲(chǔ)系統(tǒng)

      (1)地址空間

      將存儲(chǔ)器看作是從零地址開始的字節(jié)的線性組合 0-3字節(jié):第1個(gè)存儲(chǔ)的字?jǐn)?shù)據(jù) 4-7字節(jié):第1個(gè)存儲(chǔ)的字?jǐn)?shù)據(jù) 依次排列(2)存儲(chǔ)器格式 大端格式

      小端格式

      (3)存儲(chǔ)器訪問對(duì)準(zhǔn)

      無(wú)論取指還是內(nèi)存訪問都以字、半字或字節(jié)對(duì)準(zhǔn)訪問 a)非對(duì)齊的指令預(yù)取操作

      ARM狀態(tài):將一個(gè)非對(duì)齊地址寫入PC,數(shù)據(jù)的第0位和第1位被忽略,PC的bit[1:0]為0 Thumb狀態(tài):數(shù)據(jù)的第0位被忽略,PC的bit[0]為0 b)非對(duì)齊地址內(nèi)存的訪問操作(LOAD/STORE操作)

      執(zhí)行結(jié)果不可預(yù)知

      忽略字單元地址低兩位的值,半字單元最低位的值(分別對(duì)應(yīng)訪問字和半字)

      在LDR和SWP指令中,對(duì)存儲(chǔ)器訪問忽略造成地址不對(duì)齊的低地址位,然后使用這些低地址位控制裝載數(shù)據(jù)的循環(huán) ARM指令系統(tǒng)及程序設(shè)計(jì)基礎(chǔ)

      教學(xué)目的:使學(xué)生對(duì)ARM指令系統(tǒng)及程序設(shè)計(jì)的基礎(chǔ)知識(shí)有一定的了解。教學(xué)重點(diǎn):ARM指令系統(tǒng)。

      教學(xué)難點(diǎn):ARM程序設(shè)計(jì)的基礎(chǔ)知識(shí)。教學(xué)方法與教學(xué)手段:課堂講授,多媒體教學(xué)。教學(xué)時(shí)間:4課時(shí)。教學(xué)內(nèi)容

      3.1 ARM尋址方式

      (1)尋址方式

      處理器根據(jù)指令中給出的地址信息尋找物理地址的方式。尋找操作數(shù)或操作數(shù)地址的方式。

      (2)立即尋址

      也叫立即數(shù)尋址,操作數(shù)本身在指令中給出,該操作數(shù)被稱為立即數(shù)。例如: ADD R0, R0, #1;R0?R0+1 立即數(shù)須以“#”為前綴,對(duì)于十六進(jìn)制表示的立即數(shù),還需在“#”后加上“0x”或“&”。(3)寄存器尋址

      操作數(shù)存在寄存器中。例如: ADD R0, R1, R2;R0?R1+R2(4)寄存器間接尋址

      以寄存器的值作為操作數(shù)地址。例如: ADD R0, R1, [R2]

      ;R0 ? R1+[R2](5)基址變址尋址

      a)基址加偏移的尋址方式

      將寄存器內(nèi)容與指令中給出的地址偏移量相加,得到操作數(shù)的有效地址。如: LDR R0, [R1, #4];R0 ? [R1+4]

      前變址:基址加變址作為操作數(shù)地址。

      后變址:基址作為操作數(shù)的地址,傳送后自動(dòng)更新基址寄存器的值。

      b)基址加索引的尋址方式

      將基址寄存器的值與索引寄存器的值相加,形成操作數(shù)的有效地址。例如: LDR R0, [R1, R2]

      ;R0 ? [R1+R2] c)多寄存器尋址

      一條指令可完成多個(gè)(最多16個(gè))寄存器值的傳送。例如:

      LDMIA R0, {R1, R2, R4};R1 ? [R0] 22

      ;R2 ? [R0+4];R4 ? [R0+8](6)寄存器移位尋址

      操作數(shù)為寄存器中數(shù)做相應(yīng)的移位而得到 例如:

      ARM中的移位或循環(huán)移位操作: ? LSL:邏輯左移(Logical Shift Left)? LSR:邏輯右移(Logical Shift Right)ADD

      R0, R1, R2, LSL #3;R0?R1+8×R2 ? ASR:算術(shù)右移(Arithmetic Shift Right)。移位過程中保持符號(hào)位不變,若源操作數(shù)為正數(shù),則字的高端空出的位補(bǔ)0。若源操作數(shù)為負(fù)數(shù),則字的高端空出的位補(bǔ)1。

      ? ROR:循環(huán)右移(Rotate Right)。從字的最低端移出的位依次填入字的高端空出的位。? RRX:擴(kuò)展的循環(huán)右移(Rotate Right Extended)。操作數(shù)向右移一位,左側(cè)空位由狀態(tài)寄存器C位填充。當(dāng)移位的類型為RRX時(shí),無(wú)需指定移位的位數(shù),其它的則須指定移位的位數(shù)。(7)相對(duì)尋址

      以PC當(dāng)前值作為基地址,指令中的地址標(biāo)號(hào)作為位移量,兩者相加后得到操作數(shù)的有效地址。例如:

      BL

      NEXT

      MOV ??

      PC, LR

      ;從子程序返回 NEXT

      ;跳轉(zhuǎn)至子程序 NEXT ??

      (8)堆棧尋址

      a)堆棧:按先進(jìn)后出(FILO)的方式工作,使用堆棧指針(Stack Pointer, SP)指示當(dāng)前操作位置。b)根據(jù)棧指針的指向位置可將堆棧分為

      ? 滿堆棧:SP指向最后壓入堆棧的數(shù)據(jù)。? 空堆棧:SP指向下個(gè)將放入數(shù)據(jù)空位置

      c)根據(jù)堆棧的生成方式可將堆棧分為

      ? 遞增堆棧(Ascending Stack):堆棧由低地址向高地址生成。

      ? 遞減堆棧(Descending Stack):由高地址向低地址生成。d)ARM支持四種類型堆棧工作方式

      滿遞增堆棧:SP指向最后壓入的數(shù)據(jù),且由低地址向高地址生成。滿遞減堆棧:SP指向最后壓入的數(shù)據(jù),且由高地址向低地址生產(chǎn)。

      空遞增堆棧:SP指向下個(gè)將放入數(shù)據(jù)的空位置,且由低地址向高地址生成??者f減堆棧:SP指向下個(gè)將要放入數(shù)據(jù)的空位置,且由高地址向低地址生成。

      3.2 ARM指令集

      (1)ARM指令集分類 加載/存儲(chǔ)指令

      數(shù)據(jù)處理指令 分支指令

      狀態(tài)寄存器訪問指令 異常/中斷指令 協(xié)處理器指令(2)ARM指令的特點(diǎn) 所有指令都是32bit;

      大多數(shù)指令都在單周期內(nèi)完成; 所有指令都可以條件執(zhí)行; load/store體系結(jié)構(gòu);

      指令集可以通過協(xié)處理器擴(kuò)展。(3)ARM指令的格式

      (4)ARM指令的條件執(zhí)行

      所有ARM指令都可包含一個(gè)可選的條件碼,只有當(dāng)CPSR中條件標(biāo)志位滿足指定條件時(shí),指令才會(huì)被執(zhí)行。否則以NOP指令通過流水線。

      (5)加載/存儲(chǔ)指令

      Load:將內(nèi)存中數(shù)據(jù)裝載到寄存器 Store:將寄存器中的數(shù)據(jù)存入內(nèi)存 a)單寄存器傳輸指令

      {} {B} Rd, addressing1 {} SB | H | SH Rd, addressing2 {} {B} Rd, LABEL LDR/STR指令:寄存器在前,地址在后 LDM/STM指令:地址在前,寄存器在后

      LABEL:相對(duì)PC的尋址方式。編譯器在匯編時(shí),會(huì)將標(biāo)號(hào)LABEL匯編成PC的偏移量存入該指令的立即數(shù)字段。

      B: Byte;S: Sign;H: Half LDR/STR:讀/寫一個(gè)32bit字到/從一個(gè)32位寄存器,要求讀/寫地址字對(duì)齊。LDRB:內(nèi)存8bit字節(jié)?32bit寄存器;不要求地址對(duì)齊,寄存器高24位清零。STRB:寄存器低8位?內(nèi)存的某個(gè)地址;不要求地址對(duì)齊。

      LDRH:16bit半字? 32bit寄存器;要求地址半字對(duì)齊,寄存器的高16bit清零。STRH:寄存器低16bit?內(nèi)存;要求地址半字對(duì)齊。

      LDRSH:有符號(hào)16bit半字?32bit寄存器中;要求地址半字對(duì)齊,寄存器高16bit根據(jù)符號(hào)位擴(kuò)展。

      LDRSB:有符號(hào)8bit字節(jié)?32bit寄存器中;不要求地址對(duì)齊,寄存器高24bit根據(jù)符號(hào)位擴(kuò)展。

      “數(shù)據(jù)”一列指的是這條指令所訪問的存儲(chǔ)單元

      “基址寄存器”一列的內(nèi)容是指執(zhí)行指令之后“基址寄存器”的內(nèi)容 b)多寄存器傳輸指令

      {} <尋址模式> Rn{!}, {^} LDM / STM:從由基址寄存器指示的一片連續(xù)存儲(chǔ)器到寄存器列表所指示的多個(gè)寄存器之間傳送數(shù)據(jù)。

      !:表示執(zhí)行完操作后將變化之后的地址值寫入基址寄存器

      ^:對(duì)于LDM操作,如恢復(fù)的寄存器中含有PC(R15)寄存器,則指令執(zhí)行的同時(shí)CPU自動(dòng)將SPSR拷貝到CPSR中,例如:

      LDMFD {R0-R12, LR, PC}^ 數(shù)據(jù)的傳送發(fā)生在User用戶模式下的寄存器,而非當(dāng)前模式寄存器,例如:

      LDMDB SP, {R0-LR}^ 例如:

      STMIA R0!, {R1-R5};以R0為地址指針,將R1-R5保存到內(nèi)存,指針向上移動(dòng)

      c)交換指令

      SWP {B} {} Rd, Rm, [Rn] SWP:字交換;SWPB:字節(jié)交換 Rd ? [Rn], [Rn] ? Rm 例如:

      SWP R1, R2, [R3];R1?[R3] ,[R3]? R2 SWP R1, R1, [R2];R1與[R2]內(nèi)容互換(6)數(shù)據(jù)處理指令

      a)數(shù)據(jù)傳送指令

      MOV {cond} {S} Rd, Operand 例如: MOV R1, R0 MOVEQ PC, R14

      ;將R14值傳到PC b)數(shù)據(jù)取反傳送指令 MVN {cond} {S} Rd, Operand 例如:

      MVN R1, #2;將立即數(shù)2取反送至R1 c)算術(shù)運(yùn)算指令

      ADD、ADC ADD|ADC {cond} {S} Rd, Oper1, Oper2 例如: ADDS ADCS ADCS ADC R0, R4, R8 R1, R5, R9;加低端的字;帶進(jìn)位加第二字

      R2, R6, R10;帶進(jìn)位加第三字 R3, R7, R11;帶進(jìn)位加第四字

      可實(shí)現(xiàn) 128位加法 SUB:減法指令

      SUB {cond} {S} Rd, Oper1, Oper2 SBC:帶借位減法指令

      SBC {cond} {S} Rd, Oper1, Oper2 例:SBCS R0, R1, R2;R0=R1–R2–C RSB:反向減法指令

      RSB {cond} {S} Rd, Oper1, Oper2 操作數(shù)2減去操作數(shù)1,例如: RSB R0, R1, R2;R0 = R2 – R1 RSC:帶借位的逆向減法指令 RSC {cond} {S} Rd, Oper1, Oper2 d)邏輯運(yùn)算指令 AND:與

      AND {cond} {S} Rd, Oper1, Oper2 ORR:或

      ORR {cond} {S} Rd, Oper1, Oper2 EOR:異或

      EOR {cond} {S} Rd, Oper1, Oper2 e)比較指令 CMP CMP {cond} Operand1, Operand2 CMN:反值比較 CMN {cond} Operand1, Operand2 將第一個(gè)數(shù)與第二個(gè)數(shù)的反值進(jìn)行比較,相當(dāng)于完成兩個(gè)數(shù)相加。例如: CMN R1, R0;R1+R0,并設(shè)置CPSR f)測(cè)試指令 TST TST {cond} Operand1, Operand2

      把兩個(gè)操作數(shù)按位進(jìn)行與運(yùn)算,根據(jù)結(jié)果更新CPSR。

      TEQ TEQ {cond} Operand1, Operand2 把兩個(gè)操作數(shù)按位進(jìn)行異或運(yùn)算,根據(jù)結(jié)果更新CPSR g)乘法指令 MUL MUL {cond} {S} Rd, Oper1, Oper2 Rd?Operand1×Operand2。例如: MUL

      R0, R1, R2 MLA MLA {cond} {S} Rd,Oper1,Oper2,Oper3 Rd?Operand1×Operand2+Operand3 例如:

      MLA R0, R1, R2, R3;R0 = R1×R2+R3;R0 =R1×R2 UMULL:64位無(wú)符號(hào)數(shù)乘法指令 UMULL {cond} {S} Rd_L, Rd_H, Operand1, Operand2 Rd_H:Rd_L? Operand1×Operand2 例如: UMULL R0, R1, R2, R3;R0 =(R2×R3)的低32位;R1 =(R2×R3)的高32位 UMLAL: 64位無(wú)符號(hào)數(shù)乘加指令 UMLAL {cond} {S} Rd_L, Rd_H, Operand1, Operand2 Rd_H:Rd_L+= Operand1×Operand2 例如:

      UMLAL

      R0, R1, R2, R3;R0 =(R2×R3)的低32位+R0;R1 =(R2×R3)的高32位+R1 SMULL:64位有符號(hào)數(shù)乘法指令 SMULL {cond} {S} Rn_L, Rn_H, Operand1, Operand2 Rd_H:Rd_L? Operand1×Operand2 SMLAL: 64位有符號(hào)數(shù)乘加指令 SMLAL {cond} {S} Rn_L, Rn_H, Operand1, Operand2 Rd_H:Rd_L+= Operand1×Operand2(7)分支指令

      a)B(分支指令)和 BL(帶鏈接分支指令)B {cond} LABEL BL {cond} LABEL

      允許向前或向后跳轉(zhuǎn)最高32MB。

      BL:帶返回的分支指令,用于調(diào)用一個(gè)將其返回地址存入鏈接寄存器的函數(shù)。例如:

      SUBPRG BL …… SUBPRG ??;<子程序代碼> MOV PC, LR;返回

      b)BX(分支并可選地交換指令集)和BLX(帶鏈接分支并可選地交換指令集)BX {cond} Rm BLX {cond} LABEL | Rm Rm:轉(zhuǎn)移地址,bit[0]為0時(shí),目標(biāo)地址處為ARM指令,否則為Thumb指令。BX 和 BLX是唯一可使用的切換指令集的方法。

      BX 和 BLX指令執(zhí)行與B和BL指令相同的分支操作,并可從ARM指令集切換到THUMB指令集。

      c)長(zhǎng)跳轉(zhuǎn)

      通過向PC寄存器中寫目標(biāo)地址值,可實(shí)現(xiàn)在4GB地址空間中進(jìn)行任意跳轉(zhuǎn)。例如: MOV MOV LR, PC;保存返回地址

      R15, #0x00110000;無(wú)條件轉(zhuǎn)向0x110000(8)狀態(tài)寄存器訪問指令 a)MRS MRS {} Rd, 將狀態(tài)寄存器的內(nèi)容傳送到通用寄存器中。例如: MRS b)MSR MSR {} _, Rm MSR {} _,# 表示下列情況之一: c:控制域,即PSR[7:0] PSR[32:24] CPSR|SPSR ? 通用寄存器。例如: MSR CPSR_F, #&F00000000

      R3, CPSR;CPSR?R3

      x:擴(kuò)展域,即PSR[15:8] s:狀態(tài)域,即PSR[23:16] f:標(biāo)志域,即

      ;設(shè)置所有標(biāo)志位

      (9)異常/中斷指令(續(xù))a)SWI SWI {} <24位立即數(shù)> 產(chǎn)生SWI異常中斷,以實(shí)現(xiàn)在用戶模式下調(diào)用操作系統(tǒng)的監(jiān)控功能程序。它將處理器置于管理(SVC)模式。例如:

      SWI 0x01

      ;調(diào)用編號(hào)為01的系統(tǒng)例程

      b)BKPT BKPT <16位立即數(shù)> 產(chǎn)生軟件斷點(diǎn)中斷,可用于程序調(diào)試。例如 BKPT 0xF010(10)協(xié)處理器指令 a)CDP CDP {} , , CRd, CRn, CRm {,} 編號(hào)為CP#的協(xié)處理器接受指令并執(zhí)行。具體操作由Cop1和Cop2定義,CRn和CRm為源操作數(shù),結(jié)果?CRd。例如:

      CDP P6, 2, C5, C10, C3, 16

      ;激活協(xié)處理器P6的操作,操作碼1和操作碼2值分別為2和16,目標(biāo)寄存器為C5,源操作數(shù)寄存器為C10和C3 b)MRC和MRC MRC | MCR {} , , CRd, CRn, CRm {,} 在ARM與協(xié)處理器寄存器間傳送數(shù)據(jù)。MRC:ARM寄存器?協(xié)處理器寄存器 MCR:協(xié)處理器寄存器?ARM寄存器 例如: MCR P3, 3, R0, C4, C5, 6;ARM處理器R0?協(xié)處理器P3的寄存器C4和C5 c)LDC和STC 在協(xié)處理器寄存器與存儲(chǔ)器間傳送數(shù)據(jù) LDC:協(xié)處理器寄存器?存儲(chǔ)器

      STC:存儲(chǔ)器?協(xié)處理器寄存器 前變址格式

      LDC | STC {} {L} , CRd, [Rn, ]{!} 后變址格式

      LDC | STC {} {L} , CRd, Rn, 3.3 Thumb指令集

      (1)Thumb指令集的特點(diǎn)

      ? 是ARM指令集壓縮形式的子集,所有Thumb指令均有對(duì)應(yīng)的ARM指令。? 采用16位二進(jìn)制編碼,代碼密度小。

      ? 執(zhí)行Thumb指令時(shí),先動(dòng)態(tài)解壓縮,然后作為標(biāo)準(zhǔn)的ARM指令執(zhí)行。? 如何區(qū)分指令流取決于CPSR的位T。? 大多Thumb數(shù)據(jù)處理指令采用2地址格式。? 移位操作變成單獨(dú)指令。

      ? 沒有協(xié)處理器指令、單寄存器交換指令、乘加指令、64位乘法指令及程序寄存器處理指令。? 僅分支指令B有條件執(zhí)行功能。

      (2)Thumb狀態(tài)切換

      a)ARM狀態(tài)進(jìn)入Thumb狀態(tài) 執(zhí)行帶狀態(tài)切換的轉(zhuǎn)移指令BX。例如: BX R0;若R0最低位為1,則轉(zhuǎn)Thumb狀態(tài)

      異常返回。通常用于返回到進(jìn)入異常前所執(zhí)行的指令流,而不是特地用于切換到Thumb模式。適用于異常前執(zhí)行的是Thumb指令。

      b)Thumb 狀態(tài)進(jìn)入ARM狀態(tài) 執(zhí)行BX指令。

      利用異常進(jìn)入ARM指令流。(3)Thumb指令寄存器的使用 ? 對(duì)R0~R7具有全部訪問權(quán)限。

      ? R8~R12的訪問受到限制,只能通過MOV、ADD和CMP訪問。

      ? 在每一種特權(quán)模式下都有一組SP、LR和SPSR,分別對(duì)應(yīng)ARM狀態(tài)的R13、R14和R15。(4)Thumb指令與ARM指令的相似點(diǎn) ? Load/Store結(jié)構(gòu)。

      ? 支持8位字節(jié)、16位半字和32位字?jǐn)?shù)據(jù)類型。? 半字以2字節(jié)邊界對(duì)準(zhǔn),字以4字節(jié)邊界對(duì)準(zhǔn)。(5)Thumb指令與ARM指令差異點(diǎn)

      ? 跳轉(zhuǎn)指令:條件跳轉(zhuǎn)在范圍上有更多的限制,轉(zhuǎn)向子程序只具有無(wú)條件轉(zhuǎn)移。

      ? 數(shù)據(jù)處理指令:對(duì)通用寄存器進(jìn)行操作,操作結(jié)果需放入其中一個(gè)操作數(shù)寄存器。因此,許多Thumb指令采用2地址格式,ARM數(shù)據(jù)處理指令大多采用3地址格式。? 單寄存器加載和存儲(chǔ)指令:只能訪問R0~R7。

      ? PUSH和POP指令使用堆棧指針R13作為基址實(shí)現(xiàn)滿遞減堆棧,除R0~R7外,PUSH指令還可存儲(chǔ)R14,POP指令可加載程序指令PC。

      ? 大多數(shù)Thumb指令是無(wú)條件執(zhí)行的,所有ARM指令都是條件執(zhí)行的。? 由于采用高密度編碼,Thumb指令格式?jīng)]有ARM指令格式規(guī)則。(6)Thumb分支指令

      a)B 指令——目標(biāo)為Thumb代碼 B <條件碼>

      B指令是Thumb指令集中唯一可條件執(zhí)行的指令。PC = PC +(SignExtend(signed_immed_8)<< 1)B

      3.4 3.5 35

      3.6 嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)過程

      (1)嵌入式軟件開發(fā)的特點(diǎn) a)需要交叉開發(fā)環(huán)境

      ? 交叉開發(fā)環(huán)境:實(shí)現(xiàn)編譯、鏈接和調(diào)試應(yīng)用程序代碼的環(huán)境,它分散在有通信連接的宿主機(jī)與目標(biāo)環(huán)境之中。

      ? 宿主機(jī)(Host)是一臺(tái)通用計(jì)算機(jī),一般是PC機(jī)。

      ? 目標(biāo)機(jī)(Target)可以是嵌入式應(yīng)用軟件的實(shí)際運(yùn)行環(huán)境,也可以是能替代實(shí)際環(huán)境的仿真系統(tǒng)。

      ? 交叉軟件開發(fā)工具包括:交叉編譯器、交叉調(diào)試器和模擬軟件等。b)引入任務(wù)設(shè)計(jì)方法

      ? 嵌入式應(yīng)用系統(tǒng)以任務(wù)為基本執(zhí)行單元 ? 用多個(gè)并發(fā)的任務(wù)代替通用軟件的多個(gè)模塊 c)需要固化程序 d)軟件開發(fā)難度大

      ? 實(shí)時(shí)性。

      ? 穩(wěn)定性、可靠性、抗干擾性。(2)軟硬件平臺(tái)的選擇 選擇處理器需考慮的因素 ? 處理性能 ? 技術(shù)指標(biāo)、功耗

      ? 軟件支持工具、是否內(nèi)置調(diào)試工具 ? 供應(yīng)商是否提供評(píng)估板 軟件平臺(tái)的選擇

      ? 操作系統(tǒng)。開發(fā)工具,與硬件接口難度,內(nèi)存,是否提供硬件驅(qū)動(dòng)程序,可裁剪性、實(shí)時(shí)性等

      ? 編程語(yǔ)言。通用性、可移植性、執(zhí)行效率、可維護(hù)性等 ? 集成開發(fā)環(huán)境

      (3)嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)流程 ? 需求分析 ? 體系結(jié)構(gòu)設(shè)計(jì)

      ? 硬件的設(shè)計(jì)、制作及測(cè)試 ? 軟件的設(shè)計(jì)、實(shí)現(xiàn)及測(cè)試 ? 系統(tǒng)集成

      ? 系統(tǒng)性能測(cè)試及可靠性測(cè)試

      STM32微控制器

      教學(xué)目的:使學(xué)生對(duì)STM32的性能指標(biāo)、硬件結(jié)構(gòu)有一定的了解。教學(xué)重點(diǎn):STM32的硬件結(jié)構(gòu)。教學(xué)難點(diǎn):STM32的硬件結(jié)構(gòu)。

      教學(xué)方法與教學(xué)手段:課堂講授,多媒體教學(xué)。教學(xué)時(shí)間:4課時(shí)。教學(xué)內(nèi)容

      4.1 STM32微控制器的性能指標(biāo)

      (1)STM32F103的主要功能

      ? ARM Cortex-M3核 ? 最高主頻72MHz ? 512kB Flash、64kB RAM ? 1個(gè)USB、1個(gè)CAN、5個(gè)USART、3個(gè)SPI、2個(gè)I2C、2個(gè)I2S、1個(gè)SDIO、112個(gè)GPIO

      ? 3個(gè)ADC、2個(gè)DAC、8個(gè)定時(shí)器

      ? FSMC總線(支持NOR,NAND,SRAM)? 12通道DMA控制器

      ? Serial wire debug(SWD)、JTAG 接口 ? 啟動(dòng):用戶Flash、系統(tǒng)存儲(chǔ)器、SRAM(2)JC-STM32CB核心板

      ? 核心芯片:ST STM32F103ZET6 ? 8M NOR Flash:SST39VF6401,16bit ? 128M NAND Flash:K9F1G08U0C,8bit ? 8MHz CPU晶振,32768Hz RTC晶振 ? 1個(gè)10M/100M以太網(wǎng)接口 ? 1路音頻輸出和1路音頻輸入 ? 1個(gè)10-pin JTAG調(diào)試接口 ? 1個(gè)4-pin SWD串行調(diào)試接口 ? Reset按鈕、自定義LED,電源LED ? 1個(gè)精密可調(diào)電阻連接到片內(nèi)ADC輸入

      ? 使用CPLD擴(kuò)展IO口及地址譯碼,型號(hào)EPM240T100C5N ? 板載10/100M網(wǎng)卡控制器,型號(hào)DM9000AEP,16bit總線接口

      STM32

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

      廣西工學(xué)院鹿山學(xué)院

      實(shí) 驗(yàn) 報(bào) 告

      課程名稱: 嵌入式系統(tǒng)

      指導(dǎo)教師: 劉瑞琪 班 級(jí): 自動(dòng)化101 姓 名: 楊杰 學(xué) 號(hào): 20102787 成績(jī)?cè)u(píng)定: 指導(dǎo)教師簽字:

      2013年5月25日

      實(shí)驗(yàn)一

      簡(jiǎn)單的程序

      一 實(shí)驗(yàn)?zāi)康模?、?dòng)手實(shí)踐一個(gè)簡(jiǎn)單的字符型設(shè)備驅(qū)動(dòng)程序。、學(xué)習(xí)Linux 驅(qū)動(dòng)程序構(gòu)架。、學(xué)習(xí)在應(yīng)用程序中調(diào)用驅(qū)動(dòng)。

      二 實(shí)驗(yàn)內(nèi)容:

      編寫簡(jiǎn)單的字符型設(shè)備驅(qū)動(dòng)程序。編寫相應(yīng)的應(yīng)用程序。

      三 實(shí)驗(yàn)設(shè)備:、一套S3C2410RP 嵌入式實(shí)驗(yàn)箱。、安裝Redhat9的宿主PC機(jī),并且配置好 ARM Linux 的開發(fā)環(huán)境。

      四 實(shí)驗(yàn)步驟

      實(shí)驗(yàn)二 CPU GPIO 驅(qū)動(dòng)程序及測(cè)試程序

      一、實(shí)驗(yàn)?zāi)康模?/p>

      編寫第一個(gè)針對(duì)實(shí)際硬件的驅(qū)動(dòng)程序,進(jìn)一步了解驅(qū)動(dòng)程序構(gòu)架。

      二、實(shí)驗(yàn)內(nèi)容:、編寫S3C2410 GPIO驅(qū)動(dòng)程序。、編寫S3C2410 GPIO應(yīng)用程序。、在 LINUX系統(tǒng)中插入自己的驅(qū)動(dòng)程序,調(diào)用它。實(shí)現(xiàn)用 CPU GPIO 控制外部LED,利用S3C2410 核心板上的 LED 驗(yàn)證我們的工作。

      三、實(shí)驗(yàn)設(shè)備、一套S3C2410RP 嵌入式實(shí)驗(yàn)箱。、安裝Redhat9的宿主PC機(jī),并且配置好 ARM Linux 的開發(fā)環(huán)境。

      四、實(shí)驗(yàn)步驟

      1、復(fù)制Experiment_KeyHello_driverapl_test文件下的simple_test_driver.c文件到Experiment_KeyGPIO文件夾下,將文件名更改為test.c。

      2、打開test.c,在else語(yǔ)句后更改函數(shù)語(yǔ)句如下:

      3、復(fù)制Experiment_KeyADapl_test文件夾下的Makefile到Experiment_KeyGPIO文件夾下,打開并將中的ADC刪除。

      4、打開Experiment_KeyGPIOdriver文件下的gpio_led.c文件。

      5、在ssize_t SIMPLE_GPIO_LED_ioctl函數(shù)下添加如下語(yǔ)句:

      if(cmd==0)GPBDAT &= ~(0xf<<5);

      if(cmd==1)GPBDAT |=(0xf<<5);如下圖所示:

      6、在int __init HW_GPIO_LED_CTL_init函數(shù)下屏蔽for循環(huán),如下圖所示:

      保存并關(guān)閉。

      7、打開終端,并編譯test.c文件和gpio_led.c文件。

      8、重新打開一個(gè)終端,并按步驟輸入如下語(yǔ)句:

      9、依次輸入如下語(yǔ)句:

      1、cd..2、ls

      3、mknod /dev/hello_ctl c 97 1

      4、./test

      實(shí)驗(yàn)三 中斷實(shí)驗(yàn)及LED顯示

      一、實(shí)驗(yàn)?zāi)康模?/p>

      學(xué)習(xí)Linux 系統(tǒng)是如何處理中斷。

      二、實(shí)驗(yàn)內(nèi)容:

      編寫獲取和處理外中斷的驅(qū)動(dòng)程序。

      三、實(shí)驗(yàn)設(shè)備:、一套S3C2410RP 嵌入式實(shí)驗(yàn)箱。、安裝Redhat9的宿主PC機(jī),并且配置好 ARM Linux 的開發(fā)環(huán)境。

      四、實(shí)驗(yàn)步驟

      1、打開Experiment_KeyGPIOdriver文件下的gpio_led.c文件。

      2、在ssize_t SIMPLE_GPIO_LED_ioctl函數(shù)下添加如下語(yǔ)句:

      if(cmd==0)GPBDAT &= ~(0xf<<5);

      if(cmd==1)GPBDAT |=(0xf<<5);如下圖所示:

      3、在int __init HW_GPIO_LED_CTL_init函數(shù)下屏蔽for循環(huán),如下圖所示:

      保存并關(guān)閉。

      4、打開Experiment_KeyInterruptdriver下的Interrupt.c文件,并在其interrupt函數(shù)下添加for語(yǔ)句,如下圖所示:

      5、打開終端,并編譯Interrupt.c文件和gpio_led.c文件。

      6、重新打開一個(gè)終端,并按步驟輸入如下語(yǔ)句:

      7、依次輸入如下語(yǔ)句:

      1、cd /mnt/2410RP_linux/Experiment_Key/Interrupt/driver

      2、ls

      3、insmod Interrupt.o

      實(shí)驗(yàn)四 數(shù)碼管顯示實(shí)驗(yàn)

      一、實(shí)驗(yàn)?zāi)康模?/p>

      學(xué)習(xí)串并轉(zhuǎn)換的相關(guān)知識(shí),并編寫驅(qū)動(dòng)程序。

      二、實(shí)驗(yàn)內(nèi)容:

      編寫針對(duì)zlg7289A 的驅(qū)動(dòng)程序。

      三、實(shí)驗(yàn)設(shè)備:、一套S3C2410RP 嵌入式實(shí)驗(yàn)箱。、安裝Redhat9的宿主PC機(jī),并且配置好 ARM Linux 的開發(fā)環(huán)境。

      四、實(shí)驗(yàn)步驟

      1、打開Experiment_KeySpi_leddriver文件夾下的spi_led.c

      2、并在spi_ledInit函數(shù)下添加如下語(yǔ)句:

      保存并關(guān)閉。

      3、打開終端,并編譯spi_led文件。

      4、重新打開一個(gè)終端,并輸入如下語(yǔ)句:

      實(shí)驗(yàn)五

      AD 驅(qū)動(dòng)實(shí)驗(yàn)

      一 實(shí)驗(yàn)?zāi)康模?、了解模?shù)轉(zhuǎn)換的基本原理;、掌握模數(shù)轉(zhuǎn)換的編程方法。

      二 實(shí)驗(yàn)內(nèi)容:、編程對(duì)模擬量輸入進(jìn)行采集和轉(zhuǎn)換,并將結(jié)果顯示在超級(jí)終端上。、通過改變模擬量輸入,觀察顯示結(jié)果。

      三 實(shí)驗(yàn)設(shè)備:、一套S3C2410RP 嵌入式實(shí)驗(yàn)箱。、安裝Redhat9的宿主PC機(jī),并且配置好 ARM Linux 的開發(fā)環(huán)境。

      四 實(shí)驗(yàn)步驟

      1、在spi_led..c中的simpled ioctl中加入以下程序

      2、在testADC中復(fù)制以下程序并修改如下

      3、掛載程序

      cd /mnt/2410RP_linux/Experiment_Key/spi_led/driver

      ls insmod spi_led.o

      cd /mnt/2410RP_linux/Experiment_Key/ad/driver

      insmod adc.o cd /mnt/2410RP_linux/Experiment_Key/ad/apl_test

      ls

      mknod /dev/spi c 104 1

      ls

      ./testADC

      第四篇:嵌入式系統(tǒng)學(xué)習(xí)心得

      篇一:嵌入式心得體會(huì)

      這學(xué)期才接觸嵌入式系統(tǒng)感覺還稱不上入門,我通過學(xué)習(xí)知道了嵌入式的發(fā)展前景很大,各個(gè)領(lǐng)域都用到了嵌入式,學(xué)好嵌入式不愁沒飯吃。

      廣義上講,凡是帶有微處理器的專用軟硬件系統(tǒng)都是嵌入式系統(tǒng)。如各類單片機(jī)和dsp系統(tǒng)。從狹義上講,那些使用嵌入式微處理器構(gòu)成獨(dú)立系統(tǒng),具有自己操作系統(tǒng),具有特定功能,用于特定場(chǎng)合的專用軟硬件系統(tǒng)稱為嵌入式系統(tǒng)。嵌入式系統(tǒng)由嵌入式硬件與嵌入式軟件組成;嵌入式硬件以芯片、模板、組件、控制器形式埋藏于設(shè)備內(nèi)部。

      理解“嵌入”的概念 主要從三個(gè)方面上來(lái)理解。

      1、從硬件上,將基于cpu的處圍器件,整合到cpu芯片內(nèi)部,比如早期基于x86體系結(jié)構(gòu)下的計(jì)算機(jī),cpu只是有運(yùn)算器和累加器的功能,一切芯片要造外部橋路來(lái)擴(kuò)展實(shí)現(xiàn),象串口之類的都是靠外部的16c550/2的串口控制器芯片實(shí)現(xiàn),而目前的這種串口控制器芯片早已集成到cpu內(nèi)部,還有pc機(jī)有顯卡,而多數(shù)嵌入式處理器都帶有l(wèi)cd控制器,但其種意義上就相當(dāng)于顯卡。比較高端的arm類intel xscale架構(gòu)下的ixp網(wǎng)絡(luò)處理器cpu內(nèi)部集成pci控制器(可配成支持4個(gè)pci從設(shè)備或配成自身為cpi從設(shè)備);還集成3個(gè)npe網(wǎng)絡(luò)處理器引擎,其中兩個(gè)對(duì)應(yīng)于兩個(gè)mac地址,可用于網(wǎng)關(guān)交換用,而另外一個(gè)npe網(wǎng)絡(luò)處理器引擎支持dsl,只要外面再加個(gè)phy芯片即可以實(shí)現(xiàn)dsl上網(wǎng)功能。ixp系列最高主頻可以達(dá)到1.8g,支持2g內(nèi)存,1g×10或10g×1的以太網(wǎng)口或febre channel的光通道。ixp系列應(yīng)該是目標(biāo)基于arm體系統(tǒng)結(jié)構(gòu)下由intel進(jìn)行整合后成xscale內(nèi)核的最高的處理器了。

      2、從軟件上前,就是在定制操作系統(tǒng)內(nèi)核里將應(yīng)用一并選入,編譯后將內(nèi)核下載到rom中。而在定制操作系統(tǒng)內(nèi)核時(shí)所選擇的應(yīng)用程序組件就是完成了軟件的“嵌入”,比如wince在內(nèi)核定制時(shí),會(huì)有相應(yīng)選擇,其中就是wordpad,pdf,mediaplay等等選擇,如果我們選擇了,在ce啟動(dòng)后,就可以在界面中找到這些東西,如果是以前pc上將的windows操作系統(tǒng),多半的東西都需要我們得新再裝。

      3、把軟件內(nèi)核或應(yīng)用文件系統(tǒng)等東西燒到嵌入式系統(tǒng)硬件平臺(tái)中的rom中就實(shí)現(xiàn)了一個(gè)真正的“嵌入”。

      嵌入式系統(tǒng)分為4層,硬件層、驅(qū)動(dòng)層、操作系統(tǒng)層和應(yīng)用層

      1、硬件層,是整個(gè)嵌入式系統(tǒng)的根本,如果現(xiàn)在單片機(jī)及接口這塊很熟悉,并且能用c和匯編語(yǔ)言來(lái)編程的話,從嵌入式系統(tǒng)的硬件層走起來(lái)相對(duì)容易,硬件層也是驅(qū)動(dòng)層的基礎(chǔ),一個(gè)優(yōu)秀的驅(qū)動(dòng)工程師是要能夠看懂硬件的電路圖和自行完成cpld的邏輯設(shè)計(jì)的,同時(shí)還要對(duì)操作系統(tǒng)內(nèi)核及其調(diào)度性相當(dāng)?shù)氖煜さ?。但硬件平臺(tái)是基礎(chǔ),增值還要靠軟件。硬件層比較適合于,電子、通信、自動(dòng)化、機(jī)電一體、信息工程類專業(yè)的人來(lái)搞,需要掌握的專業(yè)基礎(chǔ)知識(shí)有,單片機(jī)原理及接口技術(shù)、微機(jī)原理及接口技術(shù)、c語(yǔ)言。

      2、驅(qū)動(dòng)層,這部分比較難,驅(qū)動(dòng)工程師不僅要能看懂電路圖還要能對(duì)操作系統(tǒng)內(nèi)核十分的精通,以便其所寫的驅(qū)動(dòng)程序在系統(tǒng)調(diào)用時(shí),不會(huì)獨(dú)占操作系統(tǒng)時(shí)間片,而導(dǎo)至其它任務(wù)不能動(dòng)行,不懂操作系統(tǒng)內(nèi)核架構(gòu)和實(shí)時(shí)調(diào)度性,沒有良好的驅(qū)動(dòng)編寫風(fēng)格,按大多數(shù)書上所說(shuō)添加的驅(qū)動(dòng)的方式,很多人都能做到,但可能連個(gè)初級(jí)的驅(qū)動(dòng)工程師的水平都達(dá)不到,這樣所寫的驅(qū)動(dòng)在應(yīng)用調(diào)用時(shí)就如同windows下我們打開一個(gè)程序運(yùn)行后,再打開一個(gè)程序時(shí),要不就是中斷以前的程序,要不就是等上一會(huì)才能運(yùn)行后來(lái)打開的程序。想做個(gè)好的驅(qū)動(dòng)人員沒有三、四年功底,操作系統(tǒng)內(nèi)核不研究上幾編,不是太容易成功的,但其工資在嵌入式系統(tǒng)四層中可是最高的。

      驅(qū)動(dòng)層比較適合于電子、通信、自動(dòng)化、機(jī)電一體、信息工程類專業(yè)尤其是計(jì)算機(jī)偏體系結(jié)構(gòu)類專業(yè)的人來(lái)搞,除硬件層所具備的基礎(chǔ)學(xué)科外,還要對(duì)數(shù)據(jù)結(jié)構(gòu)與算法、操作系統(tǒng)原理、編譯原理都要十分精通了解。

      3、操作系統(tǒng)層,對(duì)于操作系統(tǒng)層目前可能只能說(shuō)是簡(jiǎn)單的移植,而很少有人來(lái)自已寫操

      作系統(tǒng),或者寫出缺胳膊少腿的操作系統(tǒng)來(lái),這部分工作大都由驅(qū)動(dòng)工程師來(lái)完成。操作系統(tǒng)是負(fù)責(zé)系統(tǒng)任務(wù)的調(diào)試、磁盤和文件的管理,而嵌入式系統(tǒng)的實(shí)時(shí)性十分重要。據(jù)說(shuō),xp操作系統(tǒng)是微軟投入300人用兩年時(shí)間才搞定的,總時(shí)工時(shí)是600人年,中科院軟件所自己的女媧hopen操作系統(tǒng)估計(jì)也得花遇幾百人年才能搞定。因此這部分工作相對(duì)來(lái)講沒有太大意義。

      4、應(yīng)用層,相對(duì)來(lái)講較為容易的,如果會(huì)在windows下如何進(jìn)行編程接口函數(shù)調(diào)用,到操作系統(tǒng)下只是編譯和開發(fā)環(huán)境有相應(yīng)的變化而已。如果涉及java方面的編程也是如此的。嵌入式系統(tǒng)中涉及算法的由專業(yè)算法的人來(lái)處理的,不必歸結(jié)到嵌入式系統(tǒng)范疇內(nèi)。但如果涉及嵌入式系統(tǒng)下面嵌入式數(shù)據(jù)庫(kù)、基于嵌入式系統(tǒng)的網(wǎng)絡(luò)編程和基于某此應(yīng)用層面的協(xié)議應(yīng)用開發(fā)(比如基于sip、h.323、astrisk)方面又較為復(fù)雜,并且有難度了。

      通過網(wǎng)上查詢我發(fā)現(xiàn)目前國(guó)內(nèi)外這方面的人都很稀缺。一方面,是因?yàn)檫@一領(lǐng)域入門門檻較高,不僅要懂較底層軟件(例如操作系統(tǒng)級(jí)、驅(qū)動(dòng)程序級(jí)軟件),對(duì)軟件專業(yè)水平要求較高(嵌入式系統(tǒng)對(duì)軟件設(shè)計(jì)的時(shí)間和空間效率要求較高),而且必須懂得硬件的工作原理,所以非專業(yè)it人員很難切入這一領(lǐng)域;另一方面,是因?yàn)檫@一領(lǐng)域較新,目前發(fā)展太快,很多軟硬件技術(shù)出現(xiàn)時(shí)間不長(zhǎng)或正在出現(xiàn)(如arm處理器、嵌入式操作系統(tǒng)等),掌握這些新技術(shù)的人當(dāng)然很少。嵌入式人才稀缺,身價(jià)自然就高,越有經(jīng)驗(yàn)價(jià)格就越高。其實(shí)嵌入式人才稀少,根本原因可能是大多數(shù)人無(wú)條件接觸,這需要相應(yīng)的嵌入式開發(fā)板和軟件,另外需要有經(jīng)驗(yàn)的人進(jìn)行指導(dǎo)開發(fā)流程。我們軟件系的人學(xué)習(xí)嵌入式,顯然應(yīng)偏重于嵌入式軟件,特別是嵌入式操作系統(tǒng)方面。對(duì)于搞嵌入式軟件的人,最重要的技術(shù)顯然是掌握主流嵌入式微處理器的結(jié)構(gòu)與原理,必須掌握一個(gè)嵌入式操作系統(tǒng),必須熟悉嵌入式軟件開發(fā)流程并至少做過一個(gè)嵌入式軟件項(xiàng)目。

      然而我們都沒有做過一個(gè)嵌入式軟件項(xiàng)目,甚至連嵌入式的開發(fā)流程我也不清楚,我只了解了使用簡(jiǎn)單工具做一個(gè)簡(jiǎn)單的實(shí)驗(yàn)。只有去專研才能在嵌入式的領(lǐng)域站住腳,只有知道的比別人多才會(huì)更有競(jìng)爭(zhēng)力。通過網(wǎng)上了解,我查詢了嵌入式的入門和所需要的知識(shí),其中c語(yǔ)言尤為重要,不管是做嵌入式軟件還是硬件開發(fā)的人員,對(duì)c語(yǔ)言的掌握這個(gè)是必需的,特別是對(duì)于以后致力于嵌入式軟件開發(fā)的人,現(xiàn)在絕大部分都是用c語(yǔ)言。其次,應(yīng)該對(duì)操作系統(tǒng)有所了解,這對(duì)你對(duì)硬件和軟件的理解,絕對(duì)有很大的幫助。應(yīng)該把系統(tǒng)的管理理解一下,比如進(jìn)程、線程,系統(tǒng)如何來(lái)分配資源的,系統(tǒng)如何來(lái)管理硬件的;知道了c語(yǔ)言和操作系統(tǒng)之后,再來(lái)看看嵌入式系統(tǒng),我們主要學(xué)的是arm,用的是arm7,深入理解arm不是件容易的事,只有在知道arm相關(guān)知識(shí)之后才能稱得上嵌入式已經(jīng)入門了。與嵌入式有關(guān)的知識(shí)我也學(xué)了不少就是不能夠綜合在一起運(yùn)用,組成原理,數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng),c++,這3門與嵌入式密切相關(guān)的學(xué)科都系統(tǒng)的學(xué)了一遍,但由于長(zhǎng)時(shí)間沒用到都有點(diǎn)忘記了,從網(wǎng)上得知嵌入式的學(xué)習(xí)與這些書有很大關(guān)系之后,我把嵌入式與以前學(xué)過的知識(shí)結(jié)合起來(lái)發(fā)現(xiàn)嵌入式的實(shí)驗(yàn)中很多都是共通的,我對(duì)嵌入式有了初步的理解。

      我以為學(xué)習(xí)嵌入式應(yīng)該分為2個(gè)部分:軟件和硬件。關(guān)于硬件方面我接觸到了數(shù)字電路教材和模擬電路方面的知識(shí),但由于沒有嵌入式cpu很難親自動(dòng)手來(lái)實(shí)現(xiàn)嵌入式的相關(guān)理論;嵌入式入門則需要不斷地實(shí)驗(yàn)與分析,我只在實(shí)驗(yàn)課時(shí)做幾個(gè)與所給的程序相關(guān)的小程序來(lái)實(shí)現(xiàn)一下;而軟件方面則學(xué)過c語(yǔ)言,里面通常的語(yǔ)法曾今熟悉過;我通過下列方法來(lái)適應(yīng)c語(yǔ)言在嵌入式中應(yīng)用:首先重新翻看了下c的教材,看了些常見的語(yǔ)法,接著在編譯器的角度來(lái)看待c,編譯原理我剛學(xué)過,其中將高級(jí)語(yǔ)言與低級(jí)語(yǔ)言的翻譯感覺在嵌入式中用到了很多;最后沖硬件的角度來(lái)看待c。嵌入式的核心包括嵌入式操作系統(tǒng),嵌入式軟件開發(fā)平臺(tái)及工具以及嵌入式應(yīng)用軟件。這些決定怎樣才能開發(fā)一個(gè)好的嵌入式系統(tǒng)。下面談?wù)勎伊私獾那度胧降南嚓P(guān)知識(shí)與應(yīng)用:

      首先,嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),且軟硬件可裁減,適應(yīng)應(yīng)

      用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式有如下幾個(gè)突出的有點(diǎn)1.系統(tǒng)內(nèi)核小,2專用性強(qiáng),3系統(tǒng)精簡(jiǎn)4高實(shí)時(shí)性os5嵌入式系統(tǒng)的應(yīng)用程序可以沒有操作系統(tǒng)直接在芯片上運(yùn)行,6嵌入式系統(tǒng)需要開發(fā)工具和環(huán)境。

      嵌入式系統(tǒng)是近幾年才風(fēng)靡起來(lái)的,但是這個(gè)概念并非新近才出現(xiàn)。從20世紀(jì)七十年代單片機(jī)(最早的單片機(jī)是intel公司的 8048,出現(xiàn)在1976年)的出現(xiàn)到今天各式各樣的嵌入式微處理器,微控制器的大規(guī)模應(yīng)用,嵌入式系統(tǒng)已經(jīng)有了近30年的發(fā)展歷史。經(jīng)過30年的發(fā)展,嵌入式技術(shù)已經(jīng)日趨成熟,在中國(guó)嵌入式機(jī)一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶的應(yīng)用程序等四個(gè)部分組成,用于實(shí)現(xiàn)對(duì)其他設(shè)備的控制、監(jiān)視或管理等功能。

      其次,嵌入式系統(tǒng)無(wú)疑是當(dāng)前最熱門最有發(fā)展前途的it應(yīng)用領(lǐng)域之一。嵌入式系統(tǒng)用在一些特定專用設(shè)備上,通常這些設(shè)備的硬件資源(如處理器、存儲(chǔ)器等)非常有限,并且對(duì)成本很敏感,有時(shí)對(duì)實(shí)時(shí)響應(yīng)要求很高等。特別是隨著消費(fèi)家電的智能化,嵌入式更顯重要。嵌入式系統(tǒng)是軟硬結(jié)合的學(xué)科,通常有兩類人會(huì)去專研嵌入式:一類是學(xué)電子工程、通信工程等偏硬件專業(yè)的,另一類是學(xué)軟件、計(jì)算機(jī)專業(yè)出身的人,主要從事嵌入式操作系統(tǒng)和應(yīng)用軟件的開發(fā)。我是軟件專業(yè)的學(xué)習(xí)嵌入式,越是智能設(shè)備越是復(fù)雜系統(tǒng),軟件越起關(guān)鍵作用,而且這是目前的趨勢(shì)。嵌入式應(yīng)用在很多方面,具體的可以分為工業(yè)控制,交通管理,信息家電,家庭智能管理系統(tǒng),pos網(wǎng)絡(luò)及電子商務(wù),環(huán)境工程與自然,機(jī)器人,機(jī)電產(chǎn)品方面應(yīng)用等方面。其中目前在服務(wù)領(lǐng)域,如遠(yuǎn)程點(diǎn)菜器等已經(jīng)體現(xiàn)了嵌入式系統(tǒng)的優(yōu)勢(shì)。例外還有很多地方用到了嵌入式系統(tǒng),最近飛利浦和arm共同推出32位risc嵌入式控制器,適用于工業(yè)控制,采用最先進(jìn)的0.18微米cmos嵌入式閃存處理技術(shù),操作電壓可以低至1.2伏,它還能降低25%到30%的制造成本,在工業(yè)領(lǐng)域中對(duì)最終用戶而言是一套極具成本效益的解決方案。

      那么該如何學(xué)好嵌入式我覺得應(yīng)該從以下幾點(diǎn)入手:

      首先c語(yǔ)言,這個(gè)是毋庸置疑的,不管是做嵌入式軟件還是硬件開發(fā)的人員,對(duì)c語(yǔ)言的掌握這個(gè)是必需的,特別是對(duì)于以后致力于嵌入式軟件開發(fā)的人,現(xiàn)在絕大部分都是用c語(yǔ)言,你說(shuō)不掌握它可以嗎?至于如何學(xué)習(xí)c語(yǔ)言,我想這些基礎(chǔ)的知識(shí)每個(gè)人都有自己的方法,關(guān)鍵要去學(xué)習(xí),看書也好,網(wǎng)上找些視頻看也好。很多人會(huì)問,c語(yǔ)言要學(xué)到怎么樣,我覺得這沒有標(biāo)準(zhǔn)的答案。我想至少你在明白了一些基礎(chǔ)的概念后,就該寫代碼了,動(dòng)手才是最重要的,當(dāng)你動(dòng)手了,遇到問題了,再反過來(lái)學(xué)習(xí),反過來(lái)查查課本,那時(shí)的收獲就不是你死看書能得到的。

      其次,應(yīng)該對(duì)操作系統(tǒng)有所了解,這對(duì)你對(duì)硬件和軟件的理解,絕對(duì)有很大的幫助。應(yīng)該把系統(tǒng)的管理理解一下,比如進(jìn)程、線程,系統(tǒng)如何來(lái)分配資源的,系統(tǒng)如何來(lái)管理硬件的,當(dāng)然,不是看書就能把這些理解透,如果不是一時(shí)能理解,沒關(guān)系,多看看,結(jié)合以后的項(xiàng)目經(jīng)驗(yàn),會(huì)有更好的理解的。

      還有應(yīng)該學(xué)習(xí)下linux或者wince下的編程,這些對(duì)以后做應(yīng)用的編程很有幫助,當(dāng)然,如果做手機(jī)的話,那可以學(xué)習(xí)mtk、塞班、android等操作系統(tǒng),android是以后發(fā)展的趨勢(shì),現(xiàn)在很熱門,android也是基于linux系統(tǒng)封裝的,所以建議先學(xué)習(xí)下linux。

      還有,應(yīng)該學(xué)習(xí)下單片機(jī)或者arm或者mips,很多人說(shuō)我沒有單片機(jī)的經(jīng)驗(yàn),直接學(xué)arm可以嗎?我覺得那完全沒有問題的,當(dāng)然如果你學(xué)習(xí)過單片機(jī),那最好不過了,以后學(xué)習(xí)arm就更簡(jiǎn)單了。

      最后如果你把以上的知識(shí)都有所了解后,就該去閱讀閱讀一些優(yōu)秀的代碼,比如結(jié)合arm芯片手冊(cè)學(xué)習(xí)去學(xué)習(xí)下uboot的源代碼,了解下最小的系統(tǒng)開發(fā),那對(duì)你整個(gè)嵌入式開發(fā)的非常有幫助的,可以的話,還可以學(xué)習(xí)下linux的源代碼,當(dāng)然如果你直接閱讀2.6的代碼,我想你會(huì)很痛苦的,可以先看看linux 代碼早期的版本,比如0.12 的代碼等等,麻雀雖

      小,五臟俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程師。

      以上就是我在本學(xué)期學(xué)習(xí)嵌入式后的心得及感想。篇二:嵌入式學(xué)習(xí)總結(jié)

      一.為什么學(xué)習(xí)嵌入式?

      1.就業(yè)前景

      近幾年,嵌入式系統(tǒng)產(chǎn)品日臻完善,并在全世界各行業(yè)得到廣泛應(yīng)用。嵌入式系統(tǒng)產(chǎn)品的研制和應(yīng)用已經(jīng)成為我國(guó)信息化帶動(dòng)工業(yè)化、工業(yè)化促進(jìn)信息化發(fā)展的新的國(guó)民經(jīng)濟(jì)增長(zhǎng)點(diǎn)。

      隨著消費(fèi)家電的智能化,嵌入式更顯重要。像我們平常見到的手機(jī)、pda、電子字典、可視電話、vcd/dvd/mp3player、數(shù)字相機(jī)(dc)、數(shù)字?jǐn)z像機(jī)(dv)、u-disk、機(jī)頂盒(set top box)、高清電視(hdtv)、游戲機(jī)、智能玩具、交換機(jī)、路由器、數(shù)控設(shè)備或儀表、汽車電子、家電控制系統(tǒng)、醫(yī)療儀器、航天航空設(shè)備等等,都是典型的嵌入式系統(tǒng)。據(jù)預(yù)測(cè),隨著internet的迅速發(fā)展和廉價(jià)微處理器的出現(xiàn),嵌入式系統(tǒng)將在日常生活里形成更大的應(yīng)用領(lǐng)域。

      在中國(guó),嵌入式軟件發(fā)展過程中,政府已充分認(rèn)識(shí)到它的重要作用,并在政策、資金等方面給予了大力支持。2004 年國(guó)家發(fā)改委、科技部、商務(wù)部聯(lián)合頒布的《當(dāng)前優(yōu)先發(fā)展的高技術(shù)產(chǎn)業(yè)化重點(diǎn)領(lǐng)域指南》,把嵌入式軟件產(chǎn)業(yè)作為國(guó)家發(fā)展的一個(gè)重要領(lǐng)域。

      最近幾年來(lái),中國(guó)的嵌入式軟件發(fā)展速度一直高于中國(guó)軟件產(chǎn)業(yè)的發(fā)展速度和全球嵌入式軟件的發(fā)展速度,在中國(guó)軟件產(chǎn)業(yè)和全球嵌入式軟件產(chǎn)業(yè)中所占的比重越來(lái)越大。目前,中國(guó)嵌入式軟件產(chǎn)業(yè)在整個(gè)軟件產(chǎn)業(yè)中的比重已經(jīng)超過了三分之一強(qiáng)。從2006年至2010年,中國(guó)嵌入式軟件產(chǎn)業(yè)規(guī)模仍將保持快速增長(zhǎng)態(tài)勢(shì),年均復(fù)合增長(zhǎng)率為25.8%,到2010年將達(dá)到3339.6億元的規(guī)模。

      中國(guó)嵌入式軟件產(chǎn)業(yè)的發(fā)展面臨著良好的發(fā)展環(huán)境與機(jī)遇,這包括政府的重視與扶植、信息產(chǎn)業(yè)與傳統(tǒng)產(chǎn)業(yè)的融合機(jī)遇、壟斷局面尚未形成、中國(guó)制造的良好基礎(chǔ)、自由軟件運(yùn)動(dòng)的興起等等。

      同時(shí),不可否認(rèn)的是長(zhǎng)期以來(lái),由于人才、宣傳、資金等諸多問題以及嵌入式本身所特有的軟硬結(jié)合特性,使嵌入式軟件人才一直處于供不應(yīng)求的狀態(tài)。

      2.自身發(fā)展

      嵌入式系統(tǒng)是軟硬結(jié)合的東西,搞嵌入式開發(fā)的人有兩類。

      一類是學(xué)電子工程、通信工程等偏硬件專業(yè)出身的人,他們主要是搞硬件設(shè)計(jì),有時(shí)要開發(fā)一些與硬件關(guān)系最密切的最底層軟件,如bootloader、board support package(像pc的bios一樣,往下驅(qū)動(dòng)硬件,往上支持操作系統(tǒng)),最初級(jí)的硬件驅(qū)動(dòng)程序等。他們的優(yōu)勢(shì)是對(duì)硬件原理非常清楚,不足是他們更擅長(zhǎng)定義各種硬件接口,但對(duì)復(fù)雜軟件系統(tǒng)往往力不從心(例如嵌入式操作系統(tǒng)原理和復(fù)雜應(yīng)用軟件等)。

      另一類是學(xué)軟件、計(jì)算機(jī)專業(yè)出身的人,主要從事嵌入式操作系統(tǒng)和應(yīng)用軟件的開發(fā)。如果我們學(xué)軟件的人對(duì)硬件原理和接口有較好的掌握,我們完全也可寫bsp和硬件驅(qū)動(dòng)程序。嵌入式硬件設(shè)計(jì)完后,各種功能就全靠軟件來(lái)實(shí)現(xiàn)了,嵌入式設(shè)備的增值很大程度上取決于嵌入式軟件,這占了嵌入式系統(tǒng)的最主要工作(目前有很多公司將硬件設(shè)計(jì)包給了專門的硬件公司,稍復(fù)雜的硬件都交給臺(tái)灣或國(guó)外公司設(shè)計(jì),國(guó)內(nèi)的硬件設(shè)計(jì)力量很弱,很多嵌入式公司自己只負(fù)責(zé)

      開發(fā)軟件,因?yàn)楣径贾溃度胧疆a(chǎn)品的差異很大程度在軟件上,在軟件方面是最有“花頭“可做的),所以我們搞軟件的人完全不用擔(dān)心我們?cè)谇度胧绞袌?chǎng)上的用武之地,越是智能設(shè)備越是復(fù)雜系統(tǒng),軟件越起關(guān)鍵作用,而且這是目前的趨勢(shì)。

      二.怎樣學(xué)習(xí)嵌入式?

      1.arm嵌入式開發(fā)領(lǐng)域

      包括什么?

      軟件開發(fā)

      操作系統(tǒng)以下的底層偏硬件驅(qū)動(dòng)

      在簡(jiǎn)單操作系統(tǒng)如uc/os-ii之上的程序開發(fā)

      不包括什么?

      硬件設(shè)計(jì)

      類似linux這樣操作系統(tǒng)以上的純應(yīng)用開發(fā)

      2.arm基礎(chǔ)知識(shí)

      #1.arm體系結(jié)構(gòu):

      load/store體系,big/little endian大小端格式,risc/cisc指令集,pipeline流水線

      #2.arm工作模式: 7種工作模式:usr,sys,svc,irq,fiq,und,abt;其中5種異常模式 #3.arm寄存器:

      37個(gè)寄存器:r0-r12, r13(sp),r14(lr),r15(pc),cpsr(spsr)#4.arm異常: 7種異常,異常向量表,異常優(yōu)先級(jí),異常處理程序,處理器現(xiàn)場(chǎng),現(xiàn)場(chǎng)的保存和恢復(fù)

      #5.amba總線: ahb(高性能總線),asb(系統(tǒng)總線),apb(外設(shè)總線)#6.arm內(nèi)核技術(shù): trustzone,jazelle,neon,thumb-2,simd,mmu,mpu #7.jtag標(biāo)準(zhǔn): ieee1149.1,tdi,tdo,tck,tms,trst,邊界掃描鏈,h-jtag,banyan,giveio #8.arm內(nèi)核分類: arm7tdmi,arm926,strongarm/xscale,arm10,arm11,cortex-(a/r/m),securcore #9.arm匯編指令: mov,add,sub,b,bl,ldr,str,ldmfd,stmfd,mrs,msr,swi,mrc,mcr #10.mmu內(nèi)存管理單元: va/pa,i-cache/d-cache,write buffer,context switch,cp15,tlb,ap,domain access control,cache coherence #11.arm芯片外設(shè)控制器:

      memory controller(內(nèi)存控制器),watchdog(看門狗),gpio(通用io),uart(串口),timer(定時(shí)器),interrupt controller(中斷控制器),nand flash controller,clock & power management(時(shí)鐘和電源管理),dma(直接存儲(chǔ)訪問),usb controller,lcd controller,adc,iic,iis,spi,ac97,camera,mmc/sd #12.最小系統(tǒng):

      處理器,時(shí)鐘,電源,pll鎖相環(huán),存儲(chǔ)器,通訊端口,外設(shè)接口

      存儲(chǔ)器件

      sram,sdram,nor flash,nand flash #13.arm處理器: samsung: s3c4510,s3c44b0,s3c2410,s3c2440,s3c6410,#14.soc設(shè)計(jì): fpga,cpld,vhdl,verilog #15.arm開發(fā)調(diào)試工具: sdt,ads1.2,axd,realview,keil mdk 4.11(rvmdk4.11)#16.arm命令行工具: armcc,armasm,armlink,fromelf #17.嵌入式操作系統(tǒng): vxworks,rtlinux,uc/os-ii,wince/wm #18.外設(shè)驅(qū)動(dòng)程序: volatile關(guān)鍵字,位操作bit,時(shí)序圖timing,管腳功能pin function,外設(shè)控制/數(shù)據(jù)/狀態(tài)寄存器

      #19.程序的存儲(chǔ),加載和運(yùn)行: ro段,rw段,zi段,ro-base/rw-base,??臻g,堆空間,位置無(wú)關(guān)代碼pic,啟動(dòng)搬移代碼

      3.核心概念

      #1.寄存器:

      arm內(nèi)核寄存器

      r0-r12 r13(sp)r14(lr)r15(pc)cpsr, spsr arm soc 特殊功能寄存器

      sfr(special function register)#2.地址

      c程序中變量的“地址” :&a soc 特殊功能寄存器的“地址” :0x48000000 尋址方式里面的“地址” :ldr r0, [r1] 二進(jìn)制指令里面的“地址” :0xe59ff018 存儲(chǔ)芯片內(nèi)部的“地址” :0x4h 操作系統(tǒng)之上應(yīng)用程序的“(虛)地址”

      cpld器件對(duì)應(yīng)的“(假)地址”

      #3.異常和中斷

      異常是屬于arm內(nèi)核體系結(jié)構(gòu)的概念

      中斷是屬于arm soc處理器的概念

      了解軟件中斷(swi)是實(shí)現(xiàn)操作系統(tǒng)提供系統(tǒng)調(diào)用的重要手段

      了解硬件中斷(例如timer定時(shí)器)是實(shí)現(xiàn)操作系統(tǒng)時(shí)間片的重要手段

      三.三個(gè)問題。

      #1.為什么要編寫一個(gè)bootloader?

      從根本上掌握一個(gè)嵌入式開發(fā)板底層的軟硬件系統(tǒng)是怎樣運(yùn)轉(zhuǎn)起來(lái)的

      時(shí)鐘頻率如何設(shè)置;看門狗所起作用,串口如何工作;通訊協(xié)議如何實(shí)現(xiàn);庫(kù)函數(shù);反匯編;函數(shù)棧空間。

      #2.為什么要移植一個(gè)操作系統(tǒng)?

      了解操作系統(tǒng)和底層硬件之間的依賴關(guān)系,知道哪些是移植相關(guān)的部分(即接口)定時(shí)器中斷(時(shí)鐘節(jié)拍);異常處理和現(xiàn)場(chǎng)保存恢復(fù);進(jìn)程,進(jìn)程控制塊;處理器現(xiàn)場(chǎng);進(jìn)程的上下文切換;中斷級(jí)別的進(jìn)程切換。

      #3.為什么要實(shí)現(xiàn)一個(gè)用戶應(yīng)用?

      一個(gè)音頻播放器;dma控制器,interrupt中斷控制器;iis 總線;uda1341聲卡芯片驅(qū)動(dòng);wav/mp3 音頻文件格式;lcd液晶顯示驅(qū)動(dòng);一個(gè)u盤;usb協(xié)議;fat文件系統(tǒng)格式;scsi命令集;nandflash存儲(chǔ)芯片驅(qū)動(dòng)。

      四.經(jīng)典語(yǔ)段

      經(jīng)典語(yǔ)段一:

      嵌入式技術(shù)的掌握是需要一個(gè)過程的

      實(shí)事求是的說(shuō),嵌入式技術(shù)的全面掌握是有相當(dāng)難度的??梢暂p輕松松學(xué)會(huì)嵌入式技術(shù)的說(shuō)法是夸大其詞了。這個(gè)就像學(xué)英語(yǔ)一樣,學(xué)英語(yǔ)無(wú)論怎樣學(xué),不管是“瘋狂學(xué)”還是用新理念來(lái)學(xué),真正掌握的話還是需要一步步積累才能熟練掌握。在此,我建議大家不要想在幾天內(nèi)學(xué)會(huì)嵌入式,成為這方面的高手。這些想法本身是不太現(xiàn)實(shí)的。

      現(xiàn)在我們需要做的是:

      第一:把心踏實(shí)下來(lái),做好打硬仗的準(zhǔn)備。

      第二:注意學(xué)習(xí)方法。盡量不要走彎路,爭(zhēng)取一鼓作氣入門。一旦入門了以后呢就好辦了。嵌入式技術(shù)的掌握,本身呢就比較難,要是再走些彎路,時(shí)間上會(huì)浪費(fèi),甚至?xí)绊憣W(xué)習(xí)的信心。

      經(jīng)典語(yǔ)段二:

      最好的學(xué)習(xí)方法:

      做項(xiàng)目。如果有機(jī)會(huì)大家跟著做一個(gè)難度適中的嵌入式項(xiàng)目,相信大家會(huì)很快入

      門的。也就是說(shuō)從實(shí)戰(zhàn)之中來(lái)獲得進(jìn)步。但是,在我們沒有嵌入式基礎(chǔ)之前,不容易獲得這樣的機(jī)會(huì)。也就是說(shuō),在能力沒有到之前,找個(gè)這樣的工作很難。很顯然呢,如果我們具備了獲得這樣一份工作的能力就好辦了。但是,恰恰是這個(gè)階段最難。這個(gè)就是搞嵌入式系統(tǒng)的門檻。這個(gè)門檻的跨越,我覺得是需要引導(dǎo)的。

      比如有的人買了塊開發(fā)板自學(xué),上來(lái)就分析linux源碼,結(jié)果折騰了幾個(gè)月呢都沒有什么收獲。有的人只是掩飾了幾個(gè)基本的功能,放了個(gè)mp3,玩了下如何來(lái)瀏覽網(wǎng)頁(yè),下不就不知道該怎么做了。實(shí)際上呢,學(xué)習(xí)一門技術(shù)是需要一個(gè)過程的,期間也會(huì)有一定的規(guī)律。我們具體來(lái)看。

      五.學(xué)習(xí)心得

      #1.嵌入式系統(tǒng)的范圍很廣,指具有計(jì)算能力的非pc系統(tǒng),即具有通常使用的個(gè)人電腦的全部或部分特質(zhì)的專用計(jì)算機(jī)系統(tǒng)。如生活中的pda、手機(jī)、電視機(jī)頂盒、數(shù)字電視、數(shù)碼相機(jī)以及工業(yè)自動(dòng)化儀表、醫(yī)療儀器等。它分硬件和軟件兩部分,硬件以嵌入式處理器(相當(dāng)于pc的cpu)為核心,外擴(kuò)rom、ram(相當(dāng)于pc的硬盤、內(nèi)存條)、輸入/輸出設(shè)備(pc的鍵盤/顯示器)、各種通信接口(串口、usb、網(wǎng)絡(luò))等。軟件由引導(dǎo)程序(pc的bios)、嵌入式操作系統(tǒng)(相當(dāng)于pc機(jī)的windows xp)和應(yīng)用程序(相當(dāng)于在windows xp上運(yùn)行的程序,如金山詞霸、word等)3部分組成,或只有其中的某部分。

      #2.目標(biāo)要明確,不要得過且過,不要追逐熱門的東西。不管在什么時(shí)候,心里都要有自己的信念和理想,不要被其他東西左右了自己。

      #3要從興趣和競(jìng)爭(zhēng)出發(fā),因?yàn)檫@才是你產(chǎn)生動(dòng)力源的地方。學(xué)東西時(shí),要讓自己先喜歡上它,要學(xué)會(huì)享受學(xué)習(xí)它的時(shí)間,喜歡喬***的都知道,喬老爺子最常說(shuō)的一句就是要享受比賽的時(shí)間。因?yàn)橹挥心阆矚g上了它,享受了它,才不會(huì)被它所產(chǎn)生的壓力壓倒自己,不要產(chǎn)生一種厭惡的心理。而且心態(tài)要調(diào)整,不要一味的蠻學(xué),死學(xué),在沒有什么興趣學(xué)的時(shí)候可以先玩幾天,在回過頭來(lái),或者用其他的方式來(lái)轉(zhuǎn)換。

      #4要抱著一種十年方能磨一劍的心理,扎扎實(shí)實(shí)從基礎(chǔ)開始,不要為高速開發(fā)的一些現(xiàn)象所迷惑,那些都只是軟件的功勞。我個(gè)人認(rèn)為搞編程,英語(yǔ)和數(shù)學(xué)很重要,大家一定要時(shí)時(shí)的抓,至于怎么抓那就是另外一回事了,當(dāng)然其他的知識(shí)也要汲取,可以多接觸點(diǎn)天文,地理,人文方面的東西來(lái)補(bǔ)充自己。篇三:學(xué)習(xí)嵌入式系統(tǒng)感言

      個(gè)人覺得培訓(xùn)學(xué)校都是差不多,所學(xué)的內(nèi)容都是一樣的。您不妨自己找?guī)讉€(gè)學(xué)校的課程對(duì)比下,你就知道大同小異了,培訓(xùn)主要就是c、linux和arm課程。

      我原來(lái)也想去培訓(xùn),可是家里條件不允許,我沒有那么多錢,后來(lái)我只好自學(xué)了,不懂的就上論壇問,我自己學(xué)了四個(gè)月,差不多也入門了,現(xiàn)在也是在做嵌入式開發(fā)。想想我自己走過的路,其實(shí)我發(fā)現(xiàn),其實(shí)嵌入式并沒有想象的難,關(guān)鍵是要花時(shí)間去學(xué),要堅(jiān)持幾個(gè)月就可以了。

      如果樓主還有時(shí)間,不妨自己學(xué)下。實(shí)在覺得困難的話再去培訓(xùn)吧。當(dāng)然,樓主如果家里經(jīng)濟(jì)不錯(cuò)的話,也可以去培訓(xùn)吧。但是如果真的下決心要學(xué)的話,其實(shí)可以去找找自學(xué)的方法。

      我把我前階段看到的一篇一個(gè)??粕绾巫詫W(xué)嵌入式,里面有介紹了他的學(xué)習(xí)方法和學(xué)習(xí)過程的文章,給樓主看看,希望對(duì)你有幫助。

      ??粕鷮W(xué)嵌入式到找到工作的前前后后--學(xué)習(xí)的榜樣

      退學(xué)后我也迷茫,大專都沒有畢業(yè),我真的不知道我能干什么,我在糾結(jié)著我能做什么。所以輟學(xué)后我一段時(shí)間,我想去找工作,因?yàn)槲冶容^沉默寡言,不是很會(huì)說(shuō)話,我不適合去應(yīng)聘做業(yè)務(wù)。我想應(yīng)聘做技術(shù)的,可是處處碰壁。

      一次偶然的機(jī)會(huì),我才聽到嵌入式這個(gè)行業(yè)。那天我去新華書店,在計(jì)算機(jī)分類那邊想找本書學(xué)習(xí)。后來(lái)有個(gè)女孩子走過來(lái),問我是不是讀計(jì)算機(jī)的,有沒有興趣學(xué)習(xí)嵌入式,然后給我介紹了一下嵌入式現(xiàn)在的火熱情況,告訴我學(xué)嵌入式多么的有前景,給我了一份傳單,嵌入式培訓(xùn)的廣告。聽了她的介紹,我心里癢癢的,確實(shí)我很想去學(xué)會(huì)一門自己的技術(shù),靠自己的雙手吃飯。

      回家后,我就上網(wǎng)查了下嵌入式,確實(shí)是當(dāng)今比較熱門的行業(yè),也是比較好找工作的,工資也是相對(duì)比較高。我就下決心想學(xué)嵌入式了。于是我去找嵌入式培訓(xùn)的相關(guān)信息,說(shuō)真的,我也很迷茫,我不知道培訓(xùn)是否真的能像他們宣傳的那樣好,所以我就想了解一段時(shí)間再做打算。

      后來(lái),我在百度知道看到一篇讓我很鼓舞的文章《如何學(xué)習(xí)嵌入式》,是一個(gè)嵌入式高手介紹沒有基礎(chǔ)的朋友怎么自學(xué)入門學(xué)嵌入式,文章寫的很好,包含了如何學(xué)習(xí),該怎么學(xué)習(xí)。他提到一個(gè)方法就是看視頻,因?yàn)榭磿鴮?shí)在太枯燥和費(fèi)解的,很多我們也看不懂。這點(diǎn)我真的很認(rèn)同,我自己看書往往看不了幾頁(yè)。

      我在想,為什么別人都能自學(xué)成才,我也可以的!我要相信自己,所以我就想自學(xué),如果實(shí)在學(xué)不會(huì)我再去培訓(xùn)。主意一定,我就去搜索嵌入式的視頻,雖然零星找到一些嵌入式的視頻,但是都不系統(tǒng),我是想找一個(gè)能夠告訴我該怎么學(xué)的視頻,一套從入門到精通的視頻,一個(gè)比較完整的資料,最好能有老師教,不懂可以請(qǐng)教的。

      下面介紹下我的學(xué)習(xí)流程,希望對(duì)和我一樣完全沒有基礎(chǔ)的朋友有所幫助。

      收到他們寄過來(lái)的光盤后,我就開始學(xué)習(xí)了,由于我沒有什么基礎(chǔ),我就從最簡(jiǎn)單的c語(yǔ)言視頻教程學(xué)起,話說(shuō)簡(jiǎn)單,其實(shí)我還是很多不懂的,我只好請(qǐng)教他們,他們還是很熱心的,都幫我解決了。c語(yǔ)言我差不多學(xué)了一個(gè)禮拜,接下來(lái)我就學(xué)了linux的基本命令,我在他們提供linux虛擬機(jī)上都有做練習(xí),敲linux的基本命令,寫簡(jiǎn)單的c語(yǔ)言代碼,差不多也就三個(gè)禮拜。我每天都在不停的寫一些簡(jiǎn)單的代碼,這樣一月后我基本掌握了c和linux的基本操作。

      接下來(lái)我就去學(xué)習(xí)了人家的視頻的培訓(xùn)教程,是整套的,和去參加培訓(xùn)沒有多大的區(qū)別,這一看就是兩個(gè)月,學(xué)習(xí)了arm的基本原理,學(xué)習(xí)嵌入式系統(tǒng)的概念,也掌握了嵌入式的環(huán)境的一些搭建,對(duì)linux也有更深層次的理解了,明白了嵌入式應(yīng)用到底是怎么做的,但是驅(qū)動(dòng)我只是有一點(diǎn)點(diǎn)的了解,這個(gè)相對(duì)難一點(diǎn),我想以后再慢慢啃。

      這兩個(gè)月,除了吃飯睡覺,我?guī)缀醵荚趯W(xué)習(xí)。因?yàn)槲抑缼缀鯖]有基礎(chǔ),比別人差勁,我只能堅(jiān)持努力著,我不能放棄,我必要要靠自己來(lái)養(yǎng)活自己,必須學(xué)好這門技術(shù),同時(shí)我不懂的就問,這里真的很感謝他們的技術(shù)客服對(duì)我的任何問題都是耐心的解答,每天都我?guī)缀醵加泻脦讉€(gè)問題問他們,然后我就把不懂的問題總結(jié)記下來(lái),這樣慢慢積累了一段時(shí)間,我發(fā)現(xiàn)自己真的有點(diǎn)入門了。

      最后的一個(gè)月,我就去看關(guān)于實(shí)踐部分的內(nèi)容,了解嵌入式項(xiàng)目具體的開發(fā)流程,需要什么樣的知識(shí),我就開始準(zhǔn)備這方面的知識(shí),也就是學(xué)習(xí)這方面的視頻,同時(shí)他們建議我去找了找一些嵌入式面試的題目,為自己以后找工作做準(zhǔn)備。我就到網(wǎng)上找了很多嵌入式的題目,把他們理解的記下來(lái),這樣差不多準(zhǔn)備了20天左右

      我覺得自己差不多入門了,會(huì)做一些簡(jiǎn)單的東西了。我就想去找工作看看,于是我就到51job瘋狂的投簡(jiǎn)歷,因?yàn)槲覍W(xué)歷的問題,??茮]有畢業(yè),說(shuō)真的,大公司沒有人會(huì)要我,所以我投的都是民營(yíng)的小公司,我希望自己的努力有所回報(bào)。沒有想過幾天過后,就有面試了,但是第一次面試我失敗了,雖然我自認(rèn)為筆試很好,因?yàn)槲抑白隽藴?zhǔn)備,但是他們的要求比較嚴(yán)格,需要有一年的項(xiàng)目經(jīng)驗(yàn),所以我沒有被選中。

      把本文寫出來(lái),希望能讓和我一樣的沒有基礎(chǔ)的朋友有信心,其實(shí)我們沒有必要自卑,我們不比別人笨,只要我們肯努力,我們一樣會(huì)成功。

      在大學(xué)生如則的身上,我們看到了一種精神,就是對(duì)認(rèn)準(zhǔn)的事情,不管多困難,多曲折,都不放棄,而且要堅(jiān)定地、執(zhí)著地做下去。這是在許多成功者身上我們看到的共同的東西。搞發(fā)明創(chuàng)造是寂寞的、艱苦的,但當(dāng)一個(gè)人將它視作自己的事業(yè)和理想,它就是快樂的、充實(shí)的,堅(jiān)持下去,必將看到成功的果實(shí),世界上的許多事情亦是同理。(完)篇四:學(xué)習(xí)嵌入式心得

      實(shí)驗(yàn)報(bào)告書

      課程名: 《嵌入式系統(tǒng)及應(yīng)用》 題 目: 學(xué)習(xí)嵌入式心得

      班 級(jí):

      姓 名:

      學(xué) 號(hào):

      這學(xué)期才接觸嵌入式系統(tǒng)學(xué)了8周了感覺還稱不上入門,我通過了解知道了嵌入式的發(fā)展前景很大,各個(gè)領(lǐng)域都用到了嵌入式,學(xué)好嵌入式不愁沒飯吃。

      廣義上講,凡是帶有微處理器的專用軟硬件系統(tǒng)都是嵌入式系統(tǒng)。如各類單片機(jī)和dsp系統(tǒng)。從狹義上講,那些使用嵌入式微處理器構(gòu)成獨(dú)立系統(tǒng),具有自己操作系統(tǒng),具有特定功能,用于特定場(chǎng)合的專用軟硬件系統(tǒng)稱為嵌入式系統(tǒng)。嵌入式系統(tǒng)由嵌入式硬件與嵌入式軟件組成;嵌入式硬件以芯片、模板、組件、控制器形式埋藏于設(shè)備內(nèi)部。

      大體的嵌入式可以用下圖來(lái)表示:

      通過網(wǎng)上查詢我發(fā)現(xiàn)目前國(guó)內(nèi)外這方面的人都很稀缺。一方面,是因?yàn)檫@一領(lǐng)域入門門檻較高,不僅要懂較底層軟件(例如操作系統(tǒng)級(jí)、驅(qū)動(dòng)程序級(jí)軟件),對(duì)軟件專業(yè)水平要求較高(嵌入式系統(tǒng)對(duì)軟件設(shè)計(jì)的時(shí)間和空間效率要求較高),而且必須懂得硬件的工作原理,所以非專業(yè)it人員很難切入這一領(lǐng)域;另一方面,是因?yàn)檫@一領(lǐng)域較新,目前發(fā)展太快,很多軟硬件技術(shù)出現(xiàn)時(shí)間不長(zhǎng)或正在出現(xiàn)(如arm處理器、嵌入式操作系統(tǒng)等),掌握這些新技術(shù)的人當(dāng)然很少。嵌入式人才稀缺,身價(jià)自然就高,越有經(jīng)驗(yàn)價(jià)格就越高。其實(shí)嵌入式人才稀少,根本原因可能是大多數(shù)人無(wú)條件接觸,這需要相應(yīng)的嵌入式開發(fā)板和軟件,另外需要有經(jīng)驗(yàn)的人進(jìn)行指導(dǎo)開發(fā)流程。我們軟件系的人學(xué)習(xí)嵌入式,顯然應(yīng)偏重于嵌入式軟件,特別是嵌入式操作系統(tǒng)方面。對(duì)于搞嵌入式軟件的人,最重要的技術(shù)顯然是掌握主流嵌入式微處理器的結(jié)構(gòu)與原理,必須掌握一個(gè)嵌入式操作系統(tǒng),必須熟悉嵌入式軟件開發(fā)流程并至少做過一個(gè)嵌入式軟件項(xiàng)目。

      然而我們都沒有做過一個(gè)嵌入式軟件項(xiàng)目,甚至連嵌入式的開發(fā)流程我也不清楚,我只了解了使用簡(jiǎn)單工具做一個(gè)簡(jiǎn)單的實(shí)驗(yàn)。只有去專研才能在嵌入式的領(lǐng)域站住腳,只有知道的比別人多才會(huì)更有競(jìng)爭(zhēng)力。通過網(wǎng)上了解,我查詢了嵌入式的入門和所需要的知識(shí),其中c語(yǔ)言尤為重要,不管是做嵌入式軟件還是硬件開發(fā)的人員,對(duì)c語(yǔ)言的掌握這個(gè)是必需的,特別是對(duì)于以后致力于嵌入式軟件開發(fā)的人,現(xiàn)在絕大部分都是用c語(yǔ)言。其次,應(yīng)該對(duì)操作系統(tǒng)有所

      了解,這對(duì)你對(duì)硬件和軟件的理解,絕對(duì)有很大的幫助。應(yīng)該把系統(tǒng)的管理理解一下,比如進(jìn)程、線程,系統(tǒng)如何來(lái)分配資源的,系統(tǒng)如何來(lái)管理硬件的;知道了c語(yǔ)言和操作系統(tǒng)之后,再來(lái)看看嵌入式系統(tǒng),我們主要學(xué)的是arm,用的是arm7,深入理解arm不是件容易的事,只有在知道arm相關(guān)知識(shí)之后才能稱得上嵌入式已經(jīng)入門了。

      與嵌入式有關(guān)的知識(shí)我也學(xué)了不少就是不能夠綜合在一起運(yùn)用,組成原理,數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng),c++,這3門與嵌入式密切相關(guān)的學(xué)科都系統(tǒng)的學(xué)了一遍,但由于長(zhǎng)時(shí)間沒用到都有點(diǎn)忘記了,從網(wǎng)上得知嵌入式的學(xué)習(xí)與這些書有很大關(guān)系之后,我把嵌入式與以前學(xué)過的知識(shí)結(jié)合起來(lái)發(fā)現(xiàn)嵌入式的實(shí)驗(yàn)中很多都是共通的,我對(duì)嵌入式有了初步的理解。我們這學(xué)期的嵌入式課本名為《嵌入式系統(tǒng)開發(fā)與應(yīng)用教材》由北京航空航天大學(xué)出版社出版,其中講到了嵌入式系統(tǒng)的開發(fā)基礎(chǔ),arm相關(guān)技術(shù)以及基于arm的嵌入式軟件開發(fā)基礎(chǔ),還提到了基于s3c44b0x嵌入式系統(tǒng)應(yīng)用開發(fā)實(shí)例,這些書上都提到但卻不是很全,并沒有叫我們?cè)趺慈W(xué)好嵌入式系統(tǒng)相關(guān)開發(fā)實(shí)例或過程。

      我以為學(xué)習(xí)嵌入式應(yīng)該分為2個(gè)部分:軟件和硬件。關(guān)于硬件方面我接觸到了數(shù)字電路教材和模擬電路方面的知識(shí),但由于沒有嵌入式cpu很難親自動(dòng)手來(lái)實(shí)現(xiàn)嵌入式的相關(guān)理論;嵌入式入門則需要不斷地實(shí)驗(yàn)與分析,我只在實(shí)驗(yàn)課時(shí)做幾個(gè)與所給的程序相關(guān)的小程序來(lái)實(shí)現(xiàn)一下;而軟件方面則學(xué)過c語(yǔ)言,里面通常的語(yǔ)法曾今熟悉過;我通過下列方法來(lái)適應(yīng)c語(yǔ)言在嵌入式中應(yīng)用:首先重新翻看了下c的教材,看了些常見的語(yǔ)法,接著在編譯器的角度來(lái)看待c,編譯原理我剛學(xué)過,其中將高級(jí)語(yǔ)言與低級(jí)語(yǔ)言的翻譯感覺在嵌入式中用到了很多;最后沖硬件的角度來(lái)看待c。嵌入式的核心包括嵌入式操作系統(tǒng),嵌入式軟件開發(fā)平臺(tái)及工具以及嵌入式應(yīng)用軟件。這些決定怎樣才能開發(fā)一個(gè)好的嵌入式系統(tǒng)。

      我們上課學(xué)的都是怎么樣調(diào)試嵌入式系統(tǒng)可以通過下面的圖來(lái)演示:

      下面談?wù)勎伊私獾那度胧降南嚓P(guān)知識(shí)與應(yīng)用:

      首先,嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),且軟硬件可裁減,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式有如下幾個(gè)突出的有點(diǎn)1.系統(tǒng)內(nèi)核小,2專用性強(qiáng),3系統(tǒng)精簡(jiǎn)4高實(shí)時(shí)性os5嵌入式系統(tǒng)的應(yīng)用程序可以沒有操作系統(tǒng)直接在芯片上運(yùn)行,6嵌入式系統(tǒng)需要開發(fā)工具和環(huán)境。

      嵌入式系統(tǒng)是近幾年才風(fēng)靡起來(lái)的,但是這個(gè)概念并非新近才出現(xiàn)。從20世紀(jì)七十年代單片機(jī)(最早的單片機(jī)是intel公司的 8048,出現(xiàn)在1976年)的出現(xiàn)到今天各式各樣的嵌

      入式微處理器,微控制器的大規(guī)模應(yīng)用,嵌入式系統(tǒng)已經(jīng)有了近30年的發(fā)展歷史。經(jīng)過30年的發(fā)展,嵌入式技術(shù)已經(jīng)日趨成熟,在中國(guó)嵌入式機(jī)一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶的應(yīng)用程序等四個(gè)部分組成,用于實(shí)現(xiàn)對(duì)其他設(shè)備的控制、監(jiān)視或管理等功能。

      其次,嵌入式系統(tǒng)無(wú)疑是當(dāng)前最熱門最有發(fā)展前途的it應(yīng)用領(lǐng)域之一。嵌入式系統(tǒng)用在一些特定專用設(shè)備上,通常這些設(shè)備的硬件資源(如處理器、存儲(chǔ)器等)非常有限,并且對(duì)成本很敏感,有時(shí)對(duì)實(shí)時(shí)響應(yīng)要求很高等。特別是隨著消費(fèi)家電的智能化,嵌入式更顯重要。嵌入式系統(tǒng)是軟硬結(jié)合的學(xué)科,通常有兩類人會(huì)去專研嵌入式:一類是學(xué)電子工程、通信工程等偏硬件專業(yè)的,另一類是學(xué)軟件、計(jì)算機(jī)專業(yè)出身的人,主要從事嵌入式操作系統(tǒng)和應(yīng)用軟件的開發(fā)。我是軟件專業(yè)的學(xué)習(xí)嵌入式,越是智能設(shè)備越是復(fù)雜系統(tǒng),軟件越起關(guān)鍵作用,而且這是目前的趨勢(shì)。嵌入式應(yīng)用在很多方面,具體的可以分為工業(yè)控制,交通管理,信息家電,家庭智能管理系統(tǒng),pos網(wǎng)絡(luò)及電子商務(wù),環(huán)境工程與自然,機(jī)器人,機(jī)電產(chǎn)品方面應(yīng)用等方面。其中目前在服務(wù)領(lǐng)域,如遠(yuǎn)程點(diǎn)菜器等已經(jīng)體現(xiàn)了嵌入式系統(tǒng)的優(yōu)勢(shì)。例外還有很多地方用到了嵌入式系統(tǒng),最近飛利浦和arm共同推出32位risc嵌入式控制器,適用于工業(yè)控制,采用最先進(jìn)的0.18微米cmos嵌入式閃存處理技術(shù),操作電壓可以低至1.2伏,它還能降低25%到30%的制造成本,在工業(yè)領(lǐng)域中對(duì)最終用戶而言是一套極具成本效益的解決方案。下圖為一個(gè)真實(shí)的嵌入式系統(tǒng)實(shí)例,全套采用嵌入式系統(tǒng)制作的污水管理系統(tǒng): 其實(shí)用到嵌入式的地方還有很多,隨著計(jì)算機(jī)的飛速發(fā)展嵌入式的價(jià)格越來(lái)越便宜也將更加普及,嵌入式是一門前途光明的學(xué)科。

      通過8周的學(xué)習(xí)學(xué)到的并不是很多,要想在這個(gè)領(lǐng)域中有所作為還需深入研究,我要走的路還有很多但我會(huì)一步一步走下去的。

      篇五:學(xué)習(xí)嵌入式的心得

      嵌入式學(xué)習(xí)[轉(zhuǎn)貼] 怎樣做才能快速的嵌入式了? 其實(shí),做工程是沒有捷徑可走的

      先說(shuō)做硬件: 把你的數(shù)字電路教材和模擬電路的教材讀熟,暫時(shí)先把重點(diǎn)放在數(shù)字電路上面,接著把微機(jī)原理和接口技術(shù)讀熟悉了,最好能用匯編寫幾個(gè)簡(jiǎn)單的程序上機(jī)調(diào)試一下,這是很重要的。

      完成上面的工作大概需要半年,不管你有多么的聰明,除非你以前這個(gè)基礎(chǔ)就打的不錯(cuò),否則,還是老老實(shí)實(shí)花上至少半年的時(shí)間!還是那句話,沒有捷徑可走,如果你相信那些什么“21天學(xué)通xx”什么的,那么我告訴你,放棄做工程吧!再說(shuō),你這么容易就學(xué)會(huì)了,別人也能的,你確定能拿到高薪嗎?

      下一步,就是選擇一個(gè)dsp(或其它的嵌入式cpu)平臺(tái)作為你的目標(biāo)平臺(tái),先熟悉它的架構(gòu)和與外圍電路的接口,然后學(xué)習(xí)她的指令集,也要寫一些小程序去跑一下。這個(gè)時(shí)候,你應(yīng)該去買一個(gè)開發(fā)板了,一般的廠家附帶會(huì)給你一些demo程序,看懂它,理解它,修改它,在你的板子上跑一跑。完成上面兩步,說(shuō)明你已經(jīng)入了這個(gè)行業(yè)的門了,下一步,想成為高手的話,就是自己去設(shè)計(jì)一些項(xiàng)目了,這個(gè)階段所花的時(shí)間每個(gè)人都是不同的,要看你的造化(主要是前面的基礎(chǔ)是否牢固)了。

      再說(shuō)說(shuō)軟件:

      在嵌入式行業(yè),你想做軟件開發(fā)的話,沒別的,那就深入理解c語(yǔ)言,尤其是c的指針,如果你以前學(xué)過c,但是沒有意識(shí)到c相比其它的高級(jí)語(yǔ)言的優(yōu)點(diǎn)的話(不是聽別人說(shuō)的,你自己的體會(huì)),你可以按下面步驟來(lái)理解c:

      1、重新翻一遍c的教材,記住一些常用的c語(yǔ)法,但不要死摳語(yǔ)法;

      2、從編譯器的角度來(lái)理解c;

      從編譯原理的角度來(lái)理解你工作中使用的高級(jí)語(yǔ)言,如果你做到這一點(diǎn),至少有兩個(gè)好處: 第一個(gè)好處是避免一大堆低水平重復(fù)出現(xiàn)的編譯錯(cuò)誤。一名優(yōu)秀的coder平均在一個(gè)工作日中應(yīng)該完成200行以上的源碼,其編譯錯(cuò)誤應(yīng)該控制在5個(gè)以下,要知道這200行源碼不是一次完成的,所以大多數(shù)情況下你都要追求一次編譯通過;

      第二個(gè)好處是可以提高源碼的可讀性和效率。規(guī)范地編寫你的代碼使你自己的邏輯清晰,因?yàn)槟忝靼锥嗉訋讉€(gè)括號(hào)和空行、多換行對(duì)齊、多注釋,編譯器是會(huì)自動(dòng)識(shí)別的,不影響程序執(zhí)行的效率,反過來(lái),控制好遞歸調(diào)用和循環(huán)內(nèi)的if語(yǔ)句才是提高程序效率的關(guān)鍵,要全力避免遞歸,但要深刻理解遞歸,能通過自己建立堆棧來(lái)把遞歸程序轉(zhuǎn)換成非遞歸程序,要求還是較高的哦!

      3、從硬件的角度來(lái)理解c。

      完成上面3步,你就是c的高手了,接下來(lái)應(yīng)該去看看軟件工程方面的書了,這個(gè)我還不太懂,不敢妄言。

      另外說(shuō)說(shuō)教材的選擇:學(xué)一門東西,選好你的教材,只要一本就可以了。堅(jiān)決防止這種情況的出現(xiàn):去圖書館借很多本書,像搶劫似的,而只是每一本都翻翻,就又還給圖書館了的!注意上面我把匯編語(yǔ)言放在硬件學(xué)習(xí)的板塊里面,是由于匯編跟硬件的關(guān)系太緊密了,以至于是先學(xué)匯編還是先學(xué)習(xí)硬件電路和cpu架構(gòu)成了要分清到底是“先有雞還是先有蛋”的千年哲學(xué)難題了。

      嵌入式操作系統(tǒng)一覽

      其實(shí),嵌入式系統(tǒng)并不是一個(gè)新生的事物,從八十年代起,國(guó)際上就有一些it組織、公司,開始進(jìn)行商用嵌入式系統(tǒng)和專用操作系統(tǒng)的研發(fā)。這其中涌現(xiàn)了一些著名的嵌入式系統(tǒng): windows ce microsoft windows ce是從整體上為有限資源的平臺(tái)設(shè)計(jì)的多線程、完整優(yōu)先權(quán)、多任務(wù)的操作系統(tǒng)。它的模塊化設(shè)計(jì)允許它對(duì)于從掌上電腦到專用的工業(yè)控制器的用戶電子設(shè)備進(jìn)行定制。操作系統(tǒng)的基本內(nèi)核需要至少200k的rom。

      vxworks vxworks是目前嵌入式系統(tǒng)領(lǐng)域中使用最廣泛、市場(chǎng)占有率最高的系統(tǒng)。它支持多種處理器,如x8

      6、i960、sun sparc、motorola mc68xxx、mips rx000、power pc等等。大多數(shù)的vxworks api是專有的。采用gnu的編譯和調(diào)試器。

      psos isi公司已經(jīng)被winriver公司兼并,現(xiàn)在psos屬于windriver公司的產(chǎn)品。這個(gè)系統(tǒng)是一個(gè)模塊化、高性能的實(shí)時(shí)操作系統(tǒng),專為嵌入式微處理器設(shè)計(jì),提供一個(gè)完全多任務(wù)環(huán)境,在定制的或是商業(yè)化的硬件上提供高性能和高可靠性??梢宰岄_發(fā)者根據(jù)操作系統(tǒng)的功能和內(nèi)存需求定制成每一個(gè)應(yīng)用所需的系統(tǒng)。開發(fā)者可以利用它來(lái)實(shí)現(xiàn)從簡(jiǎn)單的單個(gè)獨(dú)立設(shè)備到復(fù)雜的、網(wǎng)絡(luò)化的多處理器系統(tǒng)。

      qnx qnx是一個(gè)實(shí)時(shí)的、可擴(kuò)充的操作系統(tǒng),它部分遵循posix相關(guān)標(biāo)準(zhǔn),如:posix.1b實(shí)時(shí)擴(kuò)展。它提供了一個(gè)很小的微內(nèi)核以及一些可選的配合進(jìn)程。其內(nèi)核僅提供4種服務(wù):進(jìn)程調(diào)度、進(jìn)程間通信、底層網(wǎng)絡(luò)通信和中斷處理,其進(jìn)程在獨(dú)立的地址空間運(yùn)行。所有其它os服務(wù),都實(shí)現(xiàn)為協(xié)作的用戶進(jìn)程,因此qnx內(nèi)核非常小巧(qnx4.x大約為12kb)而且運(yùn)行速度極快。這個(gè)靈活的結(jié)構(gòu)可以使用戶根據(jù)實(shí)際的需求,將系統(tǒng)配置成微小的嵌入式操作系統(tǒng)或是包括幾百個(gè)處理器的超級(jí)虛擬機(jī)操作系統(tǒng)。

      palm os os-9 microwave的os-9是為微處理器的關(guān)鍵實(shí)時(shí)任務(wù)而設(shè)計(jì)的操作系統(tǒng),廣泛應(yīng)用于高科技產(chǎn)品中,包括消費(fèi)電子產(chǎn)品、工業(yè)自動(dòng)化、無(wú)線通訊產(chǎn)品、醫(yī)療儀器、數(shù)字電視/多媒體設(shè)備。它提供了很好的安全性和容錯(cuò)性。與其他的嵌入式系統(tǒng)相比,它的靈活性和可升級(jí)性非常突出。lynxos lynx real-time systems的lynxos是一個(gè)分布式、嵌入式、可規(guī)模擴(kuò)展的實(shí)時(shí)操作系統(tǒng),它遵循posix.1a、posix.1b和posix.1c標(biāo)準(zhǔn)。lynxos支持線程概念,提供256個(gè)全局用戶線程優(yōu)先級(jí);提供一些傳統(tǒng)的、非實(shí)時(shí)系統(tǒng)的服務(wù)特征;包括基于調(diào)用需求的虛擬內(nèi)存,一個(gè)基于motif的用戶圖形界面,與工業(yè)標(biāo)準(zhǔn)兼容的網(wǎng)絡(luò)系統(tǒng)以及應(yīng)用開發(fā)工具。

      目前,世面上有很多商業(yè)性嵌入式系統(tǒng)都在努力地為自己爭(zhēng)取著嵌入式市場(chǎng)的份額。但是,這些專用操作系統(tǒng)均屬于商業(yè)化產(chǎn)品,價(jià)格昂貴;而且,由于它們各自的源代碼不公開,使得每個(gè)系統(tǒng)上的應(yīng)用軟件與其它系統(tǒng)都無(wú)法兼容。并且,由于這種封閉性還導(dǎo)致了商業(yè)嵌入式系統(tǒng)在對(duì)各種設(shè)備的支持

      方面存在很大的問題,使得對(duì)它們的軟件移植變得很困難。在嵌入式這個(gè)it產(chǎn)業(yè)的新的關(guān)鍵領(lǐng)域,linux操作系統(tǒng)適時(shí)地出現(xiàn)在了國(guó)家和國(guó)內(nèi)各嵌入式廠商面前,由于linux自身諸多優(yōu)勢(shì),吸引了許多開發(fā)商的目光,成為嵌入式操作系統(tǒng)的新寵。它的出現(xiàn)無(wú)疑為國(guó)家發(fā)展嵌入式操作系統(tǒng)事業(yè)提供了一個(gè)極有吸引力的機(jī)會(huì)。

      前言

      這個(gè)題目很大,給人一種感覺我好像很成功,其實(shí)不然。實(shí)際上自己水平不高,甚至很低,但是做過了一些曲折的學(xué)習(xí)道路,同時(shí)把自己真實(shí)的學(xué)習(xí)歷程表達(dá)出來(lái),希望對(duì)后來(lái)者有借鑒的意義,甚幸!

      工作三年、幾成廢人!

      我2000年畢業(yè)于華中地區(qū)的一個(gè)理工科大學(xué),專業(yè)是機(jī)械電子,我當(dāng)時(shí)已經(jīng)簽了一家內(nèi)陸某個(gè)省級(jí)機(jī)關(guān)工作,家里八輩是農(nóng)民,并且很偏遠(yuǎn),能夠進(jìn)入這樣的地方是祖墳有風(fēng)水。但在畢業(yè)前夕有個(gè)進(jìn)入it的機(jī)會(huì),我本想進(jìn)去的,家里人極力反對(duì),阻力可想而知。同時(shí)要交4000元的違約金,對(duì)我來(lái)說(shuō)是天文數(shù)字。大學(xué)里的費(fèi)用很多是借的,幾乎將近一半的費(fèi)用是在大學(xué)勤工儉學(xué)掙的,為了省錢,高中一個(gè)學(xué)期回家一次,大學(xué)一年回去一次。并且我個(gè)人也有特殊的人生背景(悲景更確切),這里不多說(shuō)了,寫十篇也寫不完,同時(shí)偏離主題。這樣我就參加了工作。一張報(bào)紙一杯茶的日子,幾乎下班后有種很空虛和恐慌的感覺。在工作中雖然是與自己專業(yè)有點(diǎn)關(guān)系,但是很少。專業(yè)幾乎荒廢。我自己也思考,如果再不出去,自己將會(huì)成廢人,只好讓國(guó)家養(yǎng)了。兩年后決定出去,但是幾成廢人,誰(shuí)要呢,只好到學(xué)校去鍍金。這是中國(guó)教育和社會(huì)的悲哀!

      至于專業(yè)就改為計(jì)算機(jī)方面,聽說(shuō)好找工作,我說(shuō)實(shí)話不是很對(duì)計(jì)算機(jī)特別感興趣,生存第一需要。不要笑我,哈哈!

      考研成績(jī)出來(lái),超過了國(guó)家線幾十分。那個(gè)方向要兩個(gè),我第三,但是那年非碘,不面試就按分?jǐn)?shù)來(lái)排,自然我落選了。其實(shí)給我面試機(jī)會(huì)也不一定要我,哈哈,自己幾斤幾兩很清楚。

      最后調(diào)劑到另外一個(gè)學(xué)校,交錢,咬咬牙,交吧!現(xiàn)在仍然債臺(tái)高筑!

      進(jìn)入學(xué)校前夕

      為什么要把這段列出,看后就知道了。

      單位有網(wǎng)絡(luò),經(jīng)常上網(wǎng)查些英語(yǔ)資料,在那里唯獨(dú)英語(yǔ)沒有丟很多。于是我就在網(wǎng)上查資料,學(xué)什么好呢,最后確定學(xué)嵌入式把,聽說(shuō)跟硬件相對(duì)比較緊密!而我在大學(xué)里多少學(xué)習(xí)了數(shù)字電路,單片機(jī)等,所以多少也有所利用,不會(huì)真的一無(wú)所知。當(dāng)然在這之前也自學(xué)過數(shù)據(jù)結(jié)構(gòu),計(jì)算機(jī)組成原理等。

      c 語(yǔ)言在大學(xué)就學(xué)了。哈哈這就是我的家底。

      我知道自己的基礎(chǔ)差,于是我就拿操作系統(tǒng),數(shù)據(jù)庫(kù)、數(shù)據(jù)結(jié)構(gòu)、c++來(lái)看,機(jī)關(guān)有這個(gè)好處,空余時(shí)間多,于是平常就看書,很痛苦,沒有人請(qǐng)教。

      另外就上網(wǎng)到論壇上去,我就到各個(gè)專業(yè)的技術(shù)論壇,其實(shí)是電子論壇和嵌入式論壇。我?guī)缀鯖]有發(fā)帖,幾乎把幾個(gè)大型的出名的論壇的帖子翻遍了,雖然有很多重復(fù)的,我才知道嵌入式是個(gè)什么東東。這些帖子對(duì)我以后的學(xué)習(xí)產(chǎn)生了極大的影響。

      最關(guān)鍵兩點(diǎn):

      1、嵌入式是什么?

      2、嵌入式需要哪些知識(shí)?

      知道了這兩點(diǎn),好辦!我就開始規(guī)劃學(xué)習(xí)路線。計(jì)算機(jī)的基本理論不能丟,于是重點(diǎn)看組成原理,數(shù)據(jù)機(jī)構(gòu),操作系統(tǒng)、c++。同時(shí)論壇上了解到,實(shí)時(shí)操作系統(tǒng)ucos是一個(gè)很好的嵌入式操作系統(tǒng),對(duì)初學(xué)者很好。于是我就買了一本書,但是代碼在電腦里調(diào)不通,網(wǎng)上也有很多相同的問題,我就看書,分析代碼,一遍不行就兩遍,三遍,這樣才看了入了門,才知道什么是進(jìn)程。原來(lái)看操作系統(tǒng)書時(shí),根本就不知道進(jìn)程是個(gè)什么東西。

      在這段時(shí)間掌握的東西不多,但是,對(duì)我以后的影響很大,我想起了大學(xué)時(shí)一個(gè)同學(xué)跟我說(shuō)過了一句話:大學(xué)里最重要的不是學(xué)到了什么,最重要的是學(xué)會(huì)怎么學(xué)!大概是這個(gè)意思。

      進(jìn)入我的避難所

      對(duì)我來(lái)講,再次進(jìn)入大學(xué)不再是大學(xué),而是避難所。希望這次進(jìn)入給我喘氣和養(yǎng)精蓄銳的機(jī)會(huì)和時(shí)間。我是這樣認(rèn)為和實(shí)踐的。

      在學(xué)校我有三件事:上課,上圖書館,上網(wǎng)。

      對(duì)于上課,學(xué)校開了很多課程,非常好,很多是名人名師講解,于是很多同學(xué)都想學(xué),都去聽。我也考慮過,最后放棄。我是這樣認(rèn)為的,時(shí)間是有限的,什么都想學(xué),什么都學(xué)不成。于是我把我自己學(xué)的課進(jìn)行了分化,一般的課程通過就行,重要的一定好好學(xué)。我希望不要什么爭(zhēng)論學(xué)習(xí)課程多和少的問題,這僅僅是我的看法。所以我的成績(jī)應(yīng)該是很差的。分?jǐn)?shù)低。好在后來(lái)的單位沒有要我的成績(jī)單,否則就慘了。

      我個(gè)人感覺是上圖書館的效率比在寢室里高多了,這是我的經(jīng)驗(yàn)。

      有人會(huì)問,您下了那么多資料,怎么看的完和消化的了呢?

      我是這樣對(duì)待這個(gè)問題的:

      1、網(wǎng)上資料比較零散,不系統(tǒng),但是如果把差不多的東西收集起來(lái)看就相對(duì)完整了,(嵌入式的圖書就是這兩年特別多,特別是2004年,簡(jiǎn)直是向外涌!2003年想買本嵌入式,特別是嵌入式linux的不多。)

      2、對(duì)于像我這種入門的來(lái)說(shuō),很多看不懂,沒關(guān)系,反復(fù)看,我個(gè)人對(duì)學(xué)習(xí)方法的一個(gè)總結(jié)是:重復(fù)是最好的老師!

      3、即使有的用不上,也可以收集以后用的上時(shí)查閱。

      但是我并非什么都要,目前我的技術(shù)路線是嵌入式linux,所以像wince之類基本上不

      收集。

      總之,我在學(xué)校里我充分利用時(shí)間來(lái)學(xué)習(xí),我看到一些同學(xué)整天的掛在網(wǎng)上打游戲,發(fā)

      些無(wú)關(guān)痛癢的帖子,浪費(fèi)時(shí)間呀!我真的很痛心!

      學(xué)習(xí)嵌入式

      在這里我把它單獨(dú)列出,文章有點(diǎn)紊亂,但是內(nèi)容希望有益。

      1、學(xué)習(xí)linux 根據(jù)我在論壇的了解,我選擇學(xué)習(xí)嵌入式linux,剛好我們學(xué)校也重視嵌入式linux,從實(shí)驗(yàn)室到課程安排都是關(guān)于嵌入式linux方面,天時(shí)地利!這里我把學(xué)習(xí)linux的經(jīng)驗(yàn)和教訓(xùn)說(shuō)說(shuō)。

      可以這樣說(shuō),在論壇里說(shuō)道學(xué)習(xí)linux差不多就學(xué)習(xí)linux內(nèi)核。于是我電腦里安裝了linux就開始看linux內(nèi)核方面的書了。我記得來(lái)學(xué)校以前就買到一本陳莉君的講linux內(nèi)核的第一版,現(xiàn)在有第二版了。我就開始看那本說(shuō),大家說(shuō)linux內(nèi)核情景分析不錯(cuò),我就買了上下冊(cè),后來(lái)又買了 《深入理解linux內(nèi)核》,最后也買了毛德操的《嵌入式系統(tǒng)》也是分析linux內(nèi)核代碼的,主要講arm相關(guān)的。

      看內(nèi)核期間是個(gè)非常痛苦的過程,看情景分析有種在森林中找出路,其間我組織了一些同學(xué)學(xué)習(xí)內(nèi)核,幾乎沒有幾個(gè)能堅(jiān)持下來(lái)的。我認(rèn)為我是堅(jiān)持下來(lái)了。情景分析在看第一、第二遍是幾乎沒有摸到門道,我分析有三個(gè)方面的原因:

      1、自己的基礎(chǔ)差,這是最關(guān)鍵的。

      2、內(nèi)核本身很難。

      3、沒有交流和高人指點(diǎn)。到了第三遍時(shí)我才摸到門,才差不多知道個(gè)linux的大概脈絡(luò),很多細(xì)節(jié)也是稀里糊涂。

      學(xué)習(xí)linux總結(jié),這里聲明一下,我指的嵌入式主要是偏向軟件的嵌入式。學(xué)習(xí)嵌入式的重點(diǎn)和難點(diǎn)關(guān)鍵在操作系統(tǒng),如果沒有掌握操作系統(tǒng),我認(rèn)為很難把握一個(gè)嵌入式系統(tǒng)。即使在做嵌入式開發(fā)中,作應(yīng)有層的開發(fā)幾乎可以不知道操作系統(tǒng)也可以開發(fā),我認(rèn)為那是浮在表面的。很難深入和提高自己的層次。聲明:一孔之見!不可深究!

      在學(xué)習(xí)linux內(nèi)核過程中犯了一個(gè)極其嚴(yán)重路線錯(cuò)誤:對(duì)linux幾乎不懂就開始學(xué)習(xí)內(nèi)核。我個(gè)人推薦一個(gè)學(xué)習(xí)路線是:使用linux—〉linxu系統(tǒng)編程開發(fā)---〉驅(qū)動(dòng)開發(fā)和分析linux內(nèi)核。而我差不多相反,實(shí)際上你不會(huì)使用linux也可以學(xué)習(xí)內(nèi)核,但是如果你懂了這些東西學(xué)習(xí)更有效率。

      關(guān)于要不要學(xué)習(xí)內(nèi)核的問題,我的回答如下:不一定。如果你是喜歡鉆研的那你進(jìn)入內(nèi)核會(huì)滿足你的欲望。同時(shí)對(duì)你以后的嵌入式系統(tǒng)的開發(fā)有很好的影響。如果你想從事嵌入式linux系統(tǒng)開發(fā),最好對(duì)內(nèi)核有所了解。如果僅僅是做應(yīng)用開發(fā)沒有必要。我打個(gè)比喻:c、c++、java等語(yǔ)言是武林中的某個(gè)武林派別的話,如什么拳法,什么刀法等,那么linux 內(nèi)核應(yīng)該是一個(gè)人的內(nèi)功的反應(yīng)。怎么開始學(xué)linux內(nèi)核:最好有三件寶物:《深入理解linux內(nèi)核》《情景分析》和源代碼。

      先看《深》,那主要講原理,好像市場(chǎng)上有本講原理性并且更淺,《linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)》聽說(shuō)不錯(cuò)。如果沒有學(xué)習(xí)操作系統(tǒng)的,像我這樣的,最好先看看操作系統(tǒng)原理的書。看了幾遍后,就看情景分析,最好對(duì)著《深》看。兩本交叉看,《深》是綱,《情》是目。最后深入代碼。

      2、學(xué)習(xí)嵌入式linux 學(xué)習(xí)嵌入式,我認(rèn)為兩個(gè)重點(diǎn),cpu和操作系統(tǒng),目前市場(chǎng)是比較流行arm,所以推薦大家學(xué)習(xí)arm。操作系統(tǒng)很多,我個(gè)人對(duì)開始學(xué)習(xí)的人,特別不是計(jì)算機(jī)專業(yè)的,推薦學(xué)習(xí)ucos。那是開源的,同時(shí)很小。學(xué)習(xí)很好。為什么選linux,我不想講太多,網(wǎng)上這方面的太多,但是我在工作中發(fā)現(xiàn),做linux的技術(shù)路線很難,在windows幾乎不會(huì)有的問題,在linux開發(fā)中幾乎遍地陷阱。一掉進(jìn)去劃很長(zhǎng)時(shí)間出來(lái),一旦解決自己又長(zhǎng)進(jìn)了!相對(duì)來(lái)說(shuō)開發(fā)周期長(zhǎng),難度大?,F(xiàn)在資料也逐漸豐富起來(lái),難度也降低了些!

      至于怎么學(xué)習(xí),這是他的特色地方,必須有塊開發(fā)板,我是同學(xué)里最早買學(xué)習(xí)板的,雖然化錢,我認(rèn)為值。對(duì)我實(shí)習(xí)和工作產(chǎn)生了很大的影響。

      如果沒有開發(fā)板,那是紙上談兵。有人說(shuō),那要1000-2000亞,的確是,兄弟,看長(zhǎng)遠(yuǎn)的,對(duì)您的職業(yè)和發(fā)展那點(diǎn)錢不算什么!有的人說(shuō)我站著說(shuō)話不腰痛,好吧,錢這東西對(duì)我影響很大,我在大學(xué)里掃廁所,掃的不錯(cuò),獎(jiǎng)5元/月。兄弟你有過嗎?我認(rèn)為教育投資是效益最有保障的!我實(shí)習(xí)拿3k,很多同學(xué)拿1-2k,當(dāng)然比我高的也有。雖然我現(xiàn)在沒有畢業(yè),但一家公司就簽了。從事目前流行的高檔的消費(fèi)電子的研發(fā)。對(duì)于我兩年前一無(wú)所知的我,應(yīng)該有質(zhì)的變化,我感謝學(xué)校收了我這個(gè)廢品。當(dāng)然我也非常的努力。說(shuō)這么多并不是要炫耀我什么,實(shí)際上根本不值得炫耀,雖然現(xiàn)在工作環(huán)境和待遇比較滿意,但是,我發(fā)現(xiàn)我很差,特別是代碼能力,我希望平常大家少玩游戲,多編程。編程才是硬道理!

      3、學(xué)習(xí)板和培訓(xùn) 你可以不接受培訓(xùn),但是不能不買開發(fā)板。如果你想學(xué)習(xí)嵌入式一定要買塊學(xué)習(xí)板,最好買塊arm9的,貴些也值??梢耘芨呒?jí)操作系統(tǒng)。這個(gè)不要什么品牌公司的,一般不會(huì)出什么問題,市場(chǎng)上的板子一般是三星的2410,基本上是抄的。如果是做產(chǎn)品那要注意些。一般的公司一般要2000,加lcd要3000甚至更多。我接觸到有的板只要1200,加lcd也就2000,差別比較大,我認(rèn)為學(xué)習(xí)都?jí)蚶病?/p>

      對(duì)于培訓(xùn),如果有條件最好參加,主要是嵌入式相對(duì)別的不同,自己摸索很費(fèi)時(shí),如果有高手指點(diǎn)非常的好,進(jìn)步快。特別是認(rèn)識(shí)做這些的朋友。我接受過培訓(xùn),認(rèn)識(shí)個(gè)朋友。在以后的工作中幫我很多,在這里謝謝他!我記得哈佛的一個(gè)mba的學(xué)生這樣說(shuō),大意是:在哈佛學(xué)到什么不重要,最重要的是這些未來(lái)各大公司的高級(jí)管理人員是我的同學(xué)!真是有遠(yuǎn)見!

      目前市場(chǎng)是培訓(xùn)比較貴,一個(gè)星期兩三千,真正算起來(lái)也要,那些講師待遇絕對(duì)不會(huì)低。但是有個(gè)致命的問題是連續(xù)上課,一連幾天,效果不佳。我希望社會(huì)上多出些1000元左右,并且時(shí)間長(zhǎng)些,如一個(gè)月,一周一到兩次課。如果沒人做,我來(lái)做,哈哈!

      沒有想到,一下寫了這么多,其實(shí)還想寫的,比如在中科院的一位老兄是怎樣學(xué)習(xí)linux內(nèi)核和看書的,真的很感動(dòng)。他的為人我很欽佩。

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

      嵌入式系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)報(bào)告

      班 級(jí):學(xué) 號(hào):姓 名:成 績(jī):指導(dǎo)教師:

      20110612 2011061208 李曉虹 武俊鵬、劉書勇

      1.實(shí)驗(yàn)一

      1.1 實(shí)驗(yàn)名稱

      博創(chuàng)UP-3000實(shí)驗(yàn)臺(tái)基本結(jié)構(gòu)使用方法

      1.2 實(shí)驗(yàn)?zāi)康?/p>

      1.熟悉嵌入式系統(tǒng)開發(fā)式流程概述。

      2.熟悉UP-net3000實(shí)驗(yàn)平臺(tái)的核心硬件電路和外設(shè)。3.熟悉ARM JTAG的安裝與使用。

      1.3 實(shí)驗(yàn)環(huán)境

      硬件:ARM 嵌入式開發(fā)平臺(tái)、用于ARM7TDMI 的JTAG 仿真器、PC 機(jī)Pentium100 以 上、串口線。

      軟件:PC 機(jī)操作系統(tǒng)win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成開發(fā)

      環(huán)境、仿真器驅(qū)動(dòng)程序、超級(jí)終端通訊程序。

      1.4 實(shí)驗(yàn)內(nèi)容及要求

      1.熟悉嵌入式系統(tǒng)開發(fā)式流程概述。

      2.熟悉UP-net3000實(shí)驗(yàn)平臺(tái)的核心硬件電路和外設(shè)。3.熟悉ARM JTAG的安裝與使用。

      1.5 實(shí)驗(yàn)設(shè)計(jì)與實(shí)驗(yàn)步驟

      1.新建超級(jí)終端

      2.選擇ARM 開發(fā)實(shí)驗(yàn)臺(tái)串口。

      完成新建超級(jí)終端的設(shè)置以后,可以選擇超級(jí)終端文件菜單中的保存,將當(dāng)前設(shè)置 3.保存為一個(gè)特定超級(jí)終端到桌面上,以備后用。用串口線將PC 機(jī)串口和平臺(tái)UART0 正確連接后,就可以在超級(jí)終端上看到程序輸出的信息了。4.啟動(dòng)開發(fā)板,按住任意鍵,使開發(fā)板進(jìn)入BIOS設(shè)置狀態(tài)。

      5.在超級(jí)終端的界面上,顯示BIOS版本信息,以及相應(yīng)的測(cè)試指令。操作時(shí),要在PC機(jī)上輸入小寫的字母快捷鍵,進(jìn)入到相應(yīng)的功能中去。6.按照超級(jí)終端上的提示信息,進(jìn)行功能的測(cè)試。

      1.6 實(shí)驗(yàn)過程與分析

      本次實(shí)驗(yàn)操作起來(lái)并不困難,因?yàn)榇舜螌?shí)驗(yàn)屬于驗(yàn)證型實(shí)驗(yàn),按照實(shí)驗(yàn)資料所給的提示信息,以上面的步驟,即可得到實(shí)驗(yàn)的結(jié)果。進(jìn)入到BIOS界面后,按照超級(jí)終端上的提示信息來(lái)進(jìn)行功能

      1.7 實(shí)驗(yàn)結(jié)果總結(jié)

      在實(shí)驗(yàn)過程中,我們進(jìn)行的很順利,沒有遇到什么問題,在超級(jí)終端界面,按提示的快

      捷鍵來(lái)測(cè)試對(duì)應(yīng)的功能。如

      e:測(cè)試由ZLG7289 驅(qū)動(dòng)的LED 顯示,共分3 步,請(qǐng)看超級(jí)終端提示按任意鍵繼續(xù),同 時(shí)觀察LED 的變化,最后返回主菜單。

      b:引導(dǎo)FLASH 中的應(yīng)用程序system.bin。執(zhí)行該功能將退出BIOS 狀態(tài),把控制交給應(yīng) 用程序,等。

      1.8 心得體會(huì)

      通過此次實(shí)驗(yàn),我對(duì)于實(shí)驗(yàn)環(huán)境有了初步的了解與認(rèn)識(shí),對(duì)于嵌入式也有了更深一步的認(rèn)識(shí)。同時(shí)實(shí)驗(yàn)過程中,我學(xué)會(huì)了第一次接觸的超級(jí)終端的使用方法,并能夠熟練掌握,知道其工作的原理。

      2.實(shí)驗(yàn)二

      2.1 實(shí)驗(yàn)名稱

      ADS1.2軟件開發(fā)環(huán)境使用方法

      2.2 實(shí)驗(yàn)?zāi)康?/p>

      1.熟悉ADS1.2 開發(fā)環(huán)境,學(xué)會(huì)ARM 仿真器的使用。

      2.使用ADS 編譯、下載、調(diào)試并跟蹤一段已有的程序,了解嵌入式開發(fā)的基本思想和過程。

      2.3 實(shí)驗(yàn)環(huán)境

      硬件:ARM 嵌入式開發(fā)平臺(tái)、用于ARM7TDMI 的JTAG 仿真器、PC 機(jī)Pentium100 以 上、串口線。

      軟件:PC 機(jī)操作系統(tǒng)win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成開發(fā)

      環(huán)境、仿真器驅(qū)動(dòng)程序、超級(jí)終端通訊程序。

      2.4 實(shí)驗(yàn)內(nèi)容及要求

      掌握AXD Debugger的使用方法,學(xué)習(xí)串行通訊原理,了解串行通訊控制器,閱讀ARM 芯片文檔,掌握ARM 的UART相關(guān)寄存器的功能,熟悉ARM 系統(tǒng)硬件的UART 相關(guān)接口。編程實(shí)現(xiàn)ARM 和計(jì)算機(jī)之間的串行通訊:ARM 監(jiān)視串行口;將接收到的字符再發(fā)送給串口(計(jì)算機(jī)與開發(fā)板是通過超級(jí)終端通訊的);即按PC 鍵盤通過超級(jí)終端發(fā)送數(shù)據(jù),開發(fā)板將接收到的數(shù)據(jù)再返送給PC,在超級(jí)終端上顯示。

      2.5 實(shí)驗(yàn)設(shè)計(jì)與實(shí)驗(yàn)步驟

      (1)新建工程,選擇菜單中的Project | Add Files 把和工程相關(guān)的所有文件包括init和startup 子目錄加入到工程中。ADS1.2 不能自動(dòng)按文件類別對(duì)這些文件進(jìn)行分類,需要的話可以執(zhí)行菜單Project | Create Group 創(chuàng)建文件組,然后分別將不同類的文件加入到不同的組,以方便管理。(另一種辦法是,在新建工程時(shí)ADS 創(chuàng)建了和工程同名的目錄,在該目錄下按類別創(chuàng)建子目錄并存放工程文件。選中所有目錄拖動(dòng)到任務(wù)欄上的ADS 任務(wù)條上,不要松

      開鼠標(biāo)當(dāng)ADS 窗口恢復(fù)后再拖動(dòng)到工程文件窗口,松開鼠標(biāo)。這樣ADS 將以子目錄名建立同名文件組并以此對(duì)文件分類。)

      (2)雙擊Main.c 打開該文件,可以看到Main()函數(shù)的內(nèi)容如下所示。int main(void){ ARMTargetInit();//開發(fā)版初始化 LCD_Init();LCD_ChangeMode(DspTxtMode);//轉(zhuǎn)換LCD 顯示模式為文本顯示模式 LCD_Cls();//文本模式下清屏命令

      LCD_printf(“Hello world!n”);//向液晶屏輸出 Uart_Printf(“nHello world!n”);//向串口輸出 while(1);}(3)利用上個(gè)實(shí)驗(yàn)中的通訊軟件超級(jí)終端來(lái)將生成的文件放到嵌入式開發(fā)平臺(tái)中。(4)重啟實(shí)驗(yàn)臺(tái)即可看到LCD上顯示的“Hello world!” 2.6 實(shí)驗(yàn)過程與分析

      新建工程,然后將所需的工程文件加載打工程目錄下,編譯生成system.bin文件,將文件導(dǎo)入到實(shí)驗(yàn)臺(tái)中,然后重啟實(shí)驗(yàn)臺(tái),即可得到實(shí)驗(yàn)結(jié)果。

      2.7 實(shí)驗(yàn)結(jié)果總結(jié)

      超級(jí)終端輸出一些相對(duì)應(yīng)的代碼的執(zhí)行結(jié)果。熟悉了ADS1.2 開發(fā)環(huán)境以及學(xué)會(huì)了ARM 仿真器的基本使用。使用ADS 編譯、下載、調(diào)試并跟蹤一段已有的程序,并大致了解了嵌入式開發(fā)的基本思想和過程。

      2.8 心得體會(huì)

      通過此次實(shí)驗(yàn),我對(duì)于嵌入式開發(fā)的基本思想有了一定的了解,嵌入式開發(fā)采用的是交叉編譯環(huán)境,所以在一些方面會(huì)有所限制。對(duì)于初學(xué)者來(lái)說(shuō),通過一兩次實(shí)驗(yàn)結(jié)果的演示就能夠?qū)?shí)驗(yàn)臺(tái)有深入的了解不可能的,所以在后續(xù)的實(shí)驗(yàn)中,我要好好努力,認(rèn)真做好課程實(shí)驗(yàn)為后續(xù)的課程設(shè)計(jì)實(shí)驗(yàn)打下基礎(chǔ)。

      3.實(shí)驗(yàn)三

      3.1 實(shí)驗(yàn)名稱

      鍵盤及LED實(shí)驗(yàn)

      3.2 實(shí)驗(yàn)?zāi)康?/p>

      1.學(xué)習(xí)鍵盤及LED 驅(qū)動(dòng)原理。

      2.掌握Z(yǔ)LG7289芯片串行接口的使用方法,用ZLG7289芯片驅(qū)動(dòng)17鍵的鍵盤和8個(gè)共陰極LED。

      3.3 實(shí)驗(yàn)環(huán)境

      硬件:ARM 嵌入式開發(fā)平臺(tái)、用于ARM7TDMI 的JTAG 仿真器、PC 機(jī)Pentium100 以 上、串口線。

      軟件:PC 機(jī)操作系統(tǒng)win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成開

      發(fā)

      環(huán)境、仿真器驅(qū)動(dòng)程序、超級(jí)終端通訊程序。

      3.4 實(shí)驗(yàn)內(nèi)容及要求

      編寫出一段程序,要求能在LED上顯示出小鍵盤上按下的4位數(shù)字。

      3.5 實(shí)驗(yàn)設(shè)計(jì)與實(shí)驗(yàn)步驟

      1.新建工程,將“Exp3 鍵盤及LED 驅(qū)動(dòng)實(shí)驗(yàn)”中的文件添加到工程。2.定義ZLG7289 寄存器(ZLG7289.h)。3.編寫ZLG7289 驅(qū)動(dòng)函數(shù)(ZLG7289.c)。4.定義鍵盤映射表:(Keyboard16.c)。5.定義鍵值讀取函數(shù)。

      6.編寫主函數(shù),將按鍵值在數(shù)碼管上顯示。

      3.6 實(shí)驗(yàn)過程與分析

      此次實(shí)驗(yàn)中,我們根據(jù)已有實(shí)驗(yàn),進(jìn)行調(diào)試,查看程序的運(yùn)行效果。根據(jù)效果,我們又回到實(shí)驗(yàn)代碼中,然后對(duì)代碼進(jìn)行深入的研究,查看每部分功能所對(duì)應(yīng)的代碼,通過不斷的調(diào)試編譯,我們最終對(duì)該實(shí)驗(yàn)用到的代碼有了更深的認(rèn)識(shí)。從而能夠按照要求,完成我們自己實(shí)驗(yàn)。

      3.7 實(shí)驗(yàn)結(jié)果總結(jié)

      通過小鍵盤的按鍵,鍵值可以在LED上顯示出來(lái)。并學(xué)習(xí)了鍵盤及LED 驅(qū)動(dòng)原理以及掌握了ZLG7289芯片串行接口的使用方法,用ZLG7289芯片驅(qū)動(dòng)17鍵的鍵盤和8個(gè)共陰極LED。

      3.8 心得體會(huì)

      在這次實(shí)驗(yàn)中讓我對(duì)嵌入式的實(shí)驗(yàn)箱有了進(jìn)一步的認(rèn)識(shí),并且進(jìn)一步了解的ARM實(shí)驗(yàn)的原理和實(shí)驗(yàn)情況,能夠?qū)υ创a進(jìn)行正確了理解。并且能修改這些源代碼能夠使其工作在自己的預(yù)期的工作狀態(tài)和輸出自己想要的結(jié)果

      4.實(shí)驗(yàn)四

      4.1 實(shí)驗(yàn)名稱

      電機(jī)轉(zhuǎn)動(dòng)控制及中斷實(shí)驗(yàn)

      4.2 實(shí)驗(yàn)?zāi)康?/p>

      1.熟悉ARM本身自帶的六路即三對(duì)PWM,掌握相應(yīng)寄存器的配置。

      2.編程實(shí)現(xiàn)ARM系統(tǒng)的PWM輸出和I/O輸出,前者用于控制直流電機(jī),后者用于控制步進(jìn)電機(jī)。

      3.了解直流電機(jī)和步進(jìn)電機(jī)的工作原理,學(xué)會(huì)用軟件的方法實(shí)現(xiàn)步進(jìn)電機(jī)的脈沖分配,即用軟件的方法代替硬件的脈沖分配器。

      4.了解44B0處理器上中斷的應(yīng)用。

      5.學(xué)習(xí)在44B0處理器上中斷的應(yīng)用。

      6.進(jìn)一步熟悉平臺(tái)外圍硬件及其驅(qū)動(dòng)程序的編寫。

      4.3 實(shí)驗(yàn)環(huán)境

      硬件:ARM 嵌入式開發(fā)平臺(tái)、用于ARM7TDMI 的JTAG 仿真器、PC 機(jī)Pentium100 以 上、串口線。

      軟件:PC 機(jī)操作系統(tǒng)win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成開發(fā)環(huán)境、仿真器驅(qū)動(dòng)程序、超級(jí)終端通訊程序。

      4.4 實(shí)驗(yàn)內(nèi)容及要求

      1.編程實(shí)現(xiàn)ARM芯片的一對(duì)PWM輸出用于控制直流電機(jī)的轉(zhuǎn)動(dòng),通過A/D旋鈕控制其轉(zhuǎn)動(dòng)方式。

      2.編程實(shí)現(xiàn)ARM的四路I/O通道,實(shí)現(xiàn)環(huán)形脈沖分配用于控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng),通過A/D旋鈕控制步進(jìn)電機(jī)的轉(zhuǎn)角。

      3.通過鍵盤控制直流電機(jī)與步進(jìn)電機(jī)的切換。4.設(shè)置并啟動(dòng)定時(shí)器。

      5.設(shè)置中斷,編寫定時(shí)器中斷服務(wù)程序,對(duì)中斷次數(shù)進(jìn)行計(jì)數(shù)并在LED上顯示結(jié)果。

      4.5 實(shí)驗(yàn)設(shè)計(jì)與實(shí)驗(yàn)步驟

      1.添加并打開工程。

      2.進(jìn)行直流電機(jī)初始化設(shè)置和代碼編寫。3.進(jìn)行步進(jìn)電機(jī)初始化設(shè)置和代碼編寫。

      4.對(duì)Timer3編程,編寫定時(shí)器中斷服務(wù)程序,完成對(duì)中斷次數(shù)的計(jì)數(shù)。5.編寫LED計(jì)數(shù)顯示函數(shù),使LED能正確計(jì)數(shù)并顯示0-9999。6.編寫中斷初始化函數(shù)和中斷響應(yīng)函數(shù)。7.終端下載測(cè)試。

      4.6 實(shí)驗(yàn)過程與分析

      1.對(duì)直流電機(jī)進(jìn)行編程和測(cè)試,掌握轉(zhuǎn)速和旋轉(zhuǎn)方向的設(shè)定方法。2.對(duì)步進(jìn)電機(jī)進(jìn)行編程和測(cè)試,掌握ARM的四路I/O通道,實(shí)現(xiàn)環(huán)形脈沖分配用于控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng),通過A/D旋鈕控制步進(jìn)電機(jī)的轉(zhuǎn)角。

      3.對(duì)主函數(shù)進(jìn)行編程,用鍵盤響應(yīng)直流電機(jī)與步進(jìn)電機(jī)的切換控制。

      4.掌握中斷相關(guān)語(yǔ)句的應(yīng)用,弄清定義的中斷向量、中斷向量號(hào),編寫中斷響應(yīng)函數(shù),并完成中斷響應(yīng)控制。

      4.7 實(shí)驗(yàn)結(jié)果總結(jié)

      實(shí)現(xiàn)了直流電機(jī)與步進(jìn)電機(jī)的基本設(shè)置和控制,可以通過鍵盤控制電機(jī)之間的切換。完成了中斷的響應(yīng)和定時(shí)中斷。

      在通過本次實(shí)驗(yàn),我初步了解的實(shí)驗(yàn)的目的所在,并且利用所給的源代碼能夠,調(diào)試出所預(yù)期的結(jié)果,而且能夠根據(jù)已給的源代碼修改得到所需的結(jié)果。

      4.8 心得體會(huì)

      通過本次實(shí)驗(yàn),掌握了電機(jī)工作原理,了解了中斷的意義和實(shí)現(xiàn)方法,實(shí)現(xiàn)了簡(jiǎn)單了中

      斷處理程序,更加了解了中斷的意義。

      5.實(shí)驗(yàn)五

      5.1 實(shí)驗(yàn)名稱

      LCD驅(qū)動(dòng)控制實(shí)驗(yàn)及觸摸屏驅(qū)動(dòng)實(shí)驗(yàn)

      5.2 實(shí)驗(yàn)?zāi)康?/p>

      1.了解觸摸屏的基本概念與原理。

      2.理解觸摸屏與LCD的關(guān)系。3.編程實(shí)現(xiàn)對(duì)觸摸屏的控制。

      5.3 實(shí)驗(yàn)環(huán)境

      硬件:ARM 嵌入式開發(fā)平臺(tái)、用于ARM7TDMI 的JTAG 仿真器、PC 機(jī)Pentium100 以 上、串口線。

      軟件:PC 機(jī)操作系統(tǒng)win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成開發(fā)環(huán)境、仿真器驅(qū)動(dòng)程序、超級(jí)終端通訊程序。

      5.4 實(shí)驗(yàn)內(nèi)容及要求

      1.了解觸摸屏基本原理,理解對(duì)觸摸屏進(jìn)行輸出標(biāo)定、與LCD顯示器配合的過程。2.通過編程實(shí)現(xiàn)觸摸兩點(diǎn)自動(dòng)在兩點(diǎn)間劃直線。3.通過編程實(shí)現(xiàn)在觸摸屏上動(dòng)態(tài)畫出曲線。

      5.5 實(shí)驗(yàn)設(shè)計(jì)與實(shí)驗(yàn)步驟

      1.添加并打開工程。

      2.在頭文件中定義宏和常量及驅(qū)動(dòng)函數(shù)。3.校準(zhǔn)觸摸屏坐標(biāo),進(jìn)行坐標(biāo)轉(zhuǎn)換。4.實(shí)現(xiàn)觸屏取點(diǎn)并顯示功能。5.實(shí)現(xiàn)兩點(diǎn)間自動(dòng)劃線功能。6.實(shí)現(xiàn)觸摸屏動(dòng)態(tài)劃線功能。

      5.6 實(shí)驗(yàn)過程與分析

      1.在定義觸屏響應(yīng)功能的函數(shù)中對(duì)點(diǎn)擊觸屏進(jìn)行響應(yīng)函數(shù)的修改,在其中添加修改點(diǎn)顏色的函數(shù),修改得到的觸摸點(diǎn)的顏色,并顯示在LCD上。

      2.獲取第一個(gè)點(diǎn)坐標(biāo)并儲(chǔ)存,獲取第二個(gè)點(diǎn)坐標(biāo)并儲(chǔ)存,編寫劃線函數(shù),取得兩點(diǎn)間直線上所有點(diǎn)的坐標(biāo),并對(duì)其改變顏色,顯示在LCD上,即完成劃直線功能。

      3.將劃線函數(shù)應(yīng)用到響應(yīng)觸屏移動(dòng)消息的函數(shù)下,即可對(duì)連續(xù)獲得的觸摸坐標(biāo)進(jìn)行連續(xù)的畫短直線,連接成曲線,完成動(dòng)態(tài)劃線功能。

      5.7 實(shí)驗(yàn)結(jié)果總結(jié)

      了解了觸摸屏響應(yīng)動(dòng)作消息的函數(shù)的工作原理,通過修改實(shí)現(xiàn)了觸摸屏響應(yīng)不同動(dòng)作進(jìn)行畫點(diǎn)、劃線、動(dòng)態(tài)劃線的功能。

      5.8 心得體會(huì)

      通過本次實(shí)驗(yàn),使我了解了怎么在一塊嵌入式實(shí)驗(yàn)箱 通過編程控制實(shí)驗(yàn)箱上得硬件,比如在本次實(shí)驗(yàn)中的控制LCD屏幕就是,在屏幕上點(diǎn)擊,然后得到在LCD屏上點(diǎn)擊的位置。本次實(shí)驗(yàn)初步完成了實(shí)驗(yàn)結(jié)果。

      6.實(shí)驗(yàn)六

      6.1 實(shí)驗(yàn)名稱

      UCOS-Ⅱ在ARM微處理器上的裁剪

      6.2 實(shí)驗(yàn)?zāi)康?/p>

      1.了解UCOS-Ⅱ內(nèi)核的主要結(jié)構(gòu)。

      2.掌握UCOS-Ⅱ裁剪的基本原理與嵌入式編程實(shí)現(xiàn)方法。3.學(xué)習(xí)如何根據(jù)具體情況對(duì)UCOS-Ⅱ操作系統(tǒng)進(jìn)行裁剪。

      4.通過對(duì)UCOS-Ⅱ配置文件(OS_CFG.H)中相關(guān)的配置常量進(jìn)行設(shè)置,實(shí)現(xiàn)對(duì)UCOS-Ⅱ的裁剪。

      6.3 實(shí)驗(yàn)環(huán)境

      硬件:ARM 嵌入式開發(fā)平臺(tái)、用于ARM7TDMI 的JTAG 仿真器、PC 機(jī)Pentium100 以 上、串口線。

      軟件:PC 機(jī)操作系統(tǒng)win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成開發(fā)環(huán)境、仿真器驅(qū)動(dòng)程序、超級(jí)終端通訊程序。

      6.4 實(shí)驗(yàn)內(nèi)容及要求

      對(duì)UCOS-Ⅱ內(nèi)核進(jìn)行裁剪并移植到ARM7微處理器上。

      6.5 實(shí)驗(yàn)設(shè)計(jì)與實(shí)驗(yàn)步驟

      編輯OS_CFG.H文件。OS_CFG.H文件中的內(nèi)容可分為兩大類:服務(wù)功能的配置和數(shù)據(jù)結(jié)構(gòu)的配置。

      一.服務(wù)功能的配置:

      根據(jù)程序中的實(shí)際情況,保留自己要用的系統(tǒng)服務(wù)功能,刪除自己不需要的服務(wù)功能。進(jìn)行合理配置后,是我們自己系統(tǒng)的目標(biāo)代碼比較緊湊,從而降低了對(duì)程序代碼存儲(chǔ)空間的要求。如果代碼存儲(chǔ)空間足夠大的話,那就將全部系統(tǒng)服務(wù)功能全部配置為1。不需要考慮功能裁剪。

      二.?dāng)?shù)據(jù)結(jié)構(gòu)功能的配置: 與任務(wù)有關(guān)的數(shù)據(jù)結(jié)構(gòu) 1.OS_MAX_TASKS 作用:設(shè)置用戶程序中可以使用的最多任務(wù)數(shù)。說(shuō)明:該值不能超過62.舉例: 若程序中用到了三個(gè)任務(wù),則該值的最小值 2.OS_LOWEST_PRIO 作用:設(shè)置程序中最低任務(wù)的優(yōu)先級(jí)。

      說(shuō)明: 設(shè)定該值可以節(jié)省操作系統(tǒng)使用RAM的空間。任務(wù)的最低優(yōu)先級(jí)和最大任務(wù)數(shù)是沒有直接關(guān)系的。

      6.6 實(shí)驗(yàn)過程與分析

      按照實(shí)驗(yàn)指導(dǎo)書上的步驟進(jìn)行,得到了要求的系統(tǒng)。

      6.7 實(shí)驗(yàn)結(jié)果總結(jié)

      按照要求進(jìn)行了裁剪,得到了滿足需要又緊湊的應(yīng)用軟件系統(tǒng)。

      6.8 心得體會(huì)

      了解了UCOS-Ⅱ內(nèi)核的主要結(jié)構(gòu),掌握了UCOS-Ⅱ裁剪的基本原理與嵌入式編程實(shí)現(xiàn)方法,學(xué)會(huì)了如何根據(jù)具體情況對(duì)UCOS-Ⅱ操作系統(tǒng)進(jìn)行裁剪

      7.實(shí)驗(yàn)七

      7.1 實(shí)驗(yàn)名稱

      ucos-II移植實(shí)驗(yàn)

      7.2 實(shí)驗(yàn)?zāi)康?/p>

      1.了解UCOS-Ⅱ內(nèi)核的主要結(jié)構(gòu)。

      2.掌握將UCOS-Ⅱ內(nèi)核移植到ARM7處理器上的基本方法。

      7.3 實(shí)驗(yàn)環(huán)境

      硬件:ARM 嵌入式開發(fā)平臺(tái)、用于ARM7TDMI 的JTAG 仿真器、PC 機(jī)Pentium100 以 上、串口線。

      軟件:PC 機(jī)操作系統(tǒng)win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成開發(fā)環(huán)境、仿真器驅(qū)動(dòng)程序、超級(jí)終端通訊程序。

      7.4 實(shí)驗(yàn)內(nèi)容及要求

      1.將UCOS-Ⅱ內(nèi)核進(jìn)行移植到ARM7微處理器上。

      2.編寫兩個(gè)簡(jiǎn)單任務(wù),在超級(jí)終端上觀察兩個(gè)任務(wù)的切換。

      7.5 實(shí)驗(yàn)設(shè)計(jì)與實(shí)驗(yàn)步驟

      1.該實(shí)驗(yàn)的文件分為兩類,其一是STARTUP 目錄下的系統(tǒng)初始化、配置等文件,其二是uCOS-II 的全部源碼,arch 目錄下的3 個(gè)文件是和處理器架構(gòu)相關(guān)的。

      2.設(shè)置os_cpu.h 中與處理器和編譯器相關(guān)的代碼

      3.用C 語(yǔ)言編寫6 個(gè)操作系統(tǒng)相關(guān)的函數(shù)(OS_CPU_C.C)4.用匯編語(yǔ)言編寫4 個(gè)與處理器相關(guān)的函數(shù)(OS_CPU.ASM)5.編寫一個(gè)簡(jiǎn)單的多任務(wù)程序來(lái)測(cè)試一下移植是否成功。

      為了使 uCOS-II 可以正常運(yùn)行,除了上述必須的移植工作外,硬件初始化和配置文件也是必須的。STARTUP 目錄下的文件還包括中斷處理,時(shí)鐘,串口通信等基本功能函數(shù)。在文件 main.c 中給出了應(yīng)用程序的基本框架,包括初始化和多任務(wù)的創(chuàng)建,啟動(dòng)等。任務(wù)

      創(chuàng)建方法如下:

      ①在程序開頭定義任務(wù)堆棧,任務(wù)函數(shù)聲明和任務(wù)優(yōu)先級(jí) ②在main()函數(shù)中調(diào)用OSStart()函數(shù)之前用下列語(yǔ)句創(chuàng)建任務(wù) ③編寫任務(wù)函數(shù)內(nèi)容

      6.編譯并下載移植后的uCOS-II 所有的源代碼都準(zhǔn)備好后就可以進(jìn)行編譯了。在ADS 環(huán)境下需要設(shè)置工程的訪問路徑。從菜單Edit | Debug Settings 進(jìn)入設(shè)置對(duì)話框,在Target | Access Paths 中選擇User Paths 并選上Always search user paths。然后點(diǎn)Add 按鈕添加路徑ucos-ii 和arch。這主要是設(shè)置編譯器處理文件包含時(shí)的搜索范圍。按照實(shí)驗(yàn)一的方法可以對(duì)編譯后的代碼進(jìn)行調(diào)試或下載到平臺(tái)的電子硬盤中。這個(gè)實(shí)驗(yàn)從結(jié)構(gòu)上看和其他的實(shí)驗(yàn)沒有多大區(qū)別,同樣生成可執(zhí)行文件system.bin??梢栽谄脚_(tái)BIOS中激活電子硬盤,然后把system.bin 拷貝進(jìn)去,重啟平臺(tái),然后在超級(jí)終端上觀察結(jié)果。

      7.6 實(shí)驗(yàn)過程與分析

      操作系統(tǒng)相關(guān)的函數(shù):(1)OSTaskStkInit OSTaskCreate()和OSTaskCreateExt()通過調(diào)用OSTaskStkInit()來(lái)初始化任務(wù)的堆棧結(jié)構(gòu)。因此,堆??雌饋?lái)就像剛發(fā)生過中斷并將所有的寄存器保存到堆棧中的情形一樣。圖12A-2 顯示了OSTaskStkInt()放到正被建立的任務(wù)堆棧中的東西。這里我們定義了堆棧是從上往下 長(zhǎng)的。在用戶建立任務(wù)的時(shí)候,用戶傳遞任務(wù)的地址,pdata 指針,任務(wù)的堆棧棧頂和任務(wù)的優(yōu)先級(jí)給OSTaskCreate()和OSTaskCreateExt()。一旦用戶初始化了堆棧,OSTaskStkInit()就需要返回堆棧指針?biāo)傅牡刂贰STaskCreate()和OSTaskCreateExt()會(huì)獲得該地址并將它保存到任務(wù)控制塊(OS_TCB)中。

      (2)OSTaskCreateHook 當(dāng)用OSTaskCreate()和OSTaskCreateExt()建立任務(wù)的時(shí)候就會(huì)調(diào)用OSTaskCreateHook()。該函數(shù)允許用戶或使用移植實(shí)例的用戶擴(kuò)展uCOS-II 功能。當(dāng)uCOS-II 設(shè)置完了自己的內(nèi)部結(jié)構(gòu)后,會(huì)在調(diào)用任務(wù)調(diào)度程序之前調(diào)用OSTaskCreateHook()。該函數(shù)被調(diào)用的時(shí)候中斷是禁止的。因此用戶應(yīng)盡量減少該函數(shù)中的代碼以縮短中斷的響應(yīng)時(shí)間。當(dāng) OSTaskCreateHook()被調(diào)用的時(shí)候,它會(huì)收到指向已建立任務(wù)的OS_TCB 的指針,這 樣它就可以訪問所有的結(jié)構(gòu)成員了。函數(shù)原型:void OSTaskCreateHook(OS_TCB *ptcb)

      (3)OSTaskDelHook 當(dāng)任務(wù)被刪除的時(shí)候就會(huì)調(diào)用OSTaskDelHook()。該函數(shù)在把任務(wù)從uCOS-II 的內(nèi)部任 務(wù)鏈表中解開之前被調(diào)用。當(dāng)OSTaskDelHook()被調(diào)用的時(shí)候,它會(huì)收到指向正被刪除任務(wù) 的OS_TCB 的指針,這樣它就可以訪問所有的結(jié)構(gòu)成員了。OSTaskDelHook()可以來(lái)檢驗(yàn)TCB擴(kuò)展是否被建立(一個(gè)非空指針)并進(jìn)行一些清除操作。函數(shù)原型:void OSTaskDelHook(OS_TCB *ptcb)(4)OSTaskSwHook 當(dāng)發(fā)生任務(wù)切換的時(shí)候就會(huì)調(diào)用OSTaskSwHook()。OSTaskSwHook()可以直接訪問 OSTCBCur 和OSTCBHighRdy,因?yàn)樗鼈兪侨肿兞?。OSTCBCur 指向被切換出去的任務(wù) OS_TCB,而OSTCBHighRdy 指向新任務(wù)OS_TCB。注意在調(diào)用OSTaskSwHook()期間中斷 一直是被禁止的。因此用戶應(yīng)盡量減少該函數(shù)中的代碼以縮短中斷的響應(yīng)時(shí)間。函數(shù)原型:void OSTaskSwHook(void)

      (5)OSTaskStatHook OSTaskStatHook()每秒鐘都會(huì)被OSTaskStat()調(diào)用一次。用戶可以用OSTaskStatHook()

      來(lái)擴(kuò)展統(tǒng)計(jì)功能。例如,用戶可以保持并顯示每個(gè)任務(wù)的執(zhí)行時(shí)間,每個(gè)任務(wù)所用的CPU 份額,以及每個(gè)任務(wù)執(zhí)行的頻率等。函數(shù)原型:void OSTaskStatHook(void)(6)OSTimeTickHook OSTimeTickHook()在每個(gè)時(shí)鐘節(jié)拍都會(huì)被OSTaskTick()調(diào)用。實(shí)際上OSTimeTickHook()是在節(jié)拍被uCOS-II 真正處理,并通知用戶的移植實(shí)例或應(yīng)用程序之前被調(diào)用的。函數(shù)原型:void OSTimeTickHook(void)

      7.7 實(shí)驗(yàn)結(jié)果總結(jié)

      在超級(jí)終端上輸出輪流交替run task1和run task2,表明系統(tǒng)正在不斷交替運(yùn)行2個(gè)任務(wù)。

      7.8 心得體會(huì)

      在這個(gè)實(shí)驗(yàn)中我們初步了解和測(cè)試了實(shí)驗(yàn)的內(nèi)容和源代碼實(shí)驗(yàn)結(jié)果基本上符合預(yù)期的要求。了解了μC/OS-II 內(nèi)核的主要結(jié)構(gòu)和ARM7處理器結(jié)構(gòu),掌握了將μC/OS-II 內(nèi)核移植到ARM 7 處理器上的基本原理與嵌入式編程實(shí)現(xiàn)方法。

      8.實(shí)驗(yàn)八

      8.1 實(shí)驗(yàn)名稱

      各接口模塊相互銜接綜合實(shí)驗(yàn)

      8.2 實(shí)驗(yàn)?zāi)康?/p>

      利用前7次實(shí)驗(yàn)所學(xué)的知識(shí),綜合設(shè)計(jì)一個(gè)至少含有5個(gè)模塊的實(shí)驗(yàn)。

      8.3 實(shí)驗(yàn)環(huán)境

      硬件:ARM 嵌入式開發(fā)平臺(tái)、用于ARM7TDMI 的JTAG 仿真器、PC 機(jī)Pentium100 以 上、串口線。

      軟件:PC 機(jī)操作系統(tǒng)win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成開發(fā)環(huán)境、仿真器驅(qū)動(dòng)程序、超級(jí)終端通訊程序。

      8.4 實(shí)驗(yàn)內(nèi)容及要求

      1.回顧串口、鍵盤、LED接口、A/D、電機(jī)轉(zhuǎn)動(dòng)、定時(shí)器中斷、LCD接口及觸摸屏驅(qū)動(dòng)控制接口模塊驅(qū)動(dòng)設(shè)計(jì)及開發(fā)方法。

      2.綜合應(yīng)用以上全部或者部分模塊,實(shí)現(xiàn)一個(gè)嵌入式綜合應(yīng)用系統(tǒng),要求至少5個(gè)模塊。

      3.盡量使綜合應(yīng)用具有合理功能。

      8.5 實(shí)驗(yàn)設(shè)計(jì)與實(shí)驗(yàn)步驟

      1.新建工程,添加所需的文件。

      2.編寫計(jì)算器的計(jì)算程序caculator.c以及caculator.h文件。3.編寫音樂播放文件play.c以及play.h文件。

      4.修改鍵盤映射表讓鍵盤上的數(shù)字與LCD與LED屏幕上顯示的數(shù)字相對(duì)應(yīng)。5.對(duì)輸出在LCD屏幕上的顯示結(jié)構(gòu)進(jìn)行設(shè)計(jì)

      6.進(jìn)行裁剪和移植功能設(shè)計(jì)和完成。編譯生成system.bin文件,將文件拷貝至實(shí)驗(yàn)臺(tái)內(nèi),重啟實(shí)驗(yàn)臺(tái)即可看到實(shí)驗(yàn)效果

      8.6 實(shí)驗(yàn)過程與分析

      1.完成10以內(nèi)的加減乘除的計(jì)算功能,通過鍵盤輸入,可在LCD屏幕上顯示輸入的表達(dá)式以及得到的輸出結(jié)果。如“2+3=5”。

      2.按任務(wù)切換鍵,實(shí)現(xiàn)任務(wù)的切換。3.任務(wù)被切換到播放音樂的任務(wù)中去。

      4.任務(wù)切換過程將會(huì)在串口的超級(jí)終端界面有所顯示,同時(shí)我們?cè)O(shè)置的將LCD上顯示的結(jié)果同步到超級(jí)終端上。實(shí)現(xiàn)串口通信。

      5.利用到了直流電機(jī),如果運(yùn)算范圍超出我們規(guī)定的運(yùn)算范圍,則電機(jī)轉(zhuǎn)動(dòng),來(lái)提示錯(cuò)誤。

      6.實(shí)現(xiàn)裁剪與移植功能。

      8.7 實(shí)驗(yàn)結(jié)果總結(jié)

      在這次實(shí)驗(yàn)中,我們利用前面所學(xué)習(xí)的知識(shí),綜合利用在此次實(shí)驗(yàn)中,我們利用了前面好所學(xué)知識(shí)中的6個(gè)模塊,分別是串口通訊,鍵盤控制,LED與LCD的輸出,電機(jī)控制,以及裁剪與移植的功能。通過這些功能的結(jié)合,我們實(shí)現(xiàn)自己所設(shè)計(jì)的實(shí)驗(yàn)的功能。

      8.8 心得體會(huì)

      在此次實(shí)驗(yàn)中,我們遇到了一些問題但是過程中遇到了不少問題,說(shuō)明對(duì)實(shí)驗(yàn)原理和語(yǔ)句編寫還不是很熟悉??偟膩?lái)說(shuō),通過這段時(shí)間的訓(xùn)練,我也學(xué)會(huì)了不少東西,了解了ARM的基本結(jié)構(gòu),功能等。

      9.實(shí)驗(yàn)總結(jié)與心得體會(huì)

      通過這次為期一周的嵌入式課程實(shí)驗(yàn),我對(duì)于嵌入式有了更加深刻的了解與認(rèn)識(shí)。我是第一次接觸嵌入式,以前對(duì)于嵌入式的知識(shí)了解甚少,但是通過此次實(shí)驗(yàn),我不僅了解了嵌入式,也學(xué)會(huì)了許多關(guān)于嵌入式方面的知識(shí)。

      通過前面的基礎(chǔ)實(shí)驗(yàn),我們對(duì)于ARM環(huán)境有了更深的了解,掌握了博創(chuàng)平臺(tái)的使用方法,例如如何使用小鍵盤,如何使用LCD、LED屏幕,如何控制終端,如何進(jìn)行多任務(wù)之間的切換等等。通過這幾次的基礎(chǔ)課程實(shí)驗(yàn),我們最后出了計(jì)算器,能夠?qū)崿F(xiàn)10以內(nèi)的加減乘除,在此基礎(chǔ)上我們利用多任務(wù),實(shí)現(xiàn)播放音樂與計(jì)算的切換,還利用點(diǎn)擊的轉(zhuǎn)動(dòng)來(lái)提示運(yùn)算過程中出現(xiàn)的問題。

      通過這幾次實(shí)驗(yàn),為我們以后的課程設(shè)計(jì)實(shí)驗(yàn)打下了堅(jiān)實(shí)的基礎(chǔ),相信有了這幾天系統(tǒng)實(shí)驗(yàn)的培訓(xùn),我們的課程設(shè)計(jì)實(shí)驗(yàn)做起來(lái)會(huì)更加輕松。

      下載嵌入式系統(tǒng)教案(李震)word格式文檔
      下載嵌入式系統(tǒng)教案(李震).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(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)范文推薦

        嵌入式系統(tǒng)課程設(shè)計(jì)

        《嵌入式系統(tǒng)概論》綜合設(shè)計(jì)報(bào)告書 設(shè)計(jì)題目:用鍵盤控制LED顯示不同圖形 中央民族大學(xué) 二零零八年十月三十一日 一、 設(shè)計(jì)目的 了解LED點(diǎn)陣和矩陣鍵盤的工作原理。 二、 設(shè)計(jì)......

        嵌入式系統(tǒng)實(shí)驗(yàn)

        南京信息工程大學(xué) 實(shí)驗(yàn)(實(shí)習(xí))報(bào)告 實(shí)驗(yàn)(實(shí)習(xí))名稱電機(jī)轉(zhuǎn)動(dòng)控制及中斷實(shí)驗(yàn) 實(shí)驗(yàn)(實(shí)習(xí))日期2016.5 得分 指導(dǎo)教師 謝勝東學(xué)院 計(jì)算機(jī)與軟件 專業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 年級(jí)2013......

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

        嵌入式系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)報(bào)告 班 級(jí): 學(xué) 號(hào): 姓 名: 成 績(jī): 指導(dǎo)教師: 1. 實(shí)驗(yàn)一 1.1 實(shí)驗(yàn)名稱 博創(chuàng)UP-3000實(shí)驗(yàn)臺(tái)基本結(jié)構(gòu)及使用方法 1.2 實(shí)驗(yàn)?zāi)康?1.學(xué)習(xí)嵌入式系統(tǒng)開發(fā)流程。 2.熟悉U......

        嵌入式系統(tǒng)發(fā)展趨勢(shì)

        未來(lái)嵌入式系統(tǒng)的發(fā)展趨勢(shì) 在網(wǎng)絡(luò)、通信、微電子發(fā)展的基礎(chǔ)上,以及勢(shì)不可擋的數(shù)字化信息產(chǎn)品的強(qiáng)大需求推動(dòng)下,嵌入式技術(shù)具有廣闊的發(fā)展創(chuàng)新空間。 (1)低功耗、高性能、高可......

        嵌入式系統(tǒng)調(diào)查報(bào)告

        “嵌入式系統(tǒng)在企業(yè)中的應(yīng)用”調(diào)查報(bào)告 工學(xué)院范裕婷內(nèi)容提要:現(xiàn)今,全過程自動(dòng)化產(chǎn)品制造、大范圍電子商務(wù)活動(dòng)、高度協(xié)同科學(xué)實(shí)驗(yàn)以及現(xiàn)代化家庭起居,是嵌入式系統(tǒng)在企業(yè)中應(yīng)......

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

        嵌入式系統(tǒng)實(shí)驗(yàn)報(bào)告 學(xué)號(hào): 姓 名: 班 級(jí):13電子信息工程指導(dǎo)老師: 蘇州大學(xué) 電子信息學(xué)院 2016年12月 實(shí)驗(yàn)一:一個(gè)燈的閃爍 1、實(shí)驗(yàn)要求 實(shí)現(xiàn)PF6-10端口所連接的任意一個(gè)LED燈......

        嵌入式系統(tǒng)教學(xué)大綱

        《嵌入式系統(tǒng)》課程教學(xué)大綱 課程名稱: 嵌入式系統(tǒng) 課程編碼:51610209 學(xué)時(shí): 44 學(xué)分:2.5 開課學(xué)期:7 課程類別:專業(yè)平臺(tái)課程 課程性質(zhì):必修 適用專業(yè):電子信息科學(xué)與技術(shù) 電子信息......

        李曉林(2009061121)嵌入式系統(tǒng)實(shí)驗(yàn)報(bào)告5篇

        嵌入式系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)報(bào)告 班 級(jí):學(xué) 號(hào):姓 名:成 績(jī):指導(dǎo)教師: 090611 2009061121 李曉林 武俊鵬 劉書勇 1 1. 實(shí)驗(yàn)一 1.1 實(shí)驗(yàn)名稱 博創(chuàng)UP-3000實(shí)驗(yàn)臺(tái)基本結(jié)構(gòu)及使用方法 1.......