MDK Keil 5软件小技巧

MDK Keil 5软件小技巧
MDK Keil 5软件小技巧

几乎所有玩ARM Cortex M单片机的坛友都是通过MDK Keil 5或者IAR环境进行单片机的程序开发的,俗话说工欲善其事必先利其器,我们天天都在用这个开发环境,那么,有些在MDK Keil 5中的实用功能小技巧,大家又知道多少呢?

1.并不是所有源文件(.c)都需要加进工程中,只需要添加必要的源文件即可。无论是什么开发环境,只要是C/C++的工程,工程编译时间的决定因素就是工程中的源文件,以STM32 HAL库的工程为例,单片机外设的驱动文件一般是【stm32fxxx_hal_xxx.c】的格式,里面有多少个这样的源文件,就代表这个工程启用了多少个STM32单片机的外设。我们可以做个对比:

我们使用STM32CubeMX生成一个工程,工程用到了外部高频、低频晶振、SPI1、USART1,CubeMX 自动生成的工程里面,源文件只有必要的十来个:

然后我们把一些不必要用到的源文件也加进去,我这里索性把CubeF1固件库里面的全部外设驱动都加进去了,甚至包括一些完全没有必要加进去的template.c模版:

可以看到,生成的Code大小差得非常远,我这里还是用ARMCCV6版本的编译器,还看不出前后两个工程的编译时间,如果是用ARMCCV5版本的,估计时间要差好几倍。实际上前后两个工程,实现的效果完全是一样的,那些原本没有必要加进去的源文件,除了浪费编译空间和编译时间以外,没有任何用处。

2.头文件(.h)可以随便加进工程中。在MDK的代码开发工程中,头文件是必不可少的。头文件在工程的作用是提供宏定义/常量、结构体声明、枚举量声明统一放置的地方、函数的声明(甚至可以直接把函数的实现写在头文件里面,没有任何问题)。在实际的开发过程中,经常要频繁修改宏定义,而传统MDK开发者的习惯一般是工程只添加源文件而不添加头文件,这样就使得修改宏定义变得非常麻烦了,我们应该摒弃这个习惯,把频繁使用的头文件加进工程中。

3.编译器版本选V6。在MDK 5.24和MDK 5.25中,有个非常重要的更新,那就是MDK开始逐步支持完善ARMCC_V6编译器了。在以前的5.20以下的版本中,时常听说大佬们有用ARMCC_V6编译器的,但大多都是放礼炮,按照例程走也是一大堆报错,真正能实现的没几个,而从5.24版本开始,MDK使用V6编译器一般不会再出现报错了。使用V6编译器的步骤:

1)添加cmsis_armcc_V6.h头文件进我们的工程中,并设置包含路径;

2)工程的Tatget选项卡的编译器版本选V6.9;

3)Misc Controls留空,C语言和C++语言都选gnu11版本,优化等级随意,没有关系;

这样,MDK使用V6编译器编译工程就没有任何问题了。

4.生成bin文件。MDK还有一个重要的功能就是生成bin文件,直接在工程的User选项卡下面的After Build里面添加一行【fromelf.exe --bin -o

"$L@L.bin" "#L"】:

工程编译输出如下信息即代表bin文件成功生成:

在工程文件的目录下可看到与工程文件同名的bin文件:

5.注释与缩进快捷键

MDK Keil 5中一个非常实用的新功能:批量注释/取消注释和代码批量缩进/后退。如果需要把一大段代码全部注释掉,只需要点一个按钮便可。

6.一级文件目录

MDK的工程,说到底是由众多的头文件和源文件组成的,这些头文件和源文件被分装在了不同的目录,MDK工程通过链接这些文件夹目录来找到对应的源文件和头文件。可是,在ST官方的例程中,头文件,源文件,库文件,启动文件放在了多层混乱的目录中,虽说官方这样做的目的是为了更好地对驱动文件进行分类和管理,但对于我们开发者来说,要移植他们官方的例程,真的不是一件容易的事,我就放几张截图看看官方的例程是怎么存放工程文件和驱动文件的:

反观原子的例程,除了个别第三方库如DSP和FATFS是二级目录外,只有一级目录,结构清晰:

我们应该提倡在MDK里面只使用一级目录,无论是文件查找还是例程移植,都非常方便:

7.使能MicroLIB

在MDK中有一个跟标准C库非常接近的功能,那就是MicroLIB,在工程配置菜单里面可以找到这个设置:

这个库是缺省标准C库的备选库,选上这个之后,可以用标准C库的一些经过简化的库函数,如fputc memcpy等等,其中最常用的当然是fputc了,这个函数写好之后可以直接用printf函数打印数据,外设可以是串口,也可以是显示屏。

8.手动KeilKill

大家应该都知道MDK有个KeilKill脚本,这个脚本的作用是把编译生成的obj等中间文件删掉,这样工程要进行复制黏贴或是打包的时候就不会太过于占用空间,中间文件生成的大小与工程中的源文件代码量直接相关。实际上KeilKill是可以手动进行的,就是把与工程文件(.uvprojx)同一目录下的其它文件全部删除,效果与KeilKill脚本完全一样。

重庆邮电大学-软件技术基础--实验报告(耿道渠)

《软件技术基础》实验报告 实验名称:顺序表的操作 班级学号姓名 第9 周星期 2 、5,6 节成绩 一、实验目的: 1、掌握顺序表结构的实现方式; 2、掌握顺序表常用算法的实现; 3、熟悉利用顺序表解决问题的一般思路; 4、参照给定的顺序表的程序样例,验证给出的顺序表的常见算法,领会顺序表结构的优点和不足。 二、实验内容: 1、设计一个静态数组存储结构的顺序表,要求编程实现如下任务:(1)建立一个顺序表,首先依次输人整数数据元素(个数根据需要键盘给定)。 (2)删除指定位置的数据元素(指定元素位置通过键盘输入),再依次显示删除后的顺序表中的数据元素。 (3)查找指定数据的数据元素(指定数据由键盘输入),若找到则显示位置,若没有找到则显示0。 2、使用顺序表实现一个电话本的管理程序,电话本中的每条记录包括学号、姓名、手机号码和固定电话四项。要求实现菜单、初始化、添加、删除和显示等功能。 三、实验结果:

四、实验中遇到的问题及解决方法: 第一次编写C++,感觉力不从心,回去多看看PPT。

五、实验心得体会: 对顺序表的一些常用语句不熟悉,对顺序表的整体思路理解不深刻以后要加强练习 附:源程序(自行编写或修改的程序。若为修改程序请注明修改部分的功能,若为书上实例则可不附。) #include #include #include #include #define MAXSIZE 20 using namespace std; int num; typedef struct { string student_number; string name; string tel; string home_phone; int id; } TEL; void shuaxin(TEL *); void delet(TEL *);

一种基于仿真测试平台的实物自动化测试环境

一种基于仿真测试平台的实物自动化测试环境 摘要 针对FPGA软件测试过程中仿真测试和实物测试的不足,提出了一种基于仿真测试用例的实物自动化测试环境,将用于仿真测试的Testbench进行解析处理,形成能够用于FPGA 实物测试的传输信号,通过执行器将此信号转换为作用于被测FPGA芯片的实际信号,并采集被测FPGA芯片的响应,实现对FPGA的实物自动化测试。采用实物自动化测试环境验证平台对设计架构进行了验证,取得了良好的效果。 0 引言 随着FPGA设计规模的不断扩大,因FPGA软件设计而造成的质量问题也越来越突出,成为影响装备质量的重要因素。而测试是当前解决该问题的最有效手段,因此,越来越多的型号装备产品定型过程对FPGA软件测试提出了新的要求[3]。 然而FPGA测试与常规软件测试不同,因其测试环境限制,测试过程需大量依赖于仿真和分析的方法[4],而在实际芯片中开展的测试往往是板级、系统级测试,测试结果可信度低且无法有效发现FPGA软件设计缺陷[5-6]。为此,本文提出了一种基于仿真测试平台Testbench数据的自动化测试环境框架,测试结果具有较高的可信度,能够有效提高FPGA 测试质量。 1 FPGA动态测试概述1.1 FPGA动态测试环境原理 当前型号装备FPGA定型测试过程主要方法包括设计检查、功能仿真、门级仿真、时序仿真、静态时序分析、逻辑等效性检查和实物测试。其中功能仿真、门级仿真、时序仿真和实物测试均为动态测试,开展测试时需依据测试要求,建立FPGA运行的外围环境,根据测试对象的不同,可将此类环境分为仿真测试环境和实物测试环境。 采用仿真测试环境时,需根据测试用例将测试数据映射为不同时刻下的不同信号值,形成仿真测试平台文件Testbench,通过仿真测试工具将被测FPGA产生的响应进行采集和自动判断,形成测试结论[7]。

软件工程实验报告

实验一 一、实验室名称 综合实验楼 二、试验项目名称 图书管理系统 三、实验目的 1.了解和使用甘特图,系统流程图,线性时间图来描绘系统开发流程和进度 2.学会使用visio绘制常用的流程图。 四、实验内容 图书管管理系统更便于对图书进行分类和管理,对借阅者进行时间限定,使得借书的效益更高更安全。提高工作效益,便于操作,能有效地对数据进行更新、查询,并能在一定程度上实现了自动化。图书管管理系统的主要功能为:书目管理、借阅证管理、借还图书、查询、缴费。书目管理主要是针对管理员身份而言的(比如新增书目,删除书目等等);借阅证管理分为五部分:注册、补发、挂失、暂停、注销;借还图书:借书、还书;查询:图书查询、借阅时间缴费主要是计算超期罚款并交纳费用。 五、试验方案分析与设计 整理分析图书管理流程以及每个用户的权限。对功能进行整合。 六、实验器材(设备,元器件) 台式电脑 七、实验步骤 1.对图书管理系统进行分析,整合用户权限和操作 2.根据用户操作流程画出系统流程图 3.对系统做出概要分析,拟定开发流程 4.绘制出甘特图 5.绘制线性时间图 八、实验数据记结果分析

系统流程图: 甘特图: 线性时间图: 九、实验结论 成功绘制出图书管理系统的系统流程图,甘特图,线性时间图。 十、实验总结 对系统流程的理解直接决定业务逻辑的正确与否,错误的系统流程将导致系统开发逻辑设计不合理。甘特图和线性时间图能直观的展示出系统开发的进度,有利于监督项目开发,调整开发进度。

实验二 一、实验室名称 电子楼512 二、试验项目名称 需求分析 三、实验目的 1.学会如何根据客户的需求整合需求分析报告 2.了解和使用IDEF1X图和UML类图对系统做出概要设计 3.学会使用visio绘制IDEF1X图和UML类图 四、实验内容 1、请从下面的描述中找出绘制数据流图的四种成分并用Visio绘制数据流图。 某培训中心要研制一个计算机管理系统。它的业务是:将学员发来的信件收集分类后,按几种不同的情况处理。 (1) 如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件、课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。 (2) 如果是想注销原来已选修的课程,则由注销人员在课程文件、学生文件和帐目文件上做相应的修改,并给学生注销单。 (3)如果是付款的,则由财务人员在帐目文件上登记,也给学生一张收费收据。 2、有一简单选课系统,用文字描述如下,试用IDEF1X图和UML类图描述该系统的信息模型,并用Visio绘制该IDEF1X图和UML类图。 1)基本描述:在该系统中,有学院、教师、课程、学生等实体,他们的属性分别是:学院:学院编号、学院名称、地址、联系电话、院长等基本属性; 教师:教师编号、姓名、性别、年龄、职称、所在学院等属性; 课程:课程编号、课程名称、课程性质(必修/选修)、学分、开课学院等属性; 学生:学号、姓名、性别、年龄、入学时间、学院等属性。

嵌入式系统仿真测试平台的体系结构研究

!"##!年第$期 福建电脑注:本文得到广东省科技厅攻关项目资金资助%项目编号"##"&’(&)电子科技大学青年基金项目资助%项目编号*+#"#,#-。 &、 引言目前嵌入式系统开发已经成为了计算机工业最热门的领域之一,嵌入式系统应用渗透到信息家电、工业控制、通信与电子设备、人工智能设备等诸多领域。然而嵌入式系统的软件与目标硬件紧密相关,软件开发周期长,开发成本昂贵,软件质量无法保障.&/."/。特别是嵌入式软件的测试工作,在整个开发周期中通 常占用着大部分时间 (-#01,#0)。软件测试是一个非常重要而又艰苦的过程。软件测试工具用来全部或部分的代替人工进行软件的测试工作。它能极大的节省人力、物力和财力,缩短项目的开发周期。 国际上,许多软件公司致力于开发功能强大的软件测试工具。按获得测试信息的方式分为纯硬件、纯软件、软硬件相结合三种类型的测试工具。纯硬件测试工具如仿真器、逻辑分析仪、开发系统等。纯软件测试工具如234563786的2345938:,是一种软件逻辑分析仪。软硬件相结合的测试工具如以;<公司的=>?938:为代表的虚拟仪器和以@AB 公司的BC58DEFD 为代表的测试工具。这三类测试工具都有一个缺点:没有提供一个集成各种软硬件测试工具的框架,使各类测试工具能紧密协调工作。 为提高测试工作的效率,迫切需要功能强大的嵌入式系统测试工具。 仿真开发在嵌入式系统开发中正在发挥着越来越重要的作用。许多软件公司已经开发出成熟稳定的嵌入式仿真开发工具。但是在嵌入式仿真开发中,仍然缺乏一种嵌入式系统测试工具的集成框架。本文正是基于这个目标,从软件体系结构的角度,研究和设计了一种称为G EFDH G 的嵌入式系统仿真测试平台的集成框架。并基于其上实现了一个嵌入式仿真测试平台3I >EFDH 。 "、 嵌入式系统仿真测试平台的体系结构EFDH 对于大规模复杂软件系统,其总体结构设计远比算法和数据结构的选择更重要.J /.!/。基于这样的认识和背景,本文在对嵌入式测试和嵌入式仿真开发深入研究的基础上,研究和设计了EFDH 的体系结构。"K &EFDH 的结构模型 EFDH 的体系结构主要借鉴了当前流行的嵌入式交叉开发工具的目标服务器L 目标代理结构.’/,分为宿主机端和仿真目标机端两大部分。 EFDH 的结构模型见图&: 图&EFDH 结构模型 EFDH 结构模型的基本特征:&M EFDH 由宿主机端和目标机端两大部分构成,宿主机 端以测试服务器DF (D8NO F86786)为核心;目标机端以测试代理D@P D8NO @Q84O M 为核心。 "M 所有的测试工具不与目标机端交互, 而只与测试服务器DF 进行交互;测试服务器DF 同测试代理D@交互。这样只要更换相应的测试代理D@,即可与不同的仿真开发系统一起工作。 J M 测试服务器DF 与所有测试工具之间通过嵌入式仿真测试工具交换协议EFDDR (ES?85585F3STU>O3C4D8NO DCCU 8RI VW>4Q8X6COCVCU ) 规范接口进行交互。!M 测试服务器DF 和测试代理D@之间通过嵌入式仿真测试协议EFD P ES?85585F3STU>O3C4D8NO X6COCVCU M 规范接口进行交互。 ’M 测试工具以软插件的形式集成到EFDH 中%EFDDR 和EFD 规范定义的接口是公开的和可免费获得的,第三方测试工具非常容易的集成到EFDH 中来。 -M 测试工具多种多样,可以是软件代码测试工具,也可以是硬件诊断测试工具,都可以很容易的集成到EFDH 中来,从而达到各类测试工具的紧密协作。 $M EFDH 中各类测试工具紧密集成到一个图形用户接口中,大大提高了用户的工作效率。 ,M 测试代理D@以一个线程的形式存在于仿真运行环境中,与各类模拟器之间通过固定的接口交互,获取丰富的测试信息。 "K "测试服务器DF 模型 测试服务器DF 是EFDH 的核心结构部件,作为EFDH 的测试管理器,其结构模型如图"。 图"测试服务器DF 结构模型 DF 的主要功能:&M DF 提供相应的EFDDR 协议规范接口,接受来自测试工具的控制命令和状态查询,并提供相应的数据传输接口,向测试工具返回对应的测试结果。 "M DF 提供相应的EFD 协议规范接口,向采集代理发送控制命令信息和状态查询信息,并且根据EFD 协议规范提供的接口收取返回信息。 J M DF 提供测试高速缓冲管理、 测试存储器管理以及流测试协议,管理和控制整个宿主机端。"K J 测试代理D@模型 嵌入式系统仿真测试平台的体系结构研究 邵荣防,罗克露 P 电子科技大学计算机科学与工程学院,四川 成都-&##’!M 【摘要】仿真开发在嵌入式开发中正逐步成为热点,仿真测试工具在仿真开发过程中正发挥着日益重要的作用。本文首先简要分析了当前的嵌入式测试工具,然后给出一种嵌入式仿真测试平台的体系结构EFDH 。基于EFDH 体系结构,实现了一个面向信息家电的嵌入式仿真测试平台3>EFDH 。 【关键词】嵌入式系统仿真开发 仿真测试平台

电子科技大学软件技术基础实验报告4

电子科技大学通信与信息工程学院标准实验报告 (实验)课程名称软件技术基础实验 电子科技大学教务处制表

电子科技大学 实验报告 一、实验室名称:校公共机房 二、实验项目名称:二叉树和哈夫曼树 三、实验学时:4学时 四、实验原理: 使用VS2010等C语言集成开发环境(IDE),在微型计算机上对程序进行编辑、编译、连接与运行。通过上机练习掌握二叉树的建立、插入删除,遍历等方法和过程,掌握递归函数在二叉树建立,遍历中的应用,掌握哈夫曼树的最小路径和建立过程。 五、实验目的: 1.熟练二叉树和哈夫曼树的概念和基本操作方法。 2.掌握课程平台使用方法。 六、实验内容: 上机完成所有函数,编程实验,调试运行程序并完成报告。 七、实验器材(设备、元器件): 硬件要求:普通pc机,1G内存,100G硬盘空间即可。 软件要求:Windows 7,包括C编译器的IDE。 八、实验步骤、实验编程与运行结果: 下面建立该二叉树并展示输出结果: #include #include typedef struct bnode

{ int data; struct bnode *lc,*rc; }; struct bnode* create() { struct bnode *tree=NULL; char ch; ch=getchar(); if(ch=='_') tree=NULL; else { tree=(struct bnode *)malloc(sizeof(struct bnode)); tree->data=ch; tree->lc=create(); tree->rc=create(); } return tree; } //先序遍历(根左右)--递归 int preorder(struct bnode *root) { putchar(root->data); if(root->lc!=NULL) preorder(root->lc); if(root->rc!=NULL) preorder(root->rc); } //中序遍历--递归 int inorder(struct bnode *root) { if(root->lc!=NULL) inorder(root->lc); putchar(root->data); if(root->rc!=NULL) inorder(root->rc); } //后序遍历--递归 int postorder(struct bnode *root) { if(root->lc!=NULL) postorder(root->lc); if(root->rc!=NULL)

软件工程 实验报告

v1.0 可编辑可修改 院系:计算机科学学院 专业:计算机科学与技术 年级: 2013级 课程名称:软件工程 组员:司少武(1135) 兰少雄(1136) 张宇(1133) 纳洪泽(1132) 指导教师:刘卫平 2015年 12月 26 日

聊天室 1 前言 即时消息系统的研究现状 即时消息系统[1](Instant Messenger,IM)是一种在后 PC 时代兴起的,以Internet 网络为基础的,允许交互双方即时地传送文字、语音、视频等信息,能够跟踪网络用户在线状态的网络应用软件。即时消息系统产生有着深刻的社会原因:人们都有渴望社交,获得社会尊重、实现自我的需求,这正是即时消息软件风行的原动力,而物质文明的日益发达所带来副作用,又使得人们习惯与周围的人保持距离,以致人们更愿意对陌生人敞开心扉,在网络中可以跨越年龄、身份、行业、地域的限制,达到人与人、人与信息之间的零距离交流。从这点上讲,即时消息系统的出现改变了人们的沟通方式和交友文化,大大拓展了个人生活交流的空间。 本工程的主要内容 随着互联网逐步普及,人们的生活和工作也越来越离不开信息网络的支持,而聊天室是人们最常见,最直接的网上交流的方式。本聊天系统以聊天交流为主,为广大用户提供一个借助网络进行人际交往的平台,也是网络与现实最贴近的实用型网站。本文所介绍的网络聊天系统是基于开放的JAVA应用程序开发设计的,其主要特性是能动态、实时的完成信息的传递,且具有高效的交互性,更有效的处理客户请求,且具有脱离数据库技术方法,易于维护和更新的特点。 2 需求分析 本系统所要实现的主要功能是当用户聊天时,将当前用户名、聊天对象、聊天内容、聊天语气和是否私聊进行封装,然后与服务器建立Socket连接,再用对象输出流包装Socket的输出流将聊天信息对象发送给服务器端当用户发送聊天信息时,服务端将会收到客户端用Socket传输过来的聊天信息对象,然后将其强制转换为Chat对象,并将本次用户的聊天信息对象添加

系统仿真测试平台

仿真测试系统 系统概述 FireBlade系统仿真测试平台基于用户实用角度,能够辅助进行系统方案验证、调试环境构建、子系统联调联试、设计验证及测试,推进了半实物仿真的理论应用,并提出了虚拟设备这一具有优秀实践性的设计思想,在航电领域获得了广泛关注和好评 由于仿真技术本身具备一定的验证功能,因此与现有的测试技术有相当的可交融性。在航电设备的研制和测试过程中,都必须有仿真技术的支持:利用仿真技术,可根据系统设计方案快速构建系统原型,进行设计方案的验证;利用仿真验证成果,可在系统开发阶段进行产品调试;通过仿真功能,还可对与系统开发进度不一致的子系统进行模拟测试等。 针对航电设备产品结构和研制周期的特殊性,需要建立可以兼顾系统方案验证、调试环境构建、子系统联调联试、设计验证及测试的系统仿真平台。即以半实物仿真为基础,综合系统验证、系统测试、设备调试和快速原型等多种功能的硬件平台和软件环境。 目前,众多研发单位都在思索着如何应对航电设备研制工作日益复杂的情况。如何采取高效的工程技术手段,来保证系统验证的正确性和有效性,是航电设备系统工程的重要研究内容之一,FireBlade 系统仿真测试平台正是在这种大环境下应运而生的。 在航电设备研制工程中的定位设备可被认为是航电设备研制工程中的终端输出,其质量的高低直接关系到整个航电设备系统工程目标能否实现。在传统的系统验证过程中,地面综合测试是主要的验证手段,然而,它首先要求必须完成所有分系统的研制总装,才能进行综合测试。如果能够结合面向设备的仿真手段,则可以解决因部分设备未赶上研发进度导致综合测试时间延长的问题。在以往的开发周期中,面向设备的仿真技术并没有真正得到重视: (1)仿真技术的应用主要集中在单个测试对象上,并且缺乏对对象共性的重用; (2)仿真技术缺乏对复杂环境与测试对象的模拟; (3)仿真技术的应用缺乏系统性,比如各个阶段中仿真应用成果没有实现共享,

嵌入式软件开发基础实验报告实时时钟

上海电力学院 嵌入式软件开发基础实验报告 题目:【ARM】实时时钟实验 专业:电子科学与技术 年级: 姓名: 学号:

一、实验目的 1、了解实时时钟的硬件控制原理及设计方法。 2、掌握S3C44B0X 处理器的RTC 模块程序设计方法。 二、实验设备 1、硬件:Embest EduKit-III 实验平台,Embest ARM 标准/增强型仿真器套件,PC 机。 2、软件:Embest IDE Pro ARM 集成开发环境,Windows 98/2000/NT/XP。 三、实验内容 学习和掌握 Embest EduKit-III 实验平台中RTC 模块的使用,进行以下操作: 1、编写应用程序,修改时钟日期及时间的设置。 2、使用EMBEST ARM 教学系统的串口,在超级终端显示当前系统时间。 四、实验原理 1. 实时时钟(RTC) 实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。RTC 具有计时准确、耗电低和体积小等特点,特别是在各种嵌入式系统中用于记录事件发生的时间和相关信息,如通信工程、电力自动化、工业控制等自动化程度高的领域的无人值守环境。随着集成电路技术的不断发展,RTC 器件的新品也不断推出,这些新品不仅具有准确的RTC,还有大容量的存储器、温度传感器和A/D 数据采集通道等,已成为集RTC、数据采集和存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式系统。 RTC 器件与微控制器之间的接口大都采用连线简单的串行接口,诸如I2C、SPI、MICROWIRE和CAN 等串行总线接口。这些串口由2~3 根线连接,分为同步和异步。 2. S3C44B0X 实时时钟(RTC)单元 S3C44B0X 实时时钟(RTC)单元是处理器集成的片内外设。由开发板上的后备电池供电,可以在系统电源关闭的情况下运行。RTC 发送8 位BCD 码数据到CPU。传送的数据包括秒、分、小时、星期、日期、月份和年份。RTC 单元时钟源由外部晶振提供,可以实现闹钟(报警)功能。 S3C44B0X 实时时钟(RTC)单元特性: BCD 数据:秒、分、小时、星期、日期、月份和年份 1、闹钟(报警)功能:产生定时中断或激活系统 2、自动计算闰年 3、无2000 年问题 4、独立的电源输入 5、支持毫秒级时间片中断,为RTOS 提供时间基准 读/写寄存器 访问 RTC 模块的寄存器,首先要设RTCCON 的bit0 为1。CPU 通过读取RTC 模块中寄存器BCDSEC、BCDMIN、BCDHOUR、BCDDAY、BCDDATE、BCDMON 和 BCDYEAR 的值,得到当前的相应时间值。然而,由于多个寄存器依次读出,所以有可能产生错误。比如:用户依次读取年(1989)、月(12)、日(31)、时(23)、分(59)、秒(59)。当秒数为1 到59 时,没有任何问题,但是,当秒数为0 时,当前时间和日期就变成了1990 年1 月1 日0 时0 分。这种情况下(秒数为0),用户应该重新读取年份到分钟的值(参考程序设计)。

软件工程实验报告(总)

信息工程学院 软件工程实验报告 专业: 班级: 学号: 姓名: 指导老师:

实验一:软件开发的过程计划 实验课时:2课时 一、实验目的 项目计划的目的是为项目的研发和管理工作制定合理的行动纲领,以便所有相关人员按照计划有条不紊地开展工作。 ⑴估计项目的总体规模、工作量和成本。 ⑵制定项目计划,重点放在产品生命周期中的主要关键任务。 ⑶制定项目时间表和预算。 二、实验环境 1.硬件环境 P4以上的个人计算机环境,要求内存不少于512MB,硬盘不小于20G.。 2.软件环境 操作系统:Windows XP 数据库:Sql Server 2000以上或Access 2003以上 3.通用工具软件 通用绘图工具:MicroSoft V isio 2003以上 文本编辑工具:MicroSoft Word 2003以上 4.CASE工具 UML建模工具:Rational Rose 2000 三、实验要求、实验内容 1、实验要求: 在进行实验之前,必须掌握软件开发过程的一些基础知识,准备参考资料和阅读相关的过程模型的文档。 2、实验内容 熟悉RUP(Rational Unified Process)软件开发统一过程的思想,RUP(Rational Unified Process)是由Rational公司(现已是IBM公司的一部分)提出的过程模型,它软件工程史上最完整、最成熟、最优秀的过程模型之一。 学习软件开发的组织和管理,将项目开发各阶段的任务明确,掌握各阶段的里程碑,并熟悉相应的工具。

四、思考题 1、项目开发首先要做的事是什么? 答:进行需求分析和定义,了解客户或用户的需求,然后再进行后续。 2、你认为该软件应具备的最重要的特性是什么。 答:安全性、实用性、灵活性。 3、你认为怎样分工是最合理的? 答:该项目已经采取项目经理制,但是在具体开发过程中,情况也许会比预计的复杂,因此,在了解了各组员的工作风格的情况下,根据性格类型进行工作分配,比如:外向而且善于交流的,可以给他安排和客户交流沟通,让客户随时了解我们 的工作情况,并且反应客户的需求改变;为了让项目更好的组织和管理,可以采取 主程序员负责制;这样,在项目经理的带领下,内部安排主程序员和副程序员,工 作员有问题的话,内部自己解决,只要按时汇报工作就可以了。 五、实验内容: 项目背景 项目名称:银行计算机储蓄系统 随着社会经济的发展,XX银行的业务不断增长,传统的依靠手工的存取款业务办理方式已经不能满足不断增长的业务需求。其一,业务需求的增加需要消耗大量人力物力资源;其二,业务复杂化导致人工处理方式出错率增加,从而引起储户不满。一方面可以减轻银行业务员的工作量,另一方面可以减少工作的出错率,从而提高工作效率。现在计算机网络的告诉发现使越来越多的人更喜欢在网购物、在家存款取款。在这样的背景下,很明显现在的银行储蓄系统已经不能满足人们越益增长的需求,急切需要建立一个新的、高效的、方便的、互联的计算机储蓄系统。为解决此问题,拟为其开发计算机储蓄系统。 项目进度: 项目在项目经理的制度下,在整个开发过程中,树立“里程碑”,而且严格按照计划进行,各阶段任务必须完成,现把任务进度历程绘制如下:

计算机软件技术基础实验报告Word版

计算机软件基础实验报告 姓名学号实验目的 1. 掌握C语言程序设计方法,并学会上机调试。 2. 熟悉Huffman编码源程序,并构造Huffman树。 实验内容 1.试设计一算法,从包括n个元素的数组中,求最大和最小元素,并使得当n 个元素为有序排列时,元素之间的比较次数仅为n-1次。 2.在给出的Huffman编码源程序基础上,要求画出Huffman树,求出与等长编 码相比时的压缩比。 实验要求 1.根据实验内容编写算法,并用 C 语言进行程序设计。 2. 将所编程序在计算机上调试通过,并全面测试。 实验结果 1.以一个含有8个元素的一维数组{1,2,3,5,7,8,9,12}为例,设计程序如下: #include int maxArray(int x ,int y); int minArray(int x ,int y); int main(void) { int i = 0 ; int array[8]={ 1,2,3,5,7,8,9,12} ; printf; do { scanf("%d",&array[i]); i++; } while(i < 8); int maxTemp = array[0]; int minTemp = array[0]; int maxIndex = 0; int minIndex = 0; for(i=1;i<8;i++)

maxTemp = maxArray(array[i] , maxTemp); minTemp = minArray(array[i] , minTemp); } for(i=0;i<8;i++) { if (maxTemp == array[i]) { maxIndex = i; } if (minTemp == array[i]) { minIndex = i; } } printf; return 0; } 运行结果如下: 2.Huffman编码源程序 #include #include #include #include #include typedef struct {unsigned int weight; //结点权值 unsigned int parent,lchild,rchild; //结点的父指针,左右孩子指针 }HTNode,*HuffmanTree; //动态分配数组存储哈夫曼树 typedef char **HuffmanCode; //动态分配数组存储哈夫曼编码表 void CreateHuffmanTree(HuffmanTree &,unsigned int*,int ); //生成哈夫曼树 void HuffmanCoding(HuffmanTree,HuffmanCode &,int ); //对哈夫曼树

软件工程实验报告_学生成绩管理系统

软件工程实验报告 学生成绩管理系统的设计与实现 学生姓名 学号 班级 成绩 指导教师 年月日

目录 1 课题描述 (3) 2 可行性研究 (4) 2.1 编写目的 (4) 2.2 项目背景 (4) 2.3 定义(术语) (4) 2.4 数据流程和处理流程 (4) 2.5 可行性分析的前提 (5) 2.6 可行性分析 (5) 3 需求分析 (7) 3.1 学生成绩管理系统功能需求 (7) 3.2 学生成绩管理系统性能要求 (8) 3.3 数据流图 (8) 3.4 数据字典 (9) 3.5 学生信息管理系统逻辑结构图 (12) 3.6 用户信息实体关系图 (12) 4 概要设计 (13) 4.1 编写目的 (13) 4.2 项目背景 (13) 4.3 任务概述 (13) 4.4 总体设计 (13) 4.5接口设计 (17) 4.6数据结构设计 (17) 5 详细设计 (19) 5.1 系统程序流程图 (19) 5.2 界面设计 (21) 5.3 程序界面截图 (22) 5.4 程序源代码 (27) 6 软件测试 (58) 7 总结 (62)

1 课题描述 随着互联网的发展,利用INTERNET 技术来实现“无纸办公”这个概念已经深入人心,校园网作为学校信息化建设的一个平台在完成资源共享、互联网访问、教务管理、电子备课等方面发挥了重要作用。服务教学、提高教学水平和效果是校园网建设的核心目标和核心价值,本系统立足于校园实际,着眼于未来发展,建成符合标准化协议、通用性较强、实用的系统,以提高高校的现代化管理水平,实现信息资源的共享。该项目主要是服务于教学方面,进一步方便教师的工作和学生的学习,从而从侧面达到提高学校的教学方面‘软件’质量。可以说它适用于每一所高校,因此很有开发价值。我们不敢说该产品是所有该系列产品中最好的,但是我们这里要强调的是它具有使用范围广,实用性强,使用简单,所花经费少等优点。我们可以肯定的说它将在高校的使用过程中其优点将得到最充分的体现。 主要功能有三方面: 管理员,登陆,进入系统,可以进行管理员操作,进行学生信息、教师信息、课程信息的编辑、查询、删除、修改、添加、打印等操作。 学生,登陆,进入系统,可以进行查询、修改、打印等操作。 教师,登陆,进入系统,可以进行查询、学生成绩录入、修改、打印等操作。 软件系统目标: (1)本系统具有很强的可靠行,可以对录入的学生信息进行效验,对数据进行修改、删除,规定各种权限。 (2)本系统中的模块具有很强的可续性,可以方便管理人员的修改与维护。 (3)本系统操作方便、灵活、简单。 (4)本系统可高效、快速的查询到学生的基本信息。

软件技术基础实验报告

《计算机软件技术基础》实验报告 专业_____________ 年级_____________ 学号_____________ 学生姓名_____________ 指导老师_____________ 南华大学计算机学院编

【实验报告】

I 实验要求 1.每次实验中有若干习题,每个学生至少应该完成其中的两道习题。 2.上机之前应作好充分的准备工作,预先编好程序,经过人工检查无误后,才能上机,以提高上机效率。 3.独立上机输入和调试自己所编的程序,切忌抄袭、拷贝他人程序。 4.上机结束后,应整理出实验报告。书写实验报告时,重点放在调试过程和小节部分,总结出本次实验中的得与失,以达到巩固课堂学习、提高动手能力的目的。 实验一线性表 【实验目的】 1.熟悉VC环境,学习如何使用C语言实现线性表的两种存储结构。 2.通过编程、上机调试,进一步理解线性表的基本概念,熟练运用C语言实现线性表基本操作。 3.熟练掌握线性表的综合应用问题。 【实验内容】 必做: 1.一个线性表有n个元素(n

软件工程实验报告

1.1 实验一结构化需求分析 一.实验类型 图书馆管理系统 假定校图书馆需要你设计一个图书馆管理系统,要求包括以下功能: ●图书管理员可以管理馆藏图书,包括每本图书的藏书编号、书名、编著者、 ISBN号、出版社、出版时间、入馆时间、馆藏数量(如果馆藏数量为1,则标明为孤本图书)、在馆数量、学科类别等(或其它你认为有用的信息); ●管理员可以查询、统计所有图书、每一类图书或每一本书的借阅记录; ●图书管理员可以管理所有读者的信息,包括读者类型(学生、教师、社会人 士)、姓名、图书证编号、办证时间、证件状态(正常、挂失、冻结)等信息; ●图书管理员可以查询和统计所有读者、每一类读者或每一个读者的借阅记录; ●读者可以通过本系统查询馆藏图书; ●读者可以通过本系统借阅读书。但对于孤本图书或在馆数量为1的图书则不 准外借; ●管理员可以对超期未归还图书的读者发送电子邮件进行提醒,对于超期一年 不归还图书的读者冻结其图书证; ●读者可以通地本系统归还图书。如果图书超期,则自动计算罚款金额。二.实验目的 1.掌握数据流的分析技术 2.掌握软件需求分析的过程和方法。 3.熟悉项目开发计划和需求规格说明书的制定方法。 三.实验内容和要求 1.用结构化数据流分析技术进行软件系统需求分析,得出系统的数据流图和数据字典。 2.正确运用图表工具进行表示。 3.按规范正确编写软件文档。

四.实验步骤 1.理解所承担项目的业务流程和业务内容。 本软件项目是面向中小型学校、单位机构对于图书管理的基于服务的一款便捷式软件。能满足一系列常用图书管理的功能模块,提供简介、准确的操作性,可以很大程度减少人为因素带来的数据错误,统计错误,系统逻辑错误。并且规模小,很容易进行推广。 ●本项目的参与对象有图书管理员及读者。 ●对于读者,能通过该软件浏览馆藏的所有图书。读者在图书馆找到自己喜欢 的书后,能自行通过该软件操作完成借阅操作。若读者是第一次借书,必须通过图书管理员进行添加读者记录,登记读者信息。读者在登陆后方能完成借阅操作,对于孤本图书(即图书馆中馆藏只有一本的图书)则拒绝进行借阅操作。在规定期限内,读者可以通过该软件完成还书操作,对于超期的图书,应将扣除一定罚款金额,对于超期一年不归还图书的读者冻结其图书证。 并且读者能修改个人信息。 ●对于图书管理员,能管理自己和比自己低一级管理权限的管理员。一级管理 员能完成维护管理员的基本信息和二级管理员的一切操作。二级管理员则能维护自己的信息和添加读者、添加图书的功能。管理员可以对超期未归还图书的读者发送电子邮件进行提醒,对于超期一年不归还图书的读者冻结其图书证; 2.按照系统的功能及性能要求,系统的作业范围等,确定软件系统的开发环境(操作系统、开发工具、程序设计语言等)。 根据软件编程经验,本系统将采用面向对象的设计方法,使用Eclipse开发工具,java窗体应用程序,操作系统使用Win8。 3.绘制数据流图、功能分析图等。

《计算机应用基础》实验报告本1

(封面) 上海建桥学院《计算机应用基础》 实验报告本 20 11 年3月15 日

2010-2011学年第一学期《计算机应用基础》实验目录

上海建桥学院实验报告 课程名称:计算机应用基础实验类型:验证/ 设计/ 综合 实验名称:文字处理软件的使用 系别:艺术系专业:视觉传达班级:三班学号:10B05060324 姓名:顾雯茵 同组人姓名: 指导老师:实验地点: 实验日期:2011年 3 月15 日 实验报告日期:2011年3月15日 报告退发( 订正、重做): 成绩:指导教师(签字):_________________________ 一、实验名称:文字处理软件的使用 二、实验目的: 1.掌握字体、段落格式、首字下沉、中文版式、分栏的设置; 2.掌握查找与替换、项目符号和编号、边框和底纹的设置; 3.掌握表格插入和设置; 4.掌握图片、图形、艺术字、文本框的插入、编辑及混排设置; 5.掌握公式、水印、页眉和页脚的插入及编辑方法; 6.掌握页面设置方法。

三、实验环境(所使用的平台和相关软件) (1)中文WindowXP操作系统 (2)中文Word2003应用软件 (3)中文实验配套材料配套 四、实验内容(实验内容的具体描述) 实验(1) 打开配套文件Word-Lx1.doc,按下列要求操作,并将结果以原文件名保存。 (1) 插入标题,内容见样张,其中大字:华文琥珀,72磅,空心,阴影;小字:华文云 彩,60,金色底纹,双行合一。 (2) 正文为小四号,第一段添加蓝色小3号项目符号;其余各行,首行缩进2字符;如 样张分栏,第1栏宽4厘米,间距0.75厘米;文末段落首2字下沉,并设置灰-20% 底纹。 (3) 按样张,对文中相应段落添加绿色、3磅边框线。 (4) 把文中的半角逗号、句号,均改为全角。 (5) 按样张,利用制表位在文末输入相关文字(注意对齐方式,间距自定)。 实验(2) 打开配套文件Word-Lx3.doc,按下列要求操作,并将结果以原文件名保存。 (1) 按样张,将文本标题“网上阅读,日趋流行”转化为艺术字,艺术字式样为艺术字 库中第四行第一列;艺术字字体为楷体、36磅、加粗;艺术字高2.8厘米、宽7.5厘米,形状采用“波形2”;艺术字衬底为加上填充色为“雨后初晴”斜上过渡效果的“流程图:资料带”。 (2) 按样张,将正文各段首行缩进2字符,将第二段(网页成本极为便宜…最大区别还 在于能够“反馈”。)设置成1.7倍行距。 (3) 将正文中所有的“图书馆”都替换为楷体、红色、四号、粗斜、蓝色双下划线。 (4) 按样张,为第一段中的文字“印刷出版物”制作合并字符效果,字体:隶书,字号: 12。 (5) 取消第三段原有的分栏,并将第二、三段按样张分为三栏,其栏宽分别为8字符米、 10字符、14字符。 (6) 将第四、五段加上三维边框,框线的粗细为3磅,颜色为深红,并加上如样张所示 的编号。 (7) 按样张,在文末插入大小为30%的配套图片Examine.wmf。

组态软件(实验报告)

组态软件实验报告 专业:电气工程及其自动化 班级: 学号: 姓名:

实验一组态软件概念介绍 实验目的: 介绍组态软件的基本概念应用背景。 介绍组态软件的软件系统结构和功能特点。 认识和比较各个公司组态软件的特点。 以讲述的方式让学生了解组态软件,知道组态软件的由来,组态软件的应用背景,和相关技术特点,从概念上对软件有个初步的认识。 实验内容: 1、介绍组态的概念; 2、计算机监督与控制系统的概念; 3、工控机的特点; 4、原始组态软件和当前组态软件的区别和优缺点; 5、组态软件的基本特性整体结构; 6、介绍各公司组态软件的特点。 实验二软件安装与认知 实验目的: 学习组态软件的安装; 学习组态软件各模块的功能; 区别开发环境和运行环境的操作。 由于组态软件的编程方式是面向对象的方法,以事件触发软件的相关动作。基本操作的熟悉让学生对组态软件运行原理有初步的认识。 实验内容: 1、安装图灵开物组态软件。 2、了解单机版功能与网络版功能的区别。 3、运行演示工程。 4、学习软件界面的功能及基本操作。 实验结果:

实验三工程建立 实验目的: 通过本次实验让学生学习怎么建立一个组态软件工程,建立的各个元素,对应了实际现场的哪些操作,重要的是记住建立工程中的一些关键性步骤。 实验内容: 1、新建组态软件工程。 2、新建计算机节点,了解节点中各功能的含义及配置方法。

3、新建设备,了解组态软件功能设备及驱动的应用方法。 4、新建图页,图页是组态软件界面图形绘制区域。 5、新建标签,了解标签的类型及各种属性,以及标签在工程中作用的区域。实验结果:

实验一 软件仿真器Simulator的使用方法

实验一软件仿真器Simulator的使用方法 一、实验目的 1、了解DSP开发系统平台的构成。 2、了解Code Composer Studio 3.3 的操作环境和基本功能。了解DSP软件开发过程。 二、实验要求 按照实验步骤熟练掌握CCS的使用方法。 三、实验设备 PC一台;操作系统为Windows XP;安装Code Composer Studio 3.3 四、实验原理 开发TMS320C5000应用系统一般需要以下几个调试工具来完成: (1)软件集成开发环境(Code Composer Studio3.3):主要完成系统的软件开发和调试。它提供一整套的程序编制、维护、编译、调试环境,能将汇编语言和C语 言程序编译连接生成COFF格式的可执行文件,并能将程序下载到目标DSP上 运行调试。 (2)开发系统(ICETEK 5100 USB):实现硬件仿真调试时与硬件系统的通信,控制和读取硬件系统的状态和数据。 (3)评估模块(ICETEK VC5416-A):提供软件运行和调试的平台和用户系统开发的参照。 五、实验步骤 1、启动Code Composer Studio 3.3 双击桌面“CCS3.3(C5000)”,启动Code Composer Studio 3.3; 2、创建工程 (1)创建新的工程文件 选择菜单Project的“new…”项;在Project Creation 对话框中,在project项输入 volume;单击location项末尾的浏览按钮,改变目录到 C:\ICETEK-VC5416-EDULAB\Lab01-UseCC,单击OK;单击完成;这时建立的是 一个空的工程,展开主窗口左侧工程管理窗口中Projects下新建立的“volume.pjt”,其中各项均为空。 (2)在工程文件中添加程序文件

软件工程 实验报告

院系:计算机科学学院专业:计算机科学与技术年级: 2013级 课程名称:软件工程 组员:司少武(1135) 兰少雄(1136) 张宇(1133) 纳洪泽(1132) 指导教师:刘卫平 2015年 12月 26 日

聊天室 1 前言 即时消息系统的研究现状 即时消息系统[1](Instant Messenger,IM)是一种在后 PC 时代兴起的,以Internet 网络为基础的,允许交互双方即时地传送文字、语音、视频等信息,能够跟踪网络用户在线状态的网络应用软件。即时消息系统产生有着深刻的社会原因:人们都有渴望社交,获得社会尊重、实现自我的需求,这正是即时消息软件风行的原动力,而物质文明的日益发达所带来副作用,又使得人们习惯与周围的人保持距离,以致人们更愿意对陌生人敞开心扉,在网络中可以跨越年龄、身份、行业、地域的限制,达到人与人、人与信息之间的零距离交流。从这点上讲,即时消息系统的出现改变了人们的沟通方式和交友文化,大大拓展了个人生活交流的空间。 本工程的主要内容 随着互联网逐步普及,人们的生活和工作也越来越离不开信息网络的支持,而聊天室是人们最常见,最直接的网上交流的方式。本聊天系统以聊天交流为主,为广大用户提供一个借助网络进行人际交往的平台,也是网络与现实最贴近的实用型网站。本文所介绍的网络聊天系统是基于开放的JAVA应用程序开发设计的,其主要特性是能动态、实时的完成信息的传递,且具有高效的交互性,更有效的处理客户请求,且具有脱离数据库技术方法,易于维护和更新的特点。 2 需求分析 本系统所要实现的主要功能是当用户聊天时,将当前用户名、聊天对象、聊天内容、聊天语气和是否私聊进行封装,然后与服务器建立Socket连接,再用对象输出流包装Socket的输出流将聊天信息对象发送给服务器端当用户发送聊天信息时,服务端将会收到客户端用Socket传输过来的聊天信息对象,然后将其强制转换为Chat对象,并将本次用户的聊天信息对象添加到聊天对象集Message中,以供所有聊天用户访问。 接收用户的聊天信息是由多线程技术实现的,因为客户端必须时时关注更新服务器上是否有最新消息,在本程序中设定的是3秒刷新服务器一次,如果间隔时间太短将会增加客户端与服务器端的通信负担,而间隔时间长就会让人感觉没有时效性,所以经过权衡后认为3秒最佳,因为每个用户都不可能在3秒内连续发送信息。 当每次用户接收到聊天信息后将会开始分析聊天信息然后将适合自己的信息人性化地显示在聊天信息界面上。

相关文档
最新文档