第一篇:软件开发期末总结
MTTF:平均无故障时间;MTBF:平均故障间隔时间
1软件开发的本质:高层概念到低层概念的映射。2.软件的本质特征:构造性,演化性
3面向对象的四个原则:抽象,继承,多态,封装。4抽象概念的理解:对抽象事物的理解;归纳概括;总结事物共同点;进行逻辑思维和推理 java最大特点:简单,面向对象,可移植,最大限度利用网络 java与C++区别:全局变量;goto语句;指针;内存管理;类型转换;头文件
7软件危机: 软件的开发和维护过程中所遇到的一系列严重问题。不仅只软件不能运行,几乎所有的软件都存在这些问题,所包含:如何开发软件;如何维护
软件过程 一系列任务步骤和框架
8软件工程: 是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
9中间件 定义:是位于平台(硬件和操作系统)和应用之间的通用服务,这些服务具有标准的程序接口和协议。目的:提出中间件的概念是为解决分布异构问题。分类:基础中间件;业务中间件;领域中间件。构件:是系统中实际存在的可更换部分,它实现特定的功能,符合一套接口标准并实现一组接口 组件:组件技术就是利用某种编程手段,将一些人们所关心的,但又不便于让最终用户去直接操作的细节进行了封装,同时对各种业务逻辑规则进行了实现,用于处理用户的内部操作细节,甚至于将安全机制和事物机制体现的淋漓尽致。而这个封装体就常常的被我们称作组件。12 软件生产线:是共享同样的体系结构和实现平台的软件系统的集合,它是具有公共的系统需求集的软件系统。这些需求是针对一组共享公共的设计和标准(或构件)的产品族,或者是一类特定的行为或任务。
13操作系统发展趋势:操作系统内核将呈现多平台统一的趋势
14软件开发趋势
开源:两个作用,社区和标准的建立。SOA:面向服务的体系结构;IT治理:公司治理的一部分。
15软件开发技术趋势(1)下一代Web开发;(2)企
业应用2.0(SOA).(3)系统开发.(4)开发工具和语言.(5)项目管理及安全 不同的软件开发方法(1)结构化开发方法(2)面
向对象开发方法(3)统一软件开发过程(4)敏捷软件开发.软件的体系结构:一个程序或系统各构件的结
构,他们之间的相互关系及进行设计的原则和指导方针;本质:对复杂事物的抽象; 一定时间内保持稳定 三要素:构件的层次结构;构件之间交互方式;数据结构
组成元素从静态模式转向动态模式,组件模块有被动调用转向主动调用以适应系统环境 软件架构技术:根据项目情况分析系统行为,设计系统组件,给出构架表示方式,描述构架的各个方面,最后对系统构架进行精化。框架比架构更加具体 数据库设计 方法:(1)属性主导设计(2)实体主
导设计; 遵循原则:(1)信息隐藏(2)适当冗余(3)慎用外键 数据一致性:域完整性,实体完整性,引用完整性,数据有效性 插件 定义:系统运行时的功能单元,是一种遵
循一定规范的应用程序结构编写出来的程序。呈现方式:运行时根据外部配置文件来定 基本功能:插件注册,管理和调用 软件质量定义 明确声明的功能和性能需求,明
确文档化过得开发标准,以及专业人员开发的软件应具有的所有隐含特征 软件需求是进行质量度量的基础,软件质量特性反应了软件的本质。影响软件质量的4个方面:开发技术;人员素
质;成本时间,进度;过程质量 软件项目管理 为了使软件项目能够按照预定的成本,进度,质量顺利完成,对成本,人员,进度,质量,风险等进行分析和管理的活动。24 软件配置: 计算机程序(源代码和可执行程序);
描述计算机程序的文档(针对开发技术者和用户); 数据(包含程序内部和外部)软件维护和软件配置管理的区别: 维护是发生
在软件以交付给客户,并且投资运行后的一系列软件工程活动;软件配置管理则是当软件项目开始,并且仅仅当软件退出运行后在终止的一组跟踪和控制活动 软件过程成熟度:指一个特定的软件过程被显示定义、管理、度量、和能行的程度 JavaBean开发的三个阶段:构造阶段,内造阶段,执行阶段; 包含的基本元素:属性,方法,事件 一个Java对象具有以下特征就可以是JavaBeans 定制、持久性、通信、反省 简单的时说(1)作为一个类必须被声明为public(2)必须要有get/set方法(3)有构造函数但不能有参数 29 引发事件 当javaBean触发某个事件是,javabean讲点用该事件的监听对象的响应函数 30 监听事件 javabean被添加到某个类改事件的监听队列中,并且具有该事件的响应函数,被监听类的此事件被激发时被监听类就会调用javaBean的响应函数
JDBC工作的四个主要组件 java应用程序,JDBC驱动器管理器、驱动器,数据源
数据源的种类 用户DNS、系统DNS 文件DNS 33 java多线程的生命周期 新建状态;就绪状态或可运行状态;运行状态、阻塞状态、消亡状态 33 J2EE规定的web曾包括 jsp页面、基于web的java applet、以及用于动态生成的html页面的Servlet构成。
作业 1简述Servlet设计中涉及的类和接口
(1)Servlet interface: 所有的servlet直接或间接实现这个interface, 它提供安排servlet与客户端联系的方法.最关键的方法是Service,负责处理ServletRequest对象和ServletResponse对象。2)HttpServlet class: 实现Servlet interface,重写了Service方法以区分请求(常见的HTTP请求类型是GET和POST),并调用相应的方法来处理(doGet、doPost)。
servlet接收来自客户端的调用请求, 它接收两个对象: 一个是ServletRequest,另外一个是ServletResponse。
3)HttpServletRequest interface: 概括从客户端到服务器之间的联系,实现该接口的对象包含了客户端的请求信息。
4)HttpServletResponse interface: 概括从Servlet返回客户端的联系,实现该接口的对象提供了方法,使Servlet向客户端发回响应。
1.现有数据库db位于名为lz的MS SQL Server
服务器上,用户名为sa,密码为空,请编写数据库连接dbConnect类,实现数据库的连接、返回连接对象及重载有关的close()方法。public class dbConnect {
public dbConnect(){
try{
Class.forName(“com.microsoft.jdbc.sqls
erver.SQLServerDriver”);
}
catch(ClassNotFoundException ee){
}
}
public static Connection getconn()throws SQLException{
String url
=
“jdbc:microsoft:sqlserver://lz:1433;DatabaseName=
db”;
String username= “sa”;
String password= "";
return
DriverManager.getConnection(url,username,password);
}
public static void close(ResultSet rs){
try{
rs.close();
}
catch(Exception ex){
}
}
public static void close(Statement stmt){
try{
stmt.close();
}
catch(Exception ex){
}
}
public static void close(Connection conn){
try{
conn.close();
}
catch(Exception ex){
}
}
private static dbConnect dbconn = new dbConnect();
}
第二篇:软件开发心得总结
有感于网盘开发过程
有感于网盘开发过程..............................................................................................................................1
一、软件开发个人体会:.................................................................................................................2
二、做软件开发我觉得要明白:.....................................................................................................2
三、在开发中遇到问题应该怎么去解决?......................................................................................2
四、怎么样才能提高自身的能力?..................................................................................................2
五、怎么样才能做好软件开发?.....................................................................................................2
六、文档的重要性.............................................................................................................................3
七、我的收获.....................................................................................................................................3
八、网盘项目开发的最大体会.........................................................................................................4
九、软件测试(单体测试和连接测试)..........................................................................................4
常熟理工学院SIG小组
3/28/2013
一、软件开发个人体会:
1.软件领域中的知识在于积累。
2.做软件开发,就类似算数学题和世界杯足球赛一样:重在结果,而不在乎过程。3.软件服务于人类,软件是在解决一些生活中的问题和错误,问题决定解决方案。
二、做软件开发我觉得要明白:
1.职业的乐趣:
(A)用自己的智慧去创建新事物的快乐(B)开发对别人有用的东西(C)不断学习来充实自己 2.职业的苦恼:(A)总是追求完美
(B)所有要实现的功能由他人而定
(C)概念设计计是有趣的,但找Bug总是很苦恼的
三、在开发中遇到问题应该怎么去解决?
1.2.3.4.不明白就多问,不要自已一直去琢磨。
一个问题如果30分钟还没有解决就应该考虑是不是问问别人。一个问题在没有用过3种以上的方法解决过就不要去问别人。解决问题思路是关键:
相信问题总归有解决的办法,就算连技术上都没法实现的问题,相信通过良好的沟通终究也会有解决的方法。
5.解决问题的前提是:理解别人的意思,理解别人的需求,多沟通,及时给客户反馈信息。
四、怎么样才能提高自身的能力?
1.程序员怎么样进步最快? - 理论结合实践
2.不要怕出错,不怕遇到错误,有错误就有挑战,这样才可以进步,但不要让同一个石头把你绊倒2次。
五、怎么样才能做好软件开发?
1.首先要明白解决的问题是什么,理解问题,其次再决定怎么解决这个问题 2.碰到很复杂的问题,我们就简单想,把问题简单化,细化到能够实现为止
常熟理工学院SIG小组
3/28/2013
3.出了问题,我们要先分析问题,然后知道引起问题的原因,最后并想出问题的解决办法 4.我们应该从2个方面去把握一个项目:从业务角度和项目的关键问题上去把握一个项目
(A)从不同的系统场景
(B)从不同的用户角色(充当什么角色)(C)从不同的系统使用角度(拥有那些权限)
5.其实我觉得开发人员说实在应该要比使用系统的人更了解系统需求,只有真正彻底的了解了项目的业务需求,我们才能做真的做好这个项目
六、文档的重要性
记得我当初刚开发项目的时候都是写个大致的需求说明书,做一个E-R图,画几个大致的数据流程图,然后建立数据字典和表结构关系。再接着搭建一个开发环境,配置几台服务器,划分一下模块,分工,我们就可以Coding了,一直到项目结束了,也没有完整的设计文档,更没有完整的测试文档,虽然这样的确是很快的完成了Coding工作,感觉上好像节省了好多成本和开发时间,但后期的维护和Bug 就是经常出现的事。
小项目没有文档关系不大,但如果遇到一个大项目的时候,那这样的开发方式就很有问题很危险的。
大项目没有文档: 首先维护就很麻烦,也很乱,写的代码,过几天都不知道它是完成什么功能的了,其次系统的稳定性和可靠性也让人怀疑,扩展性就不用说了。
七、我的收获
A.程序员大多都不喜欢写文档,我们以前也是特讨厌,记得以前都是系统开发完了,为了应付项目验收,就匆匆忙忙的一组人在那里补文档。在我们的思想里,所谓的文档就是一些废话,一句话硬是用十句话来代替的无聊透顶。B.代码风格要规范
以前做项目,我们都是不怎么去注意代码风格和写代码的规范,都是稍微想一下就直接开始写代码了。注释也很少用,总感觉我们自己写的代码,我们怎么会不知道它做了些什么事呢 ?总觉得我们自己写的代码我们怎么会不知道它是用来做什么的呢。一直都不相信这是个事实,但事实上,项目验收后,系统刚开始使用的人少,也就不会出现潜在的错误,随着时间的增加,久而久之,当大量用户并发访问的时候,系统的Bug 就暴漏出来了,那时你再用熟悉的Eclipse打开整个项目的源码时,再去看自己写的代码的时候,真的发现,我们定义的这个变量名是什么意思啊 ? 我们的这个Flag 是用来判断什么的啊 ?我们的if()中条件不知道是判断什么? Function()也忘记是什么功能了? 想想好可怕啊。难道真的都忘记了吗 ?回答是肯定的: 真的忘了。C.心得体会: 通过做该网盘项目,在这2年的锻炼中,我们才真的体会到,良好的文档是正规研发流程中非常重要的环节,一个好的程序是先写好设计文档再进行编程的,在设计文档的指导下,才能写出安全的代码。如果你不写文档,一开始就写程序,这样你就不会按已设计好的路线走,而是想到哪写到哪。小功能还好说,要是大功能,就容易混乱.常熟理工学院SIG小组
3/28/2013
刚开始我们还很不习惯这一系列的编程风格,很多的规范,尤其是命名,方法和注释,都有这着很多限制,让我们觉得真罗唆,写个程序完成功能不就可以了吗,明明1小时做完的事情非得让人用3、4个小时去做,我们现在真的明白这样做的好处了,我们已经习惯这样的编程风格了,这也养成了我们的一个编程习惯了,深有体会啊。
最忙的时候就是我们成长和收获最多的时候。
八、网盘项目开发的最大体会
我们觉得项目开发的开始时候,应该由项目负责人很好的对项目是什么项目,具体大概做什么事情,是谁提出来的,目的是解决什么问题,以及里面用到的很多专有名词做个细致的说明,而不是从一开始就分几本式样书,给个静态Html 的Demo看看,然后搭建好开发环境就按照式样设计书来开发。
九、软件测试(单体测试和连接测试)
我们首先认为,编写程序的时候不要想出了问题再解决,而是要想如何不会出现问题,要根据经验来预测可能出现的问题,然后避免出现。
测试,说的直接点就是给软件找错误。
很多人认为发现错误是软件测试的唯一目的,查找不出错误的测试就是没有价值的测试,实际上我们不这么认为。
我们觉得对开发人员来说,我们要把测试出来的Bug都应该做个分析,知道错的原因之后,我们就应该在下个项目中防止类似的错误发生,而真正来提高我们开发的效率。
常熟理工学院SIG小组
3/28/2013
第三篇:648软件开发总结
内部
648软件开发介绍
一 DM648介绍
DM648属于TI达芬奇系列,采用单核C64X+定点CPU,支持最高频率1.1GHz,有两个乘法器支持四个16bits*16bits(结果32bits)单个clock cycle或者八个8bits*8bits(结果16bits)单个clock cycle。还有6个ALU。
648的片上存储器有L1P(32KB),L1D(32KB),L2(512KB)648集成了五个视频口VPORT,省去FPGA做FIFO,可以节省产品成本。
648集成了丰富的外设,包括edma(64个通道),SPI,I2C,UART,EMIF,DDR2,Ethernet,gpio(32个),McASP,PCI。
二 搭建软件开发环境 2.1操作系统环境
Win7 32位或win-XP环境 2.2软件安装和配置
需准备的安装软件 Ccs3.3
bios3.08 648dvsdk perl Bios是TI针对DSP开发的实时嵌入式操作系统。
Dvsdk是基于BIOS系统的视频开发包。Perl是脚本工具,烧写程序时将out文件转换为ais文件。
建议所有软件安装到默认目录下,安装完后
配置操作系统环境变量
修改BIOS_INSTALL_DIR变量为 C:/CCStudio_v3.3/bios_5_31_08 配置CCS的组件管理器,如图2-1
点“开始->所有程序->TI->component manager,修改Target Content(DSP/BIOS)->TMS320C64XX为当前版本的DSP/BIOS
图 2-1 2.3 DVSDK目录文件介绍
默认安装到C:dvsdk_1_11_00_00_DM648目录下,其中
edma3_lld_1_05_00是edma3驱动包
examples 包含很多基于BIOS的示例应用工程,我们参考video_preview示例程序作为框架,添加图像处理算法和通讯驱动。flashutil 包含flash烧写工程norwriter,bootloader程序ubl,ais文件生成脚本
ndk_1_92_00_22_eval 网络开发软件包 pspdrivers_1_10_00 包含了TI提供的很多基于BIOS系统的驱动,我们参考其中VPORT的驱动,将按帧采集修改为按场采集的功能 xdc_2_95_02 xdc工具安装路径,xdc是ccs的子工具,是一个javascript编译工具,用于编译cfg文件,cfg文件在后面讲。如图2-2安装XDC后,会在工程的编译选项界面增加XDC选项。
图2-2 2.4仿真器
TDS560USB PLUS
在CCS setup界面选择TDS560USB PLUS platform和C64x+ family的DM648。如图2-3.图2-3 三 VPORT+EDMA工作原理 3.1 VPORT介绍
DM648集成了五个VPORT口,用于视频输入输出,每个VPORT可以配置为capture或display模式。Capture模式又分为双通道8bit BT656,单通道16 bit Y/C模式。Display模式又分为单通道8bit BT656, 单通道16 bit Y/C模式。
目前,capture和display模式都采用8bit BT656子模式,PAL视频编码芯片和解码芯片也设置为BT656模式。3.2 BT656标准简介
BT656标准将4:2:2格式YCbCr数据统一封装在一个数据流中,按照CbYCrY顺序排列,Y的数据数量是Cb,Cr的2倍。
BT656数据流中,ffh和00h保留用于时序标示。在视频数据每行的开头和结尾有标示SAV(start of video),EAV(end of video)。SAV和EAV的格式是ffh,00h,00h,XYh,前三个字节固定,第四个字节包含场标示,场消隐状态和行消隐状态,如图3-1。
图3-1 3.3 VPORT FIFO 每个VPORT有一个FIFO存储进入的数据或者从FIFO输出。
BT656 capture模式中,FIFO分成A、B两个通道,如图3-2,A通道接收VDIN[9-2]管脚的数据,B通道接收VDIN[19-12]管脚的数据。每个通道又分Y,Cb,Cr三个缓存,每个缓存区有独立的读寄存器。
图3-2 BT656 display模式中,如图3-3,只有一路输出,FIFO分为Y,Cb,Cr三个缓存区,每个缓存区有独立的写寄存器。
图3-3 VPORT和EDMA配合在FIFO和外部或片上存储器之间移数。我们可以编程FIFO的阈值寄存器,当FIFO达到设置满度(fullness)(对于捕获模式)或者低于设置满度(对于显示模式)时,生成EDMA事件,触发相应EDMA通道移数。
每个VPORT对应6个EDMA事件,分别是
VPxYEVTA,VPxCbEVTA,VPxCrEVTA,VPxYEVTB,VPxCbEVTB,VPxCrEVTB 例如,我们用VP0口的A通道做为BT656视频输入,VP1口做为BT656视频输出。
设置VP0口A通道Y,Cb,Cr三个缓存区的阈值为720,360,360。当PAL图像数据传输完一行后,三个缓存区都达到阈值,生成VP0YEVTA,VP0CbEVTA,VP0CrEVTA三个事件,触发对应的三个EDMA通道将三个FIFO缓存区的一行图像数据移入DDR2缓存区。
设置VP1口Y,Cb,Cr三个缓存区的阈值为720,360,360。当三个缓存区数据数量低于阈值时,生成VP1YEVTA,VP1CbEVTA,VP1CrEVTA三个事件,触发对应的三个EDMA通道将DDR2缓存区的一行图像数据移入三个FIFO缓存区。
四 应用程序及驱动解析
4.1两个重要文件
基于BIOS/DSP系统开发软件,有两个重要工程文件tcf和cfg文件,如图4-1中红圈1和2。
图4-1
tcf文件包含了DSP/BIOS的配置信息。红圈3的global settings设置DSP工作频率,L1,L2 cache size,大小端,L2 cache 128kB。Memory section设置程序和数据各部分在存储器中的段地址。
红圈4 HWI(hardware interrupt)处,添加硬件中断处理函数
红圈5 添加BIOS/DSP的线程
cfg文件包含了库链接路径信息,使用javascript语言,如图红圈6。使用XDC工具编译cfg文件,生成库链接信息,供C编译器链接库时使用。cfg文件常链接的库有vport驱动,edma驱动程序。
4.2图像缓存分配和管理
Edma在VPORT和SDRAM之间搬数,CPU要访问SDRAM最新的图像数据,程序采用多个图像缓存区循环的方式将这两个过程并行化。
应用层创建捕获或显示通道时,调用驱动层程序在DDR2分配存放图像数据的缓存区。分配之前,驱动根据通道的配置参数计算每个缓存区的大小。
例如,vp0按场采集,vp1按帧显示。Vp0的每个缓存区的大小是720*288*2,vp1的每个缓存区的大小是720*576*2。
应用程序使用FVID_dequeue()出队函数和FVID_queue()入队函数或FVID_exchange()交换函数,在应用程序和驱动程序之间交换图像缓存区。
捕获和显示驱动的缓存管理方法不同,如下面两图4-2和4-3:
图中蓝块表示应用程序的图像缓存区,白块表示驱动程序的图像缓存区。
图像捕获缓存区,初始时所有的缓存区都在捕获队列里,捕获驱动程序以循环的方式填充每个缓存区。
当应用程序调用FVID_dequeue()函数时,将放有最新图像数据的缓存区出队并返回给应用程序,驱动在余下的队列里循环填充,如(a)到(b)和(b)到(e)。
当应用程序调用FVID_queue()函数时,将一个空的缓存区交给驱动程序并加入队列,如图(b)到(a)和(e)到(b)。
当应用程序调用FVID_exchange()函数时,应用程序交给驱动一个空的缓存区,驱动交给应用程序放有最新图像的缓存区,相当于同时调用FVID_dequeue()和FVID_queue()两个函数,如图(b)到(c)和(c)到(d)。
图4-2
图像显示缓存区,初始时只有一个缓冲区用于显示,其它缓存区等待出队,如图(a),黄块表示显示驱动队列里准备出队的缓存区。显示驱动程序重复显示一个缓存区的图像。
当应用程序调用FVID_dequeue()函数时,从驱动获得一个缓存区,应用程序向它填充显示数据,同时驱动仍然显示之前的缓存区,如图(b)和(d)。当应用程序调用FVID_queue()函数时,应用程序给驱动程序一个准备显示的缓存区,同时驱动将它设置为当前的缓存区,如图(b)到(c)到(d)。
当应用程序调用FVID_exchange()函数时,应用程序给驱动一个准备显示的缓存区,从驱动得到一个空的缓存区,相当于同时调用FVID_dequeue()和FVID_queue()函数,如图(d)到(e)。
图4-3
4.3 应用程序框架介绍
基于dvsdk_install_dir/example目录下的video_preview示例程序,做为项目软件框架
应用程序主要包含三部分:
Main函数
Video_preview线程
自添加的中断处理函数
许多实时DSP应用都需要同时执行很多不相关的功能,这些功能一般是对外部事件的响应,这些功能就加线程。
DSP/BIOS支持4种线程:
(1)硬件中断(HWI):频率可达200KHz(5us)(2)软件中断(SWI):SWI允许HWI将一些非关键处理在低优先级上延迟执行,这样可以减少在中断服务程序中的驻留时间。
(3)任务(TSK):任务与中断不同点在于,任务在执行过程中可以被挂起。
(4)后台线程(IDL):空闲循环,运行那些没有执行时间限制的函数。
上电加载完操作系统内核后,首先执行main函数。
Main函数执行完后,启动video_preview线程,线程生命期直到执行结束后。此线程主要功能有图像采集,处理,字符叠加,显示。
Video_preview线程第一步调用FVID_create()函数为vp0口创建捕获通道对象capChan,初始化vp0寄存器,为vp1口创建显示通道对象disChan,初始化vp1寄存器。
第二步调用FVID_allocBuffer()为capChan和disChan分别分配三个图像缓存区,然后调用FVID_queue()将三个缓存区组成队列,同时为capChan和disChan分配edma通道,设置edma参数表。
第三步调用FVID_control()函数使能vp0,vp1口,vp0开始捕获,vp1开始输出显示。
第四步调用FVID_dequeue()从capChan和disChan的缓存队列中各出一个缓存。
第五步 进入while(1)循环,在循环中执行两次FVID_exchange()。FVID_exchange(capChan,pImg1)捕获新的一场图像数据,FVID_exchange(disChan,pImg)显示新的一帧图像。捕获两次,显示一次。
FVID_exchange(capChan,pImg1)后面添加图像处理算法和叠加字符。
4.4添加图像处理算法
在FVID_exchange(capChan,img)函数捕获图像后添加图像处理算法。为了减少CPU访问图像数据时间,将图像数据和访问频率高的中间数组放在L2 RAM里。DM648 L2的大小512KB,其中128KB用于cache,剩余384KB可用于应用程序存放图像数据。
4.5 VPORT驱动调试方法
VPORT驱动采用BIOS的两层驱动模型class/mini-driver,BIOS现在抽象定义了三种class驱动,PIP/PIO,SIO/DIO,GIO,应用程序通过这三类BIOS API接口与mini driver通讯,在一个应用工程中可以同时使用这三种API 接口。
Mini层通过CSL层访问外围硬件的寄存器,存储器,中断资源,如图4-6。
图4-6 Video_preview应用工程中使用了BIOS GIO接口API,如图4-7是GIO和mini diver层包含的API,FVID函数是GIO API的宏定义,如下:
#define FVID_create(name, mode, status, optArgs, attrs)
GIO_create(name, mode, status, optArgs, attrs)#define FVID_exchange(gioChan, bufp)
GIO_submit(gioChan, FVID_EXCHANGE, bufp, NULL, NULL)#define FVID_control(gioChan, cmd, args)
GIO_control(gioChan, cmd, args)
图4-7 VPORT的mini driver层实现工程vport_bios_dm648_drv_lib.pjt在dvsdk_install_dir/pspdriver目录下,将其设置为video_preview_PAL.pjt的依赖工程(Dependent Projects),如图4-8,这样应用工程重新编译之后就可以同时调试应用工程
和mini driver层。
图4-8 五 flash芯片烧写程序
在烧写程序之前需要准备两个文件ubl.ais和video_preview_PAL.ais,使用Dvsdk_install_dirflashutil目录下的perl脚本命令create_ais.bat将ubl.out和video_preview_PAL.out生成对应的ais文件。
Ubl(user boot loader)是DSP启动加载器,DSP上电后会自动将UBL代码从 flash加载到存储器中,开始执行UBL,ubl先初始化pll,ddr2,emif,再将video_preview_PAL工程从flash加载到存储器中,然后开始执行应用程序。
准备好ais文件后,加载运行norwrite工程Dvsdk_install_dirflashutilDM647_8CCSDM648_NORWriter,norwriter包含四个步骤:
(1)设备初始化,pll,ddr2,emif初始化。(2)擦写flash块0xa000 0000-0xa002 0000,将UBL二进制文件写入该flash块。
(3)擦写flash块0xa002 0000-0xa008 0000,将video_preview工程二进制文件写入该flash块。
(4)擦写flash块0xa060 0000-0xa060 2000,将轴位写入该flash块
第四篇:计算机软件开发技术 期末复习提纲(同济大学)
考试时间:1月6日星期日16:00~17:30共计90分钟
卷面分数:100分
知识要点
一、数据结构
1、概念部分
1)数据结构的概念及其三要素
2)数据逻辑结构的基本类型(即,线性结构、树形结构、复杂结构、集合),数据存储
表示的基本方法(即,顺序表示、链式表示等)及其特点。
3)栈、队列等线性结构的基本概念、性质、存储方式及各自的特点
4)二叉树的基本概念、性质、遍历以及由遍历序列构造出二叉树的方法
2、程序与算法
1)快速排序(一趟)、归并排序(一趟)算法思想及实现
2)二叉排序树创建、查找、二分法查找算法思想及实现
注意:编程题不涉及期中考试考过的部分。
二、数据库
1、了解数据库设计的过程。
2、掌握概念模式设计方法:E-R图(UM类图)。
能根据数据库需求分析,画出E-R图(UML类图),并将其转换成关系模式。
3、理解数据库设计中关系模式规范化的必要性(即数据冗余导致更新异常,其根源是存在两种不好的函数依赖),以及第一、第二、第三范式的概念及其作用。
4、掌握数据库中常用的数据类型(char, varchar, int ,real, datetime, decimal ,money等),并
能用于数据表的字段设计。
5、掌握SQL中常用函数(聚合函数、日期函数)和常用的运算(如,比较运算,集合包
含IN|NOT IN, 字符串匹配运算LIKE等)。
6、理解关系的完整性约束:如,字段长度,空否,主键、外键约束,check约束。
7、掌握SQL语言中Select(查询)、Insert(插入)、Update(更新)和Delete(删除)语
句的语法格式。
三、C#与软件开发
1、面向对象编程中类与对象、继承与派生等基本概念
2、C#的常用控件及其属性
3、多层次软件架构的基本思想(类划分:实体类、边界类、控制类;软件体系结构分层部署:数据存储层、数据访问层、数据表示层)
4、数据库访问关键步骤、嵌入式SQL语句的构造等
第五篇:软件开发年终个人自我总结
20xx年是我进入公司的第一年,也是我的工作能力得到提高和快速发展的一年,在公司领导的指导和同事以及其它部门的支持配合下,最后在经过自己的努力,完成了自己所要完成的各项工作任务,在新的一年来临之迹,我要对过去一年的工作进行一个全面的总结,以便在今年的工作中能够有更明确的目标,尽量克服自己现在所存在的不足,希望能更一步为自己所在的部门增光,做出自己的贡献。下面是我对去年工作汇总。
一、总结:
1.自身定位:在过去一年,是我进公司的第一年,也是我工作的第一年,刚开始在我对工作竞争和自身都不甚了解的情况下,在领导和同事的指导下,我感觉自己已经慢慢对人与人的竞争和自身定位有了深刻的了解,因为有了自我目标,才能感受到自己的压力有多大!我的目标也不只是完成目前所要做的工作而已,要向其它方面拓展学习。
2.定下心来,踏踏实实:我学的是计算机专业,我的工作也是计算机方面的,以前有什么优势,但是踏入工作岗位后才发现,自己学的只是一个基础,只是有些方面或许比别人走的快一步,所以一切都要靠自己.自己要定得心下来学习.成功需要耐得住寂寞,不求最快,但求最好.3.团队合作:以前在学校或许你可以靠一个取得好成绩,在工作上你必须要有一个团队,在一个部门之中,团队合作精神显得尤为重要.以前我做有些事都是一意孤行,但现在已经对自己改变了,多听听他人意见,会犯更少错误,会更长见识,所以要学会与同事之间的合作,做事才更有效。
4.工作情况:在公司一年,对MES大型系统有了个大概了解,对我们所要学习的MES已经可以说差不多都掌握,条码打印机的维修和设置掌握,A4打印机大多数情况可以维护,pDA、条码枪已掌握,电脑的系统重装和维护已掌握,其它基本设置可以维护,对新出来的程序掌握和了解也比较快。
5.课外学习:SQL该学的已经掌握,C#学习,简单的程序可以编写,但有时还要依靠于网络和朋友,需要进一步加强。但主要还是以网络为主。
二、自身缺点
1.沟通问题:自己的沟通能力只能算一般,因为对于某些事的阐释还是不怎么好,语言表达能力有点差,希望通过平时的交流和沟通来加强。
2.心态问题:自己对于做某些事过于着急,一心想急切完成,确反而误时,这个问题一开始就一直出现,现在虽然已经基本克服,但也要列入缺点方面,希望以后时刻注意!
3.学习问题:对于课外学习C#这方面,我在编程时感觉困难的时候有时候就不愿去做,现在虽然已经慢慢改进上网搜资料和问问朋友,但有时候还是克服不了自己。