同樣工作5年,我實在自愧不如。或許是因為嵌入式太繁雜,一個公司一種開發(fā)模式,導(dǎo)致我個人的積累有些單薄。
為了方便大家,我決定簡單列出面試題目,而不做詳細(xì)說明,大家可以自己去搜索答案。
背景:
我之前工作過兩家公司,一家做智能卡芯片的,一家做藍牙產(chǎn)品,基本是應(yīng)用層的內(nèi)容。可惜嵌入式開發(fā)會越來越向底層發(fā)展,沒做過底層協(xié)議開發(fā)是我的一大軟肋。
自學(xué)過TCP/IP,linux內(nèi)核(0.11版)
使用過python
公司A
一面
項目模式(產(chǎn)品/模塊)
藍牙芯片在產(chǎn)品中的作用(MCU,控制外部DSP或其他芯片;或只作為藍牙模塊)
藍牙軟件成品模式(固件模式,通過SPI燒錄)
藍牙協(xié)議棧的架構(gòu)和分層
藍牙協(xié)議棧與網(wǎng)絡(luò)協(xié)議棧(4層架構(gòu)或7層架構(gòu))的對比
藍牙芯片(是否基于Linux或其他常用架構(gòu))
藍牙軟件的軟件架構(gòu)(event-driven類型的,而不是單片機那種大while循環(huán)的)
函數(shù)指針與指針函數(shù)分別是什么?用簡單的代碼表示出來
Linux內(nèi)核的版本;操作系統(tǒng)任務(wù)切換的關(guān)鍵是什么(保存上個任務(wù)的上下文,加載下個任務(wù)的上下文)
二面
說說經(jīng)歷過的最難的項目
分享
這個其實是我同學(xué)推薦的,雖然面試完全沒有準(zhǔn)備(因為個人原因還未開始投簡歷),但面試過程還算基本順利。可惜該公司有個性格測試,沒過
公司B
自我介紹
項目模式(產(chǎn)品/模塊)
藍牙芯片在產(chǎn)品中的作用(MCU,控制外部DSP或其他芯片;或只作為藍牙模塊)
藍牙協(xié)議棧與TCP/IP模型的對比;描述一下TCP/IP模型(協(xié)議)的主要內(nèi)容;藍牙協(xié)議的細(xì)節(jié)
wifi與藍牙的對比
藍牙通信速率(面試時沒答上來,基本沒關(guān)注過……后來了解到現(xiàn)在最大24Mbps,一般也就幾十k)
python的項目經(jīng)歷
I2C的通信模式(看來是答錯了,我以為有個校驗位(UART有校驗位,是10位數(shù)據(jù)),結(jié)果每次傳輸是8bit,然后1bit應(yīng)答),通信速率,工作時的掛載情況(最多5,6個設(shè)備)
USB的協(xié)議架構(gòu)
git的使用
makefile的了解(編譯的經(jīng)過)
Linux內(nèi)核的版本(推薦我看2.4版本……)
Linux驅(qū)動開發(fā)
socket
分享
總結(jié)了之前的經(jīng)驗,專門看了一些藍牙底層協(xié)議和網(wǎng)絡(luò)四層協(xié)議的對比,但是忽略了I2C,之前做I2C也不是做I2C的底層協(xié)議,主要是應(yīng)用,抓取過一些I2C的通信數(shù)據(jù),UART也是同樣的,結(jié)果我在數(shù)據(jù)格式上沒分清UART和I2C。USB協(xié)議也不太了解,只是在原來的公司做過一些基本是應(yīng)用層的代碼改動。
公司C
部門1
自我介紹
手機開發(fā)
手機架構(gòu)分層
C開發(fā)平臺
是否做過Linux驅(qū)動開發(fā)
部門2:
一面
自我介紹
最有挑戰(zhàn)的項目
職業(yè)發(fā)展方向(我表示我想做Linux驅(qū)動開發(fā)或系統(tǒng)開發(fā),不過面試官說他們的項目里并沒有分的很詳細(xì))
我問的問題:項目的產(chǎn)品
二面
C程序,判斷一個對稱數(shù)
刪除雙鏈表中的一個已知節(jié)點p
好的代碼應(yīng)該有的特點
分享
部門1是做芯片開發(fā)的,可惜我完全沒接觸過。所以問了幾個問題后感覺不合適,就結(jié)束了。
公司D
單片機經(jīng)驗(51或linux)
軟件架構(gòu);個人負(fù)責(zé)的部分
我問的問題:公司的主控芯片和產(chǎn)品的關(guān)系
分享
這個公司是看到我的藍牙經(jīng)驗,考慮他們的產(chǎn)品中可能會用到藍牙才面試我的,但我做的不是藍牙底層協(xié)議,他們了解到這個后就沒怎么再問了
公司E
一面
好的編程習(xí)慣(結(jié)合C語言的測試題詳細(xì)說明,第一個點出C變量的聲明和初始化的位置應(yīng)該在一起)
第一份工作的內(nèi)容,負(fù)責(zé)的部分,拿到一個文檔后如何開發(fā)/測試
第二份工作中影響最大的項目,為什么要實現(xiàn)藍牙設(shè)備之間的連接?為什么不從主設(shè)備直接向2個藍牙設(shè)備播放音樂?
這么多年編程有什么最寶貴的編程經(jīng)驗?
二面
影響最大的項目
分享
一面有點像壓力測試,比如問題“為什么要實現(xiàn)藍牙設(shè)備之間的連接?為什么不從主設(shè)備直接向2個藍牙設(shè)備播放音樂?”產(chǎn)品設(shè)計并不是我做的,至于為什么我也不清楚。“為什么不從主設(shè)備直接向2個藍牙設(shè)備播放音樂?”這是因為目前的任何一款手機還不支持同時向2個藍牙設(shè)備播放音樂。看來大家都知道藍牙,但是都沒用過啊,如果面試官用過多個藍牙設(shè)備,就不會問這種問題了。
公司F
volatile的作用(沒答上來)
如何寫一個無限循環(huán)?
如何跳出無限循環(huán)?(面試官說可以使用goto來跳出循環(huán))
為什么一般C程序中不使用goto(面試官提示:如果從一個函數(shù)中使用goto到函數(shù)外,會有什么影響?)
UART,通信的細(xì)節(jié):UART的數(shù)據(jù)格式?如何保證在偵聽UART時不會一直判斷接收到0?
2種CPU架構(gòu)(不知道,面試官說是馮諾伊曼架構(gòu)和哈佛架構(gòu),還提了一句圖靈機……)
RISC和CISC的區(qū)別(沒回答上來,面試官說是與指令長度有關(guān)。我說我只了解比如匯編中RET長度可能只有2字節(jié),而jmp指令可能是4字節(jié),這樣匯編轉(zhuǎn)換成機器碼后,可能會做4字節(jié)對齊,如果一段指令剛好差2個字節(jié),就會補2字節(jié)的0。所以有些機器碼反匯編后就會出錯,是因為剛好補0造成的。)
寄存器長度變小,尋址范圍會變小么?(我答錯了。應(yīng)該是不會,考慮CPU上的地址總線和數(shù)據(jù)總線是分開的)
一個簡單的C函數(shù)編程,如何把一個變量中的某一比特取反?
在軟件上,有中斷號,中斷向量表,中斷函數(shù),3者的關(guān)系是什么?(學(xué)過linux 0.11版的同學(xué)們肯定都知道答案)
發(fā)生中斷,芯片會做什么?(我回答的軟件部分的東西:影響堆棧,任務(wù)會切換到內(nèi)核態(tài)并執(zhí)行中斷。不清楚具體硬件上會做什么,印象里CPU只有中斷標(biāo)志位會被置位。其他芯片不太了解)
芯片如何降低功耗(sleep部分模塊,具體的睡眠操作:斷電還是取消時鐘)
如何喚醒已經(jīng)睡眠的模塊?
時鐘變慢的影響?(不太懂芯片……)
英文對話
我問的問題:項目的工作方向(了解到是做一個芯片內(nèi)部的模塊驗證工作)
分享
這家公司是做芯片的,所以問的東西有點偏底層,微電子方向。雖然感覺面試官超有親和力,但我還是想做軟件開發(fā)方面的,所以有點對不住這位面試官。
總結(jié)
嵌入式開發(fā)還是相當(dāng)繁雜的。從芯片級開發(fā)到嵌入式產(chǎn)品的開發(fā),或許我投的還是有些廣,但是有一點大家一定要知道,把自己寫在簡歷上的內(nèi)容掌握,無論別人怎么問都不會出錯,這樣才能正確體現(xiàn)自己的實力
-
嵌入式
+關(guān)注
關(guān)注
5096文章
19210瀏覽量
308480 -
工程師
+關(guān)注
關(guān)注
59文章
1574瀏覽量
68691
發(fā)布評論請先 登錄
相關(guān)推薦
如何成為嵌入式開發(fā)工程師?
月薪 3 萬的嵌入式工程師都在用,串口屏到底神在哪?
![月薪 3 萬的<b class='flag-5'>嵌入式</b><b class='flag-5'>工程師</b>都在用,串口屏到底神在哪?](https://file1.elecfans.com/web3/M00/07/ED/wKgZPGesCHCAFrKSAAEBXym8SBs375.png)
年薪30萬的嵌入式工程師,究竟需要掌握哪些技能?
![年薪30萬的<b class='flag-5'>嵌入式</b><b class='flag-5'>工程師</b>,究竟需要掌握哪些技能?](https://file.elecfans.com/web2/M00/9B/3D/poYBAGQjnauAVXOgAABFcEbXdEE684.png)
為什么嵌入式驅(qū)動開發(fā)工程師可以拿高薪?
嵌入式工程師常用的開發(fā)工具有哪些?
面試嵌入式都會問那些問題呢?
![<b class='flag-5'>面試</b><b class='flag-5'>嵌入式</b>都會問那些問題呢?](https://file1.elecfans.com/web2/M00/8D/79/wKgaomS7KZ-AY3GzAAArJzrUg1c443.png)
嵌入式熱門領(lǐng)域有哪些?
嵌入式軟件工程師如何提升自己?
從事嵌入式方向,一定要軟硬件通吃?
![從事<b class='flag-5'>嵌入式</b>方向,<b class='flag-5'>一</b>定要軟硬件通吃?](https://file.elecfans.com/web2/M00/20/B3/pYYBAGGfNNmAK-PZAAJsGM5Cgk0227.jpg)
評論