學習嵌入式想知道的就是嵌入式的課程大綱還有知識點了吧,很多人想要學習嵌入式開始的時候都是因為知道這個行業的就業好,工資高才想去學習的,對于嵌入式的其他都是不了解。今天粵嵌科技就來給大家講下嵌入式必學的知識點有哪些?
一、嵌入式繞不開各種接口
比如:uart 、spi、i2c、usb、eth、mipi、edp、can、i2s、hdmi等等。需要了解各接口的使用場景、帶寬、機制、時序、工作模式、缺點,時序等等。我相信硬件接口這一塊兒就會讓很多新手摸不到頭腦吧。
二、嵌入式繞不開交叉編譯工具
嵌入式一般都需要自己搭建交叉編譯工具鏈,當然MCU類的開發也會有成熟的IDE可供使用。但是對于編譯器而言一般都是GCC。對于嵌入式開發人員來說,搭建交叉編譯工具鏈。編譯過程分為 ——預編譯、編譯、匯編、鏈接。通過GCC提供的工具可以使程序完成任一階段的處理。要清楚各個階段主要完成了什么工作。鏈接分為靜態鏈接、動態鏈接,各自的優缺點及使用場景要知道。同時編譯生成ELF格式的文件,要理解ELF文件的格式、必要的時候需要通過objdump或readelf工具來解析ELF文件。
三、嵌入式開發繞不開調試
嵌入式開發的很大一部分時間都在調試,好的調試方法和工具可以更快速的定位問題。
.1 vargrind 的使用
2 gdb的使用
3 kdump
4 corddump
5 oops
四、嵌入式開發離不開優化
嵌入式的優化分為兩部分,算法上的優化,編程上的優化。其中編程上的優化分為以下技術。
1 內存使用上的優化-cacheline的使用
cache涉及到cache命中率、cache一致性,write-back,wrte-through等。全局變量問題、常用變量位置問題、互鎖問題。
2 并行優化
并行優化主要是SIMT或SIMD技術的應用,包括GPU的使用,NEON優化、SSE優化等。其中并行分為任務并行和數據并行、任務并行是多核方面的優勢。數據并行是GPU和NEON來解決。
3 依賴性問題
依賴性問題主要是流水線問題,避免數據的依賴性可以高效的使用流水線。至于這部分的優化要借助反匯編,來對比不同寫法造成的差異。
五、嵌入式繞不開驅動
很多人對驅動開發有技術情節,越是年輕的工程師越是這樣。驅動的開發本質上就是給外設配置參數,使其工作在期望的方式。linux下的驅動開發需要遵從linux的驅動框架,裸機的驅動開發就是直接配置寄存器就可以。
linux有一個很好的理念,就是萬物皆文件。linux將外設也會抽象成文件,讀寫外設和讀寫文件在操作上沒有了區別。
linux下的設備,分為字符型設備、塊設備、網絡設備。
linux下注冊驅動的時候,將設備號和文件名進行了映射,并實現file_operation里的一些函數,例如,write、read、ioctl。其中write、read主要用于讀寫外設的有用數據。ioctl主要用于配置外設的一些參數,使其工作在不同的模式或狀態。
六、嵌入式離不開操作系統
其實嵌入式指的就是嵌入式操作系統,操作系統有很多種。vxworks、ucos、freertos、bios、linux、uclinux、nuttx等等。對于操作系統的選擇個人感覺要看實時性、以及生態。生態很重要,這樣出現問題的時候,才不至于絕望,感覺不是孤軍奮斗。
其實操作系統的出現,主要是為了解決任務調度、內存管理。這兩方面是操作系統的精髓。感興趣可以閱讀源碼。ucos的源碼不多,可以從它看起。
嵌入式必學的知識點還是挺多的,如果說你想要學習嵌入式的話那么還是要有專門的人來指導你學習才可以的。粵嵌科技歡迎每位想要學習嵌入式技術的人來我們公司進行實地考察,也可以點擊我們文章下面的獲取試聽資格按鈕來獲取我們的嵌入式課程免費試聽資格。