Andrew S. Tanenbaum Computer Networks 提起Andrew S. Tanenbaum 学习计算机的同学一定都知道OPERATINGSYSTEMs:Designand
Implementation这本书 , 笔者对于Tanenbaum这样的教授由衷佩服 。 网络协议栈是嵌入式系统中的支柱性组成部分 。 愿意致力于网络深层技术研究的同学 , 这本书将为你们建立一个坚实的网络基础 。
Karim Yaghmour Building Embedded Linux Systems本书详尽的介绍了嵌入式linux系统的组成 , 基本概念和如何去建立各个部分 。 全书篇幅较小 , 可谓短小精悍 。 即可以作为嵌入式linux系统的入门读物 , 又是开发过程各个部分的指南 。
Advanced RISC Machines Ltd (ARM) ARM7 TDMI DataSheet Advanced RISC Machines Ltd (ARM) ARM920TTechnical Reference Manual学习嵌入式系统不了解当前应用最广泛的嵌入式处理器怎么行?ARM7 TDMI 的 data sheet是学习ARM编程模型 , 指令集的好东西 。 在嵌入式系统中 , MMU(内存管理单元)是很重要的部分 , 又是较难理解和掌握的部分 。 ARM920TTechnical Reference Manual 正好可以帮你讲解这方面的内容 。
Perter Van Der LinDen Expert C Programming嵌入式系统级编程最常用的语言还是C 。 很多同学都自认为自己的C语言学的很好 , 那好 , 就看看这本书吧 , 找找自己和Experts差距 。
嵌入式开发与桌面开发既有不同 , 又有非常大的联系 , 而且十分注重实际操作能力 。 搞桌面开发的人在一开始接触嵌入式的时候 , 通常转换不过来 , 这主要体现在定位上 。 如文中所说 , 你是谁 , 你要做什么?我对硬件的了解仅限于编程领域 , PCB设计一窍不通 , 但并不能说你不懂硬件就不能从事嵌入式开发 。 一个系统的开发设计方方面面 , 在自己感兴趣和熟悉的领域做出自己的贡献才是最主要的 。
1 。 硬件设计: 需要有硬件设计的经验 , 对各种嵌入式器件有很好的了解 。
2 。 系统移植:需要汇编经验 , 操作系统原理以及底层驱动的了解
3 。 应用程序:需要桌面编程经验
嵌入式开发难吗?要怎么学习? 你可以尝试以下路线:
(1) C语言是所有编程语言中的强者 , 单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定) , 因此必须非常熟练的掌握 。
推荐书籍:《The C Programming Language》 这本经典的教材是老外写的 , 也有中译版本 。
(2) 操作系统原理 , 是必需的 , 如果你是计算机专业毕业那也就无所谓了 , 如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看 , 把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚 。
(3)Linux操作系统就是用C语言编写的 , 所以你也应该先学习下Linux方面的编程 , 只有你会应用了 , 才能近一步去了解其内核的精髓 。
推荐书籍:《UNIX环境高级编程》(第2版)
(4) 了解ARM的架构 , 原理 , 以及其汇编指令 , 我们在嵌入式开发中 , 一般很少去写汇编 , 但是最起码的要求是能够看懂arm汇编 。
(5) 系统移植的时候 , 就需要你从最下层的bootloader开始 , 然后内核移植 , 文件系统移植等 。 而移植这部分对硬件的依赖是非常大的 , 其配置步骤也相对复杂 , 也没有太多详细资料 。
(6) 驱动开发
linux驱动程序设计既是个极富有挑战性的领域 , 又是一个博大精深的内容 。
linux驱动程序设计本质是属于linux内核编程范畴的 , 因而是对linux内核和内核编程是有要求的 。 在学习前你要想了解linux内核的组成 , 因为每一部分要详细研究的话足够可以扩展成一本厚书 。
以上只不过是大概的框架 , 在实际的开发中还会涉及很多东西 , 比如:交叉编译、makefile、shell脚本等等 , 所以说学习嵌入式的周期较长 , 门槛较高 , 自学的话更是需要较强的学习能力和专业功底 。 只要能坚持下来一定会取得成功!
推荐阅读
- 学习知识|穿书之论如何掰直反派
- 学习知识|如何教育爱生气的孩子,爱发脾气的孩子怎么教育
- 学习知识|如何办理残疾人证明,残疾人证书办理
- 学习知识|如何和孩子沟通和教育方式,如何与自己小孩交流与教育
- 学习知识|做教育培训前景如何,2021年不允许办辅导班了吗
- 娱乐知识|she是谁,she照片分别是谁
- 冬季草莓如何保根
- 娱乐知识|k神是谁,DJx神是谁
- 娱乐知识|薛洋是谁,薛洋的结局是什么
- 娱乐知识|爆破是谁,爆破s级英雄