|
ai5u1fzzc3364031920141.gif (60.41 KB, 下載次數(shù): 4)
下載附件
保存到相冊
ai5u1fzzc3364031920141.gif
2024-9-21 21:47 上傳
, O: J" s& J" `! Z: X/ r3 b7 M3 I
點(diǎn)擊上方藍(lán)色字體,關(guān)注我們( }8 h' M& Z J% Q% W& p
首先,明確方向是至關(guān)重要的。如果你對嵌入式開發(fā)感興趣,建議專攻軟件,而不是硬件。這并不是說硬件不重要,而是因?yàn)榇蠖鄶?shù)公司都有專門的硬件團(tuán)隊(duì)負(fù)責(zé)相關(guān)工作,單片機(jī)的硬件部分并不會(huì)成為學(xué)習(xí)的重點(diǎn)。如果你試圖同時(shí)學(xué)硬件和軟件,往往兩邊都無法深入掌握。( j& b4 f& b. K+ b; R g' J
8 E3 l9 M- z% u當(dāng)然,小型公司可能更偏好“全能型”工程師,他們希望一個(gè)人能完成從軟件到硬件的所有工作,以節(jié)約開發(fā)成本。但是,這類公司通常規(guī)模較小,往往是創(chuàng)業(yè)公司,只有一到兩個(gè)技術(shù)人員,這些技術(shù)人員既要設(shè)計(jì)和調(diào)試硬件,還要負(fù)責(zé)生產(chǎn)、維修,甚至做結(jié)構(gòu)設(shè)計(jì)和產(chǎn)品組裝。而一旦公司規(guī)模有所擴(kuò)展,軟硬件的分工就會(huì)更加明確。' }% s( u2 ^7 m2 u# U/ m
( }& n; e( P& \; ]1 |: X! e( a因此,如果你決定專攻軟件,硬件知識(shí)的要求就相對較低了。你只需要掌握如何閱讀簡單的電路原理圖,懂得一些基礎(chǔ)的電路分析知識(shí)即可,像基爾霍夫定律、戴維南定律、節(jié)點(diǎn)法和網(wǎng)孔法這些基本的電路理論就足夠應(yīng)對硬件工作中的需求了。3 Q: e' u/ {- r2 G: R
6 w9 x3 y9 O2 P) d1 y6 G H% A
學(xué)習(xí)路徑建議學(xué)習(xí)基礎(chǔ)C語言和MCU開發(fā)板, G. A2 j3 T- Y- S4 g5 C* ?$ Y
如果你有一定的C語言基礎(chǔ),可以直接購買一個(gè)STM32或ESP32開發(fā)板,開始動(dòng)手學(xué)習(xí)。2 _+ O, P) n! q2 J- e: `& f2 t
這里不建議你專門學(xué)習(xí)匯編語言,現(xiàn)代公司99%的場景中都不會(huì)用到它。% `; B5 c% Q- x" l* X" A* t; V
對于C語言的學(xué)習(xí),也不要過于刻意,一開始遇到問題再去學(xué)習(xí)解決,這樣學(xué)習(xí)效率會(huì)更高。避免Arduino
: B* y7 |* ^7 k# ~4 q8 G2 W1 n) w不要以Arduino作為你的主學(xué)習(xí)工具。
. v: ]4 a o/ z/ @4 X雖然Arduino作為入門工具不錯(cuò),但它的靈活性和性能限制較大,正經(jīng)公司在實(shí)際項(xiàng)目中不會(huì)用它。9 h3 u X4 L' t+ e7 w
Arduino更適合初學(xué)者或?qū)W生學(xué)習(xí)硬件編程的基礎(chǔ)概念,而不是實(shí)際的嵌入式項(xiàng)目開發(fā)。深入掌握MCU外設(shè)和寄存器操作
, ~: K5 Z f4 ]/ G( ?! i d6 J學(xué)習(xí)開發(fā)板中常用的外設(shè)接口,比如GPIO、ADC、DAC、Timer(PWM)、UART、SPI/IIC等。* i* o9 a! d) C
它們在絕大多數(shù)項(xiàng)目中都會(huì)用到,因此你需要了解這些外設(shè)的用途、工作原理,并通過實(shí)際的代碼調(diào)試加深理解。$ @7 {* u: g4 F4 g+ J
此外,中斷的使用也是關(guān)鍵,特別是在ADC、Timer、UART的使用場景中。
( H4 X: E( ]( C5 U. o- w6 P" `不要僅僅依賴廠商提供的庫函數(shù),深入到寄存器層級(jí),閱讀MCU廠商提供的《軟件設(shè)計(jì)手冊》和《數(shù)據(jù)手冊》,理解每個(gè)寄存器的作用和使用場景。2 s& I# v& _0 `, b; J4 {- L
你應(yīng)該具備通過直接操作寄存器來配置和控制外設(shè)的能力。學(xué)習(xí)嵌入式操作系統(tǒng); v; I3 G8 m( `) R9 `
接下來,你需要學(xué)習(xí)一個(gè)嵌入式操作系統(tǒng),比如FreeRTOS或RT-Thread。
0 w6 Z$ }+ K! M' z9 N; E9 g. k在學(xué)習(xí)這些操作系統(tǒng)時(shí),重點(diǎn)掌握如何編寫任務(wù)和中斷銜接程序,不用花費(fèi)太多精力在移植操作上,因?yàn)楣卷?xiàng)目中通常會(huì)由專人或廠商負(fù)責(zé)移植工作。$ R( U9 C5 W: M3 F0 O, _
多任務(wù)協(xié)調(diào)是嵌入式開發(fā)中的一個(gè)重要技能,熟練掌握多任務(wù)的協(xié)調(diào)工作,而不僅僅是編寫?yīng)毩⒌娜蝿?wù)。包裝你的學(xué)習(xí)成果# B) r" a# P7 l! k$ ^! a' ?
學(xué)習(xí)的過程中,你可以將自己的學(xué)習(xí)過程包裝成一個(gè)完整的項(xiàng)目。$ z( F6 M, |6 m- u- y# f0 ^% l2 d
你要設(shè)想產(chǎn)品的功能、目標(biāo)用戶、應(yīng)用場景以及解決的問題,并把學(xué)習(xí)內(nèi)容融入到這個(gè)虛擬的項(xiàng)目中。
+ S1 }. W& V0 s不要過度堆砌外設(shè),避免顯得不真實(shí)。$ }9 o9 j( K- v1 K/ J- m! o
[/ol]5 d& h l" h, `4 v4 C
深度技能加分項(xiàng)) @( S1 i4 o# r' q X X8 S
經(jīng)過上述學(xué)習(xí)后,如果你擁有985/211名校背景或碩士學(xué)位,在進(jìn)入職場時(shí)可能已經(jīng)具備一定的競爭力。9 K1 @5 v$ g& w$ ?+ l2 {, B$ }# [
2 N( U" I1 Q# J& `
如果沒有名;?qū)W位的加持,那么以下這些技能可以為你加分:Cortex-M內(nèi)核:深入理解MCU內(nèi)核的各個(gè)組成部分及其工作機(jī)制,包括啟動(dòng)流程、指令集、存儲(chǔ)映射、SysTick定時(shí)器、異常和中斷等。IoT操作系統(tǒng):進(jìn)一步學(xué)習(xí)物聯(lián)網(wǎng)操作系統(tǒng)的高級(jí)功能,如設(shè)備驅(qū)動(dòng)模型、文件系統(tǒng)、低功耗管理、以太網(wǎng)及TCP/IP協(xié)議棧等。這些系統(tǒng)類似于Linux的簡化版,有助于你未來學(xué)習(xí)更復(fù)雜的操作系統(tǒng)。Modbus與RS-485:學(xué)習(xí)Modbus協(xié)議的應(yīng)用場景、報(bào)文格式、通信時(shí)序及常用命令。這是工業(yè)控制中廣泛使用的協(xié)議。CAN通信:掌握CAN協(xié)議,這是汽車行業(yè)的必備技能,了解報(bào)文格式、通信時(shí)序及常用命令。藍(lán)牙或USB:學(xué)習(xí)藍(lán)牙或USB的協(xié)議棧結(jié)構(gòu)、通信時(shí)序及常用應(yīng)用層端點(diǎn),這是物聯(lián)網(wǎng)開發(fā)中的常用技術(shù)。PID控制算法:理解并調(diào)試PID控制算法,特別是在工業(yè)控制中廣泛應(yīng)用。LCD及UI開發(fā):掌握一種UI庫的常用控件,特別是在有屏幕交互的嵌入式項(xiàng)目中有用。Bootloader開發(fā):理解Bootloader的原理、內(nèi)存分配及在線升級(jí)機(jī)制,這是嵌入式系統(tǒng)啟動(dòng)的核心部分。TCP/IP協(xié)議棧:深入學(xué)習(xí)TCP/IP分層模型、鏈路層協(xié)議及Socket編程接口。理解通信協(xié)議中的分層模型有助于構(gòu)建健壯的網(wǎng)絡(luò)系統(tǒng)。C++在嵌入式開發(fā)中的應(yīng)用:學(xué)習(xí)C++的面向?qū)ο筇匦裕莆债惓L幚、RTTI(運(yùn)行時(shí)類型識(shí)別)和STL(標(biāo)準(zhǔn)模板庫)等高級(jí)特性。隨著嵌入式系統(tǒng)日益復(fù)雜,C++將在嵌入式領(lǐng)域中發(fā)揮更大的作用。
8 }0 C* x. s w# q# k[/ol]
; a/ l# k) |$ e ^8 Z后續(xù)方向3 {) W! N0 X+ k8 G7 n) k
當(dāng)你掌握上述技能后,技術(shù)方向可以延伸至以下領(lǐng)域:* `1 z, e( d+ U( g. c
硬件設(shè)計(jì)Linux內(nèi)核與驅(qū)動(dòng)開發(fā)QT與C++應(yīng)用開發(fā)Android/iOS應(yīng)用開發(fā)架構(gòu)師方向4 w3 @' r" ~# I8 x
2 P2 \4 j/ C$ b4 w% a
cuvtr2c0onw64031920241.jpg (71.14 KB, 下載次數(shù): 3)
下載附件
保存到相冊
cuvtr2c0onw64031920241.jpg
2024-9-21 21:47 上傳
) Y+ p* O( z6 ?" I6 i9 h% t
51hg4uiz2oh64031920341.gif (45.46 KB, 下載次數(shù): 2)
下載附件
保存到相冊
51hg4uiz2oh64031920341.gif
2024-9-21 21:47 上傳
6 p6 n0 J0 Y! U& u( w3 t; F
點(diǎn)擊閱讀原文,更精彩~ |
|