嵌入式软件工程师成长---所需要看的书籍

2019-07-13 00:13发布

图书
 
C语言
 
《C Primer Plus,5th Edition》【美】Stephen Prata著
 
The C programming language《C程序设计语言》
 
Pointers on C《C和指针》
 
C traps and pitfalls《C陷阱与缺陷》
 
 Expert C Lanuage《专家C编程》
 
 Writing Clean Code-----Microsoft Techiniques for Developing Bug-free C Programs
 
《编程精粹--Microsoft 编写优质无错C程序秘诀》
 
 Programming Embedded Systems in C and C++《嵌入式系统编程》
 
《C语言嵌入式系统编程修炼》
 
《高质量C++/C编程指南》林锐
 
Linux基础
 
1、《Linux与Unix Shell 编程指南》
 
2、《鸟哥的 Linux 私房菜 基础学习篇(第二版)》
 
3、《Linux程序设计.第3版》
 
3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE)
 
4、《嵌入式Linux应用程序开发详解》
 
Linux内核
 
1、《深入理解Linux内核》(第三版)
 
2、《Linux内核源代码情景分析》毛德操 胡希明著
 
研发方向
 
1、《UNIX Network Programming》(UNP)
 
2、《TCP/IP详解》
 
3、《Linux内核编程》
 
4、《Linux设备驱动开发》(LDD)  
 
硬件基础
 
计算机组成原理
 
1、《ARM体系结构与编程》杜春雷著
 
英语基础
 
1、《计算机与通信专业英语》
 
系统教程
 
1、《嵌入式系统 ――体系结构、编程与设计》
 
2、《嵌入式系统 ――采用公开源代码和StrongARM/Xscale处理器》毛德操 胡希明著
 
3、《Building Embedded Linux Systems》
 
理论基础
 
1、《算法导论》
 
2、《数据结构(C语言版)》
 
3、《计算机组织与体系结构?性能分析》
 
4、《深入理解计算机系统》【美】Randal E. Bryant David O'Hallaron著
 
5、《操作系统:精髓与设计原理》
 
6、《编译原理》
 
7、《数据通信与计算机网络》
 
8、《数据压缩原理与应用》
 
《unix环境高级编程》
 
Stevens先生的《unix环境高级编程》
 
如果对网络编程有兴趣的,可以学习一下Stevens先生的《UNIX网络编程》两卷
 
可以再看看《TCP/IP详解》三卷)。
 
《计算机编程艺术》对算法有兴趣得可以研究一下。
 
 
 
《linux设备驱动程序》《深入理解Linux内核》
 
Linux上的应用编程:《APUE》和《UNP》,前者锻炼基本功,后者学习网络编程。
 
《Linux Device Driver》--《Linux设备驱动程序》
 
《UNP》是《UNIX Network Programming》--《Unix网络编程》这本书的简称。作者是:W.Richard Stevens,他是unix与网络方面的专家,他写了几本书,都是unix和网络方面的经典:
 
第一卷是关于Unix 网络方面的API详细描述,BSD Socket网络编程接口和另外一种网络编程接口的,不过现在一般都用BSDSocket;
 
第二卷写的是IPC,就是interprocess communication(进程间通信)。是关于Unix网络编程方面的经典。第二卷没有设计到网络的东西,主要讲进程间通讯和Posix线程。
 
《APUE》一卷,《AdvancedProgramming in the UNIX Environment》
 
中文称为《UNIX环境高级编程-(第2版)》。是一本详细描述unix类系统调用的书,unix的C编程中的经典。
 
(3). 《TCP/IP详解》三卷,第一卷写的是TCP/IP协议,第二卷写TCP/IP协议在BSD中的C实现,第三卷写事务和HTTP协议等。
 
《TCP/IP祥解》一共三卷,卷一讲协议,卷二讲实现,卷三讲编程应用。
 
 《UNIX编程艺术》--《The Art of Unix Programming》   目前学习的主线是 1. 先学习基础的C语言编程,C++编程。《以达内的嵌入式软件编程培训为主》 2. 熟悉linux系统,参看《鸟哥的私房菜》,arm的《arm体系架构与编程》 3. 熟悉后以韦东山的《嵌入式Linux应用开发完全手册》作为主线,搭配2440开发板进行系统的Linux驱动开发