嵌入式开发之路(偏汽车电子嵌入式软件工程师学习路线图)

一、嵌入式开发

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 操作系统原理

嵌入式中用的比较多的是实时操作系统,常用的有Freertos、uC/OS、rt-Thread 、国产reworks

  • 内存管理和调度
  • 多任务:多线程/并发/锁
  • 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编程
  • 网络编程
  • 图形化界面编程

三 汽车电子底层相关

所需技能:
1.会读芯片数据手册
2.Autosar架构分层原理,接口逻辑(目前大部分车厂都使用此框架)
3.实时操作系统
4.通信协议(CAN、 SPI)
5.板子的使用

四 目前已读书籍

4.1 c 语言

4.2 数电/模电

电路原理图认识

4.3 机组/微机原理

4.4 操作系统

在这里插入图片描述

4.5 STM32

此视频通俗易懂,非常适合基础不太好的。
STM32
通过这本书能对STM中的库函数有一个很好的认识。
在这里插入图片描述

4.6 汽车通信协议

4.6.1 can协议

汽车CAN总线系统原理、设计与应用。
在这里插入图片描述

4.6 嵌入式Linux开发基础

伍德雁主编
  这本书比较基础,比较简单,主要是让初学者对嵌入式Linux开发有一个全面的了解,各个方面没有太大的难度,适合初学者进行了解,但不适合老手进行资料的查找。
在这里插入图片描述

4.7 AUTOSAR多核操作系统

在这里插入图片描述

  • 43
    点赞
  • 362
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值