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

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

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

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

[復(fù)制鏈接]

455

主題

455

帖子

849

積分

二級(jí)會(huì)員

Rank: 2

積分
849
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2024-11-5 17:50:00 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
我是老溫,一名熱愛學(xué)習(xí)的嵌入式工程師+ j/ T# }# P+ O9 A1 P
關(guān)注我,一起變得更加優(yōu)秀!有些工程師可能覺得單片機(jī)沒啥技術(shù)含量,但事實(shí)是單片機(jī)涵蓋的技術(shù)非常之多,從底層到應(yīng)用,應(yīng)該沒有一個(gè)人能熟練掌握其中所有的技術(shù)。3 E( u0 \: H9 t2 n' b
/ `4 q5 Q/ Z6 ?9 U* O' P+ b! |4 b
這里就站在面試的角度來說說:單片機(jī)工程師面試常見問題。
; I- {& b9 Y% \) t! g, @
/ Y' j. E! v% n- [2 t1、單片機(jī)上電之后不運(yùn)行,可能的原因有哪些?+ v+ b1 z2 m5 z: h
可能的原因包括供電問題(如VCC電壓偏離正常范圍)、晶振問題(如晶振損壞或未起振)、RESET引腳電平邏輯錯(cuò)誤(如一直處于復(fù)位狀態(tài))、程序下載或擦除問題(如flash無法下載或損壞)以及控制程序問題(如程序存在bug)。
, D: D! E  N' i$ A9 Q- g
' G! D+ W0 K" Y  k% p2、看門狗定時(shí)器的作用?7 T  j- R5 d6 G% f( Z$ R$ p
看門狗定時(shí)器(Watchdog Timer)在嵌入式系統(tǒng)中用于監(jiān)控和重置系統(tǒng),以防止因軟件故障導(dǎo)致的系統(tǒng)崩潰。它通過定時(shí)檢查系統(tǒng)是否正常運(yùn)行,并在超時(shí)后觸發(fā)系統(tǒng)重置,從而提高系統(tǒng)的可靠性和穩(wěn)定性。: U2 U6 {4 V/ V% e( ?
( X1 K5 t/ n; p
3、單片機(jī)中斷處理流程是怎樣的?/ D& P7 Y9 G6 b6 g4 t9 p
單片機(jī)中斷處理流程通常包括三個(gè)步驟:中斷響應(yīng)、中斷處理和中斷返回。
3 Q( e, Y  v, p; d. J當(dāng)中斷發(fā)生時(shí),中斷系統(tǒng)通過硬件自動(dòng)生成長調(diào)用指令(LACLL),將斷點(diǎn)地址壓入堆棧保護(hù),并將對(duì)應(yīng)的中斷入口地址裝入程序計(jì)數(shù)器PC,使程序轉(zhuǎn)向該中斷入口地址執(zhí)行中斷服務(wù)程序。中斷服務(wù)程序完成后,計(jì)算機(jī)通過中斷返回指令RE將斷點(diǎn)地址從堆棧中彈出,返回到程序計(jì)數(shù)器PC,并通知中斷系統(tǒng)已完成中斷處理。+ k0 v- Q  B) x( n6 {( `" J
% e0 E8 z9 C9 p) Z
4、解釋一下進(jìn)程、線程、協(xié)程的概念
! [0 X5 P1 r" C+ `進(jìn)程:進(jìn)程是并發(fā)執(zhí)行的程序在執(zhí)行過程中分配和管理資源的基本單位,是一個(gè)動(dòng)態(tài)概念,競爭計(jì)算機(jī)系統(tǒng)資源的基本單位。$ X  T) b6 L& m4 l5 Q5 n. p

# C4 }" D6 R6 d, T3 f' Q線程:線程是進(jìn)程的一個(gè)執(zhí)行單元,是進(jìn)程內(nèi)科調(diào)度實(shí)體。比進(jìn)程更小的獨(dú)立運(yùn)行的基本單位。線程也被稱為輕量級(jí)進(jìn)程。
" s" I1 [+ |  c' _* I* k* S. N
' j0 Z/ ?; o1 S7 w! M' Z9 ^協(xié)程:是一種比線程更加輕量級(jí)的存在。一個(gè)線程也可以擁有多個(gè)協(xié)程。其執(zhí)行過程更類似于子例程,或者說不帶返回值的函數(shù)調(diào)用。/ [5 g5 i6 {* u

8 g. c3 ^0 d% |' E  f5、什么是嵌入式系統(tǒng)?0 y; |0 [! h1 d, P% l* {& p
嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪的專用計(jì)算機(jī)系統(tǒng)。它適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的場合。嵌入式系統(tǒng)通常由處理器、存儲(chǔ)器、輸入輸出設(shè)備、軟件等組成,具有體積小、功耗低、可靠性高、功能專用等特點(diǎn)。
* p. {. b7 g( }
+ M2 E8 }/ l. M) I& t# q6、C語言中堆和棧的區(qū)別是什么?
) h2 u) R5 `0 j2 {: H堆和棧是C語言中用于存儲(chǔ)數(shù)據(jù)的兩種不同區(qū)域。棧由系統(tǒng)自動(dòng)分配和管理,通常用于存儲(chǔ)局部變量和函數(shù)調(diào)用時(shí)的臨時(shí)數(shù)據(jù);而堆需要程序員自己申請和釋放,通常用于存儲(chǔ)動(dòng)態(tài)分配的數(shù)據(jù)。兩者在存儲(chǔ)內(nèi)容、管理方式、空間大小、能否產(chǎn)生碎片、生長方向、分配方式和分配效率等方面都存在差異。5 [1 n; E; r' w0 l

- }8 P3 q1 r. N7、請簡單說下嵌入式系統(tǒng)中的RTOS調(diào)度策略
# c$ V8 X/ q8 SRTOS(實(shí)時(shí)操作系統(tǒng))的調(diào)度策略包括基于優(yōu)先級(jí)的調(diào)度、輪詢調(diào)度、時(shí)間片輪轉(zhuǎn)調(diào)度等。這些策略直接影響系統(tǒng)的實(shí)時(shí)性和效率,確保任務(wù)能夠按照預(yù)定要求得到執(zhí)行。' e8 l. K. D8 d; h( c

( _/ ~+ T  p& ~; `$ L( X4 j$ b8、你如何保證單片機(jī)代碼的質(zhì)量和可靠性?
0 C/ A4 `* Q# Q' y; B在單片機(jī)項(xiàng)目中,我通常會(huì)采取以下措施來保證代碼的質(zhì)量和可靠性:首先,我會(huì)對(duì)代碼進(jìn)行嚴(yán)格的測試和驗(yàn)證,包括單元測試、集成測試和系統(tǒng)測試等;其次,我會(huì)遵循良好的編程規(guī)范和代碼風(fēng)格,以提高代碼的可讀性和可維護(hù)性;最后,我會(huì)定期回顧和更新代碼,以消除潛在的錯(cuò)誤和漏洞。
! x  `/ [0 V7 _6 k8 q( Z# K1 ~7 A2 V6 N3 Q! _4 z2 j7 p
9、程序的局部變量、全局變量和動(dòng)態(tài)申請數(shù)據(jù)分別存在于哪里?2 H( k8 f4 z: A- L1 M4 r8 o
局部變量存在于棧區(qū)。全局變量存在于靜態(tài)區(qū)(數(shù)據(jù)段)。動(dòng)態(tài)申請的數(shù)據(jù)存在于堆區(qū)。
; U) T+ _1 a# V10、在C語言中,如何實(shí)現(xiàn)鏈表?請舉例說明。; O1 ?: [9 u9 U  X3 `! H' J6 ?
鏈表是一種動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu),由節(jié)點(diǎn)組成,每個(gè)節(jié)點(diǎn)包含數(shù)據(jù)部分和指向下一個(gè)節(jié)點(diǎn)的指針。: a! p9 ~3 n1 ]$ q  e6 H( o) N
在C語言中,可以通過結(jié)構(gòu)體和指針來實(shí)現(xiàn)鏈表。例如,單鏈表的節(jié)點(diǎn)可以定義為:" p9 A! w' f  K( s9 }
  • struct Node {    int data;    struct Node* next;};
    8 _( w. G5 [, l# o然后通過動(dòng)態(tài)分配內(nèi)存和設(shè)置指針來構(gòu)建鏈表。例如,創(chuàng)建一個(gè)新的節(jié)點(diǎn)并插入到鏈表的開頭:7 J  ]  P4 j8 |) Y
  • struct Node* head = NULL;struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));newNode->data = 10;newNode->next = head;head = newNode;
    ) Q5 N- [; y" L, Q' G/ J由于篇幅有限,今天就分享這些,其實(shí)還有很多很多,大家面試之前,盡量先刷一波面試題。9 F- E/ Q0 H: v+ Y) c

    & M8 [* B. K4 B作者 | strongerHuang
    3 v+ r# a. }) t; d/ E+ o" r! z微信公眾號(hào) | strongerHuang/ ?8 e9 {1 M* l" n8 i' ?. V
    -END-! v6 h1 B# R2 l4 U
    往期推薦:點(diǎn)擊圖片即可跳轉(zhuǎn)閱讀
    ( m6 B& o  r7 o* c  c/ h: B0 j                                                        # `  c; |3 q& |$ N! f: F/ ?
                                                                    ' B  |4 r- }1 k
                                                                            7 j8 l1 D9 G1 f" w' q! O
                                                                                   
    * w9 X# r0 h1 F) |( Z, k% G / V* Y: z" q2 k: x
                                                                                   
    ! ?  `7 X5 e; c5 \  s+ T  _                                                                                        硬件都做出來了,客戶說想改一下,結(jié)果,全部推倒重做!
    ' h: c# |2 ~% |! ~6 x                                                        * ^- F5 A  P. z/ o$ X/ L
                                                                   
    % }4 N- t( W9 T3 j0 ^1 r                                                                        0 ^8 Z' y' v+ U) B
                                                                                    ( b. a6 w3 r; N8 r

    2 p. X; b; y8 @7 L) }$ `% v                                                                                / u$ p& H% \! V
                                                                                            嵌入式架構(gòu)設(shè)計(jì),淺談"驅(qū)動(dòng)分離式"設(shè)計(jì)思想。
    & C( J& W& x4 u                                                               
    & j9 l7 y/ X" ?: s( }                                                                        ; a0 Q! G! w6 q  S5 M8 o: `/ J
                                                                                    + a! `- Z( Y4 `% `9 v$ s7 C' k
    3 f6 y5 {# z* |* l
                                                                                   
    ) `1 v& k1 ?0 ?+ t- u* Y+ U                                                                                        分享一個(gè)跨平臺(tái)通用的 GUI 框架!% v# M# t8 E9 a7 W% H) j* r
                                                                                   
    8 e7 n' x" H! n                                                                       
    ( [3 {9 U+ ]1 K! F5 [                                                                4 |& r: ]9 G" Z! z. E: H. p; Q" \
                                                            我是老溫,一名熱愛學(xué)習(xí)的嵌入式工程師: x: o  w! Q/ O3 Q" k4 w
    關(guān)注我,一起變得更加優(yōu)秀!
  • 發(fā)表回復(fù)

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

    本版積分規(guī)則


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