嵌入式Linux系统学习步骤.docx

上传人:b****6 文档编号:8410878 上传时间:2023-01-31 格式:DOCX 页数:14 大小:27.08KB
下载 相关 举报
嵌入式Linux系统学习步骤.docx_第1页
第1页 / 共14页
嵌入式Linux系统学习步骤.docx_第2页
第2页 / 共14页
嵌入式Linux系统学习步骤.docx_第3页
第3页 / 共14页
嵌入式Linux系统学习步骤.docx_第4页
第4页 / 共14页
嵌入式Linux系统学习步骤.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

嵌入式Linux系统学习步骤.docx

《嵌入式Linux系统学习步骤.docx》由会员分享,可在线阅读,更多相关《嵌入式Linux系统学习步骤.docx(14页珍藏版)》请在冰豆网上搜索。

嵌入式Linux系统学习步骤.docx

嵌入式Linux系统学习步骤

1.嵌入式软件开发应用领域

嵌入式系统是当前最热门、最具发展前途的IT应用领域之一。

包括手机、电子字典、可视、数字相机、数字摄像机、U-Disk、机顶盒、高清电视、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等都是典型的嵌入式系统。

因此,通过嵌入式培训成为专业的嵌入式技术人才,其职业发展空间较大。

2.嵌入式软件开发人才需求 

目前国嵌入式人才极度匮乏,权威部门统计,我国目前嵌入式软件人才缺口每年为40万人左右。

供不应求使得嵌入式人才身价上涨,而且,越有专业经验,就业竞争力就越大。

因此,IT专业人士通过培训掌握嵌入式技术,就能成为炙手可热的专业人才,其培训回报有保障。

3.嵌入式软件开发就业方向

由于3G持续升温,这方面的人才也保持了供不应求的势头。

据悉,目前国3G核心嵌入式人才不足万人,其中华为约5000-6000人,中兴通讯、大唐各约2000人,以区区万人的阵容去争夺据称有上千亿元的市场,3G嵌入式工程师的身价由此可见一斑。

在近期的人气职位榜上,电信行业嵌入式工程师行市走高,嵌入式研发工程师、嵌入式技术支持工程师都高居前五位。

 

嵌入式Linux系统学习步骤简介

1.Linux基础

安装Linux操作系统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的区别编写一个测试服务器是否连通的shell脚本程序编写一个查看进程是否存在的shell脚本程序编写一个带有循环语句的shell脚本程序

3.Linux下的C编程基础

linuxC语言环境概述Gcc使用方法Gdb调试技术AutoconfAutomakeMakefile代码优化熟悉Linux系统下的开发环境熟悉Gcc编译器熟悉Makefile规则编写Hello,World程序使用make命令编译程序编写带有一个循环的程序调试一个有问题的程序

4.嵌入式系统开发基础

嵌入式系统概述交叉编译配置TFTP服务配置NFS服务下载Bootloader和核嵌入式Linux应用软件开发流程熟悉嵌入式系统概念以及开发流程建立嵌入式系统开发环境制作cross_gcc工具链编译并下载U-boot编译并下载Linux核编译并下载Linux应用程序

5.嵌入式系统移植

Linux核代码平台相关代码分析ARM平台介绍平台移植的关键技术移植Linux核到ARM平台了解移植的概念能够移植Linux核移植Linux2.6核到ARM9开发板

6.嵌入式Linux下串口通信

串行I/O的基本概念嵌入式Linux应用软件开发流程Linux系统的文件和设备与文件相关的系统调用配置超级终端和MiniCOM能够熟悉进行串口通信熟悉文件I/O编写串口通信程序编写多串口通信程序

7.嵌入式系统中多进程程序设计

Linux系统进程概述嵌入式系统的进程特点进程操作守护进程相关的系统调用了解Linux系统中进程的概念能够编写多进程程序编写多进程程序编写一个守护进程程序sleep系统调用任务管理、同步与通信Linux任务概述任务调度管道信号共享存任务管理API了解Linux系统任务管理机制熟悉进程间通信的几种方式熟悉嵌入式Linux中的任务间同步与通信编写一个简单的管道程序实现文件传输编写一个使用共享存的程序

8.嵌入式系统中多线程程序设计

线程的基础知识多线程编程方法线程应用中的同步问题了解线程的概念能够编写简单的多线程程序编写一个多线程程序

9.嵌入式Linux网络编程

网络基础知识嵌入式Linux中TCP/IP网络结构socket编程常用API函数分析Ping命令的实现基本UDP套接口编程许可证管理PPP协议GPRS了解嵌入式Linux网络体系结构能够进行嵌入式Linux环境下的socket编程熟悉UDP协议、PPP协议熟悉GPRS使用socket编写代理服务器使用socket编写路由器编写许可证服务器指出TCP和UDP的优缺点编写一个web服务器编写一个运行在ARM平台的网络播放器

10.GUI程序开发

GUI基础嵌入式系统GUI类型编译QT进行QT开发熟悉嵌入式系统常用的GUI能够进行QT编程使用QT编写“Hello,World”程序调试一个加入信号/槽的实例通过重载QWidget类方法处理事件

11.Linux字符设备驱动程序

设备驱动程序基础知识Linux系统的模块字符设备驱动分析fs_operation结构加载驱动程序了解设备驱动程序的概念了解Linux字符设备驱动程序结构能够编写字符设备驱动程序编写Skull驱动编写键盘驱动编写I/O驱动分析一个看门狗驱动程序对比Linux2.6核与2.4核中字符设备驱动的不同Linux块设备驱动程序块设备驱动程序工作原理典型的块设备驱动程序分析块设备的读写请求队列了解Linux块设备驱动程序结构能够编写简单的块设备驱动程序比较字符设备与块设备的异同编写MMC卡驱动程序分析一个文件系统对比Linux2.6核与2.4核中块设备驱动的不同

12.文件系统

虚拟文件系统文件系统的建立ramfs存文件系统proc文件系统devfs文件系统MTD技术简介MTD块设备初始化MTD块设备的读写操作了解Linux系统的文件系统了解嵌入式Linux的文件系统了解MTD技术能够编写简单的文件系统为ARM9开发板添加MTD支持移植JFFS2文件系统通过proc文件系统修改操作系统参数分析romfs文件系统源代码创建一个cramfs文件系统

无论选择哪一方向,基本的linux的知识是需要具备的,其他还需要掌握的知识有ARM(最常用的一款嵌入式处理器)和C语言编程,每一方面知识的掌握熟练程度都最终决定了个人进行嵌入式linux开发的综合能力。

怎样才能学好嵌入式Linux?

1.从基础开始:

常常有些朋友在Linux论坛问一些问题,不过,其多数的问题都是很基础的。

例如:

为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不是很难的,只要了解了Linux的基础之后,应该就可以很轻易的解决掉这方面的问题。

而有些朋友们常常一接触Linux就是希望构架,根本没有想到要先了解一下Linux的基础。

这是相当困难的。

2.Linux命令是必须学习的:

虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力。

Linux是一个命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平这个原理是不会变的,Linux命令有许多强大的功能:

从简单的磁盘操作、文件存取、到进行复杂的多媒体图象和流媒体文件的制作。

举一个例子:

Linux的常用命令find,察看man文档,初学者一定会觉得太复杂而不原意用,但是你一旦学会就爱不释手.它的功能实在太强了,在配合exec参数或者通过管道重定向到xargs命令和grep命令,可以完成非常复杂的操作,如果同样的操作用图形界面的工具来完成,恐怕要多花十几陪的时间.不同版本的Linux命令数量不一样,这里笔者把它们中比较重要的和使用频率最多的命令,按照它们在系统中的作用分成几个部分介绍给大家,通过这些基础命令的学习我们可以进一步理解Linux系统:

安装和登录命令:

login、shutdown、halt、reboot、mount、umount、chsh文件处理命令:

file、mkdir、grep、dd、find、mv、ls、diff、cat、ln系统管理相关命令:

df、top、free、quota、at、lp、adduser、groupaddkill、crontab、tar、unzip、gunzip、last网络操作命令:

ifconfig、ip、ping、netstat、telnet、ftp、route、rloginrcp、finger、mail、nslookup系统安全相关命令:

passwd、su、umask、chgrp、chmod、chown、chattr、sudo、pswho

3.选择一本好的工具书:

工具书对于学习者而言是相当重要的。

一本错误观念的工具书却会让新手整个误入歧途。

4.选择一个适合你的Linux发行版本:

目前全球有超过1百多个Linux发行版本,在国也能找到十几个常见版本。

如何选择请根据你的需求和能力,RedhatLinux和DebianLinux是网络管理员的理想选择。

对于英语不是很好的读者红旗Linux、中标Linux这些中文版本比较适合。

现在一些Linux有一些Linux版本的免费下载,这里要说的是并不适合Linux初学者。

5.养成在命令行下工作:

一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。

在命令行下学习虽然一开始进度较慢,但是熟悉后,您未来的学习之路将是以指数增加的方式增长的。

从网管员来说,命令行实际上就是规则,它总是有效的,同时也是灵活的。

即使是通过一条缓慢的调制解调器线路,它也能操纵几千公里以外地远程系统。

6.选择一个适合你的Linux社区:

随着Linux应用的扩展,出现了不少Linux社区。

其中有一些非常优秀的社区:

(国最高水平GNU站点)、(中国最大的Unix技术社区),但是这几个论坛往往是Linux高手的舞台,如果在探讨高级技巧的论坛贴非常初级的问题经常会没有结果。

7.勤于实践:

要增加自己Linux的技能,只有通过实践来实现了。

所以,赶快找一部计算机,赶快安装一个Linux发行版本,然后进入精彩的Linux世界。

相信对于你自己的Linux能力必然大有斩获。

此外,人脑不像计算机的硬盘一样,除非硬盘坏掉了或者是资料被你抹掉了,否则储存的资料将永远而且立刻的记忆在硬盘中。

在人类记忆的曲线中,你必须要不断的重复练习才会将一件事情记得比较熟。

同样的,学习Linux也一样,如果你无法经常学习的话,学了后面的,前面的忘了。

你对Linux命令熟悉后你可以开始搭建一个小的Linux网络,这是最好的实践方法。

Linux是网络的代名词,Linux网络服务功能非常强大,不论是服务器、Web服务器、DNS服务器等都非常完善。

当然你不需搭建所有服务,可以慢慢来。

需要说明的是这个Linux网络对于初学者有两三台计算机即可,其中一台计算机最好安装Windows系统。

自己多动手,不要非要等着别人帮你解决问题。

8.如何得到联机帮助:

和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。

其实当你安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。

1.主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。

2.查阅经典工具书和Howto,特别是Howto是全球数以万计的Linux、Unix的经验总结非常有参考价值通常40%的问题同样可以解决。

9.在Linux论坛获取帮助:

如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。

Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人,Linux高手更具有鼓励新手的文化精神。

如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问,否则只会得到到草率的回答或者根本得不到任何答案。

越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。

最好先搜寻一下论坛是否有您需要的文章。

这样可以获得事半功倍的效果。

下面笔者在论坛看到的一个好问题:

“安装红旗4.0后,系统紫光输入法自带的双拼方案和我的习惯不一样,如何自定义双拼方案解决?

”这个问题很简练,笔者五分钟后就给出了解决方法:

“首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑/usr/local/unispim/unispimsp.ini,最后重启动计算机,生成新的unispimsp.ksc”另外得到回复后如果问题解决,向帮助过你的人发个说明,让他们知道问题是怎样解决的,这种补充有助于他人在列表/新闻组/论坛中搜索对你有过帮助的完整解决方案,这可能对他们也很有用。

下面看看一个让人无法回答的问题:

“救命各位高手,向你们请教一些问题:

如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,”这样的问题我想即使Linux高手也很难快速准确精练的回答你。

你需要提供精确有效的信息。

这并不是要求你简单的把成吨的出错代码或者数据完全转储摘录到你的提问中。

如果你有庞大而复杂的测试条件,尽量把它剪裁得越小越好。

可能你会遇到这种情况,对于一个问题会出现不同容回答,这时你需要通过实践来验证。

另外把这个问题放在其他Linux社区请求帮助也是一种选择。

如果得不到答案,请不要以为我们觉得无法帮助你。

有时只是看到你问题的人不知道答案罢了。

这时换一个社区是不错的选择。

另外发问的时候一定要注意到某些礼节。

因为Linux社区是一个松散的组织、也不承担回复每个帖子的义务。

它不是技术支持。

10.用Unix思维学习Linux:

Linux是参照Unix思想设计的,理解掌握Linux必须按照Unix思维来进行。

思想性的转变比暂时性的技术提高更有用,因为他能帮助你加快学习速度。

11.学习专业英文:

如果你想深入学习Linux,看不懂因为文档实在是太难了。

写的最好的,最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的。

即便是非英语国家的人发布技术文档,也都首先翻译成英语在国际学术杂志和网络上发表。

安装一个新的软件时先看README,再看INSTALL然后看FAQ,最后才动手安装,这样遇到问题就知道为什么。

如果说明文档不看,结果出了问题再去论坛来找答案反而浪费时间。

Linux学习的路线

1.掌握至少50个以上的常用命令。

2.熟悉Gnome/KDE等X-windows桌面环境操作。

3.掌握.tgz、.rpm等软件包的常用安装方法

4.熟悉Grub/Lilo引导器及简单的修复操作。

5.学习添加外设,安装设备驱动程序(比如网卡)

6.熟悉Linux文件系统和目录结构。

7.掌握vi,gcc,gdb等常用编辑器,编译器,调试器。

Linux下编程,主要是选用一个文本编辑工具(如vieclipsenanogedit等)编写,再用GCC编译,最后用gdb调试。

8.理解shell别名、管道、I/O重定向、输入和输出以及shell脚本编程。

9.学习Linux环境下的组网。

深入学习linux的大致方向

1.文件系统:

linux的相关的系统设定,各种linux环境下的软件的使用与调试。

这类知识是基础,但并不简单,学好了,绝对可以当讲师的。

2.网络服务:

linux这种类UNIX的操作系统其另一个作用域是网络服务器。

linux本身自带几乎所有网络上的用得到的服务,可以充当任何网络服务器,比如DNS、DHCP、ftp、NFS、Proxy等等。

而且其特点是,所有这些服务的配置与设定都可以通过文本形式的配置文件进行配置。

所以学好linux下网络服务的配置与使用,完全可以当CIO(首席信息官)了,因为已经具备linux网络工程师的能力了。

3.软件设计:

linux是开源的大环境,也是较原始的编成环境,其下的C/C++、PHP等都是比windows下更纯语言。

但linux下高级的开发环境较少,不像VC等工具好使,所以linux下的软件工程师要具备的知识更多。

要是学好了linux下的软件设计,也算编成是高手了。

linux这三大块知识的学习不相互影响,但也有相互依赖和促进的作用,想深入某一个领域,不见得要其它领域都掌握,但建议也对其它领域也有所涉及,会有事半功倍的效果。

学习嵌入式linux的三个方向

1、嵌入式linux应用软件开发

2、linux核的剪裁和移植

3、嵌入式linux底层驱动的开发

参加嵌入式培训,可有以下三方面的收获:

1.成为热门嵌入式人才。

目前国嵌入式人才极度匮乏,权威部门统计,我国目前嵌入式软件人才缺口每年为40万人左右。

INTEL、TI、SONY、三星、TCL、联想、康佳等大型企业对嵌入式人才都有大量的需求。

供不应求使得嵌入式人才身价上涨,而且,越有专业经验,就业竞争力就越大。

因此,IT专业人士通过培训掌握嵌入式技术,就能成为炙手可热的专业人才,其培训回报有保障。

2.嵌入式就业发展空间相对较大。

嵌入式系统是当前最热门、最具发展前途的IT应用领域之一。

包括手机、电子字典、可视、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(SetTopBox)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等都是典型的嵌入式系统。

因此,通过嵌入式培训成为专业的嵌入式技术人才,其职业发展空间较大。

3.通过嵌入式培训进入嵌入式领域后,自主创业更为容易。

对想在IT领域创业的技术人员来说,随着竞争的日趋激烈,如今需要寻找新的创业方向和领域,才容易获得成功,而嵌入式产品开发就是不错的选择。

嵌入式就业方向

1.硬件方向,对硬件比较了解,有一定的硬件功底,主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、BoardSupportPackage(像PC的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。

2.软件方向的开发,这占社会需求的主要方面,主要从事嵌入式操作系统和应用软件的开发。

完成嵌入式培训后,可以从事消费电子、安全安防、汽车电子、医疗电子、电信等行业的计算机应用设计开发岗位就业,担任嵌入式产品及应用系统的设计与开发工程师,从事嵌入式技术的应用项目设计开发、产品维护与技术服务等工作。

希望以上的嵌入式前景分析能对立志于投身嵌入式行业的你有所帮助,那就是我们最大的满足了

 

无论选择哪一方向,基本的linux的知识是需要具备的,其他还需要掌握的知识有ARM(最常用的一款嵌入式处理器)和C语言编程,每一方面知识的掌握熟练程度都最终决定了个人进行嵌入式linux开发的综合能力。

嵌入式工程师必看:

做完项目之后的九问!

   及时的自我总结

   从技术上讲,每作完一个项目/电路设计,或者项目时间比较长,就在一段工作时间之后,好好小结一下最近的工作成绩,我觉得这是很有必要的。

根据我个人的体会,可以参照下面的几点去总结。

 

   另外我还想说,项目的完成,是公司的获得,股东的收益,而自我的获得和提高,主要是表现在以下几个方面的。

如果以下所列,你的回答都是否的话,那很遗憾,你自己的收获为零,这肯定不是我们希望的。

 

1.对于相同的电路/架构,是否有更深入的理解?

Note:

比如一个简单的bias电路,一个op电路,每次重复,可能都会有更进一步的理解

 

2.相同架构的电路,是否更快的完成了调试,(还记得上次调试这个电路花了多长时间吗?

),从中吸取了什么样的经验和教训?

Note:

不是说相同的电路就没有进步,进步与否在于是否用心

 

3.自我感觉你的效率有提高吗?

Note:

对自己的行为有正确的评价,也是一个能力

 

4.对于不同的电路,你学到了哪些知识?

Note:

电路不同,不一定学到新的知识

 

5.这次电路设计过程,有过创新的想法吗?

即使这个想法没有最终实施。

Note:

创新不是很难的事,有大有小,创新更是一种思维方法和方式,它比结果更重要

 

6.这次电路设计过程,有哪些失败的地方,吸取到了什么样的教训?

Note:

失败、教训同样是很重要的,有的地方走了弯路,要记住,更要举一反三,不要再犯同样或类似的错误

 

7.EDAtool的使用,学到了哪些新的功能,对工具,有了哪些更深入的理解?

Note:

工具的合理使用,可以大大改善我们工作的质量和效率;同样的工具,不同的人使用,有不同的效果;不同的工具,基于不同的原理,对工具有更深入的理解,可以帮助我们选择最合适的工具;

 

8.office工具的使用,又会使用哪些新的功能;你的文档表达更清晰、可读性更好了吗?

Note:

文档的使用,即可以很好地整理我们自己的思维,又可以很到程度上改善我们协作/沟通的效果

 

9.本次电路设计和文档的完成,其他人的评价如何,如果没有直接的评价,你感觉别人怎么看你的工作?

Note:

倾听一下别人的意见;说忠言逆耳严重了,但如果没有反馈或是只有赞扬声,恐怕不是件好事情

 

第一阶段

Linux操作和编程基础

  主要介绍Linux的基本命令和基础编程知识,包括Linux的文件操作和目录操作命令,VI编辑器,GCC编译器,GDB调试器和Make项目管理工具等知识。

第二阶段

嵌入式C语言编程基础

  主要介绍在嵌入式开发编程中C语言的重要概念和编程技巧中的重点难点,以复习串讲和实例分析的形式,重点介绍包括函数与程序结构,指针、数组和链表,库函数的使用等知识。

第三阶段

Linux上C强化编程训练

  主要包括整数算法训练,递归和栈编程训练,位操作训练,指针训练,字符串训练和常用C库函数编程接口实践,强化学员对Linux下基本编程开发的理解和编码调试的能力。

第四阶段

Linux环境高级编程及项目开发编程实践

  主要包括系统编程(信号/系统调用/管道/FIFO/消息队列/共享存等),文件I/O编程(文件描述符/文件读写接口/原子操作/阻塞与非阻塞IO等,多任务和多线程编程(进程标识/用户标识/fork与vfork/多线程概念/线程同步等),网络编程(网络基本概念/套接口编程/网络字节次序/Client/Server结构/UDP编程);掌握Linux下Socket编程的开发流程,熟悉网络编程的调用接口函数和相关数据结构,使学员初步具备在Linux上进行系统编程开发的能力。

同时综合之前所学容和编程技术,以小组为单位进行一个团队合作项目的开发,考核容包括文件I/O编程,多线程编程,网络编程和项目文档编写。

期中考试

第五阶段

嵌入式处理器体系结构及编程实践

  主要介绍ARM体系结构及其基本编程知识,包括指令分类,寻址方式、指令集、存储系统、异常中断处理、汇编语言以及C\C++和汇编语言的混合编程等知识。

同时结合ARM嵌入式开发板硬件设计原理和基本硬件设计流程,分

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1