當前位置:首頁 » 編程軟體 » arm體系結構與編程pdf

arm體系結構與編程pdf

發布時間: 2023-06-07 11:53:10

A. 文字轉語音晶元(單片機用)

45Microcontrollers & Embedded Systems2002.12
新器件新技術 NEW PRODUCT & TECH
用EP7211實現傳呼信息實時語音合成和播放
■ 鄭州解放軍信息工程大學 胡澤明 王鵬
摘 要
關鍵詞
闡述在一款集成傳呼功能的二合一PDA系統中,使用嵌入式處理器EP7211實現個人傳呼信
息的實時語音合成和播放的功能,主要包括字元語音庫的建立,字元語音合成演算法和Codec
語音中斷服務常式等3部分.
PDA G.729 語音庫 語音合成
引 言
PDA(Personal Digital Assitant,個人數字助理)
是近年來繼尋呼機和行動電話之後,在國內市場迅
速崛起的攜帶型電子產品.就其擴展意義來講,它
能夠集成移動計算,電話和網路等多種功能.根據
不同的應用需求,它可以管理個人信息,提供名片
存儲和日程安排,也可以接收各種尋呼信息(如股
市,天氣預報等).如果是集成通信模塊,還可以
作為行動電話使用,進行無線網路互聯.廣義的
PDA包括簡單的電子記事本,電子辭典和功能強大
的掌上電腦,它們的主要區別表現在操作系統,存
儲能力,運算速度和數據交換能力等方面.
目前國內傳統PDA產品經過幾年的高速發展
後,市場基本飽和,銷售額出現負增長.不過由於
PDA產品的靈活性,有針對性的行業應用作為一個
新亮點,開始為人們所關注.經過行業應用改造後
的PDA產品,已經在國內市場大顯身手.文曲星
展現超強的語言翻譯能力,比較適合於大學生和語
言翻譯者使用;藍火系列能實時接收股市信息和
專家點評,適合工薪階層的炒股者.國家信息產業
部已經鼓勵PDA產品在交通,警務,保險等領域
的行業應用和推廣.
分析市場需求,我們研發了集成傳呼功能的,
專門面向鐵路交通行業應用的鐵路交通信息系統
PDA.本PDA系統除了具備傳統PDA的個人名片
管理和辭典檢索等功能外,同時提供交通行業應用
的民航航班查詢,鐵路列車時刻表查詢等功能.
本PDA的尋呼系統實現如下功能:能夠通過尋
呼對列車時刻表,列車晚點信息,列車剩餘票額,
股道信息等行業數據進行動態更新.作為另一個特
色,當接收到個人尋呼時,能夠將尋呼內容實時地
轉換成語音並播放.
下面重點介紹本PDA系統中使用嵌入式處理
器EP7211實現個人尋呼內容的實時語音轉換和播
放.該功能的實現包含前後相關的3個部分:字元
語音庫的建立,字元的語音合成演算法和Codec語音
中斷服務常式.
1實現條件和要求
PDA屬於嵌入式應用系統,其同一般PC機有
很大差別.硬體方面,嵌入式處理器基於RISC體
系結構,一般工作頻率在幾十MHz,甚至更低;系
統內存容量一般在幾百KB~幾MB之間;一般使用
容量小的ROM或者Flash作為硬碟來存儲可執行程
序和數據.軟體方面,PDA系統一般有專用的嵌入
式操作系統和軟體開發調試移植環境.
個人傳呼信息的特點是單條傳呼信息長度變化
較大,20~50個字元不等.最為常見的是"請回電
話***";傳呼信息涉及到的字元數量較大,字元
語音合成時運算量大,單字元合成後語音數據佔用
的存儲空間多;需要事先建立字元語音庫等.
由於具體硬體環境的限制,傳呼信息的特點和
語音合成的要求,該功能能夠實現的前提有:語音
庫佔用的空間小;字元合成時速度要快;採用前台
進行字元語音合成時,以後台中斷方式進行合成語
音的播放來保證其實時性和連續性.
2具體實現
下面分別介紹字元語音庫的建立,字元語音合成
演算法,本PDA系統的框架結構和語音中斷服務常式.
2.1建立字元語音庫
我們選用G.729語音壓縮編碼標准來建立語音
庫.該標准採用的演算法是共軛結構的代數碼激勵線
462002.12
新器件新技術 NEW PRODUCT & TECH
性預測(CS-ACELP),是基於CELP(碼激勵線性預
測)編碼模型的演算法.這種編碼規范的嚴格性使性
能達到或超過了32 Kbps的G.726 ADPCM編碼,具
有很高的語音質量;同時,它是在語音信號8 KHz
取樣的基礎上得到16 bit線性PCM後進行編碼的,
壓縮後的數據速率僅為8 Kbps,具有相當於8:1的
高壓縮率.其演算法延遲少於16 ms.由於G.729編解
碼器能夠實現很高的語音質量和很低的演算法延時,
因此被廣泛地應用.
字元語音庫是一個單字發音語音數據的集合,
各段數據之間相互獨立,不具有相關性.語音庫包
含了國標一,二級字型檔中的所有6763個漢字,10個
阿拉伯數字和26個英文字元的標准普通話語音數
據.每個漢字或字元發音時長為0.65 s,採用8 KHz
抽樣頻率,使用了G.729A語音編碼演算法對上述的語
音數據進行壓縮,壓縮後的數據速率為8 Kbps,相
當於具有8:1的高壓縮率.在漢字中,同音字佔了
相當大的比例,而在語音合成中對於同音字的處理
是沒有區別的,故近7000個漢字,我們只存儲1123
個不同的發音.經過同音字處理和採用G.729A標准
壓縮字元語音數據,則最終建立的語音庫文件大小
為729 950位元組,完全符合本PDA系統的數據存儲
要求;否則,語音庫數據量太大,本PDA系統不
能接受!
建立一個語音壓縮資料庫的具體步驟如下:
◇ 將數字和常用漢字的標准發音獨立地錄入到
數據文件中,作為基礎數據.使用cooledit2000軟
件完成語音的錄入.
◇ 對於輸入數據,按照每幀10 ms(80個樣點)
的長度,將A_law語音通過簡單換算變成16 bit PCM
數據,作為編碼演算法的輸入.
◇ 按照G.729A演算法標准,對數據進行編碼.
◇ 將編碼後的數據轉換為二進制比特流,寫
入語音庫文件中.壓縮後數據速率為8 Kbps,具有
相當於8:1的高壓縮率.
用C語言實現這一過程的程序流程如圖1所示.
字元語音庫的建立是在Windows平台及Visual
C++編程環境下實現的,最終壓縮處理後數據量的
大小為729 950位元組,每個字元語音數據的大小是
650位元組.
2.2語音合成
當收到個人傳呼信息時,語音合成程序首先從
指定位置獲取傳呼信息數據,然後在語音庫中查找
每個漢字,阿拉伯數字或者英文字元的發音,重組
一個數據文件.解碼程序對該文件進行解碼並且輸
出原始語音.語音合成流程如圖2所示.
語音合成過程首先是當前字元在語音庫的定
位.對於10個阿拉伯數字和26個英文字元,將其
放在語音庫開頭.這些字元的查找比較方便.漢字
是2位元組存儲,我們依據其區位碼來作為語音庫中
的定位索引.字元語音庫檢索結束後的語音壓縮數
頭文件,全局變數,函數原型的說明
輸入語音文件及壓縮後的碼文件名
初始化編碼器,包括濾波器狀態的初始
化及語音,激勵等緩沖區的初始化
語音文件是否結束
讀1幀語音(80點)(A_Law)
轉換成16bit線性PCM
將參數碼字轉成串列碼
流,再轉成碼字codeword
寫文件
結束
編碼主函數Coder_ld8a()
Y
N
圖1 字元語音庫的建立流程圖
查找語音庫,將尋呼文字信
息替換為壓縮語音文件
解碼器初始化
碼文件是否結束
讀取1幀數據,並
轉換成二進制碼流
解碼主函數
輸出數據變為A_LAW信號
語音播放
結束
Y
N
圖2 語音合成流程圖
47Microcontrollers & Embedded Systems2002.12
新器件新技術 NEW PRODUCT & TECH
據作為該字元解碼過程的輸入.
數據解碼過程可以分為參數解碼和重構信號後
處理2部分.首先要從輸入的數據中提取參數符
號,對這些符號解碼之後,可以獲得相應於10 ms
話音幀的編碼器參數.這些參數包括線性預測系
數,自適應碼本矢量,固定碼本矢量以及它們的增
益.解碼之後的參數用來計算重建語音信號.得到
重構語音信號只有通過後處理過程來對該信號進行
放大,包括後向濾波,高通濾波以及按比例因子擴
大,最後得到原始的語音數據.
字元解碼器原理如圖3所示.
2.3PDA系統的體系結構
PDA系統的硬體體系結構如圖4所示.
PDA系統中嵌入式處理器EP7211進行數據處
理,傳呼解碼晶元接收傳呼信息並進行解碼, LCD
提供數據輸出顯示,觸摸屏提供用戶輸入介面,
Flash用來存儲應用程序和數據,SRAM為程序運行
提供內存空間,電源電路為嵌入式處理器和外圍設
備提供所需要的工作電壓.
嵌入式處理器EP7211是Cirrus Logic公司專門為
低成本,超低功耗的嵌入式應用設計的,包含
ARM7TDMI處理器內核和豐富的外圍介面.外圍接
口有CODEC音頻介面,SPI串列A/D介面,單色LCD
介面,DRAM介面,紅外介面,2個PWM介面,實
時時鍾RTC以及電源檢測介面.EP7211的內核電路
工作在2.5 V,而外圍電路工作在3.3 V;可根據具
體情況對內核的
時鍾進行動態編
程式控制制,可工作
在18,36,49和74
MHz.另外EP7211
還有3種基本供
電模式:正常操
作(operating),
空閑(idle)和等
待(standby).在
等待模式,主時
鍾被關斷,整個
CPU及相關外圍
(除中斷和RTC)
也關斷,但可通
過中斷或按鈕來
喚醒.
系統軟體開發平台採用了我們自主開發研製
的,專門面向嵌入式應用系統開發的XGW平台.
XGW開發平台採用消息驅動機制,是C語言開發.
它功能強大,模塊化設計,擴展性強,產品升級容
易,總體框架如圖5所示.
圖5全面反應了XGW開發平台的體系結構,包
括事件消息驅動機制,內存管理,字元和圖形顯示
輸出,圖形組件庫等.圖形組件庫中的編輯框,列
表框,按鈕等為用戶應用程序開發提供了系統應用
編程介面API.不過,XGW平台對於系統硬體的中
斷響應沒有提供統一的入口和出口,需要開發人員
單獨處理.XGW開發平台的消息分為滑鼠消息,鍵
盤消息和定時器消息等3類.
2.4語音中斷服務常式
嵌入式處理器EP7211本身提供的外設語音錄放
Codec(coder/decoder)晶元可以實現語音的錄入和
適應碼
向量解碼
增益解碼
固定碼
向量解碼
結構激勵
MA碼增
益預測
11
,GBGA
22
,GBGA
)(nv
間隔延時
p
g^
^
c
g^
11
,CS
22
,CS
)(zP
)(nc
編碼序號
LP綜合
濾波器
)(nu
後濾波器
)(^ns
高通上標定
)(nfs
LSP解碼內插值)(^zALSF
LSP序號
3210
,,,LLLL
每幀
每子幀
210
,,PPP
圖3 字元解碼原理框圖
天線
LCD
觸摸屏
時鍾,復
位,喚醒射頻輸入
FlashSRAM電源管理
串列口
紅外口
傳呼解
碼晶元嵌入式
處理器
EP7211
收音設備
語音錄放電路
圖4 硬體結構
482002.12
新器件新技術 NEW PRODUCT & TECH
播放功能.該模塊提供2個獨立的16位元組長的數據
發送和接收緩沖區(FIFO),其為全雙工模式,數
據收發速率是64 kbps.晶元自身提供工作時鍾,定
時脈沖以及數據的串/並和並/串轉換功能.編程
人員通過設置EP7211相應的控制寄存器使能這些項
功能,則每當數據收發緩沖區半慢或者半空時(8
位元組),晶元自身就會產生一次中斷信號供外部處
理.理論計算晶元中斷速率是1 ms/次.
語音播放中斷服務常式主要完成的工作是,當
產生語音中斷時,仍然有數據需要播放,則向語音
數據發送緩沖區FIFO中寫入指定數據,剩下的工
作由Codec晶元本身來完成.中斷服務常式ISR的
偽代碼如下(因為具體實現代碼沒有通用性,故此
處用偽碼描述):
void IRQ_Codec_Handler(void)
{
while(檢測系統狀態寄存器,發現語音晶元數據發送緩
沖區FIFO非滿)
{
if(已經播放過的語音數據長度 = 給定的需要播
放的語音數據長度) //結束
{
禁止數據發送緩沖區中斷;
復位各相關的全局變數;
程序返回;
}
}
else
{
向語音晶元發送數據緩沖區FIFO寫入默認數據
系統調用
通用開
發控制項字元輸出圖形輸出
內存管理用戶自
定義控制項
事件消息驅動
硬體中斷
執行
ISR
中斷返回
硬體中斷
執行
ISR
中斷返回
用戶級應用程序
圖5 XGW平台的軟體體系結構
0XFF;
}
}
}3試驗結果和分析
由於在設計階段充分考慮過語音合成演算法的
大運算量和系統的實時性要求,故我們在具體實
現的時候也採取了一些措施,比較突出的有:用
ARM匯編語言來實現關鍵性的函數代碼;語音合
成時提高處理器EP7211的工作頻率(處理器正常
工作頻率是18 MHz);對於一些常用的三角函數計
算,採用查表的方式等來加快程序執行速度.在
PDA樣機測試中,單字元合成時間在650 ms左右,
基本上能夠滿足實際應用需求.數據語音庫經過
處理之後,佔用了729 560位元組也能夠滿足本PDA
系統的存儲要求.
當PDA系統收到1條個人傳呼信息時,在語音
庫的支持下,立刻啟動語音合成演算法,逐個進行字
符語音合成.當第1個字元語音合成結束後,立刻
啟動語音中斷服務常式進行語音播放.這樣收到的
個人傳呼信息,在前台逐個字元解碼時,其後台語
音播放也在進行.根據實際測試參數,基本上滿足
了系統的實時性要求.
從一定角度看,單字元650 ms的語音合成時間
基本能夠滿足實際應用需要,但還是希望能夠進一
步減小這個值.這由於我們對ARM處理器的使用
還處在研究階段.ARM本身提供了16位的Thumb
指令集和32位的ARM指令集,而且兩者在某些方
面表現出較大差別.一般來講,Thumb代碼長度是
ARM代碼長度的65%,而執行效率要比後者高出
60%.但在某些方面,32位的ARM指令集也會表
現出其優於16位Thumb指令集的強大功能;同時
該處理器系統支持ARM指令集和Thumb指令集混
合編程模式.隨著對二者差別和各自優勢的深入理
解,結合本系統的硬體體系結構,採用有效的指令
集混合編程模式將會使程序執行效率進一步提高,
從而使實時性得到進一步加強.
參考文獻
1Cirrus Logic公司. EP7211數據手冊
2馬忠梅. ARM嵌入式處理器結構與應用基
礎. 北京:北京航空航天大學出版社,2002
3Gibson Jerry D,等. 多媒體數字壓縮原理與
標准. 李煜暉等譯. 北京:電子工業出版社,2000

B. 嵌入式系統自學

嵌入式系統軟體工程 方法實用技術及應用,免費下載

鏈接:https://pan..com/s/10No3IypKyLg01bV4T9b22w

提取碼:56st

《嵌入式系統軟體工程:基礎知識、方法和應用》系統地闡述嵌入式系統軟體工程所涉及的過程、方法、內容,以及在典型工業領域中的應用。全書內容分為兩大部分:第一部分介紹嵌入式系統軟體工程方法論,主要包括嵌入式軟體的開發過程(需求工程、軟體和系統體系結構、編程和測試等內容),開發和測試中所採用的標准,與安全性相關的軟體系統的准入,以及嵌入式軟體所涉及的法律問題:第二部分介紹嵌入式系統軟體在汽車領域、軌道交通領域、航天領域、醫療器械、工業自動化、通信系統中的應用,在每個應用領域重點介紹具體應用領域的一些特定需求、技術和限制條件,以及它們對於嵌入式系統軟體開發過程的影響。

C. 從底層硬體到上層應用,嵌入式軟體的開發可以分為哪幾類

從底層硬體到上層應用,嵌入式軟體的開發可以分為以下三類:

1、嵌入式操作系統開發

嵌入式操作系統EOS(Embedded Operating System)是一種被廣泛使用的系統軟體。過去,它主要用於工業控制和國防系統領域。 EOS負責分配和調度嵌入式系統的所有軟體和硬體資源,控制和協調並發活動。

它必須體現其所在系統的特徵,並能夠通過載入和卸載某些模塊來實現系統所需的功能。嵌入式操作系統通常以商業操作為主。自1980年代以來,商業嵌入式操作系統已開始蓬勃發展。

2、嵌入式支撐軟體開發

支撐軟體是用於幫助和支撐軟體開發的軟體,通常包括資料庫和開發工具,其中資料庫是最重要的。隨著移動通信技術的進步,人們對移動數據處理提出了更高的要求。嵌入式資料庫技術已受到學術,工業,軍事和民用領域的關注。

嵌入式移動資料庫或簡稱為移動資料庫(EMDBS)是支持移動計算或特定計算模型的資料庫管理系統。資料庫系統與操作系統和特定的應用程序集成在一起,並在各種智能嵌入式設備或移動設備上運行。

3、 嵌入式應用軟體開發

嵌入式應用軟體是針對特定應用領域,基於某一固定的硬體平台,用來達到用戶預期目標的計算機軟體。由於用戶任務可能有時間和精度上的要求,因此有些嵌入式應用軟體需要特定嵌入式操作系統的支持。

嵌入式應用軟體和普通應用軟體有一定的區別,它不僅要求其准確性、安全性和穩定性等方面能夠滿足實際應用的需要,而且還要盡可能地進行優化,以減少對系統資源的消耗,降低硬體成本。

(3)arm體系結構與編程pdf擴展閱讀:

嵌入式軟體開發的特點:

近年來,隨著計算機技術的迅猛發展,基於通信技術的信息技術以及Internet的廣泛應用,傳統的控制學科正在發生變化,並出現了許多新的增長點。

嵌入式系統涉及系統的最低層,晶元層的信息處理和控制。從某種意義上說,理解和控制這些「微觀」世界是控制的真正目的。就設計思想和總體架構而言,通常意義上的嵌入式系統和控制系統之間存在許多差異。

在嵌入式系統和開發環境方面,仍然存在許多仍在研究和開發中的問題,例如嵌入式系統的硬體和軟體協同設計方法;多目標、多任務微內核嵌入式操作系統;分布式嵌入式系統實時問題,分布式計算,分布式信息交互和綜合處理;嵌入式系統的多目標交叉編譯和調試工具的研究等。

D. ARM體系結構與編程的作品目錄

第1章 ARM概述及其基本編程模型
1. 1 ARM技術的應用領域及其特點
1. 2 ARM體系結構的版本及命名方法
1. 2. 1 ARM體系結構的版本
1. 2. 2 ARM體系的變種
1. 2. 3 ARM/Thumb體系版本的命名格式
l. 3 ARM處理器系列
1. 3. 1 ARM7系列
1. 3. 2 ARM9系列
1. 3. 3 ARM9E系列
1. 3. 4 ARM1OE系列
1. 3. 5 SecurCore系列
l. 4 ARM處理器模式
1. 5 ARM寄存器介紹
1. 5. l 通用寄存器
1. 5. 3 程序狀態寄存器
1. 6 ARM體系的異常中斷
1. 6. 1 ARM中異常中斷種類
1. 6. 2 ARM處理器對異常中斷的響應過程
1. 6. 3 從異常中斷處理程序中返回
1. 7 ARM體系中存儲系統
1. 7. 1 ARM體系中的存儲空間
1. 7. 2 ARM存儲器格式
1. 7. 3 非對齊的存儲訪問操作
1. 7. 4 指令預取和自修改代碼
第2章 ARM指令分類及其定址方式
2. 1 ARM指令集概要介紹
2. 1. 1 ARM指令的分類
2. 1. 2 ARM指令的一般編碼格式
2. 1. 3 ARM指令的條件碼域
2. 2 ARM指令定址方式
2. 2. l 數據處理指令的操作數的定址方式
2. 2. 2 字及無符號位元組的Load/Store指令的定址方式
2. 2. 3 雜類Load/Store指令的定址方式
2. 2. 4 批量Load/Store指令的定址方式
2. 2. 5 協處理器Load/Store指令的定址方式
第3章 ARM指令集介紹
3. 1 ARM指令集
3. 1. l 跳轉指令
3. l. 2 數據處理指令
3. 1. 3 乘法指令
3. 1. 4 雜類的算術指令
3. 1. 5 狀態寄存器訪問指令
3. l. 6 Load/Store內存訪問指令
3. 1. 7 批量Load/Store內存訪問指令
3. 1. 8 信號量操作指令
3. 1. 9 異常中斷產生指令
3. 1. 10 ARM協處理器指令
3. 2 一些基本的ARM指令功能段
3. 2. l 算術邏輯運算指令的應用
3. 2. 2 跳轉指令的應用
3. 2. 3 Loacl/Store指令的應用
3. 2. 4 批量Load/Store指令的應用
3. 2. 5 信號量指令的應用
3. 2. 6 與系統相關的一些指令代碼段
3. 3 Thumb指令介紹
第4章 ARM匯編語言程序設計
4. 1 偽操作
4. 1. l 符號定義偽操作
4. 1. 2 數據定義偽操作
4. 1. 3 匯編控制偽操作
4. 1. 4 棧中數據幀描述偽操作
4. 1. 5 信息報告偽操作
4. 1. 6 其他的偽操作
4. 2 ARM匯編語言偽指令
4. 3 ARM匯編語言語句格式
4. 3. 1 ARM匯編語言中的符號
4. 3. 2 ARM匯編語言中的表達式
4. 4 ARM匯編語言程序格式.
4. 4. l 匯編語言程序格式
4. 4. 2 匯編語言子程序調用
4. 5 ARM匯編編譯器的使用
4. 6 匯編程序設計舉例
4. 6. 1 ARM中偽操作使用實例
4. 6. 2 ARM中匯編程序實例
第5章 ARM存儲系統
5. 1 ARM存儲系統概述
5. 2 ARM中用於存儲管理的系統控制協處理器CP15
5. 2. 1 訪問CP15寄存器的指令
5. 2. 2 CP15中的寄存器
5. 3 存儲器管理單元MMU
5. 3. l 存儲器管理單元MMU概述
5. 3. 2 禁止/使能MMU
5. 3. 3 MMU中地址變換過程
5. 3. 4 MMU中存儲訪問許可權控制
5. 3. 5 MMU中的域
5. 3. 6 關於快表的操作
5. 3. 7 ARM中的存儲訪問失效
5. 4 高速緩沖存儲器和寫緩沖區
5. 4. 1 基本概念
5. 4. 2 cache的工作原理和地址映像方法
5. 4. 3 cache的分類
5. 4. 4 cache的替換演算法
5. 4. 5 緩沖技術的使用注意事項
5. 4. 6 存儲系統的一致性問題
5. 4. 7 cache內容鎖定
5. 4. 8 與cache和寫緩沖區相關的編程介面
5. 5 快速上下文切換技術
5. 5. l 快速上下文切換技術原理
5. 5. 2 快速上下文切換技術編程介面
5. 6 與存儲系統相關的程序設計指南
5. 6. l 地址空間
5. 6. 2 存儲器格式
5. 6. 3 非對齊的存儲訪問操作
5. 6. 4 指令預取和自修改代碼
5. 6. 5 IMB
5. 6. 6 存儲器映射的I/O空間
5. 7 AIOA存儲系統的實例
5. 7. 1 L7205的存儲系統概述
5. 7. 2 L7205中的SDRAM
5. 7. 3 L7205中的 MMU
第6章 ATPCS介紹
6. 1 ATPCS概述
6. 2 基本ATPCS
6. 2. l 寄存器的使用規則
6. 2. 2 數據棧使用規則
6. 2. 3 參數傳遞規則
6. 3 幾種特定的ATPCS
6. 3. l 支持數據棧限制檢查的ATPCS
6. 3. 2 支持只讀段位置無關(ROPI)的ATPCS
6. 3. 3 支持可讀寫段位置無關(RWPI)的ATPCS
6. 3. 4 支持ARM程序和Thumb程序混合使用的ATPCS
6. 3. 5 處理浮點運算的ATPCS
第7章 ARM程序和Thumb程序混合使用
7. 1 概述
7. 2 在匯編語言程序中通過用戶代碼支持interwork
7. 2. l 可以實現程序狀態切換的指令
7. 2. 2 與程序狀態切換相關的偽操作
7. 2. 3 進行狀態切換的匯編程序實例
7. 3 在C/C++程序中實現interwork
7. 4 在匯編語言程序中通過連接器支持interwork
7. 4. l 利用veneers實現匯編程序間的程序狀態切換
7. 4. 2 利用veneers實現匯編程序與C/C++程序間的程序狀態切換
第8章 CC++以及匯編語言的混合編程
8. l 內嵌匯編器的使用
8. 1. l 內嵌的匯編指令用法
8. 1. 2 內嵌的匯編器和armasm的區別
8. l. 3 在CC++程序中使用內嵌的匯編指令
8. 1. 4 內嵌匯編指令的應用舉例
8. 2 從匯編程序中訪問C程序變數
8. 3 匯編程序.C程序以及C++程序的相互調用
8. 3. l 在C++程序中使用C程序頭文件
8. 3. 2 匯編程序.C程序以及C++程序的相互調用舉例
第9章 異常中斷處理
9. 1 ARM中異常中斷處理概述
9. 1. 1 ARM體系中異常中斷種類
9. 1. 2 異常中斷向量表及異常中斷優先順序
9. 1. 3 異常中斷使用的寄存器
9. 2 進入和退出異常中斷的過程
9. 2. 1 ARM處理器對異常中斷的響應過程
9. 2. 2 從異常中斷處理程序中返回
9. 3 在應用程序中安裝異常中斷處理程序
9. 3. 1 在系統復位時安裝異常中斷處理程序
9. 3. 2 在C程序中安裝異常中斷處理程序
9. 4 SWI異常中斷處理程序
9. 4. 1 SWI異常中斷處理程序的實現
9. 4. 2 SWI異常中斷調用
9. 5 FIQ和IRQ異常中斷處理程序
9. 5. 1 IRQ/FIQ異常中斷處理程序
9. 5. 2 IRQ異常中斷處理程序舉例
9. 6 復位異常中斷處理程序
9. 7 未定義指令異常中斷
9. 8 指令預取中止異常中斷處理程序
9. 9 數據訪問中止異常中斷處理程序
第10章 ARM C/0++編譯器
10. 1 ARM C/C++編譯器概述
10. 1. 1 ARM C/C++編譯器及語言庫介紹
10. l. 2 ARM編譯器中與搜索路徑相關的一些基本概念
10. 2 ARM編譯器命令行格式
10. 2. l 過程調用標准
10. 2. 2 設置源程序語言類型
10. 2. 3 指定搜索路徑
10. 2. 4 設置預處理選項
10. 2. 5 設置輸出文件類型
10. 2. 6 指定目標處理器和ARM體系版本
10. 2. 7 生成調試信息
10. 2. 8 代碼生成的控制
10. 2. 9 控制警告信息的產生
10. 2. 10 編譯時進行的一些額外的檢查
10. 2. 11 控制錯誤信息
10. 3 ARM編譯器中的pragmas
10. 4 ARM編譯器特定的關鍵詞
10. 4. 1 用於聲明函數的關鍵詞
10. 4. 2 用於聲明交量的關鍵詞
10. 4. 3 用於限定數據類型的關鍵詞
10. 5 ARM編譯器支持的基本數據類型
10. 6 ARM編譯器中預定義宏
10. 7 ARM中C/C++庫
10. 7. 1 ARM中C/C++運行時庫概述
10. 7. 2 建立一個包含C/C++運行時庫的C/C++應用程序
10. 7. 3 建立不包含C運行時庫的應用程序
10. 7. 4 裁減C/C++運行時庫以適應特定的目標運行環境
第11章 ARM連接器
11. 1 ARM映像文件
11. 1. 1 ARM映像文件的組成
11. 1. 2 ARM映像文件的入口點
11. 1. 3 輸入段的排序規則
11. 2 ARM連接器介紹
11. 3 ARM連接器生成的符號
11. 3. 1 連接器生成的與域相關的符號
11. 3. 2 連接器生成的與輸出段相關的符號
11. 3. 3 連接器生成的與輸入段相關的符號
11. 4 連接器的優化功能
11. 5 運行時庫的使用
11. 5. 1 C/C++運行時庫與目標文件
11. 5. 2 查找需要的C/C++運行時庫
11. 5. 3 選擇合適種類的C/C++運行時庫
11. 5. 4 掃描C/C++運行時庫
11. 6 從一個映像文件中使用另一個映像文件中的符號
11. 6. 1 symdefs文件
11. 6. 2 建立symdefs文件
11. 6. 3 symdefs文件的使用
11. 7 隱藏或者重命名全局符號
11. 7. l steering文件的格式
11. 7. 2 steering文件中的命令
11. 8 ARM連接器命令行選項
11. 9 使用scatter文件定義映像文件的地址映射
11. 9. l scatter文件概述
11. 9. 2 satter文件中各部分介紹
11. 9. 3 scatter文件使用舉例
第12章 嵌入式應用程序示例
12. l 嵌入式應用程序設計的基本知識
12. 1. 1 嵌入式應用系統中的存儲映射
12. 1. 2 系統初始化
12. 2 使用semihosting的 C語言程序示例
12. 2. 1 源程序分析
12. 2. 2 生成映像文件
12. 3 一個嵌入式應用系統示例
12. 3. l 源程序分析
12. 3. 2 生成映像文件
12. 3. 3 本例中地址映射模式
12. 4 進行ROM/RAM地址重映射的嵌入式應用系統
12. 4. l 地址映射模式
12. 4. 2 源程序分析
12. 4. 3 生成映像文件
12. 5 一個嵌入式操作系統示例
第13章 使用CodeWarrior
13. 1 CodeWarrior for ADS概述
13. 2 簡單工程項目的使用
13. 2. 1 工程項目窗口
13. 2. 2 簡單工程項目的使用
13. 3 配置生成目標
13. 3. 1 Debug Settings對話框介紹
13. 3. 2 設置牛成目標的基本選項
13. 3. 3 匯編器選項設置
13. 3. 4 編譯器的選項設置
13. 3. 5 連接器的選項設置
13. 3. 6 fromELF工具的選項設置
13. 4 復雜工程項目的使用
13. 4. l 建立一個新的生成目標
13. 4. 2 將一個生成目標更名
13. 4. 3 建立生成目標之間的依賴關系
13. 4. 4 子工程項目的使用
13. 5 工程項目模板
13. 5. 1 ADS中工程項目模板的使用
13. 5. 2 建立用戶工程項目模板
13. 6 編譯和連接工程項目
13. 6. 1 編譯文件
13. 6. 2 生成工程項目
第14章 ARM體系中的調試方法
14. 1 ARM體系中調試系統概述
14. 2 基於Angel的調試系統
14. 2. l 基於Angel的調試系統的概述
14. 2. 2 使用Angel開發應用程序
14. 2. 3 Angel執行的操作
14. 2. 4 將Angel移植到特定的目標系統
14. 3 基於JTAG的調試系統
14. 3. l 基於JTAG的調試系統的特點
14. 3. 2 基於JTAG的調試系統結構
14. 3. 3 目標系統中的調試功能擴展部件
14. 3. 4 基於JTAG的調試過程
14. 4 ADW使用介紹
14. 4. 1 ADW概述
14. 4. 2 ADW中的窗口
14. 4. 3 ADW使用介紹

E. ARM中內存是如何存放數據的

每條指令都按照規定的編碼格式 arm是32位的,所以每條指令的格式如下:
[31:28] [24:21] [20]
指令執行條件編碼 指令操作符編碼 是否影響CPSR的值
[19:16] [15:12] [11:0]
第一個操作數寄存器編碼 目標寄存器編碼 第二個操作數

所以ARM的指令和數據不是存儲在同一個單元的,是根據指令(在flash中)到對應的寄存器中讀取該寄存器中的數據或地址的內容進行操作的。

F. ARM體系結構與編程的內容簡介

ARM處理器是一種16/32位的高性能、低成本、低功耗的嵌入式RISC微處理器,由ARM公司設計,然後授權給各半導體廠商生產,它目前已經成為應用最為廣泛的嵌入式處理器。
本書分14章對ARM處理器的體系結構、指令系統和開發工具作了比較全面的介紹。其中包括ARM體系介紹、ARM程序設計模型、ARM匯編語言程序設計、ARM C/C++語言程序設計、ARM連接器的使用、ARM集成開發環境CodeWarrior IDE的介紹及高性能的調試工具ADW的使用。並在此基礎之上介紹一些典型的基於ARM體系的嵌入式應用系統設計時的基本技術。通過閱讀本書可以使讀者掌握開發基於ARM的應用系統的各方面的知識。
本書既可作為學習ARM技術的培訓材料,也可作為嵌入式系統開發人員的參考手冊。

熱點內容
php對象轉換成數組 發布:2025-05-14 16:07:55 瀏覽:27
java服務端緩存 發布:2025-05-14 15:53:37 瀏覽:105
php判斷postget 發布:2025-05-14 15:34:24 瀏覽:357
linux查看電腦配置 發布:2025-05-14 15:32:07 瀏覽:317
軍用壓縮水 發布:2025-05-14 15:27:19 瀏覽:26
win7c盤加密 發布:2025-05-14 15:04:49 瀏覽:511
dm碼編程 發布:2025-05-14 15:03:56 瀏覽:406
apache加密 發布:2025-05-14 14:49:13 瀏覽:970
安卓什麼軟體蘋果不能用 發布:2025-05-14 14:49:03 瀏覽:772
jsoupjava 發布:2025-05-14 14:38:00 瀏覽:889