嵌入式系统自学
Linux基础知识
1,Linux和Unix Shell编程指南
c语言基础
1,C Primer Plus,第5版,作者Stephen Prata。
2.《C语言程序设计》,第二版,Brian w . Kernigan David m . Rithie(K & amp;r)开
3、《UNIX环境下的高级编程,第二版》(APUE)
4.嵌入式Linux应用开发详解。
Linux内核
1,深入了解Linux内核(第三版)
2.毛和胡对Linux内核源代码的场景分析
研发方向
1、《UNIX网络编程》( UNP)
2.TCP/IP的详细解释
3.Linux内核编程
4.Linux设备驱动程序开发(LDD)
5.杨Linux高级编程
硬件基础
1,杜春蕾《ARM架构与编程》
2、S3C2410数据表
基本英语
1,计算机与通信英语
系统课程
1,嵌入式系统-架构、编程和设计
2.嵌入式系统-使用开放源代码和StrongARM/Xscale处理器,作者毛和胡。
3、《构建嵌入式Linux系统》
4.杨嵌入式ARM系统原理及实例开发。
理论基础
1,算法介绍
2.数据结构(C语言版本)
3.计算机组织与架构?性能分析”
4,“对计算机系统的深刻理解”,作者Randal E. Bryant David O''Hallaron
5.操作系统:本质和设计原则
6.编译原则
7.数据通信和计算机网络
8.数据压缩的原理及应用
这是别人推荐的几本书,我也在学习嵌入式的东西。原来基础不如你,但希望这些书对你有帮助。
以下是牛人的一些嵌入式学习经验,供大家参考:
1,基础知识:
目标:我能理解硬件的工作原理,但专注于嵌入式软件,尤其是操作系统级软件将是我的优势。
科目:数字电路、计算机组成原理、嵌入式微处理器结构。
汇编语言,C/C++,编译原理,离散数学。
数据结构与算法,操作系统,软件工程,网络,数据库。
方法:科目虽多,但都是简单的基础,大部分已经掌握。不必全部学习,但可以根据需要选修。
主要书籍:《c++编程语言》(还没来得及看)和《数据结构——C2》。
2.学习linux:
目的:深入掌握linux系统。
方法:使用linux-> LINXU系统编程开发->驱动程序开发分析linux内核。先看深,再解释原理。看了几遍,看形势分析,对比深度,两本书交叉,深度是纲,情感是旨。分析是0.11版本,适合学习。最后,深入代码。
主要书籍:《linux内核全解析》、《unix环境下的高级编程》、《linux内核的深入理解》、《场景分析与源码生成》。
3.了解嵌入式linux:
目的:掌握嵌入式处理器及其系统。
方法:(1)嵌入式微处理器的结构与应用:只讲arm的原理与组装,不重复x86。
(2)嵌入式操作系统类:ucOS/II简单,开源,可用于入门。然后深入学习uClinux。
(3)必须有开发板(arm9以上),有参加培训的条件(可以进步很快,可以交一些朋友)。
主要著作:毛的嵌入式系统等arm9手册和arm汇编指令。
4.深入研究:
一、数字图像压缩技术:主要应掌握MPEG、mp3等编解码算法和技术。
b通信协议及编程技术:TCP/IP协议、802.11、蓝牙、GPRS、GSM、CDMA等。
C.网络与信息安全技术:如加密技术、数字证书CA等。
d、DSP技术:数字信号处理,DSP处理器通过硬件实现数字信号处理算法。
注:太多细节不解释,可根据实际情况调整。重点是1和3,不一定要全序做。之所以要学c++是因为c++不仅仅是一门语言,一个工具,更是一门艺术,一种文化,一种哲学,但不是用来炫耀的东西。对于linux内核来说,也需要学习编程,阅读一些优秀的代码。
注意:要学会举一反三,基础扎实。你可以简单地通过观察来学习很多东西。要成为一名合格的程序员,必须精通至少一门编程语言,并具有良好的逻辑思维。我们必须把理论和实践结合起来。
不要盲目钻研技术。虽然很难找到时间,但也要留点空间完善其他爱好,比如宇宙、素描、机械、管理、心理学、游戏、科幻电影。还有些事情是你不想做却又不得不做的!
技术是通过编程来编程的。千万不要梦想一步登天,不要做一个浮躁的人,不要觉得路漫漫其修远兮。是编程,编程,编程,编程!机会来了再创业(不要相信奇迹,盲目的成功很难,即使成功了也不一定有多大的发展空间)。
嵌入式学习的关键在于个人兴趣。不要怕困难,坚持不懈,多向前辈请教。