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

    千次阅读 多人点赞 2020-03-29 21:17:06
    ARM+Linux嵌入式底层内核驱动方向学习总体路线图 基础学习Ⅰ---Linux入门 目前嵌入式主要开发环境有...统也只是一个简单的操作系统,简单的使用对于嵌入式开发人 员来说价值并不很高,真正有价值的是掌握Lin...
                                     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系统到开发板上吧。
     

     

    展开全文
  • 嵌入式软件就是嵌入在硬件中的操作系统和开发工具软件,它在产业中的关联关系体现为:芯片设计制造→嵌入式系统软件→嵌入式电子设备开发、制造 [1] 。
  • 嵌入式开发学习路线图新版.pdf
  • 嵌入式开发学习路线

    2016-11-02 22:22:09
    下面给出相关的学习资料,资料出现的顺序,也就是我们学习的顺序。1. C程序设计语言C语言作者写的书,超级精简。因为精简,所以,这本书要很认真的读。不要求快,要细嚼慢咽,要多思考,要从头到尾(包括附录)的读...

    下面给出我们学习的顺序和相关的学习资料。

    1.C语言入门

    《C Primer Plus》:对C语言进行系统、详细的讲解,每一个知识点都深入到位,非常适合零基础的同学学习。
    

    2. C语言进阶

    《C程序设计语言(K&R)》:C语言作者写的书,超级精简。这本书要很认真的读,不要求快,要细嚼慢咽,要多思考,要从头到尾(包括附录)的读。
    

    3.C语言提高

    传说中的三剑客《C和指针》《C专家编程》《C陷阱与缺陷》。
    

    4.Linux环境编程入门

    《Unix/Linux编程实践教程》:这本书十分适合初学者学习,只要求读者有一定的C语言基础即可,不要求了解操作系统的内核原理。
    

    5. Linux环境编程提高

    《Unix环境高级编程》:知名的Unix编程书籍。学完这本书,对一般的Linux应用开发,基本上可以达到得心应手的地步。
    

    6. Linux网络编程

    《Unix网络编程 第3版 第1卷》知名的Unix编程书籍。学完这本书,对一般的Linux网络应用开发,基本上可以达到得心应手的地步。
    

    7.TCP/IP详解

    如果想深入一点理解网络,《TCP/IP详解 卷2》是一本非常好的书。
    

    8. 计算机系统

    《深入理解计算机系统》这本书,共分为3部分,我们只要看前2部分即可。
    
    这本书,要相当认真的学习。不仅要看,还要做完所有的练习题(做题非常重要,一定要坚持先做,再看答案)。
    
    这本书学完,你将从机器码的层次,理解C(及C++)的语义究竟是怎么实现的。你还会理解,从C语言代码生成可执行程序的整个过程(预处理,编译,链接,静态库,动态库等)。你还将理解进程的概念,包括进程如何运行,进程如何与OS交互(中断、异常、系统调用)。
    

    9. Linux内核入门

    《Linux内核设计与实现》。开始踏入Linux内核的大门了。这本书,从比较高的层次介绍Linux内核。是非常好的内核入门书籍。
    

    10. Linux内核代码分析

    《 Linux内核源代码情景分析》超级通俗易懂。从帮助读者理解内核的角度来看,本书几乎可以算是最好的一本书了。
    

    11. Linux系统移植

    《ARM体系结构与编程》、《深度实践嵌入式Linux系统移植》。学习系统移植,最好还是买块开发板,以便于实验。买个arm9的就行了。因为我们是学习嵌入式系统原理,有个基本的arm9 CPU就足够了。有了开发板,就可以修改、编译、烧写u-boot、内核、根文件系统了。
    

    12. Linux驱动编程

    《Linux设备驱动程序》这本书非常注重实用。
    
    展开全文
  • Linux嵌入式开发学习路线
  • 嵌入式开发学习学习路线

    千次阅读 2020-08-21 13:10:55
    嵌入式开发比互联网软开(比如Java后端)还是要难一些的,比如Java开发,基本也都是用户态的东西,但嵌入式很多东西都深入到了内核态。 二、总体学习思路 总体来说,还是可以把嵌入式学习分为三个大的阶段: 首先...

    一、嵌入式的难点
    嵌入式开发比互联网软开(比如Java后端)还是要难一些的,比如Java开发,基本也都是用户态的东西,但嵌入式很多东西都深入到了内核态。

    二、总体学习思路
    总体来说,还是可以把嵌入式学习分为三个大的阶段:
    首先基础学习阶段,这就包括通用编程基础(C语言、数据结构/算法、操作系统、计网、计组、Linux系统基础)和基本的硬件基础,扎实地掌握这两大基础,是后续持续发展和不断进步的动力源泉。
    其次就是嵌入式应用编程阶段,或者说系统平台编程阶段。因为一般会以特定的嵌入式平台和特定的嵌入式操作系统为依托,熟悉这个系统平台上的编程方法和流程。以常见的ARM+Linux平台为例,需要掌握从内存管理到多任务编程、文件I/O、网络编程,甚至图形化界面编程等几个大的方面。
    最后就是深入嵌入式底层开发阶段,最常见的就是内核开发和驱动开发,这些统属于内核态开发范畴,所以需要对操作系统内部机制有所涉猎和理解,在此基础上需要掌握从系统移植到内核开发、驱动开发的各个细节,这是成神之路。

    三、嵌入式应用领域
    工控、仪器仪表、消费电子、LoT等等。

    四、嵌入式方向
    纯硬件:硬件电路、PCB、芯片等等。
    软硬结合:不带操作系统:单片机开发和嵌入式裸机开发
    带操作系统:用户态:应用程序开发和内核态:内核开发+驱动开发

    五、嵌入式相关岗位
    嵌入式Linux工程师、嵌入式应用工程师、嵌入式系统工程师
    嵌入式内核工程师、嵌入式驱动工程师

    六、嵌入式知识学习
    C语言、C++、数据结构与算法、操作系统原理、操作系统原理、计算机原理、单片机原理、微机原理、Linux操作系统、嵌入式硬件基础

    七、常用开发工具
    Linux操作系统、常见Linux命令和实用工具、Git/SVN、shell、Vim、GCC、Makefile、GDB、交叉编译工具、SSh、FTP等等。

    八、嵌入式典型平台
    体系结构:概念和体系结构、工作模式、指令集、寻址方式、寄存器、内存管理单元、常见接口和控制器、通用编程模型、GPIO、中断、定时器、A/D 转换

    九、常用协议
    UART、IIC、SPI、CAN、USB、局域互联网络LIN、TCP/IP

    十、无线模块
    蓝牙、WIFI、ZigBee、RF

    十一、传感器
    温度、湿度、光敏、压力、触摸感应、红外、多轴传感器、GPS、显示模块

    十二、嵌入式应用层开发
    内存管理/使用:内存分配、内存管理
    多任务/编程:进程、线程
    文件I/O编程:文件、I/O
    网络编程:TCP、IP、UDP、Socket
    图形化界面编程:Qt

    十三、嵌入式底层开发
    可运行系统:BootLoader、Linux内核、根文件系统
    Linux内核编程
    Linux驱动开发:字符设备开发、块设备开发、网络设备开发、总线设备开发

    十四:书籍推荐
    C语言:《C和指针》、《C Primer Plus》、《C陷阱和缺陷》、《C专家编程》
    C++:《C++ Primer Plus》
    数据结构与算法:《大话数据结构》、《数据结构与算法分析-C语言描述》
    操作系统:《深入理解计算机系统》
    计算机网路:《图解TCP/IP》/《图解HTTP》
    Linux操作系统:《鸟哥的Linux私房菜》、《Linux与Unix Shell编程指南》、
    《Linux命令行与Shell脚本编程大全》
    嵌入式应用开发:《嵌入式Linux基础》、《嵌入式Linux应用程序开发完全手册》、《嵌入式Linux应用程序开发详解》
    嵌入式底层开发:《Linux设备驱动程序》、《Linux设备驱动开发详解》、《Linux内核设计与实现》

    展开全文
  • 一年多以来,关于嵌入式开发学习路线、规划、看什么书等问题,被问得没有一百,也有大几十次了。但是无奈自己对这方面了解有限,所以每次都没法交代,搞得实在不好意思。 但是办法总归是有的,正如前篇文章《最近厚...

    不好意思久等了

    这篇文章让小伙伴们久等了。

    一年多以来,关于嵌入式开发学习路线规划看什么书等问题,被问得没有一百,也有大几十次了。但是无奈自己对这方面了解有限,所以每次都没法交代,搞得实在不好意思。

    但是办法总归是有的,正如前篇文章《最近厚着脸皮联系了不少老同学》所聊,虽然我自己不从事这些方向,但寻思了一下,我的同学和朋友中,多少还是有一些从事相关方向并且在一线(或曾在一线)工作过的,所以我就请他们帮忙一起梳理这几个我不熟悉领域的学习路线,这次嵌入式开发就是其中之一。

    这篇文章之所以拖这么久,因为沟通实在太费时间了,毕竟大佬们都挺忙,况且梳理总结这件事情本身就比较繁琐,所以等到现在才发出来。

    本文在开源项目:https://github.com/hansonwang99/JavaCollection 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中...


    嵌入式开发难吗?

    经过这次和同学的交流,我自己也学到了很多。因为嵌入式方面的很多东西我也不懂,我也算学习了。

    站在我个人角度来看,结合以前的学习体验。我觉得嵌入式开发比互联网软开(比如Java后端)还是要难一些的,比如我们搞Java开发的,再怎么说,基本也都是用户态的东西,但嵌入式很多东西都深入到了内核态,所以难度肯定是有的,表现在几个方面吧:

    • 首先,嵌入式它偏底层,软、硬件都要懂,对能力要求本来就要高不少;
    • 其次,嵌入式开发的学习门槛也要高一些,而且像 Linux平台下的开发流程,很多人都不习惯,摸不清;
    • 再者,嵌入式学习的正向反馈可能比较慢,尤其是前期学习阶段,导致没有什么成就感,也就坚持不下去了,所以往往就弃坑了。

    但是话说回来,做IT的就是这样,越往底层对人能力的锻炼就越高,所以对于能力来说是在升维,所以反过来,如果嵌入式做得好的,我觉得来做互联网问题也不大,到时候就属于降维打击了。


    总体学习思路

    总体来说,还是可以把嵌入式学习分为三个大的阶段:

    首先基础学习阶段,这就包括通用编程基础(C语言、数据结构/算法、操作系统、计网、计组、Linux系统基础)和基本的硬件基础,扎实地掌握这两大基础,是后续持续发展和不断进步的动力源泉。

    其次就是嵌入式应用编程阶段,或者说系统平台编程阶段。因为一般会以特定的嵌入式平台和特定的嵌入式操作系统为依托,熟悉这个系统平台上的编程方法和流程。以常见的ARM+Linux平台为例,需要掌握从内存管理到多任务编程、文件I/O、网络编程,甚至图形化界面编程等几个大的方面。

    最后就是深入嵌入式底层开发阶段,最常见的就是内核开发和驱动开发,这些统属于内核态开发范畴,所以需要对操作系统内部机制有所涉猎和理解,在此基础上需要掌握从系统移植到内核开发、驱动开发的各个细节,这是成神之路。

    大体思路是这样,接下来看一下详细的学习路线和知识点梳理。


    学习路线+知识梳理

    花了很长时间,就为了整理这张详细的知识路线脑图。当然由于时间有限、能力也都有限,毕竟嵌入式全体系实在太庞大了,包括我那做嵌入式的同学,也不可能什么都懂,有些东西可能没覆盖到,不足之处,还希望小伙伴们一起交流补充,一起完善进步。


    书籍推荐

    最后,按照整体的学习路线,再推荐一些对应的经典书籍:


    后记:本文在开源项目:https://github.com/hansonwang99/JavaCollection 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中...

    这次就分享到这里吧,下篇见

    每天进步一点点

    慢一点才能更快

    展开全文
  • 最权威ARM嵌入式开发学习路线

    千次阅读 2018-12-12 16:55:04
    最权威ARM嵌入式开发学习路线 最新整理史上最齐全嵌入式资料,嵌入式的ARM体系结构的学习,下面给大家分享嵌入式从入门到精通的资料,全部免费下载,3个G的资料学习,资料都在闯客网技术论坛可以下载,有什么不懂的...
  • 嵌入式软件开发学习路线

    千次阅读 多人点赞 2020-03-05 09:52:11
    查阅了很多资料,浏览很多网站,总结一下嵌入式学习路线。 前期补习阶段: C语言基础补习课程 C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理...
  • 学习路线: 1) C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。 推荐书籍:《The C Programming Language》 这本经典的教材是老外写的,也有....
  • 嵌入式培训课程哪里好?嵌入式开发学习路线

    千次阅读 多人点赞 2018-09-29 18:10:46
    近年来,随着嵌入式系统产业规模的持续增长,作为IT业的重要新兴产业和经济增长点,发展嵌入式系统产业已经成为了制造向创造转变的突破口,可以说现在对嵌入式开发人才的需求是非常大的,因此很多人加入到这个行业。...
  • Linux 是一个开源、免费的操作系统,主要应用于服务器(网站服务器、云计算集群、DNS 等)和嵌入式,同时也被很多程序员用作个人操作系统。Linux 使用 GPL 许可证,允许任何人以任何形式传播其源代码。 ...
  • 嵌入式工程师学习路线

    千次阅读 多人点赞 2018-12-31 19:39:12
    ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标:  (1)掌握主流嵌入式微处理器的结构与原理(初步定为arm9)  (2)必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本...
  • 合理的嵌入式开发学习路线 嵌入式工程师一般分两种:一类是学电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、Board Support Package...
  • 总的原则,不能贪多求快,贵在长期坚持。...资料出现的顺序,也就是我们学习的顺序。   1. C程序设计语言  C语言作者写的书,超级精简。因为精简,所以,这本书要很认真的读。不
  • 课程内容:为什么介绍物联网、嵌入式学习路线、常见物联网结构,物联网与嵌入式关系、面向物联网的开发涉及哪些事情、面向物联网的嵌入式开发的课程大纲、怎么学习物联网、嵌入式的这些课程,本课程的宗旨在于指导...
  • 0. 嵌入式入门学习路线

    万次阅读 2019-02-22 11:58:54
    最近有好多同学在咨询嵌入式该怎么入门,应该怎么学习,有什么好的学习方法推荐,以及嵌入式入门的学习路线。今天我就带着大家的问题,一一为大家解决。 STM32基础入门 uCOS-II基础入门 文末有相关学习资料网盘...
  • pmon 是 cpu 上电后执行的代码,相当于 x86PC 机中的 BIOS,兼有 bootloader的功能,代码来源于早期BSD 的内核,到如今已旧貌换新颜,糟蹋得差不多了。 pmon 的二进制代码存放于主板上的一块 512KB 的 flash 芯片上...
  • 嵌入式大神:教你如何从零开始学习路线解析

    万次阅读 多人点赞 2018-08-28 08:49:15
    嵌入式大神:教你如何从零开始学习路线解析   嵌入式开发就是指在嵌入式操作系统下进行开发,一般常用的系统有WinCE,ucos,vxworks,linux,android等。另外,用c,c++或汇编开发;用高级处理器,arm7,arm9,arm11,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,865
精华内容 3,546
关键字:

嵌入式开发学习路线