嵌入式开发之路(偏汽车电子嵌入式软件工程师学习路线图)
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                嵌入式开发之路(偏汽车电子嵌入式软件工程师学习路线图)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                文章目錄
- 一、嵌入式開發
- 1.1前情提要
- 1.2 學習路線圖
- 1.3 職業
 
- 二、嵌入式編程基礎
- 2.1 編程語言
- 2.1.1 c語言
- 2.1.2 c++
 
- 2.2 數據結構和算法
- 2.2.1 數據結構
- 2.2.2 算法
 
- 2.3 操作系統原理
- 2.4 計算機網絡原理
- 2.5 單片機原理/微機原理/機組
- 2.6 Linux操作系統
- 2.6.1 Linux 基本使用
- 2.6.2 Linux平臺的C/C++開發流程
- 2.6.3 Linux系統平臺編程
 
 
- 三 目前已讀書籍
- 3.1 c 語言
- 3.2 數電/模電
- 3.3 機組/微機原理
- 3.4 操作系統
- 3.5 STM32
- 3.6 汽車通信協議
- 3.6.1 can協議
 
- 3.6 嵌入式Linux開發基礎
 
一、嵌入式開發
1.1前情提要
由于自己的研究生生活大概率是在華東師范軟件工程學院做嵌入式開發了,但是自己從來沒有做過嵌入式相關的東西,只做過一些linux 上的簡單開發。現在大四準備從頭學起,將之前的知識全部撿回來。遂想記錄一下自己的學習之路,以便自己或者其他人當做后來的參考。
1.2 學習路線圖
這是參考B站 up主 CodeSheep的學習規劃與路線
 嵌入式開發學習規劃與路線
1.3 職業
- 嵌入式Linux工程師
- 嵌入式應用工程師
- 嵌入式系統工程師
- 嵌入式內核工程師
- 嵌入式驅動工程師
- …
 ??嵌入式是軟硬件結合的產品,嵌入式開發主要分為兩類。
 ??一類是無線電專業,例如電子工程,通信工程等專業出身的人,他們主要搞硬件設計,有時需要開發一些與硬件關系最密切的最底層軟件(例如BootLoader、Board Support Packge)、最初級的硬件驅動程序等。他們的優勢是對硬件原理非常清楚,不足是他們更擅長定義各種硬件接口,但對復雜的軟件系統力不從心(例如嵌入式操作系統原理和復雜的應用軟件)。
 ??另一類是軟件、計算機專業出身的人,主要從事嵌入式操作系統和應用軟件的開發。如果我們學軟件的人對硬件原理和接口有較好的掌握,也完全可以編寫BSP和硬件驅動程序。嵌入式硬件設計完成后,各種功能就靠軟件來實現了,嵌入式設備的增值很大程度上取決于嵌入式軟件,設備越智能,系統越復雜,軟件的作用越關鍵。
 ??但是,該領域的入門門檻較高,不僅要了解底層的軟件(例如操作系統級,驅動程序級軟件),對軟件專業水平要求較高(嵌入式系統對軟件設計的時間和空間效率要求較高),而且必須熟悉硬件的工作原理,所以很多非專業IT人員很難切入這一領域。
 ??與企業計算等應用軟件的開發人員不同,嵌入式領域人才的工作強度通常較低,收入卻相對較高。從事企業應用軟件的IT人員,這個用戶的系統開發完成后,又要去開發下一個用戶的系統,并且每個用戶的需求和完成時間都必須按客戶要求改變,往往疲于奔命,重復勞動。相比而言,開發嵌入式系統的公司,都有自己的產品計劃,按照自己的節奏行事,所開發的產品通常是通用的,不會因為客戶的不同而修改。
二、嵌入式編程基礎
2.1 編程語言
2.1.1 c語言
2.1.2 c++
2.2 數據結構和算法
2.2.1 數據結構
- 字符串
- 數組
- 鏈表
- 堆
- 棧
- 隊列
- 樹
- 哈希
- 圖
2.2.2 算法
- 查找
- 排序
2.3 操作系統原理
- 內存管理和調度
- 多任務:多線程/并發/鎖
- I/O原理
- 文件管理
2.4 計算機網絡原理
- TCP/IP協議棧和分層
- ARP協議
- IP協議/ICMP協議
- TCP協議/UDP協議
- DNS協議/HTTP協議/HTTPS協議
2.5 單片機原理/微機原理/機組
- 計算機的基本組成
- 指令和運算
- 處理器架構和設計
- 存儲系統
- I/O系統
2.6 Linux操作系統
2.6.1 Linux 基本使用
- 系統概念和特點
- Linux環境安裝和搭建
- 目錄結構
- 基本命令和常用工具
- 基本網絡管理
- List item
- 基本系統管理
- 基本的shell編程
2.6.2 Linux平臺的C/C++開發流程
1.編輯
 Vim
 Emacs
 2.編譯
- 編譯套件 Gcc
- 編譯工具make makefile cmake/autotools
- 交叉編譯工具
3.調試 gdb
 4.運行
2.6.3 Linux系統平臺編程
- 系統控制
- 內存管理和使用
- 多任務編程
- 文件I/O編程
- 網絡編程
- 圖形化界面編程
三 目前已讀書籍
3.1 c 語言
3.2 數電/模電
電路原理圖認識
 一
 二
3.3 機組/微機原理
3.4 操作系統
3.5 STM32
此視頻通俗易懂,非常適合基礎不太好的。
 STM32
 通過這本書能對STM中的庫函數有一個很好的認識。
 
3.6 汽車通信協議
3.6.1 can協議
汽車CAN總線系統原理、設計與應用。
 
3.6 嵌入式Linux開發基礎
伍德雁主編
 ??這本書比較基礎,比較簡單,主要是讓初學者對嵌入式Linux開發有一個全面的了解,各個方面沒有太大的難度,適合初學者進行了解,但不適合老手進行資料的查找。
 
總結
以上是生活随笔為你收集整理的嵌入式开发之路(偏汽车电子嵌入式软件工程师学习路线图)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 面试官培训分享
- 下一篇: R语言入门(17)-读写excel文件
