第一篇:嵌入式工程師考試題目
筆試題(60分鐘)
姓名:
成績:
嵌入式系統
1.
2.
3.
4.
5.
簡述什么是嵌入式系統。簡述ARM的版本及特點。簡述INTEL XSCALE架構的主要組成。簡述INTEL PXA255的邏輯結構。簡述你了解的嵌入式操作系統有哪些,各有何特點。
WinCE
1. 簡述WinCE系統的完整開發流程。
2. 簡述Platform Builder的功能。
3. 簡述WinCE內核的構成及各模塊的主要功能。
4. 簡述Eboot和NK下載到目標板的基本流程及工具。
5. 簡述你在WinCE平臺上所開發的一個軟件項目的(a)功能,(b)軟件邏輯結構,(c)所使用的開發工具的情況。
Symbian
1. 簡述在進行Symbian OS C++應用開發過程中,你使用哪些技巧以提高你的代碼質量。
2. 解釋Symbian操作系統手機上構成Java平臺的MIDP和CLDC特性。3. 簡述Symbian OS上對象如何創建和銷毀。
4. 解釋Symbian OS上活動對象的概念。
5. 簡述你在Symbian OS上所開發的一個軟件項目的(a)功能,(b)軟件邏輯結構,(c)所使用的開發工具的情況。
Linux
1. 簡述BOOTP協議的功能及工作流程。
2. 簡述Linux Bootloader的功能及工作流程。
3. 簡述Linux的完整啟動流程及所需的軟件模塊。
4. 簡述嵌入式Linux上經常使用的文件系統類型及各自的特點。
5. 簡述你在嵌入式Linux平臺上所開發的一個軟件項目的(a)功能,(b)軟件邏輯結構,(c)所使用的開發工具的情況。
第二篇:嵌入式軟件工程師評估題目
1.計算下列C語言表達式的值
0x34 & 0x78值為______
= = 0x64值為______
0x8 | 0x70值為______
0x55 ^ 0x88值為______&& 2值為______
strlen(“Hello!”)值為______
sizeof(char)值為______
32位系統上, sizeof(long)值為______
0x20 < 30? 1:2 值為______
!99值為______
2.用C語言預處理指令#define 聲明一個常數,用以表明1年中有多少秒(忽略閏年問題)3.ARM指令是多少位的?
4.關鍵字volatile在C語言中有什么意義?
5.關鍵字const在C語言中有什么意義?
6.關鍵字static在C語言中有什么意義?
7.寫一段C語言代碼,動態申請128K內存,并將前面100個字節初始化為00xFF.8.寫一段C語言代碼,用遞歸的方式實現階乘函數
階乘的定義: n的階乘 = 1 * 2 * 3 *? ? *(n-1)* n
9.寫出下面C語言代碼段的輸出
#include “stdio.h”
#include “stdlib.h”
void main(void)
{
int a, b, c = 3;
int *p;
p = &a;
*p =1;
b = a+1;
printf(“a=%d, b=%d, c=%d”, a, b,c);
}
10.翻譯下面英文為中文
i.MX31L is a high performance embedded RISC processor based on ARM11 core from Freescale.It is a high-speed, low power consumption processor.Windows CE is a generic OS for embedded system by Microsoft, which is a small footprint, modulized, customizable and reliable OS.In this paper, an embedded system using i.MX31L as hardware platform, Windows CE as operating system, NAND Flash as storage medium is described.The memory access for RAM and NAND Flash was designed to be flexible and extendible.The Flash bad-block management,Flash access control, mutually exclusive access, storage of OS image, OS loading, NAND Flash driver, FAT file system were implemented.A two-level OS loader, a USB upgrade tool and a selftest for manufacturing check were implemented.The performance of file system was extensively evaluated, and being further optimized.Moreover, the defect of NAND Flash controller of i.MX31L was discovered during implementation stage.The defect was solved successfully with software workaround.A mature solution for mass production was resulted.
第三篇:嵌入式linux工程師筆試題目
北京航天泰睿科技有限公司
嵌入式linux筆試題目
一、簡答題:
1. 請寫出實現后面幾個功能的Linux命令:顯示文件,拷貝,刪除
Ls cp rm 2. do??while和while??do有什么區別?
Do?while是先執行一次循環體內的代碼然后在判斷,而while?.do則是先判斷一下條件,然后在執行。Do??.while如果是不滿足條件也會執行,一定會執行一次。
3. Linux系統下.ko文件是什么文件?.so文件是什么文件?
Linux系統下.ko是模塊文件,比如驅動之類的。.so是動態鏈接庫文件 4. 如何使用vi進行塊拷貝、粘貼、刪除的操作
5. 在Linux系統中,用來存放系統所需要的配置文件和子目錄的目錄是。
/etc 這個目錄用來存放系統管理所需要的配置文件和子目錄
6. 如何使用gcc得到宏展開的中間代碼
gcc –E –P xxfile 7. 如何使用gdb調試多進程
先ps出進程id,再gdb-a attach上去,b設一個斷點,c繼續運行就可以了
8. 用戶進程間通信主要哪幾種方式
管道,信號量,消息隊列,有名管道 9. 解釋命令ls-amore具體含義。
-a 輸出目錄下的所有文件,包括隱藏文件-m 橫向輸出文件名,并以’,’隔開-o 顯示文件除組外的詳細信息-r 對目錄反向排序
-e 輸出時間的全部信息,而不是簡要信息
10. LINUX中的管道指什么,重定向又指什么
管道是一種兩個進程間進行單向通信的機制。因為管道傳遞數據的單向性,管道又稱為半雙工管道。數據只能由一個進程流向另一個進程(其中一個讀管道,一個寫管道);如果要進行雙工通信,需要建 立兩個管道。管道只能用于父子進程或者兄弟進程間通信。,也就是說管道只能用于具有親緣關系的進程間通信。
11. 請寫出下列代碼的輸出內容 #include “stdio.h” main(){ int a,b,c,d;a=10;
第1頁/共3頁
北京航天泰睿科技有限公司
b=a++;c=++a;d=10*a++;printf(“b,c,d:%d,%d,%d”,b,c,d);return 0;
12. 編寫一個函數intcharnum(charfn[10]),該函數以只讀方式打開文件fn,,通過統計,返回文件中字符的個數,請使用while循環實現計數功能。請勿修改主函數main和其他函數中的任何內容,僅在函數charnum的花括號中填寫若干語句。
文件kt7_2.cpp的內容如下:
#include
#include
#include
intcharnum(charfn[10]);
voidmain(){ intnum;
num=charnum(“abc.txt”);} cout<<“num=”<
intcharnum(charfn[10]){
}
二、編程題
13. 如果有一個簡單的Test項目目錄如下:
# tree Test Test |--common.h |--main.cpp |--test.cpp `--test.h
1)使用wildcard、patsubst函數編寫一個C++項目的Makefile文件 2)使用automake、autoconfig編寫一個支持configure選項的configure.in腳本
14. 編寫一個hello world程序,要求以創建進程的方式打印Hello World!
15. 打開一個文件,并讀取從第100字節開始的50字節數據。
第2頁/共3頁
北京航天泰睿科技有限公司
16. 編寫一對socket程序,要求類似于network echo procotol。
Client每隔1秒把自己的IP地址輪流循環發送給一個Server.Server接到IP后,在屏幕上打印對方IP;然后把自己的IP發送回去。Client收到回復后,在屏幕上打印對方IP。
程序一直運行,直到用戶退出。各自分類統計接收到的各IP的數據包的個數。
注意:Client可以向多個Server發送請求,Server也可以接收多個Client請求。
17.請描述Linux下程序開發到執行的工作流程(結合自己的項目經歷)。
18.結合自己的學習或工作感受簡述Linux與Windows編程的區別,嵌入式Linux與Windows的嵌入式OS(如XPE、WinCE)的區別。
第3頁/共3頁
第四篇:嵌入式linux工程師筆試題目[推薦]
北京航天泰睿科技有限公司
嵌入式linux筆試題目
一、簡答題:
1. 請寫出實現后面幾個功能的Linux命令:顯示文件,拷貝,刪除
2. do??while和while??do有什么區別?
3. Linux系統下.ko文件是什么文件?.so文件是什么文件?
4. 如何使用vi進行塊拷貝、粘貼、刪除的操作
5. 在Linux系統中,用來存放系統所需要的配置文件和子目錄的目錄是。
6. 如何使用gcc得到宏展開的中間代碼
7. 如何使用gdb調試多進程
8. 用戶進程間通信主要哪幾種方式
9. 解釋命令ls-amore具體含義。
10. LINUX中的管道指什么,重定向又指什么
11. 請寫出下列代碼的輸出內容 #include “stdio.h” main(){ int a,b,c,d;a=10;b=a++;c=++a;d=10*a++;printf(“b,c,d:%d,%d,%d”,b,c,d);return 0;
12. 編寫一個函數intcharnum(charfn[10]),該函數以只讀方式打開文件fn,,通過統計,返回文件中字符的個數,請使用while循環實現計數功能。請勿修改主函數main和其他函數中的任何內容,僅在函數charnum的花括號中填寫若干語句。
文件kt7_2.cpp的內容如下:
#include
第1頁/共2頁
北京航天泰睿科技有限公司
#include #include intcharnum(charfn[10]);voidmain(){ intnum;
num=charnum(“abc.txt”);} cout<<“num=”<
intcharnum(charfn[10]){
}
二、編程題
13. 如果有一個簡單的Test項目目錄如下:
# tree Test Test |--common.h |--main.cpp |--test.cpp `--test.h
1)使用wildcard、patsubst函數編寫一個C++項目的Makefile文件 2)使用automake、autoconfig編寫一個支持configure選項的configure.in腳本
14. 編寫一個hello world程序,要求以創建進程的方式打印Hello World!
15. 打開一個文件,并讀取從第100字節開始的50字節數據。
16. 編寫一對socket程序,要求類似于network echo procotol。
Client每隔1秒把自己的IP地址輪流循環發送給一個Server.Server接到IP后,在屏幕上打印對方IP;然后把自己的IP發送回去。Client收到回復后,在屏幕上打印對方IP。
程序一直運行,直到用戶退出。各自分類統計接收到的各IP的數據包的個數。
注意:Client可以向多個Server發送請求,Server也可以接收多個Client請求。
17.請描述Linux下程序開發到執行的工作流程(結合自己的項目經歷)。
18.結合自己的學習或工作感受簡述Linux與Windows編程的區別,嵌入式Linux與Windows的嵌入式OS(如XPE、WinCE)的區別。
第2頁/共2頁
第五篇:嵌入式軟件工程師
嵌入式軟件工程師
目錄 簡介 2 待遇 3 職業要求 4 發展前景 5 職業發展 簡介 2 待遇 3 職業要求 4 發展前景 職業發展 簡介
嵌入式系統是以應用為中心,以計算機技術為基礎,并且軟硬件可裁剪,適用于應用系統對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統。它一般由嵌入式微處理器、外圍硬件設備、嵌入式操作系統以及用戶的應用程序等四個部分組成,用于實現對其他設備的控制、監視或管理等功能。
嵌入式軟件工程師就是編寫嵌入式系統的工程師。2 待遇
IBM、微軟、華為、Yahoo、聯想、搜狐、亞信、花旗...2010'應屆畢業生就業安置計劃火熱啟動:先實訓后上崗,轉正年薪50000元。3 職業要求
應具備哪些能力
最直接的方法,就是去根據各公司,招聘網站的嵌入式軟件工程師的應聘要求來分析
我幫你總結下:
1.最重要的是C語言編程,以及C++,這個與你讀程,應用,開發項目,做系統移植息息相關;
2.操作系統: LINUX,WINCE等,至少學習過一種,(目前主流的還是Linux)并且還需要對些基礎知識有蠻多的了解;
3.對ARM,FPGA,DSP等這些硬件比較了解。(目前主流的是ARM,像三星,華為,小米等大型的生產廠商最底層的硬件用的都是ARM)
這是最常規的條件
當然,最主流的一般就是LIUNX.同時具備一些基本素質,像英語能力,有相關的項目經驗,也很重要
推薦: 你可以去按照招聘要求分析,也可以按照培訓機構的培訓目的,方向,內容來分析得知,像海同科技就是蠻不錯的.算得上是業內的領軍企業.4 發展前景
嵌入式領域較新,發展非常快,很多軟硬件技術出現的時間都不太長(如ARM處理器、嵌入式操作系統、LINUX操作系統),大多數人沒有條件接觸或進入嵌入式行業,更談不上能有機會接受專業人士的指導。因此,踏進這個行業的難度比較大,嵌入式人才稀缺,身價自然也水漲船高。
權威部門統計,我國嵌入式人才缺口每年50萬人左右。根據前程無憂網發布的調查報告,嵌入式軟件開發是未來幾年最熱門和最受歡迎的職業之一,具有10年工作經驗的高級嵌入式工程師年薪在30萬元左右。即使是初級的嵌入式軟件開發人員,平均月薪也達到了3000—5000元,中高級的嵌入式工程師月薪平均超過10000元。做軟件實際上有高下之分,開發語言從機器語言、匯編到C、C++,再到紅透半邊天的Java、C#等,該學哪種呢?為什么有些開發者工資低,而有些開發者千金難求?為什么3年的Java高級程序員薪水僅僅8k-10k,而一個Linux底層C語言程序員兩年經驗就敢要10k的薪水?
還是門檻,比如月薪15k的Linux嵌入式開發職位,門檻就有 Linux系統、Shell編程、Linux開發環境、C語言、ARM硬件平臺、數據結構、Linux內核、驅動程序等,粗略數數就有8道關口,他需要非常熟悉整個的計算機體系,能做出實際的產品,而Java的開發者卻僅僅是會使用名叫Java的語言工具,始終高高飄在眾多層次之上,開發項目非常快,甚至可以不知道OSI模型,很可能自始至終都是軟件藍領。
嵌入式開發本身也有高下之分,至少包含嵌入式應用程序工程師和底層的驅動內核工程師兩種。前者同樣是使用現成工具進行簡單勞動,比如使用J2ME開發小游戲或者進行一些界面開發,而后者是根據芯片具體情況把操作系統(如Linux)移植到上面,同時編寫必要的驅動程序,改寫相應的內核代碼。很顯然后者是一個公司真正的技術核心。而技術核心的工資很可能是其他開發者的數倍。
嵌入式開發突出強制和項目,學習不僅僅是學習幾項技術,而是構建你的知識體系。比如學習嵌入式開發,就要從基礎Linux,C語言,數據結構開始,到ARM,匯編,Linux內核、驅動等,更重要的是更多的項目練習,設計至少5個項目,多達10000行強制核心代碼的編寫可以讓你真正獲得知識。為進入外企或者出國做準備。
未來的幾年內,隨著信息化,智能化,網絡化的發展,嵌入式系統技術也將獲得廣闊的發展空間。美國著名未來學家尼葛洛龐帝99年1月訪華時預言,4~5年后嵌入式智能(電腦)工具將是PC和因特網之后最偉大的發明。我國著名嵌入式系統專家沈緒榜院士98年11月在武漢全國第11次微機學術交流會上發表的《計算機的發展與技術》一文中,對未來10年以嵌入式芯片為基礎的計算機工業進行了科學的闡述和展望。1999年世界電子產品產值已超過12000億美元,2000年達到13000億美元,預計2005年,銷售額將達18000億美元。一些先進的PDA在顯示屏幕上已實現漢字寫入、短消息語音發布,日用范圍也將日益廣闊。對于企業專用解決方案,如物流管理、條碼掃描、移動信息采集等,這種小型手持嵌入式系統將發揮巨大的作用。自動控制領域,不僅可以用于ATM機,自動售貨機,工業控制等專用設備,和移動通訊設備結合、GPS、娛樂相結合,嵌入式系統同樣可以發揮巨大的作用。5 職業發展
從個人整體發展來說,如果想創業,做自已的產品,嵌入式軟件開發可以開發出專利產品。
另一個發展路徑是:積累豐富開發經驗的嵌入式軟件開發工程師可以向嵌入式系統開發工程師發展,從而晉升為產品研發經理或IT項目經理。對測試理論和方法有一定了解的嵌入式軟件開發工程師還可以轉作嵌入式系統測試工程師,最終也可發展為IT項目經理