《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 其他 > 入門:淺談嵌入式學(xué)習(xí)那些你繞不開的技術(shù)點

入門:淺談嵌入式學(xué)習(xí)那些你繞不開的技術(shù)點

2022-11-25
來源:工程師進(jìn)階筆記
關(guān)鍵詞: Linux 嵌入式

很多人嵌入式學(xué)習(xí)都有些迷茫,,不知道從哪里入手,,不知道自己的水平位于哪個層次,,不知道從哪方面提升,,今天我們就從一個8年工作經(jīng)驗的嵌入式資深工程師的分享,來看一下嵌入式學(xué)習(xí)那些你繞不開的技術(shù)點。

一位朋友做嵌入式這行已經(jīng)8年,也算是一個老工程師了,工作多年,,做過MCU、DSP,、ARM,、ARM+DSP、ARM+FPGA等等芯片,。


把嵌入式學(xué)習(xí)的一些繞不開的技術(shù)點整理了一下下,,希望對嵌入式初學(xué)者有些幫助。

嵌入式繞不開各種接口

比如:uart ,、spi,、i2c、usb,、eth,、mipi、edp,、can,、i2s、hdmi等等,。需要了解各接口的使用場景,、帶寬、機(jī)制,、時序,、工作模式、缺點,,時序等等,。

我相信硬件接口這一塊兒就會讓很多新手摸不到頭腦吧,。

嵌入式繞不開交叉編譯工具

嵌入式一般都需要自己搭建交叉編譯工具鏈,,當(dāng)然MCU類的開發(fā)也會有成熟的IDE可供使用。

但是對于編譯器而言一般都是GCC,。對于嵌入式開發(fā)人員來說,,搭建交叉編譯工具鏈。編譯過程分為 ——預(yù)編譯,、編譯,、匯編,、鏈接。

通過GCC提供的工具可以使程序完成任一階段的處理,。要清楚各個階段主要完成了什么工作,。

鏈接分為靜態(tài)鏈接、動態(tài)鏈接,,各自的優(yōu)缺點及使用場景要知道,。

同時編譯生成ELF格式的文件,要理解ELF文件的格式,、必要的時候需要通過objdump或readelf工具來解析ELF文件,。

嵌入式開發(fā)繞不開調(diào)試

嵌入式開發(fā)的很大一部分時間都在調(diào)試,好的調(diào)試方法和工具可以更快速的定位問題,。學(xué)習(xí)過程中需要了解的工具:1 - vargrind2 - gdb3 - kdump4 - corddump5 - oops

嵌入式開發(fā)繞不開優(yōu)化

嵌入式的優(yōu)化分為兩部分,,算法上的優(yōu)化,編程上的優(yōu)化,。其中編程上的優(yōu)化分為以下技術(shù):

1-內(nèi)存使用上的優(yōu)化-cacheline的使用,。cache涉及到cache命中率、cache一致性,,write-back,,wrte-through等。全局變量問題,、常用變量位置問題,、互鎖問題。

2-并行優(yōu)化主要是SIMT或SIMD技術(shù)的應(yīng)用,,包括GPU的使用,,NEON優(yōu)化、SSE優(yōu)化等,。其中并行分為任務(wù)并行和數(shù)據(jù)并行,,任務(wù)并行是多核方面的優(yōu)勢,數(shù)據(jù)并行是GPU和NEON來解決,。

3-依賴性問題主要是流水線問題,,避免數(shù)據(jù)的依賴性可以高效的使用流水線。至于這部分的優(yōu)化要借助反匯編,,來對比不同寫法造成的差異,。

4-很多人對驅(qū)動開發(fā)有技術(shù)情節(jié),越是年輕的工程師越是這樣,。驅(qū)動的開發(fā)本質(zhì)上就是給外設(shè)配置參數(shù),,使其工作在期望的方式。

linux下的驅(qū)動開發(fā)需要遵從linux的驅(qū)動框架,,裸機(jī)的驅(qū)動開發(fā)就是直接配置寄存器就可以,。linux有一個很好的理念,,就是萬物皆文件。

linux將外設(shè)也會抽象成文件,,讀寫外設(shè)和讀寫文件在操作上沒有了區(qū)別,。linux下的設(shè)備,分為字符型設(shè)備,、塊設(shè)備,、網(wǎng)絡(luò)設(shè)備。

linux下注冊驅(qū)動的時候,,將設(shè)備號和文件名進(jìn)行了映射,,并實現(xiàn)file_operaTIon里的一些函數(shù),例如,,write,、read、ioctl,。

其中write,、read主要用于讀寫外設(shè)的有用數(shù)據(jù)。ioctl主要用于配置外設(shè)的一些參數(shù),,使其工作在不同的模式或狀態(tài),。

5-其實嵌入式指的就是嵌入式操作系統(tǒng),操作系統(tǒng)有很多種,。vxworks,、ucos、freertos,、bios,、linux、uclinux,、nuttx等等,。

對于操作系統(tǒng)的選擇個人感覺要看實時性、以及生態(tài),。生態(tài)很重要,,這樣出現(xiàn)問題的時候,才不至于絕望,,感覺不是孤軍奮斗,。

其實操作系統(tǒng)的出現(xiàn),主要是為了解決任務(wù)調(diào)度,、內(nèi)存管理,。這兩方面是操作系統(tǒng)的精髓,。感興趣可以閱讀源碼,。ucos的源碼不多,,可以從它看起。

總結(jié)

嵌入式的東西很多,,想要整理起來,,也是很花費(fèi)力氣的一件事情,有時間我就會慢慢的整理,,當(dāng)然如果對別人有用的話,,那就更好。

目前AI異?;鸨?,現(xiàn)階段大家都停留在功能實現(xiàn)上,至于端測的落地,,個人感覺還有一小段距離要走,。

當(dāng)AI落地的時候,我相信市場上對嵌入式工程師,、硬件工程師的需求會越來越大,。尤其是涉及到性能優(yōu)化方面,我相信應(yīng)該會有很大的市場吧,。



更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<<

mmexport1621241704608.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]