《猪哥地嵌入式linux公房菜1》由会员分享,可在线阅读,更多相关《猪哥地嵌入式linux公房菜1(24页珍藏版)》请在金锄头文库上搜索。
1、word猪哥的嵌入式linux公房菜猪哥的嵌入式linux公房菜, 是中文领域第一篇针对嵌入式linux入门方面的技术资料。该文档从技术层面,学习方法,学习策略等角度,从一个初学者的需求出发,阐述了根本的概念群,提供了学习规划方面的指导,网络资源,环境配置的方法,shell根底,与linux系统相关知识学习规划与指引1、嵌入式linux入门学习规划ARM+LINUX路线,主攻嵌入式Linux操作系统与其上应用软件开发目标:1掌握主流嵌入式微处理器的结构与原理初步定为arm92必须掌握一个嵌入式操作系统初步定为uclinux或linux,版本待定3必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件
2、项目。从事嵌入式软件开发的好处是:1目前国内外这方面的人都很稀缺。这一领域入门门槛较高,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前开展太快,大多数人无条件接触。2与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些但收入不低。3哪天假如想创业,搞自已的产品,嵌入式不像应用软件那样容易被盗版。硬件设计一般都是请其它公司给订做这叫“贴牌:OEM,都是通用的硬件,我们只管设计软件就变成自己的产品了。4兴趣所在,这是最主要的。从事嵌入式软件开发的缺点是:1入门起点较高,所用到的技术往往都有一定难度,假如软硬件根底不好,特别是操作系统级软件功底不深,如此可能不适于此行
3、。2这方面的企业数量要远少于企业计算类企业。3有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并无此要求,只要有经验即可。4平台依托强,换平台比拟辛苦。兴趣的由来:1、成功观念不同,不虚度此生,就是我的成功。2、喜欢思考,挑战逻辑思维。3、喜欢CC是一种能发挥思维极限的语言。关于C的精神的一些方面可以被概述成短句如下:相信程序员。不要阻止程序员做那些需要去做的。保持语言短小精干。一种方法做一个操作。使得它运行的够快,尽管它并不能保证将是可移植的。4、喜欢底层开发,讨厌vb类开发工具并不是说vb不好。5、开展前景好,适合创业,不想自己要死了的时候还是一个工程师。方法步
4、骤:1、根底知识:目的:能看懂硬件工作原理,但重点在嵌入式软件,特别是操作系统级软件,那将是我的优势。科目:数字电路、计算机组成原理、嵌入式微处理器结构。汇编语言、C/C+、编译原理、离散数学。数据结构和算法、操作系统、软件工程、网络、数据库。方法:虽科目众多,但都是较简单的根底,且大局部已掌握。不一定全学,可根据需要选修。主攻书籍:thec+programminglanguage一直没时间读、数据结构-C2。2、学习linux:目的:深入掌握linux系统。方法:使用linuxlinxu系统编程开发驱动开发和分析linux内核。先看深,那主讲原理。看几遍后,看情景分析,对照深看,两本交叉,深
5、是纲,情是目。剖析如此是0.11版,适合学习。最后深入代码。主攻书籍:linux内核完全剖析、unix环境高级编程、深入理解linux内核、情景分析和源代。3、学习嵌入式linux:目的:掌握嵌入式处理器其与系统。方法:1嵌入式微处理器结构与应用:直接arm原理与汇编即可,不要重复x86。2嵌入式操作系统类:ucOS/II简单,开源,可供入门。而后深入研究uClinux。3必须有块开发板arm9以上,有条件可参加培训进步快,能认识些朋友。主攻书籍:毛德操的嵌入式系统与其他arm9手册与arm汇编指令等。4、深入学习:A、数字图像压缩技术:主要是应掌握MPEG、mp3等编解码算法和技术。B、通信
6、协议与编程技术:TCP/IP协议、802.11,Bluetooth,GPRS、GSM、CDMA等。C、网络与信息安全技术:如加密技术,数字证书CA等。D、DSP技术:DigitalSignalProcess,DSP处理器通过硬件实现数字信号处理算法。 说明:太多细节未说明,可根据实际情况调整。重点在于1、3,不必完全按照顺序作。对于学习c+,理由是c+不只是一种语言,一种工具,她还是一 种艺术,一种文化,一种哲学理念、但不是拿来炫耀得东西。对于linux内核,学习编程,读一些优秀代码也是有必要的。注意:要学会举一反多,有强大的根底,很多东西简单看看就能会。想成为合格的程序员,前提是必须熟练至少
7、一种编程语言,并具有良好的逻辑思维。一定要理论结合实践。不要一味钻研技术,虽然挤出时间是很难做到的,但还是要留点余地去完善其他的爱好,比如宇宙,素描、机械、管理,心理学、游戏、科幻电影。还有一些不愿意做但必须要做的!技术是通过编程编程在编程编出来的。永远不要梦想一步登天,不要做浮躁的人,不要觉得路途漫上。而是要编程编程在编程,完了在编程,在编程!等机会来了在创业不要相信有奇迹发生,盲目创业很难成功,即便成功了开展空间也不一定很大。嵌入式书籍推荐Linux根底1、Linux与UnixShell编程指南C语言根底1、CPrimerPlus,5thEdition【美】StephenPrata着2、T
8、heCProgrammingLanguage,2ndEdition【美】BrianW.KernighanDavidM.RithieK&R着3、AdvancedProgrammingintheUNIXEnvironment,2ndEditionAPUE4、嵌入式Linux应用程序开发详解Linux内核1、深入理解Linux内核第三版2、Linux内核源代码情景分析毛德操胡希明著研发方向1、UNIXNetworkProgrammingUNP2、TCP/IP详解3、Linux内核编程4、Linux设备驱动开发LDD5、Linux高级程序设计杨宗德著硬件根底1、ARM体系结构与编程杜春雷着2、S3C2
9、410Datasheet英语根底1、计算机与通信专业英语系统教程1、嵌入式系统体系结构、编程与设计2、嵌入式系统采用公开源代码和StrongARM/Xscale处理器毛德操胡希明着3、BuildingEmbeddedLinuxSystems4、嵌入式ARM系统原理与实例开发杨宗德著理论根底1、算法导论2、数据结构C语言版3、计算机组织与体系结构?性能分析4、深入理解计算机系统【美】RandalE.BryantDavidOHallaron着5、操作系统:精髓与设计原理6、编译原理7、数据通信与计算机网络8、数据压缩原理与应用C语言书籍推荐1.TheCprogramminglanguage程序设计
10、语言2.PointersonC和指针3.Ctrapsandpitfalls陷阱与缺陷4.ExpertCLanuage专家编程5.WritingCleanCode-MicrosoftTechiniquesforDevelopingBug-freeCPrograms编程精粹-Microsoft编写优质无错程序秘诀6.ProgrammingEmbeddedSystemsinCandC+嵌入式系统编程7.C语言嵌入式系统编程修炼8.高质量C+/C编程指南林锐尽可能多的编码,要学好C,不能只注重C本身。算法,架构方式等都很重要。嵌入式linux入门学习内容指南1、Linux 根底安装Linux操作系统
11、Linux文件系统 Linux常用命令 Linux启动过程详解 熟悉Linux服务能够独立安装Linux操作系统 能够熟练使用Linux系统的根本命令 认识Linux系统的常用服务安装Linux操作系统 Linux根本命令实践 设置Linux环境变量 定制Linux的服务 Shell 编程根底使用vi编辑文件 使用Emacs编辑文件 使用其他编辑器2、Shell 编程根底Shell简介 认识后台程序Bash编程熟悉Linux系统下的编辑环境 熟悉Linux下的各种Shell 熟练进展shell编程熟悉vi根本操作 熟悉Emacs的根本操作 比拟不同shell的区别 编写一个测试服务器是否连通的
12、shell脚本程序 编写一个查看进程是否存在的shell脚本程序 编写一个带有循环语句的shell脚本程序3、Linux 下的 C 编程根底linux C语言环境概述 Gcc使用方法 Gdb调试技术 Autoconf Automake Makefile 代码优化 熟悉Linux系统下的开发环境 熟悉Gcc编译器 熟悉Makefile规如此编写Hello,World程序 使用 make命令编译程序 编写带有一个循环的程序 调试一个有问题的程序4、嵌入式系统开发根底嵌入式系统概述 交叉编译 配置TFTP服务 配置NFS服务 下载Bootloader和内核 嵌入式Linux应用软件开发流程熟悉嵌入式
13、系统概念以与开发流程 建立嵌入式系统开发环境制作cross_gcc工具链 编译并下载U-boot 编译并下载Linux内核 编译并下载Linux应用程序4、嵌入式系统移植Linux内核代码 平台相关代码分析 ARM平台介绍 平台移植的关键技术 移植Linux内核到 ARM平台 了解移植的概念 能够移植Linux内核移植Linux2.6内核到 ARM9开发板5、嵌入式 Linux 下串口通信串行I/O的根本概念 嵌入式Linux应用软件开发流程 Linux系统的文件和设备 与文件相关的系统调用 配置超级终端和Mini 能够熟悉进展串口通信 熟悉文件I/O 编写串口通信程序 编写多串口通信程序6、
14、嵌入式系统中多进程程序设计Linux系统进程概述 嵌入式系统的进程特点 进程操作 守护进程 相关的系统调用了解Linux系统中进程的概念 能够编写多进程程序编写多进程程序 编写一个守护进程程序 sleep系统调用任务管理、同步与通信 Linux任务概述任务调度 管道 信号 共享内存 任务管理 API 了解Linux系统任务管理机制 熟悉进程间通信的几种方式 熟悉嵌入式Linux中的任务间同步与通信编写一个简单的管道程序实现文件传输 编写一个使用共享内存的程序7、嵌入式系统中多线程程序设计线程的根底知识 多线程编程方法 线程应用中的同步问题了解线程的概念 能够编写简单的多线程程序编写一个多线程程序8、嵌入式 Linux 网络编程网络根底知识 嵌入式L