2020秋招嵌入式面經——地平線、小米、CVTE、大華、綠米,內附程式碼
地平線提前批 一面涼:
投遞簡歷過程:官網投遞9月份之前投的都是提前批,投了北京、上海、南京地區的嵌入式軟體研發崗,北京和上海的都被篩掉了,南京的撈了我,hr小姐姐打電話邀約面試。
一面涼:
電話面試,第一次收到面試通知十分痛苦,面試AI晶片獨角獸,完全沒有一點點準備,知識也沒有撿起來,十分緊張,面試官很好,不停開導。
1、自我介紹
2、解釋一下register關鍵字
3、位元組對齊
4、資料庫查詢左連線和右連線的區別(跪了,資料庫我全忘了)
5、static關鍵字在函式中、原始檔中、標頭檔案中有什麼區別(涼)
6、資料結構和演算法瞭解不,分治法、貪心法(涼)
7、專案介紹
8、你還有什麼要問的
總結:面試表現太差,17分鐘結束,自己太菜,面試基礎很重要,牛客上說地平線嵌入式的面試考的很廣。
小米提前批 二面涼:
投遞簡歷過程:官網投遞9月份之前投的都是提前批,投了嵌入式工程師,地平線面試完晚上突然接到小米公司的電話,面試官邀約面試。
一面 27min:
牛客網視訊面試,心想又完了,還沒複習又來面試,而且是世界五百強公司的面試,作為米粉異常痛苦(對自己恨鐵不成鋼),好在小米的面試官也十分和善。
1、自我介紹
2、專案介紹
3、專案中的匯流排解釋一下
4、執行緒同步
5、程式設計題:氣泡排序、連結串列逆置(面試官說,我考一下你的程式設計能力吧,要簡單的題目還是要難的題目?答:簡單的)
6、談談你對小米的瞭解
7、你還有什麼想問的
8、工作地點選一個(深圳,選完面試官解釋北京負責小米系列,南京負責MIUI,深圳負責紅米系列)
一面 30min:
小米深圳的面試官打電話邀約面試
1、C/C++程式 記憶體分佈情況 常量所在的區(沒回答好)
2、STM32 GPIO介紹(沒有認真複習,細節全記錯了)
3、深挖專案(沒回答好,自己的專案也必須好好複習)
總結:小米基本會給很多人面試的機會,只怪自己太菜,無準備之戰,必敗無疑。
廣州視源(CVTE)一面涼:
投遞簡歷過程:官網投遞,選擇筆試場次(20多道選擇題,2道程式設計題),筆試通過後選擇面試場次。
一面 60+min:
去面試酒店掃碼排隊,酒店人超多,一定要提前去
1、自我介紹
2、專案介紹,畫出硬體拓撲圖
3、解釋一下中斷 中斷處理時間過長(中斷下半部) 中斷觸發方式 中斷處理函式注意事項(有引數和返回值嗎,為什麼)
4、程式設計題 1)給出暫存器的地址和位寬,讀寫暫存器 2)字串處理,大小寫轉換
5、對嵌入式的瞭解
6、我們是996,對加班的看法
7、有什麼職業規劃,什麼原因會讓你離開公司(巨坑)
總結:面試官的暗語是一面和二面面試官都是我,回去等涼了的訊息吧。
浙江大華 一面涼 20min:
網申投遞,通過篩選後筆試,筆試通過,面試官發簡訊讓我當天選擇時間,感覺自己是被隨便撈起來看看,面完第二天收到辭謝信。
1、專案介紹,IIC匯流排說一下。
2、C語言分哪幾區,static修飾的區域性變數在哪裡?
3、Linux有用過哪些,幹了什麼事?(我說Debian系列、Centos都用過)
4、Nor Flash 和 Nand Flash 檔案系統(忘了,讓我補充了一下非嵌入式的檔案系統)
5、Linux使用者態如何進入核心態?
6、看看你的筆試題,解釋一下棧的特點。
7、有什麼想問我的?(問了一下 視訊會議C嵌入式的工作內容,面試官說有ARM微控制器的,也有Linux的驅動開發,也有我做過的伺服器和資料庫的部署,感覺超級符合)
8、什麼時候能夠實習,畢設怎麼辦?
總結:面試表現最好的一次,我說我在學習《Linux裝置驅動程式》和《UNIX環境高階程式設計》,面試官說這兩本書要好好看,我想我還是表現太平庸了,大華投的人很多,優秀的人都不缺。
綠米聯創 三面 offer溝通中:
網申後,宣講會筆試,筆試內容非常基礎,考察對C/C++的基礎,C++的全忘了,筆試完當天晚上收到面試邀請。
技術面 約50min:
面試官比較nice,十分和善。
1、覆盤筆試題
1)高內聚低耦合什麼意思,為什麼要這麼做
2)寫一個“標準”的巨集,比較兩個數的大小(有什麼需要改進的,為什麼這麼改,如果是i++怎麼做,不知道,面試官告訴我應該用臨時變數)
3)反轉連結串列的程式設計題寫錯了
2、IIC匯流排時序
3、寫出計算機網路 五層模型 每一層對應的協議 解釋ICMP DHCP
4、HTTP 從瀏覽器輸入域名的全過程
5、專案架構畫一下,專案中的無線模組是怎麼回事 因為我投的無線組,問的比較深
6、寫個程式判斷CPU位元組序,寫對了(小米的面試官也問過,當時不記得了,巨難受)
7、專案中的難題
8、你知道哪些加密方式,非對稱加密?
9、進入Linux核心態,為什麼要分為使用者態和核心態
10、想搞哪個方向?(我作死,說想搞Linux,後面有了leader加面,因為這個方向是閘道器組的,當時沒意識到面試官是無線組的leader)
11、深圳壓力很大,為什麼想來深圳?
12、有什麼要問的,問了一下綠米產品的IoT安全。
hr面:
0、比較考察個人綜合素質,考察你對行業的認識,對公司的瞭解,臨場反應能力等,hr素質可以,沒有給人壓力。
leader加面 30min:
1、IIC匯流排
2、專案中類似於IFTTT的解釋了一下
3、給我一個硬體工程師做好的人體感應模組,如何用zigbee對接閘道器(答的不好)
4、C++多型
5、自動控制原理中的PID
總結:我感覺我什麼的可以說一下,但是回答的可能不是很讓面試官滿意,無論是對知識的理解正確度上、深度上,都差那麼一口氣,還是要多學,學精學專一點。
秋招總結:
1、基礎!!!基礎!!!基礎!!!
2、不要盲目自信,自己的專案也要通透,能夠對答如流。
3、問一答十,準確且全面,不要擠牙膏,不會的問題一定要找個相似的問題,面試官想看到你知識體系,深度和廣度。
4、心態一定要調整好,瘋狂投遞刷題筆試面試,有機會就上,失敗了就多多覆盤。
5、一定要好好準備,看面經啥的,可惜了提前批(學霸批)大廠獨角獸的面試機會,不過對於我一個菜鳥大廠只能是幻想。
附面試程式碼:
1、位元組對齊與大小端
1 // 2 // Deepc.cpp 3 // Study -- C的深入 4 // 5 // Created by Admin-X on 2019/10/6. 6 // Copyright © 2019年 Admin-X. All rights reserved. 7 // 8 9 #include "Deepc.hpp" 10 #include <iostream> 11 using namespace std; 12 #pragma pack(4) //改變對齊字長 13 14 void byteSize(){ // 4-byte 8-byte 15 struct fun{ // Address offset Address offset 16 int a; // 0x6EFE7C +0 0x6EFE78 +0 17 double b; // 0x6EFE80 +4 0x6EFE80 +8 18 char c; // 0x6EFE88 +8 0x6EFE88 +8 19 char d; // 0x6EFE89 +1 0x6EFE89 +1 20 int e; // 0x6EFE8C +3 0x6EFE8C +3 21 }F; 22 cout << sizeof(F) << endl; 23 //printf("0x%X\n0x%X\n0x%X\n0x%X\n0x%X\n",&F.a,&F.b,&F.c,&F.d,&F.e); 24 //printf("0x%X\n",&F.k); 25 } 26 27 void checkCPU() //檢測CPU大小端位元組序,小端位元組序:低位的地址儲存低位的位元組 ,大端反之 28 { 29 union w // Big-endian/Little-endian 30 { //(Address) 0x00 0x01 0x02 0x03 // 0x00 0x01 0x02 0x03 31 unsigned int a ; //(Data) 0x87 0x65 0x43 0x21 // 0x21 0x43 0x65 0x87 32 char b; 33 }c; 34 c.a = 0x87654321; 35 if(c.b == 0x21){ 36 printf("little-endian\n"); 37 }else{ 38 printf("big-endian\n"); 39 } 40 }View Code
&n