文章目录

  • 一、嵌入式开发
    • 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开发有一个全面的了解,各个方面没有太大的难度,适合初学者进行了解,但不适合老手进行资料的查找。

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

  1. 【经验总结】10年的嵌入式开发老手,到底是如何快速学习和使用RT-Thread的?(文末赠书5本)

    [经验总结]一位近10年的嵌入式开发老手,到底是如何快速学习和使用RT-Thread的? RT-Thread绝对可以称得上国内优秀且排名靠前的操作系统,在嵌入式IoT领域一直享有盛名.近些年,物联网产 ...

  2. 学python数据挖掘自学路线图_学习攻略 | 数据挖掘工程师学习路线图

    原标题:学习攻略 | 数据挖掘工程师学习路线图 最近秋招也已经慢慢接近尾声了,从去年 8 月底开始,先后参加了 datacastle ,阿里天池,牛客网各自举办的数据挖掘比赛(都是 top10 ),今 ...

  3. 机械转嵌入式开发需要学什么东西?嵌入式软件工程师学习路线

    机械相对属于比较传统的行业,如果现在年轻人入局这个行业,成长的空间非常有限. 我做了嵌入式单片机开发10年,有时做产品的时候经常会跟做机械.做外壳的工程师打交道. 工作话题之余,我们也会拉拉家常,最好 ...

  4. 我的嵌入式开发之路(.Net Micro Framework)

    以前认为在wince或windows mobile上用VS2005/VS2008做一两个应用程序就算嵌入式开发了,深一点,能用PB定制WINCE系统,用EVC开发驱动程序,就算更深层次的嵌入式开发了( ...

  5. 嵌入式开发之路——C语言阶段(华清远见)

    为什么会选择嵌入式开发? 我现在已经毕业两年了,大学的专业是软件工程,学习的课程有软件前段和后端,主要学习的是JAVA方向.到毕业之后开始找工作发现,虽然基础知识学习的不错,但是距离企业开发的标准还有 ...

  6. 嵌入式开发显示西班牙语_6个开放式学习西班牙语的教育资源

    嵌入式开发显示西班牙语 我的2020年目标是提高西班牙语,并且我打算利用以下所述的开放式教育资源来帮助我朝着流畅发展的道路迈进. 这些建议绝不是用于学习西班牙语的详尽资源清单. 包含的项目都是开放资源 ...

  7. 2022 年前端工程师学习路线图(完整版)

    前端发展越来越快,每天都有数不胜数的技术发布. 想要入门前端却没有一条较为理想的路径? 在这个世界里兜兜转转了很久还是感觉在外围搬砖? 那么你可能需要这份技术学习路线图! 我们把学习前端分为三重境界: ...

  8. 硬件工程师充电心得--嵌入式软件工程师学习路线

    硬件工程师日常主要工作通常为电路原理图.PCB设计,很少涉及软件编程,哪怕是一些硬件接口驱动很多硬件工程师都不曾涉足.面对日益激烈的竞争压力,多学一些嵌入式软件方面的技能也能为日后自己的职业生涯发展打 ...

  9. micropython esp32驱动舵机_乐鑫ESP32-PCA9685舵机控制板与MicroPython-ESP32-电路城论坛 - 电子工程师学习交流园地...

    本帖最后由 qiaoweiyiyi 于 2019-2-15 13:58 编辑 概要 阿凯在本文中讲解了如何使用MicroPython-ESP32通过PCA9685模块控制舵机旋转角度.同时也涉及到了M ...

最新文章

  1. [短文速读] 重载有暗坑,JVM是如何执行方法的
  2. 自学python找到工作-学完python能找到工作么
  3. python super 变参数问题(六)
  4. 【深度学习】从梯度下降到 Adam!一文看懂各种神经网络优化算法
  5. SAP OData etag flag setting in metadata MPC_EXT
  6. 惠普服务器吊牌位置,惠普防伪措施 | 惠普中国
  7. 足球赛事分组代码PHP,PHP数组分组排序程序代码
  8. 作者:周绮凤,女,博士,厦门大学自动化系副教授。
  9. 可变参数宏__VA_ARGS__和...
  10. FFmpeg学习(8)—— 视频去水印
  11. [转]FastJSON通过SerializeFilter定制序列化
  12. Spring框架的本质:4那些高曝光率的Annotation
  13. 使用spss做各种相关性分析的方法和步骤
  14. 一张图看懂零维到十维空间
  15. 下载新浪android SDK
  16. 我们需要谈论凯文:我试图建立一个值得信赖的Twitter机器人
  17. kubernetes进阶之路(十六)~~~Storage系列之StorageClass
  18. 苹果A16的遮羞布被撕下了,性能提升幅度有限,被嘲讽为挤牙膏
  19. QQ邮箱里面添加学校的edu邮箱
  20. pytorch中register_hook以及register_forward_hook

热门文章

  1. 虹科Automation softPLC | 虹科KPA MoDK运行环境与搭建步骤(2)——MoDK运行环境搭建
  2. 【单调队列优化dp】jzoj4883灵知的太阳信仰 纪中集训提高B组
  3. 塔望3W消费战略全案丨绿力冬瓜茶 三十年饮料老品牌,两年复兴战全国
  4. 1032 挖掘机技术哪家强 (20 分)(测试点分析)
  5. freeswitch实战八(动态生成拨号计划)
  6. 效法羲和驭天马,志在长空牧群星
  7. 浅谈一个新人的大数据之路
  8. 证明ker f是H中的闭线性子空间(f是连续有界线性泛函)
  9. 使用电脑登录邮箱账号的流程是什么?
  10. 车载服务器系统,车载系统平台与终端产品的介绍