小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

匯編筆記1

 venus85 2011-03-22

/* ======== volume.h ======== */
#ifndef __VOLUME_H
#define __VOLUME_H#ifndef TRUE
#define TRUE 1
#endif
#define BUFSIZE 0x64
#define FRAMESPERBUFFER 10
#define MINGAIN 1
#define MAXGAIN 10
#define MINCONTROL 0
#define MAXCONTROL 19
#define BASELOAD 1
#endif /* __VOLUME_H */
/*一些宏定義,定義了一些常量*/

#include <stdio.h>
#include "volume.h"

/*定義全局變量 */
int inp_buffer[BUFSIZE]; /* 設置輸入輸出數據緩沖區(qū) inp_buffer 和 out_buffer 大小為 0x64*/
int out_buffer[BUFSIZE];
int gain = MINGAIN; /* 增益設置,MINGAIN代表1,在volume.h中定義的 */
unsigned int processingLoad = BASELOAD; /*BASELOAD大小為1,也是在volume.h中定義的*/
extern void load(unsigned int loadvalue); /*該函數是一個匯編的處理函數,具體分析見后文*/
static int processing(int *input, int *output);
static void dataIO(void); /*定義了三個函數load、processing、dataIO*/

/* ======== main ======== */

void main()
{
int *input = &inp_buffer[0]; /*指針賦初值*/
int *output = &out_buffer[0];
puts("volume example started\n"); /*輸出一句話*/
/* 下面是一個無限循環(huán) */
while(TRUE)
{
/* 使用探測器來連接住機上的文件. */
dataIO(); /*調用dataIO函數,實際上,dataIO是一個空函數。*/
processing(input, output); /*調用processing函數*/
} /*dataIO是一個空函數,實際上主函數完成的是對processing函數的無限次調用。*/
}

/* ======== processing ======== *

對輸入信號進行數字信號處理變換.
參數:輸入輸出緩沖區(qū)的地址 */
static int processing(int *input, int *output) /*函數processing*/
{
int size = BUFSIZE;

while(size--){
*output++ = *input++ * gain;
} /*根據輸入信號和gain大小,對輸出信號進行賦值*/

/* load輔助程序*/
load(processingLoad);

return(TRUE);
}

/* ======== dataIO ======== *
讀入輸入信號,寫輸出信號 */
static void dataIO()
{
return;
}

;load函數,是一個保存在load.asm中的匯編函數。這里,就涉及到混編。DSP處理程序的一般形式在這里就看到了。過程的控制,使用C語言,利用高級語言較強的邏輯功能。處理的過程,則使用匯編語言,以提高處理速度,達到實時信號處理的要求。簡單介紹一下load函數,這里不講匯編語言的語言及其格式了,只說明一下這個函數的作用。該函數通過執(zhí)行N*loadvalue來模仿在DSP上的一個負載。

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多