ARM接口編程

《ARM接口編程》以開發(fā)板為線索,詳細(xì)介紹了常見的幾種接口,主要內(nèi)容包括嵌入式硬件概述,GPIO接口編程,UART串口通信,AD轉(zhuǎn)換接口,中斷INT接口,RTC實(shí)時時鐘單元等?!禔RM接口編程》的實(shí)驗(yàn)都以"理論+在線仿真實(shí)踐"的方法貫穿始終,從簡單到復(fù)雜,循序漸進(jìn),層層深入。

ARM接口編程基本信息

外文名稱 ARM Interface Programming 書名 ARM接口編程
作者 田榮華 楊健 出版日期 2012年6月1日
語種 簡體中文 ISBN 9787121147746
出版社 電子工業(yè)出版社 頁數(shù) 215頁
開本 16

第1章 嵌入式硬件概述

1.1 硬件產(chǎn)品設(shè)計(jì)流程

1.2 電路圖的識圖能力

1.3 軟件控制硬件方法

1.4 嵌入式C語言

1.4.1 寄存器定義解釋

1.4.2 寄存器操作

1.52440SDK底板接口資源說明

1.6 本章小結(jié)

1.7 課后練習(xí)

第2章 GPIO接口編程

2.1 GPIO接口介紹

2.1.1 I/O接口的編址方式

2.1.2 GPIO(General-Purpose IO ports)

2.2 硬件原理分析

2.2.1 蜂鳴器硬件原理分析

2.2.2 LED的硬件原理分析

2.3 GPIO接口程序?qū)崿F(xiàn)

2.3.1 基于GPIO接口的蜂鳴器控制實(shí)現(xiàn)

2.3.2 基于GPIO接口的LED控制實(shí)現(xiàn)

2.4 Keil MDK程序在線仿真調(diào)試環(huán)境配置

2.5 本章小結(jié)

2.6 課后練習(xí)

第3章 UART串口通信

3.1 通信的基本模式及原理

3.1.1 數(shù)據(jù)通信的基本模式

3.1.2 串行通信原理

3.2 串行通信的方式

3.2.1 同步串行通信

3.2.2 異步串行通信

3.3 串口硬件原理分析

3.3.1 RS-232-C接口

3.3.2 UART數(shù)據(jù)流電路分析

3.4 串口通信程序設(shè)計(jì)

3.4.1 初始化UART端口

3.4.2 UART線性控制寄存器

3.4.3 UART控制寄存器

3.4.4 UART波特率除數(shù)寄存器(波特率因子寄存器)

3.5 本章小結(jié)

3.6 課后練習(xí)

第4章 AD轉(zhuǎn)換接口

4.1 ADC介紹

4.1.1 AD轉(zhuǎn)換器的分類

4.1.2 AD轉(zhuǎn)換器的主要技術(shù)指標(biāo)

4.2 A/D轉(zhuǎn)換過程

4.3 模數(shù)(A/D)轉(zhuǎn)換器工作原理

4.3.1 A/D轉(zhuǎn)換工作原理

4.3.2 AD硬件原理

4.4 ADC程序設(shè)計(jì)

4.5 本章小結(jié)

4.6 課后練習(xí)

第5章 中斷INT接口

5.1 S3C2440中斷介紹

5.2 中斷控制器操作

5.3 ARM中斷異常處理

5.3.1 ARM中斷異常處理流程

5.3.2 中斷優(yōu)先級生成模塊

5.4 看門狗中斷程序?qū)嵗?

5.4.1 看門狗概念

5.4.2 看門狗的功能模塊及所用寄存器

5.4.3 看門狗程序?qū)崿F(xiàn)

5.5 鍵盤中斷程序設(shè)計(jì)

5.5.1 鍵盤中斷硬件連接

5.5.2 鍵盤中斷程序的實(shí)現(xiàn)

5.6 本章小結(jié)

5.7 課后練習(xí)

第6章 RTC實(shí)時時鐘

6.1 實(shí)時時鐘介紹

6.2 S3C2440內(nèi)部RTC模塊結(jié)構(gòu)框架分析

6.3 S3C2440處理器的RTC工作原理

6.4 RTC硬件原理及程序?qū)崿F(xiàn)

6.4.1 RTC硬件原理

6.4.2 RTC程序?qū)崿F(xiàn)

6.5 本章小結(jié)

6.6 課后練習(xí)

第7章 觸摸屏接口

7.1 觸摸屏介紹

7.1.1 觸摸屏簡介

7.1.2 觸摸屏的主要類型

7.2 四線電阻式觸摸屏的工作原理

7.2.1 觸摸屏的接口部分

7.2.2 觸摸屏接口模式

7.2.3 觸摸屏相關(guān)寄存器

7.3 觸摸屏程序設(shè)計(jì)及實(shí)現(xiàn)

7.4 本章小結(jié)

7.5 課后練習(xí)

第8章 LCD顯示屏接口

8.1 LCD顯示屏介紹

8.1.1 超薄平面顯示器時代來臨

8.1.2 液晶的發(fā)明與原理

8.1.3 液晶顯示器的發(fā)展與未來

8.2 S3C2440 LCD控制器詳解

8.3 TFT屏?xí)r序分析及LCD控制器的設(shè)置方法

8.3.1 TFT屏?xí)r序分析

8.3.2 S3C2440 LCD控制器的設(shè)置方法

8.4 LCD驅(qū)動主程序分析

8.5 本章小結(jié)

8.6 課后練習(xí)

第9章 IIC接口控制

9.1 IIC概念及特點(diǎn)

9.1.1 IIC概念

9.1.2 IIC總線特點(diǎn)

9.1.3 I2C總線的硬件結(jié)構(gòu)

9.2 IIC總線工作原理及工作時序

9.2.1 總線的構(gòu)成及信號類型

9.2.2 IIC時序分析

9.3 S3C2440的硬件連接及IIC控制器

9.3.1 AT24××系列的硬件連接

9.3.2 S3C2440的IIC相關(guān)寄存器

9.4 IIC程序設(shè)計(jì)及實(shí)現(xiàn)

9.4.1 IIC程序設(shè)計(jì)

9.4.2 IIC程序?qū)崿F(xiàn)

9.5 本章小結(jié)

9.6 課后練習(xí)

第10章 SD卡接口控制

10.1 SD總線接口

10.1.1 SPI接口

10.1.2 SD接口

10.2 SD總線協(xié)議

10.3 SD卡主程序分析

10.4 本章小結(jié)

10.5 課后練習(xí)

第11章 MMU內(nèi)存管理單元

11.1 MMU介紹

11.2 S3C2440虛擬地址到物理地址的映射

11.2.1 虛擬地址和物理地址的概念

11.2.2 虛擬地址到物理地址的轉(zhuǎn)換過程

11.2.3 內(nèi)存的訪問權(quán)限檢查

11.2.4 TLB的作用

11.2.5 Cache的作用

11.2.6 S3C2440 MMU、TLB、Cache的控制指令

11.3 MMU使用實(shí)例--地址映射

11.4 本章小結(jié)

11.5 課后練習(xí)

第12章 ARM-Keil集成開發(fā)環(huán)境

12.1 Keil MDK特性

12.2 Keil MDK整體結(jié)構(gòu)及應(yīng)用開發(fā)解決方案

12.3 RealView MDK的使用

12.3.1 μVision4的安裝

12.3.2 創(chuàng)建μVision4工程

12.4 Keil MDK編譯器與ULINK2使用

12.4.1 ULINK2概述

12.4.2 ULINK2與MDK的鏈接使用

12.5 Keil MDK編譯器與J-LINK使用

12.5.1 J-LINK概述

12.5.2 J-LINK與MDK的鏈接使用

12.6 Keil MDK編譯器與H-JTAG使用

12.6.1 H-JTAG介紹

12.6.2 H-JTAG調(diào)試結(jié)構(gòu)

12.6.3 H-JTAG的安裝

12.6.4 H-JTAG配置

12.6.5 MDK的安裝與設(shè)置

12.6.6 調(diào)試

12.7 本章小結(jié)

12.8 課后練習(xí)

附錄

參考文獻(xiàn)

ARM接口編程造價信息

市場價 信息價 詢價
材料名稱 規(guī)格/型號 市場價
(除稅)
工程建議價
(除稅)
行情 品牌 單位 稅率 供應(yīng)商 報價日期
電氣火災(zāi)監(jiān)控設(shè)備集成應(yīng)用編程接口 產(chǎn)品說明:將電氣火災(zāi)監(jiān)控系統(tǒng)集成到第三方系統(tǒng)中的接口軟件。它運(yùn)行于第三方系統(tǒng)計(jì)算機(jī)內(nèi)并通過該計(jì)算機(jī)的RS232口與電氣火災(zāi)監(jiān)控設(shè)備上的接口卡GST-DH9000 232card進(jìn)行通訊,獲取電氣火災(zāi)監(jiān)控設(shè)備的信息,從而實(shí)現(xiàn)電氣火災(zāi)監(jiān)控設(shè)備與第三方進(jìn)行系統(tǒng)連接。;品種:接口;型號:DH-GST-COM 查看價格 查看價格

海灣

13% 海灣安全技術(shù)有限公司九江銷售中心
接口 品種:接口,型號:KD65 查看價格 查看價格

澤濟(jì)

13% 合肥澤濟(jì)消防器材有限公司
接口 DN50/- 查看價格 查看價格

13% 滄州永安消防器材廠
接口 100/; 查看價格 查看價格

13% 北京世紀(jì)皖京科技有限公司河南銷售
接口 DN65 查看價格 查看價格

13% 邢臺泰安消防器材有限公司
接口 KD65 查看價格 查看價格

東消

13% 銀川凱銳電子有限公司
接口 規(guī)格型號:接扣 80,備注:表面氧化和電詠處理,貼身份證標(biāo)識可送檢。 查看價格 查看價格

天星

13% 合肥江晨物資有限公司
接口 規(guī)格型號:接扣 100,備注:表面氧化和電詠處理,貼身份證標(biāo)識可送檢。 查看價格 查看價格

天星

13% 合肥江晨物資有限公司
材料名稱 規(guī)格/型號 除稅
信息價
含稅
信息價
行情 品牌 單位 稅率 地區(qū)/時間
法蘭接口 DN20 查看價格 查看價格

湛江市2022年3季度信息價
法蘭接口 DN25 查看價格 查看價格

湛江市2022年3季度信息價
法蘭接口 DN50 查看價格 查看價格

湛江市2022年3季度信息價
法蘭接口 DN80 查看價格 查看價格

湛江市2022年3季度信息價
法蘭接口 DN80 查看價格 查看價格

湛江市2022年2季度信息價
法蘭接口 DN100 查看價格 查看價格

湛江市2022年2季度信息價
法蘭接口 DN15 查看價格 查看價格

湛江市2022年1季度信息價
法蘭接口 DN20 查看價格 查看價格

湛江市2022年1季度信息價
材料名稱 規(guī)格/需求量 報價數(shù) 最新報價
(元)
供應(yīng)商 報價地區(qū) 最新報價時間
編程調(diào)試 定制化編程|2.0臺 3 查看價格 深圳市一禾音視頻科技有限公司    2015-11-25
編程調(diào)試 定制化編程|1.0項(xiàng) 3 查看價格 快思聰廣州辦事處    2015-12-25
快速道閘(ARM) 參數(shù)按原檔|3臺 1 查看價格 深圳市車安智能化工有限公司 廣東   2018-05-04
快速道閘(ARM) 一體化機(jī)芯、4米直桿;帶遙控、按鈕.|3套 2 查看價格 廣東宏河科技有限公司 全國   2021-12-16
控制盒(ARM) 參數(shù)按原檔|3臺 1 查看價格 深圳市車安智能化工有限公司 廣東   2018-05-04
控制盒(ARM) 參數(shù)按原檔|3臺 1 查看價格 深圳市車安智能化工有限公司 廣東   2018-05-04
快速道閘(ARM) 參數(shù)按原檔|3臺 1 查看價格 深圳市車安智能化工有限公司 廣東   2018-05-04
PLC編程軟件 PLC編程軟件|1套 2 查看價格 廣州市熹尚科技設(shè)備有限公司 湖南   2021-10-12

ARM接口編程常見問題

  • plc編程接口和通訊接口一樣嗎

    你問的很抽象,看是什么牌子的plc,但是市面上見到的大部分plc都是可以用編程口來通訊,畢竟你編程監(jiān)控什么的也都是要通訊的嘛。一般plc的編程口都是可以和觸摸屏、上位機(jī)來通訊的,個別的除外。具體問題具...

  • java 接口能實(shí)現(xiàn)接口么??

    public class LinkedList extends AbstractSequentialList implements List, Queue, ...

  • STAT接口和IDE接口的接法怎樣接?

    一般系統(tǒng)默認(rèn)是SATA做主盤的 而且SATA沒跳線設(shè)置! 主要的在主版COMS里面設(shè)置看看了!回答者:3683680 - 秀才 二級 8-20 17:08SATA硬盤BIOS設(shè)置圖解分類:默認(rèn)欄目 由...

ARM接口編程文獻(xiàn)

FoxPro應(yīng)用程序編程接口及其庫構(gòu)造工具 FoxPro應(yīng)用程序編程接口及其庫構(gòu)造工具

格式:pdf

大?。?span id="4wqclqv" class="single-tag-height">394KB

頁數(shù): 3頁

評分: 4.6

本文介紹了利用VC開發(fā)FoxPro動態(tài)連接庫的一般方法和相關(guān)軟件環(huán)境的設(shè)置,并以一實(shí)例介紹了實(shí)現(xiàn)的過程。

立即下載
OMRON PLC編程軟件接口的研究 OMRON PLC編程軟件接口的研究

格式:pdf

大小:394KB

頁數(shù): 4頁

評分: 4.5

通過對OMRONPLC編程軟件CX Programmer采用的文本文件( .CXT)結(jié)構(gòu)的分析,闡述了CXT文件的數(shù)據(jù)結(jié)構(gòu)以及自動生成的方法,從而為用戶將時序圖無需編程轉(zhuǎn)換成梯形圖打下了基礎(chǔ),大大提高了PLC應(yīng)用編程效率。

立即下載

---

有同學(xué)反映,我們視頻一上來就講干貨,希望適當(dāng)普及一下相關(guān)概念,這篇就是。

ARM處理器解析

ARM9、ARM11是哈佛5級流水線結(jié)構(gòu),所以性能要高一點(diǎn)。ARM9和ARM11大多帶內(nèi)存管理器,跑操作系統(tǒng)好一點(diǎn),ARM7適合裸奔。我們慣稱的 ARM9系列中又存在ARM9與ARM9E兩個系列,其中ARM9 屬于ARM v4T架構(gòu),典型處理器如ARM9TDMI和ARM922T;

而ARM9E屬于ARM v5TE架構(gòu),典型處理器如ARM926EJ和ARM946E。因?yàn)楹笳叩男酒瑪?shù)量和應(yīng)用更為廣泛,所以我們提到ARM9的時候更多地是特指ARM9E系列處理器(主要就是ARM926EJ和ARM946E這兩款處理器)。

下面關(guān)于ARM9的介紹也是更多地集中于ARM9E。

2

ARM7處理器和ARM9E處理器的流水線差別

對嵌入式系統(tǒng)設(shè)計(jì)者來說,硬件通常是第一考慮的因素。針對處理器來說,流水線則是硬件差別的最明顯標(biāo)志,不同的流水線設(shè)計(jì)會產(chǎn)生一系列硬件差異。

讓我們來比較一下ARM7和ARM9E的流水線,ARM9E從ARM7的3級流水線增加到了5級,ARM9E的流水線中容納了更多的邏輯操作,但是每一級的邏輯操作卻變得更為簡單。

比如原來 ARM7的第三級流水,需要先內(nèi)部讀取寄存器、然后進(jìn)行相關(guān)的邏輯和算術(shù)運(yùn)算,接著處理結(jié)果回寫,完成的動作非常復(fù)雜;

而在ARM9E的5級流水中,寄存器讀取、邏輯運(yùn)算、結(jié)果回寫分散在不同的流水當(dāng)中,使得每一級流水處理的動作非常簡潔。這就使得處理器的主頻可以大幅度地提高。因?yàn)槊恳患壛魉紝?yīng) CPU的一個時鐘周期,如果一級流水中的邏輯過于復(fù)雜,使得執(zhí)行時間居高不下,必然導(dǎo)致所需的時鐘周期變長,造成CPU的主頻不能提升。所以流水線的拉長,有利于CPU主頻的提高。

在常用的芯片生產(chǎn)工藝下,ARM7一般運(yùn)行在100MHz左右,而ARM9E則至少在200MHz以上。

3

ARM9E處理器的存儲器子系統(tǒng)

像ARM926EJ 和ARM946E這兩個最常見的ARM9E處理器中,都帶有一套存儲器子系統(tǒng),以提高系統(tǒng)性能和支持大型操作系統(tǒng)。如圖2所示,一個存儲器子系統(tǒng)包含一個 MMU(存儲器管理單元)或MPU(存儲器保護(hù)單元)、高速緩存(Cache)和寫緩沖(Write Buffer);CPU通過該子系統(tǒng)與系統(tǒng)存儲器系統(tǒng)相連。

高速緩存和寫緩存的引入是基于如下事實(shí),即處理器速度遠(yuǎn)遠(yuǎn)高于存儲器訪問速度;如果存儲器訪問成為系統(tǒng)性能的瓶頸,則處理器再快也是浪費(fèi),因?yàn)樘幚砥餍枰馁M(fèi)大量的時間在等待存儲器上面。

高速緩存正是用來解決這個問題,它可以存儲最近常用的代碼和數(shù)據(jù),以最快的速度提供給CPU處理(CPU訪問Cache不需要等待)。

4

復(fù)雜處理器內(nèi)部的存儲器子系統(tǒng)

MMU則是用來支持存儲器管理的硬件單元,滿足現(xiàn)代平臺操作系統(tǒng)內(nèi)存管理的需要;它主要包括兩個功能:一是支持虛擬/物理地址映射,二是提供不同存儲器地址空間的保護(hù)機(jī)制。

一個簡單的例子可以幫助我們理解MMU的功能,在一個操作系統(tǒng)下,程序開發(fā)人員都是在操作系統(tǒng)給定的API和編程模型下開發(fā)程序;操作系統(tǒng)通常只開放一個確定的存儲器地址空間給用戶。這樣就帶來 一個直接的問題,所有的應(yīng)用程序都使用了相同的存儲器地址空間,如果這些程序同時啟動的話(在現(xiàn)在的多任務(wù)系統(tǒng)中這是非常常見的),就會產(chǎn)生存儲器訪問沖 突。那操作系統(tǒng)是如何來避免這個問題的呢?

操作系統(tǒng)會利用MMU硬件單元完成存儲器訪問虛擬地址到物理地址的轉(zhuǎn)換。所謂虛擬地址就是程序員在程序中使用的邏輯地址,而物理地址則是真實(shí)存儲器單元的空間地址。MMU通過一定的規(guī)則, 可以把相同的虛擬地址映射到不同的物理地址上去。這樣,即使有多個使用相同虛擬地址的程序進(jìn)程啟動,也可以通過MMU調(diào)度把它們映射到不同的物理地址上 去,不會造成系統(tǒng)錯誤。

5

MMU的功能和作用

MMU 處理地址映射功能之外,還能給不同的地址空間設(shè)置不同的訪問屬性。比如操作系統(tǒng)把自己的內(nèi)核程序地址空間設(shè)置為用戶模式下不可訪問,這樣的話用戶應(yīng)用程序就無法訪問到該空間,從而保證操作系統(tǒng)內(nèi)核的安全性。

MPU與MMU的區(qū)別在于它只有給地址空間設(shè)置訪問屬性的功能而沒有地址映射功能。Cache以及MMU等硬件單元的引入,給系統(tǒng)程序員的編程模型帶來了許多全新的變化。

除了需要掌握基本的概念和使用方法之外,下面幾個針對系統(tǒng)優(yōu)化的點(diǎn)既有趣又重要:

1.系統(tǒng)實(shí)時性考慮因素

為保存地址映射規(guī)則的頁表(Page Table)非常龐大,通常MMU中只是存儲器了常用的一小段頁表內(nèi)容,大部分頁表內(nèi)容都存儲于主存儲器里面;當(dāng)調(diào)用新的地址映射規(guī)則時,MMU可能需要讀取主存儲器來更新頁表。

這在某些情況下會造成系統(tǒng)實(shí)時性的丟失。比如當(dāng)需要執(zhí)行一段關(guān)鍵的程序代碼時,如果不巧這段代碼使用的地址空間不在當(dāng)前MMU的頁表處理范圍里面,則MMU首先需要更新頁表,然后完成地址映射,接著才能相應(yīng)存儲器訪問;

整個地址譯碼過程非常長,給實(shí)時性帶來非常大的不利影響。所以一般來說帶MMU和Cache的系統(tǒng)在實(shí)時性上不如一些簡單的處理器;不過也有一些辦法能夠幫助提高這些系統(tǒng)的實(shí)時效率。

一個簡單的辦法是在需要的時候關(guān)閉MMU和Cache,這樣就變成一個簡單處理器了,可以馬上提高系統(tǒng)實(shí)時性。當(dāng)然很多情況下這不可行;

在ARM的MMU和 Cache設(shè)計(jì)中,有一個鎖定的功能,就是說你可以指定某一塊頁表在MMU中不會被更新掉,某一段代碼或數(shù)據(jù)可以在Cache中鎖定而不會被刷新掉;程序員可以利用這個功能來支持那些實(shí)時性要求最高的代碼,保證這些代碼始終能夠得到最快的響應(yīng)和支持。

2.系統(tǒng)軟件優(yōu)化

在嵌入式系統(tǒng)開發(fā)中,很多系統(tǒng)軟件優(yōu)化的方法都是相同和通用的,多數(shù)情況下這種規(guī)則也適用于ARM9E架構(gòu)上。如果你已經(jīng)是一個ARM7的編程高手,那么恭喜你,以前你掌握的優(yōu)化方法完全可以用在新的ARM9E平臺上,但是會有一些新的特性需要你加倍注意。最重要的便是Cache的作用,Cache本身并不 帶來編程模型和接口的變化,但是如果我們考察Cache的行為,就能夠發(fā)現(xiàn)對于軟件優(yōu)化,Cache是有比較大的影響的。

Cache在物理上就是一塊高速SRAM,ARM9E的Cache組織寬度(cache line)都是4個word(也就是32個字節(jié));Cache的行為受系統(tǒng)控制器控制而不是程序員,系統(tǒng)控制器會把最近訪問存儲器地址附近的內(nèi)容復(fù)制到Cache中去,這樣,當(dāng)CPU訪問下一個存儲器單元的時候(這個訪問既可能是取指,也可能是數(shù)據(jù)),可能這個存儲器單元的內(nèi)容已經(jīng)在Cache里了,所以CPU不需要真的到主存儲器上去讀取內(nèi)容,而直接讀取Cache高速緩存上面的內(nèi)容就可以了,從而加快了訪問的速度。

從Cache的工作原理我們可以看 到,其實(shí)Cache的調(diào)度是基于概率的,CPU要訪問的數(shù)據(jù)既可能在Cache中已經(jīng)存在(Cache hit),也可能沒有存在(Cache miss)。在Cache miss的情況下,CPU訪問存儲器的速度會比沒有Cache的情況更壞,因?yàn)镃PU除了要從存儲器訪問數(shù)據(jù)以外,還需要處理Cache hit或miss的判斷,以及Cache內(nèi)容的刷新等動作。

只有當(dāng)Cache hit帶來的好處超過Cache miss帶來的犧牲的時候,系統(tǒng)的整體性能才能得到提高,所以Cache的命中率成為一個非常重要的優(yōu)化指標(biāo)。

根據(jù)Cache行為的特點(diǎn),我們可以直觀地得到提高Cache命中率的一些方法,如盡可能把功能相關(guān)的代碼和數(shù)據(jù)放置在一起,減少跳轉(zhuǎn)次數(shù);跳轉(zhuǎn)經(jīng)常會引起 Cache miss。保持合適的函數(shù)大小,不要書寫太多過小的函數(shù)體,因?yàn)榫€性的程序執(zhí)行流程是最為Cache友好的。

循環(huán)體最好放置在4個word對齊的地址,這 樣就能保證循環(huán)體在Cache中是行對齊的,并且占用最少的Cache行數(shù),使得被多次調(diào)用的循環(huán)體得到更好的執(zhí)行效率。

6

性能和效率的提升

前面介紹了ARM9E相比于ARM7性能上的提高,這不僅表現(xiàn)在ARM9E有更快的主頻、更多的硬件特性上面,還體現(xiàn)在某些指令的執(zhí)行效率上面。執(zhí)行效率我 們可以用CPU的時鐘周期數(shù)(Cycle)來衡量;

運(yùn)行同一段程序,ARM9E的處理器可以比ARM7節(jié)省大約30%左右的時鐘周期。

效率的提高主要來自于ARM9E對于Load-Store指令執(zhí)行效率的增強(qiáng)。我們知道在RISC架構(gòu)的處理器中,程序中大約有30%的指令是Load- Store指令,這些指令的效率對系統(tǒng)效率的貢獻(xiàn)是最明顯的。

ARM9E中有兩個因素幫助提高Load-Store指令的效率:

1)ARM9內(nèi)核是哈佛架構(gòu),擁有獨(dú)立的指令和數(shù)據(jù)總線;相對應(yīng),ARM7內(nèi)核的指令和數(shù)據(jù)總線復(fù)用的馮諾依曼架構(gòu)。

2)ARM9的5級流水線設(shè)計(jì)把存儲器訪問和寄存器寫回放在不同的流水上面。

兩者結(jié)合,使得在指令流的執(zhí)行過程中每個CPU時鐘周期都可以完成一個Load或Store指令。

下面的表格比較了ARM7和ARM9處理器之間的Load -Store指令。

從中可以看出所有的Store指令A(yù)RM9比ARM7省1個周期,Load指令可以省2個周期(在沒有互鎖的情況下,編譯工具能夠通過 編譯優(yōu)化消除大多數(shù)的互鎖可能)。

綜合各種因素,ARM9E處理器擁有非常強(qiáng)大的性能。但是在實(shí)際的系統(tǒng)設(shè)計(jì)中,設(shè)計(jì)人員并不總是把處理器性能開到最大,理想情況是把處理器和系統(tǒng)運(yùn)行頻率降低,使得性能剛好能滿足應(yīng)用需求; 達(dá)到節(jié)省功耗和成本的目的。

在評估系統(tǒng)能夠提供的處理器能力過程中,DMIPS指標(biāo)被很多人采用; 同時它也被廣泛應(yīng)用于不同處理器間的性能比較。

但是用DMIPS來衡量處理器性能存在很大的缺陷。 DMIPS并非字面上每秒百萬條指令的意思,它是一個測量CPU運(yùn)行一個叫Dhrystone的測試程序時表現(xiàn)出來的相對性能高低的一個單位(很多場合人們也習(xí)慣用MIPS作為這個性能指標(biāo)的單位)。因?yàn)榛诔绦虻臏y試容易受到惡意優(yōu)化的干擾,并且DMIPS指標(biāo)值的發(fā)布不受任何機(jī)構(gòu)的監(jiān)督,所以使用DMIPS進(jìn)行評估時要慎重。

例如對Dhrystone測試程序進(jìn)行不同的編譯處理,在同一個處理器上運(yùn)行也可以得出差別很大的結(jié)果。

DMIPS另外一個缺點(diǎn)是不能測量處理器的數(shù)字信號處理能力和Cache/MMU子系統(tǒng)的性能。因?yàn)镈hrystone測試程序不包含DSP表達(dá)式,只包含一些整型運(yùn)算和字符串處理,并且測試程序偏小,幾乎可以完整地放在Cache里面運(yùn)行而無需與外部存儲器進(jìn)行交互。這樣就難以反映處理器在一個真實(shí)系統(tǒng)中的真正性 能。

一種值得鼓勵的評估方法是站在系統(tǒng)的角度看問題,而不僅僅拘泥于CPU本身;而系統(tǒng)性能評估最好的測試向量就是用戶應(yīng)用程序或相近的測試程序,這是用戶所需的最真實(shí)的結(jié)果。

7

ARM9E處理器的DSP運(yùn)算能力

伴隨應(yīng)用程序的多樣化和復(fù)雜化,諸如多媒體、音視頻功能在嵌入式系統(tǒng)里面也是全面開花。這些應(yīng)用需要相當(dāng)?shù)腄SP處理能力;如果是在傳統(tǒng)的RISC架構(gòu)上實(shí) 現(xiàn)這些算法,所需的資源(頻率和存儲器等)會非常不經(jīng)濟(jì)。

ARM9E處理器一個非常重要的優(yōu)勢就是擁有輕量級的DSP處理能力,以非常小的成本(CPU增 加功能需要增加硬件)換來了非常實(shí)用的DSP性能。

因?yàn)镃PU的DSP能力并不直接反映在像DMIPS這樣的評測指標(biāo)中,同時像以前的ARM7處理器中也沒有類似的概念;所以這一點(diǎn)對所有使用ARM9E處理器進(jìn)行開發(fā)的人來說,都是需要注意的一個要點(diǎn)。

ARM9E的DSP擴(kuò)展指令,主要包括三個類型:

1)單周期的16x16和32x16 MAC操作,因?yàn)閿?shù)字信號處理中甚少32位寬的操作數(shù),在32位寄存器中可以對操作數(shù)分段運(yùn)算顯得非常有用。

2)對原有的算術(shù)運(yùn)算指令增加了飽和處理擴(kuò)展,所謂飽和運(yùn)算,就是當(dāng)運(yùn)算結(jié)果大于一個上限或小于一個下限時,結(jié)果就等于上限或是下限;

飽和處理在音頻數(shù)據(jù)和視頻像素處理中普遍使用,現(xiàn)在一條單周期飽和運(yùn)算指令就能夠完成普通RISC指令“運(yùn)算-判斷-取值”這一系列操作。

3)前導(dǎo)零(CLZ)運(yùn)算指令,提高了歸一化和浮點(diǎn)運(yùn)算以及除法操作的性能。

以流行的MP3解碼程序?yàn)槔?。整個解碼過程中前端的三個步驟是運(yùn)算量最大的,包括比特流的讀入(解包)、霍夫曼譯碼還有反量化采樣(逆變換)。

ARM9E的 DSP指令正好可以高效地完成這些運(yùn)算。以44.1 KHz@128 kbps碼率的MP3音樂文件為例,ARM7TDMI需要占用20MHz以上的資源,

而ARM926EJ則只要小于10MHz的資源在從ARM7到ARM9的平臺轉(zhuǎn)變過程中,有一件事情是非常值得慶幸的,即ARM9E能夠完全地向后兼容ARM7上的軟件;并且開發(fā)人員面對的編程模型和架構(gòu)基礎(chǔ)也保持一致。

但是畢竟ARM9E中增加了很多新的特性,為了充分利用這些新的資源,把系統(tǒng)性能優(yōu)化好,需要我們對ARM9E做更多深入地了解。

---end--

6月中旬來了,有同學(xué)詢問我們的淘寶店鋪是否搞降價活動,這里統(tǒng)一回復(fù):產(chǎn)品定價已經(jīng)很親民,我們不打價格戰(zhàn),和往年一樣,不參加618大促,目前只有現(xiàn)金獎勵活動(點(diǎn)擊下面標(biāo)題了解詳情):

【有獎活動】完成課后作業(yè):裸機(jī)測試界面, 贏取獎金2000元人民幣,

按要求完成最高可獲得2000元現(xiàn)金獎勵~,適合時間充裕還可以賺外快補(bǔ)貼生活費(fèi)的在校生,何樂而不為?

41人加群,據(jù)小編了解目前已有好幾個人正在寫代碼...你還在等什么?

免責(zé)聲明:本文系網(wǎng)絡(luò)轉(zhuǎn)載,有改動,版權(quán)歸原作者所有。如涉及作品版權(quán)問題,請與我們聯(lián)系,我們將根據(jù)您提供的版權(quán)證明材料確認(rèn)版權(quán)并支付稿酬或者刪除內(nèi)容。

第一,學(xué)習(xí)基本的單片機(jī)編程。

對于學(xué)硬件的人而言,必須先對硬件的基本使用方法有感性的認(rèn)識,更必須深刻認(rèn)識該硬件的控制方式,如果一開始就學(xué)linux系統(tǒng)、學(xué)移植那么只會馬上就陷入一個很深的漩渦。我在剛剛開始學(xué)ARM的時候是選擇ARM7(主要是當(dāng)時ARM9還很貴),學(xué)ARM7的時候還是保持著學(xué)51單片機(jī)的思維,使用ADS 去編程,第一個實(shí)驗(yàn)就是控制 led。學(xué)過一段時間ARM的人都會笑這樣很笨,實(shí)際上也不是,我倒是覺得有這個過程會好很多,因?yàn)闊o論做多復(fù)雜的系統(tǒng)最終都會落實(shí)到這些最底層的硬件控制,因此對這些硬件的控制有了感性的認(rèn)識就好很多了 學(xué)習(xí)單片機(jī)的編程的同時要好好理解這個硬件的構(gòu)架、控制原理,這些我稱他為理解硬件。所謂的理解硬件就是說,理解這個硬件是怎么組織這么多資源的,這些資源又是怎么由cpu、由編程進(jìn)行控制的。比如說,s3c2410中有AD轉(zhuǎn)換器,有GPIO(通用IO口),還有nandflash控制器,這些東西都有一些寄存器來控制,這些寄存器都有一個地址,那么這些地址是什么意思?又怎么通過寄存器來控制這些外圍設(shè)備的運(yùn)轉(zhuǎn)?還有,norflash內(nèi)部的每一個單元在這個芯片的內(nèi)存中都有一個相應(yīng)的地址單元,那么這些地址與剛剛說的寄存器地址又有什么關(guān)系?他們是一樣的嗎?而與 norflash相對應(yīng)的nandflash內(nèi)部的儲存單元并不是線性排放的,那么s3c2410怎么將nandflash的地址映射在內(nèi)存空間上進(jìn)行使用?或者簡單地說應(yīng)該怎么用nandflash?再有,使用ADS進(jìn)對ARM9行編程時都需要使用到一個初始化的匯編文件,這個文件究竟有什么用?他里面的代碼是什么意思?不要這個可以嗎?諸如此類都是對硬件的理解,理解了這些東西就對硬件有很深的理解了,這對以后更深一步的學(xué)習(xí)將有很大的幫助,如果跳過這一步,我相信越往后學(xué)越會覺得迷茫,越覺得這寫東西深不可測。因?yàn)?,你的根基沒打好。

第二,使用linux系統(tǒng)進(jìn)行一些基本的實(shí)驗(yàn)。

在買一套板子的時候一般會提供一些linux的試驗(yàn)例程,好好做一段時間這個吧,這個過程也是很有意義的,也是為進(jìn)一步的學(xué)習(xí)積累感性認(rèn)識,你能想象一個從沒有使用過linux系統(tǒng)的人能學(xué)好linux的編程嗎?好好按照手冊上的例程做一做里面的實(shí)驗(yàn),雖然有點(diǎn)娃娃學(xué)走路,有點(diǎn)弱智,但是我想很多高手都會經(jīng)歷這個過程。 在這方面我們深藍(lán)科技沒有計(jì)劃提供相應(yīng)的例程,主要是開發(fā)板的提供商會提供很豐富的例程,我們不做重復(fù)工作,只提供他們沒有的、最有價值的東西給大家。

第三,研究完整的linux系統(tǒng)的的運(yùn)行過程。

所謂完整的linux系統(tǒng)包括哪些部分呢? 三部分:bootloader、linux kernel(linux內(nèi)核)、rootfile(根文件系統(tǒng))。 那么這3部分是怎么相互協(xié)作來構(gòu)成這個系統(tǒng)的呢?各自有什么用呢?三者有什么聯(lián)系?怎么聯(lián)系?系統(tǒng)的執(zhí)行流程又是怎么樣的呢?搞清楚這個問題你對整個系統(tǒng)的運(yùn)行就很清楚了,對于下一步制作這個linux系統(tǒng)就打下了另一個重要的根基。介紹這方面的資料網(wǎng)上可以挖掘到幾噸,自己好好研究吧。

第四,開始做系統(tǒng)移植。

上面說到完整的linux有3部分,而且你也知道了他們之間的關(guān)系和作用,那么現(xiàn)在你要做的便是自己動手學(xué)會制作這些東西。 當(dāng)然我不可能叫你編寫這些代碼,這不實(shí)現(xiàn)。事實(shí)上這個3者都能在網(wǎng)下載到相應(yīng)的源代碼,但是這個源代碼不可能下載編譯后就能在你的系統(tǒng)上運(yùn)行,需要很多的修改,直到他能運(yùn)行在你的板子上,這個修改的過程就叫移植。在進(jìn)行移植的過程中你要學(xué)的東西很多,要懂的相關(guān)知識也很多,等你完成了這個過程你會發(fā)現(xiàn)你已經(jīng)算是一個初出茅廬的高手了。 在這個過程中如果你很有研究精神的話你必然會想到看源代碼。很多書介紹你怎么閱讀linux源代碼,我不提倡無目的地去看linux源代碼,用許三多的話說,這沒有意義。等你在做移植的時候你覺得你必須去看源代碼時再去找基本好書看看,這里我推薦一本好書倪繼利的《linux內(nèi)核的分析與編程》,這是一本針對linux-2.6.11內(nèi)核的書,說得很深,建議先提高自己的C語言編程水平再去看。 至于每個部分的移植網(wǎng)上也可以找到好多噸的資料,自己研究研究吧,不過要提醒的是,很多介紹自己經(jīng)驗(yàn)的東西都或多或少有所保留,你按照他說的去做總有一些問題,但是他不會告訴你怎么解決,這時就要靠自己,如果自己都靠不住就找我一起研究研究吧,我也不能保證能解決你的問題,因?yàn)槲椅幢赜龅竭^你的問題,不過我相信能給你一點(diǎn)建議,也許有助你解決問題。 這一步的最終目的是,從源代碼的官方主頁上(都是外國的,悲哀)下載標(biāo)準(zhǔn)的源代碼包,然后進(jìn)行修改,最終運(yùn)行在板子上。 盜用阿基米德的一句話:“給我一根網(wǎng)線,我能將linux搞定”。

第五,研究linux驅(qū)動程序的編寫。

移植系統(tǒng)并不是最終的目的,最終的目的是開發(fā)產(chǎn)品,做項(xiàng)目,這些都要進(jìn)行驅(qū)動程序的開發(fā)。Linux的驅(qū)動程序可以說是五花八門,linux2.4和 linux2.6的編寫有相當(dāng)大的區(qū)別,就是同為linux2.6但是不同版本間的驅(qū)動程序也有區(qū)別,因此編寫linux的驅(qū)動程序變都不是那么容易的事情,對于最新版本的驅(qū)動程序的編寫甚至還沒有足夠的參考資料。那么我的建議就是使用、移植一個不算很新的版本內(nèi)核,這樣到時學(xué)驅(qū)動的編程就有足夠的資料了。 這部分的推薦書籍可以參考另一篇文章《推薦幾本學(xué)習(xí)嵌入式linux的書籍》。 第六,研究應(yīng)用程序的編寫。 做作品做項(xiàng)目除了編寫驅(qū)動程序,最后還要編寫應(yīng)用程序?,F(xiàn)在的趨勢是圖形應(yīng)用程序的開發(fā),而圖形應(yīng)用程序中用得最多的還是qt/e函數(shù)庫。我一直就使用這個函數(shù)庫來開發(fā)自己的應(yīng)用程序,不過我希望你能使用國產(chǎn)的MiniGUI函數(shù)庫。盜用周杰倫的廣告詞就是“支持國產(chǎn),支持MiniGUI”。 MiniGUI的編程比較相似Windows下的VC編程,比較容易上手,效果應(yīng)該說是相當(dāng)不錯的,我曾使用過來開發(fā)ARM7的程序。記住,問題是學(xué)習(xí)的最好機(jī)會

ARM7簡介

ARM7系列處理器是英國ARM公司設(shè)計(jì)的主流嵌入式處理器ARM7內(nèi)核是0.9MIPS/MHz的三級流水線和馮·諾伊曼結(jié)構(gòu);ARM9內(nèi)核是5級流水線,提供1.1MIPS/MHz的哈佛結(jié)構(gòu)。ARM7沒有MMU。

ARM7系列包括ARM7TDMI、ARM7TDMI-S、帶有高速緩存處理器宏單元的ARM720T。該系列處理器提供Thumb16位壓縮指令集和EmbededICE軟件調(diào)試方式,適用于更大規(guī)模的SoC設(shè)計(jì)中。ARM7TDMI基于ARM體系結(jié)構(gòu)V4版本,是目前低端的ARM核。

ARM7TDMI處理器是ARM通用32位微處理器家族的成員之一。它具有優(yōu)異的性能,但功耗卻很低,使用門的數(shù)量也很少。它屬于精簡指令集計(jì)算機(jī)(RISC),比復(fù)雜指令集計(jì)算機(jī)(CISC)要簡單得多。這樣的簡化實(shí)現(xiàn)了:高的指令吞吐量;出色的實(shí)時中斷響應(yīng);小的、高性價比的處理器宏單元。三級流水線:ARM7TDMI處理器使用流水線來增加處理器指令流的速度。這樣可使幾個操作同時進(jìn)行,并使處理和存儲器系統(tǒng)連續(xù)操作,能提供0.9MIPS/MHz的指令執(zhí)行速度。ARM7TDMI的流水線分3級,分別為:取指、?譯碼、?執(zhí)行。正常操作過程中,在執(zhí)行一條指令的同時對下一條指令進(jìn)行譯碼,并將第三條指令從存儲器中取出。內(nèi)同時有5個指令在執(zhí)行。在同樣的加工工藝下,ARM9TDMI處理器的時鐘頻率是ARM7TDMI的1.8~2.2倍。

ARM9簡介

ARM9系列處理器是英國ARM公司設(shè)計(jì)的主流嵌入式處理器,主要包括ARM9TDMI和ARM9E-S等系列。

ARM9采用哈佛體系結(jié)構(gòu),指令和數(shù)據(jù)分屬不同的總線,可以并行處理。在流水線上,ARM7是三級流水線,ARM9是五級流水線。由于結(jié)構(gòu)不同,ARM7的執(zhí)行效率低于ARM9。平時所說的ARM7、ARM9實(shí)際上指的是ARM7TDMI、ARM9TDMI軟核,這種處理器軟核并不帶有MMU和cache,不能夠運(yùn)行諸如linux這樣的嵌入式操作系統(tǒng)。而ARM公司對這種架構(gòu)進(jìn)行了擴(kuò)展,所以有了ARM710T、ARM720T、ARM920T、ARM922T等帶有MMU和cache的處理器內(nèi)核。

ARM9處理能力

(1)時鐘頻率的提高

ARM7處理器采用3級流水線,而ARM9采用5級流水線。增加的流水線設(shè)計(jì)提高了時鐘頻率和并行處理能力。5級流水線能夠?qū)⒚恳粋€指令處理分配到5個時鐘周期內(nèi),在每一個時鐘周期內(nèi)同時有5個指令在執(zhí)行。在同樣的加工工藝下,ARM9TDMI處理器的時鐘頻率是ARM7TDMI的1.8~2.2倍。

(2)指令周期的改進(jìn)

指令周期的改進(jìn)對于處理器性能的提高有很大的幫助。性能提高的幅度依賴于代碼執(zhí)行時指令的重疊,這實(shí)際上是程序本身的問題。對于采用最高級的語言,一般來說,性能的提高在30%左右。

UCOS簡介

μC/OS II(Micro-Controller OperaTIng System Two)是一個可以基于ROM運(yùn)行的、可裁剪的、搶占式、實(shí)時多任務(wù)內(nèi)核,具有高度可移植性,特別適合于微處理器和控制器,適合很多商業(yè)操作系統(tǒng)性能相當(dāng)?shù)膶?shí)時操作系統(tǒng)(RTOS)。為了提供最好的移植性能,μC/OS II最大程度上使用ANSI C語言進(jìn)行開發(fā),并且已經(jīng)移植到近40多種處理器體系上,涵蓋了從8位到64位各種CPU(包括DSP)。 μC/OS II可以簡單的視為一個多任務(wù)調(diào)度器,在這個任務(wù)調(diào)度器之上完善并添加了和多任務(wù)操作系統(tǒng)相關(guān)的系統(tǒng)服務(wù),如信號量、郵箱等。其主要特點(diǎn)有公開源代碼,代碼結(jié)構(gòu)清晰、明了,注釋詳盡,組織有條理,可移植性好,可裁剪,可固化。內(nèi)核屬于搶占式,最多可以管理60個任務(wù)。從1992年開始,由于高度可靠性、魯棒性和安全性,μC/OS II已經(jīng)廣泛使用在從照相機(jī)到航空電子產(chǎn)品的各種應(yīng)用中。

μC/OS-II實(shí)時多任務(wù)操作系統(tǒng)內(nèi)核。它被廣泛應(yīng)用于微處理器、微控制器和數(shù)字信號處理器。 μC/OS-II 的前身是μC/OS,最早出自于1992 年美國嵌入式系統(tǒng)專家Jean J.Labrosse 在《嵌入式系統(tǒng)編程》雜志的5 月和6 月刊上刊登的文章連載,并把μC/OS 的源碼發(fā)布在該雜志的B B S 上。

UCOS應(yīng)用情況

1) 高優(yōu)先級的任務(wù)因?yàn)樾枰撤N臨界資源,主動請求掛起,讓出處理器,此時將調(diào)度就緒狀態(tài)的低優(yōu)先級任務(wù)獲得執(zhí)行,這種調(diào)度也稱為任務(wù)級的上下文切換。

2) 高優(yōu)先級的任務(wù)因?yàn)闀r鐘節(jié)拍到來,在時鐘中斷的處理程序中,內(nèi)核發(fā)現(xiàn)高優(yōu)先級任務(wù)獲得了執(zhí)行條件(如休眠的時鐘到時),則在中斷態(tài)直接切換到高優(yōu)先級任務(wù)執(zhí)行。這種調(diào)度也稱為中斷級的上下文切換。 這兩種調(diào)度方式在μC/OS-II的執(zhí)行過程中非常普遍,一般來說前者發(fā)生在系統(tǒng)服務(wù)中,后者發(fā)生在時鐘中斷的服務(wù)程序中。 調(diào)度工作的內(nèi)容可以分為兩部分:最高優(yōu)先級任務(wù)的尋找和任務(wù)切換。其最高優(yōu)先級任務(wù)的尋找是通過建立就緒任務(wù)表來實(shí)現(xiàn)的。μ C / O S 中的每一個任務(wù)都有獨(dú)立的堆??臻g,并有一個稱為任務(wù)控制塊TCB(Task Control Block)的數(shù)據(jù)結(jié)構(gòu),其中第一個成員變量就是保存的任務(wù)堆棧指針。任務(wù)調(diào)度模塊首先用變量OSTCBHighRdy 記錄當(dāng)前最高級就緒任務(wù)的TCB 地址,然后調(diào)用OS_TASK_SW函數(shù)來進(jìn)行任務(wù)切換。

ARM接口編程相關(guān)推薦
  • 相關(guān)百科
  • 相關(guān)知識
  • 相關(guān)專欄

最新詞條

安徽省政采項(xiàng)目管理咨詢有限公司 數(shù)字景楓科技發(fā)展(南京)有限公司 懷化市人民政府電子政務(wù)管理辦公室 河北省高速公路京德臨時籌建處 中石化華東石油工程有限公司工程技術(shù)分公司 手持無線POS機(jī) 廣東合正采購招標(biāo)有限公司 上海城建信息科技有限公司 甘肅鑫禾國際招標(biāo)有限公司 燒結(jié)金屬材料 齒輪計(jì)量泵 廣州采陽招標(biāo)代理有限公司河源分公司 高鋁碳化硅磚 博洛尼智能科技(青島)有限公司 燒結(jié)剛玉磚 深圳市東海國際招標(biāo)有限公司 搭建香蕉育苗大棚 SF計(jì)量單位 福建省中億通招標(biāo)咨詢有限公司 泛海三江 威海鼠尾草 Excel 數(shù)據(jù)處理與分析應(yīng)用大全 廣東國咨招標(biāo)有限公司 甘肅中泰博瑞工程項(xiàng)目管理咨詢有限公司 山東創(chuàng)盈項(xiàng)目管理有限公司 當(dāng)代建筑大師 廣西北纜電纜有限公司 上海地鐵維護(hù)保障有限公司通號分公司 拆邊機(jī) 甘肅中維國際招標(biāo)有限公司 大山檳榔 舌花雛菊 湖北鑫宇陽光工程咨詢有限公司 GB8163標(biāo)準(zhǔn)無縫鋼管 中國石油煉化工程建設(shè)項(xiàng)目部 華潤燃?xì)猓ㄉ虾#┯邢薰? 韶關(guān)市優(yōu)采招標(biāo)代理有限公司 莎草目 建設(shè)部關(guān)于開展城市規(guī)劃動態(tài)監(jiān)測工作的通知 電梯平層準(zhǔn)確度 廣州利好來電氣有限公司 四川中澤盛世招標(biāo)代理有限公司