久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

ARM嵌入式系統的問題總結分析.

時間:2019-05-12 13:50:18下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《ARM嵌入式系統的問題總結分析.》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《ARM嵌入式系統的問題總結分析.》。

第一篇:ARM嵌入式系統的問題總結分析.

ARM嵌入式系統的問題總結分析

摘要:本文是作者關于嵌入式系統一些基本問題的思考和總結。主要是從嵌入式處理器與硬件、ARM處理器的優勢、嵌入式軟件、嵌入式系統教學等方面進行了一些梳理,談了一些個人的觀點。引言由于各種新型微處理器的出現和應用的不斷深化,嵌入式系統在后PC時代得到了空前的發展。隨著時間的推移和技術的進步,在工業控制和新興的手持式應用等領域,用戶體驗成為產品成功的關鍵因素之一,越來越多的產品需要良好的用戶界面、互聯功能以及 摘要: 本文是作者關于嵌入式系統一些基本問題的思考和總結。主要是從嵌入式處理器與硬件、ARM處理器的優勢、嵌入式軟件、嵌入式系統教學等方面進行了一些梳理,談了一些個人的觀點。引言

由于各種新型微處理器的出現和應用的不斷深化,嵌入式系統在后PC時代得到了空前的發展。隨著時間的推移和技術的進步,在工業控制和新興的手持式應用等領域,用戶體驗成為產品成功的關鍵因素之一,越來越多的產品需要良好的用戶界面、互聯功能以及較強的數據處理能力,這對嵌入式處理器硬件、軟件、教學等提出了新的要求。1 嵌入式處理器與硬件

在處理器方面,目前大量的中、低端嵌入式應用,主要使用8/16位單片機。在國內,由于歷史的原因,主要是以MCS51核為主的許多不同型號單片機,主要廠商有Atmel、Philips、Winbond、宏晶等。還有一些近幾年發展較快的新型單片機,如PIC、AVR、MSP430系列等。這些單片機各有特點,但從目前的發展角度來看,單片機針對特定應用領域的個性化發展愈發明顯,典型的例子就是TI公司的MSP430系列16位單片機、ST公司的STM8L系列8位單片機和STM32L系列32位超低功耗單片機。

在嵌入式中的高端應用領域,像工業控制、POS機、網絡設備、圖像處理、手機、PDA等,目前主要使用ARM、MIPS、PowerPC、DSP等16~64位處理器,以32位處理器為主。各種類型的處理器都有其一定的應用針對性。例如,DSP對數字信號處理技術中用到的常用運算、算法做了優化設計,主要用于實時信號處理領域,如實時音視頻處理、電機控制等。MIPS處理器性能很好,但功耗較大,適合于有交流電源供電的固定應用,如固定的網絡設備、機頂盒等。ARM處理器性能高,功耗低,適合于用電池供電的便攜、手持式設備。由于近幾年便攜、手持式嵌入式應用的高速發展,ARM處理器的增長速度和市場占有率也快速提升,成為目前32位應用中的主力產品。由于嵌入式應用系統的廣泛性,嵌入式系統的硬件設計涉及的知識面很廣,從模擬到數字、低頻到高頻、小信號到大功率,以及復雜的時序邏輯設計和PCB設計,還要考慮軟硬件資源的合理分配,不僅要有廣而扎實的理論基礎,更需要豐富的實踐經驗。只有對大大小小各種應用系統反復實戰演練,了解新技術、新器件,使用過多種多樣的處理器和模擬/數字器件,才能逐步積累,聚沙成塔,對一個新的應用系統給出快速、合理的硬件方案與設計。2 ARM處理器的優勢

對于如今大量出現的32位嵌入式應用,以筆者之見,ARM處理器的優勢主要有以下幾個方面。

2.1 高性能、低功耗、低價格

把ARM處理器的性能拿來和一些著名的通用處理器(如Pentium)相比是不合適的,因為他們各自針對的應用需求是不同的。Pentium處理器采用多條指令流水線的超標量結構,追求通用應用目標下的超強性能,功耗大,可以用散熱器加風扇散熱。ARM針對嵌入式應用,在滿足性能要求的前提下,力求最低的功率消耗。ARM結構的優點是能兼顧到性能、功耗、代碼密度、價格等幾個方面,而且做得比較均衡。在性能/功耗比(MIPS/W)方面,ARM處理器具有業界領先的性能。基于ARM核的芯片價格也很低,目前ARM CortexM的芯片價格可低至10元人民幣左右。2.2 豐富的可選擇芯片

ARM只是一個核,ARM公司自己不生產芯片,采用授權方式給半導體生產商。目前,全球幾乎所有的半導體廠家都向ARM公司購買了各種ARM核,配上多種不同的控制器(如LCD控制器、SDRAM控制器、DMA控制器等)和外設、接口,生產各種基于ARM核的芯片。目前,基于ARM核的各種處理器型號有好幾百種,在國內市場上,常見的有ST、TI、NXP、Atmel、Samsung、OKI、Sharp、Hynix、Crystal等廠家的芯片。用戶可以根據各自的應用需求,從性能、功能等方面考察,在許多具體型號中選擇最合適的芯片來設計自己的應用系統。由于ARM核采用向上兼容的指令系統,用戶開發的軟件可以非常方便地移植到更高的ARM平臺。

2.3 廣泛的第三方支持

以如今的技術,設計一個處理器并非難事,但要使這個處理器得到大家認可,并取得市場成功卻是非常困難的,其中涉及許多技術與非技術的因素和環節,還包括時機、運氣。因為現在許多產品的開發,不是一個簡單的處理器加幾百條指令、語句就可以解決的。要用到32位處理器,一般都要有編譯器、高效的開發工具(仿真器及調試環境)、操作系統、協議棧等,這些東西都不是一個芯片生產商可以解決的,而需要許多第三方的支持。這就像一粒種子,需要土壤、空氣、水等環境才能發芽、成長。這也是我們的一些“中國芯”該反思之處。ARM通過近20年的培育、發展,得到了廣泛的第三方合作伙伴支持。目前,除通用編譯器GCC,ARM有自己的高效編譯、調試環境(MDK、Keil),全球約有50家以上的實時操作系統(RTOS)軟件廠商和30家以上的EDA工具制造商,還有很多高效率的實時跟蹤調試工具的廠商,對ARM提供了很好的支持。用戶采用ARM處理器開發產品,既可以獲得廣泛的支持,也便于和同行交流,加快開發進度,縮短產品的上市時間。2.4 完整的產品線和發展規劃

ARM核根據不同應用需求對處理器的性能要求,有一個從ARM7、ARM9到ARM10、ARM11,以及新定義的CortexM/R/A系列完整的產品線。前幾年應用較多的主要是基于V4架構的ARM7TDMI、ARM720T、ARM920T核的一些處理器芯片,如NXP的LPC2000系列、ST的STR7/9系列、Atmel 的AT91系列和Samsung的S3C系列。近兩年,ARM Cortex系列以更好的性能、更低的價格得到快速推廣,典型的就是基于CortexM3的STM32系列。

ARM CortexM/R/A系列分別針對不同的應用領域。M系列主要面向傳統微控制器(MCU/單片機)應用,這類應用面很廣,要求處理器有豐富的外設,并且各方面比較均衡;R系列強調實時性,主要用于實時控制,如汽車引擎;A系列面向高性能、低功耗應用系統,如智能手機。選用ARM處理器進行開發,技術積累性較強,生命周期長,設計重用度高,不易被淘汰。用戶在選擇ARM處理器時,可以針對應用需求,從大量的ARM芯片中選用滿足性能、功能要求的產品,以獲得較好的性價比。3 ARM嵌入式系統的軟件

由于嵌入式系統的差異性很大,對不同的應用需求,必須選擇不同的軟件設計方法、開發平臺和系統工具。

對于一些不需要復雜圖形用戶界面、通信協議和復雜文件操作(如同時打開多個文件)的應用,如果選用CortexM3核的處理器就已可以滿足要求,任務數不多,任務之間的關系也不復雜,則不一定需要移植復雜的操作系統。這樣一方面可以降低系統硬件開銷,也可以獲得更好的實時性和執行速度。不過,這樣的軟件開發方法需要開發人員有較好的程序設計思想,對所用器件有深入的了解,并掌握其編程控制方法。若引入一個簡單的操作系統,如μC/OS,可以簡化程序結構,但開發者最好熟悉其內核結構,并有使用經驗,否則可能會需要更多的系統開發、調試時間。

如果選擇了帶存儲器管理單元(MMU)的ARM處理器(如ARM920T、CortexA8等),這種應用系統根據應用、實時性、開發環境等因素,移植一個功能較強的操作系統一般情況下會比較合適,如Linux、WinCE,甚至新的Android等。這種系統的開發難度主要是在OS的移植以及硬件驅動程序的開發上。當這二步工作完成后,主要的軟件開發工作已和在PC機上開發沒有多大區別,可以按照一般的軟件工程方法來進行,要注意的只是與ARM硬件平臺相關的軟件優化問題。由于嵌入式系統硬件資源的有限性,嵌入式軟件與其他應用軟件的主要區別,在于嵌入式軟件要有較高的效率,包括執行速度和存儲空間,盡管這二者經常是相互矛盾的。目前一般要求更多的是速度優化。要編寫出高效的ARM程序,需要開發人員熟悉ARM的體系結構,包括內核結構、指令系統、Cache與存儲器結構等,還要有好的程序設計思想,以及對一些常用函數、算法的深刻理解。這個過程也是ARM系統開發從低級到高級的進階之路。

目前,由于應用系統越來越復雜,嵌入式軟件的移植性和重用性也得到了人們的高度重視,因為它直接影響到嵌入式軟件的開發效率和質量。選擇一種通用的開發環境和高級編程語言,使開發的嵌入式軟件可以方便地移植到不同的硬件平臺,是實現軟件重用的基礎。目前在ARM嵌入式系統開發中,ARM RealView、Keil以及IAR的EWARM是較好的開發平臺,C/C++語言是應用最廣泛的編程語言,并具有廣泛的庫函數、程序支持,在今后很長一段時間內,仍將在嵌入式系統應用領域中占重要地位。4 嵌入式系統的教學

如今,嵌入式系統作為一個熱門領域,其教學問題也頗受高校的關注。教學的主要目的是培養社會需要的人,由于嵌入式系統的廣泛性、差異性,社會對從事嵌入系統開發人員的要求也有很大的不同,既需要從事簡單8/16位單片機開發的人員,也需要從事ARM、DSP開發的人員;既要有從事硬件、底層軟件開發的人員,也要有從事OS移植、應用軟件開發的人員。由于整個大學學習時間和課程教學時數的限制,一個人顯然不可能學習、掌握嵌入系統開發的各個層面。所以,各個學校首先應根據自身情況,明確定位,確定自己培養學生的社會適應面,然后再制定教學大綱,確定課程內容和實驗平臺。對于高職、普通高校的電類與非電類專業、軟件學院等,都應該有不同的選擇,而不是人云亦云,一哄而上。

第二篇:嵌入式系統ARM實驗報告

南京郵電大學通信與信息工程學院

實驗報告

實驗名稱:實驗一基于ADS開發環境的設計

實驗二嵌入式Linux交叉開發環境的建立 實驗三嵌入式Linux環境下的程序設計

課程名稱嵌入式系統B

班級學號B13010711 姓名馬俊民

開課時間 2015/2016學年第1學期

實驗一基于ADS開發環境的程序設計

一、實驗目的

1、學習ADS開發環境的使用;

2、學習和掌握ADS環境下的匯編語言及C語言程序設計;

3、學習和掌握匯編語言及C語言的混合編程方法。

二、實驗內容

1、編寫和調試匯編語言程序;

2、編寫和調試C語言程序;

3、編寫和調試匯編語言及C語言的混合程序;

4、編寫程序測試多寄存器傳送指令的用法。

三、實驗原理

ADS全稱為ARM Developer Suite,是ARM公司推出的新一代ARM集成開發工具。現在常用的ADS版本是ADS1.2,它取代了早期的ADS1.1和ADS1.0。

ADS用于無操作系統的ARM系統開發,是對裸機(可理解成一個高級單片機)的開發。ADS具有極佳的測試環境和良好的偵錯功能,它可使硬件開發工作者更深入地從底層去理解ARM處理器的工作原理和操作方法,為日后自行設計打基礎,為BootLoader的編寫和調試打基礎。

1.ADS軟件的組成

ADS由命令行開發工具、ARM運行時庫、GUI開發環境(CodeWarrior和AXD)、實用程序、支持軟件等組成。

2.GUI開發環境

ADS GUI開發環境包含CodeWarrior和AXD兩種,其中Code Warrior是集成開發工具,而AXD是調試工具。

使用匯編語言進行編程簡單、方便,適用于初始化硬件代碼、啟動代碼等。匯編語言具有一些相同的基本特征:

1.一條指令一行。

2.使用標號(label)給內存單元提供名稱,從第一列開始書寫。3.指令必須從第二列或能區分標號的地方開始書寫。4.注釋必須跟在指定的注釋字符后面,一直書寫到行尾。

在ARM匯編程序中,每個段必須以AREA作為段的開始,以碰到下一個AREA作為該段的結束,段名必須唯一。程序的開始和結束需以ENTRY和END來標識。嵌入式C語言設計是利用基本的C語言知識,面向嵌入式工程實際應用進行程序設計。為了使單獨編譯的C語言程序和匯編程序之間能夠相互調用,必須為子程序之間的調用規定一定的規則。ATPCS就是ARM程序和Thumb程序中子程序調用的基本規則。

四、實驗過程與關鍵代碼分析

1.創建項目工程

在File菜單中選擇New命令,打開一個新建工程對話框。在Project選項卡下,選擇ARM Executable Image, 然后在Project name文本框里輸入項目名稱,點擊確定。彈出工程窗口。

選擇File菜單中的New命令,選擇File標簽頁,在File name文本框中輸入要創建的文件名。匯編程序以.s結尾,c程序以.c結尾。在Location文本框中指定文件的存放位置,選中Add to Project,在Targets中選中DebugRel,單擊確定關閉窗口。

2.用匯編語言設計程序實現10的階乘

AREA EXAMPLE, CODE, READONLY ENTRY start MOV R0, #10 MOV R1, #1 LOOP MUL R0, R0, R1 SUB R0, R0, 1 CMP R0, #1 BHI LOOP END 在這個程序中,我們首先對R0和R1賦值,將R0作為一個變量,而R1作為一個存貯階乘值的寄存器。在每進行一次乘法之后,將R0減1。同時在做完減法后進行判斷,如果此時R0大于1,則返回繼續乘法,否則結束程序,輸出結果。

3.用調用子程序的方法實現1!+2!+3!+?+10!,代碼如下: asmp.s

AREA JC, CODE, READONLY

EXPORT JCP

ENTRY JCP

ADD R3, R0, #1

MOV R2, #1

MOV R1, #1 LOOP MUL R0, R1, R2

MOV R1, R0

ADD R2, R2, #1

CMP R2, R3

BNE LOOP

NOP

NOP

MOV PC, LR

END

PROGC.c #include Extern int JCP(int N)

int main(){ int res=0;int m=10;int i;for(i=1;i<=m;i++)

res=res+JCP(i);printf(“The result =%dn”,res);return 0;} 在這個程序中,主程序由c語言完成作求和,子程序由匯編語言寫成作階乘。

5.實現字符串的逆序復制TEXT1=“HELLO”=>TEXT2=“OLLEH”

AREA invstring, CODE, READONLY start

ADR R1,TEXT1

ADR R2,TEXT2

MOV R3, #0 LOOP

LDRB R0,[R1], #1

ADD R3,R3,#1

CMP R0,#0

BNE LOOP

SUB R1,R1,#2

LOOP1

LDRB R0,[R1], #-1

STRB R0,[R2], #1

SUB R3,R3, #1

CMP R3,#1

BNE LOOP1

MOV R5,#&55

TEXT1

TEXT2 NOP =“HELLO”,0 ALIGN =“OELLH” END

五、實驗小結

在這次實驗中,學會了如何使用匯編程序進行編程。對匯編程序編程一些基本的要求有了一定的了解,學習了C語言的語法和在其中調用匯編程序的方法。學會了利用CodeWarrior IDE開發C和ARM匯編代碼。學會了在AXD中進行代碼調試的方法和過程,對AXD的調試有初步的了解。,實驗二嵌入式Linux交叉開發環境的建立

一、實驗目的

1、掌握嵌入式Linux交叉開發環境的建立方法

2、學習和掌握Linux常用命令

3、學習和掌握vi編輯器的使用

二、實驗內容

1、搭建嵌入式Linux交叉開發環境

2、熟悉Linux的常用命令

3、熟悉vi編輯器的常用命令

三、實驗原理

Linux系統是UNIX系統的分支,是UNIX的微機版。Linux具有異常豐富的驅動程序資源,支持各種主流的硬件設備與技術。Linux包含了現代的UNIX操作系統的所有功能特性,這些功能包括多任務、虛擬內存、虛擬文件系統、進程間通信、對稱所處理器、多用戶支持等。

Vi編輯器是所有UNIX和Linux下的標準編輯器。它包含3種工作模式。嵌入式系統是專用的計算機系統,它對系統的功能、可靠性、成本、體積、功耗等有嚴格的要求。大部分嵌入式系統沒有大容量存儲設備,一般不能安裝大型開發軟件,系統的開發需要采用交叉開發模式。

四、實驗過程與關鍵代碼分析

實驗用的是UP-NetARM2410-S試驗箱,里面配有三星的芯片S3c2410X。打開電腦上VMWare軟件,在Windows系統下啟動虛擬機里的Linux系統。接著需要

1.宿主機的環境搭建

下載并運行VMWare,根據向導創建一臺新虛擬機并選擇Linux作為客戶操作系統,再根據向導安裝RedHat Linux 9.0。

2.虛擬機中啟動Linux操作系統

使用root登陸,用戶名為root,密碼為123456。之后對共享文件設置進行調整:打開settings界面,打開shared folders功能,同時將路徑設置到有課前下載的軟件的目錄下。

3.開發工具軟件的安裝(1)安裝gcc 打開Linux后,打開終端窗口,在共享的目錄下找到install.sh并運行,命令如下: ls./ install.sh 安裝程序將自動建立/arm2410s目錄,并將所有的開發軟件包安裝到/arm2410s 目錄下,同時自動配置編譯環境,建立合適的符號鏈接。安裝完成后在目錄/opt/host/armv4l/bin/下應該能看到主編譯器。(2)配置PATH路徑

vi.bash.profile 將里面PATH變量改為PATH=$PATH:$HOME/bin:/opt/host/armv41/bin/;存盤后執行

source.bash_profile 以后armv4l-unknown-linux-gcc將被自動搜索到

4.宿主機上的開發環境配置(1)配置IP地址

ifconfig eth0 192.168.0.121 命令配置了宿主機的IP地址。然后打開網絡配置窗口,重新探測MAC地址。重新激活。(2)關閉防火墻

單擊“Red”菜單→“系統設置”→“安全級別”→打開“安全級別配置”窗口,選擇“無防火墻選項。”(3)配置NFS。

單擊“Red”菜單→“系統設置”→“服務器設置”→“服務”,在“服務配置”窗口中勾選nfs,單擊“開始”(4)NFS設置

單擊“Red”菜單→“系統設置”→“服務器設置”→“NFS服務器”,打開“NFS服務器配置”窗口,設置NFS共享。

然后在NFS服務器中增加主機IP地址的鏈接許可和目錄。完成配置。

5.目標機的信息輸出

Windows系統下,“開始”→“所有程序”→“附件”→“通訊”→“超級終端”,新建一個通信終端。區號、電話號碼隨意輸入。設置每秒位數為“115200”,數據位為“8”,無奇偶校驗,停止位為“1”,無數據流控制。單擊“確定”。

6.程序的運行

打開超級終端,啟動Linux,屏幕顯示:

[/mnt/yaffs] 在超級終端上執行掛載命令:

[/mnt] mount –t nfs 192.168.0.121:/arm2410s /mnt/nfs 掛載成功后可執行程序。

五、實驗小結

在這次實驗中,學會建立Linux交叉開發環境,學會了ls和vi,cd等常用的Linux命令,并掌握了Vi編輯器的使用方法。同時知道了如何在搭建失敗時尋找錯誤進行排錯。

實驗三嵌入式Linux環境下的程序設計

一、實驗目的

1、掌握嵌入式Linux環境下的程序設計方法

2、學會編寫Makefile文件

二、實驗內容

1、熟悉嵌入式教學實驗箱的使用

2、編寫C程序和Makefile文件

3、編譯程序產生可執行程序

4、完成主機的掛載和程序的執行

三、實驗原理

在嵌入式Linux環境下的程序設計方法有一下幾個步驟:

1.編寫源程序

2.編寫Makefile文件 3.編譯程序

4.運行和調試程序

5.將生產的可執行文件加入文件系統。

前三個步驟在宿主機上完成,后面的步驟在目標機上完成。

四、實驗過程與關鍵代碼分析

1.建立工作目錄

mkdir hello cd hello

2.編寫源程序

用vi編輯器編輯Hello.c文件

vi Hello.c 在Vi中輸入源程序如下:

#include main(){

printf(“hello world n”);}

3.編寫Makefile文件

vi Makefile 在vi中編輯Makefile文件如下:

CC= armv4l-unknown-linux-gcc EXEC = hello OBJS = hello.o CFLAGS += LDFLAGS+=-static all: $(EXEC)$(EXEC):(OBJS)$(CC)$(LDFLAGS)–o $@ $(OBJS)clean:

-rm –f $(EXEC)*.elf *.gdb *.o

4.編譯程序

在hello目錄下運行“make”來編譯程序。

make clean

make 編譯成功后,生成可執行文件Hello.o。

5.下載調試

在宿主機上啟動nfs服務,并將/arms2410s設置為共享目錄。接下來啟動超級終端,建立通訊,掛載。

[/mnt] mount –t nfs 192.168.0.121:/arm2410s /mnt/nfs 掛載成功后,進入/mnt/nfs,再進入/mnt/nfs/hello,直接運行剛剛編譯生成的可執行文件Hello.o,查看運行結果

cd hello./hello 可以看見“Hello world”

只需要掛載一次便可,只要實驗箱沒有重啟,就可以一直保持連接。反復修改、編譯、調試,直至程序調試通過。

6.可執行文件加入文件系統

程序調試通過后,可以把可執行文件拖放到usr/bin目錄下,然后使用mkcramfs制作工具生成新的文件系統。當系統啟動后,就可以在相應目錄下執行可執行程序hello.五、實驗小結 在這次實驗中,學會了在嵌入式Linux環境下設計程序。同時知道了如何對目標機進行掛載。以及如何在發現掛載不成功尋找錯誤進行修改。另外在編譯文件時需要注意的也都有所了解。

實驗四多線程程序設計

一、實驗目的1、2、二、實驗內容1、2、3、4、三、實驗原理

四、實驗過程與關鍵代碼分析

五、實驗小結

3+

第三篇:實習總結-嵌入式ARM

實訓總結

班級 卓越1301姓名***

通過這段時間的學習使我學到了很多知識,并且了解到ARM的應用以及對開發板的應用,為以后的學習奠定了一定的基礎。

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

廣義上講,凡是帶有微處理器的專用軟硬件系統都可稱為嵌入式系統。如各類單片機和DSP系統。這些系統在完成較為單一的專業功能時具有簡潔高效的特點。但由于他們沒有操作系統,管理系統硬件核軟件的能力有限,在實現復雜多任務功能時,往往困難重重,甚至無法實現。從狹義上講,我們更加強調那些使用嵌入式微處理器構成獨立系統,具有自己操作系統,具有特定功能,用于特定場合的嵌入式系統。

嵌入式的應用也比較廣泛涉及軍事國防、工業控制、消費電子和網絡。在家用方面更是數字電視、信息家電、智能玩具、手持通訊、存儲設備的核心。

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

在這次實訓中做了兩個項目,一個是LED燈,實現LED燈的點亮是比較簡單的,通過查找手冊可以很快的了解到要使用的寄存器和方法,另一個項目是DS18B20這個比較復雜,除了要掌握對寄存器的使用,還要對了解對串口的初始化,讀寫字節等等。

感謝這次實訓,通過這次的實訓項目,使我大體了解制作項目的步驟,了解了嵌入式技術的掌握是需要一個過程的。實事求是的說,嵌入式技術的全面掌握是有相當難度的,通過積累和動手總會有收獲的,從實驗中也明白了一個大的項目并不是一個人可以完成的,團隊協作很重要。

姓名:***

年級:卓越1301

2014-7-5

第四篇:ARM嵌入式系統應用中的問題總結分析

ARM嵌入式系統應用中的問題總結分析 引言

由于各種新型微處理器的出現和應用的不斷深化,嵌入式系統嵌入式系統在后PC時代得到了空前的發展。隨著時間的推移和技術的進步,在工業控制和新興的手持式應用等領域,用戶體驗成為產品成功的關鍵因素之一,越來越多的產品需要良好的用戶界面、互聯功能以及較強的數據處理能力,這對嵌入式處理器硬件、軟件、教學等提出了新的要求。

嵌入式處理器與硬件

在處理器方面,目前大量的中、低端嵌入式應用,主要使用8/16位單片機。在國內,由于歷史的原因,主要是以MCS51核為主的許多不同型號單片機,主要廠商有Atmel、Philips、Winbond、宏晶等。還有一些近幾年發展較快的新型單片機,如PIC、AVR、MSP430系列等。這些單片機各有特點,但從目前的發展角度來看,單片機針對特定應用領域的個性化發展愈發明顯,典型的例子就是TI公司的MSP430系列16位單片機、ST公司的STM8L系列8位單片機和STM32L系列32位超低功耗單片機。

在嵌入式中的高端應用領域,像工業控制、POS機、網絡設備、圖像處理、手機、PDA等,目前主要使用ARMARM、MIPS、PowerPC、DSP等16~64位處理器,以32位處理器為主。各種類型的處理器都有其一定的應用針對性。例如,DSP對數字信號處理技術中用到的常用運算、算法做了優化設計,主要用于實時信號處理領域,如實時音視頻處理、電機控制等。MIPS處理器性能很好,但功耗較大,適合于有交流電源供電的固定應用,如固定的網絡設備、機頂盒等。ARM處理器性能高,功耗低,適合于用電池供電的便攜、手持式設備。由于近幾年便攜、手持式嵌入式應用的高速發展,ARM處理器的增長速度和市場占有率也快速提升,成為目前32位應用中的主力產品。

由于嵌入式應用系統的廣泛性,嵌入式系統的硬件設計涉及的知識面很廣,從模擬到數字、低頻到高頻、小信號到大功率,以及復雜的時序邏輯設計和PCB設計,還要考慮軟硬件資源的合理分配,不僅要有廣而扎實的理論基礎,更需要豐富的實踐經驗。只有對大大小小各種應用系統反復實戰演練,了解新技術、新器件,使用過多種多樣的處理器和模擬/數字器件,才能逐步積累,聚沙成塔,對一個新的應用系統給出快速、合理的硬件方案與設計。

ARM處理器的優勢

對于如今大量出現的32位嵌入式應用,以筆者之見,ARM處理器的優勢主要有以下幾個方面。

2.1 高性能、低功耗、低價格

把ARM處理器的性能拿來和一些著名的通用處理器(如Pentium)相比是不合適的,因為他們各自針對的應用需求是不同的。Pentium處理器采用多條指令流水線的超標量結構,追求通用應用目標下的超強性能,功耗大,可以用散熱器加風扇散熱。ARM針對嵌入式應用,在滿足性能要求的前提下,力求最低的功率消耗。ARM結構的優點是能兼顧到性能、功耗、代碼密度、價格等幾個方面,而且做得比較均衡。在性能/功耗比(MIPS/W)方面,ARM處理器具有業界領先的性能。基于ARM核的芯片價格也很低,目前ARM CortexM的芯片價格可低至10元人民幣左右。

2.2 豐富的可選擇芯片

ARM只是一個核,ARM公司自己不生產芯片,采用授權方式給半導體生產商。目前,全球幾乎所有的半導體廠家都向ARM公司購買了各種ARM核,配上多種不同的控制器(如LCD控制器、SDRAM控制器、DMA控制器等)和外設、接口,生產各種基于ARM核的芯片。目前,基于ARM核的各種處理器型號有好幾百種,在國內市場上,常見的有ST、TI、NXP、Atmel、Samsung、OKI、Sharp、Hynix、Crystal等廠家的芯片。用戶可以根據各自的應用需求,從性能、功能等方面考察,在許多具體型號中選擇最合適的芯片來設計自己的應用系統。由于ARM核采用向上兼容的指令系統,用戶開發的軟件可以非常方便地移植到更高的ARM平臺。

2.3 廣泛的第三方支持

以如今的技術,設計一個處理器并非難事,但要使這個處理器得到大家認可,并取得市場成功卻是非常困難的,其中涉及許多技術與非技術的因素和環節,還包括時機、運氣。因為現在許多產品的開發,不是一個簡單的處理器加幾百條指令、語句就可以解決的。要用到32位處理器,一般都要有編譯器、高效的開發工具(仿真器及調試環境)、操作系統、協議棧等,這些東西都不是一個芯片生產商可以解決的,而需要許多第三方的支持。這就像一粒種子,需要土壤、空氣、水等環境才能發芽、成長。這也是我們的一些“中國芯”該反思之處。

ARM通過近20年的培育、發展,得到了廣泛的第三方合作伙伴支持。目前,除通用編譯器GCC,ARM有自己的高效編譯、調試環境(MDK、Keil),全球約有50家以上的實時操作系統(RTOS)軟件廠商和30家以上的EDA工具制造商,還有很多高效率的實時跟蹤調試工具的廠商,對ARM提供了很好的支持。用戶采用ARM處理器開發產品,既可以獲得廣泛的支持,也便于和同行交流,加快開發進度,縮短產品的上市時間。

2.4 完整的產品線和發展規劃

ARM核根據不同應用需求對處理器的性能要求,有一個從ARM7、ARM9到ARM10、ARM11,以及新定義的CortexM/R/A系列完整的產品線。前幾年應用較多的主要是基于V4架構的ARM7TDMI、ARM720T、ARM920T核的一些處理器芯片,如NXP的LPC2000系列、ST的STR7/9系列、Atmel 的AT91系列和Samsung的S3C系列。近兩年,ARM Cortex系列以更好的性能、更低的價格得到快速推廣,典型的就是基于CortexM3的STM32系列。

ARM CortexM/R/A系列分別針對不同的應用領域。M系列主要面向傳統微控制器(MCU/單片機)應用,這類應用面很廣,要求處理器有豐富的外設,并且各方面比較均衡;R系列強調實時性,主要用于實時控制,如汽車引擎;A系列面向高性能、低功耗應用系統,如智能手機。選用ARM處理器進行開發,技術積累性較強,生命周期長,設計重用度高,不易被淘汰。用戶在選擇ARM處理器時,可以針對應用需求,從大量的ARM芯片中選用滿足性能、功能要求的產品,以獲得較好的性價比。

ARM嵌入式系統的軟件

由于嵌入式系統的差異性很大,對不同的應用需求,必須選擇不同的軟件設計方法、開發平臺和系統工具。

對于一些不需要復雜圖形用戶界面、通信協議和復雜文件操作(如同時打開多個文件)的應用,如果選用CortexM3核的處理器就已可以滿足要求,任務數不多,任務之間的關系也不復雜,則不一定需要移植復雜的操作系統。這樣一方面可以降低系統硬件開銷,也可以獲得更好的實時性和執行速度。不過,這樣的軟件開發方法需要開發人員有較好的程序設計思想,對所用器件有深入的了解,并掌握其編程控制方法。若引入一個簡單的操作系統,如μC/OS,可以簡化程序結構,但開發者最好熟悉其內核結構,并有使用經驗,否則可能會需要更多的系統開發、調試時間。

如果選擇了帶存儲器管理單元(MMU)的ARM處理器(如ARM920T、CortexA8等),這種應用系統根據應用、實時性、開發環境等因素,移植一個功能較強的操作系統一般情況下會比較合適,如Linux、WinCE,甚至新的Android等。這種系統的開發難度主要是在OS的移植以及硬件驅動程序的開發上。當這二步工作完成后,主要的軟件開發工作已和在PC機上開發沒有多大區別,可以按照一般的軟件工程方法來進行,要注意的只是與ARM硬件平臺相關的軟件優化問題。

由于嵌入式系統硬件資源的有限性,嵌入式軟件與其他應用軟件的主要區別,在于嵌入式軟件要有較高的效率,包括執行速度和存儲空間,盡管這二者經常是相互矛盾的。目前一般要求更多的是速度優化。要編寫出高效的ARM程序,需要開發人員熟悉ARM的體系結構,包括內核結構、指令系統、Cache與存儲器結構等,還要有好的程序設計思想,以及對一些常用函數、算法的深刻理解。這個過程也是ARM系統開發從低級到高級的進階之路。

目前,由于應用系統越來越復雜,嵌入式軟件的移植性和重用性也得到了人們的高度重視,因為它直接影響到嵌入式軟件的開發效率和質量。選擇一種通用的開發環境和高級編程語言,使開發的嵌入式軟件可以方便地移植到不同的硬件平臺,是實現軟件重用的基礎。目前在ARM嵌入式系統開發中,ARM RealView、Keil以及IAR的EWARM是較好的開發平臺,C/C++語言是應用最廣泛的編程語言,并具有廣泛的庫函數、程序支持,在今后很長一段時間內,仍將在嵌入式系統應用領域中占重要地位。

嵌入式系統的教學

如今,嵌入式系統作為一個熱門領域,其教學問題也頗受高校的關注。教學的主要目的是培養社會需要的人,由于嵌入式系統的廣泛性、差異性,社會對從事嵌入系統開發人員的要求也有很大的不同,既需要從事簡單8/16位單片機開發的人員,也需要從事ARM、DSP開發的人員;既要有從事硬件、底層軟件開發的人員,也要有從事OS移植、應用軟件開發的人員。由于整個大學學習時間和課程教學時數的限制,一個人顯然不可能學習、掌握嵌入系統開發的各個層面。所以,各個學校首先應根據自身情況,明確定位,確定自己培養學生的社會適應面,然后再制定教學大綱,確定課程內容和實驗平臺。對于高職、普通高校的電類與非電類專業、軟件學院等,都應該有不同的選擇,而不是人云亦云,一哄而上。

就目前的發展看,由于ARM等32位處理器應用漸成主流,開發工具已較完善、成熟,對于普通高校計算機學科的嵌入式系統教學,筆者認為可以定位在以32位嵌入式系統開發為主,重點是嵌入式系統的軟硬件結構、嵌入式OS的知識,以及嵌入式軟件設計(包括優化)。課程主體內容基本與硬件平臺(處理器型號)無關,實驗可以采用基于ARM核的不同廠家處理器的實驗平臺。主要考慮以下幾點:

①在32位嵌入式系統開發上,軟件開發人員的需求比硬件開發人員要多得多(盡管目前硬件開發人員較難找,但這應該是電子等專業培養的)。一般在一個從事嵌入式應用系統開發的公司中,軟硬件人員的比例不會小于10:1。由于學習時間有限,教學重點應該偏軟件。

②現代社會強調分工、合作,以求得整體利益的最大化。對個人的要求首先是專才,能把局部工作做精、做好。通才是需要的,但數量會比專才少得多,而且通才是練出來的,不是教出來的。今后的大學是大眾教育,教學只能面向大眾需求。在相關專業的研究生階段,對一些有基礎、有興趣的學生,可以進行一些系統級硬件、底層軟件的開發實踐,同時也可滿足社會對高層次嵌入式人才的需要。

③以此為主,可以再開設2門選修課。向下為“單片機原理與應用”,此課程以實踐為主,讓有興趣的學生可以自己設計、制作一些單片機應用系統,同時也鍛煉了硬件動手能力。向上為“數字信號處理(DSP)”,讓那些數學基礎較好、對實時信號處理有興趣的學生有用武之地(現在這樣的學生很難得)。

另外,由于應用日趨復雜,而教學時間有限,一個本科生在校期間不可能深入學習嵌入式系統的很多細節,嵌入式教學應采用自上而下的教學方法。一開始不必花很多時間講解處理器內核架構/指令系統,只要知道各種內核的基本特點即可,重點學習、掌握處理器、外設的編程結構(即編程者角度看到的編程模型結構,非具體物理實現結構)。真實的應用、研究設計都是從粗粒度向細粒度進階的,是一個自頂向下的過程,首先要重視的是系統架構和各個抽象層。1000行的C程序,編譯后生成的目標代碼只有10 KB左右,試想現在的MCU Flash動輒幾百KB,為什么?一個目標代碼幾百KB的C程序,一般不是完全由個人寫出來的,而都會使用一些第三方的庫函數、中間件等。硬件也一樣,現在很多硬件系統都會使用一些模塊(Module),盡管這些模塊看上去還是一個芯片,但實際上已經是一個SiP模塊,如WiFi模塊。所以,在了解基本嵌入式系統結構的基礎上,本科階段要更多地學習各種系統、模塊、外設、協議、庫函數的“邊界(InteRFace)”,能夠搭建一個簡單系統(How to do),今后在工作、或研究生階段進一步去做好一個系統(How to do better)。

5結語

嵌入式系統作為一種特殊的計算機應用系統,在任何時期都有相對的高、中、低端應用,即使在今后,沒有OS支持的4位或8位單片機的嵌入式應用仍有大量需求,但趨勢是系統化、復雜化。這既是嵌入式系統的特點--廣泛性、差異性和不可壟斷性,也是廣大嵌入系統研發人員的生存與發展空間。ARM處理器在便攜、手持式設備以及工業控制等應用領域,在今后相當長的時間內是一個很好的選擇。當然,沒有一種型號的處理器是可以覆蓋所有應用的,也不是搬上一個嵌入式OS,就可以很好地解決軟件問題的。深入了解各種器件特性,選擇最合適的處理器、外圍器件、操作系統和軟件庫,盡可能地優化軟件設計,最貼切地滿足應用需求,以獲得最好的系統性價比,是嵌入式系統設計開發的精髓。

第五篇:哈工大ARM嵌入式系統考試知識點總結

接VIC部分

一旦產生IRQ中斷,微控制器切換到IRQ模式,并跳轉到向量表0x0018地址執行指令。一旦產生FIQ中斷,微控制器切換到FIQ模式,并跳轉到向量表0x001C地址執行指令,然后跳轉到FIQ_Handler代碼段。

下載ARM嵌入式系統的問題總結分析.word格式文檔
下載ARM嵌入式系統的問題總結分析..doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    ARM嵌入式基礎教程知識點總結

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

    ARM嵌入式技術復習總結

    第一章 1.嵌入式系統定義/概念:嵌入式系統就是嵌入到對象體中的專用計算機系統。三要素:嵌入、專用、計算機。嵌入性:嵌入到對象體系中,有對象環境要求,專用性:軟、硬件按對象要求......

    基于ARM嵌入式的遠程監控系統設計

    基于ARM嵌入式的遠程監控系統設計 摘要:基于ARM 內核的嵌入式系統在遠程監控報警系統中的設計實現與應用。核心部分主要包 括 ARM 嵌入式平臺設計及 μC-OS 嵌入式實時操作系......

    ARM嵌入式教學實驗系統項目合作意向書

    項目合作意向書項目名稱:“arm嵌入式教學實驗系統”甲方:深圳信息職業技術學院乙方:深圳市旋極歷通科技有限公司甲乙雙方經友好協商,同意以“深圳市旋極歷通科技有限公司”作為......

    基于ARM的嵌入式智能家居遠程監控系統設計.

    摘要 科技改變生活,科技為人類帶來了更舒適更方便的解決方案,智能家居是現代化科技的體現,智能家居也正是在應人們需求下而產生的。 本設計的內容是設計一個基于ARM的智能家居......

    ARM與嵌入式實驗報告(5篇)

    ARM與嵌入式技術 實驗報告 專業班級:通信工程 姓名:**** 學號:****** 實驗日期:2012年6月7日 指導老師:***** 一、實驗目的 1.學習使用Embest IDE開發環境及ARM 軟件模擬器; 2.......

    ARM嵌入式linux復習心得總結1

    2011.10.9 Evo楊 ARM嵌入式linux復習心得總結1: 一、Linux定制安裝: 從新安裝配置了一遍Linux,我使用的是Vmware7.0安裝RHEL5.5,對于Linux的安裝主要是要選擇定制安裝也就是Vmwa......

    ARM嵌入式linux復習心得總結1

    2011.10.9 Evo楊 ARM嵌入式linux復習心得總結1: 一、Linux定制安裝: 從新安裝配置了一遍Linux,我使用的是Vmware7.0安裝RHEL5.5,對于Linux的安裝主要是要選擇定制安裝也就是Vmwa......

主站蜘蛛池模板: 国产综合精品久久丫| 久久精品超碰av无码| 国产av一区二区三区传媒| 日韩国产图片区视频一区| 北条麻妃国产九九九精品视频| 国产成人精品白浆久久69| 性色av无码久久一区二区三区| 中文字幕精品无码综合网| 国产精品成人精品久久久| 老司机香蕉久久久久久| 欧美xxxxx性喷潮| 国产成人无码免费视频97app| 国产成人av三级在线观看按摩| 亚洲乱码中文字幕在线| 奇米影视888欧美在线观看| 强奷漂亮少妇高潮在线观看| 国产乱码精品一区二区三区四川人| 囯产精品一品二区三区| 成人欧美一区二区三区在线| 国内大量揄拍人妻在线视频| 亚洲中文字幕一区精品自拍| 亚洲男人成人性天堂网站| 国内精品久久毛片一区二区| 亚洲色精品aⅴ一区区三区| 丝袜亚洲精品中文字幕一区| 亚洲影院丰满少妇中文字幕无码| 久久国产精品免费一区下载| 97国产超碰一区二区三区| 亚洲综合无码精品一区二区三区| 色老板精品视频在线观看| 亚洲人成无码区在线观看| 国产人妻精品区一区二区三区| 国产做a爰片久久毛片a片美国| 日本韩国的免费观看视频| 2021久久天天躁狠狠躁夜夜| 亚洲午夜久久久久妓女影院| 亚洲男人综合久久综合天堂| 少妇被粗大猛进去69影院| 国产成人aaaaa级毛片| 一本一道精品欧美中文字幕| 欧美 变态 另类 人妖|