关于linux开发的综述
第一篇:关于linux开发的综述
学习嵌入式Linux开发有哪些好的书籍?
很多的嵌入式Linux新手,对自己的学习过程十分迷茫,不知道从何学习?学习过程中需要看哪些相关书籍?接下来就为嵌入式Linux新手们推荐一些关于嵌入式Linux学习的核心书籍:
Linux基础
1、《Linux与Unix Shell 编程指南》
C语言基础
1、《C Primer Plus,5th Edition》【美】Stephen Prata著
2、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)著
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体系结构与编程》杜春雷著
2、S3C2410 Datasheet
英语基础
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、《数据压缩原理与应用》
由于嵌入式行业入门门槛比较高的,大家=在学习之前要有充分的心里准备,进培训机构学习也是十分有必要的。
第二篇:嵌入式Linux开发流程
嵌入式 linux开发,根据应用需求的不同有不同的配置开发方法,但是一般都经过以下过程:
建立开发环境。操作系统一般 REDHAT-LINUX,版本 7 到9 都可以,选择定制安装或全部安装,通过网络下载相应的 GCC 交叉编译器进行安装(比如 arm-linux-gcc、arm-uclibc-gcc),或者安装产品厂家提供的交叉编译器。
配置开发主机。配置 MINICOM,一般参数为115200,数据位 8位,停止位 1,无奇偶校验,软硬件控制流设为无。在 WINDOWS 下的超级终端的配置也是这样。MINICOM软件的作用是作为调试嵌入式开发板信息输出的监视器和键盘输入的工具;配置网络,主要是配置 NFS 网络文件系统,需要关闭防火墙,简化嵌入式网络调试环境设置过程。
建立引导装载程序BOOTLOADER,从网络上下载一些公开源代码的BOOTLOADER,如 U-BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根据自己具体芯片进行移植修改。有些芯片没有内置引导装载程序,比如三星的 ARM
7、ARM9 系列芯片,这样就需要编写烧写开发板上 flash 的烧写程序,网络上有免费下载的 WINDOWS 下通过JTAG并口简易仿真器烧写 ARM 外围 flash 芯片的程序。也有 LINUX 下公开源代码的J-FLASH 程序。如果不能烧写自己的开发板,就需要根据自己的具体电路进行源代码修改。这是让系统可以正常运行的第一步。如果你购买了厂商提供的仿真器,当然比较容易烧写flash了,但是其中的核心技术是无法了解的。这对于需要迅速开发应用的人来说可以极大地提高开发速度。
下载别人已经移植好的 LINUX 操作系统,如 UCLINUX、ARM-LINUX、PPC-LINUX等,如果有专门针对你所使用的CPU移植好的 LINUX 操作系统那是再好不过,下载后再添加自己的特定硬件的驱动程序,进行调试修改,对于带 MMU的 CPU可以使用模块方式调试驱动,对于 UCLINUX 这样的系统好像只能编译进内核进行调试。
建立根文件系统,从下载使用 BUSYBOX 软件进行功能裁减,产生一个最基本的根文件系统,再根据自己的应用需要添加其他的程序。默认的启动脚本一般都不会符合应用的需要,所以就要修改根文件系统中的启动脚本,它的存放位置位于 /etc目录下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile 等,自动挂装文件系统的配置文件/etc/fstab,具体情况会随系统不同而不同。根文件系统在嵌入式系统中一般设为只读,需要使用 mkcramfs、genromfs 等工具产生烧写映象文件。
建立应用程序的 flash 磁盘分区,一般使用JFFS2 或 YAFFS 文件系统,这需要在内核中提供这些文件系统的驱动,有的系统使用一个线性 flash(NOR 型)512K-32M,有的系统使用非线性 flash(NAND型)8-512M,有的两个同时使用,需要根据应用规划 flash的分区方案。
开发应用程序,可以下载到根文件系统中,也可以放入 YAFFS、JFFS2 文件系统中,有的应用程序不使用根文件系统,而是直接将应用程序和内核设计在一起,这有点类似于UCOS-II 的方式。
烧写内核、根文件系统、应用程序。
发布产品。
第三篇:嵌入式Linux应用开发(中断实验指导)
嵌入式Linux应用开发
——中断按键点亮LED实验
一、中断控制设计流程
<1>由中断控制器汇集各类外设发出的中断信号,然后向CPU发出处理请求。
<2>CPU保存当前程序的运行环境,调用中断服务程序(ISR,Interrupt Service Rout)处理这些中断。
<3>在ISR中通过读取中断控制器、外设相关寄存器来识别当前中断是哪个中断,并进行相应处理。
<4>清除中断:通过读写中断控制器和外设的相关寄存器来实现。
<5>最后恢复被中断程序的运行环境(即前面保存的各个寄存器等),继续执行。
二、程序设计组成框架
程序由head.s、init.c、interrupt.c、makefile四个程序模块组成
head.s:初始化,设置中断模式、系统模式的栈,设置中断处理函数,设置
各类异常的向量地址。
init.c: 关看门狗(WATCHDOG),否则CPU会不断重启。初始化LED、
初始化外部中断、使能外部中断、设置外设中断的触发方式。 interrupt.c:设计代码根据识别出来的中断(即按键)点亮LED,然后清除
中断。写上主函数,主函数只是个不做任何工作的无限循环。 Makefile: Linux中使用make命令编译程序以提高编译效率,makefile既是
make所要执行的命令。
三、程序设计结果
将所编写程序通过H-JTAG烧写到实验箱中观察结果,按下按键,LED亮;再次按下按键,LED灭,循环往复。
第四篇:文献综述photoshop教学网站的设计与开发
河北科技师范学院
本科毕业设计文献综述
PHOTOSHOP教学网站的设计与开发综述
院(系、部)名 称 :专 业 名 称:学 生 姓 名:学 生 学 号:指 导 教 师:
2011年11月20 日
河北科技师范学院教务处制
PHOTOSHOP教学网站的设计与实现综述
河北科技师范学院数学与信息科技学院网络工程专业2008级 张三
摘要
随着Internet的迅速发展,网上教学频繁进入人们的生活。如今,远程教学网站的出现,正是教育信息化进程中的产物,是现阶段教育软件特别是基于Web的网络教育系统开发的重要内容。
本文所研究的教学网站的设计,包括了教学、资料、互动、课业四大部分。Photoshop是世界顶尖级的图像设计与制作工具软件。图像处理是对已有的位图图像进行编辑加工处理以及运用一些特殊效果,其重点在于对图像的处理加工。在表现图像中的阴影和色彩的细微变化方面或者进行一些特殊效果处理时,使用位图形式是最佳的选择,它在这方面的优点是矢量图无法比拟的。但是Photoshop课程在日常教学过程中存在着学生对理论学习感到枯燥,学习兴趣性低,实验效果差等问题。针对这些问题,文章将从研究构建教学网站的意义、Photoshop课程的特点、网络教学的特点等方面来探讨解决问题,说明设计与实现Photoshop教学网站的必要性。
关键词:网络教学;photoshop;教学网站
引言
PHOTOSHOP是ADOBE公司旗下最为出名的图像处理软件之一,集图像扫描、编辑修改、图像制作、广告创意,图像输入与输出于一体的图形图像处理软件,深受广大平面设计人员和电脑美术爱好者的喜爱。在实际教学过程中,这门课程的教学效果往往不是很理想,教师觉得这门课程教起来比较困难,大部分学生感觉枯燥无味,所学知识没什么实际用处,很难达到较好的教学效果或获得较强的实践能力。
随着万维网的不断提速与扩容,为基于WEB开展网上教学和远程教育提供了物理基础。如何有效地设计、开发和利用网络资源构建PHOTOSHOP教学网站,以提高学生的学习兴趣、扩大知识面、辅助课堂教学以及提高自身的实践能力和应用能力,成为一个令人关注的话题。
1 构建“photoshop”教学网站的意义
Photoshop是迄今为止世界上最畅销的图象编辑软件。它已成为许多涉及图像处理的行业的标准。界面设计是一个新兴的领域,已经受到越来越多的软件企业及开发者的重视,虽然暂时还未成为一种全新的职业,但相信不久一定会出现专业的界面设计师职业。在当前还没有用于做界面设计的专业软件,因此绝大多数设计者使用的都是PHOTOSHOP。但是在实际教学过程中,这门课程的教学效果往往不是很理想,教师觉得这门课程教起来比较困难,大部分学生感觉枯燥无味,所学知识没什么实际用处,很难达到较好的教学效果或获得较强的实践能力。
随着万维网的不断提速与扩容,为基于WEB开展网上教学和远程教育提供了物理基础。如何有效地设计、开发和利用网络资源构建PHOTOSHOP教学网站,可以提高学生的学习兴趣、扩大知识面、辅助课堂教学以及提高自身的实践能力和应用能力,成为一个令人关注的话题。
2 photoshop功能特色
从功能上看,该软件可分为图像编辑、图像合成、校色调色及特效制作部分等。 图像编辑是图像处理的基础,可以对图像做各种变换如放大、缩小、旋转、倾斜、镜像、透视等。也可进行复制、去除斑点、修补、修饰图像的残损等。这在婚纱摄影、人像处理制作中有非常大的用场,去除人像上不满意的部分,进行美化加工,得到让人非常满意的效果。
图像合成则是将几幅图像通过图层操作、工具应用合成完整的、传达明确意义的图像,这是美术设计的必经之路;该软件提供的绘图工具让外来图像与创意很好地融合,成为可能使图像的合成天衣无缝。
校色调色是该软件中深具威力的功能之一,可方便快捷地对图像的颜色进行明暗、色偏的调整和校正,也可在不同颜色进行切换以满足图像在不同领域如网页设计、印刷、多媒体等方面应用。特效制作在该软件中主要由滤镜、通道及工具综合应用完成。包括图像的特效创意和特效字的制作,如油画、浮雕、石膏画、素描等常用的传统美术技巧都可藉由该软件特效完成。而各种特效字的制作更是很多美术设计师热衷于该软件的研
究的原因。
2010年最新版本ADOBE PHOTOSHOP CS4除了包含ADOBE PHOTOSHOP CS3的所有功能外,还增加了3D和视频流、动画、深度图像分析等。PHOTOSHOP CS4通过使用对3D的支持,人们可以将3D内容纳入到他们的2D作品中,包括在3D模式下编辑文本。ENHANCED VANISHING POINT使设计人员可以进行远景测量,并从ENHANCED VANISHING POINT输出一个3D模型。
3 教学中存在的一些问题
(1)学生在学习过程中难以看到当前所学局部知识深化课程改革,迎接网络时代的到来的用途,缺乏学习的兴趣和内在动力,容易产生厌倦情绪。
(2)学生在学习过程中难以抓住重点,往往过分注重细节,以至于淹没在知识细节的海洋中,难以把握整体的知识框架。
(3)以教师为中心,学生只是被动地听讲和练习,难以激发学生的积极性、主动性。学生所掌握的知识是零碎的、不系统的,缺乏对一门课程的整体把握能力。
(4)学生学完课程后,即使考试成绩很好但仍然缺乏实际操作能力,不能把所学的知识完整地应用起来,解决实际问题时很茫然。
4 网络教学的特点
教学活动是学员获取知识最重要的途径之一,在传统教学活动中,教师是主体,从事授课、答疑、批改作业等教学活动。在教学活动开展过程中,教师常常感到在学员比较多的情况下教师和多数学员之间缺乏交流,对于不同程度的学员不能做到因材施教。利用网络教学则可以弥补这个不足。
网络教学具有的特点是:
(1)灵活性:网络教学没有时间与空间限制,能充分满足学习者个性化学习的需要,提供任何时间任何地点的在线学习。
(2)自主性:学习者不再是知识的被动接受者,而是知识的主动建构者。学习者可以根据自身的需要和可能,自主地投入学习。
(3)开放性:网络教学提供的相关资料和网址为学习者提供了丰富的资源;不同层次不同领域不同地域的学习者可以在同一环境下学习,在不同的观点中进行交叉思考。
(4)交互性:以网络为媒介进行的交流,使学习者摆脱了羞涩心理,主动参与到网络学习活动中来,从容不迫地各抒己见,充分调动了学习者的积极性。
(5)多媒体化:网络教学提供的多媒体教学手段,使教学活动得到更佳的效果。图形、图像、声音等多媒体的应用,使多媒体网络教学成为可能。各种多媒体素材可以通过多媒体的Web创作工具方便地嵌入Web页面,以超文本的形式提供给学习者学习。师生间可以通过电子邮件异步讨论问题,通过聊天室同步讨论问题,通过实时双向语音进行远程交流,也可运用流式媒体技术实现影视教学节目的实时点播等等。
5 photoshop教学网站的总体设计原则
课程教学网站的设计要应用科学的方法,围绕课程教学的目标,针对学习者的特点,充分利用网络教学的优势,合理地选择信息资源并进行有机组合,建立系统的知识体系,为学习者提供一个良好的学习环境。结合photoshop课程的特点应从以下几方面考虑校园课程网站教学系统的设计:
(1)明确课程网站的目标:课程网站的设计目标直接关系到网站的性质与特色。在开始构建网站时,首先要明确其目标,即清楚通过该网站将实现什么功能,达到什么目的,网站的访问者是谁等等。明确设计目标是构建网站的基础和前提。
(2)分析学习者的特征:通过对学习者文化、心理和社会背景等特征的分析,了解学习者的学习最佳时机、学习方式偏好、学习准备状态和学习能力,为教学网站的设计提供依据。校园课程网站主要面向在校学员,针对性很强。
(3)合理选择教学内容:紧扣教学大纲,根据知识点的逻辑顺序选择教学内容。既要体现教学思路和教学重点,又要给出全面细致的讲解;既要有教学内容,又要有自我测试内容。
(4)注重课件的表现形式:充分发挥多媒体的表现能力,把不容易理解的内容通过直观的图表和生动的动画表现出来。
(5)扩展网站信息资源:除了展示教科书上的结构化知识之外,还必须发挥网络的优势,提供与知识相关的各种资源,如:相关的国内外期刊、会议和新闻组、书籍以及网址资源,辅助学习者及时了解学科的国际国内发展动态,查找相关资料。还可以根据课程的学科特点,提供有助于知识学习的工具。
(6)构建友好的学习环境:为学习者提供学习、交流与协作的良好支撑环境,在该环境中,学习者既可以自主学习,也可以通过协商、会话共同完成特定的学习任务。 6总结
作为教学的一种辅助,photoshop教学网站的建设和试用,可以有效地解决学员众多、分布松散、学习时间受限的问题,提高学员的学习效率和学习兴趣,并且可以使课程理论教学和实践教学及相关教学环节的教学质量和水平都有大幅度的提高。随着万维
网的不断提速与扩容,为基于WEB开展网上教学和远程教育提供了物理基础。如何有效地设计、开发和利用网络资源构建PHOTOSHOP教学网站,以提高学生的学习兴趣、扩大知识面、辅助课堂教学以及提高自身的实践能力和应用能力,成为一个令人关注的话题。
参考文献
[1]熊才平, 张娟玉. 教师课程网站主页的设计与实现[J]. 中国电化教育,2003,203(12):82-84.
[2] eye4u视觉设计工作室. 创意的Photoshop CS5(1dvd)中国青年出版社, 2010.11.
[3] 李金明,李金荣. 中文版Photoshop CS5完全自学教程. 人民邮电出版社,2010,(6).
[4]普悠玛.ASP.NET程序设计示例导学[M].北京:北京科海电子出版社,2003.
[5]王爱民.基于Web的《计算机应用基础》网络教学系统的研制[EB/OL].中国教育和科研计算机网,2006.
[6]史建江等.基于ASP.NET的信息管理系统设计与实现[J].微计算机信息,2008.06(1):43-48.
[7]龚志武 .高校精品课程建设的研究与实践[J].现代远程教育研究,2008,(1):47-49.
[8]李泰峰,周通德,刘志军.国家精品课程网络教学资源管理系统的研发[J].电子科技大学学报,2004,6(1):88-91.
[9]胡孝昌,曾琼芳.基于Web技术的精品课程网站建设的研究[J].井冈山学院学报,2006,
(4):32-37.
[10]曲宏毅,韩锡斌,张明,等.网络教学平台的研究进展[J].中国远程教育,2006(5).
[11]高国娟.基于ASP.NET技术的网上辅助学习系统的设计与实现[D].上海:华东师范大学硕士学位论文,2006.
[12]别文群,郑远强.基于Web的网络教学平台的设计与实现[J].计算机技术与发展,2007,17
(8):219-222.
第五篇:成为一名嵌入式Linux开发工程师需要学习哪些知识?
随着嵌入式行业的迅猛发展,嵌入式Linux凭借其系统发展的成熟度、市场应用的高份额也受到更多工程师朋友的青睐,越来越多的企业和研发机构都转向嵌入式Linux的开发和研究,这使得嵌入式Linux在新兴的嵌入式操作系统领域内也获得了飞速发展和广泛应用。面对如此火热的行业,如何才能成为嵌入式Linux开发工程师?成为一名合格的嵌入式Linux开发工程师需要学习哪些知识?
一:C语言
嵌入式Linux工程师的学习需要具备一定的C语言基础,C语言是嵌入式领域最重要也是最主要的编程语言,通过大量编程实例重点理解C语言的基础编程以及高级编程知识。包括:基本数据类型、数组、指针、结构体、链表、文件操作、队列、栈等。
二:Linux基础
Linux操作系统的概念、安装方法,详细了解Linux下的目录结构、基本命令、编辑器VI ,编译器GCC,调试器GDB和 Make 项目管理工具, Shell Makefile脚本编写等知识,嵌入式开发环境的搭建。
三:Linux系统编程
重点学习标准I/O库,Linux多任务编程中的多进程和多线程,以及进程间通信(pipe、FIFO、消息队列、共享内存、signal、信号量等),同步与互斥对共享资源访问控制等重要知识,主要提升对Linux应用开发的理解和代码调试的能力。
四:Linux网络编程
计算机网络在嵌入式Linux系统应用开发过程中使用非常广泛,通过Linux网络发展、TCP/IP协议、socket编程、TCP网络编程、UDP网络编程、Web编程开发等方面入手,全面了解Linux网络应用程序开发。重点学习网络编程相关API,熟练掌握TCP协议服务器的编程方法和并发服务器的实现,了解HTTP协议及其实现方法,熟悉UDP广播、多播的原理及编程方法,掌握混合C/S架构网络通信系统的设计,熟悉HTML,Javascript等Web编程技术及实现方法。
五:数据结构与算法
数据结构及算法在嵌入式底层驱动、通信协议、及各种引擎开发中会得到大量应用,对其掌握的好坏直接影响程序的效率、简洁及健壮性。此阶段的学习要重点理解数据结构与算法的基础内容,包括顺序表、链表、队列、栈、树、图、哈希表、各种查找排序算法等应用及其C语言实现过程。
六:C++ 、QT
C++是Linux应用开发主要语言之一,本阶段重点掌握面向对象编程的基本思想以及C++的重要内容。图形界面编程是嵌入式开发中非常重要的一个环节。由于QT具有跨平台、面向对象、丰富API、支持2D/3D渲染、支持XML、多国语等强大功能,在嵌入式领域的GUI开发中得到了广范的应用,在本阶段通过基于QT图形库的学习使学员可以熟练编写GUI程序,并移植QT应用程序到Cortex-A8平台。包括IDE使用、QT部件及布局管理器、信息与槽机制的应用、鼠标、键盘及绘图事件处理及文件处理的应用。
七:Cortex A8 、Linux 平台开发
通过基于ARM Cortex-A8处理s5pv210了解芯片手册的基本阅读技巧,掌握s5pv210系统资源、时钟控制器、电源管理、异常中断控制器、nand flash控制器等模块,为底层平台搭建做好准备。Linux平台包括内核裁减、内核移植、交叉编译、GNU工具使用、内核调试、Bootloader介绍、制作与原理分析、根文件系统制作以及向内核中添加自己的模块,并在s5pv210实验平台上运行自己制作的Linux系统,集成部署Linux系统整个流程。同时了解Android操作系统开发流程。Android系统是基于Linux平台的开源操作系统,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件,目前它的应用不再局限于移动终端,还包括数据电视、机顶盒、PDA等消费类电子产品。
八:驱动开发
驱动程序设计是嵌入式Linux开发工作中重要的一部分,也是比较困难的一部分。本阶段的学习要熟悉Linux的内核机制、驱动程序与用户级应用程序的接口,掌握系统对设备的并发操作。熟悉所开发硬件的工作原理,具备ARM硬件接口的基础知识,熟悉ARM Cortex-A8处理器s5pv210各资源、掌握Linux设备驱动原理框架,熟悉工程中常见Linux高级字符设备、块设备、网络设备、USB设备等驱动开发,在工作中能独立胜任底层驱动开发。
以上就是列出的关于一名合格嵌入式Linux开发工程师所必学的理论知识,其实,作为一个嵌入式开发人员,专业知识和项目经验同样重要,所以在我们的理论学习中也要有一定的项目实践,锻炼自己的项目开发能力。尤其是对于一些刚毕业的应届大学生们实际项目操作经验更是严重缺乏锻炼,这时,选择一个好的嵌入式培训机构至关重要,学习完整的linux开发课程,最重要的是很多的阶段性的大项目来自用人单位的真实开发案例,这样才能真正掌握企业需要的一部份嵌入式系统开发知识。