嵌入式Linux学习之规划篇_第1页
嵌入式Linux学习之规划篇_第2页
嵌入式Linux学习之规划篇_第3页
嵌入式Linux学习之规划篇_第4页
嵌入式Linux学习之规划篇_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式Linux学习之规划篇嵌入式Linux课程目标是达到适应嵌入式应用软件开发、嵌入式系统开发或嵌入式驱动开发的基本素质。采用了目前应用最广泛的软硬件开发平台(Linux和Arm)。学习步骤如下:1、Linux基础安装Linux操作系统Linux文件系统(windows的文件共享)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编程基础linux C语言环境概述Gcc使用方法Gdb调试技术AutoconfAutomakeMakefile代码优化熟悉Linux系统下的开发环境熟悉Gcc编译器熟悉Makefile规则编写Hello,World程序使用make命令编译程序编写带有一个循环的程序调试一个有问题的程序4、嵌入式系统开发基础嵌入式系统概述交叉编译配置TFTP服务配置NFS服务下载Bootloader和内核嵌入式Linux应用软件开发流程熟悉嵌入式系统概念以及开发流程建立嵌入式系统开发环境制作cross_gcc工具链编译并下载U-boot编译并下载Linux内核编译并下载Linux应用程序嵌入式系统移植Linux内核代码平台相关代码分析ARM平台介绍平台移植的关键技术移植Linux内核到ARM平台了解移植的概念能够移植Linux内核移植Linux2.6内核到ARM9开发板【1配置编译Linux内核1.1 Linux内核源代码结构1.2 Linux内核编译选项解析1.3 Linux内核编译链接2.0 Linux启动过程源代码分析3.0 Linux内核移植平台相关代码分析】5、嵌入式Linux下串口通信串行I/O的基本概念嵌入式Linux应用软件开发流程Linux系统的文件和设备与文件相关的系统调用配置超级终端和MiniCOM能够熟悉进行串口通信熟悉文件I/O编写串口通信程序编写多串口通信程序6、嵌入式系统中多进程程序设计Linux系统进程概述嵌入式系统的进程特点进程操作守护进程相关的系统调用了解Linux系统中进程的概念能够编写多进程程序编写多进程程序编写一个守护进程程序sleep系统调用任务管理、同步与通信Linux任务概述任务调度管道信号共享内存任务管理API了解Linux系统任务管理机制熟悉进程间通信的几种方式熟悉嵌入式Linux中的任务间同步与通信编写一个简单的管道程序实现文件传输编写一个使用共享内存的程序【主要包括系统编程(信号/系统调用/管道/FIFO/消息队列/共享内存等),文件I/O编程(文件描述符/文件读写接口/原子操作/阻塞与非阻塞IO等,多任务和多线程编程(进程标识/用户标识/fork与vfork/多线程概念/线程同步等),网络编程(网络基本概念/套接口编程/网络字节次序/Client/Server结构/UDP编程);掌握Linux下Socket编程的开发流程,熟悉网络编程的调用接口函数和相关数据结构,内容包括文件I/O编程,多线程编程,网络编程和项目文档编写】7、嵌入式系统中多线程程序设计线程的基础知识多线程编程方法线程应用中的同步问题了解线程的概念能够编写简单的多线程程序编写一个多线程程序8、嵌入式Linux网络编程网络基础知识嵌入式Linux中TCP/IP网络结构socket编程常用API函数分析Ping命令的实现基本UDP套接口编程许可证管理PPP协议GPRS了解嵌入式Linux网络体系结构能够进行嵌入式Linux环境下的socket编程熟悉UDP协议、PPP协议熟悉GPRS使用socket编写代理服务器使用socket编写路由器编写许可证服务器指出TCP和UDP的优缺点编写一个web服务器编写一个运行在ARM平台的网络播放器9、GUI程序开发GUI基础嵌入式系统GUI类型编译QT进行QT开发熟悉嵌入式系统常用的GUI能够进行QT编程使用QT编写“Hello,World”程序调试一个加入信号/槽的实例通过重载QWidget类方法处理事件10、Linux字符设备驱动程序设备驱动程序基础知识Linux系统的模块字符设备驱动分析fs_operation结构加载驱动程序了解设备驱动程序的概念了解Linux字符设备驱动程序结构能够编写字符设备驱动程序编写Skull驱动编写键盘驱动编写I/O驱动分析一个看门狗驱动程序对比Linux2.6内核与2.4内核中字符设备驱动的不同Linux块设备驱动程序块设备驱动程序工作原理典型的块设备驱动程序分析块设备的读写请求队列了解Linux块设备驱动程序结构能够编写简单的块设备驱动程序比较字符设备与块设备的异同编写MMC卡驱动程序分析一个文件系统对比Linux2.6内核与2.4内核中块设备驱动的不同11、文件系统虚拟文件系统文件系统的建立ramfs内存文件系统proc文件系统devfs文件系统MTD技术简介MTD块设备初始化MTD块设备的读写操作了解Linux系统的文件系统了解嵌入式Linux的文件系统了解MTD技术能够编写简单的文件系统为ARM9开发板添加MTD支持移植JFFS2文件系统通过proc文件系统修改操作系统参数分析romfs文件系统源代码创建一个cramfs文件系统嵌入式处理器体系结构及编程实践主要介绍ARM体系结构及其基本编程知识,包括指令分类,寻址方式、指令集、存储系统、异常中断处理、汇编语言以及CC+和汇编语言的混合编程等知识。同时结合ARM嵌入式开发板硬件设计原理和基本硬件设计流程,分析各种外设的工作原理和驱动机制,并自己动手实践完成一个ARM开发板上的编程大作业。嵌入式Linux开发基础及高级应用主要介绍嵌入式Linux开发应用程序的基本流程和知识,包括嵌入式Linux基本概念和开发流程、Bootloader工作原理、内核裁减配置和交叉编译、根文件系统制作、网络编程以及图形界面和数据库开发等知识。同时独立完成一个基于嵌入式Linux GUI的应用编程大作业。嵌入式Linux驱动理论及驱动程序开发实践主要介绍嵌入式Linux上驱动程序开发规范,包括设备驱动程序概念、字符设备驱动程序、块设备与网络设备、网卡驱动以及常用嵌入式设备驱动开发等知识。同时独立实现两种嵌入式设备驱动程序的编写,包括驱动模块的调试和加载以及完整的项目开发文档的编写。嵌入式Linux项目团队开发实践锻炼主要包括设计并实现一个真实和完整的嵌入式项目的开发流程,涉及到数据采集、网络通讯、图形用户界面显示以及嵌入式数据库存储系统等多种嵌入式Linux编程技术。要求学员建立起团队开发和协同工作的企业项目开发模式的概念和流程,强化学员对编写项目概要设计文档和详细设计文档的理解,为就业前的职业技能和素质训练做好充分准备。最重要的是:手头要有一块嵌入式板子进行实践。C语言C Primer Plus,5th Edition【美】Stephen Prata著The C programming languageC程序设计语言Pointers on CC和指针C traps and pitfallsC陷阱与缺陷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 OHallaron著5、操作系统:精髓与设计原理6、编译原理7、数据通信与计算机网络8、数据压缩原理与应用unix环境高级编程Stevens先生的unix环境高级编程如果对网络编程有兴趣的,可以学习一下Stevens先生的UNIX网络编程两卷可以再看看TCP/IP详解三卷)。计算机编程艺术对算法有兴趣得可以研究一下。linux设备驱动程序深入理解Linux内核Linux上的应用编程:APUE和UNP,前者锻炼基本功,后者学习网络编程。不管做什么,学什么,一要心态好,二要态度好。所谓心态好就是不要着急、不用担心;所谓态度好是多分享、多讨论、学出自己的心得。学习靠自己,不要期望别人教你什么,学习要主动;不管水平高低,不要看不起自己,也不能看不起别人,学习要心态好;不能不思进取,也不用让自己为技术所累,给自己多一点技术之外的时间;耐心,刻苦,尝试,失败。学习的过程可能会是饱受挫折和孤独的。要知道为什么学?要知道学的是什么?要知道怎么学?要知道学了如何用?最后还要知道用的时候出了问题该如何解决?WhatHowWhy2Linux C语言包括函数与程序结构、指针、数组、常用算法、库函数的使用等知识重点讲解数据结构的基础内容,包括链表、队列、栈、树、哈希表、图等内容。函数函数为程序员提供了最基本的代码复用能力,函数在调用返回时究竟发生了什么?局部变量如何分配空间?可变参数列表的机制如何?我们将在这个环节深入底层,去揭开函数调用的面纱。函数的类型和返回值函数的参数传递函数调用过程中的栈帧结构可变参数列表递归函数调用3学时指针指针,它让C语言与众不同。如何判断指针的类型?指针的速度真的快么?指针运算和整数运算有何不同?指针和数组一样么,不一样么?我们将在这个环节用简单明了的技巧解决一系列含混的指针问题。判断指针的类型指针的运算数组和指针的同异指向函数的指针指针与抽象3学时预编译如果说指针是C语言的灵魂,那么预编译就是C语言的生命。预编译使得C语言可以变化出多样的外观。预编译如何提高编码的效率?宏定义中有哪些陷阱?文件包含的时候发生了什么?我们将在这个环节用精确的语言来阐述完整的预编译的技巧。对象宏和函数宏宏定义技巧和常见错误#和#运算符条件编译文件包含3学时字符串字符串处理,这大概是C语言最不擅长的事情。C语言的字符串处理有许多被遗忘的角落。在这一阶段,我们带领你重拾C语言的字符串处理函数,以充实你的C语言武器库。C风格字符串标准C字符串库函数一览重点函数实现解析C字符串处理范例3学时链接链接使得程序员可以复用二进制的编译结果。不同种类的变量被放到了哪里?如何控制代码在内存中的位置?PC程序员也许不是很关心的这些问题,但这却是嵌入式程序员的必经之路。我们将在这个环节补上知识链条中缺失的一环。链接和elf文件格式概述程序的存储映像链接脚本和嵌入式程序的存储3学时文件IO一切都是文件。在我们的整个课程体系中,我们将从不同的角度来审视这一句话。在这个阶段,我们用C语言来审视UNIX世界中的这个基本价值观。流和IO重定向文本文件与二进制文件用标准C库进行文件操作标准C和系统调用主要介绍在嵌入式开发编程中C语言的重要概念和编程技巧中的重点难点,以复习串讲和实例分析的形式,重点介绍包括函数与程序结构,指针、数组和链表,库函数的使用等知识。主要包括整数算法训练,递归和栈编程训练,位操作训练,指针训练,字符串训练和常用C库函数编程接口实践,强化对Linux下基本编程开发的理解和编码调试的能力。编程规范的问题:一般较为正规的软件公司都会有自己的一套完成的编程规范,那么你遵守就好;如果你是自己学习的话,可以选择一个较为通用的规范,最好的方法就是看别人是怎么写代码的。编程是一个实践性很强的工作,最好的学习方法就是边看书边调试代码,把书上的例子程序反复的修改调试运行,从中得到自己的体会。在自己的学习或工作中写的一些测试的程序,要分门别类的保存下来,在以后的实际工作中不断的整理,日积月累就是一个很好资源库了。有时候,可能会觉得书上的例s子作为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论