電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 23|回復(fù): 0
收起左側(cè)

嵌入式MCU工程師,面試常被問及的問題。

[復(fù)制鏈接]

452

主題

452

帖子

710

積分

二級會員

Rank: 2

積分
710
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 昨天 17:50 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
我是老溫,一名熱愛學(xué)習(xí)的嵌入式工程師
2 m) Q( z  U6 n+ W; q: }7 m' o/ c關(guān)注我,一起變得更加優(yōu)秀!有些工程師可能覺得單片機沒啥技術(shù)含量,但事實是單片機涵蓋的技術(shù)非常之多,從底層到應(yīng)用,應(yīng)該沒有一個人能熟練掌握其中所有的技術(shù)。
) L" C0 t" i" u2 T! _& v9 A6 O+ Y7 j+ B
這里就站在面試的角度來說說:單片機工程師面試常見問題。
6 B; P4 k% V" a& V9 A7 d: g* e( l# E6 I4 @& @( X; L1 K
1、單片機上電之后不運行,可能的原因有哪些?! {; l5 g- Y9 ?! z2 N
可能的原因包括供電問題(如VCC電壓偏離正常范圍)、晶振問題(如晶振損壞或未起振)、RESET引腳電平邏輯錯誤(如一直處于復(fù)位狀態(tài))、程序下載或擦除問題(如flash無法下載或損壞)以及控制程序問題(如程序存在bug)。9 Q8 Y: J: {8 q( P" q3 {
- i7 S; a* T# z- @$ j$ v
2、看門狗定時器的作用?: m; L" w, |; z
看門狗定時器(Watchdog Timer)在嵌入式系統(tǒng)中用于監(jiān)控和重置系統(tǒng),以防止因軟件故障導(dǎo)致的系統(tǒng)崩潰。它通過定時檢查系統(tǒng)是否正常運行,并在超時后觸發(fā)系統(tǒng)重置,從而提高系統(tǒng)的可靠性和穩(wěn)定性。2 c/ S* O7 y2 b* \* N7 u" Q+ P7 l

" f! v& C% s# m% ~9 A" y" C3、單片機中斷處理流程是怎樣的?
0 I  e" _7 j3 q3 g2 M$ V單片機中斷處理流程通常包括三個步驟:中斷響應(yīng)、中斷處理和中斷返回。- j: O* u' V) _  n
當(dāng)中斷發(fā)生時,中斷系統(tǒng)通過硬件自動生成長調(diào)用指令(LACLL),將斷點地址壓入堆棧保護,并將對應(yīng)的中斷入口地址裝入程序計數(shù)器PC,使程序轉(zhuǎn)向該中斷入口地址執(zhí)行中斷服務(wù)程序。中斷服務(wù)程序完成后,計算機通過中斷返回指令RE將斷點地址從堆棧中彈出,返回到程序計數(shù)器PC,并通知中斷系統(tǒng)已完成中斷處理。/ Q) D5 T. s# W0 Z( K) z- R, M( i0 ]
. [; L6 C; S; T" m- G- j# l
4、解釋一下進程、線程、協(xié)程的概念% u, c6 N2 J# v6 k' R3 P6 N8 [2 x
進程:進程是并發(fā)執(zhí)行的程序在執(zhí)行過程中分配和管理資源的基本單位,是一個動態(tài)概念,競爭計算機系統(tǒng)資源的基本單位。* z: E' Q% b4 D

, ^# E7 r# ^6 v6 v4 d, X# H線程:線程是進程的一個執(zhí)行單元,是進程內(nèi)科調(diào)度實體。比進程更小的獨立運行的基本單位。線程也被稱為輕量級進程。
8 O1 i8 q3 O0 m4 e- M# \* r! M
- L; N' j- Y$ \協(xié)程:是一種比線程更加輕量級的存在。一個線程也可以擁有多個協(xié)程。其執(zhí)行過程更類似于子例程,或者說不帶返回值的函數(shù)調(diào)用。) r3 M" o5 ~; _0 @6 B" Q

; p. E; z' B5 H3 M5、什么是嵌入式系統(tǒng)?3 u2 U+ ?; N5 s& j: X
嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),軟硬件可裁剪的專用計算機系統(tǒng)。它適用于應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴(yán)格要求的場合。嵌入式系統(tǒng)通常由處理器、存儲器、輸入輸出設(shè)備、軟件等組成,具有體積小、功耗低、可靠性高、功能專用等特點。
2 ^8 q) \; w) Y# \0 b4 D; Q$ j% W) m9 K6 W$ n7 m1 S- Q
6、C語言中堆和棧的區(qū)別是什么?
- n' f% X$ _0 \: k堆和棧是C語言中用于存儲數(shù)據(jù)的兩種不同區(qū)域。棧由系統(tǒng)自動分配和管理,通常用于存儲局部變量和函數(shù)調(diào)用時的臨時數(shù)據(jù);而堆需要程序員自己申請和釋放,通常用于存儲動態(tài)分配的數(shù)據(jù)。兩者在存儲內(nèi)容、管理方式、空間大小、能否產(chǎn)生碎片、生長方向、分配方式和分配效率等方面都存在差異。
7 ]( {5 a5 y/ i# L. q* [$ P) p3 t) A) Y- `0 p' R) h
7、請簡單說下嵌入式系統(tǒng)中的RTOS調(diào)度策略
  _7 g2 N5 }" W) o- sRTOS(實時操作系統(tǒng))的調(diào)度策略包括基于優(yōu)先級的調(diào)度、輪詢調(diào)度、時間片輪轉(zhuǎn)調(diào)度等。這些策略直接影響系統(tǒng)的實時性和效率,確保任務(wù)能夠按照預(yù)定要求得到執(zhí)行。) p/ `8 q3 `; z! e" O9 _

3 W4 J) o& G5 n$ \3 S8、你如何保證單片機代碼的質(zhì)量和可靠性?
+ x! m. b! h0 h8 B- W9 e9 F在單片機項目中,我通常會采取以下措施來保證代碼的質(zhì)量和可靠性:首先,我會對代碼進行嚴(yán)格的測試和驗證,包括單元測試、集成測試和系統(tǒng)測試等;其次,我會遵循良好的編程規(guī)范和代碼風(fēng)格,以提高代碼的可讀性和可維護性;最后,我會定期回顧和更新代碼,以消除潛在的錯誤和漏洞。
7 o1 {4 x3 X  q6 n: i% ^3 W) Y1 Q4 i- z1 l+ e
9、程序的局部變量、全局變量和動態(tài)申請數(shù)據(jù)分別存在于哪里?6 |& N# F# @( e6 H" E6 y- d+ r
局部變量存在于棧區(qū)。全局變量存在于靜態(tài)區(qū)(數(shù)據(jù)段)。動態(tài)申請的數(shù)據(jù)存在于堆區(qū)。, B9 _) a! B  r, L/ q' }- d, R; t7 r9 _
10、在C語言中,如何實現(xiàn)鏈表?請舉例說明。
4 C5 l* ^* T/ [6 r9 r鏈表是一種動態(tài)數(shù)據(jù)結(jié)構(gòu),由節(jié)點組成,每個節(jié)點包含數(shù)據(jù)部分和指向下一個節(jié)點的指針。* G0 l8 t; n1 r" q. K# I0 M
在C語言中,可以通過結(jié)構(gòu)體和指針來實現(xiàn)鏈表。例如,單鏈表的節(jié)點可以定義為:
" n! m# a5 }7 ]
  • struct Node {    int data;    struct Node* next;};
    5 m( q2 Y0 t/ b8 {7 N然后通過動態(tài)分配內(nèi)存和設(shè)置指針來構(gòu)建鏈表。例如,創(chuàng)建一個新的節(jié)點并插入到鏈表的開頭:5 B  l: u2 ]& V7 w" i1 r: O& o  W* i
  • struct Node* head = NULL;struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));newNode->data = 10;newNode->next = head;head = newNode;8 c+ O7 ]4 x+ G; c/ I% R
    由于篇幅有限,今天就分享這些,其實還有很多很多,大家面試之前,盡量先刷一波面試題。
      J) t' J" v4 \) r& j& J, ]1 |! y
    ! }8 @' L! i; @4 D作者 | strongerHuang2 Q3 z% P' ?! M+ L- y
    微信公眾號 | strongerHuang3 O& c0 V; f4 V2 A2 y8 B* W( e6 f9 s$ S
    -END-8 N4 d- U8 C, x
    往期推薦:點擊圖片即可跳轉(zhuǎn)閱讀( S5 K- Z2 R" q7 I" E
                                                            , U  J- ^7 x, t& Z8 y& Q
                                                                   
    , z! j- m* T2 P                                                                        . D! k0 k7 y0 q  i
                                                                                   
    9 O9 S$ B! Z$ X- g" ]
    0 J3 ^- }6 \' [# C* Y" l                                                                                  L4 p) ]" R/ Y, I
                                                                                            硬件都做出來了,客戶說想改一下,結(jié)果,全部推倒重做!
    ; _( W) Y9 V' F4 B3 g                                                       
    0 W/ [% ?# [( a. U  z* U% m. w" E                                                               
    ' l5 v$ Y9 A+ C0 P7 i" N                                                                       
    0 I# S. ^! |1 q$ f1 c/ @5 p4 k' U                                                                               
    ; e9 [) P9 Z# l2 o  h: o 9 o, i' x: |5 g2 u- J
                                                                                   
    2 _+ d$ o2 b7 ]$ Z& u0 d% R                                                                                        嵌入式架構(gòu)設(shè)計,淺談"驅(qū)動分離式"設(shè)計思想。
    1 t  y. x) ]  Y# L                                                               
    & R/ }2 o: _0 ?" D7 c6 g                                                                       
    + \1 D$ k4 x6 c# ^                                                                                6 `4 @, t0 h3 D( ~5 M5 r5 s
      P. w' N0 h# k& I
                                                                                    # v4 o7 V8 t3 w) I# O
                                                                                            分享一個跨平臺通用的 GUI 框架!
    8 {2 \3 ^  H  J) ?+ f; k1 _                                                                               
    : K6 C8 r; N# u" _  g5 w% z                                                                        2 c$ O" C, O6 J6 D* L- v' Q6 u
                                                                   
    0 y8 _! ^7 k5 g- ]                                                        我是老溫,一名熱愛學(xué)習(xí)的嵌入式工程師
    + f9 D- r; q% e& M" X: q關(guān)注我,一起變得更加優(yōu)秀!
  • 回復(fù)

    使用道具 舉報

    發(fā)表回復(fù)

    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規(guī)則

    關(guān)閉

    站長推薦上一條 /1 下一條


    聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表