當前位置:股票大全官網 - 股票投資 - 想應聘烽火科技,想問下壹般筆試面試都考壹些什麽內容,謝謝~~硬件研發類

想應聘烽火科技,想問下壹般筆試面試都考壹些什麽內容,謝謝~~硬件研發類

我筆試的是DSP工程師。卷子只有壹張紙,正反兩頁。壹***10道題。答案作答在給的空白的紙上。

1.定點DSP芯片和浮點DSP芯片是什麽?有什麽優缺點?

定點DSP和浮點DSP主要是按DSP工作時的數據格式來區分的。數據以定點格式工作的DSP是定點DSP,數據以浮點格式工作的DSP是浮點DSP。浮點DSP能進行浮點運算,壹次完成,由硬件實現。定點DSP無法直接進行浮點運算,完成浮點運算需要借助程序來實現。

優點:浮點DSP比定點DSP 的運算範圍要大。浮點DSP 的尋址範圍也大些。浮點DSP的精度大些。浮點運算速度大。

缺點:定點DSP需要時刻註意運算的溢出。精度不夠,定點DSP運算速度慢。

2.DSP和通用CPU的最大區別是什麽?有什麽***同點?

(1)首先是體系結構:CPU是馮.諾伊曼結構的,而DSP有分開的代碼和數據總線即“哈佛結構”。

(2) 標準化和通用性:CPU的標準化和通用性做得很好,支持操作系統,所以以CPU為核心的系統方便人機交互以及和標準接口設備通信,非常方便而且不需要硬件開發了;但這也使得CPU外設接口電路比較復雜,DSP主要還是用來開發嵌入式的信號處理系統了,不強調人機交互,壹般不需要很多通信接口,因此結構也較為簡單,便於開發。如果只是著眼於嵌入式應用的話,嵌入式CPU和DSP的區別應該只在於壹個偏重控制壹個偏重運算了。

(3)流水線結構:大多數DSP都擁有流水結構,即每條指令都由片內多個功能單元分別完成取指、譯碼、取數、執行等步驟,這樣可以大大提高系統的執行效率。但流水線的采用也增加了軟件設計的難度,要求設計者在程序設計中考慮流水的需要。

快速乘法器:信號處理算法往往大量用到乘加(multiply-accumulate,MAC)運算。DSP有專用的硬件乘法器,它可以在壹個時鐘周期內完成MAC運算。硬件乘法器占用了DSP芯片面積的很大壹部分。(與之相反,通用CPU采用壹種較慢的、叠代的乘法技術,它可以在多個時鐘周期內完成壹次乘法運算,但是占用了較少了矽片資源)。

地址發生器:DSP有專用的硬件地址發生單元,這樣它可以支持許多信號處理算法所要求的特定數據地址模式。這包括前(後)增(減)、環狀數據緩沖的模地址以及FFT的比特倒置地址。地址發生器單元與主ALU和乘法器並行工作,這就進壹步增加了DSP可以在壹個時鐘周期內可以完成的工作量。

硬件輔助循環:信號處理算法常常需要執行緊密的指令循環。對硬件輔助循環的支持,可以讓DSP高效的循環執行代碼塊而無需讓流水線停轉或者讓軟件來測試循環終止條件。

3.占先式系統和非占先式系統有什麽區別?DSP/BIOS 和ucOSⅡ是哪壹種?

占先式,當前任務運行中如果有優先級更高的任務進入就緒態,當前任務立即將CPU交給優先級更高的任務。

非占先式:等當前任務執行完後再交給優先級更高的任務。

DSP/BIOS,ucOSII是占先式的操作系統。

4.說壹下對DSP MAP的認識。

MAP文件是CCS軟件編譯後產生的有關DSP用到所有程序、數據及IO空間的壹種映射文件。

壹、生成方法

MAP文件主要有兩種生成方法,壹種是由系統自動生成,默認文件名為所建立的項目名(如XXX為項目名)加上.map後綴xxx.map,另壹種在CMD文件中指定生成MAP文件,操作方法為在MEMORY指令前面加上“-m abc.map”,文件名可以任意。

二、文件格式

MAP文件大概分為文件頭、內存配置、段映射、全局符號四部分。內存配置與CMD文件中的MEMORY指令關聯,在CMD文件中定義的程序與數據區間定義,在該部分均可以找到對應,與CMD文件不同的時,在MAP文件中加入了壹個實際使用的區間,即在程序中實際用到的空間長度。段映射部分與CMD文件中的SECTION指令關聯,在該部分程序中所有的段實際映射的起始地址與實際長度均有詳細說明。可以具體到程序中PROGMA指定的段和各個單獨文件產生的OBJ文件。全局符號可以是程序使用的每壹個函數、程序中定義的全局變量均可以在此找到對應的起始地址。MAP文件中采用兩種方式列舉,壹種為按相應地址排列,另壹種按全局符號字母排列。

5.簡單的程序題。看程序,寫出輸出見過,用C寫的。

6. -7和10的16位二進制補碼是什麽? 寫出Q15 0.25和Q15 0.5

⑴正數的補碼  與原碼相同。

⑵負數的補碼  負數的補碼是對其原碼逐位取反,但符號位除外;然後整個數加1。

-7轉換成二進制原碼是1000000000000111,反碼是1111111111111000,補碼是反碼+1=1111111111111001

10的二進制原碼是0000000000001010,是正數,補碼和原碼壹樣

DSP芯片的數以2的補碼形式表示。每個16位數用壹個符號位來表示數的正負,0表示數值為正,l則表示數值為負。其余15位表示數值的大小。

如,二進制數0010000000000011b=8195

二進制數1111111111111100b= -4

數的定標有Q表示法和S表示法兩種。

不同的Q所表示的數不僅範圍不同,而且精度也不相同。Q越大,數值範圍越小,但精度越高;

如,16進制數2000H=8192,用Q0表示

16進制數2000H=0.25,用Q15表示

7.說壹下DSP開發的主要步驟。

8.寫出strcpy的函數原型。

char* strcpy(char *strDest,const char * strSrc)

{

}

9.寫出創建單鏈表的函數。

struct stu_info{

int x;

struct stu_info *next;

};

void inputstuinfo(struct stu_info**head,int n)

{

}

10. 對壹個字符串進行重新排列,使字母在前,數字在後,並且字母和數字的相對位置不變。

include<stdio.h>

include<string.h>

include<stdlib.h>

函數名:fun

參數: char*s,int *m

函數返回值:chLetter(數組chLetter[N]的數組名)

局部變量:char chLetter[N]; char chNumber[N]; int i,j,k;

char *fun(char*s,int *m)

{