dsp技術及應用課后習題答案(2)
dsp技術及應用第三章
1. C55x DSP支持哪三種尋址模式?
答:C55x DSP支持三種尋址模式,絕對尋址模式;直接尋址模式;間接尋址模式。
2.簡述k16絕對尋址和k23絕對尋址不同點和相同點。
答:不同k16絕對尋址的指令其操作數為*abs16(#k16),其中k16是一個16位的無符號常數。尋址方法是將7位的寄存器DPH(擴展數據頁指針XDP的高位部分)和k16級聯形成一個23位的地址,用于對數據空間的訪問。該模式可以訪問一個存儲單元和一個存儲映射寄存器。
和k23絕對尋址的指令其操作數為*(#k23),其中k23是一個23位的無符號常數。使用這種尋址方法的指令將常數編碼為3字節(jié)(去掉最高位)。
相同點:k16絕對尋址和k23絕對尋址的指令不能與其他指令并行執(zhí)行。
3.簡述C55x DSP并行指令遵守的規(guī)則。
答:在并行指令中,必須遵守三條基本規(guī)則:
?、?兩條指令的總長度不能超過6個字節(jié)。
② 在指令的執(zhí)行過程中不存在操作器、地址產生單元、總線等資源沖突。
?、?其中一條指令必須有并行使能位或兩條指令符合軟-雙并行條件。
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,根據下表的情況
B branch
執(zhí)行上面指令后,PC和AC0分別是多少?
答:Before After
PC 004042 PC 006047
AC0 00 0000 0001 AC0 00 0000 0000
dsp技術及應用第四章
1.根據任務調度的方式不同,C55x處理器程序可以分為哪兩類?并簡述其優(yōu)缺點。
答:一類是由程序自己完成任務調度,另一類是由嵌入式操作系統(tǒng)完成任務調度。
由程序自身完成任務調度程序運行效率高,對硬件中斷響應快,程序運行穩(wěn)定,適合于任務較為單一,實時性較強的應用;嵌入式操作系統(tǒng)完成任務調度,可以將應用分解為多個任務,簡化了應用系統(tǒng)軟件設計,更為重要的是良好的多任務設計有助于提高系統(tǒng)的穩(wěn)定性和可靠性。
2.請利用指針將IO空間中地址從0x100到0x107中的值放置到數據空間*ptr指針當中。
答: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級優(yōu)化情況下,利用中斷讀取0x100000地址,并將值存放到變量in_flag中。 答:變量in_flag定義
volatile unsigned int in_flag;
中斷服務程序
interrupt void int_handler()
{
In_flag= (unsigned int *)0x100000;
}
4.在C語言編寫的程序中,分別給出利用C語言和嵌套匯編語言打開全局中斷的程序代碼。 答:C語言打開全局中斷
IRQ_globalEnable();
嵌套匯編語言打開全局中斷
asm (“BCLR ST1_INTM”);
5.給出函數int fn(long l1, long l2, long l3, int *p4, int *p5, int *p6, int *p7, int *p8, int i9, int i10)中傳送參數所使用的寄存器。
答:輸入參數通過AC0、AC1、AC2、AR0、AR1、AR2、AR3、AR4、T0、T1傳遞,輸出參數通過T0傳送參數。
6.在.sine數據段中定義一個16點的正弦表,其數值采用Q15方式存放。(Q15即小數點在第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分別預留10、20、5個字的空間。
答:
.def _a
.def _b
.def _c
.sect mydata
_a:
.space 10*16 ;
_b:
.space 20*16 ;
_c:
.space 5*16 ;
8.請給出調用圖像和視頻處理庫所需要的.h文件和.lib文件。
答:調用圖像和視頻處理庫需要需要包含imagelib.h文件,如過采用小模式編程需要55ximage.lib,而采用大模式編程需要55ximagex.lib庫。
