精华内容
下载资源
问答
  • 嵌入式学习路线图

    千次阅读 多人点赞 2018-12-09 12:42:34
    可能是年前跳槽的比较多,遇到不少同学咨询到嵌入式行业发展和职业规划的问题,这里总结一下嵌入式行业的机遇和选择,希望对读者们有所帮助。 我们暂且宏观上把程序员分为3类:业务类,专业类,系统类。 业务类 ...

    可能是年前跳槽的比较多,遇到不少同学咨询到嵌入式行业发展和职业规划的问题,这里总结一下嵌入式行业的机遇和选择,希望对读者们有所帮助。

    我们暂且宏观上把程序员分为3类:业务类,专业类,系统类。

    • 业务类

    业务类更多的是在应用程序。随着移动互联网的快速发展出现一批 UI 设计师,这里的设计师是指 APP 的界面设计,在注重用户体验的今天对于界面的设计出现水涨船高的需求。一时间 Android, IOS 的 APP 开发者如雨后春笋般涌出,待遇也是不低。高级的应用程序员除了界面的开发外也会涉及程序内部的业务逻辑,现在的 APP 逐渐演化成很多层的架构,比如分为业务逻辑层,基本功能模块层,UI 界面层等,如下图所示:

    一个 APP 就包括了很多内容。如果志向写应用程序的小伙伴,我建议你先练好基本功:数据结构,算法导论,网络编程,数据库等。然后根据兴趣的行业深耕学习。因为这一行的开发者和业务联系比较大,后续换行业就不太吃香,比如美图秀秀开发者更多的是注重在图形显示这一块,网易云音乐更多的就注重在音频这一块。当然不能以偏概全,很多能力是通用的,我这里的举例主要是相对而言。应用程序开发者会随着业务的多变性经常加班 coding,解 bug。所谓的码农更多的是出现在这一领域。

    • 专业类

    应用程序开发者是完成业务的直接执行者,夸张的讲应用程序开发者就是 API 调用者,但这些 API 是如何实现的?不同的专业领域有不同的 API。以上图 APP 框架为例,HTTP 网络请求就是调用了网络领域的 API 接口, SQLITE 就是调用了数据库领域的 API 接口,再比如目前比较火的人工智能,语音识别,图像处理等都属于专业类领域。这一领域的工作者拥有比较强的理论知识,算法知识,多以研究生或者博士生为主。这一领域的优势是待遇高,可替代性低,但也因为研究领域的专一性在找工作时也面临一些局限性。

    • 系统类

    这里系统主要指 linux 系统。系统是个太大的概念,有上层 framework 系统也有底层内核机制,也包括驱动开发,甚至硬件也要知道。这一领域的人更多的是在嵌入式行业。在操作系统领域对知识要求很多:

    1. 看懂电路图

    2. 看懂芯片手册

    3. 有编写,移植驱动的能力

    4. 懂内核的实现机制

    5. 懂C语言,C++, JAVA等

     

     

    这一行的优势是学好后行业通杀,大公司基本都有这方面人才的需求;相对做应用程序的人不会经常因为业务需求的变动搞得天天加班;行业稳定越老越吃香,不太会出现程序员35岁职业生涯问题。另外操作系统是很通用性的知识,夸张的讲只要是 IT 行业,学点操作系统的知识肯定是如虎添翼的作用:

    1. 硬件工程师通过学习可以理解软件的运行原理

    2. APP 工程师学些系统知识更有利于走向全栈

    3. 大学生学习linux对找工作多有益处

    4. 学好 linux 即可以做开发也可以做运维

    5. 永远不会淘汰的技术,只会越老越吃香

    嵌入式 linux 学习路线

    本文把操作系统默认为 linux,讲讲怎么学习嵌入式 linux 系统。简单地说,嵌入式 linux 系统里含有bootloader、内核、驱动程序、根文件系统、应用程序这5大块。而应用程序,我们又可以分为:C/C++、Android。 所以,嵌入式Linux+Android系统包含以下部分内容:

    • ARM

    • Bootloader

    • Linux内核

    • 驱动程序

    • 根文件系统

    • Android Framework

    • 使用C/C++编写的应用程序

    • Android APP

     

    根据以上内容我准备了一系列的达人课程,希望对有志于成为全栈嵌入式开发者有所帮助,这里分享下课目表安排和学习经验:

    1. ARM

    学习硬件知识的目的在于能看懂原理图,看懂通信协议,看懂芯片手册。这里推荐一些书:

    • 《微机原理》,可以理解一个计算机的组成原理

    • 《数字电路》,掌握一些逻辑运算,理解各种门电路的原理

    • 《ARM体系结构与编程》,对ARM的运行原理解释的很到位

     

     

     

    我相信看完这些书对ARM和硬件知识的掌握足够了,对于初学者只想浅尝辄止的了解,我推荐之前的一个chat《一小时教你学会 ARM 架构》。

    2. Bootloader

    bootloader有很多种,vivi、u-boot等等,最常用的是u-boot。 u-boot功能强大、源码比较多,对于编程经验不丰富、阅读代码经验不丰富的人,一开始可能会觉得难以掌握。但是,u-boot的主要功能就是:启动内核。它涉及:读取内核到内存、设置启动参数、启动内核。按照这个主线,我们尝试自己从零编写一个bootloader,这个程序相对简单,可以让我们快速理解u-boot主要功能的实现。相关内容有:

    • u-boot分析之编译体验

    • u-boot分析之Makefile结构分析

    • u-boot分析之源码第1阶段

    • u-boot分析之源码第2阶段

    • u-boot分析之u-boot命令实现

    • u-boot分析_uboot启动内核

    3. Linux内核

    内核在工作中的作用可以说是潜移默化的,虽然看起来没有直接性的工作项目,但绝对是走向架构师的必经之路。本课程会涉及到以下知识点:

    • Linux总线,设备,驱动模型的探究

    • Linux设备树的深入理解

    • Linux的启动流程

    • Linux设备和驱动的相遇

    • 动手定制一个开发板

     

     

     

    我相信通过这些课程的学习可以基本上掌握内核的运行原理,入个门是没有问题的。另外推荐本书给大家《linux内核设计与实现》。

    4. 驱动程序

    驱动程序=Linux驱动程序软件框架+ARM开发板硬件操作,有了ARM的知识和阅读数据手册电路图的能力,再加上Linux内核的运行原理,基本上写驱动就是API调用的体力活了。这里推荐宋宝华老师的《linux设备驱动开发详解》。后续关于驱动的内容暂定如下:

    • LCD驱动程序

    • 触摸屏驱动程序

    • USB驱动程序

    • NAND FLASH驱动程序

    • NOR FLASH驱动程序

    • 网卡驱动程序

    • 声卡驱动程序

    5. 根文件系统

    在开发应用程序时,也需要搭建文件系统,把各种库、配置文件放进去; 在发布产品时,你还需要修改配置文件,使得产品可以自动运行程序; 甚至你想实现插上U盘后自动启动某个程序,这也要要修改配置文件; 这一切,都需要你理解根文件系统的构成,理解内核启动后是根据什么配置文件来启动哪些应用程序。根文件系统相对比较简单,可以根据以下路线学习:

    • Linux根文件系统目录结构

    • 移植Busybox

    • init进程介绍及用户程序启动过程

    • 使用glibc库

    • 制作/使用文件系统映象文件

       

     

    成为全栈嵌入式开发者任重而道远,让我们按照上面的学习路线一步一步行动起来。

     

    轻轻一扫  欢迎关注~

     

    展开全文
  • 什么叫物联网呢?物联网就以互联网为基础,将物与物联系起来进行...这样的市场前景给很多年轻人机遇与挑战,学习物联网技术的人越来越多,下面给大家分享一个全新的物联网学习路线图。      ​ 第一阶段:嵌入式
  • 嵌入式学习路线图.pdf

    2014-07-29 23:47:29
    什么是嵌入式 嵌入式学习路线图.pdf 嵌入式怎么学 事半功倍 好的开始是成公的一半
  • 嵌入式开发学习路线图

    千次阅读 多人点赞 2020-03-29 21:17:06
    ARM+Linux嵌入式底层内核驱动方向学习总体路线图 基础学习Ⅰ---Linux入门 目前嵌入式主要开发环境有 Linux、Wince等;Linux因其开源、开发操作便利而被广泛采用。而Linux操作系 统也只是一个简单的操作...
                                     ARM+Linux嵌入式底层内核驱动方向学习总体路线图
         
    基础学习Ⅰ---Linux入门
    目前嵌入式主要开发环境有 Linux、Wince等;Linux因其开源、开发操作便利而被广泛采用。而Linux操作系
    统也只是一个简单的操作系统,简单的使用对于嵌入式开发人 员来说价值并不很高,真正有价值的是掌握Linux的
    基本服务和Linux的设计理念、思想,这对于嵌入式开发人员的长期发展是很极其重要的。Linux 系统有很多发行
    版,RedHat、Ubuntu、Fedora等。作为嵌入式开发人员,我们没有必要把精力放到使用哪个Linux发行版上,
    而是尽快把 Linux系统尽快安装好。如果打算坚持长期学习,那么建议您把自己的电脑做成双系统,而不要在虚拟
    机上安装。
    A)经典书籍推荐:
    基础学习Ⅱ---C语言
    C语言是嵌入式开发必备的基础知识。在Linux下从事C语言的开发,你会觉得更为顺畅、更为自然,因为C语
    言是因unix的出现而诞生的,Linux内 核几乎完全是由C语言编写完成的。学习C语言,如果不会用指针,那么就
    称不上会C语言。做嵌入式开发指针更显得尤为重要,所以做嵌入式开发除了掌握位操 作、限定词等,对指针的掌
    握是不可或缺的。而且要掌握多级指针、函数指针等等。涉及到指针,那么就会讲到内存分配。在大学中,学习C
    语言一般的学习很少讲 到内存分配,但是如果期望从事嵌入式开发,那么就必须懂得C语言是怎么做内存分配管理
    的。指针之外,还要学习模块化编译处理、指针与数组、gcc、 Makefile、GDB、递归、结构体、宏定义使用
    等。C语言是整栋嵌入式大厦的基础,所以在学习嵌入式时,必须把C语言重视起来,多敲代码,多练。一 名优秀
    的程序员必定是通过“体力劳动”再转向“脑力劳动的”,这也是为什么我们要有“写不出代码=0”思想的原因
    所在。
    如果说C语言相当于文字,那么数据结构就相当于在造句、写文章。代码质量有一部分取决于对数据结构的掌
    握程度。在数据结构部分我们要把链表、树、排序作 为学习重点。而且我们也可以查看一些比较常见的函数(如
    strcopy、strcat、printf等)在内核中是如何实现的,以及编写代码模拟堆栈,这 不仅有利于编写代码质量的提
    高,而且还可以初步了解Linux内核精髓,为今后工作打下坚实的基础。
    C++、QT在嵌入式开发领域,是用来开发图形界面的,希望从事上层应用开发及图形界面,那么在C++、QT
    方面需要比较深入的学习。
    A)经典书籍推荐:
    基础进阶---Linux应用程序设计
    Linux的思想源于Unix。Linux继承了Unix的优点,但是没有用UNIX的代码,所有程序都是重新编写的,而且
    Linux与Unix的源码级兼容。Linux是类Unix操作系统。Linux 不仅符合 POSIX 标准,而且还包括其它 UNIX 标准 2014 9 17
    嵌入式学习路线图 _ 如何学习嵌入式 _ 嵌入式学习步骤 _ 尚观嵌入式研究室
    http://www.upemb.com/content/qian-ru-shi-xue-xi-lu-xian-tu
    3/5
    的多种特性,例如,UNIX 的 System V 接口文档(System V Interface Document,SVID)和伯克利软件发布
    (Berkeley Software Distribution,BSD)版本。Linux 采用了折衷的策略,包含了 UNIX 几个典型特性当中最
    实用的一些功能:
    Linux 采用了 SVR4 的进程间通信(IPC)机制:共享内存、消息队列、信号。
    Linux 支持 BSD Socket 网络编程接口。
    许多 Linux 发行版采用 SysV init 机制,支持运行级别。
    此阶段的学习是从事嵌入式上层应用开发以及底层开发人员的必修课程。进程、线程、信号、文件锁、socket是
    这部分内容的重点。要把这些内容学的透彻非要下些苦功夫不可。而且函数是系统提供给我们的,难免要对计算机
    系统深入理解一番。TCP/IP协议也是要涉及到的。有问题建议用Google搜索及登陆chinaunix论坛。通过这个阶
    段的学习,我们就可以初步实现一些应用程序的开发了,如做自己的shell命令解析器、简单的聊天软件、视频多
    播等。
    A)经典书籍推荐
    嵌入式入门---ARM体系结构
    从这部分开始,我们将真正进入嵌入式开发学习阶段。首先我们要知道采用哪种处理器。目前通用嵌入式处理
    器有ARM、MIPS、PowerPC、X86等。从市场产品占有率上看,ARM处理器远远领先于同类其它处理器,并逐
    步掠夺传统51单片机和英特尔市场份额。据招聘网站统计,目前用人单位在技术水平上要求开发人员掌握ARM9
    及以上平台的开发技术。ARM公司在发布ARM11产品后,更改以往的数字标记更新方式,转为发布ARM
    Cortex。但是Cortex并不是更高端,而是全新系列的处理器,比如Cortex M3,它主要应用于机械加工、工控领
    域,目的是取代以前的ARM7处理器。
    在开始学习前,建议有一块自己的开发板,目前ARM9 2440的开发板价格在400-600元之间,ARM11 6410
    的开发板价格要高一些,最便宜的也要1200元以上。在此,提醒大家尽量不要买mini开发板,虽然mini开发板的
    价格要便宜些,但是与正常开发板相比,mini板功能是不完善的。嵌入式汇编有别于X86汇编,所以如果以前没有
    接触过汇编语言,那么没有必要先去学X86汇编再学嵌入式汇编,可以直接学习嵌入式汇编。除了汇编我们还要学
    习ARM指令集。有了开发板,我们要下载相对应处理器的DataSheet及开发板电路原理图。ARM体系结构的学习
    我们是不能完全照抄别人代码的,因为我们自己手中的开发板及处理器与别人是不同的,除非所用的代码是根据你
    手中的开发板来编写的。所以,我们要先去看书、看视频资料理解原理及工作方式等,然后根据自己开发板的电路
    原理图和DataSheet来编写代码,达到理解外围设备工作原理和操作硬件的目的。
    嵌入式提升---Linux内核、驱动
    众所周知嵌入式开发包含至少两个级别,一个是嵌入式内核驱动级别,另外一个是嵌入式应用层开发,而薪
    酬高的、最具价值的无疑是嵌入式内核驱动级别的开发者。真正的嵌入式高手或者企业中的核心开发人员,一定是
    嵌入式底层的内核驱动开发工程师,这些工程师成长比较缓慢,造成对内核驱动人才的大量需求,所以这些人才是
    真正企业需要的香饽饽。掌握驱动开发会让自己的核心能力有极大的飞跃,真正实现嵌入式最有价值的就业。
    由于Linux内核更新速度很快,书籍和视频不可能及时更新,所以我们再看书和视频后,要自己动手下载内核
    源码包,去看内核中的代码,在这里可以充分检验C语言、数据结构等基础知识的掌握程度。而驱动的编写还是要
    借助外设硬件电路原理图和芯片手册。内核和驱动的知识是让我们根据不同的硬件,编写对应的驱动、合理剪裁内
    核、制作文件系统,并移植到硬件开发板上。如果手里有ARM11 6410及以上的开发板,可以试试在裸板上编写
    驱动并移植Android系统到开发板上吧。
     

     

    展开全文
  • 物联网(工程师)+嵌入式学习路线图各个阶段

    千次阅读 多人点赞 2020-08-05 11:44:49
    第一部分:物联网嵌入式学习路线图——学习的九个阶段 第二部分:物联网工程师——进阶的四个阶段 第一阶段:小白零基础入行 1.嵌入式高级C编程 ​2.面向C++模板库应用开发 3.AI图像处理 第二阶段:进阶工程师...

    文章目录:

    第一部分:物联网嵌入式学习路线图——学习的九个阶段

    第二部分:物联网工程师——进阶的四个阶段

    第一阶段:小白零基础入行

    1.嵌入式高级C编程

    ​ 2.面向C++模板库应用开发

    3.AI图像处理

    第二阶段:进阶工程师

    1.Linux系统高级程序设计

    2.Linux高级网络程序设计

    第三阶段:数据库+5G

    1.数据库+B/S开发

    2.5G物联网工程开发

    3.BSP开发

    第四阶段:高级进阶阶段

    1.Linux+Android设备驱动开发

    2.企业实战项目


    小编这篇学习路线参考的千峰的进行了整理:下面是千峰的官网地址

    千峰教育:http://video.mobiletrain.org/courses

    第一部分:物联网嵌入式学习路线图——学习的九个阶段

    学习路线参考地址:

    1.【2020版】物联网嵌入式学习路线图

    https://blog.csdn.net/GUDUzhongliang/article/details/105577887

    2.物联网+嵌入式技术学习路线

    https://blog.csdn.net/GUDUzhongliang/article/details/87935451

    3.2019千锋物联网超详细入门教程分享

    https://blog.csdn.net/GUDUzhongliang/article/details/103601536

    视频教程参考地址:

    1.Linux操作系统安装及命令

    2.嵌入式高级C语言

    3.C++面向对象的语言开发-数据库开发入门到精通

    4.基础
        2019千锋物联网教程-Linux操作系统从入门到精通 
        2019千锋物联网教程-最全的嵌入式C语言教程 
    5.高级
        2019千锋物联网教程-C++开发入门到精通 
        2019千锋物联网教程-数据库开发入门到精通


     

    第二部分:物联网工程师——进阶的四个阶段

    第一阶段:小白零基础入行

    想了解智能物联网+嵌入式,零基础入门的兴趣性学员。

    1.嵌入式高级C编程

    学习成就:
    成为Linux开发工程师/C软件开发工程师(可具备各种平台下C语言开发能力)
    可从事职位:
    Linux开发工程师、C软件开发工程师

     2.面向C++模板库应用开发

    学习成就:
    成为C开发工程师(具备面向对象编程能力,能使用STL进行大项目开发)
    可从事职位:
    C/C++开发工程师、面向对象开发工程师

    3.AI图像处理

    学习成就:
    成为C/C++GUI开发工程师(能够使用图形界面开发出来的图形界面软件,GUI建立起了人与电子产品沟通的桥梁)
    可从事职位:
    C/C++GUI开发工程师

    第二阶段:进阶工程师

    程序员,工作中需要智能物联网+嵌入式进阶相关知识的学员。

    1.Linux系统高级程序设计

    学习成就:
    成为Linux系统开发工程师(全面掌握Linux系统下必备的编程技能,能够编写Linux系统下的多任务、多并发应用程序)
    可从事职位:
    Linux系统开发工程师

    2.Linux高级网络程序设计

    学习成就:
    成为网络安全工程师(可以掌握网络通信编程、协议分析、数据封装解封装、信息的伪装和窃取等)
    可从事职位:
    网络安全工程师、网络服务器开发工程师、流媒体开发工程师

    第三阶段:数据库+5G

    在短时间内学会最新智能物联网+嵌入式相关技术

    1.数据库+B/S开发

    学习成就:
    成为数据库及物联网Web开发工程师(能够掌握本地或远程操作服务器上的数据库)
    可从事职位:
    数据库及物联网Web开发工程师

    2.5G物联网工程开发

    学习成就:
    成为物联网开发工程师(能够掌握物联网企业级的核心协议,完成组网、通信、遥感、控制)
    可从事职位:
    物联网开发工程师/智能硬件开发工程师

    3.BSP开发

    学习成就:
    成为手机BSP开发工程师(掌握Bootloaser、Linux内核的分析和裁剪以及根文件系统的组成)
    可从事职位:
    手机BSP开发工程师/各类视频监控、智能硬件等BSP定制开发相关

    第四阶段:高级进阶阶段

    想成为高级嵌入式开发工程师的学员,或已找到智能物联网+嵌入式相关工作想深入学习的学员

    1.Linux+Android设备驱动开发

    学习成就:
    成为嵌入式开发工程师(能够全面掌握Linux、Android驱动的分析和编程)
    可从事职位:
    手机BSP开发工程师、嵌入式平台开发工程师、嵌入式内核开发工程师

    2.企业实战项目

    学习成就:
    成为嵌入式硬件驱动开发工程师、网络驱动开发工程师(能够掌握企业级项目难度开发,锻炼嵌入式+物联网综合开发能力)
    可从事职位:
    嵌入式硬件驱动开发工程师、网络驱动开发工程师

    智能教室:

    多媒体播放器:

    智能人脸识别:

    RFID智能门禁:

    智能手机:

    智能家居:

    参考地址:https://blog.csdn.net/GUDUzhongliang/article/details/104537749

    展开全文
  • 目录 一、嵌入式概况 二、嵌入式典型平台 三、嵌入式基础 四、嵌入式应用层开发 五、嵌入式底层开发 六、书籍资料推荐 一、嵌入式概况 二、嵌入式典型平台 三、嵌入式基础 四、...好好努力,沿着路线,认真学习

    目录

    一、嵌入式概况

    二、嵌入式典型平台

    三、嵌入式基础

    四、嵌入式应用层开发

    五、嵌入式底层开发

    六、书籍资料推荐


    一、嵌入式概况

    二、嵌入式典型平台

    三、嵌入式基础

    四、嵌入式应用层开发

    五、嵌入式底层开发

    六、书籍资料推荐

    好好努力,沿着路线,认真学习!

     

     

     

    展开全文
  • 详细规划了Linux学习路线,及学习方法,该学什么,及怎么学
  • 说到高薪职位的话,那么嵌入式工程师真的可以算是排名靠前的了,很多人也都会先考虑嵌式,其中零基础入门的也很多,下面可以先来看看嵌入式学习路线图,这样你就知道到底要怎么去学习嵌入式了。 这里总结一下嵌入式...
  • 可能是年前跳槽的比较多,遇到不少同学咨询到嵌入式行业发展和职业规划的问题,这里总结一下嵌入式行业的机遇和选择,希望对读者们有所帮助。我们暂且宏观上把程序员分为3类:业务类,专业类,系统类...
  • 关于嵌入式系统的学习路线图

    万次阅读 多人点赞 2018-04-28 21:31:36
    来源:本文乃同济大学软件学院王院长(JacksonWan)在同济网论坛发表的帖子《谈谈软件学院高年级同学的学习方向》的第二部分。三部分依次为:一、关于企业计算方向;二、关于嵌入式系统方向;三、关于游戏软件方向。...
  • 在大一时,我们班里普遍弥漫着对未来的不安,不知道学习了物理后出去能做什么。你当下的经历、当下的学习,在未来的一天肯定会影响到你。毕业后我们也各自找到了自己的职业:出国深造转行做金融、留校任教做科研、...
  • 在最近的近年来!随着科技树的不断进步,嵌入式系统产业规模持续的不断增长,作为IT业的里面重要新兴产业来说,现在的市场需求对嵌入式开发人才是非常大...这也导致了出现另外一种的情况,零基础来开始学习嵌入式的...
  • 3.完整的嵌入式学习路线图

    千次阅读 2015-12-07 11:35:42
    3.1.怎么样将叫完全学习 3.2.嵌入式核心模块(5大模块) 3.3.Android扩展(3大模块) 3.4.物联网扩展(无限扩展) 3.5.实训项目扩展(未完待续...
  • 在最近的近年来!随着科技树的不断进步,嵌入式系统产业规模...这也导致了出现另外一种的情况,零基础来开始学习嵌入式的同学是越来越多了,那么对于没有基础想要学习嵌入式的同学来说该如何去学呢?今天小编就来给...
  • Linux嵌入式开发学习路线图
  • 嵌入式开发学习路线图新版.pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,145
精华内容 2,858
关键字:

嵌入式学习路线图