<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 設計應用 > 嵌入式學習過程繞不開的知識點

          嵌入式學習過程繞不開的知識點

          作者:時間:2024-02-23來源:網絡收藏

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

          本文引用地址:http://www.ex-cimer.com/article/202402/455679.htm

          做嵌入式這行已經8年了吧,也算是一個老了,工作多年,做過MCU、DSP、ARM、ARM+DSP、ARM+FPGA等等芯片?,F在將嵌入式學習的一些繞不開的技術點整理下,希望對嵌入式初學者有些幫助。

          1. 嵌入式繞不開各種接口

          比如:UART、SPI、I2C、USB、ETH、MIPI、EDP、CAN、I2S、HDMI等等。需要了解各接口的使用場景、帶寬、機制、時序、工作模式、缺點、時序等等,硬件接口這一塊兒就會讓很多新手摸不到頭腦。

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

          嵌入式一般都需要自己搭建交叉編譯工具鏈,當然MCU類的開發也會有成熟的IDE可供使用,但是對于編譯器而言一般都是GCC。

          對于嵌入式開發人員來說,搭建交叉編譯工具鏈。編譯過程分為 —— 預編譯、編譯、匯編、鏈接,通過GCC提供的工具可以使程序完成任一階段的處理,要清楚各個階段主要完成了什么工作。鏈接分為靜態鏈接、動態鏈接,各自的優缺點及使用場景要知道;同時編譯生成ELF格式的文件,要理解ELF文件的格式、必要的時候需要通過objdump或readelf工具來解析ELF文件。

          3. 嵌入式開發繞不開調試

          嵌入式開發的很大一部分時間都在調試,好的調試方法和工具可以更快速的定位問題。

          · vargrind 

          · gdb

          · kdump

          · corddump 

          · oops

          4. 嵌入式開發離不開優化

          嵌入式的優化分為兩部分:算法上的優化,編程上的優化。其中編程上的優化分為以下技術:

          · 內存使用上的優化-cacheline的使用

          cache涉及到cache命中率、cache一致性,write-back,wrte-through等。全局變量問題、常用變量位置問題、互鎖問題。

          · 并行優化

          并行優化主要是SIMT或SIMD技術的應用,包括GPU的使用,NEON優化、SSE優化等。其中并行分為任務并行和數據并行、任務并行是多核方面的優勢。數據并行是GPU和NEON來解決。

          · 依賴性問題

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

          5. 嵌入式繞不開驅動

          很多人對驅動開發有技術情節,越是年輕的越是這樣。驅動的開發本質上就是給外設配置參數,使其工作在期望的方式。linux下的驅動開發需要遵從linux的驅動框架,裸機的驅動開發就是直接配置寄存器就可以。

          linux有一個很好的理念,就是萬物皆文件,linux將外設也會抽象成文件,讀寫外設和讀寫文件在操作上沒有了區別。linux下的設備分為字符型設備、塊設備、網絡設備。

          linux下注冊驅動的時候,將設備號和文件名進行了映射,并實現file_operation里的一些函數,例如,write、read、ioctl。其中write、read主要用于讀寫外設的有用數據。ioctl主要用于配置外設的一些參數,使其工作在不同的模式或狀態。

          6. 嵌入式離不開操作系統

          嵌入式操作系統有很多種:vxworks、ucos、freertos、bios、linux、uclinux、nuttx等等。對于操作系統的選擇個人感覺要看實時性,以及生態。生態很重要,這樣出現問題的時候,才不至于絕望,感覺不是孤軍奮斗。

          其實操作系統的出現,主要是為了解決任務調度、內存管理,這兩方面是操作系統的精髓。感興趣可以閱讀源碼,ucos的源碼不多,可以從它看起。

          嵌入式的東西很多,想要整理起來,也是很花費力氣的一件事情,稍后的一年時間,有時間我就會慢慢的整理,算是對自己做一個交代,當然如果對別人有用的話,那就更好。

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



          關鍵詞: 嵌入式 工程師

          評論


          相關推薦

          技術專區

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();