嵌入式学习书籍推荐[通俗易懂]

嵌入式学习书籍推荐[通俗易懂]嵌入式学习书籍推荐转自:http://www.51hei.com/bbs/dpj-26458-1.html如有侵权,请联系我,我将立即删除。从事嵌入式研发行业十年,认为学习就是要不断的吸纳知识,在研发过程中,经常会遇到一些问题,这种发现问题并解决问题的过程就是进步。为什么选择学习嵌入式?嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一,同时也是当今IT领域仅存的几个金领…

大家好,又见面了,我是你们的朋友全栈君。

嵌入式学习书籍推荐

转自:http://www.51hei.com/bbs/dpj-26458-1.html

如有侵权,请联系我,我将立即删除。

从事嵌入式研发行业十年,认为学习就是要不断的吸纳知识,在研发过程中,经常会遇到一些问题,这种发现问题并解决问题的过程就是进步。

为什么选择学习嵌入式?

嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一,同时也是当今IT领域仅存的几个金领职位之一。当前的中国IT人才面临严重的“后继乏人”, 而且这种缺口由于培训缺乏、教育模式等原因造成的,而缺口最大的,就是高级IT人才。如果你从事的IT培训不专业,面对竞争越来越激烈的职场,基本找不到 工作。据专家预测,嵌入式每年人才缺口在30万左右。

嵌入式行业平均薪资分布

嵌入式学习书籍推荐[通俗易懂]

工欲善其事,必先利其器,除了推荐的书籍外,也推荐一下我用的开发板,我学习用的是飞凌的OK6410,感觉算是入门不错的板子,刚刚看到他们官方微博貌似A8210ARM92416准备促销呢,有50元的京东购物卡送,想入手的可以关注下

ARM+Linux嵌入式底层内核驱动方向学习总体路线图

 嵌入式学习书籍推荐[通俗易懂]

附上ARM学习路径图,希望对学习者能有所启发。

 

基础学习Ⅰ—Linux入门
        目前嵌入式主要开发环境有 Linux、Wince等;Linux因其开源、开发操作便利而被广泛采用。而Linux操作系统也只是一个简单的操作系统,简单的使用对于嵌入式开发人 员来说价值并不很高,真正有价值的是掌握Linux的基本服务和Linux的设计理念、思想,这对于嵌入式开发人员的长期发展是很极其重要的。Linux 系统有很多发行版,RedHat、Ubuntu、Fedora等。作为嵌入式开发人员,我们没有必要把精力放到使用哪个Linux发行版上,而是尽快把 Linux系统尽快安装好。如果打算坚持长期学习,那么建议您把自己的电脑做成双系统,而不要在虚拟机上安装。
Ubuntu系统下载地址:http://www.ubuntu.org.cn/

A)经典书籍推荐:

 嵌入式学习书籍推荐[通俗易懂]

B)经典学习视频推荐:Linux操作系统入门

基础学习Ⅱ—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)经典书籍推荐:   

 嵌入式学习书籍推荐[通俗易懂]

B)经典学习视频推荐:C语言入门

C)经典学习案例:
1、学员成绩管理系统2、计算器3、电子词典4、文件压缩器

基础进阶—Linux应用程序设计
     Linux的思想源于Unix。Linux继承了Unix的优点,但 是没有用UNIX的代码,所有程序都是重新编写的,而且Linux与Unix的源码级兼容。Linux是类Unix操作系统。Linux 不仅符合 POSIX 标准,而且还包括其它 UNIX 标准的多种特性,例如,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)经典书籍推荐:

 嵌入式学习书籍推荐[通俗易懂]

B)经典学习视频推荐:Linux环境高级编程

C)经典学习案例:
1、串口监听程序   2、图片浏览器      3、MP3播放器        4、聊天程序         5、 ftp程序
6、音频广播程序   7、ping的实现     8、DDos攻击程序   9、ARP攻击程序

嵌入式入门—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来编写代码,达到理解外围设备工作原理和操作硬件的目的。

 嵌入式学习书籍推荐[通俗易懂]

B)经典学习视频推荐:
1)  嵌入式扫盲篇——十问嵌入式

2)ARM体系结构与Bootloader开发

3)嵌入式ARM Linux开发——ARM汇编

C)经典学习案例:
1. ARM模拟器开发       2. Watchdog控制程序        3. RTC时钟控制程序
4. Uart控制程序            5. LCD控制程序                    6. 触摸屏控制程序
7. DMA控制程序          8. 音频控制程序                    9. 网卡控制程序
10. 文件系统制作        11. ARM-Linux移植

嵌入式提升—Linux内核、驱动
众所周知嵌入式开发包含至少两个级别,一个是嵌入式内核驱动级别,另外一个是嵌入式应用层开发,而薪酬高的、最具价值的无疑是嵌入式内核驱动级别的开发 者。真正的嵌入式高手或者企业中的核心开发人员,一定是嵌入式底层的内核驱动开发工程师,这些工程师成长比较缓慢,造成对内核驱动人才的大量需求,所以这 些人才是真正企业需要的香饽饽。掌握驱动开发会让自己的核心能力有极大的飞跃,真正实现嵌入式最有价值的就业。
由于Linux内核更新速度很快,书籍和视频不可能及时更新,所以我们再看书和视频后,要自己动手下载内核源码包,去看内核中的代码,在这里可以充分检验 C语言、数据结构等基础知识的掌握程度。而驱动的编写还是要借助外设硬件电路原理图和芯片手册。内核和驱动的知识是让我们根据不同的硬件,编写对应的驱 动、合理剪裁内核、制作文件系统,并移植到硬件开发板上。如果手里有ARM11 6410及以上的开发板,可以试试在裸板上编写驱动并移植Android系统到开发板上吧。

 嵌入式学习书籍推荐[通俗易懂]

B)经典学习案例:
1. GPIO驱动                2. RTC时钟驱动   3. WatchDog驱动   4. Udev移植      5. 触摸屏输入设备驱动
6. LCD显示设备驱动   7. DMA驱动        8. 音频设备驱动        9. Nand Flash块设备驱动  10. 网络设备驱动

硬件工程师的书籍(等等)

 嵌入式学习书籍推荐[通俗易懂]嵌入式学习书籍推荐[通俗易懂]

 

写在最后:随着时间的推移,科技的进步,有的书的版本可能有了很大的变化,记得结合实际去看,有条件的建议买纸质书,那种阅读感觉是电子书所代替不了的,当然,网上的电子版也很多,大家可以自行搜索下载。作为一个从事嵌入式软件开发的小白,我感觉,当你静下心来读完这些书的时候,你必定能在嵌入式领域站稳脚跟,愿诸君共勉。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/132448.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 空间尺度分析图_尺度空间理论

    空间尺度分析图_尺度空间理论SIFT简介整理一下方便阅读,作者写的东西摘自论文,在此感谢xiaowei等的贡献DoG尺度空间构造(Scale-spaceextremadetection)http://blog.csdn.net/xiaowei_cqu/article/details/8067881 关键点搜索与定位(Keypointlocalization)http://blog.csdn.net/xi…

    2022年10月14日
  • LBS定位技术「建议收藏」

    LBS定位技术「建议收藏」http://www.cnblogs.com/LBSer/p/3295642.htmlLBS定位技术从方法上可分成三类:基于三角关系的定位技术、基于场景分析的定位技术、基于临近关系的定位技术(唐毅和杨

  • 解决MyQL数据库中1045错误的方法——Windows系统

    解决MyQL数据库中1045错误的方法——Windows系统在各种各样的适用场所,MySQL会出现各种各样的问题,经过足足半年的长跑,我的数据库终于修复了Bug,可以重新使用了。数据库出问题,那可能是家常便饭了。经过这足足半年的煎熬,我决定在以后的日子里,记录下我在使用数据库时遇到的色彩缤纷的问题,以及这些问题的解决方法。由此,今天写了这篇博客。首先,给大家看看,这个问题是什么样子的。我在这里用到的MySQL可视化工具为Navicat。这个错误…

  • mysql报错注入_mysql报错注入[通俗易懂]

    mysql报错注入_mysql报错注入[通俗易懂]报错注入这里主要介绍3种MySQL数据库报错注入的发法,分别是updatexml、floor和exp。1.updatexmlupdatexml的报错原理从本质上来说就是函数的报错。selectupdatexml(1,concat(0x7e,(selectversion()),0x7e),1);这里还是使用前面的例子,举出一个爆破数据库版本的样例Payload:爆破数据库版本信息?id=1’+…

  • 软件著作权的源代码_软件著作权源码被泄露

    软件著作权的源代码_软件著作权源码被泄露packagecom.example.shuoya;importjava.util.Set;importandroid.content.BroadcastReceiver;importandroid.content.Context;importandroid.content.Intent;importandroid.database.Cursor;importandroid.data…

  • 彻底理解Java内存模型,它为什么会引发线程安全问题【吐血总结】

    彻底理解Java内存模型,它为什么会引发线程安全问题【吐血总结】近日,有热心市民就”Java内存模型”提出质疑:线程是否会把所有需要操作的数据全加载到内存

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号