嵌入式筆(bi)試題(ti)比較經典(dian)題(ti)(拓盛電子)
時(shi)間:2018-09-12 來源:未知
今天我來分享一下一些(xie)嵌入式筆試題,這些(xie)是我在(zai)拓盛電子(zi)面(mian)試的(de)時候做的(de),都是比較經典的(de),可以收集看(kan)(kan)看(kan)(kan),看(kan)(kan)看(kan)(kan)自(zi)己會不會,為面(mian)試做準(zhun)備。
1. 寫出(chu)函數(shu)執行的(de)結果:
void join(int x) //遞歸(gui)運算
{
x++;
if(x>=7)return;
join(x);
printf("%d",x); //注(zhu)意別漏掉(diao)這個打印(yin)信息!
}
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. 分析(xi)電路 根(gen)據輸入(ru)波形畫出(chu)輸出(chu)波形,并(bing)解釋

3.
4. 寫(xie)出嵌入式中經常使用的(de)死(si)循環有幾(ji)種
5. volatile 的含義(yi),寫出3中使用方式
6. 給(gei)定一(yi)整型變量a寫兩段代碼:第一(yi)個設置a的(de)bit3,第二(er)個清除a的(de)bit3
#define BIT3 (0x1<<3)
static int a;
void set_bit3(void)
{
a |= BIT3;
}
void clear_bit3(void)
{
a &= ~BIT3;
}
7. 某工程中要(yao)設置一個絕(jue)對地址為0x67a9整形變量值為0xaa66,編(bian)譯(yi)器是純ANSI編(bian)譯(yi)器。
8. 使用__interrupt定義(yi)一個ISR,評論代(dai)碼(ma)有什么(me)不妥
__interrupt double compute_area (double radius)
{
double area = PI * radius * radius;
printf(" Area = %f", area);
return area;
}
1). ISR 不能返回(hui)一(yi)個(ge)值。如果你(ni)不懂這(zhe)個(ge),那么(me)你(ni)不會被雇用(yong)的。
2). ISR 不能(neng)傳遞參數。如果(guo)你(ni)沒有看到這一點,你(ni)被雇(gu)用(yong)的機會等同第一項。
3). 在(zai)許(xu)多(duo)的處(chu)理器(qi)/編譯器(qi)中,浮(fu)點(dian)一般都是(shi)不(bu)可重入的。有些(xie)處(chu)理器(qi)/編譯器(qi)需(xu)要讓額(e)處(chu)的寄存(cun)器(qi)入棧(zhan),有些(xie)處(chu)理器(qi)/編譯器(qi)就是(shi)不(bu)允許(xu)在(zai)ISR中做浮(fu)點(dian)運算。此外,ISR應該是(shi)短而有效率的,在(zai)ISR中做浮(fu)點(dian)運算是(shi)不(bu)明智(zhi)的。
4). 與第(di)(di)三點(dian)一脈相承,printf()經常有重入(ru)和性能上的(de)問題。如果你(ni)(ni)丟掉了(le)第(di)(di)三和第(di)(di)四點(dian),我不(bu)會(hui)太為難你(ni)(ni)的(de)。不(bu)用(yong)說,如果你(ni)(ni)能得到后兩點(dian),那么你(ni)(ni)的(de)被雇(gu)用(yong)前景越來越光明了(le)。
不能傳參數 不能有返回值 不能有打(da)印(yin)語句 不應該(gai)使用浮點運(yun)算(suan)
9. 利用heap動態使用內存的過(guo)程(cheng),碎(sui)片如何(he)形成?
10. 信(xin)號量最常用的兩個功能
11. ulinux 和linux的(de)區別
12. NorFlash和NandFlash 的基本區(qu)別
13. Linux移植ARM的基本(ben)步驟和完成的任務
14. Linux圖形系統有哪些?
15. Linux驅動的基本結構