首页
游戏
影视
直播
广播
听书
音乐
图片
更多
看书
微视
主播
统计
友链
留言
关于
论坛
邮件
推荐
我的云盘
我的搜索
我的记录
我的文件
我的图书
我的笔记
我的音乐
我的影视
我的邮件
Search
1
科普:Memory Compiler生成的Register file和SRAM有何区别?
90 阅读
2
在IC617中进行xa+vcs数模混仿
88 阅读
3
virtuoso和empyrean alps模拟仿真和混仿教程
87 阅读
4
vcs debug rtl或者netlist 中的loop
53 阅读
5
文档内容搜索哪家强? 15款文件搜索软件横向评测
42 阅读
默认分类
芯片市场
数字电路
芯片后端
模拟电路
芯片验证
原型与样片验证
算法与架构
DFX与量产封装
PC&Server OS设置
移动OS设置
软件方案
新浪备份
有道备份
登录
Search
标签搜索
python
Docker
vcs
PyQT
STM32
cadence
linux
systemverilog
EDA
Alist
vscode
uos
package
MCU
C
QT
CXL
sed
sv
webdav
bennyhe
累计撰写
344
篇文章
累计收到
31
条评论
首页
栏目
默认分类
芯片市场
数字电路
芯片后端
模拟电路
芯片验证
原型与样片验证
算法与架构
DFX与量产封装
PC&Server OS设置
移动OS设置
软件方案
新浪备份
有道备份
页面
游戏
影视
直播
广播
听书
音乐
图片
看书
微视
主播
统计
友链
留言
关于
论坛
邮件
推荐
我的云盘
我的搜索
我的记录
我的文件
我的图书
我的笔记
我的音乐
我的影视
我的邮件
搜索到
344
篇与
的结果
2025-07-14
linux问题(4) (2008-06-08 09:37:53)
加载NTFS和FAT32分区详述1、查看磁盘分区情况的命令fdisk -l ;比如:[root@localhost beinan]# /sbin/fdisk -lDisk /dev/hda: 80.0 GB, 80026361856 bytes255 heads, 63 sectors/track, 9729 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System/dev/hda1 * 1 765 6144831 7 HPFS/NTFS/dev/hda2 766 2805 16386300 c W95 FAT32 (LBA)/dev/hda3 2806 7751 39728745 5 Extended/dev/hda5 2806 3825 8193118+ 83 Linux/dev/hda6 3826 5100 10241406 83 Linux/dev/hda7 5101 5198 787153+ 82 Linux swap / Solaris/dev/hda8 5199 6657 11719386 83 Linux/dev/hda9 6658 7751 8787523+ 83 Linux通过上面的我们可以知道 /dev/hda1 是NTFS格式;/dev/hda2是FAT32格式;2、mount 命令;就是磁盘分区的挂载命令,如果内核支持的话,mount 命令能挂载几乎所有的文件系统,比如 reiserfs;ext2;ext3;ntfs;fat32;jfs等等;在Linux系统中,我们常用的主要有reiserfs;ext3;ext3;在Windows系统中,我们主要用的是NTFS;FAT32;FAT等;mount 挂载磁盘分区的用法:mount -t 文件格式 -o 选项参数 磁盘分区 挂载点目录名这样说可能新手不太明白,什么是文件格式,什么是挂载点目录名,我们要把一个分区加载到Linux,是不是得有个存放在地方?比如我们把/dev/hda1 挂载到/mnt/winc目录中;首先我们要看是不是winc是否存在于/mnt目建录中;如果没有winc,我们必须建一个;当然挂载点目录名是自己随便起命名的,最好用英文; 例子在后面举了,新手弟兄先知道有这回事就行了;3、df -lh 磁盘使用情况的命令;这个重要吧;[root@localhost beinan]# df -lhFilesystem 容量 已用 可用 已用% 挂载点/dev/hda8 11G 5.9G 4.5G 57% //dev/shm 236M 0 236M 0% /dev/shm/dev/hda1 5.9G 3.2G 2.7G 55% /mnt/winc/dev/hda2 16G 8.1G 7.7G 52% /mnt/wind/dev/hda5 7.9G 5.8G 2.1G 74% /mnt/slack4、文件和目录的权限;这个在论坛中,我写过,有时间整理上来;知道umask=000是任何用户都能读写执行的就行了。有些东西慢慢就明白了,多执行几个命令就OK了。5、内核的版本;[root@localhost beinan]# uname -aLinux localhost.localdomain 2.6.11-1.1369_FC4 #1 Thu Jun 2 22:55:56 EDT 2005 i686 i686 i386 GNU/Linux通过上面得知我目前用的内核的版本是 2.6.11-1.1369_FC46.获取root用户的命令是su[beinan@localhost ~]$ suPassword: 在这里输入您的root密码,即使输入了,也不会显示出来;我们要安装RPM包,要用到root的超级权限;[root@localhost beinan]#二、NTFS文件系统的加载;1、我们要首先确认系统的内核;我们要根据系统的内核版本来下载支持ntfs的内核补丁;我们在前面已经通过fdisk -l 得知/dev/hda1 是NTFS分区;我们如何加载它呢?在Fedora core 4.0 中,系统默认是不支持NTFS加载的;我们只能安装第三方kernel的ntfs插件或者编内核来实现,相对于编译内核来说,插件是最方便的,也是最简单的;[root@localhost beinan]# uname -aLinux localhost.localdomain 2.6.11-1.1369_FC4 #1 Thu Jun 2 22:55:56 EDT 2005 i686 i686 i386 GNU/Linux一定要看仔细,是2.6.11-1.1369_FC4,是i686的,没有带smp字样的,smp是支持多处理器的内核,如果您用这样的内核,就要下载相应版本的smp的; 我们到哪去下载呢?kernel ntfs 项目在 http://linux-ntfs.sourceforge.net Fedora core 4.0的kernel NTFS的RPM包在:http://linux-ntfs.sourceforge.net/rpm/fedora4.html根据上面内核的信息,我们要下载:2.6.11-1.1369_FC4 i686的,下载的应该是:kernel-module-ntfs-2.6.11-1.1369_FC4-2.1.22-0.rr.6.0.i686.rpm地址: http://prdownloads.sourceforge.net/linux-ntfs/kernel-module-ntfs-2.6.11-1.1369_FC4-2.1.22-0.rr.6.0.i686.rpm 在这里选一个镜像下载:安装kernel ntfs模块:[root@localhost beinan]# rpm -ivh kernel-module-ntfs*
2025年07月14日
7 阅读
0 评论
0 点赞
2025-07-14
linux问题(3) (2008-06-08 09:36:41)
红旗redflag 6 硬盘安装全攻略首先你应该下载好安装镜像!红旗Linux桌面版6.0系统光盘 MD5SUM:918c94a7432799dbfee35507b530d888 请选择最近的链接下载:ftp://220.194.60.89/pub/redflag/dt6/rf6/RedFlag-dt6-sys.isoftp://60.232.126.152/os/linux/redflag/6/dt/RedFlag-dt6-sys.isoftp://60.232.126.154/RedFlag-dt6-sys.isoftp://60.232.126.156/RedFlag-dt6-sys.iso其次,你需要把你的安装镜像放在你的XP下的FAT32盘区的根目录下,然后从该镜像里提取两个安装引导文件--vmlinuz 和i nitrd.img(在安装镜像里的isolinux文件夹里的),把这两个文件复制到安装镜像所在的盘的根目录下.接下来就是用GRUB引导redflag 6.0的安装镜像了!其实GRUB里的东东,我们只要有 grldl(我在后面提供了下载地址)这个文件就行了,然后我们自己动手写一个menu.lst(这个是GRUB的引导列表!)title Redflag 6 desktop kernel (hd0,0)/vmlinuz initrd (hd0,0)/initrd.img ramdisk_size=8192 把上面的代码粘贴到记事本里,然后保存为menu.lst就可以了,一定要保存到你的安装镜像所在的盘的根目录下。(声明一下,(hd0,0)可能会因你的安装镜像所在盘区而改变,这里是我的,我的安装镜像放在xp下的C盘且是FAT32格式的!)最后,我们要做的就是在XP的BOOT。INI中添加GRUB的引导的选项了,这个很简单了,你只需要打开你xp或2k中的boot。ini,然后在其中加入一句就可以了,下面的是我的boot.ini,以供参考![boot loader] timeout=4 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP" /noexecute=optin /fastdetect c:\grldr="grub for redflag 6" 这其中的c:\grldr="grub for redflag 6" 可能与你选择的盘区有可能要改变,这得看你的grldl所在的盘区了。 其实安装红旗是很简单的。1、把isolinux中的vmlinuz & initrd.img解压到与安装文件相同的根目录下。2、在网上下载一个grub for dos,如果不好找,到我的博客loverf.cublog.cn上可以找到。3、进入dos,进入放grub for dos的分区,执行 grub4、在出来的Grub界面中输入kernel (hdx,y)/vmlinuz 回车initrd (hdx,y)initrd.img 回车boot就行了,x代表在哪个硬盘,如果只有一个硬盘,那就是0(数字)。y代表在哪个分区,C盘是1,D盘是4,E盘是5,依次推吧。分享:
2025年07月14日
0 阅读
0 评论
0 点赞
2025-07-14
linux问题(2) (2008-06-08 09:33:27)
在如何在Linux下加载移动硬盘、U盘1,登陆 2,在/mnt 文件夹创建一个usbdisk目录,用来加载移动硬盘用。 3,检查核心是否加载USB模块 执行 #dmesg | grep usb 如果有"usb.c: registered....."信息说明模块已加载,否则需要执行: # modprobe usb-uhci # modprobe usb-storage #dmesg (输出一托东西) 4,插入移动硬盘 然后查看加载结果: #dmesg | tail 可以看到 。。。。 SCSI device sda: 19640880 512-byte hdwr sectors (10056 MB) sdb: sdb1 WARNING: USB Mass Storage data integrity not assured USB Mass Storage device found at 3 usb.c: USB disconnect on device 3 usb.c: USB disconnect on device 2 这里的sdb1就是USB对应的设备 5,执行如下命令 mount -t vfat /dev/sdb1 /mnt/usbdisk -o codepage=936,iocharset=cp936 注意命令里面sdb1和usbdisk分别是本机上USB对应设备和我们在mnt创建给USB的文件夹 一切完毕,到/mnt/usbdisk里面去看看,是不是你的U盘内容。不是的话,请仔细检查自己是否执行了以上步骤以及什么步骤出错。 另外如果加载不成功可能是核心不支持,这在第4步可以看到错误结果 linux内核和版本查询命令法一: 命令: uname -a作用: 查看系统内核版本号及系统名称方法二:命令: cat /proc/version作用: 查看目录"/proc"下version的信息,也可以得到当前系统的内核版本号及系统名称补充说明: /proc文件系统,它不是普通的文件系统,而是系统内核的映像,也就是说,该目录中的文件是存放在系统内存之中的,它以文件系统的方式为访问系统内核数据的操作提供接口。而我们使用命令“uname -a"的信息就是从该文件获取的,当然用方法二的命令直接查看它的内容也可以达到同等效果.另外,加上参数"a"是获得详细信息,如果不加参数为查看系统名称。在Linux系统下加载U盘或移动硬盘1.在插入U盘或硬盘之前,在命令行窗口运行:fdisk -l 命令,系统将显示目前所能识别到的硬件存储设备; 内容如: sda sda1 sda2 sdb sdb1 sdb2 等信息,其中,sda与sdb表示目前系统有两个硬盘,后面带有数字表示各个硬盘下的各区目录; 硬盘或存储设备一般都是以sd开头. 2.插入U盘或硬盘,再次运行fdisk -l 命令,系统将再次显示目前所能识别到的硬件存储设备,比较两次输出的不各,将发现第二次运行时会增加一些内容,; 系统将在原来的基础上增加显示:sdc,等内容,表示新插入的U盘或 移动硬盘是挂靠在系统的sdc下. 3.运行mount,如: #mkdir /mnt/usb #mount /dev/sdc /mnt/usb 4.运行完毕,可以直接在/mnt/usb目录下对U盘或移动硬盘的数据进行访问或操作; 5.想断开U盘或移动硬盘之前,运行umount命令,保证数据不会造成丢失,命令如下: #umount /dev/sdc分享:
2025年07月14日
4 阅读
0 评论
0 点赞
2025-07-14
linux问题(1) (2008-06-08 09:31:53)
进入图形窗口的问题"login out" 就可以回到命令行, 进入图形窗口是:"startx" :loveliness:我安装的是Red Hat Linux 9(另一个系统是Windows Xp),安装时候无法进入图形界面,提示"注意:显示超出范围: H: xx KHz V: xxHz" ,然后黑屏,没有办法,只好使用文字界面安装,不过安装还是能成功的。采用grub登陆。之后进入Linux系统,在进入图形界面的时候,出现同样的提示,然后黑屏。 原因是默认显卡的驱动于显卡不符,我的显卡是GF FX5200 128M,找到驱动程序,但文件6MB多(NVIDIA-Linux-x86-1.0-5336-pkg1.run),没法用磁盘,因为我有Combo,所以,驱动程序刻在光盘上。(安装的时候参照http://www.nvidia.com/object/linux_display_ia32_1.0-5336.html) 具体解决过程: 1、在出现选择菜单时按e,然后选择第二行(kernel *那一行)再按e,在结尾处输入空格1.然后回车,按b引导. 2、出现提示符后,vi /etc/inittab把id:5:initdefault的5改成3。 (具体修改方法:用方向键找到要修改的地方,按键盘上的'Insert',向Word编辑一样修改,之后按ESC,再按:W,然后Ctrl-z即可) 3、reboot 4、启动后用root登陆 5、把刻好的光盘放进光驱,mount /mnt/cdrom cd /mnt/cdrom 6、cp NVIDIA-Linux-x86-1.0-5336-pkg1.run \root cd /root 7、sh NVIDIA-Linux-x86-1.0-5336-pkg1.run 8、依照驱动程序的说明修改ftp://download.nvidia.com/XFree86/Linux-x86/1.0-5336/README 主要的一步如下:__________________________________________________________________________ (sec-03) EDITING YOUR XF86CONFIG FILE __ When XFree86 4.0 was released, it used a slightly different XF86Config file syntax than the 3.x series did, and so to allow both 3.x and 4.x versions of XFree86 to co-exist on the same system, it was decided that XFree86 4.x was to use the configuration file "/etc/X11/XF86Config-4" if it existed, and only if that file did not exist would the file "/etc/X11/XF86Config" be used (actually, that is an over-simplification of the search criteria; please see the XF86Config man page for a complete description of the search path). Please make sure you know what configuration file XFree86 is using. If you are in doubt, look for a line beginning with "(==) Using config file:" in your XFree86 log file ("/var/log/XFree86.0.log"). This README will use "XF86Config" to refer to your configuration file, whatever it is named. If you do not have a working XF86Config file, there are several ways to start: there is a sample config file that comes with XFree86, and there is a sample config file included with the NVIDIA driver package (it gets installed in /usr/share/doc/NVIDIA_GLX-1.0/). You could also use a program like 'xf86config'; some distributions provide their own tool for generating an XF86Config file. For more on XF86Config file syntax, please refer to the man page. If you already have an XF86Config file working with a different driver (such as the 'nv' or 'vesa' driver), then all you need to do is find the relevant Device section and replace the line: Driver "nv" (or Driver "vesa") with Driver "nvidia" In the Module section, make sure you have: Load "glx" You should also remove the following lines: Load "dri" Load "GLcore" if they exist. There are also numerous options that can be added to the XF86Config file to fine-tune the NVIDIA XFree86 driver. Please see Appendix D for a complete list of these options. Once you have configured your XF86Config file, you are ready to restart X and begin using the accelerated OpenGL libraries. After you restart X, you should be able to run any OpenGL application and it will automatically use the new NVIDIA libraries. (用vi 命令,和vi /etc/inittab一样用) 9、reboot 10、再在出现选择BOOT OS菜单时按e,然后选择第二行(kernel *那一行)再按e,在结尾处输入空格1.然后回车,按b引导. 11、出现提示符后,vi /etc/inittab把id:5:initdefault的3改成5。 12、reboot 这12部结束后,我就看到了我的图形界面了 有的地方可能写得太详细,太弱智了,不过是为了方便第一次安装和第一次接触Linux的朋友,请大虾们不要笑我。 一、安装的过程中默认语言是英文,而不是中文简体(安装过程中有两次制定语言选项,起决定作用的是第二次) 二、切换控制台,由图形转换到控制台模式:ctrl+alt+f1(同时按下3秒钟不要马上松开)。由控制台转向图形模式是:alt+f7 三、修改默认的语言项(在控制台下):vi /etc/sysconfig/i18n中的LANG=zh_CN.GB18030(注意大小写,然后重启系统即可) 四、命令不会用,就在控制台下运行man ls就可以。(以ls命令为例)ctrl + alt + F1(F2;F3;F4;F5;F6)F7是图形界面了直到F12或者打开终端,也可以运行简单的命令分享:
2025年07月14日
5 阅读
0 评论
0 点赞
2025-07-14
基于模块化设计的嵌入式软件测试方法 此博文包含图片 (2008-06-08 09:27:34)
基于模块化设计的嵌入式软件测试方法发表时间:1970-01-01 08:00:00 来源: 责任编辑:ARM开发论坛 要害词:模块化设计 嵌入式软件 软件测试 测试方法 测试模型 数控系统 嵌入式设计已经成为工业现代化、智能化的必经之路,嵌入式产品已经深入到各行各业。嵌入式系统的专用程度较高,系统的整体继续性相对较小,为了保证系统的稳定性,软件的测试成为嵌入式开发的一个重要环节。由于嵌入式软件自身的特点,传统的软件测试理论不能直接用于嵌入式软件的测试,因此,研究嵌入式软件的测试有重要意义。1 基本概念简述 ARM 1.1 模块化设计软件的设计是以一定的方法为基础的。面对越来越复杂的软件开发任务,人们提出了各种软件设计的模型。从用户需求和系统要实现的任务功能出发,把大型的软件划分为相对较小的模块。为了减少模块与模块之间的关联性,模块之间的逻辑结构相对独立,无函数的交叉调用,数据传递由全局变量完成,这就是模块化设计的基本思想。模块化设计的核心是模块的独立性,主要包括功能独立性和结构独立性,这使得软件开发的分工易于实现。软件测试是软件开发中的要害环节,基于模块化设计的软件测试模型简单,查错和纠错都易于实现。下面以单链路数据传递的软件模型说明模块化软件设计的软件测试的基本原则。在图1中,函数F(X-Y)定义为软件模块X到软件模块Y的接口函数,用来通过终端显示由模块X进入模块Y的数据。假如模块C执行后发生错误,则由模块B和模块C的数据接口函数F(B-C)判定是否是模块B出来的数据就是错误的。假如F(B-C)不错,则证实模块C存在错误;假如F(B-C)传递数据错误,再察看F(A-B)传出的数据是否错误,假如不错则证实模块B存在错误。用此依次前推孤立错误的方法,即可以很轻易地定位错误所在的模块。这就是模块化设计时软件测试的基本原则。 http://www.51testing.com/ddimg/uploadimg/20060908/1245370.jpg1.2 嵌入式系统 嵌入式系统开发有其自身的特点。一般先进行硬件部分的开发,主要包括形成裸机平台,根据需要移植实时操作系统,开发底层的硬件驱动程序等。硬件平台测试通过后,应该软件的开发调试是基于该硬件平台进行的,这同时也是对硬件平台的一个测试。整个嵌入式系统开发流程如图2所示。http://www.51testing.com/ddimg/uploadimg/20060908/1245371.jpg因此可以说,嵌入式系统的开发过程是一个软硬件互相协调,互相反馈和互相测试的过程。一般来说,在嵌入式系统软件中,底层驱动程序、操作系统和应用程序的界线是不清楚的,根据需要甚至混编在一起。这主要是由于嵌入式系统中软件对硬件的依靠性造成的。嵌入式软件对硬件的依靠性要求,软件测试时必须最大限度地模拟被测软件的实际运行环境,以保证测试的可靠性。底层程序和应用程序界限的不清楚增加了测试时的难度,测试时只有确认嵌入式系统平台及底层程序正确的情况下才能进行应用程序的测试,而且在系统测试时,错误的定位较为困难。软件的专用性也是嵌入式软件的一个重要特点。由于嵌入式软件设计是以一定的目标硬件平台为基础的、面向固定的任务进行的,因此,一旦被加载到目标系统上,功能必须完全确定。这个特点决定了嵌入式应用软件的继续性较差,延长的系统的测试时间,增加了测试费用。嵌入式软件的另外一个重要特点就是实时性。这是从软件的执行角度出发说明的,也就是说嵌入式软件的执行要满足一定的时间约束。嵌入式系统中,应用软件自身算法的复杂度和操作系统任务调度,决定了系统资源的分配和消耗,因此,对系统实时性进行测试时,要借助一定的测试工具对应用程序算法复杂度和操作系统任务调度进行分析测试。可见嵌入式软件与传统的面向对象和面向过程的软件相比有其自身的特点。针对这些特点对嵌入式软件的测试进行研究是必要的,有意义的。 1.3 嵌入式软件测试 字串8 软件测试是从经济、效率的角度出发,对软件代码进行质量、正确性保证的一个过程。软件测试是软件开发中的一个重要环节,也是软件从开发过程到应用过程的要害一环。嵌入式软件也不例外,图3给出了嵌入式软件测试的统一测试模型。软件测试逐渐成为一门成熟的学科,前人针对面向对象和面向过程的非实时软件的测试作了大量的研究,其中大部分方法可以用到嵌入式软件的测试。http://www.51testing.com/ddimg/uploadimg/20060908/1245372.jpg根据不同的指标,软件测试方法有不同的划分方法。从软件开发过程中测试所处的不同阶段可分为模块测试、集成测试和系统测试。根据是否需要运行目标代码分为动态测试和静态测试;根据目标代码的可见性可分为白盒测试(结构测试)和黑盒测试(功能测试)。在软件的测试中,每种测试方法都不是孤立的。为了最经济最有效地达到测试的目的,各种测试方法往往是互相嵌套的。例如,在软件的单元测试阶段,可以用黑盒测试和白盒测试的方法分别进行动态测试。 值得一提的是,近年来软件测试中,测试代码的覆盖率逐渐成为软件测试的统一标准,因此不管采用何种测试方法,尽可能地提高软件测试中的代码覆盖率是必需的。软件测试代码覆盖率是基于白盒测试方法的,因此,为了提高软件测试的代码覆盖率,测试人员必须清楚源代码的结构,拥有程序设计文档,以便设计测试用例使测试尽可能地覆盖程序内部结构的每条语句,提高代码的覆盖率。http://www.elecfans.com/article/UploadPic/2006-4/20064703235122.gif2 基于模块化设计的嵌入式软件四级测试流程 http://www.armforum.cn根据嵌入式系统的开发流程,为了最经济地实现系统的功能,采用自顶向下、层层推进的方法对嵌入式系统进行测试,提出了如图4所示的基于模块化设计的嵌入式软件四级测试流程。在四级测试中,本测试阶段以前的测试完成后,当发现错误时,可排队此测试阶段以前的错误,在本测试阶段内查找错误。这并不是一个绝对准确的方法,但最大限度地节了错误定位的时间。 ARM2.1 系统平台测试 字串4 这部分包括硬件电路测试、操作系统及底层驱动程序的测试等。硬件电路的测试需要用专门的测试工具进行测试。这里不再多述。操作系统和底层驱动程序的测试主要包括测试操作系统的任务调度、实时性能、通信端口的数据传输率。该阶段测试完成后,系统应为一个完整的嵌入式系统平台,用户只需添加应用程序即可完成特定的任务。 2.2 模块测试 把大型的嵌入式软件系统划分为若干个相对较小的任务模块,由不同的程序员分别同时对其进行编码。编码完成后,把各个模块集成起来前,必须对单个模块进行测试。由于没有其它数据模块进行数据传递的支持,该阶段测试一段是在宿主机上进行的(宿主机有丰富的资源和方便的调试环境)。此阶段主要是进行白盒测试,尽可能地测试每一个函数、每一个条件分支、每一个程序语句,提高代码测试的覆盖率。由于只有单个模块正确才有整体集成的必要性,因此,单个模块测试时测试一定要充分、完整。模块测试阶段,测试用例的构造不但要测试系统正常的运行情况,还要进行边界测试。边界测试就是进行某一数据变量的最大值和最小值的测试,同时进行越界测试,即输入不该输入的数据变量测试系统的运行情况。理想的嵌入式系统是不应该由用户的信息交互导致死机的,这也是嵌入式设计的一个基本要求。因此,不论进行何种测试,系统死机都该被作为测试错误处理。在模块测试阶段,由模块化编程的基本思想,根据模块内部的紧凑程序,也可以把大的模块划分成小的模块。在程序内部,小模块之间数据传递的入口设计接口函数,用于快速地定位错误。用此模块嵌套的思想进行软件测试,需要模块内部结构清楚,数据链路简单。2.3 集成测试 ARM 单个软件模块测试正确之后,将所有模块集成起来进行测试。本阶段主要是找出各模块之间数据传递和系统组成后的逻辑结构的错误。在宿主机上采用黑盒与白盒相结合的方法进行测试,要最大限度地模拟实际运行环境,可以屏蔽掉一些不影响系统执行的和数据传递的难以模拟的函数。集成测试是模块化设计软件的测试优点充分体现的阶段。集成测试前,应该由程序员根据模块之间的数据的输入输出编写模块接口函数,这需要负责不同软件模块的程序员共同协调完成,然后将模块接口函数集成到接收数据模块的入口处。由前面的分析可知,单链路数据传递的软件模块集成测试时轻易定位错误所在的软件模块。一个软件模块的数据不一定只有另外一个模块提供,即软件模块的数据链路不一定只是单链路的,测试时可以把复杂链路结构的数据传递划分为单链路结构数据传送进行错误定位。修改输出数据的软件模块时,可能导致输入数据的软件模块引入新的错误,因此在这里引入关联矩阵确定修改某一模块后需要重要测试的模块。 假定模块化设计的嵌入式系统软件由软件模块Ai(i=1,2,…,m,n)组成,m表示矩阵的行号,n表示矩阵的列号。图5所示的矩阵即为其关联矩阵。http://www.elecfans.com/article/UploadPic/2006-4/20064703235203.gif在关联矩阵中,Aij=1表示Aj接受了Ai输出的数据,故修改了Ai重新测试Ai的同时也需重新测试Aj。 http://www.elecfans.com/article/UploadPic/2006-4/20064703235656.gif集成测试是在拥有程序设计文档、程序结构和数据结构时,对软件模块在集成中出现的错误进行测试。集成测试时,根据模块接口函数定位错误修改代码,根据关联矩阵确定重新测试的软件模块。图6给出了模块化设计的嵌入式软件集成测试模型。 2.4 系统测试 M开发论坛集成测试完成后,退出宿主机测试环境,把系统移植到目标机上来,完成应用到现场环境中,从用户的角度对系统进行黑盒测试,验证每一项具体的功能。由于测试者对程序内容程序执行情况一无所知,因此本测试阶段的错误定位比较困难。系统测试阶段应该进行意外测试和破坏性测试,即测试系统正常执行情况下不该发生的激发活动和人为的破坏性的测试,进一步验证系统性能。系统测试阶段不应该确定错误后立即修改代码,应根据一定的错误发生频率,确定测试周期,在每个测试周期结束时修改代码,进行反复测试;否则,不但增加了完全测试的任务量,而且降低了测试的可信度。http://www.elecfans.com/article/UploadPic/2006-4/20064703235169.gif2.5 测试结果分析 测试结果的分析可以定位错误,指导程序员修改代码,同时指出测试进行的程序并进一步指明测试方向。测试结果的分析是一个由测试结果和测试预得结果进行分析、比较和定位错误的过程。测试结果的分析是一次测试的最后环节,分析时应该考虑软件的运行环境和实际运行环境的差异以及各种外界因素的影响等。 字串4 2.6 测试用例的构造与治理http://www.elecfans.com/article/UploadPic/2006-4/20064703235169.gif测试用例是为了测试目标程序设计的包括输入项和预得结果的一种文件,根据测试环境和测试目标程序的不同,可分为某种格式的文档或某种输入行为(如一次按键)等。测试用例的构造要尽可能覆盖所有可能的取值范围,使测试尽可能地覆盖所有程序代码,提高代码的测试覆盖率,同时又不作多余、重复和无意义的测试。在嵌入式软件测试的不同阶段,要构造不同的测试用例;在系统平台测试阶段,要构造针对系统任务调度、实时性能和底层驱动程序的测试用例;在模块测试阶段,应构造针对某一模块进行测试的测试用例;在集成测试阶段,针对系统集成时数据传递、结构斜接的问题构造相应的测试用例;在系统测试阶段,要构造针对某项功能的或多项功能结合在一起的测试用例,或使用已经在同类产品上已经验证正确的测试用例。测试用例是可复用的。此外大型的软件开发过程中,测试用例的种类繁多,应该按一定的方法进行治理。用数据库的来治理测试用例是一个很好的选择。根据测试阶段将测试用例进行划分,然后用要害字唯一确定。这样在使用、修改和保存测试用例时都很方便,直接用查询的方式就可以调出测试用例。 http://www.elecfans.com/article/UploadPic/2006-4/20064703235899.gif3 数控系统软件测试 M开发论坛本数控系统采用ARM7处理器,操作系统采用μC/OS实时操作系统,是一个典型的嵌入式系统。由于数控系统较为复杂,开发过程中将任务进行了具体的划分,软件的开发采用模块化开发。模块的划分及数据流向如图7所示。 ARM开发论坛根据图7所示的软件模块和数据流向可构造关联矩阵,如图8所示。 ARM开发论坛 开发过程中,几个模块由不同的程序员分别进行编码,分别由程序员进行模块测试,并按白盒测试的方法进行覆盖测试。最后集成测试前,根据关联矩阵,程序员协作编写了模块接口函数F(A1-A2)、F(A1-A4)、F(A1-A5)、F(A1-A6)、F(F2-A3)、F(A3-A4)、F(A4-A5)、F(F5-A6)、F(A6-A2),然后根据图6所示的测试模型和图8所示的关联矩阵对系统进行了集成测试。分析可知,一些要害模块,如译码模块和刀补模块的测试代码覆盖率达到90%之上。图9所示的整个系统经过系统测试之后性能稳定,图10为其加工的零件,目前该系统已经小批量生产。4 结论 http://www.elecfans.com/article/UploadPic/2006-4/20064703235405.gif嵌入式软件的特点和传统的测试方法作了分析之后,提出了四级测试流程和集成测试的模型。此测试方法用于工程机械控制器和数控系统开发的测试。测试的效率和可靠性满足要求。文中的单链路数据传递的错误定位、模块接口函数、关联矩阵等方法也可以用于面向对象的和面向对象的软件系统。
2025年07月14日
3 阅读
0 评论
0 点赞
1
...
41
42
43
...
69