物联网嵌入式学习路线_Black_黑色的博客-程序员秘密

技术标签: 1.ARM应用  

物联网嵌入式学习路线

嵌入式技术学习路线

​ 嵌入式技术是各种电子产品的核心技术,也是工业4.0、远程医疗、3D打印等新兴产业的核心技术,具有广阔的发展前景。很多计算机、电子信息类专业的学生都想把嵌入式开发作为自己的职业目标,但是因为嵌入式涉及的知识太多,太杂,太广,很多嵌入式初学者陷入嵌入式知识的海洋中,东学一点,西学一点,找不到学习的方向。 作为过来人,给大家谈谈正确的嵌入式学习路线,供各位嵌入式初学者参考,希望对大家有所帮助。

嵌入式工程师需要掌握的内容非常广泛,主要包括嵌入式软件、嵌入式硬件、以及相关行业、产品的专业知识。作为嵌入式初学者,我们不可能,也没有那么多精力把所有的知识到搞的很精通,我们要学会抓住重点,学会取舍,达到一通百通,事半功倍的学习效果。

首先嵌入式技术主要分为嵌入式软件和嵌入式硬件2大方向。

嵌入式硬件方向

嵌入式硬件工程师主要工作职责是为产品设计硬件电路原理图,设计硬件PCB板,选择合适的元器件,焊接调试硬件电路板,保证硬件电路板的可靠性、稳定性和抗干扰能力。因为现在集成电路发展迅速,大部分集成电路厂商都会提供参考电路,所以硬件电路原理图的设计相对来说比较简单,硬件工程师工作的含金量主要体现在产品的可靠性和稳定性设计、以及电磁兼容设计,这才是硬件设计工程师的含金量所在。 一个资深的嵌入式硬件工程师年薪都在10万~ 30万之间。

要成为一个资深的嵌入式工程师相当难,一方面要有非常扎实的理论知识,同时也要有相当的那种大型的、高频CPU、多层PCB板的设计经验。嵌入式硬件工程师要学的课程主要有模拟电路设计、数字电路设计、电磁波理论等。熟悉常用的放大电路、滤波电路、电源电路设计和分析。

嵌入式软件方向

嵌入式软件工程师的职责主要是根据产品的功能需求设计好软件,让硬件工作起来。嵌入式电子产品硬件部分,大部分都是相同的,核心的都是由CPU、RAM和FLASH 几大部分组成,而软件就千差万别了。产品的具体功能都是由软件来实现的,一般来讲一个产品的实现,软件设计的工作量是硬件设计的4~5倍。所以一般情况下,一个公司的软件工程师数量是硬件硬件工程师的4~5倍,嵌入式软件工程师需求比硬件工程师大很多,同时跟硬件工程师相比,嵌入式软件工程师学起来相对容易些,所以这里我重点和大家谈一下嵌入式软件工程的学习路线。

嵌入式软件工程师学习路线

1、打好嵌入式软件编程的基础

这一阶段重点打好嵌入式软件编程的基础,包括学习Linux系统的基本应用,Linux的常用命令、C语言编程基础、常用的数据结构。

特别是C语言中对指针的理解和应用。这一阶段的主要目的是学习编程语言、开发环境、和培养自己的编程思维,为进一步学习嵌入式开发打下良好的基础。 这一阶段推荐的嵌入式学习书籍如下:《C程序设计语言》,《C语言核心技术》,《数据结构与算法分析--C语言描述》,《C和指针》,《C陷阱与缺陷》,《C++ Primer》

2、学习ARM体系结构编程

这一阶段才是真正的嵌入式编程,首先我们要选择一款嵌入式CPU和一款嵌入式开发平台,目前ARM 嵌入式CPU应用最广泛,这一阶段重点是学习嵌入式CPU的裸机编程,熟悉中断、定时器、串口、NAND FLASH、网络控制器、LCD屏、触摸屏等常用嵌入式外围设备的硬件工作原理,以及如何使用C语言来编程、控制这些硬件。这一阶段除了要学习对硬件编程之外,还需要学习嵌入式硬件的知识,但是对于嵌入式软件工程师来讲,重点是学习硬件的工作原理,在掌握硬件工作原理的基础上,对硬件进行编程控制。这和硬件工程师学习的侧重点有所不同。这一阶段对应的学校的课程主要包括模拟电路、数字电路、微机原理和单片机。这一阶段重点是要看CPU的芯片手册,大部分的参考书也是对芯片手册的翻译。推荐的参考书籍如下:《ARM嵌入式系统开发--

软件设计与优化》,《ARM处理器开发详解 基于ARM Cortex-A8处理器的开发设计》

3、学习嵌入式系统的构建

这一阶段主要学习带有操作系统的嵌入式系统的构建,包括系统的启动流程、Bootloader的工作流程、UBOOT的编译、裁剪与移植、嵌入式Linux内核的裁剪、移植与编译,嵌入式根文件系统的定制、BootLoader、内核和根文件系统的烧写。 这一阶段的主要目的是掌握带有操作系统的嵌入式系统的构建和烧写过程,以及对嵌入式系统软件的总体构成有个整体认识,为我们接下来学习嵌入式应用和驱动开发打下坚实的基础。 这一阶段推荐的书籍如下:《构建嵌入式Linux核心软件系统实战》

4、学习嵌入式Linux应用程序开发

这一阶段主要学习上层的嵌入式Linux应用程序开发,包括基于Linux多进程、多线程、网络、文件与目录和QT编程。掌握嵌入式Linux环境下应用程序开发技术。这一阶段推荐的书籍有: 《UNIX环境高级编程》, 《Unix网络编程》,《Qt Creator快速入门》, 《精通Qt4编程》

5、学习嵌入式Linux驱动程序开发

这一阶段主要学习底层嵌入式Linux设备驱动程序开发设计,包括常用的字符设备驱动、块设备驱动、LCD设备驱动、触摸屏设备驱动以及驱动程序开发中的核心技术。这一阶段推荐的参考书籍有:《Linux设备驱动程序》,《Linux设备驱动开发详解》

6、完成一个综合项目

嵌入式技术关键在于理论和实践的结合,要能够学以致用,完成了以上的所有阶段的知识点学习后,到底有没有学会,会不会用,能不能应用所学知识来解决实际开发中的问题,我们需要来完成一个综合的嵌入式实训项目,例如: 基于嵌入式Linux平台实现的飞行器、 基于嵌入式Linux平台实现的智能机器人等,这些项目都综合应用了嵌入式开发当中的应用,驱动和QT开发技术。

以上就是我建议的比较系统的嵌入式学习路线。系统学习并能灵活应用以上知识后,嵌入式基本上就算入门了,具备企业项目的嵌入式研发能力了,这时候去应聘企业的嵌入式研发工程师岗位就不会有什么问题了。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhaozhiyuan111/article/details/89185548

智能推荐

金融业的人工智能如何最终开始相信您的回测2 3_weixin_26717349的博客-程序员秘密

模拟,风险和度量 (SIMULATIONS, RISKS, AND METRICS)Note from Towards Data Science’s editors: While we allow independent authors to publish articles in accordance with our rules and guidelines, we do not endo...

EL表达式截取字符串 和EL表达式保留两位小数_追梦的小猴子的博客-程序员秘密

保留两位小数**************************第一种写法    <fmt:formatNumber value="${panicDetail.price}" pattern="#.00"/>     pattern="#.00"表示规定必须保存2位小数,如果最多保存2位,使用 pattern="#.##"   第二种写法    <f...

如何恢复计算机隐藏的文件夹,隐藏文件夹,小编教你电脑隐藏文件夹怎么恢复..._河马和荷花的博客-程序员秘密

有用户会问“将文件夹给隐藏了,还能够找的会来吗?”答案是:能!能!能!我们知道有时电脑隐藏了文件显示效果是半透明的,而有的时候隐藏文件就完全看不到了,那么怎么会恢复隐藏文件夹呢?为此,1小编就给有需要的用户带来了恢复隐藏文件夹的操作。电脑在现在使用是越来天越普遍了,而在操作中,为了避免被有心人士看见我们的重要文件,会将某些文件夹隐藏起来,但是需要的时候却忘记了如何恢复隐藏,还原成原来的样子,为此,...

npx:调用项目内部安装的模块___Charming__的博客-程序员秘密

背景最近在学gulp时,在局部安装了gulp,然后直接在终端使用gulp --tasks,结果报错'gulp' 不是内部或外部命令,也不是可运行的程序或批处理文件。我认真想了一下,因为我的包是装在项目内的(局部的),没有在环境变量里注册,当然就不能在终端直接使用了。(注:全局安装的node包是可以在终端直接使用的)那有没有办法在终端直接使用呢?有的。类似这样吧,直接进入node-m...

JS节点操作(2)- 创建节点,添加节点,删除节点,复制节点_Moony_wy的博客-程序员秘密_js添加节点

JS节点操作(2)- 创建节点,添加节点,删除节点,复制节点node.appendChild(child) 添加到子元素数组的末尾node.insertBefore(child, 指定元素) 添加到指定子元素的前面node.removeChild(child) 删除指定子节点,返回删除的节点cloneNode() 复制节点复制节点要注意,cloneNode()括号里面为空或是false则为浅拷贝,只复制标签不复制里面的内容。cloneNode(true) 括号里为true则为深拷贝,复制标签和内容

随便推点

破解电信光猫_Jackson12444的博客-程序员秘密

备注:该文只使用于,电信新光猫 吉比特I-240W-Q, 以前的光猫没限制的--------------------------------------------------前几日,电信ADSL成功光平移,改光钎,原ADSL猫已没用,换成了光猫,自带路由功能,无线功能, 看上去倒不错的样子,用心一用,尼玛,这无线信号差的不是一般的差电信给的帐号useradmin...

基于ssm的学生宿舍管理系统_小阿七Eason的博客-程序员秘密_基于ssm的学生宿舍管理系统

基于ssm的学生宿舍管理系统分享之前写的一个项目,学生宿舍管理系统。开发环境开发软件 idea 也可以用eclipse导入前端 lyaui后端 spring springmvc mybatis分页用的pagehelpermaven管理项目tomcat 7数据库库 mysql 5.7效果图完整的目录结构mysql数据库依次是管理员表,登录日志,班级表,打扫记录表,宿舍表,维修记录表,菜单表,角色表,中间表,学生表。下面是菜单表:pom文件<?

php 个人账户转账,支付宝单笔转账到支付宝个人账户接口 ( PHP 版 )_weixin_39942351的博客-程序员秘密

alipay.fund.trans.toaccount.transfer(单笔转账到支付宝账户接口)单笔转账到支付宝账户接口是基于支付宝的资金处理能力,为了满足支付宝商家向其他支付宝账户转账的需求,针对有部分开发能力的商家,提供通过 API 接口完成支付宝账户间的转账的功能。 该接口适用行业较广,比如商家间的货款结算,商家给个人用户发放佣金等。注意事项:1.目前仅支持账户余额渠道付款。2.转账额度...

蓝桥杯 算法提高 凶手_一叶之修的博客-程序员秘密

一道推断题算法提高 凶手Description   巴斯维克命案抓住了六个嫌疑犯,他们的口供如下:  A:我不是罪犯  B:A、C中有一个是罪犯  C:A和B说了假话  D:C和F说了假话  E:其他五个人中,只有A和D说了真话  F:我是罪犯  他们中只有一半说了真话,凶手只有一个。  本题可能有多种可能性,即正确答案(找到唯一的凶手)可能有多...

矩池云配置MMDetection环境+训练自己的数据集_yezzii的博客-程序员秘密_矩池云配置环境

自用,方便查找。参考:采用矩池云配置MMDetection环境_一只大憨憨的博客-程序员秘密_矩池云配置环境环境镜像:Pytorch1.5.0镜像描述:预装:Python3.8, CUDA 10.1, cuDNN 7.6, Pytorch 1.5.0,Ubuntu18.04步骤安装环境:1. 安装torchconda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.1 -c pytorch -y...

推荐文章

热门文章

相关标签