當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式招聘 > 嵌入式面試題 > 嵌入式筆試題比較經(jīng)典題(拓盛電子)
今天我來(lái)分享一下一些嵌入式筆試題,這些是我在拓盛電子面試的時(shí)候做的,都是比較經(jīng)典的,可以收集看看,看看自己會(huì)不會(huì),為面試做準(zhǔn)備。
1. 寫(xiě)出函數(shù)執(zhí)行的結(jié)果:
void join(int x) //遞歸運(yùn)算
{
x++;
if(x>=7)return;
join(x);
printf("%d",x); //注意別漏掉這個(gè)打印信息!
}
int mian()
{
int x = 3,y = 0;
join(x);
printf("OK\n");
while(--x)
{
for(y = 0;y<4;y++)
{
printf("x = %d,y = %d\n",x,y);
if(y>=1)break;
else continue;
}
}
printf("over!");
}
2. 分析電路 根據(jù)輸入波形畫(huà)出輸出波形,并解釋
3.
4. 寫(xiě)出嵌入式中經(jīng)常使用的死循環(huán)有幾種
5. volatile 的含義,寫(xiě)出3中使用方式
6. 給定一整型變量a寫(xiě)兩段代碼:第一個(gè)設(shè)置a的bit3,第二個(gè)清除a的bit3
#define BIT3 (0x1<<3)
static int a;
void set_bit3(void)
{
a |= BIT3;
}
void clear_bit3(void)
{
a &= ~BIT3;
}
7. 某工程中要設(shè)置一個(gè)絕對(duì)地址為0x67a9整形變量值為0xaa66,編譯器是純ANSI編譯器。
8. 使用__interrupt定義一個(gè)ISR,評(píng)論代碼有什么不妥
__interrupt double compute_area (double radius)
{
double area = PI * radius * radius;
printf(" Area = %f", area);
return area;
}
1). ISR 不能返回一個(gè)值。如果你不懂這個(gè),那么你不會(huì)被雇用的。
2). ISR 不能傳遞參數(shù)。如果你沒(méi)有看到這一點(diǎn),你被雇用的機(jī)會(huì)等同第一項(xiàng)。
3). 在許多的處理器/編譯器中,浮點(diǎn)一般都是不可重入的。有些處理器/編譯器需要讓額處的寄存器入棧,有些處理器/編譯器就是不允許在ISR中做浮點(diǎn)運(yùn)算。此外,ISR應(yīng)該是短而有效率的,在ISR中做浮點(diǎn)運(yùn)算是不明智的。
4). 與第三點(diǎn)一脈相承,printf()經(jīng)常有重入和性能上的問(wèn)題。如果你丟掉了第三和第四點(diǎn),我不會(huì)太為難你的。不用說(shuō),如果你能得到后兩點(diǎn),那么你的被雇用前景越來(lái)越光明了。
不能傳參數(shù) 不能有返回值 不能有打印語(yǔ)句 不應(yīng)該使用浮點(diǎn)運(yùn)算
9. 利用heap動(dòng)態(tài)使用內(nèi)存的過(guò)程,碎片如何形成?
10. 信號(hào)量最常用的兩個(gè)功能
11. ulinux 和linux的區(qū)別
12. NorFlash和NandFlash 的基本區(qū)別
13. Linux移植ARM的基本步驟和完成的任務(wù)
14. Linux圖形系統(tǒng)有哪些?
15. Linux驅(qū)動(dòng)的基本結(jié)構(gòu)