DSP56800開發(fā)軟件包SDK使用經(jīng)驗點滴
發(fā)布時間:2007/4/23 0:00:00 訪問次數(shù):531
Motorola的SDK(Soft wareDevelopment Kit)是從DSP56800的Metrowerks CodeWarrior開發(fā)工具中發(fā)展而來的,SDK是一個API(Application Prograrmming Inter—face)、庫、服務(wù)、規(guī)則的集合體。它為DSP56800系列芯片的開發(fā)應(yīng)用提供了一個很好的平臺,使得開發(fā)者可以脫離硬件的束縛,在軟件仿真的環(huán)境下進行開發(fā),縮短產(chǎn)品進入市場的周期。SDK使得開發(fā)者對設(shè)備的操作就象對文件的操作一樣,非常方便。
下面是筆者在開發(fā)應(yīng)用DSP56F807芯片過程中使用SDK對其開發(fā)操作的一點經(jīng)驗。
1 對SDK中API函數(shù)的總體認識
使用API函數(shù)對片上集成模塊進行操作時一般會經(jīng)過以下過程。
①在初始化配置文件appconfig.h中設(shè)置設(shè)備初始化的一些參數(shù),這些參數(shù)的設(shè)定會影響片上設(shè)備的操作,甚至影響設(shè)備是否能夠成功打開返回正確的設(shè)備句柄。
②打開所要操作的設(shè)備,獲得返回的設(shè)備句柄,供進一步的操作使用。
③根據(jù)設(shè)備句柄,對設(shè)備進行操作。
④關(guān)閉設(shè)備。
不管對哪些片上設(shè)備進行操作,都將經(jīng)過上面的幾個步驟。下面介紹主要使用的API函數(shù)。
(1)open函數(shù)
open(參數(shù)1,參數(shù)2,參數(shù)3)。
參數(shù)1是由SDK定義的設(shè)備名稱,如:BSP—DEVICE—NAME—ADC_O即片上集成的模數(shù)轉(zhuǎn)換模塊。實際上,這一串字符是有含義的,在SDK的頭文件中有一個稱做bsp.h的頭文件,在這里面定義了各個片上模塊的名稱,所以會以BSP—DEVICE—NAME打頭,當然這不是絕對的,開發(fā)人員也可以定義自己的bsp.h文件,定義自己的設(shè)備名。參數(shù)2標識打開設(shè)備是只讀、只寫還是讀寫。參數(shù)3就是開發(fā)人員定義的初始化參數(shù)的數(shù)組名,對有些需要初始化的設(shè)備,需要有專門的數(shù)組來存儲初始化的參數(shù)。
open函數(shù)的作用是打開片上的設(shè)備,當打開片上集成設(shè)備成功的話,將返回一個正數(shù),相反將返回“一1”。一般來說,如果設(shè)備打開不成功,最大的可能是由于初始化的參數(shù)不正確。對于集成有A/D模塊的芯片來說,剛開始使用的時候是會犯這種錯誤的。0pen函數(shù)最終會返回打開設(shè)備的句柄供下面的操作使用。
(2)ioctl函數(shù)
ioctl(參數(shù)1,參數(shù)2,參數(shù)3)。
參數(shù)1是open函數(shù)返回的打開設(shè)備的句柄。參數(shù)2是SDK定義的改變設(shè)備屬性的參數(shù),即是對設(shè)備進行操作的參數(shù)。參數(shù)3是在改變設(shè)備過程中需要的一些參數(shù)。
ioctl函數(shù)是SDK中最為重要的函數(shù)之一,它通過對參數(shù)2的設(shè)定來改變設(shè)備的屬性,從而對設(shè)備進行操作。表1通過對A/D操作命令的說明(即參數(shù)2),可以看出這個函數(shù)的作用。
由上面可以看出,通過使用這樣的API函數(shù)可以非常方便的對片上的設(shè)備進行操作,避免了對大量寄存器的煩人操作,大大加快了開發(fā)的速度,減輕了程序員的負擔。
(3)close函數(shù)
close(參數(shù)1)
參數(shù)1是open函數(shù)返回的打開設(shè)備的句柄。
close函數(shù)較為簡單,就是將已經(jīng)打開的設(shè)備關(guān)閉。
上面是在SDK中最為常用的函數(shù),在使用SDK的過程中也有可能會遇到和上面功能相同,但表達式不相同的函數(shù)。
2 對片上集成模塊操作的注意事項
2.1 對GPlO口操作
對GPIO口的操作除按照用戶手冊和SDK上的API函數(shù)說明外,還應(yīng)當特別注意對GPl0一X—PER(其中的X代表的是GPl0的A,B,D,E中的任何一組)進行初始化操作,即將要操作的對應(yīng)位置零?梢杂孟旅娴恼Z句,bf—clr#$0004,X:GPIO A PER。
另外,還必須包括名為56807.h的頭文件,因為GPIO一A_PER寄存器的名稱就是在這里定義的,當然也可以使用SDK中定義的函數(shù)進行初始化。
如果在對GPIO口的操作前不對這個寄存器進行上述初始化,則GPIO口是無法對外進行正常操作的。
2.2 對ADC的操作
對ADC的操作主要是在它初始化載入?yún)?shù)時進行的。如果參數(shù)在初始化時設(shè)置不對,就很有可能連設(shè)備都不能成功打開。下面舉例來說明在設(shè)置ADC參數(shù)時應(yīng)當注意的地方。
在DSP56F807上集成有2個模數(shù)轉(zhuǎn)換器,模數(shù)轉(zhuǎn)換器包括8個輸入通道和2個獨立的采樣保持電路,轉(zhuǎn)換精度為12位。比較可貴的地方是,在每個模數(shù)轉(zhuǎn)換器的8個輸入通道中有2個通道是可以同時采樣的,這對有些需要2個信號量在同一時間值下采樣(比如同一時刻的電壓電流值)的情況是非常有用的。ADC的初始化設(shè)置參數(shù)用了一個名為adol_sState的數(shù)組來表示。
在上面的參數(shù)中,第一個參數(shù)的含義是需要進行操作的模數(shù)轉(zhuǎn)換通道。第二個參數(shù)比較重要,當時按照Mo—torola的幫助文檔給出的例子進行設(shè)置,結(jié)果A/D始終無法成功的打開,后來發(fā)覺第二個參數(shù)要參照第一個參數(shù)的值來設(shè)置,參數(shù)2等于2的打開通道數(shù)的次方,如表2所列。
筆者試過如果使用這個函數(shù)而不按表2設(shè)置參數(shù),A/D將無法打開。
Motorola的SDK(Soft wareDevelopment Kit)是從DSP56800的Metrowerks CodeWarrior開發(fā)工具中發(fā)展而來的,SDK是一個API(Application Prograrmming Inter—face)、庫、服務(wù)、規(guī)則的集合體。它為DSP56800系列芯片的開發(fā)應(yīng)用提供了一個很好的平臺,使得開發(fā)者可以脫離硬件的束縛,在軟件仿真的環(huán)境下進行開發(fā),縮短產(chǎn)品進入市場的周期。SDK使得開發(fā)者對設(shè)備的操作就象對文件的操作一樣,非常方便。
下面是筆者在開發(fā)應(yīng)用DSP56F807芯片過程中使用SDK對其開發(fā)操作的一點經(jīng)驗。
1 對SDK中API函數(shù)的總體認識
使用API函數(shù)對片上集成模塊進行操作時一般會經(jīng)過以下過程。
①在初始化配置文件appconfig.h中設(shè)置設(shè)備初始化的一些參數(shù),這些參數(shù)的設(shè)定會影響片上設(shè)備的操作,甚至影響設(shè)備是否能夠成功打開返回正確的設(shè)備句柄。
②打開所要操作的設(shè)備,獲得返回的設(shè)備句柄,供進一步的操作使用。
③根據(jù)設(shè)備句柄,對設(shè)備進行操作。
④關(guān)閉設(shè)備。
不管對哪些片上設(shè)備進行操作,都將經(jīng)過上面的幾個步驟。下面介紹主要使用的API函數(shù)。
(1)open函數(shù)
open(參數(shù)1,參數(shù)2,參數(shù)3)。
參數(shù)1是由SDK定義的設(shè)備名稱,如:BSP—DEVICE—NAME—ADC_O即片上集成的模數(shù)轉(zhuǎn)換模塊。實際上,這一串字符是有含義的,在SDK的頭文件中有一個稱做bsp.h的頭文件,在這里面定義了各個片上模塊的名稱,所以會以BSP—DEVICE—NAME打頭,當然這不是絕對的,開發(fā)人員也可以定義自己的bsp.h文件,定義自己的設(shè)備名。參數(shù)2標識打開設(shè)備是只讀、只寫還是讀寫。參數(shù)3就是開發(fā)人員定義的初始化參數(shù)的數(shù)組名,對有些需要初始化的設(shè)備,需要有專門的數(shù)組來存儲初始化的參數(shù)。
open函數(shù)的作用是打開片上的設(shè)備,當打開片上集成設(shè)備成功的話,將返回一個正數(shù),相反將返回“一1”。一般來說,如果設(shè)備打開不成功,最大的可能是由于初始化的參數(shù)不正確。對于集成有A/D模塊的芯片來說,剛開始使用的時候是會犯這種錯誤的。0pen函數(shù)最終會返回打開設(shè)備的句柄供下面的操作使用。
(2)ioctl函數(shù)
ioctl(參數(shù)1,參數(shù)2,參數(shù)3)。
參數(shù)1是open函數(shù)返回的打開設(shè)備的句柄。參數(shù)2是SDK定義的改變設(shè)備屬性的參數(shù),即是對設(shè)備進行操作的參數(shù)。參數(shù)3是在改變設(shè)備過程中需要的一些參數(shù)。
ioctl函數(shù)是SDK中最為重要的函數(shù)之一,它通過對參數(shù)2的設(shè)定來改變設(shè)備的屬性,從而對設(shè)備進行操作。表1通過對A/D操作命令的說明(即參數(shù)2),可以看出這個函數(shù)的作用。
由上面可以看出,通過使用這樣的API函數(shù)可以非常方便的對片上的設(shè)備進行操作,避免了對大量寄存器的煩人操作,大大加快了開發(fā)的速度,減輕了程序員的負擔。
(3)close函數(shù)
close(參數(shù)1)
參數(shù)1是open函數(shù)返回的打開設(shè)備的句柄。
close函數(shù)較為簡單,就是將已經(jīng)打開的設(shè)備關(guān)閉。
上面是在SDK中最為常用的函數(shù),在使用SDK的過程中也有可能會遇到和上面功能相同,但表達式不相同的函數(shù)。
2 對片上集成模塊操作的注意事項
2.1 對GPlO口操作
對GPIO口的操作除按照用戶手冊和SDK上的API函數(shù)說明外,還應(yīng)當特別注意對GPl0一X—PER(其中的X代表的是GPl0的A,B,D,E中的任何一組)進行初始化操作,即將要操作的對應(yīng)位置零?梢杂孟旅娴恼Z句,bf—clr#$0004,X:GPIO A PER。
另外,還必須包括名為56807.h的頭文件,因為GPIO一A_PER寄存器的名稱就是在這里定義的,當然也可以使用SDK中定義的函數(shù)進行初始化。
如果在對GPIO口的操作前不對這個寄存器進行上述初始化,則GPIO口是無法對外進行正常操作的。
2.2 對ADC的操作
對ADC的操作主要是在它初始化載入?yún)?shù)時進行的。如果參數(shù)在初始化時設(shè)置不對,就很有可能連設(shè)備都不能成功打開。下面舉例來說明在設(shè)置ADC參數(shù)時應(yīng)當注意的地方。
在DSP56F807上集成有2個模數(shù)轉(zhuǎn)換器,模數(shù)轉(zhuǎn)換器包括8個輸入通道和2個獨立的采樣保持電路,轉(zhuǎn)換精度為12位。比較可貴的地方是,在每個模數(shù)轉(zhuǎn)換器的8個輸入通道中有2個通道是可以同時采樣的,這對有些需要2個信號量在同一時間值下采樣(比如同一時刻的電壓電流值)的情況是非常有用的。ADC的初始化設(shè)置參數(shù)用了一個名為adol_sState的數(shù)組來表示。
在上面的參數(shù)中,第一個參數(shù)的含義是需要進行操作的模數(shù)轉(zhuǎn)換通道。第二個參數(shù)比較重要,當時按照Mo—torola的幫助文檔給出的例子進行設(shè)置,結(jié)果A/D始終無法成功的打開,后來發(fā)覺第二個參數(shù)要參照第一個參數(shù)的值來設(shè)置,參數(shù)2等于2的打開通道數(shù)的次方,如表2所列。
筆者試過如果使用這個函數(shù)而不按表2設(shè)置參數(shù),A/D將無法打開。
熱門點擊
- 為音頻設(shè)備提供高性能的低通30kHz貝塞爾濾
- 帶RF輸出的全數(shù)字調(diào)制器設(shè)計
- DSP基條碼掃描器
- TMS320VC33并行自舉的兩種巧妙實現(xiàn)方
- 支持以太網(wǎng)寬帶接入的IP機頂盒解決方案
- 基于ARM的MPEG4視頻解碼器
- 外掛Flash的TMS320VC5409引導
- 基于DSP的雷達視頻信號數(shù)字采集與檢測
- 基于XC166單片機的DSP優(yōu)化方法
- VINETIC語音處理器在VoIP解決方案中
推薦技術(shù)資料
- 業(yè)余條件下PCM2702
- PGM2702采用SSOP28封裝,引腳小而密,EP3... [詳細]
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究