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

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

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

嵌入式MCU工程師,面試常被問(wèn)及的問(wèn)題。

[復(fù)制鏈接]

452

主題

452

帖子

710

積分

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

Rank: 2

積分
710
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 昨天 17:50 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
我是老溫,一名熱愛學(xué)習(xí)的嵌入式工程師
1 l1 h) f* I: R# i  l! G, @* o5 h9 K關(guān)注我,一起變得更加優(yōu)秀!有些工程師可能覺(jué)得單片機(jī)沒(méi)啥技術(shù)含量,但事實(shí)是單片機(jī)涵蓋的技術(shù)非常之多,從底層到應(yīng)用,應(yīng)該沒(méi)有一個(gè)人能熟練掌握其中所有的技術(shù)。1 b' V$ l( t+ @7 c8 k. ]

! T- _0 P: p. W5 I這里就站在面試的角度來(lái)說(shuō)說(shuō):?jiǎn)纹瑱C(jī)工程師面試常見問(wèn)題。4 a/ T0 T4 u. g$ x
/ P: n8 P( V  k5 _  q5 L5 u
1、單片機(jī)上電之后不運(yùn)行,可能的原因有哪些?2 Z& [8 s8 `/ [
可能的原因包括供電問(wèn)題(如VCC電壓偏離正常范圍)、晶振問(wèn)題(如晶振損壞或未起振)、RESET引腳電平邏輯錯(cuò)誤(如一直處于復(fù)位狀態(tài))、程序下載或擦除問(wèn)題(如flash無(wú)法下載或損壞)以及控制程序問(wèn)題(如程序存在bug)。
* ^9 H. H# q& A7 m
; {/ ~. w: d+ U8 o2、看門狗定時(shí)器的作用?# K$ a4 O( b7 d5 ~  e% _
看門狗定時(shí)器(Watchdog Timer)在嵌入式系統(tǒng)中用于監(jiān)控和重置系統(tǒng),以防止因軟件故障導(dǎo)致的系統(tǒng)崩潰。它通過(guò)定時(shí)檢查系統(tǒng)是否正常運(yùn)行,并在超時(shí)后觸發(fā)系統(tǒng)重置,從而提高系統(tǒng)的可靠性和穩(wěn)定性。+ s: s2 R% N) R6 f! q- m
. c# a) ?) m; w, B3 M3 q3 N0 _
3、單片機(jī)中斷處理流程是怎樣的?: [, l' l4 R( r# d
單片機(jī)中斷處理流程通常包括三個(gè)步驟:中斷響應(yīng)、中斷處理和中斷返回。
" Q! f/ K0 y5 d, a當(dāng)中斷發(fā)生時(shí),中斷系統(tǒng)通過(guò)硬件自動(dòng)生成長(zhǎng)調(diào)用指令(LACLL),將斷點(diǎn)地址壓入堆棧保護(hù),并將對(duì)應(yīng)的中斷入口地址裝入程序計(jì)數(shù)器PC,使程序轉(zhuǎn)向該中斷入口地址執(zhí)行中斷服務(wù)程序。中斷服務(wù)程序完成后,計(jì)算機(jī)通過(guò)中斷返回指令RE將斷點(diǎn)地址從堆棧中彈出,返回到程序計(jì)數(shù)器PC,并通知中斷系統(tǒng)已完成中斷處理。
  y/ `, c0 w) d& D/ A- x' X! F( b2 Z/ {# v; L& H
4、解釋一下進(jìn)程、線程、協(xié)程的概念, o6 f. \' u/ @
進(jìn)程:進(jìn)程是并發(fā)執(zhí)行的程序在執(zhí)行過(guò)程中分配和管理資源的基本單位,是一個(gè)動(dòng)態(tài)概念,競(jìng)爭(zhēng)計(jì)算機(jī)系統(tǒng)資源的基本單位。
: ?6 Y6 B( F# y  _: Q3 N, F7 l& n8 _  b" P# }7 a
線程:線程是進(jìn)程的一個(gè)執(zhí)行單元,是進(jìn)程內(nèi)科調(diào)度實(shí)體。比進(jìn)程更小的獨(dú)立運(yùn)行的基本單位。線程也被稱為輕量級(jí)進(jìn)程。
6 C8 [8 W1 o, D1 l2 e" ]
. P1 T5 d( z* A0 s3 |/ p* P協(xié)程:是一種比線程更加輕量級(jí)的存在。一個(gè)線程也可以擁有多個(gè)協(xié)程。其執(zhí)行過(guò)程更類似于子例程,或者說(shuō)不帶返回值的函數(shù)調(diào)用。. @% Q5 K6 Y1 j; h
- x: T  M; ?  G, h' m5 w) i
5、什么是嵌入式系統(tǒng)?
6 r7 k4 y- ^0 T/ B5 k' _7 ~嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪的專用計(jì)算機(jī)系統(tǒng)。它適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的場(chǎng)合。嵌入式系統(tǒng)通常由處理器、存儲(chǔ)器、輸入輸出設(shè)備、軟件等組成,具有體積小、功耗低、可靠性高、功能專用等特點(diǎn)。$ h+ s+ E- N, q* q
$ C# n0 R$ Q- @( u0 }7 Z
6、C語(yǔ)言中堆和棧的區(qū)別是什么?( f, A+ j* G; k- Q* f3 y
堆和棧是C語(yǔ)言中用于存儲(chǔ)數(shù)據(jù)的兩種不同區(qū)域。棧由系統(tǒng)自動(dòng)分配和管理,通常用于存儲(chǔ)局部變量和函數(shù)調(diào)用時(shí)的臨時(shí)數(shù)據(jù);而堆需要程序員自己申請(qǐng)和釋放,通常用于存儲(chǔ)動(dòng)態(tài)分配的數(shù)據(jù)。兩者在存儲(chǔ)內(nèi)容、管理方式、空間大小、能否產(chǎn)生碎片、生長(zhǎng)方向、分配方式和分配效率等方面都存在差異。
6 J' ]# D% E6 C( K
  a: u' J0 L" Q* B8 ]7、請(qǐng)簡(jiǎn)單說(shuō)下嵌入式系統(tǒng)中的RTOS調(diào)度策略/ z3 N2 A2 U) D9 \; S5 W
RTOS(實(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í)行。8 B0 R( k/ ^4 H

0 \$ y% `. Y8 ?* w" o8、你如何保證單片機(jī)代碼的質(zhì)量和可靠性?
; i" q% f% h. l" U" C在單片機(jī)項(xiàng)目中,我通常會(huì)采取以下措施來(lái)保證代碼的質(zhì)量和可靠性:首先,我會(huì)對(duì)代碼進(jìn)行嚴(yán)格的測(cè)試和驗(yàn)證,包括單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試等;其次,我會(huì)遵循良好的編程規(guī)范和代碼風(fēng)格,以提高代碼的可讀性和可維護(hù)性;最后,我會(huì)定期回顧和更新代碼,以消除潛在的錯(cuò)誤和漏洞。1 S9 H% B. a0 a9 E3 L3 ]4 R2 i3 R
! p. u/ ]; a* ~7 B3 k" \& E
9、程序的局部變量、全局變量和動(dòng)態(tài)申請(qǐng)數(shù)據(jù)分別存在于哪里?) x  Q) ?( r' C" Q2 \: w9 r
局部變量存在于棧區(qū)。全局變量存在于靜態(tài)區(qū)(數(shù)據(jù)段)。動(dòng)態(tài)申請(qǐng)的數(shù)據(jù)存在于堆區(qū)。7 p- R6 X6 x, s# f  q
10、在C語(yǔ)言中,如何實(shí)現(xiàn)鏈表?請(qǐng)舉例說(shuō)明。
# }& U: q  P* ~9 N! p* K鏈表是一種動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu),由節(jié)點(diǎn)組成,每個(gè)節(jié)點(diǎn)包含數(shù)據(jù)部分和指向下一個(gè)節(jié)點(diǎn)的指針。; n, k' a/ q) Z: l  d1 E3 U- B- Z
在C語(yǔ)言中,可以通過(guò)結(jié)構(gòu)體和指針來(lái)實(shí)現(xiàn)鏈表。例如,單鏈表的節(jié)點(diǎn)可以定義為:# N% c& M6 B( l
  • struct Node {    int data;    struct Node* next;};. q7 {6 j; S4 a) j+ m9 i; k+ I
    然后通過(guò)動(dòng)態(tài)分配內(nèi)存和設(shè)置指針來(lái)構(gòu)建鏈表。例如,創(chuàng)建一個(gè)新的節(jié)點(diǎn)并插入到鏈表的開頭:
    , S5 \" I/ C8 @; l) R
  • struct Node* head = NULL;struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));newNode->data = 10;newNode->next = head;head = newNode;- ]7 q- @6 ^9 F$ O( u7 _. _& k- [
    由于篇幅有限,今天就分享這些,其實(shí)還有很多很多,大家面試之前,盡量先刷一波面試題。
    % E7 j5 T% a9 K' C. ?. w( y& l6 e# j5 q% T* l' C' a% p) X. Z
    作者 | strongerHuang: |% s' L; R* i: O8 z6 O
    微信公眾號(hào) | strongerHuang4 f7 M, @9 H# K; ^' {& ~. y
    -END-- D/ J3 q! u, s' s1 q! U
    往期推薦:點(diǎn)擊圖片即可跳轉(zhuǎn)閱讀& |- S# K7 V$ F1 P
                                                            9 `0 @7 W# |  ~" E1 T. d
                                                                      D- Z, c$ ?3 w+ v1 k4 U% W# N3 ~
                                                                           
    ( p5 G) ]& O; c                                                                               
    5 ~. t% d+ v. ~" U 1 d3 X& A0 J& z/ v
                                                                                    + a$ I' w3 d$ g2 P! I0 M1 r
                                                                                            硬件都做出來(lái)了,客戶說(shuō)想改一下,結(jié)果,全部推倒重做!1 `/ {- _3 H6 }0 N7 }, g7 ~
                                                            - _: |0 ~1 F* [/ O' c/ J* l
                                                                   
    ( x# `( u& L1 Z. p3 q! i: z                                                                       
    5 B9 b9 R! z4 {3 d' Y                                                                               
    , r  G2 o* S: W8 u7 o , B2 q- L$ R' D% D
                                                                                    / L5 c: P) G5 B  g/ v' B
                                                                                            嵌入式架構(gòu)設(shè)計(jì),淺談"驅(qū)動(dòng)分離式"設(shè)計(jì)思想。
    # \- o* j, H4 ?# L; z9 P                                                               
      x/ v' |% A* |( z, ~                                                                        ! }6 T$ s3 N4 s% }5 x
                                                                                    % q, ^! ?- A& j" U
    ( @" c0 k6 I' T2 b/ a
                                                                                   
    8 I! E; ?* X1 t1 D9 o9 ^6 q2 ~4 x                                                                                        分享一個(gè)跨平臺(tái)通用的 GUI 框架!
    6 u& A0 |1 T, P8 _                                                                               
    ; C+ T+ |1 \! V% q                                                                       
    5 p8 d5 o  E' d# R                                                               
    ( {$ f5 P0 g2 j3 |1 H                                                        我是老溫,一名熱愛學(xué)習(xí)的嵌入式工程師% }  c7 }( Y0 x' Y
    關(guān)注我,一起變得更加優(yōu)秀!
  • 發(fā)表回復(fù)

    本版積分規(guī)則

    關(guān)閉

    站長(zhǎng)推薦上一條 /1 下一條


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