當前位置:學問君>人在職場>IT認證>

2017年嵌入式系統題庫

學問君 人氣:1.08W

嵌入式系統的核心是由一個或幾個預先編程好以用來執行少數幾項任務的微處理器或者單片機組成。下面是小編收集的嵌入式系統題庫,希望大家認真閱讀!

1:用C語言實現大小端的測試

Int CheckCpu()

{

union

{

int a;

char b;

}c;

c.a=1;

if(c.b==1)

printf(“小端”);

else printf(“大端”);

}

2:volatile的作用有哪些?

Volatile第一變量相當於告訴編譯器這個變量的值會隨時發生變化,每次使用之前都要去內存裏從新讀取它的值,並不要隨意針對它做優化,主要用在:

1:一箇中斷子程序中會訪問到的非自動變量;

2:多線程應用中被幾個線程共享的變量;

3:並行設備的硬件寄存器。

3:C語言中static關鍵字的作用有哪些?

1:在函數體中,一個被聲明爲靜態的變量在這個變量在調用過程中維持其值不變;

2:在模組內(但在函數體外),一個被聲明爲靜態的變量,可以被這個模組內的所用函數使用,但不能被模組外的函數使用,它是一個本地的全局變量;

3:在模組內,一個被聲明爲靜態變量的函數,智能被這個模組內的函數調用;

4:static全局變量與局部變量的'區別:static全局變量只能被初始化一次,防止其他單元檔案中被引用;

5:static局部變量與局部變量的區別:static局部變量只能被初始化一次,下一次依據上一次結果的值;

6:static函數與普通函數的區別:static在內存中只用一份,普通函數在每一次調用中維持一份拷貝。

4:請問下面三種變量的區別:

Int const *p : 指向常整型的指針;

Int *const p; 指向整型的常指針;

Int *const *p: 指向常整型的常指針;

5:在ARM系統中,在函數調用的時候,參數是透過哪種方式傳遞的。

當參數小於等於4的時候是透過r0~r3來進行傳遞的,當參數大於4的時候是透過壓棧的方式進行傳遞。

6:中斷與異常有何區別.

異常在處理的時候必須考慮與處理器的時鐘同步,實際上異常也稱爲同步中斷,在處理器執行到因編譯錯誤而導致的錯誤指令時,或者在執行期間出現特殊錯誤,必須靠內核處理的時候,處理器就會產生一個異常;所謂中斷是指外部硬件產生的一個電信號從CPU的中斷引腳進入,打斷CPU的執行。所謂異常是指軟件執行過程中發生了一些必須作出處理的事件,CPU自動產生一個陷入來打斷CPU的執行。

7:用預處理指令#define表示一年中有多少秒

#define SECONDS_PER_YEAR (60*60*24*365)UL

注意後面必須加UL,表示計算的結構是常整型。

8:簡述SPI,UART,I2C三種傳輸方式。

SPI:高速同步串行口,首發獨立,可同步進行

SPI接口主要應用在EEPROM,Flash,實時時鐘,A/D轉化器,數字信號處理,是一種全雙工同步通訊總線,該接口一般使用四條線:串行時鐘線(sck),主出從入線,主入從出線,低電平有效地的從機選擇線。

I2C協議:是單片機與其他芯片進行通訊的協議:1:只要求兩條總線線路,一條是串行時鐘線,一條是串行數據線; 2:透過軟件設定地址 3:是一個多主機總線,如果兩個或更多主機同時初始化數據傳送可透過衝突檢測和仲裁防止數據破壞; 4:I2C總線傳輸的是數據的總高位

UART:主要是由一個modem(調制解調器),可以將模擬信號量轉化成數字信號量。

9:中斷不能返回一個值,中斷不能傳遞參數。

10:嵌入式系統總要求用戶對變量或者寄存器進行位操作,給定一個整型變量a:

define BIT3 (oxo1<<3)

static int a ;

void set_bit3(void)

{

a|=BIT3;

}

void clear_bit3(void)

{

a&=~BIT3;

}

作爲一個嵌入式程序員,這種程序是小菜一碟,至所以給出這個程序,是想規範大家寫程序方法,這裏主要是用到了一個宏定義:BIT3 這樣的話就可以增加程序的可讀性

同時移植性也增強。

11:嵌入式系統中經常要求程序去訪問某特定內存的特點,在某工程中,要求設定一個絕對地址0x6799的整型變量的值爲0xaa66.

Int *ptr;

ptr=(int*)0x67a9;

*ptr=aa66

12:引用和指針有什麼區別?

1:應用必須初始化,指針不必;

2:引用處畫化後不能改變,指針可以被改變;

3:不存在指向空值的引用,但存在指向空值的指針;

13:全局變量與局部變量在內存中是否有區別,是什麼區別?

全局變量存儲在靜態數據庫,局部變量存儲在堆棧;

14:寫出float,bool,int類型與零的比較,假設變量爲X:

Int : if(x==0)

Float: if(x>0.0000001&&x<0.0000001)

Bool: if(x==false)

15:Intertnet採用哪種網絡協議,該協議的主要層次結構?

TCP/IP協議

應用層/傳輸層/網絡層/數字鏈路層/物理層。

16:IP位址有兩部分組成:網絡號和主機號

17:程序的局部變量存儲在(棧)中,全局變量存儲於(靜態存儲區),動態申請數據存儲於(堆中);

18:編寫一個字元串複製函數:strcpy(const char *str,const char *str1)

void strcpy(const *char str,const chat *str1)

{

if(*str1==’