www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]DSP的內(nèi)部指令周期較高,外部晶振的主頻不夠,因此DSP大多數(shù)片內(nèi)均有PLL。但每個系列不盡相同。

DSP的內(nèi)部指令周期較高,外部晶振的主頻不夠,因此DSP大多數(shù)片內(nèi)均有PLL。但每個系列不盡相同。

1)TMS320C2000系列:

TMS320C20x:PLL可以÷2,×1,×2和×4,因此外部時鐘可以為5MHz-40MHz。
TMS320F240:PLL可以÷2,×1,×1.5,×2,×2.5,×3,×4,×4.5,×5和×9,因此外部時鐘可以為2.22MHz-40MHz。
TMS320F241/C242/F243:PLL可以×4,因此外部時鐘為5MHz。 TMS320LF24xx:PLL可以由RC調(diào)節(jié),因此外部時鐘為4MHz-20MHz。
TMS320LF24xxA:PLL可以由RC調(diào)節(jié),因此外部時鐘為4MHz-20MHz。

2)TMS320C3x系列:

TMS320C3x:沒有PLL,因此外部主頻為工作頻率的2倍a。
TMS320VC33:PLL可以÷2,×1,×5,因此外部主頻可以為12MHz-100MHz。

3)TMS320C5000系列:

TMS320VC54xx:PLL可以÷4,÷2,×1-32,因此外部主頻可以為0.625MHz-50MHz。
TMS320VC55xx:PLL可以÷4,÷2,×1-32,因此外部主頻可以為6.25MHz-300MHz。

4)TMS320C6000系列:

TMS320C62xx:PLL可以×1,×4,×6,×7,×8,×9,×10和×11,因此外部主頻可以為11.8MHz-300MHz。
TMS320C67xx:PLL可以×1和×4,因此外部主頻可以為12.5MHz-230MHz。
TMS320C64xx:PLL可以×1,×6和×12,因此外部主頻可以為30MHz-720MHz


軟件等待的如何使用?

DSP的指令周期較快,訪問慢速存儲器或外設(shè)時需加入等待。等待分硬件等待和軟件等待,每一個系列的等待不完全相同。

1)對于C2000系列: 硬件等待信號為READY,高電平時不等待。 軟件等待由WSGR寄存器決定,可以加入最多7個等待。其中程序存儲器和數(shù)據(jù)存儲器及I/O可以分別設(shè)置。

2)對于C3x系列: 硬件等待信號為/RDY,低電平是不等待。 軟件等待由總線控制寄存器中的SWW和WTCNY決定,可以加入最多7個等待,但等待是不分段的,除了片內(nèi)之外全空間有效。

3)對于C5000系列: 硬件等待信號為READY,高電平時不等待。 軟件等待由SWWCR和SWWSR寄存器決定,可以加入最多14個等待。其中程序存儲器、控制程序存儲器和數(shù)據(jù)存儲器及I/O可以分別設(shè)置。

4)對于C6000系列(只限于非同步存儲器或外設(shè)): 硬件等待信號為ARDY,高電平時不等待。 軟件等待由外部存儲器接口控制寄存器決定,總線訪問外部存儲器或設(shè)備的時序可以設(shè)置,可以方便的同異步的存儲器或外設(shè)接口。


仿真工作正常對于DSP的基本要求

1)DSP電源和地連接正確。 2)DSP時鐘正確。 3)DSP的主要控制信號,如RS和HOLD信號接高電平。 4)C2000的watchdog關(guān)掉。 5)不可屏蔽中斷NMI上拉高電平。

CCS或Emurst運(yùn)行時提示“Can't Initialize Target DSP”

1)仿真器連接是否正常?

2)仿真器的I/O設(shè)置是否正確?

3)XDSPP仿真器的電源是否正確?

4)目標(biāo)系統(tǒng)是否正確?

5)仿真器是否正常?

6)DSP工作的基本條件是否具備。
建議使用目標(biāo)板測試。


為什么CCS需要安裝Driver?

CCS是開放的軟件平臺,它可以支持不同的硬件接口,因此不同的硬件接口必須通過標(biāo)準(zhǔn)的Driver同CCS連接。


Driver安裝的常見問題?

請認(rèn)真閱讀“安裝手冊”和 Driver盤中的Readme。 1)對于SEED-XDS,安裝Readme中的步驟,將I/O口設(shè)為240/280/320/340。 2)對于SEED-XDSPP,安裝Readme中的步驟,將I/O口設(shè)為378或278。3)對于SEED-XDSUSB,必須連接目標(biāo)板,安裝 Readme中的步驟,將I/O口設(shè)為A,USB連接后,主機(jī)將自動激活相應(yīng)的Driver。 4)對于SEED-XDSPCI,安裝Readme中的步驟,將I/O口設(shè)為240,PCI接口板插入主機(jī)后,主機(jī)將自動激活相應(yīng)的Driver。 5)對于Simulator,需要選擇不同的CFG文件,以模擬不同的DSP。 6)對于C5402 DSK,將I/O口設(shè)為請認(rèn)真閱讀“安裝手冊”和Driver盤中的Readme。 1)對于SEED-XDS,安裝Readme中的步驟,將I/O口設(shè)為240/280/320/340。 2)對于SEED-XDSPP,安裝Readme中的步驟,將I/O口設(shè)為378或278。注意主機(jī)BIOS中并口的型式必須同xds510pp.ini 中一致。 3)對于SEED-XDSUSB,必須連接目標(biāo)板,安裝Readme中的步驟,將I/O口設(shè)為240/280/320/340,USB連接后,主機(jī)將自動激活相應(yīng)的Driver。 4)對于SEED-XDSPCI,安裝Readme中的步驟,將I/O口設(shè)為240/280/320/340,PCI接口板插入主機(jī)后,主機(jī)將自動激活相應(yīng)的Driver。 5)對于Simulator,需要選擇不同的CFG文件,以模擬不同的DSP。 6)對于C5402 DSK,將I/O口設(shè)為378或278。 7)對于C6211/6711 DSK,將I/O口設(shè)為378或278。 8)對于C6201/C6701 EVM,將I/O口設(shè)為0。


2.Link的cmd文件的作用是什么?

Link的cmd文件用于DSP代碼的定位。由于DSP的編譯器的編譯結(jié)果是未定位的,DSP沒有操作系統(tǒng)來定位執(zhí)行代碼,每個客戶設(shè)計(jì)的DSP系統(tǒng)的配置也不盡相同,因此需要用戶自己定義代碼的安裝位置。以C5000為例,基本格式為:
-o sample.out
-m sample.map
-stack 100
sample.obj meminit.obj
-l rts.lib
MEMORY {
PAGE 0: VECT: origin = 0xff80, length 0x80
PAGE 0: PROG: origin = 0x2000, length 0x400
PAGE 1: DATA: origin = 0x800, length 0x400
}
SECTIONS {
.vectors : {} >PROG PAGE 0
.text : {} >PROG PAGE 0
.data : {} >PROG PAGE 0
.cinit : {} >PROG PAGE 0
.bss : {} >DATA PAGE 1
}

如何將OUT文件轉(zhuǎn)換為16進(jìn)制的文件格式?

DSP的開發(fā)軟件集成了一個程序,可以從執(zhí)行文件OUT轉(zhuǎn)換到編程器可以接受的格式,使得編程器可以用次文件燒寫EPROM或Flash。對于C2000 的程序?yàn)镈SPHEX;對于C3x程序?yàn)镠EX30;對于C54x程序?yàn)镠EX500;對于C55x程序?yàn)镠EX55;對于C6x程序?yàn)镠ex6x。以 C32為例,基本格式為:
sample.out
-x
-memwidth 8
-bootorg 900000h
-iostrb 0h
-strb0 03f0000h
-strb1 01f0000h
-o sample.hex
ROMS {
EPROM: org = 0x900000,len=0x02000,romwidth=8
}
SECTIONS {
.text: paddr=boot
.data: paddr=boot
}

DSP仿真器為什么必須連接目標(biāo)系統(tǒng)(Target)?

DSP的仿真器同單片機(jī)的不同,仿真器中沒有DSP,提供IEEE標(biāo)準(zhǔn)的JTAG口對DSP進(jìn)行仿真調(diào)試,所以仿真器必須有仿真對象,及目標(biāo)系統(tǒng)。目標(biāo)系統(tǒng)就是你的產(chǎn)品,上面必須有DSP。仿真器提供JTAG同目標(biāo)系統(tǒng)的DSP相接,通過DSP實(shí)現(xiàn)對整個目標(biāo)系統(tǒng)的調(diào)試。


仿真工作正常對于DSP的基本要求

1) DSP電源和地連接正確。
2)DSP時鐘正確。
3)DSP的主要控制信號,如RS和HOLD信號接高電平。
4)C2000的watchdog關(guān)掉。
5)不可屏蔽中斷NMI上拉高電平。

CCS或Emurst運(yùn)行時提示“Can't Initialize Target DSP”

1) 仿真器連接是否正常?
2)仿真器的I/O設(shè)置是否正確?
3)XDSPP仿真器的電源是否正確?
4)目標(biāo)系統(tǒng)是否正確?
5)仿真器是否正常?
6)DSP工作的基本條件是否具備。
建議使用目標(biāo)板測試。

為什么CCS需要安裝Driver?

CCS是開放的軟件平臺,它可以支持不同的硬件接口,因此不同的硬件接口必須通過標(biāo)準(zhǔn)的Driver同CCS連接。


Link的cmd文件的作用是什么?

Link的cmd文件用于DSP代碼的定位。由于DSP的編譯器的編譯結(jié)果是未定位的,DSP沒有操作系統(tǒng)來定位執(zhí)行代碼,每個客戶設(shè)計(jì)的DSP系統(tǒng)的配置也不盡相同,因此需要用戶自己定義代碼的安裝位置。以C5000為例,基本格式為:
-o sample.out
-m sample.map
-stack 100
sample.obj meminit.obj
-l rts.lib
MEMORY {
PAGE 0: VECT: origin = 0xff80, length 0x80
PAGE 0: PROG: origin = 0x2000, length 0x400
PAGE 1: DATA: origin = 0x800, length 0x400
}
SECTIONS {
.vectors : {} >PROG PAGE 0
.text : {} >PROG PAGE 0
.data : {} >PROG PAGE 0
.cinit : {} >PROG PAGE 0
.bss : {} >DATA PAGE 1
}

如何將OUT文件轉(zhuǎn)換為16進(jìn)制的文件格式?

DSP的開發(fā)軟件集成了一個程序,可以從執(zhí)行文件OUT轉(zhuǎn)換到編程器可以接受的格式,使得編程器可以用次文件燒寫EPROM或Flash。對于C2000 的程序?yàn)镈SPHEX;對于C3x程序?yàn)镠EX30;對于C54x程序?yàn)镠EX500;對于C55x程序?yàn)镠EX55;對于C6x程序?yàn)镠ex6x。以 C32為例,基本格式為:
sample.out
-x
-memwidth 8
-bootorg 900000h
-iostrb 0h
-strb0 03f0000h
-strb1 01f0000h
-o sample.hex
ROMS {
EPROM: org = 0x900000,len=0x02000,romwidth=8
}
SECTIONS {
.text: paddr=boot
.data: paddr=boot
}


DSP的C語言同主機(jī)C語言的主要區(qū)別?

1) DSP的C語言是標(biāo)準(zhǔn)的ANSI C,它不包括同外設(shè)聯(lián)系的擴(kuò)展部分,如屏幕繪圖等。但在CCS中,為了方便調(diào)試,可以將數(shù)據(jù)通過prinf命令虛擬輸出到主機(jī)的屏幕上。
2)DSP的C語言的編譯過程為,C編譯為ASM,再由ASM編譯為OBJ。因此C和ASM的對應(yīng)關(guān)系非常明確,非常便于人工優(yōu)化。
3)DSP的代碼需要絕對定位;主機(jī)的C的代碼有操作系統(tǒng)定位。
4)DSP的C的效率較高,非常適合于嵌入系統(tǒng)。

為什么在CCS下編譯工具工作不正常?

在CCS下有部分客戶會碰到編譯工具工作不正常,常見錯誤為:

1)autoexec.bat的路徑“out of memory”。修改autoexec.bat,清除無用的PATH路徑。
2)編譯的輸出文件(OUT文件)寫保護(hù),無法覆蓋。刪除或修改輸出文件的屬性。
3)Windows有問題。重新安裝windows。
4)Windows下有程序?qū)CS有影響。建議用一“干凈”的計(jì)算機(jī)。

在CCS下,如何選擇有效的存儲器空間?

CCS下的存儲器空間最好設(shè)置同你的硬件,沒有的存儲器不要有效。這樣便于調(diào)試,CCS會發(fā)現(xiàn)你調(diào)入程序時或程序運(yùn)行時,是否訪問了無效地址。

1)在GEL文件中設(shè)置。參見CCS中的示例。
2)在Option菜單下,選擇Memory Map選項(xiàng),根據(jù)你的硬件設(shè)置。注意一定要將Enable Memory Mapping置為使能。

在CCS下,OUT文件加載時提示“Data verification failed...”的原因?
Link的CMD文件分配的地址同GEL或設(shè)置的有效地址空間不符。中斷向量定位處或其它代碼、數(shù)據(jù)段定位處,沒有RAM,無法加載OUT文件。解決方法: 1)調(diào)整Link的CMD文件,使得定位段處有RAM。 2)調(diào)整存儲器設(shè)置,使得RAM區(qū)有效。

為什么要使用BIOS?

1)BIOS是Basic I/O System的簡稱,是基本的輸入、輸出管理。
2)用于管理任務(wù)的調(diào)度,程序?qū)崟r分析,中斷管理,跟蹤管理和實(shí)時數(shù)據(jù)交換。
3)BIOS是基本的實(shí)時系統(tǒng),使用BIOS可以方便地實(shí)現(xiàn)多任務(wù)、多進(jìn)程的時間管理。
4)BIOS是eXpress DSP的標(biāo)準(zhǔn)平臺,要使用eXpress DSP技術(shù),必須使用BIOS。


3. DSP芯片有多大的驅(qū)動能力?
DSP的驅(qū)動能力較強(qiáng),可以不加驅(qū)動,連接8個以上標(biāo)準(zhǔn)TTL門。

調(diào)試TMS320C2000系列的常見問題?

1)單步可以運(yùn)行,連續(xù)運(yùn)行時總回0地址: Watchdog沒有關(guān),連續(xù)運(yùn)行復(fù)位DSP回到0地址。
2)OUT文件不能load到片內(nèi)flash中: Flash不是RAM,不能用簡單的寫指令寫入,需要專門的程序?qū)懭?。CCS和C Source Debugger中的load命令,不能對flash寫入。 OUT文件只能load到片內(nèi)RAM,或片外RAM中。
3)在flash中如何加入斷點(diǎn): 在flash中可以用單步調(diào)試,也可以用硬件斷點(diǎn)的方法在flash中加入斷點(diǎn),軟件斷點(diǎn)是不能加在ROM中的。硬件斷點(diǎn),設(shè)置存儲器的地址,當(dāng)訪問該地址時產(chǎn)生中斷。
4)中斷向量: C2000的中斷向量不可重定位,因此中斷向量必須放在0地址開始的flash內(nèi)。在調(diào)試系統(tǒng)時,代碼放在RAM中,中斷向量也必須放在flash內(nèi)。

調(diào)試TMS320C3x系列的常見問題?

1) TMS320C32的存儲器配置: TMS320C32的程序存儲器可以配置為16位或32位;數(shù)據(jù)存儲器可以配置為8位、16位或32位。
2)TMS320VC33的PLL控制: TMS320VC33的PLL控制端只能接1.8V,不能接3.3V或5V。



4.如何調(diào)試多片DSP?

對于有MPSD仿真口的DSP(TMS320C30/C31/C32),不能用一套仿真器同時調(diào)試,每次只能調(diào)試其中的一個DSP;對于有JTAG仿真口的DSP,可以將JTAG串接在一起,用一套仿真器同時調(diào)試多個DSP,每個DSP可以用不同的名字,在不同的窗口中調(diào)試。注意:如果在JTAG和DSP間加入驅(qū)動,一定要用快速的門電路,不能使用如LS的慢速門電路。

在DSP系統(tǒng)中為什么要使用CPLD?

DSP的速度較快,要求譯碼的速度也必須較快。利用小規(guī)模邏輯器件譯碼的方式,已不能滿足DSP系統(tǒng)的要求。同時,DSP系統(tǒng)中也經(jīng)常需要外部快速部件的配合,這些部件往往是專門的電路,有可編程器件實(shí)現(xiàn)。 CPLD的時序嚴(yán)格,速度較快,可編程性好,非常適合于實(shí)現(xiàn)譯碼和專門電路。

DSP系統(tǒng)構(gòu)成的常用芯片有哪些?

1) 電源: TPS73HD3xx,TPS7333,TPS56100,PT64xx...
2)Flash: AM29F400,AM29LV400,SST39VF400...
3)SRAM: CY7C1021,CY7C1009,CY7C1049...
4)FIFO: CY7C425,CY7C42x5...
5)Dual port: CY7C136,CY7C133,CY7C1342...
6)SBSRAM: CY7C1329,CY7C1339...
7)SDRAM: HY57V651620BTC...
8)CPLD: CY37000系列,CY38000系列,CY39000系列...
9)PCI: PCI2040,CY7C09449...
10)USB: AN21xx,CY7C68xxx...
11)Codec:TLV320AIC23,TLV320AIC10...
12)A/D,D/A:ADS7805,TLV2543...


什么是boot loader?

DSP的速度盡快,EPROM或flash的速度較慢,而DSP片內(nèi)的RAM很快,片外的RAM也較快。為了使DSP充分發(fā)揮它的能力,必須將程序代碼放在RAM中運(yùn)行。為了方便的將代碼從ROM中搬到RAM中,在不帶flash的DSP中,TI在出廠時固化了一段程序,在上電后完成從ROM或外設(shè)將代碼搬到用戶指定的RAM中。此段程序稱為“boot loader”。

TMS320C3x如何boot?

在MC/MP管腳為高時,C3x進(jìn)入boot狀態(tài)。C3x的boot loader在reset時,判斷外部中斷管腳的電平。根據(jù)中斷配置決定boot的方式為存儲器加載還是串口加載,其中ROM的地址可以為三個中的一個,ROM可以為8位。

Boot有問題如何解決?

1)仔細(xì)檢查boot的控制字是否正確。
2)仔細(xì)檢查外部管腳設(shè)置是否正確。
3)仔細(xì)檢查hex文件是否轉(zhuǎn)換正確。
4)用仿真器跟蹤boot過程,分析錯誤原因。

DSP為什么要初始化?

DSP在RESET后,許多的寄存器的初值一般同用戶的要求不一致,例如:等待寄存器,SP,中斷定位寄存器等,需要通過初始化程序設(shè)置為用戶要求的數(shù)值。 初始化程序的主要作用:
1)設(shè)置寄存器初值。
2)建立中斷向量表。
3)外圍部件初始化。

DSP有哪些數(shù)學(xué)庫及其它應(yīng)用軟件?

TI公司為了方便客戶開發(fā)DSP,在它的網(wǎng)站上提供了許多程序的示例和應(yīng)用程序,如MATH庫,F(xiàn)FT,F(xiàn)IR/IIR等,可以在TI的網(wǎng)頁免費(fèi)下載。

如何獲得DSP專用算法?

TI有許多的Third Party可以通過DSP上的多種算法軟件。可以通過TI的網(wǎng)頁搜索你所需的算法,找到通過算法的公司,同相應(yīng)的公司聯(lián)系。注意這些算法都是要付費(fèi)的。


eXpressDSP是什么?

eXpressDSP是一種實(shí)時DSP軟件技術(shù),它是一種DSP編程的標(biāo)準(zhǔn),利用它可以加快你開發(fā)DSP軟件的速度。以往DSP軟件的開發(fā)沒有任何標(biāo)準(zhǔn),不同的人寫的程序一般無法連接在一起。DSP軟件的調(diào)試工具也非常不方便。使得DSP軟件的開發(fā)往往滯后于硬件的開發(fā)。 eXpressDSP集成了CCS(Code Composer Studio)開發(fā)平臺,DSP BIOS實(shí)時軟件平臺,DSP算法標(biāo)準(zhǔn)和第三方支持四部分。利用該技術(shù),可以使你的軟件調(diào)試,軟件進(jìn)程管理,軟件的互通及算法的獲得,都便的容易。這樣就可以加快你的軟件開發(fā)進(jìn)程。

1)CCS是eXpressDSP的基礎(chǔ),因此你必須首先擁有CCS軟件。
2)DSP BIOS是eXpressDSP的基本平臺,你必須學(xué)會所有DSP BIOS。
3)DSP算法標(biāo)準(zhǔn)可以保證你的程序可以方便的同其它利用eXpressDSP技術(shù)的程序連接在一起。同時也保證你的程序的延續(xù)性。

為什么要用DSP?

3G技術(shù)和internate的發(fā)展,要求處理器的速度越來越高,體積越來越小,DSP的發(fā)展正好能滿足這一發(fā)展的要求。因?yàn)?,傳統(tǒng)的其它處理器都有不同的缺陷。MCU的速度較慢;CPU體積較大,功耗較高;嵌入CPU的成本較高。 DSP的發(fā)展,使得在許多速度要求較高,算法較復(fù)雜的場合,取代MCU或其它處理器,而成本有可能更低。


5.使用TI公司模擬器件與DSP結(jié)合使用的好處。

1) 在使用TI公司的DSP的同時,使用TI公司的模擬可以和DSP進(jìn)行無縫連接。器件與器件之間不需要任何的連接或轉(zhuǎn)接器件。這樣即減少了板卡的尺寸,也降低了開發(fā)難度。
2)同為TI公司的產(chǎn)品,很多器件可以固定搭配使用。少了器件選型的煩惱
3)TI在CCS中提供插件,可以用于DSP和模擬器件的開發(fā),非常方便。

C語言中可以嵌套匯編語言?

可以。在ANSI C標(biāo)準(zhǔn)中的標(biāo)準(zhǔn)用法就是用C語言編寫主程序,用匯編語言編寫子程序,中斷服務(wù)程序,一些算法,然后用C語言調(diào)用這些匯編程序,這樣效率會相對比較高

在定點(diǎn)DSP系統(tǒng)中可否實(shí)現(xiàn)浮點(diǎn)運(yùn)算

當(dāng)然可以,因?yàn)镈SP都可以用C,只要是可以使用c語言的場合都可以實(shí)現(xiàn)浮點(diǎn)運(yùn)算。

JTAG頭的使用會遇到哪些情況

1) DSP的CLKOUT沒有輸出,工作不正常。
2)Emu0,Emu1需要上拉。
3)TCK的頻率應(yīng)該為10M。
4)在3.3V DSP中,PD腳為3.3V 供電,但是仿真器上需要5V電壓供電,所以PP仿真器盒上需要單獨(dú)供電。
4)仿真多片DSP。在使用菊花鏈的時候,第一片DSP的TDO接到第二片DSP的TDI即可。注意當(dāng)串聯(lián)DSP比較多的時候,信號線要適當(dāng)?shù)脑黾域?qū)動。

include頭文件(.h)的主要作用

頭文件,一般用于定義程序中的函數(shù)、參數(shù)、變量和一些宏單元,同庫函數(shù)配合使用。因此,在使用庫時,必須用相應(yīng)的頭文件說明。

DSP中斷向量的位置

1) 2000系列dsp的中斷向量只能從0000H處開始。所以在我們調(diào)試程序的時候,要把DSP選擇為MP(微處理器方式),把片內(nèi)的Flash屏蔽掉,免去每次更改程序都要重新燒寫Flash工作。
2)3x系列dsp的中斷向量也只能在固定的地址。
3)5000,6000系列dsp的中斷向量可以重新定位。但是它只能被重新定位到Page0范圍內(nèi)的任何空間。

有源晶振與晶體的區(qū)別,應(yīng)用范圍及用法

1) 晶體需要用DSP片內(nèi)的振蕩器,在datasheet上有建議的連接方法。晶體沒有電壓的問題,可以適應(yīng)于任何DSP,建議用晶體。
2)有源晶振不需要DSP的內(nèi)部振蕩器,信號比較穩(wěn)定。有源晶振用法:一腳懸空,二腳接地,三腳接輸出,四腳接電壓。

程序經(jīng)常跑飛的原因

1) 程序沒有結(jié)尾或不是循環(huán)的程序。
2)nmi管腳沒有上拉。
3)在看門狗動作的時候程序會經(jīng)常跑飛。
4)程序編制不當(dāng)也會引起程序跑飛。
5)硬件系統(tǒng)有問題。

并行FLASH引導(dǎo)的一點(diǎn)經(jīng)驗(yàn)-阿哲

最近BBS上關(guān)于FLASH和BOOT的討論很活躍,我也多次來此請教。前幾天自制的DSP板引導(dǎo)成功,早就打算寫寫這方面的東西。我用的DSP是 5416,以其為核心,做了一個相對獨(dú)立的子系統(tǒng)(硬件、軟件、算法),目前都已基本做好。下面把在FLASH引導(dǎo)方面做的工作向大家匯報(bào)一下,希望能對大家有所幫助。本人經(jīng)驗(yàn)和文筆都有限,寫的不好請大家諒解。 硬件環(huán)境:
DSP:TMS320VC5416PGE160
FLASH:SST39VF400A-70-4C-EK 都是貼片的,F(xiàn)LASH映射在DSP數(shù)據(jù)空間的0x8000-0xFFFF
軟件環(huán)境: CCS v2.12.01
主程序(要燒入FLASH的程序): DEBUG版,程序占用空間0x28000-0x2FFFF(片內(nèi)SARAM),中斷向量表在0x0080-0x00FF(片內(nèi)DARAM),數(shù)據(jù)空間使用0x0100-0x7FFF(片內(nèi)DARAM)。因?yàn)镕LASH是貼片的,所以需要自己編一個數(shù)據(jù)搬移程序,把要主程序搬移到FLASH中。在寫入FLASH數(shù)據(jù)時,還應(yīng)寫入引導(dǎo)表的格式數(shù)據(jù)。最后在數(shù)據(jù)空間的0xFFFF處寫入引導(dǎo)表的起始地址(這里為0x8000)。
搬移程序: DEBUG版,程序空間0x38000-0x3FFFF(片內(nèi)SARAM),中斷向量表在0x7800-0x78FF(片內(nèi)DARAM),數(shù)據(jù)空間使用 0x5000-0x77FF(片內(nèi)DARAM)。 搬移程序不能使用與主程序的程序空間和中斷向量表重合的物理空間,以免覆蓋。燒寫時,同時打開主程序和搬移程序的PROJECT,先LOAD主程序,再LOAD搬移程序,然后執(zhí)行搬移程序,燒寫OK! 附:搬移程序(僅供參考)
volatile unsigned int *pTemp=(unsigned int *)0x7e00; unsigned int iFlashAddr;
int iLoop; /* 在引導(dǎo)表頭存放并行引導(dǎo)關(guān)鍵字 */
iFlashAddr=0x8000;
WriteFlash(iFlashAddr,0x10aa);
iFlashAddr++; /* 初始化SWWSR值 */
WriteFlash(iFlashAddr,0x7e00);
iFlashAddr++; /* 初始化BSCR值 */
WriteFlash(iFlashAddr,0x8006);
iFlashAddr++; /* 程序執(zhí)行的入口地址 */
WriteFlash(iFlashAddr,0x0002);
iFlashAddr++;
WriteFlash(iFlashAddr,0x8085);
iFlashAddr++; /* 程序長度 */
WriteFlash(iFlashAddr,0x7f00);
iFlashAddr++; /* 程序要裝載到的地址 */
WriteFlash(iFlashAddr,0x0002);
iFlashAddr++;
WriteFlash(iFlashAddr,0x8000);
iFlashAddr++;
for (iLoop=0;iLoop<0x7f00;iLoop++)
{ /* 從程序空間讀數(shù)據(jù),放到暫存單元 */
asm(" pshm al");
asm(" pshm ah");
asm(" rsbx cpl");
asm(" ld #00fch,dp");
asm(" stm #0000h, ah");
asm(" MVDM _iLoop, al");
asm(" add #2800h,4,a");
asm(" reada 0h");
asm(" popm ah");
asm(" popm al");
asm(" ssbx cpl"); /* 把暫存單元內(nèi)容寫入FLASH */
WriteFlash(iFlashAddr,*pTemp);
iFlashAddr++; } /* 中斷向量表長度 */
WriteFlash(iFlashAddr,0x0080);
iFlashAddr++; /* 中斷向量表裝載地址 */
WriteFlash(iFlashAddr,0x0000);
iFlashAddr++;
WriteFlash(iFlashAddr,0x0080);
iFlashAddr++;
for (iLoop=0;iLoop<0x0080;iLoop++) { /* 從程序空間讀數(shù)據(jù),放到暫存單元 */
asm(" pshm al");
asm(" pshm ah");
asm(" rsbx cpl");
asm(" ld #00fch,dp");
asm(" stm #0000h, ah");
asm(" MVDM _iLoop, al");
asm(" add #0080h,0,a");
asm(" reada 0h");
asm(" popm ah");
asm(" popm al");
asm(" ssbx cpl"); /* 把暫存單元內(nèi)容寫入FLASH */
WriteFlash(iFlashAddr,*pTemp);
iFlashAddr++;
} /* 寫入引導(dǎo)表結(jié)束標(biāo)志 */
WriteFlash(iFlashAddr,0x0000);
iFlashAddr++;
WriteFlash(iFlashAddr,0x0000); /* 在數(shù)據(jù)空間的0xFFFF寫入引導(dǎo)表起始地址 */
iFlashAddr=0xffff;
WriteFlash(iFlashAddr,0x8000);


6.cmd文件
由3部分組成:
1)輸入/輸出定義:.obj文件:鏈接器要鏈接的目標(biāo)文件;.lib文件:鏈接器要鏈接的庫文件;.map文件:鏈接器生成的交叉索引文件;.out文件:鏈接器生成的可執(zhí)行代碼;鏈接器選項(xiàng)
2)MEMORY命令:描述系統(tǒng)實(shí)際的硬件資源
3)SECTIONS命令:描述“段”如何定位

為什么要設(shè)計(jì)CSL?
1,DSP片上外設(shè)種類及其應(yīng)用日趨復(fù)雜
2,提供一組標(biāo)準(zhǔn)的方法用于訪問和控制片上外設(shè)
3,免除用戶編寫配置和控制片上外設(shè)所必需的定義和代碼

什么是CSL?
1,用于配置、控制和管理DSP片上外設(shè)
2,已為C6000和C5000系列DSP設(shè)計(jì)了各自的CSL庫
3,CSL庫函數(shù)大多數(shù)是用C語言編寫的,并已對代碼的大小和速度進(jìn)行了優(yōu)化
4,CSL庫是可裁剪的:即只有被使用的CSL模塊才會包含進(jìn)應(yīng)用程序中
5,CSL庫是可擴(kuò)展的:每個片上外設(shè)的API相互獨(dú)立,增加新的API,對其他片上外設(shè)沒有影響

CSL的特點(diǎn)
1,片上外設(shè)編程的標(biāo)準(zhǔn)協(xié)議:定義一組標(biāo)準(zhǔn)的APIs:函數(shù)、數(shù)據(jù)類型、宏;
2,對硬件進(jìn)行抽象,提取符號化的片上外設(shè)描述:定義一組宏,用于訪問和建立寄存器及其域值
3,基本的資源管理:對多資源的片上外設(shè)進(jìn)行管理;
4,已集成到DSP/BIOS中:通過圖形用戶接口GUI對CSL進(jìn)行配置;
5,使片上外設(shè)容易使用:縮短開發(fā)時間,增加可移植.

為什么需要電平變換?
1) DSP系統(tǒng)中難免存在5V/3.3V混合供電現(xiàn)象;
2)I/O為3.3V供電的DSP,其輸入信號電平不允許超過電源電壓3.3V;
3)5V器件輸出信號高電平可達(dá)4.4V;
4)長時間超常工作會損壞DSP器件;
5)輸出信號電平一般無需變換

電平變換的方法
1,總線收發(fā)器(Bus Transceiver):
常用器件: SN74LVTH245A(8位)、SN74LVTH16245A(16位)
特點(diǎn):3.3V供電,需進(jìn)行方向控制,
延遲:3.5ns,驅(qū)動:-32/64mA,
輸入容限:5V
應(yīng)用:數(shù)據(jù)、地址和控制總線的驅(qū)動
2,總線開關(guān)(Bus Switch)
常用器件:SN74CBTD3384(10位)、SN74CBTD16210(20位)
特點(diǎn):5V供電,無需方向控制
延遲:0.25ns,驅(qū)動能力不增加
應(yīng)用:適用于信號方向靈活、且負(fù)載單一的應(yīng)用,如McBSP等外設(shè)信號的電平變換
3,2選1切換器(1 of 2 Multiplexer)
常用器件:SN74CBT3257(4位)、SN74CBT16292(12位)
特點(diǎn):實(shí)現(xiàn)2選1,5V供電,無需方向控制
延遲:0.25ns,驅(qū)動能力不增加
應(yīng)用:適用于多路切換信號、且要進(jìn)行電平變換的應(yīng)用,如雙路復(fù)用的McBSP
4,CPLD
3.3V供電,但輸入容限為5V,并且延遲較大:>7ns,適用于少量的對延遲要求不高的輸入信號
5,電阻分壓
10KΩ和20KΩ串聯(lián)分壓,5V×20÷(10+20)≈3.3V

未用的輸入/輸出引腳的處理
1,未用的輸入引腳不能懸空不接,而應(yīng)將它們上拉活下拉為固定的電平
1)關(guān)鍵的控制輸入引腳,如Ready、Hold等,應(yīng)固定接為適當(dāng)?shù)臓顟B(tài),Ready引腳應(yīng)固定接為有效狀態(tài),Hold引腳應(yīng)固定接為無效狀態(tài)
2)無連接(NC)和保留(RSV)引腳,NC 引腳:除非特殊說明,這些引腳懸空不接,RSV引腳:應(yīng)根據(jù)數(shù)據(jù)手冊具體決定接還是不接
3)非關(guān)鍵的輸入引腳,將它們上拉或下拉為固定的電平,以降低功耗
2,未用的輸出引腳可以懸空不接
3,未用的I/O引腳:如果確省狀態(tài)為輸入引腳,則作為非關(guān)鍵的輸入引腳處理,上拉或下拉為固定的電平;如果確省狀態(tài)為輸出引腳,則可以懸空不接

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉