0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

學(xué)習(xí)嵌入式技術(shù)的重點(diǎn)分享

STM32嵌入式開發(fā) ? 來源:搜狐網(wǎng) ? 作者:搜狐網(wǎng) ? 2020-09-23 11:05 ? 次閱讀

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

一位朋友做嵌入式這行已經(jīng)8年,也算是一個(gè)老工程師了,工作多年,做過MCU、DSPARM、ARM+DSP、ARM+FPGA等等芯片。把嵌入式學(xué)習(xí)的一些繞不開的技術(shù)點(diǎn)整理了一下下,希望對嵌入式初學(xué)者有些幫助。

嵌入式繞不開各種接口

比如:uart 、spi、i2cusb、eth、mipi、edp、can、i2s、hdmi等等。需要了解各接口的使用場景、帶寬、機(jī)制、時(shí)序、工作模式、缺點(diǎn),時(shí)序等等。我相信硬件接口這一塊兒就會讓很多新手摸不到頭腦吧。

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

嵌入式一般都需要自己搭建交叉編譯工具鏈,當(dāng)然MCU類的開發(fā)也會有成熟的IDE可供使用。但是對于編譯器而言一般都是GCC。對于嵌入式開發(fā)人員來說,搭建交叉編譯工具鏈。編譯過程分為 ——預(yù)編譯、編譯、匯編、鏈接。通過GCC提供的工具可以使程序完成任一階段的處理。要清楚各個(gè)階段主要完成了什么工作。鏈接分為靜態(tài)鏈接、動態(tài)鏈接,各自的優(yōu)缺點(diǎn)及使用場景要知道。同時(shí)編譯生成ELF格式的文件,要理解ELF文件的格式、必要的時(shí)候需要通過objdump或readelf工具來解析ELF文件。

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

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

vargrind

gdb

kdump

corddump

oops

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

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

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

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

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

很多人對驅(qū)動開發(fā)有技術(shù)情節(jié),越是年輕的工程師越是這樣。驅(qū)動的開發(fā)本質(zhì)上就是給外設(shè)配置參數(shù),使其工作在期望的方式。linux下的驅(qū)動開發(fā)需要遵從linux的驅(qū)動框架,裸機(jī)的驅(qū)動開發(fā)就是直接配置寄存器就可以。linux有一個(gè)很好的理念,就是萬物皆文件。linux將外設(shè)也會抽象成文件,讀寫外設(shè)和讀寫文件在操作上沒有了區(qū)別。linux下的設(shè)備,分為字符型設(shè)備、塊設(shè)備、網(wǎng)絡(luò)設(shè)備。linux下注冊驅(qū)動的時(shí)候,將設(shè)備號和文件名進(jìn)行了映射,并實(shí)現(xiàn)file_operation里的一些函數(shù),例如,write、read、ioctl。其中write、read主要用于讀寫外設(shè)的有用數(shù)據(jù)。ioctl主要用于配置外設(shè)的一些參數(shù),使其工作在不同的模式或狀態(tài)。

其實(shí)嵌入式指的就是嵌入式操作系統(tǒng),操作系統(tǒng)有很多種。vxworks、ucos、freertos、bios、linux、uclinux、nuttx等等。對于操作系統(tǒng)的選擇個(gè)人感覺要看實(shí)時(shí)性、以及生態(tài)。生態(tài)很重要,這樣出現(xiàn)問題的時(shí)候,才不至于絕望,感覺不是孤軍奮斗。其實(shí)操作系統(tǒng)的出現(xiàn),主要是為了解決任務(wù)調(diào)度、內(nèi)存管理。這兩方面是操作系統(tǒng)的精髓。感興趣可以閱讀源碼。ucos的源碼不多,可以從它看起。

總結(jié)

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

目前AI異?;鸨F(xiàn)階段大家都停留在功能實(shí)現(xiàn)上,至于端測的落地,個(gè)人感覺還有一小段距離要走。當(dāng)AI落地的時(shí)候,我相信市場上對嵌入式工程師、硬件工程師的需求會越來越大。尤其是涉及到性能優(yōu)化方面,我相信應(yīng)該會有很大的市場吧。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5059

    文章

    18973

    瀏覽量

    302023
  • 嵌入式技術(shù)
    +關(guān)注

    關(guān)注

    10

    文章

    360

    瀏覽量

    35518

原文標(biāo)題:學(xué)習(xí)嵌入式繞不開的技術(shù)點(diǎn)

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何學(xué)習(xí)嵌入式Linux開發(fā)技術(shù)

    如何學(xué)習(xí)嵌入式Linux開發(fā)技術(shù)作者: 曹國輝英貝得教育技術(shù)總監(jiān) 嵌入式Linux金牌講師 一、什么是
    發(fā)表于 02-04 13:27

    嵌入式學(xué)習(xí)路線

    一通百通,事半功倍的學(xué)習(xí)效果。 首先嵌入式技術(shù)主要分為嵌入式軟件和嵌入式硬件2大方向。 嵌入式
    發(fā)表于 09-20 11:36

    嵌入式linux培訓(xùn)教程 嵌入式linux學(xué)習(xí)方法步驟

      嵌入式開發(fā)技術(shù)入門易,精通難。當(dāng)然,如果相對于其他的開發(fā)技術(shù)來說,嵌入式學(xué)習(xí)門檻相對較高。但嵌入式
    發(fā)表于 07-03 18:25

    系統(tǒng)嵌入式學(xué)習(xí)路線

    、產(chǎn)品的專業(yè)知識。作為嵌入式初學(xué)者,我們不可能,也沒有那么多精力把所有的知識到搞的很精通,我要學(xué)會抓住重點(diǎn),學(xué)會取舍,達(dá)到一通百通,事半功倍的學(xué)習(xí)效果。首先嵌入式
    發(fā)表于 08-18 11:19

    嵌入式有什么值得學(xué)習(xí)的軟硬件技術(shù)

    進(jìn)入嵌入式編程領(lǐng)域,那么2020年C以及C++仍然是你應(yīng)該重點(diǎn)學(xué)習(xí)的編程語言。如果你想嘗試嵌入式編程,那么可以從下面幾個(gè)方面著手:https://www.learn-c.org/Lea
    發(fā)表于 06-30 17:36

    嵌入式有什么值得學(xué)習(xí)的軟硬件技術(shù)

    進(jìn)入嵌入式編程領(lǐng)域,那么2020年C以及C++仍然是你應(yīng)該重點(diǎn)學(xué)習(xí)的編程語言。如果你想嘗試嵌入式編程,那么可以從下面幾個(gè)方面著手:https://www.learn-c.org/Lea
    發(fā)表于 07-09 10:35

    嵌入式有什么值得學(xué)習(xí)的軟硬件技術(shù)

    進(jìn)入嵌入式編程領(lǐng)域,那么2020年C以及C++仍然是你應(yīng)該重點(diǎn)學(xué)習(xí)的編程語言。如果你想嘗試嵌入式編程,那么可以從下面幾個(gè)方面著手:https://www.learn-c.org/Lea
    發(fā)表于 07-12 10:00

    嵌入式有什么值得學(xué)習(xí)的軟硬件技術(shù)

    進(jìn)入嵌入式編程領(lǐng)域,那么2020年C以及C++仍然是你應(yīng)該重點(diǎn)學(xué)習(xí)的編程語言。如果你想嘗試嵌入式編程,那么可以從下面幾個(gè)方面著手:https://www.learn-c.org/Lea
    發(fā)表于 07-20 14:22

    如何學(xué)習(xí)嵌入式linux?學(xué)習(xí)嵌入式linux有什么技術(shù)門檻嗎?

    如何學(xué)習(xí)嵌入式linux?學(xué)習(xí)嵌入式linux有什么技術(shù)門檻嗎?
    發(fā)表于 10-20 07:23

    嵌入式技術(shù)學(xué)習(xí)步驟

    本節(jié)結(jié)合迅為的 iTOP-4412 開發(fā)板來介紹一下嵌入式技術(shù)學(xué)習(xí)步驟。大家都知道,嵌入式技術(shù)的知識面非常廣,學(xué)起來往往不知道如何下手,我
    發(fā)表于 12-27 07:45

    嵌入式學(xué)習(xí)路線你知道嗎?

    嵌入式學(xué)習(xí)路線你知道嗎? 1打好嵌入式軟件編程的基礎(chǔ) 這一階段重點(diǎn)打好嵌入式軟件編程的基礎(chǔ),包括學(xué)習(xí)
    發(fā)表于 06-14 16:00

    [學(xué)習(xí)嵌入式]嵌入式系統(tǒng)學(xué)習(xí)方法,輕松入門嵌入式

    [學(xué)習(xí)嵌入式]嵌入式系統(tǒng)學(xué)習(xí)方法,輕松入門嵌入式。
    發(fā)表于 03-28 15:29 ?79次下載

    嵌入式技術(shù)學(xué)習(xí)路線

    嵌入式技術(shù)是各種電子產(chǎn)品的核心技術(shù),也是工業(yè)4.0、遠(yuǎn)程醫(yī)療、3D打印等新興產(chǎn)業(yè)的核心技術(shù),具有廣闊的發(fā)展前景。很多計(jì)算機(jī)、電子信息類專業(yè)的學(xué)生都想把
    發(fā)表于 10-20 15:20 ?6次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>學(xué)習(xí)</b>路線

    嵌入式學(xué)習(xí)路線怎么學(xué),如何學(xué)習(xí)嵌入式系統(tǒng)

    隨著互聯(lián)網(wǎng)的快速發(fā)展,嵌入式也越來越火熱,更多的人投入到嵌入式開發(fā)的行列中來,那么想要學(xué)習(xí)嵌入式,該從哪里入手學(xué)習(xí),
    發(fā)表于 10-20 15:50 ?13次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>學(xué)習(xí)</b>路線怎么學(xué),如何<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>嵌入式</b>系統(tǒng)

    嵌入式學(xué)習(xí)路線怎么學(xué)?如何學(xué)習(xí)嵌入式系統(tǒng)?

    隨著互聯(lián)網(wǎng)的快速發(fā)展,嵌入式也越來越火熱,更多的人投入到嵌入式開發(fā)的行列中來,那么想要學(xué)習(xí)嵌入式,該從哪里入手學(xué)習(xí),
    的頭像 發(fā)表于 10-30 13:15 ?1581次閱讀