dsp技術(shù)及應(yīng)用課后習(xí)題答案(2)
dsp技術(shù)及應(yīng)用第三章
1. C55x DSP支持哪三種尋址模式?
答:C55x DSP支持三種尋址模式,絕對(duì)尋址模式;直接尋址模式;間接尋址模式。
2.簡(jiǎn)述k16絕對(duì)尋址和k23絕對(duì)尋址不同點(diǎn)和相同點(diǎn)。
答:不同k16絕對(duì)尋址的指令其操作數(shù)為*abs16(#k16),其中k16是一個(gè)16位的無(wú)符號(hào)常數(shù)。尋址方法是將7位的寄存器DPH(擴(kuò)展數(shù)據(jù)頁(yè)指針XDP的高位部分)和k16級(jí)聯(lián)形成一個(gè)23位的地址,用于對(duì)數(shù)據(jù)空間的訪問(wèn)。該模式可以訪問(wèn)一個(gè)存儲(chǔ)單元和一個(gè)存儲(chǔ)映射寄存器。
和k23絕對(duì)尋址的指令其操作數(shù)為*(#k23),其中k23是一個(gè)23位的無(wú)符號(hào)常數(shù)。使用這種尋址方法的指令將常數(shù)編碼為3字節(jié)(去掉最高位)。
相同點(diǎn):k16絕對(duì)尋址和k23絕對(duì)尋址的指令不能與其他指令并行執(zhí)行。
3.簡(jiǎn)述C55x DSP并行指令遵守的規(guī)則。
答:在并行指令中,必須遵守三條基本規(guī)則:
?、?兩條指令的總長(zhǎng)度不能超過(guò)6個(gè)字節(jié)。
?、?在指令的執(zhí)行過(guò)程中不存在操作器、地址產(chǎn)生單元、總線等資源沖突。
?、?其中一條指令必須有并行使能位或兩條指令符合軟-雙并行條件。
4. 已知AC1=0200FC00H,AR3=0200H,(200)=3400H。
MOV *AR3+ << #16, AC1
執(zhí)行上面指令后,AC1和AR3的值分別是多少?
答:Before After
AC1 00 0200 FC00 AC1 00 3400 0000
AR3 0200 AR3 0201
200 3400 200 3400
5. 已知AC0=EC000000H,AC1=00000000H,AR1=0200H,(200)=3300H,TC2=1。ADDSUBCC AR1, AC0, TC2, AC1
執(zhí)行上面指令后,AC1、AR1和AC0的值分別是多少?
答:Before After
AC0 00 EC00 0000 AC0 00 EC00 0000
AC1 00 0000 0000 AC1 01 1F00 0000
AR1 0200 AR1 0200
200 3300 200 3300
TC2 1 TC2 1
SXMD 0 SXMD 0
M40 0 M40 0
ACOV1 0 ACOV1 1
CARRY 0 CARRY 1
6.已知AC0=69000000H,AC1=00230000H, AR1=EF00H,AR2=0201H, CDP=A067H。 執(zhí)行下面指令后,
AMAR *AR2+
:: MAC uns(*AR1), uns(*CDP), AC0 >> #16
AC0、 AR1、AR2和AC1的值分別是多少?
答:Before After
AC0 00 6900 0000 AC0 00 95C0 9200
AC1 00 0023 0000 AC1 00 0023 0000
*AR1 EF00 *AR1 EF00
AR2 0201 AR2 0202
*CDP A067 *CDP A067
ACOV0 0 ACOV0 1
ACOV1 0 ACOV1 0
CARRY 0 CARRY 0
M40 0 M40 0
FRCT 0 FRCT 0
SATD 0 SATD 0
7. 已知PC=004042H,AC0=0000000001H,根據(jù)下表的情況
B branch
執(zhí)行上面指令后,PC和AC0分別是多少?
答:Before After
PC 004042 PC 006047
AC0 00 0000 0001 AC0 00 0000 0000
dsp技術(shù)及應(yīng)用第四章
1.根據(jù)任務(wù)調(diào)度的方式不同,C55x處理器程序可以分為哪兩類?并簡(jiǎn)述其優(yōu)缺點(diǎn)。
答:一類是由程序自己完成任務(wù)調(diào)度,另一類是由嵌入式操作系統(tǒng)完成任務(wù)調(diào)度。
由程序自身完成任務(wù)調(diào)度程序運(yùn)行效率高,對(duì)硬件中斷響應(yīng)快,程序運(yùn)行穩(wěn)定,適合于任務(wù)較為單一,實(shí)時(shí)性較強(qiáng)的應(yīng)用;嵌入式操作系統(tǒng)完成任務(wù)調(diào)度,可以將應(yīng)用分解為多個(gè)任務(wù),簡(jiǎn)化了應(yīng)用系統(tǒng)軟件設(shè)計(jì),更為重要的是良好的多任務(wù)設(shè)計(jì)有助于提高系統(tǒng)的穩(wěn)定性和可靠性。
2.請(qǐng)利用指針將IO空間中地址從0x100到0x107中的值放置到數(shù)據(jù)空間*ptr指針當(dāng)中。
答:ioport int *a;
Int *ptr
void foo (void)
{
i = 0x100;
a = &i;
for(int j=0;j<=7;j++)
ptr [j]=a[j];
}
3.在o3級(jí)優(yōu)化情況下,利用中斷讀取0x100000地址,并將值存放到變量in_flag中。 答:變量in_flag定義
volatile unsigned int in_flag;
中斷服務(wù)程序
interrupt void int_handler()
{
In_flag= (unsigned int *)0x100000;
}
4.在C語(yǔ)言編寫的程序中,分別給出利用C語(yǔ)言和嵌套匯編語(yǔ)言打開(kāi)全局中斷的程序代碼。 答:C語(yǔ)言打開(kāi)全局中斷
IRQ_globalEnable();
嵌套匯編語(yǔ)言打開(kāi)全局中斷
asm (“BCLR ST1_INTM”);
5.給出函數(shù)int fn(long l1, long l2, long l3, int *p4, int *p5, int *p6, int *p7, int *p8, int i9, int i10)中傳送參數(shù)所使用的寄存器。
答:輸入?yún)?shù)通過(guò)AC0、AC1、AC2、AR0、AR1、AR2、AR3、AR4、T0、T1傳遞,輸出參數(shù)通過(guò)T0傳送參數(shù)。
6.在.sine數(shù)據(jù)段中定義一個(gè)16點(diǎn)的正弦表,其數(shù)值采用Q15方式存放。(Q15即小數(shù)點(diǎn)在第15位)
答:
.sina
.word 0, 12539,23170,30273
.word 32767, 30273,23170,12539
.word 0,-12539,-23170,-30273
.word -32767,-30273,-23170,-12539
7.在.mydata段中為a,b,c分別預(yù)留10、20、5個(gè)字的空間。
答:
.def _a
.def _b
.def _c
.sect mydata
_a:
.space 10*16 ;
_b:
.space 20*16 ;
_c:
.space 5*16 ;
8.請(qǐng)給出調(diào)用圖像和視頻處理庫(kù)所需要的.h文件和.lib文件。
答:調(diào)用圖像和視頻處理庫(kù)需要需要包含imagelib.h文件,如過(guò)采用小模式編程需要55ximage.lib,而采用大模式編程需要55ximagex.lib庫(kù)。
