日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【DSP复习主要知识点】(大概)

發(fā)布時間:2023/12/1 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【DSP复习主要知识点】(大概) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

  • 第一章
    • 1、數(shù)字系統(tǒng)對比模擬系統(tǒng)
    • 2、馮諾依曼、哈佛架構
    • 3、CISC、RISC
    • 4、DSP特點
    • 5、cpu流水線作用
    • 6、DSP芯片優(yōu)點
  • 第二章:DSP芯片結構原理
    • 1、ALU(算數(shù)邏輯運算單元)
    • 2、累加器A和B
    • 3、桶形移位器的功能
    • 4、乘法/加法單元
    • 5、CPU狀態(tài)與控制寄存器
    • 6、內(nèi)部總線結構
    • 7、哈佛結構存儲空間分配
    • 8、程序存儲器
    • 9、數(shù)據(jù)存儲器
    • 10、(MMR)存儲器映像寄存器
    • 11、復位電路以及片外電路
    • 12、外設接口與時序
    • 13、利用軟件等待實現(xiàn)接口的速度配合
    • 14、中斷處理
    • 15、自舉加載
  • 第三章:尋址方式以及指令系統(tǒng)
    • 1、尋址分類
    • 2、程序地址的生成
  • 第七章:DSPC55x處理器軟件開發(fā)流程
    • 1、軟件設計
    • 2、任務狀態(tài)
    • 3、C語言程序開發(fā)優(yōu)化
    • 4、通用目標文件格式
    • 5、C/C++和匯編語言中段的分配
    • 6、鏈接命令文件
  • 第八章:DSP硬件設計基礎
    • 1、主要芯片種類
    • 2、DSP系統(tǒng)的設計思路
    • 3、信號線的布置
    • 4、DSP最小系統(tǒng)設計
  • 第九章、DSP典型算法設計實例
    • 1、掌握高通濾波器
    • 2、巴特沃斯濾波器(Butterworth)
    • 3、切比雪夫濾波器
    • 4、卷積算法
    • 5、無限沖激響應濾波器(IIR)
  • 第十一章,語音技術識別
    • 1、人與人之間、人與機器之間的語音信息處理過程
    • 2、典型語音識別系統(tǒng)實現(xiàn)過程
  • 第十三章 物聯(lián)網(wǎng)與智能家居
    • 互聯(lián)網(wǎng)協(xié)議第六版:IPv6

第一章

1、數(shù)字系統(tǒng)對比模擬系統(tǒng)

數(shù)字化的優(yōu)點:

1.高度的程控能力與靈活性
2、更高的精度
3、可靠性與可重復性得到了改善
4、大規(guī)模集成
5、接口方便
6、靈活性好
7、保密性好
8、特殊應用(只有數(shù)字能做):信息無失真壓縮、線性相位濾波器、軟件無線電技術

模擬與數(shù)字各有所長:
1、實時性
模擬:除了電路引入的延時外,處理是實時的
數(shù)字:取決于處理器的速度
2、高頻信號的處理
模擬:可以處理包括微波毫米波乃至光波信號
數(shù)字:按照奈奎斯特準則的要求,受S/H、A/D 和處理速度的限制
3、模擬與數(shù)字信號轉換
現(xiàn)實世界的信號大多是模擬的,要想完成數(shù)字處理就必須進行轉換。

2、馮諾依曼、哈佛架構

兩種結構的目的旨在從存儲器存取數(shù)據(jù)。區(qū)別在于程序/數(shù)據(jù)總線和空間是否分開。
馮諾依曼結構:2進制與程序內(nèi)存思想

哈佛架構:
哈佛結構的特點:

1、將程序與數(shù)據(jù)存儲空間分開
2、各有獨立的地址總線和數(shù)據(jù)總線
3、取址和讀數(shù)可以同時進行
4、速度大大提高

3、CISC、RISC

CISC:復雜指令計算機
RISC: 精簡指令計算機
RISC和CISC的區(qū)別:

(1) 指令系統(tǒng):RISC 設計者把主要精力放在那些經(jīng)常使用的指令上,盡量使它們具有簡單高效的特色。對不常用的功能,常通過組合指令來完成。而CISC 計算機的指令系統(tǒng)比較豐富,有專用指令來完成特定的功能。因此,處理特殊任務效率較高。
(2) 存儲器操作:RISC 對存儲器操作有限制,使控制簡單化;而CISC 機器的存儲器操作指令多,操作直接。
(3) 程序:RISC 匯編語言程序一般需要較大的內(nèi)存空間,實現(xiàn)特殊功能時程序復雜,不易設計;而CISC 匯編語言程序編程相對簡單,科學計算及復雜操作的程序設計相對容易,效率較高。

4、DSP特點

1、哈佛結構
2、硬件乘法/累加器
3、多總線結構
4、多DSP協(xié)調工作模式
5、特殊DSP指令
6、多級流水線

5、cpu流水線作用

多級流水線技術(PipeLine)
作用:提高取地址效率,減少等待時間。
圖示:

流水線深度可達到6級。

6、DSP芯片優(yōu)點

哈佛結構
多總線結構和多處理單元
流水線技術
特殊的DSP指令
指令周期短
運算精度高
硬件配置強
耗電省

第二章:DSP芯片結構原理

C54x系列DSP器件的CPU基本組成如下:
1、40位算數(shù)邏輯單元
2、2個40位累加器寄存器
3、支持16~31位移位范圍的桶形移位寄存器
4、乘法累加單元MAC
5、16位臨時寄存器
6、16位的轉換寄存器(TRN)
7、比較、選擇、存儲單元(CSSU)
8、指數(shù)編碼器
9、CPU狀態(tài)和控制寄存器
10、兩個地址發(fā)生器

重點:基本性能、CPU結構、內(nèi)部總線結構、存儲器結構、片外圍電路,這里以C54x芯片為主要切入點。
需要注重的地方
1、多總線結構
2、40位算術邏輯單元(ALU)
3、17 x 17并行乘法器
4、比較、選擇和存儲單元(CSSU)
5、指數(shù)編碼器
6、兩個地址發(fā)生器
7、數(shù)據(jù)總線
8、總線尋址空間
9、三種存儲器空間
10、單指令循環(huán)和塊循環(huán)

1、ALU(算數(shù)邏輯運算單元)

1、ALU如何獲取數(shù)據(jù)

ALU有兩個輸入端:
X輸入端的數(shù)據(jù)來源于移位寄存器的輸出或來自數(shù)據(jù)總線DB 的數(shù)據(jù)存儲器操作數(shù)
Y輸入端的數(shù)據(jù)來源于累加器A中的數(shù)據(jù),或累加器B中的數(shù)據(jù),或來自數(shù)據(jù)總線CB的數(shù)據(jù)存儲器操作數(shù),或來自T寄存器中的數(shù)據(jù)。

2、ALU輸出

輸出為40位,被送往累加器A或B

3、溢出與進借位
溢出是針對有符號數(shù)的,進借位是針對無符號數(shù)的。

溢出處理:ALU的飽和邏輯可以處理溢出。當發(fā)生溢出、且狀態(tài)寄存器ST1的OVM=1時,則用32位最大正數(shù)00 7FFFFFFFh(正向溢出)或最大負數(shù)FF 80000000h(負向溢出)加載累加器。
關于進借位:
可以用來支持擴展精度的算術運算,利用兩個條件操作數(shù)C和NC,可以根據(jù)進位位的狀態(tài),進行分支轉移、調用與返回操作。

2、累加器A和B

1、作用:存放運算前后的數(shù)據(jù)
2、結構:一共40位,高8位是保護位,防止在累加運算中產(chǎn)生溢出

3、在存儲器中的存儲位置:

4、AB異同

累加器A和B的差別僅在于累加器A的31~16位可以用作乘法器的一個輸入。

3、桶形移位器的功能

桶形移位器用于格式化操作
長啥樣:

1、定標的含義:

當數(shù)據(jù)存儲器的數(shù)據(jù)送入累加器或與累加器中的數(shù)據(jù)進行運算時,先通過它進行0~16位左移然后再進行運算。

2、歸一化的作用:

方便指數(shù)運算

3、為何要擴展符號位

進行符號保護

4、乘法/加法單元

C54x系列產(chǎn)品的CPU有一個17 x 17的硬件乘法器,這個乘法器與一個40位專用累加器相連接,構成了乘法/累加單元MAC。
這個乘法器能夠完成帶符號與不帶符號的乘法運算。
有符號乘法:使每個16位操作數(shù)擴展成17位有符號數(shù)。
無符號乘法:使每個16位操作數(shù)的前面加個0
無符號數(shù)與有符號數(shù)乘法:使一個16位操作數(shù)前面加一個0,另一個16位操作數(shù)符號擴展為17位有符號數(shù),以完成相乘運算。
乘法器工作在小數(shù)相乘方式(狀態(tài)寄存器ST1中的FRCT位=1)時,乘法結果左移1位,以消除多余的符號位。

功能:

乘法器/加法器單元可以在一個流水線狀態(tài)周期內(nèi)完成一次乘法累加(MAC)運算

5、CPU狀態(tài)與控制寄存器

有3個狀態(tài)控制寄存器:狀態(tài)寄存器ST0、狀態(tài)寄存器ST1和處理工作模式狀態(tài)寄存器PMST
ST0和ST1中包含有各種工作條件和工作方式的狀態(tài);
PMST中包含存儲器的設置狀態(tài)及其它控制信息.
這些寄存器是存儲器尋址,所以可以把三個寄存器的內(nèi)容存入數(shù)據(jù)存儲器并能從數(shù)據(jù)存儲器讀出。
在存儲器中的排布是這樣的:

ST0

ARP:輔助寄存器操作,指定用于兼容模式下間接尋址的輔助寄存器
TC:測試控制標志,存儲算術運算單元ALU的測試位操作結果
C:進位標志位
OVA:累加器A的溢出標志
OVB:累加器B的溢出標志
DP:數(shù)據(jù)存儲器頁指針,用于與指令中7位偏移量共同確定間接尋址的地址。

**處理器工作方式狀態(tài)寄存器(PMST) **

IPTR:中斷矢量指針,指定中斷矢量表的存放位置
MP/MC’:微處理器工作方式位。該引腳為0允許使能并尋址片內(nèi)ROM;為1不能利用片內(nèi)ROM。
OVLY:為1時允許片內(nèi)雙尋址數(shù)據(jù)RAM塊映射到程序空間
DROM:數(shù)據(jù)ROM,決定片內(nèi)ROM是否可以映射到數(shù)據(jù)空間。

6、內(nèi)部總線結構

TMS320C54x片內(nèi)有一組程序總線、兩組數(shù)據(jù)讀總線、一組數(shù)據(jù)寫總線。
程序總線(PB):16位,傳送取自程序存儲器的指令代碼和立即操作數(shù)
數(shù)據(jù)總線(CB、DB和EB):16位,CB和DB傳送讀自數(shù)據(jù)存儲器的操作數(shù);CB用于雙數(shù)據(jù)讀、長數(shù)據(jù)(32位)讀高16位,DB用于單數(shù)據(jù)讀、雙數(shù)據(jù)讀、長數(shù)據(jù)(32位)讀低16位、外設讀;EB用于傳送寫到存儲器的數(shù)據(jù)。
地址總線(PAB、CAB、DAB和EAB):16位,用于傳送執(zhí)行指令所需的地址。
PAB傳送程序的地址;CAB傳送讀數(shù)據(jù)需要的地址。

7、哈佛結構存儲空間分配


C54x中,片內(nèi)存儲器的型式有DARAM、SARAM和ROM三種,取決于芯片的型號。
RAM總是安排到數(shù)據(jù)存儲空間,但也可以構成程序存儲空間。
ROM一般構成程序存儲空間,也可以部分地安排到數(shù)據(jù)存儲空間。

8、程序存儲器

1、為何將ROM分塊:

2、復位中斷向量:

9、數(shù)據(jù)存儲器


RAM分塊目的:
為了提高處理器的性能,片內(nèi)RAM也細分成若干塊。
分塊后,用戶可以在同一個周期內(nèi)從同一塊DARAM取出兩個操作數(shù),并將數(shù)據(jù)寫入到另一塊DARAM中。

10、(MMR)存儲器映像寄存器

11、復位電路以及片外電路


具有監(jiān)視(Watchdog)功能的自動復位電路。它除了具有上電復位功能外,還具有監(jiān)視系統(tǒng)運行并在系統(tǒng)發(fā)生故障或死機時再次進行復位的能力。
其基本原理是:為電路提供一個用于監(jiān)視系統(tǒng)運行的監(jiān)視線,當系統(tǒng)正常運行時,應在規(guī)定的時間內(nèi)給監(jiān)視線提供一個高低電平發(fā)生變化的信號,如果在規(guī)定的時間內(nèi)這個信號不發(fā)生變化,自動復位電路就認為系統(tǒng)運行不正常并重新對系統(tǒng)進行復位。

在片外圍電路:有兩個通用IO引腳,受軟件控制。
XF:輸出
BIO:輸入

12、外設接口與時序

外設接口引線由三部分組成:地址總線、數(shù)據(jù)總線、一組控制信號。
作用:對IO口或者片外存儲器進行尋址。
外部總線引腳說明:



13、利用軟件等待實現(xiàn)接口的速度配合

首先復習軟件等待狀態(tài)發(fā)生器(SWWSR) :
結構:

功能:將外部總線周期延長多達7個機器周期,方便地與外部慢速器件相接口。
為什么要對外部存儲器分塊 ?
協(xié)調不同速度的外存器件。


連接圖:

本例中C54x的機器周期為25ns(40MHz),若外部器件的存取時間小于15ns,可以不插入等待狀態(tài)。因此例中的數(shù)據(jù)存儲器可以不插入等待狀態(tài),但程序存儲器和A/D、D/A外部設備應分別插入3個(75ns)和5個(125ns)等待狀態(tài)。
此時軟件等待狀態(tài)寄存器SWWSR應配置為:

14、中斷處理

1、中斷來源
硬件驅動:受外部中斷口信號觸發(fā)的外部硬件中斷;受片內(nèi)外圍電路信號觸發(fā)的內(nèi)部硬件中斷;
軟件驅動:程序指令(INTR、TRAP、RESET)
2、中斷分類
中斷分為可屏蔽中斷和非屏蔽中斷。
可屏蔽中斷:可以用軟件屏蔽或開放
非屏蔽中斷:C54x總是響應所有軟件中斷,兩個外部硬件中斷RS’、NMI’
3、中斷處理過程
1、接收中斷請求
2、響應中斷
3、執(zhí)行中斷服務程序

可屏蔽中斷處理過程:

非可屏蔽中斷處理過程:

4、實現(xiàn)中斷的相關問題
1、中斷向量地址的計算
復位后的初始地址計算
1、取IPTR的值
2、查表得中斷向量序號
3、將十六進制的中斷向量序號左移2位
4、將1與3相加得中斷向量地址
具體來一題:復位后的初始地址計算
復位后,IPTR的所有位被置1(IPTR = 1FFh),RS中斷向量序號為00;左移2位與IPTR相加,得到最終結果。
注意1FFh會將復位向量銀蛇到程序存儲器的511頁空間,此時RS向量不能被重新銀蛇,總是指向程序空間的FF80h。

當加載除了1FFh之外的值到IPTR后,中斷向量可以映射到其他地址。如:

其他例子:

15、自舉加載

自舉加載的任務:

自舉加載的途徑:
1、從一個外部的8位或者16位的EPROM加載
2、由主處理器從以下幾個途徑加載:

HPI總線、
8位或16位并行I/0、
任何一個串行口、
從用戶定義的地址熱自舉。

關于程序的起點:

第三章:尋址方式以及指令系統(tǒng)

1、尋址分類

1、立即數(shù)尋址:指令中嵌有一個固定的數(shù)
2、絕對地址尋址:指令中有一個固定的地址
3、累加器尋址:按累加器內(nèi)的地址去訪問程序存儲空間中的一個單元
4、直接尋址:指令中的低7bit是一個數(shù)據(jù)頁的偏移地址,而所在的數(shù)據(jù)頁由數(shù)據(jù)頁指針DP或SP決定,該偏移地址加上DP和SP的值決定了在數(shù)據(jù)存儲空間中的實際地址
5、間接尋址:按照輔助寄存器中的地址訪問數(shù)據(jù)存儲空間
6、存儲器映象寄存器尋址:修改存儲器映射寄存器的值,不影響當前DP或SP的值
7、堆棧尋址:把數(shù)據(jù)壓入和彈出系統(tǒng)堆棧

1、立即數(shù)尋址
特點:

指令中包含有執(zhí)行指令所需要的操作數(shù)。
立即數(shù)分為3、5、8或9位的短立即數(shù)和16位的長立即數(shù)兩種。
短立即數(shù)可包含在單字或雙字指令中,長立即數(shù)在雙字指令中。

語法注意點:

在操作數(shù)前面需要加#字號來說明該操作數(shù)為立即數(shù)。否則會把該操作數(shù)誤認為是一個地址,從而把立即數(shù)尋址變成絕對地址尋址。

LD:裝入指令

LD #93h,A ; 把立即數(shù)1000H裝入累加器A

3、累加器尋址
方法:用累加器中的數(shù)值作為地址來讀寫程序存儲器;
特點:可用來完成程序存儲器單元的數(shù)據(jù)與數(shù)據(jù)存儲器單元的數(shù)據(jù)進行交換。

READA Smem; 以累加器A中的數(shù)作為一個程序存儲空間地址,讀取一個字存入數(shù)據(jù)存儲單元Smem中 WRITA Smem; 從數(shù)據(jù)存儲單元Smem讀取一個字存入以累加器A為程序存儲空間地址的單元

4、直接尋址
直接尋址是指令代碼包含了數(shù)據(jù)存儲器地址的低7位。這7位dma作為偏移地址與數(shù)據(jù)頁指針(DP)或堆棧指針(SP)結合共同形成16位的數(shù)據(jù)存儲空間實際地址。
數(shù)據(jù)頁分為512頁,每頁128字節(jié),共有64k。
用一個符號或者一個常數(shù)來確定偏移地址。偏移地址操作數(shù)前應該加@號。
分為兩種方式:

CPL=0 7位dma域與9bit的DP相結合     形成16位的數(shù)據(jù)存儲器地址。
CPL=1 7位dma域加上(正偏移)SP     的值形成16位的數(shù)據(jù)存儲器地址。

例1:采用直接尋址的方式,將立即數(shù)1234h和5678h分別存放到數(shù)據(jù)存儲空間的0089h和2009h地址單元中。

DAT0 .set 09h Start: LD #0001H,DP ;設置DP指針。加載指令。STM #2000H,SP ;設置SP指針。存儲指令。 BK0: RSBX CPL ;對狀態(tài)寄存器ST1中的編輯方式位清0。與DP運算ST #1234H,DAT0 ;將立即數(shù)1234H存入DAT0地址單元中。 BK1: SSBX CPL ;對狀態(tài)寄存器ST1中的編輯方式位置1。與SP運算ST #5678H,DAT0 ;將立即數(shù)1234H存入DAT0地址單元中。

例2:直接尋址有兩種方式,分別是什么?如何控制當SP = 2000H,DP = 2,偏移地址為25H時,分別尋址的是哪個尋址空間的哪個地址?
解:
用一個符號或者常數(shù)來確定7位偏移值,與DP共同形成16位的數(shù)據(jù)存儲器實際地址。
用一個符號或者常數(shù)來確定7位偏移值,與SP共同形成16位的數(shù)據(jù)存儲器實際地址。
計算方式如圖:
所以用DP來算為:0000,0001,0010,0101=> 0125H
用SP來算為:0010,0000,0010,0101 => 2025H

6、存儲器映象寄存器尋址
功能:用來修改存儲器映象寄存器。
方法:高9位數(shù)據(jù)存儲器地址置0,利用指令中的低7位地址訪問MMR。
特點:用來修改存儲器映象寄存器而不受到當前數(shù)據(jù)頁指針DP或者堆棧指針SP值的影響。
舉例:

LDM PRD,A ;將PRD的內(nèi)容裝入累加器A

7、堆棧尋址
功能:用來在中斷和子程序調用時自動保存程序計數(shù)器(PC)中的數(shù)值,也能用來保護現(xiàn)場或傳送參數(shù) .
特點:

從高地址向低地址方向生長,SP)來管理堆棧,SP始終指向堆棧中所存放的最后一個數(shù)據(jù),即SP指針始終指向棧頂。在壓入操作時,先減小SP的值,再將數(shù)據(jù)壓入堆棧;在彈出操作時,先從堆棧彈出數(shù)據(jù),再增加SP的值。

PSHD Smem ; 把一個數(shù)據(jù)存儲器的值壓入堆棧 PSHM MMR ; 把一個存儲器映射寄存器的值壓入堆棧 POPD Smem ; 從堆棧中彈出一個數(shù)據(jù)到數(shù)據(jù)存儲器單元 POPM MMR ; 從堆棧彈出一個數(shù)據(jù)到存儲器映射寄存器

2、程序地址的生成

程序地址生成器(PAGEN)構成:

1、程序計數(shù)器(PC)
2、重復計數(shù)器(RC)
3、塊重復計數(shù)器(BRC)
4、塊重復起始地址寄存器(RSA)
5、塊重復結束地址寄存器(REA)

核心:

16位程序計數(shù)器(PC)內(nèi)保存某個內(nèi)部或外部程序存儲器的地址。

第七章:DSPC55x處理器軟件開發(fā)流程


匯編器:將匯編源代碼轉換成機器語言
鏈接器:將多個目標文件結合成一個可執(zhí)行文件
歸檔器:把一組文件歸檔為一個庫,供用戶使用

1、軟件設計

主要分為兩種程序設計思路
1、程序自己完成任務調度
運行效率高,對硬件中斷響應快,程序運行穩(wěn)定。是和任務較為單一,實時性較強的應用。
2、由嵌入式操作系統(tǒng)完成任務調度
用于同時完成多個任務。
下面是使用操作系統(tǒng)的代碼框架

中斷程序1; ...... 中斷程序m; Main() {DSP_INIT(){......}; //DSP初始化For(;;) //主循環(huán){if(){};......if(){};} }

2、任務狀態(tài)

任務是一個無限循環(huán),它必須處于下面的5個狀態(tài)之一:
1、休眠狀態(tài):駐村與內(nèi)存中,并沒有被系統(tǒng)內(nèi)核調用
2、就緒狀態(tài):任務已經(jīng)準備好,但是任務優(yōu)先級較低,暫時不能運行
3、運行狀態(tài):任務擁有CPU使用權,正在運行
4、掛起狀態(tài):任務正在等待一個事件的發(fā)生以結束目前的等待(如等待外設的IO操作、等待共享資源、等待定時或者超時信息等事件)
5、發(fā)生中斷時,CPU進入中斷服務程序,而暫時不能運行當前的任務,任務就進入了被中斷態(tài)。

3、C語言程序開發(fā)優(yōu)化

對I/O空間進行尋址關鍵字ioport
C55x處理器包含數(shù)據(jù)空間和I/O空間,為了在C/C++中對I/O空間進行尋址,編譯器給出了關鍵字ioport,以支持I/O尋址模式。
ioport關鍵字可以用在數(shù)組、結構體、聯(lián)合、以及枚舉類型當中。
當用在數(shù)組中時,ioport可以作為數(shù)組中的元素;
在結構體中使用ioport,只能指向ioport數(shù)據(jù)的指針而不能直接作為結構的成員。
ioport類型只能用來聲明全局或靜態(tài)變量,如果在本地變量中使用ioport類型,則變量必須用指針聲明。接下來給出指針聲明ioport類型的例子:

void foo (void) {ioport int i; /* 無效的聲明 */ioport int *j; /* 有效聲明 */ }

應當注意聲明ioport類型的指針只有16位,這是因為I/O空間是16位尋址,而不受大/小存儲器模式的限制。
在printf()中不能直接引用ioport指針,如果要引用,則必須進行強制類型轉換“void *”,具體例子如下:

ioport int *p; printf(%p\n”, (void*)p);

給出在本地變量中使用ioport類型的例子

int *ioport ioport_pointer; //ioport指針 int i; int j; void foo(void) {ioport_pointer = &i;j = *ioport_pointer; }

編譯結果如下:

_foo: MOV #_i,port(#_ioport_pointer) ; 存儲i在I/O空間的地址 MOV port(#_ioport_pointer),AR3 ; 載入i的地址 MOV *AR3,AR1 ; 將i的內(nèi)容存放到AR1中 MOV AR1,*abs16(#_j) ; 將i的內(nèi)容保存到j return

**interrupt關鍵字 **
中斷操作需要使用特定的寄存器保存規(guī)則,并具有特殊的返回順序。
C55x編譯器使用了關鍵字interrupt定義中斷函數(shù)。
當C/C++代碼被中斷時,中斷程序必須保存所有與程序有關的寄存器。
當使用interrupt關鍵字定義函數(shù)時,中斷函數(shù)必須返回空并且沒有參數(shù)傳遞。
中斷函數(shù)可以定義本地變量并且使用對戰(zhàn):

interrupt void int_handler() {unsigned int flags;... }

c_int00是C/C++程序的入口點,這個函數(shù)名被系統(tǒng)復位中斷保留,該中斷服務程序用來初始化系統(tǒng)并調用main函數(shù)。

**onchip關鍵字 **
onchip關鍵字的作用:告訴編譯器由該關鍵字定義的指針所指向的數(shù)據(jù)可以作為一個雙乘法指令中的操作數(shù)。
如果onchip關鍵字向函數(shù)傳遞數(shù)據(jù),或者最終引用的數(shù)據(jù)使用onchip定義的,則該數(shù)據(jù)必須在片上。
如果該數(shù)據(jù)在片外,則當通過數(shù)據(jù)總線訪問該數(shù)據(jù)時將產(chǎn)生一個總線錯誤。
下面喲個onchip定義數(shù)組和指針的例子:

onchip int x[100]; onchip int *p;

4、通用目標文件格式

匯編器和鏈接器產(chǎn)生的可執(zhí)行文件所采用的格式是通用目標文件格式(COFF),采用通用目標文件格式有助于實現(xiàn)模塊化編程。
匯編器和鏈接器都支持用戶創(chuàng)建多個代碼段和數(shù)據(jù)段,這也有助于用戶的靈活編程。
編譯器產(chǎn)生的可以重新定位的代碼和數(shù)據(jù)塊叫做段。
段可以分成兩大類-初始化段未初始化段
初始化段裝有數(shù)據(jù)或代碼。
常用**初始化段包括代碼段(.text段)、常數(shù)段(.const段)**等。

未初始化段的作用是在存儲器中保留一定空間供程序生成和存儲變量使用。
常用的未初始化段包括堆棧和系統(tǒng)堆棧段(.stack和.sysstack)、存儲全局和靜態(tài)變量的.bss段以及為分配動態(tài)存儲器保留的.sysmem段等。

5、C/C++和匯編語言中段的分配

1、匯編語言中為代碼分配段的例子:

.text MOV #10,AC0 MOV AC0,AC1

2、匯編語言中為數(shù)據(jù)分配段的例子:

.data .word 9,10 .word 11,12

6、鏈接命令文件

鏈接器對匯編器編譯好的代碼和數(shù)據(jù)進行鏈接時,所依據(jù)的是連接命令文件,即.cmd文件。
在連接命令文件中定義了段名,段的起始地址,段的長度,初始化段的初始值等。
下面給出一個.cmd文件的具體示例:

/**************************************************************** * lnk55x <obj files...> -o <out file> -m <map file> lnk.cmd * cl55x <src files...> -z -o <out file> -m <map file> lnk.cmd /****************************************************************/-c /*不區(qū)分大小寫 */-m a1.map /*生成.map文件*/ -stack 0x1800 /*主堆棧尺寸*/-sysstack 0x1800 /*系統(tǒng)堆棧尺寸*/-heap 0x100 /*動態(tài)內(nèi)存大小*//* Set entry point to Reset vector*//* - Allows Reset ISR to force IVPD/IVPH to point to vector table.*/-e RESET_ISR/*設置系統(tǒng)內(nèi)存映射*//* 載入及鏈接使用字節(jié)地址*/MEMORY{PAGE 0:MMR (RWIX) : o=0000000h, l=00000C0hDARAM0 (RWIX) : o=00000C0h, l=000af40hDARAM1 (RWIX) : o=000b000h, l=0000800hDARAM2 (RWIX) : o=000b800h, l=0000800hDARAM3 (RWIX) : o=000c000h, l=0000800hDARAM4 (RWIX) : o=000c800h, l=0000800h SARAM0 (RWIX) : o=0010000h, l=0010000hSARAM1 (RWIX) : o=0020000h, l=0010000hSARAM2 (RWIX) : o=0030000h, l=0020000hCE0 (RWIX) : o=0050000h, l=0100000hCE1 (RWIX) : o=0400000h, l=0400000hPDROM (RX) : o=0FF8000h, l=0008000hPAGE 1:CE2 (RWIX) : o=0400000h, l=0200000hCE3 (RWIX) : o=0600000h, l=0100000hPAGE 2:IOPORT (RWI) : o=0000000h, l=0020000h } /*為段分配內(nèi)存地址*/SECTIONS{{rts55x.lib<boot.obj exit.obj strcpy.obj>.text)}*/{rts55.lib<boot.obj exit.obj>.text)}.text > SARAM0 /* CODE*/.switch > SARAM0 /* SWITCH TABLE INFO */.const > SARAM0 /* CONSTANT DATA */.cinit > SARAM0 /* INITIALIZATION TABLES */.pinit > SARAM0 /* INITIALIZATION TABLES */ .data > DARAM0 fill=0xBEEF /* INITIALIZED DATA */.bss > DARAM0 fill=0xBEEF /* GLOBAL & STATIC VARS */.sysmem > DARAM0 fill=0xBEEF /* DYNAMIC MALLOC AREA */.stack > DARAM0 fill=0xBEEF /* PRIMARY SYSTEM STACK */.sysstack > DARAM0 fill=0xBEEF /* SECONDARY SYSTEM STACK */.cio > DARAM0 fill=0xBEEFinput > DARAM1 fill=0xBEEF /* Input data */output > DARAM2 fill=0xBEFF /* Output data */writdata > DARAM3 fill=0xBEFF /* Write pen point */para > DARAM4 fill=0xBEFF /* Tranfer parameter */intvecs > DARAM5 fill=0xBEFFparadata > DARAM6 fill=0x7time > DARAM7 fill=0.ioport > IOPORT PAGE 2 }

第八章:DSP硬件設計基礎

1、主要芯片種類

TI的DSP芯片
三大系列
1、TMS320C2000系列,DSP控制器,集成了flash存儲器、告訴A/D轉換器以及可靠的CAN模塊
以及數(shù)字馬達控制的外圍模塊,適用于三相電動機、變頻器等高速實時工控產(chǎn)品等需要數(shù)字化的控制領域
2、TMS320C5000系列,16位定點DSP。主要用于通信鄰域,如IP電話機和IP電話網(wǎng)關、數(shù)字式助聽器
便攜式聲音/數(shù)據(jù)/視頻產(chǎn)品。
3、TMS320C6000系列,采用新的超長指令字結構設計芯片。
主要應用于
1)、數(shù)字通信 完成FFT、信道和噪聲估計、信道糾錯、干擾估計和檢測等
2)、圖像處理 完成圖像壓縮、圖像傳輸、模式及光學特性識別、加密/解密、圖像增強等。

2、DSP系統(tǒng)的設計思路


3、信號線的布置

信號的過沖與阻尼震蕩:

1、無終端補償(NO Termination)
直接進行信號的傳輸,對終端不進行補償

2、串電阻補償(Serial Res)
串電阻補償方式就是在點對點的連接中直接傳入一個電阻,這將減少外來的電壓波形的幅值。
合適的串電阻補償將使信號正確終止,消除接收器的過沖現(xiàn)象。

4、DSP最小系統(tǒng)設計

DSP最小系統(tǒng)就是滿足DSP運行的最小硬件組成,任何一個DSP硬件系統(tǒng)中都必須包括最小系統(tǒng)的各個組成部分,最小系統(tǒng)由電源電路、復位電路時鐘電路JTAG接口電路程序加載部分等組成

第九章、DSP典型算法設計實例

1、掌握高通濾波器

2、巴特沃斯濾波器(Butterworth)

3、切比雪夫濾波器


4、卷積算法

卷積和的運算在圖形上表示可分為四步:
1、翻轉:先在變量坐標m上作圖x(m)和h(m),將h(m)以m=0的垂直軸為對稱軸翻轉成h(-m);
2、移位:將h(-m)移位n,即得h(n-m)。當n為正整數(shù),右移n位。當n為負整數(shù),左移n位。
3、相乘:再將h(n-m)和x(m)的相同m值的對應點值相乘。
4、相加:把以上所有對應點的乘積疊加起來,得到y(tǒng)(n)的值。

5、無限沖激響應濾波器(IIR)

第十一章,語音技術識別

1、人與人之間、人與機器之間的語音信息處理過程

2、典型語音識別系統(tǒng)實現(xiàn)過程

語音識別原理框圖:

第十三章 物聯(lián)網(wǎng)與智能家居

互聯(lián)網(wǎng)協(xié)議第六版:IPv6

總結

以上是生活随笔為你收集整理的【DSP复习主要知识点】(大概)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。